@taskforcehq/taskforce 0.3.326 → 0.3.328

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.
Files changed (1382) hide show
  1. package/LICENSE.md +68 -0
  2. package/README.md +19 -0
  3. package/dist/Taskforce.module.css +2168 -585
  4. package/dist/TaskforceCore.d.ts +1 -0
  5. package/dist/TaskforceCore.js +65 -22
  6. package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.d.ts +1 -0
  7. package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.js +3 -2
  8. package/dist/annotatedAttachments/commandService.d.ts +68 -0
  9. package/dist/annotatedAttachments/commandService.js +348 -0
  10. package/dist/annotatedAttachments/service.d.ts +2 -0
  11. package/dist/annotatedAttachments/service.js +13 -12
  12. package/dist/cli.js +158 -9
  13. package/dist/cliOpenPort.d.ts +1 -0
  14. package/dist/cliOpenPort.js +4 -0
  15. package/dist/compat/taskforceAgentDefinitionCompat.d.ts +12 -0
  16. package/dist/compat/taskforceAgentDefinitionCompat.js +25 -0
  17. package/dist/compat/workspaceSyncCompat.js +6 -2
  18. package/dist/compat/workspaceSyncV3CombinedCoverageCompat.d.ts +6 -0
  19. package/dist/compat/workspaceSyncV3CombinedCoverageCompat.js +22 -0
  20. package/dist/compat/workspaceSyncV3OperationCompat.d.ts +7 -0
  21. package/dist/compat/workspaceSyncV3OperationCompat.js +30 -0
  22. package/dist/components/activity/EntityActivityTimeline.d.ts +10 -2
  23. package/dist/components/activity/EntityActivityTimeline.js +83 -35
  24. package/dist/components/context/AttachmentPreviewHost.d.ts +6 -0
  25. package/dist/components/context/AttachmentPreviewHost.js +222 -0
  26. package/dist/components/context/ContextAttachmentManager.d.ts +7 -0
  27. package/dist/components/context/ContextAttachmentManager.js +514 -208
  28. package/dist/components/features/AiProfilesModule.d.ts +24 -0
  29. package/dist/components/features/AiProfilesModule.js +744 -0
  30. package/dist/components/features/AnnotatedAttachmentWorkspace.d.ts +4 -1
  31. package/dist/components/features/AnnotatedAttachmentWorkspace.js +351 -79
  32. package/dist/components/features/DocumentGenerateModal.js +23 -5
  33. package/dist/components/features/DocumentIndex.d.ts +19 -1
  34. package/dist/components/features/DocumentIndex.js +104 -15
  35. package/dist/components/features/DocumentViewer.d.ts +9 -1
  36. package/dist/components/features/DocumentViewer.js +721 -100
  37. package/dist/components/features/DocumentWorkspace.d.ts +37 -2
  38. package/dist/components/features/DocumentWorkspace.js +21 -6
  39. package/dist/components/features/TaskSettings.d.ts +6 -27
  40. package/dist/components/features/TaskSettings.js +232 -143
  41. package/dist/components/features/TaskforceAgentsModule.d.ts +36 -0
  42. package/dist/components/features/TaskforceAgentsModule.js +1782 -0
  43. package/dist/components/features/agentBehavior/AgentBehaviorManagerShared.d.ts +94 -0
  44. package/dist/components/features/agentBehavior/AgentBehaviorManagerShared.js +70 -0
  45. package/dist/components/features/agentCapabilities/AgentCapabilitiesPrototype.d.ts +65 -0
  46. package/dist/components/features/agentCapabilities/AgentCapabilitiesPrototype.js +115 -0
  47. package/dist/components/features/agentRoles/RoleManagerPanel.d.ts +4 -0
  48. package/dist/components/features/agentRoles/RoleManagerPanel.js +382 -0
  49. package/dist/components/features/agentSkills/SkillManagerPanel.d.ts +5 -0
  50. package/dist/components/features/agentSkills/SkillManagerPanel.js +355 -0
  51. package/dist/components/features/documentWorkspaceModel.d.ts +16 -4
  52. package/dist/components/features/documentWorkspaceModel.js +30 -5
  53. package/dist/components/features/planning/PlanningArchiveConfirmation.d.ts +9 -0
  54. package/dist/components/features/planning/PlanningArchiveConfirmation.js +19 -0
  55. package/dist/components/features/planning/PlanningCardIdentity.d.ts +12 -0
  56. package/dist/components/features/planning/PlanningCardIdentity.js +44 -0
  57. package/dist/components/features/planning/PlanningEntityDetails.d.ts +36 -0
  58. package/dist/components/features/planning/PlanningEntityDetails.js +131 -0
  59. package/dist/components/features/planning/PlanningEntitySummary.d.ts +46 -0
  60. package/dist/components/features/planning/PlanningEntitySummary.js +98 -0
  61. package/dist/components/features/planning/PlanningLinkPicker.d.ts +11 -0
  62. package/dist/components/features/planning/PlanningLinkPicker.js +28 -0
  63. package/dist/components/features/planning/PlanningModule.d.ts +6 -0
  64. package/dist/components/features/planning/PlanningModule.js +588 -0
  65. package/dist/components/features/planning/PlanningOwnerDropdown.d.ts +27 -0
  66. package/dist/components/features/planning/PlanningOwnerDropdown.js +80 -0
  67. package/dist/components/features/planning/PlanningTaskArrangeControl.d.ts +5 -0
  68. package/dist/components/features/planning/PlanningTaskArrangeControl.js +11 -0
  69. package/dist/components/features/planning/PlanningTaskCard.d.ts +20 -0
  70. package/dist/components/features/planning/PlanningTaskCard.js +26 -0
  71. package/dist/components/features/planning/PlanningTaskOrderList.d.ts +10 -0
  72. package/dist/components/features/planning/PlanningTaskOrderList.js +52 -0
  73. package/dist/components/features/planning/PlanningUnlinkConfirmation.d.ts +15 -0
  74. package/dist/components/features/planning/PlanningUnlinkConfirmation.js +7 -0
  75. package/dist/components/features/planning/PlanningVisualIdentity.d.ts +14 -0
  76. package/dist/components/features/planning/PlanningVisualIdentity.js +106 -0
  77. package/dist/components/features/planning/planningCreateIntent.d.ts +10 -0
  78. package/dist/components/features/planning/planningCreateIntent.js +16 -0
  79. package/dist/components/features/planning/planningNavigator.d.ts +33 -0
  80. package/dist/components/features/planning/planningNavigator.js +96 -0
  81. package/dist/components/features/planning/planningTaskArrangement.d.ts +18 -0
  82. package/dist/components/features/planning/planningTaskArrangement.js +106 -0
  83. package/dist/components/features/planning/planningWorkspaceModel.d.ts +132 -0
  84. package/dist/components/features/planning/planningWorkspaceModel.js +5 -0
  85. package/dist/components/features/settings/CategoryManager.js +2 -2
  86. package/dist/components/features/settings/TaxonomyEditor.js +1 -1
  87. package/dist/components/features/settings/TaxonomyManager.js +1 -1
  88. package/dist/components/features/settings/TypeManager.js +1 -1
  89. package/dist/components/features/taskforceAgentAssignments/AgentBehaviorAssignments.d.ts +10 -0
  90. package/dist/components/features/taskforceAgentAssignments/AgentBehaviorAssignments.js +175 -0
  91. package/dist/components/features/taskforceAgentAssignments/agentBehaviorCatalogApi.d.ts +27 -0
  92. package/dist/components/features/taskforceAgentAssignments/agentBehaviorCatalogApi.js +24 -0
  93. package/dist/components/features/taskforceAgentEditorModel.d.ts +109 -0
  94. package/dist/components/features/taskforceAgentEditorModel.js +145 -0
  95. package/dist/components/features/useDocumentWorkspaceController.d.ts +20 -1
  96. package/dist/components/features/useDocumentWorkspaceController.js +106 -21
  97. package/dist/components/features/workflowManager/WorkflowManagerModule.d.ts +11 -0
  98. package/dist/components/features/workflowManager/WorkflowManagerModule.js +313 -0
  99. package/dist/components/features/workflowManager/WorkflowPublishDialog.d.ts +11 -0
  100. package/dist/components/features/workflowManager/WorkflowPublishDialog.js +8 -0
  101. package/dist/components/features/workflowManager/types.d.ts +74 -0
  102. package/dist/components/features/workflowManager/types.js +1 -0
  103. package/dist/components/features/workflowManager/useWorkflowManager.d.ts +30 -0
  104. package/dist/components/features/workflowManager/useWorkflowManager.js +213 -0
  105. package/dist/components/features/workflowManager/workflowManagerApi.d.ts +52 -0
  106. package/dist/components/features/workflowManager/workflowManagerApi.js +142 -0
  107. package/dist/components/task/TaskActionHeader.d.ts +7 -3
  108. package/dist/components/task/TaskActionHeader.js +46 -53
  109. package/dist/components/task/TaskCard.d.ts +10 -2
  110. package/dist/components/task/TaskCard.js +138 -56
  111. package/dist/components/task/TaskContextUpload.d.ts +4 -0
  112. package/dist/components/task/TaskContextUpload.js +3 -2
  113. package/dist/components/task/TaskForm.d.ts +16 -17
  114. package/dist/components/task/TaskForm.js +569 -199
  115. package/dist/components/task/TaskImageReviews.d.ts +8 -0
  116. package/dist/components/task/TaskImageReviews.js +47 -0
  117. package/dist/components/task/TaskKanban.d.ts +9 -10
  118. package/dist/components/task/TaskKanban.js +70 -18
  119. package/dist/components/task/TaskList.d.ts +9 -8
  120. package/dist/components/task/TaskList.js +46 -32
  121. package/dist/components/task/TaskReferenceBadge.d.ts +2 -1
  122. package/dist/components/task/TaskReferenceBadge.js +3 -2
  123. package/dist/components/task/TaskStatusActions.d.ts +3 -1
  124. package/dist/components/task/TaskStatusActions.js +27 -7
  125. package/dist/components/task/TaskWorkflowAssignmentField.d.ts +18 -0
  126. package/dist/components/task/TaskWorkflowAssignmentField.js +362 -0
  127. package/dist/components/task/TaskWorkstreamPicker.d.ts +8 -0
  128. package/dist/components/task/TaskWorkstreamPicker.js +25 -0
  129. package/dist/components/task/TrashRestoreControls.d.ts +18 -0
  130. package/dist/components/task/TrashRestoreControls.js +71 -0
  131. package/dist/components/ui/AiIdentityRosterCard.d.ts +20 -0
  132. package/dist/components/ui/AiIdentityRosterCard.js +5 -0
  133. package/dist/components/ui/AssetTraySortControl.d.ts +10 -0
  134. package/dist/components/ui/AssetTraySortControl.js +38 -0
  135. package/dist/components/ui/AssigneeIdentity.d.ts +12 -0
  136. package/dist/components/ui/AssigneeIdentity.js +41 -0
  137. package/dist/components/ui/DiscardChangesDialog.d.ts +10 -0
  138. package/dist/components/ui/DiscardChangesDialog.js +7 -0
  139. package/dist/components/ui/DisclosureSectionHeader.d.ts +4 -1
  140. package/dist/components/ui/DisclosureSectionHeader.js +2 -2
  141. package/dist/components/ui/DocumentTypeIcon.d.ts +7 -0
  142. package/dist/components/ui/DocumentTypeIcon.js +8 -0
  143. package/dist/components/ui/EditableAvatarButton.d.ts +6 -1
  144. package/dist/components/ui/EditableAvatarButton.js +6 -5
  145. package/dist/components/ui/HierarchyActionBadge.d.ts +2 -1
  146. package/dist/components/ui/HierarchyActionBadge.js +2 -2
  147. package/dist/components/ui/Markdown.d.ts +13 -3
  148. package/dist/components/ui/Markdown.fixture.d.ts +1 -0
  149. package/dist/components/ui/Markdown.fixture.js +23 -0
  150. package/dist/components/ui/Markdown.js +158 -68
  151. package/dist/components/ui/Modal.d.ts +3 -1
  152. package/dist/components/ui/Modal.js +85 -19
  153. package/dist/components/ui/MultiSelectFilter.d.ts +9 -2
  154. package/dist/components/ui/MultiSelectFilter.js +26 -5
  155. package/dist/components/ui/ReferenceBadgeButton.js +2 -3
  156. package/dist/components/ui/TaxonomyDropdown.d.ts +18 -1
  157. package/dist/components/ui/TaxonomyDropdown.js +177 -59
  158. package/dist/components/ui/TopNoticeLayer.d.ts +2 -1
  159. package/dist/components/ui/TopNoticeLayer.js +5 -2
  160. package/dist/components/ui/useFallbackImageUrl.d.ts +4 -0
  161. package/dist/components/ui/useFallbackImageUrl.js +20 -0
  162. package/dist/components/views/AppShellHeader.js +2 -2
  163. package/dist/components/views/StandaloneLayout.d.ts +1 -0
  164. package/dist/components/views/StandaloneLayout.js +1717 -600
  165. package/dist/components/views/WidgetView.d.ts +1 -0
  166. package/dist/components/views/WidgetView.js +99 -31
  167. package/dist/components/views/chrome/WorkspaceChromeSections.d.ts +4 -2
  168. package/dist/components/views/chrome/WorkspaceChromeSections.js +3 -6
  169. package/dist/components/views/chrome/workspaceChrome.d.ts +5 -8
  170. package/dist/components/views/chrome/workspaceChrome.js +62 -27
  171. package/dist/components/views/panels/FilterToolbar.d.ts +4 -3
  172. package/dist/components/views/panels/FilterToolbar.js +8 -5
  173. package/dist/components/views/panels/FilterToolbarControls.d.ts +11 -2
  174. package/dist/components/views/panels/FilterToolbarControls.js +35 -20
  175. package/dist/components/views/panels/PlanningDrawer.d.ts +66 -49
  176. package/dist/components/views/panels/PlanningDrawer.js +983 -314
  177. package/dist/components/views/planningScope.js +7 -1
  178. package/dist/components/views/standalone/modals/AccountSettingsModal.d.ts +62 -0
  179. package/dist/components/views/standalone/modals/AccountSettingsModal.js +197 -0
  180. package/dist/components/views/standalone/modals/AvatarImageManagerModal.d.ts +7 -2
  181. package/dist/components/views/standalone/modals/AvatarImageManagerModal.js +56 -9
  182. package/dist/components/views/standalone/modals/HelpModal.d.ts +1 -2
  183. package/dist/components/views/standalone/modals/HelpModal.js +3 -4
  184. package/dist/components/views/standalone/modals/SyncStatusModal.d.ts +8 -9
  185. package/dist/components/views/standalone/modals/SyncStatusModal.js +85 -25
  186. package/dist/components/views/standalone/modals/TeamManagementModal.js +1 -1
  187. package/dist/config/applicationBaseUrl.d.ts +2 -0
  188. package/dist/config/applicationBaseUrl.js +23 -0
  189. package/dist/config/envSchema.d.ts +1 -1
  190. package/dist/config/envSchema.js +167 -5
  191. package/dist/config/localServiceCloudTarget.d.ts +10 -0
  192. package/dist/config/localServiceCloudTarget.js +76 -0
  193. package/dist/core/AdminAuditRetentionService.d.ts +43 -0
  194. package/dist/core/AdminAuditRetentionService.js +126 -0
  195. package/dist/core/AiProfileService.d.ts +35 -0
  196. package/dist/core/AiProfileService.js +511 -251
  197. package/dist/core/AttachmentLinkService.d.ts +10 -2
  198. package/dist/core/AttachmentLinkService.js +50 -15
  199. package/dist/core/AuthIdentityService.d.ts +6 -0
  200. package/dist/core/AuthIdentityService.js +38 -0
  201. package/dist/core/AuthTokenService.d.ts +1 -0
  202. package/dist/core/AuthTokenService.js +13 -0
  203. package/dist/core/DeletedTaskLifecycleService.d.ts +8 -2
  204. package/dist/core/DeletedTaskLifecycleService.js +145 -38
  205. package/dist/core/GlobalSettingsService.d.ts +3 -1
  206. package/dist/core/GlobalSettingsService.js +30 -4
  207. package/dist/core/InitiativeDurableMutationService.d.ts +89 -0
  208. package/dist/core/InitiativeDurableMutationService.js +187 -0
  209. package/dist/core/McpTokenService.d.ts +5 -0
  210. package/dist/core/McpTokenService.js +91 -13
  211. package/dist/core/PlanningCommandPreparationService.d.ts +60 -0
  212. package/dist/core/PlanningCommandPreparationService.js +149 -0
  213. package/dist/core/ScheduleCommandService.d.ts +76 -0
  214. package/dist/core/ScheduleCommandService.js +165 -0
  215. package/dist/core/SyncReconciliationService.d.ts +29 -6
  216. package/dist/core/SyncReconciliationService.js +256 -84
  217. package/dist/core/TaskActivityService.d.ts +22 -2
  218. package/dist/core/TaskActivityService.js +177 -29
  219. package/dist/core/TaskAttachmentLinksDurableMutationService.d.ts +36 -0
  220. package/dist/core/TaskAttachmentLinksDurableMutationService.js +240 -0
  221. package/dist/core/TaskChecklistCommandService.d.ts +50 -0
  222. package/dist/core/TaskChecklistCommandService.js +111 -0
  223. package/dist/core/TaskDurableCreateMutationService.d.ts +38 -0
  224. package/dist/core/TaskDurableCreateMutationService.js +85 -0
  225. package/dist/core/TaskDurableDeleteMutationService.d.ts +47 -0
  226. package/dist/core/TaskDurableDeleteMutationService.js +54 -0
  227. package/dist/core/TaskDurableLifecycleMutationService.d.ts +38 -0
  228. package/dist/core/TaskDurableLifecycleMutationService.js +42 -0
  229. package/dist/core/TaskDurableRelationshipMutationService.d.ts +58 -0
  230. package/dist/core/TaskDurableRelationshipMutationService.js +66 -0
  231. package/dist/core/TaskDurableRestoreMutationService.d.ts +31 -0
  232. package/dist/core/TaskDurableRestoreMutationService.js +33 -0
  233. package/dist/core/TaskDurableStatusMutationService.d.ts +74 -0
  234. package/dist/core/TaskDurableStatusMutationService.js +247 -0
  235. package/dist/core/TaskDurableSyncMutationService.d.ts +34 -0
  236. package/dist/core/TaskDurableSyncMutationService.js +70 -0
  237. package/dist/core/TaskDurableWorkflowMutationService.d.ts +48 -0
  238. package/dist/core/TaskDurableWorkflowMutationService.js +59 -0
  239. package/dist/core/TaskLifecycleCommandService.d.ts +101 -0
  240. package/dist/core/TaskLifecycleCommandService.js +161 -0
  241. package/dist/core/TaskRootCommandPreparationService.d.ts +35 -0
  242. package/dist/core/TaskRootCommandPreparationService.js +103 -0
  243. package/dist/core/Taskforce.d.ts +542 -60
  244. package/dist/core/Taskforce.js +4220 -905
  245. package/dist/core/WorkflowAssignmentService.d.ts +40 -0
  246. package/dist/core/WorkflowAssignmentService.js +158 -0
  247. package/dist/core/WorkflowExecutionService.d.ts +69 -0
  248. package/dist/core/WorkflowExecutionService.js +342 -0
  249. package/dist/core/WorkflowTaskActivationService.d.ts +32 -0
  250. package/dist/core/WorkflowTaskActivationService.js +63 -0
  251. package/dist/core/WorkflowTemplateService.d.ts +64 -0
  252. package/dist/core/WorkflowTemplateService.js +223 -0
  253. package/dist/core/WorkspaceLifecycleService.d.ts +1 -0
  254. package/dist/core/WorkspaceLifecycleService.js +18 -0
  255. package/dist/core/WorkstreamDurableMutationService.d.ts +90 -0
  256. package/dist/core/WorkstreamDurableMutationService.js +184 -0
  257. package/dist/core/planningReferencePolicy.d.ts +14 -0
  258. package/dist/core/planningReferencePolicy.js +53 -0
  259. package/dist/core/taskReferencePolicy.js +24 -3
  260. package/dist/core/types.d.ts +12 -11
  261. package/dist/documentReviews/DocumentReviewCommentStore.d.ts +33 -2
  262. package/dist/documentReviews/DocumentReviewCommentStore.js +125 -8
  263. package/dist/documentReviews/commandService.d.ts +51 -0
  264. package/dist/documentReviews/commandService.js +63 -0
  265. package/dist/documentReviews/service.d.ts +24 -1
  266. package/dist/documentReviews/service.js +354 -49
  267. package/dist/documentReviews/types.d.ts +18 -1
  268. package/dist/hooks/sync/bootstrap.d.ts +3 -7
  269. package/dist/hooks/sync/bootstrap.js +6 -14
  270. package/dist/hooks/sync/browserSyncAuthority.d.ts +21 -0
  271. package/dist/hooks/sync/browserSyncAuthority.js +70 -0
  272. package/dist/hooks/sync/browserSyncRemoteServices.d.ts +29 -0
  273. package/dist/hooks/sync/browserSyncRemoteServices.js +58 -0
  274. package/dist/hooks/sync/controlPlane.d.ts +1 -37
  275. package/dist/hooks/sync/controlPlane.js +1 -78
  276. package/dist/hooks/sync/lifecyclePolicy.d.ts +1 -45
  277. package/dist/hooks/sync/lifecyclePolicy.js +1 -93
  278. package/dist/hooks/sync/orchestratorShared.d.ts +9 -3
  279. package/dist/hooks/sync/orchestratorShared.js +70 -96
  280. package/dist/hooks/sync/pullLifecycle.d.ts +1 -31
  281. package/dist/hooks/sync/pullLifecycle.js +1 -24
  282. package/dist/hooks/sync/realtime.d.ts +4 -1
  283. package/dist/hooks/sync/realtime.js +103 -3
  284. package/dist/hooks/sync/recovery.d.ts +1 -84
  285. package/dist/hooks/sync/recovery.js +1 -245
  286. package/dist/hooks/sync/transfers.d.ts +8 -129
  287. package/dist/hooks/sync/transfers.js +19 -581
  288. package/dist/hooks/sync/useDataVersionRefresh.d.ts +6 -1
  289. package/dist/hooks/sync/useDataVersionRefresh.js +127 -12
  290. package/dist/hooks/sync/useDurableLocalOutboxDrain.d.ts +14 -0
  291. package/dist/hooks/sync/useDurableLocalOutboxDrain.js +208 -0
  292. package/dist/hooks/sync/useDurableTaskCreateMutation.d.ts +15 -0
  293. package/dist/hooks/sync/useDurableTaskCreateMutation.js +152 -0
  294. package/dist/hooks/sync/useDurableTaskDeleteMutation.d.ts +11 -0
  295. package/dist/hooks/sync/useDurableTaskDeleteMutation.js +21 -0
  296. package/dist/hooks/sync/useDurableTaskLifecycleMutation.d.ts +12 -0
  297. package/dist/hooks/sync/useDurableTaskLifecycleMutation.js +22 -0
  298. package/dist/hooks/sync/useDurableTaskMetadataMutation.d.ts +14 -0
  299. package/dist/hooks/sync/useDurableTaskMetadataMutation.js +24 -0
  300. package/dist/hooks/sync/useDurableTaskRestoreMutation.d.ts +12 -0
  301. package/dist/hooks/sync/useDurableTaskRestoreMutation.js +24 -0
  302. package/dist/hooks/sync/useDurableTaskStatusMutation.d.ts +18 -0
  303. package/dist/hooks/sync/useDurableTaskStatusMutation.js +23 -0
  304. package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.d.ts +23 -0
  305. package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.js +414 -0
  306. package/dist/hooks/sync/useSyncStatusActions.d.ts +2 -1
  307. package/dist/hooks/sync/useSyncStatusActions.js +8 -3
  308. package/dist/hooks/tasks/taskHttpMutation.d.ts +25 -0
  309. package/dist/hooks/tasks/taskHttpMutation.js +134 -0
  310. package/dist/hooks/tasks/useCurrentTaskRelations.d.ts +6 -1
  311. package/dist/hooks/tasks/useCurrentTaskRelations.js +32 -6
  312. package/dist/hooks/tasks/useTaskEditorNavigation.d.ts +4 -3
  313. package/dist/hooks/tasks/useTaskEditorNavigation.js +9 -13
  314. package/dist/hooks/tasks/useTaskFormActions.d.ts +20 -2
  315. package/dist/hooks/tasks/useTaskFormActions.js +339 -59
  316. package/dist/hooks/tasks/useTaskReferenceContract.d.ts +5 -0
  317. package/dist/hooks/tasks/useTaskReferenceContract.js +17 -0
  318. package/dist/hooks/tasks/useTaskRelationships.d.ts +1 -3
  319. package/dist/hooks/tasks/useTaskRelationships.js +5 -25
  320. package/dist/hooks/tasks/useTrashSelection.d.ts +12 -0
  321. package/dist/hooks/tasks/useTrashSelection.js +49 -0
  322. package/dist/hooks/ui/useInitiativeTemplates.d.ts +24 -0
  323. package/dist/hooks/ui/useInitiativeTemplates.js +22 -0
  324. package/dist/hooks/ui/useSettingsModel.d.ts +5 -29
  325. package/dist/hooks/ui/useSettingsModel.js +31 -15
  326. package/dist/hooks/ui/useSettingsPersistence.d.ts +0 -1
  327. package/dist/hooks/ui/useSettingsPersistence.js +4 -8
  328. package/dist/hooks/ui/useSettingsTaxonomyManagement.js +31 -0
  329. package/dist/hooks/useFilterSort.d.ts +2 -2
  330. package/dist/hooks/useFilterSort.js +19 -15
  331. package/dist/hooks/useRealtimeSync.d.ts +10 -0
  332. package/dist/hooks/useRealtimeSync.js +57 -4
  333. package/dist/hooks/useSyncOrchestrator.d.ts +32 -1
  334. package/dist/hooks/useSyncOrchestrator.js +963 -287
  335. package/dist/hooks/useTaskData.d.ts +11 -2
  336. package/dist/hooks/useTaskData.js +59 -26
  337. package/dist/hooks/useTaskMutations.d.ts +42 -5
  338. package/dist/hooks/useTaskMutations.js +750 -125
  339. package/dist/hooks/useTaskforce.d.ts +79 -74
  340. package/dist/hooks/useTaskforce.js +1205 -450
  341. package/dist/hooks/useUiNotice.d.ts +5 -1
  342. package/dist/hooks/useUiNotice.js +13 -2
  343. package/dist/hooks/useWorkspaceSyncController.d.ts +9 -0
  344. package/dist/hooks/useWorkspaceSyncController.js +159 -17
  345. package/dist/hooks/workspace/usePersistedAppUiState.d.ts +74 -0
  346. package/dist/hooks/workspace/usePersistedAppUiState.js +325 -0
  347. package/dist/hooks/workspace/usePersistedLayoutUiState.d.ts +76 -0
  348. package/dist/hooks/workspace/usePersistedLayoutUiState.js +479 -0
  349. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.d.ts +2 -7
  350. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +42 -31
  351. package/dist/hooks/workspace/workspaceLocalState.d.ts +17 -6
  352. package/dist/hooks/workspace/workspaceLocalState.js +175 -5
  353. package/dist/hooks/workstreams/workstreamHttpMutation.d.ts +23 -0
  354. package/dist/hooks/workstreams/workstreamHttpMutation.js +134 -0
  355. package/dist/localization/locales/en-US.d.ts +3 -3
  356. package/dist/localization/locales/en-US.js +3 -3
  357. package/dist/localization/locales/es-419.js +3 -3
  358. package/dist/localization/locales/pt-BR.js +3 -3
  359. package/dist/mcp/adminWorkspaceRegistrar.js +2 -30
  360. package/dist/mcp/aiProfileBootstrap.d.ts +3 -0
  361. package/dist/mcp/aiProfileBootstrap.js +4 -0
  362. package/dist/mcp/canonicalAssetHelpers.d.ts +29 -4
  363. package/dist/mcp/canonicalAssetHelpers.js +138 -35
  364. package/dist/mcp/clientIntegrations.d.ts +4 -2
  365. package/dist/mcp/clientIntegrations.js +58 -57
  366. package/dist/mcp/clientRegistry.d.ts +30 -0
  367. package/dist/mcp/clientRegistry.js +134 -0
  368. package/dist/mcp/collaborationRegistrar.js +31 -15
  369. package/dist/mcp/documentAssetRegistrar.js +231 -56
  370. package/dist/mcp/documentContentCommand.d.ts +94 -0
  371. package/dist/mcp/documentContentCommand.js +226 -0
  372. package/dist/mcp/documentHelpers.d.ts +13 -65
  373. package/dist/mcp/documentHelpers.js +49 -62
  374. package/dist/mcp/durableTaskMutationRouter.d.ts +65 -0
  375. package/dist/mcp/durableTaskMutationRouter.js +217 -0
  376. package/dist/mcp/durableTaskRelationshipMutationRouter.d.ts +38 -0
  377. package/dist/mcp/durableTaskRelationshipMutationRouter.js +168 -0
  378. package/dist/mcp/durableTaskRootMutationRouter.d.ts +64 -0
  379. package/dist/mcp/durableTaskRootMutationRouter.js +226 -0
  380. package/dist/mcp/gitWorktreeRoots.d.ts +2 -0
  381. package/dist/mcp/gitWorktreeRoots.js +19 -0
  382. package/dist/mcp/legacyServer.d.ts +1 -0
  383. package/dist/mcp/legacyServer.js +42 -0
  384. package/dist/mcp/localCliHealth.d.ts +56 -0
  385. package/dist/mcp/localCliHealth.js +170 -0
  386. package/dist/mcp/localServiceProxy.d.ts +23 -0
  387. package/dist/mcp/localServiceProxy.js +258 -0
  388. package/dist/mcp/mcpInputValidator.d.ts +17 -0
  389. package/dist/mcp/mcpInputValidator.js +58 -0
  390. package/dist/mcp/planningAttachmentCommandAdapter.d.ts +127 -0
  391. package/dist/mcp/planningAttachmentCommandAdapter.js +188 -0
  392. package/dist/mcp/programScaffoldCommandAdapter.d.ts +6 -0
  393. package/dist/mcp/programScaffoldCommandAdapter.js +39 -0
  394. package/dist/mcp/proxyServer.d.ts +1 -0
  395. package/dist/mcp/proxyServer.js +2 -0
  396. package/dist/mcp/runtime.d.ts +98 -1
  397. package/dist/mcp/runtime.js +4682 -1927
  398. package/dist/mcp/server.js +29 -2
  399. package/dist/mcp/sharedLocalServiceGateD.d.ts +115 -0
  400. package/dist/mcp/sharedLocalServiceGateD.js +344 -0
  401. package/dist/mcp/stdioLifecycle.d.ts +22 -0
  402. package/dist/mcp/stdioLifecycle.js +54 -0
  403. package/dist/mcp/taskAttachmentCommandAdapter.d.ts +192 -0
  404. package/dist/mcp/taskAttachmentCommandAdapter.js +470 -0
  405. package/dist/mcp/taskAttachmentHelpers.d.ts +8 -6
  406. package/dist/mcp/taskAttachmentHelpers.js +74 -2
  407. package/dist/mcp/taskAttachmentTypes.d.ts +26 -5
  408. package/dist/mcp/taskPlanCommand.d.ts +64 -0
  409. package/dist/mcp/taskPlanCommand.js +98 -0
  410. package/dist/mcp/taskPlanningRegistrar.js +240 -44
  411. package/dist/mcp/toolCallCompatibility.d.ts +6 -0
  412. package/dist/mcp/toolCallCompatibility.js +16 -0
  413. package/dist/mcp/toolCatalog.d.ts +3 -1
  414. package/dist/mcp/toolProfiles.d.ts +12 -1
  415. package/dist/mcp/toolProfiles.js +43 -0
  416. package/dist/mcp/toolRegistry.d.ts +17 -2
  417. package/dist/mcp/toolRegistry.js +26 -11
  418. package/dist/mcp/workflowExecutionRegistrar.d.ts +2 -0
  419. package/dist/mcp/workflowExecutionRegistrar.js +51 -0
  420. package/dist/migrations/taskSchemaMigrations.d.ts +35 -0
  421. package/dist/migrations/taskSchemaMigrations.js +1892 -64
  422. package/dist/migrations/taskUpdatedAtSyncDriftMigration.d.ts +20 -0
  423. package/dist/migrations/taskUpdatedAtSyncDriftMigration.js +153 -0
  424. package/dist/migrations/taskforceAgentDefinitionMigration.d.ts +26 -0
  425. package/dist/migrations/taskforceAgentDefinitionMigration.js +116 -0
  426. package/dist/plugins/vite.js +48 -17
  427. package/dist/public/Taskforce_Van.webp +0 -0
  428. package/dist/runtime/appGateDefinitions.d.ts +16 -10
  429. package/dist/runtime/appGateDefinitions.js +16 -10
  430. package/dist/runtime/appGates.d.ts +5 -4
  431. package/dist/runtime/appGates.js +4 -3
  432. package/dist/server/aiProfileAvatarAssets.d.ts +11 -8
  433. package/dist/server/aiProfileAvatarAssets.js +159 -70
  434. package/dist/server/appAccess.d.ts +12 -0
  435. package/dist/server/appAccess.js +21 -0
  436. package/dist/server/auth.js +15 -1
  437. package/dist/server/authorizedWorkspaceAccess.d.ts +12 -0
  438. package/dist/server/authorizedWorkspaceAccess.js +40 -0
  439. package/dist/server/cloudCollectionRead.d.ts +25 -0
  440. package/dist/server/cloudCollectionRead.js +120 -0
  441. package/dist/server/cloudCollectionReadPool.d.ts +52 -0
  442. package/dist/server/cloudCollectionReadPool.js +140 -0
  443. package/dist/server/cloudCollectionReadWorker.d.ts +1 -0
  444. package/dist/server/cloudCollectionReadWorker.js +36 -0
  445. package/dist/server/cors.d.ts +2 -1
  446. package/dist/server/cors.js +45 -8
  447. package/dist/server/email.d.ts +3 -1
  448. package/dist/server/email.js +46 -8
  449. package/dist/server/index.d.ts +27 -12
  450. package/dist/server/index.js +395 -86
  451. package/dist/server/localDataOwnerPermit.d.ts +18 -0
  452. package/dist/server/localDataOwnerPermit.js +58 -0
  453. package/dist/server/localDatabaseIdentity.d.ts +14 -0
  454. package/dist/server/localDatabaseIdentity.js +69 -0
  455. package/dist/server/localRealtimeFileInvalidation.d.ts +1 -0
  456. package/dist/server/localRealtimeFileInvalidation.js +7 -0
  457. package/dist/server/localServiceLease.d.ts +65 -0
  458. package/dist/server/localServiceLease.js +485 -0
  459. package/dist/server/localServiceOwnershipBootstrap.d.ts +19 -0
  460. package/dist/server/localServiceOwnershipBootstrap.js +84 -0
  461. package/dist/server/localServiceSessions.d.ts +87 -0
  462. package/dist/server/localServiceSessions.js +309 -0
  463. package/dist/server/localServiceWindowsAcl.d.ts +8 -0
  464. package/dist/server/localServiceWindowsAcl.js +60 -0
  465. package/dist/server/localSyncProcessLockBootstrap.d.ts +3 -0
  466. package/dist/server/localSyncProcessLockBootstrap.js +16 -0
  467. package/dist/server/localWorkspaceSyncServerComposition.d.ts +59 -0
  468. package/dist/server/localWorkspaceSyncServerComposition.js +91 -0
  469. package/dist/server/localWorkspaceSyncServerRuntime.d.ts +119 -0
  470. package/dist/server/localWorkspaceSyncServerRuntime.js +1163 -0
  471. package/dist/server/rateLimit.d.ts +1 -0
  472. package/dist/server/rateLimit.js +16 -0
  473. package/dist/server/routes/admin.d.ts +2 -4
  474. package/dist/server/routes/admin.js +199 -337
  475. package/dist/server/routes/agentRoles.d.ts +13 -0
  476. package/dist/server/routes/agentRoles.js +273 -0
  477. package/dist/server/routes/agentSkills.d.ts +16 -0
  478. package/dist/server/routes/agentSkills.js +291 -0
  479. package/dist/server/routes/agents.d.ts +49 -0
  480. package/dist/server/routes/agents.js +1455 -0
  481. package/dist/server/routes/annotatedAttachments.js +46 -9
  482. package/dist/server/routes/assetAccess.d.ts +36 -0
  483. package/dist/server/routes/assetAccess.js +93 -0
  484. package/dist/server/routes/auth.d.ts +4 -3
  485. package/dist/server/routes/auth.js +236 -21
  486. package/dist/server/routes/authSupport.d.ts +3 -1
  487. package/dist/server/routes/authSupport.js +22 -8
  488. package/dist/server/routes/documentReviews.d.ts +2 -0
  489. package/dist/server/routes/documentReviews.js +155 -15
  490. package/dist/server/routes/documents.d.ts +6 -2
  491. package/dist/server/routes/documents.js +492 -151
  492. package/dist/server/routes/durableTaskHttpRouters.d.ts +167 -0
  493. package/dist/server/routes/durableTaskHttpRouters.js +89 -0
  494. package/dist/server/routes/localMcpHealth.d.ts +11 -0
  495. package/dist/server/routes/localMcpHealth.js +29 -0
  496. package/dist/server/routes/localService.d.ts +13 -0
  497. package/dist/server/routes/localService.js +446 -0
  498. package/dist/server/routes/localUpdate.d.ts +11 -0
  499. package/dist/server/routes/localUpdate.js +154 -0
  500. package/dist/server/routes/primitives.d.ts +29 -0
  501. package/dist/server/routes/primitives.js +18 -0
  502. package/dist/server/routes/resources.d.ts +1 -10
  503. package/dist/server/routes/resources.js +1 -153
  504. package/dist/server/routes/shared.d.ts +55 -2
  505. package/dist/server/routes/shared.js +506 -16
  506. package/dist/server/routes/sync.d.ts +2 -0
  507. package/dist/server/routes/sync.js +206 -272
  508. package/dist/server/routes/syncAuxRoutes.d.ts +3 -1
  509. package/dist/server/routes/syncAuxRoutes.js +9 -4
  510. package/dist/server/routes/syncCoordinatorLocalRoutes.d.ts +6 -0
  511. package/dist/server/routes/syncCoordinatorLocalRoutes.js +867 -0
  512. package/dist/server/routes/syncPullApplyRoutes.d.ts +29 -1
  513. package/dist/server/routes/syncPullApplyRoutes.js +520 -17
  514. package/dist/server/routes/syncPushRoutes.d.ts +33 -4
  515. package/dist/server/routes/syncPushRoutes.js +251 -62
  516. package/dist/server/routes/syncRouteTypes.d.ts +1 -1
  517. package/dist/server/routes/syncSnapshotRoutes.d.ts +15 -7
  518. package/dist/server/routes/syncSnapshotRoutes.js +95 -17
  519. package/dist/server/routes/syncV3DiagnosticsRoutes.d.ts +14 -0
  520. package/dist/server/routes/syncV3DiagnosticsRoutes.js +72 -0
  521. package/dist/server/routes/syncV3FeedRoutes.d.ts +20 -0
  522. package/dist/server/routes/syncV3FeedRoutes.js +464 -0
  523. package/dist/server/routes/syncV3LocalCaptureRoutes.d.ts +37 -0
  524. package/dist/server/routes/syncV3LocalCaptureRoutes.js +915 -0
  525. package/dist/server/routes/syncV3LocalDispatchRoutes.d.ts +17 -0
  526. package/dist/server/routes/syncV3LocalDispatchRoutes.js +280 -0
  527. package/dist/server/routes/syncV3LocalFeedApplyRoutes.d.ts +17 -0
  528. package/dist/server/routes/syncV3LocalFeedApplyRoutes.js +493 -0
  529. package/dist/server/routes/syncV3LocalOwnershipRoutes.d.ts +10 -0
  530. package/dist/server/routes/syncV3LocalOwnershipRoutes.js +51 -0
  531. package/dist/server/routes/syncV3LocalRecoveryRoutes.d.ts +12 -0
  532. package/dist/server/routes/syncV3LocalRecoveryRoutes.js +78 -0
  533. package/dist/server/routes/syncV3OperationRoutes.d.ts +35 -0
  534. package/dist/server/routes/syncV3OperationRoutes.js +1151 -0
  535. package/dist/server/routes/tasks.d.ts +0 -2
  536. package/dist/server/routes/tasks.js +1083 -236
  537. package/dist/server/routes/workflows.d.ts +26 -0
  538. package/dist/server/routes/workflows.js +500 -0
  539. package/dist/server/routes.d.ts +1 -6
  540. package/dist/server/routes.js +179 -342
  541. package/dist/server/smtpTransport.d.ts +11 -3
  542. package/dist/server/smtpTransport.js +9 -2
  543. package/dist/server/start.js +42 -10
  544. package/dist/service/localServiceCli.d.ts +33 -0
  545. package/dist/service/localServiceCli.js +376 -0
  546. package/dist/service/localServiceClientLifecycle.d.ts +25 -0
  547. package/dist/service/localServiceClientLifecycle.js +189 -0
  548. package/dist/service/localServiceOpen.d.ts +17 -0
  549. package/dist/service/localServiceOpen.js +27 -0
  550. package/dist/services/agentRoleResolver.d.ts +4 -0
  551. package/dist/services/agentRoleResolver.js +7 -0
  552. package/dist/services/aiProfileAvatarGenerationService.d.ts +41 -0
  553. package/dist/services/aiProfileAvatarGenerationService.js +158 -0
  554. package/dist/services/avatarImageProvider.d.ts +33 -0
  555. package/dist/services/avatarImageProvider.js +140 -0
  556. package/dist/services/bedrockAnthropicMessagesModelGateway.d.ts +24 -0
  557. package/dist/services/bedrockAnthropicMessagesModelGateway.js +95 -0
  558. package/dist/services/bedrockMantleModelGateway.d.ts +43 -0
  559. package/dist/services/bedrockMantleModelGateway.js +81 -0
  560. package/dist/services/bedrockModelGateway.d.ts +26 -0
  561. package/dist/services/bedrockModelGateway.js +94 -0
  562. package/dist/services/modelGateway.d.ts +82 -0
  563. package/dist/services/modelGateway.js +61 -0
  564. package/dist/services/taskforceAgentAvatarImageProvider.d.ts +8 -0
  565. package/dist/services/taskforceAgentAvatarImageProvider.js +24 -0
  566. package/dist/services/taskforceAgentMcpBridge.d.ts +77 -0
  567. package/dist/services/taskforceAgentMcpBridge.js +527 -0
  568. package/dist/shared/agentRoleDefinition.d.ts +34 -0
  569. package/dist/shared/agentRoleDefinition.js +207 -0
  570. package/dist/shared/aiProfileAvatarEligibility.d.ts +10 -0
  571. package/dist/shared/aiProfileAvatarEligibility.js +27 -0
  572. package/dist/shared/aiProfileColors.d.ts +7 -0
  573. package/dist/shared/aiProfileColors.js +33 -0
  574. package/dist/shared/colorPalette.d.ts +3 -0
  575. package/dist/shared/colorPalette.js +20 -0
  576. package/dist/shared/commentProvenance.d.ts +4 -0
  577. package/dist/shared/commentProvenance.js +6 -0
  578. package/dist/shared/deletedTaskRetention.d.ts +2 -0
  579. package/dist/shared/deletedTaskRetention.js +7 -0
  580. package/dist/shared/passwordPolicy.d.ts +2 -1
  581. package/dist/shared/passwordPolicy.js +9 -0
  582. package/dist/shared/planningIdentity.d.ts +20 -0
  583. package/dist/shared/planningIdentity.js +79 -0
  584. package/dist/shared/taskDeepLinks.d.ts +28 -0
  585. package/dist/shared/taskDeepLinks.js +48 -0
  586. package/dist/shared/taskRestoreDestination.d.ts +2 -0
  587. package/dist/shared/taskRestoreDestination.js +5 -0
  588. package/dist/shared/taskforceAgentDefinition.d.ts +88 -0
  589. package/dist/shared/taskforceAgentDefinition.js +434 -0
  590. package/dist/shared/taskforceAgentExecutionSnapshot.d.ts +50 -0
  591. package/dist/shared/taskforceAgentExecutionSnapshot.js +68 -0
  592. package/dist/shared/taskforceAgentModels.d.ts +56 -0
  593. package/dist/shared/taskforceAgentModels.js +314 -0
  594. package/dist/shared/taskforceAgentRunContext.d.ts +23 -0
  595. package/dist/shared/taskforceAgentRunContext.js +21 -0
  596. package/dist/shared/taskforceAgentRuntimeResolution.d.ts +31 -0
  597. package/dist/shared/taskforceAgentRuntimeResolution.js +72 -0
  598. package/dist/shared/taskforceAgentSkill.d.ts +33 -0
  599. package/dist/shared/taskforceAgentSkill.js +149 -0
  600. package/dist/storage/agentRoleStore.d.ts +91 -0
  601. package/dist/storage/agentRoleStore.js +385 -0
  602. package/dist/storage/databaseAdapter.d.ts +1 -0
  603. package/dist/storage/databaseAdapter.js +7 -1
  604. package/dist/storage/documentIntegrity.d.ts +12 -3
  605. package/dist/storage/documentIntegrity.js +105 -27
  606. package/dist/storage/objectStorageClient.d.ts +10 -4
  607. package/dist/storage/objectStorageClient.js +73 -43
  608. package/dist/storage/postgresAdapter.d.ts +2 -1
  609. package/dist/storage/postgresAdapter.js +42 -6
  610. package/dist/storage/postgresRequestDiagnostics.d.ts +8 -0
  611. package/dist/storage/postgresRequestDiagnostics.js +24 -0
  612. package/dist/storage/postgresWorker.js +65 -1
  613. package/dist/storage/sqliteAdapter.d.ts +1 -1
  614. package/dist/storage/sqliteAdapter.js +7 -1
  615. package/dist/storage/sqliteWalHealth.d.ts +71 -0
  616. package/dist/storage/sqliteWalHealth.js +176 -0
  617. package/dist/storage/taskDataPath.d.ts +1 -0
  618. package/dist/storage/taskDataPath.js +20 -0
  619. package/dist/storage/taskforceAgentConversationStore.d.ts +66 -0
  620. package/dist/storage/taskforceAgentConversationStore.js +264 -0
  621. package/dist/storage/taskforceAgentSkillStore.d.ts +93 -0
  622. package/dist/storage/taskforceAgentSkillStore.js +355 -0
  623. package/dist/storage/taskforceAgentStore.d.ts +105 -0
  624. package/dist/storage/taskforceAgentStore.js +549 -0
  625. package/dist/storage/workflowStore.d.ts +223 -0
  626. package/dist/storage/workflowStore.js +1032 -0
  627. package/dist/storage/workspaceAssetStore.d.ts +102 -0
  628. package/dist/storage/workspaceAssetStore.js +488 -25
  629. package/dist/sync/aiProfileAvatarSyncPaths.d.ts +14 -0
  630. package/dist/sync/aiProfileAvatarSyncPaths.js +56 -0
  631. package/dist/sync/cloudSyncApi.d.ts +329 -0
  632. package/dist/sync/cloudSyncApi.js +574 -1
  633. package/dist/sync/collaborationSyncPayload.d.ts +5 -1
  634. package/dist/sync/collaborationSyncPayload.js +213 -1
  635. package/dist/sync/collaborationSyncState.d.ts +23 -3
  636. package/dist/sync/collaborationSyncState.js +92 -3
  637. package/dist/sync/contentSyncPayload.d.ts +9 -0
  638. package/dist/sync/contentSyncPayload.js +29 -0
  639. package/dist/sync/contentSyncState.d.ts +79 -4
  640. package/dist/sync/contentSyncState.js +1113 -313
  641. package/dist/sync/coordinator/localSyncBrowserApplyPermitContext.d.ts +39 -0
  642. package/dist/sync/coordinator/localSyncBrowserApplyPermitContext.js +234 -0
  643. package/dist/sync/coordinator/localSyncBrowserAuthorityCapability.d.ts +7 -0
  644. package/dist/sync/coordinator/localSyncBrowserAuthorityCapability.js +10 -0
  645. package/dist/sync/coordinator/localSyncCommittedApplyPolicy.d.ts +7 -0
  646. package/dist/sync/coordinator/localSyncCommittedApplyPolicy.js +41 -0
  647. package/dist/sync/coordinator/localSyncCoordinatorBrowserClient.d.ts +178 -0
  648. package/dist/sync/coordinator/localSyncCoordinatorBrowserClient.js +131 -0
  649. package/dist/sync/coordinator/localSyncCoordinatorCommandLifecycle.d.ts +25 -0
  650. package/dist/sync/coordinator/localSyncCoordinatorCommandLifecycle.js +200 -0
  651. package/dist/sync/coordinator/localSyncCoordinatorHost.d.ts +84 -0
  652. package/dist/sync/coordinator/localSyncCoordinatorHost.js +435 -0
  653. package/dist/sync/coordinator/localSyncCoordinatorRouteServices.d.ts +33 -0
  654. package/dist/sync/coordinator/localSyncCoordinatorRouteServices.js +1 -0
  655. package/dist/sync/coordinator/localSyncCoordinatorStore.d.ts +122 -0
  656. package/dist/sync/coordinator/localSyncCoordinatorStore.js +1039 -0
  657. package/dist/sync/coordinator/localSyncCoordinatorTypes.d.ts +82 -0
  658. package/dist/sync/coordinator/localSyncCoordinatorTypes.js +9 -0
  659. package/dist/sync/coordinator/localSyncDispatchTracker.d.ts +15 -0
  660. package/dist/sync/coordinator/localSyncDispatchTracker.js +68 -0
  661. package/dist/sync/coordinator/localSyncExecutionPermitStore.d.ts +216 -0
  662. package/dist/sync/coordinator/localSyncExecutionPermitStore.js +1436 -0
  663. package/dist/sync/coordinator/localSyncExecutionPermitTypes.d.ts +52 -0
  664. package/dist/sync/coordinator/localSyncExecutionPermitTypes.js +8 -0
  665. package/dist/sync/coordinator/localSyncOwnershipDrainBarrier.d.ts +33 -0
  666. package/dist/sync/coordinator/localSyncOwnershipDrainBarrier.js +83 -0
  667. package/dist/sync/coordinator/localSyncPermitTransactionHooks.d.ts +9 -0
  668. package/dist/sync/coordinator/localSyncPermitTransactionHooks.js +27 -0
  669. package/dist/sync/coordinator/localSyncProcessLock.d.ts +12 -0
  670. package/dist/sync/coordinator/localSyncProcessLock.js +212 -0
  671. package/dist/sync/coordinator/localSyncV3DispatchRecoveryReconciler.d.ts +17 -0
  672. package/dist/sync/coordinator/localSyncV3DispatchRecoveryReconciler.js +82 -0
  673. package/dist/sync/coordinator/localWorkspaceSyncRunner.d.ts +134 -0
  674. package/dist/sync/coordinator/localWorkspaceSyncRunner.js +981 -0
  675. package/dist/sync/coordinator/localWorkspaceSyncRunnerState.d.ts +189 -0
  676. package/dist/sync/coordinator/localWorkspaceSyncRunnerState.js +961 -0
  677. package/dist/sync/coordinator/workspaceSyncCloudCredentialValidator.d.ts +19 -0
  678. package/dist/sync/coordinator/workspaceSyncCloudCredentialValidator.js +83 -0
  679. package/dist/sync/coordinator/workspaceSyncCredentialBroker.d.ts +117 -0
  680. package/dist/sync/coordinator/workspaceSyncCredentialBroker.js +323 -0
  681. package/dist/sync/coordinator/workspaceSyncLocalAccessBootstrap.d.ts +11 -0
  682. package/dist/sync/coordinator/workspaceSyncLocalAccessBootstrap.js +51 -0
  683. package/dist/sync/coordinator/workspaceSyncTransportGateway.d.ts +139 -0
  684. package/dist/sync/coordinator/workspaceSyncTransportGateway.js +740 -0
  685. package/dist/sync/engine/localWorkspaceContentManifestService.d.ts +21 -0
  686. package/dist/sync/engine/localWorkspaceContentManifestService.js +44 -0
  687. package/dist/sync/engine/workspaceSyncAtomicLocalPublisher.d.ts +36 -0
  688. package/dist/sync/engine/workspaceSyncAtomicLocalPublisher.js +203 -0
  689. package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.d.ts +21 -0
  690. package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.js +13 -0
  691. package/dist/sync/engine/workspaceSyncContentPullObligationStore.d.ts +65 -0
  692. package/dist/sync/engine/workspaceSyncContentPullObligationStore.js +160 -0
  693. package/dist/sync/engine/workspaceSyncContentVersionStore.d.ts +216 -0
  694. package/dist/sync/engine/workspaceSyncContentVersionStore.js +1068 -0
  695. package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.d.ts +28 -0
  696. package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.js +543 -0
  697. package/dist/sync/engine/workspaceSyncEngineContracts.d.ts +78 -0
  698. package/dist/sync/engine/workspaceSyncEngineContracts.js +1 -0
  699. package/dist/sync/engine/workspaceSyncEngineControlPlane.d.ts +37 -0
  700. package/dist/sync/engine/workspaceSyncEngineControlPlane.js +79 -0
  701. package/dist/sync/engine/workspaceSyncEngineIdentity.d.ts +1 -0
  702. package/dist/sync/engine/workspaceSyncEngineIdentity.js +4 -0
  703. package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.d.ts +68 -0
  704. package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.js +180 -0
  705. package/dist/sync/engine/workspaceSyncEngineLocalApply.d.ts +72 -0
  706. package/dist/sync/engine/workspaceSyncEngineLocalApply.js +132 -0
  707. package/dist/sync/engine/workspaceSyncEngineLocalServices.d.ts +70 -0
  708. package/dist/sync/engine/workspaceSyncEngineLocalServices.js +25 -0
  709. package/dist/sync/engine/workspaceSyncEngineParity.d.ts +8 -0
  710. package/dist/sync/engine/workspaceSyncEngineParity.js +7 -0
  711. package/dist/sync/engine/workspaceSyncEnginePullPolicy.d.ts +32 -0
  712. package/dist/sync/engine/workspaceSyncEnginePullPolicy.js +27 -0
  713. package/dist/sync/engine/workspaceSyncEnginePushCompletion.d.ts +20 -0
  714. package/dist/sync/engine/workspaceSyncEnginePushCompletion.js +87 -0
  715. package/dist/sync/engine/workspaceSyncEngineRecovery.d.ts +56 -0
  716. package/dist/sync/engine/workspaceSyncEngineRecovery.js +288 -0
  717. package/dist/sync/engine/workspaceSyncEngineRemoteServices.d.ts +109 -0
  718. package/dist/sync/engine/workspaceSyncEngineRemoteServices.js +21 -0
  719. package/dist/sync/engine/workspaceSyncEngineRuntime.d.ts +61 -0
  720. package/dist/sync/engine/workspaceSyncEngineRuntime.js +59 -0
  721. package/dist/sync/engine/workspaceSyncEngineServerApplyBoundary.d.ts +28 -0
  722. package/dist/sync/engine/workspaceSyncEngineServerApplyBoundary.js +86 -0
  723. package/dist/sync/engine/workspaceSyncEngineServerLocalServices.d.ts +73 -0
  724. package/dist/sync/engine/workspaceSyncEngineServerLocalServices.js +452 -0
  725. package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.d.ts +23 -0
  726. package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.js +466 -0
  727. package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.d.ts +125 -0
  728. package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.js +1147 -0
  729. package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.d.ts +63 -0
  730. package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.js +276 -0
  731. package/dist/sync/engine/workspaceSyncEngineTransferCompletion.d.ts +20 -0
  732. package/dist/sync/engine/workspaceSyncEngineTransferCompletion.js +37 -0
  733. package/dist/sync/engine/workspaceSyncEngineTransferTypes.d.ts +7 -0
  734. package/dist/sync/engine/workspaceSyncEngineTransferTypes.js +1 -0
  735. package/dist/sync/engine/workspaceSyncEngineTransfers.d.ts +240 -0
  736. package/dist/sync/engine/workspaceSyncEngineTransfers.js +1184 -0
  737. package/dist/sync/engine/workspaceSyncEngineV3LocalFeedApply.d.ts +39 -0
  738. package/dist/sync/engine/workspaceSyncEngineV3LocalFeedApply.js +39 -0
  739. package/dist/sync/engine/workspaceSyncImmutableContentGcRunner.d.ts +25 -0
  740. package/dist/sync/engine/workspaceSyncImmutableContentGcRunner.js +83 -0
  741. package/dist/sync/engine/workspaceSyncImmutableContentProvider.d.ts +71 -0
  742. package/dist/sync/engine/workspaceSyncImmutableContentProvider.js +209 -0
  743. package/dist/sync/engine/workspaceSyncImmutableContentStager.d.ts +32 -0
  744. package/dist/sync/engine/workspaceSyncImmutableContentStager.js +202 -0
  745. package/dist/sync/engine/workspaceSyncPublishedContentResolver.d.ts +43 -0
  746. package/dist/sync/engine/workspaceSyncPublishedContentResolver.js +142 -0
  747. package/dist/sync/engine/workspaceSyncServerContentRuntime.d.ts +26 -0
  748. package/dist/sync/engine/workspaceSyncServerContentRuntime.js +41 -0
  749. package/dist/sync/engine/workspaceSyncServerDataServices.d.ts +44 -0
  750. package/dist/sync/engine/workspaceSyncServerDataServices.js +143 -0
  751. package/dist/sync/engine/workspaceSyncTransferEvidence.d.ts +39 -0
  752. package/dist/sync/engine/workspaceSyncTransferEvidence.js +45 -0
  753. package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.d.ts +44 -0
  754. package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.js +992 -0
  755. package/dist/sync/engine/workspaceSyncV2PreparedContent.d.ts +82 -0
  756. package/dist/sync/engine/workspaceSyncV2PreparedContent.js +219 -0
  757. package/dist/sync/planningCanonicalFields.d.ts +41 -0
  758. package/dist/sync/planningCanonicalFields.js +211 -0
  759. package/dist/sync/planningSyncPayload.d.ts +5 -1
  760. package/dist/sync/planningSyncPayload.js +88 -4
  761. package/dist/sync/syncApplyHandlers.d.ts +100 -8
  762. package/dist/sync/syncApplyHandlers.js +845 -78
  763. package/dist/sync/syncResourceAdapters.d.ts +10 -0
  764. package/dist/sync/syncResourceAdapters.js +21 -1
  765. package/dist/sync/syncService.d.ts +57 -1
  766. package/dist/sync/syncService.js +1094 -138
  767. package/dist/sync/taskNestedContent.d.ts +2 -0
  768. package/dist/sync/taskNestedContent.js +8 -0
  769. package/dist/sync/taskSyncChangeKey.js +0 -1
  770. package/dist/sync/taskSyncPayload.d.ts +1 -1
  771. package/dist/sync/taskSyncPayload.js +20 -3
  772. package/dist/sync/v3/canonicalWorkspaceSyncJson.d.ts +2 -0
  773. package/dist/sync/v3/canonicalWorkspaceSyncJson.js +26 -0
  774. package/dist/sync/v3/combinedFeedCapability.d.ts +21 -0
  775. package/dist/sync/v3/combinedFeedCapability.js +80 -0
  776. package/dist/sync/v3/combinedFeedPrerequisites.d.ts +18 -0
  777. package/dist/sync/v3/combinedFeedPrerequisites.js +184 -0
  778. package/dist/sync/v3/durableInitiativeMutationRouter.d.ts +61 -0
  779. package/dist/sync/v3/durableInitiativeMutationRouter.js +287 -0
  780. package/dist/sync/v3/durableOperationReplay.d.ts +36 -0
  781. package/dist/sync/v3/durableOperationReplay.js +103 -0
  782. package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.d.ts +50 -0
  783. package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.js +216 -0
  784. package/dist/sync/v3/durableTaskChecklistMutationRouter.d.ts +47 -0
  785. package/dist/sync/v3/durableTaskChecklistMutationRouter.js +182 -0
  786. package/dist/sync/v3/durableTaskCommentMutationRouter.d.ts +47 -0
  787. package/dist/sync/v3/durableTaskCommentMutationRouter.js +191 -0
  788. package/dist/sync/v3/durableTaskHttpBulkMutationRouter.d.ts +60 -0
  789. package/dist/sync/v3/durableTaskHttpBulkMutationRouter.js +333 -0
  790. package/dist/sync/v3/durableTaskHttpRootMutationRouter.d.ts +40 -0
  791. package/dist/sync/v3/durableTaskHttpRootMutationRouter.js +518 -0
  792. package/dist/sync/v3/durableTaxonomyMutationRouter.d.ts +63 -0
  793. package/dist/sync/v3/durableTaxonomyMutationRouter.js +289 -0
  794. package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.d.ts +77 -0
  795. package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.js +361 -0
  796. package/dist/sync/v3/durableWorkstreamMutationRouter.d.ts +61 -0
  797. package/dist/sync/v3/durableWorkstreamMutationRouter.js +287 -0
  798. package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.d.ts +42 -0
  799. package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.js +122 -0
  800. package/dist/sync/v3/entityEventLegacyAdoptionContract.d.ts +6 -0
  801. package/dist/sync/v3/entityEventLegacyAdoptionContract.js +6 -0
  802. package/dist/sync/v3/entityEventLegacyAdoptionService.d.ts +62 -0
  803. package/dist/sync/v3/entityEventLegacyAdoptionService.js +180 -0
  804. package/dist/sync/v3/initiativeActivityAuthoritativeRevision.d.ts +11 -0
  805. package/dist/sync/v3/initiativeActivityAuthoritativeRevision.js +23 -0
  806. package/dist/sync/v3/initiativeActivityIdentity.d.ts +8 -0
  807. package/dist/sync/v3/initiativeActivityIdentity.js +14 -0
  808. package/dist/sync/v3/initiativeCoexistence.d.ts +26 -0
  809. package/dist/sync/v3/initiativeCoexistence.js +148 -0
  810. package/dist/sync/v3/initiativeFeedActivationCapability.d.ts +6 -0
  811. package/dist/sync/v3/initiativeFeedActivationCapability.js +16 -0
  812. package/dist/sync/v3/initiativeMutationPayload.d.ts +26 -0
  813. package/dist/sync/v3/initiativeMutationPayload.js +144 -0
  814. package/dist/sync/v3/initiativeMutationService.d.ts +62 -0
  815. package/dist/sync/v3/initiativeMutationService.js +206 -0
  816. package/dist/sync/v3/localEntityEventLegacyAdoption.d.ts +31 -0
  817. package/dist/sync/v3/localEntityEventLegacyAdoption.js +607 -0
  818. package/dist/sync/v3/localInitiativeOutboxHandler.d.ts +8 -0
  819. package/dist/sync/v3/localInitiativeOutboxHandler.js +88 -0
  820. package/dist/sync/v3/localInitiativeOutboxService.d.ts +50 -0
  821. package/dist/sync/v3/localInitiativeOutboxService.js +497 -0
  822. package/dist/sync/v3/localOperationIdentityStore.d.ts +81 -0
  823. package/dist/sync/v3/localOperationIdentityStore.js +388 -0
  824. package/dist/sync/v3/localOutboxDispatchCapability.d.ts +7 -0
  825. package/dist/sync/v3/localOutboxDispatchCapability.js +13 -0
  826. package/dist/sync/v3/localOutboxDispatchRuntime.d.ts +16 -0
  827. package/dist/sync/v3/localOutboxDispatchRuntime.js +269 -0
  828. package/dist/sync/v3/localOutboxDispatcher.d.ts +53 -0
  829. package/dist/sync/v3/localOutboxDispatcher.js +366 -0
  830. package/dist/sync/v3/localOutboxDrainClient.d.ts +50 -0
  831. package/dist/sync/v3/localOutboxDrainClient.js +250 -0
  832. package/dist/sync/v3/localOutboxOperationHandler.d.ts +31 -0
  833. package/dist/sync/v3/localOutboxOperationHandler.js +10 -0
  834. package/dist/sync/v3/localOutboxRecoveryClient.d.ts +14 -0
  835. package/dist/sync/v3/localOutboxRecoveryClient.js +45 -0
  836. package/dist/sync/v3/localOutboxRecoveryPreparationService.d.ts +12 -0
  837. package/dist/sync/v3/localOutboxRecoveryPreparationService.js +151 -0
  838. package/dist/sync/v3/localSyncIdentityStore.d.ts +9 -0
  839. package/dist/sync/v3/localSyncIdentityStore.js +43 -0
  840. package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.d.ts +10 -0
  841. package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.js +80 -0
  842. package/dist/sync/v3/localTaskAttachmentLinksOutboxService.d.ts +46 -0
  843. package/dist/sync/v3/localTaskAttachmentLinksOutboxService.js +303 -0
  844. package/dist/sync/v3/localTaskChecklistOutboxHandler.d.ts +10 -0
  845. package/dist/sync/v3/localTaskChecklistOutboxHandler.js +54 -0
  846. package/dist/sync/v3/localTaskChecklistOutboxService.d.ts +47 -0
  847. package/dist/sync/v3/localTaskChecklistOutboxService.js +221 -0
  848. package/dist/sync/v3/localTaskCommentOutboxHandler.d.ts +10 -0
  849. package/dist/sync/v3/localTaskCommentOutboxHandler.js +94 -0
  850. package/dist/sync/v3/localTaskCommentOutboxService.d.ts +75 -0
  851. package/dist/sync/v3/localTaskCommentOutboxService.js +391 -0
  852. package/dist/sync/v3/localTaskCreateClient.d.ts +27 -0
  853. package/dist/sync/v3/localTaskCreateClient.js +209 -0
  854. package/dist/sync/v3/localTaskCreateOutboxHandler.d.ts +8 -0
  855. package/dist/sync/v3/localTaskCreateOutboxHandler.js +147 -0
  856. package/dist/sync/v3/localTaskCreateOutboxService.d.ts +77 -0
  857. package/dist/sync/v3/localTaskCreateOutboxService.js +397 -0
  858. package/dist/sync/v3/localTaskDeleteClient.d.ts +10 -0
  859. package/dist/sync/v3/localTaskDeleteClient.js +23 -0
  860. package/dist/sync/v3/localTaskDeleteOutboxHandler.d.ts +8 -0
  861. package/dist/sync/v3/localTaskDeleteOutboxHandler.js +54 -0
  862. package/dist/sync/v3/localTaskDeleteOutboxService.d.ts +38 -0
  863. package/dist/sync/v3/localTaskDeleteOutboxService.js +235 -0
  864. package/dist/sync/v3/localTaskLegacyRootAdoption.d.ts +28 -0
  865. package/dist/sync/v3/localTaskLegacyRootAdoption.js +219 -0
  866. package/dist/sync/v3/localTaskLifecycleClient.d.ts +49 -0
  867. package/dist/sync/v3/localTaskLifecycleClient.js +57 -0
  868. package/dist/sync/v3/localTaskLifecycleOutboxHandler.d.ts +8 -0
  869. package/dist/sync/v3/localTaskLifecycleOutboxHandler.js +94 -0
  870. package/dist/sync/v3/localTaskLifecycleOutboxService.d.ts +60 -0
  871. package/dist/sync/v3/localTaskLifecycleOutboxService.js +304 -0
  872. package/dist/sync/v3/localTaskMetadataClient.d.ts +13 -0
  873. package/dist/sync/v3/localTaskMetadataClient.js +30 -0
  874. package/dist/sync/v3/localTaskMetadataOutboxHandler.d.ts +8 -0
  875. package/dist/sync/v3/localTaskMetadataOutboxHandler.js +70 -0
  876. package/dist/sync/v3/localTaskMetadataOutboxService.d.ts +48 -0
  877. package/dist/sync/v3/localTaskMetadataOutboxService.js +229 -0
  878. package/dist/sync/v3/localTaskOperationClient.d.ts +72 -0
  879. package/dist/sync/v3/localTaskOperationClient.js +195 -0
  880. package/dist/sync/v3/localTaskRelationshipOutboxHandler.d.ts +8 -0
  881. package/dist/sync/v3/localTaskRelationshipOutboxHandler.js +114 -0
  882. package/dist/sync/v3/localTaskRelationshipOutboxService.d.ts +45 -0
  883. package/dist/sync/v3/localTaskRelationshipOutboxService.js +192 -0
  884. package/dist/sync/v3/localTaskRestoreClient.d.ts +13 -0
  885. package/dist/sync/v3/localTaskRestoreClient.js +32 -0
  886. package/dist/sync/v3/localTaskRestoreOutboxHandler.d.ts +8 -0
  887. package/dist/sync/v3/localTaskRestoreOutboxHandler.js +41 -0
  888. package/dist/sync/v3/localTaskRestoreOutboxService.d.ts +56 -0
  889. package/dist/sync/v3/localTaskRestoreOutboxService.js +323 -0
  890. package/dist/sync/v3/localTaskStatusClient.d.ts +17 -0
  891. package/dist/sync/v3/localTaskStatusClient.js +35 -0
  892. package/dist/sync/v3/localTaskStatusOutboxHandler.d.ts +8 -0
  893. package/dist/sync/v3/localTaskStatusOutboxHandler.js +75 -0
  894. package/dist/sync/v3/localTaskStatusOutboxService.d.ts +53 -0
  895. package/dist/sync/v3/localTaskStatusOutboxService.js +422 -0
  896. package/dist/sync/v3/localTaxonomyCompositeOutboxService.d.ts +34 -0
  897. package/dist/sync/v3/localTaxonomyCompositeOutboxService.js +290 -0
  898. package/dist/sync/v3/localTaxonomyOutboxHandler.d.ts +9 -0
  899. package/dist/sync/v3/localTaxonomyOutboxHandler.js +106 -0
  900. package/dist/sync/v3/localTaxonomyOutboxService.d.ts +30 -0
  901. package/dist/sync/v3/localTaxonomyOutboxService.js +181 -0
  902. package/dist/sync/v3/localWorkflowRuntimeOutboxHandler.d.ts +8 -0
  903. package/dist/sync/v3/localWorkflowRuntimeOutboxHandler.js +113 -0
  904. package/dist/sync/v3/localWorkflowRuntimeOutboxService.d.ts +37 -0
  905. package/dist/sync/v3/localWorkflowRuntimeOutboxService.js +330 -0
  906. package/dist/sync/v3/localWorkspaceSyncServerOutboxDispatcher.d.ts +63 -0
  907. package/dist/sync/v3/localWorkspaceSyncServerOutboxDispatcher.js +264 -0
  908. package/dist/sync/v3/localWorkstreamOutboxHandler.d.ts +8 -0
  909. package/dist/sync/v3/localWorkstreamOutboxHandler.js +102 -0
  910. package/dist/sync/v3/localWorkstreamOutboxService.d.ts +52 -0
  911. package/dist/sync/v3/localWorkstreamOutboxService.js +581 -0
  912. package/dist/sync/v3/localWorkstreamTaskOrderOutboxHandler.d.ts +10 -0
  913. package/dist/sync/v3/localWorkstreamTaskOrderOutboxHandler.js +57 -0
  914. package/dist/sync/v3/localWorkstreamTaskOrderOutboxService.d.ts +30 -0
  915. package/dist/sync/v3/localWorkstreamTaskOrderOutboxService.js +128 -0
  916. package/dist/sync/v3/planningActivation.d.ts +13 -0
  917. package/dist/sync/v3/planningActivation.js +33 -0
  918. package/dist/sync/v3/planningAttachmentActivityValidation.d.ts +9 -0
  919. package/dist/sync/v3/planningAttachmentActivityValidation.js +87 -0
  920. package/dist/sync/v3/programScaffoldService.d.ts +143 -0
  921. package/dist/sync/v3/programScaffoldService.js +478 -0
  922. package/dist/sync/v3/syncDurabilityStore.d.ts +781 -0
  923. package/dist/sync/v3/syncDurabilityStore.js +4773 -0
  924. package/dist/sync/v3/taskActivityAuthoritativeRevision.d.ts +16 -0
  925. package/dist/sync/v3/taskActivityAuthoritativeRevision.js +67 -0
  926. package/dist/sync/v3/taskActivityJournal.d.ts +20 -0
  927. package/dist/sync/v3/taskActivityJournal.js +195 -0
  928. package/dist/sync/v3/taskAttachmentLinksActivityIdentity.d.ts +6 -0
  929. package/dist/sync/v3/taskAttachmentLinksActivityIdentity.js +14 -0
  930. package/dist/sync/v3/taskAttachmentLinksMutationService.d.ts +112 -0
  931. package/dist/sync/v3/taskAttachmentLinksMutationService.js +218 -0
  932. package/dist/sync/v3/taskChecklistActivityIdentity.d.ts +6 -0
  933. package/dist/sync/v3/taskChecklistActivityIdentity.js +14 -0
  934. package/dist/sync/v3/taskChecklistMutationService.d.ts +92 -0
  935. package/dist/sync/v3/taskChecklistMutationService.js +156 -0
  936. package/dist/sync/v3/taskCommentActivityIdentity.d.ts +7 -0
  937. package/dist/sync/v3/taskCommentActivityIdentity.js +15 -0
  938. package/dist/sync/v3/taskCommentMutationService.d.ts +150 -0
  939. package/dist/sync/v3/taskCommentMutationService.js +392 -0
  940. package/dist/sync/v3/taskCommentReconcileProvenance.d.ts +58 -0
  941. package/dist/sync/v3/taskCommentReconcileProvenance.js +170 -0
  942. package/dist/sync/v3/taskCreateActivation.d.ts +19 -0
  943. package/dist/sync/v3/taskCreateActivation.js +84 -0
  944. package/dist/sync/v3/taskCreateActivityIdentity.d.ts +7 -0
  945. package/dist/sync/v3/taskCreateActivityIdentity.js +18 -0
  946. package/dist/sync/v3/taskCreateMutationService.d.ts +103 -0
  947. package/dist/sync/v3/taskCreateMutationService.js +283 -0
  948. package/dist/sync/v3/taskDeleteActivation.d.ts +7 -0
  949. package/dist/sync/v3/taskDeleteActivation.js +14 -0
  950. package/dist/sync/v3/taskDeleteMutationService.d.ts +35 -0
  951. package/dist/sync/v3/taskDeleteMutationService.js +133 -0
  952. package/dist/sync/v3/taskLegacyRootAdoptionService.d.ts +78 -0
  953. package/dist/sync/v3/taskLegacyRootAdoptionService.js +175 -0
  954. package/dist/sync/v3/taskLifecycleActivityIdentity.d.ts +9 -0
  955. package/dist/sync/v3/taskLifecycleActivityIdentity.js +18 -0
  956. package/dist/sync/v3/taskLifecycleMutationPayload.d.ts +5 -0
  957. package/dist/sync/v3/taskLifecycleMutationPayload.js +28 -0
  958. package/dist/sync/v3/taskLifecycleMutationService.d.ts +66 -0
  959. package/dist/sync/v3/taskLifecycleMutationService.js +92 -0
  960. package/dist/sync/v3/taskMetadataActivation.d.ts +12 -0
  961. package/dist/sync/v3/taskMetadataActivation.js +38 -0
  962. package/dist/sync/v3/taskMetadataActivityIdentity.d.ts +7 -0
  963. package/dist/sync/v3/taskMetadataActivityIdentity.js +18 -0
  964. package/dist/sync/v3/taskMetadataCoexistence.d.ts +37 -0
  965. package/dist/sync/v3/taskMetadataCoexistence.js +138 -0
  966. package/dist/sync/v3/taskMetadataMutationService.d.ts +71 -0
  967. package/dist/sync/v3/taskMetadataMutationService.js +199 -0
  968. package/dist/sync/v3/taskRelationshipLegacyAdoptionService.d.ts +48 -0
  969. package/dist/sync/v3/taskRelationshipLegacyAdoptionService.js +164 -0
  970. package/dist/sync/v3/taskRelationshipMutationService.d.ts +50 -0
  971. package/dist/sync/v3/taskRelationshipMutationService.js +148 -0
  972. package/dist/sync/v3/taskRestoreMutationService.d.ts +90 -0
  973. package/dist/sync/v3/taskRestoreMutationService.js +179 -0
  974. package/dist/sync/v3/taskStatusActivation.d.ts +7 -0
  975. package/dist/sync/v3/taskStatusActivation.js +15 -0
  976. package/dist/sync/v3/taskStatusMutationService.d.ts +76 -0
  977. package/dist/sync/v3/taskStatusMutationService.js +308 -0
  978. package/dist/sync/v3/taskWorkflowMutationPayload.d.ts +4 -0
  979. package/dist/sync/v3/taskWorkflowMutationPayload.js +22 -0
  980. package/dist/sync/v3/taskWorkflowMutationService.d.ts +64 -0
  981. package/dist/sync/v3/taskWorkflowMutationService.js +102 -0
  982. package/dist/sync/v3/taxonomyCoexistence.d.ts +10 -0
  983. package/dist/sync/v3/taxonomyCoexistence.js +19 -0
  984. package/dist/sync/v3/taxonomyCompositeMutationService.d.ts +110 -0
  985. package/dist/sync/v3/taxonomyCompositeMutationService.js +304 -0
  986. package/dist/sync/v3/taxonomyMutationService.d.ts +57 -0
  987. package/dist/sync/v3/taxonomyMutationService.js +106 -0
  988. package/dist/sync/v3/taxonomyStateMutation.d.ts +22 -0
  989. package/dist/sync/v3/taxonomyStateMutation.js +49 -0
  990. package/dist/sync/v3/taxonomySyncPayload.d.ts +9 -0
  991. package/dist/sync/v3/taxonomySyncPayload.js +199 -0
  992. package/dist/sync/v3/workflowAssignmentSync.d.ts +22 -0
  993. package/dist/sync/v3/workflowAssignmentSync.js +213 -0
  994. package/dist/sync/v3/workflowRuntimeMutationService.d.ts +89 -0
  995. package/dist/sync/v3/workflowRuntimeMutationService.js +359 -0
  996. package/dist/sync/v3/workflowRuntimeOperationIdentity.d.ts +13 -0
  997. package/dist/sync/v3/workflowRuntimeOperationIdentity.js +35 -0
  998. package/dist/sync/v3/workflowRuntimeSync.d.ts +141 -0
  999. package/dist/sync/v3/workflowRuntimeSync.js +485 -0
  1000. package/dist/sync/v3/workspaceSyncJournalReader.d.ts +43 -0
  1001. package/dist/sync/v3/workspaceSyncJournalReader.js +45 -0
  1002. package/dist/sync/v3/workspaceSyncLocalOwnershipSnapshot.d.ts +28 -0
  1003. package/dist/sync/v3/workspaceSyncLocalOwnershipSnapshot.js +81 -0
  1004. package/dist/sync/v3/workspaceSyncPayloadFingerprint.d.ts +1 -0
  1005. package/dist/sync/v3/workspaceSyncPayloadFingerprint.js +5 -0
  1006. package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.d.ts +16 -0
  1007. package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.js +153 -0
  1008. package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.d.ts +83 -0
  1009. package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.js +161 -0
  1010. package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.d.ts +16 -0
  1011. package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.js +90 -0
  1012. package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.d.ts +65 -0
  1013. package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.js +357 -0
  1014. package/dist/sync/v3/workspaceSyncV3CombinedCoverage.d.ts +51 -0
  1015. package/dist/sync/v3/workspaceSyncV3CombinedCoverage.js +171 -0
  1016. package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.d.ts +43 -0
  1017. package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.js +541 -0
  1018. package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.d.ts +50 -0
  1019. package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.js +1161 -0
  1020. package/dist/sync/v3/workspaceSyncV3CombinedProjectionState.d.ts +96 -0
  1021. package/dist/sync/v3/workspaceSyncV3CombinedProjectionState.js +672 -0
  1022. package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.d.ts +46 -0
  1023. package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.js +621 -0
  1024. package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.d.ts +66 -0
  1025. package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.js +527 -0
  1026. package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.d.ts +78 -0
  1027. package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.js +566 -0
  1028. package/dist/sync/v3/workspaceSyncV3CombinedWireContract.d.ts +45 -0
  1029. package/dist/sync/v3/workspaceSyncV3CombinedWireContract.js +125 -0
  1030. package/dist/sync/v3/workspaceSyncV3CoverageRegistry.d.ts +13 -0
  1031. package/dist/sync/v3/workspaceSyncV3CoverageRegistry.js +34 -0
  1032. package/dist/sync/v3/workspaceSyncV3CursorEncoding.d.ts +1 -0
  1033. package/dist/sync/v3/workspaceSyncV3CursorEncoding.js +6 -0
  1034. package/dist/sync/v3/workspaceSyncV3DomainAdmission.d.ts +43 -0
  1035. package/dist/sync/v3/workspaceSyncV3DomainAdmission.js +118 -0
  1036. package/dist/sync/v3/workspaceSyncV3Feed.d.ts +95 -0
  1037. package/dist/sync/v3/workspaceSyncV3Feed.js +243 -0
  1038. package/dist/sync/v3/workspaceSyncV3FeedApply.d.ts +13 -0
  1039. package/dist/sync/v3/workspaceSyncV3FeedApply.js +67 -0
  1040. package/dist/sync/v3/workspaceSyncV3FeedClientContract.d.ts +3 -0
  1041. package/dist/sync/v3/workspaceSyncV3FeedClientContract.js +46 -0
  1042. package/dist/sync/v3/workspaceSyncV3FeedCursorKeys.d.ts +10 -0
  1043. package/dist/sync/v3/workspaceSyncV3FeedCursorKeys.js +58 -0
  1044. package/dist/sync/v3/workspaceSyncV3FeedOrchestrator.d.ts +31 -0
  1045. package/dist/sync/v3/workspaceSyncV3FeedOrchestrator.js +228 -0
  1046. package/dist/sync/v3/workspaceSyncV3FeedProfile.d.ts +32 -0
  1047. package/dist/sync/v3/workspaceSyncV3FeedProfile.js +21 -0
  1048. package/dist/sync/v3/workspaceSyncV3InitiativeLocalApply.d.ts +36 -0
  1049. package/dist/sync/v3/workspaceSyncV3InitiativeLocalApply.js +163 -0
  1050. package/dist/sync/v3/workspaceSyncV3InitiativeRepair.d.ts +33 -0
  1051. package/dist/sync/v3/workspaceSyncV3InitiativeRepair.js +118 -0
  1052. package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.d.ts +10 -0
  1053. package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.js +45 -0
  1054. package/dist/sync/v3/workspaceSyncV3LocalOutboxStatus.d.ts +27 -0
  1055. package/dist/sync/v3/workspaceSyncV3LocalOutboxStatus.js +83 -0
  1056. package/dist/sync/v3/workspaceSyncV3NestedCoverage.d.ts +10 -0
  1057. package/dist/sync/v3/workspaceSyncV3NestedCoverage.js +40 -0
  1058. package/dist/sync/v3/workspaceSyncV3NestedTaskApply.d.ts +83 -0
  1059. package/dist/sync/v3/workspaceSyncV3NestedTaskApply.js +325 -0
  1060. package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.d.ts +59 -0
  1061. package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.js +302 -0
  1062. package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.d.ts +47 -0
  1063. package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.js +329 -0
  1064. package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.d.ts +19 -0
  1065. package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.js +41 -0
  1066. package/dist/sync/v3/workspaceSyncV3NestedWireContract.d.ts +6 -0
  1067. package/dist/sync/v3/workspaceSyncV3NestedWireContract.js +16 -0
  1068. package/dist/sync/v3/workspaceSyncV3OperationProjection.d.ts +8 -0
  1069. package/dist/sync/v3/workspaceSyncV3OperationProjection.js +52 -0
  1070. package/dist/sync/v3/workspaceSyncV3OperationProtocol.d.ts +230 -0
  1071. package/dist/sync/v3/workspaceSyncV3OperationProtocol.js +1 -0
  1072. package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.d.ts +165 -0
  1073. package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.js +414 -0
  1074. package/dist/sync/v3/workspaceSyncV3OriginActor.d.ts +36 -0
  1075. package/dist/sync/v3/workspaceSyncV3OriginActor.js +61 -0
  1076. package/dist/sync/v3/workspaceSyncV3OriginAssertion.d.ts +46 -0
  1077. package/dist/sync/v3/workspaceSyncV3OriginAssertion.js +121 -0
  1078. package/dist/sync/v3/workspaceSyncV3OriginAssertionHeader.d.ts +1 -0
  1079. package/dist/sync/v3/workspaceSyncV3OriginAssertionHeader.js +1 -0
  1080. package/dist/sync/v3/workspaceSyncV3PlanningOrderCoverage.d.ts +10 -0
  1081. package/dist/sync/v3/workspaceSyncV3PlanningOrderCoverage.js +34 -0
  1082. package/dist/sync/v3/workspaceSyncV3PlanningOrderWireContract.d.ts +6 -0
  1083. package/dist/sync/v3/workspaceSyncV3PlanningOrderWireContract.js +10 -0
  1084. package/dist/sync/v3/workspaceSyncV3ProjectionState.d.ts +105 -0
  1085. package/dist/sync/v3/workspaceSyncV3ProjectionState.js +467 -0
  1086. package/dist/sync/v3/workspaceSyncV3RepairSqlBatching.d.ts +2 -0
  1087. package/dist/sync/v3/workspaceSyncV3RepairSqlBatching.js +10 -0
  1088. package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.d.ts +56 -0
  1089. package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.js +250 -0
  1090. package/dist/sync/v3/workspaceSyncV3TaskRelationshipProjection.d.ts +30 -0
  1091. package/dist/sync/v3/workspaceSyncV3TaskRelationshipProjection.js +142 -0
  1092. package/dist/sync/v3/workspaceSyncV3TaskRootProjection.d.ts +40 -0
  1093. package/dist/sync/v3/workspaceSyncV3TaskRootProjection.js +246 -0
  1094. package/dist/sync/v3/workspaceSyncV3TaxonomyFeedProjection.d.ts +39 -0
  1095. package/dist/sync/v3/workspaceSyncV3TaxonomyFeedProjection.js +185 -0
  1096. package/dist/sync/v3/workspaceSyncV3WorkflowCoverage.d.ts +10 -0
  1097. package/dist/sync/v3/workspaceSyncV3WorkflowCoverage.js +36 -0
  1098. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.d.ts +17 -0
  1099. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.js +143 -0
  1100. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeProjection.d.ts +9 -0
  1101. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeProjection.js +195 -0
  1102. package/dist/sync/v3/workspaceSyncV3WorkflowWireContract.d.ts +11 -0
  1103. package/dist/sync/v3/workspaceSyncV3WorkflowWireContract.js +12 -0
  1104. package/dist/sync/v3/workspaceSyncV3WorkstreamProjection.d.ts +4 -0
  1105. package/dist/sync/v3/workspaceSyncV3WorkstreamProjection.js +98 -0
  1106. package/dist/sync/v3/workspaceSyncV3WorkstreamTaskOrderProjection.d.ts +9 -0
  1107. package/dist/sync/v3/workspaceSyncV3WorkstreamTaskOrderProjection.js +72 -0
  1108. package/dist/sync/v3/workstreamActivityAuthoritativeRevision.d.ts +11 -0
  1109. package/dist/sync/v3/workstreamActivityAuthoritativeRevision.js +23 -0
  1110. package/dist/sync/v3/workstreamActivityIdentity.d.ts +8 -0
  1111. package/dist/sync/v3/workstreamActivityIdentity.js +14 -0
  1112. package/dist/sync/v3/workstreamCoexistence.d.ts +19 -0
  1113. package/dist/sync/v3/workstreamCoexistence.js +64 -0
  1114. package/dist/sync/v3/workstreamMutationPayload.d.ts +27 -0
  1115. package/dist/sync/v3/workstreamMutationPayload.js +147 -0
  1116. package/dist/sync/v3/workstreamMutationService.d.ts +72 -0
  1117. package/dist/sync/v3/workstreamMutationService.js +256 -0
  1118. package/dist/sync/v3/workstreamTaskOrderMutationService.d.ts +55 -0
  1119. package/dist/sync/v3/workstreamTaskOrderMutationService.js +110 -0
  1120. package/dist/sync/v3/workstreamTaskOrderSync.d.ts +14 -0
  1121. package/dist/sync/v3/workstreamTaskOrderSync.js +25 -0
  1122. package/dist/sync/workspaceContentManifest.d.ts +86 -0
  1123. package/dist/sync/workspaceContentManifest.js +123 -0
  1124. package/dist/sync/workspacePullFeed.d.ts +191 -2
  1125. package/dist/sync/workspacePullFeed.js +523 -135
  1126. package/dist/sync/workspacePushPreparedPlan.d.ts +21 -0
  1127. package/dist/sync/workspacePushPreparedPlan.js +1 -0
  1128. package/dist/sync/workspaceRepair.d.ts +17 -25
  1129. package/dist/sync/workspaceRepair.js +348 -25
  1130. package/dist/sync/workspaceSyncContentDecryption.d.ts +6 -0
  1131. package/dist/sync/workspaceSyncContentDecryption.js +11 -0
  1132. package/dist/sync/workspaceSyncModel.d.ts +227 -5
  1133. package/dist/sync/workspaceSyncModel.js +398 -37
  1134. package/dist/sync/workspaceSyncSnapshotProjection.d.ts +11 -0
  1135. package/dist/sync/workspaceSyncSnapshotProjection.js +101 -0
  1136. package/dist/sync/workspaceSyncState.d.ts +13 -0
  1137. package/dist/sync/workspaceSyncState.js +36 -0
  1138. package/dist/sync/workspaceSyncV2SnapshotBuilder.d.ts +106 -0
  1139. package/dist/sync/workspaceSyncV2SnapshotBuilder.js +193 -0
  1140. package/dist/types.d.ts +31 -15
  1141. package/dist/types.js +1 -3
  1142. package/dist/ui/ai-profile-clients/amazon-nova.svg +1 -0
  1143. package/dist/ui/ai-profile-clients/antigravity.png +0 -0
  1144. package/dist/ui/ai-profile-clients/chatgpt.svg +10 -0
  1145. package/dist/ui/ai-profile-clients/claude-chat.svg +1 -0
  1146. package/dist/ui/ai-profile-clients/claude-code.svg +15 -0
  1147. package/dist/ui/ai-profile-clients/cline-app-icon-light.png +0 -0
  1148. package/dist/ui/ai-profile-clients/cline.svg +16 -0
  1149. package/dist/ui/ai-profile-clients/codex.svg +1 -0
  1150. package/dist/ui/ai-profile-clients/copilot.png +0 -0
  1151. package/dist/ui/ai-profile-clients/cursor.svg +1 -0
  1152. package/dist/ui/ai-profile-clients/deepseek.svg +1 -0
  1153. package/dist/ui/ai-profile-clients/gemini-cli-icon.png +0 -0
  1154. package/dist/ui/ai-profile-clients/gemini.svg +10 -0
  1155. package/dist/ui/ai-profile-clients/grok.svg +31 -0
  1156. package/dist/ui/ai-profile-clients/kiro.svg +11 -0
  1157. package/dist/ui/ai-profile-clients/llama.svg +1 -0
  1158. package/dist/ui/ai-profile-clients/mistral.svg +1 -0
  1159. package/dist/ui/ai-profile-clients/ms_copilot.jpeg +0 -0
  1160. package/dist/ui/ai-profile-clients/openclaw.png +0 -0
  1161. package/dist/ui/ai-profile-clients/perplexity.svg +1 -0
  1162. package/dist/ui/ai-profile-clients/vscode.svg +41 -0
  1163. package/dist/ui/ai-profile-clients/windsurf.svg +11 -0
  1164. package/dist/ui/assets/AiIdentityRosterCard-MZs7lVED.js +1 -0
  1165. package/dist/ui/assets/AiProfilesModule-C3i0LOxe.js +1 -0
  1166. package/dist/ui/assets/AnnotatedAttachmentWorkspace-CBRZ8rca.css +1 -0
  1167. package/dist/ui/assets/AnnotatedAttachmentWorkspace-DVZk5Tln.js +3 -0
  1168. package/dist/ui/assets/AssetTraySortControl-B9k5caQW.css +1 -0
  1169. package/dist/ui/assets/AssetTraySortControl-Kf1pelSy.js +1 -0
  1170. package/dist/ui/assets/ContextAttachmentManager-B8boOs6Q.js +3 -0
  1171. package/dist/ui/assets/DocumentWorkspace-BIBGBfd7.css +1 -0
  1172. package/dist/ui/assets/DocumentWorkspace-DXH4XUsB.js +261 -0
  1173. package/dist/ui/assets/EntityActivityTimeline-BfJbZRdl.css +1 -0
  1174. package/dist/ui/assets/EntityActivityTimeline-BtSTq0ON.js +1 -0
  1175. package/dist/ui/assets/PlanningModule-BPVyEa-f.js +1 -0
  1176. package/dist/ui/assets/PlanningModule-CoIR9hbV.css +1 -0
  1177. package/dist/ui/assets/PlansPage-C2nkK2Bp.css +1 -0
  1178. package/dist/ui/assets/PlansPage-ChqgxALc.js +1 -0
  1179. package/dist/ui/assets/TaskContextUpload-CB3ol0sN.js +1 -0
  1180. package/dist/ui/assets/TaskContextUpload-qmBeUw3u.css +1 -0
  1181. package/dist/ui/assets/TaskSettings-g4ECKNOz.js +12 -0
  1182. package/dist/ui/assets/TaskforceAgentsModule-BazdUwxZ.js +21 -0
  1183. package/dist/ui/assets/TaskforceAgentsModule-D6IC0S7Q.css +1 -0
  1184. package/dist/ui/assets/WorkflowManagerModule-DF10XENz.css +1 -0
  1185. package/dist/ui/assets/WorkflowManagerModule-DWFspC-o.js +1 -0
  1186. package/dist/ui/assets/antigravity-DRKQga2U.png +0 -0
  1187. package/dist/ui/assets/cursor-BM_3k4Y4.svg +1 -0
  1188. package/dist/ui/assets/gemini-cli-icon-dBAVjCcn.png +0 -0
  1189. package/dist/ui/assets/grok-BuodbWaG.svg +31 -0
  1190. package/dist/ui/assets/index-BUplSsv_.js +7 -0
  1191. package/dist/ui/assets/index-gz2EXuoK.css +1 -0
  1192. package/dist/ui/assets/{vendor-dnd-DRzYolkg.js → vendor-dnd-CJ-AjP-Y.js} +1 -1
  1193. package/dist/ui/assets/{vendor-icons-CLnehDTw.js → vendor-icons-BkFLXavV.js} +1 -1
  1194. package/dist/ui/assets/{vendor-markdown-BUxTU7dS.js → vendor-markdown-_lhNCyq-.js} +9 -9
  1195. package/dist/ui/assets/vendor-router-AqJMU8Lz.js +3 -0
  1196. package/dist/ui/assets/vscode-C_7wk1WI.svg +41 -0
  1197. package/dist/ui/branding/logos/logo_dark_bg.png +0 -0
  1198. package/dist/ui/branding/logos/logo_favicon_dark.png +0 -0
  1199. package/dist/ui/branding/logos/logo_favicon_dark.svg +56 -0
  1200. package/dist/ui/branding/logos/logo_favicon_light.png +0 -0
  1201. package/dist/ui/branding/logos/logo_light_bg.png +0 -0
  1202. package/dist/ui/images/Taskforce_Van.webp +0 -0
  1203. package/dist/ui/index.html +6 -6
  1204. package/dist/update/uiUpdateService.d.ts +43 -0
  1205. package/dist/update/uiUpdateService.js +149 -0
  1206. package/dist/update/updateCli.d.ts +15 -0
  1207. package/dist/update/updateCli.js +76 -0
  1208. package/dist/update/updateExecutor.d.ts +40 -0
  1209. package/dist/update/updateExecutor.js +474 -0
  1210. package/dist/update/updateStatus.d.ts +83 -0
  1211. package/dist/update/updateStatus.js +703 -0
  1212. package/dist/utils/aiProfileAvatarPaths.d.ts +14 -0
  1213. package/dist/utils/aiProfileAvatarPaths.js +52 -0
  1214. package/dist/utils/aiProfileDefaultLogo.d.ts +7 -0
  1215. package/dist/utils/aiProfileDefaultLogo.js +84 -0
  1216. package/dist/utils/aiProfileEvents.d.ts +9 -1
  1217. package/dist/utils/annotatedAttachments.d.ts +8 -0
  1218. package/dist/utils/annotatedAttachments.js +17 -1
  1219. package/dist/utils/assetTraySorting.d.ts +25 -0
  1220. package/dist/utils/assetTraySorting.js +83 -0
  1221. package/dist/utils/assignees.d.ts +5 -0
  1222. package/dist/utils/assignees.js +14 -9
  1223. package/dist/utils/authLogin.d.ts +10 -0
  1224. package/dist/utils/authLogin.js +8 -0
  1225. package/dist/utils/authSessionEvents.d.ts +2 -0
  1226. package/dist/utils/authSessionEvents.js +6 -0
  1227. package/dist/utils/avatarUpload.js +5 -5
  1228. package/dist/utils/canonicalReferenceAttachments.d.ts +12 -0
  1229. package/dist/utils/canonicalReferenceAttachments.js +42 -0
  1230. package/dist/utils/cloudAssetDisplay.d.ts +2 -0
  1231. package/dist/utils/cloudAssetDisplay.js +8 -0
  1232. package/dist/utils/constants.d.ts +4 -11
  1233. package/dist/utils/constants.js +6 -65
  1234. package/dist/utils/contextAttachmentPreview.d.ts +11 -0
  1235. package/dist/utils/contextAttachmentPreview.js +8 -0
  1236. package/dist/utils/contextAttachmentUpload.d.ts +10 -0
  1237. package/dist/utils/contextAttachmentUpload.js +151 -0
  1238. package/dist/utils/contextFiles.d.ts +1 -1
  1239. package/dist/utils/contextFiles.js +4 -4
  1240. package/dist/utils/documentNames.js +6 -4
  1241. package/dist/utils/entityReferences.d.ts +14 -0
  1242. package/dist/utils/entityReferences.js +21 -0
  1243. package/dist/utils/httpSetCookie.d.ts +3 -0
  1244. package/dist/utils/httpSetCookie.js +22 -0
  1245. package/dist/utils/imageNoteStoragePaths.d.ts +3 -0
  1246. package/dist/utils/imageNoteStoragePaths.js +19 -0
  1247. package/dist/utils/imageReferences.d.ts +6 -0
  1248. package/dist/utils/imageReferences.js +1 -0
  1249. package/dist/utils/planningArchiveOrchestrator.d.ts +23 -0
  1250. package/dist/utils/planningArchiveOrchestrator.js +37 -0
  1251. package/dist/utils/planningArchivePresentation.d.ts +20 -0
  1252. package/dist/utils/planningArchivePresentation.js +23 -0
  1253. package/dist/utils/planningArchiveReadiness.d.ts +26 -0
  1254. package/dist/utils/planningArchiveReadiness.js +30 -0
  1255. package/dist/utils/planningFavorites.d.ts +7 -0
  1256. package/dist/utils/planningFavorites.js +34 -0
  1257. package/dist/utils/syncEventPresentation.js +53 -0
  1258. package/dist/utils/syncStatusPresentation.d.ts +25 -0
  1259. package/dist/utils/syncStatusPresentation.js +86 -5
  1260. package/dist/utils/taskActivity.d.ts +9 -2
  1261. package/dist/utils/taskActivity.js +61 -0
  1262. package/dist/utils/taskDraftDefaults.d.ts +0 -8
  1263. package/dist/utils/taskDraftDefaults.js +0 -4
  1264. package/dist/utils/taskEvents.d.ts +11 -0
  1265. package/dist/utils/taskEvents.js +6 -0
  1266. package/dist/utils/taskHeaderQuickFilter.d.ts +14 -0
  1267. package/dist/utils/taskHeaderQuickFilter.js +32 -0
  1268. package/dist/utils/taskInvalidation.d.ts +23 -0
  1269. package/dist/utils/taskInvalidation.js +67 -0
  1270. package/dist/utils/taskNormalization.d.ts +2 -1
  1271. package/dist/utils/taskNormalization.js +44 -18
  1272. package/dist/utils/taskReferences.d.ts +16 -0
  1273. package/dist/utils/taskReferences.js +63 -0
  1274. package/dist/utils/taskforceAgentEvents.d.ts +8 -0
  1275. package/dist/utils/taskforceAgentEvents.js +6 -0
  1276. package/dist/utils/taskforceAgentSkillEvents.d.ts +7 -0
  1277. package/dist/utils/taskforceAgentSkillEvents.js +8 -0
  1278. package/dist/utils/uiNotice.d.ts +3 -0
  1279. package/dist/utils/uiNotice.js +1 -1
  1280. package/dist/utils/workspaceResourceEvents.d.ts +7 -0
  1281. package/dist/utils/workspaceResourceEvents.js +6 -0
  1282. package/dist/utils/workspaceSyncPresentation.d.ts +24 -0
  1283. package/dist/utils/workspaceSyncPresentation.js +243 -6
  1284. package/package.json +74 -21
  1285. package/dist/components/features/AgentsModule.d.ts +0 -18
  1286. package/dist/components/features/AgentsModule.js +0 -479
  1287. package/dist/components/features/InitiativesModule.d.ts +0 -22
  1288. package/dist/components/features/InitiativesModule.js +0 -33
  1289. package/dist/components/features/WorkflowsModule.d.ts +0 -27
  1290. package/dist/components/features/WorkflowsModule.js +0 -21
  1291. package/dist/components/features/settings/WorkflowEditor.d.ts +0 -15
  1292. package/dist/components/features/settings/WorkflowEditor.js +0 -245
  1293. package/dist/components/views/panels/DocumentFilterToolbar.d.ts +0 -10
  1294. package/dist/components/views/panels/DocumentFilterToolbar.js +0 -7
  1295. package/dist/components/views/standalone/modals/AccountHubModal.d.ts +0 -61
  1296. package/dist/components/views/standalone/modals/AccountHubModal.js +0 -108
  1297. package/dist/components/views/standalone/modals/EditProfileModal.d.ts +0 -19
  1298. package/dist/components/views/standalone/modals/EditProfileModal.js +0 -11
  1299. package/dist/hooks/ui/useResourceExport.d.ts +0 -21
  1300. package/dist/hooks/ui/useResourceExport.js +0 -87
  1301. package/dist/hooks/ui/useWorkflowTemplates.d.ts +0 -37
  1302. package/dist/hooks/ui/useWorkflowTemplates.js +0 -116
  1303. package/dist/mcp/clientProfileDefaults.d.ts +0 -12
  1304. package/dist/mcp/clientProfileDefaults.js +0 -41
  1305. package/dist/resources/templates/WORKFLOW_V2_POLICY.md +0 -55
  1306. package/dist/resources/templates/environments/aider.yaml +0 -14
  1307. package/dist/resources/templates/environments/antigravity.yaml +0 -10
  1308. package/dist/resources/templates/environments/claude.yaml +0 -10
  1309. package/dist/resources/templates/environments/cline.yaml +0 -10
  1310. package/dist/resources/templates/environments/codex.yaml +0 -13
  1311. package/dist/resources/templates/environments/copilot.yaml +0 -10
  1312. package/dist/resources/templates/environments/cursor.yaml +0 -9
  1313. package/dist/resources/templates/environments/gemini.yaml +0 -9
  1314. package/dist/resources/templates/environments/windsurf.yaml +0 -10
  1315. package/dist/resources/templates/workflow-sources/README.md +0 -9
  1316. package/dist/resources/templates/workflow-sources/workflowDocs.mjs +0 -530
  1317. package/dist/resources/templates/workflow-sources/workflowEditorOverrides.json +0 -1
  1318. package/dist/resources/templates/workflows/collaborate.yaml +0 -109
  1319. package/dist/resources/templates/workflows/do.yaml +0 -87
  1320. package/dist/resources/templates/workflows/evaluate.yaml +0 -116
  1321. package/dist/resources/templates/workflows/execute.yaml +0 -156
  1322. package/dist/resources/templates/workflows/plan.yaml +0 -118
  1323. package/dist/resources/templates/workflows/review.yaml +0 -114
  1324. package/dist/services/formatTransformers.d.ts +0 -29
  1325. package/dist/services/formatTransformers.js +0 -56
  1326. package/dist/services/templateEngine.d.ts +0 -46
  1327. package/dist/services/templateEngine.js +0 -148
  1328. package/dist/shared/workflowDefaults.d.ts +0 -9
  1329. package/dist/shared/workflowDefaults.js +0 -11
  1330. package/dist/ui/agent-logos/Gemini CLI.jpeg +0 -0
  1331. package/dist/ui/agent-logos/antigravity.jpeg +0 -0
  1332. package/dist/ui/agent-logos/chatgpt.png +0 -0
  1333. package/dist/ui/agent-logos/claude-code.jpeg +0 -0
  1334. package/dist/ui/agent-logos/codex.jpeg +0 -0
  1335. package/dist/ui/agent-logos/cursor.png +0 -0
  1336. package/dist/ui/agent-logos/openclaw.jpeg +0 -0
  1337. package/dist/ui/agent-logos/windsurf.png +0 -0
  1338. package/dist/ui/assets/AgentsModule-C4LcqhcZ.js +0 -1
  1339. package/dist/ui/assets/AnnotatedAttachmentWorkspace-B-Dq22d2.js +0 -3
  1340. package/dist/ui/assets/AnnotatedAttachmentWorkspace-BVKew-mH.css +0 -1
  1341. package/dist/ui/assets/ContextAttachmentManager-DsXPTvi-.js +0 -3
  1342. package/dist/ui/assets/DocumentWorkspace-CxA1wO3U.js +0 -252
  1343. package/dist/ui/assets/DocumentWorkspace-D4rJKXzd.css +0 -1
  1344. package/dist/ui/assets/EntityActivityTimeline-B8nSe8l3.js +0 -1
  1345. package/dist/ui/assets/EntityActivityTimeline-DyqvvhuF.css +0 -1
  1346. package/dist/ui/assets/InitiativesModule-VY95v38E.js +0 -1
  1347. package/dist/ui/assets/PlansPage-CQbKDv1a.js +0 -1
  1348. package/dist/ui/assets/PlansPage-DeAzWYTb.css +0 -1
  1349. package/dist/ui/assets/TaskContextUpload-DvDlNpHC.js +0 -1
  1350. package/dist/ui/assets/TaskSettings-CUWbYYtP.js +0 -12
  1351. package/dist/ui/assets/WorkflowsModule-CgM3Jako.js +0 -5
  1352. package/dist/ui/assets/documentReferences-Do9YjrS3.js +0 -1
  1353. package/dist/ui/assets/index--mh3pktj.js +0 -5
  1354. package/dist/ui/assets/index-BawaaEXS.css +0 -1
  1355. package/dist/ui/assets/vendor-router-BbWMxlnO.js +0 -3
  1356. package/dist/ui/branding/logos/logo_black_01.png +0 -0
  1357. package/dist/ui/branding/logos/logo_black_02.png +0 -0
  1358. package/dist/ui/branding/logos/logo_white_01.png +0 -0
  1359. package/dist/ui/branding/logos/logo_white_02.png +0 -0
  1360. package/scripts/generate-workflow-templates.mjs +0 -134
  1361. package/src/resources/templates/WORKFLOW_V2_POLICY.md +0 -55
  1362. package/src/resources/templates/environments/aider.yaml +0 -14
  1363. package/src/resources/templates/environments/antigravity.yaml +0 -10
  1364. package/src/resources/templates/environments/claude.yaml +0 -10
  1365. package/src/resources/templates/environments/cline.yaml +0 -10
  1366. package/src/resources/templates/environments/codex.yaml +0 -13
  1367. package/src/resources/templates/environments/copilot.yaml +0 -10
  1368. package/src/resources/templates/environments/cursor.yaml +0 -9
  1369. package/src/resources/templates/environments/gemini.yaml +0 -9
  1370. package/src/resources/templates/environments/windsurf.yaml +0 -10
  1371. package/src/resources/templates/workflow-sources/README.md +0 -9
  1372. package/src/resources/templates/workflow-sources/workflowDocs.mjs +0 -530
  1373. package/src/resources/templates/workflow-sources/workflowEditorOverrides.json +0 -1
  1374. package/src/resources/templates/workflows/collaborate.yaml +0 -109
  1375. package/src/resources/templates/workflows/do.yaml +0 -87
  1376. package/src/resources/templates/workflows/evaluate.yaml +0 -116
  1377. package/src/resources/templates/workflows/execute.yaml +0 -156
  1378. package/src/resources/templates/workflows/plan.yaml +0 -118
  1379. package/src/resources/templates/workflows/review.yaml +0 -114
  1380. /package/dist/ui/branding/logos/{logo_dark.svg → logo_dark_no_bg.svg} +0 -0
  1381. /package/dist/ui/branding/logos/{logo_favicon.svg → logo_favicon_light.svg} +0 -0
  1382. /package/dist/ui/branding/logos/{logo_light.svg → logo_light_no_bg.svg} +0 -0
