@taskforcehq/taskforce 0.3.326 → 0.3.327

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 (1358) hide show
  1. package/LICENSE.md +68 -0
  2. package/README.md +19 -0
  3. package/dist/Taskforce.module.css +2173 -561
  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 +73 -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 +4 -0
  27. package/dist/components/context/ContextAttachmentManager.js +418 -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 +44 -0
  60. package/dist/components/features/planning/PlanningEntitySummary.js +97 -0
  61. package/dist/components/features/planning/PlanningLinkPicker.d.ts +9 -0
  62. package/dist/components/features/planning/PlanningLinkPicker.js +26 -0
  63. package/dist/components/features/planning/PlanningModule.d.ts +6 -0
  64. package/dist/components/features/planning/PlanningModule.js +571 -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/planningCreateIntent.d.ts +10 -0
  76. package/dist/components/features/planning/planningCreateIntent.js +16 -0
  77. package/dist/components/features/planning/planningNavigator.d.ts +33 -0
  78. package/dist/components/features/planning/planningNavigator.js +96 -0
  79. package/dist/components/features/planning/planningTaskArrangement.d.ts +18 -0
  80. package/dist/components/features/planning/planningTaskArrangement.js +106 -0
  81. package/dist/components/features/planning/planningWorkspaceModel.d.ts +121 -0
  82. package/dist/components/features/planning/planningWorkspaceModel.js +5 -0
  83. package/dist/components/features/settings/CategoryManager.js +2 -2
  84. package/dist/components/features/settings/TaxonomyEditor.js +1 -1
  85. package/dist/components/features/settings/TaxonomyManager.js +1 -1
  86. package/dist/components/features/settings/TypeManager.js +1 -1
  87. package/dist/components/features/taskforceAgentAssignments/AgentBehaviorAssignments.d.ts +10 -0
  88. package/dist/components/features/taskforceAgentAssignments/AgentBehaviorAssignments.js +175 -0
  89. package/dist/components/features/taskforceAgentAssignments/agentBehaviorCatalogApi.d.ts +27 -0
  90. package/dist/components/features/taskforceAgentAssignments/agentBehaviorCatalogApi.js +24 -0
  91. package/dist/components/features/taskforceAgentEditorModel.d.ts +109 -0
  92. package/dist/components/features/taskforceAgentEditorModel.js +145 -0
  93. package/dist/components/features/useDocumentWorkspaceController.d.ts +20 -1
  94. package/dist/components/features/useDocumentWorkspaceController.js +106 -21
  95. package/dist/components/features/workflowManager/WorkflowManagerModule.d.ts +11 -0
  96. package/dist/components/features/workflowManager/WorkflowManagerModule.js +313 -0
  97. package/dist/components/features/workflowManager/WorkflowPublishDialog.d.ts +11 -0
  98. package/dist/components/features/workflowManager/WorkflowPublishDialog.js +8 -0
  99. package/dist/components/features/workflowManager/types.d.ts +74 -0
  100. package/dist/components/features/workflowManager/types.js +1 -0
  101. package/dist/components/features/workflowManager/useWorkflowManager.d.ts +30 -0
  102. package/dist/components/features/workflowManager/useWorkflowManager.js +213 -0
  103. package/dist/components/features/workflowManager/workflowManagerApi.d.ts +52 -0
  104. package/dist/components/features/workflowManager/workflowManagerApi.js +142 -0
  105. package/dist/components/task/TaskActionHeader.d.ts +6 -3
  106. package/dist/components/task/TaskActionHeader.js +46 -53
  107. package/dist/components/task/TaskCard.d.ts +10 -2
  108. package/dist/components/task/TaskCard.js +103 -54
  109. package/dist/components/task/TaskContextUpload.d.ts +1 -0
  110. package/dist/components/task/TaskContextUpload.js +3 -2
  111. package/dist/components/task/TaskForm.d.ts +12 -17
  112. package/dist/components/task/TaskForm.js +544 -199
  113. package/dist/components/task/TaskImageReviews.d.ts +8 -0
  114. package/dist/components/task/TaskImageReviews.js +47 -0
  115. package/dist/components/task/TaskKanban.d.ts +9 -10
  116. package/dist/components/task/TaskKanban.js +70 -18
  117. package/dist/components/task/TaskList.d.ts +9 -8
  118. package/dist/components/task/TaskList.js +46 -32
  119. package/dist/components/task/TaskReferenceBadge.d.ts +2 -1
  120. package/dist/components/task/TaskReferenceBadge.js +3 -2
  121. package/dist/components/task/TaskStatusActions.d.ts +3 -1
  122. package/dist/components/task/TaskStatusActions.js +17 -6
  123. package/dist/components/task/TaskWorkflowAssignmentField.d.ts +18 -0
  124. package/dist/components/task/TaskWorkflowAssignmentField.js +362 -0
  125. package/dist/components/task/TaskWorkstreamPicker.d.ts +8 -0
  126. package/dist/components/task/TaskWorkstreamPicker.js +24 -0
  127. package/dist/components/task/TrashRestoreControls.d.ts +18 -0
  128. package/dist/components/task/TrashRestoreControls.js +71 -0
  129. package/dist/components/ui/AiIdentityRosterCard.d.ts +20 -0
  130. package/dist/components/ui/AiIdentityRosterCard.js +5 -0
  131. package/dist/components/ui/AssetTraySortControl.d.ts +10 -0
  132. package/dist/components/ui/AssetTraySortControl.js +38 -0
  133. package/dist/components/ui/AssigneeIdentity.d.ts +12 -0
  134. package/dist/components/ui/AssigneeIdentity.js +41 -0
  135. package/dist/components/ui/DiscardChangesDialog.d.ts +10 -0
  136. package/dist/components/ui/DiscardChangesDialog.js +7 -0
  137. package/dist/components/ui/DisclosureSectionHeader.d.ts +4 -1
  138. package/dist/components/ui/DisclosureSectionHeader.js +2 -2
  139. package/dist/components/ui/EditableAvatarButton.d.ts +6 -1
  140. package/dist/components/ui/EditableAvatarButton.js +6 -5
  141. package/dist/components/ui/HierarchyActionBadge.d.ts +2 -1
  142. package/dist/components/ui/HierarchyActionBadge.js +2 -2
  143. package/dist/components/ui/Markdown.d.ts +13 -3
  144. package/dist/components/ui/Markdown.fixture.d.ts +1 -0
  145. package/dist/components/ui/Markdown.fixture.js +23 -0
  146. package/dist/components/ui/Markdown.js +158 -68
  147. package/dist/components/ui/Modal.d.ts +3 -1
  148. package/dist/components/ui/Modal.js +85 -19
  149. package/dist/components/ui/MultiSelectFilter.d.ts +9 -2
  150. package/dist/components/ui/MultiSelectFilter.js +26 -5
  151. package/dist/components/ui/ReferenceBadgeButton.js +2 -3
  152. package/dist/components/ui/TaxonomyDropdown.d.ts +10 -1
  153. package/dist/components/ui/TaxonomyDropdown.js +149 -58
  154. package/dist/components/ui/TopNoticeLayer.d.ts +2 -1
  155. package/dist/components/ui/TopNoticeLayer.js +5 -2
  156. package/dist/components/ui/useFallbackImageUrl.d.ts +4 -0
  157. package/dist/components/ui/useFallbackImageUrl.js +20 -0
  158. package/dist/components/views/AppShellHeader.js +2 -2
  159. package/dist/components/views/StandaloneLayout.d.ts +1 -0
  160. package/dist/components/views/StandaloneLayout.js +1662 -598
  161. package/dist/components/views/WidgetView.d.ts +1 -0
  162. package/dist/components/views/WidgetView.js +95 -30
  163. package/dist/components/views/chrome/WorkspaceChromeSections.d.ts +4 -2
  164. package/dist/components/views/chrome/WorkspaceChromeSections.js +3 -6
  165. package/dist/components/views/chrome/workspaceChrome.d.ts +5 -8
  166. package/dist/components/views/chrome/workspaceChrome.js +62 -27
  167. package/dist/components/views/panels/FilterToolbar.d.ts +4 -3
  168. package/dist/components/views/panels/FilterToolbar.js +8 -5
  169. package/dist/components/views/panels/FilterToolbarControls.d.ts +11 -2
  170. package/dist/components/views/panels/FilterToolbarControls.js +35 -20
  171. package/dist/components/views/panels/PlanningDrawer.d.ts +60 -49
  172. package/dist/components/views/panels/PlanningDrawer.js +978 -313
  173. package/dist/components/views/planningScope.js +7 -1
  174. package/dist/components/views/standalone/modals/AccountSettingsModal.d.ts +62 -0
  175. package/dist/components/views/standalone/modals/AccountSettingsModal.js +197 -0
  176. package/dist/components/views/standalone/modals/AvatarImageManagerModal.d.ts +7 -2
  177. package/dist/components/views/standalone/modals/AvatarImageManagerModal.js +56 -9
  178. package/dist/components/views/standalone/modals/HelpModal.d.ts +1 -2
  179. package/dist/components/views/standalone/modals/HelpModal.js +3 -4
  180. package/dist/components/views/standalone/modals/SyncStatusModal.d.ts +8 -9
  181. package/dist/components/views/standalone/modals/SyncStatusModal.js +85 -25
  182. package/dist/components/views/standalone/modals/TeamManagementModal.js +1 -1
  183. package/dist/config/applicationBaseUrl.d.ts +2 -0
  184. package/dist/config/applicationBaseUrl.js +23 -0
  185. package/dist/config/envSchema.d.ts +1 -1
  186. package/dist/config/envSchema.js +166 -5
  187. package/dist/core/AdminAuditRetentionService.d.ts +43 -0
  188. package/dist/core/AdminAuditRetentionService.js +126 -0
  189. package/dist/core/AiProfileService.d.ts +34 -0
  190. package/dist/core/AiProfileService.js +510 -251
  191. package/dist/core/AttachmentLinkService.d.ts +10 -2
  192. package/dist/core/AttachmentLinkService.js +44 -12
  193. package/dist/core/AuthIdentityService.d.ts +6 -0
  194. package/dist/core/AuthIdentityService.js +38 -0
  195. package/dist/core/AuthTokenService.d.ts +1 -0
  196. package/dist/core/AuthTokenService.js +13 -0
  197. package/dist/core/DeletedTaskLifecycleService.d.ts +4 -2
  198. package/dist/core/DeletedTaskLifecycleService.js +124 -38
  199. package/dist/core/GlobalSettingsService.d.ts +3 -1
  200. package/dist/core/GlobalSettingsService.js +30 -4
  201. package/dist/core/InitiativeDurableMutationService.d.ts +89 -0
  202. package/dist/core/InitiativeDurableMutationService.js +187 -0
  203. package/dist/core/McpTokenService.d.ts +1 -0
  204. package/dist/core/McpTokenService.js +39 -13
  205. package/dist/core/PlanningCommandPreparationService.d.ts +60 -0
  206. package/dist/core/PlanningCommandPreparationService.js +149 -0
  207. package/dist/core/ScheduleCommandService.d.ts +76 -0
  208. package/dist/core/ScheduleCommandService.js +165 -0
  209. package/dist/core/SyncReconciliationService.d.ts +29 -6
  210. package/dist/core/SyncReconciliationService.js +256 -84
  211. package/dist/core/TaskActivityService.d.ts +22 -2
  212. package/dist/core/TaskActivityService.js +177 -29
  213. package/dist/core/TaskAttachmentLinksDurableMutationService.d.ts +31 -0
  214. package/dist/core/TaskAttachmentLinksDurableMutationService.js +231 -0
  215. package/dist/core/TaskChecklistCommandService.d.ts +50 -0
  216. package/dist/core/TaskChecklistCommandService.js +111 -0
  217. package/dist/core/TaskDurableCreateMutationService.d.ts +38 -0
  218. package/dist/core/TaskDurableCreateMutationService.js +85 -0
  219. package/dist/core/TaskDurableDeleteMutationService.d.ts +47 -0
  220. package/dist/core/TaskDurableDeleteMutationService.js +54 -0
  221. package/dist/core/TaskDurableLifecycleMutationService.d.ts +38 -0
  222. package/dist/core/TaskDurableLifecycleMutationService.js +42 -0
  223. package/dist/core/TaskDurableRelationshipMutationService.d.ts +58 -0
  224. package/dist/core/TaskDurableRelationshipMutationService.js +66 -0
  225. package/dist/core/TaskDurableRestoreMutationService.d.ts +31 -0
  226. package/dist/core/TaskDurableRestoreMutationService.js +33 -0
  227. package/dist/core/TaskDurableStatusMutationService.d.ts +74 -0
  228. package/dist/core/TaskDurableStatusMutationService.js +247 -0
  229. package/dist/core/TaskDurableSyncMutationService.d.ts +34 -0
  230. package/dist/core/TaskDurableSyncMutationService.js +70 -0
  231. package/dist/core/TaskDurableWorkflowMutationService.d.ts +48 -0
  232. package/dist/core/TaskDurableWorkflowMutationService.js +59 -0
  233. package/dist/core/TaskLifecycleCommandService.d.ts +101 -0
  234. package/dist/core/TaskLifecycleCommandService.js +161 -0
  235. package/dist/core/TaskRootCommandPreparationService.d.ts +35 -0
  236. package/dist/core/TaskRootCommandPreparationService.js +103 -0
  237. package/dist/core/Taskforce.d.ts +479 -59
  238. package/dist/core/Taskforce.js +3671 -841
  239. package/dist/core/WorkflowAssignmentService.d.ts +40 -0
  240. package/dist/core/WorkflowAssignmentService.js +158 -0
  241. package/dist/core/WorkflowExecutionService.d.ts +69 -0
  242. package/dist/core/WorkflowExecutionService.js +342 -0
  243. package/dist/core/WorkflowTaskActivationService.d.ts +32 -0
  244. package/dist/core/WorkflowTaskActivationService.js +63 -0
  245. package/dist/core/WorkflowTemplateService.d.ts +64 -0
  246. package/dist/core/WorkflowTemplateService.js +223 -0
  247. package/dist/core/WorkspaceLifecycleService.d.ts +1 -0
  248. package/dist/core/WorkspaceLifecycleService.js +18 -0
  249. package/dist/core/WorkstreamDurableMutationService.d.ts +90 -0
  250. package/dist/core/WorkstreamDurableMutationService.js +184 -0
  251. package/dist/core/planningReferencePolicy.d.ts +14 -0
  252. package/dist/core/planningReferencePolicy.js +53 -0
  253. package/dist/core/taskReferencePolicy.js +24 -3
  254. package/dist/core/types.d.ts +10 -10
  255. package/dist/documentReviews/DocumentReviewCommentStore.d.ts +22 -2
  256. package/dist/documentReviews/DocumentReviewCommentStore.js +92 -8
  257. package/dist/documentReviews/commandService.d.ts +51 -0
  258. package/dist/documentReviews/commandService.js +63 -0
  259. package/dist/documentReviews/service.d.ts +20 -1
  260. package/dist/documentReviews/service.js +234 -24
  261. package/dist/documentReviews/types.d.ts +18 -1
  262. package/dist/hooks/sync/bootstrap.d.ts +3 -7
  263. package/dist/hooks/sync/bootstrap.js +6 -14
  264. package/dist/hooks/sync/browserSyncAuthority.d.ts +21 -0
  265. package/dist/hooks/sync/browserSyncAuthority.js +70 -0
  266. package/dist/hooks/sync/browserSyncRemoteServices.d.ts +29 -0
  267. package/dist/hooks/sync/browserSyncRemoteServices.js +58 -0
  268. package/dist/hooks/sync/controlPlane.d.ts +1 -37
  269. package/dist/hooks/sync/controlPlane.js +1 -78
  270. package/dist/hooks/sync/lifecyclePolicy.d.ts +1 -45
  271. package/dist/hooks/sync/lifecyclePolicy.js +1 -93
  272. package/dist/hooks/sync/orchestratorShared.d.ts +9 -3
  273. package/dist/hooks/sync/orchestratorShared.js +70 -96
  274. package/dist/hooks/sync/pullLifecycle.d.ts +1 -31
  275. package/dist/hooks/sync/pullLifecycle.js +1 -24
  276. package/dist/hooks/sync/realtime.d.ts +4 -1
  277. package/dist/hooks/sync/realtime.js +103 -3
  278. package/dist/hooks/sync/recovery.d.ts +1 -84
  279. package/dist/hooks/sync/recovery.js +1 -245
  280. package/dist/hooks/sync/transfers.d.ts +8 -129
  281. package/dist/hooks/sync/transfers.js +19 -581
  282. package/dist/hooks/sync/useDataVersionRefresh.d.ts +6 -1
  283. package/dist/hooks/sync/useDataVersionRefresh.js +127 -12
  284. package/dist/hooks/sync/useDurableLocalOutboxDrain.d.ts +14 -0
  285. package/dist/hooks/sync/useDurableLocalOutboxDrain.js +208 -0
  286. package/dist/hooks/sync/useDurableTaskCreateMutation.d.ts +15 -0
  287. package/dist/hooks/sync/useDurableTaskCreateMutation.js +152 -0
  288. package/dist/hooks/sync/useDurableTaskDeleteMutation.d.ts +11 -0
  289. package/dist/hooks/sync/useDurableTaskDeleteMutation.js +21 -0
  290. package/dist/hooks/sync/useDurableTaskLifecycleMutation.d.ts +12 -0
  291. package/dist/hooks/sync/useDurableTaskLifecycleMutation.js +22 -0
  292. package/dist/hooks/sync/useDurableTaskMetadataMutation.d.ts +14 -0
  293. package/dist/hooks/sync/useDurableTaskMetadataMutation.js +24 -0
  294. package/dist/hooks/sync/useDurableTaskRestoreMutation.d.ts +12 -0
  295. package/dist/hooks/sync/useDurableTaskRestoreMutation.js +24 -0
  296. package/dist/hooks/sync/useDurableTaskStatusMutation.d.ts +18 -0
  297. package/dist/hooks/sync/useDurableTaskStatusMutation.js +23 -0
  298. package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.d.ts +23 -0
  299. package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.js +414 -0
  300. package/dist/hooks/sync/useSyncStatusActions.d.ts +2 -1
  301. package/dist/hooks/sync/useSyncStatusActions.js +8 -3
  302. package/dist/hooks/tasks/taskHttpMutation.d.ts +25 -0
  303. package/dist/hooks/tasks/taskHttpMutation.js +134 -0
  304. package/dist/hooks/tasks/useCurrentTaskRelations.d.ts +6 -1
  305. package/dist/hooks/tasks/useCurrentTaskRelations.js +32 -6
  306. package/dist/hooks/tasks/useTaskEditorNavigation.d.ts +4 -3
  307. package/dist/hooks/tasks/useTaskEditorNavigation.js +9 -13
  308. package/dist/hooks/tasks/useTaskFormActions.d.ts +17 -2
  309. package/dist/hooks/tasks/useTaskFormActions.js +309 -55
  310. package/dist/hooks/tasks/useTaskReferenceContract.d.ts +5 -0
  311. package/dist/hooks/tasks/useTaskReferenceContract.js +17 -0
  312. package/dist/hooks/tasks/useTaskRelationships.d.ts +1 -3
  313. package/dist/hooks/tasks/useTaskRelationships.js +5 -25
  314. package/dist/hooks/tasks/useTrashSelection.d.ts +12 -0
  315. package/dist/hooks/tasks/useTrashSelection.js +49 -0
  316. package/dist/hooks/ui/useInitiativeTemplates.d.ts +24 -0
  317. package/dist/hooks/ui/useInitiativeTemplates.js +22 -0
  318. package/dist/hooks/ui/useSettingsModel.d.ts +5 -29
  319. package/dist/hooks/ui/useSettingsModel.js +31 -15
  320. package/dist/hooks/ui/useSettingsPersistence.d.ts +0 -1
  321. package/dist/hooks/ui/useSettingsPersistence.js +4 -8
  322. package/dist/hooks/ui/useSettingsTaxonomyManagement.js +31 -0
  323. package/dist/hooks/useFilterSort.d.ts +2 -2
  324. package/dist/hooks/useFilterSort.js +19 -15
  325. package/dist/hooks/useRealtimeSync.d.ts +10 -0
  326. package/dist/hooks/useRealtimeSync.js +57 -4
  327. package/dist/hooks/useSyncOrchestrator.d.ts +32 -1
  328. package/dist/hooks/useSyncOrchestrator.js +963 -287
  329. package/dist/hooks/useTaskData.d.ts +11 -2
  330. package/dist/hooks/useTaskData.js +59 -26
  331. package/dist/hooks/useTaskMutations.d.ts +42 -5
  332. package/dist/hooks/useTaskMutations.js +750 -125
  333. package/dist/hooks/useTaskforce.d.ts +114 -118
  334. package/dist/hooks/useTaskforce.js +1102 -449
  335. package/dist/hooks/useUiNotice.d.ts +5 -1
  336. package/dist/hooks/useUiNotice.js +13 -2
  337. package/dist/hooks/useWorkspaceSyncController.d.ts +9 -0
  338. package/dist/hooks/useWorkspaceSyncController.js +159 -17
  339. package/dist/hooks/workspace/usePersistedAppUiState.d.ts +74 -0
  340. package/dist/hooks/workspace/usePersistedAppUiState.js +325 -0
  341. package/dist/hooks/workspace/usePersistedLayoutUiState.d.ts +76 -0
  342. package/dist/hooks/workspace/usePersistedLayoutUiState.js +479 -0
  343. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.d.ts +2 -7
  344. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +42 -31
  345. package/dist/hooks/workspace/workspaceLocalState.d.ts +17 -6
  346. package/dist/hooks/workspace/workspaceLocalState.js +175 -5
  347. package/dist/hooks/workstreams/workstreamHttpMutation.d.ts +23 -0
  348. package/dist/hooks/workstreams/workstreamHttpMutation.js +134 -0
  349. package/dist/localization/locales/en-US.d.ts +3 -3
  350. package/dist/localization/locales/en-US.js +3 -3
  351. package/dist/localization/locales/es-419.js +3 -3
  352. package/dist/localization/locales/pt-BR.js +3 -3
  353. package/dist/mcp/adminWorkspaceRegistrar.js +2 -30
  354. package/dist/mcp/aiProfileBootstrap.d.ts +3 -0
  355. package/dist/mcp/aiProfileBootstrap.js +4 -0
  356. package/dist/mcp/canonicalAssetHelpers.d.ts +16 -4
  357. package/dist/mcp/canonicalAssetHelpers.js +104 -35
  358. package/dist/mcp/clientIntegrations.d.ts +4 -2
  359. package/dist/mcp/clientIntegrations.js +58 -57
  360. package/dist/mcp/clientRegistry.d.ts +30 -0
  361. package/dist/mcp/clientRegistry.js +134 -0
  362. package/dist/mcp/collaborationRegistrar.js +20 -6
  363. package/dist/mcp/documentAssetRegistrar.js +220 -52
  364. package/dist/mcp/documentContentCommand.d.ts +94 -0
  365. package/dist/mcp/documentContentCommand.js +226 -0
  366. package/dist/mcp/documentHelpers.d.ts +13 -65
  367. package/dist/mcp/documentHelpers.js +49 -62
  368. package/dist/mcp/durableTaskMutationRouter.d.ts +65 -0
  369. package/dist/mcp/durableTaskMutationRouter.js +217 -0
  370. package/dist/mcp/durableTaskRelationshipMutationRouter.d.ts +38 -0
  371. package/dist/mcp/durableTaskRelationshipMutationRouter.js +168 -0
  372. package/dist/mcp/durableTaskRootMutationRouter.d.ts +64 -0
  373. package/dist/mcp/durableTaskRootMutationRouter.js +226 -0
  374. package/dist/mcp/gitWorktreeRoots.d.ts +2 -0
  375. package/dist/mcp/gitWorktreeRoots.js +19 -0
  376. package/dist/mcp/legacyServer.d.ts +1 -0
  377. package/dist/mcp/legacyServer.js +42 -0
  378. package/dist/mcp/localCliHealth.d.ts +56 -0
  379. package/dist/mcp/localCliHealth.js +170 -0
  380. package/dist/mcp/localServiceProxy.d.ts +23 -0
  381. package/dist/mcp/localServiceProxy.js +255 -0
  382. package/dist/mcp/mcpInputValidator.d.ts +17 -0
  383. package/dist/mcp/mcpInputValidator.js +58 -0
  384. package/dist/mcp/planningAttachmentCommandAdapter.d.ts +127 -0
  385. package/dist/mcp/planningAttachmentCommandAdapter.js +188 -0
  386. package/dist/mcp/programScaffoldCommandAdapter.d.ts +6 -0
  387. package/dist/mcp/programScaffoldCommandAdapter.js +39 -0
  388. package/dist/mcp/proxyServer.d.ts +1 -0
  389. package/dist/mcp/proxyServer.js +2 -0
  390. package/dist/mcp/runtime.d.ts +82 -1
  391. package/dist/mcp/runtime.js +4285 -1925
  392. package/dist/mcp/server.js +29 -2
  393. package/dist/mcp/sharedLocalServiceGateD.d.ts +115 -0
  394. package/dist/mcp/sharedLocalServiceGateD.js +344 -0
  395. package/dist/mcp/stdioLifecycle.d.ts +22 -0
  396. package/dist/mcp/stdioLifecycle.js +54 -0
  397. package/dist/mcp/taskAttachmentCommandAdapter.d.ts +190 -0
  398. package/dist/mcp/taskAttachmentCommandAdapter.js +464 -0
  399. package/dist/mcp/taskAttachmentHelpers.d.ts +8 -6
  400. package/dist/mcp/taskAttachmentHelpers.js +74 -2
  401. package/dist/mcp/taskAttachmentTypes.d.ts +26 -5
  402. package/dist/mcp/taskPlanCommand.d.ts +64 -0
  403. package/dist/mcp/taskPlanCommand.js +98 -0
  404. package/dist/mcp/taskPlanningRegistrar.js +215 -27
  405. package/dist/mcp/toolCallCompatibility.d.ts +6 -0
  406. package/dist/mcp/toolCallCompatibility.js +16 -0
  407. package/dist/mcp/toolCatalog.d.ts +3 -1
  408. package/dist/mcp/toolProfiles.d.ts +12 -1
  409. package/dist/mcp/toolProfiles.js +43 -0
  410. package/dist/mcp/toolRegistry.d.ts +17 -2
  411. package/dist/mcp/toolRegistry.js +24 -9
  412. package/dist/mcp/workflowExecutionRegistrar.d.ts +2 -0
  413. package/dist/mcp/workflowExecutionRegistrar.js +51 -0
  414. package/dist/migrations/taskSchemaMigrations.d.ts +35 -0
  415. package/dist/migrations/taskSchemaMigrations.js +1797 -4
  416. package/dist/migrations/taskUpdatedAtSyncDriftMigration.d.ts +20 -0
  417. package/dist/migrations/taskUpdatedAtSyncDriftMigration.js +153 -0
  418. package/dist/migrations/taskforceAgentDefinitionMigration.d.ts +26 -0
  419. package/dist/migrations/taskforceAgentDefinitionMigration.js +116 -0
  420. package/dist/plugins/vite.js +48 -17
  421. package/dist/public/Taskforce_Van.webp +0 -0
  422. package/dist/runtime/appGateDefinitions.d.ts +16 -10
  423. package/dist/runtime/appGateDefinitions.js +16 -10
  424. package/dist/runtime/appGates.d.ts +5 -4
  425. package/dist/runtime/appGates.js +4 -3
  426. package/dist/server/aiProfileAvatarAssets.d.ts +11 -8
  427. package/dist/server/aiProfileAvatarAssets.js +159 -70
  428. package/dist/server/auth.js +15 -1
  429. package/dist/server/cors.d.ts +2 -1
  430. package/dist/server/cors.js +45 -8
  431. package/dist/server/email.d.ts +3 -1
  432. package/dist/server/email.js +46 -8
  433. package/dist/server/index.d.ts +24 -1
  434. package/dist/server/index.js +342 -46
  435. package/dist/server/localDataOwnerPermit.d.ts +18 -0
  436. package/dist/server/localDataOwnerPermit.js +58 -0
  437. package/dist/server/localDatabaseIdentity.d.ts +14 -0
  438. package/dist/server/localDatabaseIdentity.js +69 -0
  439. package/dist/server/localRealtimeFileInvalidation.d.ts +1 -0
  440. package/dist/server/localRealtimeFileInvalidation.js +7 -0
  441. package/dist/server/localServiceLease.d.ts +62 -0
  442. package/dist/server/localServiceLease.js +477 -0
  443. package/dist/server/localServiceOwnershipBootstrap.d.ts +19 -0
  444. package/dist/server/localServiceOwnershipBootstrap.js +84 -0
  445. package/dist/server/localServiceSessions.d.ts +87 -0
  446. package/dist/server/localServiceSessions.js +309 -0
  447. package/dist/server/localServiceWindowsAcl.d.ts +8 -0
  448. package/dist/server/localServiceWindowsAcl.js +60 -0
  449. package/dist/server/localSyncProcessLockBootstrap.d.ts +3 -0
  450. package/dist/server/localSyncProcessLockBootstrap.js +16 -0
  451. package/dist/server/localWorkspaceSyncServerComposition.d.ts +59 -0
  452. package/dist/server/localWorkspaceSyncServerComposition.js +91 -0
  453. package/dist/server/localWorkspaceSyncServerRuntime.d.ts +119 -0
  454. package/dist/server/localWorkspaceSyncServerRuntime.js +1163 -0
  455. package/dist/server/rateLimit.d.ts +1 -0
  456. package/dist/server/rateLimit.js +16 -0
  457. package/dist/server/routes/admin.d.ts +2 -4
  458. package/dist/server/routes/admin.js +199 -337
  459. package/dist/server/routes/agentRoles.d.ts +13 -0
  460. package/dist/server/routes/agentRoles.js +273 -0
  461. package/dist/server/routes/agentSkills.d.ts +16 -0
  462. package/dist/server/routes/agentSkills.js +291 -0
  463. package/dist/server/routes/agents.d.ts +49 -0
  464. package/dist/server/routes/agents.js +1455 -0
  465. package/dist/server/routes/annotatedAttachments.js +46 -9
  466. package/dist/server/routes/assetAccess.d.ts +36 -0
  467. package/dist/server/routes/assetAccess.js +93 -0
  468. package/dist/server/routes/auth.d.ts +4 -3
  469. package/dist/server/routes/auth.js +236 -21
  470. package/dist/server/routes/authSupport.d.ts +3 -1
  471. package/dist/server/routes/authSupport.js +22 -8
  472. package/dist/server/routes/documentReviews.d.ts +2 -0
  473. package/dist/server/routes/documentReviews.js +155 -15
  474. package/dist/server/routes/documents.d.ts +1 -0
  475. package/dist/server/routes/documents.js +335 -141
  476. package/dist/server/routes/durableTaskHttpRouters.d.ts +165 -0
  477. package/dist/server/routes/durableTaskHttpRouters.js +89 -0
  478. package/dist/server/routes/localMcpHealth.d.ts +11 -0
  479. package/dist/server/routes/localMcpHealth.js +29 -0
  480. package/dist/server/routes/localService.d.ts +13 -0
  481. package/dist/server/routes/localService.js +444 -0
  482. package/dist/server/routes/localUpdate.d.ts +11 -0
  483. package/dist/server/routes/localUpdate.js +154 -0
  484. package/dist/server/routes/primitives.d.ts +27 -0
  485. package/dist/server/routes/primitives.js +18 -0
  486. package/dist/server/routes/resources.d.ts +1 -10
  487. package/dist/server/routes/resources.js +1 -153
  488. package/dist/server/routes/shared.d.ts +31 -2
  489. package/dist/server/routes/shared.js +394 -0
  490. package/dist/server/routes/sync.d.ts +2 -0
  491. package/dist/server/routes/sync.js +184 -272
  492. package/dist/server/routes/syncAuxRoutes.d.ts +3 -1
  493. package/dist/server/routes/syncAuxRoutes.js +9 -4
  494. package/dist/server/routes/syncCoordinatorLocalRoutes.d.ts +6 -0
  495. package/dist/server/routes/syncCoordinatorLocalRoutes.js +867 -0
  496. package/dist/server/routes/syncPullApplyRoutes.d.ts +29 -1
  497. package/dist/server/routes/syncPullApplyRoutes.js +520 -17
  498. package/dist/server/routes/syncPushRoutes.d.ts +33 -4
  499. package/dist/server/routes/syncPushRoutes.js +251 -62
  500. package/dist/server/routes/syncRouteTypes.d.ts +1 -1
  501. package/dist/server/routes/syncSnapshotRoutes.d.ts +15 -7
  502. package/dist/server/routes/syncSnapshotRoutes.js +95 -17
  503. package/dist/server/routes/syncV3DiagnosticsRoutes.d.ts +14 -0
  504. package/dist/server/routes/syncV3DiagnosticsRoutes.js +72 -0
  505. package/dist/server/routes/syncV3FeedRoutes.d.ts +20 -0
  506. package/dist/server/routes/syncV3FeedRoutes.js +462 -0
  507. package/dist/server/routes/syncV3LocalCaptureRoutes.d.ts +37 -0
  508. package/dist/server/routes/syncV3LocalCaptureRoutes.js +897 -0
  509. package/dist/server/routes/syncV3LocalDispatchRoutes.d.ts +17 -0
  510. package/dist/server/routes/syncV3LocalDispatchRoutes.js +280 -0
  511. package/dist/server/routes/syncV3LocalFeedApplyRoutes.d.ts +17 -0
  512. package/dist/server/routes/syncV3LocalFeedApplyRoutes.js +493 -0
  513. package/dist/server/routes/syncV3LocalOwnershipRoutes.d.ts +10 -0
  514. package/dist/server/routes/syncV3LocalOwnershipRoutes.js +51 -0
  515. package/dist/server/routes/syncV3LocalRecoveryRoutes.d.ts +12 -0
  516. package/dist/server/routes/syncV3LocalRecoveryRoutes.js +78 -0
  517. package/dist/server/routes/syncV3OperationRoutes.d.ts +35 -0
  518. package/dist/server/routes/syncV3OperationRoutes.js +1136 -0
  519. package/dist/server/routes/tasks.d.ts +0 -2
  520. package/dist/server/routes/tasks.js +932 -195
  521. package/dist/server/routes/workflows.d.ts +26 -0
  522. package/dist/server/routes/workflows.js +500 -0
  523. package/dist/server/routes.d.ts +1 -6
  524. package/dist/server/routes.js +148 -339
  525. package/dist/server/smtpTransport.d.ts +11 -3
  526. package/dist/server/smtpTransport.js +9 -2
  527. package/dist/server/start.js +42 -10
  528. package/dist/service/localServiceCli.d.ts +33 -0
  529. package/dist/service/localServiceCli.js +365 -0
  530. package/dist/service/localServiceClientLifecycle.d.ts +25 -0
  531. package/dist/service/localServiceClientLifecycle.js +128 -0
  532. package/dist/service/localServiceOpen.d.ts +17 -0
  533. package/dist/service/localServiceOpen.js +27 -0
  534. package/dist/services/agentRoleResolver.d.ts +4 -0
  535. package/dist/services/agentRoleResolver.js +7 -0
  536. package/dist/services/aiProfileAvatarGenerationService.d.ts +41 -0
  537. package/dist/services/aiProfileAvatarGenerationService.js +158 -0
  538. package/dist/services/avatarImageProvider.d.ts +33 -0
  539. package/dist/services/avatarImageProvider.js +140 -0
  540. package/dist/services/bedrockAnthropicMessagesModelGateway.d.ts +24 -0
  541. package/dist/services/bedrockAnthropicMessagesModelGateway.js +95 -0
  542. package/dist/services/bedrockMantleModelGateway.d.ts +43 -0
  543. package/dist/services/bedrockMantleModelGateway.js +81 -0
  544. package/dist/services/bedrockModelGateway.d.ts +26 -0
  545. package/dist/services/bedrockModelGateway.js +94 -0
  546. package/dist/services/modelGateway.d.ts +82 -0
  547. package/dist/services/modelGateway.js +61 -0
  548. package/dist/services/taskforceAgentAvatarImageProvider.d.ts +8 -0
  549. package/dist/services/taskforceAgentAvatarImageProvider.js +24 -0
  550. package/dist/services/taskforceAgentMcpBridge.d.ts +77 -0
  551. package/dist/services/taskforceAgentMcpBridge.js +527 -0
  552. package/dist/shared/agentRoleDefinition.d.ts +34 -0
  553. package/dist/shared/agentRoleDefinition.js +207 -0
  554. package/dist/shared/aiProfileAvatarEligibility.d.ts +10 -0
  555. package/dist/shared/aiProfileAvatarEligibility.js +27 -0
  556. package/dist/shared/aiProfileColors.d.ts +7 -0
  557. package/dist/shared/aiProfileColors.js +33 -0
  558. package/dist/shared/colorPalette.d.ts +3 -0
  559. package/dist/shared/colorPalette.js +20 -0
  560. package/dist/shared/commentProvenance.d.ts +4 -0
  561. package/dist/shared/commentProvenance.js +6 -0
  562. package/dist/shared/deletedTaskRetention.d.ts +2 -0
  563. package/dist/shared/deletedTaskRetention.js +7 -0
  564. package/dist/shared/passwordPolicy.d.ts +2 -1
  565. package/dist/shared/passwordPolicy.js +9 -0
  566. package/dist/shared/taskDeepLinks.d.ts +28 -0
  567. package/dist/shared/taskDeepLinks.js +48 -0
  568. package/dist/shared/taskRestoreDestination.d.ts +2 -0
  569. package/dist/shared/taskRestoreDestination.js +5 -0
  570. package/dist/shared/taskforceAgentDefinition.d.ts +88 -0
  571. package/dist/shared/taskforceAgentDefinition.js +434 -0
  572. package/dist/shared/taskforceAgentExecutionSnapshot.d.ts +50 -0
  573. package/dist/shared/taskforceAgentExecutionSnapshot.js +68 -0
  574. package/dist/shared/taskforceAgentModels.d.ts +56 -0
  575. package/dist/shared/taskforceAgentModels.js +314 -0
  576. package/dist/shared/taskforceAgentRunContext.d.ts +23 -0
  577. package/dist/shared/taskforceAgentRunContext.js +21 -0
  578. package/dist/shared/taskforceAgentRuntimeResolution.d.ts +31 -0
  579. package/dist/shared/taskforceAgentRuntimeResolution.js +72 -0
  580. package/dist/shared/taskforceAgentSkill.d.ts +33 -0
  581. package/dist/shared/taskforceAgentSkill.js +149 -0
  582. package/dist/storage/agentRoleStore.d.ts +91 -0
  583. package/dist/storage/agentRoleStore.js +385 -0
  584. package/dist/storage/databaseAdapter.d.ts +1 -0
  585. package/dist/storage/databaseAdapter.js +7 -1
  586. package/dist/storage/documentIntegrity.d.ts +12 -3
  587. package/dist/storage/documentIntegrity.js +105 -27
  588. package/dist/storage/objectStorageClient.d.ts +10 -4
  589. package/dist/storage/objectStorageClient.js +73 -43
  590. package/dist/storage/postgresAdapter.d.ts +2 -1
  591. package/dist/storage/postgresAdapter.js +38 -6
  592. package/dist/storage/postgresWorker.js +65 -1
  593. package/dist/storage/sqliteAdapter.d.ts +1 -1
  594. package/dist/storage/sqliteAdapter.js +7 -1
  595. package/dist/storage/sqliteWalHealth.d.ts +71 -0
  596. package/dist/storage/sqliteWalHealth.js +176 -0
  597. package/dist/storage/taskDataPath.d.ts +1 -0
  598. package/dist/storage/taskDataPath.js +20 -0
  599. package/dist/storage/taskforceAgentConversationStore.d.ts +66 -0
  600. package/dist/storage/taskforceAgentConversationStore.js +264 -0
  601. package/dist/storage/taskforceAgentSkillStore.d.ts +93 -0
  602. package/dist/storage/taskforceAgentSkillStore.js +355 -0
  603. package/dist/storage/taskforceAgentStore.d.ts +105 -0
  604. package/dist/storage/taskforceAgentStore.js +549 -0
  605. package/dist/storage/workflowStore.d.ts +223 -0
  606. package/dist/storage/workflowStore.js +1032 -0
  607. package/dist/storage/workspaceAssetStore.d.ts +70 -0
  608. package/dist/storage/workspaceAssetStore.js +418 -25
  609. package/dist/sync/aiProfileAvatarSyncPaths.d.ts +14 -0
  610. package/dist/sync/aiProfileAvatarSyncPaths.js +56 -0
  611. package/dist/sync/cloudSyncApi.d.ts +329 -0
  612. package/dist/sync/cloudSyncApi.js +574 -1
  613. package/dist/sync/collaborationSyncPayload.d.ts +5 -1
  614. package/dist/sync/collaborationSyncPayload.js +213 -1
  615. package/dist/sync/collaborationSyncState.d.ts +23 -3
  616. package/dist/sync/collaborationSyncState.js +92 -3
  617. package/dist/sync/contentSyncPayload.d.ts +9 -0
  618. package/dist/sync/contentSyncPayload.js +29 -0
  619. package/dist/sync/contentSyncState.d.ts +79 -4
  620. package/dist/sync/contentSyncState.js +1113 -313
  621. package/dist/sync/coordinator/localSyncBrowserApplyPermitContext.d.ts +39 -0
  622. package/dist/sync/coordinator/localSyncBrowserApplyPermitContext.js +234 -0
  623. package/dist/sync/coordinator/localSyncBrowserAuthorityCapability.d.ts +7 -0
  624. package/dist/sync/coordinator/localSyncBrowserAuthorityCapability.js +10 -0
  625. package/dist/sync/coordinator/localSyncCommittedApplyPolicy.d.ts +7 -0
  626. package/dist/sync/coordinator/localSyncCommittedApplyPolicy.js +41 -0
  627. package/dist/sync/coordinator/localSyncCoordinatorBrowserClient.d.ts +178 -0
  628. package/dist/sync/coordinator/localSyncCoordinatorBrowserClient.js +131 -0
  629. package/dist/sync/coordinator/localSyncCoordinatorCommandLifecycle.d.ts +25 -0
  630. package/dist/sync/coordinator/localSyncCoordinatorCommandLifecycle.js +200 -0
  631. package/dist/sync/coordinator/localSyncCoordinatorHost.d.ts +84 -0
  632. package/dist/sync/coordinator/localSyncCoordinatorHost.js +435 -0
  633. package/dist/sync/coordinator/localSyncCoordinatorRouteServices.d.ts +33 -0
  634. package/dist/sync/coordinator/localSyncCoordinatorRouteServices.js +1 -0
  635. package/dist/sync/coordinator/localSyncCoordinatorStore.d.ts +122 -0
  636. package/dist/sync/coordinator/localSyncCoordinatorStore.js +1039 -0
  637. package/dist/sync/coordinator/localSyncCoordinatorTypes.d.ts +82 -0
  638. package/dist/sync/coordinator/localSyncCoordinatorTypes.js +9 -0
  639. package/dist/sync/coordinator/localSyncDispatchTracker.d.ts +15 -0
  640. package/dist/sync/coordinator/localSyncDispatchTracker.js +68 -0
  641. package/dist/sync/coordinator/localSyncExecutionPermitStore.d.ts +200 -0
  642. package/dist/sync/coordinator/localSyncExecutionPermitStore.js +1388 -0
  643. package/dist/sync/coordinator/localSyncExecutionPermitTypes.d.ts +52 -0
  644. package/dist/sync/coordinator/localSyncExecutionPermitTypes.js +8 -0
  645. package/dist/sync/coordinator/localSyncOwnershipDrainBarrier.d.ts +33 -0
  646. package/dist/sync/coordinator/localSyncOwnershipDrainBarrier.js +83 -0
  647. package/dist/sync/coordinator/localSyncPermitTransactionHooks.d.ts +9 -0
  648. package/dist/sync/coordinator/localSyncPermitTransactionHooks.js +27 -0
  649. package/dist/sync/coordinator/localSyncProcessLock.d.ts +12 -0
  650. package/dist/sync/coordinator/localSyncProcessLock.js +212 -0
  651. package/dist/sync/coordinator/localSyncV3DispatchRecoveryReconciler.d.ts +17 -0
  652. package/dist/sync/coordinator/localSyncV3DispatchRecoveryReconciler.js +82 -0
  653. package/dist/sync/coordinator/localWorkspaceSyncRunner.d.ts +134 -0
  654. package/dist/sync/coordinator/localWorkspaceSyncRunner.js +981 -0
  655. package/dist/sync/coordinator/localWorkspaceSyncRunnerState.d.ts +189 -0
  656. package/dist/sync/coordinator/localWorkspaceSyncRunnerState.js +961 -0
  657. package/dist/sync/coordinator/workspaceSyncCloudCredentialValidator.d.ts +19 -0
  658. package/dist/sync/coordinator/workspaceSyncCloudCredentialValidator.js +83 -0
  659. package/dist/sync/coordinator/workspaceSyncCredentialBroker.d.ts +117 -0
  660. package/dist/sync/coordinator/workspaceSyncCredentialBroker.js +323 -0
  661. package/dist/sync/coordinator/workspaceSyncLocalAccessBootstrap.d.ts +11 -0
  662. package/dist/sync/coordinator/workspaceSyncLocalAccessBootstrap.js +51 -0
  663. package/dist/sync/coordinator/workspaceSyncTransportGateway.d.ts +139 -0
  664. package/dist/sync/coordinator/workspaceSyncTransportGateway.js +738 -0
  665. package/dist/sync/engine/localWorkspaceContentManifestService.d.ts +21 -0
  666. package/dist/sync/engine/localWorkspaceContentManifestService.js +44 -0
  667. package/dist/sync/engine/workspaceSyncAtomicLocalPublisher.d.ts +36 -0
  668. package/dist/sync/engine/workspaceSyncAtomicLocalPublisher.js +203 -0
  669. package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.d.ts +21 -0
  670. package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.js +13 -0
  671. package/dist/sync/engine/workspaceSyncContentPullObligationStore.d.ts +65 -0
  672. package/dist/sync/engine/workspaceSyncContentPullObligationStore.js +160 -0
  673. package/dist/sync/engine/workspaceSyncContentVersionStore.d.ts +216 -0
  674. package/dist/sync/engine/workspaceSyncContentVersionStore.js +1068 -0
  675. package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.d.ts +28 -0
  676. package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.js +543 -0
  677. package/dist/sync/engine/workspaceSyncEngineContracts.d.ts +78 -0
  678. package/dist/sync/engine/workspaceSyncEngineContracts.js +1 -0
  679. package/dist/sync/engine/workspaceSyncEngineControlPlane.d.ts +37 -0
  680. package/dist/sync/engine/workspaceSyncEngineControlPlane.js +79 -0
  681. package/dist/sync/engine/workspaceSyncEngineIdentity.d.ts +1 -0
  682. package/dist/sync/engine/workspaceSyncEngineIdentity.js +4 -0
  683. package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.d.ts +68 -0
  684. package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.js +180 -0
  685. package/dist/sync/engine/workspaceSyncEngineLocalApply.d.ts +72 -0
  686. package/dist/sync/engine/workspaceSyncEngineLocalApply.js +132 -0
  687. package/dist/sync/engine/workspaceSyncEngineLocalServices.d.ts +70 -0
  688. package/dist/sync/engine/workspaceSyncEngineLocalServices.js +25 -0
  689. package/dist/sync/engine/workspaceSyncEngineParity.d.ts +8 -0
  690. package/dist/sync/engine/workspaceSyncEngineParity.js +7 -0
  691. package/dist/sync/engine/workspaceSyncEnginePullPolicy.d.ts +32 -0
  692. package/dist/sync/engine/workspaceSyncEnginePullPolicy.js +27 -0
  693. package/dist/sync/engine/workspaceSyncEnginePushCompletion.d.ts +20 -0
  694. package/dist/sync/engine/workspaceSyncEnginePushCompletion.js +87 -0
  695. package/dist/sync/engine/workspaceSyncEngineRecovery.d.ts +56 -0
  696. package/dist/sync/engine/workspaceSyncEngineRecovery.js +288 -0
  697. package/dist/sync/engine/workspaceSyncEngineRemoteServices.d.ts +104 -0
  698. package/dist/sync/engine/workspaceSyncEngineRemoteServices.js +21 -0
  699. package/dist/sync/engine/workspaceSyncEngineRuntime.d.ts +61 -0
  700. package/dist/sync/engine/workspaceSyncEngineRuntime.js +59 -0
  701. package/dist/sync/engine/workspaceSyncEngineServerApplyBoundary.d.ts +28 -0
  702. package/dist/sync/engine/workspaceSyncEngineServerApplyBoundary.js +86 -0
  703. package/dist/sync/engine/workspaceSyncEngineServerLocalServices.d.ts +73 -0
  704. package/dist/sync/engine/workspaceSyncEngineServerLocalServices.js +452 -0
  705. package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.d.ts +23 -0
  706. package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.js +451 -0
  707. package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.d.ts +125 -0
  708. package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.js +1124 -0
  709. package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.d.ts +63 -0
  710. package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.js +276 -0
  711. package/dist/sync/engine/workspaceSyncEngineTransferCompletion.d.ts +20 -0
  712. package/dist/sync/engine/workspaceSyncEngineTransferCompletion.js +37 -0
  713. package/dist/sync/engine/workspaceSyncEngineTransferTypes.d.ts +7 -0
  714. package/dist/sync/engine/workspaceSyncEngineTransferTypes.js +1 -0
  715. package/dist/sync/engine/workspaceSyncEngineTransfers.d.ts +240 -0
  716. package/dist/sync/engine/workspaceSyncEngineTransfers.js +1184 -0
  717. package/dist/sync/engine/workspaceSyncEngineV3LocalFeedApply.d.ts +39 -0
  718. package/dist/sync/engine/workspaceSyncEngineV3LocalFeedApply.js +39 -0
  719. package/dist/sync/engine/workspaceSyncImmutableContentGcRunner.d.ts +25 -0
  720. package/dist/sync/engine/workspaceSyncImmutableContentGcRunner.js +83 -0
  721. package/dist/sync/engine/workspaceSyncImmutableContentProvider.d.ts +71 -0
  722. package/dist/sync/engine/workspaceSyncImmutableContentProvider.js +209 -0
  723. package/dist/sync/engine/workspaceSyncImmutableContentStager.d.ts +32 -0
  724. package/dist/sync/engine/workspaceSyncImmutableContentStager.js +202 -0
  725. package/dist/sync/engine/workspaceSyncPublishedContentResolver.d.ts +43 -0
  726. package/dist/sync/engine/workspaceSyncPublishedContentResolver.js +142 -0
  727. package/dist/sync/engine/workspaceSyncServerContentRuntime.d.ts +26 -0
  728. package/dist/sync/engine/workspaceSyncServerContentRuntime.js +41 -0
  729. package/dist/sync/engine/workspaceSyncServerDataServices.d.ts +44 -0
  730. package/dist/sync/engine/workspaceSyncServerDataServices.js +143 -0
  731. package/dist/sync/engine/workspaceSyncTransferEvidence.d.ts +39 -0
  732. package/dist/sync/engine/workspaceSyncTransferEvidence.js +45 -0
  733. package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.d.ts +44 -0
  734. package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.js +990 -0
  735. package/dist/sync/engine/workspaceSyncV2PreparedContent.d.ts +82 -0
  736. package/dist/sync/engine/workspaceSyncV2PreparedContent.js +219 -0
  737. package/dist/sync/planningCanonicalFields.d.ts +41 -0
  738. package/dist/sync/planningCanonicalFields.js +211 -0
  739. package/dist/sync/planningSyncPayload.d.ts +5 -1
  740. package/dist/sync/planningSyncPayload.js +88 -4
  741. package/dist/sync/syncApplyHandlers.d.ts +98 -8
  742. package/dist/sync/syncApplyHandlers.js +816 -78
  743. package/dist/sync/syncResourceAdapters.d.ts +10 -0
  744. package/dist/sync/syncResourceAdapters.js +21 -1
  745. package/dist/sync/syncService.d.ts +57 -1
  746. package/dist/sync/syncService.js +1085 -138
  747. package/dist/sync/taskNestedContent.d.ts +2 -0
  748. package/dist/sync/taskNestedContent.js +8 -0
  749. package/dist/sync/taskSyncChangeKey.js +0 -1
  750. package/dist/sync/taskSyncPayload.d.ts +0 -1
  751. package/dist/sync/taskSyncPayload.js +14 -3
  752. package/dist/sync/v3/canonicalWorkspaceSyncJson.d.ts +2 -0
  753. package/dist/sync/v3/canonicalWorkspaceSyncJson.js +26 -0
  754. package/dist/sync/v3/combinedFeedCapability.d.ts +21 -0
  755. package/dist/sync/v3/combinedFeedCapability.js +80 -0
  756. package/dist/sync/v3/combinedFeedPrerequisites.d.ts +18 -0
  757. package/dist/sync/v3/combinedFeedPrerequisites.js +184 -0
  758. package/dist/sync/v3/durableInitiativeMutationRouter.d.ts +61 -0
  759. package/dist/sync/v3/durableInitiativeMutationRouter.js +287 -0
  760. package/dist/sync/v3/durableOperationReplay.d.ts +36 -0
  761. package/dist/sync/v3/durableOperationReplay.js +103 -0
  762. package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.d.ts +49 -0
  763. package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.js +198 -0
  764. package/dist/sync/v3/durableTaskChecklistMutationRouter.d.ts +47 -0
  765. package/dist/sync/v3/durableTaskChecklistMutationRouter.js +182 -0
  766. package/dist/sync/v3/durableTaskCommentMutationRouter.d.ts +47 -0
  767. package/dist/sync/v3/durableTaskCommentMutationRouter.js +191 -0
  768. package/dist/sync/v3/durableTaskHttpBulkMutationRouter.d.ts +60 -0
  769. package/dist/sync/v3/durableTaskHttpBulkMutationRouter.js +320 -0
  770. package/dist/sync/v3/durableTaskHttpRootMutationRouter.d.ts +40 -0
  771. package/dist/sync/v3/durableTaskHttpRootMutationRouter.js +518 -0
  772. package/dist/sync/v3/durableTaxonomyMutationRouter.d.ts +63 -0
  773. package/dist/sync/v3/durableTaxonomyMutationRouter.js +289 -0
  774. package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.d.ts +77 -0
  775. package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.js +361 -0
  776. package/dist/sync/v3/durableWorkstreamMutationRouter.d.ts +61 -0
  777. package/dist/sync/v3/durableWorkstreamMutationRouter.js +287 -0
  778. package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.d.ts +42 -0
  779. package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.js +122 -0
  780. package/dist/sync/v3/entityEventLegacyAdoptionContract.d.ts +6 -0
  781. package/dist/sync/v3/entityEventLegacyAdoptionContract.js +6 -0
  782. package/dist/sync/v3/entityEventLegacyAdoptionService.d.ts +62 -0
  783. package/dist/sync/v3/entityEventLegacyAdoptionService.js +180 -0
  784. package/dist/sync/v3/initiativeActivityAuthoritativeRevision.d.ts +11 -0
  785. package/dist/sync/v3/initiativeActivityAuthoritativeRevision.js +23 -0
  786. package/dist/sync/v3/initiativeActivityIdentity.d.ts +8 -0
  787. package/dist/sync/v3/initiativeActivityIdentity.js +14 -0
  788. package/dist/sync/v3/initiativeCoexistence.d.ts +26 -0
  789. package/dist/sync/v3/initiativeCoexistence.js +148 -0
  790. package/dist/sync/v3/initiativeFeedActivationCapability.d.ts +6 -0
  791. package/dist/sync/v3/initiativeFeedActivationCapability.js +16 -0
  792. package/dist/sync/v3/initiativeMutationPayload.d.ts +26 -0
  793. package/dist/sync/v3/initiativeMutationPayload.js +144 -0
  794. package/dist/sync/v3/initiativeMutationService.d.ts +62 -0
  795. package/dist/sync/v3/initiativeMutationService.js +206 -0
  796. package/dist/sync/v3/localEntityEventLegacyAdoption.d.ts +31 -0
  797. package/dist/sync/v3/localEntityEventLegacyAdoption.js +607 -0
  798. package/dist/sync/v3/localInitiativeOutboxHandler.d.ts +8 -0
  799. package/dist/sync/v3/localInitiativeOutboxHandler.js +88 -0
  800. package/dist/sync/v3/localInitiativeOutboxService.d.ts +50 -0
  801. package/dist/sync/v3/localInitiativeOutboxService.js +495 -0
  802. package/dist/sync/v3/localOperationIdentityStore.d.ts +81 -0
  803. package/dist/sync/v3/localOperationIdentityStore.js +388 -0
  804. package/dist/sync/v3/localOutboxDispatchCapability.d.ts +7 -0
  805. package/dist/sync/v3/localOutboxDispatchCapability.js +13 -0
  806. package/dist/sync/v3/localOutboxDispatchRuntime.d.ts +16 -0
  807. package/dist/sync/v3/localOutboxDispatchRuntime.js +269 -0
  808. package/dist/sync/v3/localOutboxDispatcher.d.ts +53 -0
  809. package/dist/sync/v3/localOutboxDispatcher.js +362 -0
  810. package/dist/sync/v3/localOutboxDrainClient.d.ts +50 -0
  811. package/dist/sync/v3/localOutboxDrainClient.js +250 -0
  812. package/dist/sync/v3/localOutboxOperationHandler.d.ts +31 -0
  813. package/dist/sync/v3/localOutboxOperationHandler.js +10 -0
  814. package/dist/sync/v3/localOutboxRecoveryClient.d.ts +14 -0
  815. package/dist/sync/v3/localOutboxRecoveryClient.js +45 -0
  816. package/dist/sync/v3/localOutboxRecoveryPreparationService.d.ts +12 -0
  817. package/dist/sync/v3/localOutboxRecoveryPreparationService.js +151 -0
  818. package/dist/sync/v3/localSyncIdentityStore.d.ts +9 -0
  819. package/dist/sync/v3/localSyncIdentityStore.js +43 -0
  820. package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.d.ts +10 -0
  821. package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.js +70 -0
  822. package/dist/sync/v3/localTaskAttachmentLinksOutboxService.d.ts +45 -0
  823. package/dist/sync/v3/localTaskAttachmentLinksOutboxService.js +291 -0
  824. package/dist/sync/v3/localTaskChecklistOutboxHandler.d.ts +10 -0
  825. package/dist/sync/v3/localTaskChecklistOutboxHandler.js +54 -0
  826. package/dist/sync/v3/localTaskChecklistOutboxService.d.ts +47 -0
  827. package/dist/sync/v3/localTaskChecklistOutboxService.js +221 -0
  828. package/dist/sync/v3/localTaskCommentOutboxHandler.d.ts +10 -0
  829. package/dist/sync/v3/localTaskCommentOutboxHandler.js +94 -0
  830. package/dist/sync/v3/localTaskCommentOutboxService.d.ts +75 -0
  831. package/dist/sync/v3/localTaskCommentOutboxService.js +391 -0
  832. package/dist/sync/v3/localTaskCreateClient.d.ts +27 -0
  833. package/dist/sync/v3/localTaskCreateClient.js +209 -0
  834. package/dist/sync/v3/localTaskCreateOutboxHandler.d.ts +8 -0
  835. package/dist/sync/v3/localTaskCreateOutboxHandler.js +147 -0
  836. package/dist/sync/v3/localTaskCreateOutboxService.d.ts +77 -0
  837. package/dist/sync/v3/localTaskCreateOutboxService.js +397 -0
  838. package/dist/sync/v3/localTaskDeleteClient.d.ts +10 -0
  839. package/dist/sync/v3/localTaskDeleteClient.js +23 -0
  840. package/dist/sync/v3/localTaskDeleteOutboxHandler.d.ts +8 -0
  841. package/dist/sync/v3/localTaskDeleteOutboxHandler.js +54 -0
  842. package/dist/sync/v3/localTaskDeleteOutboxService.d.ts +38 -0
  843. package/dist/sync/v3/localTaskDeleteOutboxService.js +235 -0
  844. package/dist/sync/v3/localTaskLegacyRootAdoption.d.ts +28 -0
  845. package/dist/sync/v3/localTaskLegacyRootAdoption.js +219 -0
  846. package/dist/sync/v3/localTaskLifecycleClient.d.ts +49 -0
  847. package/dist/sync/v3/localTaskLifecycleClient.js +57 -0
  848. package/dist/sync/v3/localTaskLifecycleOutboxHandler.d.ts +8 -0
  849. package/dist/sync/v3/localTaskLifecycleOutboxHandler.js +94 -0
  850. package/dist/sync/v3/localTaskLifecycleOutboxService.d.ts +60 -0
  851. package/dist/sync/v3/localTaskLifecycleOutboxService.js +304 -0
  852. package/dist/sync/v3/localTaskMetadataClient.d.ts +13 -0
  853. package/dist/sync/v3/localTaskMetadataClient.js +30 -0
  854. package/dist/sync/v3/localTaskMetadataOutboxHandler.d.ts +8 -0
  855. package/dist/sync/v3/localTaskMetadataOutboxHandler.js +70 -0
  856. package/dist/sync/v3/localTaskMetadataOutboxService.d.ts +48 -0
  857. package/dist/sync/v3/localTaskMetadataOutboxService.js +229 -0
  858. package/dist/sync/v3/localTaskOperationClient.d.ts +72 -0
  859. package/dist/sync/v3/localTaskOperationClient.js +195 -0
  860. package/dist/sync/v3/localTaskRelationshipOutboxHandler.d.ts +8 -0
  861. package/dist/sync/v3/localTaskRelationshipOutboxHandler.js +114 -0
  862. package/dist/sync/v3/localTaskRelationshipOutboxService.d.ts +45 -0
  863. package/dist/sync/v3/localTaskRelationshipOutboxService.js +192 -0
  864. package/dist/sync/v3/localTaskRestoreClient.d.ts +13 -0
  865. package/dist/sync/v3/localTaskRestoreClient.js +32 -0
  866. package/dist/sync/v3/localTaskRestoreOutboxHandler.d.ts +8 -0
  867. package/dist/sync/v3/localTaskRestoreOutboxHandler.js +41 -0
  868. package/dist/sync/v3/localTaskRestoreOutboxService.d.ts +56 -0
  869. package/dist/sync/v3/localTaskRestoreOutboxService.js +323 -0
  870. package/dist/sync/v3/localTaskStatusClient.d.ts +17 -0
  871. package/dist/sync/v3/localTaskStatusClient.js +35 -0
  872. package/dist/sync/v3/localTaskStatusOutboxHandler.d.ts +8 -0
  873. package/dist/sync/v3/localTaskStatusOutboxHandler.js +75 -0
  874. package/dist/sync/v3/localTaskStatusOutboxService.d.ts +53 -0
  875. package/dist/sync/v3/localTaskStatusOutboxService.js +422 -0
  876. package/dist/sync/v3/localTaxonomyCompositeOutboxService.d.ts +34 -0
  877. package/dist/sync/v3/localTaxonomyCompositeOutboxService.js +290 -0
  878. package/dist/sync/v3/localTaxonomyOutboxHandler.d.ts +9 -0
  879. package/dist/sync/v3/localTaxonomyOutboxHandler.js +106 -0
  880. package/dist/sync/v3/localTaxonomyOutboxService.d.ts +30 -0
  881. package/dist/sync/v3/localTaxonomyOutboxService.js +181 -0
  882. package/dist/sync/v3/localWorkflowRuntimeOutboxHandler.d.ts +8 -0
  883. package/dist/sync/v3/localWorkflowRuntimeOutboxHandler.js +113 -0
  884. package/dist/sync/v3/localWorkflowRuntimeOutboxService.d.ts +37 -0
  885. package/dist/sync/v3/localWorkflowRuntimeOutboxService.js +330 -0
  886. package/dist/sync/v3/localWorkspaceSyncServerOutboxDispatcher.d.ts +63 -0
  887. package/dist/sync/v3/localWorkspaceSyncServerOutboxDispatcher.js +264 -0
  888. package/dist/sync/v3/localWorkstreamOutboxHandler.d.ts +8 -0
  889. package/dist/sync/v3/localWorkstreamOutboxHandler.js +102 -0
  890. package/dist/sync/v3/localWorkstreamOutboxService.d.ts +52 -0
  891. package/dist/sync/v3/localWorkstreamOutboxService.js +579 -0
  892. package/dist/sync/v3/localWorkstreamTaskOrderOutboxHandler.d.ts +10 -0
  893. package/dist/sync/v3/localWorkstreamTaskOrderOutboxHandler.js +57 -0
  894. package/dist/sync/v3/localWorkstreamTaskOrderOutboxService.d.ts +30 -0
  895. package/dist/sync/v3/localWorkstreamTaskOrderOutboxService.js +128 -0
  896. package/dist/sync/v3/planningActivation.d.ts +13 -0
  897. package/dist/sync/v3/planningActivation.js +33 -0
  898. package/dist/sync/v3/planningAttachmentActivityValidation.d.ts +9 -0
  899. package/dist/sync/v3/planningAttachmentActivityValidation.js +87 -0
  900. package/dist/sync/v3/programScaffoldService.d.ts +143 -0
  901. package/dist/sync/v3/programScaffoldService.js +478 -0
  902. package/dist/sync/v3/syncDurabilityStore.d.ts +773 -0
  903. package/dist/sync/v3/syncDurabilityStore.js +4635 -0
  904. package/dist/sync/v3/taskActivityAuthoritativeRevision.d.ts +16 -0
  905. package/dist/sync/v3/taskActivityAuthoritativeRevision.js +67 -0
  906. package/dist/sync/v3/taskActivityJournal.d.ts +20 -0
  907. package/dist/sync/v3/taskActivityJournal.js +195 -0
  908. package/dist/sync/v3/taskAttachmentLinksActivityIdentity.d.ts +6 -0
  909. package/dist/sync/v3/taskAttachmentLinksActivityIdentity.js +14 -0
  910. package/dist/sync/v3/taskAttachmentLinksMutationService.d.ts +111 -0
  911. package/dist/sync/v3/taskAttachmentLinksMutationService.js +202 -0
  912. package/dist/sync/v3/taskChecklistActivityIdentity.d.ts +6 -0
  913. package/dist/sync/v3/taskChecklistActivityIdentity.js +14 -0
  914. package/dist/sync/v3/taskChecklistMutationService.d.ts +92 -0
  915. package/dist/sync/v3/taskChecklistMutationService.js +156 -0
  916. package/dist/sync/v3/taskCommentActivityIdentity.d.ts +7 -0
  917. package/dist/sync/v3/taskCommentActivityIdentity.js +15 -0
  918. package/dist/sync/v3/taskCommentMutationService.d.ts +150 -0
  919. package/dist/sync/v3/taskCommentMutationService.js +392 -0
  920. package/dist/sync/v3/taskCommentReconcileProvenance.d.ts +58 -0
  921. package/dist/sync/v3/taskCommentReconcileProvenance.js +170 -0
  922. package/dist/sync/v3/taskCreateActivation.d.ts +19 -0
  923. package/dist/sync/v3/taskCreateActivation.js +84 -0
  924. package/dist/sync/v3/taskCreateActivityIdentity.d.ts +7 -0
  925. package/dist/sync/v3/taskCreateActivityIdentity.js +18 -0
  926. package/dist/sync/v3/taskCreateMutationService.d.ts +103 -0
  927. package/dist/sync/v3/taskCreateMutationService.js +283 -0
  928. package/dist/sync/v3/taskDeleteActivation.d.ts +7 -0
  929. package/dist/sync/v3/taskDeleteActivation.js +14 -0
  930. package/dist/sync/v3/taskDeleteMutationService.d.ts +35 -0
  931. package/dist/sync/v3/taskDeleteMutationService.js +133 -0
  932. package/dist/sync/v3/taskLegacyRootAdoptionService.d.ts +78 -0
  933. package/dist/sync/v3/taskLegacyRootAdoptionService.js +175 -0
  934. package/dist/sync/v3/taskLifecycleActivityIdentity.d.ts +9 -0
  935. package/dist/sync/v3/taskLifecycleActivityIdentity.js +18 -0
  936. package/dist/sync/v3/taskLifecycleMutationPayload.d.ts +5 -0
  937. package/dist/sync/v3/taskLifecycleMutationPayload.js +28 -0
  938. package/dist/sync/v3/taskLifecycleMutationService.d.ts +66 -0
  939. package/dist/sync/v3/taskLifecycleMutationService.js +92 -0
  940. package/dist/sync/v3/taskMetadataActivation.d.ts +12 -0
  941. package/dist/sync/v3/taskMetadataActivation.js +38 -0
  942. package/dist/sync/v3/taskMetadataActivityIdentity.d.ts +7 -0
  943. package/dist/sync/v3/taskMetadataActivityIdentity.js +18 -0
  944. package/dist/sync/v3/taskMetadataCoexistence.d.ts +37 -0
  945. package/dist/sync/v3/taskMetadataCoexistence.js +134 -0
  946. package/dist/sync/v3/taskMetadataMutationService.d.ts +71 -0
  947. package/dist/sync/v3/taskMetadataMutationService.js +199 -0
  948. package/dist/sync/v3/taskRelationshipLegacyAdoptionService.d.ts +48 -0
  949. package/dist/sync/v3/taskRelationshipLegacyAdoptionService.js +164 -0
  950. package/dist/sync/v3/taskRelationshipMutationService.d.ts +50 -0
  951. package/dist/sync/v3/taskRelationshipMutationService.js +148 -0
  952. package/dist/sync/v3/taskRestoreMutationService.d.ts +90 -0
  953. package/dist/sync/v3/taskRestoreMutationService.js +179 -0
  954. package/dist/sync/v3/taskStatusActivation.d.ts +7 -0
  955. package/dist/sync/v3/taskStatusActivation.js +15 -0
  956. package/dist/sync/v3/taskStatusMutationService.d.ts +76 -0
  957. package/dist/sync/v3/taskStatusMutationService.js +308 -0
  958. package/dist/sync/v3/taskWorkflowMutationPayload.d.ts +4 -0
  959. package/dist/sync/v3/taskWorkflowMutationPayload.js +22 -0
  960. package/dist/sync/v3/taskWorkflowMutationService.d.ts +64 -0
  961. package/dist/sync/v3/taskWorkflowMutationService.js +102 -0
  962. package/dist/sync/v3/taxonomyCoexistence.d.ts +10 -0
  963. package/dist/sync/v3/taxonomyCoexistence.js +19 -0
  964. package/dist/sync/v3/taxonomyCompositeMutationService.d.ts +110 -0
  965. package/dist/sync/v3/taxonomyCompositeMutationService.js +304 -0
  966. package/dist/sync/v3/taxonomyMutationService.d.ts +57 -0
  967. package/dist/sync/v3/taxonomyMutationService.js +106 -0
  968. package/dist/sync/v3/taxonomyStateMutation.d.ts +22 -0
  969. package/dist/sync/v3/taxonomyStateMutation.js +49 -0
  970. package/dist/sync/v3/taxonomySyncPayload.d.ts +9 -0
  971. package/dist/sync/v3/taxonomySyncPayload.js +199 -0
  972. package/dist/sync/v3/workflowAssignmentSync.d.ts +22 -0
  973. package/dist/sync/v3/workflowAssignmentSync.js +213 -0
  974. package/dist/sync/v3/workflowRuntimeMutationService.d.ts +89 -0
  975. package/dist/sync/v3/workflowRuntimeMutationService.js +359 -0
  976. package/dist/sync/v3/workflowRuntimeOperationIdentity.d.ts +13 -0
  977. package/dist/sync/v3/workflowRuntimeOperationIdentity.js +35 -0
  978. package/dist/sync/v3/workflowRuntimeSync.d.ts +141 -0
  979. package/dist/sync/v3/workflowRuntimeSync.js +485 -0
  980. package/dist/sync/v3/workspaceSyncJournalReader.d.ts +43 -0
  981. package/dist/sync/v3/workspaceSyncJournalReader.js +45 -0
  982. package/dist/sync/v3/workspaceSyncLocalOwnershipSnapshot.d.ts +28 -0
  983. package/dist/sync/v3/workspaceSyncLocalOwnershipSnapshot.js +81 -0
  984. package/dist/sync/v3/workspaceSyncPayloadFingerprint.d.ts +1 -0
  985. package/dist/sync/v3/workspaceSyncPayloadFingerprint.js +5 -0
  986. package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.d.ts +16 -0
  987. package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.js +161 -0
  988. package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.d.ts +83 -0
  989. package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.js +161 -0
  990. package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.d.ts +16 -0
  991. package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.js +90 -0
  992. package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.d.ts +65 -0
  993. package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.js +356 -0
  994. package/dist/sync/v3/workspaceSyncV3CombinedCoverage.d.ts +51 -0
  995. package/dist/sync/v3/workspaceSyncV3CombinedCoverage.js +171 -0
  996. package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.d.ts +43 -0
  997. package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.js +535 -0
  998. package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.d.ts +50 -0
  999. package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.js +1149 -0
  1000. package/dist/sync/v3/workspaceSyncV3CombinedProjectionState.d.ts +96 -0
  1001. package/dist/sync/v3/workspaceSyncV3CombinedProjectionState.js +672 -0
  1002. package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.d.ts +42 -0
  1003. package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.js +598 -0
  1004. package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.d.ts +65 -0
  1005. package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.js +505 -0
  1006. package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.d.ts +78 -0
  1007. package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.js +511 -0
  1008. package/dist/sync/v3/workspaceSyncV3CombinedWireContract.d.ts +45 -0
  1009. package/dist/sync/v3/workspaceSyncV3CombinedWireContract.js +125 -0
  1010. package/dist/sync/v3/workspaceSyncV3CoverageRegistry.d.ts +13 -0
  1011. package/dist/sync/v3/workspaceSyncV3CoverageRegistry.js +34 -0
  1012. package/dist/sync/v3/workspaceSyncV3CursorEncoding.d.ts +1 -0
  1013. package/dist/sync/v3/workspaceSyncV3CursorEncoding.js +6 -0
  1014. package/dist/sync/v3/workspaceSyncV3DomainAdmission.d.ts +43 -0
  1015. package/dist/sync/v3/workspaceSyncV3DomainAdmission.js +118 -0
  1016. package/dist/sync/v3/workspaceSyncV3Feed.d.ts +95 -0
  1017. package/dist/sync/v3/workspaceSyncV3Feed.js +243 -0
  1018. package/dist/sync/v3/workspaceSyncV3FeedApply.d.ts +13 -0
  1019. package/dist/sync/v3/workspaceSyncV3FeedApply.js +67 -0
  1020. package/dist/sync/v3/workspaceSyncV3FeedClientContract.d.ts +3 -0
  1021. package/dist/sync/v3/workspaceSyncV3FeedClientContract.js +46 -0
  1022. package/dist/sync/v3/workspaceSyncV3FeedCursorKeys.d.ts +10 -0
  1023. package/dist/sync/v3/workspaceSyncV3FeedCursorKeys.js +58 -0
  1024. package/dist/sync/v3/workspaceSyncV3FeedOrchestrator.d.ts +31 -0
  1025. package/dist/sync/v3/workspaceSyncV3FeedOrchestrator.js +228 -0
  1026. package/dist/sync/v3/workspaceSyncV3FeedProfile.d.ts +32 -0
  1027. package/dist/sync/v3/workspaceSyncV3FeedProfile.js +21 -0
  1028. package/dist/sync/v3/workspaceSyncV3InitiativeLocalApply.d.ts +36 -0
  1029. package/dist/sync/v3/workspaceSyncV3InitiativeLocalApply.js +163 -0
  1030. package/dist/sync/v3/workspaceSyncV3InitiativeRepair.d.ts +33 -0
  1031. package/dist/sync/v3/workspaceSyncV3InitiativeRepair.js +118 -0
  1032. package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.d.ts +10 -0
  1033. package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.js +45 -0
  1034. package/dist/sync/v3/workspaceSyncV3LocalOutboxStatus.d.ts +27 -0
  1035. package/dist/sync/v3/workspaceSyncV3LocalOutboxStatus.js +83 -0
  1036. package/dist/sync/v3/workspaceSyncV3NestedCoverage.d.ts +10 -0
  1037. package/dist/sync/v3/workspaceSyncV3NestedCoverage.js +40 -0
  1038. package/dist/sync/v3/workspaceSyncV3NestedTaskApply.d.ts +83 -0
  1039. package/dist/sync/v3/workspaceSyncV3NestedTaskApply.js +325 -0
  1040. package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.d.ts +59 -0
  1041. package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.js +302 -0
  1042. package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.d.ts +47 -0
  1043. package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.js +329 -0
  1044. package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.d.ts +19 -0
  1045. package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.js +41 -0
  1046. package/dist/sync/v3/workspaceSyncV3NestedWireContract.d.ts +6 -0
  1047. package/dist/sync/v3/workspaceSyncV3NestedWireContract.js +16 -0
  1048. package/dist/sync/v3/workspaceSyncV3OperationProjection.d.ts +8 -0
  1049. package/dist/sync/v3/workspaceSyncV3OperationProjection.js +52 -0
  1050. package/dist/sync/v3/workspaceSyncV3OperationProtocol.d.ts +229 -0
  1051. package/dist/sync/v3/workspaceSyncV3OperationProtocol.js +1 -0
  1052. package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.d.ts +165 -0
  1053. package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.js +414 -0
  1054. package/dist/sync/v3/workspaceSyncV3OriginActor.d.ts +36 -0
  1055. package/dist/sync/v3/workspaceSyncV3OriginActor.js +61 -0
  1056. package/dist/sync/v3/workspaceSyncV3OriginAssertion.d.ts +46 -0
  1057. package/dist/sync/v3/workspaceSyncV3OriginAssertion.js +121 -0
  1058. package/dist/sync/v3/workspaceSyncV3OriginAssertionHeader.d.ts +1 -0
  1059. package/dist/sync/v3/workspaceSyncV3OriginAssertionHeader.js +1 -0
  1060. package/dist/sync/v3/workspaceSyncV3PlanningOrderCoverage.d.ts +10 -0
  1061. package/dist/sync/v3/workspaceSyncV3PlanningOrderCoverage.js +34 -0
  1062. package/dist/sync/v3/workspaceSyncV3PlanningOrderWireContract.d.ts +6 -0
  1063. package/dist/sync/v3/workspaceSyncV3PlanningOrderWireContract.js +10 -0
  1064. package/dist/sync/v3/workspaceSyncV3ProjectionState.d.ts +105 -0
  1065. package/dist/sync/v3/workspaceSyncV3ProjectionState.js +467 -0
  1066. package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.d.ts +56 -0
  1067. package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.js +250 -0
  1068. package/dist/sync/v3/workspaceSyncV3TaskRelationshipProjection.d.ts +30 -0
  1069. package/dist/sync/v3/workspaceSyncV3TaskRelationshipProjection.js +142 -0
  1070. package/dist/sync/v3/workspaceSyncV3TaskRootProjection.d.ts +40 -0
  1071. package/dist/sync/v3/workspaceSyncV3TaskRootProjection.js +246 -0
  1072. package/dist/sync/v3/workspaceSyncV3TaxonomyFeedProjection.d.ts +39 -0
  1073. package/dist/sync/v3/workspaceSyncV3TaxonomyFeedProjection.js +185 -0
  1074. package/dist/sync/v3/workspaceSyncV3WorkflowCoverage.d.ts +10 -0
  1075. package/dist/sync/v3/workspaceSyncV3WorkflowCoverage.js +36 -0
  1076. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.d.ts +17 -0
  1077. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.js +143 -0
  1078. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeProjection.d.ts +9 -0
  1079. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeProjection.js +195 -0
  1080. package/dist/sync/v3/workspaceSyncV3WorkflowWireContract.d.ts +11 -0
  1081. package/dist/sync/v3/workspaceSyncV3WorkflowWireContract.js +12 -0
  1082. package/dist/sync/v3/workspaceSyncV3WorkstreamProjection.d.ts +4 -0
  1083. package/dist/sync/v3/workspaceSyncV3WorkstreamProjection.js +98 -0
  1084. package/dist/sync/v3/workspaceSyncV3WorkstreamTaskOrderProjection.d.ts +9 -0
  1085. package/dist/sync/v3/workspaceSyncV3WorkstreamTaskOrderProjection.js +72 -0
  1086. package/dist/sync/v3/workstreamActivityAuthoritativeRevision.d.ts +11 -0
  1087. package/dist/sync/v3/workstreamActivityAuthoritativeRevision.js +23 -0
  1088. package/dist/sync/v3/workstreamActivityIdentity.d.ts +8 -0
  1089. package/dist/sync/v3/workstreamActivityIdentity.js +14 -0
  1090. package/dist/sync/v3/workstreamCoexistence.d.ts +19 -0
  1091. package/dist/sync/v3/workstreamCoexistence.js +64 -0
  1092. package/dist/sync/v3/workstreamMutationPayload.d.ts +27 -0
  1093. package/dist/sync/v3/workstreamMutationPayload.js +147 -0
  1094. package/dist/sync/v3/workstreamMutationService.d.ts +72 -0
  1095. package/dist/sync/v3/workstreamMutationService.js +256 -0
  1096. package/dist/sync/v3/workstreamTaskOrderMutationService.d.ts +55 -0
  1097. package/dist/sync/v3/workstreamTaskOrderMutationService.js +110 -0
  1098. package/dist/sync/v3/workstreamTaskOrderSync.d.ts +14 -0
  1099. package/dist/sync/v3/workstreamTaskOrderSync.js +25 -0
  1100. package/dist/sync/workspaceContentManifest.d.ts +86 -0
  1101. package/dist/sync/workspaceContentManifest.js +123 -0
  1102. package/dist/sync/workspacePullFeed.d.ts +186 -2
  1103. package/dist/sync/workspacePullFeed.js +513 -136
  1104. package/dist/sync/workspacePushPreparedPlan.d.ts +21 -0
  1105. package/dist/sync/workspacePushPreparedPlan.js +1 -0
  1106. package/dist/sync/workspaceRepair.d.ts +17 -25
  1107. package/dist/sync/workspaceRepair.js +348 -25
  1108. package/dist/sync/workspaceSyncContentDecryption.d.ts +6 -0
  1109. package/dist/sync/workspaceSyncContentDecryption.js +11 -0
  1110. package/dist/sync/workspaceSyncModel.d.ts +216 -5
  1111. package/dist/sync/workspaceSyncModel.js +371 -35
  1112. package/dist/sync/workspaceSyncSnapshotProjection.d.ts +11 -0
  1113. package/dist/sync/workspaceSyncSnapshotProjection.js +101 -0
  1114. package/dist/sync/workspaceSyncState.d.ts +13 -0
  1115. package/dist/sync/workspaceSyncState.js +36 -0
  1116. package/dist/sync/workspaceSyncV2SnapshotBuilder.d.ts +106 -0
  1117. package/dist/sync/workspaceSyncV2SnapshotBuilder.js +193 -0
  1118. package/dist/types.d.ts +23 -15
  1119. package/dist/types.js +1 -3
  1120. package/dist/ui/ai-profile-clients/amazon-nova.svg +1 -0
  1121. package/dist/ui/ai-profile-clients/antigravity.png +0 -0
  1122. package/dist/ui/ai-profile-clients/chatgpt.svg +10 -0
  1123. package/dist/ui/ai-profile-clients/claude-chat.svg +1 -0
  1124. package/dist/ui/ai-profile-clients/claude-code.svg +15 -0
  1125. package/dist/ui/ai-profile-clients/cline-app-icon-light.png +0 -0
  1126. package/dist/ui/ai-profile-clients/cline.svg +16 -0
  1127. package/dist/ui/ai-profile-clients/codex.svg +1 -0
  1128. package/dist/ui/ai-profile-clients/copilot.png +0 -0
  1129. package/dist/ui/ai-profile-clients/cursor.svg +1 -0
  1130. package/dist/ui/ai-profile-clients/deepseek.svg +1 -0
  1131. package/dist/ui/ai-profile-clients/gemini-cli-icon.png +0 -0
  1132. package/dist/ui/ai-profile-clients/gemini.svg +10 -0
  1133. package/dist/ui/ai-profile-clients/grok.svg +31 -0
  1134. package/dist/ui/ai-profile-clients/kiro.svg +11 -0
  1135. package/dist/ui/ai-profile-clients/llama.svg +1 -0
  1136. package/dist/ui/ai-profile-clients/mistral.svg +1 -0
  1137. package/dist/ui/ai-profile-clients/ms_copilot.jpeg +0 -0
  1138. package/dist/ui/ai-profile-clients/openclaw.png +0 -0
  1139. package/dist/ui/ai-profile-clients/perplexity.svg +1 -0
  1140. package/dist/ui/ai-profile-clients/vscode.svg +41 -0
  1141. package/dist/ui/ai-profile-clients/windsurf.svg +11 -0
  1142. package/dist/ui/assets/AiIdentityRosterCard-DB1BLO_j.js +1 -0
  1143. package/dist/ui/assets/AiProfilesModule-DPxQeF9N.js +1 -0
  1144. package/dist/ui/assets/AnnotatedAttachmentWorkspace-CBRZ8rca.css +1 -0
  1145. package/dist/ui/assets/AnnotatedAttachmentWorkspace-DHNYaNg6.js +3 -0
  1146. package/dist/ui/assets/AssetTraySortControl-B9k5caQW.css +1 -0
  1147. package/dist/ui/assets/AssetTraySortControl-DphbyHVc.js +1 -0
  1148. package/dist/ui/assets/ContextAttachmentManager-CMxSzHqc.js +3 -0
  1149. package/dist/ui/assets/DocumentWorkspace-BC7sy5TG.js +261 -0
  1150. package/dist/ui/assets/DocumentWorkspace-BIBGBfd7.css +1 -0
  1151. package/dist/ui/assets/EntityActivityTimeline-BfJbZRdl.css +1 -0
  1152. package/dist/ui/assets/EntityActivityTimeline-pJ2ZjZ-k.js +1 -0
  1153. package/dist/ui/assets/PlanningModule-CeTqXMMz.css +1 -0
  1154. package/dist/ui/assets/PlanningModule-t5GbvVR9.js +1 -0
  1155. package/dist/ui/assets/PlansPage-BVH_NfgT.js +1 -0
  1156. package/dist/ui/assets/PlansPage-C2nkK2Bp.css +1 -0
  1157. package/dist/ui/assets/TaskContextUpload-Ds4LnDzV.css +1 -0
  1158. package/dist/ui/assets/TaskContextUpload-bl4fOOUz.js +1 -0
  1159. package/dist/ui/assets/TaskSettings-xVsxSa0g.js +12 -0
  1160. package/dist/ui/assets/TaskforceAgentsModule-CkAxW19K.js +21 -0
  1161. package/dist/ui/assets/TaskforceAgentsModule-D6IC0S7Q.css +1 -0
  1162. package/dist/ui/assets/WorkflowManagerModule-BKqIGVnF.js +1 -0
  1163. package/dist/ui/assets/WorkflowManagerModule-DF10XENz.css +1 -0
  1164. package/dist/ui/assets/antigravity-DRKQga2U.png +0 -0
  1165. package/dist/ui/assets/cursor-BM_3k4Y4.svg +1 -0
  1166. package/dist/ui/assets/gemini-cli-icon-dBAVjCcn.png +0 -0
  1167. package/dist/ui/assets/grok-BuodbWaG.svg +31 -0
  1168. package/dist/ui/assets/index-BzJlVnNS.css +1 -0
  1169. package/dist/ui/assets/index-Cx7vZJHL.js +7 -0
  1170. package/dist/ui/assets/{vendor-dnd-DRzYolkg.js → vendor-dnd-CJ-AjP-Y.js} +1 -1
  1171. package/dist/ui/assets/{vendor-icons-CLnehDTw.js → vendor-icons-B8ZNsH1g.js} +1 -1
  1172. package/dist/ui/assets/{vendor-markdown-BUxTU7dS.js → vendor-markdown-_lhNCyq-.js} +9 -9
  1173. package/dist/ui/assets/vendor-router-AqJMU8Lz.js +3 -0
  1174. package/dist/ui/assets/vscode-C_7wk1WI.svg +41 -0
  1175. package/dist/ui/branding/logos/logo_dark_bg.png +0 -0
  1176. package/dist/ui/branding/logos/logo_favicon_dark.png +0 -0
  1177. package/dist/ui/branding/logos/logo_favicon_dark.svg +56 -0
  1178. package/dist/ui/branding/logos/logo_favicon_light.png +0 -0
  1179. package/dist/ui/branding/logos/logo_light_bg.png +0 -0
  1180. package/dist/ui/images/Taskforce_Van.webp +0 -0
  1181. package/dist/ui/index.html +6 -6
  1182. package/dist/update/uiUpdateService.d.ts +43 -0
  1183. package/dist/update/uiUpdateService.js +149 -0
  1184. package/dist/update/updateCli.d.ts +15 -0
  1185. package/dist/update/updateCli.js +76 -0
  1186. package/dist/update/updateExecutor.d.ts +40 -0
  1187. package/dist/update/updateExecutor.js +474 -0
  1188. package/dist/update/updateStatus.d.ts +83 -0
  1189. package/dist/update/updateStatus.js +703 -0
  1190. package/dist/utils/aiProfileAvatarPaths.d.ts +14 -0
  1191. package/dist/utils/aiProfileAvatarPaths.js +52 -0
  1192. package/dist/utils/aiProfileDefaultLogo.d.ts +7 -0
  1193. package/dist/utils/aiProfileDefaultLogo.js +84 -0
  1194. package/dist/utils/aiProfileEvents.d.ts +9 -1
  1195. package/dist/utils/annotatedAttachments.d.ts +8 -0
  1196. package/dist/utils/annotatedAttachments.js +17 -1
  1197. package/dist/utils/assetTraySorting.d.ts +25 -0
  1198. package/dist/utils/assetTraySorting.js +83 -0
  1199. package/dist/utils/assignees.d.ts +5 -0
  1200. package/dist/utils/assignees.js +14 -9
  1201. package/dist/utils/authLogin.d.ts +10 -0
  1202. package/dist/utils/authLogin.js +8 -0
  1203. package/dist/utils/authSessionEvents.d.ts +2 -0
  1204. package/dist/utils/authSessionEvents.js +6 -0
  1205. package/dist/utils/avatarUpload.js +5 -5
  1206. package/dist/utils/canonicalReferenceAttachments.d.ts +12 -0
  1207. package/dist/utils/canonicalReferenceAttachments.js +42 -0
  1208. package/dist/utils/cloudAssetDisplay.d.ts +2 -0
  1209. package/dist/utils/cloudAssetDisplay.js +8 -0
  1210. package/dist/utils/constants.d.ts +4 -11
  1211. package/dist/utils/constants.js +5 -64
  1212. package/dist/utils/contextAttachmentPreview.d.ts +11 -0
  1213. package/dist/utils/contextAttachmentPreview.js +8 -0
  1214. package/dist/utils/contextAttachmentUpload.d.ts +8 -0
  1215. package/dist/utils/contextAttachmentUpload.js +144 -0
  1216. package/dist/utils/documentNames.js +6 -4
  1217. package/dist/utils/entityReferences.d.ts +14 -0
  1218. package/dist/utils/entityReferences.js +21 -0
  1219. package/dist/utils/httpSetCookie.d.ts +3 -0
  1220. package/dist/utils/httpSetCookie.js +22 -0
  1221. package/dist/utils/imageNoteStoragePaths.d.ts +3 -0
  1222. package/dist/utils/imageNoteStoragePaths.js +19 -0
  1223. package/dist/utils/imageReferences.d.ts +6 -0
  1224. package/dist/utils/imageReferences.js +1 -0
  1225. package/dist/utils/planningArchiveOrchestrator.d.ts +23 -0
  1226. package/dist/utils/planningArchiveOrchestrator.js +37 -0
  1227. package/dist/utils/planningArchivePresentation.d.ts +20 -0
  1228. package/dist/utils/planningArchivePresentation.js +23 -0
  1229. package/dist/utils/planningArchiveReadiness.d.ts +26 -0
  1230. package/dist/utils/planningArchiveReadiness.js +30 -0
  1231. package/dist/utils/planningFavorites.d.ts +7 -0
  1232. package/dist/utils/planningFavorites.js +34 -0
  1233. package/dist/utils/syncEventPresentation.js +53 -0
  1234. package/dist/utils/syncStatusPresentation.d.ts +25 -0
  1235. package/dist/utils/syncStatusPresentation.js +86 -5
  1236. package/dist/utils/taskActivity.d.ts +9 -2
  1237. package/dist/utils/taskActivity.js +61 -0
  1238. package/dist/utils/taskDraftDefaults.d.ts +0 -8
  1239. package/dist/utils/taskDraftDefaults.js +0 -4
  1240. package/dist/utils/taskEvents.d.ts +11 -0
  1241. package/dist/utils/taskEvents.js +6 -0
  1242. package/dist/utils/taskHeaderQuickFilter.d.ts +14 -0
  1243. package/dist/utils/taskHeaderQuickFilter.js +32 -0
  1244. package/dist/utils/taskInvalidation.d.ts +23 -0
  1245. package/dist/utils/taskInvalidation.js +67 -0
  1246. package/dist/utils/taskNormalization.d.ts +2 -1
  1247. package/dist/utils/taskNormalization.js +44 -18
  1248. package/dist/utils/taskReferences.d.ts +16 -0
  1249. package/dist/utils/taskReferences.js +63 -0
  1250. package/dist/utils/taskforceAgentEvents.d.ts +8 -0
  1251. package/dist/utils/taskforceAgentEvents.js +6 -0
  1252. package/dist/utils/taskforceAgentSkillEvents.d.ts +7 -0
  1253. package/dist/utils/taskforceAgentSkillEvents.js +8 -0
  1254. package/dist/utils/uiNotice.d.ts +3 -0
  1255. package/dist/utils/uiNotice.js +1 -1
  1256. package/dist/utils/workspaceResourceEvents.d.ts +7 -0
  1257. package/dist/utils/workspaceResourceEvents.js +6 -0
  1258. package/dist/utils/workspaceSyncPresentation.d.ts +24 -0
  1259. package/dist/utils/workspaceSyncPresentation.js +243 -6
  1260. package/package.json +69 -21
  1261. package/dist/components/features/AgentsModule.d.ts +0 -18
  1262. package/dist/components/features/AgentsModule.js +0 -479
  1263. package/dist/components/features/InitiativesModule.d.ts +0 -22
  1264. package/dist/components/features/InitiativesModule.js +0 -33
  1265. package/dist/components/features/WorkflowsModule.d.ts +0 -27
  1266. package/dist/components/features/WorkflowsModule.js +0 -21
  1267. package/dist/components/features/settings/WorkflowEditor.d.ts +0 -15
  1268. package/dist/components/features/settings/WorkflowEditor.js +0 -245
  1269. package/dist/components/views/panels/DocumentFilterToolbar.d.ts +0 -10
  1270. package/dist/components/views/panels/DocumentFilterToolbar.js +0 -7
  1271. package/dist/components/views/standalone/modals/AccountHubModal.d.ts +0 -61
  1272. package/dist/components/views/standalone/modals/AccountHubModal.js +0 -108
  1273. package/dist/components/views/standalone/modals/EditProfileModal.d.ts +0 -19
  1274. package/dist/components/views/standalone/modals/EditProfileModal.js +0 -11
  1275. package/dist/hooks/ui/useResourceExport.d.ts +0 -21
  1276. package/dist/hooks/ui/useResourceExport.js +0 -87
  1277. package/dist/hooks/ui/useWorkflowTemplates.d.ts +0 -37
  1278. package/dist/hooks/ui/useWorkflowTemplates.js +0 -116
  1279. package/dist/mcp/clientProfileDefaults.d.ts +0 -12
  1280. package/dist/mcp/clientProfileDefaults.js +0 -41
  1281. package/dist/resources/templates/WORKFLOW_V2_POLICY.md +0 -55
  1282. package/dist/resources/templates/environments/aider.yaml +0 -14
  1283. package/dist/resources/templates/environments/antigravity.yaml +0 -10
  1284. package/dist/resources/templates/environments/claude.yaml +0 -10
  1285. package/dist/resources/templates/environments/cline.yaml +0 -10
  1286. package/dist/resources/templates/environments/codex.yaml +0 -13
  1287. package/dist/resources/templates/environments/copilot.yaml +0 -10
  1288. package/dist/resources/templates/environments/cursor.yaml +0 -9
  1289. package/dist/resources/templates/environments/gemini.yaml +0 -9
  1290. package/dist/resources/templates/environments/windsurf.yaml +0 -10
  1291. package/dist/resources/templates/workflow-sources/README.md +0 -9
  1292. package/dist/resources/templates/workflow-sources/workflowDocs.mjs +0 -530
  1293. package/dist/resources/templates/workflow-sources/workflowEditorOverrides.json +0 -1
  1294. package/dist/resources/templates/workflows/collaborate.yaml +0 -109
  1295. package/dist/resources/templates/workflows/do.yaml +0 -87
  1296. package/dist/resources/templates/workflows/evaluate.yaml +0 -116
  1297. package/dist/resources/templates/workflows/execute.yaml +0 -156
  1298. package/dist/resources/templates/workflows/plan.yaml +0 -118
  1299. package/dist/resources/templates/workflows/review.yaml +0 -114
  1300. package/dist/services/formatTransformers.d.ts +0 -29
  1301. package/dist/services/formatTransformers.js +0 -56
  1302. package/dist/services/templateEngine.d.ts +0 -46
  1303. package/dist/services/templateEngine.js +0 -148
  1304. package/dist/shared/workflowDefaults.d.ts +0 -9
  1305. package/dist/shared/workflowDefaults.js +0 -11
  1306. package/dist/ui/agent-logos/Gemini CLI.jpeg +0 -0
  1307. package/dist/ui/agent-logos/antigravity.jpeg +0 -0
  1308. package/dist/ui/agent-logos/chatgpt.png +0 -0
  1309. package/dist/ui/agent-logos/claude-code.jpeg +0 -0
  1310. package/dist/ui/agent-logos/codex.jpeg +0 -0
  1311. package/dist/ui/agent-logos/cursor.png +0 -0
  1312. package/dist/ui/agent-logos/openclaw.jpeg +0 -0
  1313. package/dist/ui/agent-logos/windsurf.png +0 -0
  1314. package/dist/ui/assets/AgentsModule-C4LcqhcZ.js +0 -1
  1315. package/dist/ui/assets/AnnotatedAttachmentWorkspace-B-Dq22d2.js +0 -3
  1316. package/dist/ui/assets/AnnotatedAttachmentWorkspace-BVKew-mH.css +0 -1
  1317. package/dist/ui/assets/ContextAttachmentManager-DsXPTvi-.js +0 -3
  1318. package/dist/ui/assets/DocumentWorkspace-CxA1wO3U.js +0 -252
  1319. package/dist/ui/assets/DocumentWorkspace-D4rJKXzd.css +0 -1
  1320. package/dist/ui/assets/EntityActivityTimeline-B8nSe8l3.js +0 -1
  1321. package/dist/ui/assets/EntityActivityTimeline-DyqvvhuF.css +0 -1
  1322. package/dist/ui/assets/InitiativesModule-VY95v38E.js +0 -1
  1323. package/dist/ui/assets/PlansPage-CQbKDv1a.js +0 -1
  1324. package/dist/ui/assets/PlansPage-DeAzWYTb.css +0 -1
  1325. package/dist/ui/assets/TaskContextUpload-DvDlNpHC.js +0 -1
  1326. package/dist/ui/assets/TaskSettings-CUWbYYtP.js +0 -12
  1327. package/dist/ui/assets/WorkflowsModule-CgM3Jako.js +0 -5
  1328. package/dist/ui/assets/documentReferences-Do9YjrS3.js +0 -1
  1329. package/dist/ui/assets/index--mh3pktj.js +0 -5
  1330. package/dist/ui/assets/index-BawaaEXS.css +0 -1
  1331. package/dist/ui/assets/vendor-router-BbWMxlnO.js +0 -3
  1332. package/dist/ui/branding/logos/logo_black_01.png +0 -0
  1333. package/dist/ui/branding/logos/logo_black_02.png +0 -0
  1334. package/dist/ui/branding/logos/logo_white_01.png +0 -0
  1335. package/dist/ui/branding/logos/logo_white_02.png +0 -0
  1336. package/scripts/generate-workflow-templates.mjs +0 -134
  1337. package/src/resources/templates/WORKFLOW_V2_POLICY.md +0 -55
  1338. package/src/resources/templates/environments/aider.yaml +0 -14
  1339. package/src/resources/templates/environments/antigravity.yaml +0 -10
  1340. package/src/resources/templates/environments/claude.yaml +0 -10
  1341. package/src/resources/templates/environments/cline.yaml +0 -10
  1342. package/src/resources/templates/environments/codex.yaml +0 -13
  1343. package/src/resources/templates/environments/copilot.yaml +0 -10
  1344. package/src/resources/templates/environments/cursor.yaml +0 -9
  1345. package/src/resources/templates/environments/gemini.yaml +0 -9
  1346. package/src/resources/templates/environments/windsurf.yaml +0 -10
  1347. package/src/resources/templates/workflow-sources/README.md +0 -9
  1348. package/src/resources/templates/workflow-sources/workflowDocs.mjs +0 -530
  1349. package/src/resources/templates/workflow-sources/workflowEditorOverrides.json +0 -1
  1350. package/src/resources/templates/workflows/collaborate.yaml +0 -109
  1351. package/src/resources/templates/workflows/do.yaml +0 -87
  1352. package/src/resources/templates/workflows/evaluate.yaml +0 -116
  1353. package/src/resources/templates/workflows/execute.yaml +0 -156
  1354. package/src/resources/templates/workflows/plan.yaml +0 -118
  1355. package/src/resources/templates/workflows/review.yaml +0 -114
  1356. /package/dist/ui/branding/logos/{logo_dark.svg → logo_dark_no_bg.svg} +0 -0
  1357. /package/dist/ui/branding/logos/{logo_favicon.svg → logo_favicon_light.svg} +0 -0
  1358. /package/dist/ui/branding/logos/{logo_light.svg → logo_light_no_bg.svg} +0 -0
