@taskforcehq/taskforce 0.3.305 → 0.3.307
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/Taskforce.module.css +603 -107
- package/dist/TaskforceCore.js +216 -43
- package/dist/TaskforceCore.test.js +611 -28
- package/dist/assets/fonts/CourierPrime-Bold.woff2 +0 -0
- package/dist/assets/fonts/CourierPrime-BoldItalic.woff2 +0 -0
- package/dist/assets/fonts/CourierPrime-Italic.woff2 +0 -0
- package/dist/assets/fonts/CourierPrime-Regular.woff2 +0 -0
- package/dist/assets/fonts/Noir_medium.woff2 +0 -0
- package/dist/assets/fonts/Noir_regular.woff2 +0 -0
- package/dist/assets/fonts/RussoOne-Regular.woff2 +0 -0
- package/dist/assets/fonts/SpecialElite-Regular.woff2 +0 -0
- package/dist/compat/workspaceSyncCompat.js +46 -2
- package/dist/compat/workspaceSyncCompat.test.js +38 -1
- package/dist/components/activity/EntityActivityTimeline.d.ts +34 -0
- package/dist/components/activity/EntityActivityTimeline.js +81 -0
- package/dist/components/context/ContextAttachmentManager.d.ts +14 -0
- package/dist/components/context/ContextAttachmentManager.js +561 -0
- package/dist/components/features/AgentsModule.d.ts +14 -1
- package/dist/components/features/AgentsModule.js +366 -18
- package/dist/components/features/AgentsModule.test.js +507 -8
- package/dist/components/features/AnnotatedAttachmentWorkspace.d.ts +3 -1
- package/dist/components/features/AnnotatedAttachmentWorkspace.js +118 -4
- package/dist/components/features/AnnotatedAttachmentWorkspace.test.js +52 -0
- package/dist/components/features/DocumentIndex.d.ts +2 -2
- package/dist/components/features/DocumentIndex.js +3 -4
- package/dist/components/features/DocumentViewer.d.ts +7 -1
- package/dist/components/features/DocumentViewer.js +62 -4
- package/dist/components/features/DocumentWorkspace.d.ts +10 -2
- package/dist/components/features/DocumentWorkspace.js +15 -4
- package/dist/components/features/DocumentWorkspace.test.js +51 -1
- package/dist/components/features/TaskSettings.d.ts +2 -0
- package/dist/components/features/TaskSettings.js +83 -78
- package/dist/components/features/TaskSettings.test.js +171 -82
- package/dist/components/features/documentWorkspaceModel.d.ts +1 -1
- package/dist/components/task/TaskActionHeader.js +11 -5
- package/dist/components/task/TaskActionHeader.test.js +10 -0
- package/dist/components/task/TaskCard.js +24 -29
- package/dist/components/task/TaskCard.test.js +38 -3
- package/dist/components/task/TaskContextUpload.js +4 -526
- package/dist/components/task/TaskContextUpload.test.js +3 -3
- package/dist/components/task/TaskForm.js +61 -116
- package/dist/components/task/TaskForm.test.js +110 -8
- package/dist/components/task/TaskKanban.d.ts +2 -1
- package/dist/components/task/TaskKanban.js +94 -21
- package/dist/components/task/TaskKanban.test.js +36 -0
- package/dist/components/task/TaskList.js +5 -1
- package/dist/components/task/TaskList.test.js +4 -0
- package/dist/components/ui/EditableAvatarButton.d.ts +18 -0
- package/dist/components/ui/EditableAvatarButton.js +18 -0
- package/dist/components/ui/HierarchyActionBadge.d.ts +10 -0
- package/dist/components/ui/HierarchyActionBadge.js +5 -0
- package/dist/components/views/AppShellHeader.d.ts +3 -1
- package/dist/components/views/AppShellHeader.js +27 -11
- package/dist/components/views/AppShellHeader.test.js +18 -1
- package/dist/components/views/PlanComparisonPage.d.ts +9 -1
- package/dist/components/views/PlanComparisonPage.js +78 -14
- package/dist/components/views/PlanComparisonPage.test.js +257 -0
- package/dist/components/views/PlansPage.js +127 -36
- package/dist/components/views/PlansPage.test.js +294 -12
- package/dist/components/views/StandaloneLayout.js +529 -592
- package/dist/components/views/WidgetView.js +10 -8
- package/dist/components/views/panels/PlanningDrawer.d.ts +25 -5
- package/dist/components/views/panels/PlanningDrawer.js +270 -55
- package/dist/components/views/panels/PlanningDrawer.test.d.ts +1 -0
- package/dist/components/views/panels/PlanningDrawer.test.js +529 -0
- package/dist/components/views/planningScope.d.ts +20 -0
- package/dist/components/views/planningScope.js +25 -0
- package/dist/components/views/planningScope.test.d.ts +1 -0
- package/dist/components/views/planningScope.test.js +60 -0
- package/dist/components/views/standalone/modals/AccountHubModal.d.ts +26 -1
- package/dist/components/views/standalone/modals/AccountHubModal.js +76 -2
- package/dist/components/views/standalone/modals/AccountHubModal.test.js +20 -3
- package/dist/components/views/standalone/modals/AvatarImageManagerModal.d.ts +20 -0
- package/dist/components/views/standalone/modals/AvatarImageManagerModal.js +127 -0
- package/dist/components/views/standalone/modals/EditProfileModal.d.ts +2 -9
- package/dist/components/views/standalone/modals/EditProfileModal.js +3 -2
- package/dist/components/views/standalone/modals/SyncEnableWarningModal.d.ts +9 -0
- package/dist/components/views/standalone/modals/SyncEnableWarningModal.js +6 -0
- package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.d.ts +1 -0
- package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.js +24 -0
- package/dist/components/views/standalone/modals/SyncStatusModal.d.ts +2 -1
- package/dist/components/views/standalone/modals/SyncStatusModal.js +2 -2
- package/dist/config/envSchema.js +1 -0
- package/dist/core/AiProfileService.d.ts +46 -2
- package/dist/core/AiProfileService.js +1073 -82
- package/dist/core/AiProfileService.test.js +19 -1
- package/dist/core/AiProfiles.test.js +1249 -44
- package/dist/core/AttachmentLinkService.d.ts +3 -0
- package/dist/core/AttachmentLinkService.js +110 -23
- package/dist/core/AuthIdentityService.d.ts +107 -0
- package/dist/core/AuthIdentityService.js +284 -0
- package/dist/core/AuthTokenService.d.ts +4 -0
- package/dist/core/AuthTokenService.js +34 -6
- package/dist/core/AuthTokenService.test.js +3 -3
- package/dist/core/EntitlementsPolicy.test.js +2 -2
- package/dist/core/GlobalSettingsService.js +127 -6
- package/dist/core/McpTokenService.d.ts +12 -0
- package/dist/core/McpTokenService.js +44 -1
- package/dist/core/PlanEntitlementService.d.ts +23 -2
- package/dist/core/PlanEntitlementService.js +343 -57
- package/dist/core/PlanFeatureCatalog.test.d.ts +1 -0
- package/dist/core/PlanFeatureCatalog.test.js +84 -0
- package/dist/core/PlanVersionPolicy.test.js +35 -2
- package/dist/core/PlanningEntities.test.js +418 -4
- package/dist/core/SignupMonetizationSettings.test.js +199 -27
- package/dist/core/SyncReconciliationService.js +2 -65
- package/dist/core/SystemAdmin.test.js +42 -42
- package/dist/core/TaskActivityService.d.ts +28 -1
- package/dist/core/TaskActivityService.js +227 -46
- package/dist/core/TaskActivitySync.test.d.ts +1 -0
- package/dist/core/TaskActivitySync.test.js +90 -0
- package/dist/core/TaskAttachmentsCanonical.test.js +51 -1
- package/dist/core/TaskAuditTimeline.test.js +96 -0
- package/dist/core/Taskforce.d.ts +415 -40
- package/dist/core/Taskforce.ids.test.js +58 -0
- package/dist/core/Taskforce.js +1543 -266
- package/dist/core/Taskforce.listTasksSlim.test.d.ts +1 -0
- package/dist/core/Taskforce.listTasksSlim.test.js +91 -0
- package/dist/core/Taskforce.mcpAuth.test.js +109 -0
- package/dist/core/UserProfileAvatarDrafts.test.js +30 -3
- package/dist/core/WorkspaceLifecycleService.js +0 -5
- package/dist/core/WorkspacePermissions.test.js +25 -1
- package/dist/core/WorkspacePlanMode.test.js +117 -16
- package/dist/core/shared.d.ts +1 -1
- package/dist/core/shared.js +5 -1
- package/dist/core/types.d.ts +75 -2
- package/dist/hooks/auth/useTaskforceAuthBootstrap.js +28 -2
- package/dist/hooks/bootstrapTimeouts.d.ts +4 -0
- package/dist/hooks/bootstrapTimeouts.js +8 -0
- package/dist/hooks/bootstrapTimeouts.test.d.ts +1 -0
- package/dist/hooks/bootstrapTimeouts.test.js +12 -0
- package/dist/hooks/sync/bootstrap.js +2 -0
- package/dist/hooks/sync/controlPlane.d.ts +37 -0
- package/dist/hooks/sync/controlPlane.js +78 -0
- package/dist/hooks/sync/controlPlane.test.d.ts +1 -0
- package/dist/hooks/sync/controlPlane.test.js +121 -0
- package/dist/hooks/sync/lifecyclePolicy.d.ts +45 -0
- package/dist/hooks/sync/lifecyclePolicy.js +93 -0
- package/dist/hooks/sync/lifecyclePolicy.test.d.ts +1 -0
- package/dist/hooks/sync/lifecyclePolicy.test.js +124 -0
- package/dist/hooks/sync/orchestratorShared.d.ts +13 -4
- package/dist/hooks/sync/orchestratorShared.js +129 -48
- package/dist/hooks/sync/orchestratorShared.test.js +50 -1
- package/dist/hooks/sync/pullLifecycle.d.ts +31 -0
- package/dist/hooks/sync/pullLifecycle.js +24 -0
- package/dist/hooks/sync/pullLifecycle.test.d.ts +1 -0
- package/dist/hooks/sync/pullLifecycle.test.js +80 -0
- package/dist/hooks/sync/recovery.d.ts +16 -2
- package/dist/hooks/sync/recovery.js +179 -53
- package/dist/hooks/sync/recovery.test.d.ts +1 -0
- package/dist/hooks/sync/recovery.test.js +292 -0
- package/dist/hooks/sync/transfers.d.ts +16 -3
- package/dist/hooks/sync/transfers.js +210 -66
- package/dist/hooks/sync/transfers.test.d.ts +1 -0
- package/dist/hooks/sync/transfers.test.js +928 -0
- package/dist/hooks/sync/useRecentSyncEvents.d.ts +21 -0
- package/dist/hooks/sync/useRecentSyncEvents.js +92 -0
- package/dist/hooks/sync/useRecentSyncEvents.test.d.ts +1 -0
- package/dist/hooks/sync/useRecentSyncEvents.test.js +124 -0
- package/dist/hooks/sync/useSyncStatusActions.d.ts +30 -0
- package/dist/hooks/sync/useSyncStatusActions.js +88 -0
- package/dist/hooks/sync/useSyncStatusActions.test.d.ts +1 -0
- package/dist/hooks/sync/useSyncStatusActions.test.js +133 -0
- package/dist/hooks/sync/useSyncStatusControls.d.ts +25 -0
- package/dist/hooks/sync/useSyncStatusControls.js +60 -0
- package/dist/hooks/sync/useSyncStatusControls.test.d.ts +1 -0
- package/dist/hooks/sync/useSyncStatusControls.test.js +88 -0
- package/dist/hooks/useFilterSort.js +13 -13
- package/dist/hooks/useFilterSort.test.js +87 -1
- package/dist/hooks/useSyncOrchestrator.aiProfiles.test.js +12 -0
- package/dist/hooks/useSyncOrchestrator.d.ts +9 -2
- package/dist/hooks/useSyncOrchestrator.js +409 -183
- package/dist/hooks/useSyncOrchestrator.retry-closure.test.js +407 -0
- package/dist/hooks/useTaskData.js +8 -3
- package/dist/hooks/useTaskData.test.js +45 -0
- package/dist/hooks/useTaskforce.d.ts +145 -52
- package/dist/hooks/useTaskforce.js +592 -253
- package/dist/hooks/useTaskforce.runtime-routing.test.d.ts +1 -0
- package/dist/hooks/useTaskforce.runtime-routing.test.js +246 -0
- package/dist/hooks/useTaskforce.sync-behavior.test.js +2468 -201
- package/dist/hooks/useWorkspaceSyncController.d.ts +1 -0
- package/dist/hooks/useWorkspaceSyncController.js +13 -2
- package/dist/hooks/useWorkspaceSyncController.test.js +48 -0
- package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.d.ts +16 -0
- package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +328 -40
- package/dist/localization/locales/en-US.d.ts +0 -1
- package/dist/localization/locales/en-US.js +0 -1
- package/dist/localization/locales/es-419.js +0 -1
- package/dist/localization/locales/pt-BR.js +0 -1
- package/dist/mcp/canonicalAssetHelpers.d.ts +16 -4
- package/dist/mcp/canonicalAssetHelpers.js +18 -10
- package/dist/mcp/canonicalAssetHelpers.test.d.ts +1 -0
- package/dist/mcp/canonicalAssetHelpers.test.js +67 -0
- package/dist/mcp/clientIntegrations.d.ts +1 -0
- package/dist/mcp/clientIntegrations.js +25 -0
- package/dist/mcp/clientIntegrations.test.js +14 -3
- package/dist/mcp/clientProfileDefaults.js +3 -3
- package/dist/mcp/collaborationRegistrar.js +7 -7
- package/dist/mcp/documentAssetRegistrar.js +116 -10
- package/dist/mcp/runtime.d.ts +3 -0
- package/dist/mcp/runtime.js +1099 -185
- package/dist/mcp/runtime.test.js +1491 -140
- package/dist/mcp/taskAttachmentTypes.d.ts +1 -1
- package/dist/mcp/taskPlanningRegistrar.js +48 -0
- package/dist/mcp/toolRegistry.d.ts +56 -0
- package/dist/mcp/toolRegistry.js +8 -0
- package/dist/mcp/toolRegistry.test.js +4 -0
- package/dist/migrations/taskSchemaMigrations.d.ts +1 -1
- package/dist/migrations/taskSchemaMigrations.js +192 -61
- package/dist/migrations/taskSchemaMigrations.test.js +15 -0
- package/dist/resources/templates/workflow-sources/workflowDocs.mjs +6 -6
- package/dist/resources/templates/workflows/collaborate.yaml +1 -1
- package/dist/resources/templates/workflows/evaluate.yaml +2 -2
- package/dist/resources/templates/workflows/plan.yaml +1 -1
- package/dist/resources/templates/workflows/review.yaml +2 -2
- package/dist/server/aiProfileAvatarAssets.d.ts +49 -0
- package/dist/server/aiProfileAvatarAssets.js +319 -0
- package/dist/server/aiProfileAvatarAssets.test.d.ts +1 -0
- package/dist/server/aiProfileAvatarAssets.test.js +213 -0
- package/dist/server/annotatedAttachmentsRoutes.test.js +69 -10
- package/dist/server/auth/providers/apple.d.ts +33 -0
- package/dist/server/auth/providers/apple.js +82 -0
- package/dist/server/auth/providers/appleClientSecret.d.ts +37 -0
- package/dist/server/auth/providers/appleClientSecret.js +65 -0
- package/dist/server/auth/providers/github.d.ts +26 -0
- package/dist/server/auth/providers/github.js +86 -0
- package/dist/server/auth/providers/google.d.ts +21 -0
- package/dist/server/auth/providers/google.js +56 -0
- package/dist/server/auth/providers/types.d.ts +21 -0
- package/dist/server/auth/providers/types.js +1 -0
- package/dist/server/auth.d.ts +2 -0
- package/dist/server/auth.js +6 -3
- package/dist/server/documentReviewRoutes.test.js +36 -3
- package/dist/server/index.cookieProxy.test.js +1 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.js +124 -9
- package/dist/server/index.rateLimit.test.js +3 -0
- package/dist/server/index.test.js +111 -3
- package/dist/server/routes/admin.d.ts +3 -0
- package/dist/server/routes/admin.js +459 -28
- package/dist/server/routes/annotatedAttachments.js +51 -0
- package/dist/server/routes/auth.d.ts +26 -2
- package/dist/server/routes/auth.js +1170 -71
- package/dist/server/routes/authSupport.d.ts +5 -1
- package/dist/server/routes/authSupport.js +13 -2
- package/dist/server/routes/billing.js +372 -35
- package/dist/server/routes/billing.test.js +595 -12
- package/dist/server/routes/documents.d.ts +1 -0
- package/dist/server/routes/documents.js +182 -70
- package/dist/server/routes/shared.d.ts +28 -2
- package/dist/server/routes/shared.js +69 -14
- package/dist/server/routes/sync.integration.test.js +658 -39
- package/dist/server/routes/sync.js +74 -608
- package/dist/server/routes/syncAuxRoutes.d.ts +15 -0
- package/dist/server/routes/syncAuxRoutes.js +91 -0
- package/dist/server/routes/syncAuxRoutes.test.d.ts +1 -0
- package/dist/server/routes/syncAuxRoutes.test.js +158 -0
- package/dist/server/routes/syncPullApplyRoutes.d.ts +36 -0
- package/dist/server/routes/syncPullApplyRoutes.js +204 -0
- package/dist/server/routes/syncPushRoutes.d.ts +24 -0
- package/dist/server/routes/syncPushRoutes.js +212 -0
- package/dist/server/routes/syncRouteGuards.d.ts +36 -0
- package/dist/server/routes/syncRouteGuards.js +67 -0
- package/dist/server/routes/syncRouteGuards.test.d.ts +1 -0
- package/dist/server/routes/syncRouteGuards.test.js +94 -0
- package/dist/server/routes/syncRouteTypes.d.ts +13 -0
- package/dist/server/routes/syncRouteTypes.js +1 -0
- package/dist/server/routes/syncSnapshotRoutes.d.ts +66 -0
- package/dist/server/routes/syncSnapshotRoutes.js +182 -0
- package/dist/server/routes/tasks.js +55 -10
- package/dist/server/routes/workspaces.js +36 -5
- package/dist/server/routes.js +147 -11
- package/dist/server/routes.test.js +2704 -183
- package/dist/services/workflowExportSnapshots.test.js +2 -0
- package/dist/shared/aiProfileSeatScope.d.ts +5 -0
- package/dist/shared/aiProfileSeatScope.js +21 -0
- package/dist/shared/aiProfileSurfaceType.d.ts +1 -1
- package/dist/shared/aiProfileSurfaceType.js +10 -8
- package/dist/shared/passwordPolicy.d.ts +13 -0
- package/dist/shared/passwordPolicy.js +84 -0
- package/dist/shared/passwordPolicy.test.d.ts +1 -0
- package/dist/shared/passwordPolicy.test.js +34 -0
- package/dist/storage/objectStorage.d.ts +1 -0
- package/dist/storage/objectStorage.js +2 -1
- package/dist/storage/objectStorageClient.d.ts +1 -0
- package/dist/storage/objectStorageClient.js +41 -8
- package/dist/storage/objectStorageClient.test.js +26 -1
- package/dist/storage/objectStorageConfig.js +3 -1
- package/dist/storage/objectStorageConfig.test.js +13 -1
- package/dist/storage/workspaceAssetStore.d.ts +15 -3
- package/dist/storage/workspaceAssetStore.js +132 -44
- package/dist/storage/workspaceAssetStore.test.js +93 -6
- package/dist/styles/fonts.css +70 -0
- package/dist/sync/collaborationSyncPayload.d.ts +6 -1
- package/dist/sync/collaborationSyncPayload.js +19 -11
- package/dist/sync/collaborationSyncPayload.test.js +14 -1
- package/dist/sync/collaborationSyncState.d.ts +3 -3
- package/dist/sync/collaborationSyncState.js +19 -12
- package/dist/sync/contentSyncPayload.d.ts +5 -1
- package/dist/sync/contentSyncPayload.js +9 -0
- package/dist/sync/contentSyncPayload.test.js +39 -0
- package/dist/sync/contentSyncState.d.ts +9 -9
- package/dist/sync/contentSyncState.js +248 -107
- package/dist/sync/planningSyncPayload.js +5 -0
- package/dist/sync/planningSyncPayload.test.js +24 -0
- package/dist/sync/syncApplyHandlers.d.ts +11 -4
- package/dist/sync/syncApplyHandlers.js +115 -42
- package/dist/sync/syncApplyHandlers.test.js +251 -4
- package/dist/sync/syncFieldSemantics.d.ts +12 -0
- package/dist/sync/syncFieldSemantics.js +55 -0
- package/dist/sync/syncResourceAdapters.d.ts +46 -0
- package/dist/sync/syncResourceAdapters.js +79 -0
- package/dist/sync/syncService.d.ts +6 -0
- package/dist/sync/syncService.js +65 -1
- package/dist/sync/syncService.test.js +96 -3
- package/dist/sync/taskSyncChangeKey.d.ts +2 -0
- package/dist/sync/taskSyncChangeKey.js +143 -0
- package/dist/sync/taskSyncPayload.js +3 -8
- package/dist/sync/workspacePullFeed.d.ts +4 -0
- package/dist/sync/workspacePullFeed.js +132 -72
- package/dist/sync/workspacePullFeed.test.js +92 -0
- package/dist/sync/workspaceRepair.js +5 -2
- package/dist/sync/workspaceSyncModel.d.ts +73 -6
- package/dist/sync/workspaceSyncModel.js +342 -73
- package/dist/sync/workspaceSyncModel.test.js +559 -14
- package/dist/sync/workspaceSyncState.d.ts +17 -0
- package/dist/sync/workspaceSyncState.js +2 -1
- package/dist/sync/workspaceSyncSurface.js +3 -8
- package/dist/types.d.ts +50 -2
- package/dist/ui/assets/AgentsModule-2y82_3DO.js +1 -0
- package/dist/ui/assets/AnnotatedAttachmentWorkspace-BTLZZCiQ.js +3 -0
- package/dist/ui/assets/AnnotatedAttachmentWorkspace-BVKew-mH.css +1 -0
- package/dist/ui/assets/ContextAttachmentManager-D2epuNnG.js +3 -0
- package/dist/ui/assets/CourierPrime-Bold-BuLj_dpw.woff2 +0 -0
- package/dist/ui/assets/CourierPrime-BoldItalic-BrK2pUkZ.woff2 +0 -0
- package/dist/ui/assets/CourierPrime-Italic-DFUZK5Ey.woff2 +0 -0
- package/dist/ui/assets/CourierPrime-Regular-BsKphzVf.woff2 +0 -0
- package/dist/ui/assets/DocumentWorkspace-D4rJKXzd.css +1 -0
- package/dist/ui/assets/DocumentWorkspace-sVa-3Do6.js +252 -0
- package/dist/ui/assets/EntityActivityTimeline-DyqvvhuF.css +1 -0
- package/dist/ui/assets/EntityActivityTimeline-Zods27y_.js +1 -0
- package/dist/ui/assets/{InitiativesModule-Dhm7M8e7.js → InitiativesModule-D4XseTwW.js} +1 -1
- package/dist/ui/assets/Noir_medium-bxQwKGzB.woff2 +0 -0
- package/dist/ui/assets/Noir_regular-ojf2kxlG.woff2 +0 -0
- package/dist/ui/assets/PlansPage-D5AcbO0L.js +1 -0
- package/dist/ui/assets/PlansPage-Dvqsz5zc.css +1 -0
- package/dist/ui/assets/RussoOne-Regular-Cu_qq_qC.woff2 +0 -0
- package/dist/ui/assets/SpecialElite-Regular-Di6gSvAS.woff2 +0 -0
- package/dist/ui/assets/TaskContextUpload-uC5qx4Bv.js +1 -0
- package/dist/ui/assets/TaskSettings-CqvPAsTv.js +9 -0
- package/dist/ui/assets/{WorkflowsModule-BcS4afRn.js → WorkflowsModule-oOA9bcdK.js} +4 -4
- package/dist/ui/assets/documentReferences-DPZuTgHh.js +1 -0
- package/dist/ui/assets/index-607WPo_X.js +4 -0
- package/dist/ui/assets/index-CYyodXsg.css +1 -0
- package/dist/ui/assets/{vendor-icons-BSUaRwF8.js → vendor-icons-B32hGuF2.js} +1 -1
- package/dist/ui/fonts/CourierPrime-Bold.ttf +0 -0
- package/dist/ui/fonts/CourierPrime-Bold.woff2 +0 -0
- package/dist/ui/fonts/CourierPrime-BoldItalic.ttf +0 -0
- package/dist/ui/fonts/CourierPrime-BoldItalic.woff2 +0 -0
- package/dist/ui/fonts/CourierPrime-Italic.ttf +0 -0
- package/dist/ui/fonts/CourierPrime-Italic.woff2 +0 -0
- package/dist/ui/fonts/CourierPrime-Regular.ttf +0 -0
- package/dist/ui/fonts/CourierPrime-Regular.woff2 +0 -0
- package/dist/ui/fonts/Noir_medium.otf +0 -0
- package/dist/ui/fonts/Noir_medium.woff2 +0 -0
- package/dist/ui/fonts/Noir_regular.otf +0 -0
- package/dist/ui/fonts/Noir_regular.woff2 +0 -0
- package/dist/ui/fonts/RussoOne-Regular.woff2 +0 -0
- package/dist/ui/fonts/SpecialElite-Regular.ttf +0 -0
- package/dist/ui/fonts/SpecialElite-Regular.woff2 +0 -0
- package/dist/ui/index.html +3 -3
- package/dist/ui/product/agent manager.png +0 -0
- package/dist/ui/product/agent_manager_02.png +0 -0
- package/dist/utils/accountProfileSummaryCache.d.ts +5 -0
- package/dist/utils/aiProfileEvents.d.ts +7 -0
- package/dist/utils/aiProfileEvents.js +6 -0
- package/dist/utils/assignees.d.ts +8 -0
- package/dist/utils/assignees.js +10 -1
- package/dist/utils/assignees.test.d.ts +1 -0
- package/dist/utils/assignees.test.js +25 -0
- package/dist/utils/avatarDisplay.d.ts +1 -0
- package/dist/utils/avatarDisplay.js +15 -0
- package/dist/utils/avatarUpload.d.ts +27 -0
- package/dist/utils/avatarUpload.js +132 -0
- package/dist/utils/avatarUpload.test.d.ts +1 -0
- package/dist/utils/avatarUpload.test.js +40 -0
- package/dist/utils/bootstrapTrace.d.ts +7 -0
- package/dist/utils/bootstrapTrace.js +29 -0
- package/dist/utils/commercialLifecyclePresentation.js +3 -0
- package/dist/utils/contextAssetEvents.d.ts +2 -0
- package/dist/utils/contextFiles.d.ts +3 -1
- package/dist/utils/contextFiles.js +2 -1
- package/dist/utils/syncEventDetails.d.ts +3 -0
- package/dist/utils/syncEventDetails.js +64 -0
- package/dist/utils/syncEventDetails.test.d.ts +1 -0
- package/dist/utils/syncEventDetails.test.js +23 -0
- package/dist/utils/syncEventPresentation.d.ts +15 -0
- package/dist/utils/syncEventPresentation.js +129 -0
- package/dist/utils/syncEventPresentation.test.d.ts +1 -0
- package/dist/utils/syncEventPresentation.test.js +64 -0
- package/dist/utils/syncStatusPresentation.d.ts +72 -0
- package/dist/utils/syncStatusPresentation.js +217 -0
- package/dist/utils/syncStatusPresentation.test.d.ts +1 -0
- package/dist/utils/syncStatusPresentation.test.js +164 -0
- package/dist/utils/taskActivity.d.ts +9 -1
- package/dist/utils/taskActivity.js +290 -22
- package/dist/utils/taskActivity.test.js +141 -8
- package/dist/utils/taskSearch.d.ts +22 -0
- package/dist/utils/taskSearch.js +87 -0
- package/dist/utils/taskSearch.test.d.ts +1 -0
- package/dist/utils/taskSearch.test.js +69 -0
- package/dist/utils/taskUtils.js +10 -3
- package/dist/utils/taskUtils.test.d.ts +1 -0
- package/dist/utils/taskUtils.test.js +19 -0
- package/dist/utils/workspaceSyncPresentation.d.ts +4 -0
- package/dist/utils/workspaceSyncPresentation.js +68 -2
- package/dist/utils/workspaceSyncPresentation.test.js +36 -1
- package/package.json +3 -2
- package/scripts/export-sqlite-to-postgres.mjs +7 -9
- package/scripts/run-e2e-realtime.sh +17 -3
- package/scripts/run-smoke.sh +17 -5
- package/scripts/run-soak.sh +17 -5
- package/src/resources/templates/workflow-sources/workflowDocs.mjs +6 -6
- package/src/resources/templates/workflows/collaborate.yaml +1 -1
- package/src/resources/templates/workflows/evaluate.yaml +2 -2
- package/src/resources/templates/workflows/plan.yaml +1 -1
- package/src/resources/templates/workflows/review.yaml +2 -2
- package/dist/ui/assets/AgentsModule-N2MnQBZk.js +0 -1
- package/dist/ui/assets/AnnotatedAttachmentWorkspace-BG6P_GVW.js +0 -3
- package/dist/ui/assets/AnnotatedAttachmentWorkspace-BaS2VwIr.css +0 -1
- package/dist/ui/assets/DocumentWorkspace-B3nV_Gc5.css +0 -1
- package/dist/ui/assets/DocumentWorkspace-DRbDMwh8.js +0 -252
- package/dist/ui/assets/PlansPage-C2dd2n1X.css +0 -1
- package/dist/ui/assets/PlansPage-Cq0zXj3I.js +0 -1
- package/dist/ui/assets/RussoOne-Regular-C3BxZIj7.ttf +0 -0
- package/dist/ui/assets/TaskSettings-ln0aF7xc.js +0 -9
- package/dist/ui/assets/index-C2-OXZV7.css +0 -1
- package/dist/ui/assets/index-DcSI5F86.js +0 -6
- package/scripts/migrate-planning-model.ts +0 -233
package/dist/core/Taskforce.d.ts
CHANGED
|
@@ -3,10 +3,22 @@ import { WorkspaceAssetStore } from '../storage/workspaceAssetStore.js';
|
|
|
3
3
|
import { type SyncEventInput } from './SyncReconciliationService.js';
|
|
4
4
|
import { type FirstClassTaxonomyDisplayLabels, type WorkspaceTaxonomyState } from '../shared/taxonomyState.js';
|
|
5
5
|
import { type AiProfileSurfaceType } from '../shared/aiProfileSurfaceType.js';
|
|
6
|
+
import { type AiProfileSeatScope } from '../shared/aiProfileSeatScope.js';
|
|
7
|
+
import type { PlanningBootstrapPayload } from '../types.js';
|
|
6
8
|
import type { TaskActor } from '../shared/taskActor.js';
|
|
7
9
|
export type { TaskActor } from '../shared/taskActor.js';
|
|
8
10
|
export type { WorkspaceDeletedAssetRecord, WorkspaceDeleteSummary } from './types.js';
|
|
9
|
-
import type { GlobalTaskforceSettings, UserGlobalSyncSettings, WorkspaceDeleteSummary } from './types.js';
|
|
11
|
+
import type { GlobalTaskforceSettings, UserGlobalSyncSettings, WorkspaceDeleteSummary, UserAuthProvider } from './types.js';
|
|
12
|
+
export interface PlanningBootstrapDiagnostics {
|
|
13
|
+
initiativeCount?: number;
|
|
14
|
+
workstreamCount?: number;
|
|
15
|
+
workstreamLinkedTaskCount?: number;
|
|
16
|
+
workstreamTaskSummaryCount?: number;
|
|
17
|
+
initiativeLoadMs?: number;
|
|
18
|
+
workstreamLoadMs?: number;
|
|
19
|
+
taskSummaryQueryMs?: number;
|
|
20
|
+
taskSummaryBuildMs?: number;
|
|
21
|
+
}
|
|
10
22
|
import type { AnnotatedAttachmentAnnotation, AnnotatedAttachmentPayload, AnnotatedAttachmentSession, AnnotatedAttachmentSessionRecord } from '../annotatedAttachments/types.js';
|
|
11
23
|
import type { DocumentReviewAnchor, DocumentReviewCommentSyncRecord, DocumentReviewSession, DocumentReviewSessionRecord, DocumentReviewSessionStatus } from '../documentReviews/types.js';
|
|
12
24
|
import { type TaskforceTheme } from '../utils/theme.js';
|
|
@@ -32,10 +44,25 @@ export interface TaskEventDetails {
|
|
|
32
44
|
changes?: Record<string, TaskEventChange>;
|
|
33
45
|
[key: string]: unknown;
|
|
34
46
|
}
|
|
47
|
+
export type ActivityEntityType = 'task' | 'initiative' | 'workstream';
|
|
48
|
+
interface BaseEntityEvent {
|
|
49
|
+
id: string;
|
|
50
|
+
workspaceId: string;
|
|
51
|
+
entityType: ActivityEntityType;
|
|
52
|
+
entityId: string;
|
|
53
|
+
action: string;
|
|
54
|
+
actor: string;
|
|
55
|
+
actorType: 'human' | 'ai' | 'system';
|
|
56
|
+
createdAt: string;
|
|
57
|
+
details?: TaskEventDetails;
|
|
58
|
+
actorProfile?: TaskActor | null;
|
|
59
|
+
}
|
|
35
60
|
export interface TaskEvent {
|
|
36
61
|
id: string;
|
|
37
62
|
taskId: string;
|
|
38
63
|
workspaceId: string;
|
|
64
|
+
entityType?: 'task';
|
|
65
|
+
entityId?: string;
|
|
39
66
|
action: string;
|
|
40
67
|
actor: string;
|
|
41
68
|
actorType: 'human' | 'ai' | 'system';
|
|
@@ -43,6 +70,11 @@ export interface TaskEvent {
|
|
|
43
70
|
details?: TaskEventDetails;
|
|
44
71
|
actorProfile?: TaskActor | null;
|
|
45
72
|
}
|
|
73
|
+
export interface PlanningEntityEvent extends BaseEntityEvent {
|
|
74
|
+
entityType: 'initiative' | 'workstream';
|
|
75
|
+
entityId: string;
|
|
76
|
+
}
|
|
77
|
+
export type EntityEvent = TaskEvent | PlanningEntityEvent;
|
|
46
78
|
export interface CommentActivityItem {
|
|
47
79
|
id: string;
|
|
48
80
|
type: 'comment';
|
|
@@ -56,6 +88,13 @@ export interface AuditActivityItem {
|
|
|
56
88
|
event: TaskEvent;
|
|
57
89
|
}
|
|
58
90
|
export type TaskActivityItem = CommentActivityItem | AuditActivityItem;
|
|
91
|
+
export interface EntityAuditActivityItem {
|
|
92
|
+
id: string;
|
|
93
|
+
type: 'event';
|
|
94
|
+
timestamp: string;
|
|
95
|
+
event: EntityEvent;
|
|
96
|
+
}
|
|
97
|
+
export type EntityActivityItem = CommentActivityItem | EntityAuditActivityItem;
|
|
59
98
|
export type DeletedTaskSource = 'ui' | 'mcp' | 'sync' | 'workspace-delete' | 'system';
|
|
60
99
|
export interface DeletedTaskDetails {
|
|
61
100
|
reason?: string | null;
|
|
@@ -98,12 +137,7 @@ export interface TaskItem {
|
|
|
98
137
|
comments?: Comment[];
|
|
99
138
|
activity?: TaskActivityItem[];
|
|
100
139
|
taskEvents?: TaskEvent[];
|
|
101
|
-
attachments?:
|
|
102
|
-
path: string;
|
|
103
|
-
fsPath?: string;
|
|
104
|
-
caption?: string;
|
|
105
|
-
timestamp?: string;
|
|
106
|
-
}>;
|
|
140
|
+
attachments?: AttachmentItem[];
|
|
107
141
|
/** @deprecated Use status='done'. Safe to remove after v0.4.x migration gate. */
|
|
108
142
|
completed?: boolean;
|
|
109
143
|
/** @deprecated Use status='cancelled'. Safe to remove after v0.4.x migration gate. */
|
|
@@ -122,6 +156,18 @@ export interface TaskItem {
|
|
|
122
156
|
workstreamId?: string | null;
|
|
123
157
|
checklistItems?: ChecklistItem[];
|
|
124
158
|
}
|
|
159
|
+
export type AttachmentItem = string | {
|
|
160
|
+
path: string;
|
|
161
|
+
fsPath?: string;
|
|
162
|
+
caption?: string;
|
|
163
|
+
displayName?: string;
|
|
164
|
+
originalFilename?: string;
|
|
165
|
+
timestamp?: string;
|
|
166
|
+
assetId?: string | null;
|
|
167
|
+
referenceNumber?: number | null;
|
|
168
|
+
referenceLabel?: string | null;
|
|
169
|
+
taskId?: string | null;
|
|
170
|
+
};
|
|
125
171
|
export interface InitiativeItem {
|
|
126
172
|
id: string;
|
|
127
173
|
referenceNumber?: number | null;
|
|
@@ -130,12 +176,9 @@ export interface InitiativeItem {
|
|
|
130
176
|
description: string | null;
|
|
131
177
|
ownerId?: string | null;
|
|
132
178
|
comments?: Comment[];
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
caption?: string;
|
|
137
|
-
timestamp?: string;
|
|
138
|
-
}>;
|
|
179
|
+
activity?: EntityActivityItem[];
|
|
180
|
+
entityEvents?: PlanningEntityEvent[];
|
|
181
|
+
attachments?: AttachmentItem[];
|
|
139
182
|
createdAt: string;
|
|
140
183
|
updatedAt?: string;
|
|
141
184
|
order?: number | null;
|
|
@@ -150,12 +193,9 @@ export interface WorkstreamItem {
|
|
|
150
193
|
description: string | null;
|
|
151
194
|
ownerId?: string | null;
|
|
152
195
|
comments?: Comment[];
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
caption?: string;
|
|
157
|
-
timestamp?: string;
|
|
158
|
-
}>;
|
|
196
|
+
activity?: EntityActivityItem[];
|
|
197
|
+
entityEvents?: PlanningEntityEvent[];
|
|
198
|
+
attachments?: AttachmentItem[];
|
|
159
199
|
createdAt: string;
|
|
160
200
|
updatedAt?: string;
|
|
161
201
|
order?: number | null;
|
|
@@ -350,6 +390,8 @@ interface UserAccessRecord {
|
|
|
350
390
|
role: AccessRole;
|
|
351
391
|
permissionMode: PermissionMode;
|
|
352
392
|
disabled: boolean;
|
|
393
|
+
accountDisabled?: boolean;
|
|
394
|
+
workspaceDisabled?: boolean;
|
|
353
395
|
betaAccess: boolean;
|
|
354
396
|
}
|
|
355
397
|
interface UserIdentityRecord {
|
|
@@ -374,10 +416,26 @@ interface UserAvatarUploadDraftRecord {
|
|
|
374
416
|
createdAt: string;
|
|
375
417
|
updatedAt: string;
|
|
376
418
|
}
|
|
419
|
+
interface TaskAttachmentUploadDraftRecord {
|
|
420
|
+
draftId: string;
|
|
421
|
+
workspaceId: string;
|
|
422
|
+
taskId: string;
|
|
423
|
+
actorRef: string;
|
|
424
|
+
storageKey: string;
|
|
425
|
+
mimeType: string;
|
|
426
|
+
originalFilename: string;
|
|
427
|
+
sizeBytes: number;
|
|
428
|
+
storageProvider: 'local' | 'r2' | 'external';
|
|
429
|
+
consumedAt?: string | null;
|
|
430
|
+
discardedAt?: string | null;
|
|
431
|
+
createdAt: string;
|
|
432
|
+
updatedAt: string;
|
|
433
|
+
}
|
|
377
434
|
interface WorkspaceUserRecord {
|
|
378
435
|
userId: string;
|
|
379
436
|
email: string;
|
|
380
437
|
displayName?: string | null;
|
|
438
|
+
avatarUrl?: string | null;
|
|
381
439
|
role: AccessRole;
|
|
382
440
|
permissionMode: PermissionMode;
|
|
383
441
|
betaAccess: boolean;
|
|
@@ -395,12 +453,22 @@ export interface AiProfileRecord {
|
|
|
395
453
|
username: string;
|
|
396
454
|
icon: string;
|
|
397
455
|
color: string;
|
|
456
|
+
avatarUrl?: string | null;
|
|
457
|
+
avatarSourceUrl?: string | null;
|
|
458
|
+
avatarRevision?: number;
|
|
459
|
+
avatarUpdatedAt?: string | null;
|
|
398
460
|
description?: string | null;
|
|
399
461
|
role?: string | null;
|
|
400
462
|
provider?: string | null;
|
|
401
463
|
model?: string | null;
|
|
402
464
|
surfaceType?: AiProfileSurfaceType | null;
|
|
465
|
+
seatScope?: AiProfileSeatScope | null;
|
|
403
466
|
providerMetadata?: Record<string, unknown> | null;
|
|
467
|
+
archivedAt?: string | null;
|
|
468
|
+
archivedBy?: string | null;
|
|
469
|
+
archivedReason?: string | null;
|
|
470
|
+
mergedIntoProfileId?: string | null;
|
|
471
|
+
rosterStateUpdatedAt?: string | null;
|
|
404
472
|
createdAt: string;
|
|
405
473
|
updatedAt: string;
|
|
406
474
|
lastActiveAt?: string | null;
|
|
@@ -418,6 +486,9 @@ export interface ResolveAiProfileInput {
|
|
|
418
486
|
profileToken?: string | null;
|
|
419
487
|
providerMetadata?: Record<string, unknown> | null;
|
|
420
488
|
}
|
|
489
|
+
export interface ResolveAiProfileOptions {
|
|
490
|
+
trustedSeatScope?: AiProfileSeatScope | null;
|
|
491
|
+
}
|
|
421
492
|
export interface ResolveAiProfileResult {
|
|
422
493
|
created: boolean;
|
|
423
494
|
profile: AiProfileRecord;
|
|
@@ -563,6 +634,7 @@ export interface PlanVersionSnapshot {
|
|
|
563
634
|
export interface PlanCatalogSnapshot {
|
|
564
635
|
planId: string;
|
|
565
636
|
displayName: string;
|
|
637
|
+
description: string | null;
|
|
566
638
|
status: 'active' | 'archived';
|
|
567
639
|
createdAt: string;
|
|
568
640
|
updatedAt: string;
|
|
@@ -594,6 +666,7 @@ interface PasswordAuthResult {
|
|
|
594
666
|
userId: string;
|
|
595
667
|
workspaceId: string;
|
|
596
668
|
role: AccessRole;
|
|
669
|
+
identityId?: string;
|
|
597
670
|
};
|
|
598
671
|
code?: 'INVALID_CREDENTIALS' | 'EMAIL_NOT_VERIFIED';
|
|
599
672
|
}
|
|
@@ -686,6 +759,9 @@ export interface McpOAuthAccessTokenAuthResult {
|
|
|
686
759
|
provider: McpOAuthProvider;
|
|
687
760
|
scopes: McpAccessTokenScope[];
|
|
688
761
|
status: McpOAuthGrantStatus;
|
|
762
|
+
aiProfileId?: string | null;
|
|
763
|
+
aiProfileToken?: string | null;
|
|
764
|
+
aiProfileName?: string | null;
|
|
689
765
|
}
|
|
690
766
|
/**
|
|
691
767
|
* Subset of TaskforceCore methods required by the sync route.
|
|
@@ -733,7 +809,9 @@ export interface TaskforceSyncCapable {
|
|
|
733
809
|
};
|
|
734
810
|
listInitiatives(workspaceId?: string): InitiativeItem[];
|
|
735
811
|
listWorkstreams(workspaceId?: string): WorkstreamItem[];
|
|
736
|
-
listAiProfiles(workspaceId: string
|
|
812
|
+
listAiProfiles(workspaceId: string, options?: {
|
|
813
|
+
includeArchived?: boolean;
|
|
814
|
+
}): AiProfileRecord[];
|
|
737
815
|
listWorkspaceUsers(workspaceId: string): WorkspaceUserRecord[];
|
|
738
816
|
listDocumentReviewSessionsForSync(input: {
|
|
739
817
|
workspaceId?: string | null;
|
|
@@ -750,6 +828,21 @@ export interface TaskforceSyncCapable {
|
|
|
750
828
|
listTaskEventsForSync(input: {
|
|
751
829
|
workspaceId?: string | null;
|
|
752
830
|
}): TaskEvent[];
|
|
831
|
+
getTaskEventForSync(input: {
|
|
832
|
+
workspaceId?: string | null;
|
|
833
|
+
taskId: string;
|
|
834
|
+
eventId: string;
|
|
835
|
+
}): TaskEvent | null;
|
|
836
|
+
taskExistsForSync(id: string, workspaceId?: string | null): boolean;
|
|
837
|
+
listEntityEventsForSync(input: {
|
|
838
|
+
workspaceId?: string | null;
|
|
839
|
+
}): EntityEvent[];
|
|
840
|
+
getEntityEventForSync(input: {
|
|
841
|
+
workspaceId?: string | null;
|
|
842
|
+
eventId: string;
|
|
843
|
+
}): EntityEvent | null;
|
|
844
|
+
initiativeExistsForSync(id: string, workspaceId?: string | null): boolean;
|
|
845
|
+
workstreamExistsForSync(id: string, workspaceId?: string | null): boolean;
|
|
753
846
|
upsertAiProfileForSync(profile: AiProfileRecord): AiProfileRecord;
|
|
754
847
|
replaceWorkspaceUsersForSync(input: {
|
|
755
848
|
workspaceId: string;
|
|
@@ -761,6 +854,7 @@ export interface TaskforceSyncCapable {
|
|
|
761
854
|
upsertDocumentReviewCommentForSync(comment: DocumentReviewCommentSyncRecord): DocumentReviewCommentSyncRecord;
|
|
762
855
|
upsertAnnotatedAttachmentSessionForSync(session: AnnotatedAttachmentSessionRecord): AnnotatedAttachmentSessionRecord;
|
|
763
856
|
upsertTaskEventForSync(event: TaskEvent): TaskEvent;
|
|
857
|
+
upsertEntityEventForSync(event: EntityEvent): EntityEvent;
|
|
764
858
|
deleteDocumentReviewSessionForSync(input: {
|
|
765
859
|
workspaceId?: string | null;
|
|
766
860
|
sessionId: string;
|
|
@@ -781,6 +875,23 @@ export interface TaskforceSyncCapable {
|
|
|
781
875
|
keepId: string;
|
|
782
876
|
mergeId: string;
|
|
783
877
|
}): AiProfileRecord;
|
|
878
|
+
archiveAiProfile(input: {
|
|
879
|
+
workspaceId: string;
|
|
880
|
+
profileId: string;
|
|
881
|
+
archivedBy?: string | null;
|
|
882
|
+
reason?: string | null;
|
|
883
|
+
}): AiProfileRecord;
|
|
884
|
+
updateAiProfileAvatar(input: {
|
|
885
|
+
workspaceId: string;
|
|
886
|
+
profileId: string;
|
|
887
|
+
avatarUrl?: string | null;
|
|
888
|
+
avatarSourceUrl?: string | null;
|
|
889
|
+
}): AiProfileRecord;
|
|
890
|
+
updateAiProfileSurfaceType(input: {
|
|
891
|
+
workspaceId: string;
|
|
892
|
+
profileId: string;
|
|
893
|
+
surfaceType?: AiProfileSurfaceType | null;
|
|
894
|
+
}): AiProfileRecord;
|
|
784
895
|
resolveWorkspaceActor(workspaceId: string, actorRef: unknown): TaskActor | null;
|
|
785
896
|
}
|
|
786
897
|
export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
@@ -798,6 +909,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
798
909
|
private db;
|
|
799
910
|
private globalSettingsDb;
|
|
800
911
|
private authTokenService;
|
|
912
|
+
private identityService;
|
|
801
913
|
private mcpTokenService;
|
|
802
914
|
private planEntitlementService;
|
|
803
915
|
private realtimeMutationListeners;
|
|
@@ -813,6 +925,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
813
925
|
private isGenericAiActorReference;
|
|
814
926
|
private isKnownAiModelName;
|
|
815
927
|
private isHumanActorReference;
|
|
928
|
+
private isStableActorReference;
|
|
816
929
|
private normalizeAiProfileName;
|
|
817
930
|
private normalizeAiProfileUsername;
|
|
818
931
|
private normalizeAiProfileIcon;
|
|
@@ -823,6 +936,9 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
823
936
|
private workspaceUserToActor;
|
|
824
937
|
private aiProfileRowToRecord;
|
|
825
938
|
private aiProfileToActor;
|
|
939
|
+
private resolveCanonicalAiProfileId;
|
|
940
|
+
private findCanonicalAiProfileIdsByAlias;
|
|
941
|
+
private resolveUniqueAiProfileActorByAlias;
|
|
826
942
|
private canonicalizeActorReference;
|
|
827
943
|
private normalizeCreatedBy;
|
|
828
944
|
private normalizeCommentAuthor;
|
|
@@ -831,9 +947,13 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
831
947
|
private normalizePlanningAttachments;
|
|
832
948
|
private replaceTaskComments;
|
|
833
949
|
private normalizeTaskEventActor;
|
|
950
|
+
private listEntityEventsInternal;
|
|
834
951
|
private listTaskEventsInternal;
|
|
952
|
+
private buildEntityActivity;
|
|
835
953
|
private buildTaskActivity;
|
|
954
|
+
private addEntityEvent;
|
|
836
955
|
private addTaskEvent;
|
|
956
|
+
private replaceEntityEvents;
|
|
837
957
|
private replaceTaskEvents;
|
|
838
958
|
private mapDeletedTaskRow;
|
|
839
959
|
private pruneDeletedTasks;
|
|
@@ -874,6 +994,9 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
874
994
|
private initiativeExists;
|
|
875
995
|
private workstreamExists;
|
|
876
996
|
private valueEqualsForBulkUpdate;
|
|
997
|
+
private buildPlanningEntityEventChanges;
|
|
998
|
+
private getPlanningEntityEventAction;
|
|
999
|
+
private addWorkstreamTaskMembershipEvents;
|
|
877
1000
|
private assertWorkstreamLinkAllowed;
|
|
878
1001
|
private assertInitiativeLinkAllowed;
|
|
879
1002
|
constructor(config: TaskforceConfig);
|
|
@@ -935,6 +1058,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
935
1058
|
};
|
|
936
1059
|
private ensureDirectories;
|
|
937
1060
|
private migrateLegacyGlobalSettingsDbIfNeeded;
|
|
1061
|
+
private supportsWorkspaceAssetLinkTargetType;
|
|
938
1062
|
private initializeSchema;
|
|
939
1063
|
private performMigrationIfNeeded;
|
|
940
1064
|
private backfillMcpAuditLogMetadataColumns;
|
|
@@ -942,6 +1066,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
942
1066
|
private migrateUserBetaAccessBackfillIfNeeded;
|
|
943
1067
|
private migrateDuplicateAiProfilesIfNeeded;
|
|
944
1068
|
private migrateLegacyActorReferencesIfNeeded;
|
|
1069
|
+
private migrateLegacyCommentActorReferencesIfNeeded;
|
|
945
1070
|
private getWorkspaceOwnerUserId;
|
|
946
1071
|
getWorkspacePlanMode(workspaceId: string): 'personal' | 'team';
|
|
947
1072
|
setWorkspacePlanMode(workspaceId: string, mode: 'personal' | 'team', source?: string): 'personal' | 'team';
|
|
@@ -992,9 +1117,10 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
992
1117
|
getEffectiveTheme(workspaceId?: string, userId?: string): TaskforceTheme;
|
|
993
1118
|
hasProjectJsonBackupOverride(workspaceId?: string, userId?: string): boolean;
|
|
994
1119
|
getOnboardingPolicy(): import("./types.js").OnboardingPolicy;
|
|
1120
|
+
listOnboardingPlanOptions(): import("./types.js").OnboardingPlanOption[];
|
|
995
1121
|
validateOnboardingPolicy(input?: {
|
|
996
1122
|
mode?: 'require_plan_selection' | 'auto_grant_free' | 'auto_start_trial';
|
|
997
|
-
|
|
1123
|
+
planId?: string | null;
|
|
998
1124
|
}): import("./types.js").OnboardingPolicyValidationResult;
|
|
999
1125
|
updateGlobalSettings(settings: GlobalTaskforceSettings): void;
|
|
1000
1126
|
private sanitizeUserGlobalSyncSettings;
|
|
@@ -1020,6 +1146,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1020
1146
|
getJsonBackupEnabled(workspaceId?: string, userId?: string): boolean;
|
|
1021
1147
|
private listCanonicalTaskAttachments;
|
|
1022
1148
|
private syncCanonicalTaskAttachmentLinks;
|
|
1149
|
+
private syncCanonicalPlanningAttachmentLinks;
|
|
1023
1150
|
private rowToTask;
|
|
1024
1151
|
private rowToInitiative;
|
|
1025
1152
|
private rowToWorkstream;
|
|
@@ -1031,16 +1158,44 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1031
1158
|
resolveTaskIdentifier(value: string, workspaceId?: string): TaskItem | null;
|
|
1032
1159
|
getInitiative(id: string, workspaceId?: string): InitiativeItem | null;
|
|
1033
1160
|
listInitiatives(workspaceId?: string): InitiativeItem[];
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1161
|
+
private isTransientPlanningHydrationError;
|
|
1162
|
+
private getInitiativeForWriteResult;
|
|
1163
|
+
private getWorkstreamForWriteResult;
|
|
1164
|
+
createInitiative(input: Partial<InitiativeItem>, workspaceId?: string, options?: {
|
|
1165
|
+
actorRef?: string;
|
|
1166
|
+
skipEntityEvents?: boolean;
|
|
1167
|
+
}): InitiativeItem;
|
|
1168
|
+
updateInitiative(id: string, patch: Partial<InitiativeItem>, workspaceId?: string, options?: {
|
|
1169
|
+
actorRef?: string;
|
|
1170
|
+
skipEntityEvents?: boolean;
|
|
1171
|
+
}): InitiativeItem;
|
|
1172
|
+
archiveInitiative(id: string, workspaceId?: string, options?: {
|
|
1173
|
+
actorRef?: string;
|
|
1174
|
+
skipEntityEvents?: boolean;
|
|
1175
|
+
}): InitiativeItem;
|
|
1176
|
+
unarchiveInitiative(id: string, workspaceId?: string, options?: {
|
|
1177
|
+
actorRef?: string;
|
|
1178
|
+
skipEntityEvents?: boolean;
|
|
1179
|
+
}): InitiativeItem;
|
|
1038
1180
|
getWorkstream(id: string, workspaceId?: string): WorkstreamItem | null;
|
|
1039
1181
|
listWorkstreams(workspaceId?: string): WorkstreamItem[];
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1182
|
+
listPlanningBootstrap(workspaceId?: string, diagnostics?: PlanningBootstrapDiagnostics): PlanningBootstrapPayload;
|
|
1183
|
+
createWorkstream(input: Partial<WorkstreamItem>, workspaceId?: string, options?: {
|
|
1184
|
+
actorRef?: string;
|
|
1185
|
+
skipEntityEvents?: boolean;
|
|
1186
|
+
}): WorkstreamItem;
|
|
1187
|
+
updateWorkstream(id: string, patch: Partial<WorkstreamItem>, workspaceId?: string, options?: {
|
|
1188
|
+
actorRef?: string;
|
|
1189
|
+
skipEntityEvents?: boolean;
|
|
1190
|
+
}): WorkstreamItem;
|
|
1191
|
+
archiveWorkstream(id: string, workspaceId?: string, options?: {
|
|
1192
|
+
actorRef?: string;
|
|
1193
|
+
skipEntityEvents?: boolean;
|
|
1194
|
+
}): WorkstreamItem;
|
|
1195
|
+
unarchiveWorkstream(id: string, workspaceId?: string, options?: {
|
|
1196
|
+
actorRef?: string;
|
|
1197
|
+
skipEntityEvents?: boolean;
|
|
1198
|
+
}): WorkstreamItem;
|
|
1044
1199
|
upsertInitiativeForSync(initiative: InitiativeItem, workspaceId?: string | null): InitiativeItem;
|
|
1045
1200
|
upsertWorkstreamForSync(workstream: WorkstreamItem, workspaceId?: string | null): WorkstreamItem;
|
|
1046
1201
|
listChecklistItems(taskId: string, workspaceId?: string): ChecklistItem[];
|
|
@@ -1112,6 +1267,24 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1112
1267
|
private getSyncReconciliationServiceDeps;
|
|
1113
1268
|
private getWorkspaceLifecycleServiceDeps;
|
|
1114
1269
|
listTasks(workspaceId?: string): TaskFile;
|
|
1270
|
+
/**
|
|
1271
|
+
* Filter-pushdown listing used by read-only surfaces that don't need the
|
|
1272
|
+
* full task graph (MCP list_tasks, CLI summaries). Avoids the per-task
|
|
1273
|
+
* comments/events/attachments/checklist subqueries and actor resolution
|
|
1274
|
+
* that rowToTask performs, and applies filters + sort + limit at the SQL
|
|
1275
|
+
* layer so hot polls don't load the entire workspace.
|
|
1276
|
+
*/
|
|
1277
|
+
listTasksSlim(workspaceId: string | undefined, filters?: {
|
|
1278
|
+
category?: string;
|
|
1279
|
+
status?: TaskStatus;
|
|
1280
|
+
openOnly?: boolean;
|
|
1281
|
+
assignee?: string;
|
|
1282
|
+
priority?: number;
|
|
1283
|
+
type?: string;
|
|
1284
|
+
sort?: 'created' | 'priority' | 'updated';
|
|
1285
|
+
order?: 'asc' | 'desc';
|
|
1286
|
+
limit?: number;
|
|
1287
|
+
}): Array<Record<string, unknown>>;
|
|
1115
1288
|
getDataVersion(): number;
|
|
1116
1289
|
getDatabaseProvider(): DatabaseProvider;
|
|
1117
1290
|
isDatabaseHealthy(): boolean;
|
|
@@ -1165,11 +1338,33 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1165
1338
|
markUserAvatarUploadDraftConsumed(userId: string, draftId: string): UserAvatarUploadDraftRecord | null;
|
|
1166
1339
|
discardUserAvatarUploadDraft(userId: string, draftId: string): UserAvatarUploadDraftRecord | null;
|
|
1167
1340
|
cleanupStaleUserAvatarUploadDrafts(userId: string, olderThanIso: string): UserAvatarUploadDraftRecord[];
|
|
1341
|
+
createTaskAttachmentUploadDraft(input: {
|
|
1342
|
+
draftId: string;
|
|
1343
|
+
workspaceId: string;
|
|
1344
|
+
taskId: string;
|
|
1345
|
+
actorRef: string;
|
|
1346
|
+
storageKey: string;
|
|
1347
|
+
mimeType: string;
|
|
1348
|
+
originalFilename: string;
|
|
1349
|
+
sizeBytes: number;
|
|
1350
|
+
storageProvider?: 'local' | 'r2' | 'external';
|
|
1351
|
+
}): TaskAttachmentUploadDraftRecord;
|
|
1352
|
+
getTaskAttachmentUploadDraft(draftId: string): TaskAttachmentUploadDraftRecord | null;
|
|
1353
|
+
markTaskAttachmentUploadDraftConsumed(draftId: string): TaskAttachmentUploadDraftRecord | null;
|
|
1354
|
+
discardTaskAttachmentUploadDraft(draftId: string): TaskAttachmentUploadDraftRecord | null;
|
|
1168
1355
|
getSystemRole(userId: string): SystemRole;
|
|
1169
1356
|
getUserBetaAccess(userId: string): boolean;
|
|
1170
1357
|
countSystemAdmins(): number;
|
|
1171
1358
|
hasAnySystemAdmin(): boolean;
|
|
1172
|
-
|
|
1359
|
+
countSystemUsers(input?: {
|
|
1360
|
+
query?: string | null;
|
|
1361
|
+
}): number;
|
|
1362
|
+
listSystemUsers(input?: {
|
|
1363
|
+
query?: string | null;
|
|
1364
|
+
sort?: 'newest' | 'oldest' | null;
|
|
1365
|
+
limit?: number | null;
|
|
1366
|
+
offset?: number | null;
|
|
1367
|
+
}): SystemUserRecord[];
|
|
1173
1368
|
setSystemRole(userId: string, role: SystemRole): boolean;
|
|
1174
1369
|
setUserDisabledGlobal(userId: string, disabled: boolean): boolean;
|
|
1175
1370
|
setUserBetaAccessGlobal(userId: string, enabled: boolean): boolean;
|
|
@@ -1185,10 +1380,17 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1185
1380
|
users: WorkspaceUserRecord[];
|
|
1186
1381
|
pruneMissing?: boolean;
|
|
1187
1382
|
}): WorkspaceUserRecord[];
|
|
1188
|
-
listAiProfiles(workspaceId: string
|
|
1383
|
+
listAiProfiles(workspaceId: string, options?: {
|
|
1384
|
+
includeArchived?: boolean;
|
|
1385
|
+
diagnostics?: {
|
|
1386
|
+
metadataBackfillCount?: number;
|
|
1387
|
+
};
|
|
1388
|
+
}): AiProfileRecord[];
|
|
1189
1389
|
getAiProfileByToken(input: {
|
|
1190
1390
|
workspaceId: string;
|
|
1191
1391
|
profileToken: string;
|
|
1392
|
+
includeArchived?: boolean;
|
|
1393
|
+
seatScope?: AiProfileSeatScope | null;
|
|
1192
1394
|
}): AiProfileRecord | null;
|
|
1193
1395
|
upsertAiProfileForSync(profile: AiProfileRecord): AiProfileRecord;
|
|
1194
1396
|
mergeAiProfiles(input: {
|
|
@@ -1196,7 +1398,24 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1196
1398
|
keepId: string;
|
|
1197
1399
|
mergeId: string;
|
|
1198
1400
|
}): AiProfileRecord;
|
|
1199
|
-
|
|
1401
|
+
archiveAiProfile(input: {
|
|
1402
|
+
workspaceId: string;
|
|
1403
|
+
profileId: string;
|
|
1404
|
+
archivedBy?: string | null;
|
|
1405
|
+
reason?: string | null;
|
|
1406
|
+
}): AiProfileRecord;
|
|
1407
|
+
updateAiProfileAvatar(input: {
|
|
1408
|
+
workspaceId: string;
|
|
1409
|
+
profileId: string;
|
|
1410
|
+
avatarUrl?: string | null;
|
|
1411
|
+
avatarSourceUrl?: string | null;
|
|
1412
|
+
}): AiProfileRecord;
|
|
1413
|
+
updateAiProfileSurfaceType(input: {
|
|
1414
|
+
workspaceId: string;
|
|
1415
|
+
profileId: string;
|
|
1416
|
+
surfaceType?: AiProfileSurfaceType | null;
|
|
1417
|
+
}): AiProfileRecord;
|
|
1418
|
+
resolveAiProfile(input: ResolveAiProfileInput, options?: ResolveAiProfileOptions): ResolveAiProfileResult;
|
|
1200
1419
|
listAnnotatedAttachmentSessions(input: {
|
|
1201
1420
|
workspaceId?: string | null;
|
|
1202
1421
|
taskId?: string | null;
|
|
@@ -1271,6 +1490,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1271
1490
|
upsertDocumentReviewCommentForSync(comment: DocumentReviewCommentSyncRecord): DocumentReviewCommentSyncRecord;
|
|
1272
1491
|
upsertAnnotatedAttachmentSessionForSync(session: AnnotatedAttachmentSessionRecord): AnnotatedAttachmentSessionRecord;
|
|
1273
1492
|
upsertTaskEventForSync(event: TaskEvent): TaskEvent;
|
|
1493
|
+
upsertEntityEventForSync(event: EntityEvent): EntityEvent;
|
|
1274
1494
|
deleteDocumentReviewSessionForSync(input: {
|
|
1275
1495
|
workspaceId?: string | null;
|
|
1276
1496
|
sessionId: string;
|
|
@@ -1385,6 +1605,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1385
1605
|
upsertPlanCatalog(input: {
|
|
1386
1606
|
planId: string;
|
|
1387
1607
|
displayName: string;
|
|
1608
|
+
description?: string | null;
|
|
1388
1609
|
status?: 'active' | 'archived';
|
|
1389
1610
|
initialMode?: 'personal' | 'team';
|
|
1390
1611
|
initialSeatLimit?: number | null;
|
|
@@ -1392,10 +1613,17 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1392
1613
|
}): {
|
|
1393
1614
|
planId: string;
|
|
1394
1615
|
displayName: string;
|
|
1616
|
+
description: string | null;
|
|
1395
1617
|
status: "active" | "archived";
|
|
1396
1618
|
};
|
|
1397
1619
|
listPlanCatalog(): import("./types.js").PlanCatalogSnapshot[];
|
|
1398
1620
|
listPlanFeatureCatalog(): import("./types.js").PlanFeatureCatalogItem[];
|
|
1621
|
+
updatePlanFeatureCatalogMarketingCopy(input: {
|
|
1622
|
+
featureKey: string;
|
|
1623
|
+
publicLabel?: string | null;
|
|
1624
|
+
publicDescription?: string | null;
|
|
1625
|
+
publicDisplayOrder?: number | null;
|
|
1626
|
+
}): import("./types.js").PlanFeatureCatalogItem;
|
|
1399
1627
|
listPlanVersions(planId: string): import("./types.js").PlanVersionSnapshot[];
|
|
1400
1628
|
getPlanVersionFeatures(planId: string, versionId: string): import("./types.js").PlanVersionSnapshot;
|
|
1401
1629
|
searchAccountsByEmail(query: string, limit?: number): {
|
|
@@ -1516,6 +1744,99 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1516
1744
|
checkoutPending: boolean;
|
|
1517
1745
|
commercialState: EntitlementState;
|
|
1518
1746
|
};
|
|
1747
|
+
/**
|
|
1748
|
+
* Creates an OAuth state record and returns the state token + PKCE materials.
|
|
1749
|
+
* Delegates to AuthIdentityService.createOAuthState.
|
|
1750
|
+
*/
|
|
1751
|
+
createOAuthLoginState(input: {
|
|
1752
|
+
provider: string;
|
|
1753
|
+
flowMode: string;
|
|
1754
|
+
userId?: string | null;
|
|
1755
|
+
inviteToken?: string | null;
|
|
1756
|
+
returnTo?: string | null;
|
|
1757
|
+
createdIp?: string | null;
|
|
1758
|
+
}): {
|
|
1759
|
+
state: string;
|
|
1760
|
+
codeVerifier: string;
|
|
1761
|
+
codeChallenge: string;
|
|
1762
|
+
nonce: string;
|
|
1763
|
+
};
|
|
1764
|
+
/**
|
|
1765
|
+
* Atomically consumes an OAuth state token and returns the row.
|
|
1766
|
+
* Returns null if invalid, expired, or already consumed.
|
|
1767
|
+
*/
|
|
1768
|
+
consumeOAuthLoginState(state: string): import('./AuthIdentityService.js').OAuthStateRecord | null;
|
|
1769
|
+
/**
|
|
1770
|
+
* Finds the Taskforce user associated with a provider identity.
|
|
1771
|
+
* Returns { userId, identityId } or null if not yet linked.
|
|
1772
|
+
*/
|
|
1773
|
+
findUserByOAuthProvider(provider: UserAuthProvider, providerSubject: string): {
|
|
1774
|
+
userId: string;
|
|
1775
|
+
identityId: string;
|
|
1776
|
+
} | null;
|
|
1777
|
+
/**
|
|
1778
|
+
* Links an OAuth provider identity to an existing user.
|
|
1779
|
+
* Throws IDENTITY_ALREADY_EXISTS if the user already has an identity for this provider.
|
|
1780
|
+
*/
|
|
1781
|
+
linkOAuthProviderToUser(input: {
|
|
1782
|
+
userId: string;
|
|
1783
|
+
provider: UserAuthProvider;
|
|
1784
|
+
providerSubject: string;
|
|
1785
|
+
providerEmail?: string | null;
|
|
1786
|
+
providerEmailVerified?: boolean | null;
|
|
1787
|
+
displayNameSnapshot?: string | null;
|
|
1788
|
+
avatarUrlSnapshot?: string | null;
|
|
1789
|
+
}): string;
|
|
1790
|
+
/**
|
|
1791
|
+
* Lists all active login identities for a user.
|
|
1792
|
+
* Used by the Account Hub "Login methods" section.
|
|
1793
|
+
*/
|
|
1794
|
+
listLoginMethodsForUser(userId: string): import('./types.js').UserAuthIdentity[];
|
|
1795
|
+
/**
|
|
1796
|
+
* Unlinks a provider identity from a user.
|
|
1797
|
+
* Throws LAST_IDENTITY_REQUIRED if it would be the last active method.
|
|
1798
|
+
*/
|
|
1799
|
+
unlinkLoginMethod(userId: string, provider: UserAuthProvider): boolean;
|
|
1800
|
+
/**
|
|
1801
|
+
* Adds or replaces a password identity for a user that signed up via OAuth.
|
|
1802
|
+
* Uses upsert semantics (safe to call on accounts that already have a password).
|
|
1803
|
+
*/
|
|
1804
|
+
addPasswordToAccount(userId: string, password: string): string;
|
|
1805
|
+
/**
|
|
1806
|
+
* Registers a new user account via an OAuth provider (no password).
|
|
1807
|
+
*
|
|
1808
|
+
* Creates the user row, applies commercial onboarding, and links the
|
|
1809
|
+
* provider identity — all in a single transaction.
|
|
1810
|
+
*
|
|
1811
|
+
* Returns the same shape as `registerPasswordUser` so callers can use
|
|
1812
|
+
* the same session-issuance path.
|
|
1813
|
+
*/
|
|
1814
|
+
registerOAuthUser(input: {
|
|
1815
|
+
email: string | null;
|
|
1816
|
+
emailVerified?: boolean;
|
|
1817
|
+
provider: UserAuthProvider;
|
|
1818
|
+
providerSubject: string;
|
|
1819
|
+
displayName?: string | null;
|
|
1820
|
+
avatarUrl?: string | null;
|
|
1821
|
+
planVersionId?: string;
|
|
1822
|
+
betaAccess?: boolean;
|
|
1823
|
+
}): {
|
|
1824
|
+
userId: string;
|
|
1825
|
+
workspaceId: string | null;
|
|
1826
|
+
role: AccessRole;
|
|
1827
|
+
identityId: string;
|
|
1828
|
+
planSelectionRequired: boolean;
|
|
1829
|
+
checkoutPending: boolean;
|
|
1830
|
+
commercialState: EntitlementState;
|
|
1831
|
+
};
|
|
1832
|
+
/**
|
|
1833
|
+
* Looks up a user by email address (exact, case-insensitive).
|
|
1834
|
+
* Returns { userId, email } or null.
|
|
1835
|
+
*/
|
|
1836
|
+
findUserByEmail(email: string): {
|
|
1837
|
+
userId: string;
|
|
1838
|
+
email: string;
|
|
1839
|
+
} | null;
|
|
1519
1840
|
private createOneTimeAuthToken;
|
|
1520
1841
|
private consumeOneTimeAuthToken;
|
|
1521
1842
|
inspectOneTimeAuthToken(token: string, purpose: AuthTokenPurpose): AuthTokenInspection;
|
|
@@ -1540,6 +1861,11 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1540
1861
|
workspaceId: string;
|
|
1541
1862
|
tokenId: string;
|
|
1542
1863
|
}): McpAccessTokenRecord;
|
|
1864
|
+
deleteMcpAccessToken(input: {
|
|
1865
|
+
actorUserId: string;
|
|
1866
|
+
workspaceId: string;
|
|
1867
|
+
tokenId: string;
|
|
1868
|
+
}): boolean;
|
|
1543
1869
|
regenerateMcpAccessToken(input: {
|
|
1544
1870
|
actorUserId: string;
|
|
1545
1871
|
workspaceId: string;
|
|
@@ -1591,6 +1917,13 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1591
1917
|
grantId: string;
|
|
1592
1918
|
}): McpOAuthConnectorGrantRecord;
|
|
1593
1919
|
authenticateMcpOAuthAccessToken(token: string, workspaceId?: string): McpOAuthAccessTokenAuthResult | null;
|
|
1920
|
+
bindMcpOAuthConnectorGrantAiProfile(input: {
|
|
1921
|
+
grantId: string;
|
|
1922
|
+
workspaceId: string;
|
|
1923
|
+
profileId: string;
|
|
1924
|
+
profileToken: string;
|
|
1925
|
+
profileName: string;
|
|
1926
|
+
}): boolean;
|
|
1594
1927
|
recordMcpOAuthConnectorGrantUsage(input: {
|
|
1595
1928
|
grantId: string;
|
|
1596
1929
|
workspaceId: string;
|
|
@@ -1620,15 +1953,33 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1620
1953
|
revokeInviteAcceptanceForUser(userId: string): {
|
|
1621
1954
|
revoked: number;
|
|
1622
1955
|
};
|
|
1623
|
-
inspectInviteAcceptance(token: string):
|
|
1624
|
-
state: 'valid' | 'expired' | 'used' | 'missing' | 'revoked';
|
|
1625
|
-
email?: string;
|
|
1626
|
-
userId?: string;
|
|
1627
|
-
workspaceId?: string;
|
|
1628
|
-
inviteeKind?: 'existing_user' | 'new_user';
|
|
1629
|
-
passwordRequired?: boolean;
|
|
1630
|
-
};
|
|
1956
|
+
inspectInviteAcceptance(token: string): import('./types.js').InviteAcceptanceDetails;
|
|
1631
1957
|
private completeInviteWorkspaceActivation;
|
|
1958
|
+
/**
|
|
1959
|
+
* Claims an invite by linking an OAuth provider identity to the invited user.
|
|
1960
|
+
*
|
|
1961
|
+
* Used when an invited user with `inviteeState: 'pending_setup'` completes an
|
|
1962
|
+
* OAuth flow with `flow_mode: 'invite_claim'`. The invite token must still be
|
|
1963
|
+
* valid and the user must have zero active identities (pending setup).
|
|
1964
|
+
*
|
|
1965
|
+
* Returns the same shape as `acceptInviteWithToken` so callers can issue a
|
|
1966
|
+
* session cookie on the same path.
|
|
1967
|
+
*/
|
|
1968
|
+
claimInviteWithOAuthProvider(input: {
|
|
1969
|
+
token: string;
|
|
1970
|
+
provider: UserAuthProvider;
|
|
1971
|
+
providerSubject: string;
|
|
1972
|
+
providerEmail?: string | null;
|
|
1973
|
+
providerEmailVerified?: boolean | null;
|
|
1974
|
+
displayNameSnapshot?: string | null;
|
|
1975
|
+
avatarUrlSnapshot?: string | null;
|
|
1976
|
+
}): {
|
|
1977
|
+
userId: string;
|
|
1978
|
+
email: string;
|
|
1979
|
+
workspaceId: string;
|
|
1980
|
+
role: AccessRole;
|
|
1981
|
+
identityId: string;
|
|
1982
|
+
};
|
|
1632
1983
|
acceptInviteWithToken(input: {
|
|
1633
1984
|
token: string;
|
|
1634
1985
|
password: string;
|
|
@@ -1637,6 +1988,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1637
1988
|
email: string;
|
|
1638
1989
|
workspaceId: string;
|
|
1639
1990
|
role: AccessRole;
|
|
1991
|
+
identityId: string;
|
|
1640
1992
|
};
|
|
1641
1993
|
joinInviteWithAuthenticatedUser(input: {
|
|
1642
1994
|
token: string;
|
|
@@ -1671,9 +2023,32 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1671
2023
|
updateWorkspaceUserRole(userId: string, workspaceId: string, role: AccessRole): boolean;
|
|
1672
2024
|
getTask(id: string, workspaceId?: string): TaskItem | null;
|
|
1673
2025
|
listTaskEvents(taskId: string, workspaceId?: string): TaskEvent[];
|
|
2026
|
+
taskExistsForSync(id: string, workspaceId?: string | null): boolean;
|
|
2027
|
+
initiativeExistsForSync(id: string, workspaceId?: string | null): boolean;
|
|
2028
|
+
workstreamExistsForSync(id: string, workspaceId?: string | null): boolean;
|
|
2029
|
+
recordTaskEvent(input: {
|
|
2030
|
+
taskId: string;
|
|
2031
|
+
workspaceId?: string | null;
|
|
2032
|
+
action: string;
|
|
2033
|
+
actor?: unknown;
|
|
2034
|
+
createdAt?: string;
|
|
2035
|
+
details?: TaskEventDetails;
|
|
2036
|
+
}): void;
|
|
1674
2037
|
listTaskEventsForSync(input: {
|
|
1675
2038
|
workspaceId?: string | null;
|
|
1676
2039
|
}): TaskEvent[];
|
|
2040
|
+
getTaskEventForSync(input: {
|
|
2041
|
+
workspaceId?: string | null;
|
|
2042
|
+
taskId: string;
|
|
2043
|
+
eventId: string;
|
|
2044
|
+
}): TaskEvent | null;
|
|
2045
|
+
listEntityEventsForSync(input: {
|
|
2046
|
+
workspaceId?: string | null;
|
|
2047
|
+
}): EntityEvent[];
|
|
2048
|
+
getEntityEventForSync(input: {
|
|
2049
|
+
workspaceId?: string | null;
|
|
2050
|
+
eventId: string;
|
|
2051
|
+
}): EntityEvent | null;
|
|
1677
2052
|
getScheduleBoard(weekKey: string, showWeekends?: boolean, workspaceId?: string): ScheduleBoardResult;
|
|
1678
2053
|
updateTaskSchedule(id: string, input: {
|
|
1679
2054
|
scheduledDate: string | null;
|