@@ -1,23 +1,39 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
3
  import { createHash } from 'crypto';
4
+ import { assertPlanningIdentityColor, assertPlanningIdentityIcon } from '../shared/planningIdentity.js';
5
+ import { parseAiProfileColorSource } from '../shared/aiProfileColors.js';
4
6
  import { normalizeBinaryAssetDeleteSyncPayload, normalizeBinaryAssetSyncPayload, normalizeDocumentDeleteSyncPayload, normalizeDocumentSyncPayload, } from './contentSyncPayload.js';
5
- import { normalizeAiProfileSyncPayload, normalizeAnnotatedAttachmentSessionSyncPayload, normalizeDeleteSyncPayload, normalizeDocumentReviewCommentSyncPayload, normalizeDocumentReviewSessionSyncPayload, } from './collaborationSyncPayload.js';
7
+ import { normalizeAiProfileSyncPayload, normalizeAgentConversationSyncPayload, normalizeAgentRoleSyncPayload, normalizeAnnotatedAttachmentSessionSyncPayload, normalizeDeleteSyncPayload, normalizeDocumentReviewCommentSyncPayload, normalizeDocumentReviewSessionSyncPayload, normalizeTaskforceAgentSkillSyncPayload, normalizeTaskforceAgentSyncPayload, } from './collaborationSyncPayload.js';
6
8
  import { normalizeInitiativeSyncPayload, normalizeTaxonomySyncPayload, normalizeWorkstreamSyncPayload, } from './planningSyncPayload.js';
