@taskforcehq/taskforce 0.3.327 → 0.3.329
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/dist/Taskforce.module.css +257 -87
- package/dist/TaskforceCore.js +237 -230
- package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.js +1 -1
- package/dist/cli.js +34 -0
- package/dist/cliCloudTargetGuard.d.ts +5 -0
- package/dist/cliCloudTargetGuard.js +11 -0
- package/dist/components/activity/EntityActivityTimeline.js +15 -5
- package/dist/components/context/AttachmentPreviewHost.js +1 -1
- package/dist/components/context/ContextAttachmentManager.d.ts +3 -0
- package/dist/components/context/ContextAttachmentManager.js +116 -20
- package/dist/components/features/AnnotatedAttachmentWorkspace.js +24 -8
- package/dist/components/features/TaskSettings.d.ts +12 -1
- package/dist/components/features/TaskSettings.js +147 -40
- package/dist/components/features/agentCapabilities/AgentCapabilitiesPrototype.d.ts +1 -1
- package/dist/components/features/planning/PlanningEntitySummary.d.ts +3 -1
- package/dist/components/features/planning/PlanningEntitySummary.js +3 -2
- package/dist/components/features/planning/PlanningLinkPicker.d.ts +3 -1
- package/dist/components/features/planning/PlanningLinkPicker.js +5 -3
- package/dist/components/features/planning/PlanningModule.js +28 -14
- package/dist/components/features/planning/PlanningTaskOrderList.d.ts +1 -1
- package/dist/components/features/planning/PlanningTaskOrderList.js +17 -6
- package/dist/components/features/planning/PlanningVisualIdentity.d.ts +14 -0
- package/dist/components/features/planning/PlanningVisualIdentity.js +106 -0
- package/dist/components/features/planning/planningTaskArrangement.d.ts +1 -0
- package/dist/components/features/planning/planningTaskArrangement.js +5 -5
- package/dist/components/features/planning/planningWorkspaceModel.d.ts +11 -0
- package/dist/components/features/taskforceAgentEditorModel.js +3 -1
- package/dist/components/task/TaskActionHeader.d.ts +2 -1
- package/dist/components/task/TaskActionHeader.js +2 -2
- package/dist/components/task/TaskCard.d.ts +5 -0
- package/dist/components/task/TaskCard.js +101 -13
- package/dist/components/task/TaskContextUpload.d.ts +3 -0
- package/dist/components/task/TaskContextUpload.js +2 -2
- package/dist/components/task/TaskForm.d.ts +4 -0
- package/dist/components/task/TaskForm.js +32 -7
- package/dist/components/task/TaskImageReviews.js +28 -19
- package/dist/components/task/TaskKanban.d.ts +6 -1
- package/dist/components/task/TaskKanban.js +152 -6
- package/dist/components/task/TaskList.d.ts +5 -0
- package/dist/components/task/TaskList.js +3 -3
- package/dist/components/task/TaskStatusActions.js +11 -2
- package/dist/components/task/TaskWorkstreamPicker.js +2 -1
- package/dist/components/ui/DocumentTypeIcon.d.ts +7 -0
- package/dist/components/ui/DocumentTypeIcon.js +8 -0
- package/dist/components/ui/PasswordInput.d.ts +6 -0
- package/dist/components/ui/PasswordInput.js +11 -0
- package/dist/components/ui/TaxonomyDropdown.d.ts +9 -1
- package/dist/components/ui/TaxonomyDropdown.js +30 -3
- package/dist/components/ui/TopNoticeLayer.js +1 -1
- package/dist/components/views/AppShellHeader.js +32 -11
- package/dist/components/views/PlanComparisonPage.js +12 -0
- package/dist/components/views/StandaloneLayout.js +68 -39
- package/dist/components/views/WidgetView.js +10 -7
- package/dist/components/views/panels/PlanningDrawer.d.ts +7 -1
- package/dist/components/views/panels/PlanningDrawer.js +51 -54
- package/dist/components/views/standalone/modals/AccountSettingsModal.js +26 -17
- package/dist/config/envSchema.js +13 -0
- package/dist/config/localServiceCloudTarget.d.ts +10 -0
- package/dist/config/localServiceCloudTarget.js +76 -0
- package/dist/config/localServiceRuntimeContract.d.ts +13 -0
- package/dist/config/localServiceRuntimeContract.js +135 -0
- package/dist/core/AiProfileService.d.ts +1 -0
- package/dist/core/AiProfileService.js +48 -9
- package/dist/core/AttachmentLinkService.js +7 -4
- package/dist/core/DeletedTaskLifecycleService.d.ts +5 -0
- package/dist/core/DeletedTaskLifecycleService.js +55 -3
- package/dist/core/McpTokenService.d.ts +4 -0
- package/dist/core/McpTokenService.js +52 -0
- package/dist/core/TaskAttachmentLinksDurableMutationService.d.ts +8 -2
- package/dist/core/TaskAttachmentLinksDurableMutationService.js +51 -18
- package/dist/core/Taskforce.d.ts +124 -2
- package/dist/core/Taskforce.js +1175 -87
- package/dist/core/types.d.ts +8 -1
- package/dist/documentReviews/DocumentReviewCommentStore.d.ts +11 -0
- package/dist/documentReviews/DocumentReviewCommentStore.js +35 -2
- package/dist/documentReviews/service.d.ts +4 -0
- package/dist/documentReviews/service.js +141 -46
- package/dist/hooks/sync/useDurableLocalOutboxDrain.d.ts +1 -1
- package/dist/hooks/sync/useDurableTaskCreateMutation.js +1 -1
- package/dist/hooks/sync/useDurableTaskMetadataMutation.d.ts +1 -0
- package/dist/hooks/sync/useDurableTaskMetadataMutation.js +1 -0
- package/dist/hooks/sync/useDurableTaskStatusMutation.d.ts +1 -0
- package/dist/hooks/tasks/taskHttpMutation.js +1 -0
- package/dist/hooks/tasks/useCloudTaskSearch.d.ts +12 -0
- package/dist/hooks/tasks/useCloudTaskSearch.js +71 -0
- package/dist/hooks/tasks/useTaskDescriptionImageDraftRecovery.d.ts +16 -0
- package/dist/hooks/tasks/useTaskDescriptionImageDraftRecovery.js +197 -0
- package/dist/hooks/tasks/useTaskEditorNavigation.d.ts +16 -3
- package/dist/hooks/tasks/useTaskEditorNavigation.js +72 -13
- package/dist/hooks/tasks/useTaskFormActions.d.ts +9 -0
- package/dist/hooks/tasks/useTaskFormActions.js +96 -17
- package/dist/hooks/ui/useSettingsModel.d.ts +24 -2
- package/dist/hooks/ui/useSettingsModel.js +13 -2
- package/dist/hooks/ui/useSettingsPersistence.d.ts +12 -1
- package/dist/hooks/ui/useSettingsPersistence.js +74 -47
- package/dist/hooks/useFilterSort.d.ts +7 -3
- package/dist/hooks/useFilterSort.js +15 -5
- package/dist/hooks/useTaskData.d.ts +10 -1
- package/dist/hooks/useTaskData.js +216 -7
- package/dist/hooks/useTaskMutations.d.ts +10 -2
- package/dist/hooks/useTaskMutations.js +223 -43
- package/dist/hooks/useTaskforce.d.ts +94 -57
- package/dist/hooks/useTaskforce.js +428 -16
- package/dist/hooks/useUiNotice.d.ts +4 -0
- package/dist/hooks/useUiNotice.js +4 -0
- package/dist/mcp/adminWorkspaceRegistrar.js +3 -3
- package/dist/mcp/canonicalAssetHelpers.d.ts +13 -0
- package/dist/mcp/canonicalAssetHelpers.js +39 -5
- package/dist/mcp/collaborationRegistrar.js +15 -13
- package/dist/mcp/documentAssetRegistrar.js +60 -44
- package/dist/mcp/documentHelpers.d.ts +1 -0
- package/dist/mcp/documentHelpers.js +7 -3
- package/dist/mcp/localServiceProxy.js +4 -1
- package/dist/mcp/runtime.d.ts +16 -0
- package/dist/mcp/runtime.js +735 -210
- package/dist/mcp/taskAttachmentCommandAdapter.d.ts +2 -0
- package/dist/mcp/taskAttachmentCommandAdapter.js +14 -8
- package/dist/mcp/taskPlanningRegistrar.js +78 -67
- package/dist/mcp/toolCallCompatibility.js +38 -1
- package/dist/mcp/toolCatalog.d.ts +1 -0
- package/dist/mcp/toolRegistry.js +2 -2
- package/dist/migrations/taskSchemaMigrations.js +47 -0
- package/dist/runtime/appGateDefinitions.d.ts +30 -6
- package/dist/runtime/appGateDefinitions.js +6 -6
- package/dist/runtime/appGates.d.ts +12 -13
- package/dist/runtime/appGates.js +29 -13
- package/dist/runtime/nodeAppGates.d.ts +8 -0
- package/dist/runtime/nodeAppGates.js +27 -0
- package/dist/server/appAccess.d.ts +12 -0
- package/dist/server/appAccess.js +21 -0
- package/dist/server/authorizedWorkspaceAccess.d.ts +12 -0
- package/dist/server/authorizedWorkspaceAccess.js +40 -0
- package/dist/server/cloudCollectionRead.d.ts +25 -0
- package/dist/server/cloudCollectionRead.js +120 -0
- package/dist/server/cloudCollectionReadPool.d.ts +52 -0
- package/dist/server/cloudCollectionReadPool.js +140 -0
- package/dist/server/cloudCollectionReadWorker.d.ts +1 -0
- package/dist/server/cloudCollectionReadWorker.js +36 -0
- package/dist/server/index.d.ts +6 -11
- package/dist/server/index.js +67 -42
- package/dist/server/localServiceLease.d.ts +6 -0
- package/dist/server/localServiceLease.js +17 -1
- package/dist/server/localWorkspaceSyncServerRuntime.js +10 -3
- package/dist/server/rateLimit.d.ts +1 -0
- package/dist/server/rateLimit.js +4 -0
- package/dist/server/realtimeSyncWs.js +36 -12
- package/dist/server/routes/admin.js +1 -0
- package/dist/server/routes/agentRoles.js +3 -2
- package/dist/server/routes/agentSkills.js +3 -2
- package/dist/server/routes/agents.js +118 -16
- package/dist/server/routes/annotatedAttachments.js +3 -2
- package/dist/server/routes/auth.js +3 -1
- package/dist/server/routes/documents.d.ts +5 -2
- package/dist/server/routes/documents.js +160 -13
- package/dist/server/routes/durableTaskHttpRouters.d.ts +11 -2
- package/dist/server/routes/durableTaskHttpRouters.js +2 -2
- package/dist/server/routes/localService.js +4 -0
- package/dist/server/routes/primitives.d.ts +4 -0
- package/dist/server/routes/shared.d.ts +24 -0
- package/dist/server/routes/shared.js +114 -18
- package/dist/server/routes/sync.js +22 -0
- package/dist/server/routes/syncAuxRoutes.js +5 -2
- package/dist/server/routes/syncPullApplyRoutes.js +23 -4
- package/dist/server/routes/syncV3FeedRoutes.js +22 -18
- package/dist/server/routes/syncV3LocalCaptureRoutes.js +48 -4
- package/dist/server/routes/syncV3LocalFeedApplyRoutes.d.ts +1 -0
- package/dist/server/routes/syncV3LocalFeedApplyRoutes.js +26 -0
- package/dist/server/routes/syncV3OperationRoutes.js +27 -2
- package/dist/server/routes/tasks.js +299 -97
- package/dist/server/routes/workspaces.js +43 -1
- package/dist/server/routes.js +35 -7
- package/dist/server/workspaceDeletionAdmission.d.ts +23 -0
- package/dist/server/workspaceDeletionAdmission.js +50 -0
- package/dist/service/localServiceCli.js +52 -25
- package/dist/service/localServiceClientLifecycle.js +93 -6
- package/dist/services/codexAppServerModelGateway.d.ts +112 -0
- package/dist/services/codexAppServerModelGateway.js +438 -0
- package/dist/services/taskforceAgentMcpBridge.d.ts +7 -1
- package/dist/services/taskforceAgentMcpBridge.js +23 -3
- package/dist/shared/planningIdentity.d.ts +20 -0
- package/dist/shared/planningIdentity.js +79 -0
- package/dist/shared/taskforceAgentDefinition.js +7 -1
- package/dist/shared/taskforceAgentModels.d.ts +1 -0
- package/dist/shared/taskforceAgentModels.js +30 -1
- package/dist/storage/postgresAdapter.d.ts +20 -3
- package/dist/storage/postgresAdapter.js +110 -14
- package/dist/storage/postgresRequestDiagnostics.d.ts +8 -0
- package/dist/storage/postgresRequestDiagnostics.js +24 -0
- package/dist/storage/postgresWorker.js +13 -4
- package/dist/storage/postgresWorkerProtocol.d.ts +29 -0
- package/dist/storage/postgresWorkerProtocol.js +30 -0
- package/dist/storage/workspaceAssetStore.d.ts +32 -0
- package/dist/storage/workspaceAssetStore.js +70 -0
- package/dist/sync/cloudSyncApi.d.ts +4 -1
- package/dist/sync/cloudSyncApi.js +7 -2
- package/dist/sync/contentSyncState.d.ts +1 -1
- package/dist/sync/coordinator/localSyncExecutionPermitStore.d.ts +17 -0
- package/dist/sync/coordinator/localSyncExecutionPermitStore.js +77 -23
- package/dist/sync/coordinator/localWorkspaceSyncRunner.js +6 -2
- package/dist/sync/coordinator/workspaceSyncTransportGateway.js +4 -2
- package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.js +20 -2
- package/dist/sync/engine/workspaceSyncEngineLocalServices.d.ts +4 -0
- package/dist/sync/engine/workspaceSyncEngineLocalServices.js +11 -0
- package/dist/sync/engine/workspaceSyncEngineRemoteServices.d.ts +16 -0
- package/dist/sync/engine/workspaceSyncEngineRemoteServices.js +2 -1
- package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.d.ts +1 -1
- package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.js +46 -4
- package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.d.ts +3 -1
- package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.js +51 -11
- package/dist/sync/engine/workspaceSyncEngineTransfers.d.ts +1 -1
- package/dist/sync/engine/workspaceSyncEngineTransfers.js +8 -3
- package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.js +2 -0
- package/dist/sync/syncApplyHandlers.d.ts +3 -1
- package/dist/sync/syncApplyHandlers.js +29 -0
- package/dist/sync/syncService.d.ts +2 -0
- package/dist/sync/syncService.js +13 -1
- package/dist/sync/taskSyncPayload.d.ts +1 -0
- package/dist/sync/taskSyncPayload.js +6 -0
- package/dist/sync/v3/combinedFeedCapability.js +4 -0
- package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.d.ts +3 -0
- package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.js +31 -3
- package/dist/sync/v3/durableTaskChecklistMutationRouter.d.ts +2 -0
- package/dist/sync/v3/durableTaskChecklistMutationRouter.js +4 -0
- package/dist/sync/v3/durableTaskHttpBulkMutationRouter.d.ts +1 -0
- package/dist/sync/v3/durableTaskHttpBulkMutationRouter.js +47 -12
- package/dist/sync/v3/durableTaskHttpRootMutationRouter.d.ts +5 -3
- package/dist/sync/v3/durableTaskHttpRootMutationRouter.js +27 -2
- package/dist/sync/v3/localInitiativeOutboxService.js +4 -2
- package/dist/sync/v3/localOutboxDispatcher.js +5 -1
- package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.js +12 -2
- package/dist/sync/v3/localTaskAttachmentLinksOutboxService.d.ts +3 -0
- package/dist/sync/v3/localTaskAttachmentLinksOutboxService.js +62 -10
- package/dist/sync/v3/localTaskCreateOutboxService.js +15 -6
- package/dist/sync/v3/localTaskMetadataClient.d.ts +1 -0
- package/dist/sync/v3/localTaskMetadataClient.js +1 -0
- package/dist/sync/v3/localTaskMetadataOutboxHandler.js +5 -1
- package/dist/sync/v3/localTaskMetadataOutboxService.d.ts +2 -0
- package/dist/sync/v3/localTaskMetadataOutboxService.js +7 -0
- package/dist/sync/v3/localTaskRestoreOutboxService.js +14 -6
- package/dist/sync/v3/localTaskStatusClient.d.ts +1 -0
- package/dist/sync/v3/localTaskStatusClient.js +6 -1
- package/dist/sync/v3/localTaskStatusOutboxService.d.ts +2 -0
- package/dist/sync/v3/localTaskStatusOutboxService.js +54 -13
- package/dist/sync/v3/localWorkstreamOutboxService.js +4 -2
- package/dist/sync/v3/syncDurabilityStore.d.ts +15 -0
- package/dist/sync/v3/syncDurabilityStore.js +201 -43
- package/dist/sync/v3/taskAttachmentLinksMutationService.d.ts +7 -4
- package/dist/sync/v3/taskAttachmentLinksMutationService.js +37 -12
- package/dist/sync/v3/taskChecklistMutationService.d.ts +4 -2
- package/dist/sync/v3/taskChecklistMutationService.js +4 -0
- package/dist/sync/v3/taskCreateMutationService.d.ts +2 -2
- package/dist/sync/v3/taskCreateMutationService.js +7 -4
- package/dist/sync/v3/taskMetadataCoexistence.js +4 -0
- package/dist/sync/v3/taskMetadataMutationService.d.ts +3 -0
- package/dist/sync/v3/taskMetadataMutationService.js +4 -0
- package/dist/sync/v3/taskRestoreMutationService.d.ts +2 -2
- package/dist/sync/v3/taskRestoreMutationService.js +7 -4
- package/dist/sync/v3/taskStatusMutationService.d.ts +2 -0
- package/dist/sync/v3/taskStatusMutationService.js +4 -0
- package/dist/sync/v3/workflowAssignmentSync.d.ts +1 -0
- package/dist/sync/v3/workflowAssignmentSync.js +3 -0
- package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.d.ts +1 -1
- package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.js +14 -12
- package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.d.ts +11 -0
- package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.js +27 -10
- package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.d.ts +2 -1
- package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.js +52 -10
- package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.js +10 -1
- package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.js +15 -4
- package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.js +66 -13
- package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.d.ts +11 -0
- package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.js +57 -22
- package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.d.ts +10 -4
- package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.js +124 -51
- package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.d.ts +10 -0
- package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.js +120 -28
- package/dist/sync/v3/workspaceSyncV3CombinedWireContract.d.ts +3 -1
- package/dist/sync/v3/workspaceSyncV3CombinedWireContract.js +18 -0
- package/dist/sync/v3/workspaceSyncV3CoverageRegistry.js +6 -0
- package/dist/sync/v3/workspaceSyncV3FeedProfile.d.ts +1 -1
- package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.d.ts +1 -0
- package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.js +23 -10
- package/dist/sync/v3/workspaceSyncV3NestedTaskApply.d.ts +3 -0
- package/dist/sync/v3/workspaceSyncV3NestedTaskApply.js +64 -13
- package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.d.ts +9 -0
- package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.js +26 -0
- package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.d.ts +15 -5
- package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.js +50 -14
- package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.d.ts +2 -1
- package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.js +11 -3
- package/dist/sync/v3/workspaceSyncV3OperationProtocol.d.ts +3 -0
- package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.d.ts +2 -0
- package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.js +19 -7
- package/dist/sync/v3/workspaceSyncV3RepairSqlBatching.d.ts +2 -0
- package/dist/sync/v3/workspaceSyncV3RepairSqlBatching.js +10 -0
- package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.js +9 -2
- package/dist/sync/v3/workspaceSyncV3TaskCoverCoverage.d.ts +7 -0
- package/dist/sync/v3/workspaceSyncV3TaskCoverCoverage.js +37 -0
- package/dist/sync/v3/workspaceSyncV3TaskCoverWireContract.d.ts +6 -0
- package/dist/sync/v3/workspaceSyncV3TaskCoverWireContract.js +9 -0
- package/dist/sync/v3/workspaceSyncV3TaskRootProjection.d.ts +1 -1
- package/dist/sync/v3/workspaceSyncV3TaskRootProjection.js +1 -1
- package/dist/sync/workspacePullFeed.d.ts +6 -1
- package/dist/sync/workspacePullFeed.js +174 -162
- package/dist/sync/workspaceRepair.d.ts +3 -0
- package/dist/sync/workspaceRepair.js +67 -6
- package/dist/sync/workspaceSyncModel.d.ts +11 -0
- package/dist/sync/workspaceSyncModel.js +27 -2
- package/dist/types.d.ts +55 -1
- package/dist/types.js +6 -0
- package/dist/ui/assets/{AiIdentityRosterCard-DB1BLO_j.js → AiIdentityRosterCard-BZM4aQnM.js} +1 -1
- package/dist/ui/assets/AiProfilesModule-BbAEWtHH.js +1 -0
- package/dist/ui/assets/AnnotatedAttachmentWorkspace-B68Wg-RV.js +3 -0
- package/dist/ui/assets/AnnotatedAttachmentWorkspace-TzYu7pkG.css +1 -0
- package/dist/ui/assets/AssetTraySortControl-C8Rztyal.js +1 -0
- package/dist/ui/assets/ContextAttachmentManager-Cj3c7X9y.js +3 -0
- package/dist/ui/assets/{DocumentWorkspace-BC7sy5TG.js → DocumentWorkspace-B5uvzems.js} +4 -4
- package/dist/ui/assets/EntityActivityTimeline-BVFvCB5R.js +1 -0
- package/dist/ui/assets/PlanningModule-B5DWQOGz.js +1 -0
- package/dist/ui/assets/PlanningModule-CoIR9hbV.css +1 -0
- package/dist/ui/assets/PlansPage-AY4cGWco.js +1 -0
- package/dist/ui/assets/TaskContextUpload-DZxTVesW.js +1 -0
- package/dist/ui/assets/TaskContextUpload-qmBeUw3u.css +1 -0
- package/dist/ui/assets/TaskSettings-BeWAuyZj.js +12 -0
- package/dist/ui/assets/{TaskforceAgentsModule-CkAxW19K.js → TaskforceAgentsModule-BifCYtjR.js} +6 -6
- package/dist/ui/assets/WorkflowManagerModule-DEr5di_r.js +1 -0
- package/dist/ui/assets/index-I5zhdtgt.js +7 -0
- package/dist/ui/assets/index-VRFsx3wz.css +1 -0
- package/dist/ui/assets/{vendor-icons-B8ZNsH1g.js → vendor-icons-D9Lpw-j4.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/utils/constants.d.ts +2 -2
- package/dist/utils/constants.js +1 -1
- package/dist/utils/contextAttachmentUpload.d.ts +2 -0
- package/dist/utils/contextAttachmentUpload.js +7 -0
- package/dist/utils/contextFiles.d.ts +1 -1
- package/dist/utils/contextFiles.js +4 -4
- package/dist/utils/taskActivity.d.ts +3 -2
- package/dist/utils/taskActivity.js +19 -2
- package/dist/utils/taskEditorReconciliation.d.ts +40 -0
- package/dist/utils/taskEditorReconciliation.js +217 -0
- package/dist/utils/taskNormalization.d.ts +1 -0
- package/dist/utils/taskNormalization.js +39 -0
- package/dist/utils/taskSearch.js +2 -2
- package/dist/utils/uiNotice.d.ts +4 -0
- package/package.json +21 -4
- package/dist/ui/assets/AiProfilesModule-DPxQeF9N.js +0 -1
- package/dist/ui/assets/AnnotatedAttachmentWorkspace-CBRZ8rca.css +0 -1
- package/dist/ui/assets/AnnotatedAttachmentWorkspace-DHNYaNg6.js +0 -3
- package/dist/ui/assets/AssetTraySortControl-DphbyHVc.js +0 -1
- package/dist/ui/assets/ContextAttachmentManager-CMxSzHqc.js +0 -3
- package/dist/ui/assets/EntityActivityTimeline-pJ2ZjZ-k.js +0 -1
- package/dist/ui/assets/PlanningModule-CeTqXMMz.css +0 -1
- package/dist/ui/assets/PlanningModule-t5GbvVR9.js +0 -1
- package/dist/ui/assets/PlansPage-BVH_NfgT.js +0 -1
- package/dist/ui/assets/TaskContextUpload-Ds4LnDzV.css +0 -1
- package/dist/ui/assets/TaskContextUpload-bl4fOOUz.js +0 -1
- package/dist/ui/assets/TaskSettings-xVsxSa0g.js +0 -12
- package/dist/ui/assets/WorkflowManagerModule-BKqIGVnF.js +0 -1
- package/dist/ui/assets/index-BzJlVnNS.css +0 -1
- package/dist/ui/assets/index-Cx7vZJHL.js +0 -7
|
@@ -8,7 +8,7 @@ export declare class DurableTaskAttachmentLinksApplyError extends Error {
|
|
|
8
8
|
constructor(message: string, code: 'TASK_ATTACHMENT_ASSET_NOT_READY' | 'TASK_ATTACHMENT_ASSET_INVALID' | 'TASK_ATTACHMENT_LINK_INVALID', statusCode: number, assetId?: string | undefined);
|
|
9
9
|
}
|
|
10
10
|
export interface DurableTaskAttachmentLinksCore {
|
|
11
|
-
getWorkspaceAssetStore(): Pick<WorkspaceAssetStore, 'get' | 'listLinksForTask' | 'adoptReadableReferenceNumber'>;
|
|
11
|
+
getWorkspaceAssetStore(): Pick<WorkspaceAssetStore, 'get' | 'listLinksForTask' | 'adoptReadableReferenceNumber' | 'restoreDeleted'>;
|
|
12
12
|
getWorkspaceAssetDispatchReadiness(assetId: string, workspaceId: string): {
|
|
13
13
|
ready: boolean;
|
|
14
14
|
retryable: boolean;
|
|
@@ -16,14 +16,20 @@ export interface DurableTaskAttachmentLinksCore {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
export interface DurableWorkspaceTaskAttachmentLinksCore extends DurableTaskAttachmentLinksCore {
|
|
19
|
-
getWorkspaceAssetStore(): Pick<WorkspaceAssetStore, 'get' | 'listLinksForTask' | 'listLinksForWorkspace' | 'listAllNormalizedByWorkspace' | 'adoptReadableReferenceNumber'>;
|
|
19
|
+
getWorkspaceAssetStore(): Pick<WorkspaceAssetStore, 'get' | 'listLinksForTask' | 'listLinksForWorkspace' | 'listAllNormalizedByWorkspace' | 'adoptReadableReferenceNumber' | 'restoreDeleted'>;
|
|
20
20
|
}
|
|
21
|
+
export declare function resolveTaskCardCoverAssetIdForLinks(input: {
|
|
22
|
+
currentCardCoverAssetId?: string | null;
|
|
23
|
+
requestedCardCoverAssetId?: string | null;
|
|
24
|
+
links: readonly WorkspaceSyncV3TaskAttachmentLink[];
|
|
25
|
+
}): string | null;
|
|
21
26
|
export declare function listTaskAttachmentLinksForDurableSync(core: DurableTaskAttachmentLinksCore, workspaceId: string, taskId: string): WorkspaceSyncV3TaskAttachmentLink[];
|
|
22
27
|
export declare function listWorkspaceTaskAttachmentLinksForDurableSync(core: DurableWorkspaceTaskAttachmentLinksCore, workspaceId: string, taskIds: ReadonlySet<string>): Map<string, WorkspaceSyncV3TaskAttachmentLink[]>;
|
|
23
28
|
export declare function resolveTaskAttachmentLinksForDurableSync(core: DurableTaskAttachmentLinksCore, workspaceId: string, links: readonly WorkspaceSyncV3TaskAttachmentLink[], options?: {
|
|
24
29
|
requireDispatchReady?: boolean;
|
|
25
30
|
adoptAuthoritativeReferenceNumber?: boolean;
|
|
26
31
|
ignoreAssetMetadataSnapshots?: boolean;
|
|
32
|
+
restoreDeletedExternalAssetForAuthoritativeSync?: boolean;
|
|
27
33
|
}): AttachmentItem[];
|
|
28
34
|
export declare function normalizeTaskAttachmentDescriptorsForDurableSync(core: DurableTaskAttachmentLinksCore, workspaceId: string, attachments: readonly AttachmentItem[], options?: {
|
|
29
35
|
requireDispatchReady?: boolean;
|
|
@@ -12,6 +12,19 @@ export class DurableTaskAttachmentLinksApplyError extends Error {
|
|
|
12
12
|
this.name = 'DurableTaskAttachmentLinksApplyError';
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
+
export function resolveTaskCardCoverAssetIdForLinks(input) {
|
|
16
|
+
const explicitlyRequested = Object.prototype.hasOwnProperty.call(input, 'requestedCardCoverAssetId');
|
|
17
|
+
const candidate = explicitlyRequested
|
|
18
|
+
? String(input.requestedCardCoverAssetId || '').trim()
|
|
19
|
+
: String(input.currentCardCoverAssetId || '').trim();
|
|
20
|
+
if (!candidate)
|
|
21
|
+
return null;
|
|
22
|
+
const matchingImage = input.links.some((link) => link.assetId === candidate && link.role === 'image');
|
|
23
|
+
if (!matchingImage && explicitlyRequested) {
|
|
24
|
+
throw new DurableTaskAttachmentLinksApplyError('Task card cover must reference an image already attached to this task.', 'TASK_ATTACHMENT_LINK_INVALID', 400, candidate);
|
|
25
|
+
}
|
|
26
|
+
return matchingImage ? candidate : null;
|
|
27
|
+
}
|
|
15
28
|
function fail(message, code, statusCode, assetId) {
|
|
16
29
|
throw new DurableTaskAttachmentLinksApplyError(message, code, statusCode, assetId);
|
|
17
30
|
}
|
|
@@ -40,6 +53,12 @@ function canonicalRole(asset, requested) {
|
|
|
40
53
|
}
|
|
41
54
|
return expected;
|
|
42
55
|
}
|
|
56
|
+
function canonicalPersistedRole(asset, persisted) {
|
|
57
|
+
// Historical external links predate the reference-only invariant. Repair
|
|
58
|
+
// projections must publish the current canonical shape, while mutation
|
|
59
|
+
// inputs continue through canonicalRole and remain strictly validated.
|
|
60
|
+
return asset.storageProvider === 'external' ? 'reference' : canonicalRole(asset, persisted);
|
|
61
|
+
}
|
|
43
62
|
function referenceFields(asset) {
|
|
44
63
|
if (!asset.referenceNumber)
|
|
45
64
|
return { referenceNumber: null, referenceLabel: null };
|
|
@@ -70,9 +89,13 @@ function assertReady(core, workspaceId, asset, options) {
|
|
|
70
89
|
}
|
|
71
90
|
}
|
|
72
91
|
function canonicalLink(asset, link, fallbackOrder) {
|
|
92
|
+
// Historical task links could persist an external asset as an attachment.
|
|
93
|
+
// External assets are references by contract, so repair/export must emit the
|
|
94
|
+
// canonical role rather than reproducing an un-installable legacy link.
|
|
95
|
+
const role = asset.storageProvider === 'external' ? 'reference' : link.role;
|
|
73
96
|
return {
|
|
74
97
|
assetId: asset.assetId,
|
|
75
|
-
role
|
|
98
|
+
role,
|
|
76
99
|
order: Number.isSafeInteger(link.sortOrder) && Number(link.sortOrder) >= 0
|
|
77
100
|
? Number(link.sortOrder)
|
|
78
101
|
: fallbackOrder,
|
|
@@ -94,7 +117,7 @@ export function listTaskAttachmentLinksForDurableSync(core, workspaceId, taskId)
|
|
|
94
117
|
fail(`Task attachment asset is deleted: ${link.assetId}`, 'TASK_ATTACHMENT_ASSET_INVALID', 400);
|
|
95
118
|
}
|
|
96
119
|
assertReady(core, workspaceId, asset);
|
|
97
|
-
return canonicalLink(asset, link, index);
|
|
120
|
+
return canonicalLink(asset, { ...link, role: canonicalPersistedRole(asset, link.role) }, index);
|
|
98
121
|
})
|
|
99
122
|
.sort((left, right) => left.order - right.order
|
|
100
123
|
|| (left.assetId < right.assetId ? -1 : left.assetId > right.assetId ? 1 : 0)
|
|
@@ -126,7 +149,7 @@ export function listWorkspaceTaskAttachmentLinksForDurableSync(core, workspaceId
|
|
|
126
149
|
fail(`Task attachment asset is deleted: ${link.assetId}`, 'TASK_ATTACHMENT_ASSET_INVALID', 400);
|
|
127
150
|
}
|
|
128
151
|
assertReady(core, workspaceId, asset);
|
|
129
|
-
return canonicalLink(asset, link, index);
|
|
152
|
+
return canonicalLink(asset, { ...link, role: canonicalPersistedRole(asset, link.role) }, index);
|
|
130
153
|
}).sort((left, right) => left.order - right.order
|
|
131
154
|
|| (left.assetId < right.assetId ? -1 : left.assetId > right.assetId ? 1 : 0)
|
|
132
155
|
|| (left.role < right.role ? -1 : left.role > right.role ? 1 : 0))
|
|
@@ -143,6 +166,14 @@ export function resolveTaskAttachmentLinksForDurableSync(core, workspaceId, link
|
|
|
143
166
|
if (!asset) {
|
|
144
167
|
fail(`Task attachment asset is unavailable because it has not reached this runtime: ${link.assetId}`, 'TASK_ATTACHMENT_ASSET_NOT_READY', 425, link.assetId);
|
|
145
168
|
}
|
|
169
|
+
if (asset.deletedAt
|
|
170
|
+
&& asset.storageProvider === 'external'
|
|
171
|
+
&& options?.restoreDeletedExternalAssetForAuthoritativeSync === true) {
|
|
172
|
+
// External pointers do not travel through binary content hydration.
|
|
173
|
+
// An active authoritative link is the lifecycle proof needed to
|
|
174
|
+
// revive the existing local placeholder inside the apply transaction.
|
|
175
|
+
asset = store.restoreDeleted(asset.assetId, workspaceId, asset.updatedAt) || asset;
|
|
176
|
+
}
|
|
146
177
|
assertReady(core, workspaceId, asset, options);
|
|
147
178
|
// Replicated apply may align independently hydrated local D-/I- numbers
|
|
148
179
|
// to cloud authority. Ordinary local/cloud mutation writers must never
|
|
@@ -159,13 +190,11 @@ export function resolveTaskAttachmentLinksForDurableSync(core, workspaceId, link
|
|
|
159
190
|
fail('Task attachment links must have unique asset and role identities.', 'TASK_ATTACHMENT_LINK_INVALID', 400);
|
|
160
191
|
}
|
|
161
192
|
identities.add(identity);
|
|
162
|
-
const displayName =
|
|
163
|
-
?
|
|
164
|
-
:
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|| asset.logicalName
|
|
168
|
-
|| asset.originalFilename).trim() || null;
|
|
193
|
+
const displayName = String(link.displayName
|
|
194
|
+
|| (options?.ignoreAssetMetadataSnapshots === true ? '' : link.originalFilename)
|
|
195
|
+
|| (options?.ignoreAssetMetadataSnapshots === true ? '' : link.caption)
|
|
196
|
+
|| (options?.ignoreAssetMetadataSnapshots === true ? '' : asset.originalFilename)
|
|
197
|
+
|| (options?.ignoreAssetMetadataSnapshots === true ? '' : asset.logicalName)).trim() || null;
|
|
169
198
|
const projected = canonicalLink(asset, { role, displayName, sortOrder: index }, index);
|
|
170
199
|
if (options?.ignoreAssetMetadataSnapshots !== true
|
|
171
200
|
&& ((link.referenceNumber ?? null) !== (projected.referenceNumber ?? null)
|
|
@@ -176,12 +205,18 @@ export function resolveTaskAttachmentLinksForDurableSync(core, workspaceId, link
|
|
|
176
205
|
path: canonicalAssetPath(asset),
|
|
177
206
|
assetId: asset.assetId,
|
|
178
207
|
linkRole: role,
|
|
179
|
-
...(
|
|
208
|
+
...(options?.ignoreAssetMetadataSnapshots !== true
|
|
209
|
+
&& asset.kind === 'document'
|
|
210
|
+
&& asset.storageProvider !== 'external'
|
|
211
|
+
&& projected.caption !== undefined
|
|
180
212
|
? { caption: projected.caption } : {}),
|
|
181
213
|
...(projected.displayName !== undefined ? { displayName: projected.displayName } : {}),
|
|
182
|
-
...(
|
|
183
|
-
|
|
184
|
-
...(
|
|
214
|
+
...(options?.ignoreAssetMetadataSnapshots !== true && projected.originalFilename !== undefined
|
|
215
|
+
? { originalFilename: projected.originalFilename } : {}),
|
|
216
|
+
...(options?.ignoreAssetMetadataSnapshots !== true && projected.referenceNumber !== undefined
|
|
217
|
+
? { referenceNumber: projected.referenceNumber } : {}),
|
|
218
|
+
...(options?.ignoreAssetMetadataSnapshots !== true && projected.referenceLabel !== undefined
|
|
219
|
+
? { referenceLabel: projected.referenceLabel } : {}),
|
|
185
220
|
};
|
|
186
221
|
});
|
|
187
222
|
}
|
|
@@ -205,10 +240,8 @@ export function normalizeTaskAttachmentDescriptorsForDurableSync(core, workspace
|
|
|
205
240
|
fail('Task attachment links must have unique asset and role identities.', 'TASK_ATTACHMENT_LINK_INVALID', 400);
|
|
206
241
|
}
|
|
207
242
|
identities.add(identity);
|
|
208
|
-
const displayName =
|
|
209
|
-
|
|
210
|
-
: String(attachment.caption || attachment.displayName || attachment.originalFilename
|
|
211
|
-
|| asset.logicalName || asset.originalFilename).trim() || null;
|
|
243
|
+
const displayName = String(attachment.displayName || attachment.originalFilename || attachment.caption
|
|
244
|
+
|| asset.logicalName || asset.originalFilename).trim() || null;
|
|
212
245
|
return canonicalLink(asset, { role, displayName, sortOrder: order }, order);
|
|
213
246
|
});
|
|
214
247
|
}
|
package/dist/core/Taskforce.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type PlanningIdentityColor, type PlanningIdentityEntityType, type PlanningIdentityIcon } from '../shared/planningIdentity.js';
|
|
1
2
|
import type { DatabaseAdapter, DatabaseProvider } from '../storage/databaseAdapter.js';
|
|
2
3
|
import { type LocalDataOwnerPermit } from '../server/localDataOwnerPermit.js';
|
|
3
4
|
import type { DurableTaskStatusMutationPayload } from './TaskDurableStatusMutationService.js';
|
|
@@ -94,6 +95,17 @@ export interface AuditActivityItem {
|
|
|
94
95
|
event: TaskEvent;
|
|
95
96
|
}
|
|
96
97
|
export type TaskActivityItem = CommentActivityItem | AuditActivityItem;
|
|
98
|
+
export type TaskActivitySummaryItem = {
|
|
99
|
+
id: string;
|
|
100
|
+
type: 'comment';
|
|
101
|
+
timestamp: string;
|
|
102
|
+
comment: Pick<Comment, 'text' | 'author' | 'actor'>;
|
|
103
|
+
} | {
|
|
104
|
+
id: string;
|
|
105
|
+
type: 'event';
|
|
106
|
+
timestamp: string;
|
|
107
|
+
event: Pick<TaskEvent, 'action' | 'details' | 'actor' | 'actorType' | 'actorProfile'>;
|
|
108
|
+
};
|
|
97
109
|
export interface EntityAuditActivityItem {
|
|
98
110
|
id: string;
|
|
99
111
|
type: 'event';
|
|
@@ -151,6 +163,8 @@ export interface TaskItem {
|
|
|
151
163
|
activity?: TaskActivityItem[];
|
|
152
164
|
taskEvents?: TaskEvent[];
|
|
153
165
|
attachments?: AttachmentItem[];
|
|
166
|
+
cardCoverAssetId?: string | null;
|
|
167
|
+
cardCoverAttachment?: Exclude<AttachmentItem, string> | null;
|
|
154
168
|
/** @deprecated Use status='done'. Safe to remove after v0.4.x migration gate. */
|
|
155
169
|
completed?: boolean;
|
|
156
170
|
/** @deprecated Use status='cancelled'. Safe to remove after v0.4.x migration gate. */
|
|
@@ -169,7 +183,27 @@ export interface TaskItem {
|
|
|
169
183
|
workstreamOrder?: number | null;
|
|
170
184
|
workstreamId?: string | null;
|
|
171
185
|
checklistItems?: ChecklistItem[];
|
|
172
|
-
|
|
186
|
+
/** True when this object came from a collection read and omits the full task graph. */
|
|
187
|
+
isSummary?: boolean;
|
|
188
|
+
commentCount?: number;
|
|
189
|
+
checklistCount?: number;
|
|
190
|
+
completedChecklistCount?: number;
|
|
191
|
+
attachmentCount?: number;
|
|
192
|
+
relationshipCount?: number;
|
|
193
|
+
/** Compact newest comment or audit event carried by lightweight collection reads. */
|
|
194
|
+
latestActivity?: TaskActivitySummaryItem | null;
|
|
195
|
+
detailRevision?: string;
|
|
196
|
+
}
|
|
197
|
+
export type TaskSummary = Omit<TaskItem, 'description' | 'comments' | 'activity' | 'taskEvents' | 'attachments' | 'checklistItems'> & {
|
|
198
|
+
isSummary: true;
|
|
199
|
+
commentCount: number;
|
|
200
|
+
checklistCount: number;
|
|
201
|
+
completedChecklistCount: number;
|
|
202
|
+
attachmentCount: number;
|
|
203
|
+
relationshipCount: number;
|
|
204
|
+
latestActivity: TaskActivitySummaryItem | null;
|
|
205
|
+
detailRevision: string;
|
|
206
|
+
};
|
|
173
207
|
export type AttachmentItem = string | {
|
|
174
208
|
path: string;
|
|
175
209
|
fsPath?: string;
|
|
@@ -190,6 +224,9 @@ export interface InitiativeItem {
|
|
|
190
224
|
title: string;
|
|
191
225
|
description: string | null;
|
|
192
226
|
ownerId?: string | null;
|
|
227
|
+
icon?: PlanningIdentityIcon | null;
|
|
228
|
+
color?: PlanningIdentityColor | null;
|
|
229
|
+
identityUpdatedAt?: string | null;
|
|
193
230
|
comments?: Comment[];
|
|
194
231
|
activity?: EntityActivityItem[];
|
|
195
232
|
entityEvents?: PlanningEntityEvent[];
|
|
@@ -207,6 +244,9 @@ export interface WorkstreamItem {
|
|
|
207
244
|
title: string;
|
|
208
245
|
description: string | null;
|
|
209
246
|
ownerId?: string | null;
|
|
247
|
+
icon?: PlanningIdentityIcon | null;
|
|
248
|
+
color?: PlanningIdentityColor | null;
|
|
249
|
+
identityUpdatedAt?: string | null;
|
|
210
250
|
comments?: Comment[];
|
|
211
251
|
activity?: EntityActivityItem[];
|
|
212
252
|
entityEvents?: PlanningEntityEvent[];
|
|
@@ -216,6 +256,13 @@ export interface WorkstreamItem {
|
|
|
216
256
|
order?: number | null;
|
|
217
257
|
isArchived?: boolean;
|
|
218
258
|
}
|
|
259
|
+
export interface PlanningEntityIdentityRecord {
|
|
260
|
+
entityType: PlanningIdentityEntityType;
|
|
261
|
+
entityId: string;
|
|
262
|
+
icon: PlanningIdentityIcon | null;
|
|
263
|
+
color: PlanningIdentityColor | null;
|
|
264
|
+
updatedAt: string;
|
|
265
|
+
}
|
|
219
266
|
export interface ChecklistItem {
|
|
220
267
|
id: string;
|
|
221
268
|
taskId: string;
|
|
@@ -254,7 +301,7 @@ export interface ScheduleBoardResult {
|
|
|
254
301
|
}>;
|
|
255
302
|
};
|
|
256
303
|
}
|
|
257
|
-
export type RealtimeMutationEntityType = 'task' | 'taxonomy' | 'document-metadata';
|
|
304
|
+
export type RealtimeMutationEntityType = 'task' | 'initiative' | 'workstream' | 'taxonomy' | 'document-metadata';
|
|
258
305
|
export interface RealtimeMutationEvent {
|
|
259
306
|
eventId: string;
|
|
260
307
|
workspaceId: string;
|
|
@@ -299,6 +346,7 @@ export interface TaskforceConfig {
|
|
|
299
346
|
storagePath?: string;
|
|
300
347
|
tenantId?: string;
|
|
301
348
|
runtimeMode?: RuntimeMode;
|
|
349
|
+
initializationMode?: 'standard' | 'cloud-read-worker';
|
|
302
350
|
localDataOwnerPermit?: LocalDataOwnerPermit;
|
|
303
351
|
database?: {
|
|
304
352
|
provider?: DatabaseProvider;
|
|
@@ -335,12 +383,23 @@ export interface TaskFile {
|
|
|
335
383
|
manualComplexityEnabled?: boolean;
|
|
336
384
|
checklistDropdownEnabled?: boolean;
|
|
337
385
|
showTaskCardStatusLabel?: boolean;
|
|
386
|
+
showTaskCardDescription?: boolean;
|
|
387
|
+
showTaskCardAttachments?: boolean;
|
|
388
|
+
showTaskCardChecklistProgress?: boolean;
|
|
389
|
+
showTaskCardLatestActivity?: boolean;
|
|
390
|
+
tintTaskCardActivityBackground?: boolean;
|
|
338
391
|
taxonomies?: any[];
|
|
339
392
|
};
|
|
340
393
|
}
|
|
341
394
|
export interface ArchiveFile {
|
|
342
395
|
archived: TaskItem[];
|
|
343
396
|
}
|
|
397
|
+
export interface TaskSummaryFile {
|
|
398
|
+
tasks: TaskSummary[];
|
|
399
|
+
}
|
|
400
|
+
export interface ArchiveSummaryFile {
|
|
401
|
+
archived: TaskSummary[];
|
|
402
|
+
}
|
|
344
403
|
export interface BulkCreateTaskError {
|
|
345
404
|
index: number;
|
|
346
405
|
message: string;
|
|
@@ -856,6 +915,8 @@ export interface TaskforceSyncCapable {
|
|
|
856
915
|
listInitiativesForSync(workspaceId: string | undefined, afterId: string | null, limit: number): InitiativeItem[];
|
|
857
916
|
listWorkstreams(workspaceId?: string): WorkstreamItem[];
|
|
858
917
|
listWorkstreamsForSync(workspaceId: string | undefined, afterId: string | null, limit: number): WorkstreamItem[];
|
|
918
|
+
listPlanningEntityIdentities(workspaceId?: string): PlanningEntityIdentityRecord[];
|
|
919
|
+
applyPlanningEntityIdentityForSync(identity: PlanningEntityIdentityRecord, workspaceId?: string | null): PlanningEntityIdentityRecord | null;
|
|
859
920
|
listAiProfiles(workspaceId: string, options?: {
|
|
860
921
|
includeArchived?: boolean;
|
|
861
922
|
}): AiProfileRecord[];
|
|
@@ -976,8 +1037,10 @@ export interface TaskforceSyncCapable {
|
|
|
976
1037
|
workspaceId: string;
|
|
977
1038
|
connectionId: string;
|
|
978
1039
|
seatScope?: AiProfileSeatScope | null;
|
|
1040
|
+
repairLegacyBinding?: boolean;
|
|
979
1041
|
}): AiProfileRecord | null;
|
|
980
1042
|
resolveWorkspaceActor(workspaceId: string, actorRef: unknown): TaskActor | null;
|
|
1043
|
+
resolveWorkspaceActors(workspaceId: string, actorRefs: unknown[]): Map<string, TaskActor | null>;
|
|
981
1044
|
}
|
|
982
1045
|
export type TaskRelationshipInputType = 'depends_on' | 'blocks' | 'related_to' | 'supersedes';
|
|
983
1046
|
export type TaskRelationshipKind = 'dependency' | 'related' | 'supersedes';
|
|
@@ -1127,6 +1190,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1127
1190
|
requireDispatchReady?: boolean;
|
|
1128
1191
|
adoptAuthoritativeReferenceNumber?: boolean;
|
|
1129
1192
|
ignoreAssetMetadataSnapshots?: boolean;
|
|
1193
|
+
restoreDeletedExternalAssetForAuthoritativeSync?: boolean;
|
|
1130
1194
|
}): AttachmentItem[];
|
|
1131
1195
|
private normalizeEntitlementState;
|
|
1132
1196
|
private upsertCanonicalEntitlementRecord;
|
|
@@ -1316,6 +1380,13 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1316
1380
|
getWorkstream(id: string, workspaceId?: string): WorkstreamItem | null;
|
|
1317
1381
|
listWorkstreams(workspaceId?: string): WorkstreamItem[];
|
|
1318
1382
|
listWorkstreamsForSync(workspaceId: string | undefined, afterId: string | null, limit: number): WorkstreamItem[];
|
|
1383
|
+
listPlanningEntityIdentities(workspaceId?: string): PlanningEntityIdentityRecord[];
|
|
1384
|
+
private writePlanningEntityIdentity;
|
|
1385
|
+
updatePlanningEntityIdentity(entityType: PlanningIdentityEntityType, entityId: string, patch: {
|
|
1386
|
+
icon?: unknown;
|
|
1387
|
+
color?: unknown;
|
|
1388
|
+
}, workspaceId?: string): InitiativeItem | WorkstreamItem;
|
|
1389
|
+
applyPlanningEntityIdentityForSync(identity: PlanningEntityIdentityRecord, workspaceId?: string | null): PlanningEntityIdentityRecord | null;
|
|
1319
1390
|
listPlanningBootstrap(workspaceId?: string, diagnostics?: PlanningBootstrapDiagnostics): PlanningBootstrapPayload;
|
|
1320
1391
|
createWorkstream(input: Partial<WorkstreamItem>, workspaceId?: string, options?: {
|
|
1321
1392
|
actorRef?: string;
|
|
@@ -1419,6 +1490,16 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1419
1490
|
private getSyncReconciliationServiceDeps;
|
|
1420
1491
|
private getWorkspaceLifecycleServiceDeps;
|
|
1421
1492
|
listTasks(workspaceId?: string): TaskFile;
|
|
1493
|
+
private listTaskSummaries;
|
|
1494
|
+
listActiveTaskSummaries(workspaceId?: string): TaskSummaryFile;
|
|
1495
|
+
listArchiveSummaries(workspaceId?: string): ArchiveSummaryFile;
|
|
1496
|
+
getTaskDetailRevision(id: string, workspaceId?: string): string | null;
|
|
1497
|
+
getTaskDetailSnapshot(id: string, workspaceId?: string): TaskItem | null;
|
|
1498
|
+
updateTaskIfDetailRevisionMatches(id: string, expectedDetailRevision: string, updates: Partial<TaskItem>, workspaceId?: string, options?: {
|
|
1499
|
+
actorRef?: string;
|
|
1500
|
+
saveSource?: 'manual' | 'autosave';
|
|
1501
|
+
}): TaskItem | null;
|
|
1502
|
+
assertTaskDetailRevisionForUpdate(id: string, expectedDetailRevision: string, workspaceId?: string): void;
|
|
1422
1503
|
/**
|
|
1423
1504
|
* Filter-pushdown listing used by read-only surfaces that don't need the
|
|
1424
1505
|
* full task graph (MCP list_tasks, CLI summaries). Avoids the per-task
|
|
@@ -1438,6 +1519,25 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1438
1519
|
limit?: number;
|
|
1439
1520
|
offset?: number;
|
|
1440
1521
|
workstreamId?: string;
|
|
1522
|
+
includeArchived?: boolean;
|
|
1523
|
+
}): Array<Record<string, unknown>>;
|
|
1524
|
+
listTaskCountsByWorkstream(workspaceId?: string, workstreamId?: string): Array<{
|
|
1525
|
+
workstreamId: string;
|
|
1526
|
+
total: number;
|
|
1527
|
+
active: number;
|
|
1528
|
+
archived: number;
|
|
1529
|
+
}>;
|
|
1530
|
+
listTaskReferenceSummaries(taskIds: string[], workspaceId?: string): Array<{
|
|
1531
|
+
id: string;
|
|
1532
|
+
referenceNumber: number | null;
|
|
1533
|
+
localReferenceNumber: number | null;
|
|
1534
|
+
referenceLabel: string | null;
|
|
1535
|
+
title: string;
|
|
1536
|
+
status: TaskStatus;
|
|
1537
|
+
}>;
|
|
1538
|
+
searchTaskSummaries(query: string, scope?: 'all' | 'active' | 'archive', workspaceId?: string, options?: {
|
|
1539
|
+
limit?: number;
|
|
1540
|
+
offset?: number;
|
|
1441
1541
|
}): Array<Record<string, unknown>>;
|
|
1442
1542
|
getDataVersion(): number;
|
|
1443
1543
|
getDatabaseProvider(): DatabaseProvider;
|
|
@@ -1446,6 +1546,9 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1446
1546
|
listDeletedTasks(workspaceId?: string): {
|
|
1447
1547
|
deleted: DeletedTaskRecord[];
|
|
1448
1548
|
};
|
|
1549
|
+
listDeletedTasksReadOnly(workspaceId?: string): {
|
|
1550
|
+
deleted: DeletedTaskRecord[];
|
|
1551
|
+
};
|
|
1449
1552
|
getDeletedTask(id: string, workspaceId?: string): DeletedTaskRecord | null;
|
|
1450
1553
|
private assertNoDurableTaskDeleteOwnership;
|
|
1451
1554
|
permanentlyDeleteDeletedTask(id: string, workspaceId?: string): boolean;
|
|
@@ -1465,6 +1568,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1465
1568
|
total: number;
|
|
1466
1569
|
doneCount: number;
|
|
1467
1570
|
cancelledCount: number;
|
|
1571
|
+
otherCount: number;
|
|
1468
1572
|
retentionDays: number;
|
|
1469
1573
|
};
|
|
1470
1574
|
};
|
|
@@ -1602,6 +1706,7 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1602
1706
|
workspaceId: string;
|
|
1603
1707
|
connectionId: string;
|
|
1604
1708
|
seatScope?: AiProfileSeatScope | null;
|
|
1709
|
+
repairLegacyBinding?: boolean;
|
|
1605
1710
|
}): AiProfileRecord | null;
|
|
1606
1711
|
resolveAiProfile(input: ResolveAiProfileInput, options?: ResolveAiProfileOptions): ResolveAiProfileResult;
|
|
1607
1712
|
listAnnotatedAttachmentSessions(input: {
|
|
@@ -1717,6 +1822,8 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1717
1822
|
body: string;
|
|
1718
1823
|
anchor?: DocumentReviewAnchor | null;
|
|
1719
1824
|
actorId?: string | null;
|
|
1825
|
+
idempotencyKey?: string | null;
|
|
1826
|
+
commentId?: string | null;
|
|
1720
1827
|
}): DocumentReviewSession;
|
|
1721
1828
|
addDocumentReviewReply(input: {
|
|
1722
1829
|
workspaceId?: string | null;
|
|
@@ -1724,6 +1831,8 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1724
1831
|
parentCommentId: string;
|
|
1725
1832
|
body: string;
|
|
1726
1833
|
actorId?: string | null;
|
|
1834
|
+
idempotencyKey?: string | null;
|
|
1835
|
+
commentId?: string | null;
|
|
1727
1836
|
}): DocumentReviewSession;
|
|
1728
1837
|
updateDocumentReviewThreadStatus(input: {
|
|
1729
1838
|
workspaceId?: string | null;
|
|
@@ -1754,7 +1863,9 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
1754
1863
|
sessionId: string;
|
|
1755
1864
|
}): boolean;
|
|
1756
1865
|
private getAiProfileServiceDeps;
|
|
1866
|
+
private buildUnresolvedWorkspaceActor;
|
|
1757
1867
|
resolveWorkspaceActor(workspaceId: string, actorRef: unknown): TaskActor | null;
|
|
1868
|
+
resolveWorkspaceActors(workspaceId: string, actorRefs: unknown[]): Map<string, TaskActor | null>;
|
|
1758
1869
|
listAssignableActors(workspaceId: string): TaskActor[];
|
|
1759
1870
|
addAdminAuditLog(input: {
|
|
1760
1871
|
action: string;
|
|
@@ -2150,6 +2261,10 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
2150
2261
|
profileToken: string;
|
|
2151
2262
|
profileName: string;
|
|
2152
2263
|
}): boolean;
|
|
2264
|
+
listMcpOAuthRestorableAiProfileIds(input: {
|
|
2265
|
+
grantId: string;
|
|
2266
|
+
workspaceId: string;
|
|
2267
|
+
}): string[];
|
|
2153
2268
|
recordMcpOAuthConnectorGrantUsage(input: {
|
|
2154
2269
|
grantId: string;
|
|
2155
2270
|
workspaceId: string;
|
|
@@ -2467,6 +2582,13 @@ export declare class TaskforceCore implements TaskforceSyncCapable {
|
|
|
2467
2582
|
task: any;
|
|
2468
2583
|
archived: boolean;
|
|
2469
2584
|
}>;
|
|
2585
|
+
/**
|
|
2586
|
+
* Full task inventory for authoritative repair without the per-task UI
|
|
2587
|
+
* hydration performed by rowToTask. Repair serializes task roots, comments,
|
|
2588
|
+
* and checklist items separately; task activity, actor decoration, and
|
|
2589
|
+
* resolved attachment bodies are not part of that canonical inventory.
|
|
2590
|
+
*/
|
|
2591
|
+
listTasksForAuthoritativeRepair(workspaceId: string): TaskItem[];
|
|
2470
2592
|
listWorkspaceSyncDeletesSince(workspaceId: string | undefined, cursor: {
|
|
2471
2593
|
watermark: string;
|
|
2472
2594
|
id: string;
|