From 6893cfa94d8d697f3e310274ece338f9a9f7f6d0 Mon Sep 17 00:00:00 2001 From: claudio Date: Sun, 15 Mar 2026 13:53:26 -0400 Subject: [PATCH 1/5] chore: align all package names to @trycompai scope (#2309) * chore: align all package names to @trycompai scope Co-Authored-By: Claude Opus 4.6 (1M context) * fix: update CLAUDE.md @comp/ui reference and regenerate bun.lock - Fix last @comp/ui reference in CLAUDE.md design system section - Regenerate bun.lock to reflect @trycompai/* workspace names (CI with --frozen-lockfile would fail without this) Co-Authored-By: Claude Opus 4.6 (1M context) * ci: disable maced contract canary while API is unavailable Co-Authored-By: Claude Opus 4.6 (1M context) --------- Co-authored-by: Claude Opus 4.6 (1M context) --- .claude/agents/ds-migration-reviewer.md | 8 +- .claude/skills/audit-design-system/SKILL.md | 10 +- .claude/skills/audit-hooks/SKILL.md | 2 +- .claude/skills/audit-rbac/SKILL.md | 2 +- .claude/skills/production-readiness/SKILL.md | 2 +- .cursor/rules/essentials.mdc | 4 +- .cursor/rules/infra.mdc | 8 +- .cursor/rules/ui.mdc | 4 +- .cursorrules | 2 +- .github/workflows/maced-contract-canary.yml | 17 +- .syncpackrc.json | 4 +- CHANGELOG.md | 6 +- CLAUDE.md | 10 +- README.md | 16 +- REVIEW.md | 4 +- apps/api/.cursorrules | 4 +- apps/api/CLAUDE.md | 10 +- apps/api/buildspec.yml | 28 +-- apps/api/integrationPlatformExtension.ts | 16 +- apps/api/package.json | 8 +- .../attachments.controller.spec.ts | 2 +- .../src/audit/audit-log.controller.spec.ts | 2 +- apps/api/src/auth/api-key.service.spec.ts | 2 +- apps/api/src/auth/api-key.service.ts | 2 +- apps/api/src/auth/auth.server.ts | 2 +- apps/api/src/auth/permission.guard.ts | 2 +- .../cloud-security-query.service.ts | 2 +- .../cloud-security/cloud-security.service.ts | 2 +- .../src/comments/comments.controller.spec.ts | 2 +- .../src/context/context.controller.spec.ts | 2 +- .../src/controls/controls.controller.spec.ts | 2 +- .../device-agent.controller.spec.ts | 2 +- .../src/devices/devices.controller.spec.ts | 2 +- .../evidence-forms.controller.spec.ts | 2 +- .../evidence-forms.definitions.ts | 4 +- .../evidence-forms/evidence-forms.service.ts | 2 +- apps/api/src/findings/findings.service.ts | 2 +- .../frameworks/frameworks-scores.helper.ts | 2 +- .../admin-integrations.controller.ts | 2 +- .../controllers/checks.controller.ts | 2 +- .../connections.controller.spec.ts | 6 +- .../controllers/connections.controller.ts | 2 +- .../dynamic-integrations.controller.ts | 2 +- .../controllers/oauth-apps.controller.ts | 2 +- .../controllers/oauth.controller.spec.ts | 6 +- .../controllers/oauth.controller.ts | 2 +- .../controllers/sync.controller.ts | 2 +- .../task-integrations.controller.ts | 2 +- .../controllers/variables.controller.spec.ts | 6 +- .../controllers/variables.controller.ts | 2 +- .../controllers/webhook.controller.ts | 4 +- .../services/auto-check-runner.service.ts | 2 +- .../services/connection.service.ts | 2 +- .../dynamic-manifest-loader.service.ts | 2 +- .../services/oauth-credentials.service.ts | 2 +- .../oauth-token-revocation.service.ts | 2 +- .../org-chart/org-chart.controller.spec.ts | 2 +- .../organization.controller.spec.ts | 2 +- .../src/organization/organization.service.ts | 2 +- apps/api/src/people/people.controller.spec.ts | 2 +- apps/api/src/people/people.controller.ts | 2 +- apps/api/src/people/people.service.spec.ts | 2 +- apps/api/src/people/people.service.ts | 2 +- .../src/policies/policies.controller.spec.ts | 2 +- .../questionnaire.controller.spec.ts | 2 +- apps/api/src/risks/risks.controller.spec.ts | 2 +- apps/api/src/roles/roles.controller.spec.ts | 4 +- apps/api/src/roles/roles.service.spec.ts | 4 +- apps/api/src/roles/roles.service.ts | 2 +- .../src/scripts/seed-dynamic-integration.ts | 2 +- .../src/secrets/secrets.controller.spec.ts | 2 +- apps/api/src/soa/soa.controller.spec.ts | 2 +- apps/api/src/tasks/tasks.controller.spec.ts | 2 +- .../training/permissions-regression.spec.ts | 4 +- .../src/training/training.controller.spec.ts | 2 +- .../cloud-security/cloud-security-schedule.ts | 2 +- .../run-connection-checks.ts | 2 +- .../run-integration-checks-schedule.ts | 2 +- .../run-task-integration-checks.ts | 2 +- .../sync-employees-schedule.ts | 2 +- .../trust-access.controller.spec.ts | 2 +- .../trust-portal.controller.spec.ts | 2 +- apps/api/src/utils/compliance-filters.ts | 2 +- .../src/vendors/vendors.controller.spec.ts | 2 +- apps/app/agents.md | 6 +- apps/app/next.config.ts | 2 +- apps/app/package.json | 8 +- apps/app/src/actions/safe-action.ts | 2 +- .../cloud-tests/actions/connect-cloud.ts | 2 +- .../components/CloudSettingsModal.test.tsx | 10 +- .../components/CloudSettingsModal.tsx | 2 +- .../components/EmptyState.test.tsx | 6 +- .../cloud-tests/components/EmptyState.tsx | 4 +- .../[orgId]/components/AppShellWrapper.tsx | 2 +- .../[orgId]/components/DynamicMinHeight.tsx | 2 +- .../[orgId]/components/OnboardingTracker.tsx | 4 +- .../components/ControlDeleteDialog.test.tsx | 8 +- .../components/ControlDeleteDialog.tsx | 6 +- .../components/ControlHeaderActions.test.tsx | 6 +- .../components/ControlHeaderActions.tsx | 4 +- .../[controlId]/components/SingleControl.tsx | 2 +- .../components/SingleControlSkeleton.tsx | 4 +- .../table/ControlRequirementsTable.tsx | 2 +- .../table/ControlRequirementsTableHeader.tsx | 2 +- .../components/CreateControlSheet.tsx | 16 +- .../components/CompanyFormPageClient.tsx | 2 +- .../components/CompanySubmissionWizard.tsx | 2 +- .../src/app/(app)/[orgId]/documents/forms.ts | 4 +- apps/app/src/app/(app)/[orgId]/error.tsx | 2 +- .../components/FrameworkDeleteDialog.test.tsx | 8 +- .../components/FrameworkDeleteDialog.tsx | 6 +- .../components/FrameworkOverview.tsx | 12 +- .../table/FrameworkControlsTable.tsx | 2 +- .../table/FrameworkControlsTableColumns.tsx | 2 +- .../table/FrameworkControlsTableHeader.tsx | 4 +- .../table/RequirementControlsTable.tsx | 2 +- .../table/RequirementControlsTableColumns.tsx | 2 +- .../components/AddFrameworkModal.test.tsx | 6 +- .../components/AddFrameworkModal.tsx | 4 +- .../components/ComplianceOverview.tsx | 2 +- .../components/ComplianceProgressChart.tsx | 4 +- .../components/ConfirmActionDialog.tsx | 4 +- .../components/FindingsOverview.tsx | 8 +- .../components/FrameworksOverview.test.tsx | 4 +- .../components/FrameworksOverview.tsx | 8 +- .../frameworks/components/PeopleChart.tsx | 4 +- .../frameworks/components/PoliciesChart.tsx | 4 +- .../frameworks/components/TasksChart.tsx | 4 +- .../components/ToDoOverview.test.tsx | 10 +- .../frameworks/components/ToDoOverview.tsx | 8 +- .../lib/taskEvidenceDocumentsScore.ts | 2 +- .../components/PlatformIntegrations.test.tsx | 12 +- .../components/PlatformIntegrations.tsx | 10 +- .../integrations/components/SearchInput.tsx | 2 +- .../integrations/components/TaskCard.tsx | 2 +- .../integrations/platform-test/page.tsx | 10 +- .../components/EmployeeDetails.tsx | 2 +- .../[employeeId]/components/EmployeeTasks.tsx | 2 +- .../people/all/actions/revokeInvitation.ts | 2 +- .../all/components/InviteMembersModal.tsx | 10 +- .../people/all/components/MemberRow.tsx | 6 +- .../all/components/MultiRoleCombobox.tsx | 2 +- .../components/MultiRoleComboboxContent.tsx | 4 +- .../components/MultiRoleComboboxTrigger.tsx | 8 +- .../all/components/RemoveDeviceAlert.tsx | 4 +- .../all/components/RemoveMemberAlert.tsx | 4 +- .../components/EmployeeCompletionChart.tsx | 2 +- .../devices/components/CarouselControls.tsx | 2 +- .../components/DeviceComplianceChart.tsx | 4 +- .../components/DeviceDropdownMenu.test.tsx | 6 +- .../devices/components/DeviceDropdownMenu.tsx | 4 +- .../people/devices/components/HostDetails.tsx | 4 +- .../components/PolicyImagePreviewModal.tsx | 2 +- .../people/devices/components/PolicyItem.tsx | 6 +- .../components/policy-assignee-chart.tsx | 2 +- .../components/policy-status-chart.tsx | 2 +- .../components/PolicyArchiveSheet.test.tsx | 2 +- .../components/PolicyArchiveSheet.tsx | 2 +- .../components/PolicyControlMappings.test.tsx | 2 +- .../components/PolicyControlMappings.tsx | 2 +- .../components/PolicyDeleteDialog.tsx | 6 +- .../components/PolicyHeaderActions.tsx | 8 +- .../components/PolicyOverviewSheet.tsx | 2 +- .../components/PolicyStatusBadge.tsx | 2 +- .../components/PolicyVersionsTab.tsx | 8 +- .../components/PublishVersionDialog.tsx | 8 +- .../editor/components/PolicyDetails.test.tsx | 4 +- .../editor/components/PolicyDetails.tsx | 10 +- .../components/FullPolicyHeaderActions.tsx | 8 +- .../all/components/policies-table-columns.tsx | 2 +- .../all/components/policies-table.tsx | 2 +- .../components/QuestionnaireResults.tsx | 2 +- .../components/QuestionnaireResultsCards.tsx | 4 +- .../components/QuestionnaireResultsHeader.tsx | 4 +- .../components/QuestionnaireResultsTable.tsx | 6 +- .../components/QuestionnaireUpload.tsx | 4 +- .../AdditionalDocumentsSection.test.tsx | 10 +- .../components/AdditionalDocumentsSection.tsx | 8 +- .../context/components/ContextSection.tsx | 4 +- .../components/ManualAnswersSection.tsx | 8 +- .../components/PublishedPoliciesSection.tsx | 4 +- .../soa/components/CreateSOADocument.test.tsx | 6 +- .../soa/components/CreateSOADocument.tsx | 4 +- .../soa/components/EditableSOAFields.tsx | 6 +- .../soa/components/SOADocumentInfo.tsx | 2 +- .../soa/components/SOAFrameworkTable.tsx | 2 +- .../soa/components/SOAFrameworkTabs.tsx | 2 +- .../components/SOAPendingApprovalAlert.tsx | 2 +- .../questionnaire/soa/components/SOATable.tsx | 2 +- .../soa/components/SubmitApprovalDialog.tsx | 2 +- .../components/QuestionnaireHistory.tsx | 8 +- .../components/QuestionnaireOverview.tsx | 4 +- .../components/table/RiskColumns.tsx | 4 +- .../penetration-test-page-client.tsx | 4 +- .../penetration-tests-page-client.test.tsx | 14 +- .../penetration-tests-page-client.tsx | 14 +- .../table/CreateApiKeySheet.test.tsx | 2 +- .../components/table/CreateApiKeySheet.tsx | 2 +- .../(app)/[orgId]/settings/billing/page.tsx | 2 +- .../BrowserConnectionClient.test.tsx | 10 +- .../components/BrowserConnectionClient.tsx | 10 +- .../context-hub/ContextTable.test.tsx | 2 +- .../settings/context-hub/ContextTable.tsx | 2 +- .../context-hub/components/context-form.tsx | 10 +- .../components/context-hub-list.tsx | 4 +- .../context-hub/components/context-list.tsx | 8 +- .../components/EditRolePageClient.tsx | 2 +- .../settings/roles/[roleId]/loading.tsx | 2 +- .../roles/components/PermissionMatrix.tsx | 6 +- .../settings/roles/components/RoleForm.tsx | 6 +- .../settings/roles/constants/system-roles.ts | 4 +- .../(app)/[orgId]/settings/roles/loading.tsx | 2 +- .../roles/new/components/NewRoleForm.tsx | 2 +- .../[orgId]/settings/roles/new/loading.tsx | 2 +- .../settings/roles/system/[roleName]/page.tsx | 2 +- .../system/[roleName]/system-role-detail.tsx | 2 +- .../components/AddSecretDialog.test.tsx | 12 +- .../secrets/components/AddSecretDialog.tsx | 12 +- .../components/EditSecretDialog.test.tsx | 12 +- .../secrets/components/EditSecretDialog.tsx | 12 +- .../components/AutomationSettingsDialogs.tsx | 10 +- .../components/PublishDialog.tsx | 8 +- .../components/chat/ChatBreadcrumb.tsx | 2 +- .../evaluation/EvaluationCriteriaCard.tsx | 4 +- .../workflow/components/TestDialog.tsx | 2 +- .../workflow/components/TestResultsPanel.tsx | 2 +- .../components/UnifiedWorkflowCard.tsx | 2 +- .../workflow/components/ViewModeSwitch.tsx | 2 +- .../workflow/components/WorkflowSkeleton.tsx | 2 +- .../workflow/components/WorkflowStepCard.tsx | 2 +- .../workflow/workflow-visualizer-simple.tsx | 6 +- .../components/AutomationOverview.tsx | 2 +- .../overview/components/VersionsCard.tsx | 6 +- .../[taskId]/components/AttachmentItem.tsx | 6 +- .../components/AutomationRunsCard.tsx | 2 +- .../[taskId]/components/PropertySelector.tsx | 6 +- .../[taskId]/components/SingleTask.test.tsx | 8 +- .../tasks/[taskId]/components/SingleTask.tsx | 4 +- .../[taskId]/components/TaskActivity.tsx | 8 +- .../components/TaskAutomationStatusBadge.tsx | 6 +- .../tasks/[taskId]/components/TaskBody.tsx | 4 +- .../[taskId]/components/TaskDeleteDialog.tsx | 4 +- .../components/TaskIntegrationChecks.tsx | 4 +- .../components/TaskPropertiesSidebar.test.tsx | 8 +- .../browser-automations/AutomationItem.tsx | 2 +- .../BrowserAutomationConfigDialog.tsx | 10 +- .../BrowserAutomationsList.test.tsx | 4 +- .../BrowserAutomationsList.tsx | 2 +- .../BrowserEmptyStates.tsx | 6 +- .../browser-automations/BrowserLiveView.tsx | 2 +- .../browser-automations/RunItem.tsx | 2 +- .../findings/CreateFindingButton.tsx | 2 +- .../findings/CreateFindingSheet.test.tsx | 6 +- .../findings/CreateFindingSheet.tsx | 6 +- .../findings/FindingHistoryPanel.tsx | 6 +- .../findings/FindingHistorySheet.tsx | 6 +- .../components/findings/FindingItem.tsx | 12 +- .../findings/FindingStatusBadge.tsx | 2 +- .../components/findings/FindingsList.test.tsx | 4 +- .../components/findings/FindingsList.tsx | 2 +- .../components/AutomationActivityFeed.tsx | 6 +- .../tasks/components/AutomationsSection.tsx | 4 +- .../BulkTaskAssigneeChangeModal.tsx | 10 +- .../tasks/components/BulkTaskDeleteModal.tsx | 4 +- .../components/BulkTaskStatusChangeModal.tsx | 8 +- .../tasks/components/CreateTaskSheet.tsx | 6 +- .../ModernSingleStatusTaskList.test.tsx | 6 +- .../components/ModernSingleStatusTaskList.tsx | 4 +- .../tasks/components/ModernTaskListItem.tsx | 2 +- .../tasks/components/TaskBulkActions.tsx | 2 +- .../tasks/components/TaskFilterHeader.tsx | 2 +- .../tasks/components/TaskStatusIndicator.tsx | 2 +- .../trust/components/approve-dialog.tsx | 6 +- .../[orgId]/trust/components/columns.tsx | 4 +- .../[orgId]/trust/components/deny-dialog.tsx | 8 +- .../trust/components/duration-picker.tsx | 2 +- .../trust/components/grant-columns.tsx | 4 +- .../trust/components/request-columns.tsx | 4 +- .../trust/components/revoke-dialog.tsx | 8 +- .../trust-access-request-client.tsx | 2 +- .../components/AllowedDomainsManager.tsx | 12 +- .../components/BrandSettings.tsx | 2 +- .../TrustPortalAdditionalDocumentsSection.tsx | 6 +- .../components/TrustPortalDomain.tsx | 10 +- .../components/TrustPortalFaqBuilder.tsx | 8 +- .../components/TrustPortalSwitch.tsx | 2 +- .../components/TrustSettingsClient.tsx | 6 +- .../(overview)/components/VendorColumns.tsx | 4 +- .../components/VendorDeleteCell.tsx | 4 +- .../components/VendorInherentRiskSheet.tsx | 2 +- .../components/VendorResidualRiskForm.tsx | 6 +- .../components/VendorResidualRiskSheet.tsx | 2 +- .../update-secondary-fields-form.tsx | 8 +- .../tasks/create-vendor-task-form.test.tsx | 18 +- .../tasks/create-vendor-task-form.tsx | 16 +- .../tasks/create-vendor-task-sheet.tsx | 2 +- .../tasks/data-table/client-columns.tsx | 4 +- .../components/tasks/data-table/columns.tsx | 4 +- .../tasks/data-table/data-table.tsx | 2 +- .../tasks/data-table/empty-states.tsx | 4 +- .../tasks/data-table/filter-toolbar.tsx | 6 +- .../title-and-description.tsx | 4 +- .../update-title-and-description-form.tsx | 4 +- .../update-title-and-description-sheet.tsx | 2 +- .../forms/risks/InherentRiskForm.test.tsx | 6 +- .../forms/risks/InherentRiskForm.tsx | 4 +- .../forms/risks/ResidualRiskForm.test.tsx | 6 +- .../forms/risks/ResidualRiskForm.tsx | 4 +- .../secondary-fields/secondary-fields.tsx | 8 +- .../tasks/[taskId]/components/title/title.tsx | 8 +- .../components/title/update-task-sheet.tsx | 12 +- .../components/charts/category-chart.tsx | 2 +- .../components/charts/status-chart.tsx | 2 +- .../components/charts/vendors-by-category.tsx | 2 +- .../components/charts/vendors-by-status.tsx | 2 +- .../vendors/backup-overview/layout.tsx | 2 +- .../VendorNameAutocompleteField.tsx | 4 +- .../vendors/components/create-vendor-form.tsx | 10 +- .../components/create-vendor-sheet.test.tsx | 2 +- .../components/create-vendor-sheet.tsx | 2 +- .../src/app/(app)/admin/integrations/page.tsx | 8 +- .../[code]/components/InviteStatusCard.tsx | 4 +- .../components/PostPaymentOnboarding.tsx | 4 +- .../components/OnboardingFormActions.tsx | 2 +- .../setup/components/OnboardingStepInput.tsx | 10 +- .../components/OrganizationSetupForm.tsx | 2 +- .../setup/components/SetupLoadingStep.tsx | 2 +- .../(app)/setup/components/accept-invite.tsx | 4 +- .../src/app/(app)/setup/lib/setup-session.ts | 2 +- .../[orgId]/components/booking-step.tsx | 6 +- .../MinimalOrganizationSwitcher.tsx | 4 +- apps/app/src/app/(public)/auth/page.tsx | 4 +- apps/app/src/app/error.tsx | 2 +- apps/app/src/app/global-error.tsx | 2 +- apps/app/src/app/layout.tsx | 2 +- apps/app/src/app/providers.tsx | 4 +- apps/app/src/app/unauthorized.tsx | 4 +- .../app/unsubscribe/preferences/client.tsx | 4 +- apps/app/src/components/RecentAuditLogs.tsx | 2 +- apps/app/src/components/SelectAssignee.tsx | 4 +- .../src/components/ai-elements/code-block.tsx | 6 +- .../components/ai-elements/conversation.tsx | 4 +- .../src/components/ai-elements/message.tsx | 8 +- .../components/ai-elements/prompt-input.tsx | 16 +- .../src/components/ai-elements/reasoning.tsx | 4 +- .../src/components/ai-elements/shimmer.tsx | 2 +- apps/app/src/components/ai-elements/tool.tsx | 6 +- .../components/ai-work-preview-authentic.tsx | 4 +- apps/app/src/components/ai-work-preview.tsx | 4 +- apps/app/src/components/ai/chat-button.tsx | 2 +- apps/app/src/components/ai/chat.tsx | 4 +- apps/app/src/components/animated-layout.tsx | 2 +- apps/app/src/components/animated-wrapper.tsx | 2 +- apps/app/src/components/app-onboarding.tsx | 10 +- apps/app/src/components/assigned-user.tsx | 2 +- apps/app/src/components/beta.tsx | 2 +- apps/app/src/components/chat-user.tsx | 2 +- .../comments/CommentContentView.tsx | 4 +- .../src/components/comments/CommentForm.tsx | 4 +- .../src/components/comments/CommentItem.tsx | 6 +- .../comments/CommentRichTextField.tsx | 4 +- .../data-table/data-table-action-bar.tsx | 6 +- .../data-table-advanced-toolbar.tsx | 2 +- .../data-table/data-table-column-header.tsx | 4 +- .../data-table/data-table-date-filter.tsx | 8 +- .../data-table/data-table-faceted-filter.tsx | 12 +- .../data-table/data-table-filter-list.tsx | 16 +- .../data-table/data-table-filter-menu.tsx | 14 +- .../data-table/data-table-pagination.tsx | 6 +- .../data-table/data-table-range-filter.tsx | 4 +- .../data-table/data-table-skeleton.tsx | 6 +- .../data-table/data-table-slider-filter.tsx | 12 +- .../data-table/data-table-sort-list.tsx | 12 +- .../data-table/data-table-toolbar.tsx | 6 +- .../data-table/data-table-view-options.tsx | 8 +- .../src/components/data-table/data-table.tsx | 4 +- .../data-table/dynamic-container.tsx | 2 +- .../app/src/components/data-table/faceted.tsx | 8 +- .../src/components/data-table/sortable.tsx | 2 +- .../dialogs/checkout-complete-dialog.tsx | 4 +- .../src/components/editor/advanced-editor.tsx | 2 +- .../src/components/editor/policy-editor.tsx | 2 +- apps/app/src/components/error-fallback.tsx | 2 +- apps/app/src/components/file-uploader.tsx | 8 +- .../organization/delete-organization.tsx | 6 +- .../forms/organization/transfer-ownership.tsx | 12 +- .../update-organization-advanced-mode.tsx | 4 +- .../update-organization-evidence-approval.tsx | 2 +- .../organization/update-organization-logo.tsx | 4 +- .../organization/update-organization-name.tsx | 8 +- .../update-organization-website.tsx | 8 +- .../forms/policies/policy-overview.tsx | 12 +- .../forms/policies/update-policy-form.tsx | 4 +- .../forms/risks/InherentRiskForm.tsx | 6 +- .../forms/risks/ResidualRiskForm.tsx | 6 +- .../forms/risks/create-risk-form.tsx | 2 +- .../forms/risks/task/update-task-form.tsx | 12 +- .../risks/task/update-task-overview-form.tsx | 8 +- .../forms/risks/update-risk-form.tsx | 2 +- apps/app/src/components/framework-card.tsx | 4 +- .../app/src/components/frameworks/loading.tsx | 6 +- apps/app/src/components/github-sign-in.tsx | 4 +- apps/app/src/components/google-sign-in.tsx | 4 +- apps/app/src/components/header.tsx | 2 +- .../ConnectIntegrationDialog.test.tsx | 18 +- .../integrations/ConnectIntegrationDialog.tsx | 6 +- .../integrations/ManageIntegrationDialog.tsx | 16 +- .../layout/MinimalOrganizationSwitcher.tsx | 4 +- .../src/components/layout/MinimalUserMenu.tsx | 4 +- .../components/layout/OnboardingUserMenu.tsx | 4 +- .../components/layout/SelectionIndicator.tsx | 2 +- apps/app/src/components/login-form.tsx | 6 +- apps/app/src/components/logo-spinner.tsx | 2 +- apps/app/src/components/magic-link.tsx | 8 +- apps/app/src/components/main-menu.tsx | 10 +- apps/app/src/components/microsoft-sign-in.tsx | 4 +- apps/app/src/components/mini-data-stream.tsx | 2 +- apps/app/src/components/mobile-menu.tsx | 6 +- .../app/src/components/pages/PageCore.tsx.tsx | 2 +- .../components/pages/PageWithBreadcrumb.tsx | 4 +- .../policies/charts/policies-by-assignee.tsx | 2 +- .../policies/charts/policies-status.tsx | 4 +- .../policies/charts/policy-overview.tsx | 4 +- .../components/risks/charts/RisksAssignee.tsx | 6 +- .../components/risks/charts/assessment.tsx | 4 +- .../risks/charts/department-chart.tsx | 2 +- .../components/risks/charts/donut-chart.tsx | 2 +- .../risks/charts/risks-by-department.tsx | 2 +- .../risks/charts/risks-by-status.tsx | 2 +- .../components/risks/charts/status-chart.tsx | 2 +- .../components/risks/tasks/task-overview.tsx | 6 +- apps/app/src/components/search-field.tsx | 4 +- apps/app/src/components/select-user.tsx | 4 +- apps/app/src/components/selectable-pill.tsx | 2 +- .../src/components/sheets/assistant-sheet.tsx | 6 +- .../components/sheets/create-policy-sheet.tsx | 2 +- .../sheets/create-risk-sheet.test.tsx | 2 +- .../components/sheets/create-risk-sheet.tsx | 2 +- .../components/sheets/risk-overview-sheet.tsx | 2 +- .../components/sheets/task-overview-sheet.tsx | 10 +- .../components/sidebar-collapse-button.tsx | 4 +- apps/app/src/components/sidebar-logo.tsx | 4 +- apps/app/src/components/sidebar.tsx | 2 +- apps/app/src/components/sign-out.tsx | 4 +- apps/app/src/components/skeleton-loader.tsx | 4 +- apps/app/src/components/status-date.tsx | 2 +- apps/app/src/components/status-indicator.tsx | 2 +- .../tables/people/employee-status.tsx | 2 +- .../components/tables/policies/columns.tsx | 2 +- .../tables/policies/data-table-header.tsx | 4 +- .../tables/policies/data-table-pagination.tsx | 4 +- .../components/tables/policies/data-table.tsx | 4 +- .../tables/policies/empty-states.tsx | 4 +- .../tables/policies/filter-toolbar.tsx | 10 +- .../components/tables/policies/loading.tsx | 6 +- .../tables/risk-register/columns.tsx | 4 +- .../risk-register/data-table-header.tsx | 4 +- .../risk-register/data-table-pagination.tsx | 4 +- .../tables/risk-register/data-table.tsx | 4 +- .../tables/risk-register/empty-states.tsx | 4 +- .../tables/risk-register/filter-toolbar.tsx | 10 +- .../tables/risk-register/loading.tsx | 6 +- .../components/tables/risk-tasks/columns.tsx | 2 +- .../tables/risk-tasks/data-table-header.tsx | 4 +- .../risk-tasks/data-table-pagination.tsx | 4 +- .../tables/risk-tasks/data-table.tsx | 4 +- .../tables/risk-tasks/empty-states.tsx | 4 +- .../tables/risk-tasks/filter-toolbar.tsx | 6 +- .../components/tables/risk-tasks/loading.tsx | 6 +- .../task-items/TaskItemActivityTimeline.tsx | 4 +- .../task-items/TaskItemCreateDialog.tsx | 2 +- .../task-items/TaskItemDescriptionView.tsx | 6 +- .../TaskItemEditableDescription.tsx | 2 +- .../task-items/TaskItemFocusSidebar.tsx | 4 +- .../task-items/TaskItemFocusView.tsx | 2 +- .../task-items/TaskItemItem.test.tsx | 18 +- .../components/task-items/TaskItemItem.tsx | 6 +- .../components/task-items/TaskItemsHeader.tsx | 2 +- .../task-items/TaskRichDescriptionField.tsx | 10 +- .../task-items/TaskSmartForm.test.tsx | 10 +- .../components/task-items/TaskSmartForm.tsx | 8 +- ...erifyRiskAssessmentTaskItemSkeletonRow.tsx | 2 +- .../tests/charts/tests-by-assignee.tsx | 2 +- .../tests/charts/tests-severity.tsx | 4 +- apps/app/src/components/ui/button-icon.tsx | 2 +- .../components/ui/data-table/DataTable.tsx | 12 +- .../ui/data-table/DataTableHeader.tsx | 4 +- .../ui/data-table/DataTablePagination.tsx | 4 +- .../ui/data-table/DataTableSkeleton.tsx | 4 +- apps/app/src/components/upload/FileCard.tsx | 10 +- apps/app/src/components/user-menu.tsx | 4 +- .../SecurityAssessmentContent.tsx | 2 +- ...VendorRiskAssessmentCertificationsCard.tsx | 8 +- .../VendorRiskAssessmentSkeleton.tsx | 4 +- .../VendorRiskAssessmentTimelineCard.tsx | 6 +- .../VendorRiskAssessmentView.tsx | 2 +- apps/app/src/components/vendor-status.tsx | 2 +- apps/app/src/hooks/use-findings-api.ts | 2 +- .../app/src/hooks/use-integration-platform.ts | 2 +- apps/app/src/hooks/use-permissions.ts | 2 +- apps/app/src/lib/compliance.ts | 2 +- apps/app/src/lib/permissions.server.ts | 2 +- apps/app/src/lib/permissions.ts | 6 +- apps/app/src/lib/rate-limit.ts | 2 +- apps/app/src/test-utils/mocks/db.ts | 2 +- apps/app/src/test-utils/mocks/permissions.ts | 2 +- .../trigger/tasks/email/new-policy-email.ts | 4 +- .../tasks/email/publish-all-policies-email.ts | 4 +- .../tasks/email/weekly-task-digest-email.ts | 2 +- .../tasks/integration/integration-results.ts | 4 +- apps/app/src/utils/permissions.ts | 4 +- apps/app/src/utils/tracking.ts | 2 +- apps/app/tsconfig.json | 48 ++--- apps/portal/next.config.ts | 2 +- apps/portal/package.json | 6 +- apps/portal/src/actions/safe-action.ts | 2 +- .../[orgId]/components/EmployeeTasksList.tsx | 2 +- .../components/policy/AdvancedEditor.tsx | 2 +- .../tasks/PolicyImagePreviewModal.tsx | 2 +- .../(app)/(home)/[orgId]/documents/forms.ts | 4 +- .../(home)/components/NoAccessMessage.tsx | 2 +- .../(public)/auth/device-callback/page.tsx | 4 +- apps/portal/src/app/(public)/auth/page.tsx | 6 +- .../src/app/api/download-agent/route.ts | 2 +- .../src/app/api/download-agent/token/route.ts | 2 +- .../src/app/components/google-sign-in.tsx | 4 +- apps/portal/src/app/components/header.tsx | 4 +- apps/portal/src/app/components/logout.tsx | 2 +- apps/portal/src/app/components/main-menu.tsx | 6 +- .../src/app/components/microsoft-sign-in.tsx | 4 +- .../portal/src/app/components/mobile-menu.tsx | 6 +- apps/portal/src/app/components/otp-form.tsx | 6 +- apps/portal/src/app/components/otp.tsx | 8 +- apps/portal/src/app/components/sidebar.tsx | 2 +- .../src/app/components/theme-switch.tsx | 2 +- apps/portal/src/app/components/user-menu.tsx | 4 +- apps/portal/src/app/layout.tsx | 4 +- apps/portal/src/app/lib/auth-client.ts | 2 +- apps/portal/src/app/lib/permissions.ts | 4 +- apps/portal/src/app/providers.tsx | 2 +- apps/portal/tailwind.config.ts | 2 +- apps/portal/tsconfig.json | 40 ++-- bun.lock | 192 +++++++++--------- package.json | 8 +- packages/auth/package.json | 2 +- packages/company/package.json | 2 +- packages/device-agent/package.json | 2 +- packages/docs/package.json | 4 +- packages/integration-platform/package.json | 2 +- packages/integration-platform/src/types.ts | 2 +- packages/integrations/package.json | 2 +- packages/integrations/tsconfig.json | 2 +- .../ui/src/components/editor/utils/README.md | 14 +- turbo.json | 2 +- 554 files changed, 1407 insertions(+), 1402 deletions(-) diff --git a/.claude/agents/ds-migration-reviewer.md b/.claude/agents/ds-migration-reviewer.md index e6637a5e35..235cbc41ef 100644 --- a/.claude/agents/ds-migration-reviewer.md +++ b/.claude/agents/ds-migration-reviewer.md @@ -1,6 +1,6 @@ --- name: ds-migration-reviewer -description: Checks files for @comp/ui and lucide-react imports that can be migrated to @trycompai/design-system +description: Checks files for @trycompai/ui and lucide-react imports that can be migrated to @trycompai/design-system tools: Read, Grep, Glob, Bash --- @@ -10,7 +10,7 @@ You review frontend files for design system migration opportunities. For each file provided, identify: -1. **`@comp/ui` imports** — check if `@trycompai/design-system` has an equivalent: +1. **`@trycompai/ui` imports** — check if `@trycompai/design-system` has an equivalent: ```bash node -e "console.log(Object.keys(require('@trycompai/design-system')))" ``` @@ -20,7 +20,7 @@ For each file provided, identify: node -e "const i = require('@trycompai/design-system/icons'); console.log(Object.keys(i).filter(k => k.match(/SearchTerm/i)))" ``` -3. **`@comp/ui/button` Button** — DS Button has `loading`, `iconLeft`, `iconRight` props. Manual spinner/icon rendering inside buttons should use these props instead. +3. **`@trycompai/ui/button` Button** — DS Button has `loading`, `iconLeft`, `iconRight` props. Manual spinner/icon rendering inside buttons should use these props instead. 4. **Raw HTML layout** (`
`) — check if `Stack`, `HStack`, `PageLayout`, `PageHeader`, `Section` could replace it. @@ -29,7 +29,7 @@ For each file provided, identify: - DS `Text`, `Stack`, `HStack`, `Badge`, `Button` do NOT accept `className` — wrap in `
` if styling needed - Icons come from `@trycompai/design-system/icons` (Carbon icons) - Only flag migrations where a DS equivalent actually exists — verify by checking exports -- Don't flag `@comp/ui` usage for components that have no DS equivalent yet +- Don't flag `@trycompai/ui` usage for components that have no DS equivalent yet ## Output format diff --git a/.claude/skills/audit-design-system/SKILL.md b/.claude/skills/audit-design-system/SKILL.md index 4afb32b178..a0f25f6319 100644 --- a/.claude/skills/audit-design-system/SKILL.md +++ b/.claude/skills/audit-design-system/SKILL.md @@ -1,14 +1,14 @@ --- name: audit-design-system -description: Audit & fix design system usage — migrate @comp/ui and lucide-react to @trycompai/design-system +description: Audit & fix design system usage — migrate @trycompai/ui and lucide-react to @trycompai/design-system --- Audit the specified files for design system compliance. **Fix every issue found immediately.** ## Rules -1. **`@trycompai/design-system`** is the primary component library. `@comp/ui` is legacy — only use as last resort when no DS equivalent exists. -2. **Always check DS exports first** before reaching for `@comp/ui`. Run `node -e "console.log(Object.keys(require('@trycompai/design-system')))"` to check. +1. **`@trycompai/design-system`** is the primary component library. `@trycompai/ui` is legacy — only use as last resort when no DS equivalent exists. +2. **Always check DS exports first** before reaching for `@trycompai/ui`. Run `node -e "console.log(Object.keys(require('@trycompai/design-system')))"` to check. 3. **Icons**: Use `@trycompai/design-system/icons` (Carbon icons), NOT `lucide-react`. Check with `node -e "const i = require('@trycompai/design-system/icons'); console.log(Object.keys(i).filter(k => k.match(/YourSearch/i)))"`. 4. **DS components that do NOT accept `className`**: `Text`, `Stack`, `HStack`, `Badge`, `Button` — wrap in `
` for custom styling. 5. **Button**: Use DS `Button` with `loading`, `iconLeft`, `iconRight` props instead of manually rendering spinners/icons. @@ -17,7 +17,7 @@ Audit the specified files for design system compliance. **Fix every issue found ## Process 1. Read files specified in `$ARGUMENTS` -2. Find `@comp/ui` imports — check if DS equivalent exists +2. Find `@trycompai/ui` imports — check if DS equivalent exists 3. Find `lucide-react` imports — find matching Carbon icons 4. Migrate components and icons -5. Run build to verify: `npx turbo run typecheck --filter=@comp/app` +5. Run build to verify: `npx turbo run typecheck --filter=@trycompai/app` diff --git a/.claude/skills/audit-hooks/SKILL.md b/.claude/skills/audit-hooks/SKILL.md index ab74d70795..d3f60a1752 100644 --- a/.claude/skills/audit-hooks/SKILL.md +++ b/.claude/skills/audit-hooks/SKILL.md @@ -31,4 +31,4 @@ Audit the specified files for hook and API usage compliance. **Fix every issue f 1. Read files specified in `$ARGUMENTS` 2. Find forbidden patterns and fix them 3. Ensure all data fetching uses SWR hooks -4. Run typecheck to verify: `npx turbo run typecheck --filter=@comp/app` +4. Run typecheck to verify: `npx turbo run typecheck --filter=@trycompai/app` diff --git a/.claude/skills/audit-rbac/SKILL.md b/.claude/skills/audit-rbac/SKILL.md index a7acb60e14..dbb5f7e0da 100644 --- a/.claude/skills/audit-rbac/SKILL.md +++ b/.claude/skills/audit-rbac/SKILL.md @@ -39,4 +39,4 @@ Audit the specified files or directories for RBAC and audit log compliance. **Fi 1. Read files specified in `$ARGUMENTS` (or scan the directory) 2. Check each rule above 3. **Fix every violation immediately** — don't just report -4. Run typecheck to verify: `npx turbo run typecheck --filter=@comp/api --filter=@comp/app` +4. Run typecheck to verify: `npx turbo run typecheck --filter=@trycompai/api --filter=@trycompai/app` diff --git a/.claude/skills/production-readiness/SKILL.md b/.claude/skills/production-readiness/SKILL.md index fec480252e..0300513a9e 100644 --- a/.claude/skills/production-readiness/SKILL.md +++ b/.claude/skills/production-readiness/SKILL.md @@ -14,7 +14,7 @@ Use parallel subagents to run all four audits simultaneously: Then run full monorepo verification: ```bash -npx turbo run typecheck --filter=@comp/api --filter=@comp/app +npx turbo run typecheck --filter=@trycompai/api --filter=@trycompai/app cd apps/app && npx vitest run ``` diff --git a/.cursor/rules/essentials.mdc b/.cursor/rules/essentials.mdc index 221d41af00..d45fd27e0e 100644 --- a/.cursor/rules/essentials.mdc +++ b/.cursor/rules/essentials.mdc @@ -19,7 +19,7 @@ bunx # Execute binary ## Components -**Use `@trycompai/design-system` first**, `@comp/ui` only as fallback. +**Use `@trycompai/design-system` first**, `@trycompai/ui` only as fallback. ```tsx // ✅ Design system @@ -27,7 +27,7 @@ import { Button, Card, Input, Select } from '@trycompai/design-system'; import { Add, Close } from '@trycompai/design-system/icons'; // ❌ Don't use when DS has the component -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Plus } from 'lucide-react'; ``` diff --git a/.cursor/rules/infra.mdc b/.cursor/rules/infra.mdc index 064b297e0f..e6d9e0fefd 100644 --- a/.cursor/rules/infra.mdc +++ b/.cursor/rules/infra.mdc @@ -26,7 +26,7 @@ comp/ │ ├── app/ # Next.js main app │ └── portal/ # Next.js portal ├── packages/ -│ ├── db/ # Prisma (@comp/db) +│ ├── db/ # Prisma (@trycompai/db) │ ├── ui/ # UI components (@trycompai/ui) │ └── ... ├── turbo.json @@ -44,7 +44,7 @@ bun run dev # Dev all # Single package bun run -F apps/app dev -bun run -F @comp/db prisma:generate +bun run -F @trycompai/db prisma:generate turbo build --filter=@trycompai/ui ``` @@ -53,7 +53,7 @@ turbo build --filter=@trycompai/ui ```tsx // ✅ Import from package name import { Button } from '@trycompai/design-system'; -import { prisma } from '@comp/db'; +import { prisma } from '@trycompai/db'; // ❌ Never relative paths across packages import { Button } from '../../../packages/ui/src/button'; @@ -116,7 +116,7 @@ mkdir packages/my-package ```json // packages/my-package/tsconfig.json { - "extends": "@comp/tsconfig/base.json", + "extends": "@trycompai/tsconfig/base.json", "include": ["src"] } ``` diff --git a/.cursor/rules/ui.mdc b/.cursor/rules/ui.mdc index ff90fb5349..4cab259802 100644 --- a/.cursor/rules/ui.mdc +++ b/.cursor/rules/ui.mdc @@ -6,7 +6,7 @@ alwaysApply: true ## Design System Priority 1. **First choice:** `@trycompai/design-system` -2. **Fallback:** `@comp/ui` only if DS doesn't have the component +2. **Fallback:** `@trycompai/ui` only if DS doesn't have the component ```tsx // ✅ Design system @@ -14,7 +14,7 @@ import { Button, Card, Input, Sheet, Badge } from '@trycompai/design-system'; import { Add, Close, ArrowRight } from '@trycompai/design-system/icons'; // ❌ Don't use when DS has it -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Plus } from 'lucide-react'; ``` diff --git a/.cursorrules b/.cursorrules index e99401dea2..8b14d41ec4 100644 --- a/.cursorrules +++ b/.cursorrules @@ -9,7 +9,7 @@ Read CLAUDE.md at the repo root and apps/api/CLAUDE.md for comprehensive project - **Max 300 lines** per file. - **Session auth only** — no JWT. Use `credentials: 'include'` for API calls. - **RBAC**: `@RequirePermission('resource', 'action')` on every API endpoint. Gate UI with `hasPermission()`. -- **Design system**: Always `@trycompai/design-system` first, `@comp/ui` only as fallback. Icons from `@trycompai/design-system/icons`. +- **Design system**: Always `@trycompai/design-system` first, `@trycompai/ui` only as fallback. Icons from `@trycompai/design-system/icons`. - **Data fetching**: Server components use `serverApi`. Client components use SWR hooks with `apiClient`. - **No server actions** for new features. Call NestJS API directly. - **Tests required** for every new feature. TDD preferred. diff --git a/.github/workflows/maced-contract-canary.yml b/.github/workflows/maced-contract-canary.yml index ab1d9675bc..d308a2638c 100644 --- a/.github/workflows/maced-contract-canary.yml +++ b/.github/workflows/maced-contract-canary.yml @@ -1,14 +1,15 @@ name: Maced contract canary on: - pull_request: - paths: - - 'apps/api/src/security-penetration-tests/**' - - 'apps/api/test/maced-contract.e2e-spec.ts' - - 'apps/api/package.json' - - '.github/workflows/maced-contract-canary.yml' - schedule: - - cron: '0 * * * *' + # Temporarily disabled — Maced API is unavailable + # pull_request: + # paths: + # - 'apps/api/src/security-penetration-tests/**' + # - 'apps/api/test/maced-contract.e2e-spec.ts' + # - 'apps/api/package.json' + # - '.github/workflows/maced-contract-canary.yml' + # schedule: + # - cron: '0 * * * *' workflow_dispatch: permissions: diff --git a/.syncpackrc.json b/.syncpackrc.json index fa39a04819..8a2814f625 100644 --- a/.syncpackrc.json +++ b/.syncpackrc.json @@ -4,8 +4,8 @@ "semverGroups": [ { "label": "Use exact versions for internal packages", - "packages": ["@comp/**"], - "dependencies": ["@comp/**"], + "packages": ["@trycompai/**"], + "dependencies": ["@trycompai/**"], "range": "workspace:*" } ], diff --git a/CHANGELOG.md b/CHANGELOG.md index 021d34ec94..fce77e50ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -176,7 +176,7 @@ Co-Authored-By: Claude Opus 4.5 * feat(rbac): add shared auth package and API integration -- Add @comp/auth package with centralized permissions and role definitions +- Add @trycompai/auth package with centralized permissions and role definitions - Update API auth module to integrate with better-auth server - Add 403 responses to policy and risk endpoints for Swagger - Add assignment filter and department visibility utilities with tests @@ -603,7 +603,7 @@ Co-Authored-By: Claude Opus 4.5 * feat(rbac): add shared auth package and API integration -- Add @comp/auth package with centralized permissions and role definitions +- Add @trycompai/auth package with centralized permissions and role definitions - Update API auth module to integrate with better-auth server - Add 403 responses to policy and risk endpoints for Swagger - Add assignment filter and department visibility utilities with tests @@ -1056,7 +1056,7 @@ Co-Authored-By: Claude Opus 4.6 ### Bug Fixes -* **api:** add @comp/company package to Dockerfile ([#2148](https://github.com/trycompai/comp/issues/2148)) ([d91bcaa](https://github.com/trycompai/comp/commit/d91bcaa5a92557a1b47a12ec6b396715744fca7f)) +* **api:** add @trycompai/company package to Dockerfile ([#2148](https://github.com/trycompai/comp/issues/2148)) ([d91bcaa](https://github.com/trycompai/comp/commit/d91bcaa5a92557a1b47a12ec6b396715744fca7f)) * **api:** inline mergeDeviceLists to fix production runtime crash ([#2146](https://github.com/trycompai/comp/issues/2146)) ([04ef343](https://github.com/trycompai/comp/commit/04ef343011defa91609ba9ba69b85776063198db)) ## [1.83.1](https://github.com/trycompai/comp/compare/v1.83.0...v1.83.1) (2026-02-17) diff --git a/CLAUDE.md b/CLAUDE.md index 02cf993199..cfecc4842d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -3,8 +3,8 @@ ## Tooling - **Package manager**: `bun` (never npm/yarn/pnpm) -- **Build**: `bun run build` (uses turbo). Filter: `bun run --filter '@comp/app' build` -- **Typecheck**: `bun run typecheck` or `npx turbo run typecheck --filter=@comp/api` +- **Build**: `bun run build` (uses turbo). Filter: `bun run --filter '@trycompai/app' build` +- **Typecheck**: `bun run typecheck` or `npx turbo run typecheck --filter=@trycompai/api` - **Tests (app)**: `cd apps/app && npx vitest run` - **Tests (api)**: `cd apps/api && npx jest src/ --passWithNoTests` - **Lint**: `bun run lint` @@ -106,13 +106,13 @@ Every customer-facing API endpoint MUST have: ## Design System -- **Always prefer `@trycompai/design-system`** over `@comp/ui`. Check DS exports first. -- `@comp/ui` is the legacy library being phased out — only use as last resort. +- **Always prefer `@trycompai/design-system`** over `@trycompai/ui`. Check DS exports first. +- `@trycompai/ui` is the legacy library being phased out — only use as last resort. - **Icons**: `@trycompai/design-system/icons` (Carbon icons), NOT `lucide-react` - **DS components that do NOT accept `className`**: `Text`, `Stack`, `HStack`, `Badge`, `Button` — wrap in `
` for custom styling - **Layout**: Use `PageLayout`, `PageHeader`, `Stack`, `HStack`, `Section`, `SettingGroup` - **Patterns**: Sheet (`Sheet > SheetContent > SheetHeader + SheetBody`), Drawer, Collapsible -- **After editing any frontend component**: Run the `audit-design-system` skill to catch `@comp/ui` or `lucide-react` imports that should be migrated +- **After editing any frontend component**: Run the `audit-design-system` skill to catch `@trycompai/ui` or `lucide-react` imports that should be migrated ## Data Fetching diff --git a/README.md b/README.md index 1eb2f6bd54..55a4cbfdaa 100644 --- a/README.md +++ b/README.md @@ -344,10 +344,10 @@ Steps to deploy Comp AI on Vercel are coming soon. This repository uses semantic-release to automatically publish packages to npm when merging to the `release` branch. The following packages are published: -- `@comp/db` - Database utilities with Prisma client -- `@comp/email` - Email templates and components -- `@comp/kv` - Key-value store utilities using Upstash Redis -- `@comp/ui` - UI component library with Tailwind CSS +- `@trycompai/db` - Database utilities with Prisma client +- `@trycompai/email` - Email templates and components +- `@trycompai/kv` - Key-value store utilities using Upstash Redis +- `@trycompai/ui` - UI component library with Tailwind CSS ### Setup @@ -359,11 +359,11 @@ This repository uses semantic-release to automatically publish packages to npm w ```bash # Install a published package -npm install @comp/ui +npm install @trycompai/ui # Use in your project -import { Button } from '@comp/ui/button' -import { client } from '@comp/kv' +import { Button } from '@trycompai/ui/button' +import { client } from '@trycompai/kv' ``` ### Development @@ -373,7 +373,7 @@ import { client } from '@comp/kv' bun run build # Build specific package -bun run -F @comp/ui build +bun run -F @trycompai/ui build # Test packages locally bun run release:packages --dry-run diff --git a/REVIEW.md b/REVIEW.md index fb0498de91..ef7e13175c 100644 --- a/REVIEW.md +++ b/REVIEW.md @@ -19,7 +19,7 @@ - Multi-step orchestration should use Next.js API routes (`apps/app/src/app/api/...`), not server actions ### Design System -- New UI must use `@trycompai/design-system` components, not `@comp/ui` (legacy, being phased out) +- New UI must use `@trycompai/design-system` components, not `@trycompai/ui` (legacy, being phased out) - Icons must come from `@trycompai/design-system/icons` (Carbon icons), not `lucide-react` - DS components `Text`, `Stack`, `HStack`, `Badge`, `Button` do not accept `className` — wrap in a `
` for custom styling - Use DS `Button` props like `loading`, `iconLeft`, `iconRight` instead of manually rendering spinners/icons inside buttons @@ -49,7 +49,7 @@ - No `useState` for form field values — use the form's state management ## Skip -- Pre-existing `@comp/ui` usage in files not touched by the PR +- Pre-existing `@trycompai/ui` usage in files not touched by the PR - Pre-existing `lucide-react` usage in files not touched by the PR - Pre-existing server actions in files not touched by the PR - Test files using simplified mock types diff --git a/apps/api/.cursorrules b/apps/api/.cursorrules index 392a8df421..042b4c39c1 100644 --- a/apps/api/.cursorrules +++ b/apps/api/.cursorrules @@ -24,10 +24,10 @@ Read CLAUDE.md in this directory for comprehensive API development guidelines. npx jest src/ --passWithNoTests # Run all API tests -npx turbo run test --filter=@comp/api +npx turbo run test --filter=@trycompai/api # Type-check -npx turbo run typecheck --filter=@comp/api +npx turbo run typecheck --filter=@trycompai/api ``` ### Test File Conventions diff --git a/apps/api/CLAUDE.md b/apps/api/CLAUDE.md index a76533f21e..3bafe45ef3 100644 --- a/apps/api/CLAUDE.md +++ b/apps/api/CLAUDE.md @@ -73,10 +73,10 @@ npx jest src/ --passWithNoTests npx jest --onlyChanged # Run all API tests (from repo root) -npx turbo run test --filter=@comp/api +npx turbo run test --filter=@trycompai/api # Type-check before committing -npx turbo run typecheck --filter=@comp/api +npx turbo run typecheck --filter=@trycompai/api ``` ### Test Patterns @@ -138,7 +138,7 @@ const module = await Test.createTestingModule({ 1. **Before coding**: Read existing code patterns in the module 2. **During coding**: Follow established patterns, add types 3. **After coding**: - - Run `npx turbo run typecheck --filter=@comp/api` + - Run `npx turbo run typecheck --filter=@trycompai/api` - Write and run tests: `npx jest src/` - Commit with conventional commit message @@ -146,10 +146,10 @@ const module = await Test.createTestingModule({ ```bash # Start API in development -npx turbo run dev --filter=@comp/api +npx turbo run dev --filter=@trycompai/api # Type-check -npx turbo run typecheck --filter=@comp/api +npx turbo run typecheck --filter=@trycompai/api # Run specific test file npx jest src/roles/roles.service.spec.ts diff --git a/apps/api/buildspec.yml b/apps/api/buildspec.yml index c3d4f14fe4..26b9091ed0 100644 --- a/apps/api/buildspec.yml +++ b/apps/api/buildspec.yml @@ -33,7 +33,7 @@ phases: # Install only API workspace dependencies - echo "Installing API dependencies only..." - - bun install --filter=@comp/api --frozen-lockfile || bun install --filter=@comp/api --ignore-scripts || bun install --ignore-scripts + - bun install --filter=@trycompai/api --frozen-lockfile || bun install --filter=@trycompai/api --ignore-scripts || bun install --ignore-scripts # Build workspace packages - echo "Building workspace packages..." @@ -78,28 +78,28 @@ phases: # Remove workspace symlinks and replace with built versions - rm -rf ../docker-build/node_modules/@trycompai/utils - rm -rf ../docker-build/node_modules/@trycompai/db - - rm -rf ../docker-build/node_modules/@comp/integration-platform - - rm -rf ../docker-build/node_modules/@comp/auth - - rm -rf ../docker-build/node_modules/@comp/company + - rm -rf ../docker-build/node_modules/@trycompai/integration-platform + - rm -rf ../docker-build/node_modules/@trycompai/auth + - rm -rf ../docker-build/node_modules/@trycompai/company - mkdir -p ../docker-build/node_modules/@trycompai/utils - mkdir -p ../docker-build/node_modules/@trycompai/db - - mkdir -p ../docker-build/node_modules/@comp/integration-platform - - mkdir -p ../docker-build/node_modules/@comp/auth - - mkdir -p ../docker-build/node_modules/@comp/company + - mkdir -p ../docker-build/node_modules/@trycompai/integration-platform + - mkdir -p ../docker-build/node_modules/@trycompai/auth + - mkdir -p ../docker-build/node_modules/@trycompai/company - cp -r ../../packages/utils/src ../docker-build/node_modules/@trycompai/utils/ - cp ../../packages/utils/package.json ../docker-build/node_modules/@trycompai/utils/ - cp -r ../../packages/db/dist ../docker-build/node_modules/@trycompai/db/ - cp ../../packages/db/package.json ../docker-build/node_modules/@trycompai/db/ - - cp -r ../../packages/integration-platform/dist ../docker-build/node_modules/@comp/integration-platform/ - - cp ../../packages/integration-platform/package.json ../docker-build/node_modules/@comp/integration-platform/ - - cp -r ../../packages/auth/dist ../docker-build/node_modules/@comp/auth/ - - cp ../../packages/auth/package.json ../docker-build/node_modules/@comp/auth/ - - cp -r ../../packages/company/dist ../docker-build/node_modules/@comp/company/ - - cp ../../packages/company/package.json ../docker-build/node_modules/@comp/company/ + - cp -r ../../packages/integration-platform/dist ../docker-build/node_modules/@trycompai/integration-platform/ + - cp ../../packages/integration-platform/package.json ../docker-build/node_modules/@trycompai/integration-platform/ + - cp -r ../../packages/auth/dist ../docker-build/node_modules/@trycompai/auth/ + - cp ../../packages/auth/package.json ../docker-build/node_modules/@trycompai/auth/ + - cp -r ../../packages/company/dist ../docker-build/node_modules/@trycompai/company/ + - cp ../../packages/company/package.json ../docker-build/node_modules/@trycompai/company/ - cp Dockerfile ../docker-build/ # Remove workspace dependencies from package.json (they're copied manually above) - - cat package.json | jq 'del(.dependencies["@comp/integration-platform"]) | del(.dependencies["@comp/auth"]) | del(.dependencies["@comp/company"])' > ../docker-build/package.json + - cat package.json | jq 'del(.dependencies["@trycompai/integration-platform"]) | del(.dependencies["@trycompai/auth"]) | del(.dependencies["@trycompai/company"])' > ../docker-build/package.json - cp ../../bun.lock ../docker-build/ || true - echo "Building Docker image..." diff --git a/apps/api/integrationPlatformExtension.ts b/apps/api/integrationPlatformExtension.ts index 3b8e960023..77beb8fc42 100644 --- a/apps/api/integrationPlatformExtension.ts +++ b/apps/api/integrationPlatformExtension.ts @@ -8,12 +8,12 @@ import { existsSync } from 'node:fs'; import { cp, mkdir } from 'node:fs/promises'; import { dirname, resolve } from 'node:path'; -const PACKAGE_NAME = '@comp/integration-platform'; +const PACKAGE_NAME = '@trycompai/integration-platform'; /** - * Custom Trigger.dev build extension for @comp/integration-platform workspace package. + * Custom Trigger.dev build extension for @trycompai/integration-platform workspace package. * - * Since @comp/integration-platform is a workspace package (not published to npm), + * Since @trycompai/integration-platform is a workspace package (not published to npm), * we need to: * 1. Add an esbuild plugin to resolve the import path during build * 2. Copy the built dist files into the trigger.dev deployment @@ -51,15 +51,15 @@ class IntegrationPlatformExtension implements BuildExtension { name: 'resolve-integration-platform', setup(build) { // Resolve bare import - build.onResolve({ filter: /^@comp\/integration-platform$/ }, () => { + build.onResolve({ filter: /^@trycompai\/integration-platform$/ }, () => { return { path: resolve(packagePath, 'dist/index.js'), }; }); - // Resolve subpath imports like @comp/integration-platform/types + // Resolve subpath imports like @trycompai/integration-platform/types build.onResolve( - { filter: /^@comp\/integration-platform\// }, + { filter: /^@trycompai\/integration-platform\// }, (args) => { const subpath = args.path.replace(`${PACKAGE_NAME}/`, ''); return { @@ -88,7 +88,7 @@ class IntegrationPlatformExtension implements BuildExtension { // Copy the entire dist to the build output const destPath = resolve( manifest.outputPath, - 'node_modules/@comp/integration-platform', + 'node_modules/@trycompai/integration-platform', ); const destDistPath = resolve(destPath, 'dist'); @@ -104,7 +104,7 @@ class IntegrationPlatformExtension implements BuildExtension { } context.logger.log( - 'Copied @comp/integration-platform to deployment bundle', + 'Copied @trycompai/integration-platform to deployment bundle', ); } diff --git a/apps/api/package.json b/apps/api/package.json index 5744056536..ef51a68db3 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -1,5 +1,5 @@ { - "name": "@comp/api", + "name": "@trycompai/api", "description": "", "version": "0.0.1", "author": "", @@ -14,9 +14,9 @@ "@aws-sdk/s3-request-presigner": "^3.859.0", "@browserbasehq/sdk": "^2.6.0", "@browserbasehq/stagehand": "^3.0.5", - "@comp/auth": "workspace:*", - "@comp/company": "workspace:*", - "@comp/integration-platform": "workspace:*", + "@trycompai/auth": "workspace:*", + "@trycompai/company": "workspace:*", + "@trycompai/integration-platform": "workspace:*", "@mendable/firecrawl-js": "^4.9.3", "@nestjs/common": "^11.0.1", "@nestjs/config": "^4.0.2", diff --git a/apps/api/src/attachments/attachments.controller.spec.ts b/apps/api/src/attachments/attachments.controller.spec.ts index f77a0d39f9..7b2d134285 100644 --- a/apps/api/src/attachments/attachments.controller.spec.ts +++ b/apps/api/src/attachments/attachments.controller.spec.ts @@ -8,7 +8,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: {}, BUILT_IN_ROLE_PERMISSIONS: {}, })); diff --git a/apps/api/src/audit/audit-log.controller.spec.ts b/apps/api/src/audit/audit-log.controller.spec.ts index 15bd98ba7f..de9f1efb7e 100644 --- a/apps/api/src/audit/audit-log.controller.spec.ts +++ b/apps/api/src/audit/audit-log.controller.spec.ts @@ -8,7 +8,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { app: ['read'], }, diff --git a/apps/api/src/auth/api-key.service.spec.ts b/apps/api/src/auth/api-key.service.spec.ts index bd5b580183..518ab3aa65 100644 --- a/apps/api/src/auth/api-key.service.spec.ts +++ b/apps/api/src/auth/api-key.service.spec.ts @@ -1,4 +1,4 @@ -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { organization: ['read', 'update', 'delete'], member: ['create', 'read', 'update', 'delete'], diff --git a/apps/api/src/auth/api-key.service.ts b/apps/api/src/auth/api-key.service.ts index 9785ba33e0..876155364a 100644 --- a/apps/api/src/auth/api-key.service.ts +++ b/apps/api/src/auth/api-key.service.ts @@ -5,7 +5,7 @@ import { BadRequestException, } from '@nestjs/common'; import { db } from '@trycompai/db'; -import { statement } from '@comp/auth'; +import { statement } from '@trycompai/auth'; import { createHash, randomBytes } from 'node:crypto'; /** Result from validating an API key */ diff --git a/apps/api/src/auth/auth.server.ts b/apps/api/src/auth/auth.server.ts index e7c876313f..8cc4d2536d 100644 --- a/apps/api/src/auth/auth.server.ts +++ b/apps/api/src/auth/auth.server.ts @@ -11,7 +11,7 @@ import { multiSession, organization, } from 'better-auth/plugins'; -import { ac, allRoles } from '@comp/auth'; +import { ac, allRoles } from '@trycompai/auth'; const MAGIC_LINK_EXPIRES_IN_SECONDS = 60 * 60; // 1 hour diff --git a/apps/api/src/auth/permission.guard.ts b/apps/api/src/auth/permission.guard.ts index dc5247486e..0cfeeadaeb 100644 --- a/apps/api/src/auth/permission.guard.ts +++ b/apps/api/src/auth/permission.guard.ts @@ -6,7 +6,7 @@ import { Logger, } from '@nestjs/common'; import { Reflector } from '@nestjs/core'; -import { RESTRICTED_ROLES, PRIVILEGED_ROLES } from '@comp/auth'; +import { RESTRICTED_ROLES, PRIVILEGED_ROLES } from '@trycompai/auth'; import { auth } from './auth.server'; import { resolveServiceByName } from './service-token.config'; import { AuthenticatedRequest } from './types'; diff --git a/apps/api/src/cloud-security/cloud-security-query.service.ts b/apps/api/src/cloud-security/cloud-security-query.service.ts index 5075feea67..6a506d3335 100644 --- a/apps/api/src/cloud-security/cloud-security-query.service.ts +++ b/apps/api/src/cloud-security/cloud-security-query.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; import { db } from '@db'; -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; const CLOUD_PROVIDER_CATEGORY = 'Cloud'; diff --git a/apps/api/src/cloud-security/cloud-security.service.ts b/apps/api/src/cloud-security/cloud-security.service.ts index e24adc29db..d9088e90b6 100644 --- a/apps/api/src/cloud-security/cloud-security.service.ts +++ b/apps/api/src/cloud-security/cloud-security.service.ts @@ -1,6 +1,6 @@ import { Injectable, Logger } from '@nestjs/common'; import { db } from '@db'; -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; import { runs, tasks } from '@trigger.dev/sdk'; import { CredentialVaultService } from '../integration-platform/services/credential-vault.service'; import { OAuthCredentialsService } from '../integration-platform/services/oauth-credentials.service'; diff --git a/apps/api/src/comments/comments.controller.spec.ts b/apps/api/src/comments/comments.controller.spec.ts index df16db3888..4f93c1dfb9 100644 --- a/apps/api/src/comments/comments.controller.spec.ts +++ b/apps/api/src/comments/comments.controller.spec.ts @@ -11,7 +11,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: {}, BUILT_IN_ROLE_PERMISSIONS: {}, })); diff --git a/apps/api/src/context/context.controller.spec.ts b/apps/api/src/context/context.controller.spec.ts index 6c48750e17..8ecc5ddd40 100644 --- a/apps/api/src/context/context.controller.spec.ts +++ b/apps/api/src/context/context.controller.spec.ts @@ -10,7 +10,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: {}, BUILT_IN_ROLE_PERMISSIONS: {}, })); diff --git a/apps/api/src/controls/controls.controller.spec.ts b/apps/api/src/controls/controls.controller.spec.ts index e82bd8229b..25b61809da 100644 --- a/apps/api/src/controls/controls.controller.spec.ts +++ b/apps/api/src/controls/controls.controller.spec.ts @@ -11,7 +11,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { control: ['create', 'read', 'update', 'delete'], }, diff --git a/apps/api/src/device-agent/device-agent.controller.spec.ts b/apps/api/src/device-agent/device-agent.controller.spec.ts index 7d083f1148..e7d70e1bc6 100644 --- a/apps/api/src/device-agent/device-agent.controller.spec.ts +++ b/apps/api/src/device-agent/device-agent.controller.spec.ts @@ -12,7 +12,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { app: ['create', 'read', 'update', 'delete'], }, diff --git a/apps/api/src/devices/devices.controller.spec.ts b/apps/api/src/devices/devices.controller.spec.ts index be69031100..579121c211 100644 --- a/apps/api/src/devices/devices.controller.spec.ts +++ b/apps/api/src/devices/devices.controller.spec.ts @@ -9,7 +9,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { app: ['read'], }, diff --git a/apps/api/src/evidence-forms/evidence-forms.controller.spec.ts b/apps/api/src/evidence-forms/evidence-forms.controller.spec.ts index fac27e5bf7..548bd3f2c1 100644 --- a/apps/api/src/evidence-forms/evidence-forms.controller.spec.ts +++ b/apps/api/src/evidence-forms/evidence-forms.controller.spec.ts @@ -9,7 +9,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { evidence: ['create', 'read', 'update', 'delete'], }, diff --git a/apps/api/src/evidence-forms/evidence-forms.definitions.ts b/apps/api/src/evidence-forms/evidence-forms.definitions.ts index 2b94ea7b2e..0d6d53a73f 100644 --- a/apps/api/src/evidence-forms/evidence-forms.definitions.ts +++ b/apps/api/src/evidence-forms/evidence-forms.definitions.ts @@ -1,4 +1,4 @@ -// Single source of truth: re-export from shared @comp/company package +// Single source of truth: re-export from shared @trycompai/company package export { evidenceFormTypeSchema, evidenceFormFileSchema, @@ -8,4 +8,4 @@ export { type EvidenceFormType, type EvidenceFormFieldDefinition, type EvidenceFormDefinition, -} from '@comp/company'; +} from '@trycompai/company'; diff --git a/apps/api/src/evidence-forms/evidence-forms.service.ts b/apps/api/src/evidence-forms/evidence-forms.service.ts index d9ed50f4cb..050110c410 100644 --- a/apps/api/src/evidence-forms/evidence-forms.service.ts +++ b/apps/api/src/evidence-forms/evidence-forms.service.ts @@ -4,7 +4,7 @@ import { db, EvidenceFormType as DbEvidenceFormType } from '@trycompai/db'; import { toDbEvidenceFormType, toExternalEvidenceFormType, -} from '@comp/company'; +} from '@trycompai/company'; import { BadRequestException, Injectable, diff --git a/apps/api/src/findings/findings.service.ts b/apps/api/src/findings/findings.service.ts index 9e88c536ef..f503303356 100644 --- a/apps/api/src/findings/findings.service.ts +++ b/apps/api/src/findings/findings.service.ts @@ -14,7 +14,7 @@ import { import { toDbEvidenceFormType, toExternalEvidenceFormType, -} from '@comp/company'; +} from '@trycompai/company'; import { CreateFindingDto } from './dto/create-finding.dto'; import { UpdateFindingDto } from './dto/update-finding.dto'; import { FindingAuditService } from './finding-audit.service'; diff --git a/apps/api/src/frameworks/frameworks-scores.helper.ts b/apps/api/src/frameworks/frameworks-scores.helper.ts index a5e9bc3c52..c7578602cf 100644 --- a/apps/api/src/frameworks/frameworks-scores.helper.ts +++ b/apps/api/src/frameworks/frameworks-scores.helper.ts @@ -3,7 +3,7 @@ import { meetingSubTypeValues, toDbEvidenceFormType, toExternalEvidenceFormType, -} from '@comp/company'; +} from '@trycompai/company'; import { db } from '@trycompai/db'; import { filterComplianceMembers } from '../utils/compliance-filters'; diff --git a/apps/api/src/integration-platform/controllers/admin-integrations.controller.ts b/apps/api/src/integration-platform/controllers/admin-integrations.controller.ts index c5929379d8..fd6ce2b89c 100644 --- a/apps/api/src/integration-platform/controllers/admin-integrations.controller.ts +++ b/apps/api/src/integration-platform/controllers/admin-integrations.controller.ts @@ -12,7 +12,7 @@ import { } from '@nestjs/common'; import { OAuthCredentialsService } from '../services/oauth-credentials.service'; import { PlatformCredentialRepository } from '../repositories/platform-credential.repository'; -import { getAllManifests, getManifest } from '@comp/integration-platform'; +import { getAllManifests, getManifest } from '@trycompai/integration-platform'; import { PlatformAdminGuard } from '../../auth/platform-admin.guard'; interface SavePlatformCredentialDto { diff --git a/apps/api/src/integration-platform/controllers/checks.controller.ts b/apps/api/src/integration-platform/controllers/checks.controller.ts index fd0e596f53..da27103c06 100644 --- a/apps/api/src/integration-platform/controllers/checks.controller.ts +++ b/apps/api/src/integration-platform/controllers/checks.controller.ts @@ -18,7 +18,7 @@ import { getManifest, getAvailableChecks, runAllChecks, -} from '@comp/integration-platform'; +} from '@trycompai/integration-platform'; import { ConnectionRepository } from '../repositories/connection.repository'; import { ConnectionService } from '../services/connection.service'; import { CredentialVaultService } from '../services/credential-vault.service'; diff --git a/apps/api/src/integration-platform/controllers/connections.controller.spec.ts b/apps/api/src/integration-platform/controllers/connections.controller.spec.ts index 4f88334b23..a53dad789b 100644 --- a/apps/api/src/integration-platform/controllers/connections.controller.spec.ts +++ b/apps/api/src/integration-platform/controllers/connections.controller.spec.ts @@ -13,14 +13,14 @@ jest.mock('../../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { integration: ['create', 'read', 'update', 'delete'], }, BUILT_IN_ROLE_PERMISSIONS: {}, })); -jest.mock('@comp/integration-platform', () => ({ +jest.mock('@trycompai/integration-platform', () => ({ getManifest: jest.fn(), getAllManifests: jest.fn(), getActiveManifests: jest.fn(), @@ -31,7 +31,7 @@ import { getManifest, getAllManifests, getActiveManifests, -} from '@comp/integration-platform'; +} from '@trycompai/integration-platform'; const mockedGetManifest = getManifest as jest.MockedFunction< typeof getManifest diff --git a/apps/api/src/integration-platform/controllers/connections.controller.ts b/apps/api/src/integration-platform/controllers/connections.controller.ts index 539ff4cf6f..30df781e74 100644 --- a/apps/api/src/integration-platform/controllers/connections.controller.ts +++ b/apps/api/src/integration-platform/controllers/connections.controller.ts @@ -36,7 +36,7 @@ import { type OAuthConfig, type TaskTemplateId, type IntegrationCredentials, -} from '@comp/integration-platform'; +} from '@trycompai/integration-platform'; interface CreateConnectionDto { providerSlug: string; diff --git a/apps/api/src/integration-platform/controllers/dynamic-integrations.controller.ts b/apps/api/src/integration-platform/controllers/dynamic-integrations.controller.ts index 361d909dec..a7e1427bc2 100644 --- a/apps/api/src/integration-platform/controllers/dynamic-integrations.controller.ts +++ b/apps/api/src/integration-platform/controllers/dynamic-integrations.controller.ts @@ -18,7 +18,7 @@ import { DynamicIntegrationRepository } from '../repositories/dynamic-integratio import { DynamicCheckRepository } from '../repositories/dynamic-check.repository'; import { ProviderRepository } from '../repositories/provider.repository'; import { DynamicManifestLoaderService } from '../services/dynamic-manifest-loader.service'; -import { validateIntegrationDefinition } from '@comp/integration-platform'; +import { validateIntegrationDefinition } from '@trycompai/integration-platform'; @Controller({ path: 'internal/dynamic-integrations', version: '1' }) @UseGuards(InternalTokenGuard) diff --git a/apps/api/src/integration-platform/controllers/oauth-apps.controller.ts b/apps/api/src/integration-platform/controllers/oauth-apps.controller.ts index 0b5efd6efd..0fc392f700 100644 --- a/apps/api/src/integration-platform/controllers/oauth-apps.controller.ts +++ b/apps/api/src/integration-platform/controllers/oauth-apps.controller.ts @@ -18,7 +18,7 @@ import { RequirePermission } from '../../auth/require-permission.decorator'; import { OrganizationId } from '../../auth/auth-context.decorator'; import { OAuthCredentialsService } from '../services/oauth-credentials.service'; import { OAuthAppRepository } from '../repositories/oauth-app.repository'; -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; interface SaveOAuthAppDto { providerSlug: string; diff --git a/apps/api/src/integration-platform/controllers/oauth.controller.spec.ts b/apps/api/src/integration-platform/controllers/oauth.controller.spec.ts index 8ca75078ee..9577a09a91 100644 --- a/apps/api/src/integration-platform/controllers/oauth.controller.spec.ts +++ b/apps/api/src/integration-platform/controllers/oauth.controller.spec.ts @@ -15,18 +15,18 @@ jest.mock('../../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { integration: ['create', 'read', 'update', 'delete'], }, BUILT_IN_ROLE_PERMISSIONS: {}, })); -jest.mock('@comp/integration-platform', () => ({ +jest.mock('@trycompai/integration-platform', () => ({ getManifest: jest.fn(), })); -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; const mockedGetManifest = getManifest as jest.MockedFunction< typeof getManifest diff --git a/apps/api/src/integration-platform/controllers/oauth.controller.ts b/apps/api/src/integration-platform/controllers/oauth.controller.ts index 262059d2dd..6c58a74466 100644 --- a/apps/api/src/integration-platform/controllers/oauth.controller.ts +++ b/apps/api/src/integration-platform/controllers/oauth.controller.ts @@ -24,7 +24,7 @@ import { CredentialVaultService } from '../services/credential-vault.service'; import { ConnectionService } from '../services/connection.service'; import { OAuthCredentialsService } from '../services/oauth-credentials.service'; import { AutoCheckRunnerService } from '../services/auto-check-runner.service'; -import { getManifest, type OAuthConfig } from '@comp/integration-platform'; +import { getManifest, type OAuthConfig } from '@trycompai/integration-platform'; interface StartOAuthDto { providerSlug: string; diff --git a/apps/api/src/integration-platform/controllers/sync.controller.ts b/apps/api/src/integration-platform/controllers/sync.controller.ts index 3318c8a225..d050b99ba2 100644 --- a/apps/api/src/integration-platform/controllers/sync.controller.ts +++ b/apps/api/src/integration-platform/controllers/sync.controller.ts @@ -24,7 +24,7 @@ import { type RampUser, type RampUserStatus, type RampUsersResponse, -} from '@comp/integration-platform'; +} from '@trycompai/integration-platform'; interface GoogleWorkspaceUser { id: string; diff --git a/apps/api/src/integration-platform/controllers/task-integrations.controller.ts b/apps/api/src/integration-platform/controllers/task-integrations.controller.ts index bdc277eeaf..3d7a6d3887 100644 --- a/apps/api/src/integration-platform/controllers/task-integrations.controller.ts +++ b/apps/api/src/integration-platform/controllers/task-integrations.controller.ts @@ -21,7 +21,7 @@ import { runAllChecks, type CheckRunResult, type OAuthConfig, -} from '@comp/integration-platform'; +} from '@trycompai/integration-platform'; import { ConnectionRepository } from '../repositories/connection.repository'; import { ProviderRepository } from '../repositories/provider.repository'; import { CheckRunRepository } from '../repositories/check-run.repository'; diff --git a/apps/api/src/integration-platform/controllers/variables.controller.spec.ts b/apps/api/src/integration-platform/controllers/variables.controller.spec.ts index 7139b779f9..5444b79b1e 100644 --- a/apps/api/src/integration-platform/controllers/variables.controller.spec.ts +++ b/apps/api/src/integration-platform/controllers/variables.controller.spec.ts @@ -12,18 +12,18 @@ jest.mock('../../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { integration: ['create', 'read', 'update', 'delete'], }, BUILT_IN_ROLE_PERMISSIONS: {}, })); -jest.mock('@comp/integration-platform', () => ({ +jest.mock('@trycompai/integration-platform', () => ({ getManifest: jest.fn(), })); -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; const mockedGetManifest = getManifest as jest.MockedFunction< typeof getManifest diff --git a/apps/api/src/integration-platform/controllers/variables.controller.ts b/apps/api/src/integration-platform/controllers/variables.controller.ts index 52f0ea3e4f..bc0ea0d0ed 100644 --- a/apps/api/src/integration-platform/controllers/variables.controller.ts +++ b/apps/api/src/integration-platform/controllers/variables.controller.ts @@ -14,7 +14,7 @@ import { HybridAuthGuard } from '../../auth/hybrid-auth.guard'; import { PermissionGuard } from '../../auth/permission.guard'; import { RequirePermission } from '../../auth/require-permission.decorator'; import { OrganizationId } from '../../auth/auth-context.decorator'; -import { getManifest, type CheckVariable } from '@comp/integration-platform'; +import { getManifest, type CheckVariable } from '@trycompai/integration-platform'; import { ConnectionRepository } from '../repositories/connection.repository'; import { ConnectionService } from '../services/connection.service'; import { ProviderRepository } from '../repositories/provider.repository'; diff --git a/apps/api/src/integration-platform/controllers/webhook.controller.ts b/apps/api/src/integration-platform/controllers/webhook.controller.ts index 7c5b2367dd..653d44ee05 100644 --- a/apps/api/src/integration-platform/controllers/webhook.controller.ts +++ b/apps/api/src/integration-platform/controllers/webhook.controller.ts @@ -12,8 +12,8 @@ import { } from '@nestjs/common'; import { Request } from 'express'; import { createHmac, timingSafeEqual } from 'crypto'; -import { getManifest } from '@comp/integration-platform'; -import type { WebhookConfig } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; +import type { WebhookConfig } from '@trycompai/integration-platform'; import { ConnectionRepository } from '../repositories/connection.repository'; import { db, Prisma } from '@db'; diff --git a/apps/api/src/integration-platform/services/auto-check-runner.service.ts b/apps/api/src/integration-platform/services/auto-check-runner.service.ts index 25c0974d92..f956011bb4 100644 --- a/apps/api/src/integration-platform/services/auto-check-runner.service.ts +++ b/apps/api/src/integration-platform/services/auto-check-runner.service.ts @@ -1,6 +1,6 @@ import { Injectable, Logger } from '@nestjs/common'; import { tasks } from '@trigger.dev/sdk'; -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; import { ConnectionRepository } from '../repositories/connection.repository'; import { ProviderRepository } from '../repositories/provider.repository'; diff --git a/apps/api/src/integration-platform/services/connection.service.ts b/apps/api/src/integration-platform/services/connection.service.ts index 1599b91089..b854e9f26f 100644 --- a/apps/api/src/integration-platform/services/connection.service.ts +++ b/apps/api/src/integration-platform/services/connection.service.ts @@ -3,7 +3,7 @@ import { NotFoundException, ConflictException, } from '@nestjs/common'; -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; import { ConnectionRepository } from '../repositories/connection.repository'; import { ProviderRepository } from '../repositories/provider.repository'; import { ConnectionAuthTeardownService } from './connection-auth-teardown.service'; diff --git a/apps/api/src/integration-platform/services/dynamic-manifest-loader.service.ts b/apps/api/src/integration-platform/services/dynamic-manifest-loader.service.ts index 60b51c5e27..b6f858655d 100644 --- a/apps/api/src/integration-platform/services/dynamic-manifest-loader.service.ts +++ b/apps/api/src/integration-platform/services/dynamic-manifest-loader.service.ts @@ -8,7 +8,7 @@ import { type IntegrationCapability, type FindingSeverity, type CheckVariable, -} from '@comp/integration-platform'; +} from '@trycompai/integration-platform'; import { DynamicIntegrationRepository, type DynamicIntegrationWithChecks } from '../repositories/dynamic-integration.repository'; import type { DynamicCheck } from '@prisma/client'; diff --git a/apps/api/src/integration-platform/services/oauth-credentials.service.ts b/apps/api/src/integration-platform/services/oauth-credentials.service.ts index c3c20c8454..0e7fcdcc48 100644 --- a/apps/api/src/integration-platform/services/oauth-credentials.service.ts +++ b/apps/api/src/integration-platform/services/oauth-credentials.service.ts @@ -5,7 +5,7 @@ import { CredentialVaultService, EncryptedData, } from './credential-vault.service'; -import { getManifest, type OAuthConfig } from '@comp/integration-platform'; +import { getManifest, type OAuthConfig } from '@trycompai/integration-platform'; import type { Prisma } from '@prisma/client'; export interface OAuthCredentials { diff --git a/apps/api/src/integration-platform/services/oauth-token-revocation.service.ts b/apps/api/src/integration-platform/services/oauth-token-revocation.service.ts index d7b0c569d8..593e595169 100644 --- a/apps/api/src/integration-platform/services/oauth-token-revocation.service.ts +++ b/apps/api/src/integration-platform/services/oauth-token-revocation.service.ts @@ -1,5 +1,5 @@ import { Injectable, Logger } from '@nestjs/common'; -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; import { OAuthCredentialsService } from './oauth-credentials.service'; type OAuthRevokeConfig = { diff --git a/apps/api/src/org-chart/org-chart.controller.spec.ts b/apps/api/src/org-chart/org-chart.controller.spec.ts index e7cc4b0a24..186052e792 100644 --- a/apps/api/src/org-chart/org-chart.controller.spec.ts +++ b/apps/api/src/org-chart/org-chart.controller.spec.ts @@ -8,7 +8,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { organization: ['create', 'read', 'update', 'delete'], }, diff --git a/apps/api/src/organization/organization.controller.spec.ts b/apps/api/src/organization/organization.controller.spec.ts index b07e065a84..8f89a27b33 100644 --- a/apps/api/src/organization/organization.controller.spec.ts +++ b/apps/api/src/organization/organization.controller.spec.ts @@ -15,7 +15,7 @@ jest.mock('../auth/auth.server', () => ({ }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { organization: ['read', 'update', 'delete'], member: ['create', 'read', 'update', 'delete'], diff --git a/apps/api/src/organization/organization.service.ts b/apps/api/src/organization/organization.service.ts index 946f48bf8e..25255acf2b 100644 --- a/apps/api/src/organization/organization.service.ts +++ b/apps/api/src/organization/organization.service.ts @@ -6,7 +6,7 @@ import { ForbiddenException, InternalServerErrorException, } from '@nestjs/common'; -import { allRoles } from '@comp/auth'; +import { allRoles } from '@trycompai/auth'; import { GetObjectCommand, PutObjectCommand } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; import { db, Role } from '@trycompai/db'; diff --git a/apps/api/src/people/people.controller.spec.ts b/apps/api/src/people/people.controller.spec.ts index 53f24eabd5..11f3769910 100644 --- a/apps/api/src/people/people.controller.spec.ts +++ b/apps/api/src/people/people.controller.spec.ts @@ -16,7 +16,7 @@ jest.mock('../auth/auth.server', () => ({ }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { organization: ['read', 'update', 'delete'], member: ['create', 'read', 'update', 'delete'], diff --git a/apps/api/src/people/people.controller.ts b/apps/api/src/people/people.controller.ts index 57188685c3..53c4394f13 100644 --- a/apps/api/src/people/people.controller.ts +++ b/apps/api/src/people/people.controller.ts @@ -29,7 +29,7 @@ import { HybridAuthGuard } from '../auth/hybrid-auth.guard'; import { PermissionGuard } from '../auth/permission.guard'; import { RequirePermission } from '../auth/require-permission.decorator'; import type { AuthContext as AuthContextType } from '../auth/types'; -import { statement } from '@comp/auth'; +import { statement } from '@trycompai/auth'; import { CreatePeopleDto } from './dto/create-people.dto'; import { UpdatePeopleDto } from './dto/update-people.dto'; import { BulkCreatePeopleDto } from './dto/bulk-create-people.dto'; diff --git a/apps/api/src/people/people.service.spec.ts b/apps/api/src/people/people.service.spec.ts index 3d1f4271f9..b00d90cd28 100644 --- a/apps/api/src/people/people.service.spec.ts +++ b/apps/api/src/people/people.service.spec.ts @@ -49,7 +49,7 @@ jest.mock('@trycompai/db', () => ({ }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ BUILT_IN_ROLE_PERMISSIONS: { owner: { organization: ['read', 'update', 'delete'], member: ['create', 'read', 'update', 'delete'] }, admin: { organization: ['read', 'update'], member: ['create', 'read', 'update', 'delete'] }, diff --git a/apps/api/src/people/people.service.ts b/apps/api/src/people/people.service.ts index 8c69b27f2d..7a446c4749 100644 --- a/apps/api/src/people/people.service.ts +++ b/apps/api/src/people/people.service.ts @@ -7,7 +7,7 @@ import { } from '@nestjs/common'; import { db } from '@trycompai/db'; import { FleetService } from '../lib/fleet.service'; -import { BUILT_IN_ROLE_PERMISSIONS } from '@comp/auth'; +import { BUILT_IN_ROLE_PERMISSIONS } from '@trycompai/auth'; import type { PeopleResponseDto } from './dto/people-responses.dto'; import type { CreatePeopleDto } from './dto/create-people.dto'; import type { UpdatePeopleDto } from './dto/update-people.dto'; diff --git a/apps/api/src/policies/policies.controller.spec.ts b/apps/api/src/policies/policies.controller.spec.ts index 3203082313..e4f7653a6a 100644 --- a/apps/api/src/policies/policies.controller.spec.ts +++ b/apps/api/src/policies/policies.controller.spec.ts @@ -13,7 +13,7 @@ jest.mock('../auth/auth.server', () => ({ }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { policy: ['create', 'read', 'update', 'delete'], control: ['create', 'read', 'update', 'delete'], diff --git a/apps/api/src/questionnaire/questionnaire.controller.spec.ts b/apps/api/src/questionnaire/questionnaire.controller.spec.ts index 12774d1ddc..0422468af6 100644 --- a/apps/api/src/questionnaire/questionnaire.controller.spec.ts +++ b/apps/api/src/questionnaire/questionnaire.controller.spec.ts @@ -5,7 +5,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: {}, ac: {}, allRoles: {}, diff --git a/apps/api/src/risks/risks.controller.spec.ts b/apps/api/src/risks/risks.controller.spec.ts index b5da081e30..92120ee227 100644 --- a/apps/api/src/risks/risks.controller.spec.ts +++ b/apps/api/src/risks/risks.controller.spec.ts @@ -15,7 +15,7 @@ jest.mock('../auth/auth.server', () => ({ }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { risk: ['create', 'read', 'update', 'delete'], }, diff --git a/apps/api/src/roles/roles.controller.spec.ts b/apps/api/src/roles/roles.controller.spec.ts index dfb537b551..b1a8cb02a2 100644 --- a/apps/api/src/roles/roles.controller.spec.ts +++ b/apps/api/src/roles/roles.controller.spec.ts @@ -6,8 +6,8 @@ import { PermissionGuard } from '../auth/permission.guard'; import { RolesController } from './roles.controller'; -// Mock @comp/auth and auth.server to avoid importing better-auth ESM in Jest -jest.mock('@comp/auth', () => ({ +// Mock @trycompai/auth and auth.server to avoid importing better-auth ESM in Jest +jest.mock('@trycompai/auth', () => ({ statement: {}, allRoles: { owner: {}, admin: {}, auditor: {}, employee: {}, contractor: {} }, BUILT_IN_ROLE_PERMISSIONS: {}, diff --git a/apps/api/src/roles/roles.service.spec.ts b/apps/api/src/roles/roles.service.spec.ts index f17b195803..fe9165dd90 100644 --- a/apps/api/src/roles/roles.service.spec.ts +++ b/apps/api/src/roles/roles.service.spec.ts @@ -2,8 +2,8 @@ import { Test, TestingModule } from '@nestjs/testing'; import { BadRequestException, ForbiddenException, NotFoundException } from '@nestjs/common'; import { RolesService } from './roles.service'; -// Mock @comp/auth to avoid ESM import issues with better-auth in Jest -jest.mock('@comp/auth', () => { +// Mock @trycompai/auth to avoid ESM import issues with better-auth in Jest +jest.mock('@trycompai/auth', () => { const statement = { organization: ['read', 'update', 'delete'], member: ['create', 'read', 'update', 'delete'], diff --git a/apps/api/src/roles/roles.service.ts b/apps/api/src/roles/roles.service.ts index aab1a4a515..43919a5837 100644 --- a/apps/api/src/roles/roles.service.ts +++ b/apps/api/src/roles/roles.service.ts @@ -1,6 +1,6 @@ import { Injectable, BadRequestException, NotFoundException, ForbiddenException } from '@nestjs/common'; import { db } from '@trycompai/db'; -import { statement, allRoles, BUILT_IN_ROLE_PERMISSIONS, BUILT_IN_ROLE_OBLIGATIONS, type RoleObligations } from '@comp/auth'; +import { statement, allRoles, BUILT_IN_ROLE_PERMISSIONS, BUILT_IN_ROLE_OBLIGATIONS, type RoleObligations } from '@trycompai/auth'; import type { CreateRoleDto } from './dto/create-role.dto'; import type { UpdateRoleDto } from './dto/update-role.dto'; diff --git a/apps/api/src/scripts/seed-dynamic-integration.ts b/apps/api/src/scripts/seed-dynamic-integration.ts index 17d82c228b..cdc8d8419b 100644 --- a/apps/api/src/scripts/seed-dynamic-integration.ts +++ b/apps/api/src/scripts/seed-dynamic-integration.ts @@ -16,7 +16,7 @@ import { readFileSync } from 'fs'; import { resolve } from 'path'; import { db } from '@db'; -import { validateIntegrationDefinition } from '@comp/integration-platform'; +import { validateIntegrationDefinition } from '@trycompai/integration-platform'; async function main() { const filePath = process.argv[2]; diff --git a/apps/api/src/secrets/secrets.controller.spec.ts b/apps/api/src/secrets/secrets.controller.spec.ts index 95e7ec50c0..58c0088b7d 100644 --- a/apps/api/src/secrets/secrets.controller.spec.ts +++ b/apps/api/src/secrets/secrets.controller.spec.ts @@ -10,7 +10,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: {}, BUILT_IN_ROLE_PERMISSIONS: {}, })); diff --git a/apps/api/src/soa/soa.controller.spec.ts b/apps/api/src/soa/soa.controller.spec.ts index fa40c3fc12..f2dd111cef 100644 --- a/apps/api/src/soa/soa.controller.spec.ts +++ b/apps/api/src/soa/soa.controller.spec.ts @@ -10,7 +10,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: {}, BUILT_IN_ROLE_PERMISSIONS: {}, })); diff --git a/apps/api/src/tasks/tasks.controller.spec.ts b/apps/api/src/tasks/tasks.controller.spec.ts index 270a9c9d4a..3335cddf0e 100644 --- a/apps/api/src/tasks/tasks.controller.spec.ts +++ b/apps/api/src/tasks/tasks.controller.spec.ts @@ -12,7 +12,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { task: ['create', 'read', 'update', 'delete'], evidence: ['create', 'read', 'delete'], diff --git a/apps/api/src/training/permissions-regression.spec.ts b/apps/api/src/training/permissions-regression.spec.ts index 2ea282c0dd..d8a0c77688 100644 --- a/apps/api/src/training/permissions-regression.spec.ts +++ b/apps/api/src/training/permissions-regression.spec.ts @@ -8,7 +8,7 @@ * can execute under Jest, while still testing the real role definitions. */ -// Mock better-auth ESM modules before importing @comp/auth +// Mock better-auth ESM modules before importing @trycompai/auth jest.mock('better-auth/plugins/access', () => ({ createAccessControl: (stmt: Record) => ({ newRole: (statements: Record) => ({ @@ -45,7 +45,7 @@ jest.mock('better-auth/plugins/organization/access', () => ({ import { BUILT_IN_ROLE_PERMISSIONS, BUILT_IN_ROLE_OBLIGATIONS, -} from '@comp/auth'; +} from '@trycompai/auth'; describe('Built-in role permissions — regression', () => { // ─── Owner ────────────────────────────────────────────────────────── diff --git a/apps/api/src/training/training.controller.spec.ts b/apps/api/src/training/training.controller.spec.ts index 38a86c30a5..a18b608865 100644 --- a/apps/api/src/training/training.controller.spec.ts +++ b/apps/api/src/training/training.controller.spec.ts @@ -9,7 +9,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: {}, BUILT_IN_ROLE_PERMISSIONS: {}, })); diff --git a/apps/api/src/trigger/cloud-security/cloud-security-schedule.ts b/apps/api/src/trigger/cloud-security/cloud-security-schedule.ts index 740cca20c1..484343c216 100644 --- a/apps/api/src/trigger/cloud-security/cloud-security-schedule.ts +++ b/apps/api/src/trigger/cloud-security/cloud-security-schedule.ts @@ -1,4 +1,4 @@ -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; import { db } from '@db'; import { logger, schedules } from '@trigger.dev/sdk'; import { runCloudSecurityScan } from './run-cloud-security-scan'; diff --git a/apps/api/src/trigger/integration-platform/run-connection-checks.ts b/apps/api/src/trigger/integration-platform/run-connection-checks.ts index 600d0a22f5..e25f12b3ae 100644 --- a/apps/api/src/trigger/integration-platform/run-connection-checks.ts +++ b/apps/api/src/trigger/integration-platform/run-connection-checks.ts @@ -1,4 +1,4 @@ -import { getManifest, runAllChecks } from '@comp/integration-platform'; +import { getManifest, runAllChecks } from '@trycompai/integration-platform'; import { db } from '@db'; import { logger, task } from '@trigger.dev/sdk'; diff --git a/apps/api/src/trigger/integration-platform/run-integration-checks-schedule.ts b/apps/api/src/trigger/integration-platform/run-integration-checks-schedule.ts index 4751b3ca72..c57f95b83a 100644 --- a/apps/api/src/trigger/integration-platform/run-integration-checks-schedule.ts +++ b/apps/api/src/trigger/integration-platform/run-integration-checks-schedule.ts @@ -1,4 +1,4 @@ -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; import { db } from '@db'; import { logger, schedules } from '@trigger.dev/sdk'; import { runTaskIntegrationChecks } from './run-task-integration-checks'; diff --git a/apps/api/src/trigger/integration-platform/run-task-integration-checks.ts b/apps/api/src/trigger/integration-platform/run-task-integration-checks.ts index 003b2e4446..08b9d7be1c 100644 --- a/apps/api/src/trigger/integration-platform/run-task-integration-checks.ts +++ b/apps/api/src/trigger/integration-platform/run-task-integration-checks.ts @@ -1,4 +1,4 @@ -import { getManifest, runAllChecks } from '@comp/integration-platform'; +import { getManifest, runAllChecks } from '@trycompai/integration-platform'; import { db } from '@db'; import { logger, task } from '@trigger.dev/sdk'; import { triggerEmail } from '../../email/trigger-email'; diff --git a/apps/api/src/trigger/integration-platform/sync-employees-schedule.ts b/apps/api/src/trigger/integration-platform/sync-employees-schedule.ts index 38cad1f69b..7e16b0a05d 100644 --- a/apps/api/src/trigger/integration-platform/sync-employees-schedule.ts +++ b/apps/api/src/trigger/integration-platform/sync-employees-schedule.ts @@ -1,4 +1,4 @@ -import { getManifest } from '@comp/integration-platform'; +import { getManifest } from '@trycompai/integration-platform'; import { db } from '@db'; import { logger, schedules } from '@trigger.dev/sdk'; diff --git a/apps/api/src/trust-portal/trust-access.controller.spec.ts b/apps/api/src/trust-portal/trust-access.controller.spec.ts index 782f551a5b..4e165fc0bc 100644 --- a/apps/api/src/trust-portal/trust-access.controller.spec.ts +++ b/apps/api/src/trust-portal/trust-access.controller.spec.ts @@ -9,7 +9,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { trust: ['create', 'read', 'update', 'delete'], }, diff --git a/apps/api/src/trust-portal/trust-portal.controller.spec.ts b/apps/api/src/trust-portal/trust-portal.controller.spec.ts index b0b0be543a..368c64edef 100644 --- a/apps/api/src/trust-portal/trust-portal.controller.spec.ts +++ b/apps/api/src/trust-portal/trust-portal.controller.spec.ts @@ -10,7 +10,7 @@ jest.mock('../auth/auth.server', () => ({ auth: { api: { getSession: jest.fn() } }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { trust: ['create', 'read', 'update', 'delete'], }, diff --git a/apps/api/src/utils/compliance-filters.ts b/apps/api/src/utils/compliance-filters.ts index a68a34b5bb..3ae9389611 100644 --- a/apps/api/src/utils/compliance-filters.ts +++ b/apps/api/src/utils/compliance-filters.ts @@ -2,7 +2,7 @@ import { BUILT_IN_ROLE_OBLIGATIONS, type RoleObligations, allRoles, -} from '@comp/auth'; +} from '@trycompai/auth'; import { db } from '@trycompai/db'; /** diff --git a/apps/api/src/vendors/vendors.controller.spec.ts b/apps/api/src/vendors/vendors.controller.spec.ts index 55cb4b409e..163fc92bac 100644 --- a/apps/api/src/vendors/vendors.controller.spec.ts +++ b/apps/api/src/vendors/vendors.controller.spec.ts @@ -12,7 +12,7 @@ jest.mock('../auth/auth.server', () => ({ }, })); -jest.mock('@comp/auth', () => ({ +jest.mock('@trycompai/auth', () => ({ statement: { vendor: ['create', 'read', 'update', 'delete'], }, diff --git a/apps/app/agents.md b/apps/app/agents.md index ab953de9c1..b13c5d170b 100644 --- a/apps/app/agents.md +++ b/apps/app/agents.md @@ -18,9 +18,9 @@ The `className` prop has been removed from all components to prevent style overr // ✅ ALWAYS - Use design system import { Button, Table, Badge, Tabs } from '@trycompai/design-system'; -// ❌ NEVER - Don't use @comp/ui when DS has the component -import { Button } from '@comp/ui/button'; -import { Table } from '@comp/ui/table'; +// ❌ NEVER - Don't use @trycompai/ui when DS has the component +import { Button } from '@trycompai/ui/button'; +import { Table } from '@trycompai/ui/table'; ``` ## Server vs Client Components diff --git a/apps/app/next.config.ts b/apps/app/next.config.ts index d5fffca64c..a634107d33 100644 --- a/apps/app/next.config.ts +++ b/apps/app/next.config.ts @@ -48,7 +48,7 @@ const config: NextConfig = { '@prisma/client', '@trycompai/design-system', '@carbon/icons-react', - '@comp/company', + '@trycompai/company', ], images: { remotePatterns: [ diff --git a/apps/app/package.json b/apps/app/package.json index 13d62d8714..e2799c1119 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -1,5 +1,5 @@ { - "name": "@comp/app", + "name": "@trycompai/app", "version": "0.1.0", "type": "module", "dependencies": { @@ -19,9 +19,9 @@ "@browserbasehq/stagehand": "^3.0.5", "@calcom/atoms": "^1.0.102-framer", "@calcom/embed-react": "^1.5.3", - "@comp/auth": "workspace:*", - "@comp/company": "workspace:*", - "@comp/integration-platform": "workspace:*", + "@trycompai/auth": "workspace:*", + "@trycompai/company": "workspace:*", + "@trycompai/integration-platform": "workspace:*", "@date-fns/tz": "^1.2.0", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", diff --git a/apps/app/src/actions/safe-action.ts b/apps/app/src/actions/safe-action.ts index 1d92cddf10..a091c798e3 100644 --- a/apps/app/src/actions/safe-action.ts +++ b/apps/app/src/actions/safe-action.ts @@ -2,7 +2,7 @@ import { track } from '@/app/posthog'; import { env } from '@/env.mjs'; import { auth } from '@/utils/auth'; import { logger } from '@/utils/logger'; -import { client } from '@comp/kv'; +import { client } from '@trycompai/kv'; import { AuditLogEntityType, db } from '@db'; import { Ratelimit } from '@upstash/ratelimit'; import { DEFAULT_SERVER_ERROR_MESSAGE, createSafeActionClient } from 'next-safe-action'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/connect-cloud.ts b/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/connect-cloud.ts index b701ef260f..4e83c04c2f 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/connect-cloud.ts +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/connect-cloud.ts @@ -1,7 +1,7 @@ 'use server'; import { encrypt } from '@/lib/encryption'; -import { getIntegrationHandler } from '@comp/integrations'; +import { getIntegrationHandler } from '@trycompai/integrations'; import { db } from '@db'; import { Prisma } from '@prisma/client'; import { revalidatePath } from 'next/cache'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.test.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.test.tsx index ff61f2f89f..09396ab0c8 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.test.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.test.tsx @@ -29,8 +29,8 @@ vi.mock('@/hooks/use-integration-platform', () => ({ }), })); -// Mock @comp/ui components -vi.mock('@comp/ui/button', () => ({ +// Mock @trycompai/ui components +vi.mock('@trycompai/ui/button', () => ({ Button: ({ children, onClick, @@ -49,11 +49,11 @@ vi.mock('@comp/ui/button', () => ({ ), })); -vi.mock('@comp/ui/cn', () => ({ +vi.mock('@trycompai/ui/cn', () => ({ cn: (...args: string[]) => args.filter(Boolean).join(' '), })); -vi.mock('@comp/ui/dialog', () => ({ +vi.mock('@trycompai/ui/dialog', () => ({ Dialog: ({ children, open, @@ -84,7 +84,7 @@ vi.mock('@comp/ui/dialog', () => ({ ), })); -vi.mock('@comp/ui/tabs', () => ({ +vi.mock('@trycompai/ui/tabs', () => ({ Tabs: ({ children, }: { diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.tsx index ff3cb677e8..394535f80c 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.tsx @@ -10,7 +10,7 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { Button, Tabs, diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.test.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.test.tsx index 1117cbe7f4..dbf8bedfd8 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.test.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.test.tsx @@ -106,8 +106,8 @@ vi.mock('@trycompai/design-system/icons', () => ({ Launch: () => , })); -// Mock @comp/ui components -vi.mock('@comp/ui/card', () => ({ +// Mock @trycompai/ui components +vi.mock('@trycompai/ui/card', () => ({ Card: ({ children, onClick, @@ -140,7 +140,7 @@ vi.mock('@comp/ui/card', () => ({ ), })); -vi.mock('@comp/ui/multiple-selector', () => ({ +vi.mock('@trycompai/ui/multiple-selector', () => ({ default: () =>
, })); diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx index 9f0f84b3f8..3a2d1d00d3 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx @@ -3,8 +3,8 @@ import { ConnectIntegrationDialog } from '@/components/integrations/ConnectIntegrationDialog'; import { useApi } from '@/hooks/use-api'; import { usePermissions } from '@/hooks/use-permissions'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import MultipleSelector from '@comp/ui/multiple-selector'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; +import MultipleSelector from '@trycompai/ui/multiple-selector'; import { Button, Input, diff --git a/apps/app/src/app/(app)/[orgId]/components/AppShellWrapper.tsx b/apps/app/src/app/(app)/[orgId]/components/AppShellWrapper.tsx index d0918d4046..dea045de41 100644 --- a/apps/app/src/app/(app)/[orgId]/components/AppShellWrapper.tsx +++ b/apps/app/src/app/(app)/[orgId]/components/AppShellWrapper.tsx @@ -16,7 +16,7 @@ import { DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; +} from '@trycompai/ui/dropdown-menu'; import type { Onboarding, Organization } from '@db'; import type { OrganizationFromMe } from '@/types'; import { diff --git a/apps/app/src/app/(app)/[orgId]/components/DynamicMinHeight.tsx b/apps/app/src/app/(app)/[orgId]/components/DynamicMinHeight.tsx index 9ca38b21e7..71ee1159f6 100644 --- a/apps/app/src/app/(app)/[orgId]/components/DynamicMinHeight.tsx +++ b/apps/app/src/app/(app)/[orgId]/components/DynamicMinHeight.tsx @@ -1,6 +1,6 @@ 'use client'; -import { cn } from '@comp/ui/cn'; +import { cn } from '@trycompai/ui/cn'; import { useEffect, useMemo, useRef, useState } from 'react'; interface DynamicMinHeightProps { diff --git a/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx b/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx index 6e791974e7..0d70a90795 100644 --- a/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx +++ b/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx @@ -1,7 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent } from '@comp/ui/card'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent } from '@trycompai/ui/card'; import type { Onboarding } from '@db'; import { useRealtimeRun } from '@trigger.dev/react-hooks'; import { AnimatePresence, motion } from 'framer-motion'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.test.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.test.tsx index 8255f91814..c7decaac4a 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.test.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.test.tsx @@ -41,8 +41,8 @@ vi.mock('sonner', () => ({ toast: { info: vi.fn(), error: vi.fn(), success: vi.fn() }, })); -// Mock @comp/ui components -vi.mock('@comp/ui/button', () => ({ +// Mock @trycompai/ui components +vi.mock('@trycompai/ui/button', () => ({ Button: ({ children, disabled, ...props }: any) => ( ), })); -vi.mock('@comp/ui/dropdown-menu', () => ({ +vi.mock('@trycompai/ui/dropdown-menu', () => ({ DropdownMenu: ({ children, open }: any) => (
{children} diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlHeaderActions.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlHeaderActions.tsx index 77e53e9ecd..3aa1b1b66e 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlHeaderActions.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlHeaderActions.tsx @@ -1,12 +1,12 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; +} from '@trycompai/ui/dropdown-menu'; import type { Control } from '@db'; import { MoreVertical, Trash2 } from 'lucide-react'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx index 593d4a3de8..e7898169d1 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx @@ -1,7 +1,7 @@ 'use client'; import { StatusIndicator } from '@/components/status-indicator'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@trycompai/ui/tabs'; import type { Control, FrameworkEditorFramework, diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControlSkeleton.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControlSkeleton.tsx index 4fbb1f5bbb..5e46ccc97b 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControlSkeleton.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControlSkeleton.tsx @@ -1,6 +1,6 @@ -import { CardContent, CardHeader, CardTitle } from '@comp/ui/card'; +import { CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; -import { Card } from '@comp/ui/card'; +import { Card } from '@trycompai/ui/card'; export const SingleControlSkeleton = () => { return ( diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx index e9e73b20b9..f2919addd7 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx @@ -2,7 +2,7 @@ import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'; -import { Table, TableBody, TableCell, TableRow } from '@comp/ui/table'; +import { Table, TableBody, TableCell, TableRow } from '@trycompai/ui/table'; import type { FrameworkEditorRequirement, Policy, Task } from '@db'; import { useParams, useRouter } from 'next/navigation'; import { ControlRequirementsTableColumns } from './ControlRequirementsTableColumns'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTableHeader.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTableHeader.tsx index 2f95bf4650..9331d9036b 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTableHeader.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTableHeader.tsx @@ -1,6 +1,6 @@ 'use client'; -import { TableHead, TableHeader, TableRow } from '@comp/ui/table'; +import { TableHead, TableHeader, TableRow } from '@trycompai/ui/table'; import type { Table } from '@tanstack/react-table'; import type { RequirementTableData } from './ControlRequirementsTable'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/components/CreateControlSheet.tsx b/apps/app/src/app/(app)/[orgId]/controls/components/CreateControlSheet.tsx index 2d5cb7027a..f8997f548e 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/components/CreateControlSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/components/CreateControlSheet.tsx @@ -1,13 +1,13 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; -import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import { useMediaQuery } from '@comp/ui/hooks'; -import { Input } from '@comp/ui/input'; -import MultipleSelector, { Option } from '@comp/ui/multiple-selector'; -import { Sheet, SheetContent, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import { Textarea } from '@comp/ui/textarea'; +import { Button } from '@trycompai/ui/button'; +import { Drawer, DrawerContent, DrawerTitle } from '@trycompai/ui/drawer'; +import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; +import { useMediaQuery } from '@trycompai/ui/hooks'; +import { Input } from '@trycompai/ui/input'; +import MultipleSelector, { Option } from '@trycompai/ui/multiple-selector'; +import { Sheet, SheetContent, SheetHeader, SheetTitle } from '@trycompai/ui/sheet'; +import { Textarea } from '@trycompai/ui/textarea'; import { zodResolver } from '@hookform/resolvers/zod'; import { ArrowRightIcon, X } from 'lucide-react'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/documents/components/CompanyFormPageClient.tsx b/apps/app/src/app/(app)/[orgId]/documents/components/CompanyFormPageClient.tsx index a2bf45c07e..c701bcc3c0 100644 --- a/apps/app/src/app/(app)/[orgId]/documents/components/CompanyFormPageClient.tsx +++ b/apps/app/src/app/(app)/[orgId]/documents/components/CompanyFormPageClient.tsx @@ -55,7 +55,7 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; import { useCallback, useMemo, useRef, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/documents/components/CompanySubmissionWizard.tsx b/apps/app/src/app/(app)/[orgId]/documents/components/CompanySubmissionWizard.tsx index c2a33b3d26..1fe093cf3b 100644 --- a/apps/app/src/app/(app)/[orgId]/documents/components/CompanySubmissionWizard.tsx +++ b/apps/app/src/app/(app)/[orgId]/documents/components/CompanySubmissionWizard.tsx @@ -13,7 +13,7 @@ import { import type { EvidenceFormAnalysisResult } from '@/app/api/evidence-forms/analyze/route'; import { FileUploader } from '@/components/file-uploader'; import { api } from '@/lib/api-client'; -import { meetingFields } from '@comp/company'; +import { meetingFields } from '@trycompai/company'; import { zodResolver } from '@hookform/resolvers/zod'; import { Button, diff --git a/apps/app/src/app/(app)/[orgId]/documents/forms.ts b/apps/app/src/app/(app)/[orgId]/documents/forms.ts index d2f9db69cf..228ea2fbb8 100644 --- a/apps/app/src/app/(app)/[orgId]/documents/forms.ts +++ b/apps/app/src/app/(app)/[orgId]/documents/forms.ts @@ -1,4 +1,4 @@ -// Single source of truth: re-export from shared @comp/company package +// Single source of truth: re-export from shared @trycompai/company package export { evidenceFormDefinitionList, evidenceFormDefinitions, @@ -13,4 +13,4 @@ export { type EvidenceFormFile, type EvidenceFormType, type MeetingSubType, -} from '@comp/company'; +} from '@trycompai/company'; diff --git a/apps/app/src/app/(app)/[orgId]/error.tsx b/apps/app/src/app/(app)/[orgId]/error.tsx index 67b4ceae38..a61fbf685a 100644 --- a/apps/app/src/app/(app)/[orgId]/error.tsx +++ b/apps/app/src/app/(app)/[orgId]/error.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import Link from 'next/link'; import { useEffect } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDeleteDialog.test.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDeleteDialog.test.tsx index f63ddb26b4..d19f97387e 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDeleteDialog.test.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDeleteDialog.test.tsx @@ -41,8 +41,8 @@ vi.mock('sonner', () => ({ toast: { info: vi.fn(), error: vi.fn(), success: vi.fn() }, })); -// Mock @comp/ui components -vi.mock('@comp/ui/button', () => ({ +// Mock @trycompai/ui components +vi.mock('@trycompai/ui/button', () => ({ Button: ({ children, disabled, ...props }: any) => ( ), })); -vi.mock('@comp/ui/dropdown-menu', () => ({ +vi.mock('@trycompai/ui/dropdown-menu', () => ({ DropdownMenu: ({ children }: any) => (
{children}
), diff --git a/apps/app/src/app/(app)/[orgId]/people/devices/components/DeviceDropdownMenu.tsx b/apps/app/src/app/(app)/[orgId]/people/devices/components/DeviceDropdownMenu.tsx index 12fe928fc2..74effa186e 100644 --- a/apps/app/src/app/(app)/[orgId]/people/devices/components/DeviceDropdownMenu.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/devices/components/DeviceDropdownMenu.tsx @@ -1,12 +1,12 @@ 'use client'; -import { Button } from '@comp/ui'; +import { Button } from '@trycompai/ui'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; +} from '@trycompai/ui/dropdown-menu'; import { Laptop, MoreHorizontal } from 'lucide-react'; import { usePermissions } from '@/hooks/use-permissions'; import { Host } from '../types'; diff --git a/apps/app/src/app/(app)/[orgId]/people/devices/components/HostDetails.tsx b/apps/app/src/app/(app)/[orgId]/people/devices/components/HostDetails.tsx index bba2bf098d..205eae850b 100644 --- a/apps/app/src/app/(app)/[orgId]/people/devices/components/HostDetails.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/devices/components/HostDetails.tsx @@ -1,5 +1,5 @@ -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; import { ArrowLeft } from 'lucide-react'; import type { Host } from '../types'; import { PolicyItem } from './PolicyItem'; diff --git a/apps/app/src/app/(app)/[orgId]/people/devices/components/PolicyImagePreviewModal.tsx b/apps/app/src/app/(app)/[orgId]/people/devices/components/PolicyImagePreviewModal.tsx index 974fad2f88..f3e648a3fe 100644 --- a/apps/app/src/app/(app)/[orgId]/people/devices/components/PolicyImagePreviewModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/devices/components/PolicyImagePreviewModal.tsx @@ -7,7 +7,7 @@ import { DialogContent, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { CarouselControls } from './CarouselControls'; import { PolicyImagePreview } from './PolicyImagePreview'; diff --git a/apps/app/src/app/(app)/[orgId]/people/devices/components/PolicyItem.tsx b/apps/app/src/app/(app)/[orgId]/people/devices/components/PolicyItem.tsx index b189b41706..248962e323 100644 --- a/apps/app/src/app/(app)/[orgId]/people/devices/components/PolicyItem.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/devices/components/PolicyItem.tsx @@ -1,6 +1,6 @@ 'use client'; -import { cn } from '@comp/ui/cn'; +import { cn } from '@trycompai/ui/cn'; import { CheckCircle2, Image as ImageIcon, MoreVertical, XCircle } from 'lucide-react'; import { useMemo, useState } from 'react'; import { @@ -8,10 +8,10 @@ import { DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; +} from '@trycompai/ui/dropdown-menu'; import { FleetPolicy } from "../types"; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { PolicyImagePreviewModal } from './PolicyImagePreviewModal'; interface PolicyItemProps { diff --git a/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-assignee-chart.tsx b/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-assignee-chart.tsx index 8c186ec8ed..55d0a3d31a 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-assignee-chart.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-assignee-chart.tsx @@ -7,7 +7,7 @@ import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from '@comp/ui/chart'; +} from '@trycompai/ui/chart'; import { Card, HStack, Text } from '@trycompai/design-system'; import { UserMultiple } from '@trycompai/design-system/icons'; import { Bar, BarChart, Cell, LabelList, ResponsiveContainer, XAxis, YAxis } from 'recharts'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-status-chart.tsx b/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-status-chart.tsx index 71783ce8d6..38ee778d4f 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-status-chart.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-status-chart.tsx @@ -8,7 +8,7 @@ import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from '@comp/ui/chart'; +} from '@trycompai/ui/chart'; import { Card, HStack, Stack, Text } from '@trycompai/design-system'; import { Information } from '@trycompai/design-system/icons'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.test.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.test.tsx index 78bc6735ee..d4ded6cdb4 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.test.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.test.tsx @@ -40,7 +40,7 @@ vi.mock('nuqs', () => ({ })); // Mock media query hook -vi.mock('@comp/ui/hooks', () => ({ +vi.mock('@trycompai/ui/hooks', () => ({ useMediaQuery: vi.fn(() => true), })); diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx index 96f2e605ae..ff5cc7254c 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useMediaQuery } from '@comp/ui/hooks'; +import { useMediaQuery } from '@trycompai/ui/hooks'; import type { Policy } from '@db'; import { Button, diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.test.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.test.tsx index 034e6e5dc2..9387934e6e 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.test.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.test.tsx @@ -39,7 +39,7 @@ vi.mock('sonner', () => ({ })); // Mock SelectPills -vi.mock('@comp/ui/select-pills', () => ({ +vi.mock('@trycompai/ui/select-pills', () => ({ SelectPills: ({ disabled, placeholder, diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx index 711671e12c..7f382c9dbd 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx @@ -1,7 +1,7 @@ 'use client'; import { apiClient } from '@/lib/api-client'; -import { SelectPills } from '@comp/ui/select-pills'; +import { SelectPills } from '@trycompai/ui/select-pills'; import type { Control } from '@db'; import { Section } from '@trycompai/design-system'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx index b8202bad43..2e0c1ba518 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,8 +8,8 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Form } from '@comp/ui/form'; +} from '@trycompai/ui/dialog'; +import { Form } from '@trycompai/ui/form'; import { Policy } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; import { Trash2 } from 'lucide-react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx index e32db9fbc5..5d2bb4d45f 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx @@ -2,7 +2,7 @@ import { useAuditLogs } from '@/hooks/use-audit-logs'; import { generatePolicyPDF } from '@/lib/pdf-generator'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { useSWRConfig } from 'swr'; import { Dialog, @@ -11,15 +11,15 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Icons } from '@comp/ui/icons'; +} from '@trycompai/ui/dropdown-menu'; +import { Icons } from '@trycompai/ui/icons'; import type { Member, Policy, PolicyVersion, User } from '@db'; import type { JSONContent } from '@tiptap/react'; import { useRealtimeRun } from '@trigger.dev/react-hooks'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverviewSheet.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverviewSheet.tsx index 3c87d815df..06fa4ec83e 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverviewSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverviewSheet.tsx @@ -2,7 +2,7 @@ import { UpdatePolicyForm } from '@/components/forms/policies/update-policy-form'; import type { Policy } from '@db'; -import { useMediaQuery } from '@comp/ui/hooks'; +import { useMediaQuery } from '@trycompai/ui/hooks'; import { Drawer, DrawerContent, diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyStatusBadge.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyStatusBadge.tsx index 50075d0638..932cbc5a70 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyStatusBadge.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyStatusBadge.tsx @@ -1,7 +1,7 @@ 'use client'; import { getStatusTranslation, type StatusType } from '@/components/status-indicator'; -import { Badge } from '@comp/ui/badge'; +import { Badge } from '@trycompai/ui/badge'; import type { PolicyStatus } from '@db'; interface PolicyStatusBadgeProps { diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyVersionsTab.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyVersionsTab.tsx index 73b7959921..74db0716d5 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyVersionsTab.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyVersionsTab.tsx @@ -2,8 +2,8 @@ import { SelectAssignee } from '@/components/SelectAssignee'; import { getInitials } from '@/lib/utils'; -import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; -import { Badge } from '@comp/ui/badge'; +import { Avatar, AvatarFallback, AvatarImage } from '@trycompai/ui/avatar'; +import { Badge } from '@trycompai/ui/badge'; import { Dialog, DialogContent, @@ -11,13 +11,13 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; +} from '@trycompai/ui/dropdown-menu'; import { PolicyStatus, type Member, type Policy, type PolicyVersion, type User } from '@db'; import { AlertDialog, diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PublishVersionDialog.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PublishVersionDialog.tsx index 235b780d8f..5f69074a84 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PublishVersionDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PublishVersionDialog.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,9 +8,9 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Label } from '@comp/ui/label'; -import { Textarea } from '@comp/ui/textarea'; +} from '@trycompai/ui/dialog'; +import { Label } from '@trycompai/ui/label'; +import { Textarea } from '@trycompai/ui/textarea'; import { Stack } from '@trycompai/design-system'; import { useParams } from 'next/navigation'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.test.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.test.tsx index 4b4032b63e..bb4c0eb768 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.test.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.test.tsx @@ -96,12 +96,12 @@ vi.mock('@/components/editor/policy-editor', () => ({ })); // Mock editor utils -vi.mock('@comp/ui/editor', () => ({ +vi.mock('@trycompai/ui/editor', () => ({ validateAndFixTipTapContent: (content: unknown) => ({ content }), })); // Mock DiffViewer -vi.mock('@comp/ui/diff-viewer', () => ({ +vi.mock('@trycompai/ui/diff-viewer', () => ({ DiffViewer: () =>
, })); diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx index 9cc0063bba..048eed46bf 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx @@ -3,7 +3,7 @@ import { SelectAssignee } from '@/components/SelectAssignee'; import { PolicyEditor } from '@/components/editor/policy-editor'; import { useChat } from '@ai-sdk/react'; -import { Badge } from '@comp/ui/badge'; +import { Badge } from '@trycompai/ui/badge'; import { Dialog, DialogContent, @@ -11,15 +11,15 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { DiffViewer } from '@comp/ui/diff-viewer'; +} from '@trycompai/ui/dialog'; +import { DiffViewer } from '@trycompai/ui/diff-viewer'; import { DropdownMenu, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { validateAndFixTipTapContent } from '@comp/ui/editor'; +} from '@trycompai/ui/dropdown-menu'; +import { validateAndFixTipTapContent } from '@trycompai/ui/editor'; import { PolicyStatus, type Member, type PolicyDisplayFormat, type PolicyVersion, type User } from '@db'; import type { JSONContent } from '@tiptap/react'; import { diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/components/FullPolicyHeaderActions.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/components/FullPolicyHeaderActions.tsx index 0a0db1fcad..9c0a2bfbaa 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/components/FullPolicyHeaderActions.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/components/FullPolicyHeaderActions.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,14 +8,14 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Icons } from '@comp/ui/icons'; +} from '@trycompai/ui/dropdown-menu'; +import { Icons } from '@trycompai/ui/icons'; import { useState } from 'react'; import { toast } from 'sonner'; import { usePolicyActions } from '../hooks/usePolicyActions'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx index 51f8591dbd..39dc844771 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx @@ -3,7 +3,7 @@ import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { StatusIndicator } from '@/components/status-indicator'; import { formatDate } from '@/lib/format'; -import { Badge } from '@comp/ui/badge'; +import { Badge } from '@trycompai/ui/badge'; import { Policy } from '@db'; import { type ColumnDef, type Row } from '@tanstack/react-table'; import { ExternalLink, Loader2 } from 'lucide-react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx index af631b5c15..81bd08465a 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx @@ -10,7 +10,7 @@ import { DataTableToolbar } from '@/components/data-table/data-table-toolbar'; import { CreatePolicySheet } from '@/components/sheets/create-policy-sheet'; import { useDataTable } from '@/hooks/use-data-table'; import { apiClient } from '@/lib/api-client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import type { Policy } from '@db'; import { useParams } from 'next/navigation'; import { getPolicyColumns } from './policies-table-columns'; diff --git a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResults.tsx b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResults.tsx index 8850ea3d9a..2f03555aa4 100644 --- a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResults.tsx +++ b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResults.tsx @@ -1,6 +1,6 @@ 'use client'; -import { ScrollArea } from '@comp/ui/scroll-area'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; import { Search } from 'lucide-react'; import type { QuestionAnswer } from './types'; import { QuestionnaireResultsCards } from './QuestionnaireResultsCards'; diff --git a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsCards.tsx b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsCards.tsx index b92005301d..95ad2bd5b1 100644 --- a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsCards.tsx +++ b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsCards.tsx @@ -1,7 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Textarea } from '@comp/ui/textarea'; +import { Button } from '@trycompai/ui/button'; +import { Textarea } from '@trycompai/ui/textarea'; import { BookOpen, ChevronDown, ChevronUp, Link as LinkIcon, Loader2, Pencil } from 'lucide-react'; import Link from 'next/link'; import type { QuestionAnswer } from './types'; diff --git a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsHeader.tsx b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsHeader.tsx index ea5703c158..17c81b5fff 100644 --- a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsHeader.tsx +++ b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsHeader.tsx @@ -20,8 +20,8 @@ import { DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Button as CompButton } from '@comp/ui/button'; +} from '@trycompai/ui/dropdown-menu'; +import { Button as CompButton } from '@trycompai/ui/button'; import { ChevronDown, Download, diff --git a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsTable.tsx b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsTable.tsx index 43c1e1f0dd..6859816be1 100644 --- a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireResultsTable.tsx @@ -1,8 +1,8 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@comp/ui/table'; -import { Textarea } from '@comp/ui/textarea'; +import { Button } from '@trycompai/ui/button'; +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@trycompai/ui/table'; +import { Textarea } from '@trycompai/ui/textarea'; import { BookOpen, ChevronDown, ChevronUp, Link as LinkIcon, Loader2, Zap, Pencil } from 'lucide-react'; import Link from 'next/link'; import type { QuestionAnswer } from './types'; diff --git a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireUpload.tsx b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireUpload.tsx index fee1355a65..6b9d3115bb 100644 --- a/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireUpload.tsx +++ b/apps/app/src/app/(app)/[orgId]/questionnaire/components/QuestionnaireUpload.tsx @@ -1,7 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { cn } from '@comp/ui/cn'; +import { Button } from '@trycompai/ui/button'; +import { cn } from '@trycompai/ui/cn'; import { FileText, Loader2, diff --git a/apps/app/src/app/(app)/[orgId]/questionnaire/knowledge-base/additional-documents/components/AdditionalDocumentsSection.test.tsx b/apps/app/src/app/(app)/[orgId]/questionnaire/knowledge-base/additional-documents/components/AdditionalDocumentsSection.test.tsx index b2c2d8b578..e2a3d64e57 100644 --- a/apps/app/src/app/(app)/[orgId]/questionnaire/knowledge-base/additional-documents/components/AdditionalDocumentsSection.test.tsx +++ b/apps/app/src/app/(app)/[orgId]/questionnaire/knowledge-base/additional-documents/components/AdditionalDocumentsSection.test.tsx @@ -61,15 +61,15 @@ vi.mock('@/components/file-uploader', () => ({ ), })); -// Mock @comp/ui components -vi.mock('@comp/ui/accordion', () => ({ +// Mock @trycompai/ui components +vi.mock('@trycompai/ui/accordion', () => ({ Accordion: ({ children }: any) =>
{children}
, AccordionContent: ({ children }: any) =>
{children}
, AccordionItem: ({ children }: any) =>
{children}
, AccordionTrigger: ({ children }: any) =>
{children}
, })); -vi.mock('@comp/ui/alert-dialog', () => ({ +vi.mock('@trycompai/ui/alert-dialog', () => ({ AlertDialog: ({ children, open }: any) => open ?
{children}
: null, AlertDialogAction: ({ children, onClick }: any) => ( @@ -83,7 +83,7 @@ vi.mock('@comp/ui/alert-dialog', () => ({ AlertDialogTitle: ({ children }: any) =>

{children}

, })); -vi.mock('@comp/ui/button', () => ({ +vi.mock('@trycompai/ui/button', () => ({ Button: ({ children, onClick, disabled, ...props }: any) => (