7
9
  import { normalizeTaskSyncPayload, taskSyncPayloadToCoreTask, } from './taskSyncPayload.js';
8
10
  import { compareWorkspaceMutationOrdering, getTaskMutationTieBreak, getTaskMutationWatermark } from './workspaceSyncSurface.js';
11
+ import { isTaskMetadataActivityEventId } from './v3/taskMetadataActivityIdentity.js';
12
+ import { fingerprintWorkspaceSyncPayload, WorkspaceSyncRevisionConflictError, WorkspaceSyncDurabilityStore, } from './v3/syncDurabilityStore.js';
13
+ import { runTaxonomyCoexistenceTransaction } from './v3/taxonomyCoexistence.js';
14
+ import { applyInitiativeSyncChangesWithCoexistence } from './v3/initiativeCoexistence.js';
15
+ import { applyWorkstreamSyncChangesWithCoexistence } from './v3/workstreamCoexistence.js';
16
+ import { serializeTaxonomyStateForSync } from './v3/taxonomySyncPayload.js';
17
+ import { TaskforceAgentStore } from '../storage/taskforceAgentStore.js';
18
+ import { TaskforceAgentSkillStore } from '../storage/taskforceAgentSkillStore.js';
19
+ import { TaskforceAgentConversationStore } from '../storage/taskforceAgentConversationStore.js';
20
+ import { AgentRoleStore } from '../storage/agentRoleStore.js';
21
+ import { preserveV3OwnedTaskRoot, preserveV3OwnedTaskLifecycle, preserveV3OwnedTaskMetadata, preserveV3OwnedTaskReopenAssignee, preserveV3OwnedTaskTaxonomy, } from './v3/taskMetadataCoexistence.js';
9
22
  function createIncomingApplyModel() {
10
23
  return {
11
24
  taskMutations: {
12
25
  upserts: [],
13
26
  deletes: new Map(),
14
27
  },
28
+ taskRelationships: new Map(),
15
29
  planning: {
16
30
  incomingTaxonomies: null,
17
31
  incomingTaxonomyState: null,
18
32
  incomingTaxonomiesUpdatedAt: '',
33
+ incomingTaxonomyDurableRevision: null,
19
34
  incomingInitiatives: new Map(),
20
35
  incomingWorkstreams: new Map(),
36
+ incomingIdentities: new Map(),
21
37
  },
22
38
  profiles: {
23
39
  incomingAiProfiles: new Map(),
@@ -35,6 +51,10 @@ function createIncomingApplyModel() {
35
51
  incomingDocumentReviewCommentDeletes: new Map(),
36
52
  incomingAnnotatedAttachmentSessions: new Map(),
37
53
  incomingAnnotatedAttachmentSessionDeletes: new Map(),
54
+ incomingTaskforceAgents: new Map(),
55
+ incomingAgentRoles: new Map(),
56
+ incomingTaskforceAgentSkills: new Map(),
57
+ incomingAgentConversations: new Map(),
38
58
  },
39
59
  taskActivity: {
40
60
  incomingTaskEvents: new Map(),
@@ -46,8 +66,11 @@ export function resolveSyncConflictOrdering(incomingWatermark, existingWatermark
46
66
  }
47
67
  function shouldSkipTaskClassification(op) {
48
68
  return (op === 'delete'
69
+ || op === 'task-relationship-upsert'
70
+ || op === 'task-relationship-delete'
49
71
  || op === 'initiative-upsert'
50
72
  || op === 'workstream-upsert'
73
+ || op === 'planning-identity-upsert'
51
74
  || op === 'document-upsert'
52
75
  || op === 'document-delete'
53
76
  || op === 'asset-upsert'
@@ -57,7 +80,41 @@ function shouldSkipTaskClassification(op) {
57
80
  || op === 'document-review-comment-upsert'
58
81
  || op === 'document-review-comment-delete'
59
82
  || op === 'annotated-attachment-session-upsert'
60
- || op === 'annotated-attachment-session-delete');
83
+ || op === 'annotated-attachment-session-delete'
84
+ || op === 'taskforce-agent-upsert'
85
+ || op === 'agent-role-upsert'
86
+ || op === 'taskforce-agent-skill-upsert'
87
+ || op === 'agent-conversation-upsert');
88
+ }
89
+ function normalizeDurableTaskRevision(raw, task) {
90
+ if (raw === undefined)
91
+ return null;
92
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
93
+ throw new Error('Task durable revision must be an object.');
94
+ }
95
+ const source = raw;
96
+ const expectedKeys = [
97
+ 'canonicalFingerprint', 'contractVersion', 'domain', 'entityId', 'entityRevision',
98
+ 'lifecycleRevision', 'mutationKind', 'payloadFingerprint', 'sequence', 'taxonomyOwned',
99
+ ].sort();
100
+ const actualKeys = Object.keys(source).sort();
101
+ if (actualKeys.length !== expectedKeys.length || actualKeys.some((key, index) => key !== expectedKeys[index])) {
102
+ throw new Error('Task durable revision contains missing or unknown fields.');
103
+ }
104
+ if (source.contractVersion !== 3
105
+ || source.domain !== 'task'
106
+ || source.entityId !== task.id
107
+ || source.mutationKind !== 'replicated-state'
108
+ || typeof source.sequence !== 'string' || !/^[1-9]\d*$/.test(source.sequence)
109
+ || typeof source.entityRevision !== 'string' || !/^[1-9]\d*$/.test(source.entityRevision)
110
+ || typeof source.lifecycleRevision !== 'string' || !/^(0|[1-9]\d*)$/.test(source.lifecycleRevision)
111
+ || typeof source.canonicalFingerprint !== 'string' || !/^[a-f0-9]{64}$/.test(source.canonicalFingerprint)
112
+ || typeof source.payloadFingerprint !== 'string' || !/^[a-f0-9]{64}$/.test(source.payloadFingerprint)
113
+ || typeof source.taxonomyOwned !== 'boolean'
114
+ || fingerprintWorkspaceSyncPayload(task) !== source.payloadFingerprint) {
115
+ throw new Error('Task durable revision does not match its task payload.');
116
+ }
117
+ return source;
61
118
  }
62
119
  function recordTaskReferenceNumberMismatch(input) {
63
120
  const { core, workspaceId, task, recordSyncDiagnostic, } = input;
@@ -88,14 +145,35 @@ export function classifyWorkspaceSyncChanges(input) {
88
145
  for (const change of incomingChanges) {
89
146
  const raw = change;
90
147
  const op = String(raw.op || '').trim().toLowerCase();
148
+ if (op === 'task-relationship-upsert' || op === 'task-relationship-delete') {
149
+ const value = raw.relationship;
150
+ const id = String(value?.id || '').trim();
151
+ const sourceTaskId = String(value?.sourceTaskId || '').trim();
152
+ const targetTaskId = String(value?.targetTaskId || '').trim();
153
+ const kind = String(value?.kind || '').trim();
154
+ const updatedAt = String(value?.updatedAt || '').trim();
155
+ if (id && sourceTaskId && targetTaskId && ['dependency', 'related', 'supersedes'].includes(kind) && Number.isFinite(Date.parse(updatedAt))) {
156
+ model.taskRelationships.set(id, {
157
+ id, workspaceId, sourceTaskId, targetTaskId,
158
+ kind: kind,
159
+ createdBy: value?.createdBy || null,
160
+ createdAt: String(value?.createdAt || updatedAt),
161
+ updatedBy: value?.updatedBy || null,
162
+ updatedAt,
163
+ deletedBy: value?.deletedBy || null,
164
+ deletedAt: op === 'task-relationship-delete' ? String(value?.deletedAt || updatedAt) : value?.deletedAt || null,
165
+ });
166
+ }
167
+ continue;
168
+ }
91
169
  if (op === 'taxonomy-upsert') {
92
170
  const taxonomy = normalizeTaxonomySyncPayload(raw);
93
- if (taxonomy?.taxonomyState)
94
- model.planning.incomingTaxonomyState = taxonomy.taxonomyState;
95
- if (Array.isArray(taxonomy?.taxonomies))
96
- model.planning.incomingTaxonomies = taxonomy.taxonomies;
97
- if (taxonomy?.updatedAt)
171
+ if (taxonomy) {
172
+ model.planning.incomingTaxonomyState = taxonomy.taxonomyState || null;
173
+ model.planning.incomingTaxonomies = Array.isArray(taxonomy.taxonomies) ? taxonomy.taxonomies : null;
98
174
  model.planning.incomingTaxonomiesUpdatedAt = taxonomy.updatedAt;
175
+ model.planning.incomingTaxonomyDurableRevision = taxonomy.durableRevision || null;
176
+ }
99
177
  continue;
100
178
  }
101
179
  if (op === 'initiative-upsert') {
@@ -110,6 +188,26 @@ export function classifyWorkspaceSyncChanges(input) {
110
188
  model.planning.incomingWorkstreams.set(workstream.id, workstream);
111
189
  continue;
112
190
  }
191
+ if (op === 'planning-identity-upsert') {
192
+ const value = raw.identity;
193
+ const entityType = value?.entityType === 'initiative' || value?.entityType === 'workstream'
194
+ ? value.entityType
195
+ : null;
196
+ const entityId = String(value?.entityId || '').trim();
197
+ const updatedAt = String(value?.updatedAt || raw.updatedAt || raw.watermark || '').trim();
198
+ if (!entityType || !entityId || !Number.isFinite(Date.parse(updatedAt))) {
199
+ throw new Error('Planning identity sync payload is invalid.');
200
+ }
201
+ const identity = {
202
+ entityType,
203
+ entityId,
204
+ icon: assertPlanningIdentityIcon(value?.icon),
205
+ color: assertPlanningIdentityColor(value?.color),
206
+ updatedAt,
207
+ };
208
+ model.planning.incomingIdentities.set(`${entityType}:${entityId}`, identity);
209
+ continue;
210
+ }
113
211
  if (op === 'ai-profile-upsert') {
114
212
  const profile = normalizeAiProfileSyncPayload(raw.profile, workspaceId, normalizeIncomingAiProfileSurfaceType, normalizeIncomingAiProfileSeatScope, 'apply.aiProfileUpsert');
115
213
  const profileId = String(profile?.id || '').trim();
@@ -178,8 +276,15 @@ export function classifyWorkspaceSyncChanges(input) {
178
276
  }
179
277
  if (op === 'document-review-comment-delete') {
180
278
  const deletedComment = normalizeDeleteSyncPayload(raw, 'commentId');
181
- if (deletedComment)
182
- model.collaboration.incomingDocumentReviewCommentDeletes.set(deletedComment.id, deletedComment.deletedAt);
279
+ if (deletedComment) {
280
+ const deletedByActorId = typeof raw.deletedByActorId === 'string' && raw.deletedByActorId.trim().length > 0
281
+ ? raw.deletedByActorId.trim()
282
+ : null;
283
+ model.collaboration.incomingDocumentReviewCommentDeletes.set(deletedComment.id, {
284
+ deletedAt: deletedComment.deletedAt,
285
+ deletedByActorId,
286
+ });
287
+ }
183
288
  continue;
184
289
  }
185
290
  if (op === 'annotated-attachment-session-upsert') {
@@ -194,6 +299,30 @@ export function classifyWorkspaceSyncChanges(input) {
194
299
  model.collaboration.incomingAnnotatedAttachmentSessionDeletes.set(deletedSession.id, deletedSession.deletedAt);
195
300
  continue;
196
301
  }
302
+ if (op === 'taskforce-agent-upsert') {
303
+ const agent = normalizeTaskforceAgentSyncPayload(raw.agent, workspaceId, String(raw.updatedAt || raw.watermark || '').trim());
304
+ if (agent)
305
+ model.collaboration.incomingTaskforceAgents.set(agent.id, agent);
306
+ continue;
307
+ }
308
+ if (op === 'agent-role-upsert') {
309
+ const role = normalizeAgentRoleSyncPayload(raw.role, workspaceId, String(raw.updatedAt || raw.watermark || '').trim());
310
+ if (role)
311
+ model.collaboration.incomingAgentRoles.set(role.id, role);
312
+ continue;
313
+ }
314
+ if (op === 'taskforce-agent-skill-upsert') {
315
+ const skill = normalizeTaskforceAgentSkillSyncPayload(raw.skill, workspaceId, String(raw.updatedAt || raw.watermark || '').trim());
316
+ if (skill)
317
+ model.collaboration.incomingTaskforceAgentSkills.set(skill.id, skill);
318
+ continue;
319
+ }
320
+ if (op === 'agent-conversation-upsert') {
321
+ const conversation = normalizeAgentConversationSyncPayload(raw.conversation, workspaceId, String(raw.updatedAt || raw.watermark || '').trim());
322
+ if (conversation)
323
+ model.collaboration.incomingAgentConversations.set(conversation.id, conversation);
324
+ continue;
325
+ }
197
326
  if (op === 'task-event-upsert' || op === 'entity-event-upsert') {
198
327
  const event = normalizeTaskEventSyncPayload(raw.event, workspaceId, String(raw.updatedAt || raw.watermark || '').trim());
199
328
  if (event)
@@ -205,7 +334,24 @@ export function classifyWorkspaceSyncChanges(input) {
205
334
  const task = normalizeTaskSyncPayload(raw.task);
206
335
  const deleteTaskId = String(raw.taskId || raw.id || task?.id || '').trim();
207
336
  if (deleteTaskId) {
208
- model.taskMutations.deletes.set(deleteTaskId, String(raw.deletedAt || raw.watermark || new Date().toISOString()).trim());
337
+ const actorType = raw.actorType === 'human' || raw.actorType === 'ai' || raw.actorType === 'system'
338
+ ? raw.actorType
339
+ : undefined;
340
+ const source = raw.source === 'ui' || raw.source === 'mcp' || raw.source === 'sync' || raw.source === 'workspace-delete' || raw.source === 'system'
341
+ ? raw.source
342
+ : undefined;
343
+ const details = raw.details && typeof raw.details === 'object' && !Array.isArray(raw.details)
344
+ ? raw.details
345
+ : undefined;
346
+ const suppliedDeletedAt = String(raw.deletedAt || raw.watermark || '').trim();
347
+ model.taskMutations.deletes.set(deleteTaskId, {
348
+ deletedAt: suppliedDeletedAt || new Date().toISOString(),
349
+ suppliedDeletedAt: Boolean(suppliedDeletedAt),
350
+ ...(raw.actor ? { actor: String(raw.actor) } : {}),
351
+ ...(actorType ? { actorType } : {}),
352
+ ...(source ? { source } : {}),
353
+ ...(details ? { details } : {}),
354
+ });
209
355
  }
210
356
  }
211
357
  for (const change of incomingChanges) {
@@ -216,52 +362,206 @@ export function classifyWorkspaceSyncChanges(input) {
216
362
  const task = normalizeTaskSyncPayload(raw.task);
217
363
  if (!task)
218
364
  continue;
365
+ const durableRevision = normalizeDurableTaskRevision(raw.durableRevision, task);
219
366
  model.taskMutations.upserts.push({
220
367
  archived: raw.archived === true || task.isArchived === true,
221
368
  task,
369
+ ...(durableRevision ? { durableRevision } : {}),
222
370
  });
223
371
  }
224
372
  return model;
225
373
  }
226
374
  export function prepareTaskSyncSnapshotApply(input) {
227
- const { core, workspaceId, taskMutations, recordSyncDiagnostic, } = input;
375
+ const { core, workspaceId, taskMutations, recordSyncDiagnostic, v3OwnedTaskMetadataIds, v3OwnedTaskRootIds, v3OwnedTaskTaxonomyIds, v3OwnedTaskDeleteIds, v3OwnedTaskLifecycleIds, v3OwnedTaskReopenAssigneeIds, coexistenceDirection, recordReferenceNumberMismatch = true, } = input;
228
376
  const prepared = {
229
377
  tasks: [],
230
378
  archived: [],
379
+ authoritativeTaskTaxonomyIds: [],
380
+ authoritativeTaskNestedContentIds: [],
381
+ metadataPreservedTaskIds: [],
382
+ metadataSeededTaskIds: [],
383
+ lifecyclePreservedTaskIds: [],
384
+ reopenAssigneePreservedTaskIds: [],
231
385
  };
232
386
  for (const mutation of taskMutations.upserts) {
233
- const task = mutation.task;
234
- const taskId = String(task.id || '').trim();
235
- recordTaskReferenceNumberMismatch({
236
- core,
237
- workspaceId,
238
- task: task,
239
- recordSyncDiagnostic,
240
- });
241
- const deleteWatermark = taskId ? String(taskMutations.deletes.get(taskId) || '').trim() : '';
387
+ const incomingTask = mutation.task;
388
+ const taskId = String(incomingTask.id || '').trim();
389
+ if (taskId && mutation.durableRevision?.taxonomyOwned)
390
+ prepared.authoritativeTaskTaxonomyIds.push(taskId);
391
+ if (taskId && v3OwnedTaskRootIds?.has(taskId))
392
+ prepared.authoritativeTaskNestedContentIds.push(taskId);
393
+ if (taskId && v3OwnedTaskDeleteIds?.has(taskId))
394
+ continue;
395
+ const existing = taskId && (v3OwnedTaskRootIds?.has(taskId) || v3OwnedTaskMetadataIds?.has(taskId) || v3OwnedTaskTaxonomyIds?.has(taskId) || v3OwnedTaskLifecycleIds?.has(taskId) || v3OwnedTaskReopenAssigneeIds?.has(taskId))
396
+ ? core.getTask(taskId, workspaceId)
397
+ : null;
398
+ let task = incomingTask;
399
+ if (taskId && v3OwnedTaskRootIds?.has(taskId)) {
400
+ if (!existing) {
401
+ throw Object.assign(new Error(`V2 task carrier ${taskId} is missing its v3-owned task root.`), { code: 'SYNC_V2_TASK_CARRIER_ROOT_MISSING', statusCode: 409 });
402
+ }
403
+ task = preserveV3OwnedTaskRoot(task, existing);
404
+ }
405
+ if (existing && v3OwnedTaskMetadataIds?.has(taskId)) {
406
+ task = preserveV3OwnedTaskMetadata(task, existing);
407
+ if (coexistenceDirection)
408
+ prepared.metadataPreservedTaskIds.push(taskId);
409
+ }
410
+ if (existing
411
+ && v3OwnedTaskTaxonomyIds?.has(taskId)
412
+ && !(coexistenceDirection === 'local-pull' && mutation.durableRevision?.taxonomyOwned)) {
413
+ task = preserveV3OwnedTaskTaxonomy(task, existing);
414
+ }
415
+ if (existing && v3OwnedTaskLifecycleIds?.has(taskId)) {
416
+ task = preserveV3OwnedTaskLifecycle(task, existing);
417
+ if (coexistenceDirection)
418
+ prepared.lifecyclePreservedTaskIds.push(taskId);
419
+ }
420
+ if (existing && v3OwnedTaskReopenAssigneeIds?.has(taskId)) {
421
+ task = preserveV3OwnedTaskReopenAssignee(task, existing);
422
+ if (coexistenceDirection)
423
+ prepared.reopenAssigneePreservedTaskIds.push(taskId);
424
+ }
425
+ if (!existing
426
+ && taskId
427
+ && coexistenceDirection === 'cloud-push'
428
+ && v3OwnedTaskMetadataIds?.has(taskId)) {
429
+ // A metadata operation cannot create its missing cloud entity. Seed the
430
+ // entity once from the same local snapshot; the active assertion keeps
431
+ // later v2 pushes protected until v3 acceptance records ownership.
432
+ prepared.metadataSeededTaskIds.push(taskId);
433
+ }
434
+ if (recordReferenceNumberMismatch) {
435
+ recordTaskReferenceNumberMismatch({
436
+ core,
437
+ workspaceId,
438
+ task: task,
439
+ recordSyncDiagnostic,
440
+ });
441
+ }
442
+ const deleteWatermark = taskId ? String(taskMutations.deletes.get(taskId)?.deletedAt || '').trim() : '';
242
443
  if (taskId && deleteWatermark) {
243
444
  const compareAgainstDelete = resolveSyncConflictOrdering(deleteWatermark, String(task.updatedAt || task.createdAt || '').trim(), `delete:${taskId}`, getTaskMutationTieBreak(task, mutation.archived));
244
445
  if (compareAgainstDelete >= 0)
245
446
  continue;
246
447
  }
247
- if (mutation.archived)
448
+ if (task.isArchived === true)
248
449
  prepared.archived.push(task);
249
450
  else
250
451
  prepared.tasks.push(task);
251
452
  }
252
453
  return prepared;
253
454
  }
455
+ export function prepareDurableTaskPullMutations(input) {
456
+ const upserts = [];
457
+ const pendingRevisions = [];
458
+ for (const mutation of input.taskMutations.upserts) {
459
+ const marker = mutation.durableRevision;
460
+ if (!marker) {
461
+ upserts.push(mutation);
462
+ continue;
463
+ }
464
+ const current = input.store.readWorkspaceDomainOwnership({
465
+ tenantId: input.tenantId,
466
+ workspaceId: input.workspaceId,
467
+ domain: 'task',
468
+ entityId: marker.entityId,
469
+ });
470
+ if (current.activeOperation)
471
+ throw new WorkspaceSyncRevisionConflictError({
472
+ domain: 'task',
473
+ entityId: marker.entityId,
474
+ reason: 'active-local-operation',
475
+ });
476
+ const incomingRevision = BigInt(marker.entityRevision);
477
+ const currentRevision = BigInt(current.entityRevision);
478
+ if (incomingRevision < currentRevision)
479
+ continue;
480
+ if (incomingRevision === currentRevision) {
481
+ if (current.lifecycleRevision !== marker.lifecycleRevision
482
+ || current.lastSequence !== marker.sequence
483
+ || current.canonicalFingerprint !== marker.canonicalFingerprint)
484
+ throw new WorkspaceSyncRevisionConflictError({
485
+ domain: 'task',
486
+ entityId: marker.entityId,
487
+ reason: 'equal-revision-divergence',
488
+ incoming: {
489
+ sequence: marker.sequence,
490
+ entityRevision: marker.entityRevision,
491
+ lifecycleRevision: marker.lifecycleRevision,
492
+ canonicalFingerprint: marker.canonicalFingerprint,
493
+ },
494
+ current,
495
+ });
496
+ upserts.push(mutation);
497
+ pendingRevisions.push(marker);
498
+ continue;
499
+ }
500
+ if (current.lastSequence !== null && BigInt(marker.sequence) <= BigInt(current.lastSequence)) {
501
+ throw new WorkspaceSyncRevisionConflictError({
502
+ domain: 'task',
503
+ entityId: marker.entityId,
504
+ reason: 'sequence-regression',
505
+ incoming: {
506
+ sequence: marker.sequence,
507
+ entityRevision: marker.entityRevision,
508
+ lifecycleRevision: marker.lifecycleRevision,
509
+ canonicalFingerprint: marker.canonicalFingerprint,
510
+ },
511
+ current,
512
+ });
513
+ }
514
+ upserts.push(mutation);
515
+ pendingRevisions.push(marker);
516
+ }
517
+ return {
518
+ taskMutations: { upserts, deletes: input.taskMutations.deletes },
519
+ pendingRevisions,
520
+ };
521
+ }
522
+ export function applyDurableTaskPullRevisions(input) {
523
+ for (const marker of input.revisions) {
524
+ input.store.applyReplicatedEntityRevision({
525
+ tenantId: input.tenantId,
526
+ workspaceId: input.workspaceId,
527
+ domain: marker.domain,
528
+ entityId: marker.entityId,
529
+ sequence: marker.sequence,
530
+ entityRevision: marker.entityRevision,
531
+ lifecycleRevision: marker.lifecycleRevision,
532
+ canonicalFingerprint: marker.canonicalFingerprint,
533
+ now: input.now,
534
+ applyMutation: () => undefined,
535
+ });
536
+ if (marker.taxonomyOwned) {
537
+ input.store.markTaskTaxonomyProjectionOwned({
538
+ tenantId: input.tenantId,
539
+ workspaceId: input.workspaceId,
540
+ taskIds: [marker.entityId],
541
+ now: input.now,
542
+ });
543
+ }
544
+ }
545
+ }
254
546
  export function applyTaskSyncDeletes(input) {
255
547
  const { core, workspaceId, taskMutations, recordSyncDiagnostic, } = input;
256
- for (const [taskId, deleteWatermark] of taskMutations.deletes.entries()) {
548
+ for (const [taskId, deletion] of taskMutations.deletes.entries()) {
257
549
  try {
550
+ const deleteWatermark = deletion.deletedAt;
258
551
  const existingTask = core.getTask(taskId, workspaceId);
259
552
  if (existingTask) {
260
553
  const compareAgainstExisting = resolveSyncConflictOrdering(deleteWatermark, getTaskMutationWatermark(existingTask), `delete:${taskId}`, getTaskMutationTieBreak(existingTask, Boolean(existingTask.isArchived)));
261
554
  if (compareAgainstExisting < 0)
262
555
  continue;
263
556
  }
264
- core.deleteTaskForSync(taskId, workspaceId, { persistBackup: false });
557
+ core.deleteTaskForSync(taskId, workspaceId, {
558
+ persistBackup: false,
559
+ ...(deletion.suppliedDeletedAt ? { deletedAt: deletion.deletedAt } : {}),
560
+ ...(deletion.actor ? { actor: deletion.actor } : {}),
561
+ ...(deletion.actorType ? { actorType: deletion.actorType } : {}),
562
+ ...(deletion.source ? { source: deletion.source } : {}),
563
+ ...(deletion.details ? { details: deletion.details } : {}),
564
+ });
265
565
  }
266
566
  catch (error) {
267
567
  recordSyncDiagnostic(workspaceId, 'apply', 'Failed to delete task during sync apply.', {
@@ -269,20 +569,79 @@ export function applyTaskSyncDeletes(input) {
269
569
  taskId,
270
570
  error: String(error?.message || error || '')
271
571
  });
572
+ if (input.failFast)
573
+ throw error;
272
574
  }
273
575
  }
274
576
  return taskMutations.deletes.size;
275
577
  }
276
578
  export function applyPreparedTaskSyncSnapshot(input) {
277
- const { core, workspaceId, prepared, } = input;
278
- return core.applyWorkspaceSyncSnapshot({
579
+ const { core, workspaceId, prepared, deferSideEffects, } = input;
580
+ const snapshot = {
279
581
  tasks: prepared.tasks.map(taskSyncPayloadToCoreTask),
280
582
  archived: prepared.archived.map(taskSyncPayloadToCoreTask)
281
- }, workspaceId);
583
+ };
584
+ const options = {
585
+ ...(deferSideEffects ? { deferSideEffects: true } : {}),
586
+ ...(prepared.authoritativeTaskTaxonomyIds.length > 0
587
+ ? { authoritativeTaskTaxonomyIds: new Set(prepared.authoritativeTaskTaxonomyIds) }
588
+ : {}),
589
+ ...(prepared.authoritativeTaskNestedContentIds.length > 0
590
+ ? { authoritativeTaskNestedContentIds: new Set(prepared.authoritativeTaskNestedContentIds) }
591
+ : {}),
592
+ };
593
+ return Object.keys(options).length > 0
594
+ ? core.applyWorkspaceSyncSnapshot(snapshot, workspaceId, options)
595
+ : core.applyWorkspaceSyncSnapshot(snapshot, workspaceId);
596
+ }
597
+ export function applyTaskRelationshipSyncChanges(input) {
598
+ let applied = 0;
599
+ let skipped = 0;
600
+ const ordered = [...input.relationships.values()].sort((left, right) => {
601
+ if (Boolean(left.deletedAt) !== Boolean(right.deletedAt))
602
+ return left.deletedAt ? 1 : -1;
603
+ return left.updatedAt.localeCompare(right.updatedAt) || left.id.localeCompare(right.id);
604
+ });
605
+ for (const relationship of ordered) {
606
+ if (input.protectedRelationshipIds?.has(relationship.id)) {
607
+ skipped += 1;
608
+ continue;
609
+ }
610
+ try {
611
+ if (input.core.applyTaskRelationshipForSync(relationship, input.workspaceId) === 'applied')
612
+ applied += 1;
613
+ else
614
+ skipped += 1;
615
+ }
616
+ catch (error) {
617
+ input.recordSyncDiagnostic(input.workspaceId, 'apply', `Rejected task relationship ${relationship.id}: ${String(error?.message || error)}`, {
618
+ source: 'apply.taskRelationship', relationshipId: relationship.id,
619
+ sourceTaskId: relationship.sourceTaskId, targetTaskId: relationship.targetTaskId,
620
+ });
621
+ throw error;
622
+ }
623
+ }
624
+ return { applied, skipped };
282
625
  }
283
626
  export function applyPlanningSyncChanges(input) {
284
- const { core, workspaceId, incomingInitiatives, incomingWorkstreams, incomingTaxonomies, incomingTaxonomyState, incomingTaxonomiesUpdatedAt, workspaceTaxonomySyncMeta, recordSyncDiagnostic, } = input;
285
- if (incomingInitiatives.size > 0) {
627
+ const { core, workspaceId, incomingInitiatives, incomingWorkstreams, recordSyncDiagnostic, } = input;
628
+ if (incomingInitiatives.size > 0 && input.coexistenceDirection) {
629
+ if (!input.durabilityStore || !input.tenantId || !input.now) {
630
+ throw new Error('Initiative coexistence requires durability store, tenant, and timestamp.');
631
+ }
632
+ applyInitiativeSyncChangesWithCoexistence({
633
+ store: input.durabilityStore,
634
+ core,
635
+ tenantId: input.tenantId,
636
+ workspaceId,
637
+ direction: input.coexistenceDirection,
638
+ incomingInitiatives,
639
+ assertedActiveInitiativeIds: input.assertedActiveV3InitiativeIds,
640
+ requiredProjectionOwner: input.requiredInitiativeProjectionOwner,
641
+ now: input.now,
642
+ });
643
+ }
644
+ else if (incomingInitiatives.size > 0) {
286
645
  for (const initiative of incomingInitiatives.values()) {
287
646
  try {
288
647
  core.upsertInitiativeForSync({
@@ -292,6 +651,7 @@ export function applyPlanningSyncChanges(input) {
292
651
  title: initiative.title,
293
652
  description: initiative.description,
294
653
  ownerId: initiative.ownerId,
654
+ ...(initiative.comments !== undefined ? { comments: initiative.comments } : {}),
295
655
  createdAt: initiative.createdAt,
296
656
  updatedAt: initiative.updatedAt,
297
657
  order: initiative.order,
@@ -309,7 +669,22 @@ export function applyPlanningSyncChanges(input) {
309
669
  }
310
670
  }
311
671
  }
312
- if (incomingWorkstreams.size > 0) {
672
+ if (incomingWorkstreams.size > 0 && input.coexistenceDirection) {
673
+ if (!input.durabilityStore || !input.tenantId || !input.now) {
674
+ throw new Error('Workstream coexistence requires durability store, tenant, and timestamp.');
675
+ }
676
+ applyWorkstreamSyncChangesWithCoexistence({
677
+ store: input.durabilityStore,
678
+ core,
679
+ tenantId: input.tenantId,
680
+ workspaceId,
681
+ direction: input.coexistenceDirection,
682
+ incomingWorkstreams,
683
+ requiredCombinedProjectionOwner: input.coexistenceDirection === 'local-pull' ? 'v2' : undefined,
684
+ now: input.now,
685
+ });
686
+ }
687
+ else if (incomingWorkstreams.size > 0) {
313
688
  for (const workstream of incomingWorkstreams.values()) {
314
689
  try {
315
690
  core.upsertWorkstreamForSync({
@@ -320,6 +695,7 @@ export function applyPlanningSyncChanges(input) {
320
695
  title: workstream.title,
321
696
  description: workstream.description,
322
697
  ownerId: workstream.ownerId,
698
+ ...(workstream.comments !== undefined ? { comments: workstream.comments } : {}),
323
699
  createdAt: workstream.createdAt,
324
700
  updatedAt: workstream.updatedAt,
325
701
  order: workstream.order,
@@ -337,39 +713,130 @@ export function applyPlanningSyncChanges(input) {
337
713
  }
338
714
  }
339
715
  }
340
- if (incomingTaxonomyState || Array.isArray(incomingTaxonomies)) {
341
- const nextTaxonomyState = incomingTaxonomyState || { taxonomies: incomingTaxonomies || [] };
342
- if (!incomingTaxonomiesUpdatedAt) {
343
- if (typeof core.updateTaxonomyState === 'function') {
344
- core.updateTaxonomyState(nextTaxonomyState, workspaceId);
345
- }
346
- else {
347
- core.updateTaxonomies(Array.isArray(incomingTaxonomies) ? incomingTaxonomies : []);
348
- }
716
+ for (const identity of input.incomingIdentities?.values() || []) {
717
+ const applied = core.applyPlanningEntityIdentityForSync(identity, workspaceId);
718
+ if (!applied) {
719
+ throw new Error(`Planning identity parent is missing: ${identity.entityType}:${identity.entityId}`);
720
+ }
721
+ }
722
+ }
723
+ export function applyTaxonomySyncChanges(input) {
724
+ const hasTaxonomy = Boolean(input.incomingTaxonomyState) || Array.isArray(input.incomingTaxonomies);
725
+ if (!hasTaxonomy)
726
+ return { applied: false, protected: false };
727
+ const nextTaxonomyState = input.incomingTaxonomyState
728
+ || { taxonomies: (input.incomingTaxonomies || []) };
729
+ let pendingTaxonomyMeta = null;
730
+ let notifyLegacyCommit = false;
731
+ const applyLegacy = (boundaryHeld = false) => {
732
+ const applyState = () => boundaryHeld
733
+ ? input.core.replaceTaxonomyStateForLegacySync(nextTaxonomyState, input.workspaceId)
734
+ : input.core.updateTaxonomyState(nextTaxonomyState, input.workspaceId);
735
+ if (!input.incomingTaxonomiesUpdatedAt) {
736
+ applyState();
737
+ if (boundaryHeld)
738
+ notifyLegacyCommit = true;
349
739
  const fallbackHash = createHash('sha256').update(JSON.stringify(nextTaxonomyState)).digest('hex');
350
- workspaceTaxonomySyncMeta.set(workspaceId, {
351
- updatedAt: new Date().toISOString(),
352
- hash: fallbackHash
353
- });
740
+ pendingTaxonomyMeta = { updatedAt: new Date().toISOString(), hash: fallbackHash };
741
+ return true;
354
742
  }
355
- else {
356
- const incomingTaxonomyHash = createHash('sha256').update(JSON.stringify(nextTaxonomyState)).digest('hex');
357
- const currentMeta = workspaceTaxonomySyncMeta.get(workspaceId) || { updatedAt: '', hash: '' };
358
- const compare = resolveSyncConflictOrdering(incomingTaxonomiesUpdatedAt, currentMeta.updatedAt, incomingTaxonomyHash, currentMeta.hash);
359
- if (compare >= 0) {
360
- if (typeof core.updateTaxonomyState === 'function') {
361
- core.updateTaxonomyState(nextTaxonomyState, workspaceId);
362
- }
363
- else {
364
- core.updateTaxonomies(Array.isArray(incomingTaxonomies) ? incomingTaxonomies : []);
743
+ const incomingHash = createHash('sha256').update(JSON.stringify(nextTaxonomyState)).digest('hex');
744
+ const currentMeta = input.workspaceTaxonomySyncMeta.get(input.workspaceId) || { updatedAt: '', hash: '' };
745
+ const compare = resolveSyncConflictOrdering(input.incomingTaxonomiesUpdatedAt, currentMeta.updatedAt, incomingHash, currentMeta.hash);
746
+ if (compare < 0)
747
+ return false;
748
+ applyState();
749
+ if (boundaryHeld)
750
+ notifyLegacyCommit = true;
751
+ pendingTaxonomyMeta = { updatedAt: input.incomingTaxonomiesUpdatedAt, hash: incomingHash };
752
+ return true;
753
+ };
754
+ if (!input.coexistenceDirection) {
755
+ const result = { applied: applyLegacy(), protected: false };
756
+ if (pendingTaxonomyMeta)
757
+ input.workspaceTaxonomySyncMeta.set(input.workspaceId, pendingTaxonomyMeta);
758
+ return result;
759
+ }
760
+ const store = new WorkspaceSyncDurabilityStore(input.core.getDatabaseAdapter());
761
+ let notifyDurableCommit = false;
762
+ const result = runTaxonomyCoexistenceTransaction({
763
+ store,
764
+ tenantId: input.core.getTenantId(),
765
+ workspaceId: input.workspaceId,
766
+ direction: input.coexistenceDirection,
767
+ now: input.incomingTaxonomiesUpdatedAt || new Date().toISOString(),
768
+ apply: (ownership) => {
769
+ if (input.coexistenceDirection === 'cloud-push') {
770
+ if (ownership.owned || ownership.activeOperation || input.assertedActiveV3Taxonomy === true) {
771
+ return { applied: false, protected: true };
365
772
  }
366
- workspaceTaxonomySyncMeta.set(workspaceId, {
367
- updatedAt: incomingTaxonomiesUpdatedAt,
368
- hash: incomingTaxonomyHash
369
- });
773
+ return { applied: applyLegacy(true), protected: false };
774
+ }
775
+ if (ownership.activeOperation)
776
+ return { applied: false, protected: true };
777
+ const marker = input.incomingDurableRevision;
778
+ if (!marker) {
779
+ if (ownership.owned)
780
+ return { applied: false, protected: true };
781
+ return { applied: applyLegacy(true), protected: false };
782
+ }
783
+ if (!input.incomingTaxonomyState) {
784
+ throw new Error('A durable taxonomy revision requires a complete taxonomy state.');
785
+ }
786
+ const canonicalState = serializeTaxonomyStateForSync(input.incomingTaxonomyState);
787
+ const canonicalFingerprint = fingerprintWorkspaceSyncPayload(canonicalState);
788
+ if (canonicalFingerprint !== marker.canonicalFingerprint) {
789
+ throw new Error('Taxonomy durable revision fingerprint does not match the payload.');
370
790
  }
791
+ const replicated = store.applyReplicatedEntityRevision({
792
+ tenantId: input.core.getTenantId(),
793
+ workspaceId: input.workspaceId,
794
+ domain: marker.domain,
795
+ entityId: marker.entityId,
796
+ sequence: marker.sequence,
797
+ entityRevision: marker.entityRevision,
798
+ lifecycleRevision: marker.lifecycleRevision,
799
+ canonicalFingerprint,
800
+ now: input.incomingTaxonomiesUpdatedAt,
801
+ applyMutation: () => input.core.replaceTaxonomyStateForDurableSync({
802
+ workspaceId: input.workspaceId,
803
+ taxonomyState: canonicalState,
804
+ updatedAt: input.incomingTaxonomiesUpdatedAt,
805
+ }),
806
+ });
807
+ if (replicated.state === 'applied') {
808
+ notifyDurableCommit = true;
809
+ }
810
+ if (replicated.state === 'deferred') {
811
+ throw new Error('Taxonomy replication cannot defer its installed revision.');
812
+ }
813
+ return {
814
+ applied: replicated.state === 'applied',
815
+ protected: replicated.state !== 'applied',
816
+ revisionState: replicated.state,
817
+ };
818
+ },
819
+ });
820
+ if (notifyDurableCommit) {
821
+ input.workspaceTaxonomySyncMeta.set(input.workspaceId, {
822
+ updatedAt: input.incomingTaxonomiesUpdatedAt,
823
+ hash: input.incomingDurableRevision.canonicalFingerprint,
824
+ });
825
+ try {
826
+ input.core.notifyDurableTaxonomyCommitted(input.workspaceId);
371
827
  }
828
+ catch { /* committed taxonomy state remains authoritative */ }
372
829
  }
830
+ else if (pendingTaxonomyMeta) {
831
+ input.workspaceTaxonomySyncMeta.set(input.workspaceId, pendingTaxonomyMeta);
832
+ }
833
+ if (notifyLegacyCommit) {
834
+ try {
835
+ input.core.notifyTaxonomyStateForLegacySync(input.workspaceId);
836
+ }
837
+ catch { /* committed taxonomy state remains authoritative */ }
838
+ }
839
+ return result;
373
840
  }
374
841
  export function applyAiProfileAndMemberSyncChanges(input) {
375
842
  const { core, workspaceId, incomingAiProfiles, workspaceMembers, recordSyncDiagnostic, assertSyncedAiProfilesPersisted, createSyncRouteError, } = input;
@@ -384,6 +851,8 @@ export function applyAiProfileAndMemberSyncChanges(input) {
384
851
  username: profile.username,
385
852
  icon: profile.icon,
386
853
  color: profile.color,
854
+ colorSource: parseAiProfileColorSource(profile.colorSource),
855
+ colorUpdatedAt: profile.colorUpdatedAt ?? null,
387
856
  ...(Object.prototype.hasOwnProperty.call(profile, 'avatarUrl') ? { avatarUrl: profile.avatarUrl ?? null } : {}),
388
857
  ...(Object.prototype.hasOwnProperty.call(profile, 'avatarSourceUrl') ? { avatarSourceUrl: profile.avatarSourceUrl ?? null } : {}),
389
858
  ...(Object.prototype.hasOwnProperty.call(profile, 'avatarRevision') ? { avatarRevision: profile.avatarRevision ?? 0 } : {}),
@@ -441,7 +910,7 @@ export function applyAiProfileAndMemberSyncChanges(input) {
441
910
  }
442
911
  }
443
912
  export async function applyContentSyncChanges(input) {
444
- const { core, workspaceId, incomingDocuments, incomingDocumentDeletes, incomingAssets, incomingAssetDeletes, basePath, hasObjectStorageClient, hasDocumentSyncMetadataDrift, hasBinaryAssetSyncMetadataDrift, getExistingDocument, writeWorkspaceSyncDocument, deleteWorkspaceSyncDocument, writeWorkspaceSyncBinaryAsset, deleteWorkspaceSyncBinaryAsset, getExistingBinaryAsset, recordSyncDiagnostic, options, } = input;
913
+ const { core, workspaceId, incomingDocuments, incomingDocumentDeletes, incomingAssets, incomingAssetDeletes, basePath, hasObjectStorageClient, hasDocumentSyncMetadataDrift, hasBinaryAssetSyncMetadataDrift, getExistingDocument, writeWorkspaceSyncDocument, deleteWorkspaceSyncDocument, writeWorkspaceSyncBinaryAsset, deleteWorkspaceSyncBinaryAsset, getExistingBinaryAsset, recordSyncDiagnostic, options, phase = 'all', } = input;
445
914
  const contentApplyFailures = [];
446
915
  const recordContentApplyFailure = (failure) => {
447
916
  contentApplyFailures.push(failure);
@@ -456,7 +925,7 @@ export async function applyContentSyncChanges(input) {
456
925
  error.details = { failures: contentApplyFailures.slice(0, 10) };
457
926
  throw error;
458
927
  };
459
- if (incomingDocuments.length > 0) {
928
+ if (phase !== 'deletes' && incomingDocuments.length > 0) {
460
929
  for (const doc of incomingDocuments) {
461
930
  try {
462
931
  const existingDoc = core.getDocumentWatermark(workspaceId, doc.path);
@@ -474,7 +943,11 @@ export async function applyContentSyncChanges(input) {
474
943
  }
475
944
  }
476
945
  const compare = resolveSyncConflictOrdering(doc.updatedAt, existingUpdatedAt, incomingHash, existingHash);
477
- if (compare < 0)
946
+ const replacesExternalPlaceholder = metadataDrift
947
+ && existingDocFallback?.storageProvider === 'external'
948
+ && Boolean(doc.assetId && doc.assetId !== existingDocFallback.assetId)
949
+ && Date.parse(doc.updatedAt) === Date.parse(existingUpdatedAt);
950
+ if (compare < 0 && !replacesExternalPlaceholder)
478
951
  continue;
479
952
  if (compare === 0 && existingHash === incomingHash && !metadataDrift && !hasObjectStorageClient())
480
953
  continue;
@@ -500,7 +973,7 @@ export async function applyContentSyncChanges(input) {
500
973
  }
501
974
  }
502
975
  }
503
- if (incomingDocumentDeletes.size > 0) {
976
+ if (phase !== 'upserts' && incomingDocumentDeletes.size > 0) {
504
977
  for (const [docPath, deletedAt] of incomingDocumentDeletes.entries()) {
505
978
  const existingDoc = core.getDocumentWatermark(workspaceId, docPath);
506
979
  const existingUpdatedAt = String(existingDoc?.updatedAt || '').trim();
@@ -511,7 +984,7 @@ export async function applyContentSyncChanges(input) {
511
984
  deleteWorkspaceSyncDocument(basePath, docPath, workspaceId);
512
985
  }
513
986
  }
514
- if (incomingAssets.length > 0) {
987
+ if (phase !== 'deletes' && incomingAssets.length > 0) {
515
988
  for (const asset of incomingAssets) {
516
989
  try {
517
990
  const localAssetPath = path.resolve(basePath, asset.path);
@@ -554,7 +1027,7 @@ export async function applyContentSyncChanges(input) {
554
1027
  }
555
1028
  }
556
1029
  throwIfContentApplyFailed();
557
- if (incomingAssetDeletes.size > 0) {
1030
+ if (phase !== 'upserts' && incomingAssetDeletes.size > 0) {
558
1031
  for (const [assetPath, deletedAt] of incomingAssetDeletes.entries()) {
559
1032
  const existing = getExistingBinaryAsset(assetPath, workspaceId);
560
1033
  const existingUpdatedAt = String(existing?.updatedAt || '').trim();
@@ -579,7 +1052,7 @@ export async function applyContentSyncChanges(input) {
579
1052
  }
580
1053
  }
581
1054
  export function applyCollaborationSyncChanges(input) {
582
- const { core, workspaceId, incomingDocumentReviewSessions, incomingDocumentReviewSessionDeletes, incomingDocumentReviewComments, incomingDocumentReviewCommentDeletes, incomingAnnotatedAttachmentSessions, incomingAnnotatedAttachmentSessionDeletes, recordSyncDiagnostic, createSyncRouteError, } = input;
1055
+ const { core, workspaceId, incomingDocumentReviewSessions, incomingDocumentReviewSessionDeletes, incomingDocumentReviewComments, incomingDocumentReviewCommentDeletes, incomingAnnotatedAttachmentSessions, incomingAnnotatedAttachmentSessionDeletes, incomingTaskforceAgents = new Map(), incomingAgentRoles = new Map(), incomingTaskforceAgentSkills = new Map(), incomingAgentConversations = new Map(), recordSyncDiagnostic, createSyncRouteError, } = input;
583
1056
  if (incomingDocumentReviewSessions.size > 0) {
584
1057
  for (const session of incomingDocumentReviewSessions.values()) {
585
1058
  try {
@@ -625,7 +1098,9 @@ export function applyCollaborationSyncChanges(input) {
625
1098
  }
626
1099
  }
627
1100
  if (incomingDocumentReviewComments.size > 0) {
628
- for (const comment of incomingDocumentReviewComments.values()) {
1101
+ const orderedDocumentReviewComments = Array.from(incomingDocumentReviewComments.values())
1102
+ .sort((left, right) => Number(Boolean(left.parentCommentId)) - Number(Boolean(right.parentCommentId)));
1103
+ for (const comment of orderedDocumentReviewComments) {
629
1104
  try {
630
1105
  const existingComments = core.listDocumentReviewCommentsForSync({
631
1106
  workspaceId,
@@ -633,29 +1108,84 @@ export function applyCollaborationSyncChanges(input) {
633
1108
  });
634
1109
  const existing = existingComments.find((entry) => entry.id === comment.id) || null;
635
1110
  const incomingTieBreak = createHash('sha256')
636
- .update(JSON.stringify({ body: comment.body, anchor: comment.anchor, deletedAt: comment.deletedAt }))
1111
+ .update(JSON.stringify({
1112
+ body: comment.body,
1113
+ anchor: comment.anchor,
1114
+ deletedAt: comment.deletedAt,
1115
+ parentCommentId: comment.parentCommentId,
1116
+ authorActorId: comment.authorActorId,
1117
+ updatedByActorId: comment.updatedByActorId,
1118
+ deletedByActorId: comment.deletedByActorId,
1119
+ }))
637
1120
  .digest('hex');
638
1121
  const existingTieBreak = existing
639
1122
  ? createHash('sha256')
640
- .update(JSON.stringify({ body: existing.body, anchor: existing.anchor, deletedAt: existing.deletedAt }))
1123
+ .update(JSON.stringify({
1124
+ body: existing.body,
1125
+ anchor: existing.anchor,
1126
+ deletedAt: existing.deletedAt,
1127
+ parentCommentId: existing.parentCommentId,
1128
+ authorActorId: existing.authorActorId,
1129
+ updatedByActorId: existing.updatedByActorId,
1130
+ deletedByActorId: existing.deletedByActorId,
1131
+ }))
641
1132
  .digest('hex')
642
1133
  : '';
643
- const compare = resolveSyncConflictOrdering(comment.updatedAt, String(existing?.updatedAt || '').trim(), incomingTieBreak, existingTieBreak);
644
- if (compare < 0)
1134
+ const metadataCompare = resolveSyncConflictOrdering(comment.updatedAt, String(existing?.updatedAt || '').trim(), incomingTieBreak, existingTieBreak);
1135
+ const incomingLifecycleTieBreak = createHash('sha256')
1136
+ .update(JSON.stringify({
1137
+ threadStatus: comment.threadStatus,
1138
+ resolvedAt: comment.resolvedAt,
1139
+ resolvedByActorId: comment.resolvedByActorId,
1140
+ }))
1141
+ .digest('hex');
1142
+ const existingLifecycleTieBreak = existing
1143
+ ? createHash('sha256')
1144
+ .update(JSON.stringify({
1145
+ threadStatus: existing.threadStatus,
1146
+ resolvedAt: existing.resolvedAt,
1147
+ resolvedByActorId: existing.resolvedByActorId,
1148
+ }))
1149
+ .digest('hex')
1150
+ : '';
1151
+ const lifecycleCompare = comment.threadStatusUpdatedAt === undefined
1152
+ ? -1
1153
+ : resolveSyncConflictOrdering(String(comment.threadStatusUpdatedAt || '').trim(), String(existing?.threadStatusUpdatedAt || '').trim(), incomingLifecycleTieBreak, existingLifecycleTieBreak);
1154
+ if (metadataCompare < 0 && lifecycleCompare < 0)
645
1155
  continue;
646
1156
  core.upsertDocumentReviewCommentForSync({
647
1157
  id: comment.id,
648
1158
  tenantId: core.getTenantId(),
649
1159
  workspaceId,
650
- sessionId: comment.sessionId,
651
- body: comment.body,
652
- anchor: comment.anchor,
653
- order: comment.order,
654
- authorActorId: comment.authorActorId,
655
- createdAt: comment.createdAt,
656
- updatedAt: comment.updatedAt,
657
- deletedAt: comment.deletedAt,
1160
+ sessionId: metadataCompare >= 0 ? comment.sessionId : existing.sessionId,
1161
+ body: metadataCompare >= 0 ? comment.body : existing.body,
1162
+ anchor: (metadataCompare >= 0 ? comment.anchor : existing.anchor),
1163
+ order: metadataCompare >= 0 ? comment.order : existing.order,
1164
+ authorActorId: metadataCompare >= 0 ? comment.authorActorId : existing.authorActorId,
1165
+ updatedByActorId: metadataCompare >= 0 ? comment.updatedByActorId : existing.updatedByActorId,
1166
+ deletedByActorId: metadataCompare >= 0 ? comment.deletedByActorId : existing.deletedByActorId,
1167
+ parentCommentId: metadataCompare >= 0 ? comment.parentCommentId : existing.parentCommentId,
1168
+ threadStatus: lifecycleCompare >= 0 ? comment.threadStatus : undefined,
1169
+ threadStatusUpdatedAt: lifecycleCompare >= 0 ? comment.threadStatusUpdatedAt : undefined,
1170
+ resolvedAt: lifecycleCompare >= 0 ? comment.resolvedAt : undefined,
1171
+ resolvedByActorId: lifecycleCompare >= 0 ? comment.resolvedByActorId : undefined,
1172
+ createdAt: metadataCompare >= 0 ? comment.createdAt : existing.createdAt,
1173
+ updatedAt: metadataCompare >= 0 ? comment.updatedAt : existing.updatedAt,
1174
+ deletedAt: metadataCompare >= 0 ? comment.deletedAt : existing.deletedAt,
658
1175
  });
1176
+ if (comment.parentCommentId) {
1177
+ const rootExists = core.listDocumentReviewCommentsForSync({
1178
+ workspaceId,
1179
+ includeDeleted: true,
1180
+ }).some((entry) => entry.id === comment.parentCommentId && !entry.deletedAt && !entry.parentCommentId);
1181
+ if (!rootExists) {
1182
+ recordSyncDiagnostic(workspaceId, 'apply', 'Retained document review reply awaiting its root comment.', {
1183
+ source: 'apply.documentReviewCommentOrphan',
1184
+ commentId: comment.id,
1185
+ parentCommentId: comment.parentCommentId,
1186
+ });
1187
+ }
1188
+ }
659
1189
  }
660
1190
  catch (error) {
661
1191
  recordSyncDiagnostic(workspaceId, 'apply', 'Failed to upsert document review comment during sync apply.', {
@@ -693,7 +1223,8 @@ export function applyCollaborationSyncChanges(input) {
693
1223
  }
694
1224
  }
695
1225
  if (incomingDocumentReviewCommentDeletes.size > 0) {
696
- for (const [commentId, deletedAt] of incomingDocumentReviewCommentDeletes.entries()) {
1226
+ for (const [commentId, deletion] of incomingDocumentReviewCommentDeletes.entries()) {
1227
+ const { deletedAt, deletedByActorId } = deletion;
697
1228
  try {
698
1229
  const existing = core.listDocumentReviewCommentsForSync({
699
1230
  workspaceId,
@@ -702,7 +1233,12 @@ export function applyCollaborationSyncChanges(input) {
702
1233
  const compare = resolveSyncConflictOrdering(deletedAt, String(existing?.updatedAt || '').trim(), `delete:${commentId}`, String(existing?.id || '').trim());
703
1234
  if (existing && compare < 0)
704
1235
  continue;
705
- core.deleteDocumentReviewCommentForSync({ workspaceId, commentId, deletedAt });
1236
+ core.deleteDocumentReviewCommentForSync({
1237
+ workspaceId,
1238
+ commentId,
1239
+ deletedAt,
1240
+ deletedByActorId,
1241
+ });
706
1242
  }
707
1243
  catch (error) {
708
1244
  recordSyncDiagnostic(workspaceId, 'apply', 'Failed to delete document review comment during sync apply.', {
@@ -782,6 +1318,232 @@ export function applyCollaborationSyncChanges(input) {
782
1318
  }
783
1319
  }
784
1320
  }
1321
+ if (incomingTaskforceAgents.size > 0) {
1322
+ const agentStore = new TaskforceAgentStore(core.getDatabaseAdapter(), core.getTenantId());
1323
+ for (const agent of incomingTaskforceAgents.values()) {
1324
+ try {
1325
+ const existing = agentStore.getForSync(workspaceId, agent.id);
1326
+ const incomingTieBreak = createHash('sha256')
1327
+ .update(JSON.stringify({
1328
+ definition: agent.definition,
1329
+ definitionRevision: agent.definitionRevision,
1330
+ definitionHash: agent.definitionHash,
1331
+ lifecycleStatus: agent.lifecycleStatus,
1332
+ managedProfileId: agent.managedProfileId,
1333
+ name: agent.name,
1334
+ modelProvider: agent.modelProvider,
1335
+ providerKey: agent.providerKey,
1336
+ modelKey: agent.modelKey,
1337
+ modelTier: agent.modelTier,
1338
+ systemPrompt: agent.systemPrompt,
1339
+ enabled: agent.enabled,
1340
+ deletedAt: agent.deletedAt ?? null,
1341
+ }))
1342
+ .digest('hex');
1343
+ const existingTieBreak = existing
1344
+ ? createHash('sha256')
1345
+ .update(JSON.stringify({
1346
+ definition: existing.definitionValue,
1347
+ definitionRevision: existing.definitionRevision,
1348
+ definitionHash: existing.definitionHash,
1349
+ lifecycleStatus: existing.lifecycleStatus,
1350
+ managedProfileId: existing.managedProfileId,
1351
+ name: existing.name,
1352
+ modelProvider: existing.modelProvider,
1353
+ providerKey: existing.providerKey,
1354
+ modelKey: existing.modelKey,
1355
+ modelTier: existing.modelTier,
1356
+ systemPrompt: existing.systemPrompt,
1357
+ enabled: existing.enabled,
1358
+ deletedAt: existing.deletedAt ?? null,
1359
+ }))
1360
+ .digest('hex')
1361
+ : '';
1362
+ const compare = resolveSyncConflictOrdering(agent.deletedAt || agent.updatedAt, String(existing?.deletedAt || existing?.updatedAt || '').trim(), incomingTieBreak, existingTieBreak);
1363
+ if (compare < 0)
1364
+ continue;
1365
+ agentStore.upsertForSync({
1366
+ id: agent.id,
1367
+ workspaceId,
1368
+ ...(Object.prototype.hasOwnProperty.call(agent, 'definition') ? {
1369
+ definition: agent.definition,
1370
+ definitionRevision: agent.definitionRevision,
1371
+ definitionHash: agent.definitionHash,
1372
+ lifecycleStatus: agent.lifecycleStatus,
1373
+ managedProfileId: agent.managedProfileId,
1374
+ } : {}),
1375
+ name: agent.name,
1376
+ modelProvider: agent.modelProvider,
1377
+ providerKey: agent.providerKey,
1378
+ modelKey: agent.modelKey,
1379
+ modelTier: agent.modelTier,
1380
+ systemPrompt: agent.systemPrompt,
1381
+ enabled: agent.enabled,
1382
+ createdByUserId: agent.createdByUserId,
1383
+ updatedByUserId: agent.updatedByUserId,
1384
+ createdAt: agent.createdAt,
1385
+ updatedAt: agent.updatedAt,
1386
+ deletedAt: agent.deletedAt,
1387
+ });
1388
+ }
1389
+ catch (error) {
1390
+ const syncError = error;
1391
+ const rejectionCode = String(syncError?.code || '').trim();
1392
+ const rejectedCanonicalPayload = (rejectionCode === 'TASKFORCE_AGENT_SYNC_HASH_MISMATCH'
1393
+ || rejectionCode === 'TASKFORCE_AGENT_SYNC_INVALID_ENVELOPE'
1394
+ || rejectionCode === 'TASKFORCE_AGENT_SYNC_INVALID_DEFINITION'
1395
+ || rejectionCode === 'TASKFORCE_AGENT_SYNC_LEGACY_PROJECTION_REJECTED');
1396
+ const details = {
1397
+ source: 'apply.taskforceAgentUpsert',
1398
+ agentId: agent.id,
1399
+ error: String(error?.message || error || ''),
1400
+ errorCode: String(error?.code || '').trim() || null
1401
+ };
1402
+ recordSyncDiagnostic(workspaceId, 'apply', 'Failed to upsert Taskforce Agent during sync apply.', details);
1403
+ throw createSyncRouteError(`Failed to persist Taskforce Agent ${agent.id} during sync apply: ${String(error?.message || error || 'Unknown error')}`, details, {
1404
+ code: rejectedCanonicalPayload ? rejectionCode : 'TASKFORCE_AGENT_SYNC_APPLY_FAILED',
1405
+ statusCode: rejectedCanonicalPayload ? 409 : 500,
1406
+ });
1407
+ }
1408
+ }
1409
+ }
1410
+ if (incomingAgentRoles.size > 0) {
1411
+ const roleStore = new AgentRoleStore(core.getDatabaseAdapter(), core.getTenantId());
1412
+ for (const role of incomingAgentRoles.values()) {
1413
+ try {
1414
+ const existing = roleStore.get(workspaceId, role.id, { includeDeleted: true });
1415
+ const incomingTieBreak = createHash('sha256')
1416
+ .update(JSON.stringify({
1417
+ lifecycleStatus: role.lifecycleStatus,
1418
+ currentRevision: role.currentRevision,
1419
+ currentContentHash: role.currentContentHash,
1420
+ revisions: role.revisions,
1421
+ deletedAt: role.deletedAt,
1422
+ }))
1423
+ .digest('hex');
1424
+ const existingSnapshot = existing
1425
+ ? roleStore.listForSync(workspaceId).find((entry) => entry.id === role.id)
1426
+ : null;
1427
+ const existingTieBreak = existingSnapshot
1428
+ ? createHash('sha256')
1429
+ .update(JSON.stringify({
1430
+ lifecycleStatus: existingSnapshot.lifecycleStatus,
1431
+ currentRevision: existingSnapshot.currentRevision,
1432
+ currentContentHash: existingSnapshot.currentContentHash,
1433
+ revisions: existingSnapshot.revisions,
1434
+ deletedAt: existingSnapshot.deletedAt,
1435
+ }))
1436
+ .digest('hex')
1437
+ : '';
1438
+ const compare = resolveSyncConflictOrdering(role.deletedAt || role.updatedAt, String(existing?.deletedAt || existing?.updatedAt || '').trim(), incomingTieBreak, existingTieBreak);
1439
+ if (compare < 0)
1440
+ continue;
1441
+ roleStore.upsertForSync(role);
1442
+ }
1443
+ catch (error) {
1444
+ const domainCode = String(error?.code || '').trim();
1445
+ const details = {
1446
+ source: 'apply.agentRoleUpsert',
1447
+ roleId: role.id,
1448
+ error: String(error?.message || error || ''),
1449
+ errorCode: domainCode || null,
1450
+ };
1451
+ recordSyncDiagnostic(workspaceId, 'apply', 'Failed to upsert Agent Role during sync apply.', details);
1452
+ throw createSyncRouteError(`Failed to persist Agent Role ${role.id} during sync apply: ${String(error?.message || error || 'Unknown error')}`, details, { code: domainCode || 'AGENT_ROLE_SYNC_APPLY_FAILED', statusCode: 409 });
1453
+ }
1454
+ }
1455
+ }
1456
+ if (incomingTaskforceAgentSkills.size > 0) {
1457
+ const skillStore = new TaskforceAgentSkillStore(core.getDatabaseAdapter(), core.getTenantId());
1458
+ for (const skill of incomingTaskforceAgentSkills.values()) {
1459
+ try {
1460
+ skillStore.upsertForSync(skill);
1461
+ }
1462
+ catch (error) {
1463
+ const syncError = error;
1464
+ const rejectionCode = String(syncError?.code || '').trim();
1465
+ const rejectedCanonicalPayload = rejectionCode.startsWith('TASKFORCE_AGENT_SKILL_SYNC_');
1466
+ const details = {
1467
+ source: 'apply.taskforceAgentSkillUpsert',
1468
+ skillId: skill.id,
1469
+ error: String(error?.message || error || ''),
1470
+ errorCode: rejectionCode || null
1471
+ };
1472
+ recordSyncDiagnostic(workspaceId, 'apply', 'Failed to upsert Taskforce Agent Skill during sync apply.', details);
1473
+ throw createSyncRouteError(`Failed to persist Taskforce Agent Skill ${skill.id} during sync apply: ${String(error?.message || error || 'Unknown error')}`, details, {
1474
+ code: rejectedCanonicalPayload ? rejectionCode : 'TASKFORCE_AGENT_SKILL_SYNC_APPLY_FAILED',
1475
+ statusCode: rejectedCanonicalPayload ? 409 : 500,
1476
+ });
1477
+ }
1478
+ }
1479
+ }
1480
+ if (incomingAgentConversations.size > 0) {
1481
+ const conversationStore = new TaskforceAgentConversationStore(core.getDatabaseAdapter(), core.getTenantId());
1482
+ for (const conversation of incomingAgentConversations.values()) {
1483
+ try {
1484
+ const existing = conversationStore.getByIdForSync(workspaceId, conversation.id);
1485
+ const incomingTieBreak = createHash('sha256')
1486
+ .update(JSON.stringify({
1487
+ agentId: conversation.agentId,
1488
+ taskId: conversation.taskId,
1489
+ title: conversation.title,
1490
+ messages: conversation.messages,
1491
+ modelProvider: conversation.modelProvider,
1492
+ modelId: conversation.modelId,
1493
+ usage: conversation.usage,
1494
+ latencyMs: conversation.latencyMs,
1495
+ deletedAt: conversation.deletedAt ?? null,
1496
+ }))
1497
+ .digest('hex');
1498
+ const existingTieBreak = existing
1499
+ ? createHash('sha256')
1500
+ .update(JSON.stringify({
1501
+ agentId: existing.agentId,
1502
+ taskId: existing.taskId,
1503
+ title: existing.title,
1504
+ messages: existing.messages,
1505
+ modelProvider: existing.modelProvider,
1506
+ modelId: existing.modelId,
1507
+ usage: existing.usage,
1508
+ latencyMs: existing.latencyMs,
1509
+ deletedAt: existing.deletedAt ?? null,
1510
+ }))
1511
+ .digest('hex')
1512
+ : '';
1513
+ const compare = resolveSyncConflictOrdering(conversation.deletedAt || conversation.updatedAt, String(existing?.deletedAt || existing?.updatedAt || '').trim(), incomingTieBreak, existingTieBreak);
1514
+ if (compare < 0)
1515
+ continue;
1516
+ conversationStore.upsertForSync({
1517
+ id: conversation.id,
1518
+ workspaceId,
1519
+ agentId: conversation.agentId,
1520
+ taskId: conversation.taskId,
1521
+ title: conversation.title,
1522
+ messages: conversation.messages,
1523
+ modelProvider: conversation.modelProvider,
1524
+ modelId: conversation.modelId,
1525
+ usage: conversation.usage,
1526
+ latencyMs: conversation.latencyMs,
1527
+ createdByUserId: conversation.createdByUserId,
1528
+ updatedByUserId: conversation.updatedByUserId,
1529
+ createdAt: conversation.createdAt,
1530
+ updatedAt: conversation.updatedAt,
1531
+ deletedAt: conversation.deletedAt,
1532
+ });
1533
+ }
1534
+ catch (error) {
1535
+ const details = {
1536
+ source: 'apply.agentConversationUpsert',
1537
+ conversationId: conversation.id,
1538
+ agentId: conversation.agentId,
1539
+ error: String(error?.message || error || ''),
1540
+ errorCode: String(error?.code || '').trim() || null
1541
+ };
1542
+ recordSyncDiagnostic(workspaceId, 'apply', 'Failed to upsert Taskforce Agent conversation during sync apply.', details);
1543
+ throw createSyncRouteError(`Failed to persist Taskforce Agent conversation ${conversation.id} during sync apply: ${String(error?.message || error || 'Unknown error')}`, details, { code: 'AGENT_CONVERSATION_SYNC_APPLY_FAILED', statusCode: 500 });
1544
+ }
1545
+ }
1546
+ }
785
1547
  }
786
1548
  export function applyTaskActivitySyncChanges(input) {
787
1549
  const { core, workspaceId, incomingTaskEvents, recordSyncDiagnostic, createSyncRouteError, } = input;
@@ -811,6 +1573,11 @@ export function applyTaskActivitySyncChanges(input) {
811
1573
  workspaceId,
812
1574
  eventId: event.id,
813
1575
  });
1576
+ // V3 installs the authoritative snapshot through its acknowledged
1577
+ // transaction. A delayed legacy event with the same operation ID
1578
+ // must not replace it based on client clock or payload tie-breaks.
1579
+ if (existing && isTaskMetadataActivityEventId(event.id))
1580
+ continue;
814
1581
  const incomingTieBreak = createHash('sha256')
815
1582
  .update(JSON.stringify({
816
1583
  entityType,