@taskforcehq/taskforce 0.3.324 → 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 (1361) hide show
  1. package/LICENSE.md +68 -0
  2. package/README.md +19 -0
  3. package/dist/Taskforce.module.css +2191 -540
  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 +257 -151
  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 +11 -12
  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 +1684 -620
  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 +62 -51
  172. package/dist/components/views/panels/PlanningDrawer.js +993 -314
  173. package/dist/components/views/planningScope.d.ts +4 -0
  174. package/dist/components/views/planningScope.js +12 -1
  175. package/dist/components/views/standalone/modals/AccountSettingsModal.d.ts +62 -0
  176. package/dist/components/views/standalone/modals/AccountSettingsModal.js +197 -0
  177. package/dist/components/views/standalone/modals/AvatarImageManagerModal.d.ts +7 -2
  178. package/dist/components/views/standalone/modals/AvatarImageManagerModal.js +56 -9
  179. package/dist/components/views/standalone/modals/HelpModal.d.ts +1 -2
  180. package/dist/components/views/standalone/modals/HelpModal.js +3 -4
  181. package/dist/components/views/standalone/modals/SyncStatusModal.d.ts +8 -9
  182. package/dist/components/views/standalone/modals/SyncStatusModal.js +85 -25
  183. package/dist/components/views/standalone/modals/TeamManagementModal.js +1 -1
  184. package/dist/config/applicationBaseUrl.d.ts +2 -0
  185. package/dist/config/applicationBaseUrl.js +23 -0
  186. package/dist/config/envSchema.d.ts +1 -1
  187. package/dist/config/envSchema.js +166 -5
  188. package/dist/core/AdminAuditRetentionService.d.ts +43 -0
  189. package/dist/core/AdminAuditRetentionService.js +126 -0
  190. package/dist/core/AiProfileService.d.ts +34 -0
  191. package/dist/core/AiProfileService.js +516 -252
  192. package/dist/core/AttachmentLinkService.d.ts +10 -2
  193. package/dist/core/AttachmentLinkService.js +44 -12
  194. package/dist/core/AuthIdentityService.d.ts +6 -0
  195. package/dist/core/AuthIdentityService.js +38 -0
  196. package/dist/core/AuthTokenService.d.ts +1 -0
  197. package/dist/core/AuthTokenService.js +13 -0
  198. package/dist/core/DeletedTaskLifecycleService.d.ts +4 -2
  199. package/dist/core/DeletedTaskLifecycleService.js +124 -38
  200. package/dist/core/GlobalSettingsService.d.ts +3 -1
  201. package/dist/core/GlobalSettingsService.js +30 -4
  202. package/dist/core/InitiativeDurableMutationService.d.ts +89 -0
  203. package/dist/core/InitiativeDurableMutationService.js +187 -0
  204. package/dist/core/McpTokenService.d.ts +1 -0
  205. package/dist/core/McpTokenService.js +39 -13
  206. package/dist/core/PlanningCommandPreparationService.d.ts +60 -0
  207. package/dist/core/PlanningCommandPreparationService.js +149 -0
  208. package/dist/core/ScheduleCommandService.d.ts +76 -0
  209. package/dist/core/ScheduleCommandService.js +165 -0
  210. package/dist/core/SyncReconciliationService.d.ts +29 -6
  211. package/dist/core/SyncReconciliationService.js +256 -84
  212. package/dist/core/TaskActivityService.d.ts +22 -2
  213. package/dist/core/TaskActivityService.js +177 -29
  214. package/dist/core/TaskAttachmentLinksDurableMutationService.d.ts +31 -0
  215. package/dist/core/TaskAttachmentLinksDurableMutationService.js +231 -0
  216. package/dist/core/TaskChecklistCommandService.d.ts +50 -0
  217. package/dist/core/TaskChecklistCommandService.js +111 -0
  218. package/dist/core/TaskDurableCreateMutationService.d.ts +38 -0
  219. package/dist/core/TaskDurableCreateMutationService.js +85 -0
  220. package/dist/core/TaskDurableDeleteMutationService.d.ts +47 -0
  221. package/dist/core/TaskDurableDeleteMutationService.js +54 -0
  222. package/dist/core/TaskDurableLifecycleMutationService.d.ts +38 -0
  223. package/dist/core/TaskDurableLifecycleMutationService.js +42 -0
  224. package/dist/core/TaskDurableRelationshipMutationService.d.ts +58 -0
  225. package/dist/core/TaskDurableRelationshipMutationService.js +66 -0
  226. package/dist/core/TaskDurableRestoreMutationService.d.ts +31 -0
  227. package/dist/core/TaskDurableRestoreMutationService.js +33 -0
  228. package/dist/core/TaskDurableStatusMutationService.d.ts +74 -0
  229. package/dist/core/TaskDurableStatusMutationService.js +247 -0
  230. package/dist/core/TaskDurableSyncMutationService.d.ts +34 -0
  231. package/dist/core/TaskDurableSyncMutationService.js +70 -0
  232. package/dist/core/TaskDurableWorkflowMutationService.d.ts +48 -0
  233. package/dist/core/TaskDurableWorkflowMutationService.js +59 -0
  234. package/dist/core/TaskLifecycleCommandService.d.ts +101 -0
  235. package/dist/core/TaskLifecycleCommandService.js +161 -0
  236. package/dist/core/TaskRootCommandPreparationService.d.ts +35 -0
  237. package/dist/core/TaskRootCommandPreparationService.js +103 -0
  238. package/dist/core/Taskforce.d.ts +479 -59
  239. package/dist/core/Taskforce.js +3671 -841
  240. package/dist/core/WorkflowAssignmentService.d.ts +40 -0
  241. package/dist/core/WorkflowAssignmentService.js +158 -0
  242. package/dist/core/WorkflowExecutionService.d.ts +69 -0
  243. package/dist/core/WorkflowExecutionService.js +342 -0
  244. package/dist/core/WorkflowTaskActivationService.d.ts +32 -0
  245. package/dist/core/WorkflowTaskActivationService.js +63 -0
  246. package/dist/core/WorkflowTemplateService.d.ts +64 -0
  247. package/dist/core/WorkflowTemplateService.js +223 -0
  248. package/dist/core/WorkspaceLifecycleService.d.ts +1 -0
  249. package/dist/core/WorkspaceLifecycleService.js +18 -0
  250. package/dist/core/WorkstreamDurableMutationService.d.ts +90 -0
  251. package/dist/core/WorkstreamDurableMutationService.js +184 -0
  252. package/dist/core/planningReferencePolicy.d.ts +14 -0
  253. package/dist/core/planningReferencePolicy.js +53 -0
  254. package/dist/core/taskReferencePolicy.js +24 -3
  255. package/dist/core/types.d.ts +10 -10
  256. package/dist/documentReviews/DocumentReviewCommentStore.d.ts +22 -2
  257. package/dist/documentReviews/DocumentReviewCommentStore.js +92 -8
  258. package/dist/documentReviews/commandService.d.ts +51 -0
  259. package/dist/documentReviews/commandService.js +63 -0
  260. package/dist/documentReviews/service.d.ts +20 -1
  261. package/dist/documentReviews/service.js +234 -24
  262. package/dist/documentReviews/types.d.ts +18 -1
  263. package/dist/hooks/sync/bootstrap.d.ts +3 -7
  264. package/dist/hooks/sync/bootstrap.js +6 -14
  265. package/dist/hooks/sync/browserSyncAuthority.d.ts +21 -0
  266. package/dist/hooks/sync/browserSyncAuthority.js +70 -0
  267. package/dist/hooks/sync/browserSyncRemoteServices.d.ts +29 -0
  268. package/dist/hooks/sync/browserSyncRemoteServices.js +58 -0
  269. package/dist/hooks/sync/controlPlane.d.ts +1 -37
  270. package/dist/hooks/sync/controlPlane.js +1 -78
  271. package/dist/hooks/sync/lifecyclePolicy.d.ts +1 -45
  272. package/dist/hooks/sync/lifecyclePolicy.js +1 -93
  273. package/dist/hooks/sync/orchestratorShared.d.ts +9 -3
  274. package/dist/hooks/sync/orchestratorShared.js +70 -96
  275. package/dist/hooks/sync/pullLifecycle.d.ts +1 -31
  276. package/dist/hooks/sync/pullLifecycle.js +1 -24
  277. package/dist/hooks/sync/realtime.d.ts +4 -1
  278. package/dist/hooks/sync/realtime.js +103 -3
  279. package/dist/hooks/sync/recovery.d.ts +1 -84
  280. package/dist/hooks/sync/recovery.js +1 -245
  281. package/dist/hooks/sync/transfers.d.ts +8 -129
  282. package/dist/hooks/sync/transfers.js +19 -581
  283. package/dist/hooks/sync/useDataVersionRefresh.d.ts +6 -1
  284. package/dist/hooks/sync/useDataVersionRefresh.js +127 -12
  285. package/dist/hooks/sync/useDurableLocalOutboxDrain.d.ts +14 -0
  286. package/dist/hooks/sync/useDurableLocalOutboxDrain.js +208 -0
  287. package/dist/hooks/sync/useDurableTaskCreateMutation.d.ts +15 -0
  288. package/dist/hooks/sync/useDurableTaskCreateMutation.js +152 -0
  289. package/dist/hooks/sync/useDurableTaskDeleteMutation.d.ts +11 -0
  290. package/dist/hooks/sync/useDurableTaskDeleteMutation.js +21 -0
  291. package/dist/hooks/sync/useDurableTaskLifecycleMutation.d.ts +12 -0
  292. package/dist/hooks/sync/useDurableTaskLifecycleMutation.js +22 -0
  293. package/dist/hooks/sync/useDurableTaskMetadataMutation.d.ts +14 -0
  294. package/dist/hooks/sync/useDurableTaskMetadataMutation.js +24 -0
  295. package/dist/hooks/sync/useDurableTaskRestoreMutation.d.ts +12 -0
  296. package/dist/hooks/sync/useDurableTaskRestoreMutation.js +24 -0
  297. package/dist/hooks/sync/useDurableTaskStatusMutation.d.ts +18 -0
  298. package/dist/hooks/sync/useDurableTaskStatusMutation.js +23 -0
  299. package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.d.ts +23 -0
  300. package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.js +414 -0
  301. package/dist/hooks/sync/useSyncStatusActions.d.ts +2 -1
  302. package/dist/hooks/sync/useSyncStatusActions.js +8 -3
  303. package/dist/hooks/tasks/taskHttpMutation.d.ts +25 -0
  304. package/dist/hooks/tasks/taskHttpMutation.js +134 -0
  305. package/dist/hooks/tasks/useCurrentTaskRelations.d.ts +6 -1
  306. package/dist/hooks/tasks/useCurrentTaskRelations.js +32 -6
  307. package/dist/hooks/tasks/useTaskEditorNavigation.d.ts +4 -3
  308. package/dist/hooks/tasks/useTaskEditorNavigation.js +9 -13
  309. package/dist/hooks/tasks/useTaskFormActions.d.ts +17 -2
  310. package/dist/hooks/tasks/useTaskFormActions.js +309 -55
  311. package/dist/hooks/tasks/useTaskReferenceContract.d.ts +5 -0
  312. package/dist/hooks/tasks/useTaskReferenceContract.js +17 -0
  313. package/dist/hooks/tasks/useTaskRelationships.d.ts +1 -3
  314. package/dist/hooks/tasks/useTaskRelationships.js +5 -25
  315. package/dist/hooks/tasks/useTrashSelection.d.ts +12 -0
  316. package/dist/hooks/tasks/useTrashSelection.js +49 -0
  317. package/dist/hooks/ui/useInitiativeTemplates.d.ts +24 -0
  318. package/dist/hooks/ui/useInitiativeTemplates.js +22 -0
  319. package/dist/hooks/ui/useSettingsModel.d.ts +5 -29
  320. package/dist/hooks/ui/useSettingsModel.js +31 -15
  321. package/dist/hooks/ui/useSettingsPersistence.d.ts +0 -1
  322. package/dist/hooks/ui/useSettingsPersistence.js +4 -8
  323. package/dist/hooks/ui/useSettingsTaxonomyManagement.js +31 -0
  324. package/dist/hooks/useFilterSort.d.ts +2 -2
  325. package/dist/hooks/useFilterSort.js +19 -15
  326. package/dist/hooks/useRealtimeSync.d.ts +10 -0
  327. package/dist/hooks/useRealtimeSync.js +57 -4
  328. package/dist/hooks/useSyncOrchestrator.d.ts +32 -1
  329. package/dist/hooks/useSyncOrchestrator.js +963 -287
  330. package/dist/hooks/useTaskData.d.ts +11 -2
  331. package/dist/hooks/useTaskData.js +59 -26
  332. package/dist/hooks/useTaskMutations.d.ts +42 -5
  333. package/dist/hooks/useTaskMutations.js +750 -125
  334. package/dist/hooks/useTaskforce.d.ts +114 -118
  335. package/dist/hooks/useTaskforce.js +1106 -396
  336. package/dist/hooks/useUiNotice.d.ts +5 -1
  337. package/dist/hooks/useUiNotice.js +13 -2
  338. package/dist/hooks/useWorkspaceSyncController.d.ts +9 -0
  339. package/dist/hooks/useWorkspaceSyncController.js +159 -17
  340. package/dist/hooks/workspace/usePersistedAppUiState.d.ts +74 -0
  341. package/dist/hooks/workspace/usePersistedAppUiState.js +325 -0
  342. package/dist/hooks/workspace/usePersistedLayoutUiState.d.ts +76 -0
  343. package/dist/hooks/workspace/usePersistedLayoutUiState.js +479 -0
  344. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.d.ts +2 -7
  345. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +42 -31
  346. package/dist/hooks/workspace/workspaceLocalState.d.ts +42 -6
  347. package/dist/hooks/workspace/workspaceLocalState.js +213 -5
  348. package/dist/hooks/workstreams/workstreamHttpMutation.d.ts +23 -0
  349. package/dist/hooks/workstreams/workstreamHttpMutation.js +134 -0
  350. package/dist/localization/locales/en-US.d.ts +3 -3
  351. package/dist/localization/locales/en-US.js +3 -3
  352. package/dist/localization/locales/es-419.js +3 -3
  353. package/dist/localization/locales/pt-BR.js +3 -3
  354. package/dist/mcp/adminWorkspaceRegistrar.js +2 -40
  355. package/dist/mcp/aiProfileBootstrap.d.ts +3 -0
  356. package/dist/mcp/aiProfileBootstrap.js +4 -0
  357. package/dist/mcp/canonicalAssetHelpers.d.ts +16 -4
  358. package/dist/mcp/canonicalAssetHelpers.js +104 -35
  359. package/dist/mcp/clientIntegrations.d.ts +4 -2
  360. package/dist/mcp/clientIntegrations.js +104 -53
  361. package/dist/mcp/clientRegistry.d.ts +30 -0
  362. package/dist/mcp/clientRegistry.js +134 -0
  363. package/dist/mcp/collaborationRegistrar.js +21 -7
  364. package/dist/mcp/documentAssetRegistrar.js +227 -107
  365. package/dist/mcp/documentContentCommand.d.ts +94 -0
  366. package/dist/mcp/documentContentCommand.js +226 -0
  367. package/dist/mcp/documentHelpers.d.ts +14 -59
  368. package/dist/mcp/documentHelpers.js +52 -61
  369. package/dist/mcp/durableTaskMutationRouter.d.ts +65 -0
  370. package/dist/mcp/durableTaskMutationRouter.js +217 -0
  371. package/dist/mcp/durableTaskRelationshipMutationRouter.d.ts +38 -0
  372. package/dist/mcp/durableTaskRelationshipMutationRouter.js +168 -0
  373. package/dist/mcp/durableTaskRootMutationRouter.d.ts +64 -0
  374. package/dist/mcp/durableTaskRootMutationRouter.js +226 -0
  375. package/dist/mcp/gitWorktreeRoots.d.ts +2 -0
  376. package/dist/mcp/gitWorktreeRoots.js +19 -0
  377. package/dist/mcp/legacyServer.d.ts +1 -0
  378. package/dist/mcp/legacyServer.js +42 -0
  379. package/dist/mcp/localCliHealth.d.ts +56 -0
  380. package/dist/mcp/localCliHealth.js +170 -0
  381. package/dist/mcp/localServiceProxy.d.ts +23 -0
  382. package/dist/mcp/localServiceProxy.js +255 -0
  383. package/dist/mcp/mcpInputValidator.d.ts +17 -0
  384. package/dist/mcp/mcpInputValidator.js +58 -0
  385. package/dist/mcp/planningAttachmentCommandAdapter.d.ts +127 -0
  386. package/dist/mcp/planningAttachmentCommandAdapter.js +188 -0
  387. package/dist/mcp/programScaffoldCommandAdapter.d.ts +6 -0
  388. package/dist/mcp/programScaffoldCommandAdapter.js +39 -0
  389. package/dist/mcp/proxyServer.d.ts +1 -0
  390. package/dist/mcp/proxyServer.js +2 -0
  391. package/dist/mcp/runtime.d.ts +86 -1
  392. package/dist/mcp/runtime.js +4562 -2270
  393. package/dist/mcp/server.js +29 -2
  394. package/dist/mcp/sharedLocalServiceGateD.d.ts +115 -0
  395. package/dist/mcp/sharedLocalServiceGateD.js +344 -0
  396. package/dist/mcp/stdioLifecycle.d.ts +22 -0
  397. package/dist/mcp/stdioLifecycle.js +54 -0
  398. package/dist/mcp/taskAttachmentCommandAdapter.d.ts +190 -0
  399. package/dist/mcp/taskAttachmentCommandAdapter.js +464 -0
  400. package/dist/mcp/taskAttachmentHelpers.d.ts +8 -6
  401. package/dist/mcp/taskAttachmentHelpers.js +74 -2
  402. package/dist/mcp/taskAttachmentTypes.d.ts +26 -5
  403. package/dist/mcp/taskPlanCommand.d.ts +64 -0
  404. package/dist/mcp/taskPlanCommand.js +98 -0
  405. package/dist/mcp/taskPlanningRegistrar.js +253 -101
  406. package/dist/mcp/toolCallCompatibility.d.ts +6 -0
  407. package/dist/mcp/toolCallCompatibility.js +16 -0
  408. package/dist/mcp/toolCatalog.d.ts +3 -1
  409. package/dist/mcp/toolProfiles.d.ts +18 -0
  410. package/dist/mcp/toolProfiles.js +79 -0
  411. package/dist/mcp/toolRegistry.d.ts +102 -609
  412. package/dist/mcp/toolRegistry.js +108 -88
  413. package/dist/mcp/workflowExecutionRegistrar.d.ts +2 -0
  414. package/dist/mcp/workflowExecutionRegistrar.js +51 -0
  415. package/dist/migrations/taskSchemaMigrations.d.ts +35 -0
  416. package/dist/migrations/taskSchemaMigrations.js +1797 -4
  417. package/dist/migrations/taskUpdatedAtSyncDriftMigration.d.ts +20 -0
  418. package/dist/migrations/taskUpdatedAtSyncDriftMigration.js +153 -0
  419. package/dist/migrations/taskforceAgentDefinitionMigration.d.ts +26 -0
  420. package/dist/migrations/taskforceAgentDefinitionMigration.js +116 -0
  421. package/dist/plugins/vite.js +48 -17
  422. package/dist/public/Taskforce_Van.webp +0 -0
  423. package/dist/runtime/appGateDefinitions.d.ts +16 -10
  424. package/dist/runtime/appGateDefinitions.js +16 -10
  425. package/dist/runtime/appGates.d.ts +5 -4
  426. package/dist/runtime/appGates.js +4 -3
  427. package/dist/server/aiProfileAvatarAssets.d.ts +11 -8
  428. package/dist/server/aiProfileAvatarAssets.js +159 -70
  429. package/dist/server/auth.js +15 -1
  430. package/dist/server/cors.d.ts +2 -1
  431. package/dist/server/cors.js +45 -8
  432. package/dist/server/email.d.ts +3 -1
  433. package/dist/server/email.js +46 -8
  434. package/dist/server/index.d.ts +24 -1
  435. package/dist/server/index.js +342 -46
  436. package/dist/server/localDataOwnerPermit.d.ts +18 -0
  437. package/dist/server/localDataOwnerPermit.js +58 -0
  438. package/dist/server/localDatabaseIdentity.d.ts +14 -0
  439. package/dist/server/localDatabaseIdentity.js +69 -0
  440. package/dist/server/localRealtimeFileInvalidation.d.ts +1 -0
  441. package/dist/server/localRealtimeFileInvalidation.js +7 -0
  442. package/dist/server/localServiceLease.d.ts +62 -0
  443. package/dist/server/localServiceLease.js +477 -0
  444. package/dist/server/localServiceOwnershipBootstrap.d.ts +19 -0
  445. package/dist/server/localServiceOwnershipBootstrap.js +84 -0
  446. package/dist/server/localServiceSessions.d.ts +87 -0
  447. package/dist/server/localServiceSessions.js +309 -0
  448. package/dist/server/localServiceWindowsAcl.d.ts +8 -0
  449. package/dist/server/localServiceWindowsAcl.js +60 -0
  450. package/dist/server/localSyncProcessLockBootstrap.d.ts +3 -0
  451. package/dist/server/localSyncProcessLockBootstrap.js +16 -0
  452. package/dist/server/localWorkspaceSyncServerComposition.d.ts +59 -0
  453. package/dist/server/localWorkspaceSyncServerComposition.js +91 -0
  454. package/dist/server/localWorkspaceSyncServerRuntime.d.ts +119 -0
  455. package/dist/server/localWorkspaceSyncServerRuntime.js +1163 -0
  456. package/dist/server/rateLimit.d.ts +1 -0
  457. package/dist/server/rateLimit.js +16 -0
  458. package/dist/server/routes/admin.d.ts +2 -4
  459. package/dist/server/routes/admin.js +199 -337
  460. package/dist/server/routes/agentRoles.d.ts +13 -0
  461. package/dist/server/routes/agentRoles.js +273 -0
  462. package/dist/server/routes/agentSkills.d.ts +16 -0
  463. package/dist/server/routes/agentSkills.js +291 -0
  464. package/dist/server/routes/agents.d.ts +49 -0
  465. package/dist/server/routes/agents.js +1455 -0
  466. package/dist/server/routes/annotatedAttachments.js +46 -9
  467. package/dist/server/routes/assetAccess.d.ts +36 -0
  468. package/dist/server/routes/assetAccess.js +93 -0
  469. package/dist/server/routes/auth.d.ts +4 -3
  470. package/dist/server/routes/auth.js +236 -21
  471. package/dist/server/routes/authSupport.d.ts +3 -1
  472. package/dist/server/routes/authSupport.js +22 -8
  473. package/dist/server/routes/documentReviews.d.ts +2 -0
  474. package/dist/server/routes/documentReviews.js +155 -15
  475. package/dist/server/routes/documents.d.ts +1 -0
  476. package/dist/server/routes/documents.js +335 -141
  477. package/dist/server/routes/durableTaskHttpRouters.d.ts +165 -0
  478. package/dist/server/routes/durableTaskHttpRouters.js +89 -0
  479. package/dist/server/routes/localMcpHealth.d.ts +11 -0
  480. package/dist/server/routes/localMcpHealth.js +29 -0
  481. package/dist/server/routes/localService.d.ts +13 -0
  482. package/dist/server/routes/localService.js +444 -0
  483. package/dist/server/routes/localUpdate.d.ts +11 -0
  484. package/dist/server/routes/localUpdate.js +154 -0
  485. package/dist/server/routes/primitives.d.ts +27 -0
  486. package/dist/server/routes/primitives.js +18 -0
  487. package/dist/server/routes/resources.d.ts +1 -10
  488. package/dist/server/routes/resources.js +1 -153
  489. package/dist/server/routes/shared.d.ts +31 -2
  490. package/dist/server/routes/shared.js +394 -0
  491. package/dist/server/routes/sync.d.ts +2 -0
  492. package/dist/server/routes/sync.js +184 -272
  493. package/dist/server/routes/syncAuxRoutes.d.ts +3 -1
  494. package/dist/server/routes/syncAuxRoutes.js +9 -4
  495. package/dist/server/routes/syncCoordinatorLocalRoutes.d.ts +6 -0
  496. package/dist/server/routes/syncCoordinatorLocalRoutes.js +867 -0
  497. package/dist/server/routes/syncPullApplyRoutes.d.ts +29 -1
  498. package/dist/server/routes/syncPullApplyRoutes.js +520 -17
  499. package/dist/server/routes/syncPushRoutes.d.ts +33 -4
  500. package/dist/server/routes/syncPushRoutes.js +251 -62
  501. package/dist/server/routes/syncRouteTypes.d.ts +1 -1
  502. package/dist/server/routes/syncSnapshotRoutes.d.ts +15 -7
  503. package/dist/server/routes/syncSnapshotRoutes.js +95 -17
  504. package/dist/server/routes/syncV3DiagnosticsRoutes.d.ts +14 -0
  505. package/dist/server/routes/syncV3DiagnosticsRoutes.js +72 -0
  506. package/dist/server/routes/syncV3FeedRoutes.d.ts +20 -0
  507. package/dist/server/routes/syncV3FeedRoutes.js +462 -0
  508. package/dist/server/routes/syncV3LocalCaptureRoutes.d.ts +37 -0
  509. package/dist/server/routes/syncV3LocalCaptureRoutes.js +897 -0
  510. package/dist/server/routes/syncV3LocalDispatchRoutes.d.ts +17 -0
  511. package/dist/server/routes/syncV3LocalDispatchRoutes.js +280 -0
  512. package/dist/server/routes/syncV3LocalFeedApplyRoutes.d.ts +17 -0
  513. package/dist/server/routes/syncV3LocalFeedApplyRoutes.js +493 -0
  514. package/dist/server/routes/syncV3LocalOwnershipRoutes.d.ts +10 -0
  515. package/dist/server/routes/syncV3LocalOwnershipRoutes.js +51 -0
  516. package/dist/server/routes/syncV3LocalRecoveryRoutes.d.ts +12 -0
  517. package/dist/server/routes/syncV3LocalRecoveryRoutes.js +78 -0
  518. package/dist/server/routes/syncV3OperationRoutes.d.ts +35 -0
  519. package/dist/server/routes/syncV3OperationRoutes.js +1136 -0
  520. package/dist/server/routes/tasks.d.ts +0 -2
  521. package/dist/server/routes/tasks.js +932 -195
  522. package/dist/server/routes/workflows.d.ts +26 -0
  523. package/dist/server/routes/workflows.js +500 -0
  524. package/dist/server/routes.d.ts +1 -6
  525. package/dist/server/routes.js +148 -339
  526. package/dist/server/smtpTransport.d.ts +11 -3
  527. package/dist/server/smtpTransport.js +9 -2
  528. package/dist/server/start.js +42 -10
  529. package/dist/service/localServiceCli.d.ts +33 -0
  530. package/dist/service/localServiceCli.js +365 -0
  531. package/dist/service/localServiceClientLifecycle.d.ts +25 -0
  532. package/dist/service/localServiceClientLifecycle.js +128 -0
  533. package/dist/service/localServiceOpen.d.ts +17 -0
  534. package/dist/service/localServiceOpen.js +27 -0
  535. package/dist/services/agentRoleResolver.d.ts +4 -0
  536. package/dist/services/agentRoleResolver.js +7 -0
  537. package/dist/services/aiProfileAvatarGenerationService.d.ts +41 -0
  538. package/dist/services/aiProfileAvatarGenerationService.js +158 -0
  539. package/dist/services/avatarImageProvider.d.ts +33 -0
  540. package/dist/services/avatarImageProvider.js +140 -0
  541. package/dist/services/bedrockAnthropicMessagesModelGateway.d.ts +24 -0
  542. package/dist/services/bedrockAnthropicMessagesModelGateway.js +95 -0
  543. package/dist/services/bedrockMantleModelGateway.d.ts +43 -0
  544. package/dist/services/bedrockMantleModelGateway.js +81 -0
  545. package/dist/services/bedrockModelGateway.d.ts +26 -0
  546. package/dist/services/bedrockModelGateway.js +94 -0
  547. package/dist/services/modelGateway.d.ts +82 -0
  548. package/dist/services/modelGateway.js +61 -0
  549. package/dist/services/taskforceAgentAvatarImageProvider.d.ts +8 -0
  550. package/dist/services/taskforceAgentAvatarImageProvider.js +24 -0
  551. package/dist/services/taskforceAgentMcpBridge.d.ts +77 -0
  552. package/dist/services/taskforceAgentMcpBridge.js +527 -0
  553. package/dist/shared/agentRoleDefinition.d.ts +34 -0
  554. package/dist/shared/agentRoleDefinition.js +207 -0
  555. package/dist/shared/aiProfileAvatarEligibility.d.ts +10 -0
  556. package/dist/shared/aiProfileAvatarEligibility.js +27 -0
  557. package/dist/shared/aiProfileColors.d.ts +7 -0
  558. package/dist/shared/aiProfileColors.js +33 -0
  559. package/dist/shared/colorPalette.d.ts +3 -0
  560. package/dist/shared/colorPalette.js +20 -0
  561. package/dist/shared/commentProvenance.d.ts +4 -0
  562. package/dist/shared/commentProvenance.js +6 -0
  563. package/dist/shared/deletedTaskRetention.d.ts +2 -0
  564. package/dist/shared/deletedTaskRetention.js +7 -0
  565. package/dist/shared/passwordPolicy.d.ts +2 -1
  566. package/dist/shared/passwordPolicy.js +9 -0
  567. package/dist/shared/taskDeepLinks.d.ts +28 -0
  568. package/dist/shared/taskDeepLinks.js +48 -0
  569. package/dist/shared/taskRestoreDestination.d.ts +2 -0
  570. package/dist/shared/taskRestoreDestination.js +5 -0
  571. package/dist/shared/taskforceAgentDefinition.d.ts +88 -0
  572. package/dist/shared/taskforceAgentDefinition.js +434 -0
  573. package/dist/shared/taskforceAgentExecutionSnapshot.d.ts +50 -0
  574. package/dist/shared/taskforceAgentExecutionSnapshot.js +68 -0
  575. package/dist/shared/taskforceAgentModels.d.ts +56 -0
  576. package/dist/shared/taskforceAgentModels.js +314 -0
  577. package/dist/shared/taskforceAgentRunContext.d.ts +23 -0
  578. package/dist/shared/taskforceAgentRunContext.js +21 -0
  579. package/dist/shared/taskforceAgentRuntimeResolution.d.ts +31 -0
  580. package/dist/shared/taskforceAgentRuntimeResolution.js +72 -0
  581. package/dist/shared/taskforceAgentSkill.d.ts +33 -0
  582. package/dist/shared/taskforceAgentSkill.js +149 -0
  583. package/dist/shared/taxonomyLibrary.js +1 -1
  584. package/dist/storage/agentRoleStore.d.ts +91 -0
  585. package/dist/storage/agentRoleStore.js +385 -0
  586. package/dist/storage/databaseAdapter.d.ts +1 -0
  587. package/dist/storage/databaseAdapter.js +7 -1
  588. package/dist/storage/documentIntegrity.d.ts +12 -3
  589. package/dist/storage/documentIntegrity.js +105 -27
  590. package/dist/storage/objectStorageClient.d.ts +10 -4
  591. package/dist/storage/objectStorageClient.js +73 -43
  592. package/dist/storage/postgresAdapter.d.ts +2 -1
  593. package/dist/storage/postgresAdapter.js +38 -6
  594. package/dist/storage/postgresWorker.js +65 -1
  595. package/dist/storage/sqliteAdapter.d.ts +1 -1
  596. package/dist/storage/sqliteAdapter.js +7 -1
  597. package/dist/storage/sqliteWalHealth.d.ts +71 -0
  598. package/dist/storage/sqliteWalHealth.js +176 -0
  599. package/dist/storage/taskDataPath.d.ts +1 -0
  600. package/dist/storage/taskDataPath.js +20 -0
  601. package/dist/storage/taskforceAgentConversationStore.d.ts +66 -0
  602. package/dist/storage/taskforceAgentConversationStore.js +264 -0
  603. package/dist/storage/taskforceAgentSkillStore.d.ts +93 -0
  604. package/dist/storage/taskforceAgentSkillStore.js +355 -0
  605. package/dist/storage/taskforceAgentStore.d.ts +105 -0
  606. package/dist/storage/taskforceAgentStore.js +549 -0
  607. package/dist/storage/workflowStore.d.ts +223 -0
  608. package/dist/storage/workflowStore.js +1032 -0
  609. package/dist/storage/workspaceAssetStore.d.ts +70 -0
  610. package/dist/storage/workspaceAssetStore.js +418 -25
  611. package/dist/sync/aiProfileAvatarSyncPaths.d.ts +14 -0
  612. package/dist/sync/aiProfileAvatarSyncPaths.js +56 -0
  613. package/dist/sync/cloudSyncApi.d.ts +329 -0
  614. package/dist/sync/cloudSyncApi.js +596 -4
  615. package/dist/sync/collaborationSyncPayload.d.ts +5 -1
  616. package/dist/sync/collaborationSyncPayload.js +213 -1
  617. package/dist/sync/collaborationSyncState.d.ts +23 -3
  618. package/dist/sync/collaborationSyncState.js +92 -3
  619. package/dist/sync/contentSyncPayload.d.ts +9 -0
  620. package/dist/sync/contentSyncPayload.js +29 -0
  621. package/dist/sync/contentSyncState.d.ts +79 -4
  622. package/dist/sync/contentSyncState.js +1113 -313
  623. package/dist/sync/coordinator/localSyncBrowserApplyPermitContext.d.ts +39 -0
  624. package/dist/sync/coordinator/localSyncBrowserApplyPermitContext.js +234 -0
  625. package/dist/sync/coordinator/localSyncBrowserAuthorityCapability.d.ts +7 -0
  626. package/dist/sync/coordinator/localSyncBrowserAuthorityCapability.js +10 -0
  627. package/dist/sync/coordinator/localSyncCommittedApplyPolicy.d.ts +7 -0
  628. package/dist/sync/coordinator/localSyncCommittedApplyPolicy.js +41 -0
  629. package/dist/sync/coordinator/localSyncCoordinatorBrowserClient.d.ts +178 -0
  630. package/dist/sync/coordinator/localSyncCoordinatorBrowserClient.js +131 -0
  631. package/dist/sync/coordinator/localSyncCoordinatorCommandLifecycle.d.ts +25 -0
  632. package/dist/sync/coordinator/localSyncCoordinatorCommandLifecycle.js +200 -0
  633. package/dist/sync/coordinator/localSyncCoordinatorHost.d.ts +84 -0
  634. package/dist/sync/coordinator/localSyncCoordinatorHost.js +435 -0
  635. package/dist/sync/coordinator/localSyncCoordinatorRouteServices.d.ts +33 -0
  636. package/dist/sync/coordinator/localSyncCoordinatorRouteServices.js +1 -0
  637. package/dist/sync/coordinator/localSyncCoordinatorStore.d.ts +122 -0
  638. package/dist/sync/coordinator/localSyncCoordinatorStore.js +1039 -0
  639. package/dist/sync/coordinator/localSyncCoordinatorTypes.d.ts +82 -0
  640. package/dist/sync/coordinator/localSyncCoordinatorTypes.js +9 -0
  641. package/dist/sync/coordinator/localSyncDispatchTracker.d.ts +15 -0
  642. package/dist/sync/coordinator/localSyncDispatchTracker.js +68 -0
  643. package/dist/sync/coordinator/localSyncExecutionPermitStore.d.ts +200 -0
  644. package/dist/sync/coordinator/localSyncExecutionPermitStore.js +1388 -0
  645. package/dist/sync/coordinator/localSyncExecutionPermitTypes.d.ts +52 -0
  646. package/dist/sync/coordinator/localSyncExecutionPermitTypes.js +8 -0
  647. package/dist/sync/coordinator/localSyncOwnershipDrainBarrier.d.ts +33 -0
  648. package/dist/sync/coordinator/localSyncOwnershipDrainBarrier.js +83 -0
  649. package/dist/sync/coordinator/localSyncPermitTransactionHooks.d.ts +9 -0
  650. package/dist/sync/coordinator/localSyncPermitTransactionHooks.js +27 -0
  651. package/dist/sync/coordinator/localSyncProcessLock.d.ts +12 -0
  652. package/dist/sync/coordinator/localSyncProcessLock.js +212 -0
  653. package/dist/sync/coordinator/localSyncV3DispatchRecoveryReconciler.d.ts +17 -0
  654. package/dist/sync/coordinator/localSyncV3DispatchRecoveryReconciler.js +82 -0
  655. package/dist/sync/coordinator/localWorkspaceSyncRunner.d.ts +134 -0
  656. package/dist/sync/coordinator/localWorkspaceSyncRunner.js +981 -0
  657. package/dist/sync/coordinator/localWorkspaceSyncRunnerState.d.ts +189 -0
  658. package/dist/sync/coordinator/localWorkspaceSyncRunnerState.js +961 -0
  659. package/dist/sync/coordinator/workspaceSyncCloudCredentialValidator.d.ts +19 -0
  660. package/dist/sync/coordinator/workspaceSyncCloudCredentialValidator.js +83 -0
  661. package/dist/sync/coordinator/workspaceSyncCredentialBroker.d.ts +117 -0
  662. package/dist/sync/coordinator/workspaceSyncCredentialBroker.js +323 -0
  663. package/dist/sync/coordinator/workspaceSyncLocalAccessBootstrap.d.ts +11 -0
  664. package/dist/sync/coordinator/workspaceSyncLocalAccessBootstrap.js +51 -0
  665. package/dist/sync/coordinator/workspaceSyncTransportGateway.d.ts +139 -0
  666. package/dist/sync/coordinator/workspaceSyncTransportGateway.js +738 -0
  667. package/dist/sync/engine/localWorkspaceContentManifestService.d.ts +21 -0
  668. package/dist/sync/engine/localWorkspaceContentManifestService.js +44 -0
  669. package/dist/sync/engine/workspaceSyncAtomicLocalPublisher.d.ts +36 -0
  670. package/dist/sync/engine/workspaceSyncAtomicLocalPublisher.js +203 -0
  671. package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.d.ts +21 -0
  672. package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.js +13 -0
  673. package/dist/sync/engine/workspaceSyncContentPullObligationStore.d.ts +65 -0
  674. package/dist/sync/engine/workspaceSyncContentPullObligationStore.js +160 -0
  675. package/dist/sync/engine/workspaceSyncContentVersionStore.d.ts +216 -0
  676. package/dist/sync/engine/workspaceSyncContentVersionStore.js +1068 -0
  677. package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.d.ts +28 -0
  678. package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.js +543 -0
  679. package/dist/sync/engine/workspaceSyncEngineContracts.d.ts +78 -0
  680. package/dist/sync/engine/workspaceSyncEngineContracts.js +1 -0
  681. package/dist/sync/engine/workspaceSyncEngineControlPlane.d.ts +37 -0
  682. package/dist/sync/engine/workspaceSyncEngineControlPlane.js +79 -0
  683. package/dist/sync/engine/workspaceSyncEngineIdentity.d.ts +1 -0
  684. package/dist/sync/engine/workspaceSyncEngineIdentity.js +4 -0
  685. package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.d.ts +68 -0
  686. package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.js +180 -0
  687. package/dist/sync/engine/workspaceSyncEngineLocalApply.d.ts +72 -0
  688. package/dist/sync/engine/workspaceSyncEngineLocalApply.js +132 -0
  689. package/dist/sync/engine/workspaceSyncEngineLocalServices.d.ts +70 -0
  690. package/dist/sync/engine/workspaceSyncEngineLocalServices.js +25 -0
  691. package/dist/sync/engine/workspaceSyncEngineParity.d.ts +8 -0
  692. package/dist/sync/engine/workspaceSyncEngineParity.js +7 -0
  693. package/dist/sync/engine/workspaceSyncEnginePullPolicy.d.ts +32 -0
  694. package/dist/sync/engine/workspaceSyncEnginePullPolicy.js +27 -0
  695. package/dist/sync/engine/workspaceSyncEnginePushCompletion.d.ts +20 -0
  696. package/dist/sync/engine/workspaceSyncEnginePushCompletion.js +87 -0
  697. package/dist/sync/engine/workspaceSyncEngineRecovery.d.ts +56 -0
  698. package/dist/sync/engine/workspaceSyncEngineRecovery.js +288 -0
  699. package/dist/sync/engine/workspaceSyncEngineRemoteServices.d.ts +104 -0
  700. package/dist/sync/engine/workspaceSyncEngineRemoteServices.js +21 -0
  701. package/dist/sync/engine/workspaceSyncEngineRuntime.d.ts +61 -0
  702. package/dist/sync/engine/workspaceSyncEngineRuntime.js +59 -0
  703. package/dist/sync/engine/workspaceSyncEngineServerApplyBoundary.d.ts +28 -0
  704. package/dist/sync/engine/workspaceSyncEngineServerApplyBoundary.js +86 -0
  705. package/dist/sync/engine/workspaceSyncEngineServerLocalServices.d.ts +73 -0
  706. package/dist/sync/engine/workspaceSyncEngineServerLocalServices.js +452 -0
  707. package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.d.ts +23 -0
  708. package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.js +451 -0
  709. package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.d.ts +125 -0
  710. package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.js +1124 -0
  711. package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.d.ts +63 -0
  712. package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.js +276 -0
  713. package/dist/sync/engine/workspaceSyncEngineTransferCompletion.d.ts +20 -0
  714. package/dist/sync/engine/workspaceSyncEngineTransferCompletion.js +37 -0
  715. package/dist/sync/engine/workspaceSyncEngineTransferTypes.d.ts +7 -0
  716. package/dist/sync/engine/workspaceSyncEngineTransferTypes.js +1 -0
  717. package/dist/sync/engine/workspaceSyncEngineTransfers.d.ts +240 -0
  718. package/dist/sync/engine/workspaceSyncEngineTransfers.js +1184 -0
  719. package/dist/sync/engine/workspaceSyncEngineV3LocalFeedApply.d.ts +39 -0
  720. package/dist/sync/engine/workspaceSyncEngineV3LocalFeedApply.js +39 -0
  721. package/dist/sync/engine/workspaceSyncImmutableContentGcRunner.d.ts +25 -0
  722. package/dist/sync/engine/workspaceSyncImmutableContentGcRunner.js +83 -0
  723. package/dist/sync/engine/workspaceSyncImmutableContentProvider.d.ts +71 -0
  724. package/dist/sync/engine/workspaceSyncImmutableContentProvider.js +209 -0
  725. package/dist/sync/engine/workspaceSyncImmutableContentStager.d.ts +32 -0
  726. package/dist/sync/engine/workspaceSyncImmutableContentStager.js +202 -0
  727. package/dist/sync/engine/workspaceSyncPublishedContentResolver.d.ts +43 -0
  728. package/dist/sync/engine/workspaceSyncPublishedContentResolver.js +142 -0
  729. package/dist/sync/engine/workspaceSyncServerContentRuntime.d.ts +26 -0
  730. package/dist/sync/engine/workspaceSyncServerContentRuntime.js +41 -0
  731. package/dist/sync/engine/workspaceSyncServerDataServices.d.ts +44 -0
  732. package/dist/sync/engine/workspaceSyncServerDataServices.js +143 -0
  733. package/dist/sync/engine/workspaceSyncTransferEvidence.d.ts +39 -0
  734. package/dist/sync/engine/workspaceSyncTransferEvidence.js +45 -0
  735. package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.d.ts +44 -0
  736. package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.js +990 -0
  737. package/dist/sync/engine/workspaceSyncV2PreparedContent.d.ts +82 -0
  738. package/dist/sync/engine/workspaceSyncV2PreparedContent.js +219 -0
  739. package/dist/sync/planningCanonicalFields.d.ts +41 -0
  740. package/dist/sync/planningCanonicalFields.js +211 -0
  741. package/dist/sync/planningSyncPayload.d.ts +5 -1
  742. package/dist/sync/planningSyncPayload.js +88 -4
  743. package/dist/sync/syncApplyHandlers.d.ts +98 -8
  744. package/dist/sync/syncApplyHandlers.js +816 -78
  745. package/dist/sync/syncResourceAdapters.d.ts +10 -0
  746. package/dist/sync/syncResourceAdapters.js +21 -1
  747. package/dist/sync/syncService.d.ts +57 -1
  748. package/dist/sync/syncService.js +1085 -138
  749. package/dist/sync/taskNestedContent.d.ts +2 -0
  750. package/dist/sync/taskNestedContent.js +8 -0
  751. package/dist/sync/taskSyncChangeKey.js +0 -1
  752. package/dist/sync/taskSyncPayload.d.ts +0 -1
  753. package/dist/sync/taskSyncPayload.js +14 -3
  754. package/dist/sync/v3/canonicalWorkspaceSyncJson.d.ts +2 -0
  755. package/dist/sync/v3/canonicalWorkspaceSyncJson.js +26 -0
  756. package/dist/sync/v3/combinedFeedCapability.d.ts +21 -0
  757. package/dist/sync/v3/combinedFeedCapability.js +80 -0
  758. package/dist/sync/v3/combinedFeedPrerequisites.d.ts +18 -0
  759. package/dist/sync/v3/combinedFeedPrerequisites.js +184 -0
  760. package/dist/sync/v3/durableInitiativeMutationRouter.d.ts +61 -0
  761. package/dist/sync/v3/durableInitiativeMutationRouter.js +287 -0
  762. package/dist/sync/v3/durableOperationReplay.d.ts +36 -0
  763. package/dist/sync/v3/durableOperationReplay.js +103 -0
  764. package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.d.ts +49 -0
  765. package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.js +198 -0
  766. package/dist/sync/v3/durableTaskChecklistMutationRouter.d.ts +47 -0
  767. package/dist/sync/v3/durableTaskChecklistMutationRouter.js +182 -0
  768. package/dist/sync/v3/durableTaskCommentMutationRouter.d.ts +47 -0
  769. package/dist/sync/v3/durableTaskCommentMutationRouter.js +191 -0
  770. package/dist/sync/v3/durableTaskHttpBulkMutationRouter.d.ts +60 -0
  771. package/dist/sync/v3/durableTaskHttpBulkMutationRouter.js +320 -0
  772. package/dist/sync/v3/durableTaskHttpRootMutationRouter.d.ts +40 -0
  773. package/dist/sync/v3/durableTaskHttpRootMutationRouter.js +518 -0
  774. package/dist/sync/v3/durableTaxonomyMutationRouter.d.ts +63 -0
  775. package/dist/sync/v3/durableTaxonomyMutationRouter.js +289 -0
  776. package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.d.ts +77 -0
  777. package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.js +361 -0
  778. package/dist/sync/v3/durableWorkstreamMutationRouter.d.ts +61 -0
  779. package/dist/sync/v3/durableWorkstreamMutationRouter.js +287 -0
  780. package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.d.ts +42 -0
  781. package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.js +122 -0
  782. package/dist/sync/v3/entityEventLegacyAdoptionContract.d.ts +6 -0
  783. package/dist/sync/v3/entityEventLegacyAdoptionContract.js +6 -0
  784. package/dist/sync/v3/entityEventLegacyAdoptionService.d.ts +62 -0
  785. package/dist/sync/v3/entityEventLegacyAdoptionService.js +180 -0
  786. package/dist/sync/v3/initiativeActivityAuthoritativeRevision.d.ts +11 -0
  787. package/dist/sync/v3/initiativeActivityAuthoritativeRevision.js +23 -0
  788. package/dist/sync/v3/initiativeActivityIdentity.d.ts +8 -0
  789. package/dist/sync/v3/initiativeActivityIdentity.js +14 -0
  790. package/dist/sync/v3/initiativeCoexistence.d.ts +26 -0
  791. package/dist/sync/v3/initiativeCoexistence.js +148 -0
  792. package/dist/sync/v3/initiativeFeedActivationCapability.d.ts +6 -0
  793. package/dist/sync/v3/initiativeFeedActivationCapability.js +16 -0
  794. package/dist/sync/v3/initiativeMutationPayload.d.ts +26 -0
  795. package/dist/sync/v3/initiativeMutationPayload.js +144 -0
  796. package/dist/sync/v3/initiativeMutationService.d.ts +62 -0
  797. package/dist/sync/v3/initiativeMutationService.js +206 -0
  798. package/dist/sync/v3/localEntityEventLegacyAdoption.d.ts +31 -0
  799. package/dist/sync/v3/localEntityEventLegacyAdoption.js +607 -0
  800. package/dist/sync/v3/localInitiativeOutboxHandler.d.ts +8 -0
  801. package/dist/sync/v3/localInitiativeOutboxHandler.js +88 -0
  802. package/dist/sync/v3/localInitiativeOutboxService.d.ts +50 -0
  803. package/dist/sync/v3/localInitiativeOutboxService.js +495 -0
  804. package/dist/sync/v3/localOperationIdentityStore.d.ts +81 -0
  805. package/dist/sync/v3/localOperationIdentityStore.js +388 -0
  806. package/dist/sync/v3/localOutboxDispatchCapability.d.ts +7 -0
  807. package/dist/sync/v3/localOutboxDispatchCapability.js +13 -0
  808. package/dist/sync/v3/localOutboxDispatchRuntime.d.ts +16 -0
  809. package/dist/sync/v3/localOutboxDispatchRuntime.js +269 -0
  810. package/dist/sync/v3/localOutboxDispatcher.d.ts +53 -0
  811. package/dist/sync/v3/localOutboxDispatcher.js +362 -0
  812. package/dist/sync/v3/localOutboxDrainClient.d.ts +50 -0
  813. package/dist/sync/v3/localOutboxDrainClient.js +250 -0
  814. package/dist/sync/v3/localOutboxOperationHandler.d.ts +31 -0
  815. package/dist/sync/v3/localOutboxOperationHandler.js +10 -0
  816. package/dist/sync/v3/localOutboxRecoveryClient.d.ts +14 -0
  817. package/dist/sync/v3/localOutboxRecoveryClient.js +45 -0
  818. package/dist/sync/v3/localOutboxRecoveryPreparationService.d.ts +12 -0
  819. package/dist/sync/v3/localOutboxRecoveryPreparationService.js +151 -0
  820. package/dist/sync/v3/localSyncIdentityStore.d.ts +9 -0
  821. package/dist/sync/v3/localSyncIdentityStore.js +43 -0
  822. package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.d.ts +10 -0
  823. package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.js +70 -0
  824. package/dist/sync/v3/localTaskAttachmentLinksOutboxService.d.ts +45 -0
  825. package/dist/sync/v3/localTaskAttachmentLinksOutboxService.js +291 -0
  826. package/dist/sync/v3/localTaskChecklistOutboxHandler.d.ts +10 -0
  827. package/dist/sync/v3/localTaskChecklistOutboxHandler.js +54 -0
  828. package/dist/sync/v3/localTaskChecklistOutboxService.d.ts +47 -0
  829. package/dist/sync/v3/localTaskChecklistOutboxService.js +221 -0
  830. package/dist/sync/v3/localTaskCommentOutboxHandler.d.ts +10 -0
  831. package/dist/sync/v3/localTaskCommentOutboxHandler.js +94 -0
  832. package/dist/sync/v3/localTaskCommentOutboxService.d.ts +75 -0
  833. package/dist/sync/v3/localTaskCommentOutboxService.js +391 -0
  834. package/dist/sync/v3/localTaskCreateClient.d.ts +27 -0
  835. package/dist/sync/v3/localTaskCreateClient.js +209 -0
  836. package/dist/sync/v3/localTaskCreateOutboxHandler.d.ts +8 -0
  837. package/dist/sync/v3/localTaskCreateOutboxHandler.js +147 -0
  838. package/dist/sync/v3/localTaskCreateOutboxService.d.ts +77 -0
  839. package/dist/sync/v3/localTaskCreateOutboxService.js +397 -0
  840. package/dist/sync/v3/localTaskDeleteClient.d.ts +10 -0
  841. package/dist/sync/v3/localTaskDeleteClient.js +23 -0
  842. package/dist/sync/v3/localTaskDeleteOutboxHandler.d.ts +8 -0
  843. package/dist/sync/v3/localTaskDeleteOutboxHandler.js +54 -0
  844. package/dist/sync/v3/localTaskDeleteOutboxService.d.ts +38 -0
  845. package/dist/sync/v3/localTaskDeleteOutboxService.js +235 -0
  846. package/dist/sync/v3/localTaskLegacyRootAdoption.d.ts +28 -0
  847. package/dist/sync/v3/localTaskLegacyRootAdoption.js +219 -0
  848. package/dist/sync/v3/localTaskLifecycleClient.d.ts +49 -0
  849. package/dist/sync/v3/localTaskLifecycleClient.js +57 -0
  850. package/dist/sync/v3/localTaskLifecycleOutboxHandler.d.ts +8 -0
  851. package/dist/sync/v3/localTaskLifecycleOutboxHandler.js +94 -0
  852. package/dist/sync/v3/localTaskLifecycleOutboxService.d.ts +60 -0
  853. package/dist/sync/v3/localTaskLifecycleOutboxService.js +304 -0
  854. package/dist/sync/v3/localTaskMetadataClient.d.ts +13 -0
  855. package/dist/sync/v3/localTaskMetadataClient.js +30 -0
  856. package/dist/sync/v3/localTaskMetadataOutboxHandler.d.ts +8 -0
  857. package/dist/sync/v3/localTaskMetadataOutboxHandler.js +70 -0
  858. package/dist/sync/v3/localTaskMetadataOutboxService.d.ts +48 -0
  859. package/dist/sync/v3/localTaskMetadataOutboxService.js +229 -0
  860. package/dist/sync/v3/localTaskOperationClient.d.ts +72 -0
  861. package/dist/sync/v3/localTaskOperationClient.js +195 -0
  862. package/dist/sync/v3/localTaskRelationshipOutboxHandler.d.ts +8 -0
  863. package/dist/sync/v3/localTaskRelationshipOutboxHandler.js +114 -0
  864. package/dist/sync/v3/localTaskRelationshipOutboxService.d.ts +45 -0
  865. package/dist/sync/v3/localTaskRelationshipOutboxService.js +192 -0
  866. package/dist/sync/v3/localTaskRestoreClient.d.ts +13 -0
  867. package/dist/sync/v3/localTaskRestoreClient.js +32 -0
  868. package/dist/sync/v3/localTaskRestoreOutboxHandler.d.ts +8 -0
  869. package/dist/sync/v3/localTaskRestoreOutboxHandler.js +41 -0
  870. package/dist/sync/v3/localTaskRestoreOutboxService.d.ts +56 -0
  871. package/dist/sync/v3/localTaskRestoreOutboxService.js +323 -0
  872. package/dist/sync/v3/localTaskStatusClient.d.ts +17 -0
  873. package/dist/sync/v3/localTaskStatusClient.js +35 -0
  874. package/dist/sync/v3/localTaskStatusOutboxHandler.d.ts +8 -0
  875. package/dist/sync/v3/localTaskStatusOutboxHandler.js +75 -0
  876. package/dist/sync/v3/localTaskStatusOutboxService.d.ts +53 -0
  877. package/dist/sync/v3/localTaskStatusOutboxService.js +422 -0
  878. package/dist/sync/v3/localTaxonomyCompositeOutboxService.d.ts +34 -0
  879. package/dist/sync/v3/localTaxonomyCompositeOutboxService.js +290 -0
  880. package/dist/sync/v3/localTaxonomyOutboxHandler.d.ts +9 -0
  881. package/dist/sync/v3/localTaxonomyOutboxHandler.js +106 -0
  882. package/dist/sync/v3/localTaxonomyOutboxService.d.ts +30 -0
  883. package/dist/sync/v3/localTaxonomyOutboxService.js +181 -0
  884. package/dist/sync/v3/localWorkflowRuntimeOutboxHandler.d.ts +8 -0
  885. package/dist/sync/v3/localWorkflowRuntimeOutboxHandler.js +113 -0
  886. package/dist/sync/v3/localWorkflowRuntimeOutboxService.d.ts +37 -0
  887. package/dist/sync/v3/localWorkflowRuntimeOutboxService.js +330 -0
  888. package/dist/sync/v3/localWorkspaceSyncServerOutboxDispatcher.d.ts +63 -0
  889. package/dist/sync/v3/localWorkspaceSyncServerOutboxDispatcher.js +264 -0
  890. package/dist/sync/v3/localWorkstreamOutboxHandler.d.ts +8 -0
  891. package/dist/sync/v3/localWorkstreamOutboxHandler.js +102 -0
  892. package/dist/sync/v3/localWorkstreamOutboxService.d.ts +52 -0
  893. package/dist/sync/v3/localWorkstreamOutboxService.js +579 -0
  894. package/dist/sync/v3/localWorkstreamTaskOrderOutboxHandler.d.ts +10 -0
  895. package/dist/sync/v3/localWorkstreamTaskOrderOutboxHandler.js +57 -0
  896. package/dist/sync/v3/localWorkstreamTaskOrderOutboxService.d.ts +30 -0
  897. package/dist/sync/v3/localWorkstreamTaskOrderOutboxService.js +128 -0
  898. package/dist/sync/v3/planningActivation.d.ts +13 -0
  899. package/dist/sync/v3/planningActivation.js +33 -0
  900. package/dist/sync/v3/planningAttachmentActivityValidation.d.ts +9 -0
  901. package/dist/sync/v3/planningAttachmentActivityValidation.js +87 -0
  902. package/dist/sync/v3/programScaffoldService.d.ts +143 -0
  903. package/dist/sync/v3/programScaffoldService.js +478 -0
  904. package/dist/sync/v3/syncDurabilityStore.d.ts +773 -0
  905. package/dist/sync/v3/syncDurabilityStore.js +4635 -0
  906. package/dist/sync/v3/taskActivityAuthoritativeRevision.d.ts +16 -0
  907. package/dist/sync/v3/taskActivityAuthoritativeRevision.js +67 -0
  908. package/dist/sync/v3/taskActivityJournal.d.ts +20 -0
  909. package/dist/sync/v3/taskActivityJournal.js +195 -0
  910. package/dist/sync/v3/taskAttachmentLinksActivityIdentity.d.ts +6 -0
  911. package/dist/sync/v3/taskAttachmentLinksActivityIdentity.js +14 -0
  912. package/dist/sync/v3/taskAttachmentLinksMutationService.d.ts +111 -0
  913. package/dist/sync/v3/taskAttachmentLinksMutationService.js +202 -0
  914. package/dist/sync/v3/taskChecklistActivityIdentity.d.ts +6 -0
  915. package/dist/sync/v3/taskChecklistActivityIdentity.js +14 -0
  916. package/dist/sync/v3/taskChecklistMutationService.d.ts +92 -0
  917. package/dist/sync/v3/taskChecklistMutationService.js +156 -0
  918. package/dist/sync/v3/taskCommentActivityIdentity.d.ts +7 -0
  919. package/dist/sync/v3/taskCommentActivityIdentity.js +15 -0
  920. package/dist/sync/v3/taskCommentMutationService.d.ts +150 -0
  921. package/dist/sync/v3/taskCommentMutationService.js +392 -0
  922. package/dist/sync/v3/taskCommentReconcileProvenance.d.ts +58 -0
  923. package/dist/sync/v3/taskCommentReconcileProvenance.js +170 -0
  924. package/dist/sync/v3/taskCreateActivation.d.ts +19 -0
  925. package/dist/sync/v3/taskCreateActivation.js +84 -0
  926. package/dist/sync/v3/taskCreateActivityIdentity.d.ts +7 -0
  927. package/dist/sync/v3/taskCreateActivityIdentity.js +18 -0
  928. package/dist/sync/v3/taskCreateMutationService.d.ts +103 -0
  929. package/dist/sync/v3/taskCreateMutationService.js +283 -0
  930. package/dist/sync/v3/taskDeleteActivation.d.ts +7 -0
  931. package/dist/sync/v3/taskDeleteActivation.js +14 -0
  932. package/dist/sync/v3/taskDeleteMutationService.d.ts +35 -0
  933. package/dist/sync/v3/taskDeleteMutationService.js +133 -0
  934. package/dist/sync/v3/taskLegacyRootAdoptionService.d.ts +78 -0
  935. package/dist/sync/v3/taskLegacyRootAdoptionService.js +175 -0
  936. package/dist/sync/v3/taskLifecycleActivityIdentity.d.ts +9 -0
  937. package/dist/sync/v3/taskLifecycleActivityIdentity.js +18 -0
  938. package/dist/sync/v3/taskLifecycleMutationPayload.d.ts +5 -0
  939. package/dist/sync/v3/taskLifecycleMutationPayload.js +28 -0
  940. package/dist/sync/v3/taskLifecycleMutationService.d.ts +66 -0
  941. package/dist/sync/v3/taskLifecycleMutationService.js +92 -0
  942. package/dist/sync/v3/taskMetadataActivation.d.ts +12 -0
  943. package/dist/sync/v3/taskMetadataActivation.js +38 -0
  944. package/dist/sync/v3/taskMetadataActivityIdentity.d.ts +7 -0
  945. package/dist/sync/v3/taskMetadataActivityIdentity.js +18 -0
  946. package/dist/sync/v3/taskMetadataCoexistence.d.ts +37 -0
  947. package/dist/sync/v3/taskMetadataCoexistence.js +134 -0
  948. package/dist/sync/v3/taskMetadataMutationService.d.ts +71 -0
  949. package/dist/sync/v3/taskMetadataMutationService.js +199 -0
  950. package/dist/sync/v3/taskRelationshipLegacyAdoptionService.d.ts +48 -0
  951. package/dist/sync/v3/taskRelationshipLegacyAdoptionService.js +164 -0
  952. package/dist/sync/v3/taskRelationshipMutationService.d.ts +50 -0
  953. package/dist/sync/v3/taskRelationshipMutationService.js +148 -0
  954. package/dist/sync/v3/taskRestoreMutationService.d.ts +90 -0
  955. package/dist/sync/v3/taskRestoreMutationService.js +179 -0
  956. package/dist/sync/v3/taskStatusActivation.d.ts +7 -0
  957. package/dist/sync/v3/taskStatusActivation.js +15 -0
  958. package/dist/sync/v3/taskStatusMutationService.d.ts +76 -0
  959. package/dist/sync/v3/taskStatusMutationService.js +308 -0
  960. package/dist/sync/v3/taskWorkflowMutationPayload.d.ts +4 -0
  961. package/dist/sync/v3/taskWorkflowMutationPayload.js +22 -0
  962. package/dist/sync/v3/taskWorkflowMutationService.d.ts +64 -0
  963. package/dist/sync/v3/taskWorkflowMutationService.js +102 -0
  964. package/dist/sync/v3/taxonomyCoexistence.d.ts +10 -0
  965. package/dist/sync/v3/taxonomyCoexistence.js +19 -0
  966. package/dist/sync/v3/taxonomyCompositeMutationService.d.ts +110 -0
  967. package/dist/sync/v3/taxonomyCompositeMutationService.js +304 -0
  968. package/dist/sync/v3/taxonomyMutationService.d.ts +57 -0
  969. package/dist/sync/v3/taxonomyMutationService.js +106 -0
  970. package/dist/sync/v3/taxonomyStateMutation.d.ts +22 -0
  971. package/dist/sync/v3/taxonomyStateMutation.js +49 -0
  972. package/dist/sync/v3/taxonomySyncPayload.d.ts +9 -0
  973. package/dist/sync/v3/taxonomySyncPayload.js +199 -0
  974. package/dist/sync/v3/workflowAssignmentSync.d.ts +22 -0
  975. package/dist/sync/v3/workflowAssignmentSync.js +213 -0
  976. package/dist/sync/v3/workflowRuntimeMutationService.d.ts +89 -0
  977. package/dist/sync/v3/workflowRuntimeMutationService.js +359 -0
  978. package/dist/sync/v3/workflowRuntimeOperationIdentity.d.ts +13 -0
  979. package/dist/sync/v3/workflowRuntimeOperationIdentity.js +35 -0
  980. package/dist/sync/v3/workflowRuntimeSync.d.ts +141 -0
  981. package/dist/sync/v3/workflowRuntimeSync.js +485 -0
  982. package/dist/sync/v3/workspaceSyncJournalReader.d.ts +43 -0
  983. package/dist/sync/v3/workspaceSyncJournalReader.js +45 -0
  984. package/dist/sync/v3/workspaceSyncLocalOwnershipSnapshot.d.ts +28 -0
  985. package/dist/sync/v3/workspaceSyncLocalOwnershipSnapshot.js +81 -0
  986. package/dist/sync/v3/workspaceSyncPayloadFingerprint.d.ts +1 -0
  987. package/dist/sync/v3/workspaceSyncPayloadFingerprint.js +5 -0
  988. package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.d.ts +16 -0
  989. package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.js +161 -0
  990. package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.d.ts +83 -0
  991. package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.js +161 -0
  992. package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.d.ts +16 -0
  993. package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.js +90 -0
  994. package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.d.ts +65 -0
  995. package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.js +356 -0
  996. package/dist/sync/v3/workspaceSyncV3CombinedCoverage.d.ts +51 -0
  997. package/dist/sync/v3/workspaceSyncV3CombinedCoverage.js +171 -0
  998. package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.d.ts +43 -0
  999. package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.js +535 -0
  1000. package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.d.ts +50 -0
  1001. package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.js +1149 -0
  1002. package/dist/sync/v3/workspaceSyncV3CombinedProjectionState.d.ts +96 -0
  1003. package/dist/sync/v3/workspaceSyncV3CombinedProjectionState.js +672 -0
  1004. package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.d.ts +42 -0
  1005. package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.js +598 -0
  1006. package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.d.ts +65 -0
  1007. package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.js +505 -0
  1008. package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.d.ts +78 -0
  1009. package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.js +511 -0
  1010. package/dist/sync/v3/workspaceSyncV3CombinedWireContract.d.ts +45 -0
  1011. package/dist/sync/v3/workspaceSyncV3CombinedWireContract.js +125 -0
  1012. package/dist/sync/v3/workspaceSyncV3CoverageRegistry.d.ts +13 -0
  1013. package/dist/sync/v3/workspaceSyncV3CoverageRegistry.js +34 -0
  1014. package/dist/sync/v3/workspaceSyncV3CursorEncoding.d.ts +1 -0
  1015. package/dist/sync/v3/workspaceSyncV3CursorEncoding.js +6 -0
  1016. package/dist/sync/v3/workspaceSyncV3DomainAdmission.d.ts +43 -0
  1017. package/dist/sync/v3/workspaceSyncV3DomainAdmission.js +118 -0
  1018. package/dist/sync/v3/workspaceSyncV3Feed.d.ts +95 -0
  1019. package/dist/sync/v3/workspaceSyncV3Feed.js +243 -0
  1020. package/dist/sync/v3/workspaceSyncV3FeedApply.d.ts +13 -0
  1021. package/dist/sync/v3/workspaceSyncV3FeedApply.js +67 -0
  1022. package/dist/sync/v3/workspaceSyncV3FeedClientContract.d.ts +3 -0
  1023. package/dist/sync/v3/workspaceSyncV3FeedClientContract.js +46 -0
  1024. package/dist/sync/v3/workspaceSyncV3FeedCursorKeys.d.ts +10 -0
  1025. package/dist/sync/v3/workspaceSyncV3FeedCursorKeys.js +58 -0
  1026. package/dist/sync/v3/workspaceSyncV3FeedOrchestrator.d.ts +31 -0
  1027. package/dist/sync/v3/workspaceSyncV3FeedOrchestrator.js +228 -0
  1028. package/dist/sync/v3/workspaceSyncV3FeedProfile.d.ts +32 -0
  1029. package/dist/sync/v3/workspaceSyncV3FeedProfile.js +21 -0
  1030. package/dist/sync/v3/workspaceSyncV3InitiativeLocalApply.d.ts +36 -0
  1031. package/dist/sync/v3/workspaceSyncV3InitiativeLocalApply.js +163 -0
  1032. package/dist/sync/v3/workspaceSyncV3InitiativeRepair.d.ts +33 -0
  1033. package/dist/sync/v3/workspaceSyncV3InitiativeRepair.js +118 -0
  1034. package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.d.ts +10 -0
  1035. package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.js +45 -0
  1036. package/dist/sync/v3/workspaceSyncV3LocalOutboxStatus.d.ts +27 -0
  1037. package/dist/sync/v3/workspaceSyncV3LocalOutboxStatus.js +83 -0
  1038. package/dist/sync/v3/workspaceSyncV3NestedCoverage.d.ts +10 -0
  1039. package/dist/sync/v3/workspaceSyncV3NestedCoverage.js +40 -0
  1040. package/dist/sync/v3/workspaceSyncV3NestedTaskApply.d.ts +83 -0
  1041. package/dist/sync/v3/workspaceSyncV3NestedTaskApply.js +325 -0
  1042. package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.d.ts +59 -0
  1043. package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.js +302 -0
  1044. package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.d.ts +47 -0
  1045. package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.js +329 -0
  1046. package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.d.ts +19 -0
  1047. package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.js +41 -0
  1048. package/dist/sync/v3/workspaceSyncV3NestedWireContract.d.ts +6 -0
  1049. package/dist/sync/v3/workspaceSyncV3NestedWireContract.js +16 -0
  1050. package/dist/sync/v3/workspaceSyncV3OperationProjection.d.ts +8 -0
  1051. package/dist/sync/v3/workspaceSyncV3OperationProjection.js +52 -0
  1052. package/dist/sync/v3/workspaceSyncV3OperationProtocol.d.ts +229 -0
  1053. package/dist/sync/v3/workspaceSyncV3OperationProtocol.js +1 -0
  1054. package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.d.ts +165 -0
  1055. package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.js +414 -0
  1056. package/dist/sync/v3/workspaceSyncV3OriginActor.d.ts +36 -0
  1057. package/dist/sync/v3/workspaceSyncV3OriginActor.js +61 -0
  1058. package/dist/sync/v3/workspaceSyncV3OriginAssertion.d.ts +46 -0
  1059. package/dist/sync/v3/workspaceSyncV3OriginAssertion.js +121 -0
  1060. package/dist/sync/v3/workspaceSyncV3OriginAssertionHeader.d.ts +1 -0
  1061. package/dist/sync/v3/workspaceSyncV3OriginAssertionHeader.js +1 -0
  1062. package/dist/sync/v3/workspaceSyncV3PlanningOrderCoverage.d.ts +10 -0
  1063. package/dist/sync/v3/workspaceSyncV3PlanningOrderCoverage.js +34 -0
  1064. package/dist/sync/v3/workspaceSyncV3PlanningOrderWireContract.d.ts +6 -0
  1065. package/dist/sync/v3/workspaceSyncV3PlanningOrderWireContract.js +10 -0
  1066. package/dist/sync/v3/workspaceSyncV3ProjectionState.d.ts +105 -0
  1067. package/dist/sync/v3/workspaceSyncV3ProjectionState.js +467 -0
  1068. package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.d.ts +56 -0
  1069. package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.js +250 -0
  1070. package/dist/sync/v3/workspaceSyncV3TaskRelationshipProjection.d.ts +30 -0
  1071. package/dist/sync/v3/workspaceSyncV3TaskRelationshipProjection.js +142 -0
  1072. package/dist/sync/v3/workspaceSyncV3TaskRootProjection.d.ts +40 -0
  1073. package/dist/sync/v3/workspaceSyncV3TaskRootProjection.js +246 -0
  1074. package/dist/sync/v3/workspaceSyncV3TaxonomyFeedProjection.d.ts +39 -0
  1075. package/dist/sync/v3/workspaceSyncV3TaxonomyFeedProjection.js +185 -0
  1076. package/dist/sync/v3/workspaceSyncV3WorkflowCoverage.d.ts +10 -0
  1077. package/dist/sync/v3/workspaceSyncV3WorkflowCoverage.js +36 -0
  1078. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.d.ts +17 -0
  1079. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.js +143 -0
  1080. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeProjection.d.ts +9 -0
  1081. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeProjection.js +195 -0
  1082. package/dist/sync/v3/workspaceSyncV3WorkflowWireContract.d.ts +11 -0
  1083. package/dist/sync/v3/workspaceSyncV3WorkflowWireContract.js +12 -0
  1084. package/dist/sync/v3/workspaceSyncV3WorkstreamProjection.d.ts +4 -0
  1085. package/dist/sync/v3/workspaceSyncV3WorkstreamProjection.js +98 -0
  1086. package/dist/sync/v3/workspaceSyncV3WorkstreamTaskOrderProjection.d.ts +9 -0
  1087. package/dist/sync/v3/workspaceSyncV3WorkstreamTaskOrderProjection.js +72 -0
  1088. package/dist/sync/v3/workstreamActivityAuthoritativeRevision.d.ts +11 -0
  1089. package/dist/sync/v3/workstreamActivityAuthoritativeRevision.js +23 -0
  1090. package/dist/sync/v3/workstreamActivityIdentity.d.ts +8 -0
  1091. package/dist/sync/v3/workstreamActivityIdentity.js +14 -0
  1092. package/dist/sync/v3/workstreamCoexistence.d.ts +19 -0
  1093. package/dist/sync/v3/workstreamCoexistence.js +64 -0
  1094. package/dist/sync/v3/workstreamMutationPayload.d.ts +27 -0
  1095. package/dist/sync/v3/workstreamMutationPayload.js +147 -0
  1096. package/dist/sync/v3/workstreamMutationService.d.ts +72 -0
  1097. package/dist/sync/v3/workstreamMutationService.js +256 -0
  1098. package/dist/sync/v3/workstreamTaskOrderMutationService.d.ts +55 -0
  1099. package/dist/sync/v3/workstreamTaskOrderMutationService.js +110 -0
  1100. package/dist/sync/v3/workstreamTaskOrderSync.d.ts +14 -0
  1101. package/dist/sync/v3/workstreamTaskOrderSync.js +25 -0
  1102. package/dist/sync/workspaceContentManifest.d.ts +86 -0
  1103. package/dist/sync/workspaceContentManifest.js +123 -0
  1104. package/dist/sync/workspacePullFeed.d.ts +186 -2
  1105. package/dist/sync/workspacePullFeed.js +513 -136
  1106. package/dist/sync/workspacePushPreparedPlan.d.ts +21 -0
  1107. package/dist/sync/workspacePushPreparedPlan.js +1 -0
  1108. package/dist/sync/workspaceRepair.d.ts +17 -25
  1109. package/dist/sync/workspaceRepair.js +348 -25
  1110. package/dist/sync/workspaceSyncContentDecryption.d.ts +6 -0
  1111. package/dist/sync/workspaceSyncContentDecryption.js +11 -0
  1112. package/dist/sync/workspaceSyncModel.d.ts +216 -5
  1113. package/dist/sync/workspaceSyncModel.js +371 -35
  1114. package/dist/sync/workspaceSyncSnapshotProjection.d.ts +11 -0
  1115. package/dist/sync/workspaceSyncSnapshotProjection.js +101 -0
  1116. package/dist/sync/workspaceSyncState.d.ts +13 -0
  1117. package/dist/sync/workspaceSyncState.js +36 -0
  1118. package/dist/sync/workspaceSyncV2SnapshotBuilder.d.ts +106 -0
  1119. package/dist/sync/workspaceSyncV2SnapshotBuilder.js +193 -0
  1120. package/dist/types.d.ts +23 -15
  1121. package/dist/types.js +2 -4
  1122. package/dist/ui/ai-profile-clients/amazon-nova.svg +1 -0
  1123. package/dist/ui/ai-profile-clients/antigravity.png +0 -0
  1124. package/dist/ui/ai-profile-clients/chatgpt.svg +10 -0
  1125. package/dist/ui/ai-profile-clients/claude-chat.svg +1 -0
  1126. package/dist/ui/ai-profile-clients/claude-code.svg +15 -0
  1127. package/dist/ui/ai-profile-clients/cline-app-icon-light.png +0 -0
  1128. package/dist/ui/ai-profile-clients/cline.svg +16 -0
  1129. package/dist/ui/ai-profile-clients/codex.svg +1 -0
  1130. package/dist/ui/ai-profile-clients/copilot.png +0 -0
  1131. package/dist/ui/ai-profile-clients/cursor.svg +1 -0
  1132. package/dist/ui/ai-profile-clients/deepseek.svg +1 -0
  1133. package/dist/ui/ai-profile-clients/gemini-cli-icon.png +0 -0
  1134. package/dist/ui/ai-profile-clients/gemini.svg +10 -0
  1135. package/dist/ui/ai-profile-clients/grok.svg +31 -0
  1136. package/dist/ui/ai-profile-clients/kiro.svg +11 -0
  1137. package/dist/ui/ai-profile-clients/llama.svg +1 -0
  1138. package/dist/ui/ai-profile-clients/mistral.svg +1 -0
  1139. package/dist/ui/ai-profile-clients/ms_copilot.jpeg +0 -0
  1140. package/dist/ui/ai-profile-clients/openclaw.png +0 -0
  1141. package/dist/ui/ai-profile-clients/perplexity.svg +1 -0
  1142. package/dist/ui/ai-profile-clients/vscode.svg +41 -0
  1143. package/dist/ui/ai-profile-clients/windsurf.svg +11 -0
  1144. package/dist/ui/assets/AiIdentityRosterCard-DB1BLO_j.js +1 -0
  1145. package/dist/ui/assets/AiProfilesModule-DPxQeF9N.js +1 -0
  1146. package/dist/ui/assets/AnnotatedAttachmentWorkspace-CBRZ8rca.css +1 -0
  1147. package/dist/ui/assets/AnnotatedAttachmentWorkspace-DHNYaNg6.js +3 -0
  1148. package/dist/ui/assets/AssetTraySortControl-B9k5caQW.css +1 -0
  1149. package/dist/ui/assets/AssetTraySortControl-DphbyHVc.js +1 -0
  1150. package/dist/ui/assets/ContextAttachmentManager-CMxSzHqc.js +3 -0
  1151. package/dist/ui/assets/DocumentWorkspace-BC7sy5TG.js +261 -0
  1152. package/dist/ui/assets/DocumentWorkspace-BIBGBfd7.css +1 -0
  1153. package/dist/ui/assets/EntityActivityTimeline-BfJbZRdl.css +1 -0
  1154. package/dist/ui/assets/EntityActivityTimeline-pJ2ZjZ-k.js +1 -0
  1155. package/dist/ui/assets/PlanningModule-CeTqXMMz.css +1 -0
  1156. package/dist/ui/assets/PlanningModule-t5GbvVR9.js +1 -0
  1157. package/dist/ui/assets/PlansPage-BVH_NfgT.js +1 -0
  1158. package/dist/ui/assets/PlansPage-C2nkK2Bp.css +1 -0
  1159. package/dist/ui/assets/TaskContextUpload-Ds4LnDzV.css +1 -0
  1160. package/dist/ui/assets/TaskContextUpload-bl4fOOUz.js +1 -0
  1161. package/dist/ui/assets/TaskSettings-xVsxSa0g.js +12 -0
  1162. package/dist/ui/assets/TaskforceAgentsModule-CkAxW19K.js +21 -0
  1163. package/dist/ui/assets/TaskforceAgentsModule-D6IC0S7Q.css +1 -0
  1164. package/dist/ui/assets/WorkflowManagerModule-BKqIGVnF.js +1 -0
  1165. package/dist/ui/assets/WorkflowManagerModule-DF10XENz.css +1 -0
  1166. package/dist/ui/assets/antigravity-DRKQga2U.png +0 -0
  1167. package/dist/ui/assets/cursor-BM_3k4Y4.svg +1 -0
  1168. package/dist/ui/assets/gemini-cli-icon-dBAVjCcn.png +0 -0
  1169. package/dist/ui/assets/grok-BuodbWaG.svg +31 -0
  1170. package/dist/ui/assets/index-BzJlVnNS.css +1 -0
  1171. package/dist/ui/assets/index-Cx7vZJHL.js +7 -0
  1172. package/dist/ui/assets/{vendor-dnd-DRzYolkg.js → vendor-dnd-CJ-AjP-Y.js} +1 -1
  1173. package/dist/ui/assets/{vendor-icons-CLnehDTw.js → vendor-icons-B8ZNsH1g.js} +1 -1
  1174. package/dist/ui/assets/{vendor-markdown-BUxTU7dS.js → vendor-markdown-_lhNCyq-.js} +9 -9
  1175. package/dist/ui/assets/vendor-router-AqJMU8Lz.js +3 -0
  1176. package/dist/ui/assets/vscode-C_7wk1WI.svg +41 -0
  1177. package/dist/ui/branding/logos/logo_dark_bg.png +0 -0
  1178. package/dist/ui/branding/logos/logo_favicon_dark.png +0 -0
  1179. package/dist/ui/branding/logos/logo_favicon_dark.svg +56 -0
  1180. package/dist/ui/branding/logos/logo_favicon_light.png +0 -0
  1181. package/dist/ui/branding/logos/logo_light_bg.png +0 -0
  1182. package/dist/ui/images/Taskforce_Van.webp +0 -0
  1183. package/dist/ui/index.html +6 -6
  1184. package/dist/update/uiUpdateService.d.ts +43 -0
  1185. package/dist/update/uiUpdateService.js +149 -0
  1186. package/dist/update/updateCli.d.ts +15 -0
  1187. package/dist/update/updateCli.js +76 -0
  1188. package/dist/update/updateExecutor.d.ts +40 -0
  1189. package/dist/update/updateExecutor.js +474 -0
  1190. package/dist/update/updateStatus.d.ts +83 -0
  1191. package/dist/update/updateStatus.js +703 -0
  1192. package/dist/utils/aiProfileAvatarPaths.d.ts +14 -0
  1193. package/dist/utils/aiProfileAvatarPaths.js +52 -0
  1194. package/dist/utils/aiProfileDefaultLogo.d.ts +7 -0
  1195. package/dist/utils/aiProfileDefaultLogo.js +84 -0
  1196. package/dist/utils/aiProfileEvents.d.ts +9 -1
  1197. package/dist/utils/annotatedAttachments.d.ts +8 -0
  1198. package/dist/utils/annotatedAttachments.js +17 -1
  1199. package/dist/utils/assetTraySorting.d.ts +25 -0
  1200. package/dist/utils/assetTraySorting.js +83 -0
  1201. package/dist/utils/assignees.d.ts +5 -0
  1202. package/dist/utils/assignees.js +14 -9
  1203. package/dist/utils/authLogin.d.ts +10 -0
  1204. package/dist/utils/authLogin.js +8 -0
  1205. package/dist/utils/authSessionEvents.d.ts +2 -0
  1206. package/dist/utils/authSessionEvents.js +6 -0
  1207. package/dist/utils/avatarUpload.js +5 -5
  1208. package/dist/utils/canonicalReferenceAttachments.d.ts +12 -0
  1209. package/dist/utils/canonicalReferenceAttachments.js +42 -0
  1210. package/dist/utils/cloudAssetDisplay.d.ts +2 -0
  1211. package/dist/utils/cloudAssetDisplay.js +8 -0
  1212. package/dist/utils/constants.d.ts +4 -11
  1213. package/dist/utils/constants.js +5 -64
  1214. package/dist/utils/contextAttachmentPreview.d.ts +11 -0
  1215. package/dist/utils/contextAttachmentPreview.js +8 -0
  1216. package/dist/utils/contextAttachmentUpload.d.ts +8 -0
  1217. package/dist/utils/contextAttachmentUpload.js +144 -0
  1218. package/dist/utils/documentNames.js +6 -4
  1219. package/dist/utils/entityReferences.d.ts +14 -0
  1220. package/dist/utils/entityReferences.js +21 -0
  1221. package/dist/utils/httpSetCookie.d.ts +3 -0
  1222. package/dist/utils/httpSetCookie.js +22 -0
  1223. package/dist/utils/imageNoteStoragePaths.d.ts +3 -0
  1224. package/dist/utils/imageNoteStoragePaths.js +19 -0
  1225. package/dist/utils/imageReferences.d.ts +6 -0
  1226. package/dist/utils/imageReferences.js +1 -0
  1227. package/dist/utils/planningArchiveOrchestrator.d.ts +23 -0
  1228. package/dist/utils/planningArchiveOrchestrator.js +37 -0
  1229. package/dist/utils/planningArchivePresentation.d.ts +20 -0
  1230. package/dist/utils/planningArchivePresentation.js +23 -0
  1231. package/dist/utils/planningArchiveReadiness.d.ts +26 -0
  1232. package/dist/utils/planningArchiveReadiness.js +30 -0
  1233. package/dist/utils/planningFavorites.d.ts +7 -0
  1234. package/dist/utils/planningFavorites.js +34 -0
  1235. package/dist/utils/syncEventPresentation.js +53 -0
  1236. package/dist/utils/syncStatusPresentation.d.ts +25 -0
  1237. package/dist/utils/syncStatusPresentation.js +86 -5
  1238. package/dist/utils/taskActivity.d.ts +9 -2
  1239. package/dist/utils/taskActivity.js +61 -0
  1240. package/dist/utils/taskDraftDefaults.d.ts +0 -8
  1241. package/dist/utils/taskDraftDefaults.js +0 -4
  1242. package/dist/utils/taskEvents.d.ts +11 -0
  1243. package/dist/utils/taskEvents.js +6 -0
  1244. package/dist/utils/taskHeaderQuickFilter.d.ts +14 -0
  1245. package/dist/utils/taskHeaderQuickFilter.js +32 -0
  1246. package/dist/utils/taskInvalidation.d.ts +23 -0
  1247. package/dist/utils/taskInvalidation.js +67 -0
  1248. package/dist/utils/taskNormalization.d.ts +2 -1
  1249. package/dist/utils/taskNormalization.js +44 -18
  1250. package/dist/utils/taskReferences.d.ts +16 -0
  1251. package/dist/utils/taskReferences.js +63 -0
  1252. package/dist/utils/taskforceAgentEvents.d.ts +8 -0
  1253. package/dist/utils/taskforceAgentEvents.js +6 -0
  1254. package/dist/utils/taskforceAgentSkillEvents.d.ts +7 -0
  1255. package/dist/utils/taskforceAgentSkillEvents.js +8 -0
  1256. package/dist/utils/theme.js +1 -1
  1257. package/dist/utils/uiNotice.d.ts +3 -0
  1258. package/dist/utils/uiNotice.js +1 -1
  1259. package/dist/utils/workspaceResourceEvents.d.ts +7 -0
  1260. package/dist/utils/workspaceResourceEvents.js +6 -0
  1261. package/dist/utils/workspaceSyncPresentation.d.ts +24 -0
  1262. package/dist/utils/workspaceSyncPresentation.js +243 -6
  1263. package/package.json +69 -21
  1264. package/dist/components/features/AgentsModule.d.ts +0 -18
  1265. package/dist/components/features/AgentsModule.js +0 -479
  1266. package/dist/components/features/InitiativesModule.d.ts +0 -22
  1267. package/dist/components/features/InitiativesModule.js +0 -33
  1268. package/dist/components/features/WorkflowsModule.d.ts +0 -27
  1269. package/dist/components/features/WorkflowsModule.js +0 -21
  1270. package/dist/components/features/settings/WorkflowEditor.d.ts +0 -15
  1271. package/dist/components/features/settings/WorkflowEditor.js +0 -245
  1272. package/dist/components/views/panels/DocumentFilterToolbar.d.ts +0 -10
  1273. package/dist/components/views/panels/DocumentFilterToolbar.js +0 -7
  1274. package/dist/components/views/standalone/modals/AccountHubModal.d.ts +0 -61
  1275. package/dist/components/views/standalone/modals/AccountHubModal.js +0 -108
  1276. package/dist/components/views/standalone/modals/EditProfileModal.d.ts +0 -19
  1277. package/dist/components/views/standalone/modals/EditProfileModal.js +0 -11
  1278. package/dist/hooks/ui/useResourceExport.d.ts +0 -21
  1279. package/dist/hooks/ui/useResourceExport.js +0 -87
  1280. package/dist/hooks/ui/useWorkflowTemplates.d.ts +0 -37
  1281. package/dist/hooks/ui/useWorkflowTemplates.js +0 -116
  1282. package/dist/mcp/clientProfileDefaults.d.ts +0 -12
  1283. package/dist/mcp/clientProfileDefaults.js +0 -37
  1284. package/dist/resources/templates/WORKFLOW_V2_POLICY.md +0 -55
  1285. package/dist/resources/templates/environments/aider.yaml +0 -14
  1286. package/dist/resources/templates/environments/antigravity.yaml +0 -10
  1287. package/dist/resources/templates/environments/claude.yaml +0 -10
  1288. package/dist/resources/templates/environments/cline.yaml +0 -10
  1289. package/dist/resources/templates/environments/codex.yaml +0 -13
  1290. package/dist/resources/templates/environments/copilot.yaml +0 -10
  1291. package/dist/resources/templates/environments/cursor.yaml +0 -9
  1292. package/dist/resources/templates/environments/gemini.yaml +0 -9
  1293. package/dist/resources/templates/environments/windsurf.yaml +0 -10
  1294. package/dist/resources/templates/workflow-sources/README.md +0 -9
  1295. package/dist/resources/templates/workflow-sources/workflowDocs.mjs +0 -530
  1296. package/dist/resources/templates/workflow-sources/workflowEditorOverrides.json +0 -1
  1297. package/dist/resources/templates/workflows/collaborate.yaml +0 -110
  1298. package/dist/resources/templates/workflows/do.yaml +0 -88
  1299. package/dist/resources/templates/workflows/evaluate.yaml +0 -117
  1300. package/dist/resources/templates/workflows/execute.yaml +0 -159
  1301. package/dist/resources/templates/workflows/plan.yaml +0 -119
  1302. package/dist/resources/templates/workflows/review.yaml +0 -115
  1303. package/dist/services/formatTransformers.d.ts +0 -29
  1304. package/dist/services/formatTransformers.js +0 -56
  1305. package/dist/services/templateEngine.d.ts +0 -46
  1306. package/dist/services/templateEngine.js +0 -148
  1307. package/dist/shared/workflowDefaults.d.ts +0 -9
  1308. package/dist/shared/workflowDefaults.js +0 -11
  1309. package/dist/ui/agent-logos/Gemini CLI.jpeg +0 -0
  1310. package/dist/ui/agent-logos/antigravity.jpeg +0 -0
  1311. package/dist/ui/agent-logos/chatgpt.png +0 -0
  1312. package/dist/ui/agent-logos/claude-code.jpeg +0 -0
  1313. package/dist/ui/agent-logos/codex.jpeg +0 -0
  1314. package/dist/ui/agent-logos/cursor.png +0 -0
  1315. package/dist/ui/agent-logos/openclaw.jpeg +0 -0
  1316. package/dist/ui/agent-logos/windsurf.png +0 -0
  1317. package/dist/ui/assets/AgentsModule-DvkbUHi0.js +0 -1
  1318. package/dist/ui/assets/AnnotatedAttachmentWorkspace-BVKew-mH.css +0 -1
  1319. package/dist/ui/assets/AnnotatedAttachmentWorkspace-jhOhxqHT.js +0 -3
  1320. package/dist/ui/assets/ContextAttachmentManager-BAmEyLHL.js +0 -3
  1321. package/dist/ui/assets/DocumentWorkspace-D4rJKXzd.css +0 -1
  1322. package/dist/ui/assets/DocumentWorkspace-X-CpD5OO.js +0 -252
  1323. package/dist/ui/assets/EntityActivityTimeline-DD33onAC.js +0 -1
  1324. package/dist/ui/assets/EntityActivityTimeline-DyqvvhuF.css +0 -1
  1325. package/dist/ui/assets/InitiativesModule-5nDXtIjf.js +0 -1
  1326. package/dist/ui/assets/PlansPage-B8nDR1hQ.js +0 -1
  1327. package/dist/ui/assets/PlansPage-DeAzWYTb.css +0 -1
  1328. package/dist/ui/assets/TaskContextUpload-DrGrXJHm.js +0 -1
  1329. package/dist/ui/assets/TaskSettings-BXVvZZwH.js +0 -9
  1330. package/dist/ui/assets/WorkflowsModule-DWCGhEWT.js +0 -5
  1331. package/dist/ui/assets/documentReferences-Crup321p.js +0 -1
  1332. package/dist/ui/assets/index-B9k24Aym.js +0 -5
  1333. package/dist/ui/assets/index-DNeR5dYW.css +0 -1
  1334. package/dist/ui/assets/vendor-router-BbWMxlnO.js +0 -3
  1335. package/dist/ui/branding/logos/logo_black_01.png +0 -0
  1336. package/dist/ui/branding/logos/logo_black_02.png +0 -0
  1337. package/dist/ui/branding/logos/logo_white_01.png +0 -0
  1338. package/dist/ui/branding/logos/logo_white_02.png +0 -0
  1339. package/scripts/generate-workflow-templates.mjs +0 -134
  1340. package/src/resources/templates/WORKFLOW_V2_POLICY.md +0 -55
  1341. package/src/resources/templates/environments/aider.yaml +0 -14
  1342. package/src/resources/templates/environments/antigravity.yaml +0 -10
  1343. package/src/resources/templates/environments/claude.yaml +0 -10
  1344. package/src/resources/templates/environments/cline.yaml +0 -10
  1345. package/src/resources/templates/environments/codex.yaml +0 -13
  1346. package/src/resources/templates/environments/copilot.yaml +0 -10
  1347. package/src/resources/templates/environments/cursor.yaml +0 -9
  1348. package/src/resources/templates/environments/gemini.yaml +0 -9
  1349. package/src/resources/templates/environments/windsurf.yaml +0 -10
  1350. package/src/resources/templates/workflow-sources/README.md +0 -9
  1351. package/src/resources/templates/workflow-sources/workflowDocs.mjs +0 -530
  1352. package/src/resources/templates/workflow-sources/workflowEditorOverrides.json +0 -1
  1353. package/src/resources/templates/workflows/collaborate.yaml +0 -110
  1354. package/src/resources/templates/workflows/do.yaml +0 -88
  1355. package/src/resources/templates/workflows/evaluate.yaml +0 -117
  1356. package/src/resources/templates/workflows/execute.yaml +0 -159
  1357. package/src/resources/templates/workflows/plan.yaml +0 -119
  1358. package/src/resources/templates/workflows/review.yaml +0 -115
  1359. /package/dist/ui/branding/logos/{logo_dark.svg → logo_dark_no_bg.svg} +0 -0
  1360. /package/dist/ui/branding/logos/{logo_favicon.svg → logo_favicon_light.svg} +0 -0
  1361. /package/dist/ui/branding/logos/{logo_light.svg → logo_light_no_bg.svg} +0 -0