@@ -0,0 +1,1039 @@
1
+ import { LOCAL_SYNC_COORDINATOR_ID, LocalSyncCoordinatorError, } from './localSyncCoordinatorTypes.js';
2
+ const RECONCILE_COMMAND_TYPES = new Set(['Sync', 'Retry']);
3
+ export const LOCAL_SYNC_COMMAND_RETENTION_MIN_AGE_MS = 7 * 24 * 60 * 60 * 1000;
4
+ export const LOCAL_SYNC_COMMAND_RETENTION_SOFT_LIMIT = 1_000;
5
+ export const LOCAL_SYNC_COMMAND_RETENTION_DELETE_BATCH = 250;
6
+ function coalescingTypes(type) {
7
+ if (RECONCILE_COMMAND_TYPES.has(type))
8
+ return ['Sync', 'Retry'];
9
+ return [type];
10
+ }
11
+ function supersededTypes(type) {
12
+ return type === 'Repair' || type === 'DisableSync'
13
+ ? ['Sync', 'Retry']
14
+ : [];
15
+ }
16
+ function isRunnerCommandType(type) {
17
+ return ['EnableSync', 'DisableSync', 'Sync', 'Retry', 'Repair'].includes(type);
18
+ }
19
+ function parseJson(value) {
20
+ if (!value)
21
+ return null;
22
+ return JSON.parse(value);
23
+ }
24
+ function parsePrincipal(value) {
25
+ const parsed = parseJson(value);
26
+ if (!parsed || typeof parsed !== 'object')
27
+ return null;
28
+ const candidate = parsed;
29
+ if (!candidate.userId || !candidate.tenantId)
30
+ return null;
31
+ return { userId: candidate.userId, tenantId: candidate.tenantId };
32
+ }
33
+ function collectCommandReferences(value, target) {
34
+ if (!value || typeof value !== 'object')
35
+ return;
36
+ if (Array.isArray(value)) {
37
+ for (const item of value)
38
+ collectCommandReferences(item, target);
39
+ return;
40
+ }
41
+ for (const [key, item] of Object.entries(value)) {
42
+ if (['commandId', 'leaderCommandId', 'supersedingCommandId'].includes(key)
43
+ && typeof item === 'string'
44
+ && item.trim()) {
45
+ target.add(item.trim());
46
+ }
47
+ else if (item && typeof item === 'object') {
48
+ collectCommandReferences(item, target);
49
+ }
50
+ }
51
+ }
52
+ function parseTerminalTransferRecord(value) {
53
+ const parsed = parseJson(value);
54
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
55
+ return null;
56
+ const candidate = parsed;
57
+ if (typeof candidate.commandId !== 'string'
58
+ || !['succeeded', 'failed'].includes(String(candidate.status))
59
+ || !['server', 'browser-gateway'].includes(String(candidate.sourceMode))
60
+ || !['server', 'browser-gateway'].includes(String(candidate.targetMode))
61
+ || !Number.isInteger(candidate.sourceGeneration)
62
+ || !Number.isInteger(candidate.targetGeneration)
63
+ || typeof candidate.completedAt !== 'string'
64
+ || (candidate.errorCode !== null && typeof candidate.errorCode !== 'string')
65
+ || (candidate.errorPhase !== null
66
+ && ![
67
+ 'preparing',
68
+ 'draining',
69
+ 'generation-advanced',
70
+ 'starting-target',
71
+ 'stopping-source',
72
+ 'committing',
73
+ ].includes(String(candidate.errorPhase)))) {
74
+ return null;
75
+ }
76
+ return {
77
+ commandId: candidate.commandId,
78
+ status: candidate.status,
79
+ sourceMode: candidate.sourceMode,
80
+ targetMode: candidate.targetMode,
81
+ sourceGeneration: candidate.sourceGeneration,
82
+ targetGeneration: candidate.targetGeneration,
83
+ completedAt: candidate.completedAt,
84
+ errorCode: candidate.errorCode,
85
+ errorPhase: candidate.errorPhase,
86
+ };
87
+ }
88
+ function mapState(row) {
89
+ if (row.desired_ownership_mode !== 'server'
90
+ && row.desired_ownership_mode !== 'browser-gateway') {
91
+ throw new LocalSyncCoordinatorError('The local sync coordinator has an invalid desired ownership mode.', 'SYNC_COORDINATOR_STATE_CORRUPT');
92
+ }
93
+ return {
94
+ activeWorkspaceId: row.active_workspace_id || null,
95
+ coordinatorGeneration: Number(row.coordinator_generation || 0),
96
+ localDataVersion: Number(row.local_data_version || 0),
97
+ ownershipMode: row.ownership_mode || 'stopped',
98
+ desiredOwnershipMode: row.desired_ownership_mode,
99
+ transitionState: row.transition_state || 'idle',
100
+ acceptedSwitchCommandId: row.accepted_switch_command_id || null,
101
+ targetWorkspaceId: row.target_workspace_id || null,
102
+ requestedBy: parsePrincipal(row.requested_by_json),
103
+ terminalSwitchResult: parseJson(row.terminal_switch_result_json),
104
+ terminalTransferResult: parseTerminalTransferRecord(row.terminal_transfer_result_json),
105
+ acceptedTransferCommandId: row.accepted_transfer_command_id || null,
106
+ transferTargetMode: row.transfer_target_mode || null,
107
+ transferPhase: row.transfer_phase || null,
108
+ transferVersion: row.transfer_version == null ? null : Number(row.transfer_version),
109
+ updatedAt: String(row.updated_at || ''),
110
+ };
111
+ }
112
+ function mapCommand(row) {
113
+ return {
114
+ commandId: String(row.command_id || ''),
115
+ workspaceId: row.workspace_id || null,
116
+ expectedCoordinatorGeneration: Number(row.expected_coordinator_generation || 0),
117
+ type: row.command_type || 'Sync',
118
+ version: Number(row.command_version || 1),
119
+ args: parseJson(row.args_json),
120
+ canonicalFingerprint: String(row.canonical_fingerprint || ''),
121
+ requestedBy: parsePrincipal(row.requested_by_json) || { userId: '', tenantId: '' },
122
+ requestedAt: String(row.requested_at || ''),
123
+ status: row.status || 'failed',
124
+ startedAt: row.started_at || null,
125
+ completedAt: row.completed_at || null,
126
+ result: parseJson(row.result_json),
127
+ errorCode: row.error_code || null,
128
+ errorMessage: row.error_message || null,
129
+ updatedAt: String(row.updated_at || ''),
130
+ };
131
+ }
132
+ function buildTerminalTransferRecord(input) {
133
+ const { acceptedTransferCommandId, transferTargetMode, transferPhase, coordinatorGeneration, } = input.state;
134
+ if (!acceptedTransferCommandId || !transferTargetMode || !transferPhase) {
135
+ throw new LocalSyncCoordinatorError('The ownership transfer is missing terminal evidence coordinates.', 'SYNC_COORDINATOR_COMMAND_INVALID');
136
+ }
137
+ const generationAdvanced = !['preparing', 'draining'].includes(transferPhase);
138
+ const sourceGeneration = generationAdvanced
139
+ ? coordinatorGeneration - 1
140
+ : coordinatorGeneration;
141
+ return {
142
+ commandId: acceptedTransferCommandId,
143
+ status: input.status,
144
+ sourceMode: transferTargetMode === 'server' ? 'browser-gateway' : 'server',
145
+ targetMode: transferTargetMode,
146
+ sourceGeneration,
147
+ targetGeneration: sourceGeneration + 1,
148
+ completedAt: input.completedAt,
149
+ errorCode: input.errorCode ?? null,
150
+ errorPhase: input.status === 'failed' ? transferPhase : null,
151
+ };
152
+ }
153
+ export class LocalSyncCoordinatorStore {
154
+ db;
155
+ now;
156
+ constructor(db, now = () => new Date().toISOString()) {
157
+ this.db = db;
158
+ this.now = now;
159
+ }
160
+ readOrCreateState() {
161
+ const existing = this.db.prepare(`
162
+ SELECT *
163
+ FROM local_sync_coordinator_state
164
+ WHERE coordinator_id = ?
165
+ `).get(LOCAL_SYNC_COORDINATOR_ID);
166
+ if (existing)
167
+ return mapState(existing);
168
+ const updatedAt = this.now();
169
+ this.db.prepare(`
170
+ INSERT INTO local_sync_coordinator_state (
171
+ coordinator_id, active_workspace_id, coordinator_generation,
172
+ ownership_mode, desired_ownership_mode, transition_state, updated_at
173
+ ) VALUES (?, NULL, 0, 'stopped', 'browser-gateway', 'idle', ?)
174
+ ON CONFLICT (coordinator_id) DO NOTHING
175
+ `).run(LOCAL_SYNC_COORDINATOR_ID, updatedAt);
176
+ return mapState(this.db.prepare(`
177
+ SELECT *
178
+ FROM local_sync_coordinator_state
179
+ WHERE coordinator_id = ?
180
+ `).get(LOCAL_SYNC_COORDINATOR_ID));
181
+ }
182
+ /**
183
+ * Advances the browser-visible data version after a committed local apply.
184
+ *
185
+ * This method deliberately does not open its own transaction. Apply callers
186
+ * must invoke it inside the same database transaction as the local writes so
187
+ * the version cannot become visible unless those writes commit.
188
+ */
189
+ advanceLocalDataVersion(input) {
190
+ const result = this.db.prepare(`
191
+ UPDATE local_sync_coordinator_state
192
+ SET local_data_version = local_data_version + 1,
193
+ updated_at = ?
194
+ WHERE coordinator_id = ?
195
+ AND active_workspace_id = ?
196
+ AND coordinator_generation = ?
197
+ `).run(this.now(), LOCAL_SYNC_COORDINATOR_ID, input.workspaceId, input.expectedCoordinatorGeneration);
198
+ if (Number(result.changes || 0) === 1) {
199
+ return this.readOrCreateState().localDataVersion;
200
+ }
201
+ const state = this.readOrCreateState();
202
+ if (state.coordinatorGeneration !== input.expectedCoordinatorGeneration) {
203
+ throw new LocalSyncCoordinatorError(`Coordinator generation ${input.expectedCoordinatorGeneration} is stale; current generation is ${state.coordinatorGeneration}.`, 'SYNC_COORDINATOR_STALE_GENERATION');
204
+ }
205
+ throw new LocalSyncCoordinatorError(`Workspace ${input.workspaceId} is not the active local sync workspace.`, 'SYNC_COORDINATOR_INACTIVE_WORKSPACE');
206
+ }
207
+ setLifecycleMode(ownershipMode, transitionState) {
208
+ this.db.prepare(`
209
+ UPDATE local_sync_coordinator_state
210
+ SET ownership_mode = ?, transition_state = ?, updated_at = ?
211
+ WHERE coordinator_id = ?
212
+ `).run(ownershipMode, transitionState, this.now(), LOCAL_SYNC_COORDINATOR_ID);
213
+ return this.readOrCreateState();
214
+ }
215
+ resumeBrowserGatewayAfterAuthenticatedRestart(input) {
216
+ return this.resumeDesiredOwnerAfterAuthenticatedRestart({
217
+ ...input,
218
+ targetMode: 'browser-gateway',
219
+ });
220
+ }
221
+ resumeServerAfterAuthenticatedRestart(input, activateCommittedOwner) {
222
+ return this.resumeDesiredOwnerAfterAuthenticatedRestart({
223
+ ...input,
224
+ targetMode: 'server',
225
+ }, activateCommittedOwner);
226
+ }
227
+ resumeDesiredOwnerAfterAuthenticatedRestart(input, activateCommittedOwner) {
228
+ return this.db.transaction(() => {
229
+ const state = this.readOrCreateState();
230
+ if (state.coordinatorGeneration !== input.expectedCoordinatorGeneration) {
231
+ throw new LocalSyncCoordinatorError(`Coordinator generation ${input.expectedCoordinatorGeneration} is stale; current generation is ${state.coordinatorGeneration}.`, 'SYNC_COORDINATOR_STALE_GENERATION');
232
+ }
233
+ if (state.activeWorkspaceId !== input.workspaceId) {
234
+ throw new LocalSyncCoordinatorError(`Workspace ${input.workspaceId} is not the active local sync workspace.`, 'SYNC_COORDINATOR_INACTIVE_WORKSPACE');
235
+ }
236
+ if (state.ownershipMode === input.targetMode
237
+ && state.transitionState === 'idle') {
238
+ return state;
239
+ }
240
+ if (state.ownershipMode !== 'stopped'
241
+ || state.transitionState !== 'idle'
242
+ || state.desiredOwnershipMode !== input.targetMode) {
243
+ throw new LocalSyncCoordinatorError('The local sync coordinator cannot resume the requested owner from its current state.', 'SYNC_COORDINATOR_COMMAND_INVALID');
244
+ }
245
+ const result = this.db.prepare(`
246
+ UPDATE local_sync_coordinator_state
247
+ SET ownership_mode = ?, updated_at = ?
248
+ WHERE coordinator_id = ?
249
+ AND active_workspace_id = ?
250
+ AND coordinator_generation = ?
251
+ AND ownership_mode = 'stopped'
252
+ AND desired_ownership_mode = ?
253
+ AND transition_state = 'idle'
254
+ `).run(input.targetMode, this.now(), LOCAL_SYNC_COORDINATOR_ID, input.workspaceId, input.expectedCoordinatorGeneration, input.targetMode);
255
+ if (Number(result?.changes || 0) !== 1) {
256
+ throw new LocalSyncCoordinatorError('The local sync coordinator changed while restart ownership was resuming.', 'SYNC_COORDINATOR_STALE_GENERATION');
257
+ }
258
+ const resumed = this.readOrCreateState();
259
+ const activationResult = activateCommittedOwner?.(resumed);
260
+ if (activationResult
261
+ && (typeof activationResult === 'object'
262
+ || typeof activationResult === 'function')
263
+ && typeof activationResult.then === 'function') {
264
+ throw new LocalSyncCoordinatorError('Restart ownership activation must complete synchronously inside the coordinator transaction.', 'SYNC_COORDINATOR_COMMAND_INVALID');
265
+ }
266
+ return resumed;
267
+ })();
268
+ }
269
+ acceptCommand(envelope, options = {}) {
270
+ const accepted = this.db.transaction(() => {
271
+ const admissionState = isRunnerCommandType(envelope.type)
272
+ ? (() => {
273
+ this.readOrCreateState();
274
+ return mapState(this.db.prepare(`
275
+ SELECT *
276
+ FROM local_sync_coordinator_state
277
+ WHERE coordinator_id = ?
278
+ ${this.db.provider === 'postgres' ? 'FOR UPDATE' : ''}
279
+ `).get(LOCAL_SYNC_COORDINATOR_ID));
280
+ })()
281
+ : null;
282
+ const existing = this.readCommand(envelope.commandId);
283
+ if (existing) {
284
+ if (existing.canonicalFingerprint !== envelope.canonicalFingerprint) {
285
+ throw new LocalSyncCoordinatorError(`Coordinator command ${envelope.commandId} was reused with different input.`, 'SYNC_COORDINATOR_COMMAND_IDENTITY_CONFLICT');
286
+ }
287
+ return { record: existing, replayed: true };
288
+ }
289
+ if (options.requireActiveWorkspace) {
290
+ const state = admissionState || this.readOrCreateState();
291
+ if (state.coordinatorGeneration !== envelope.expectedCoordinatorGeneration
292
+ || state.transitionState !== 'idle'
293
+ || !['browser-gateway', 'server'].includes(state.ownershipMode)) {
294
+ throw new LocalSyncCoordinatorError(`Coordinator generation ${envelope.expectedCoordinatorGeneration} is stale; current generation is ${state.coordinatorGeneration}.`, 'SYNC_COORDINATOR_STALE_GENERATION');
295
+ }
296
+ if (!envelope.workspaceId || state.activeWorkspaceId !== envelope.workspaceId) {
297
+ throw new LocalSyncCoordinatorError(`Workspace ${envelope.workspaceId || '(none)'} is not the active local sync workspace.`, 'SYNC_COORDINATOR_INACTIVE_WORKSPACE');
298
+ }
299
+ if (options.requireServerOwnership && state.ownershipMode !== 'server') {
300
+ throw new LocalSyncCoordinatorError('Runner commands require active server ownership.', 'SYNC_COORDINATOR_COMMAND_INVALID');
301
+ }
302
+ }
303
+ if (options.requireWorkspaceSwitchSource) {
304
+ const expectedActiveWorkspaceId = options.expectedActiveWorkspaceId ?? null;
305
+ const state = this.readOrCreateState();
306
+ if (state.coordinatorGeneration !== envelope.expectedCoordinatorGeneration
307
+ || state.transitionState !== 'idle'
308
+ || !['browser-gateway', 'server'].includes(state.ownershipMode)) {
309
+ throw new LocalSyncCoordinatorError(`Coordinator generation ${envelope.expectedCoordinatorGeneration} is stale; current generation is ${state.coordinatorGeneration}.`, 'SYNC_COORDINATOR_STALE_GENERATION');
310
+ }
311
+ if (envelope.workspaceId !== expectedActiveWorkspaceId
312
+ || state.activeWorkspaceId !== expectedActiveWorkspaceId) {
313
+ throw new LocalSyncCoordinatorError(`Workspace ${expectedActiveWorkspaceId || '(none)'} is not the active local sync workspace.`, 'SYNC_COORDINATOR_INACTIVE_WORKSPACE');
314
+ }
315
+ }
316
+ if (isRunnerCommandType(envelope.type)) {
317
+ const activeCommands = this.db.prepare(`
318
+ SELECT *
319
+ FROM local_sync_coordinator_commands
320
+ WHERE workspace_id = ?
321
+ AND expected_coordinator_generation = ?
322
+ AND command_type IN ('EnableSync', 'DisableSync', 'Sync', 'Retry', 'Repair')
323
+ AND status IN ('accepted', 'running')
324
+ ORDER BY requested_at ASC, command_id ASC
325
+ `).all(envelope.workspaceId, envelope.expectedCoordinatorGeneration).map(mapCommand);
326
+ const coalescingCommandTypes = new Set(coalescingTypes(envelope.type));
327
+ const leader = activeCommands.find((command) => (coalescingCommandTypes.has(command.type)));
328
+ const at = this.now();
329
+ const status = leader ? 'superseded' : 'accepted';
330
+ const result = leader
331
+ ? {
332
+ disposition: 'coalesced',
333
+ leaderCommandId: leader.commandId,
334
+ }
335
+ : null;
336
+ this.db.prepare(`
337
+ INSERT INTO local_sync_coordinator_commands (
338
+ command_id, workspace_id, expected_coordinator_generation,
339
+ command_type, command_version, args_json, canonical_fingerprint,
340
+ requested_by_json, requested_at, status, completed_at,
341
+ result_json, updated_at
342
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
343
+ `).run(envelope.commandId, envelope.workspaceId, envelope.expectedCoordinatorGeneration, envelope.type, envelope.version, JSON.stringify(envelope.args ?? null), envelope.canonicalFingerprint, JSON.stringify(envelope.requestedBy), envelope.requestedAt, status, leader ? at : null, result ? JSON.stringify(result) : null, at);
344
+ const typesToSupersede = supersededTypes(envelope.type);
345
+ if (typesToSupersede.length > 0) {
346
+ const supersedingCommandId = leader?.commandId || envelope.commandId;
347
+ const reason = envelope.type === 'DisableSync'
348
+ ? 'sync-disabled-before-reconcile'
349
+ : 'repair-replaces-reconcile';
350
+ this.db.prepare(`
351
+ UPDATE local_sync_coordinator_commands
352
+ SET status = 'superseded',
353
+ completed_at = ?,
354
+ result_json = ?,
355
+ error_code = NULL,
356
+ error_message = NULL,
357
+ updated_at = ?
358
+ WHERE workspace_id = ?
359
+ AND expected_coordinator_generation = ?
360
+ AND command_type IN ('Sync', 'Retry')
361
+ AND status = 'accepted'
362
+ `).run(at, JSON.stringify({
363
+ disposition: 'superseded',
364
+ supersedingCommandId,
365
+ reason,
366
+ }), at, envelope.workspaceId, envelope.expectedCoordinatorGeneration);
367
+ }
368
+ return { record: this.readCommand(envelope.commandId), replayed: false };
369
+ }
370
+ this.db.prepare(`
371
+ INSERT INTO local_sync_coordinator_commands (
372
+ command_id, workspace_id, expected_coordinator_generation,
373
+ command_type, command_version, args_json, canonical_fingerprint,
374
+ requested_by_json, requested_at, status, updated_at
375
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'accepted', ?)
376
+ `).run(envelope.commandId, envelope.workspaceId, envelope.expectedCoordinatorGeneration, envelope.type, envelope.version, JSON.stringify(envelope.args ?? null), envelope.canonicalFingerprint, JSON.stringify(envelope.requestedBy), envelope.requestedAt, this.now());
377
+ return { record: this.readCommand(envelope.commandId), replayed: false };
378
+ })();
379
+ this.pruneTerminalCommands();
380
+ return accepted;
381
+ }
382
+ readCommand(commandId) {
383
+ const row = this.db.prepare(`
384
+ SELECT *
385
+ FROM local_sync_coordinator_commands
386
+ WHERE command_id = ?
387
+ `).get(commandId);
388
+ return row ? mapCommand(row) : null;
389
+ }
390
+ listAcceptedRunnerCommands(input) {
391
+ return this.db.prepare(`
392
+ SELECT *
393
+ FROM local_sync_coordinator_commands
394
+ WHERE workspace_id = ?
395
+ AND expected_coordinator_generation = ?
396
+ AND command_type IN ('EnableSync', 'DisableSync', 'Sync', 'Retry', 'Repair')
397
+ AND status = 'accepted'
398
+ ORDER BY
399
+ CASE WHEN command_type = 'DisableSync' THEN 0 ELSE 1 END,
400
+ requested_at ASC,
401
+ command_id ASC
402
+ `).all(input.workspaceId, input.coordinatorGeneration).map(mapCommand);
403
+ }
404
+ claimNextRunnerCommand(input) {
405
+ return this.db.transaction(() => {
406
+ this.readOrCreateState();
407
+ const state = mapState(this.db.prepare(`
408
+ SELECT *
409
+ FROM local_sync_coordinator_state
410
+ WHERE coordinator_id = ?
411
+ ${this.db.provider === 'postgres' ? 'FOR UPDATE' : ''}
412
+ `).get(LOCAL_SYNC_COORDINATOR_ID));
413
+ if (state.activeWorkspaceId !== input.workspaceId
414
+ || state.coordinatorGeneration !== input.coordinatorGeneration
415
+ || state.ownershipMode !== 'server'
416
+ || state.transitionState !== 'idle') {
417
+ throw new LocalSyncCoordinatorError('The runner command execution fence is stale or server ownership is inactive.', state.coordinatorGeneration !== input.coordinatorGeneration
418
+ ? 'SYNC_COORDINATOR_STALE_GENERATION'
419
+ : 'SYNC_COORDINATOR_COMMAND_INVALID');
420
+ }
421
+ const row = this.db.prepare(`
422
+ SELECT *
423
+ FROM local_sync_coordinator_commands
424
+ WHERE workspace_id = ?
425
+ AND expected_coordinator_generation = ?
426
+ AND command_type IN ('EnableSync', 'DisableSync', 'Sync', 'Retry', 'Repair')
427
+ AND status = 'accepted'
428
+ AND (? = 1 OR command_type IN ('EnableSync', 'DisableSync'))
429
+ ORDER BY
430
+ CASE WHEN command_type = 'DisableSync' THEN 0 ELSE 1 END,
431
+ requested_at ASC,
432
+ command_id ASC
433
+ LIMIT 1
434
+ ${this.db.provider === 'postgres' ? 'FOR UPDATE' : ''}
435
+ `).get(input.workspaceId, input.coordinatorGeneration, input.cloudCapabilityAvailable ? 1 : 0);
436
+ if (!row)
437
+ return null;
438
+ const command = mapCommand(row);
439
+ const at = this.now();
440
+ const result = this.db.prepare(`
441
+ UPDATE local_sync_coordinator_commands
442
+ SET status = 'running', started_at = COALESCE(started_at, ?), updated_at = ?
443
+ WHERE command_id = ? AND status = 'accepted'
444
+ `).run(at, at, command.commandId);
445
+ return Number(result?.changes || 0) === 1
446
+ ? this.readCommand(command.commandId)
447
+ : null;
448
+ })();
449
+ }
450
+ claimCommandForExecution(input) {
451
+ return this.db.transaction(() => {
452
+ this.readOrCreateState();
453
+ const state = mapState(this.db.prepare(`
454
+ SELECT *
455
+ FROM local_sync_coordinator_state
456
+ WHERE coordinator_id = ?
457
+ ${this.db.provider === 'postgres' ? 'FOR UPDATE' : ''}
458
+ `).get(LOCAL_SYNC_COORDINATOR_ID));
459
+ if (state.activeWorkspaceId !== input.workspaceId
460
+ || state.coordinatorGeneration !== input.coordinatorGeneration
461
+ || state.ownershipMode !== 'server'
462
+ || state.transitionState !== 'idle') {
463
+ throw new LocalSyncCoordinatorError('The runner command execution fence is stale or server ownership is inactive.', state.coordinatorGeneration !== input.coordinatorGeneration
464
+ ? 'SYNC_COORDINATOR_STALE_GENERATION'
465
+ : 'SYNC_COORDINATOR_COMMAND_INVALID');
466
+ }
467
+ const at = this.now();
468
+ const result = this.db.prepare(`
469
+ UPDATE local_sync_coordinator_commands
470
+ SET status = 'running', started_at = COALESCE(started_at, ?), updated_at = ?
471
+ WHERE command_id = ?
472
+ AND workspace_id = ?
473
+ AND expected_coordinator_generation = ?
474
+ AND command_type IN ('EnableSync', 'DisableSync', 'Sync', 'Retry', 'Repair')
475
+ AND status = 'accepted'
476
+ `).run(at, at, input.commandId, input.workspaceId, input.coordinatorGeneration);
477
+ return {
478
+ record: this.readCommand(input.commandId),
479
+ claimed: Number(result?.changes || 0) === 1,
480
+ };
481
+ })();
482
+ }
483
+ recoverRunnerCommandsForRecreation(input) {
484
+ return this.db.transaction(() => {
485
+ this.readOrCreateState();
486
+ const state = mapState(this.db.prepare(`
487
+ SELECT *
488
+ FROM local_sync_coordinator_state
489
+ WHERE coordinator_id = ?
490
+ ${this.db.provider === 'postgres' ? 'FOR UPDATE' : ''}
491
+ `).get(LOCAL_SYNC_COORDINATOR_ID));
492
+ if (state.activeWorkspaceId !== input.workspaceId
493
+ || state.coordinatorGeneration !== input.coordinatorGeneration
494
+ || state.ownershipMode !== 'server'
495
+ || state.transitionState !== 'idle') {
496
+ throw new LocalSyncCoordinatorError('Runner command recovery requires the exact active server generation.', state.coordinatorGeneration !== input.coordinatorGeneration
497
+ ? 'SYNC_COORDINATOR_STALE_GENERATION'
498
+ : 'SYNC_COORDINATOR_COMMAND_INVALID');
499
+ }
500
+ const result = this.db.prepare(`
501
+ UPDATE local_sync_coordinator_commands
502
+ SET status = 'accepted',
503
+ completed_at = NULL,
504
+ error_code = 'SYNC_COORDINATOR_RUNNER_RECREATED',
505
+ error_message = 'The command was requeued after controlled runner recovery.',
506
+ updated_at = ?
507
+ WHERE workspace_id = ?
508
+ AND expected_coordinator_generation = ?
509
+ AND command_type IN ('EnableSync', 'DisableSync', 'Sync', 'Retry', 'Repair')
510
+ AND status = 'running'
511
+ `).run(this.now(), input.workspaceId, input.coordinatorGeneration);
512
+ return Number(result?.changes || 0);
513
+ })();
514
+ }
515
+ markCommandRunning(commandId) {
516
+ const at = this.now();
517
+ this.db.prepare(`
518
+ UPDATE local_sync_coordinator_commands
519
+ SET status = 'running', started_at = COALESCE(started_at, ?), updated_at = ?
520
+ WHERE command_id = ? AND status = 'accepted'
521
+ `).run(at, at, commandId);
522
+ return this.readCommand(commandId);
523
+ }
524
+ finishCommand(input) {
525
+ const at = this.now();
526
+ this.db.prepare(`
527
+ UPDATE local_sync_coordinator_commands
528
+ SET status = ?, completed_at = ?, result_json = ?, error_code = ?,
529
+ error_message = ?, updated_at = ?
530
+ WHERE command_id = ? AND status IN ('accepted', 'running')
531
+ `).run(input.status, at, input.result === undefined ? null : JSON.stringify(input.result), input.errorCode || null, input.errorMessage || null, at, input.commandId);
532
+ const command = this.readCommand(input.commandId);
533
+ this.pruneTerminalCommands();
534
+ return command;
535
+ }
536
+ recoverAfterRestart() {
537
+ const recovered = this.db.transaction(() => {
538
+ const state = this.readOrCreateState();
539
+ const at = this.now();
540
+ const interruptedTransfer = state.transitionState === 'transferring-ownership'
541
+ ? buildTerminalTransferRecord({
542
+ state,
543
+ completedAt: at,
544
+ status: 'failed',
545
+ errorCode: 'SYNC_COORDINATOR_RESTART_INTERRUPTED',
546
+ })
547
+ : null;
548
+ if (state.transitionState !== 'idle' || state.ownershipMode === 'server') {
549
+ if (state.activeWorkspaceId) {
550
+ this.advanceRunnerStateGenerationIfPresent({
551
+ workspaceId: state.activeWorkspaceId,
552
+ expectedSourceGeneration: state.coordinatorGeneration,
553
+ targetGeneration: state.coordinatorGeneration + 1,
554
+ updatedAt: at,
555
+ });
556
+ }
557
+ this.db.prepare(`
558
+ UPDATE local_sync_coordinator_state
559
+ SET coordinator_generation = coordinator_generation + 1,
560
+ ownership_mode = CASE
561
+ WHEN transition_state = 'transferring-ownership'
562
+ OR ownership_mode = 'server' THEN 'stopped'
563
+ ELSE 'browser-gateway'
564
+ END,
565
+ transition_state = 'idle',
566
+ accepted_switch_command_id = NULL,
567
+ target_workspace_id = NULL,
568
+ requested_by_json = NULL,
569
+ terminal_switch_result_json = CASE
570
+ WHEN transition_state = 'switching-workspace' THEN ?
571
+ ELSE terminal_switch_result_json
572
+ END,
573
+ terminal_transfer_result_json = CASE
574
+ WHEN transition_state = 'transferring-ownership' THEN ?
575
+ ELSE terminal_transfer_result_json
576
+ END,
577
+ accepted_transfer_command_id = NULL,
578
+ transfer_target_mode = NULL,
579
+ transfer_phase = NULL,
580
+ transfer_version = NULL,
581
+ updated_at = ?
582
+ WHERE coordinator_id = ?
583
+ AND (transition_state <> 'idle' OR ownership_mode = 'server')
584
+ `).run(JSON.stringify({
585
+ status: 'failed',
586
+ errorCode: 'SYNC_COORDINATOR_RESTART_INTERRUPTED',
587
+ }), interruptedTransfer ? JSON.stringify(interruptedTransfer) : null, at, LOCAL_SYNC_COORDINATOR_ID);
588
+ }
589
+ if (interruptedTransfer) {
590
+ this.db.prepare(`
591
+ UPDATE local_sync_coordinator_commands
592
+ SET result_json = ?
593
+ WHERE command_id = ?
594
+ AND status IN ('accepted', 'running')
595
+ `).run(JSON.stringify({ terminalTransfer: interruptedTransfer }), interruptedTransfer.commandId);
596
+ }
597
+ const neverStarted = this.db.prepare(`
598
+ UPDATE local_sync_coordinator_commands
599
+ SET status = 'failed', completed_at = ?,
600
+ error_code = 'SYNC_COORDINATOR_RESTART_BEFORE_EXECUTION',
601
+ error_message = 'The local sync server restarted before this accepted command began executing.',
602
+ updated_at = ?
603
+ WHERE status = 'accepted'
604
+ `).run(at, at);
605
+ const interrupted = this.db.prepare(`
606
+ UPDATE local_sync_coordinator_commands
607
+ SET status = 'failed', completed_at = ?, error_code = 'SYNC_COORDINATOR_RESTART_INTERRUPTED',
608
+ error_message = 'The local sync server restarted before this command reached a terminal result.',
609
+ updated_at = ?
610
+ WHERE status = 'running'
611
+ `).run(at, at);
612
+ return {
613
+ state: this.readOrCreateState(),
614
+ interruptedCommandCount: Number(neverStarted?.changes || 0) + Number(interrupted?.changes || 0),
615
+ };
616
+ })();
617
+ this.pruneTerminalCommands();
618
+ return recovered;
619
+ }
620
+ pruneTerminalCommands() {
621
+ const nowMs = Date.parse(this.now());
622
+ if (!Number.isFinite(nowMs))
623
+ return 0;
624
+ const cutoff = new Date(nowMs - LOCAL_SYNC_COMMAND_RETENTION_MIN_AGE_MS).toISOString();
625
+ return this.db.transaction(() => {
626
+ const rows = this.db.prepare(`
627
+ SELECT *
628
+ FROM local_sync_coordinator_commands
629
+ WHERE status IN ('succeeded', 'failed', 'superseded')
630
+ AND completed_at IS NOT NULL
631
+ ORDER BY completed_at DESC, command_id DESC
632
+ `).all().map(mapCommand);
633
+ if (rows.length <= LOCAL_SYNC_COMMAND_RETENTION_SOFT_LIMIT)
634
+ return 0;
635
+ const protectedIds = new Set();
636
+ for (const command of rows.slice(0, LOCAL_SYNC_COMMAND_RETENTION_SOFT_LIMIT)) {
637
+ protectedIds.add(command.commandId);
638
+ }
639
+ for (const command of rows) {
640
+ if (command.completedAt && command.completedAt >= cutoff) {
641
+ protectedIds.add(command.commandId);
642
+ }
643
+ }
644
+ const state = this.readOrCreateState();
645
+ if (state.acceptedSwitchCommandId)
646
+ protectedIds.add(state.acceptedSwitchCommandId);
647
+ if (state.acceptedTransferCommandId)
648
+ protectedIds.add(state.acceptedTransferCommandId);
649
+ collectCommandReferences(state.terminalSwitchResult, protectedIds);
650
+ collectCommandReferences(state.terminalTransferResult, protectedIds);
651
+ const byId = new Map(rows.map((command) => [command.commandId, command]));
652
+ const queue = [...protectedIds];
653
+ const queued = new Set(queue);
654
+ for (let index = 0; index < queue.length; index += 1) {
655
+ const command = byId.get(queue[index]);
656
+ if (!command)
657
+ continue;
658
+ collectCommandReferences(command.result, protectedIds);
659
+ for (const commandId of protectedIds) {
660
+ if (queued.has(commandId))
661
+ continue;
662
+ queued.add(commandId);
663
+ queue.push(commandId);
664
+ }
665
+ }
666
+ const candidates = rows
667
+ .filter((command) => (command.completedAt
668
+ && command.completedAt < cutoff
669
+ && !protectedIds.has(command.commandId)))
670
+ .reverse()
671
+ .slice(0, LOCAL_SYNC_COMMAND_RETENTION_DELETE_BATCH);
672
+ const remove = this.db.prepare(`
673
+ DELETE FROM local_sync_coordinator_commands
674
+ WHERE command_id = ?
675
+ AND status IN ('succeeded', 'failed', 'superseded')
676
+ `);
677
+ let deleted = 0;
678
+ for (const command of candidates) {
679
+ const result = remove.run(command.commandId);
680
+ deleted += Number(result?.changes || 0);
681
+ }
682
+ return deleted;
683
+ })();
684
+ }
685
+ beginOwnershipTransfer(input) {
686
+ return this.db.transaction(() => {
687
+ const state = this.readOrCreateState();
688
+ if (state.coordinatorGeneration !== input.expectedGeneration) {
689
+ throw new LocalSyncCoordinatorError(`Coordinator generation ${input.expectedGeneration} is stale; current generation is ${state.coordinatorGeneration}.`, 'SYNC_COORDINATOR_STALE_GENERATION');
690
+ }
691
+ if (state.activeWorkspaceId !== input.workspaceId) {
692
+ throw new LocalSyncCoordinatorError(`Workspace ${input.workspaceId} is not the active local sync workspace.`, 'SYNC_COORDINATOR_INACTIVE_WORKSPACE');
693
+ }
694
+ if (state.transitionState !== 'idle'
695
+ || !['browser-gateway', 'server'].includes(state.ownershipMode)
696
+ || state.ownershipMode === input.targetMode) {
697
+ throw new LocalSyncCoordinatorError('The requested ownership transfer does not match the current coordinator owner.', 'SYNC_COORDINATOR_STALE_GENERATION');
698
+ }
699
+ const command = this.readCommand(input.commandId);
700
+ if (!command
701
+ || command.status !== 'accepted'
702
+ || command.type !== 'TransferOwnership'
703
+ || command.version !== input.version
704
+ || command.workspaceId !== input.workspaceId
705
+ || command.expectedCoordinatorGeneration !== input.expectedGeneration
706
+ || command.args?.targetMode !== input.targetMode
707
+ || command.requestedBy.userId !== input.requestedBy.userId
708
+ || command.requestedBy.tenantId !== input.requestedBy.tenantId) {
709
+ throw new LocalSyncCoordinatorError(`Ownership transfer command ${input.commandId} is not a matching running command.`, 'SYNC_COORDINATOR_COMMAND_INVALID');
710
+ }
711
+ const transitionMode = input.targetMode === 'server'
712
+ ? 'transitioning-to-server'
713
+ : 'transitioning-to-browser';
714
+ const at = this.now();
715
+ const result = this.db.prepare(`
716
+ UPDATE local_sync_coordinator_state
717
+ SET ownership_mode = ?,
718
+ transition_state = 'transferring-ownership',
719
+ accepted_transfer_command_id = ?,
720
+ transfer_target_mode = ?,
721
+ transfer_phase = 'preparing',
722
+ transfer_version = ?,
723
+ requested_by_json = ?,
724
+ terminal_transfer_result_json = NULL,
725
+ updated_at = ?
726
+ WHERE coordinator_id = ?
727
+ AND coordinator_generation = ?
728
+ AND active_workspace_id = ?
729
+ AND transition_state = 'idle'
730
+ AND ownership_mode = ?
731
+ `).run(transitionMode, input.commandId, input.targetMode, input.version, JSON.stringify(input.requestedBy), at, LOCAL_SYNC_COORDINATOR_ID, input.expectedGeneration, input.workspaceId, state.ownershipMode);
732
+ if (Number(result?.changes || 0) !== 1) {
733
+ throw new LocalSyncCoordinatorError('The local sync coordinator changed before ownership transfer began.', 'SYNC_COORDINATOR_STALE_GENERATION');
734
+ }
735
+ const commandResult = this.db.prepare(`
736
+ UPDATE local_sync_coordinator_commands
737
+ SET status = 'running', started_at = COALESCE(started_at, ?), updated_at = ?
738
+ WHERE command_id = ? AND status = 'accepted'
739
+ `).run(at, at, input.commandId);
740
+ if (Number(commandResult?.changes || 0) !== 1) {
741
+ throw new LocalSyncCoordinatorError(`Ownership transfer command ${input.commandId} changed before transition begin.`, 'SYNC_COORDINATOR_STALE_GENERATION');
742
+ }
743
+ return this.readOrCreateState();
744
+ })();
745
+ }
746
+ advanceOwnershipTransfer(input) {
747
+ const state = this.readOrCreateState();
748
+ const validNextPhases = {
749
+ preparing: ['draining'],
750
+ draining: [],
751
+ 'generation-advanced': state.transferTargetMode === 'server'
752
+ ? ['starting-target']
753
+ : ['stopping-source'],
754
+ 'starting-target': ['committing'],
755
+ 'stopping-source': ['committing'],
756
+ committing: [],
757
+ };
758
+ if (state.acceptedTransferCommandId !== input.commandId
759
+ || state.transferPhase !== input.expectedPhase
760
+ || !validNextPhases[input.expectedPhase].includes(input.nextPhase)) {
761
+ throw new LocalSyncCoordinatorError('The requested ownership transfer phase advance is invalid or stale.', 'SYNC_COORDINATOR_STALE_GENERATION');
762
+ }
763
+ const at = this.now();
764
+ const result = this.db.prepare(`
765
+ UPDATE local_sync_coordinator_state
766
+ SET transfer_phase = ?, updated_at = ?
767
+ WHERE coordinator_id = ?
768
+ AND accepted_transfer_command_id = ?
769
+ AND transition_state = 'transferring-ownership'
770
+ AND transfer_phase = ?
771
+ AND transfer_target_mode = ?
772
+ `).run(input.nextPhase, at, LOCAL_SYNC_COORDINATOR_ID, input.commandId, input.expectedPhase, state.transferTargetMode);
773
+ if (Number(result?.changes || 0) !== 1) {
774
+ throw new LocalSyncCoordinatorError('The ownership transfer phase changed before it could advance.', 'SYNC_COORDINATOR_STALE_GENERATION');
775
+ }
776
+ return this.readOrCreateState();
777
+ }
778
+ advanceOwnershipTransferGeneration(input) {
779
+ return this.db.transaction(() => {
780
+ const state = this.readOrCreateState();
781
+ if (state.activeWorkspaceId === null
782
+ || state.acceptedTransferCommandId !== input.commandId
783
+ || state.transitionState !== 'transferring-ownership'
784
+ || state.transferPhase !== 'draining'
785
+ || state.coordinatorGeneration !== input.expectedSourceGeneration) {
786
+ throw new LocalSyncCoordinatorError('The ownership transfer generation changed before the post-drain fence could commit.', 'SYNC_COORDINATOR_STALE_GENERATION');
787
+ }
788
+ const at = this.now();
789
+ this.advanceRunnerStateGenerationIfPresent({
790
+ workspaceId: state.activeWorkspaceId,
791
+ expectedSourceGeneration: input.expectedSourceGeneration,
792
+ targetGeneration: input.expectedSourceGeneration + 1,
793
+ updatedAt: at,
794
+ });
795
+ const result = this.db.prepare(`
796
+ UPDATE local_sync_coordinator_state
797
+ SET coordinator_generation = coordinator_generation + 1,
798
+ transfer_phase = 'generation-advanced',
799
+ updated_at = ?
800
+ WHERE coordinator_id = ?
801
+ AND accepted_transfer_command_id = ?
802
+ AND transition_state = 'transferring-ownership'
803
+ AND transfer_phase = 'draining'
804
+ AND coordinator_generation = ?
805
+ `).run(at, LOCAL_SYNC_COORDINATOR_ID, input.commandId, input.expectedSourceGeneration);
806
+ if (Number(result?.changes || 0) !== 1) {
807
+ throw new LocalSyncCoordinatorError('The ownership transfer generation changed before the post-drain fence could commit.', 'SYNC_COORDINATOR_STALE_GENERATION');
808
+ }
809
+ return this.readOrCreateState();
810
+ })();
811
+ }
812
+ advanceRunnerStateGenerationIfPresent(input) {
813
+ const rows = this.db.prepare(`
814
+ SELECT coordinator_generation AS coordinatorGeneration
815
+ FROM local_workspace_sync_runner_state
816
+ WHERE workspace_id = ?
817
+ `).all(input.workspaceId);
818
+ if (rows.length === 0)
819
+ return;
820
+ if (rows.some((row) => (Number(row.coordinatorGeneration) !== input.expectedSourceGeneration))) {
821
+ throw new LocalSyncCoordinatorError('The durable runner generation does not match the coordinator ownership fence.', 'SYNC_COORDINATOR_STALE_GENERATION');
822
+ }
823
+ const result = this.db.prepare(`
824
+ UPDATE local_workspace_sync_runner_state
825
+ SET coordinator_generation = ?,
826
+ checkpoint_revision = checkpoint_revision + 1,
827
+ updated_at = ?
828
+ WHERE workspace_id = ?
829
+ AND coordinator_generation = ?
830
+ `).run(input.targetGeneration, input.updatedAt, input.workspaceId, input.expectedSourceGeneration);
831
+ if (Number(result?.changes || 0) !== rows.length) {
832
+ throw new LocalSyncCoordinatorError('The durable runner generation changed before the coordinator fence could commit.', 'SYNC_COORDINATOR_STALE_GENERATION');
833
+ }
834
+ }
835
+ completeOwnershipTransfer(input, activateCommittedOwner) {
836
+ return this.db.transaction(() => {
837
+ const at = this.now();
838
+ const transitionState = this.readOrCreateState();
839
+ if (transitionState.acceptedTransferCommandId !== input.commandId
840
+ || transitionState.transferTargetMode !== input.targetMode
841
+ || transitionState.transferPhase !== 'committing') {
842
+ throw new LocalSyncCoordinatorError('The ownership transfer no longer owns the coordinator transition.', 'SYNC_COORDINATOR_STALE_GENERATION');
843
+ }
844
+ const terminalTransfer = buildTerminalTransferRecord({
845
+ state: transitionState,
846
+ completedAt: at,
847
+ status: 'succeeded',
848
+ });
849
+ const stateResult = this.db.prepare(`
850
+ UPDATE local_sync_coordinator_state
851
+ SET ownership_mode = ?,
852
+ desired_ownership_mode = ?,
853
+ transition_state = 'idle',
854
+ accepted_transfer_command_id = NULL,
855
+ transfer_target_mode = NULL,
856
+ transfer_phase = NULL,
857
+ transfer_version = NULL,
858
+ requested_by_json = NULL,
859
+ terminal_transfer_result_json = ?,
860
+ updated_at = ?
861
+ WHERE coordinator_id = ?
862
+ AND accepted_transfer_command_id = ?
863
+ AND transition_state = 'transferring-ownership'
864
+ AND transfer_target_mode = ?
865
+ AND transfer_phase = 'committing'
866
+ `).run(input.targetMode, input.targetMode, JSON.stringify(terminalTransfer), at, LOCAL_SYNC_COORDINATOR_ID, input.commandId, input.targetMode);
867
+ if (Number(stateResult?.changes || 0) !== 1) {
868
+ throw new LocalSyncCoordinatorError('The ownership transfer no longer owns the coordinator transition.', 'SYNC_COORDINATOR_STALE_GENERATION');
869
+ }
870
+ const state = this.readOrCreateState();
871
+ const commandResult = this.db.prepare(`
872
+ UPDATE local_sync_coordinator_commands
873
+ SET status = 'succeeded', completed_at = ?, result_json = ?,
874
+ error_code = NULL, error_message = NULL, updated_at = ?
875
+ WHERE command_id = ? AND status = 'running'
876
+ `).run(at, JSON.stringify({ state }), at, input.commandId);
877
+ if (Number(commandResult?.changes || 0) !== 1) {
878
+ throw new Error(`Ownership transfer command ${input.commandId} is not running.`);
879
+ }
880
+ const activationResult = activateCommittedOwner?.(state);
881
+ if (activationResult
882
+ && (typeof activationResult === 'object'
883
+ || typeof activationResult === 'function')
884
+ && typeof activationResult.then === 'function') {
885
+ throw new LocalSyncCoordinatorError('Ownership activation must complete synchronously inside the coordinator transaction.', 'SYNC_COORDINATOR_COMMAND_INVALID');
886
+ }
887
+ return state;
888
+ })();
889
+ }
890
+ failOwnershipTransfer(input) {
891
+ return this.db.transaction(() => {
892
+ const at = this.now();
893
+ const transitionState = this.readOrCreateState();
894
+ if (transitionState.acceptedTransferCommandId !== input.commandId) {
895
+ throw new LocalSyncCoordinatorError('The ownership transfer no longer owns the coordinator transition.', 'SYNC_COORDINATOR_STALE_GENERATION');
896
+ }
897
+ const terminalTransfer = buildTerminalTransferRecord({
898
+ state: transitionState,
899
+ completedAt: at,
900
+ status: 'failed',
901
+ errorCode: input.errorCode,
902
+ });
903
+ const stateResult = this.db.prepare(`
904
+ UPDATE local_sync_coordinator_state
905
+ SET ownership_mode = ?,
906
+ desired_ownership_mode = CASE
907
+ WHEN ? = 'browser-gateway' THEN 'browser-gateway'
908
+ ELSE desired_ownership_mode
909
+ END,
910
+ transition_state = 'idle',
911
+ accepted_transfer_command_id = NULL,
912
+ transfer_target_mode = NULL,
913
+ transfer_phase = NULL,
914
+ transfer_version = NULL,
915
+ requested_by_json = NULL,
916
+ terminal_transfer_result_json = ?,
917
+ updated_at = ?
918
+ WHERE coordinator_id = ?
919
+ AND accepted_transfer_command_id = ?
920
+ AND transition_state = 'transferring-ownership'
921
+ `).run(input.fallbackMode, input.fallbackMode, JSON.stringify(terminalTransfer), at, LOCAL_SYNC_COORDINATOR_ID, input.commandId);
922
+ if (Number(stateResult?.changes || 0) !== 1) {
923
+ throw new LocalSyncCoordinatorError('The ownership transfer no longer owns the coordinator transition.', 'SYNC_COORDINATOR_STALE_GENERATION');
924
+ }
925
+ const commandResult = this.db.prepare(`
926
+ UPDATE local_sync_coordinator_commands
927
+ SET status = 'failed', completed_at = ?, result_json = ?, error_code = ?,
928
+ error_message = ?, updated_at = ?
929
+ WHERE command_id = ? AND status IN ('accepted', 'running')
930
+ `).run(at, JSON.stringify({ terminalTransfer }), input.errorCode, input.errorMessage, at, input.commandId);
931
+ if (Number(commandResult?.changes || 0) !== 1) {
932
+ throw new Error(`Ownership transfer command ${input.commandId} is not active.`);
933
+ }
934
+ return this.readOrCreateState();
935
+ })();
936
+ }
937
+ beginWorkspaceSwitch(input) {
938
+ return this.db.transaction(() => {
939
+ const state = this.readOrCreateState();
940
+ if (state.coordinatorGeneration !== input.expectedGeneration) {
941
+ throw new LocalSyncCoordinatorError(`Coordinator generation ${input.expectedGeneration} is stale; current generation is ${state.coordinatorGeneration}.`, 'SYNC_COORDINATOR_STALE_GENERATION');
942
+ }
943
+ if (state.activeWorkspaceId !== input.expectedActiveWorkspaceId) {
944
+ throw new LocalSyncCoordinatorError(`Workspace ${input.expectedActiveWorkspaceId || '(none)'} is not the active local sync workspace.`, 'SYNC_COORDINATOR_INACTIVE_WORKSPACE');
945
+ }
946
+ if (state.transitionState !== 'idle') {
947
+ throw new LocalSyncCoordinatorError('The local sync coordinator is already switching workspaces.', 'SYNC_COORDINATOR_STALE_GENERATION');
948
+ }
949
+ const updatedAt = this.now();
950
+ const result = this.db.prepare(`
951
+ UPDATE local_sync_coordinator_state
952
+ SET coordinator_generation = coordinator_generation + 1,
953
+ ownership_mode = 'transitioning-workspace',
954
+ transition_state = 'switching-workspace',
955
+ accepted_switch_command_id = ?,
956
+ target_workspace_id = ?,
957
+ requested_by_json = ?,
958
+ terminal_switch_result_json = NULL,
959
+ updated_at = ?
960
+ WHERE coordinator_id = ?
961
+ AND coordinator_generation = ?
962
+ AND transition_state = 'idle'
963
+ AND (
964
+ active_workspace_id = ?
965
+ OR (active_workspace_id IS NULL AND ? IS NULL)
966
+ )
967
+ `).run(input.commandId, input.targetWorkspaceId, JSON.stringify(input.requestedBy), updatedAt, LOCAL_SYNC_COORDINATOR_ID, input.expectedGeneration, input.expectedActiveWorkspaceId, input.expectedActiveWorkspaceId);
968
+ if (Number(result?.changes || 0) !== 1) {
969
+ throw new LocalSyncCoordinatorError('The local sync coordinator changed before the workspace switch was accepted.', 'SYNC_COORDINATOR_STALE_GENERATION');
970
+ }
971
+ return this.readOrCreateState();
972
+ })();
973
+ }
974
+ completeWorkspaceSwitch(input) {
975
+ return this.db.transaction(() => {
976
+ const at = this.now();
977
+ const result = this.db.prepare(`
978
+ UPDATE local_sync_coordinator_state
979
+ SET active_workspace_id = ?,
980
+ ownership_mode = 'browser-gateway',
981
+ desired_ownership_mode = 'browser-gateway',
982
+ transition_state = 'idle',
983
+ accepted_switch_command_id = NULL,
984
+ target_workspace_id = NULL,
985
+ requested_by_json = NULL,
986
+ terminal_switch_result_json = ?,
987
+ updated_at = ?
988
+ WHERE coordinator_id = ?
989
+ AND accepted_switch_command_id = ?
990
+ AND transition_state = 'switching-workspace'
991
+ `).run(input.targetWorkspaceId, JSON.stringify(input.terminalResult ?? null), at, LOCAL_SYNC_COORDINATOR_ID, input.commandId);
992
+ if (Number(result?.changes || 0) !== 1) {
993
+ throw new LocalSyncCoordinatorError('The workspace switch no longer owns the coordinator transition.', 'SYNC_COORDINATOR_STALE_GENERATION');
994
+ }
995
+ input.activateTargetForCommit?.();
996
+ const state = this.readOrCreateState();
997
+ const commandResult = this.db.prepare(`
998
+ UPDATE local_sync_coordinator_commands
999
+ SET status = 'succeeded', completed_at = ?, result_json = ?,
1000
+ error_code = NULL, error_message = NULL, updated_at = ?
1001
+ WHERE command_id = ? AND status = 'running'
1002
+ `).run(at, JSON.stringify({ state }), at, input.commandId);
1003
+ if (Number(commandResult?.changes || 0) !== 1) {
1004
+ throw new Error(`Workspace switch command ${input.commandId} is not running.`);
1005
+ }
1006
+ return state;
1007
+ })();
1008
+ }
1009
+ failWorkspaceSwitch(input) {
1010
+ return this.db.transaction(() => {
1011
+ const at = this.now();
1012
+ this.db.prepare(`
1013
+ UPDATE local_sync_coordinator_state
1014
+ SET ownership_mode = 'browser-gateway',
1015
+ desired_ownership_mode = 'browser-gateway',
1016
+ transition_state = 'idle',
1017
+ accepted_switch_command_id = NULL,
1018
+ target_workspace_id = NULL,
1019
+ requested_by_json = NULL,
1020
+ terminal_switch_result_json = ?,
1021
+ updated_at = ?
1022
+ WHERE coordinator_id = ?
1023
+ AND accepted_switch_command_id = ?
1024
+ AND transition_state = 'switching-workspace'
1025
+ `).run(JSON.stringify({
1026
+ status: 'failed',
1027
+ errorCode: input.errorCode,
1028
+ errorMessage: input.errorMessage,
1029
+ }), at, LOCAL_SYNC_COORDINATOR_ID, input.commandId);
1030
+ this.db.prepare(`
1031
+ UPDATE local_sync_coordinator_commands
1032
+ SET status = 'failed', completed_at = ?, error_code = ?,
1033
+ error_message = ?, updated_at = ?
1034
+ WHERE command_id = ? AND status IN ('accepted', 'running')
1035
+ `).run(at, input.errorCode, input.errorMessage, at, input.commandId);
1036
+ return this.readOrCreateState();
1037
+ })();
1038
+ }
1039
+ }