@@ -0,0 +1,1068 @@
1
+ import { createHash } from 'crypto';
2
+ import { compareWorkspaceMutationOrdering } from '../workspaceSyncSurface.js';
3
+ import { canonicalWorkspaceSyncJson } from '../v3/canonicalWorkspaceSyncJson.js';
4
+ export class WorkspaceSyncContentVersionConflictError extends Error {
5
+ code = 'WORKSPACE_SYNC_CONTENT_VERSION_CONFLICT';
6
+ constructor(message) {
7
+ super(message);
8
+ this.name = 'WorkspaceSyncContentVersionConflictError';
9
+ }
10
+ }
11
+ export class WorkspaceSyncContentVersionStateError extends Error {
12
+ code = 'WORKSPACE_SYNC_CONTENT_VERSION_STATE_INVALID';
13
+ constructor(message) {
14
+ super(message);
15
+ this.name = 'WorkspaceSyncContentVersionStateError';
16
+ }
17
+ }
18
+ export class WorkspaceSyncContentVersionReferencedError extends Error {
19
+ code = 'WORKSPACE_SYNC_CONTENT_VERSION_REFERENCED';
20
+ constructor(versionId) {
21
+ super(`Workspace sync content version ${versionId} is still referenced by a published head.`);
22
+ this.name = 'WorkspaceSyncContentVersionReferencedError';
23
+ }
24
+ }
25
+ const VERSION_ID_PREFIX = 'content-version-v1-';
26
+ const SHA256_PATTERN = /^[a-f0-9]{64}$/;
27
+ const MAX_GC_BACKOFF_MS = 24 * 60 * 60_000;
28
+ const DEFAULT_ABANDONMENT_TTL_MS = 24 * 60 * 60_000;
29
+ const ABANDONED_PREPARATION_FINAL_SWEEP_DELAY_MS = 24 * 60 * 60_000;
30
+ const DEFAULT_RETIRED_RETENTION_MS = 7 * 24 * 60 * 60_000;
31
+ function requiredString(value, field) {
32
+ const normalized = String(value || '').trim();
33
+ if (!normalized) {
34
+ throw new TypeError(`${field} is required.`);
35
+ }
36
+ return normalized;
37
+ }
38
+ function normalizeSha256(value) {
39
+ const normalized = requiredString(value, 'contentSha256').toLowerCase();
40
+ if (!SHA256_PATTERN.test(normalized)) {
41
+ throw new TypeError('contentSha256 must be a lowercase 64-character SHA-256 digest.');
42
+ }
43
+ return normalized;
44
+ }
45
+ function normalizeSizeBytes(value) {
46
+ if (!Number.isSafeInteger(value) || value < 0) {
47
+ throw new TypeError('sizeBytes must be a non-negative safe integer.');
48
+ }
49
+ return value;
50
+ }
51
+ function addMilliseconds(value, milliseconds, field) {
52
+ const timestamp = Date.parse(requiredString(value, field));
53
+ if (!Number.isFinite(timestamp)) {
54
+ throw new TypeError(`${field} must be a valid timestamp.`);
55
+ }
56
+ return new Date(timestamp + milliseconds).toISOString();
57
+ }
58
+ function requireSafeWorkspaceKeySegment(workspaceId) {
59
+ const normalized = requiredString(workspaceId, 'workspaceId');
60
+ if (!/^[A-Za-z0-9._-]+$/.test(normalized)) {
61
+ throw new TypeError('workspaceId contains characters that are unsafe for immutable content keys.');
62
+ }
63
+ return normalized;
64
+ }
65
+ function normalizeIdentityInput(input) {
66
+ if (input.kind !== 'document' && input.kind !== 'asset') {
67
+ throw new TypeError('kind must be document or asset.');
68
+ }
69
+ if (input.storageProvider !== 'local' && input.storageProvider !== 'r2') {
70
+ throw new TypeError('storageProvider must be local or r2.');
71
+ }
72
+ return {
73
+ tenantId: requiredString(input.tenantId, 'tenantId'),
74
+ workspaceId: requiredString(input.workspaceId, 'workspaceId'),
75
+ kind: input.kind,
76
+ logicalPath: requiredString(input.logicalPath, 'logicalPath'),
77
+ storageProvider: input.storageProvider,
78
+ contentSha256: normalizeSha256(input.contentSha256),
79
+ sizeBytes: normalizeSizeBytes(input.sizeBytes),
80
+ mimeType: requiredString(input.mimeType, 'mimeType').toLowerCase(),
81
+ };
82
+ }
83
+ export function buildWorkspaceSyncContentIdentity(rawInput) {
84
+ const input = normalizeIdentityInput(rawInput);
85
+ const digest = createHash('sha256').update(canonicalWorkspaceSyncJson({
86
+ contract: 'workspace-sync-content-version-v1',
87
+ tenantId: input.tenantId,
88
+ workspaceId: input.workspaceId,
89
+ kind: input.kind,
90
+ logicalPath: input.logicalPath,
91
+ contentSha256: input.contentSha256,
92
+ sizeBytes: input.sizeBytes,
93
+ mimeType: input.mimeType,
94
+ }), 'utf8').digest('hex');
95
+ const versionId = `${VERSION_ID_PREFIX}${digest}`;
96
+ return {
97
+ versionId,
98
+ physicalKey: [
99
+ 'workspaces',
100
+ requireSafeWorkspaceKeySegment(input.workspaceId),
101
+ '.sync-content',
102
+ 'v1',
103
+ input.kind,
104
+ input.contentSha256.slice(0, 2),
105
+ versionId,
106
+ ].join('/'),
107
+ };
108
+ }
109
+ function mapVersionRow(row) {
110
+ return {
111
+ tenantId: String(row.tenant_id),
112
+ workspaceId: String(row.workspace_id),
113
+ versionId: String(row.version_id),
114
+ kind: String(row.kind),
115
+ logicalPath: String(row.logical_path),
116
+ storageProvider: String(row.storage_provider),
117
+ physicalKey: String(row.physical_key),
118
+ contentSha256: String(row.content_sha256),
119
+ sizeBytes: Number(row.size_bytes),
120
+ mimeType: String(row.mime_type),
121
+ state: String(row.state),
122
+ createdAt: String(row.created_at),
123
+ readyAt: row.ready_at == null ? null : String(row.ready_at),
124
+ publishedAt: row.published_at == null ? null : String(row.published_at),
125
+ retiredAt: row.retired_at == null ? null : String(row.retired_at),
126
+ gcAfter: row.gc_after == null ? null : String(row.gc_after),
127
+ deletedAt: row.deleted_at == null ? null : String(row.deleted_at),
128
+ gcAttemptCount: Number(row.gc_attempt_count || 0),
129
+ gcNextAttemptAt: row.gc_next_attempt_at == null ? null : String(row.gc_next_attempt_at),
130
+ gcLastError: row.gc_last_error == null ? null : String(row.gc_last_error),
131
+ preparationToken: row.preparation_token == null ? null : String(row.preparation_token),
132
+ preparationLeaseUntil: row.preparation_lease_until == null
133
+ ? null
134
+ : String(row.preparation_lease_until),
135
+ storageGeneration: Number(row.storage_generation || 0),
136
+ gcClaimToken: row.gc_claim_token == null ? null : String(row.gc_claim_token),
137
+ gcClaimLeaseUntil: row.gc_claim_lease_until == null
138
+ ? null
139
+ : String(row.gc_claim_lease_until),
140
+ gcCompletedClaimToken: row.gc_completed_claim_token == null
141
+ ? null
142
+ : String(row.gc_completed_claim_token),
143
+ gcQuarantineSweepRequired: Number(row.gc_quarantine_sweep_required || 0) === 1,
144
+ gcFinalSweepAfter: row.gc_final_sweep_after == null
145
+ ? null
146
+ : String(row.gc_final_sweep_after),
147
+ };
148
+ }
149
+ function mapHeadRow(row) {
150
+ return {
151
+ tenantId: String(row.tenant_id),
152
+ workspaceId: String(row.workspace_id),
153
+ kind: String(row.kind),
154
+ logicalPath: String(row.logical_path),
155
+ versionId: row.version_id == null ? null : String(row.version_id),
156
+ sourceUpdatedAt: String(row.source_updated_at),
157
+ contentSha256: row.content_sha256 == null ? null : String(row.content_sha256),
158
+ sizeBytes: row.size_bytes == null ? null : Number(row.size_bytes),
159
+ publishedAt: String(row.published_at),
160
+ deletedAt: row.deleted_at == null ? null : String(row.deleted_at),
161
+ };
162
+ }
163
+ function mapPreparationAttemptRow(row) {
164
+ return {
165
+ tenantId: String(row.tenant_id),
166
+ workspaceId: String(row.workspace_id),
167
+ versionId: String(row.version_id),
168
+ preparationToken: String(row.preparation_token),
169
+ storageProvider: String(row.storage_provider),
170
+ physicalKey: String(row.physical_key),
171
+ storageGeneration: Number(row.storage_generation),
172
+ state: String(row.state),
173
+ createdAt: String(row.created_at),
174
+ promotedAt: row.promoted_at == null ? null : String(row.promoted_at),
175
+ availableAfter: String(row.available_after),
176
+ deletedAt: row.deleted_at == null ? null : String(row.deleted_at),
177
+ gcAttemptCount: Number(row.gc_attempt_count || 0),
178
+ gcNextAttemptAt: row.gc_next_attempt_at == null ? null : String(row.gc_next_attempt_at),
179
+ gcLastError: row.gc_last_error == null ? null : String(row.gc_last_error),
180
+ gcClaimToken: row.gc_claim_token == null ? null : String(row.gc_claim_token),
181
+ gcClaimLeaseUntil: row.gc_claim_lease_until == null ? null : String(row.gc_claim_lease_until),
182
+ gcCompletedClaimToken: row.gc_completed_claim_token == null
183
+ ? null
184
+ : String(row.gc_completed_claim_token),
185
+ };
186
+ }
187
+ function sameImmutableIdentity(existing, expected) {
188
+ return existing.tenantId === expected.tenantId
189
+ && existing.workspaceId === expected.workspaceId
190
+ && existing.versionId === expected.versionId
191
+ && existing.kind === expected.kind
192
+ && existing.logicalPath === expected.logicalPath
193
+ && existing.storageProvider === expected.storageProvider
194
+ && matchesWorkspaceSyncContentPhysicalKey({
195
+ basePhysicalKey: expected.physicalKey,
196
+ storageGeneration: existing.storageGeneration,
197
+ physicalKey: existing.physicalKey,
198
+ })
199
+ && existing.contentSha256 === expected.contentSha256
200
+ && existing.sizeBytes === expected.sizeBytes
201
+ && existing.mimeType === expected.mimeType;
202
+ }
203
+ function buildStorageGenerationPhysicalKey(basePhysicalKey, generation) {
204
+ if (!Number.isSafeInteger(generation) || generation < 0) {
205
+ throw new WorkspaceSyncContentVersionConflictError('Workspace sync content storage generation is invalid.');
206
+ }
207
+ return generation === 0
208
+ ? basePhysicalKey
209
+ : `${basePhysicalKey}/generation-${generation}`;
210
+ }
211
+ export function matchesWorkspaceSyncContentPhysicalKey(input) {
212
+ const expectedPhysicalKey = buildStorageGenerationPhysicalKey(requiredString(input.basePhysicalKey, 'basePhysicalKey'), input.storageGeneration);
213
+ const physicalKey = requiredString(input.physicalKey, 'physicalKey');
214
+ return physicalKey === expectedPhysicalKey
215
+ || physicalKey.startsWith(`${expectedPhysicalKey}/attempt-`);
216
+ }
217
+ function buildPreparationAttemptPhysicalKey(basePhysicalKey, generation, preparationToken) {
218
+ const attemptDigest = createHash('sha256')
219
+ .update(requiredString(preparationToken, 'preparationToken'), 'utf8')
220
+ .digest('hex');
221
+ return `${buildStorageGenerationPhysicalKey(basePhysicalKey, generation)}/attempt-${attemptDigest}`;
222
+ }
223
+ export class WorkspaceSyncContentVersionStore {
224
+ db;
225
+ constructor(db) {
226
+ this.db = db;
227
+ }
228
+ createOrValidatePreparing(rawInput) {
229
+ const input = normalizeIdentityInput(rawInput);
230
+ const deterministic = buildWorkspaceSyncContentIdentity(input);
231
+ if (rawInput.versionId != null && rawInput.versionId !== deterministic.versionId) {
232
+ throw new WorkspaceSyncContentVersionConflictError('The supplied content version id does not match its deterministic immutable identity.');
233
+ }
234
+ if (rawInput.physicalKey != null && rawInput.physicalKey !== deterministic.physicalKey) {
235
+ throw new WorkspaceSyncContentVersionConflictError('The supplied physical key does not match its deterministic immutable identity.');
236
+ }
237
+ const expected = {
238
+ ...input,
239
+ versionId: deterministic.versionId,
240
+ physicalKey: deterministic.physicalKey,
241
+ };
242
+ const abandonAfter = rawInput.abandonAfter == null
243
+ ? addMilliseconds(rawInput.createdAt, DEFAULT_ABANDONMENT_TTL_MS, 'createdAt')
244
+ : addMilliseconds(rawInput.abandonAfter, 0, 'abandonAfter');
245
+ const existing = this.getVersion(expected);
246
+ if (existing) {
247
+ if (!sameImmutableIdentity(existing, expected)) {
248
+ throw new WorkspaceSyncContentVersionConflictError(`Workspace sync content version ${expected.versionId} already has a different immutable identity.`);
249
+ }
250
+ if (existing.state === 'deleted') {
251
+ return this.db.transaction(() => {
252
+ this.lockLogicalHead(existing, rawInput.createdAt);
253
+ const current = this.requireVersion(expected);
254
+ if (!sameImmutableIdentity(current, expected)) {
255
+ throw new WorkspaceSyncContentVersionConflictError(`Workspace sync content version ${expected.versionId} already has a different immutable identity.`);
256
+ }
257
+ if (current.state !== 'deleted') {
258
+ if (current.state === 'deleting') {
259
+ throw new WorkspaceSyncContentVersionStateError(`Workspace sync content version ${expected.versionId} is being garbage collected.`);
260
+ }
261
+ return current;
262
+ }
263
+ const storageGeneration = current.storageGeneration + 1;
264
+ const physicalKey = buildStorageGenerationPhysicalKey(deterministic.physicalKey, storageGeneration);
265
+ const result = this.db.prepare(`
266
+ UPDATE workspace_sync_content_versions
267
+ SET state = 'preparing',
268
+ physical_key = ?,
269
+ storage_generation = ?,
270
+ created_at = ?,
271
+ ready_at = NULL,
272
+ published_at = NULL,
273
+ retired_at = NULL,
274
+ gc_after = ?,
275
+ deleted_at = NULL,
276
+ gc_attempt_count = 0,
277
+ gc_next_attempt_at = NULL,
278
+ gc_last_error = NULL,
279
+ preparation_token = NULL,
280
+ preparation_lease_until = NULL,
281
+ gc_claim_token = NULL,
282
+ gc_claim_lease_until = NULL,
283
+ gc_completed_claim_token = NULL,
284
+ gc_quarantine_sweep_required = 0,
285
+ gc_final_sweep_after = NULL
286
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
287
+ AND state = 'deleted' AND storage_generation = ?
288
+ `).run(physicalKey, storageGeneration, requiredString(rawInput.createdAt, 'createdAt'), abandonAfter, expected.tenantId, expected.workspaceId, expected.versionId, current.storageGeneration);
289
+ if (Number(result.changes || 0) !== 1) {
290
+ throw new WorkspaceSyncContentVersionStateError(`Workspace sync content version ${expected.versionId} storage generation claim was lost.`);
291
+ }
292
+ return this.requireVersion(expected);
293
+ })();
294
+ }
295
+ if (existing.state === 'deleting') {
296
+ throw new WorkspaceSyncContentVersionStateError(`Workspace sync content version ${expected.versionId} is being garbage collected.`);
297
+ }
298
+ return existing;
299
+ }
300
+ this.db.prepare(`
301
+ INSERT INTO workspace_sync_content_versions (
302
+ tenant_id, workspace_id, version_id, kind, logical_path,
303
+ storage_provider, physical_key, content_sha256, size_bytes,
304
+ mime_type, state, created_at, gc_after
305
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'preparing', ?, ?)
306
+ ON CONFLICT (tenant_id, workspace_id, version_id) DO NOTHING
307
+ `).run(expected.tenantId, expected.workspaceId, expected.versionId, expected.kind, expected.logicalPath, expected.storageProvider, expected.physicalKey, expected.contentSha256, expected.sizeBytes, expected.mimeType, requiredString(rawInput.createdAt, 'createdAt'), abandonAfter);
308
+ const inserted = this.getVersion(expected);
309
+ if (!inserted || !sameImmutableIdentity(inserted, expected)) {
310
+ throw new WorkspaceSyncContentVersionConflictError(`Workspace sync content version ${expected.versionId} already has a different immutable identity.`);
311
+ }
312
+ return inserted;
313
+ }
314
+ getVersion(input) {
315
+ const row = this.db.prepare(`
316
+ SELECT *
317
+ FROM workspace_sync_content_versions
318
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
319
+ `).get(input.tenantId, input.workspaceId, input.versionId);
320
+ return row ? mapVersionRow(row) : null;
321
+ }
322
+ claimPreparation(input) {
323
+ return this.db.transaction(() => {
324
+ const initial = this.requireVersion(input);
325
+ this.lockLogicalHead(initial, input.claimedAt);
326
+ const version = this.requireVersion(input);
327
+ if (version.state === 'ready' || version.state === 'published') {
328
+ return {
329
+ version,
330
+ requiresProviderPreparation: false,
331
+ attemptPhysicalKey: null,
332
+ };
333
+ }
334
+ if (version.state === 'deleting' || version.state === 'deleted') {
335
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} cannot be prepared from state ${version.state}.`);
336
+ }
337
+ const claimedAt = Date.parse(requiredString(input.claimedAt, 'claimedAt'));
338
+ const leaseUntil = addMilliseconds(input.leaseUntil, 0, 'leaseUntil');
339
+ const leaseUntilMs = Date.parse(leaseUntil);
340
+ const existingLease = version.preparationLeaseUntil == null
341
+ ? null
342
+ : Date.parse(version.preparationLeaseUntil);
343
+ if (!Number.isFinite(claimedAt)
344
+ || leaseUntilMs <= claimedAt
345
+ || (existingLease != null && existingLease > claimedAt
346
+ && version.preparationToken !== input.preparationToken)) {
347
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} already has an active preparation claim.`);
348
+ }
349
+ const preparationToken = requiredString(input.preparationToken, 'preparationToken');
350
+ const deterministic = buildWorkspaceSyncContentIdentity(version);
351
+ const physicalKey = buildPreparationAttemptPhysicalKey(deterministic.physicalKey, version.storageGeneration, preparationToken);
352
+ this.db.prepare(`
353
+ INSERT INTO workspace_sync_content_preparation_attempts (
354
+ tenant_id, workspace_id, version_id, preparation_token,
355
+ storage_provider, physical_key, storage_generation, state,
356
+ created_at, available_after
357
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, 'preparing', ?, ?)
358
+ ON CONFLICT (tenant_id, workspace_id, version_id, preparation_token) DO NOTHING
359
+ `).run(input.tenantId, input.workspaceId, input.versionId, preparationToken, version.storageProvider, physicalKey, version.storageGeneration, input.claimedAt, leaseUntil);
360
+ const attempt = this.requirePreparationAttempt({ ...input, preparationToken });
361
+ if (attempt.physicalKey !== physicalKey
362
+ || attempt.storageProvider !== version.storageProvider
363
+ || attempt.storageGeneration !== version.storageGeneration) {
364
+ throw new WorkspaceSyncContentVersionConflictError(`Preparation attempt ${preparationToken} already has a different immutable identity.`);
365
+ }
366
+ this.db.prepare(`
367
+ UPDATE workspace_sync_content_versions
368
+ SET state = 'preparing',
369
+ retired_at = NULL,
370
+ preparation_token = ?,
371
+ preparation_lease_until = ?,
372
+ gc_last_error = NULL,
373
+ gc_next_attempt_at = NULL
374
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
375
+ AND state IN ('preparing', 'retired')
376
+ `).run(preparationToken, leaseUntil, input.tenantId, input.workspaceId, input.versionId);
377
+ const claimed = this.requireVersion(input);
378
+ if (claimed.preparationToken !== input.preparationToken) {
379
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} preparation claim was not acquired.`);
380
+ }
381
+ return {
382
+ version: claimed,
383
+ requiresProviderPreparation: true,
384
+ attemptPhysicalKey: physicalKey,
385
+ };
386
+ })();
387
+ }
388
+ releasePreparation(input) {
389
+ return this.db.transaction(() => {
390
+ this.db.prepare(`
391
+ UPDATE workspace_sync_content_preparation_attempts
392
+ SET state = CASE WHEN state = 'current' THEN state ELSE 'cleanup_pending' END,
393
+ gc_next_attempt_at = NULL,
394
+ gc_last_error = NULL,
395
+ gc_claim_token = NULL,
396
+ gc_claim_lease_until = NULL,
397
+ gc_completed_claim_token = NULL,
398
+ deleted_at = NULL
399
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
400
+ AND preparation_token = ?
401
+ `).run(input.tenantId, input.workspaceId, input.versionId, input.preparationToken);
402
+ this.db.prepare(`
403
+ UPDATE workspace_sync_content_versions
404
+ SET preparation_token = NULL,
405
+ preparation_lease_until = NULL,
406
+ gc_last_error = ?
407
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
408
+ AND state = 'preparing' AND preparation_token = ?
409
+ `).run(input.error == null ? null : String(input.error), input.tenantId, input.workspaceId, input.versionId, input.preparationToken);
410
+ return this.requireVersion(input);
411
+ })();
412
+ }
413
+ markReady(input) {
414
+ return this.db.transaction(() => {
415
+ const existing = this.requireVersion(input);
416
+ if (input.preparationToken != null && existing.preparationToken !== input.preparationToken) {
417
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} preparation claim does not match.`);
418
+ }
419
+ if (input.preparationToken == null && existing.preparationToken != null) {
420
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} requires its preparation claim token.`);
421
+ }
422
+ const abandonAfter = input.abandonAfter == null
423
+ ? addMilliseconds(input.readyAt, DEFAULT_ABANDONMENT_TTL_MS, 'readyAt')
424
+ : addMilliseconds(input.abandonAfter, 0, 'abandonAfter');
425
+ if (input.preparedPhysicalKey != null) {
426
+ if (input.preparationToken == null) {
427
+ throw new WorkspaceSyncContentVersionStateError('A prepared physical key requires its durable preparation token.');
428
+ }
429
+ const attempt = this.requirePreparationAttempt({
430
+ ...input,
431
+ preparationToken: input.preparationToken,
432
+ });
433
+ if (attempt.physicalKey !== input.preparedPhysicalKey) {
434
+ throw new WorkspaceSyncContentVersionStateError(`Preparation attempt ${input.preparationToken} physical key does not match.`);
435
+ }
436
+ if (attempt.storageProvider !== existing.storageProvider
437
+ || attempt.storageGeneration !== existing.storageGeneration
438
+ || attempt.state !== 'preparing'
439
+ || existing.state !== 'preparing') {
440
+ throw new WorkspaceSyncContentVersionStateError(`Preparation attempt ${input.preparationToken} cannot be promoted.`);
441
+ }
442
+ this.db.prepare(`
443
+ UPDATE workspace_sync_content_preparation_attempts
444
+ SET state = 'cleanup_pending'
445
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
446
+ AND state = 'current' AND preparation_token <> ?
447
+ `).run(input.tenantId, input.workspaceId, input.versionId, input.preparationToken);
448
+ this.db.prepare(`
449
+ UPDATE workspace_sync_content_preparation_attempts
450
+ SET state = 'current',
451
+ promoted_at = ?,
452
+ gc_next_attempt_at = NULL,
453
+ gc_last_error = NULL,
454
+ gc_claim_token = NULL,
455
+ gc_claim_lease_until = NULL,
456
+ gc_completed_claim_token = NULL,
457
+ deleted_at = NULL
458
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
459
+ AND preparation_token = ? AND state = 'preparing'
460
+ `).run(input.readyAt, input.tenantId, input.workspaceId, input.versionId, input.preparationToken);
461
+ }
462
+ if (existing.state === 'preparing') {
463
+ const preparationPredicate = input.preparationToken == null
464
+ ? 'preparation_token IS NULL'
465
+ : 'preparation_token = ?';
466
+ this.db.prepare(`
467
+ UPDATE workspace_sync_content_versions
468
+ SET state = 'ready', ready_at = ?, gc_after = ?,
469
+ physical_key = COALESCE(?, physical_key),
470
+ gc_last_error = NULL, gc_next_attempt_at = NULL,
471
+ preparation_token = NULL, preparation_lease_until = NULL
472
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ? AND state = 'preparing'
473
+ AND ${preparationPredicate}
474
+ `).run(input.readyAt, abandonAfter, input.preparedPhysicalKey ?? null, input.tenantId, input.workspaceId, input.versionId, ...(input.preparationToken == null ? [] : [input.preparationToken]));
475
+ }
476
+ else if (existing.state === 'retired') {
477
+ this.db.prepare(`
478
+ UPDATE workspace_sync_content_versions
479
+ SET state = 'ready',
480
+ ready_at = ?,
481
+ retired_at = NULL,
482
+ gc_after = ?,
483
+ gc_next_attempt_at = NULL,
484
+ gc_last_error = NULL,
485
+ preparation_token = NULL,
486
+ preparation_lease_until = NULL
487
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ? AND state = 'retired'
488
+ `).run(input.readyAt, abandonAfter, input.tenantId, input.workspaceId, input.versionId);
489
+ }
490
+ else if (!['ready', 'published'].includes(existing.state)) {
491
+ throw new WorkspaceSyncContentVersionStateError(`Cannot mark content version ${input.versionId} ready from state ${existing.state}.`);
492
+ }
493
+ const ready = this.requireVersion(input);
494
+ if (ready.state !== 'ready' && ready.state !== 'published') {
495
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} did not reach a verified ready state.`);
496
+ }
497
+ return ready;
498
+ })();
499
+ }
500
+ publish(input) {
501
+ return this.db.transaction(() => {
502
+ this.lockLogicalHead(input, input.publishedAt);
503
+ const version = this.requireVersion(input);
504
+ if (version.kind !== input.kind || version.logicalPath !== input.logicalPath) {
505
+ throw new WorkspaceSyncContentVersionConflictError(`Content version ${input.versionId} does not belong to ${input.kind}:${input.logicalPath}.`);
506
+ }
507
+ const current = this.getHead(input);
508
+ if (current && this.compareHeadMutation({
509
+ versionId: input.versionId,
510
+ sourceUpdatedAt: input.sourceUpdatedAt,
511
+ contentSha256: version.contentSha256,
512
+ sizeBytes: version.sizeBytes,
513
+ deletedAt: null,
514
+ }, current) <= 0) {
515
+ return current;
516
+ }
517
+ if (version.state !== 'ready' && version.state !== 'published') {
518
+ throw new WorkspaceSyncContentVersionStateError(`Cannot publish content version ${input.versionId} from state ${version.state}.`);
519
+ }
520
+ if (current?.versionId && current.versionId !== input.versionId) {
521
+ this.retireVersion({
522
+ ...input,
523
+ versionId: current.versionId,
524
+ retiredAt: input.publishedAt,
525
+ gcAfter: input.retireGcAfter != null
526
+ ? addMilliseconds(input.retireGcAfter, 0, 'retireGcAfter')
527
+ : addMilliseconds(input.publishedAt, DEFAULT_RETIRED_RETENTION_MS, 'publishedAt'),
528
+ });
529
+ }
530
+ this.db.prepare(`
531
+ UPDATE workspace_sync_content_versions
532
+ SET state = 'published',
533
+ published_at = COALESCE(published_at, ?),
534
+ retired_at = NULL,
535
+ gc_after = NULL,
536
+ gc_next_attempt_at = NULL,
537
+ gc_last_error = NULL,
538
+ preparation_token = NULL,
539
+ preparation_lease_until = NULL
540
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
541
+ `).run(input.publishedAt, input.tenantId, input.workspaceId, input.versionId);
542
+ this.upsertHead({
543
+ ...input,
544
+ contentSha256: version.contentSha256,
545
+ sizeBytes: version.sizeBytes,
546
+ deletedAt: null,
547
+ });
548
+ return this.requireHead(input);
549
+ })();
550
+ }
551
+ tombstone(input) {
552
+ return this.db.transaction(() => {
553
+ this.lockLogicalHead(input, input.publishedAt);
554
+ const current = this.getHead(input);
555
+ if (current && this.compareHeadMutation({
556
+ versionId: null,
557
+ sourceUpdatedAt: input.sourceUpdatedAt,
558
+ contentSha256: null,
559
+ sizeBytes: null,
560
+ deletedAt: input.deletedAt,
561
+ }, current) <= 0) {
562
+ return current;
563
+ }
564
+ if (current?.versionId) {
565
+ this.retireVersion({
566
+ ...input,
567
+ versionId: current.versionId,
568
+ retiredAt: input.deletedAt,
569
+ gcAfter: input.retireGcAfter != null
570
+ ? addMilliseconds(input.retireGcAfter, 0, 'retireGcAfter')
571
+ : addMilliseconds(input.publishedAt, DEFAULT_RETIRED_RETENTION_MS, 'publishedAt'),
572
+ });
573
+ }
574
+ this.upsertHead({
575
+ ...input,
576
+ versionId: null,
577
+ contentSha256: null,
578
+ sizeBytes: null,
579
+ });
580
+ return this.requireHead(input);
581
+ })();
582
+ }
583
+ resolveHead(input) {
584
+ const head = this.getHead(input);
585
+ return head ? { source: 'versioned', head } : { source: 'legacy' };
586
+ }
587
+ getHead(input) {
588
+ const row = this.db.prepare(`
589
+ SELECT *
590
+ FROM workspace_sync_content_heads
591
+ WHERE tenant_id = ? AND workspace_id = ? AND kind = ? AND logical_path = ?
592
+ `).get(input.tenantId, input.workspaceId, input.kind, input.logicalPath);
593
+ return row ? mapHeadRow(row) : null;
594
+ }
595
+ listGcCandidates(input) {
596
+ const limit = Math.max(0, Math.floor(input.limit));
597
+ if (limit === 0) {
598
+ return [];
599
+ }
600
+ const rows = this.db.prepare(`
601
+ SELECT version.*
602
+ FROM workspace_sync_content_versions version
603
+ WHERE version.tenant_id = ?
604
+ AND version.workspace_id = ?
605
+ AND (
606
+ version.state IN ('ready', 'retired')
607
+ OR (
608
+ version.state = 'preparing'
609
+ AND (
610
+ version.preparation_lease_until IS NULL
611
+ OR version.preparation_lease_until <= ?
612
+ )
613
+ )
614
+ OR (
615
+ version.state = 'deleting'
616
+ AND (
617
+ version.gc_claim_lease_until IS NULL
618
+ OR version.gc_claim_lease_until <= ?
619
+ )
620
+ )
621
+ )
622
+ AND version.gc_after IS NOT NULL
623
+ AND version.gc_after <= ?
624
+ AND (version.gc_next_attempt_at IS NULL OR version.gc_next_attempt_at <= ?)
625
+ AND NOT EXISTS (
626
+ SELECT 1
627
+ FROM workspace_sync_content_heads head
628
+ WHERE head.tenant_id = version.tenant_id
629
+ AND head.workspace_id = version.workspace_id
630
+ AND head.version_id = version.version_id
631
+ )
632
+ ORDER BY version.gc_after ASC, version.version_id ASC
633
+ LIMIT ?
634
+ `).all(input.tenantId, input.workspaceId, input.now, input.now, input.now, input.now, limit);
635
+ return rows.map(mapVersionRow);
636
+ }
637
+ listAbandonedPreparations(input) {
638
+ const limit = Math.max(0, Math.floor(input.limit));
639
+ if (limit === 0)
640
+ return [];
641
+ const rows = this.db.prepare(`
642
+ SELECT version.*
643
+ FROM workspace_sync_content_versions version
644
+ WHERE version.tenant_id = ?
645
+ AND version.workspace_id = ?
646
+ AND version.state = 'preparing'
647
+ AND version.gc_after IS NOT NULL
648
+ AND version.gc_after <= ?
649
+ AND (
650
+ version.preparation_lease_until IS NULL
651
+ OR version.preparation_lease_until <= ?
652
+ )
653
+ AND NOT EXISTS (
654
+ SELECT 1
655
+ FROM workspace_sync_content_heads head
656
+ WHERE head.tenant_id = version.tenant_id
657
+ AND head.workspace_id = version.workspace_id
658
+ AND head.version_id = version.version_id
659
+ )
660
+ ORDER BY version.gc_after ASC, version.version_id ASC
661
+ LIMIT ?
662
+ `).all(input.tenantId, input.workspaceId, input.now, input.now, limit);
663
+ return rows.map(mapVersionRow);
664
+ }
665
+ isVersionReferenced(input) {
666
+ return Boolean(this.db.prepare(`
667
+ SELECT 1
668
+ FROM workspace_sync_content_heads
669
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
670
+ LIMIT 1
671
+ `).get(input.tenantId, input.workspaceId, input.versionId));
672
+ }
673
+ claimGcCandidate(input) {
674
+ return this.db.transaction(() => {
675
+ const initial = this.requireVersion(input);
676
+ this.lockLogicalHead(initial, input.claimedAt);
677
+ const version = this.requireVersion(input);
678
+ if (this.isVersionReferenced(input)) {
679
+ throw new WorkspaceSyncContentVersionReferencedError(input.versionId);
680
+ }
681
+ const claimedAt = Date.parse(requiredString(input.claimedAt, 'claimedAt'));
682
+ const gcClaimToken = requiredString(input.gcClaimToken, 'gcClaimToken');
683
+ const leaseUntil = addMilliseconds(input.leaseUntil, 0, 'leaseUntil');
684
+ const leaseUntilMs = Date.parse(leaseUntil);
685
+ const gcAfter = Date.parse(String(version.gcAfter || ''));
686
+ const retryAt = version.gcNextAttemptAt == null
687
+ ? null
688
+ : Date.parse(version.gcNextAttemptAt);
689
+ if (!Number.isFinite(claimedAt)
690
+ || leaseUntilMs <= claimedAt
691
+ || !Number.isFinite(gcAfter)
692
+ || gcAfter > claimedAt
693
+ || (retryAt != null && (!Number.isFinite(retryAt) || retryAt > claimedAt))) {
694
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} is not due for garbage collection.`);
695
+ }
696
+ const currentGcLeaseUntil = version.gcClaimLeaseUntil == null
697
+ ? null
698
+ : Date.parse(version.gcClaimLeaseUntil);
699
+ if (version.state === 'deleting'
700
+ && currentGcLeaseUntil != null
701
+ && (!Number.isFinite(currentGcLeaseUntil) || currentGcLeaseUntil > claimedAt)
702
+ && version.gcClaimToken !== gcClaimToken) {
703
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} already has an active garbage-collection claim.`);
704
+ }
705
+ if (version.state === 'preparing') {
706
+ const preparationLeaseUntil = version.preparationLeaseUntil == null
707
+ ? null
708
+ : Date.parse(version.preparationLeaseUntil);
709
+ if (preparationLeaseUntil != null
710
+ && (!Number.isFinite(preparationLeaseUntil) || preparationLeaseUntil > claimedAt)) {
711
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} still has an active preparation claim.`);
712
+ }
713
+ this.db.prepare(`
714
+ UPDATE workspace_sync_content_versions
715
+ SET state = 'deleting',
716
+ preparation_token = NULL,
717
+ preparation_lease_until = NULL,
718
+ gc_next_attempt_at = NULL,
719
+ gc_last_error = NULL,
720
+ gc_claim_token = ?,
721
+ gc_claim_lease_until = ?,
722
+ gc_completed_claim_token = NULL,
723
+ gc_quarantine_sweep_required = 1,
724
+ gc_final_sweep_after = NULL
725
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
726
+ AND state = 'preparing'
727
+ AND (
728
+ preparation_lease_until IS NULL
729
+ OR preparation_lease_until <= ?
730
+ )
731
+ `).run(gcClaimToken, leaseUntil, input.tenantId, input.workspaceId, input.versionId, input.claimedAt);
732
+ }
733
+ else if (version.state === 'ready' || version.state === 'retired') {
734
+ this.db.prepare(`
735
+ UPDATE workspace_sync_content_versions
736
+ SET state = 'deleting',
737
+ gc_next_attempt_at = NULL,
738
+ gc_last_error = NULL,
739
+ gc_claim_token = ?,
740
+ gc_claim_lease_until = ?,
741
+ gc_completed_claim_token = NULL,
742
+ gc_quarantine_sweep_required = 0,
743
+ gc_final_sweep_after = NULL
744
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ? AND state = ?
745
+ `).run(gcClaimToken, leaseUntil, input.tenantId, input.workspaceId, input.versionId, version.state);
746
+ }
747
+ else if (version.state === 'deleting') {
748
+ this.db.prepare(`
749
+ UPDATE workspace_sync_content_versions
750
+ SET gc_claim_token = ?,
751
+ gc_claim_lease_until = ?,
752
+ gc_next_attempt_at = NULL,
753
+ gc_last_error = NULL,
754
+ gc_completed_claim_token = NULL
755
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
756
+ AND state = 'deleting'
757
+ AND (
758
+ gc_claim_token = ?
759
+ OR gc_claim_lease_until IS NULL
760
+ OR gc_claim_lease_until <= ?
761
+ )
762
+ `).run(gcClaimToken, leaseUntil, input.tenantId, input.workspaceId, input.versionId, gcClaimToken, input.claimedAt);
763
+ }
764
+ else {
765
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} cannot enter garbage collection from state ${version.state}.`);
766
+ }
767
+ const claimed = this.requireVersion(input);
768
+ if (claimed.state !== 'deleting' || claimed.gcClaimToken !== gcClaimToken) {
769
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} garbage-collection claim was not acquired.`);
770
+ }
771
+ return claimed;
772
+ })();
773
+ }
774
+ recordGcFailure(input) {
775
+ const version = this.requireGcClaim(input);
776
+ const nextAttempt = new Date(Date.parse(input.failedAt) + Math.min(MAX_GC_BACKOFF_MS, 1_000 * (2 ** Math.min(version.gcAttemptCount, 16)))).toISOString();
777
+ const result = this.db.prepare(`
778
+ UPDATE workspace_sync_content_versions
779
+ SET gc_attempt_count = gc_attempt_count + 1,
780
+ gc_next_attempt_at = ?,
781
+ gc_last_error = ?,
782
+ gc_claim_token = NULL,
783
+ gc_claim_lease_until = NULL,
784
+ gc_completed_claim_token = NULL
785
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
786
+ AND state = 'deleting' AND gc_claim_token = ?
787
+ `).run(nextAttempt, requiredString(input.error, 'error'), input.tenantId, input.workspaceId, input.versionId, input.gcClaimToken);
788
+ if (Number(result.changes || 0) !== 1) {
789
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} garbage-collection failure claim was lost.`);
790
+ }
791
+ return this.requireVersion(input);
792
+ }
793
+ markDeleted(input) {
794
+ const version = this.requireVersion(input);
795
+ if (version.state === 'deleted') {
796
+ if (version.gcCompletedClaimToken === input.gcClaimToken) {
797
+ return version;
798
+ }
799
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} was completed by a different garbage-collection claim.`);
800
+ }
801
+ this.requireGcClaim(input);
802
+ const deletedAt = Date.parse(requiredString(input.deletedAt, 'deletedAt'));
803
+ const finalSweepAfter = version.gcFinalSweepAfter == null
804
+ ? null
805
+ : Date.parse(version.gcFinalSweepAfter);
806
+ if (!Number.isFinite(deletedAt) || (finalSweepAfter != null && !Number.isFinite(finalSweepAfter))) {
807
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} has invalid garbage-collection sweep timing.`);
808
+ }
809
+ if (version.gcQuarantineSweepRequired && finalSweepAfter == null) {
810
+ const scheduledFinalSweep = addMilliseconds(input.deletedAt, ABANDONED_PREPARATION_FINAL_SWEEP_DELAY_MS, 'deletedAt');
811
+ const quarantined = this.db.prepare(`
812
+ UPDATE workspace_sync_content_versions
813
+ SET gc_next_attempt_at = ?,
814
+ gc_last_error = NULL,
815
+ gc_claim_token = NULL,
816
+ gc_claim_lease_until = NULL,
817
+ gc_completed_claim_token = NULL,
818
+ gc_final_sweep_after = ?
819
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
820
+ AND state = 'deleting' AND gc_claim_token = ?
821
+ `).run(scheduledFinalSweep, scheduledFinalSweep, input.tenantId, input.workspaceId, input.versionId, input.gcClaimToken);
822
+ if (Number(quarantined.changes || 0) !== 1) {
823
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} garbage-collection quarantine claim was lost.`);
824
+ }
825
+ return this.requireVersion(input);
826
+ }
827
+ if (finalSweepAfter != null && finalSweepAfter > deletedAt) {
828
+ const deferred = this.db.prepare(`
829
+ UPDATE workspace_sync_content_versions
830
+ SET gc_next_attempt_at = ?,
831
+ gc_last_error = NULL,
832
+ gc_claim_token = NULL,
833
+ gc_claim_lease_until = NULL,
834
+ gc_completed_claim_token = NULL
835
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
836
+ AND state = 'deleting' AND gc_claim_token = ?
837
+ `).run(version.gcFinalSweepAfter, input.tenantId, input.workspaceId, input.versionId, input.gcClaimToken);
838
+ if (Number(deferred.changes || 0) !== 1) {
839
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} garbage-collection deferral claim was lost.`);
840
+ }
841
+ return this.requireVersion(input);
842
+ }
843
+ const result = this.db.prepare(`
844
+ UPDATE workspace_sync_content_versions
845
+ SET state = 'deleted',
846
+ deleted_at = ?,
847
+ gc_next_attempt_at = NULL,
848
+ gc_last_error = NULL,
849
+ gc_claim_token = NULL,
850
+ gc_claim_lease_until = NULL,
851
+ gc_completed_claim_token = ?,
852
+ gc_quarantine_sweep_required = 0,
853
+ gc_final_sweep_after = NULL
854
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
855
+ AND state = 'deleting' AND gc_claim_token = ?
856
+ `).run(input.deletedAt, input.gcClaimToken, input.tenantId, input.workspaceId, input.versionId, input.gcClaimToken);
857
+ if (Number(result.changes || 0) !== 1) {
858
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} garbage-collection completion claim was lost.`);
859
+ }
860
+ return this.requireVersion(input);
861
+ }
862
+ listPreparationAttemptGcCandidates(input) {
863
+ const limit = Math.max(0, Math.floor(input.limit));
864
+ if (limit === 0)
865
+ return [];
866
+ const rows = this.db.prepare(`
867
+ SELECT attempt.*
868
+ FROM workspace_sync_content_preparation_attempts attempt
869
+ WHERE attempt.tenant_id = ?
870
+ AND attempt.workspace_id = ?
871
+ AND attempt.state IN ('preparing', 'cleanup_pending', 'deleting')
872
+ AND attempt.available_after <= ?
873
+ AND (attempt.gc_next_attempt_at IS NULL OR attempt.gc_next_attempt_at <= ?)
874
+ AND (attempt.gc_claim_lease_until IS NULL OR attempt.gc_claim_lease_until <= ?)
875
+ AND NOT EXISTS (
876
+ SELECT 1
877
+ FROM workspace_sync_content_versions version
878
+ WHERE version.tenant_id = attempt.tenant_id
879
+ AND version.workspace_id = attempt.workspace_id
880
+ AND version.version_id = attempt.version_id
881
+ AND version.physical_key = attempt.physical_key
882
+ AND version.state <> 'deleted'
883
+ )
884
+ ORDER BY attempt.available_after ASC, attempt.version_id ASC, attempt.preparation_token ASC
885
+ LIMIT ?
886
+ `).all(input.tenantId, input.workspaceId, input.now, input.now, input.now, limit);
887
+ return rows.map(mapPreparationAttemptRow);
888
+ }
889
+ claimPreparationAttemptGc(input) {
890
+ const gcClaimToken = requiredString(input.gcClaimToken, 'gcClaimToken');
891
+ const claimedAt = addMilliseconds(input.claimedAt, 0, 'claimedAt');
892
+ const leaseUntil = addMilliseconds(input.leaseUntil, 0, 'leaseUntil');
893
+ if (Date.parse(leaseUntil) <= Date.parse(claimedAt)) {
894
+ throw new WorkspaceSyncContentVersionStateError('Preparation-attempt garbage-collection lease must end after it starts.');
895
+ }
896
+ const result = this.db.prepare(`
897
+ UPDATE workspace_sync_content_preparation_attempts
898
+ SET state = 'deleting',
899
+ gc_claim_token = ?,
900
+ gc_claim_lease_until = ?,
901
+ gc_next_attempt_at = NULL,
902
+ gc_last_error = NULL
903
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
904
+ AND preparation_token = ?
905
+ AND state IN ('preparing', 'cleanup_pending', 'deleting')
906
+ AND available_after <= ?
907
+ AND (gc_next_attempt_at IS NULL OR gc_next_attempt_at <= ?)
908
+ AND (
909
+ gc_claim_lease_until IS NULL
910
+ OR gc_claim_lease_until <= ?
911
+ OR gc_claim_token = ?
912
+ )
913
+ AND NOT EXISTS (
914
+ SELECT 1
915
+ FROM workspace_sync_content_versions version
916
+ WHERE version.tenant_id = workspace_sync_content_preparation_attempts.tenant_id
917
+ AND version.workspace_id = workspace_sync_content_preparation_attempts.workspace_id
918
+ AND version.version_id = workspace_sync_content_preparation_attempts.version_id
919
+ AND version.physical_key = workspace_sync_content_preparation_attempts.physical_key
920
+ AND version.state <> 'deleted'
921
+ )
922
+ `).run(gcClaimToken, leaseUntil, input.tenantId, input.workspaceId, input.versionId, input.preparationToken, claimedAt, claimedAt, claimedAt, gcClaimToken);
923
+ if (Number(result.changes || 0) !== 1) {
924
+ throw new WorkspaceSyncContentVersionStateError(`Preparation attempt ${input.preparationToken} is not eligible for garbage collection.`);
925
+ }
926
+ return this.requirePreparationAttempt(input);
927
+ }
928
+ recordPreparationAttemptGcFailure(input) {
929
+ const attempt = this.requirePreparationAttempt(input);
930
+ if (attempt.state !== 'deleting' || attempt.gcClaimToken !== input.gcClaimToken) {
931
+ throw new WorkspaceSyncContentVersionStateError(`Preparation attempt ${input.preparationToken} garbage-collection claim does not match.`);
932
+ }
933
+ const nextAttemptAt = new Date(Date.parse(input.failedAt) + Math.min(MAX_GC_BACKOFF_MS, 1_000 * (2 ** Math.min(attempt.gcAttemptCount, 16)))).toISOString();
934
+ const result = this.db.prepare(`
935
+ UPDATE workspace_sync_content_preparation_attempts
936
+ SET state = 'cleanup_pending',
937
+ gc_attempt_count = gc_attempt_count + 1,
938
+ gc_next_attempt_at = ?,
939
+ gc_last_error = ?,
940
+ gc_claim_token = NULL,
941
+ gc_claim_lease_until = NULL
942
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
943
+ AND preparation_token = ? AND gc_claim_token = ?
944
+ `).run(nextAttemptAt, requiredString(input.error, 'error'), input.tenantId, input.workspaceId, input.versionId, input.preparationToken, input.gcClaimToken);
945
+ if (Number(result.changes || 0) !== 1) {
946
+ throw new WorkspaceSyncContentVersionStateError(`Preparation attempt ${input.preparationToken} garbage-collection failure claim was lost.`);
947
+ }
948
+ return this.requirePreparationAttempt(input);
949
+ }
950
+ completePreparationAttemptGc(input) {
951
+ const existing = this.requirePreparationAttempt(input);
952
+ if (existing.state === 'deleted'
953
+ && existing.gcCompletedClaimToken === input.gcClaimToken) {
954
+ return;
955
+ }
956
+ const result = this.db.prepare(`
957
+ UPDATE workspace_sync_content_preparation_attempts
958
+ SET state = 'deleted',
959
+ deleted_at = ?,
960
+ gc_next_attempt_at = NULL,
961
+ gc_last_error = NULL,
962
+ gc_claim_token = NULL,
963
+ gc_claim_lease_until = NULL,
964
+ gc_completed_claim_token = ?
965
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
966
+ AND preparation_token = ? AND state = 'deleting' AND gc_claim_token = ?
967
+ `).run(addMilliseconds(input.deletedAt, 0, 'deletedAt'), input.gcClaimToken, input.tenantId, input.workspaceId, input.versionId, input.preparationToken, input.gcClaimToken);
968
+ if (Number(result.changes || 0) !== 1) {
969
+ throw new WorkspaceSyncContentVersionStateError(`Preparation attempt ${input.preparationToken} garbage-collection completion claim was lost.`);
970
+ }
971
+ }
972
+ requireVersion(input) {
973
+ const version = this.getVersion(input);
974
+ if (!version) {
975
+ throw new WorkspaceSyncContentVersionStateError(`Workspace sync content version ${input.versionId} was not found.`);
976
+ }
977
+ return version;
978
+ }
979
+ requirePreparationAttempt(input) {
980
+ const row = this.db.prepare(`
981
+ SELECT *
982
+ FROM workspace_sync_content_preparation_attempts
983
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
984
+ AND preparation_token = ?
985
+ `).get(input.tenantId, input.workspaceId, input.versionId, input.preparationToken);
986
+ if (!row) {
987
+ throw new WorkspaceSyncContentVersionStateError(`Preparation attempt ${input.preparationToken} does not exist.`);
988
+ }
989
+ return mapPreparationAttemptRow(row);
990
+ }
991
+ lockLogicalHead(input, updatedAt) {
992
+ const domain = `content-head:${createHash('sha256')
993
+ .update(canonicalWorkspaceSyncJson({ kind: input.kind, logicalPath: input.logicalPath }), 'utf8')
994
+ .digest('hex')}`;
995
+ this.db.prepare(`
996
+ INSERT INTO workspace_sync_domain_locks (
997
+ tenant_id, workspace_id, domain, updated_at
998
+ ) VALUES (?, ?, ?, ?)
999
+ ON CONFLICT (tenant_id, workspace_id, domain) DO UPDATE SET
1000
+ updated_at = excluded.updated_at
1001
+ `).run(input.tenantId, input.workspaceId, domain, updatedAt);
1002
+ if (this.db.provider === 'postgres') {
1003
+ this.db.prepare(`
1004
+ SELECT domain
1005
+ FROM workspace_sync_domain_locks
1006
+ WHERE tenant_id = ? AND workspace_id = ? AND domain = ?
1007
+ FOR UPDATE
1008
+ `).get(input.tenantId, input.workspaceId, domain);
1009
+ }
1010
+ }
1011
+ requireGcClaim(input) {
1012
+ const version = this.requireVersion(input);
1013
+ if (this.isVersionReferenced(input)) {
1014
+ throw new WorkspaceSyncContentVersionReferencedError(input.versionId);
1015
+ }
1016
+ if (version.state !== 'deleting') {
1017
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} has not been claimed for garbage collection.`);
1018
+ }
1019
+ if (version.gcClaimToken !== input.gcClaimToken) {
1020
+ throw new WorkspaceSyncContentVersionStateError(`Content version ${input.versionId} garbage-collection claim does not match.`);
1021
+ }
1022
+ return version;
1023
+ }
1024
+ retireVersion(input) {
1025
+ const version = this.requireVersion(input);
1026
+ if (version.state !== 'published' && version.state !== 'retired') {
1027
+ throw new WorkspaceSyncContentVersionStateError(`Cannot retire content version ${input.versionId} from state ${version.state}.`);
1028
+ }
1029
+ this.db.prepare(`
1030
+ UPDATE workspace_sync_content_versions
1031
+ SET state = 'retired',
1032
+ retired_at = COALESCE(retired_at, ?),
1033
+ gc_after = COALESCE(gc_after, ?)
1034
+ WHERE tenant_id = ? AND workspace_id = ? AND version_id = ?
1035
+ `).run(input.retiredAt, input.gcAfter, input.tenantId, input.workspaceId, input.versionId);
1036
+ }
1037
+ upsertHead(input) {
1038
+ this.db.prepare(`
1039
+ INSERT INTO workspace_sync_content_heads (
1040
+ tenant_id, workspace_id, kind, logical_path, version_id,
1041
+ source_updated_at, content_sha256, size_bytes, published_at, deleted_at
1042
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
1043
+ ON CONFLICT (tenant_id, workspace_id, kind, logical_path) DO UPDATE SET
1044
+ version_id = excluded.version_id,
1045
+ source_updated_at = excluded.source_updated_at,
1046
+ content_sha256 = excluded.content_sha256,
1047
+ size_bytes = excluded.size_bytes,
1048
+ published_at = excluded.published_at,
1049
+ deleted_at = excluded.deleted_at
1050
+ `).run(input.tenantId, input.workspaceId, input.kind, input.logicalPath, input.versionId, input.sourceUpdatedAt, input.contentSha256, input.sizeBytes, input.publishedAt, input.deletedAt);
1051
+ }
1052
+ requireHead(input) {
1053
+ const head = this.getHead(input);
1054
+ if (!head) {
1055
+ throw new Error(`Workspace sync content head ${input.kind}:${input.logicalPath} was not written.`);
1056
+ }
1057
+ return head;
1058
+ }
1059
+ compareHeadMutation(incoming, existing) {
1060
+ const tieBreak = (value) => canonicalWorkspaceSyncJson({
1061
+ versionId: value.versionId,
1062
+ contentSha256: value.contentSha256,
1063
+ sizeBytes: value.sizeBytes,
1064
+ deletedAt: value.deletedAt,
1065
+ });
1066
+ return compareWorkspaceMutationOrdering(incoming.sourceUpdatedAt, existing.sourceUpdatedAt, tieBreak(incoming), tieBreak(existing));
1067
+ }
1068
+ }