@taskforcehq/taskforce 0.3.326 → 0.3.328

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1382) hide show
  1. package/LICENSE.md +68 -0
  2. package/README.md +19 -0
  3. package/dist/Taskforce.module.css +2168 -585
  4. package/dist/TaskforceCore.d.ts +1 -0
  5. package/dist/TaskforceCore.js +65 -22
  6. package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.d.ts +1 -0
  7. package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.js +3 -2
  8. package/dist/annotatedAttachments/commandService.d.ts +68 -0
  9. package/dist/annotatedAttachments/commandService.js +348 -0
  10. package/dist/annotatedAttachments/service.d.ts +2 -0
  11. package/dist/annotatedAttachments/service.js +13 -12
  12. package/dist/cli.js +158 -9
  13. package/dist/cliOpenPort.d.ts +1 -0
  14. package/dist/cliOpenPort.js +4 -0
  15. package/dist/compat/taskforceAgentDefinitionCompat.d.ts +12 -0
  16. package/dist/compat/taskforceAgentDefinitionCompat.js +25 -0
  17. package/dist/compat/workspaceSyncCompat.js +6 -2
  18. package/dist/compat/workspaceSyncV3CombinedCoverageCompat.d.ts +6 -0
  19. package/dist/compat/workspaceSyncV3CombinedCoverageCompat.js +22 -0
  20. package/dist/compat/workspaceSyncV3OperationCompat.d.ts +7 -0
  21. package/dist/compat/workspaceSyncV3OperationCompat.js +30 -0
  22. package/dist/components/activity/EntityActivityTimeline.d.ts +10 -2
  23. package/dist/components/activity/EntityActivityTimeline.js +83 -35
  24. package/dist/components/context/AttachmentPreviewHost.d.ts +6 -0
  25. package/dist/components/context/AttachmentPreviewHost.js +222 -0
  26. package/dist/components/context/ContextAttachmentManager.d.ts +7 -0
  27. package/dist/components/context/ContextAttachmentManager.js +514 -208
  28. package/dist/components/features/AiProfilesModule.d.ts +24 -0
  29. package/dist/components/features/AiProfilesModule.js +744 -0
  30. package/dist/components/features/AnnotatedAttachmentWorkspace.d.ts +4 -1
  31. package/dist/components/features/AnnotatedAttachmentWorkspace.js +351 -79
  32. package/dist/components/features/DocumentGenerateModal.js +23 -5
  33. package/dist/components/features/DocumentIndex.d.ts +19 -1
  34. package/dist/components/features/DocumentIndex.js +104 -15
  35. package/dist/components/features/DocumentViewer.d.ts +9 -1
  36. package/dist/components/features/DocumentViewer.js +721 -100
  37. package/dist/components/features/DocumentWorkspace.d.ts +37 -2
  38. package/dist/components/features/DocumentWorkspace.js +21 -6
  39. package/dist/components/features/TaskSettings.d.ts +6 -27
  40. package/dist/components/features/TaskSettings.js +232 -143
  41. package/dist/components/features/TaskforceAgentsModule.d.ts +36 -0
  42. package/dist/components/features/TaskforceAgentsModule.js +1782 -0
  43. package/dist/components/features/agentBehavior/AgentBehaviorManagerShared.d.ts +94 -0
  44. package/dist/components/features/agentBehavior/AgentBehaviorManagerShared.js +70 -0
  45. package/dist/components/features/agentCapabilities/AgentCapabilitiesPrototype.d.ts +65 -0
  46. package/dist/components/features/agentCapabilities/AgentCapabilitiesPrototype.js +115 -0
  47. package/dist/components/features/agentRoles/RoleManagerPanel.d.ts +4 -0
  48. package/dist/components/features/agentRoles/RoleManagerPanel.js +382 -0
  49. package/dist/components/features/agentSkills/SkillManagerPanel.d.ts +5 -0
  50. package/dist/components/features/agentSkills/SkillManagerPanel.js +355 -0
  51. package/dist/components/features/documentWorkspaceModel.d.ts +16 -4
  52. package/dist/components/features/documentWorkspaceModel.js +30 -5
  53. package/dist/components/features/planning/PlanningArchiveConfirmation.d.ts +9 -0
  54. package/dist/components/features/planning/PlanningArchiveConfirmation.js +19 -0
  55. package/dist/components/features/planning/PlanningCardIdentity.d.ts +12 -0
  56. package/dist/components/features/planning/PlanningCardIdentity.js +44 -0
  57. package/dist/components/features/planning/PlanningEntityDetails.d.ts +36 -0
  58. package/dist/components/features/planning/PlanningEntityDetails.js +131 -0
  59. package/dist/components/features/planning/PlanningEntitySummary.d.ts +46 -0
  60. package/dist/components/features/planning/PlanningEntitySummary.js +98 -0
  61. package/dist/components/features/planning/PlanningLinkPicker.d.ts +11 -0
  62. package/dist/components/features/planning/PlanningLinkPicker.js +28 -0
  63. package/dist/components/features/planning/PlanningModule.d.ts +6 -0
  64. package/dist/components/features/planning/PlanningModule.js +588 -0
  65. package/dist/components/features/planning/PlanningOwnerDropdown.d.ts +27 -0
  66. package/dist/components/features/planning/PlanningOwnerDropdown.js +80 -0
  67. package/dist/components/features/planning/PlanningTaskArrangeControl.d.ts +5 -0
  68. package/dist/components/features/planning/PlanningTaskArrangeControl.js +11 -0
  69. package/dist/components/features/planning/PlanningTaskCard.d.ts +20 -0
  70. package/dist/components/features/planning/PlanningTaskCard.js +26 -0
  71. package/dist/components/features/planning/PlanningTaskOrderList.d.ts +10 -0
  72. package/dist/components/features/planning/PlanningTaskOrderList.js +52 -0
  73. package/dist/components/features/planning/PlanningUnlinkConfirmation.d.ts +15 -0
  74. package/dist/components/features/planning/PlanningUnlinkConfirmation.js +7 -0
  75. package/dist/components/features/planning/PlanningVisualIdentity.d.ts +14 -0
  76. package/dist/components/features/planning/PlanningVisualIdentity.js +106 -0
  77. package/dist/components/features/planning/planningCreateIntent.d.ts +10 -0
  78. package/dist/components/features/planning/planningCreateIntent.js +16 -0
  79. package/dist/components/features/planning/planningNavigator.d.ts +33 -0
  80. package/dist/components/features/planning/planningNavigator.js +96 -0
  81. package/dist/components/features/planning/planningTaskArrangement.d.ts +18 -0
  82. package/dist/components/features/planning/planningTaskArrangement.js +106 -0
  83. package/dist/components/features/planning/planningWorkspaceModel.d.ts +132 -0
  84. package/dist/components/features/planning/planningWorkspaceModel.js +5 -0
  85. package/dist/components/features/settings/CategoryManager.js +2 -2
  86. package/dist/components/features/settings/TaxonomyEditor.js +1 -1
  87. package/dist/components/features/settings/TaxonomyManager.js +1 -1
  88. package/dist/components/features/settings/TypeManager.js +1 -1
  89. package/dist/components/features/taskforceAgentAssignments/AgentBehaviorAssignments.d.ts +10 -0
  90. package/dist/components/features/taskforceAgentAssignments/AgentBehaviorAssignments.js +175 -0
  91. package/dist/components/features/taskforceAgentAssignments/agentBehaviorCatalogApi.d.ts +27 -0
  92. package/dist/components/features/taskforceAgentAssignments/agentBehaviorCatalogApi.js +24 -0
  93. package/dist/components/features/taskforceAgentEditorModel.d.ts +109 -0
  94. package/dist/components/features/taskforceAgentEditorModel.js +145 -0
  95. package/dist/components/features/useDocumentWorkspaceController.d.ts +20 -1
  96. package/dist/components/features/useDocumentWorkspaceController.js +106 -21
  97. package/dist/components/features/workflowManager/WorkflowManagerModule.d.ts +11 -0
  98. package/dist/components/features/workflowManager/WorkflowManagerModule.js +313 -0
  99. package/dist/components/features/workflowManager/WorkflowPublishDialog.d.ts +11 -0
  100. package/dist/components/features/workflowManager/WorkflowPublishDialog.js +8 -0
  101. package/dist/components/features/workflowManager/types.d.ts +74 -0
  102. package/dist/components/features/workflowManager/types.js +1 -0
  103. package/dist/components/features/workflowManager/useWorkflowManager.d.ts +30 -0
  104. package/dist/components/features/workflowManager/useWorkflowManager.js +213 -0
  105. package/dist/components/features/workflowManager/workflowManagerApi.d.ts +52 -0
  106. package/dist/components/features/workflowManager/workflowManagerApi.js +142 -0
  107. package/dist/components/task/TaskActionHeader.d.ts +7 -3
  108. package/dist/components/task/TaskActionHeader.js +46 -53
  109. package/dist/components/task/TaskCard.d.ts +10 -2
  110. package/dist/components/task/TaskCard.js +138 -56
  111. package/dist/components/task/TaskContextUpload.d.ts +4 -0
  112. package/dist/components/task/TaskContextUpload.js +3 -2
  113. package/dist/components/task/TaskForm.d.ts +16 -17
  114. package/dist/components/task/TaskForm.js +569 -199
  115. package/dist/components/task/TaskImageReviews.d.ts +8 -0
  116. package/dist/components/task/TaskImageReviews.js +47 -0
  117. package/dist/components/task/TaskKanban.d.ts +9 -10
  118. package/dist/components/task/TaskKanban.js +70 -18
  119. package/dist/components/task/TaskList.d.ts +9 -8
  120. package/dist/components/task/TaskList.js +46 -32
  121. package/dist/components/task/TaskReferenceBadge.d.ts +2 -1
  122. package/dist/components/task/TaskReferenceBadge.js +3 -2
  123. package/dist/components/task/TaskStatusActions.d.ts +3 -1
  124. package/dist/components/task/TaskStatusActions.js +27 -7
  125. package/dist/components/task/TaskWorkflowAssignmentField.d.ts +18 -0
  126. package/dist/components/task/TaskWorkflowAssignmentField.js +362 -0
  127. package/dist/components/task/TaskWorkstreamPicker.d.ts +8 -0
  128. package/dist/components/task/TaskWorkstreamPicker.js +25 -0
  129. package/dist/components/task/TrashRestoreControls.d.ts +18 -0
  130. package/dist/components/task/TrashRestoreControls.js +71 -0
  131. package/dist/components/ui/AiIdentityRosterCard.d.ts +20 -0
  132. package/dist/components/ui/AiIdentityRosterCard.js +5 -0
  133. package/dist/components/ui/AssetTraySortControl.d.ts +10 -0
  134. package/dist/components/ui/AssetTraySortControl.js +38 -0
  135. package/dist/components/ui/AssigneeIdentity.d.ts +12 -0
  136. package/dist/components/ui/AssigneeIdentity.js +41 -0
  137. package/dist/components/ui/DiscardChangesDialog.d.ts +10 -0
  138. package/dist/components/ui/DiscardChangesDialog.js +7 -0
  139. package/dist/components/ui/DisclosureSectionHeader.d.ts +4 -1
  140. package/dist/components/ui/DisclosureSectionHeader.js +2 -2
  141. package/dist/components/ui/DocumentTypeIcon.d.ts +7 -0
  142. package/dist/components/ui/DocumentTypeIcon.js +8 -0
  143. package/dist/components/ui/EditableAvatarButton.d.ts +6 -1
  144. package/dist/components/ui/EditableAvatarButton.js +6 -5
  145. package/dist/components/ui/HierarchyActionBadge.d.ts +2 -1
  146. package/dist/components/ui/HierarchyActionBadge.js +2 -2
  147. package/dist/components/ui/Markdown.d.ts +13 -3
  148. package/dist/components/ui/Markdown.fixture.d.ts +1 -0
  149. package/dist/components/ui/Markdown.fixture.js +23 -0
  150. package/dist/components/ui/Markdown.js +158 -68
  151. package/dist/components/ui/Modal.d.ts +3 -1
  152. package/dist/components/ui/Modal.js +85 -19
  153. package/dist/components/ui/MultiSelectFilter.d.ts +9 -2
  154. package/dist/components/ui/MultiSelectFilter.js +26 -5
  155. package/dist/components/ui/ReferenceBadgeButton.js +2 -3
  156. package/dist/components/ui/TaxonomyDropdown.d.ts +18 -1
  157. package/dist/components/ui/TaxonomyDropdown.js +177 -59
  158. package/dist/components/ui/TopNoticeLayer.d.ts +2 -1
  159. package/dist/components/ui/TopNoticeLayer.js +5 -2
  160. package/dist/components/ui/useFallbackImageUrl.d.ts +4 -0
  161. package/dist/components/ui/useFallbackImageUrl.js +20 -0
  162. package/dist/components/views/AppShellHeader.js +2 -2
  163. package/dist/components/views/StandaloneLayout.d.ts +1 -0
  164. package/dist/components/views/StandaloneLayout.js +1717 -600
  165. package/dist/components/views/WidgetView.d.ts +1 -0
  166. package/dist/components/views/WidgetView.js +99 -31
  167. package/dist/components/views/chrome/WorkspaceChromeSections.d.ts +4 -2
  168. package/dist/components/views/chrome/WorkspaceChromeSections.js +3 -6
  169. package/dist/components/views/chrome/workspaceChrome.d.ts +5 -8
  170. package/dist/components/views/chrome/workspaceChrome.js +62 -27
  171. package/dist/components/views/panels/FilterToolbar.d.ts +4 -3
  172. package/dist/components/views/panels/FilterToolbar.js +8 -5
  173. package/dist/components/views/panels/FilterToolbarControls.d.ts +11 -2
  174. package/dist/components/views/panels/FilterToolbarControls.js +35 -20
  175. package/dist/components/views/panels/PlanningDrawer.d.ts +66 -49
  176. package/dist/components/views/panels/PlanningDrawer.js +983 -314
  177. package/dist/components/views/planningScope.js +7 -1
  178. package/dist/components/views/standalone/modals/AccountSettingsModal.d.ts +62 -0
  179. package/dist/components/views/standalone/modals/AccountSettingsModal.js +197 -0
  180. package/dist/components/views/standalone/modals/AvatarImageManagerModal.d.ts +7 -2
  181. package/dist/components/views/standalone/modals/AvatarImageManagerModal.js +56 -9
  182. package/dist/components/views/standalone/modals/HelpModal.d.ts +1 -2
  183. package/dist/components/views/standalone/modals/HelpModal.js +3 -4
  184. package/dist/components/views/standalone/modals/SyncStatusModal.d.ts +8 -9
  185. package/dist/components/views/standalone/modals/SyncStatusModal.js +85 -25
  186. package/dist/components/views/standalone/modals/TeamManagementModal.js +1 -1
  187. package/dist/config/applicationBaseUrl.d.ts +2 -0
  188. package/dist/config/applicationBaseUrl.js +23 -0
  189. package/dist/config/envSchema.d.ts +1 -1
  190. package/dist/config/envSchema.js +167 -5
  191. package/dist/config/localServiceCloudTarget.d.ts +10 -0
  192. package/dist/config/localServiceCloudTarget.js +76 -0
  193. package/dist/core/AdminAuditRetentionService.d.ts +43 -0
  194. package/dist/core/AdminAuditRetentionService.js +126 -0
  195. package/dist/core/AiProfileService.d.ts +35 -0
  196. package/dist/core/AiProfileService.js +511 -251
  197. package/dist/core/AttachmentLinkService.d.ts +10 -2
  198. package/dist/core/AttachmentLinkService.js +50 -15
  199. package/dist/core/AuthIdentityService.d.ts +6 -0
  200. package/dist/core/AuthIdentityService.js +38 -0
  201. package/dist/core/AuthTokenService.d.ts +1 -0
  202. package/dist/core/AuthTokenService.js +13 -0
  203. package/dist/core/DeletedTaskLifecycleService.d.ts +8 -2
  204. package/dist/core/DeletedTaskLifecycleService.js +145 -38
  205. package/dist/core/GlobalSettingsService.d.ts +3 -1
  206. package/dist/core/GlobalSettingsService.js +30 -4
  207. package/dist/core/InitiativeDurableMutationService.d.ts +89 -0
  208. package/dist/core/InitiativeDurableMutationService.js +187 -0
  209. package/dist/core/McpTokenService.d.ts +5 -0
  210. package/dist/core/McpTokenService.js +91 -13
  211. package/dist/core/PlanningCommandPreparationService.d.ts +60 -0
  212. package/dist/core/PlanningCommandPreparationService.js +149 -0
  213. package/dist/core/ScheduleCommandService.d.ts +76 -0
  214. package/dist/core/ScheduleCommandService.js +165 -0
  215. package/dist/core/SyncReconciliationService.d.ts +29 -6
  216. package/dist/core/SyncReconciliationService.js +256 -84
  217. package/dist/core/TaskActivityService.d.ts +22 -2
  218. package/dist/core/TaskActivityService.js +177 -29
  219. package/dist/core/TaskAttachmentLinksDurableMutationService.d.ts +36 -0
  220. package/dist/core/TaskAttachmentLinksDurableMutationService.js +240 -0
  221. package/dist/core/TaskChecklistCommandService.d.ts +50 -0
  222. package/dist/core/TaskChecklistCommandService.js +111 -0
  223. package/dist/core/TaskDurableCreateMutationService.d.ts +38 -0
  224. package/dist/core/TaskDurableCreateMutationService.js +85 -0
  225. package/dist/core/TaskDurableDeleteMutationService.d.ts +47 -0
  226. package/dist/core/TaskDurableDeleteMutationService.js +54 -0
  227. package/dist/core/TaskDurableLifecycleMutationService.d.ts +38 -0
  228. package/dist/core/TaskDurableLifecycleMutationService.js +42 -0
  229. package/dist/core/TaskDurableRelationshipMutationService.d.ts +58 -0
  230. package/dist/core/TaskDurableRelationshipMutationService.js +66 -0
  231. package/dist/core/TaskDurableRestoreMutationService.d.ts +31 -0
  232. package/dist/core/TaskDurableRestoreMutationService.js +33 -0
  233. package/dist/core/TaskDurableStatusMutationService.d.ts +74 -0
  234. package/dist/core/TaskDurableStatusMutationService.js +247 -0
  235. package/dist/core/TaskDurableSyncMutationService.d.ts +34 -0
  236. package/dist/core/TaskDurableSyncMutationService.js +70 -0
  237. package/dist/core/TaskDurableWorkflowMutationService.d.ts +48 -0
  238. package/dist/core/TaskDurableWorkflowMutationService.js +59 -0
  239. package/dist/core/TaskLifecycleCommandService.d.ts +101 -0
  240. package/dist/core/TaskLifecycleCommandService.js +161 -0
  241. package/dist/core/TaskRootCommandPreparationService.d.ts +35 -0
  242. package/dist/core/TaskRootCommandPreparationService.js +103 -0
  243. package/dist/core/Taskforce.d.ts +542 -60
  244. package/dist/core/Taskforce.js +4220 -905
  245. package/dist/core/WorkflowAssignmentService.d.ts +40 -0
  246. package/dist/core/WorkflowAssignmentService.js +158 -0
  247. package/dist/core/WorkflowExecutionService.d.ts +69 -0
  248. package/dist/core/WorkflowExecutionService.js +342 -0
  249. package/dist/core/WorkflowTaskActivationService.d.ts +32 -0
  250. package/dist/core/WorkflowTaskActivationService.js +63 -0
  251. package/dist/core/WorkflowTemplateService.d.ts +64 -0
  252. package/dist/core/WorkflowTemplateService.js +223 -0
  253. package/dist/core/WorkspaceLifecycleService.d.ts +1 -0
  254. package/dist/core/WorkspaceLifecycleService.js +18 -0
  255. package/dist/core/WorkstreamDurableMutationService.d.ts +90 -0
  256. package/dist/core/WorkstreamDurableMutationService.js +184 -0
  257. package/dist/core/planningReferencePolicy.d.ts +14 -0
  258. package/dist/core/planningReferencePolicy.js +53 -0
  259. package/dist/core/taskReferencePolicy.js +24 -3
  260. package/dist/core/types.d.ts +12 -11
  261. package/dist/documentReviews/DocumentReviewCommentStore.d.ts +33 -2
  262. package/dist/documentReviews/DocumentReviewCommentStore.js +125 -8
  263. package/dist/documentReviews/commandService.d.ts +51 -0
  264. package/dist/documentReviews/commandService.js +63 -0
  265. package/dist/documentReviews/service.d.ts +24 -1
  266. package/dist/documentReviews/service.js +354 -49
  267. package/dist/documentReviews/types.d.ts +18 -1
  268. package/dist/hooks/sync/bootstrap.d.ts +3 -7
  269. package/dist/hooks/sync/bootstrap.js +6 -14
  270. package/dist/hooks/sync/browserSyncAuthority.d.ts +21 -0
  271. package/dist/hooks/sync/browserSyncAuthority.js +70 -0
  272. package/dist/hooks/sync/browserSyncRemoteServices.d.ts +29 -0
  273. package/dist/hooks/sync/browserSyncRemoteServices.js +58 -0
  274. package/dist/hooks/sync/controlPlane.d.ts +1 -37
  275. package/dist/hooks/sync/controlPlane.js +1 -78
  276. package/dist/hooks/sync/lifecyclePolicy.d.ts +1 -45
  277. package/dist/hooks/sync/lifecyclePolicy.js +1 -93
  278. package/dist/hooks/sync/orchestratorShared.d.ts +9 -3
  279. package/dist/hooks/sync/orchestratorShared.js +70 -96
  280. package/dist/hooks/sync/pullLifecycle.d.ts +1 -31
  281. package/dist/hooks/sync/pullLifecycle.js +1 -24
  282. package/dist/hooks/sync/realtime.d.ts +4 -1
  283. package/dist/hooks/sync/realtime.js +103 -3
  284. package/dist/hooks/sync/recovery.d.ts +1 -84
  285. package/dist/hooks/sync/recovery.js +1 -245
  286. package/dist/hooks/sync/transfers.d.ts +8 -129
  287. package/dist/hooks/sync/transfers.js +19 -581
  288. package/dist/hooks/sync/useDataVersionRefresh.d.ts +6 -1
  289. package/dist/hooks/sync/useDataVersionRefresh.js +127 -12
  290. package/dist/hooks/sync/useDurableLocalOutboxDrain.d.ts +14 -0
  291. package/dist/hooks/sync/useDurableLocalOutboxDrain.js +208 -0
  292. package/dist/hooks/sync/useDurableTaskCreateMutation.d.ts +15 -0
  293. package/dist/hooks/sync/useDurableTaskCreateMutation.js +152 -0
  294. package/dist/hooks/sync/useDurableTaskDeleteMutation.d.ts +11 -0
  295. package/dist/hooks/sync/useDurableTaskDeleteMutation.js +21 -0
  296. package/dist/hooks/sync/useDurableTaskLifecycleMutation.d.ts +12 -0
  297. package/dist/hooks/sync/useDurableTaskLifecycleMutation.js +22 -0
  298. package/dist/hooks/sync/useDurableTaskMetadataMutation.d.ts +14 -0
  299. package/dist/hooks/sync/useDurableTaskMetadataMutation.js +24 -0
  300. package/dist/hooks/sync/useDurableTaskRestoreMutation.d.ts +12 -0
  301. package/dist/hooks/sync/useDurableTaskRestoreMutation.js +24 -0
  302. package/dist/hooks/sync/useDurableTaskStatusMutation.d.ts +18 -0
  303. package/dist/hooks/sync/useDurableTaskStatusMutation.js +23 -0
  304. package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.d.ts +23 -0
  305. package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.js +414 -0
  306. package/dist/hooks/sync/useSyncStatusActions.d.ts +2 -1
  307. package/dist/hooks/sync/useSyncStatusActions.js +8 -3
  308. package/dist/hooks/tasks/taskHttpMutation.d.ts +25 -0
  309. package/dist/hooks/tasks/taskHttpMutation.js +134 -0
  310. package/dist/hooks/tasks/useCurrentTaskRelations.d.ts +6 -1
  311. package/dist/hooks/tasks/useCurrentTaskRelations.js +32 -6
  312. package/dist/hooks/tasks/useTaskEditorNavigation.d.ts +4 -3
  313. package/dist/hooks/tasks/useTaskEditorNavigation.js +9 -13
  314. package/dist/hooks/tasks/useTaskFormActions.d.ts +20 -2
  315. package/dist/hooks/tasks/useTaskFormActions.js +339 -59
  316. package/dist/hooks/tasks/useTaskReferenceContract.d.ts +5 -0
  317. package/dist/hooks/tasks/useTaskReferenceContract.js +17 -0
  318. package/dist/hooks/tasks/useTaskRelationships.d.ts +1 -3
  319. package/dist/hooks/tasks/useTaskRelationships.js +5 -25
  320. package/dist/hooks/tasks/useTrashSelection.d.ts +12 -0
  321. package/dist/hooks/tasks/useTrashSelection.js +49 -0
  322. package/dist/hooks/ui/useInitiativeTemplates.d.ts +24 -0
  323. package/dist/hooks/ui/useInitiativeTemplates.js +22 -0
  324. package/dist/hooks/ui/useSettingsModel.d.ts +5 -29
  325. package/dist/hooks/ui/useSettingsModel.js +31 -15
  326. package/dist/hooks/ui/useSettingsPersistence.d.ts +0 -1
  327. package/dist/hooks/ui/useSettingsPersistence.js +4 -8
  328. package/dist/hooks/ui/useSettingsTaxonomyManagement.js +31 -0
  329. package/dist/hooks/useFilterSort.d.ts +2 -2
  330. package/dist/hooks/useFilterSort.js +19 -15
  331. package/dist/hooks/useRealtimeSync.d.ts +10 -0
  332. package/dist/hooks/useRealtimeSync.js +57 -4
  333. package/dist/hooks/useSyncOrchestrator.d.ts +32 -1
  334. package/dist/hooks/useSyncOrchestrator.js +963 -287
  335. package/dist/hooks/useTaskData.d.ts +11 -2
  336. package/dist/hooks/useTaskData.js +59 -26
  337. package/dist/hooks/useTaskMutations.d.ts +42 -5
  338. package/dist/hooks/useTaskMutations.js +750 -125
  339. package/dist/hooks/useTaskforce.d.ts +79 -74
  340. package/dist/hooks/useTaskforce.js +1205 -450
  341. package/dist/hooks/useUiNotice.d.ts +5 -1
  342. package/dist/hooks/useUiNotice.js +13 -2
  343. package/dist/hooks/useWorkspaceSyncController.d.ts +9 -0
  344. package/dist/hooks/useWorkspaceSyncController.js +159 -17
  345. package/dist/hooks/workspace/usePersistedAppUiState.d.ts +74 -0
  346. package/dist/hooks/workspace/usePersistedAppUiState.js +325 -0
  347. package/dist/hooks/workspace/usePersistedLayoutUiState.d.ts +76 -0
  348. package/dist/hooks/workspace/usePersistedLayoutUiState.js +479 -0
  349. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.d.ts +2 -7
  350. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +42 -31
  351. package/dist/hooks/workspace/workspaceLocalState.d.ts +17 -6
  352. package/dist/hooks/workspace/workspaceLocalState.js +175 -5
  353. package/dist/hooks/workstreams/workstreamHttpMutation.d.ts +23 -0
  354. package/dist/hooks/workstreams/workstreamHttpMutation.js +134 -0
  355. package/dist/localization/locales/en-US.d.ts +3 -3
  356. package/dist/localization/locales/en-US.js +3 -3
  357. package/dist/localization/locales/es-419.js +3 -3
  358. package/dist/localization/locales/pt-BR.js +3 -3
  359. package/dist/mcp/adminWorkspaceRegistrar.js +2 -30
  360. package/dist/mcp/aiProfileBootstrap.d.ts +3 -0
  361. package/dist/mcp/aiProfileBootstrap.js +4 -0
  362. package/dist/mcp/canonicalAssetHelpers.d.ts +29 -4
  363. package/dist/mcp/canonicalAssetHelpers.js +138 -35
  364. package/dist/mcp/clientIntegrations.d.ts +4 -2
  365. package/dist/mcp/clientIntegrations.js +58 -57
  366. package/dist/mcp/clientRegistry.d.ts +30 -0
  367. package/dist/mcp/clientRegistry.js +134 -0
  368. package/dist/mcp/collaborationRegistrar.js +31 -15
  369. package/dist/mcp/documentAssetRegistrar.js +231 -56
  370. package/dist/mcp/documentContentCommand.d.ts +94 -0
  371. package/dist/mcp/documentContentCommand.js +226 -0
  372. package/dist/mcp/documentHelpers.d.ts +13 -65
  373. package/dist/mcp/documentHelpers.js +49 -62
  374. package/dist/mcp/durableTaskMutationRouter.d.ts +65 -0
  375. package/dist/mcp/durableTaskMutationRouter.js +217 -0
  376. package/dist/mcp/durableTaskRelationshipMutationRouter.d.ts +38 -0
  377. package/dist/mcp/durableTaskRelationshipMutationRouter.js +168 -0
  378. package/dist/mcp/durableTaskRootMutationRouter.d.ts +64 -0
  379. package/dist/mcp/durableTaskRootMutationRouter.js +226 -0
  380. package/dist/mcp/gitWorktreeRoots.d.ts +2 -0
  381. package/dist/mcp/gitWorktreeRoots.js +19 -0
  382. package/dist/mcp/legacyServer.d.ts +1 -0
  383. package/dist/mcp/legacyServer.js +42 -0
  384. package/dist/mcp/localCliHealth.d.ts +56 -0
  385. package/dist/mcp/localCliHealth.js +170 -0
  386. package/dist/mcp/localServiceProxy.d.ts +23 -0
  387. package/dist/mcp/localServiceProxy.js +258 -0
  388. package/dist/mcp/mcpInputValidator.d.ts +17 -0
  389. package/dist/mcp/mcpInputValidator.js +58 -0
  390. package/dist/mcp/planningAttachmentCommandAdapter.d.ts +127 -0
  391. package/dist/mcp/planningAttachmentCommandAdapter.js +188 -0
  392. package/dist/mcp/programScaffoldCommandAdapter.d.ts +6 -0
  393. package/dist/mcp/programScaffoldCommandAdapter.js +39 -0
  394. package/dist/mcp/proxyServer.d.ts +1 -0
  395. package/dist/mcp/proxyServer.js +2 -0
  396. package/dist/mcp/runtime.d.ts +98 -1
  397. package/dist/mcp/runtime.js +4682 -1927
  398. package/dist/mcp/server.js +29 -2
  399. package/dist/mcp/sharedLocalServiceGateD.d.ts +115 -0
  400. package/dist/mcp/sharedLocalServiceGateD.js +344 -0
  401. package/dist/mcp/stdioLifecycle.d.ts +22 -0
  402. package/dist/mcp/stdioLifecycle.js +54 -0
  403. package/dist/mcp/taskAttachmentCommandAdapter.d.ts +192 -0
  404. package/dist/mcp/taskAttachmentCommandAdapter.js +470 -0
  405. package/dist/mcp/taskAttachmentHelpers.d.ts +8 -6
  406. package/dist/mcp/taskAttachmentHelpers.js +74 -2
  407. package/dist/mcp/taskAttachmentTypes.d.ts +26 -5
  408. package/dist/mcp/taskPlanCommand.d.ts +64 -0
  409. package/dist/mcp/taskPlanCommand.js +98 -0
  410. package/dist/mcp/taskPlanningRegistrar.js +240 -44
  411. package/dist/mcp/toolCallCompatibility.d.ts +6 -0
  412. package/dist/mcp/toolCallCompatibility.js +16 -0
  413. package/dist/mcp/toolCatalog.d.ts +3 -1
  414. package/dist/mcp/toolProfiles.d.ts +12 -1
  415. package/dist/mcp/toolProfiles.js +43 -0
  416. package/dist/mcp/toolRegistry.d.ts +17 -2
  417. package/dist/mcp/toolRegistry.js +26 -11
  418. package/dist/mcp/workflowExecutionRegistrar.d.ts +2 -0
  419. package/dist/mcp/workflowExecutionRegistrar.js +51 -0
  420. package/dist/migrations/taskSchemaMigrations.d.ts +35 -0
  421. package/dist/migrations/taskSchemaMigrations.js +1892 -64
  422. package/dist/migrations/taskUpdatedAtSyncDriftMigration.d.ts +20 -0
  423. package/dist/migrations/taskUpdatedAtSyncDriftMigration.js +153 -0
  424. package/dist/migrations/taskforceAgentDefinitionMigration.d.ts +26 -0
  425. package/dist/migrations/taskforceAgentDefinitionMigration.js +116 -0
  426. package/dist/plugins/vite.js +48 -17
  427. package/dist/public/Taskforce_Van.webp +0 -0
  428. package/dist/runtime/appGateDefinitions.d.ts +16 -10
  429. package/dist/runtime/appGateDefinitions.js +16 -10
  430. package/dist/runtime/appGates.d.ts +5 -4
  431. package/dist/runtime/appGates.js +4 -3
  432. package/dist/server/aiProfileAvatarAssets.d.ts +11 -8
  433. package/dist/server/aiProfileAvatarAssets.js +159 -70
  434. package/dist/server/appAccess.d.ts +12 -0
  435. package/dist/server/appAccess.js +21 -0
  436. package/dist/server/auth.js +15 -1
  437. package/dist/server/authorizedWorkspaceAccess.d.ts +12 -0
  438. package/dist/server/authorizedWorkspaceAccess.js +40 -0
  439. package/dist/server/cloudCollectionRead.d.ts +25 -0
  440. package/dist/server/cloudCollectionRead.js +120 -0
  441. package/dist/server/cloudCollectionReadPool.d.ts +52 -0
  442. package/dist/server/cloudCollectionReadPool.js +140 -0
  443. package/dist/server/cloudCollectionReadWorker.d.ts +1 -0
  444. package/dist/server/cloudCollectionReadWorker.js +36 -0
  445. package/dist/server/cors.d.ts +2 -1
  446. package/dist/server/cors.js +45 -8
  447. package/dist/server/email.d.ts +3 -1
  448. package/dist/server/email.js +46 -8
  449. package/dist/server/index.d.ts +27 -12
  450. package/dist/server/index.js +395 -86
  451. package/dist/server/localDataOwnerPermit.d.ts +18 -0
  452. package/dist/server/localDataOwnerPermit.js +58 -0
  453. package/dist/server/localDatabaseIdentity.d.ts +14 -0
  454. package/dist/server/localDatabaseIdentity.js +69 -0
  455. package/dist/server/localRealtimeFileInvalidation.d.ts +1 -0
  456. package/dist/server/localRealtimeFileInvalidation.js +7 -0
  457. package/dist/server/localServiceLease.d.ts +65 -0
  458. package/dist/server/localServiceLease.js +485 -0
  459. package/dist/server/localServiceOwnershipBootstrap.d.ts +19 -0
  460. package/dist/server/localServiceOwnershipBootstrap.js +84 -0
  461. package/dist/server/localServiceSessions.d.ts +87 -0
  462. package/dist/server/localServiceSessions.js +309 -0
  463. package/dist/server/localServiceWindowsAcl.d.ts +8 -0
  464. package/dist/server/localServiceWindowsAcl.js +60 -0
  465. package/dist/server/localSyncProcessLockBootstrap.d.ts +3 -0
  466. package/dist/server/localSyncProcessLockBootstrap.js +16 -0
  467. package/dist/server/localWorkspaceSyncServerComposition.d.ts +59 -0
  468. package/dist/server/localWorkspaceSyncServerComposition.js +91 -0
  469. package/dist/server/localWorkspaceSyncServerRuntime.d.ts +119 -0
  470. package/dist/server/localWorkspaceSyncServerRuntime.js +1163 -0
  471. package/dist/server/rateLimit.d.ts +1 -0
  472. package/dist/server/rateLimit.js +16 -0
  473. package/dist/server/routes/admin.d.ts +2 -4
  474. package/dist/server/routes/admin.js +199 -337
  475. package/dist/server/routes/agentRoles.d.ts +13 -0
  476. package/dist/server/routes/agentRoles.js +273 -0
  477. package/dist/server/routes/agentSkills.d.ts +16 -0
  478. package/dist/server/routes/agentSkills.js +291 -0
  479. package/dist/server/routes/agents.d.ts +49 -0
  480. package/dist/server/routes/agents.js +1455 -0
  481. package/dist/server/routes/annotatedAttachments.js +46 -9
  482. package/dist/server/routes/assetAccess.d.ts +36 -0
  483. package/dist/server/routes/assetAccess.js +93 -0
  484. package/dist/server/routes/auth.d.ts +4 -3
  485. package/dist/server/routes/auth.js +236 -21
  486. package/dist/server/routes/authSupport.d.ts +3 -1
  487. package/dist/server/routes/authSupport.js +22 -8
  488. package/dist/server/routes/documentReviews.d.ts +2 -0
  489. package/dist/server/routes/documentReviews.js +155 -15
  490. package/dist/server/routes/documents.d.ts +6 -2
  491. package/dist/server/routes/documents.js +492 -151
  492. package/dist/server/routes/durableTaskHttpRouters.d.ts +167 -0
  493. package/dist/server/routes/durableTaskHttpRouters.js +89 -0
  494. package/dist/server/routes/localMcpHealth.d.ts +11 -0
  495. package/dist/server/routes/localMcpHealth.js +29 -0
  496. package/dist/server/routes/localService.d.ts +13 -0
  497. package/dist/server/routes/localService.js +446 -0
  498. package/dist/server/routes/localUpdate.d.ts +11 -0
  499. package/dist/server/routes/localUpdate.js +154 -0
  500. package/dist/server/routes/primitives.d.ts +29 -0
  501. package/dist/server/routes/primitives.js +18 -0
  502. package/dist/server/routes/resources.d.ts +1 -10
  503. package/dist/server/routes/resources.js +1 -153
  504. package/dist/server/routes/shared.d.ts +55 -2
  505. package/dist/server/routes/shared.js +506 -16
  506. package/dist/server/routes/sync.d.ts +2 -0
  507. package/dist/server/routes/sync.js +206 -272
  508. package/dist/server/routes/syncAuxRoutes.d.ts +3 -1
  509. package/dist/server/routes/syncAuxRoutes.js +9 -4
  510. package/dist/server/routes/syncCoordinatorLocalRoutes.d.ts +6 -0
  511. package/dist/server/routes/syncCoordinatorLocalRoutes.js +867 -0
  512. package/dist/server/routes/syncPullApplyRoutes.d.ts +29 -1
  513. package/dist/server/routes/syncPullApplyRoutes.js +520 -17
  514. package/dist/server/routes/syncPushRoutes.d.ts +33 -4
  515. package/dist/server/routes/syncPushRoutes.js +251 -62
  516. package/dist/server/routes/syncRouteTypes.d.ts +1 -1
  517. package/dist/server/routes/syncSnapshotRoutes.d.ts +15 -7
  518. package/dist/server/routes/syncSnapshotRoutes.js +95 -17
  519. package/dist/server/routes/syncV3DiagnosticsRoutes.d.ts +14 -0
  520. package/dist/server/routes/syncV3DiagnosticsRoutes.js +72 -0
  521. package/dist/server/routes/syncV3FeedRoutes.d.ts +20 -0
  522. package/dist/server/routes/syncV3FeedRoutes.js +464 -0
  523. package/dist/server/routes/syncV3LocalCaptureRoutes.d.ts +37 -0
  524. package/dist/server/routes/syncV3LocalCaptureRoutes.js +915 -0
  525. package/dist/server/routes/syncV3LocalDispatchRoutes.d.ts +17 -0
  526. package/dist/server/routes/syncV3LocalDispatchRoutes.js +280 -0
  527. package/dist/server/routes/syncV3LocalFeedApplyRoutes.d.ts +17 -0
  528. package/dist/server/routes/syncV3LocalFeedApplyRoutes.js +493 -0
  529. package/dist/server/routes/syncV3LocalOwnershipRoutes.d.ts +10 -0
  530. package/dist/server/routes/syncV3LocalOwnershipRoutes.js +51 -0
  531. package/dist/server/routes/syncV3LocalRecoveryRoutes.d.ts +12 -0
  532. package/dist/server/routes/syncV3LocalRecoveryRoutes.js +78 -0
  533. package/dist/server/routes/syncV3OperationRoutes.d.ts +35 -0
  534. package/dist/server/routes/syncV3OperationRoutes.js +1151 -0
  535. package/dist/server/routes/tasks.d.ts +0 -2
  536. package/dist/server/routes/tasks.js +1083 -236
  537. package/dist/server/routes/workflows.d.ts +26 -0
  538. package/dist/server/routes/workflows.js +500 -0
  539. package/dist/server/routes.d.ts +1 -6
  540. package/dist/server/routes.js +179 -342
  541. package/dist/server/smtpTransport.d.ts +11 -3
  542. package/dist/server/smtpTransport.js +9 -2
  543. package/dist/server/start.js +42 -10
  544. package/dist/service/localServiceCli.d.ts +33 -0
  545. package/dist/service/localServiceCli.js +376 -0
  546. package/dist/service/localServiceClientLifecycle.d.ts +25 -0
  547. package/dist/service/localServiceClientLifecycle.js +189 -0
  548. package/dist/service/localServiceOpen.d.ts +17 -0
  549. package/dist/service/localServiceOpen.js +27 -0
  550. package/dist/services/agentRoleResolver.d.ts +4 -0
  551. package/dist/services/agentRoleResolver.js +7 -0
  552. package/dist/services/aiProfileAvatarGenerationService.d.ts +41 -0
  553. package/dist/services/aiProfileAvatarGenerationService.js +158 -0
  554. package/dist/services/avatarImageProvider.d.ts +33 -0
  555. package/dist/services/avatarImageProvider.js +140 -0
  556. package/dist/services/bedrockAnthropicMessagesModelGateway.d.ts +24 -0
  557. package/dist/services/bedrockAnthropicMessagesModelGateway.js +95 -0
  558. package/dist/services/bedrockMantleModelGateway.d.ts +43 -0
  559. package/dist/services/bedrockMantleModelGateway.js +81 -0
  560. package/dist/services/bedrockModelGateway.d.ts +26 -0
  561. package/dist/services/bedrockModelGateway.js +94 -0
  562. package/dist/services/modelGateway.d.ts +82 -0
  563. package/dist/services/modelGateway.js +61 -0
  564. package/dist/services/taskforceAgentAvatarImageProvider.d.ts +8 -0
  565. package/dist/services/taskforceAgentAvatarImageProvider.js +24 -0
  566. package/dist/services/taskforceAgentMcpBridge.d.ts +77 -0
  567. package/dist/services/taskforceAgentMcpBridge.js +527 -0
  568. package/dist/shared/agentRoleDefinition.d.ts +34 -0
  569. package/dist/shared/agentRoleDefinition.js +207 -0
  570. package/dist/shared/aiProfileAvatarEligibility.d.ts +10 -0
  571. package/dist/shared/aiProfileAvatarEligibility.js +27 -0
  572. package/dist/shared/aiProfileColors.d.ts +7 -0
  573. package/dist/shared/aiProfileColors.js +33 -0
  574. package/dist/shared/colorPalette.d.ts +3 -0
  575. package/dist/shared/colorPalette.js +20 -0
  576. package/dist/shared/commentProvenance.d.ts +4 -0
  577. package/dist/shared/commentProvenance.js +6 -0
  578. package/dist/shared/deletedTaskRetention.d.ts +2 -0
  579. package/dist/shared/deletedTaskRetention.js +7 -0
  580. package/dist/shared/passwordPolicy.d.ts +2 -1
  581. package/dist/shared/passwordPolicy.js +9 -0
  582. package/dist/shared/planningIdentity.d.ts +20 -0
  583. package/dist/shared/planningIdentity.js +79 -0
  584. package/dist/shared/taskDeepLinks.d.ts +28 -0
  585. package/dist/shared/taskDeepLinks.js +48 -0
  586. package/dist/shared/taskRestoreDestination.d.ts +2 -0
  587. package/dist/shared/taskRestoreDestination.js +5 -0
  588. package/dist/shared/taskforceAgentDefinition.d.ts +88 -0
  589. package/dist/shared/taskforceAgentDefinition.js +434 -0
  590. package/dist/shared/taskforceAgentExecutionSnapshot.d.ts +50 -0
  591. package/dist/shared/taskforceAgentExecutionSnapshot.js +68 -0
  592. package/dist/shared/taskforceAgentModels.d.ts +56 -0
  593. package/dist/shared/taskforceAgentModels.js +314 -0
  594. package/dist/shared/taskforceAgentRunContext.d.ts +23 -0
  595. package/dist/shared/taskforceAgentRunContext.js +21 -0
  596. package/dist/shared/taskforceAgentRuntimeResolution.d.ts +31 -0
  597. package/dist/shared/taskforceAgentRuntimeResolution.js +72 -0
  598. package/dist/shared/taskforceAgentSkill.d.ts +33 -0
  599. package/dist/shared/taskforceAgentSkill.js +149 -0
  600. package/dist/storage/agentRoleStore.d.ts +91 -0
  601. package/dist/storage/agentRoleStore.js +385 -0
  602. package/dist/storage/databaseAdapter.d.ts +1 -0
  603. package/dist/storage/databaseAdapter.js +7 -1
  604. package/dist/storage/documentIntegrity.d.ts +12 -3
  605. package/dist/storage/documentIntegrity.js +105 -27
  606. package/dist/storage/objectStorageClient.d.ts +10 -4
  607. package/dist/storage/objectStorageClient.js +73 -43
  608. package/dist/storage/postgresAdapter.d.ts +2 -1
  609. package/dist/storage/postgresAdapter.js +42 -6
  610. package/dist/storage/postgresRequestDiagnostics.d.ts +8 -0
  611. package/dist/storage/postgresRequestDiagnostics.js +24 -0
  612. package/dist/storage/postgresWorker.js +65 -1
  613. package/dist/storage/sqliteAdapter.d.ts +1 -1
  614. package/dist/storage/sqliteAdapter.js +7 -1
  615. package/dist/storage/sqliteWalHealth.d.ts +71 -0
  616. package/dist/storage/sqliteWalHealth.js +176 -0
  617. package/dist/storage/taskDataPath.d.ts +1 -0
  618. package/dist/storage/taskDataPath.js +20 -0
  619. package/dist/storage/taskforceAgentConversationStore.d.ts +66 -0
  620. package/dist/storage/taskforceAgentConversationStore.js +264 -0
  621. package/dist/storage/taskforceAgentSkillStore.d.ts +93 -0
  622. package/dist/storage/taskforceAgentSkillStore.js +355 -0
  623. package/dist/storage/taskforceAgentStore.d.ts +105 -0
  624. package/dist/storage/taskforceAgentStore.js +549 -0
  625. package/dist/storage/workflowStore.d.ts +223 -0
  626. package/dist/storage/workflowStore.js +1032 -0
  627. package/dist/storage/workspaceAssetStore.d.ts +102 -0
  628. package/dist/storage/workspaceAssetStore.js +488 -25
  629. package/dist/sync/aiProfileAvatarSyncPaths.d.ts +14 -0
  630. package/dist/sync/aiProfileAvatarSyncPaths.js +56 -0
  631. package/dist/sync/cloudSyncApi.d.ts +329 -0
  632. package/dist/sync/cloudSyncApi.js +574 -1
  633. package/dist/sync/collaborationSyncPayload.d.ts +5 -1
  634. package/dist/sync/collaborationSyncPayload.js +213 -1
  635. package/dist/sync/collaborationSyncState.d.ts +23 -3
  636. package/dist/sync/collaborationSyncState.js +92 -3
  637. package/dist/sync/contentSyncPayload.d.ts +9 -0
  638. package/dist/sync/contentSyncPayload.js +29 -0
  639. package/dist/sync/contentSyncState.d.ts +79 -4
  640. package/dist/sync/contentSyncState.js +1113 -313
  641. package/dist/sync/coordinator/localSyncBrowserApplyPermitContext.d.ts +39 -0
  642. package/dist/sync/coordinator/localSyncBrowserApplyPermitContext.js +234 -0
  643. package/dist/sync/coordinator/localSyncBrowserAuthorityCapability.d.ts +7 -0
  644. package/dist/sync/coordinator/localSyncBrowserAuthorityCapability.js +10 -0
  645. package/dist/sync/coordinator/localSyncCommittedApplyPolicy.d.ts +7 -0
  646. package/dist/sync/coordinator/localSyncCommittedApplyPolicy.js +41 -0
  647. package/dist/sync/coordinator/localSyncCoordinatorBrowserClient.d.ts +178 -0
  648. package/dist/sync/coordinator/localSyncCoordinatorBrowserClient.js +131 -0
  649. package/dist/sync/coordinator/localSyncCoordinatorCommandLifecycle.d.ts +25 -0
  650. package/dist/sync/coordinator/localSyncCoordinatorCommandLifecycle.js +200 -0
  651. package/dist/sync/coordinator/localSyncCoordinatorHost.d.ts +84 -0
  652. package/dist/sync/coordinator/localSyncCoordinatorHost.js +435 -0
  653. package/dist/sync/coordinator/localSyncCoordinatorRouteServices.d.ts +33 -0
  654. package/dist/sync/coordinator/localSyncCoordinatorRouteServices.js +1 -0
  655. package/dist/sync/coordinator/localSyncCoordinatorStore.d.ts +122 -0
  656. package/dist/sync/coordinator/localSyncCoordinatorStore.js +1039 -0
  657. package/dist/sync/coordinator/localSyncCoordinatorTypes.d.ts +82 -0
  658. package/dist/sync/coordinator/localSyncCoordinatorTypes.js +9 -0
  659. package/dist/sync/coordinator/localSyncDispatchTracker.d.ts +15 -0
  660. package/dist/sync/coordinator/localSyncDispatchTracker.js +68 -0
  661. package/dist/sync/coordinator/localSyncExecutionPermitStore.d.ts +216 -0
  662. package/dist/sync/coordinator/localSyncExecutionPermitStore.js +1436 -0
  663. package/dist/sync/coordinator/localSyncExecutionPermitTypes.d.ts +52 -0
  664. package/dist/sync/coordinator/localSyncExecutionPermitTypes.js +8 -0
  665. package/dist/sync/coordinator/localSyncOwnershipDrainBarrier.d.ts +33 -0
  666. package/dist/sync/coordinator/localSyncOwnershipDrainBarrier.js +83 -0
  667. package/dist/sync/coordinator/localSyncPermitTransactionHooks.d.ts +9 -0
  668. package/dist/sync/coordinator/localSyncPermitTransactionHooks.js +27 -0
  669. package/dist/sync/coordinator/localSyncProcessLock.d.ts +12 -0
  670. package/dist/sync/coordinator/localSyncProcessLock.js +212 -0
  671. package/dist/sync/coordinator/localSyncV3DispatchRecoveryReconciler.d.ts +17 -0
  672. package/dist/sync/coordinator/localSyncV3DispatchRecoveryReconciler.js +82 -0
  673. package/dist/sync/coordinator/localWorkspaceSyncRunner.d.ts +134 -0
  674. package/dist/sync/coordinator/localWorkspaceSyncRunner.js +981 -0
  675. package/dist/sync/coordinator/localWorkspaceSyncRunnerState.d.ts +189 -0
  676. package/dist/sync/coordinator/localWorkspaceSyncRunnerState.js +961 -0
  677. package/dist/sync/coordinator/workspaceSyncCloudCredentialValidator.d.ts +19 -0
  678. package/dist/sync/coordinator/workspaceSyncCloudCredentialValidator.js +83 -0
  679. package/dist/sync/coordinator/workspaceSyncCredentialBroker.d.ts +117 -0
  680. package/dist/sync/coordinator/workspaceSyncCredentialBroker.js +323 -0
  681. package/dist/sync/coordinator/workspaceSyncLocalAccessBootstrap.d.ts +11 -0
  682. package/dist/sync/coordinator/workspaceSyncLocalAccessBootstrap.js +51 -0
  683. package/dist/sync/coordinator/workspaceSyncTransportGateway.d.ts +139 -0
  684. package/dist/sync/coordinator/workspaceSyncTransportGateway.js +740 -0
  685. package/dist/sync/engine/localWorkspaceContentManifestService.d.ts +21 -0
  686. package/dist/sync/engine/localWorkspaceContentManifestService.js +44 -0
  687. package/dist/sync/engine/workspaceSyncAtomicLocalPublisher.d.ts +36 -0
  688. package/dist/sync/engine/workspaceSyncAtomicLocalPublisher.js +203 -0
  689. package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.d.ts +21 -0
  690. package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.js +13 -0
  691. package/dist/sync/engine/workspaceSyncContentPullObligationStore.d.ts +65 -0
  692. package/dist/sync/engine/workspaceSyncContentPullObligationStore.js +160 -0
  693. package/dist/sync/engine/workspaceSyncContentVersionStore.d.ts +216 -0
  694. package/dist/sync/engine/workspaceSyncContentVersionStore.js +1068 -0
  695. package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.d.ts +28 -0
  696. package/dist/sync/engine/workspaceSyncEngineBrowserGatewayRemoteServices.js +543 -0
  697. package/dist/sync/engine/workspaceSyncEngineContracts.d.ts +78 -0
  698. package/dist/sync/engine/workspaceSyncEngineContracts.js +1 -0
  699. package/dist/sync/engine/workspaceSyncEngineControlPlane.d.ts +37 -0
  700. package/dist/sync/engine/workspaceSyncEngineControlPlane.js +79 -0
  701. package/dist/sync/engine/workspaceSyncEngineIdentity.d.ts +1 -0
  702. package/dist/sync/engine/workspaceSyncEngineIdentity.js +4 -0
  703. package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.d.ts +68 -0
  704. package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.js +180 -0
  705. package/dist/sync/engine/workspaceSyncEngineLocalApply.d.ts +72 -0
  706. package/dist/sync/engine/workspaceSyncEngineLocalApply.js +132 -0
  707. package/dist/sync/engine/workspaceSyncEngineLocalServices.d.ts +70 -0
  708. package/dist/sync/engine/workspaceSyncEngineLocalServices.js +25 -0
  709. package/dist/sync/engine/workspaceSyncEngineParity.d.ts +8 -0
  710. package/dist/sync/engine/workspaceSyncEngineParity.js +7 -0
  711. package/dist/sync/engine/workspaceSyncEnginePullPolicy.d.ts +32 -0
  712. package/dist/sync/engine/workspaceSyncEnginePullPolicy.js +27 -0
  713. package/dist/sync/engine/workspaceSyncEnginePushCompletion.d.ts +20 -0
  714. package/dist/sync/engine/workspaceSyncEnginePushCompletion.js +87 -0
  715. package/dist/sync/engine/workspaceSyncEngineRecovery.d.ts +56 -0
  716. package/dist/sync/engine/workspaceSyncEngineRecovery.js +288 -0
  717. package/dist/sync/engine/workspaceSyncEngineRemoteServices.d.ts +109 -0
  718. package/dist/sync/engine/workspaceSyncEngineRemoteServices.js +21 -0
  719. package/dist/sync/engine/workspaceSyncEngineRuntime.d.ts +61 -0
  720. package/dist/sync/engine/workspaceSyncEngineRuntime.js +59 -0
  721. package/dist/sync/engine/workspaceSyncEngineServerApplyBoundary.d.ts +28 -0
  722. package/dist/sync/engine/workspaceSyncEngineServerApplyBoundary.js +86 -0
  723. package/dist/sync/engine/workspaceSyncEngineServerLocalServices.d.ts +73 -0
  724. package/dist/sync/engine/workspaceSyncEngineServerLocalServices.js +452 -0
  725. package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.d.ts +23 -0
  726. package/dist/sync/engine/workspaceSyncEngineServerRemoteServices.js +466 -0
  727. package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.d.ts +125 -0
  728. package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.js +1147 -0
  729. package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.d.ts +63 -0
  730. package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.js +276 -0
  731. package/dist/sync/engine/workspaceSyncEngineTransferCompletion.d.ts +20 -0
  732. package/dist/sync/engine/workspaceSyncEngineTransferCompletion.js +37 -0
  733. package/dist/sync/engine/workspaceSyncEngineTransferTypes.d.ts +7 -0
  734. package/dist/sync/engine/workspaceSyncEngineTransferTypes.js +1 -0
  735. package/dist/sync/engine/workspaceSyncEngineTransfers.d.ts +240 -0
  736. package/dist/sync/engine/workspaceSyncEngineTransfers.js +1184 -0
  737. package/dist/sync/engine/workspaceSyncEngineV3LocalFeedApply.d.ts +39 -0
  738. package/dist/sync/engine/workspaceSyncEngineV3LocalFeedApply.js +39 -0
  739. package/dist/sync/engine/workspaceSyncImmutableContentGcRunner.d.ts +25 -0
  740. package/dist/sync/engine/workspaceSyncImmutableContentGcRunner.js +83 -0
  741. package/dist/sync/engine/workspaceSyncImmutableContentProvider.d.ts +71 -0
  742. package/dist/sync/engine/workspaceSyncImmutableContentProvider.js +209 -0
  743. package/dist/sync/engine/workspaceSyncImmutableContentStager.d.ts +32 -0
  744. package/dist/sync/engine/workspaceSyncImmutableContentStager.js +202 -0
  745. package/dist/sync/engine/workspaceSyncPublishedContentResolver.d.ts +43 -0
  746. package/dist/sync/engine/workspaceSyncPublishedContentResolver.js +142 -0
  747. package/dist/sync/engine/workspaceSyncServerContentRuntime.d.ts +26 -0
  748. package/dist/sync/engine/workspaceSyncServerContentRuntime.js +41 -0
  749. package/dist/sync/engine/workspaceSyncServerDataServices.d.ts +44 -0
  750. package/dist/sync/engine/workspaceSyncServerDataServices.js +143 -0
  751. package/dist/sync/engine/workspaceSyncTransferEvidence.d.ts +39 -0
  752. package/dist/sync/engine/workspaceSyncTransferEvidence.js +45 -0
  753. package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.d.ts +44 -0
  754. package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.js +992 -0
  755. package/dist/sync/engine/workspaceSyncV2PreparedContent.d.ts +82 -0
  756. package/dist/sync/engine/workspaceSyncV2PreparedContent.js +219 -0
  757. package/dist/sync/planningCanonicalFields.d.ts +41 -0
  758. package/dist/sync/planningCanonicalFields.js +211 -0
  759. package/dist/sync/planningSyncPayload.d.ts +5 -1
  760. package/dist/sync/planningSyncPayload.js +88 -4
  761. package/dist/sync/syncApplyHandlers.d.ts +100 -8
  762. package/dist/sync/syncApplyHandlers.js +845 -78
  763. package/dist/sync/syncResourceAdapters.d.ts +10 -0
  764. package/dist/sync/syncResourceAdapters.js +21 -1
  765. package/dist/sync/syncService.d.ts +57 -1
  766. package/dist/sync/syncService.js +1094 -138
  767. package/dist/sync/taskNestedContent.d.ts +2 -0
  768. package/dist/sync/taskNestedContent.js +8 -0
  769. package/dist/sync/taskSyncChangeKey.js +0 -1
  770. package/dist/sync/taskSyncPayload.d.ts +1 -1
  771. package/dist/sync/taskSyncPayload.js +20 -3
  772. package/dist/sync/v3/canonicalWorkspaceSyncJson.d.ts +2 -0
  773. package/dist/sync/v3/canonicalWorkspaceSyncJson.js +26 -0
  774. package/dist/sync/v3/combinedFeedCapability.d.ts +21 -0
  775. package/dist/sync/v3/combinedFeedCapability.js +80 -0
  776. package/dist/sync/v3/combinedFeedPrerequisites.d.ts +18 -0
  777. package/dist/sync/v3/combinedFeedPrerequisites.js +184 -0
  778. package/dist/sync/v3/durableInitiativeMutationRouter.d.ts +61 -0
  779. package/dist/sync/v3/durableInitiativeMutationRouter.js +287 -0
  780. package/dist/sync/v3/durableOperationReplay.d.ts +36 -0
  781. package/dist/sync/v3/durableOperationReplay.js +103 -0
  782. package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.d.ts +50 -0
  783. package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.js +216 -0
  784. package/dist/sync/v3/durableTaskChecklistMutationRouter.d.ts +47 -0
  785. package/dist/sync/v3/durableTaskChecklistMutationRouter.js +182 -0
  786. package/dist/sync/v3/durableTaskCommentMutationRouter.d.ts +47 -0
  787. package/dist/sync/v3/durableTaskCommentMutationRouter.js +191 -0
  788. package/dist/sync/v3/durableTaskHttpBulkMutationRouter.d.ts +60 -0
  789. package/dist/sync/v3/durableTaskHttpBulkMutationRouter.js +333 -0
  790. package/dist/sync/v3/durableTaskHttpRootMutationRouter.d.ts +40 -0
  791. package/dist/sync/v3/durableTaskHttpRootMutationRouter.js +518 -0
  792. package/dist/sync/v3/durableTaxonomyMutationRouter.d.ts +63 -0
  793. package/dist/sync/v3/durableTaxonomyMutationRouter.js +289 -0
  794. package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.d.ts +77 -0
  795. package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.js +361 -0
  796. package/dist/sync/v3/durableWorkstreamMutationRouter.d.ts +61 -0
  797. package/dist/sync/v3/durableWorkstreamMutationRouter.js +287 -0
  798. package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.d.ts +42 -0
  799. package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.js +122 -0
  800. package/dist/sync/v3/entityEventLegacyAdoptionContract.d.ts +6 -0
  801. package/dist/sync/v3/entityEventLegacyAdoptionContract.js +6 -0
  802. package/dist/sync/v3/entityEventLegacyAdoptionService.d.ts +62 -0
  803. package/dist/sync/v3/entityEventLegacyAdoptionService.js +180 -0
  804. package/dist/sync/v3/initiativeActivityAuthoritativeRevision.d.ts +11 -0
  805. package/dist/sync/v3/initiativeActivityAuthoritativeRevision.js +23 -0
  806. package/dist/sync/v3/initiativeActivityIdentity.d.ts +8 -0
  807. package/dist/sync/v3/initiativeActivityIdentity.js +14 -0
  808. package/dist/sync/v3/initiativeCoexistence.d.ts +26 -0
  809. package/dist/sync/v3/initiativeCoexistence.js +148 -0
  810. package/dist/sync/v3/initiativeFeedActivationCapability.d.ts +6 -0
  811. package/dist/sync/v3/initiativeFeedActivationCapability.js +16 -0
  812. package/dist/sync/v3/initiativeMutationPayload.d.ts +26 -0
  813. package/dist/sync/v3/initiativeMutationPayload.js +144 -0
  814. package/dist/sync/v3/initiativeMutationService.d.ts +62 -0
  815. package/dist/sync/v3/initiativeMutationService.js +206 -0
  816. package/dist/sync/v3/localEntityEventLegacyAdoption.d.ts +31 -0
  817. package/dist/sync/v3/localEntityEventLegacyAdoption.js +607 -0
  818. package/dist/sync/v3/localInitiativeOutboxHandler.d.ts +8 -0
  819. package/dist/sync/v3/localInitiativeOutboxHandler.js +88 -0
  820. package/dist/sync/v3/localInitiativeOutboxService.d.ts +50 -0
  821. package/dist/sync/v3/localInitiativeOutboxService.js +497 -0
  822. package/dist/sync/v3/localOperationIdentityStore.d.ts +81 -0
  823. package/dist/sync/v3/localOperationIdentityStore.js +388 -0
  824. package/dist/sync/v3/localOutboxDispatchCapability.d.ts +7 -0
  825. package/dist/sync/v3/localOutboxDispatchCapability.js +13 -0
  826. package/dist/sync/v3/localOutboxDispatchRuntime.d.ts +16 -0
  827. package/dist/sync/v3/localOutboxDispatchRuntime.js +269 -0
  828. package/dist/sync/v3/localOutboxDispatcher.d.ts +53 -0
  829. package/dist/sync/v3/localOutboxDispatcher.js +366 -0
  830. package/dist/sync/v3/localOutboxDrainClient.d.ts +50 -0
  831. package/dist/sync/v3/localOutboxDrainClient.js +250 -0
  832. package/dist/sync/v3/localOutboxOperationHandler.d.ts +31 -0
  833. package/dist/sync/v3/localOutboxOperationHandler.js +10 -0
  834. package/dist/sync/v3/localOutboxRecoveryClient.d.ts +14 -0
  835. package/dist/sync/v3/localOutboxRecoveryClient.js +45 -0
  836. package/dist/sync/v3/localOutboxRecoveryPreparationService.d.ts +12 -0
  837. package/dist/sync/v3/localOutboxRecoveryPreparationService.js +151 -0
  838. package/dist/sync/v3/localSyncIdentityStore.d.ts +9 -0
  839. package/dist/sync/v3/localSyncIdentityStore.js +43 -0
  840. package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.d.ts +10 -0
  841. package/dist/sync/v3/localTaskAttachmentLinksOutboxHandler.js +80 -0
  842. package/dist/sync/v3/localTaskAttachmentLinksOutboxService.d.ts +46 -0
  843. package/dist/sync/v3/localTaskAttachmentLinksOutboxService.js +303 -0
  844. package/dist/sync/v3/localTaskChecklistOutboxHandler.d.ts +10 -0
  845. package/dist/sync/v3/localTaskChecklistOutboxHandler.js +54 -0
  846. package/dist/sync/v3/localTaskChecklistOutboxService.d.ts +47 -0
  847. package/dist/sync/v3/localTaskChecklistOutboxService.js +221 -0
  848. package/dist/sync/v3/localTaskCommentOutboxHandler.d.ts +10 -0
  849. package/dist/sync/v3/localTaskCommentOutboxHandler.js +94 -0
  850. package/dist/sync/v3/localTaskCommentOutboxService.d.ts +75 -0
  851. package/dist/sync/v3/localTaskCommentOutboxService.js +391 -0
  852. package/dist/sync/v3/localTaskCreateClient.d.ts +27 -0
  853. package/dist/sync/v3/localTaskCreateClient.js +209 -0
  854. package/dist/sync/v3/localTaskCreateOutboxHandler.d.ts +8 -0
  855. package/dist/sync/v3/localTaskCreateOutboxHandler.js +147 -0
  856. package/dist/sync/v3/localTaskCreateOutboxService.d.ts +77 -0
  857. package/dist/sync/v3/localTaskCreateOutboxService.js +397 -0
  858. package/dist/sync/v3/localTaskDeleteClient.d.ts +10 -0
  859. package/dist/sync/v3/localTaskDeleteClient.js +23 -0
  860. package/dist/sync/v3/localTaskDeleteOutboxHandler.d.ts +8 -0
  861. package/dist/sync/v3/localTaskDeleteOutboxHandler.js +54 -0
  862. package/dist/sync/v3/localTaskDeleteOutboxService.d.ts +38 -0
  863. package/dist/sync/v3/localTaskDeleteOutboxService.js +235 -0
  864. package/dist/sync/v3/localTaskLegacyRootAdoption.d.ts +28 -0
  865. package/dist/sync/v3/localTaskLegacyRootAdoption.js +219 -0
  866. package/dist/sync/v3/localTaskLifecycleClient.d.ts +49 -0
  867. package/dist/sync/v3/localTaskLifecycleClient.js +57 -0
  868. package/dist/sync/v3/localTaskLifecycleOutboxHandler.d.ts +8 -0
  869. package/dist/sync/v3/localTaskLifecycleOutboxHandler.js +94 -0
  870. package/dist/sync/v3/localTaskLifecycleOutboxService.d.ts +60 -0
  871. package/dist/sync/v3/localTaskLifecycleOutboxService.js +304 -0
  872. package/dist/sync/v3/localTaskMetadataClient.d.ts +13 -0
  873. package/dist/sync/v3/localTaskMetadataClient.js +30 -0
  874. package/dist/sync/v3/localTaskMetadataOutboxHandler.d.ts +8 -0
  875. package/dist/sync/v3/localTaskMetadataOutboxHandler.js +70 -0
  876. package/dist/sync/v3/localTaskMetadataOutboxService.d.ts +48 -0
  877. package/dist/sync/v3/localTaskMetadataOutboxService.js +229 -0
  878. package/dist/sync/v3/localTaskOperationClient.d.ts +72 -0
  879. package/dist/sync/v3/localTaskOperationClient.js +195 -0
  880. package/dist/sync/v3/localTaskRelationshipOutboxHandler.d.ts +8 -0
  881. package/dist/sync/v3/localTaskRelationshipOutboxHandler.js +114 -0
  882. package/dist/sync/v3/localTaskRelationshipOutboxService.d.ts +45 -0
  883. package/dist/sync/v3/localTaskRelationshipOutboxService.js +192 -0
  884. package/dist/sync/v3/localTaskRestoreClient.d.ts +13 -0
  885. package/dist/sync/v3/localTaskRestoreClient.js +32 -0
  886. package/dist/sync/v3/localTaskRestoreOutboxHandler.d.ts +8 -0
  887. package/dist/sync/v3/localTaskRestoreOutboxHandler.js +41 -0
  888. package/dist/sync/v3/localTaskRestoreOutboxService.d.ts +56 -0
  889. package/dist/sync/v3/localTaskRestoreOutboxService.js +323 -0
  890. package/dist/sync/v3/localTaskStatusClient.d.ts +17 -0
  891. package/dist/sync/v3/localTaskStatusClient.js +35 -0
  892. package/dist/sync/v3/localTaskStatusOutboxHandler.d.ts +8 -0
  893. package/dist/sync/v3/localTaskStatusOutboxHandler.js +75 -0
  894. package/dist/sync/v3/localTaskStatusOutboxService.d.ts +53 -0
  895. package/dist/sync/v3/localTaskStatusOutboxService.js +422 -0
  896. package/dist/sync/v3/localTaxonomyCompositeOutboxService.d.ts +34 -0
  897. package/dist/sync/v3/localTaxonomyCompositeOutboxService.js +290 -0
  898. package/dist/sync/v3/localTaxonomyOutboxHandler.d.ts +9 -0
  899. package/dist/sync/v3/localTaxonomyOutboxHandler.js +106 -0
  900. package/dist/sync/v3/localTaxonomyOutboxService.d.ts +30 -0
  901. package/dist/sync/v3/localTaxonomyOutboxService.js +181 -0
  902. package/dist/sync/v3/localWorkflowRuntimeOutboxHandler.d.ts +8 -0
  903. package/dist/sync/v3/localWorkflowRuntimeOutboxHandler.js +113 -0
  904. package/dist/sync/v3/localWorkflowRuntimeOutboxService.d.ts +37 -0
  905. package/dist/sync/v3/localWorkflowRuntimeOutboxService.js +330 -0
  906. package/dist/sync/v3/localWorkspaceSyncServerOutboxDispatcher.d.ts +63 -0
  907. package/dist/sync/v3/localWorkspaceSyncServerOutboxDispatcher.js +264 -0
  908. package/dist/sync/v3/localWorkstreamOutboxHandler.d.ts +8 -0
  909. package/dist/sync/v3/localWorkstreamOutboxHandler.js +102 -0
  910. package/dist/sync/v3/localWorkstreamOutboxService.d.ts +52 -0
  911. package/dist/sync/v3/localWorkstreamOutboxService.js +581 -0
  912. package/dist/sync/v3/localWorkstreamTaskOrderOutboxHandler.d.ts +10 -0
  913. package/dist/sync/v3/localWorkstreamTaskOrderOutboxHandler.js +57 -0
  914. package/dist/sync/v3/localWorkstreamTaskOrderOutboxService.d.ts +30 -0
  915. package/dist/sync/v3/localWorkstreamTaskOrderOutboxService.js +128 -0
  916. package/dist/sync/v3/planningActivation.d.ts +13 -0
  917. package/dist/sync/v3/planningActivation.js +33 -0
  918. package/dist/sync/v3/planningAttachmentActivityValidation.d.ts +9 -0
  919. package/dist/sync/v3/planningAttachmentActivityValidation.js +87 -0
  920. package/dist/sync/v3/programScaffoldService.d.ts +143 -0
  921. package/dist/sync/v3/programScaffoldService.js +478 -0
  922. package/dist/sync/v3/syncDurabilityStore.d.ts +781 -0
  923. package/dist/sync/v3/syncDurabilityStore.js +4773 -0
  924. package/dist/sync/v3/taskActivityAuthoritativeRevision.d.ts +16 -0
  925. package/dist/sync/v3/taskActivityAuthoritativeRevision.js +67 -0
  926. package/dist/sync/v3/taskActivityJournal.d.ts +20 -0
  927. package/dist/sync/v3/taskActivityJournal.js +195 -0
  928. package/dist/sync/v3/taskAttachmentLinksActivityIdentity.d.ts +6 -0
  929. package/dist/sync/v3/taskAttachmentLinksActivityIdentity.js +14 -0
  930. package/dist/sync/v3/taskAttachmentLinksMutationService.d.ts +112 -0
  931. package/dist/sync/v3/taskAttachmentLinksMutationService.js +218 -0
  932. package/dist/sync/v3/taskChecklistActivityIdentity.d.ts +6 -0
  933. package/dist/sync/v3/taskChecklistActivityIdentity.js +14 -0
  934. package/dist/sync/v3/taskChecklistMutationService.d.ts +92 -0
  935. package/dist/sync/v3/taskChecklistMutationService.js +156 -0
  936. package/dist/sync/v3/taskCommentActivityIdentity.d.ts +7 -0
  937. package/dist/sync/v3/taskCommentActivityIdentity.js +15 -0
  938. package/dist/sync/v3/taskCommentMutationService.d.ts +150 -0
  939. package/dist/sync/v3/taskCommentMutationService.js +392 -0
  940. package/dist/sync/v3/taskCommentReconcileProvenance.d.ts +58 -0
  941. package/dist/sync/v3/taskCommentReconcileProvenance.js +170 -0
  942. package/dist/sync/v3/taskCreateActivation.d.ts +19 -0
  943. package/dist/sync/v3/taskCreateActivation.js +84 -0
  944. package/dist/sync/v3/taskCreateActivityIdentity.d.ts +7 -0
  945. package/dist/sync/v3/taskCreateActivityIdentity.js +18 -0
  946. package/dist/sync/v3/taskCreateMutationService.d.ts +103 -0
  947. package/dist/sync/v3/taskCreateMutationService.js +283 -0
  948. package/dist/sync/v3/taskDeleteActivation.d.ts +7 -0
  949. package/dist/sync/v3/taskDeleteActivation.js +14 -0
  950. package/dist/sync/v3/taskDeleteMutationService.d.ts +35 -0
  951. package/dist/sync/v3/taskDeleteMutationService.js +133 -0
  952. package/dist/sync/v3/taskLegacyRootAdoptionService.d.ts +78 -0
  953. package/dist/sync/v3/taskLegacyRootAdoptionService.js +175 -0
  954. package/dist/sync/v3/taskLifecycleActivityIdentity.d.ts +9 -0
  955. package/dist/sync/v3/taskLifecycleActivityIdentity.js +18 -0
  956. package/dist/sync/v3/taskLifecycleMutationPayload.d.ts +5 -0
  957. package/dist/sync/v3/taskLifecycleMutationPayload.js +28 -0
  958. package/dist/sync/v3/taskLifecycleMutationService.d.ts +66 -0
  959. package/dist/sync/v3/taskLifecycleMutationService.js +92 -0
  960. package/dist/sync/v3/taskMetadataActivation.d.ts +12 -0
  961. package/dist/sync/v3/taskMetadataActivation.js +38 -0
  962. package/dist/sync/v3/taskMetadataActivityIdentity.d.ts +7 -0
  963. package/dist/sync/v3/taskMetadataActivityIdentity.js +18 -0
  964. package/dist/sync/v3/taskMetadataCoexistence.d.ts +37 -0
  965. package/dist/sync/v3/taskMetadataCoexistence.js +138 -0
  966. package/dist/sync/v3/taskMetadataMutationService.d.ts +71 -0
  967. package/dist/sync/v3/taskMetadataMutationService.js +199 -0
  968. package/dist/sync/v3/taskRelationshipLegacyAdoptionService.d.ts +48 -0
  969. package/dist/sync/v3/taskRelationshipLegacyAdoptionService.js +164 -0
  970. package/dist/sync/v3/taskRelationshipMutationService.d.ts +50 -0
  971. package/dist/sync/v3/taskRelationshipMutationService.js +148 -0
  972. package/dist/sync/v3/taskRestoreMutationService.d.ts +90 -0
  973. package/dist/sync/v3/taskRestoreMutationService.js +179 -0
  974. package/dist/sync/v3/taskStatusActivation.d.ts +7 -0
  975. package/dist/sync/v3/taskStatusActivation.js +15 -0
  976. package/dist/sync/v3/taskStatusMutationService.d.ts +76 -0
  977. package/dist/sync/v3/taskStatusMutationService.js +308 -0
  978. package/dist/sync/v3/taskWorkflowMutationPayload.d.ts +4 -0
  979. package/dist/sync/v3/taskWorkflowMutationPayload.js +22 -0
  980. package/dist/sync/v3/taskWorkflowMutationService.d.ts +64 -0
  981. package/dist/sync/v3/taskWorkflowMutationService.js +102 -0
  982. package/dist/sync/v3/taxonomyCoexistence.d.ts +10 -0
  983. package/dist/sync/v3/taxonomyCoexistence.js +19 -0
  984. package/dist/sync/v3/taxonomyCompositeMutationService.d.ts +110 -0
  985. package/dist/sync/v3/taxonomyCompositeMutationService.js +304 -0
  986. package/dist/sync/v3/taxonomyMutationService.d.ts +57 -0
  987. package/dist/sync/v3/taxonomyMutationService.js +106 -0
  988. package/dist/sync/v3/taxonomyStateMutation.d.ts +22 -0
  989. package/dist/sync/v3/taxonomyStateMutation.js +49 -0
  990. package/dist/sync/v3/taxonomySyncPayload.d.ts +9 -0
  991. package/dist/sync/v3/taxonomySyncPayload.js +199 -0
  992. package/dist/sync/v3/workflowAssignmentSync.d.ts +22 -0
  993. package/dist/sync/v3/workflowAssignmentSync.js +213 -0
  994. package/dist/sync/v3/workflowRuntimeMutationService.d.ts +89 -0
  995. package/dist/sync/v3/workflowRuntimeMutationService.js +359 -0
  996. package/dist/sync/v3/workflowRuntimeOperationIdentity.d.ts +13 -0
  997. package/dist/sync/v3/workflowRuntimeOperationIdentity.js +35 -0
  998. package/dist/sync/v3/workflowRuntimeSync.d.ts +141 -0
  999. package/dist/sync/v3/workflowRuntimeSync.js +485 -0
  1000. package/dist/sync/v3/workspaceSyncJournalReader.d.ts +43 -0
  1001. package/dist/sync/v3/workspaceSyncJournalReader.js +45 -0
  1002. package/dist/sync/v3/workspaceSyncLocalOwnershipSnapshot.d.ts +28 -0
  1003. package/dist/sync/v3/workspaceSyncLocalOwnershipSnapshot.js +81 -0
  1004. package/dist/sync/v3/workspaceSyncPayloadFingerprint.d.ts +1 -0
  1005. package/dist/sync/v3/workspaceSyncPayloadFingerprint.js +5 -0
  1006. package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.d.ts +16 -0
  1007. package/dist/sync/v3/workspaceSyncV2ProjectionExclusions.js +153 -0
  1008. package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.d.ts +83 -0
  1009. package/dist/sync/v3/workspaceSyncV3AttachmentApplyObligationStore.js +161 -0
  1010. package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.d.ts +16 -0
  1011. package/dist/sync/v3/workspaceSyncV3AttachmentAssetHydration.js +90 -0
  1012. package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.d.ts +65 -0
  1013. package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.js +357 -0
  1014. package/dist/sync/v3/workspaceSyncV3CombinedCoverage.d.ts +51 -0
  1015. package/dist/sync/v3/workspaceSyncV3CombinedCoverage.js +171 -0
  1016. package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.d.ts +43 -0
  1017. package/dist/sync/v3/workspaceSyncV3CombinedFeedOrchestrator.js +541 -0
  1018. package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.d.ts +50 -0
  1019. package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.js +1161 -0
  1020. package/dist/sync/v3/workspaceSyncV3CombinedProjectionState.d.ts +96 -0
  1021. package/dist/sync/v3/workspaceSyncV3CombinedProjectionState.js +672 -0
  1022. package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.d.ts +46 -0
  1023. package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.js +621 -0
  1024. package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.d.ts +66 -0
  1025. package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.js +527 -0
  1026. package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.d.ts +78 -0
  1027. package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.js +566 -0
  1028. package/dist/sync/v3/workspaceSyncV3CombinedWireContract.d.ts +45 -0
  1029. package/dist/sync/v3/workspaceSyncV3CombinedWireContract.js +125 -0
  1030. package/dist/sync/v3/workspaceSyncV3CoverageRegistry.d.ts +13 -0
  1031. package/dist/sync/v3/workspaceSyncV3CoverageRegistry.js +34 -0
  1032. package/dist/sync/v3/workspaceSyncV3CursorEncoding.d.ts +1 -0
  1033. package/dist/sync/v3/workspaceSyncV3CursorEncoding.js +6 -0
  1034. package/dist/sync/v3/workspaceSyncV3DomainAdmission.d.ts +43 -0
  1035. package/dist/sync/v3/workspaceSyncV3DomainAdmission.js +118 -0
  1036. package/dist/sync/v3/workspaceSyncV3Feed.d.ts +95 -0
  1037. package/dist/sync/v3/workspaceSyncV3Feed.js +243 -0
  1038. package/dist/sync/v3/workspaceSyncV3FeedApply.d.ts +13 -0
  1039. package/dist/sync/v3/workspaceSyncV3FeedApply.js +67 -0
  1040. package/dist/sync/v3/workspaceSyncV3FeedClientContract.d.ts +3 -0
  1041. package/dist/sync/v3/workspaceSyncV3FeedClientContract.js +46 -0
  1042. package/dist/sync/v3/workspaceSyncV3FeedCursorKeys.d.ts +10 -0
  1043. package/dist/sync/v3/workspaceSyncV3FeedCursorKeys.js +58 -0
  1044. package/dist/sync/v3/workspaceSyncV3FeedOrchestrator.d.ts +31 -0
  1045. package/dist/sync/v3/workspaceSyncV3FeedOrchestrator.js +228 -0
  1046. package/dist/sync/v3/workspaceSyncV3FeedProfile.d.ts +32 -0
  1047. package/dist/sync/v3/workspaceSyncV3FeedProfile.js +21 -0
  1048. package/dist/sync/v3/workspaceSyncV3InitiativeLocalApply.d.ts +36 -0
  1049. package/dist/sync/v3/workspaceSyncV3InitiativeLocalApply.js +163 -0
  1050. package/dist/sync/v3/workspaceSyncV3InitiativeRepair.d.ts +33 -0
  1051. package/dist/sync/v3/workspaceSyncV3InitiativeRepair.js +118 -0
  1052. package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.d.ts +10 -0
  1053. package/dist/sync/v3/workspaceSyncV3LegacyBoundaryAttestation.js +45 -0
  1054. package/dist/sync/v3/workspaceSyncV3LocalOutboxStatus.d.ts +27 -0
  1055. package/dist/sync/v3/workspaceSyncV3LocalOutboxStatus.js +83 -0
  1056. package/dist/sync/v3/workspaceSyncV3NestedCoverage.d.ts +10 -0
  1057. package/dist/sync/v3/workspaceSyncV3NestedCoverage.js +40 -0
  1058. package/dist/sync/v3/workspaceSyncV3NestedTaskApply.d.ts +83 -0
  1059. package/dist/sync/v3/workspaceSyncV3NestedTaskApply.js +325 -0
  1060. package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.d.ts +59 -0
  1061. package/dist/sync/v3/workspaceSyncV3NestedTaskCodecs.js +302 -0
  1062. package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.d.ts +47 -0
  1063. package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.js +329 -0
  1064. package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.d.ts +19 -0
  1065. package/dist/sync/v3/workspaceSyncV3NestedTaskRepairSnapshot.js +41 -0
  1066. package/dist/sync/v3/workspaceSyncV3NestedWireContract.d.ts +6 -0
  1067. package/dist/sync/v3/workspaceSyncV3NestedWireContract.js +16 -0
  1068. package/dist/sync/v3/workspaceSyncV3OperationProjection.d.ts +8 -0
  1069. package/dist/sync/v3/workspaceSyncV3OperationProjection.js +52 -0
  1070. package/dist/sync/v3/workspaceSyncV3OperationProtocol.d.ts +230 -0
  1071. package/dist/sync/v3/workspaceSyncV3OperationProtocol.js +1 -0
  1072. package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.d.ts +165 -0
  1073. package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.js +414 -0
  1074. package/dist/sync/v3/workspaceSyncV3OriginActor.d.ts +36 -0
  1075. package/dist/sync/v3/workspaceSyncV3OriginActor.js +61 -0
  1076. package/dist/sync/v3/workspaceSyncV3OriginAssertion.d.ts +46 -0
  1077. package/dist/sync/v3/workspaceSyncV3OriginAssertion.js +121 -0
  1078. package/dist/sync/v3/workspaceSyncV3OriginAssertionHeader.d.ts +1 -0
  1079. package/dist/sync/v3/workspaceSyncV3OriginAssertionHeader.js +1 -0
  1080. package/dist/sync/v3/workspaceSyncV3PlanningOrderCoverage.d.ts +10 -0
  1081. package/dist/sync/v3/workspaceSyncV3PlanningOrderCoverage.js +34 -0
  1082. package/dist/sync/v3/workspaceSyncV3PlanningOrderWireContract.d.ts +6 -0
  1083. package/dist/sync/v3/workspaceSyncV3PlanningOrderWireContract.js +10 -0
  1084. package/dist/sync/v3/workspaceSyncV3ProjectionState.d.ts +105 -0
  1085. package/dist/sync/v3/workspaceSyncV3ProjectionState.js +467 -0
  1086. package/dist/sync/v3/workspaceSyncV3RepairSqlBatching.d.ts +2 -0
  1087. package/dist/sync/v3/workspaceSyncV3RepairSqlBatching.js +10 -0
  1088. package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.d.ts +56 -0
  1089. package/dist/sync/v3/workspaceSyncV3TaskCommentAudit.js +250 -0
  1090. package/dist/sync/v3/workspaceSyncV3TaskRelationshipProjection.d.ts +30 -0
  1091. package/dist/sync/v3/workspaceSyncV3TaskRelationshipProjection.js +142 -0
  1092. package/dist/sync/v3/workspaceSyncV3TaskRootProjection.d.ts +40 -0
  1093. package/dist/sync/v3/workspaceSyncV3TaskRootProjection.js +246 -0
  1094. package/dist/sync/v3/workspaceSyncV3TaxonomyFeedProjection.d.ts +39 -0
  1095. package/dist/sync/v3/workspaceSyncV3TaxonomyFeedProjection.js +185 -0
  1096. package/dist/sync/v3/workspaceSyncV3WorkflowCoverage.d.ts +10 -0
  1097. package/dist/sync/v3/workspaceSyncV3WorkflowCoverage.js +36 -0
  1098. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.d.ts +17 -0
  1099. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.js +143 -0
  1100. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeProjection.d.ts +9 -0
  1101. package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeProjection.js +195 -0
  1102. package/dist/sync/v3/workspaceSyncV3WorkflowWireContract.d.ts +11 -0
  1103. package/dist/sync/v3/workspaceSyncV3WorkflowWireContract.js +12 -0
  1104. package/dist/sync/v3/workspaceSyncV3WorkstreamProjection.d.ts +4 -0
  1105. package/dist/sync/v3/workspaceSyncV3WorkstreamProjection.js +98 -0
  1106. package/dist/sync/v3/workspaceSyncV3WorkstreamTaskOrderProjection.d.ts +9 -0
  1107. package/dist/sync/v3/workspaceSyncV3WorkstreamTaskOrderProjection.js +72 -0
  1108. package/dist/sync/v3/workstreamActivityAuthoritativeRevision.d.ts +11 -0
  1109. package/dist/sync/v3/workstreamActivityAuthoritativeRevision.js +23 -0
  1110. package/dist/sync/v3/workstreamActivityIdentity.d.ts +8 -0
  1111. package/dist/sync/v3/workstreamActivityIdentity.js +14 -0
  1112. package/dist/sync/v3/workstreamCoexistence.d.ts +19 -0
  1113. package/dist/sync/v3/workstreamCoexistence.js +64 -0
  1114. package/dist/sync/v3/workstreamMutationPayload.d.ts +27 -0
  1115. package/dist/sync/v3/workstreamMutationPayload.js +147 -0
  1116. package/dist/sync/v3/workstreamMutationService.d.ts +72 -0
  1117. package/dist/sync/v3/workstreamMutationService.js +256 -0
  1118. package/dist/sync/v3/workstreamTaskOrderMutationService.d.ts +55 -0
  1119. package/dist/sync/v3/workstreamTaskOrderMutationService.js +110 -0
  1120. package/dist/sync/v3/workstreamTaskOrderSync.d.ts +14 -0
  1121. package/dist/sync/v3/workstreamTaskOrderSync.js +25 -0
  1122. package/dist/sync/workspaceContentManifest.d.ts +86 -0
  1123. package/dist/sync/workspaceContentManifest.js +123 -0
  1124. package/dist/sync/workspacePullFeed.d.ts +191 -2
  1125. package/dist/sync/workspacePullFeed.js +523 -135
  1126. package/dist/sync/workspacePushPreparedPlan.d.ts +21 -0
  1127. package/dist/sync/workspacePushPreparedPlan.js +1 -0
  1128. package/dist/sync/workspaceRepair.d.ts +17 -25
  1129. package/dist/sync/workspaceRepair.js +348 -25
  1130. package/dist/sync/workspaceSyncContentDecryption.d.ts +6 -0
  1131. package/dist/sync/workspaceSyncContentDecryption.js +11 -0
  1132. package/dist/sync/workspaceSyncModel.d.ts +227 -5
  1133. package/dist/sync/workspaceSyncModel.js +398 -37
  1134. package/dist/sync/workspaceSyncSnapshotProjection.d.ts +11 -0
  1135. package/dist/sync/workspaceSyncSnapshotProjection.js +101 -0
  1136. package/dist/sync/workspaceSyncState.d.ts +13 -0
  1137. package/dist/sync/workspaceSyncState.js +36 -0
  1138. package/dist/sync/workspaceSyncV2SnapshotBuilder.d.ts +106 -0
  1139. package/dist/sync/workspaceSyncV2SnapshotBuilder.js +193 -0
  1140. package/dist/types.d.ts +31 -15
  1141. package/dist/types.js +1 -3
  1142. package/dist/ui/ai-profile-clients/amazon-nova.svg +1 -0
  1143. package/dist/ui/ai-profile-clients/antigravity.png +0 -0
  1144. package/dist/ui/ai-profile-clients/chatgpt.svg +10 -0
  1145. package/dist/ui/ai-profile-clients/claude-chat.svg +1 -0
  1146. package/dist/ui/ai-profile-clients/claude-code.svg +15 -0
  1147. package/dist/ui/ai-profile-clients/cline-app-icon-light.png +0 -0
  1148. package/dist/ui/ai-profile-clients/cline.svg +16 -0
  1149. package/dist/ui/ai-profile-clients/codex.svg +1 -0
  1150. package/dist/ui/ai-profile-clients/copilot.png +0 -0
  1151. package/dist/ui/ai-profile-clients/cursor.svg +1 -0
  1152. package/dist/ui/ai-profile-clients/deepseek.svg +1 -0
  1153. package/dist/ui/ai-profile-clients/gemini-cli-icon.png +0 -0
  1154. package/dist/ui/ai-profile-clients/gemini.svg +10 -0
  1155. package/dist/ui/ai-profile-clients/grok.svg +31 -0
  1156. package/dist/ui/ai-profile-clients/kiro.svg +11 -0
  1157. package/dist/ui/ai-profile-clients/llama.svg +1 -0
  1158. package/dist/ui/ai-profile-clients/mistral.svg +1 -0
  1159. package/dist/ui/ai-profile-clients/ms_copilot.jpeg +0 -0
  1160. package/dist/ui/ai-profile-clients/openclaw.png +0 -0
  1161. package/dist/ui/ai-profile-clients/perplexity.svg +1 -0
  1162. package/dist/ui/ai-profile-clients/vscode.svg +41 -0
  1163. package/dist/ui/ai-profile-clients/windsurf.svg +11 -0
  1164. package/dist/ui/assets/AiIdentityRosterCard-MZs7lVED.js +1 -0
  1165. package/dist/ui/assets/AiProfilesModule-C3i0LOxe.js +1 -0
  1166. package/dist/ui/assets/AnnotatedAttachmentWorkspace-CBRZ8rca.css +1 -0
  1167. package/dist/ui/assets/AnnotatedAttachmentWorkspace-DVZk5Tln.js +3 -0
  1168. package/dist/ui/assets/AssetTraySortControl-B9k5caQW.css +1 -0
  1169. package/dist/ui/assets/AssetTraySortControl-Kf1pelSy.js +1 -0
  1170. package/dist/ui/assets/ContextAttachmentManager-B8boOs6Q.js +3 -0
  1171. package/dist/ui/assets/DocumentWorkspace-BIBGBfd7.css +1 -0
  1172. package/dist/ui/assets/DocumentWorkspace-DXH4XUsB.js +261 -0
  1173. package/dist/ui/assets/EntityActivityTimeline-BfJbZRdl.css +1 -0
  1174. package/dist/ui/assets/EntityActivityTimeline-BtSTq0ON.js +1 -0
  1175. package/dist/ui/assets/PlanningModule-BPVyEa-f.js +1 -0
  1176. package/dist/ui/assets/PlanningModule-CoIR9hbV.css +1 -0
  1177. package/dist/ui/assets/PlansPage-C2nkK2Bp.css +1 -0
  1178. package/dist/ui/assets/PlansPage-ChqgxALc.js +1 -0
  1179. package/dist/ui/assets/TaskContextUpload-CB3ol0sN.js +1 -0
  1180. package/dist/ui/assets/TaskContextUpload-qmBeUw3u.css +1 -0
  1181. package/dist/ui/assets/TaskSettings-g4ECKNOz.js +12 -0
  1182. package/dist/ui/assets/TaskforceAgentsModule-BazdUwxZ.js +21 -0
  1183. package/dist/ui/assets/TaskforceAgentsModule-D6IC0S7Q.css +1 -0
  1184. package/dist/ui/assets/WorkflowManagerModule-DF10XENz.css +1 -0
  1185. package/dist/ui/assets/WorkflowManagerModule-DWFspC-o.js +1 -0
  1186. package/dist/ui/assets/antigravity-DRKQga2U.png +0 -0
  1187. package/dist/ui/assets/cursor-BM_3k4Y4.svg +1 -0
  1188. package/dist/ui/assets/gemini-cli-icon-dBAVjCcn.png +0 -0
  1189. package/dist/ui/assets/grok-BuodbWaG.svg +31 -0
  1190. package/dist/ui/assets/index-BUplSsv_.js +7 -0
  1191. package/dist/ui/assets/index-gz2EXuoK.css +1 -0
  1192. package/dist/ui/assets/{vendor-dnd-DRzYolkg.js → vendor-dnd-CJ-AjP-Y.js} +1 -1
  1193. package/dist/ui/assets/{vendor-icons-CLnehDTw.js → vendor-icons-BkFLXavV.js} +1 -1
  1194. package/dist/ui/assets/{vendor-markdown-BUxTU7dS.js → vendor-markdown-_lhNCyq-.js} +9 -9
  1195. package/dist/ui/assets/vendor-router-AqJMU8Lz.js +3 -0
  1196. package/dist/ui/assets/vscode-C_7wk1WI.svg +41 -0
  1197. package/dist/ui/branding/logos/logo_dark_bg.png +0 -0
  1198. package/dist/ui/branding/logos/logo_favicon_dark.png +0 -0
  1199. package/dist/ui/branding/logos/logo_favicon_dark.svg +56 -0
  1200. package/dist/ui/branding/logos/logo_favicon_light.png +0 -0
  1201. package/dist/ui/branding/logos/logo_light_bg.png +0 -0
  1202. package/dist/ui/images/Taskforce_Van.webp +0 -0
  1203. package/dist/ui/index.html +6 -6
  1204. package/dist/update/uiUpdateService.d.ts +43 -0
  1205. package/dist/update/uiUpdateService.js +149 -0
  1206. package/dist/update/updateCli.d.ts +15 -0
  1207. package/dist/update/updateCli.js +76 -0
  1208. package/dist/update/updateExecutor.d.ts +40 -0
  1209. package/dist/update/updateExecutor.js +474 -0
  1210. package/dist/update/updateStatus.d.ts +83 -0
  1211. package/dist/update/updateStatus.js +703 -0
  1212. package/dist/utils/aiProfileAvatarPaths.d.ts +14 -0
  1213. package/dist/utils/aiProfileAvatarPaths.js +52 -0
  1214. package/dist/utils/aiProfileDefaultLogo.d.ts +7 -0
  1215. package/dist/utils/aiProfileDefaultLogo.js +84 -0
  1216. package/dist/utils/aiProfileEvents.d.ts +9 -1
  1217. package/dist/utils/annotatedAttachments.d.ts +8 -0
  1218. package/dist/utils/annotatedAttachments.js +17 -1
  1219. package/dist/utils/assetTraySorting.d.ts +25 -0
  1220. package/dist/utils/assetTraySorting.js +83 -0
  1221. package/dist/utils/assignees.d.ts +5 -0
  1222. package/dist/utils/assignees.js +14 -9
  1223. package/dist/utils/authLogin.d.ts +10 -0
  1224. package/dist/utils/authLogin.js +8 -0
  1225. package/dist/utils/authSessionEvents.d.ts +2 -0
  1226. package/dist/utils/authSessionEvents.js +6 -0
  1227. package/dist/utils/avatarUpload.js +5 -5
  1228. package/dist/utils/canonicalReferenceAttachments.d.ts +12 -0
  1229. package/dist/utils/canonicalReferenceAttachments.js +42 -0
  1230. package/dist/utils/cloudAssetDisplay.d.ts +2 -0
  1231. package/dist/utils/cloudAssetDisplay.js +8 -0
  1232. package/dist/utils/constants.d.ts +4 -11
  1233. package/dist/utils/constants.js +6 -65
  1234. package/dist/utils/contextAttachmentPreview.d.ts +11 -0
  1235. package/dist/utils/contextAttachmentPreview.js +8 -0
  1236. package/dist/utils/contextAttachmentUpload.d.ts +10 -0
  1237. package/dist/utils/contextAttachmentUpload.js +151 -0
  1238. package/dist/utils/contextFiles.d.ts +1 -1
  1239. package/dist/utils/contextFiles.js +4 -4
  1240. package/dist/utils/documentNames.js +6 -4
  1241. package/dist/utils/entityReferences.d.ts +14 -0
  1242. package/dist/utils/entityReferences.js +21 -0
  1243. package/dist/utils/httpSetCookie.d.ts +3 -0
  1244. package/dist/utils/httpSetCookie.js +22 -0
  1245. package/dist/utils/imageNoteStoragePaths.d.ts +3 -0
  1246. package/dist/utils/imageNoteStoragePaths.js +19 -0
  1247. package/dist/utils/imageReferences.d.ts +6 -0
  1248. package/dist/utils/imageReferences.js +1 -0
  1249. package/dist/utils/planningArchiveOrchestrator.d.ts +23 -0
  1250. package/dist/utils/planningArchiveOrchestrator.js +37 -0
  1251. package/dist/utils/planningArchivePresentation.d.ts +20 -0
  1252. package/dist/utils/planningArchivePresentation.js +23 -0
  1253. package/dist/utils/planningArchiveReadiness.d.ts +26 -0
  1254. package/dist/utils/planningArchiveReadiness.js +30 -0
  1255. package/dist/utils/planningFavorites.d.ts +7 -0
  1256. package/dist/utils/planningFavorites.js +34 -0
  1257. package/dist/utils/syncEventPresentation.js +53 -0
  1258. package/dist/utils/syncStatusPresentation.d.ts +25 -0
  1259. package/dist/utils/syncStatusPresentation.js +86 -5
  1260. package/dist/utils/taskActivity.d.ts +9 -2
  1261. package/dist/utils/taskActivity.js +61 -0
  1262. package/dist/utils/taskDraftDefaults.d.ts +0 -8
  1263. package/dist/utils/taskDraftDefaults.js +0 -4
  1264. package/dist/utils/taskEvents.d.ts +11 -0
  1265. package/dist/utils/taskEvents.js +6 -0
  1266. package/dist/utils/taskHeaderQuickFilter.d.ts +14 -0
  1267. package/dist/utils/taskHeaderQuickFilter.js +32 -0
  1268. package/dist/utils/taskInvalidation.d.ts +23 -0
  1269. package/dist/utils/taskInvalidation.js +67 -0
  1270. package/dist/utils/taskNormalization.d.ts +2 -1
  1271. package/dist/utils/taskNormalization.js +44 -18
  1272. package/dist/utils/taskReferences.d.ts +16 -0
  1273. package/dist/utils/taskReferences.js +63 -0
  1274. package/dist/utils/taskforceAgentEvents.d.ts +8 -0
  1275. package/dist/utils/taskforceAgentEvents.js +6 -0
  1276. package/dist/utils/taskforceAgentSkillEvents.d.ts +7 -0
  1277. package/dist/utils/taskforceAgentSkillEvents.js +8 -0
  1278. package/dist/utils/uiNotice.d.ts +3 -0
  1279. package/dist/utils/uiNotice.js +1 -1
  1280. package/dist/utils/workspaceResourceEvents.d.ts +7 -0
  1281. package/dist/utils/workspaceResourceEvents.js +6 -0
  1282. package/dist/utils/workspaceSyncPresentation.d.ts +24 -0
  1283. package/dist/utils/workspaceSyncPresentation.js +243 -6
  1284. package/package.json +74 -21
  1285. package/dist/components/features/AgentsModule.d.ts +0 -18
  1286. package/dist/components/features/AgentsModule.js +0 -479
  1287. package/dist/components/features/InitiativesModule.d.ts +0 -22
  1288. package/dist/components/features/InitiativesModule.js +0 -33
  1289. package/dist/components/features/WorkflowsModule.d.ts +0 -27
  1290. package/dist/components/features/WorkflowsModule.js +0 -21
  1291. package/dist/components/features/settings/WorkflowEditor.d.ts +0 -15
  1292. package/dist/components/features/settings/WorkflowEditor.js +0 -245
  1293. package/dist/components/views/panels/DocumentFilterToolbar.d.ts +0 -10
  1294. package/dist/components/views/panels/DocumentFilterToolbar.js +0 -7
  1295. package/dist/components/views/standalone/modals/AccountHubModal.d.ts +0 -61
  1296. package/dist/components/views/standalone/modals/AccountHubModal.js +0 -108
  1297. package/dist/components/views/standalone/modals/EditProfileModal.d.ts +0 -19
  1298. package/dist/components/views/standalone/modals/EditProfileModal.js +0 -11
  1299. package/dist/hooks/ui/useResourceExport.d.ts +0 -21
  1300. package/dist/hooks/ui/useResourceExport.js +0 -87
  1301. package/dist/hooks/ui/useWorkflowTemplates.d.ts +0 -37
  1302. package/dist/hooks/ui/useWorkflowTemplates.js +0 -116
  1303. package/dist/mcp/clientProfileDefaults.d.ts +0 -12
  1304. package/dist/mcp/clientProfileDefaults.js +0 -41
  1305. package/dist/resources/templates/WORKFLOW_V2_POLICY.md +0 -55
  1306. package/dist/resources/templates/environments/aider.yaml +0 -14
  1307. package/dist/resources/templates/environments/antigravity.yaml +0 -10
  1308. package/dist/resources/templates/environments/claude.yaml +0 -10
  1309. package/dist/resources/templates/environments/cline.yaml +0 -10
  1310. package/dist/resources/templates/environments/codex.yaml +0 -13
  1311. package/dist/resources/templates/environments/copilot.yaml +0 -10
  1312. package/dist/resources/templates/environments/cursor.yaml +0 -9
  1313. package/dist/resources/templates/environments/gemini.yaml +0 -9
  1314. package/dist/resources/templates/environments/windsurf.yaml +0 -10
  1315. package/dist/resources/templates/workflow-sources/README.md +0 -9
  1316. package/dist/resources/templates/workflow-sources/workflowDocs.mjs +0 -530
  1317. package/dist/resources/templates/workflow-sources/workflowEditorOverrides.json +0 -1
  1318. package/dist/resources/templates/workflows/collaborate.yaml +0 -109
  1319. package/dist/resources/templates/workflows/do.yaml +0 -87
  1320. package/dist/resources/templates/workflows/evaluate.yaml +0 -116
  1321. package/dist/resources/templates/workflows/execute.yaml +0 -156
  1322. package/dist/resources/templates/workflows/plan.yaml +0 -118
  1323. package/dist/resources/templates/workflows/review.yaml +0 -114
  1324. package/dist/services/formatTransformers.d.ts +0 -29
  1325. package/dist/services/formatTransformers.js +0 -56
  1326. package/dist/services/templateEngine.d.ts +0 -46
  1327. package/dist/services/templateEngine.js +0 -148
  1328. package/dist/shared/workflowDefaults.d.ts +0 -9
  1329. package/dist/shared/workflowDefaults.js +0 -11
  1330. package/dist/ui/agent-logos/Gemini CLI.jpeg +0 -0
  1331. package/dist/ui/agent-logos/antigravity.jpeg +0 -0
  1332. package/dist/ui/agent-logos/chatgpt.png +0 -0
  1333. package/dist/ui/agent-logos/claude-code.jpeg +0 -0
  1334. package/dist/ui/agent-logos/codex.jpeg +0 -0
  1335. package/dist/ui/agent-logos/cursor.png +0 -0
  1336. package/dist/ui/agent-logos/openclaw.jpeg +0 -0
  1337. package/dist/ui/agent-logos/windsurf.png +0 -0
  1338. package/dist/ui/assets/AgentsModule-C4LcqhcZ.js +0 -1
  1339. package/dist/ui/assets/AnnotatedAttachmentWorkspace-B-Dq22d2.js +0 -3
  1340. package/dist/ui/assets/AnnotatedAttachmentWorkspace-BVKew-mH.css +0 -1
  1341. package/dist/ui/assets/ContextAttachmentManager-DsXPTvi-.js +0 -3
  1342. package/dist/ui/assets/DocumentWorkspace-CxA1wO3U.js +0 -252
  1343. package/dist/ui/assets/DocumentWorkspace-D4rJKXzd.css +0 -1
  1344. package/dist/ui/assets/EntityActivityTimeline-B8nSe8l3.js +0 -1
  1345. package/dist/ui/assets/EntityActivityTimeline-DyqvvhuF.css +0 -1
  1346. package/dist/ui/assets/InitiativesModule-VY95v38E.js +0 -1
  1347. package/dist/ui/assets/PlansPage-CQbKDv1a.js +0 -1
  1348. package/dist/ui/assets/PlansPage-DeAzWYTb.css +0 -1
  1349. package/dist/ui/assets/TaskContextUpload-DvDlNpHC.js +0 -1
  1350. package/dist/ui/assets/TaskSettings-CUWbYYtP.js +0 -12
  1351. package/dist/ui/assets/WorkflowsModule-CgM3Jako.js +0 -5
  1352. package/dist/ui/assets/documentReferences-Do9YjrS3.js +0 -1
  1353. package/dist/ui/assets/index--mh3pktj.js +0 -5
  1354. package/dist/ui/assets/index-BawaaEXS.css +0 -1
  1355. package/dist/ui/assets/vendor-router-BbWMxlnO.js +0 -3
  1356. package/dist/ui/branding/logos/logo_black_01.png +0 -0
  1357. package/dist/ui/branding/logos/logo_black_02.png +0 -0
  1358. package/dist/ui/branding/logos/logo_white_01.png +0 -0
  1359. package/dist/ui/branding/logos/logo_white_02.png +0 -0
  1360. package/scripts/generate-workflow-templates.mjs +0 -134
  1361. package/src/resources/templates/WORKFLOW_V2_POLICY.md +0 -55
  1362. package/src/resources/templates/environments/aider.yaml +0 -14
  1363. package/src/resources/templates/environments/antigravity.yaml +0 -10
  1364. package/src/resources/templates/environments/claude.yaml +0 -10
  1365. package/src/resources/templates/environments/cline.yaml +0 -10
  1366. package/src/resources/templates/environments/codex.yaml +0 -13
  1367. package/src/resources/templates/environments/copilot.yaml +0 -10
  1368. package/src/resources/templates/environments/cursor.yaml +0 -9
  1369. package/src/resources/templates/environments/gemini.yaml +0 -9
  1370. package/src/resources/templates/environments/windsurf.yaml +0 -10
  1371. package/src/resources/templates/workflow-sources/README.md +0 -9
  1372. package/src/resources/templates/workflow-sources/workflowDocs.mjs +0 -530
  1373. package/src/resources/templates/workflow-sources/workflowEditorOverrides.json +0 -1
  1374. package/src/resources/templates/workflows/collaborate.yaml +0 -109
  1375. package/src/resources/templates/workflows/do.yaml +0 -87
  1376. package/src/resources/templates/workflows/evaluate.yaml +0 -116
  1377. package/src/resources/templates/workflows/execute.yaml +0 -156
  1378. package/src/resources/templates/workflows/plan.yaml +0 -118
  1379. package/src/resources/templates/workflows/review.yaml +0 -114
  1380. /package/dist/ui/branding/logos/{logo_dark.svg → logo_dark_no_bg.svg} +0 -0
  1381. /package/dist/ui/branding/logos/{logo_favicon.svg → logo_favicon_light.svg} +0 -0
  1382. /package/dist/ui/branding/logos/{logo_light.svg → logo_light_no_bg.svg} +0 -0
@@ -1,252 +0,0 @@
1
- import{j as e,r as i,s as an,R as ve}from"./vendor-react-CKJs5o3c.js";import{h as $e,f as P,t as L,i as yt,j as gt,k as sn,R as rn,m as M,M as on,n as xt,o as cn,q as ln}from"./index--mh3pktj.js";import{q as dn,x as un,w as mn,ax as hn,ay as pn,y as qe,i as fn,Z as Qe,X as Rt,az as _t,e as Ye,aA as At,aB as vn,aC as wn,a as kn,j as yn,aD as gn,aE as xn,aF as _n,t as Ee,aG as bn,r as Sn,p as jn,aH as bt,aw as Ve,aI as Cn,aJ as Nn,T as Tn,R as En,aK as Rn,B as An,U as In,S as $n}from"./vendor-icons-CLnehDTw.js";import{g as Ln}from"./documentReferences-Do9YjrS3.js";import{s as Dn,M as Re,r as Ae}from"./vendor-markdown-BUxTU7dS.js";import"./vendor-dnd-DRzYolkg.js";import"./vendor-router-BbWMxlnO.js";const Bn="_index_1sp0v_1",Mn="_header_1sp0v_8",Pn="_title_1sp0v_23",zn="_search_1sp0v_35",Fn="_searchIcon_1sp0v_41",On="_searchInput_1sp0v_50",Hn="_list_1sp0v_67",Wn="_state_1sp0v_79",Gn="_stateError_1sp0v_87",Kn="_item_1sp0v_94",Un="_itemActive_1sp0v_116",Jn="_itemIcon_1sp0v_126",Vn="_itemBody_1sp0v_136",qn="_itemTitle_1sp0v_144",Qn="_itemTask_1sp0v_156",Yn="_itemBadge_1sp0v_167",Xn="_itemMeta_1sp0v_180",Zn="_itemMetaDetails_1sp0v_191",ea="_itemMetaReference_1sp0v_198",A={index:Bn,header:Mn,title:Pn,search:zn,searchIcon:Fn,searchInput:On,list:Hn,state:Wn,stateError:Gn,item:Kn,itemActive:Un,itemIcon:Jn,itemBody:Vn,itemTitle:qn,itemTask:Qn,itemBadge:Yn,itemMeta:Xn,itemMetaDetails:Zn,itemMetaReference:ea};function Xe(t){let l=t;try{l=decodeURIComponent(t)}catch{l=t}return l.trim().replace(/\\/g,"/").replace(/^\/+/,"").replace(/^\.\//,"").replace(/^\.taskforce\//,"")}function ta(t,l){return!!(t===l||t.endsWith(`/${l}`)||l.endsWith(`/${t}`))}function St(t){const l=Xe(String(t||""));if(!l)return null;const m=l.match(/(^|\/)(asset-[a-f0-9]{32})(?=[^/]*$)/i);return m?.[2]?m[2].toLowerCase():null}function et(t){return t.attachmentState==="attached"||t.attachmentState==="unattached"?t.attachmentState:(typeof t.attachmentCount=="number"&&Number.isFinite(t.attachmentCount)?t.attachmentCount:0)>0||t.taskId?"attached":"unattached"}function na(t,l,m,s){const c=l.trim().toLowerCase();return t.filter(u=>{const y=`${$e(u)} ${u.originalFilename||""}`.toLowerCase(),v=c.length===0||y.includes(c),b=m.length===0||m.includes(u.docType),h=et(u),g=s.length===0||s.includes(h);return v&&b&&g})}function aa({docType:t}){switch(t){case"implementation-plan":return e.jsx(fn,{size:13});case"review":return e.jsx(qe,{size:13});case"walkthrough":return e.jsx(pn,{size:13});default:return e.jsx(hn,{size:13})}}function sa(t){return t<1024?`${t}B`:t<1024*1024?`${(t/1024).toFixed(1)}KB`:`${(t/(1024*1024)).toFixed(1)}MB`}function ra(t){if(!t)return"";const l=new Date(t),s=new Date().getTime()-l.getTime(),c=Math.floor(s/(1e3*60*60*24));return c===0?"Today":c===1?"Yesterday":c<7?`${c}d ago`:c<30?`${Math.floor(c/7)}w ago`:l.toLocaleDateString()}function ia(t,l){t.key!=="Enter"&&t.key!==" "||(t.preventDefault(),l())}function oa({documents:t,selectedDocId:l,loading:m,error:s,searchQuery:c,taskById:u,onSearchChange:w,onSelect:y,onCloseTray:v,hasActiveFilters:b}){return e.jsxs("div",{className:A.index,children:[e.jsxs("div",{className:A.header,children:[e.jsxs("span",{className:A.title,children:[e.jsx(dn,{size:14}),"Documents"]}),v?e.jsx("button",{type:"button",className:"tf-control-icon",onClick:v,title:"Collapse document tray","aria-label":"Collapse document tray",children:e.jsx(un,{size:16})}):null]}),e.jsxs("div",{className:A.search,children:[e.jsx(mn,{size:12,className:A.searchIcon}),e.jsx("input",{type:"text",placeholder:"Search documents…",value:c,onChange:h=>w(h.target.value),className:A.searchInput})]}),e.jsxs("div",{className:`${A.list} tf-scrollbar`,children:[m&&e.jsx("div",{className:A.state,children:"Loading documents…"}),!m&&s&&e.jsx("div",{className:A.stateError,children:s}),!m&&!s&&t.length===0&&e.jsx("div",{className:A.state,children:b?"No documents match your filters.":"No documents found. Documents added as task attachments will appear here."}),!m&&t.map(h=>{const g=h.taskId?u.get(h.taskId):null,O=h.id===l,T=$e(h),C=et(h),D=typeof h.attachmentCount=="number"&&Number.isFinite(h.attachmentCount)?h.attachmentCount:h.taskId?1:0,E=D>1?`${D} tasks linked`:D===1?g?.title||"1 task linked":null;return e.jsxs("div",{role:"button",tabIndex:0,className:`${A.item} ${O?A.itemActive:""}`,onClick:()=>y(h),onKeyDown:I=>ia(I,()=>y(h)),children:[e.jsx("div",{className:A.itemIcon,children:e.jsx(aa,{docType:h.docType})}),e.jsxs("div",{className:A.itemBody,children:[e.jsx("span",{className:A.itemTitle,title:T,children:T}),C==="unattached"&&e.jsx("span",{className:A.itemBadge,children:"Unattached"}),E&&e.jsx("span",{className:A.itemTask,title:E,children:E}),e.jsxs("span",{className:A.itemMeta,children:[e.jsxs("span",{className:A.itemMetaDetails,children:[sa(h.sizeBytes),h.updatedAt&&e.jsxs(e.Fragment,{children:[" · ",ra(h.updatedAt)]})]}),h.referenceLabel&&e.jsx("span",{className:A.itemMetaReference,children:h.referenceLabel})]})]})]},h.id)})]})]})}function Ie(t){return function(l){return Dn(l,t)}}const ca="_viewer_v1pk0_1",la="_viewerMonochrome_v1pk0_10",da="_metaDocumentName_v1pk0_10",ua="_viewerEditMode_v1pk0_14",ma="_meta_v1pk0_10",ha="_metaLeft_v1pk0_30",pa="_metaRenameRow_v1pk0_49",fa="_typeBadge_v1pk0_56",va="_typeBadgeImplementationPlan_v1pk0_71",wa="_typeBadgeReview_v1pk0_77",ka="_typeBadgeWalkthrough_v1pk0_83",ya="_metaTaskName_v1pk0_89",ga="_statusBadge_v1pk0_98",xa="_metaDate_v1pk0_113",_a="_metaSize_v1pk0_114",ba="_actions_v1pk0_122",Sa="_actionBtn_v1pk0_129",ja="_dangerBtn_v1pk0_156",Ca="_generateBtn_v1pk0_167",Na="_editBtn_v1pk0_178",Ta="_saveBtn_v1pk0_189",Ea="_layoutToggle_v1pk0_205",Ra="_layoutBtn_v1pk0_213",Aa="_layoutBtnActive_v1pk0_229",Ia="_saveStatus_v1pk0_234",$a="_saveStatusSaved_v1pk0_241",La="_saveStatusError_v1pk0_245",Da="_unsaved_v1pk0_250",Ba="_viewerContent_v1pk0_256",Ma="_viewerBody_v1pk0_265",Pa="_viewerBodyFullWidth_v1pk0_273",za="_viewerMain_v1pk0_277",Fa="_reviewRail_v1pk0_285",Oa="_printHint_v1pk0_291",Ha="_reviewSection_v1pk0_298",Wa="_reviewHeader_v1pk0_307",Ga="_reviewTitle_v1pk0_315",Ka="_reviewSubtitle_v1pk0_324",Ua="_reviewControls_v1pk0_331",Ja="_reviewSelect_v1pk0_338",Va="_reviewSessionMeta_v1pk0_342",qa="_reviewStatusResolved_v1pk0_350",Qa="_reviewSessionLabel_v1pk0_356",Ya="_reviewTitleEditRow_v1pk0_361",Xa="_reviewSessionTimestamp_v1pk0_368",Za="_reviewAnchorLabel_v1pk0_372",es="_reviewComposer_v1pk0_378",ts="_reviewAnchorChip_v1pk0_385",ns="_reviewAnchorSnippet_v1pk0_398",as="_reviewAnchorClear_v1pk0_403",ss="_reviewCommentActions_v1pk0_416",rs="_reviewCommentAction_v1pk0_416",is="_reviewCommentEditor_v1pk0_437",os="_viewerState_v1pk0_443",cs="_viewerStateError_v1pk0_450",ls="_editorArea_v1pk0_457",ds="_editorPane_v1pk0_464",us="_editorLayoutSplit_v1pk0_472",ms="_previewPane_v1pk0_473",hs="_editorLayoutEditor_v1pk0_477",ps="_editorLayoutPreview_v1pk0_478",fs="_editorPaneLabel_v1pk0_482",vs="_editorTextarea_v1pk0_494",ws="_markdownSurface_v1pk0_536",ks="_attachModalBody_v1pk0_745",ys="_attachModalCopy_v1pk0_752",gs="_attachModalError_v1pk0_759",xs="_attachTaskList_v1pk0_772",_s="_attachTaskRow_v1pk0_781",bs="_attachTaskTitle_v1pk0_808",Ss="_attachTaskInfo_v1pk0_814",js="_attachTaskReference_v1pk0_822",Cs="_attachTaskMeta_v1pk0_829",Ns="_attachEmptyState_v1pk0_836",r={viewer:ca,viewerMonochrome:la,metaDocumentName:da,viewerEditMode:ua,meta:ma,metaLeft:ha,metaRenameRow:pa,typeBadge:fa,typeBadgeImplementationPlan:va,typeBadgeReview:wa,typeBadgeWalkthrough:ka,metaTaskName:ya,statusBadge:ga,metaDate:xa,metaSize:_a,actions:ba,actionBtn:Sa,dangerBtn:ja,generateBtn:Ca,editBtn:Na,saveBtn:Ta,layoutToggle:Ea,layoutBtn:Ra,layoutBtnActive:Aa,saveStatus:Ia,saveStatusSaved:$a,saveStatusError:La,unsaved:Da,viewerContent:Ba,viewerBody:Ma,viewerBodyFullWidth:Pa,viewerMain:za,reviewRail:Fa,printHint:Oa,reviewSection:Ha,reviewHeader:Wa,reviewTitle:Ga,reviewSubtitle:Ka,reviewControls:Ua,reviewSelect:Ja,reviewSessionMeta:Va,reviewStatusResolved:qa,reviewSessionLabel:Qa,reviewTitleEditRow:Ya,reviewSessionTimestamp:Xa,reviewAnchorLabel:Za,reviewComposer:es,reviewAnchorChip:ts,reviewAnchorSnippet:ns,reviewAnchorClear:as,reviewCommentActions:ss,reviewCommentAction:rs,reviewCommentEditor:is,viewerState:os,viewerStateError:cs,editorArea:ls,editorPane:ds,editorLayoutSplit:us,previewPane:ms,editorLayoutEditor:hs,editorLayoutPreview:ps,editorPaneLabel:fs,editorTextarea:vs,markdownSurface:ws,attachModalBody:ks,attachModalCopy:ys,attachModalError:gs,attachTaskList:xs,attachTaskRow:_s,attachTaskTitle:bs,attachTaskInfo:Ss,attachTaskReference:js,attachTaskMeta:Cs,attachEmptyState:Ns},Ts="_overlay_1unik_1",Es="_modal_1unik_12",Rs="_header_1unik_16",As="_title_1unik_20",Is="_docName_1unik_24",$s="_body_1unik_34",Ls="_state_1unik_41",Ds="_stateError_1unik_52",Bs="_stateDone_1unik_63",Ms="_toolbar_1unik_84",Ps="_toolbarCount_1unik_95",zs="_toolbarActions_1unik_100",Fs="_tree_1unik_105",Os="_taskRow_1unik_113",Hs="_taskRowDimmed_1unik_126",Ws="_taskCheck_1unik_130",Gs="_taskExpandBtn_1unik_139",Ks="_taskExpandSpacer_1unik_155",Us="_taskTitle_1unik_160",Js="_taskBadge_1unik_169",Vs="_footer_1unik_179",S={overlay:Ts,modal:Es,header:Rs,title:As,docName:Is,body:$s,state:Ls,stateError:Ds,stateDone:Bs,toolbar:Ms,toolbarCount:Ps,toolbarActions:zs,tree:Fs,taskRow:Os,taskRowDimmed:Hs,taskCheck:Ws,taskExpandBtn:Gs,taskExpandSpacer:Ks,taskTitle:Us,taskBadge:Js,footer:Vs},qs={1:"Low",2:"Medium",3:"High"};function we(t,l){return t.map(m=>({...m,selected:l,children:we(m.children,l)}))}function It(t,l,m){return t.map(s=>s.idempotencyKey===l?{...s,selected:m,children:we(s.children,m)}:{...s,children:It(s.children,l,m)})}function Ze(t){let l=0;for(const m of t)m.selected&&l++,l+=Ze(m.children);return l}function $t({node:t,depth:l,onToggle:m}){const[s,c]=i.useState(!0),u=t.children.length>0,w=l*20;return e.jsxs("div",{children:[e.jsxs("div",{className:`${S.taskRow} ${t.selected?"":S.taskRowDimmed}`,style:{paddingLeft:`${12+w}px`},children:[e.jsx("button",{className:S.taskCheck,onClick:()=>m(t.idempotencyKey,!t.selected),title:t.selected?"Deselect":"Select",children:t.selected?e.jsx(vn,{size:14,style:{color:"var(--brand-primary-strong)"}}):e.jsx(wn,{size:14,style:{color:"var(--text-muted)"}})}),u?e.jsx("button",{className:S.taskExpandBtn,onClick:()=>c(y=>!y),children:s?e.jsx(kn,{size:12}):e.jsx(yn,{size:12})}):e.jsx("span",{className:S.taskExpandSpacer}),e.jsx("span",{className:S.taskTitle,title:t.description||void 0,children:t.title}),e.jsx("span",{className:S.taskBadge,style:{color:yt(t.type),borderColor:yt(t.type)},children:t.type}),e.jsx("span",{className:S.taskBadge,style:{color:gt(t.priority),borderColor:gt(t.priority)},children:qs[t.priority]})]}),u&&s&&e.jsx("div",{children:t.children.map(y=>e.jsx($t,{node:y,depth:l+1,onToggle:m},y.idempotencyKey))})]})}function Qs({content:t,docTitle:l,apiBaseUrl:m="",onClose:s,onGenerated:c}){const[u,w]=i.useState("preview"),[y,v]=i.useState(null),[b,h]=i.useState([]),[g,O]=i.useState(!0),[T,C]=i.useState(0),[D,E]=i.useState(null);i.useEffect(()=>{let x=!1;return O(!0),v(null),P("/api/taskforce/documents/generate-tasks/preview",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})},m).then(j=>j.json()).then(j=>{if(!x){if(j.error)throw new Error(j.error);h(j.tasks||[]),w("preview")}}).catch(j=>{x||(v(j?.message||"Failed to parse plan"),w("error"))}).finally(()=>{x||O(!1)}),()=>{x=!0}},[t,m]);const I=i.useCallback((x,j)=>{h(F=>It(F,x,j))},[]),z=()=>h(x=>we(x,!0)),H=()=>h(x=>we(x,!1)),q=Ze(b),Q=async()=>{w("generating"),E(null);try{const x=await P("/api/taskforce/documents/generate-tasks/commit",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({tasks:b})},m),j=await x.json().catch(()=>({}));if(!x.ok)throw new Error(j.error||`Generation failed (${x.status})`);C(j.created??0),w("done"),c(j.created??0)}catch(x){E(x?.message||"Generation failed"),w("error")}};return e.jsx("div",{className:S.overlay,onClick:x=>{x.target===x.currentTarget&&s()},children:e.jsxs("div",{className:`tf-surface-modal tf-modal-shell ${S.modal}`,children:[e.jsxs("div",{className:`tf-modal-header ${S.header}`,children:[e.jsxs("div",{className:`tf-modal-title ${S.title}`,children:[e.jsx(Qe,{size:16,style:{color:"var(--brand-primary-strong)"}}),"Generate Tasks from Plan"]}),e.jsx("span",{className:S.docName,children:l}),e.jsx("button",{className:"tf-control-icon",onClick:s,title:"Close",children:e.jsx(Rt,{size:16})})]}),e.jsxs("div",{className:S.body,children:[g&&e.jsxs("div",{className:S.state,children:[e.jsx(_t,{size:20,className:L.docSpinning}),"Parsing plan…"]}),!g&&u==="error"&&e.jsxs("div",{className:S.stateError,children:[e.jsx(Ye,{size:16}),y||D||"An error occurred"]}),!g&&u==="done"&&e.jsxs("div",{className:S.stateDone,children:[e.jsx(At,{size:24,style:{color:"var(--status-success)"}}),e.jsxs("strong",{children:[T," task",T!==1?"s":""," created"]}),e.jsx("p",{children:"Tasks are now in your board. Switch to the Kanban or Hierarchy view to see them."})]}),!g&&(u==="preview"||u==="confirm"||u==="generating")&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:S.toolbar,children:[e.jsxs("span",{className:S.toolbarCount,children:[q," of ",Ze(we(b,!0))," tasks selected"]}),e.jsxs("div",{className:S.toolbarActions,children:[e.jsx("button",{className:"tf-control-icon",onClick:z,children:"Select all"}),e.jsx("button",{className:"tf-control-icon",onClick:H,children:"Deselect all"})]})]}),b.length===0?e.jsx("div",{className:S.state,children:"No tasks could be parsed from this document. Make sure the document uses ## H2 headings for phases and bullet points for tasks."}):e.jsx("div",{className:`${S.tree} tf-scrollbar`,children:b.map(x=>e.jsx($t,{node:x,depth:0,onToggle:I},x.idempotencyKey))})]})]}),!g&&u!=="done"&&u!=="error"&&e.jsxs("div",{className:S.footer,children:[e.jsx("button",{className:"tf-button-secondary",onClick:s,children:"Cancel"}),e.jsx("button",{className:"tf-button-primary",onClick:Q,disabled:q===0||u==="generating",children:u==="generating"?e.jsxs(e.Fragment,{children:[e.jsx(_t,{size:13,className:L.docSpinning})," Generating…"]}):e.jsxs(e.Fragment,{children:[e.jsx(Qe,{size:13})," Generate ",q," task",q!==1?"s":""]})})]}),!g&&u==="done"&&e.jsx("div",{className:S.footer,children:e.jsx("button",{className:"tf-button-primary",onClick:s,children:"Done"})})]})})}const Ys={"implementation-plan":"Implementation Plan",review:"Review",walkthrough:"Walkthrough",planning:"Planning",other:"Document"},Xs={"implementation-plan":r.typeBadgeImplementationPlan,review:r.typeBadgeReview,walkthrough:r.typeBadgeWalkthrough,planning:void 0,other:void 0},Zs={editor:r.editorLayoutEditor,split:r.editorLayoutSplit,preview:r.editorLayoutPreview},er=1500,tr=`
2
- @page {
3
- margin: 0.94in 1.02in 1in;
4
- }
5
-
6
- html,
7
- body {
8
- margin: 0;
9
- padding: 0;
10
- background: #fff;
11
- color: #111;
12
- -webkit-print-color-adjust: exact;
13
- print-color-adjust: exact;
14
- }
15
-
16
- body {
17
- font: 12.15pt/1.66 Georgia, "Times New Roman", Times, serif;
18
- letter-spacing: 0;
19
- text-rendering: optimizeLegibility;
20
- }
21
-
22
- .tf-print-document {
23
- max-width: 5.95in;
24
- margin: 0 auto;
25
- overflow: visible;
26
- color: #171717;
27
- }
28
-
29
- .tf-print-document > :first-child {
30
- margin-top: 0;
31
- }
32
-
33
- .tf-print-document > :last-child {
34
- margin-bottom: 0;
35
- }
36
-
37
- .tf-print-document h1,
38
- .tf-print-document h2,
39
- .tf-print-document h3,
40
- .tf-print-document h4 {
41
- font-family: "Helvetica Neue", "Arial Nova", Arial, sans-serif;
42
- color: #101010;
43
- font-weight: 700;
44
- line-height: 1.08;
45
- letter-spacing: -0.03em;
46
- break-after: avoid-page;
47
- page-break-after: avoid;
48
- }
49
-
50
- .tf-print-document h1 {
51
- font-size: 32pt;
52
- font-weight: 800;
53
- line-height: 0.98;
54
- letter-spacing: -0.055em;
55
- margin: 0 0 1.18em;
56
- padding: 0 0 0.38em;
57
- border-bottom: 2px solid #d8d8d8;
58
- max-width: 84%;
59
- }
60
-
61
- .tf-print-document h1 + p,
62
- .tf-print-document h1 + ul,
63
- .tf-print-document h1 + ol {
64
- margin-top: 0.4em;
65
- }
66
-
67
- .tf-print-document h2,
68
- .tf-print-document h3,
69
- .tf-print-document h4 {
70
- margin-bottom: 0.28em;
71
- }
72
-
73
- .tf-print-document h2 {
74
- font-size: 16.5pt;
75
- font-weight: 750;
76
- margin-top: 2.2em;
77
- padding-bottom: 0.22em;
78
- border-bottom: 1px solid #dfdfdf;
79
- }
80
-
81
- .tf-print-document h3 {
82
- font-size: 13.3pt;
83
- font-weight: 700;
84
- margin-top: 1.48em;
85
- }
86
-
87
- .tf-print-document h4 {
88
- font-size: 11.2pt;
89
- font-weight: 700;
90
- margin-top: 1.14em;
91
- text-transform: uppercase;
92
- letter-spacing: 0.08em;
93
- }
94
-
95
- .tf-print-document p,
96
- .tf-print-document ul,
97
- .tf-print-document ol,
98
- .tf-print-document blockquote,
99
- .tf-print-document table,
100
- .tf-print-document pre,
101
- .tf-print-document hr {
102
- margin: 0.78em 0;
103
- }
104
-
105
- .tf-print-document ul,
106
- .tf-print-document ol {
107
- padding-left: 1.1em;
108
- }
109
-
110
- .tf-print-document li {
111
- margin: 0.24em 0;
112
- padding-left: 0.1em;
113
- }
114
-
115
- .tf-print-document li > ul,
116
- .tf-print-document li > ol {
117
- margin-top: 0.34em;
118
- margin-bottom: 0.2em;
119
- }
120
-
121
- .tf-print-document a {
122
- color: #121212;
123
- text-decoration: underline;
124
- text-underline-offset: 2px;
125
- text-decoration-thickness: 0.65px;
126
- }
127
-
128
- .tf-print-document code {
129
- font-family: "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", monospace;
130
- font-size: 0.78em;
131
- background: transparent;
132
- color: #4a4a4a;
133
- border: 0;
134
- padding: 0;
135
- border-radius: 0;
136
- overflow-wrap: anywhere;
137
- }
138
-
139
- .tf-print-section-label {
140
- font-family: "Helvetica Neue", "Arial Nova", Arial, sans-serif;
141
- font-size: 10.7pt;
142
- font-weight: 700;
143
- line-height: 1.18;
144
- letter-spacing: 0.12em;
145
- text-transform: uppercase;
146
- color: #191919;
147
- margin-top: 2.2em;
148
- margin-bottom: 0.58em;
149
- padding-bottom: 0;
150
- border-bottom: 0;
151
- break-after: avoid-page;
152
- page-break-after: avoid;
153
- }
154
-
155
- .tf-print-section-label strong {
156
- font-weight: inherit;
157
- }
158
-
159
- .tf-print-document pre {
160
- background: #fafafa;
161
- border: 1px solid #e1e1e1;
162
- border-radius: 6px;
163
- padding: 10pt 11pt;
164
- overflow: visible;
165
- white-space: pre-wrap;
166
- word-break: break-word;
167
- break-inside: avoid-page;
168
- page-break-inside: avoid;
169
- }
170
-
171
- .tf-print-document pre code {
172
- background: transparent;
173
- padding: 0;
174
- border-radius: 0;
175
- white-space: inherit;
176
- word-break: inherit;
177
- }
178
-
179
- .tf-print-document blockquote {
180
- border-left: 2px solid #9f9f9f;
181
- color: #434343;
182
- margin-left: 0;
183
- padding-left: 9pt;
184
- font-style: italic;
185
- }
186
-
187
- .tf-print-document table {
188
- width: 100%;
189
- border-collapse: collapse;
190
- table-layout: fixed;
191
- break-inside: auto;
192
- page-break-inside: auto;
193
- }
194
-
195
- .tf-print-document thead {
196
- display: table-header-group;
197
- }
198
-
199
- .tf-print-document tr {
200
- break-inside: avoid-page;
201
- page-break-inside: avoid;
202
- }
203
-
204
- .tf-print-document th,
205
- .tf-print-document td {
206
- border: 1px solid #dbdbdb;
207
- padding: 6.5pt 7.5pt;
208
- text-align: left;
209
- vertical-align: top;
210
- word-break: break-word;
211
- background: #fff;
212
- }
213
-
214
- .tf-print-document th {
215
- background: #f7f7f7;
216
- color: #1e1e1e;
217
- font-size: 9.4pt;
218
- font-weight: 680;
219
- letter-spacing: 0.018em;
220
- text-transform: uppercase;
221
- }
222
-
223
- .tf-print-document hr {
224
- border: 0;
225
- border-top: 1px solid #e1e1e1;
226
- }
227
-
228
- .tf-print-document img {
229
- max-width: 100%;
230
- height: auto;
231
- break-inside: avoid-page;
232
- page-break-inside: avoid;
233
- }
234
-
235
- .tf-print-document input[type="checkbox"] {
236
- accent-color: #111;
237
- margin-right: 0.45em;
238
- }
239
- `;function nr(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function jt(t){return t?new Date(t).toLocaleString():"—"}function ar(){const t=s=>!s||!Array.isArray(s.children)?!1:s.children.some(c=>c?c.type==="element"&&c.tagName==="input"&&c.properties?.type==="checkbox"?!0:t(c):!1),l=s=>!s||!Array.isArray(s.children)?!1:s.children.some(c=>typeof c?.checked=="boolean"?!0:t(c)),m=s=>{const c=ve.Children.toArray(s).filter(v=>typeof v!="string"?!0:v.trim().length>0);if(c.length!==1)return null;const u=c[0];if(!ve.isValidElement(u)||u.type!=="strong")return null;const w=u.props,y=ve.Children.toArray(w.children).join("").trim();return y||null};return{input({type:s,checked:c,...u}){return s!=="checkbox"?e.jsx("input",{type:s,checked:c,...u}):e.jsx("input",{...u,type:"checkbox",checked:!!c,disabled:!0,readOnly:!0})},ul({children:s,node:c,...u}){const w=l(c);return e.jsx("ul",{...u,style:w?{paddingLeft:"1.2em"}:void 0,children:s})},ol({children:s,node:c,...u}){const w=l(c);return e.jsx("ol",{...u,style:w?{paddingLeft:"1.2em"}:void 0,children:s})},li({children:s,node:c,...u}){const w=typeof c?.checked=="boolean"||t(c);return e.jsx("li",{...u,style:w?{listStyleType:"none",listStyle:"none",marginLeft:0}:void 0,children:s})},p({children:s,...c}){const u=m(s);return u?e.jsx("p",{...c,className:"tf-print-section-label",children:u}):e.jsx("p",{...c,children:s})}}}function sr(t){const l=an.renderToStaticMarkup(e.jsx("div",{className:"tf-print-document",children:e.jsx(Re,{remarkPlugins:[Ae],rehypePlugins:[Ie],components:ar(),children:t})}));return`<!doctype html>
240
- <html lang="en">
241
- <head>
242
- <meta charset="utf-8" />
243
- <meta name="viewport" content="width=device-width, initial-scale=1" />
244
- <title>Taskforce print document</title>
245
- <style>${tr}</style>
246
- </head>
247
- <body>${l}</body>
248
- </html>`}async function rr(t,l){try{await l.fonts?.ready}catch{}await new Promise(m=>{const s=t.requestAnimationFrame?.bind(t)??(c=>window.setTimeout(()=>c(0),0));s(()=>s(()=>m()))})}function ir(t){return window.setTimeout(t,er)}function Ct(t){try{return new Date(t).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function Nt(t){return t?t.kind==="document"?"Entire document":t.kind==="quote"?t.quote?`Quote: "${t.quote}"`:"Quoted text":t.kind==="line-range"?t.startLine===t.endLine?`Line ${t.startLine}`:`Lines ${t.startLine}-${t.endLine}`:null:null}function or(t){return t.authorActor?.label?t.authorActor.label:t.authorActorId==="user"||t.authorActorId==="human"?"You":t.authorActorId?t.authorActorId:"Reviewer"}function Tt(t){return t.replace(/\s+/g," ").trim()}function cr(t,l){if(!l)return 0;let m=0,s=0;for(;s>=0&&(s=t.indexOf(l,s),!(s<0));)m+=1,s+=l.length;return m}function lr(t,l,m){const s=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let c=s.nextNode(),u=0;for(;c;){const w=c.textContent||"";if(c===l)return u+Math.max(0,Math.min(m,w.length));u+=w.length,c=s.nextNode()}return null}function dr(t,l,m){const s=m.replace(/\s+/g," ").trim();if(!s)return null;const c=t.textContent||"",u=Tt(c),w=[];let y=u.indexOf(s);for(;y>=0;)w.push(y),y=u.indexOf(s,y+s.length);let v=null;const b=lr(t,l.startContainer,l.startOffset);if(b!==null){const C=Tt(c.slice(0,b));v=cr(C,s)}const h=v!==null&&v>=0&&v<w.length?v:w.length===1?0:null,g=h!==null?w[h]:w[0]??-1;if(g<0)return{kind:"quote",quote:s,occurrenceIndex:v};const O=u.slice(Math.max(0,g-40),g).trim()||null,T=u.slice(g+s.length,g+s.length+40).trim()||null;return{kind:"quote",quote:s,occurrenceIndex:h,prefix:O,suffix:T}}function ur(t,l,m){if(l<0)return t;const s=t.split(`
249
- `);let c=-1;const u=/^(\s*(?:[-*+]|\d+\.)\s+)\[( |x|X)\](.*)$/,w=m?"x":" ";return s.map(v=>{const b=v.match(u);return!b||(c+=1,c!==l)?v:`${b[1]}[${w}]${b[3]}`}).join(`
250
- `)}function mr({doc:t,taskTitle:l,tasks:m=[],apiBaseUrl:s="",onSaved:c,onDeleted:u,onBackToTask:w,enableTaskGeneration:y=!1}){const v=$e(t),[b,h]=i.useState(v),g=b,O=sn({...t,displayName:b}),T=Ln(t),[C,D]=i.useState(null),[E,I]=i.useState(!1),[z,H]=i.useState(null),[q,Q]=i.useState(!1),[x,j]=i.useState(!1),[F,B]=i.useState([]),[G,se]=i.useState(!1),[ke,R]=i.useState(null),[ee,K]=i.useState(null),[re,me]=i.useState(""),[p,$]=i.useState(!1),[W,Y]=i.useState(null),[he,ye]=i.useState(!1),[Le,De]=i.useState(""),[ie,pe]=i.useState(null),[ge,oe]=i.useState(""),[te,Lt]=i.useState(!0),[N,xe]=i.useState(!1),[U,ce]=i.useState(""),[J,Be]=i.useState("split"),[X,V]=i.useState({type:"idle"}),[Dt,Me]=i.useState(!1),[tt,Bt]=i.useState(!1),[_e,nt]=i.useState(!1),[be,ne]=i.useState(!1),[Mt,Se]=i.useState(!1),[at,st]=i.useState(""),[Pe,ze]=i.useState(null),[rt,je]=i.useState(null),[Fe,le]=i.useState(g),de=t.editable!==!1,fe=et(t),Pt=!!t.assetId,Oe=N&&U!==(C??""),He=i.useRef(null),We=i.useRef(null),it=i.useRef(null),ue=i.useRef(null),Ce=i.useRef(null),ot=i.useRef(null),ct=i.useRef(null),k=F.find(n=>n.id===ee)||F[0]||null,lt=m.filter(n=>{const a=at.trim().toLowerCase();return a?n.title.toLowerCase().includes(a)||String(n.referenceLabel||"").trim().toLowerCase().includes(a):!0}),dt=i.useCallback(async()=>{I(!0),H(null),D(null);try{const n=await P(t.apiUrl,{credentials:"same-origin"},s);if(!n.ok)throw new Error(`Failed to load document (${n.status})`);const a=await n.text();D(a),ce(a)}catch(n){H(n?.message||"Failed to load document")}finally{I(!1)}},[s,t.apiUrl]),Ne=i.useCallback(async n=>{if(!t.assetId){B([]),K(null),R(null);return}const a=n?.silent===!0;a||(se(!0),R(null));try{const o=await P(`/api/taskforce/document-reviews/sessions?assetId=${encodeURIComponent(t.assetId)}`,{credentials:"include"},s),d=await o.json().catch(()=>({}));if(!o.ok)throw new Error(d.error||`Failed to load reviews (${o.status})`);const f=Array.isArray(d.sessions)?d.sessions:[];B(f),K(_=>_&&f.some(Z=>Z.id===_)?_:f[0]?.id??null)}catch(o){a||(R(o?.message||"Failed to load reviews"),B([]),K(null))}finally{a||se(!1)}},[s,t.assetId]),Ge=i.useCallback(async()=>{if(!t.assetId||p)return null;$(!0),R(null);try{const n=await P("/api/taskforce/document-reviews/sessions",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({assetId:t.assetId,title:`Review ${F.length+1}`})},s),a=await n.json().catch(()=>({}));if(!n.ok)throw new Error(a.error||`Failed to create review (${n.status})`);const o=a.session||null;if(!o)throw new Error("Review session payload missing.");return B(d=>[o,...d.filter(f=>f.id!==o.id)]),K(o.id),o}catch(n){return R(n?.message||"Failed to create review"),null}finally{$(!1)}},[s,t.assetId,p,F.length]);i.useEffect(()=>{dt(),Ne(),xe(!1),V({type:"idle"}),ne(!1);const n=$e(t);h(n),le(n),Q(!1),j(!1),me(""),Y(null),ye(!1),De(""),pe(null),oe("")},[t,dt,Ne]),i.useEffect(()=>{if(!k)return;const n=ot.current;typeof n?.scrollIntoView=="function"&&n.scrollIntoView({block:"end"})},[k?.comments.length,k?.id]),i.useEffect(()=>{De(k?.title?.trim()||""),ye(!1)},[k?.id,k?.title]),i.useEffect(()=>{be&&window.setTimeout(()=>{We.current?.focus(),We.current?.select()},0)},[be]),i.useEffect(()=>{if(!t.assetId||N)return;const n=()=>{document.visibilityState==="visible"&&Ne({silent:!0})},a=window.setInterval(n,15e3);return window.addEventListener("focus",n),document.addEventListener("visibilitychange",n),()=>{window.clearInterval(a),window.removeEventListener("focus",n),document.removeEventListener("visibilitychange",n)}},[t.assetId,N,Ne]),i.useEffect(()=>{if(!N)return;const n=a=>{(a.metaKey||a.ctrlKey)&&a.key==="s"&&(a.preventDefault(),ut())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[N,U]);const ae=i.useCallback(()=>{Ce.current!==null&&(window.clearTimeout(Ce.current),Ce.current=null),ue.current&&(ue.current.remove(),ue.current=null)},[]);i.useEffect(()=>()=>{ae()},[ae]);const Te=i.useCallback(n=>{if(!N||J!=="split")return;const a=He.current,o=it.current;if(!a||!o)return;const d=n==="editor"?a:o,f=n==="editor"?o:a,_=Math.max(d.scrollHeight-d.clientHeight,0),Z=Math.max(f.scrollHeight-f.clientHeight,0),Je=_<=0?0:d.scrollTop/_,kt=Z*Je;Math.abs(f.scrollTop-kt)<=1||(f.scrollTop=kt)},[N,J]);i.useEffect(()=>{!N||J!=="split"||Te("editor")},[U,N,J,Te]);const zt=()=>{de&&(ce(C??""),V({type:"idle"}),xe(!0),setTimeout(()=>He.current?.focus(),50))},Ft=()=>{Oe&&!window.confirm("Discard unsaved changes?")||(xe(!1),ce(C??""),V({type:"idle"}))},ut=i.useCallback(async()=>{if(de&&X.type!=="saving"){V({type:"saving"});try{const n=await P("/api/taskforce/documents/save",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({fsPath:t.fsPath,content:U})},s),a=await n.json().catch(()=>({}));if(!n.ok)throw new Error(a.error||`Save failed (${n.status})`);const o=a.updatedAt||new Date().toISOString();D(U),V({type:"saved",savedAt:o}),c?.(o),xe(!1)}catch(n){V({type:"error",message:n?.message||"Save failed"})}}},[s,t.fsPath,U,X.type,c,de]),Ot=i.useCallback(()=>{const n=N?U:C??"";if(!n.trim())return;ae();const a=document.createElement("iframe");a.setAttribute("aria-hidden","true"),a.tabIndex=-1,a.style.position="fixed",a.style.right="0",a.style.bottom="0",a.style.width="0",a.style.height="0",a.style.border="0",a.style.opacity="0",a.style.pointerEvents="none",document.body.appendChild(a),ue.current=a;const o=a.contentWindow,d=a.contentDocument;if(!o||!d){ae();return}d.open(),d.write(sr(n)),d.close();let f=!1;const _=async()=>{f||ue.current!==a||(f=!0,await rr(o,d),ue.current===a&&(o.focus(),o.print(),Ce.current=ir(ae)))};o.addEventListener("afterprint",ae,{once:!0}),_()},[ae,C,U,N]),Ht=async()=>{const n=t.apiUrl,a=new URL(xt(n,s),window.location.origin).toString();try{await navigator.clipboard.writeText(a)}catch{const o=document.createElement("textarea");o.value=a,document.body.appendChild(o),o.select(),document.execCommand("copy"),document.body.removeChild(o)}Q(!0),setTimeout(()=>Q(!1),2e3)},Wt=i.useCallback(async()=>{if(T){try{await navigator.clipboard.writeText(T)}catch{const n=document.createElement("textarea");n.value=T,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}j(!0),setTimeout(()=>j(!1),2e3)}},[T]),Gt=()=>{const n=t.apiUrl.includes("?")?"&":"?",a=xt(`${t.apiUrl}${n}download=1&filename=${encodeURIComponent(O)}`,s),o=document.createElement("a");o.href=a,o.click()},Ke=i.useCallback(async()=>{if(!t.assetId)return;const n=Fe.trim();if(!n){le(g),ne(!1);return}if(n===g){ne(!1);return}const a=await P(`/api/taskforce/documents/${encodeURIComponent(t.assetId)}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({displayName:n})},s),o=await a.json().catch(()=>({}));if(!a.ok){window.alert(o.error||`Rename failed (${a.status})`);return}h(n),le(n),ne(!1),c?.(o.updatedAt||new Date().toISOString())},[s,t.assetId,c,g,Fe]),Kt=i.useCallback(n=>{if(n.key==="Enter"){n.preventDefault(),Ke();return}n.key==="Escape"&&(n.preventDefault(),le(g),ne(!1))},[Ke,g]),Ut=i.useCallback(async()=>{if(!t.assetId||_e)return;const n=fe==="attached",a=Math.max(0,Number(t.attachmentCount||0)),o=n?`Delete "${g}" everywhere?
251
-
252
- This will remove it from ${a} linked task${a===1?"":"s"} and soft-delete the document across sync.`:`Permanently delete "${g}" from storage?`;if(window.confirm(o)){nt(!0);try{const d=await P(`/api/taskforce/documents/${encodeURIComponent(t.assetId)}`,{method:"DELETE",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(n?{forceDetach:!0}:{})},s),f=await d.json().catch(()=>({}));if(!d.ok)throw new Error(f.error||`Delete failed (${d.status})`);u?.()}catch(d){window.alert(d?.message||"Delete failed")}finally{nt(!1)}}},[s,fe,_e,t.assetId,t.attachmentCount,u,g]),Jt=i.useCallback(()=>{st(""),je(null),ze(null),Se(!0)},[]),Vt=i.useCallback(async n=>{if(t.assetId){je(null),ze(n);try{const a=await P(`/api/taskforce/documents/${encodeURIComponent(t.assetId)}/attach`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetType:"task",targetId:n})},s),o=await a.json().catch(()=>({}));if(!a.ok)throw new Error(o.error||`Attach failed (${a.status})`);if(o.alreadyAttached){je("This document is already attached to that task.");return}Se(!1),c?.(new Date().toISOString())}catch(a){je(a?.message||"Failed to attach document.")}finally{ze(null)}}},[s,t.assetId,c]),qt=i.useCallback(async()=>{if(!(!k||p)){$(!0),R(null);try{const n=k.status==="resolved"?"open":"resolved",a=await P(`/api/taskforce/document-reviews/sessions/${encodeURIComponent(k.id)}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:n})},s),o=await a.json().catch(()=>({}));if(!a.ok)throw new Error(o.error||`Failed to update review (${a.status})`);const d=o.session||null;if(!d)throw new Error("Review session payload missing.");B(f=>f.map(_=>_.id===d.id?d:_))}catch(n){R(n?.message||"Failed to update review")}finally{$(!1)}}},[k,s,p]),Qt=i.useCallback(async()=>{if(!k||p)return;const n=Le.trim();$(!0),R(null);try{const a=await P(`/api/taskforce/document-reviews/sessions/${encodeURIComponent(k.id)}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:n||null})},s),o=await a.json().catch(()=>({}));if(!a.ok)throw new Error(o.error||`Failed to update review (${a.status})`);const d=o.session||null;if(!d)throw new Error("Review session payload missing.");B(f=>f.map(_=>_.id===d.id?d:_)),ye(!1)}catch(a){R(a?.message||"Failed to update review")}finally{$(!1)}},[k,s,p,Le]),mt=N?U:C??"",Yt=i.useCallback(()=>{if(N||!te)return;const n=typeof window.getSelection=="function"?window.getSelection():null,a=n?.toString().replace(/\s+/g," ").trim()||"";if(!n||!a)return;const o=n.rangeCount>0?n.getRangeAt(0):null,d=ct.current;if(!o||!d)return;const f=o.commonAncestorContainer,_=f.nodeType===Node.TEXT_NODE?f.parentNode:f;if(!(_ instanceof Node)||!d.contains(_))return;const Z=dr(d,o,a);Z&&Y(Z)},[N,te]),Xt=i.useCallback(()=>{Lt(n=>{const a=!n;return a||Y(null),a})},[]),ht=i.useCallback(async()=>{const n=re.trim();if(!n||p)return;let a=k;if(a||(a=await Ge()),!!a){$(!0),R(null);try{const o=await P(`/api/taskforce/document-reviews/sessions/${encodeURIComponent(a.id)}/comments`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({body:n,anchor:W||{kind:"document"}})},s),d=await o.json().catch(()=>({}));if(!o.ok)throw new Error(d.error||`Failed to add comment (${o.status})`);const f=d.session||null;if(!f)throw new Error("Review session payload missing.");B(_=>{const Z=_.filter(Je=>Je.id!==f.id);return[f,...Z]}),K(f.id),me(""),Y(null)}catch(o){R(o?.message||"Failed to add comment")}finally{$(!1)}}},[k,s,Ge,W,p,re]),Zt=i.useCallback((n,a)=>{pe(n),oe(a)},[]),en=i.useCallback(async()=>{if(!k||!ie||p)return;const n=ge.trim();if(n){$(!0),R(null);try{const a=await P(`/api/taskforce/document-reviews/sessions/${encodeURIComponent(k.id)}/comments/${encodeURIComponent(ie)}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({body:n})},s),o=await a.json().catch(()=>({}));if(!a.ok)throw new Error(o.error||`Failed to update comment (${a.status})`);const d=o.session||null;if(!d)throw new Error("Review session payload missing.");B(f=>f.map(_=>_.id===d.id?d:_)),pe(null),oe("")}catch(a){R(a?.message||"Failed to update comment")}finally{$(!1)}}},[k,s,ge,ie,p]),tn=i.useCallback(async n=>{if(!(!k||p)&&window.confirm("Delete this review comment?")){$(!0),R(null);try{const a=await P(`/api/taskforce/document-reviews/sessions/${encodeURIComponent(k.id)}/comments/${encodeURIComponent(n)}`,{method:"DELETE",credentials:"include"},s),o=await a.json().catch(()=>({}));if(!a.ok)throw new Error(o.error||`Failed to delete comment (${a.status})`);const d=o.session||null;if(!d)throw new Error("Review session payload missing.");B(f=>f.map(_=>_.id===d.id?d:_)),ie===n&&(pe(null),oe(""))}catch(a){R(a?.message||"Failed to delete comment")}finally{$(!1)}}},[k,s,ie,p]),pt=i.useCallback(async n=>{if(!de)return!1;V({type:"saving"});try{const a=await P("/api/taskforce/documents/save",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({fsPath:t.fsPath,content:n})},s),o=await a.json().catch(()=>({}));if(!a.ok)throw new Error(o.error||`Save failed (${a.status})`);const d=o.updatedAt||new Date().toISOString();return D(n),ce(n),V({type:"saved",savedAt:d}),c?.(d),!0}catch(a){return V({type:"error",message:a?.message||"Save failed"}),!1}},[s,t.fsPath,c,de]),nn=i.useCallback((n,a)=>{const o=N?U:C??"",d=ur(o,n,a);if(d!==o){if(N){ce(d),V(f=>f.type==="saving"?f:{type:"idle"});return}pt(d)}},[C,U,N,pt]);let ft=-1;const Ue=n=>!n||!Array.isArray(n.children)?!1:n.children.some(a=>a?a.type==="element"&&a.tagName==="input"&&a.properties?.type==="checkbox"?!0:Ue(a):!1),vt=n=>!n||!Array.isArray(n.children)?!1:n.children.some(a=>typeof a?.checked=="boolean"?!0:Ue(a)),wt={input({type:n,checked:a,...o}){if(n!=="checkbox")return e.jsx("input",{type:n,checked:a,...o});ft+=1;const d=ft;return e.jsx("input",{...o,type:"checkbox",checked:!!a,disabled:!1,onClick:f=>f.stopPropagation(),onChange:f=>nn(d,f.currentTarget.checked)})},ul({children:n,node:a,...o}){const d=vt(a);return e.jsx("ul",{...o,style:d?{paddingLeft:"1.25em"}:void 0,"data-task-list":d?"true":void 0,children:n})},ol({children:n,node:a,...o}){const d=vt(a);return e.jsx("ol",{...o,style:d?{paddingLeft:"1.25em"}:void 0,"data-task-list":d?"true":void 0,children:n})},li({children:n,node:a,...o}){const d=typeof a?.checked=="boolean"||Ue(a);return e.jsx("li",{...o,style:d?{listStyleType:"none",listStyle:"none",marginLeft:0}:void 0,"data-task-item":d?"true":void 0,children:n})}};return e.jsxs("div",{className:`${r.viewer} ${N?r.viewerEditMode:""} ${tt?r.viewerMonochrome:""}`,children:[e.jsxs("div",{className:r.meta,children:[e.jsxs("div",{className:r.metaLeft,children:[e.jsxs("span",{className:`${r.typeBadge} ${Xs[t.docType]??""}`,children:[e.jsx(gn,{size:10}),Ys[t.docType]]}),be?e.jsx("div",{className:r.metaRenameRow,children:e.jsx("input",{ref:We,type:"text",className:L.input,value:Fe,onChange:n=>le(n.target.value),onBlur:()=>{Ke()},onKeyDown:Kt})}):e.jsx("span",{className:r.metaDocumentName,title:g,onDoubleClick:()=>{t.assetId&&(le(g),ne(!0))},children:g}),l&&e.jsx("span",{className:r.metaTaskName,title:`From task: ${l}`,children:l}),fe==="unattached"&&e.jsx("span",{className:r.statusBadge,children:"Unattached"}),t.updatedAt&&e.jsxs("span",{className:r.metaDate,title:jt(t.updatedAt),children:[e.jsx(xn,{size:11}),jt(t.updatedAt)]}),e.jsxs("span",{className:r.metaSize,children:[e.jsx(_n,{size:11}),nr(t.sizeBytes)]}),T&&e.jsx(rn,{label:T,copied:x,onClick:()=>{Wt()},title:"Copy document reference"}),X.type==="saved"&&e.jsxs("span",{className:`${r.saveStatus} ${r.saveStatusSaved}`,children:[e.jsx(At,{size:11}),"Saved"]}),X.type==="error"&&e.jsxs("span",{className:`${r.saveStatus} ${r.saveStatusError}`,title:X.message,children:[e.jsx(Ye,{size:11}),X.message||"Save failed"]}),Oe&&X.type!=="saving"&&e.jsx("span",{className:r.unsaved,children:"Unsaved changes"})]}),e.jsx("div",{className:r.actions,children:N?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:r.layoutToggle,children:[e.jsx("button",{className:`${r.layoutBtn} ${J==="editor"?r.layoutBtnActive:""}`,onClick:()=>Be("editor"),title:"Editor only",children:e.jsx(Ee,{size:12})}),e.jsx("button",{className:`${r.layoutBtn} ${J==="split"?r.layoutBtnActive:""}`,onClick:()=>Be("split"),title:"Split view",children:e.jsx(bn,{size:12})}),e.jsx("button",{className:`${r.layoutBtn} ${J==="preview"?r.layoutBtnActive:""}`,onClick:()=>Be("preview"),title:"Preview only",children:e.jsx(qe,{size:12})})]}),e.jsxs("button",{className:r.actionBtn,onClick:Ft,title:"Discard changes",children:[e.jsx(Rt,{size:13}),"Cancel"]}),e.jsxs("button",{className:`${r.actionBtn} ${r.saveBtn}`,onClick:ut,disabled:X.type==="saving"||!Oe,title:"Save (Ctrl+S)",children:[e.jsx(Sn,{size:13}),X.type==="saving"?"Saving…":"Save"]})]}):e.jsxs(e.Fragment,{children:[t.taskId&&w&&e.jsxs("button",{className:r.actionBtn,onClick:()=>w(t.taskId),title:"Back to task","aria-label":"Back to task",children:[e.jsx(jn,{size:13}),"Back to task"]}),t.assetId&&e.jsxs("button",{className:r.actionBtn,onClick:()=>ne(n=>!n),title:"Rename document",children:[e.jsx(Ee,{size:13}),be?"Close Rename":"Rename"]}),de&&e.jsxs("button",{className:`${r.actionBtn} ${r.editBtn}`,onClick:zt,title:"Edit document",children:[e.jsx(Ee,{size:13}),"Edit"]}),t.assetId&&e.jsxs("button",{className:r.actionBtn,onClick:Jt,title:"Attach document to a task",children:[e.jsx(bt,{size:13}),"Attach"]}),e.jsxs("button",{className:r.actionBtn,onClick:Xt,title:te?"Hide review and comments":"Show review and comments",children:[e.jsx(Ve,{size:13}),te?"Hide Review":"Show Review"]}),e.jsxs("button",{className:r.actionBtn,onClick:Ht,title:"Copy link",children:[e.jsx(bt,{size:13}),q?"Copied!":"Copy link"]}),e.jsxs("button",{className:r.actionBtn,onClick:Gt,title:"Download .md",children:[e.jsx(Cn,{size:13}),"Download"]}),e.jsxs("button",{className:r.actionBtn,onClick:Ot,title:"Print",children:[e.jsx(Nn,{size:13}),"Print"]}),e.jsxs("button",{className:r.actionBtn,onClick:()=>Bt(n=>!n),title:"Toggle black and white style",children:[e.jsx(qe,{size:13}),tt?"Color":"B/W"]}),y&&t.docType==="implementation-plan"&&!N&&e.jsxs("button",{className:`${r.actionBtn} ${r.generateBtn}`,onClick:()=>Me(!0),title:"Generate tasks from this plan",children:[e.jsx(Qe,{size:13}),"Generate Tasks"]}),Pt&&e.jsxs("button",{className:`${r.actionBtn} ${r.dangerBtn}`,onClick:()=>{Ut()},disabled:_e,title:fe==="attached"?"Remove this document from linked tasks and delete it":"Permanently delete this unattached document",children:[e.jsx(Tn,{size:13}),_e?"Deleting…":fe==="attached"?"Delete & Unlink":"Delete Permanently"]})]})})]}),E&&e.jsx("div",{className:r.viewerState,children:"Loading…"}),!E&&z&&e.jsx("div",{className:r.viewerStateError,children:z}),!E&&!z&&(N?e.jsxs("div",{className:`${r.editorArea} ${Zs[J]}`,children:[(J==="editor"||J==="split")&&e.jsxs("div",{className:r.editorPane,children:[e.jsx("div",{className:r.editorPaneLabel,children:"Markdown"}),e.jsx("textarea",{ref:He,className:`${r.editorTextarea} tf-scrollbar`,value:U,onScroll:()=>Te("editor"),onChange:n=>{ce(n.target.value),V(a=>a.type==="saving"?a:{type:"idle"})},spellCheck:!0,placeholder:"Write markdown here…"})]}),(J==="preview"||J==="split")&&e.jsxs("div",{className:r.previewPane,children:[e.jsx("div",{className:r.editorPaneLabel,children:"Preview"}),e.jsx("div",{ref:it,className:`${L.docMarkdown} ${r.markdownSurface}`,"data-testid":"doc-preview-scroll",onScroll:()=>Te("preview"),children:e.jsx(Re,{remarkPlugins:[Ae],rehypePlugins:[Ie],components:wt,children:mt})})]})]}):e.jsxs("div",{className:`${r.viewerBody} ${te?"":r.viewerBodyFullWidth}`,children:[e.jsx("div",{className:`${r.viewerContent} ${r.viewerMain} tf-scrollbar`,children:e.jsx("div",{ref:ct,className:`${L.docMarkdown} ${r.markdownSurface}`,onMouseUp:te?Yt:void 0,children:e.jsx(Re,{remarkPlugins:[Ae],rehypePlugins:[Ie],components:wt,children:mt})})}),te&&e.jsx("aside",{className:r.reviewRail,children:e.jsxs("section",{className:r.reviewSection,"aria-label":"Review and comments",children:[e.jsxs("div",{className:r.reviewHeader,children:[e.jsxs("div",{children:[e.jsxs("div",{className:r.reviewTitle,children:[e.jsx(Ve,{size:14}),"Review & Comments"]}),e.jsx("p",{className:r.reviewSubtitle,children:"Comments stay attached to this document review session."})]}),e.jsxs("div",{className:r.reviewControls,children:[F.length>1&&e.jsx("select",{className:`${L.select} ${r.reviewSelect}`,value:k?.id||"",onChange:n=>K(n.target.value||null),"aria-label":"Select review session",children:F.map(n=>e.jsx("option",{value:n.id,children:n.title?.trim()||"Untitled review"},n.id))}),e.jsxs("button",{type:"button",className:r.actionBtn,onClick:()=>{Ge()},disabled:p||!t.assetId,children:[e.jsx(Ve,{size:13}),"Start Review"]}),k&&e.jsxs("button",{type:"button",className:r.actionBtn,onClick:()=>{qt()},disabled:p,children:[k.status==="resolved"?e.jsx(En,{size:13}):e.jsx(Rn,{size:13}),k.status==="resolved"?"Reopen":"Resolve"]})]})]}),k&&e.jsxs("div",{className:r.reviewSessionMeta,children:[e.jsx("span",{className:`${r.statusBadge} ${k.status==="resolved"?r.reviewStatusResolved:""}`,children:k.status==="resolved"?"Resolved":"Open"}),he?e.jsxs("div",{className:r.reviewTitleEditRow,children:[e.jsx("input",{type:"text",className:L.input,value:Le,onChange:n=>De(n.target.value),placeholder:"Untitled review"}),e.jsx("button",{type:"button",className:L.secondaryHeaderBtn,onClick:()=>{Qt()},disabled:p,children:"Save Title"})]}):e.jsx("span",{className:r.reviewSessionLabel,children:k.title?.trim()||"Untitled review"}),e.jsxs("span",{className:r.reviewSessionTimestamp,children:["Updated ",Ct(k.updatedAt)]}),!he&&e.jsxs("button",{type:"button",className:r.actionBtn,onClick:()=>ye(!0),disabled:p,children:[e.jsx(Ee,{size:13}),"Rename Review"]})]}),ke&&e.jsx("div",{className:r.viewerStateError,children:ke}),e.jsxs("div",{className:M.commentPanel,children:[e.jsxs("div",{className:M.commentThread,children:[G&&e.jsx("div",{className:M.emptyComments,children:"Loading review comments…"}),!G&&!k&&e.jsx("div",{className:M.emptyComments,children:"Start a review to collect comments for this document."}),!G&&k&&k.comments.length===0&&e.jsx("div",{className:M.emptyComments,children:"No comments yet. Add the first review note for this document."}),!G&&k&&k.comments.map(n=>{const a=n.authorActor?.kind==="ai",o=Nt(n.anchor),d=a?An:In,f=ie===n.id;return e.jsxs("div",{className:`${M.comment} ${a?M.commentAi:M.commentUser}`,children:[e.jsxs("div",{className:M.commentHeader,children:[e.jsxs("span",{className:M.commentAuthor,style:n.authorActor?.color?{color:n.authorActor.color}:void 0,children:[e.jsx(d,{size:12,strokeWidth:1.5}),or(n)]}),e.jsx("span",{className:M.commentTime,children:Ct(n.updatedAt)}),e.jsxs("span",{className:r.reviewCommentActions,children:[!f&&e.jsx("button",{type:"button",className:r.reviewCommentAction,onClick:()=>Zt(n.id,n.body),disabled:p,children:"Edit"}),f&&e.jsx("button",{type:"button",className:r.reviewCommentAction,onClick:()=>{pe(null),oe("")},disabled:p,children:"Cancel"}),e.jsx("button",{type:"button",className:r.reviewCommentAction,onClick:()=>{tn(n.id)},disabled:p,children:"Delete"})]})]}),o&&e.jsx("span",{className:r.reviewAnchorLabel,children:o}),e.jsx("div",{className:M.commentText,children:f?e.jsxs("div",{className:r.reviewCommentEditor,children:[e.jsx("textarea",{className:M.commentInput,value:ge,onChange:_=>oe(_.target.value),disabled:p}),e.jsx("button",{type:"button",className:L.secondaryHeaderBtn,onClick:()=>{en()},disabled:p||!ge.trim(),children:"Save Comment"})]}):e.jsx(Re,{remarkPlugins:[Ae],rehypePlugins:[Ie],children:n.body})})]},n.id)}),e.jsx("div",{ref:ot})]}),e.jsxs("div",{className:M.commentInputArea,children:[e.jsxs("div",{className:r.reviewComposer,children:[W&&e.jsxs("div",{className:r.reviewAnchorChip,children:[e.jsx("span",{children:Nt(W)||"Selected text"}),"quote"in W&&W.quote&&e.jsxs("span",{className:r.reviewAnchorSnippet,children:['"',W.quote,'"']}),e.jsx("button",{type:"button",className:r.reviewAnchorClear,onClick:()=>Y(null),children:"Clear"})]}),e.jsx("textarea",{className:M.commentInput,placeholder:k?.status==="resolved"?"Reopen this review to add more comments…":W?"Add a comment for the selected text…":"Add a comment for this document review…",value:re,onChange:n=>me(n.target.value),disabled:p||k?.status==="resolved",onKeyDown:n=>{n.key==="Enter"&&!n.shiftKey&&(n.preventDefault(),ht())}})]}),e.jsx("button",{type:"button",className:M.sendCommentBtn,onClick:()=>{ht()},disabled:p||!re.trim()||k?.status==="resolved","aria-label":"Send review comment",title:"Send review comment",children:e.jsx($n,{size:15})})]})]})]})})]})),y&&Dt&&C!==null&&e.jsx(Qs,{content:C,docTitle:t.title,apiBaseUrl:s,onClose:()=>Me(!1),onGenerated:n=>Me(!1)}),e.jsx(on,{isOpen:Mt,onClose:()=>{Pe||Se(!1)},title:"Attach document",size:"md",footer:e.jsx("button",{className:r.actionBtn,onClick:()=>Se(!1),disabled:!!Pe,children:"Close"}),children:e.jsxs("div",{className:r.attachModalBody,children:[e.jsx("p",{className:r.attachModalCopy,children:"Attach this document to a task from the document manager. Initiative and workstream targets can be enabled later on the same attachment model."}),e.jsx("input",{type:"text",className:L.input,placeholder:"Search tasks…",value:at,onChange:n=>st(n.target.value)}),rt&&e.jsxs("div",{className:r.attachModalError,children:[e.jsx(Ye,{size:14}),e.jsx("span",{children:rt})]}),e.jsx("div",{className:`${r.attachTaskList} tf-scrollbar`,children:lt.length===0?e.jsx("div",{className:r.attachEmptyState,children:m.length===0?"No tasks are available in this workspace.":"No tasks match your search."}):lt.map(n=>{const a=t.taskId===n.id,o=Pe===n.id;return e.jsxs("button",{type:"button",className:r.attachTaskRow,disabled:o,onClick:()=>{Vt(n.id)},children:[e.jsxs("span",{className:r.attachTaskInfo,children:[e.jsx("span",{className:r.attachTaskTitle,children:n.title}),n.referenceLabel&&e.jsx("span",{className:r.attachTaskReference,children:n.referenceLabel})]}),e.jsx("span",{className:r.attachTaskMeta,children:o?"Attaching…":a?"Attached":"Attach"})]},n.id)})})]})}),!N&&e.jsx("div",{className:r.printHint,children:"For the cleanest output, disable browser Headers and footers in the print dialog."})]})}function Et(t){return typeof t=="string"?t.trim().replace(/\/+$/,""):""}function hr(t){return t.runtimeMode==="local"?"":Et(t.apiBaseUrl)||Et(t.cloudAuthBaseUrl)||""}function pr({runtimeMode:t="local",apiBaseUrl:l="",cloudAuthBaseUrl:m="",typeFilters:s,attachmentFilters:c,onTypeFiltersChange:u,onAttachmentFiltersChange:w,requestedDocPath:y=null,requestedDocAssetId:v=null,onRequestedDocHandled:b}){const[h,g]=i.useState([]),[O,T]=i.useState(!0),[C,D]=i.useState(null),[E,I]=i.useState(null),[z,H]=i.useState(""),[q,Q]=i.useState(()=>cn.map(p=>p.value)),[x,j]=i.useState(()=>ln.map(p=>p.value)),F=hr({runtimeMode:t,apiBaseUrl:l,cloudAuthBaseUrl:m}),B=s??q,G=c??x,se=u??Q,ke=w??j,R=i.useCallback(async()=>{T(!0),D(null);try{const p=await P("/api/taskforce/documents",{credentials:"include"},F);if(!p.ok)throw new Error(`Failed to load documents (${p.status})`);const $=await p.json(),W=Array.isArray($.documents)?$.documents:[];W.length,g(W)}catch(p){D(p?.message||"Failed to load documents"),p?.message}finally{T(!1)}},[F,t]);i.useEffect(()=>{R()},[R]);const ee=i.useMemo(()=>na(h,z,B,G),[G,h,z,B]),K=i.useMemo(()=>E?h.find(p=>p.id===E)??null:null,[h,E]);i.useEffect(()=>{if(!y&&!v||h.length===0)return;const p=y?Xe(y):"",$=String(v||"").trim().toLowerCase()||St(y),W=h.find(Y=>{const he=St(Y.fsPath)||String(Y.assetId||"").trim().toLowerCase()||null;return $&&he&&he===$?!0:p?ta(Xe(Y.fsPath),p):!1});W&&(I(W.id),b?.())},[h,b,v,y]),i.useEffect(()=>{if(!((y||v)&&!K)){if(ee.length===0){E!==null&&I(null);return}K&&ee.some(p=>p.id===K.id)||I(ee[0].id)}},[ee,v,y,K,E]);const re=i.useCallback(async()=>{I(null),await R()},[R]),me=z.trim().length>0||B.length>0||G.length>0;return{documentApiBaseUrl:F,documents:h,filteredDocs:ee,loading:O,error:C,selectedDoc:K,searchQuery:z,typeFilters:B,attachmentFilters:G,hasActiveFilters:me,setSearchQuery:H,handleTypeFiltersChange:se,handleAttachmentFiltersChange:ke,fetchDocuments:R,selectDoc:p=>I(p?.id??null),handleDeleteSelected:re}}function fr({tasks:t,apiBaseUrl:l="",documents:m,loading:s,error:c,selectedDoc:u,searchQuery:w,hasActiveFilters:y,documentTrayOpen:v,onSearchChange:b,onSelectDoc:h,onRefresh:g,onCloseDocumentTray:O,onDeleteSelected:T,onBackToTask:C,enableTaskGeneration:D=!1}){const E=new Map(t.map(H=>[H.id,H])),I=typeof v=="boolean",z=e.jsx(oa,{documents:m,selectedDocId:u?.id??null,loading:s,error:c,searchQuery:w,onSearchChange:b,onSelect:H=>h(H),onCloseTray:I?O:void 0,taskById:E,hasActiveFilters:y});return e.jsxs("div",{className:`${L.docWorkspace} ${I?L.docWorkspaceTrayMode:""} ${I&&v?L.docWorkspaceTrayOpen:""}`.trim(),children:[I?e.jsx("div",{className:`${L.docTrayPanel} ${v?L.docTrayPanelOpen:""}`.trim(),"aria-hidden":!v,children:z}):e.jsx("div",{className:L.docIndexPanel,children:z}),e.jsx("div",{className:L.docViewerPanel,children:u?e.jsx(mr,{doc:u,taskTitle:u.taskId?E.get(u.taskId)?.title??null:null,tasks:t,apiBaseUrl:l,onSaved:H=>g(),onDeleted:()=>{T()},onBackToTask:C,enableTaskGeneration:D}):!s&&e.jsx("div",{className:L.docViewerEmpty,children:e.jsx("p",{className:"tf-empty-copy",children:m.length===0?"No documents match your current filters.":"Select a document to view it."})})})]})}function br({tasks:t,runtimeMode:l="local",apiBaseUrl:m="",cloudAuthBaseUrl:s="",typeFilters:c,attachmentFilters:u,onTypeFiltersChange:w,onAttachmentFiltersChange:y,documentTrayOpen:v,onCloseDocumentTray:b,requestedDocPath:h=null,requestedDocAssetId:g=null,onRequestedDocHandled:O,onBackToTask:T,enableTaskGeneration:C=!1}){const{documentApiBaseUrl:D,filteredDocs:E,loading:I,error:z,selectedDoc:H,searchQuery:q,hasActiveFilters:Q,setSearchQuery:x,fetchDocuments:j,selectDoc:F,handleDeleteSelected:B}=pr({runtimeMode:l,apiBaseUrl:m,cloudAuthBaseUrl:s,typeFilters:c,attachmentFilters:u,onTypeFiltersChange:w,onAttachmentFiltersChange:y,requestedDocPath:h,requestedDocAssetId:g,onRequestedDocHandled:O}),G=ve.useRef(v);return ve.useEffect(()=>{const se=G.current===!0;G.current=v,!(v!==!0||se)&&j()},[v,j]),e.jsx(fr,{tasks:t,apiBaseUrl:D,documents:E,loading:I,error:z,selectedDoc:H,searchQuery:q,hasActiveFilters:Q,documentTrayOpen:v,onSearchChange:x,onSelectDoc:F,onRefresh:j,onCloseDocumentTray:b,onDeleteSelected:B,onBackToTask:T,enableTaskGeneration:C})}export{ln as DOCUMENT_ATTACHMENT_FILTER_OPTIONS,cn as DOCUMENT_TYPE_FILTER_OPTIONS,fr as DocumentWorkspace,br as DocumentWorkspaceShell};
@@ -1 +0,0 @@
1
- ._index_1sp0v_1{display:flex;flex-direction:column;height:100%;min-height:0}._header_1sp0v_8{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:12px 0 10px;border-bottom:1px solid var(--border-default);background:var(--bg-secondary);box-shadow:0 10px 16px color-mix(in srgb,var(--bg-secondary) 90%,transparent);flex-shrink:0}._title_1sp0v_23{flex:1;display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}._search_1sp0v_35{position:relative;padding:12px 0 0;flex-shrink:0}._searchIcon_1sp0v_41{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}._searchInput_1sp0v_50{width:100%;padding:7px 8px 7px 28px;background:color-mix(in srgb,var(--surface-inset) 88%,transparent);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:.75rem;font-family:inherit;outline:none;box-sizing:border-box}._searchInput_1sp0v_50:focus{border-color:var(--brand-primary)}._list_1sp0v_67{display:flex;flex-direction:column;gap:.375rem;flex:1;overflow-y:auto;min-height:0;padding:12px 0;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}._state_1sp0v_79{padding:24px 4px;font-size:.75rem;color:var(--text-muted);text-align:center;line-height:1.5}._stateError_1sp0v_87{padding:16px 4px;font-size:.75rem;color:var(--status-error);text-align:center}._item_1sp0v_94{width:100%;display:flex;align-items:flex-start;gap:8px;padding:.55rem .65rem;border-radius:var(--radius-md);border:1px solid var(--border-default);background:color-mix(in srgb,var(--surface-inset) 88%,transparent);cursor:pointer;text-align:left;transition:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base);font-family:inherit;color:var(--text-primary);min-width:0}._item_1sp0v_94:hover{background:color-mix(in srgb,var(--surface-hover) 72%,transparent);transform:translateY(-1px)}._itemActive_1sp0v_116{border-color:var(--brand-primary-border);background:color-mix(in srgb,var(--brand-primary-soft) 94%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-primary-border) 42%,transparent)}._itemActive_1sp0v_116:hover{background:color-mix(in srgb,var(--brand-primary-soft) 92%,transparent)}._itemIcon_1sp0v_126{color:var(--text-muted);padding-top:1px;flex-shrink:0}._itemActive_1sp0v_116 ._itemIcon_1sp0v_126{color:var(--brand-primary-strong)}._itemBody_1sp0v_136{display:flex;flex-direction:column;gap:.25rem;min-width:0;flex:1}._itemTitle_1sp0v_144{display:block;max-width:100%;font-size:.875rem;font-weight:700;line-height:1.28;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._itemTask_1sp0v_156{display:block;max-width:100%;font-size:.75rem;line-height:1.35;color:color-mix(in srgb,var(--text-secondary) 92%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._itemBadge_1sp0v_167{display:inline-flex;align-items:center;width:fit-content;padding:2px 6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--status-warning) 28%,transparent);background:color-mix(in srgb,var(--status-warning) 12%,transparent);color:color-mix(in srgb,var(--status-warning) 70%,white);font-size:10px;font-weight:600}._itemMeta_1sp0v_180{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font-size:.72rem;line-height:1.35;color:color-mix(in srgb,var(--text-secondary) 82%,transparent)}._itemMetaDetails_1sp0v_191{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._itemMetaReference_1sp0v_198{flex-shrink:0;font-size:.7rem;font-weight:700;color:var(--text-secondary)}._viewer_v1pk0_1{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;height:100%}._viewerMonochrome_v1pk0_10 ._metaDocumentName_v1pk0_10{color:#111!important}._viewerEditMode_v1pk0_14{background:var(--bg-primary)}._meta_v1pk0_10{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);flex-shrink:0;flex-wrap:wrap}._metaLeft_v1pk0_30{display:flex;align-items:center;gap:12px;flex-wrap:wrap}._metaDocumentName_v1pk0_10{font-size:14px;font-weight:700;color:var(--text-primary);max-width:min(26ch,100%);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.015em;cursor:text}._metaRenameRow_v1pk0_49{display:inline-flex;align-items:center;gap:8px;min-width:min(420px,100%)}._typeBadge_v1pk0_56{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;background:var(--brand-primary-soft);color:var(--brand-primary-strong);border:1px solid color-mix(in srgb,var(--brand-primary) 25%,transparent);text-transform:uppercase;letter-spacing:.3px}._typeBadgeImplementationPlan_v1pk0_71{background:color-mix(in srgb,var(--status-info) 15%,transparent);color:color-mix(in srgb,var(--status-info) 55%,white);border-color:color-mix(in srgb,var(--status-info) 25%,transparent)}._typeBadgeReview_v1pk0_77{background:color-mix(in srgb,var(--status-warning) 15%,transparent);color:color-mix(in srgb,var(--status-warning) 68%,white);border-color:color-mix(in srgb,var(--status-warning) 25%,transparent)}._typeBadgeWalkthrough_v1pk0_83{background:color-mix(in srgb,var(--status-success) 15%,transparent);color:color-mix(in srgb,var(--status-success) 60%,white);border-color:color-mix(in srgb,var(--status-success) 25%,transparent)}._metaTaskName_v1pk0_89{font-size:11px;color:var(--text-secondary);max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._statusBadge_v1pk0_98{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--status-warning) 28%,transparent);background:color-mix(in srgb,var(--status-warning) 12%,transparent);color:color-mix(in srgb,var(--status-warning) 68%,white);font-size:10px;font-weight:600;letter-spacing:.2px;text-transform:uppercase}._metaDate_v1pk0_113,._metaSize_v1pk0_114{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted)}._actions_v1pk0_122{display:flex;align-items:center;gap:6px;flex-shrink:0}._actionBtn_v1pk0_129{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:6px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-secondary);font-size:11px;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap}._actionBtn_v1pk0_129:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-primary)}._actionBtn_v1pk0_129:disabled{opacity:.6;cursor:not-allowed}._dangerBtn_v1pk0_156{border-color:color-mix(in srgb,var(--status-error) 35%,transparent)!important;color:color-mix(in srgb,var(--status-error) 45%,white)!important}._dangerBtn_v1pk0_156:hover:not(:disabled){background:color-mix(in srgb,var(--status-error) 12%,transparent)!important;border-color:color-mix(in srgb,var(--status-error) 50%,transparent)!important;color:color-mix(in srgb,var(--status-error) 30%,white)!important}._generateBtn_v1pk0_167{background:var(--brand-primary-soft)!important;border-color:var(--brand-primary-border)!important;color:var(--brand-primary-strong)!important}._generateBtn_v1pk0_167:hover{background:color-mix(in srgb,var(--brand-primary) 24%,transparent)!important;color:color-mix(in srgb,var(--brand-primary-strong) 72%,white)!important}._editBtn_v1pk0_178{color:var(--text-primary)!important;border-color:var(--border-primary)!important}._editBtn_v1pk0_178:hover{background:color-mix(in srgb,var(--brand-primary) 10%,transparent)!important;border-color:var(--brand-primary-border)!important;color:var(--brand-primary-strong)!important}._saveBtn_v1pk0_189{background:color-mix(in srgb,var(--brand-primary) 15%,transparent)!important;border-color:var(--brand-primary-border)!important;color:var(--brand-primary-strong)!important}._saveBtn_v1pk0_189:hover:not(:disabled){background:color-mix(in srgb,var(--brand-primary) 25%,transparent)!important;color:color-mix(in srgb,var(--brand-primary-strong) 72%,white)!important}._saveBtn_v1pk0_189:disabled{opacity:.4!important;cursor:not-allowed!important}._layoutToggle_v1pk0_205{display:flex;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden}._layoutBtn_v1pk0_213{padding:5px 8px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;transition:all .12s}._layoutBtn_v1pk0_213:hover{color:var(--text-primary);background:var(--bg-hover)}._layoutBtnActive_v1pk0_229{color:var(--brand-primary-strong);background:var(--brand-primary-soft)}._saveStatus_v1pk0_234{display:inline-flex;align-items:center;gap:4px;font-size:11px}._saveStatusSaved_v1pk0_241{color:var(--status-success)}._saveStatusError_v1pk0_245{color:var(--status-error);cursor:help}._unsaved_v1pk0_250{font-size:11px;color:color-mix(in srgb,var(--status-warning) 70%,white);font-style:italic}._viewerContent_v1pk0_256{flex:1;overflow-y:auto;padding:16px 24px 40px;min-height:0;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}._viewerBody_v1pk0_265{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:stretch}._viewerBodyFullWidth_v1pk0_273{grid-template-columns:minmax(0,1fr)}._viewerMain_v1pk0_277{border-right:1px solid var(--border-subtle)}._viewerBodyFullWidth_v1pk0_273 ._viewerMain_v1pk0_277{border-right:none}._reviewRail_v1pk0_285{min-height:0;overflow:hidden;background:color-mix(in srgb,var(--bg-secondary) 78%,transparent)}._printHint_v1pk0_291{padding:0 24px 18px;color:var(--text-muted);font-size:11px;line-height:1.45}._reviewSection_v1pk0_298{height:100%;min-height:0;padding:18px 18px 18px 16px;display:flex;flex-direction:column;gap:12px}._reviewHeader_v1pk0_307{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}._reviewTitle_v1pk0_315{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--text-primary)}._reviewSubtitle_v1pk0_324{margin:4px 0 0;color:var(--text-muted);font-size:11px;line-height:1.45}._reviewControls_v1pk0_331{display:flex;align-items:center;gap:8px;flex-wrap:wrap}._reviewSelect_v1pk0_338{min-width:180px}._reviewSessionMeta_v1pk0_342{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px}._reviewStatusResolved_v1pk0_350{border-color:color-mix(in srgb,var(--status-success) 30%,transparent);background:color-mix(in srgb,var(--status-success) 12%,transparent);color:color-mix(in srgb,var(--status-success) 66%,white)}._reviewSessionLabel_v1pk0_356{color:var(--text-secondary);font-weight:600}._reviewTitleEditRow_v1pk0_361{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}._reviewSessionTimestamp_v1pk0_368{color:var(--text-muted)}._reviewAnchorLabel_v1pk0_372{color:var(--text-muted);font-size:11px;padding:0 4px}._reviewComposer_v1pk0_378{flex:1;display:flex;flex-direction:column;gap:8px}._reviewAnchorChip_v1pk0_385{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-secondary);color:var(--text-secondary);font-size:11px}._reviewAnchorSnippet_v1pk0_398{color:var(--text-primary);font-style:italic}._reviewAnchorClear_v1pk0_403{border:none;background:transparent;color:var(--brand-primary-strong);font:inherit;cursor:pointer;padding:0}._reviewAnchorClear_v1pk0_403:hover{text-decoration:underline}._reviewCommentActions_v1pk0_416{display:inline-flex;align-items:center;gap:6px;margin-left:auto}._reviewCommentAction_v1pk0_416{border:none;background:transparent;color:var(--text-muted);font:inherit;cursor:pointer;padding:0}._reviewCommentAction_v1pk0_416:hover{color:var(--text-primary);text-decoration:underline}._reviewCommentEditor_v1pk0_437{display:flex;flex-direction:column;gap:8px}._viewerState_v1pk0_443{padding:40px;text-align:center;color:var(--text-muted);font-size:13px}._viewerStateError_v1pk0_450{padding:40px;text-align:center;color:var(--status-error);font-size:13px}._editorArea_v1pk0_457{flex:1;display:flex;min-height:0;overflow:hidden}._editorPane_v1pk0_464{flex:1;display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--border-subtle)}._editorLayoutSplit_v1pk0_472 ._editorPane_v1pk0_464,._editorLayoutSplit_v1pk0_472 ._previewPane_v1pk0_473,._editorLayoutEditor_v1pk0_477 ._editorPane_v1pk0_464,._editorLayoutPreview_v1pk0_478 ._previewPane_v1pk0_473{flex:1}._editorPaneLabel_v1pk0_482{padding:6px 12px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);flex-shrink:0}._editorTextarea_v1pk0_494{flex:1;width:100%;resize:none;background:var(--bg-primary);color:var(--text-primary);border:none;outline:none;padding:16px;font-family:Fira Code,Cascadia Code,JetBrains Mono,monospace;font-size:13px;line-height:1.65;tab-size:2;caret-color:var(--brand-primary-strong);scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);min-height:0;box-sizing:border-box}._editorTextarea_v1pk0_494::selection{background:color-mix(in srgb,var(--brand-primary) 30%,transparent)}._previewPane_v1pk0_473{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}._previewPane_v1pk0_473 .docMarkdown{flex:1;overflow-y:auto;padding:16px 24px 40px;min-height:0;max-width:none;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}._markdownSurface_v1pk0_536{color:var(--text-body);font-size:14px;line-height:1.7;max-width:800px}._markdownSurface_v1pk0_536 h1,._markdownSurface_v1pk0_536 h2,._markdownSurface_v1pk0_536 h3,._markdownSurface_v1pk0_536 h4{color:var(--text-primary);font-weight:700;margin:1.5em 0 .5em;line-height:1.3}._markdownSurface_v1pk0_536 h1{font-size:1.6em}._markdownSurface_v1pk0_536 h2{font-size:1.25em;border-bottom:1px solid var(--border-subtle);padding-bottom:.3em}._markdownSurface_v1pk0_536 h3{font-size:1.1em}._markdownSurface_v1pk0_536 p{margin:.8em 0}._markdownSurface_v1pk0_536 a{color:var(--brand-primary-strong);text-decoration:underline;text-underline-offset:2px}._markdownSurface_v1pk0_536 a:hover{color:color-mix(in srgb,var(--brand-primary-strong) 72%,white)}._markdownSurface_v1pk0_536 code{font-family:Fira Code,Cascadia Code,monospace;font-size:.875em;background:var(--brand-primary-soft);padding:2px 5px;border-radius:4px;color:var(--code-inline-text, var(--brand-primary-strong))}._markdownSurface_v1pk0_536 pre{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;overflow-x:auto;margin:1em 0}._markdownSurface_v1pk0_536 pre code{background:none;padding:0;font-size:13px;color:var(--code-block-text, var(--text-body))}._markdownSurface_v1pk0_536 blockquote{border-left:3px solid color-mix(in srgb,var(--brand-primary) 50%,transparent);padding-left:16px;margin:1em 0;color:var(--text-secondary);font-style:italic}._markdownSurface_v1pk0_536 table{border-collapse:collapse;width:100%;margin:1em 0;font-size:13px}._markdownSurface_v1pk0_536 th,._markdownSurface_v1pk0_536 td{border:1px solid var(--border-subtle);padding:8px 12px;text-align:left}._markdownSurface_v1pk0_536 th{background:var(--bg-secondary);font-weight:600;color:var(--text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:.4px}._markdownSurface_v1pk0_536 ul,._markdownSurface_v1pk0_536 ol{padding-left:1.5em;margin:.5em 0}._markdownSurface_v1pk0_536 li{margin:.3em 0}._markdownSurface_v1pk0_536 li._task-list-item_v1pk0_647,._markdownSurface_v1pk0_536 li[data-task-item=true]{list-style:none}._markdownSurface_v1pk0_536 li:has(input[type=checkbox]){list-style:none!important;list-style-type:none!important}._markdownSurface_v1pk0_536 ul._contains-task-list_v1pk0_657,._markdownSurface_v1pk0_536 ol._contains-task-list_v1pk0_657{padding-left:.25em}._markdownSurface_v1pk0_536 ul:has(li input[type=checkbox]),._markdownSurface_v1pk0_536 ol:has(li input[type=checkbox]){padding-left:1.25em!important}._markdownSurface_v1pk0_536 li._task-list-item_v1pk0_647>input[type=checkbox],._markdownSurface_v1pk0_536 li[data-task-item=true]>input[type=checkbox]{margin-right:.45em;cursor:pointer;accent-color:var(--brand-primary-strong)}._markdownSurface_v1pk0_536 hr{border:none;border-top:1px solid var(--border-subtle);margin:1.5em 0}._markdownSurface_v1pk0_536 img{max-width:100%;border-radius:8px}._viewerMonochrome_v1pk0_10 ._viewerContent_v1pk0_256,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536{background:#fff!important}@media(max-width:1100px){._viewerBody_v1pk0_265{grid-template-columns:minmax(0,1fr)}._viewerMain_v1pk0_277{border-right:none;border-bottom:1px solid var(--border-subtle)}._reviewRail_v1pk0_285{max-height:480px}._reviewSection_v1pk0_298{padding:16px 24px 18px}}._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 h1,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 h2,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 h3,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 h4,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 p,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 li,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 blockquote,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 th,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 td,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 a{color:#111!important}._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 code{color:#111!important;background:#f2f2f2!important}._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 pre{background:#f7f7f7!important;border-color:#d7d7d7!important}._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 pre code,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 code,._viewerMonochrome_v1pk0_10 ._markdownSurface_v1pk0_536 a,._viewerMonochrome_v1pk0_10 ._metaTaskName_v1pk0_89,._viewerMonochrome_v1pk0_10 ._metaDate_v1pk0_113,._viewerMonochrome_v1pk0_10 ._metaSize_v1pk0_114{color:#111!important}._attachModalBody_v1pk0_745{display:flex;flex-direction:column;gap:12px;padding:8px 4px 4px}._attachModalCopy_v1pk0_752{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.5}._attachModalError_v1pk0_759{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border-subtle);background:color-mix(in srgb,var(--status-danger) 10%,transparent);color:var(--status-danger);font-size:12px;font-weight:600}._attachTaskList_v1pk0_772{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;padding-right:2px}._attachTaskRow_v1pk0_781{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color .12s ease,transform .12s ease,background .12s ease}._attachTaskRow_v1pk0_781:hover:not(:disabled){border-color:var(--brand-primary-strong);background:color-mix(in srgb,var(--brand-primary-strong) 8%,var(--bg-elevated));transform:translateY(-1px)}._attachTaskRow_v1pk0_781:disabled{opacity:.72;cursor:wait}._attachTaskTitle_v1pk0_808{font-size:13px;font-weight:600;color:inherit}._attachTaskInfo_v1pk0_814{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}._attachTaskReference_v1pk0_822{font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.02em}._attachTaskMeta_v1pk0_829{flex-shrink:0;font-size:12px;font-weight:700;color:var(--text-secondary)}._attachEmptyState_v1pk0_836{padding:18px 12px;border-radius:12px;border:1px dashed var(--border-subtle);color:var(--text-muted);text-align:center;font-size:13px}._overlay_1unik_1{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008c;z-index:2000;padding:1rem}._modal_1unik_12{width:min(720px,100%)}._header_1unik_16{align-items:flex-start}._title_1unik_20{font-size:1rem}._docName_1unik_24{font-size:.75rem;color:var(--text-secondary);max-width:14rem;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._body_1unik_34{padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}._state_1unik_41{min-height:10rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);text-align:center}._stateError_1unik_52{min-height:10rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;color:var(--status-error);text-align:center}._stateDone_1unik_63{min-height:10rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center}._stateDone_1unik_63 strong{color:var(--text-primary);font-size:1rem}._stateDone_1unik_63 p{margin:0;font-size:.8125rem;color:var(--text-secondary)}._toolbar_1unik_84{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem .75rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-inset)}._toolbarCount_1unik_95{font-size:.75rem;color:var(--text-secondary)}._toolbarActions_1unik_100{display:flex;gap:.5rem}._tree_1unik_105{display:flex;flex-direction:column;gap:.125rem;max-height:22rem;overflow-y:auto}._taskRow_1unik_113{display:flex;align-items:center;gap:.375rem;padding:.4375rem .75rem;min-height:2.125rem;transition:background .1s}._taskRow_1unik_113:hover{background:#ffffff08}._taskRowDimmed_1unik_126{opacity:.4}._taskCheck_1unik_130{background:transparent;border:none;cursor:pointer;display:flex;padding:0;flex-shrink:0}._taskExpandBtn_1unik_139{background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;padding:0;flex-shrink:0;transition:color .1s}._taskExpandBtn_1unik_139:hover{color:var(--text-primary)}._taskExpandSpacer_1unik_155{width:12px;flex-shrink:0}._taskTitle_1unik_160{flex:1;font-size:.8125rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._taskBadge_1unik_169{font-size:.625rem;padding:.125rem .375rem;border-radius:var(--radius-sm);border:1px solid currentColor;opacity:.85;white-space:nowrap;flex-shrink:0}._footer_1unik_179{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;padding:0 1rem 1rem}
@@ -1 +0,0 @@
1
- import{R as k,j as t}from"./vendor-react-CKJs5o3c.js";import{S as A,U as N,V as E,W as I,X as S,Y as M}from"./index--mh3pktj.js";import"./vendor-icons-CLnehDTw.js";import"./vendor-markdown-BUxTU7dS.js";import"./vendor-dnd-DRzYolkg.js";import"./vendor-router-BbWMxlnO.js";const $="_thread_1mrb3_1",z="_empty_1mrb3_7",P="_item_1mrb3_17",H="_comment_1mrb3_24",R="_commentAgent_1mrb3_28",B="_commentMember_1mrb3_32",W="_event_1mrb3_36",K="_eventSystem_1mrb3_43",w="_header_1mrb3_47",D="_eventHeader_1mrb3_64",F="_author_1mrb3_71",O="_time_1mrb3_79",U="_commentText_1mrb3_83",X="_eventText_1mrb3_123",Y="_eventChanges_1mrb3_129",q="_eventChange_1mrb3_129",e={thread:$,empty:z,item:P,comment:H,commentAgent:R,commentMember:B,event:W,eventSystem:K,header:w,eventHeader:D,author:F,time:O,commentText:U,eventText:X,eventChanges:Y,eventChange:q};function v(c,m){const r=c.replace("#","").trim();if(r.length!==3&&r.length!==6)return"";const i=r.length===3?r.split("").map(l=>l+l).join(""):r,a=Number.parseInt(i,16);if(Number.isNaN(a))return"";const _=a>>16&255,g=a>>8&255,u=a&255;return`rgba(${_}, ${g}, ${u}, ${m})`}function ee({activity:c,comments:m,formatFieldValue:r,resolveActorPresentation:i,onOpenTaskById:a,emptyMessage:_="No activity yet.",listClassName:g,emptyClassName:u,endRef:l}){const b=k.useMemo(()=>A({activity:c,comments:m}),[c,m]);return t.jsxs("div",{className:[e.thread,g].filter(Boolean).join(" "),children:[b.length===0?t.jsx("div",{className:[e.empty,u].filter(Boolean).join(" "),children:_}):null,b.map(n=>{if(n.type==="comment"){const o=i({actorId:n.comment.author,actorType:n.comment.actor?.kind==="ai"?"ai":n.comment.actor?.kind==="human"?"human":null,actorProfile:n.comment.actor||null}),x=o.kind==="agent"?"agent":"member",{ActorIcon:f}=o,s=o.color,T=s&&v(s,.35)?{background:`linear-gradient(135deg, ${v(s,.18)} 0%, ${v(s,.1)} 100%)`,borderColor:v(s,.35)}:void 0;return t.jsxs("div",{className:[e.item,e.comment,x==="agent"?e.commentAgent:e.commentMember].join(" "),children:[t.jsxs("div",{className:e.header,children:[t.jsxs("span",{className:e.author,style:s?{color:s}:void 0,children:[t.jsx(f,{size:12,strokeWidth:1.5}),o.label]}),t.jsx("span",{className:e.time,children:N(n.comment.timestamp,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]}),t.jsx("div",{className:e.commentText,style:T,children:t.jsx(E,{onTaskIdClick:a,children:n.comment.text})})]},n.id)}const d=i({actorId:n.event.actor,actorType:n.event.actorType,actorProfile:n.event.actorProfile||null,fallbackKind:"system"}),{ActorIcon:C}=d,y=d.color,h=Object.entries(n.event.details?.changes||{}),p=I(n.event),j=h.length>1&&p?h.filter(([o])=>o!==p):h.length>1?h:[];return t.jsxs("div",{className:[e.item,e.event,d.kind==="system"?e.eventSystem:""].filter(Boolean).join(" "),children:[t.jsxs("div",{className:[e.header,e.eventHeader].join(" "),children:[t.jsxs("span",{className:e.author,style:y?{color:y}:void 0,children:[t.jsx(C,{size:12,strokeWidth:1.5}),d.label]}),t.jsx("span",{className:e.time,children:N(n.event.createdAt,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]}),t.jsxs("div",{className:e.eventText,children:[t.jsx("div",{children:S(n.event,r)}),j.length>0?t.jsx("div",{className:e.eventChanges,children:j.map(([o,x])=>t.jsx("div",{className:e.eventChange,children:M(o,x,r)},o))}):null]})]},n.id)}),t.jsx("div",{ref:l})]})}export{ee as EntityActivityTimeline};
@@ -1 +0,0 @@
1
- ._thread_1mrb3_1{display:flex;flex-direction:column;gap:10px}._empty_1mrb3_7{text-align:center;color:var(--text-muted, #6b7280);font-size:13px;padding:32px 0;font-style:italic;opacity:.7;letter-spacing:.01em}._item_1mrb3_17{display:flex;flex-direction:column;max-width:calc(100% - 12px);gap:3px}._comment_1mrb3_24{animation:_fadeIn_1mrb3_1 .2s ease-out}._commentAgent_1mrb3_28{align-self:flex-start}._commentMember_1mrb3_32{align-self:flex-end}._event_1mrb3_36{align-self:stretch;max-width:100%;gap:6px;animation:_fadeIn_1mrb3_1 .2s ease-out}._eventSystem_1mrb3_43{opacity:.92}._header_1mrb3_47{display:flex;gap:8px;align-items:center;font-size:11px;margin-bottom:2px}._commentAgent_1mrb3_28 ._header_1mrb3_47{margin-left:2px}._commentMember_1mrb3_32 ._header_1mrb3_47{margin-right:2px;flex-direction:row-reverse}._eventHeader_1mrb3_64{margin:0;flex-direction:row;justify-content:space-between;gap:10px}._author_1mrb3_71{display:flex;align-items:center;gap:4px;font-weight:600;color:var(--text-secondary, #9ca3af)}._time_1mrb3_79{color:var(--text-tertiary, #6b7280)}._commentText_1mrb3_83{padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.5;position:relative;word-break:break-word;box-shadow:0 2px 8px #00000026}._commentText_1mrb3_83 p{margin:0}._commentText_1mrb3_83 p+p{margin-top:8px}._commentAgent_1mrb3_28 ._commentText_1mrb3_83{background:linear-gradient(135deg,#06b6d426,#3b82f61f);border:1px solid rgba(6,182,212,.2);color:var(--text-primary, #fff);border-top-left-radius:4px}._commentMember_1mrb3_32 ._commentText_1mrb3_83{background:linear-gradient(135deg,#8b5cf633,#7c3aed26);border:1px solid rgba(139,92,246,.3);color:var(--text-primary, #fff);border-top-right-radius:4px}._eventText_1mrb3_123{color:var(--text-secondary, #cbd5e1);font-size:13px;line-height:1.45}._eventChanges_1mrb3_129{display:grid;gap:4px;margin-top:6px}._eventChange_1mrb3_129{padding-left:8px;border-left:2px solid var(--border-strong);color:var(--text-helper);font-size:12px;line-height:1.35}
@@ -1 +0,0 @@
1
- import{r as i,j as s}from"./vendor-react-CKJs5o3c.js";import{t as e}from"./index--mh3pktj.js";import{h as g,Z as j,b as v,m as f}from"./vendor-icons-CLnehDTw.js";import"./vendor-markdown-BUxTU7dS.js";import"./vendor-dnd-DRzYolkg.js";import"./vendor-router-BbWMxlnO.js";function T({initiativeTemplates:n,onRefreshInitiativeTemplates:u,onCreateInitiativeFromTemplate:r}){const[a,o]=i.useState(""),[c,x]=i.useState(""),[d,m]=i.useState(!1),[l,p]=i.useState(null);return i.useEffect(()=>{if(!a&&n.length>0){const t=n[0];o(t.id)}},[n,a]),s.jsx("div",{className:`${e.standalonePage} ${e.standaloneContent}`,style:{overflow:"auto"},children:s.jsx("div",{className:e.settingsContent,style:{maxWidth:900,margin:"0 auto",width:"100%"},children:s.jsxs("div",{className:e.settingGroup,children:[s.jsxs("div",{className:e.settingTitleRow,children:[s.jsx("h2",{className:e.settingTitle,children:"Initiatives"}),s.jsx("button",{className:e.copyBtn,onClick:()=>{u?.()},children:"Refresh"})]}),s.jsx("p",{className:`${e.settingsHint} ${e.marginBottom12}`,children:"Create initiative-ready planning structures from reusable templates."}),s.jsxs("div",{className:e.exportItem,children:[s.jsx("label",{className:e.label,children:"Template"}),s.jsx("select",{className:e.input,value:a,onChange:t=>{const h=t.target.value;o(h)},children:n.map(t=>s.jsx("option",{value:t.id,children:t.name},t.id))})]}),s.jsxs("div",{className:`${e.exportItem} ${e.marginTop12}`,children:[s.jsx("label",{className:e.label,children:"Initiative Title"}),s.jsx("input",{className:e.input,placeholder:"e.g. Taskforce Public Beta Launch",value:c,onChange:t=>x(t.target.value)})]}),s.jsxs("button",{className:`${e.secondaryHeaderBtn} ${e.marginTop12}`,disabled:d||!a||!c.trim()||!r,onClick:async()=>{if(!r)return;m(!0);const t=await r({templateId:a,title:c.trim()});m(!1),p({type:t.success?"success":"error",message:t.success?"Initiative created from template.":t.error||"Failed to create initiative."})},children:[d?s.jsx(g,{size:14,className:e.spinner}):s.jsx(j,{size:14}),"Create Initiative"]}),l&&s.jsxs("div",{className:`${l.type==="success"?e.successMessage:e.errorMessage} ${e.marginTop12}`,children:[l.type==="success"?s.jsx(v,{size:14}):s.jsx(f,{size:14}),l.message]})]})})})}export{T as InitiativesModule};
@@ -1 +0,0 @@
1
- import{r as s,j as e}from"./vendor-react-CKJs5o3c.js";import{H as he,t as Oe,J as Ve,K as Pe,L as fe,N as be,O as Ke,Q as He}from"./index--mh3pktj.js";import{aL as qe,h as ze,U as Ye}from"./vendor-icons-CLnehDTw.js";import{u as We,a as Ge}from"./vendor-router-BbWMxlnO.js";import"./vendor-markdown-BUxTU7dS.js";import"./vendor-dnd-DRzYolkg.js";const Qe="_plansWrapper_nb8ab_1",Je="_contentFrame_nb8ab_24",Xe="_shellOwnsScroll_nb8ab_32",Ze="_withChrome_nb8ab_38",en="_siteVariant_nb8ab_42",nn="_title_nb8ab_56",tn="_subtitle_nb8ab_70",rn="_header_nb8ab_77",an="_planCard_nb8ab_92",sn="_grid_nb8ab_105",cn="_pricingNotes_nb8ab_113",on="_planName_nb8ab_122",ln="_featureText_nb8ab_129",un="_currentBadge_nb8ab_133",dn="_navAction_nb8ab_137",mn="_backBtn_nb8ab_138",pn="_priceRows_nb8ab_149",gn="_foundingBeta_nb8ab_153",fn="_cloudCapacityNote_nb8ab_172",bn="_headerBar_nb8ab_239",hn="_headerActions_nb8ab_248",yn="_debugMeta_nb8ab_299",_n="_planNoticeCard_nb8ab_362",Cn="_planDescription_nb8ab_373",Sn="_teamComingSoonCard_nb8ab_378",wn="_clickablePlanCard_nb8ab_397",vn="_activePlanCard_nb8ab_412",xn="_callToAction_nb8ab_476",Nn="_primaryCta_nb8ab_488",kn="_secondaryCta_nb8ab_499",Pn="_currentCta_nb8ab_511",In="_featuresList_nb8ab_525",An="_priceRow_nb8ab_149",jn="_regularPriceLine_nb8ab_549",Tn="_campaignPriceLine_nb8ab_550",Ln="_priceRowWithCampaign_nb8ab_557",Rn="_priceRowAmount_nb8ab_561",En="_regularPriceDiscounted_nb8ab_567",Bn="_priceRowInterval_nb8ab_573",$n="_campaignPriceLabel_nb8ab_582",Mn="_campaignPriceAmount_nb8ab_587",Un="_campaignPriceInterval_nb8ab_593",Dn="_ctaRow_nb8ab_598",Fn="_featureItem_nb8ab_604",On="_featureIcon_nb8ab_610",Vn="_featureLimitAccent_nb8ab_624",Kn="_featureLimitUnit_nb8ab_635",Hn="_featureTextBlock_nb8ab_641",qn="_featureDescription_nb8ab_647",zn="_emptyState_nb8ab_653",Yn="_marketingEmptyState_nb8ab_662",Wn="_emptyBadge_nb8ab_690",Gn="_emptyHighlights_nb8ab_705",Qn="_loader_nb8ab_727",Jn="_spinner_nb8ab_737",Xn="_statusBanner_nb8ab_790",Zn="_successBanner_nb8ab_798",et="_infoBanner_nb8ab_804",nt="_errorBanner_nb8ab_810",r={plansWrapper:Qe,contentFrame:Je,shellOwnsScroll:Xe,withChrome:Ze,siteVariant:en,title:nn,subtitle:tn,header:rn,planCard:an,grid:sn,pricingNotes:cn,planName:on,featureText:ln,currentBadge:un,navAction:dn,backBtn:mn,priceRows:pn,foundingBeta:gn,cloudCapacityNote:fn,headerBar:bn,headerActions:hn,debugMeta:yn,planNoticeCard:_n,planDescription:Cn,teamComingSoonCard:Sn,clickablePlanCard:wn,activePlanCard:vn,callToAction:xn,primaryCta:Nn,secondaryCta:kn,currentCta:Pn,featuresList:In,priceRow:An,regularPriceLine:jn,campaignPriceLine:Tn,priceRowWithCampaign:Ln,priceRowAmount:Rn,regularPriceDiscounted:En,priceRowInterval:Bn,campaignPriceLabel:$n,campaignPriceAmount:Mn,campaignPriceInterval:Un,ctaRow:Dn,featureItem:Fn,featureIcon:On,featureLimitAccent:Vn,featureLimitUnit:Kn,featureTextBlock:Hn,featureDescription:qn,emptyState:zn,marketingEmptyState:Yn,emptyBadge:Wn,emptyHighlights:Gn,loader:Qn,spinner:Jn,statusBanner:Xn,successBanner:Zn,infoBanner:et,errorBanner:nt};function tt(){const n=globalThis.__DEBUG_MODE__;return typeof n=="boolean"?n:!1}function rt(n){const a=String(n?.environment||"").trim(),o=String(n?.runtimeMode||"").trim();return!a&&!o?null:a&&o?`${a} (${o})`:a||o||null}const at=new Set(["a","b","br","em","i","li","ol","p","strong","u","ul"]);function it(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function st(n){const a=String(n||"").trim();if(!a)return"";if(typeof document>"u")return it(a);const o=document.createElement("template");o.innerHTML=a;const p=document.createElement("div"),l=_=>{if(_.nodeType===Node.TEXT_NODE)return document.createTextNode(_.textContent||"");if(_.nodeType!==Node.ELEMENT_NODE)return null;const E=_,I=E.tagName.toLowerCase();if(I==="script"||I==="style")return null;const $=Array.from(E.childNodes).map(l).filter(b=>!!b);if(!at.has(I)){const b=document.createDocumentFragment();for(const W of $)b.appendChild(W);return b}const x=document.createElement(I);if(I==="a"){const b=String(E.getAttribute("href")||"").trim();/^(https?:|mailto:|\/|#)/i.test(b)&&(x.setAttribute("href",b),x.setAttribute("rel","noopener noreferrer"))}for(const b of $)x.appendChild(b);return x};for(const _ of Array.from(o.content.childNodes)){const E=l(_);E&&p.appendChild(E)}return p.innerHTML}function ct(n,a){if(n==null||!a)return"Contact Sales";try{return new Intl.NumberFormat("en-US",{style:"currency",currency:a.toUpperCase(),minimumFractionDigits:0}).format(n/100)}catch{return`${a.toUpperCase()} ${n/100}`}}function ot(){return"$0"}function V(n){return n?n.pricingType==="free"?!0:n.unitAmount!=null&&n.currency!=null:!1}function Te(n){return n?n.pricingType==="free"?ot():ct(n.unitAmount,n.currency):"Unavailable"}function Le(n,a){return V(a)?{price:a,pricingAudience:"campaign"}:{price:n,pricingAudience:"public"}}function lt(n,a,o,p){const l=V(n)||V(o),_=V(a)||V(p);if(!l&&!_)return null;const E=(I,$,x)=>{if(!V(I)&&!V($))return null;const b=V($),W=x==="year"?"year":"month";return e.jsxs("div",{className:`${r.priceRow} ${b?r.priceRowWithCampaign:""}`,children:[V(I)?e.jsxs("div",{className:r.regularPriceLine,children:[e.jsx("span",{className:`${r.priceRowAmount} ${b?r.regularPriceDiscounted:""}`,children:Te(I)}),e.jsxs("span",{className:r.priceRowInterval,children:["/ ",W]})]}):null,b?e.jsxs("div",{className:r.campaignPriceLine,children:[e.jsx("span",{className:r.campaignPriceLabel,children:"Founding Offer:"}),e.jsx("span",{className:r.campaignPriceAmount,children:Te($)}),e.jsxs("span",{className:r.campaignPriceInterval,children:["/ ",W]})]}):null]},x)};return e.jsxs("div",{className:r.priceRows,children:[E(n,o,"month"),E(a,p,"year")]})}function Re(n){const a=[n.pricing.month,n.pricing.year].filter(Boolean);if(a.some(p=>p.pricingType==="free"))return 0;const o=a.map(p=>p.pricingType==="stripe"&&typeof p.unitAmount=="number"?p.unitAmount:null).filter(p=>p!=null);return o.length>0?Math.min(...o):Number.POSITIVE_INFINITY}function ut(n){return String(n||"").replace(/[_\-.]+/g," ").replace(/\b\w/g,a=>a.toUpperCase())}function Ie(n,a){const o=n?.[a],p=Number(o);return Number.isFinite(p)?Math.max(1,Math.floor(p)):null}function ve(n,a){return a!==1?n:n.replace(/\b([A-Za-z]+)ies\b$/,"$1y").replace(/\b([A-Za-z]+[^s\s])s\b$/,"$1")}function dt(n){return n<=1e3?{value:String(n),unit:"MB"}:{value:String(Math.round(n/1e3)),unit:"GB"}}function mt(n,a){const o=String(n.publicLabel||n.label||"").trim()||ut(n.featureKey),p=n.config&&typeof n.config=="object"?n.config:{};if(n.featureKey==="context.uploads"){const l=Ie(p,"storageLimitMb");if(l!==null){const _=dt(l);return{limitValue:_.value,limitUnit:_.unit,baseLabel:ve(o,l)}}}if(n.featureKey==="workspace.workspaces"){const l=Ie(p,"maxWorkspaces");if(l!==null)return{limitValue:String(l),limitUnit:null,baseLabel:ve(o,l)}}if(n.featureKey==="collaboration.ai_profiles"){const l=Ie(p,"maxAiProfiles");if(l!==null)return{limitValue:String(l),limitUnit:null,baseLabel:ve(o,l)}}if(n.featureKey==="collaboration.team_management"){const l=Number(a);if(Number.isFinite(l)&&l>0){const _=Math.floor(l);return{limitValue:String(_),limitUnit:null,baseLabel:ve(o,_)}}}return{limitValue:null,limitUnit:null,baseLabel:o}}function pt({heading:n,subtitle:a,variant:o="app",theme:p="dark",chrome:l,footer:_,isAuthenticated:E,authSessionResolved:I=!0,currentPlanId:$,currentPlanVersionId:x,currentEntitlementState:b,markCurrentPlan:W,canManageCurrentPlan:G=!0,pricingEndpoint:A,statusBanner:H,onBack:j,backLabel:T,backDisabled:M=!1,topActions:se,shellOwnsScroll:ye=!1,showPageBackButton:X=!0,showHeaderBarWithChrome:re=!1,preferPricingPageTitle:_e=!0,currentPlanCardActionMode:Ce="manage",fallbackPricingSource:f=null,onSelectPlan:q}){const[Z,Q]=s.useState([]),[ce,F]=s.useState(null),[N,L]=s.useState({pageTitle:null,pageDescription:null}),[oe,z]=s.useState(!0),[le,ue]=s.useState(null),[Se,ee]=s.useState(0);s.useEffect(()=>{let i=!0;return(async()=>{const D=String(A||"/api/taskforce/public/pricing").trim()||"/api/taskforce/public/pricing";i&&(z(!0),ue(null));try{const v=await fetch(D,{method:"GET",credentials:"include"}),u=await v.json().catch(()=>({}));if(v.ok){i&&(Q(Array.isArray(u?.plans)?u.plans:[]),F(u?.pricingSource&&typeof u.pricingSource=="object"?u.pricingSource:null),L({pageTitle:typeof u?.pageTitle=="string"&&u.pageTitle.trim()||null,pageDescription:typeof u?.pageDescription=="string"&&u.pageDescription.trim()||null}));return}throw new Error(String(u?.error||`Failed to load pricing (${v.status})`))}catch(v){if(i){const u=v instanceof Error?v.message:"Failed to load pricing";ue(u||"Failed to load pricing"),F(null),L({pageTitle:null,pageDescription:null})}}finally{i&&z(!1)}})(),()=>{i=!1}},[A,Se]);const J=s.useMemo(()=>[...Z].sort((i,U)=>{const D=Re(i),v=Re(U);if(D!==v)return D-v;const u=i.defaultVersion?.versionNumber||0,O=U.defaultVersion?.versionNumber||0;return u!==O?u-O:String(i.displayName||i.planId).localeCompare(String(U.displayName||U.planId))}),[Z]),de=s.useMemo(()=>rt(ce||f),[f,ce]),xe=String((_e?N.pageTitle:null)||n).trim()||n,me=String(N.pageDescription||a||"").trim(),w=s.useMemo(()=>st(me),[me]),ne=I,pe=`${r.plansWrapper} ${ye?r.shellOwnsScroll:"tf-scrollbar"} ${o==="site"?r.siteVariant:""} ${l?r.withChrome:""}`.trim(),B=i=>ye?e.jsxs(e.Fragment,{children:[l,i,_]}):e.jsxs("div",{className:Oe.standaloneWrapper,"data-theme":p,children:[l,i,_]});return B(oe?e.jsx(e.Fragment,{children:e.jsx("div",{className:pe,children:e.jsx("div",{className:r.contentFrame,children:e.jsxs("div",{className:r.loader,children:[e.jsx(ze,{size:48,className:r.spinner}),e.jsx("p",{children:"Loading plans..."})]})})})}):le?e.jsx(e.Fragment,{children:e.jsx("div",{className:pe,children:e.jsx("div",{className:r.contentFrame,children:e.jsxs("div",{className:r.emptyState,children:[e.jsx("h2",{children:"Connecting to plan pricing..."}),e.jsx("p",{children:le}),e.jsx("button",{className:r.backBtn,onClick:()=>ee(i=>i+1),children:"Retry"})]})})})}):e.jsx(e.Fragment,{children:e.jsx("div",{className:pe,children:e.jsxs("div",{className:r.contentFrame,children:[e.jsxs("div",{className:r.header,children:[(!l||re)&&(X||se)&&e.jsxs("div",{className:r.headerBar,children:[e.jsx("div",{children:X?e.jsx("button",{className:r.backBtn,onClick:j,disabled:M,children:T}):null}),e.jsx("div",{className:r.headerActions,children:se})]}),e.jsx("h1",{className:r.title,children:xe}),w&&e.jsx("div",{className:r.subtitle,dangerouslySetInnerHTML:{__html:w}}),tt()&&de?e.jsxs("p",{className:r.debugMeta,children:["Pricing source: ",de]}):null,H&&e.jsx("div",{className:`${r.statusBanner} ${H.type==="success"?r.successBanner:H.type==="info"?r.infoBanner:r.errorBanner}`,children:H.message})]}),e.jsxs("section",{className:r.foundingBeta,"aria-labelledby":"founding-beta-heading",children:[e.jsx("h2",{id:"founding-beta-heading",children:"Founding beta"}),e.jsx("p",{children:"Taskforce is in founding beta. You may run into rough edges while we improve cloud workspaces and agent workflows. Early members get access while the product is still forming, plus a direct role in shaping what comes next."})]}),J.length===0?e.jsxs("div",{className:`${r.emptyState} ${r.marketingEmptyState}`,children:[e.jsx("span",{className:r.emptyBadge,children:"Coming Soon"}),e.jsx("h2",{children:"Paid plans are getting their final polish."}),e.jsx("p",{children:"Taskforce pricing is on the way with flexible options for solo operators, teams, and larger rollouts. Check back soon for launch tiers, feature bundles, and early access details."}),e.jsxs("div",{className:r.emptyHighlights,"aria-label":"Upcoming pricing highlights",children:[e.jsx("span",{children:"Launch-ready tiers"}),e.jsx("span",{children:"Team billing controls"}),e.jsx("span",{children:"Feature-based packaging"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:r.grid,children:J.map(i=>{const U=i.pricing.month,D=i.pricing.year,v=i.campaignPricing?.month||null,u=i.campaignPricing?.year||null,O=Le(U,v),K=Le(D,u),Y=V(O.price),ae=V(K.price),ie=Y&&ae,k=String(i.defaultVersion?.planVersionId||"").trim(),Ne=he(b),ge=W??Ne,ke=!!(k&&x&&x===k)||!!(!x&&($&&$===i.planId)),te=ge&&ke&&b!=="canceled",t=Y?"month":ae?"year":null,c=t==="year"?K:O,y=Ce==="manage",g=Ce==="indicator",h=ne&&!!k&&(te?y&&G:!!t),m=()=>{if(k){if(te){if(!y||!G)return;q({planId:i.planId,planVersionId:k,interval:t||"month",pricingType:c.price?.pricingType||"stripe",pricingAudience:c.pricingAudience,isCurrentPlan:!0});return}t&&q({planId:i.planId,planVersionId:k,interval:t,pricingType:c.price?.pricingType||"stripe",pricingAudience:c.pricingAudience,isCurrentPlan:!1})}};return e.jsxs("div",{className:`${r.planCard} ${te?r.activePlanCard:""} ${h?r.clickablePlanCard:""}`,"data-testid":`plan-card-${i.planId}`,role:h?"button":void 0,tabIndex:h?0:void 0,onClick:h?m:void 0,onKeyDown:h?d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),m())}:void 0,children:[te&&e.jsx("span",{className:r.currentBadge,children:"Current Plan"}),e.jsx("h3",{className:r.planName,children:i.displayName}),lt(U,D,v,u),String(i.description||"").trim()&&e.jsx("p",{className:r.planDescription,children:String(i.description||"").trim()}),e.jsx("div",{className:r.featuresList,children:Array.isArray(i.features)&&i.features.length>0?i.features.map((d,S)=>e.jsxs("div",{className:r.featureItem,children:[e.jsx(qe,{className:r.featureIcon}),e.jsxs("div",{className:r.featureTextBlock,children:[(()=>{const{limitValue:P,limitUnit:C,baseLabel:R}=mt(d,i.defaultVersion?.seatLimit);return e.jsxs("span",{className:r.featureText,children:[P&&e.jsxs("span",{className:r.featureLimitAccent,children:[e.jsx("span",{children:P}),C?e.jsx("span",{className:r.featureLimitUnit,children:C}):null]}),e.jsx("span",{children:P?` ${R}`:R})]})})(),d.publicDescriptionVisible!==!1&&String(d.publicDescription||d.description||"").trim()&&e.jsx("span",{className:r.featureDescription,children:String(d.publicDescription||d.description||"").trim()})]})]},`${d.featureKey}-${S}`)):e.jsx("span",{className:r.featureText,children:"No additional features included"})}),te?y?e.jsx("button",{className:`${r.callToAction} ${r.currentCta}`,"data-testid":`plan-manage-${i.planId}`,onClick:d=>{d.stopPropagation(),G&&q({planId:i.planId,planVersionId:k,interval:t||"month",pricingType:c.price?.pricingType||"stripe",pricingAudience:c.pricingAudience,isCurrentPlan:!0})},disabled:!k||!G||!ne,children:E&&G?"Manage Plan":"Current Plan"}):g?e.jsx("button",{className:`${r.callToAction} ${r.currentCta}`,"data-testid":`plan-current-${i.planId}`,disabled:!0,children:"Current Plan"}):null:e.jsxs("div",{className:r.ctaRow,children:[Y?e.jsx("button",{className:`${r.callToAction} ${r.secondaryCta}`,"data-testid":`plan-select-${i.planId}-month`,onClick:d=>{d.stopPropagation(),q({planId:i.planId,planVersionId:k,interval:"month",pricingType:O.price?.pricingType||"stripe",pricingAudience:O.pricingAudience,isCurrentPlan:!1})},disabled:!k||!ne,children:ie?"Start Monthly":"Get Started"}):null,ae?e.jsx("button",{className:`${r.callToAction} ${r.primaryCta}`,"data-testid":`plan-select-${i.planId}-year`,onClick:d=>{d.stopPropagation(),q({planId:i.planId,planVersionId:k,interval:"year",pricingType:K.price?.pricingType||"stripe",pricingAudience:K.pricingAudience,isCurrentPlan:!1})},disabled:!k||!ne,children:ie?"Start Yearly":"Get Started"}):null]})]},i.planId)})}),e.jsxs("div",{className:r.pricingNotes,children:[e.jsx("p",{children:"Prices are listed in USD. Taxes may apply."}),e.jsx("p",{children:"Local install is free on every plan. Cloud limits apply only to hosted workspaces."})]}),e.jsxs("section",{className:`${r.foundingBeta} ${r.cloudCapacityNote}`,"aria-labelledby":"cloud-capacity-heading",children:[e.jsx("h2",{id:"cloud-capacity-heading",children:"Need more cloud capacity?"}),e.jsx("p",{children:"Pro users can request expanded limits for cloud workspaces, AI agents, and storage."}),e.jsxs("p",{children:["Contact ",e.jsx("a",{href:"mailto:support@taskforcehq.ai",children:"support@taskforcehq.ai"})," to discuss capacity needs."]})]}),e.jsxs("div",{className:`${r.planCard} ${r.planNoticeCard} ${r.teamComingSoonCard}`,children:[e.jsx("h2",{className:r.planName,children:"Team workspaces are coming soon."}),e.jsx("p",{className:r.planDescription,children:"Shared workspaces, collaborators, team agent rosters, admin controls, and larger cloud limits are in development."})]})]})]})})}))}const gt=1600,Ee=[0,500,1e3,2e3],ft=5e3,bt=45e3,ht="Choose a plan to continue.";function yt(n,a){if(n===401)return!0;const o=String(a||"").trim().toUpperCase();return o==="CHECKOUT_SESSION_INCOMPLETE"||o==="CHECKOUT_PLAN_VERSION_UNRESOLVED"}function _t(n){return n==="year"?"year":"month"}function Ct(n){return n==="campaign"?"campaign":"public"}function Ae(n){const a=String(n||"").trim().toLowerCase();return a==="year"?"year":a==="month"?"month":null}function Be(n){const a=String(n||"").trim();return a?a.replace(/\/+$/,""):""}function je(n={}){const a=new URLSearchParams;a.set("screen","plans");for(const[o,p]of Object.entries(n)){const l=String(p||"").trim();l&&a.set(o,l)}return`/?${a.toString()}`}function jt({isAuthenticated:n,authUserId:a,runtimeMode:o,authSessionResolved:p,currentTheme:l="dark",projectName:_,currentWorkspaceId:E,apiBaseUrl:I,connectedEnvironmentSource:$,resolveCloudAuthUrl:x,embedded:b=!1,shellOwnsScroll:W=!1,onAccountProfileSummaryChange:G,onContinueToTaskforce:A,continueBusy:H=!1}){const j=We(),T=Ge(),[M,se]=s.useState(null),[ye,X]=s.useState(!1),[re,_e]=s.useState(!1),[Ce,f]=s.useState(null),q=s.useRef(!1),Z=s.useRef(null),Q=s.useRef(null),ce=s.useRef(A),F=s.useMemo(()=>new URLSearchParams(T.search),[T.search]),N=String(F.get("checkout")||"").trim().toLowerCase(),L=String(F.get("gate")||"").trim().toLowerCase(),oe=String(F.get("planId")||"").trim(),z=String(F.get("planVersionId")||"").trim(),le=_t(F.get("interval")),ue=Ct(F.get("pricingAudience")),Se=Ae(F.get("interval")),ee=String(F.get("session_id")||"").trim(),J=s.useMemo(()=>Be(I),[I]),de=s.useMemo(()=>Be($),[$]),xe=s.useMemo(()=>({environment:Ve(de||J),runtimeMode:o==="cloud"?"cloud":"local"}),[J,de,o]),me=s.useCallback(t=>{const c=String(t||"").trim();return J?`${J}${c.startsWith("/")?c:`/${c}`}`:c},[J]),w=s.useCallback(t=>x?x(t):me(t),[me,x]),ne=s.useCallback(()=>{const t=new URLSearchParams(T.search);t.delete("screen"),t.delete("gate"),t.delete("checkout"),t.delete("planId"),t.delete("planVersionId"),t.delete("interval"),t.delete("pricingAudience");const c=t.toString();j(`/${c?`?${c}`:""}${T.hash||""}`)},[T.hash,T.search,j]),pe=s.useMemo(()=>w("/api/taskforce/public/pricing"),[w]),B=s.useMemo(()=>Pe(M,L),[M,L]),i=s.useMemo(()=>B.allowReturnToApp,[B.allowReturnToApp]),U=s.useMemo(()=>{const t=String(B.message||"").trim();return!t||t===ht?null:t},[B.message]),D=s.useCallback(()=>{const t=new URLSearchParams(T.search);t.delete("checkout"),t.delete("session_id"),t.delete("gate"),t.delete("planId"),t.delete("planVersionId"),t.delete("interval");const c=t.toString();j(`${T.pathname}${c?`?${c}`:""}${T.hash||""}`,{replace:!0})},[T.hash,T.pathname,T.search,j]),v=s.useCallback(()=>{Q.current!=null&&window.clearTimeout(Q.current),Q.current=window.setTimeout(()=>{D(),Q.current=null},gt)},[D]);s.useEffect(()=>{ce.current=A},[A]);const u=s.useCallback(async t=>{const c=w(fe);if(!n)return se(null),be(c,{identityKey:a}),null;try{const y=await Ke(c,{identityKey:a,force:t?.force===!0});return se(y),G?.(y),y}catch{return null}},[a,w,n,G]),O=s.useCallback((t,c,y)=>{const g=String(c||"").trim();if(y?.preferFallback&&g)return g;const h=Pe(t,L).message;return h||g||"Unable to confirm checkout completion."},[L]),K=s.useCallback((t,c)=>!Pe(t,c).allowReturnToApp,[]),Y=s.useCallback(async(t,c,y="public",g)=>{if(!t){f({type:"error",message:"Selected plan is missing a default plan version."});return}X(!0),f(null);try{const h=await fetch(w("/api/taskforce/billing/checkout-session"),{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({planVersionId:t,interval:c,pricingAudience:y})}),m=await h.json().catch(()=>({}));if(!h.ok){f({type:"error",message:String(m?.error||"Unable to start checkout for selected plan.")});return}const d=String(m?.checkoutState||"").trim().toLowerCase();if(d==="free"){f({type:"success",message:"Plan selected. Your access is ready."}),be(w(fe),{identityKey:a});const C=await u({force:!0}),R=String(C?.entitlementState||"").trim().toLowerCase();g?.autoContinueOnActivation===!0&&he(R)&&await A?.();return}if(d==="updated"){f({type:"success",message:String(m?.message||"Your subscription was updated successfully.")}),be(w(fe),{identityKey:a});const C=await u({force:!0}),R=String(C?.entitlementState||"").trim().toLowerCase();g?.autoContinueOnActivation===!0&&he(R)&&await A?.();return}if(d==="already_current_plan"){f({type:"success",message:String(m?.message||"You are already on this plan.")}),be(w(fe),{identityKey:a}),await u();return}const S=String(m?.returnBaseUrl||"").trim();if(o==="local"&&S)try{const C=window.location.origin,R=new URL(S,C).origin;if(R!==C){f({type:"error",message:`Checkout return is misconfigured for this runtime. Expected ${C} but got ${R}.`});return}}catch{f({type:"error",message:"Checkout return URL is invalid for this runtime."});return}const P=String(m?.url||"").trim();if(!P){f({type:"error",message:"Checkout did not return a redirect URL."});return}window.location.assign(P)}catch{f({type:"error",message:"Unable to start checkout for selected plan."})}finally{X(!1)}},[a,w,u,A,o]),ae=s.useCallback(async(t,c)=>{if(!t)return{confirmed:!1,errorMessage:"Checkout session is missing.",retryable:!1};const y=async()=>{be(w(fe),{identityKey:a});const g=await u({force:!0}),h=String(g?.entitlementState||"").trim().toLowerCase();if(!he(h))return!1;const m=oe,d=z,S=Se,P=String(g?.planId||"").trim(),C=String(g?.planVersionId||"").trim(),R=Ae(g?.billingInterval??null),we=c?.preConfirmationSummary??null,$e=String(we?.entitlementState||"").trim().toLowerCase(),Me=he($e),Ue=String(we?.planId||"").trim(),De=String(we?.planVersionId||"").trim(),Fe=Ae(we?.billingInterval??null);return m&&P&&P!==m||d&&C&&C!==d||S&&R&&R!==S||Me&&!(!!m&&P===m&&Ue!==P)&&!(!!d&&C===d&&De!==C)&&!(!!S&&R===S&&Fe!==R)?!1:(c?.autoContinueOnActivation===!0&&await ce.current?.(),!0)};try{const g=await fetch(w("/api/taskforce/billing/checkout-session/confirm"),{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:t})}),h=await g.json().catch(()=>({}));if(!g.ok){const m=String(h?.code||"").trim(),d=yt(g.status,m);return d&&await y()?{confirmed:!0}:{confirmed:!1,errorMessage:String(h?.error||"Unable to confirm checkout completion."),retryable:d}}return await y()?{confirmed:!0}:{confirmed:!0}}catch{return{confirmed:!1,errorMessage:"Unable to confirm checkout completion.",retryable:!0}}},[a,w,u,Se,oe,z]),ie=s.useCallback(async()=>{if(!n){j(`/login?mode=login&next=${encodeURIComponent(je())}`);return}X(!0),f({type:"info",message:"Opening billing portal..."});try{const t=await fetch(w("/api/taskforce/billing/portal-session"),{method:"POST",credentials:"include"}),c=await t.json().catch(()=>({}));if(!t.ok){f({type:"error",message:String(c?.error||"Failed to open billing portal.")});return}const y=String(c?.url||"").trim();if(!y){f({type:"error",message:"Portal session did not return a redirect URL."});return}window.location.assign(y)}catch{f({type:"error",message:"Failed to open billing portal."})}finally{X(!1)}},[w,n,j]),k=s.useCallback(async()=>{if(!(!A||re||H)){_e(!0);try{await A()}finally{_e(!1)}}},[re,H,A]);s.useEffect(()=>{u()},[u]),s.useEffect(()=>{i&&L==="missing_entitlement"&&D()},[D,L,i]),s.useEffect(()=>()=>{Q.current!=null&&window.clearTimeout(Q.current)},[]),s.useEffect(()=>{N!=="success"&&(Z.current=null)},[N]),s.useEffect(()=>{let t=!1;const c=new Set,y=async g=>{g<=0||await new Promise(h=>{const m=window.setTimeout(()=>{c.delete(m),h()},g);c.add(m)})};if(N==="success"){if(q.current=!0,f({type:"success",message:"Checkout completed successfully. Finalizing your plan..."}),!n&&!p)return()=>{t=!0,c.forEach(m=>window.clearTimeout(m)),c.clear()};if(!n)return f({type:"error",message:"Sign in to finish activating your plan."}),()=>{t=!0,c.forEach(m=>window.clearTimeout(m)),c.clear()};const h=ee||"__missing_session__";return Z.current===h?()=>{t=!0,c.forEach(m=>window.clearTimeout(m)),c.clear()}:((async()=>{const m=Date.now(),d=await u({force:!0});if(t)return;let S=ee?{confirmed:!1,errorMessage:"Unable to confirm checkout completion.",retryable:!0}:{confirmed:!1,errorMessage:"Checkout session is missing.",retryable:!1},P=0;for(;;){const C=P<Ee.length?Ee[P]:ft;if(P+=1,await y(C),t||(S=ee?await ae(ee,{autoContinueOnActivation:K(d,L),preConfirmationSummary:d}):{confirmed:!1,errorMessage:"Checkout session is missing.",retryable:!1},t))return;if(S.confirmed){Z.current=h,f({type:"success",message:"Checkout completed successfully."}),v();return}if(!S.retryable||Date.now()-m>=bt)break}if(!t&&!S.confirmed){const C=await u({force:!0});if(t)return;S.retryable||(Z.current=h),f({type:"error",message:O(C,S.errorMessage,{preferFallback:!S.retryable})}),S.retryable||v();return}})(),()=>{t=!0,c.forEach(m=>window.clearTimeout(m)),c.clear()})}if(N==="cancel"){(async()=>{const g=await u({force:!0});f({type:"error",message:O(g,"Checkout was canceled. No charge was made.")}),v()})();return}if((N==="start"||N==="free")&&n&&z&&!q.current){q.current=!0,(async()=>{const g=await u({force:!0});await Y(z,le,ue,{autoContinueOnActivation:K(g,L)})})();return}},[p,N,ae,L,n,u,le,z,ue,ee,O,v,K,Y]),s.useEffect(()=>{if(!(N==="success"||N==="cancel"||N==="start"||N==="free")){if(U){f({type:B.statusTone,message:U});return}f(t=>!t||t.type!=="error"?t:t.message===B.message?null:t)}},[N,U,B.message,B.statusTone]);const Ne=s.useCallback(async t=>{if(!n){const y=t.pricingType==="free"?"free":"start",g=je({checkout:y,planId:t.planId,planVersionId:t.planVersionId,interval:t.interval,pricingAudience:t.pricingAudience});j(`/login?mode=register&planId=${encodeURIComponent(t.planId)}&planVersionId=${encodeURIComponent(t.planVersionId)}&interval=${encodeURIComponent(t.interval)}&pricingAudience=${encodeURIComponent(t.pricingAudience)}&next=${encodeURIComponent(g)}`);return}if(t.isCurrentPlan){if(!M?.stripeCustomerId){f({type:"success",message:"Your current plan does not use Stripe billing."});return}await ie();return}const c=K(M,L);if(t.pricingType==="free"){await Y(t.planVersionId,t.interval,t.pricingAudience,{autoContinueOnActivation:c});return}await Y(t.planVersionId,t.interval,t.pricingAudience,{autoContinueOnActivation:c})},[M,L,n,j,ie,K,Y]),ge=s.useCallback(()=>{if(i&&A){k();return}if(b){ne();return}if(window.history.length>1){j(-1);return}j("/")},[ne,b,k,i,j,A]),ke=b?null:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:r.navAction,onClick:ge,disabled:H||re||n&&!i,children:i?"Take Me to Taskforce":"Back"}),n&&M?.stripeCustomerId&&e.jsx("button",{className:r.navAction,onClick:()=>{ie()},disabled:ye,children:"Manage billing"}),!n&&e.jsxs("button",{className:r.navAction,onClick:()=>j(`/login?mode=login&next=${encodeURIComponent(je())}`),children:[e.jsx(Ye,{size:16,style:{marginRight:"8px",verticalAlign:"text-bottom"}}),"Sign In"]})]}),te=b?null:e.jsx(He,{projectName:_,currentWorkspaceId:E,runtimeMode:o==="cloud"?"cloud":"local",theme:l,onBrandClick:ge,actions:ke});return e.jsx(pt,{chrome:te,heading:"Subscription Plans",subtitle:"Manage your subscription and explore available features. Your current plan is highlighted below.",variant:"site",theme:l,isAuthenticated:n,authSessionResolved:p,currentPlanId:String(M?.planId||oe||"").trim()||null,currentPlanVersionId:String(M?.planVersionId||z||"").trim()||null,currentEntitlementState:String(M?.entitlementState||"").trim()||null,markCurrentPlan:B.markCurrentPlan,canManageCurrentPlan:!!M?.stripeCustomerId,pricingEndpoint:pe,statusBanner:Ce,onBack:ge,backLabel:i?"Take Me to Taskforce":b?"Back to Board":"Back to App",backDisabled:H||re||n&&!i,topActions:null,shellOwnsScroll:W,showPageBackButton:!1,showHeaderBarWithChrome:!1,currentPlanCardActionMode:"manage",fallbackPricingSource:xe,onSelectPlan:Ne})}export{jt as PlansPage};
@@ -1 +0,0 @@
1
- ._plansWrapper_nb8ab_1{--plans-accent: var(--brand-primary, #6366f1);--plans-accent-strong: var(--brand-primary-strong, #7c3aed);--plans-accent-soft: var(--brand-primary-soft, rgba(99, 102, 241, .1));--plans-accent-border: var(--brand-primary-border, rgba(99, 102, 241, .24));--plans-surface: color-mix(in srgb, var(--surface-panel) 84%, var(--surface-page));--plans-surface-elevated: color-mix(in srgb, var(--surface-elevated) 88%, var(--surface-panel));--plans-surface-strong: color-mix(in srgb, var(--surface-page) 70%, var(--surface-panel));--plans-shadow: 0 22px 44px rgba(0, 0, 0, .18);overflow-y:auto;display:flex;flex-direction:column;align-items:stretch;align-self:stretch;width:100%;flex:1;min-height:100%;min-width:0;padding:64px 24px;box-sizing:border-box;scrollbar-gutter:stable}._contentFrame_nb8ab_24{width:min(1100px,100%);max-width:1100px;margin:0 auto;display:flex;flex-direction:column}._shellOwnsScroll_nb8ab_32{overflow:visible;min-height:100%;scrollbar-gutter:auto}._withChrome_nb8ab_38{padding-top:32px}._siteVariant_nb8ab_42{padding:56px 24px 80px;overflow:visible;scrollbar-gutter:auto}._siteVariant_nb8ab_42._withChrome_nb8ab_38{padding-top:14px}._siteVariant_nb8ab_42 ._contentFrame_nb8ab_24{max-width:1040px}._siteVariant_nb8ab_42 ._title_nb8ab_56{background:none;-webkit-text-fill-color:var(--text-0, var(--text-primary));color:var(--text-0, var(--text-primary));font-size:clamp(34px,6vw,58px);line-height:1.02;max-width:18ch;font-family:var(--font-brand);font-style:italic;text-transform:uppercase;letter-spacing:0;margin:0 auto}._siteVariant_nb8ab_42 ._subtitle_nb8ab_70{color:var(--text-1, #a6b3d9);font-size:clamp(16px,2.2vw,21px);max-width:60ch;margin:30px auto 0}._siteVariant_nb8ab_42 ._header_nb8ab_77{width:100%;max-width:1040px;border:0;border-radius:0;padding:62px 0 32px;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;text-align:center;margin-right:auto;margin-bottom:0;margin-left:auto}._siteVariant_nb8ab_42 ._planCard_nb8ab_92{background:#090e20b3;border-color:#cbd5ff33;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:16px;padding:22px 20px}._siteVariant_nb8ab_42 ._planCard_nb8ab_92:hover{transform:translateY(-3px);box-shadow:none}._siteVariant_nb8ab_42 ._grid_nb8ab_105{max-width:1040px;margin-right:auto;margin-left:auto;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}._siteVariant_nb8ab_42 ._pricingNotes_nb8ab_113{max-width:var(--section-text-width, 54rem);margin-top:18px}._siteVariant_nb8ab_42 ._pricingNotes_nb8ab_113 p{color:var(--text-1, #a6b3d9)}._siteVariant_nb8ab_42 ._planName_nb8ab_122{font-size:22px;font-family:var(--font-brand);font-style:italic;text-transform:uppercase}._siteVariant_nb8ab_42 ._featureText_nb8ab_129{color:#a6b3d9}._siteVariant_nb8ab_42 ._currentBadge_nb8ab_133{font-size:11px}._siteVariant_nb8ab_42 ._navAction_nb8ab_137,._siteVariant_nb8ab_42 ._backBtn_nb8ab_138{border:1px solid rgba(203,213,255,.2);background:#141d3c99;color:#f6f8ff}._siteVariant_nb8ab_42 ._backBtn_nb8ab_138:hover,._siteVariant_nb8ab_42 ._navAction_nb8ab_137:hover{background:#141d3cd9}._siteVariant_nb8ab_42 ._priceRows_nb8ab_149{border-top-color:#cbd5ff33}._siteVariant_nb8ab_42 ._foundingBeta_nb8ab_153{max-width:var(--section-text-width, 54rem);margin:0 auto 22px;padding:0 0 34px}._siteVariant_nb8ab_42 ._foundingBeta_nb8ab_153 h2{max-width:var(--section-text-width, 54rem);margin:0 auto;font-size:28px}._siteVariant_nb8ab_42 ._foundingBeta_nb8ab_153 p{max-width:var(--section-text-width, 54rem);margin:var(--section-copy-gap, 16px) auto 0;color:var(--text-1, #a6b3d9);line-height:1.5}._siteVariant_nb8ab_42 ._cloudCapacityNote_nb8ab_172{margin:8px auto 12px;padding:0}._siteVariant_nb8ab_42 ._cloudCapacityNote_nb8ab_172 p{margin-top:12px}._siteVariant_nb8ab_42 ._cloudCapacityNote_nb8ab_172 a{color:var(--text-0, #f6f8ff)}[data-theme=light] ._siteVariant_nb8ab_42 ._subtitle_nb8ab_70{color:var(--text-1, var(--text-secondary))}[data-theme=light] ._siteVariant_nb8ab_42 ._featureText_nb8ab_129{color:var(--text-secondary)}[data-theme=light] ._siteVariant_nb8ab_42 ._header_nb8ab_77{background:transparent}[data-theme=light] ._siteVariant_nb8ab_42 ._foundingBeta_nb8ab_153 p{color:var(--text-1, var(--text-secondary))}[data-theme=light] ._siteVariant_nb8ab_42 ._planCard_nb8ab_92{background:#ffffffe0;border-color:#1c2a482e}[data-theme=light] ._siteVariant_nb8ab_42 ._planCard_nb8ab_92:hover{box-shadow:0 18px 38px #0f172a1a}[data-theme=light] ._siteVariant_nb8ab_42 ._navAction_nb8ab_137,[data-theme=light] ._siteVariant_nb8ab_42 ._backBtn_nb8ab_138{border-color:#1c2a482e;background:#ffffffb8;color:var(--text-primary)}[data-theme=light] ._siteVariant_nb8ab_42 ._backBtn_nb8ab_138:hover,[data-theme=light] ._siteVariant_nb8ab_42 ._navAction_nb8ab_137:hover{background:#fffffff0}[data-theme=light] ._siteVariant_nb8ab_42 ._priceRows_nb8ab_149{border-top-color:#1c2a482e}._header_nb8ab_77{width:100%;text-align:left;margin-bottom:32px;padding:32px;border-radius:28px;border:1px solid var(--border-default);background:linear-gradient(180deg,color-mix(in srgb,var(--plans-surface-elevated) 92%,transparent),color-mix(in srgb,var(--plans-surface) 96%,transparent)),var(--plans-surface);box-shadow:var(--plans-shadow)}._headerBar_nb8ab_239{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}._headerActions_nb8ab_248{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}._title_nb8ab_56{font-size:clamp(38px,5vw,54px);font-weight:800;font-family:var(--font-brand);font-style:italic;text-transform:uppercase;margin-bottom:16px;background:linear-gradient(135deg,var(--text-primary),color-mix(in srgb,var(--plans-accent) 72%,var(--text-primary)));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.04em;line-height:.98}._subtitle_nb8ab_70{font-size:18px;color:var(--text-secondary);line-height:1.7}._subtitle_nb8ab_70 p{margin:0 0 12px}._subtitle_nb8ab_70 p:last-child{margin-bottom:0}._subtitle_nb8ab_70 a{color:var(--plans-accent);text-decoration:underline;text-underline-offset:3px}._subtitle_nb8ab_70 ul,._subtitle_nb8ab_70 ol{display:inline-block;margin:8px auto 0;padding-left:22px;text-align:left}._debugMeta_nb8ab_299{margin-top:16px;font-size:13px;color:var(--text-secondary);opacity:.8}._foundingBeta_nb8ab_153{width:100%;max-width:920px;margin:0 auto 28px;text-align:center}._foundingBeta_nb8ab_153 h2{margin:0 0 10px;color:var(--text-primary);font-size:22px;font-weight:800}._foundingBeta_nb8ab_153 p{margin:0;color:var(--text-secondary);font-size:16px;line-height:1.7}._cloudCapacityNote_nb8ab_172{margin:8px auto 12px}._cloudCapacityNote_nb8ab_172 a{color:var(--text-primary);font-weight:700;text-decoration:none}._cloudCapacityNote_nb8ab_172 a:hover{text-decoration:underline}._grid_nb8ab_105{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;width:100%}._pricingNotes_nb8ab_113{width:100%;max-width:920px;margin:18px auto 0;text-align:center}._pricingNotes_nb8ab_113 p{margin:4px 0 0;color:var(--text-secondary);font-size:14px;line-height:1.55}._planNoticeCard_nb8ab_362{width:100%;margin-top:20px;text-align:center}._planNoticeCard_nb8ab_362 ._planName_nb8ab_122{margin-top:0;margin-bottom:8px}._planNoticeCard_nb8ab_362 ._planDescription_nb8ab_373{margin:0;max-width:none}._teamComingSoonCard_nb8ab_378{margin-bottom:24px}._planCard_nb8ab_92{background:linear-gradient(180deg,color-mix(in srgb,var(--plans-surface-elevated) 90%,transparent),color-mix(in srgb,var(--plans-surface) 96%,transparent)),var(--plans-surface);border:1px solid var(--border-default);border-radius:22px;padding:28px;display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 12px 28px #0000001f;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease}._clickablePlanCard_nb8ab_397{cursor:pointer}._clickablePlanCard_nb8ab_397:focus-visible{outline:2px solid var(--plans-accent);outline-offset:4px}._planCard_nb8ab_92:hover{transform:translateY(-4px);border-color:var(--plans-accent-border);box-shadow:0 20px 36px #0000002e}._activePlanCard_nb8ab_412{border:1px solid color-mix(in srgb,var(--plans-accent) 38%,var(--border-default));background:linear-gradient(180deg,color-mix(in srgb,var(--plans-accent) 10%,var(--plans-surface-elevated)),color-mix(in srgb,var(--plans-accent) 4%,var(--plans-surface))),var(--plans-surface);box-shadow:0 18px 34px #0000002e,inset 0 0 0 1px color-mix(in srgb,var(--plans-accent) 16%,transparent)}._currentBadge_nb8ab_133{position:absolute;top:20px;right:20px;background:color-mix(in srgb,var(--plans-accent) 16%,var(--surface-page));color:var(--plans-accent-strong);font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--plans-accent) 26%,transparent);text-transform:uppercase;letter-spacing:.08em}._planName_nb8ab_122{font-size:28px;font-weight:700;font-family:var(--font-brand);font-style:italic;text-transform:uppercase;color:var(--text-primary);margin-bottom:12px}._planDescription_nb8ab_373{margin:0 0 18px;color:var(--text-secondary);font-size:15px;line-height:1.45;max-width:34ch}._priceDisplay_nb8ab_455{margin-bottom:32px;display:flex;align-items:baseline;gap:8px}._priceAmount_nb8ab_462{font-size:56px;font-weight:800;color:var(--text-primary);letter-spacing:-2px;line-height:1}._priceInterval_nb8ab_470{font-size:16px;color:var(--text-secondary);font-weight:500}._callToAction_nb8ab_476{width:100%;padding:14px 18px;border-radius:12px;font-size:15px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:all .2s ease;margin-bottom:0}._primaryCta_nb8ab_488{background:var(--button-primary-bg);border-color:var(--button-primary-border);color:var(--button-primary-text, white)}._primaryCta_nb8ab_488:hover{transform:translateY(-1px);box-shadow:0 10px 22px var(--brand-primary-glow)}._secondaryCta_nb8ab_499{background:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--button-secondary-border)}._secondaryCta_nb8ab_499:hover{background:var(--button-secondary-hover-bg);border-color:var(--button-secondary-hover-border);color:var(--button-secondary-hover-text)}._currentCta_nb8ab_511{background:color-mix(in srgb,var(--plans-accent) 9%,var(--plans-surface-strong));color:var(--text-primary);border-color:color-mix(in srgb,var(--plans-accent) 24%,var(--border-default));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--plans-accent) 10%,transparent);cursor:pointer}._currentCta_nb8ab_511:hover{background:color-mix(in srgb,var(--plans-accent) 14%,var(--plans-surface-strong));border-color:color-mix(in srgb,var(--plans-accent) 32%,var(--border-default));transform:translateY(-1px)}._featuresList_nb8ab_525{flex:1;display:flex;flex-direction:column;gap:20px;margin-bottom:28px}._priceRows_nb8ab_149{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}._priceRow_nb8ab_149{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px;text-align:left}._regularPriceLine_nb8ab_549,._campaignPriceLine_nb8ab_550{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}._priceRowWithCampaign_nb8ab_557{gap:4px}._priceRowAmount_nb8ab_561{font-size:22px;font-weight:700;color:var(--text-primary)}._regularPriceDiscounted_nb8ab_567{color:var(--text-secondary);text-decoration:line-through;text-decoration-thickness:2px}._priceRowInterval_nb8ab_573{color:var(--text-secondary);font-weight:600}._campaignPriceLine_nb8ab_550{color:var(--plans-accent-strong)}._campaignPriceLabel_nb8ab_582{font-size:14px;font-weight:800}._campaignPriceAmount_nb8ab_587{color:var(--text-primary);font-size:24px;font-weight:800}._campaignPriceInterval_nb8ab_593{color:var(--text-secondary);font-weight:700}._ctaRow_nb8ab_598{display:grid;grid-template-columns:1fr;gap:10px}._featureItem_nb8ab_604{display:flex;align-items:flex-start;gap:16px}._featureIcon_nb8ab_610{color:var(--plans-accent);flex-shrink:0;width:20px;height:20px;margin-top:2px}._featureText_nb8ab_129{font-size:16px;line-height:1.5;color:var(--text-primary)}._featureLimitAccent_nb8ab_624{font-family:var(--font-brand);font-style:italic;color:var(--brand-cloud-accent, #ff8a00);letter-spacing:.01em;font-size:28px;line-height:.92;display:inline-block;margin-right:6px}._featureLimitUnit_nb8ab_635{font-size:.74em;line-height:1;vertical-align:baseline}._featureTextBlock_nb8ab_641{display:flex;flex-direction:column;gap:4px}._featureDescription_nb8ab_647{font-size:13px;line-height:1.45;color:var(--text-secondary)}._emptyState_nb8ab_653{text-align:center;padding:64px;background:var(--bg-secondary);border-radius:24px;border:1px dashed var(--border-color, var(--border-primary, rgba(255, 255, 255, .14)));width:100%}._marketingEmptyState_nb8ab_662{max-width:920px;border-style:solid;border-radius:28px;padding:72px 48px;background:radial-gradient(560px 260px at 15% 10%,rgba(34,197,94,.15),transparent 60%),radial-gradient(620px 320px at 85% 0%,rgba(251,191,36,.16),transparent 62%),linear-gradient(145deg,#0f172af5,#111827eb);box-shadow:0 28px 90px #00000047}._marketingEmptyState_nb8ab_662 h2{margin:18px 0 14px;font-size:clamp(32px,4vw,52px);line-height:1.02;letter-spacing:-.04em;color:#f8fafc}._marketingEmptyState_nb8ab_662 p{margin:0 auto;max-width:680px;font-size:18px;line-height:1.7;color:#cbd5e1}._emptyBadge_nb8ab_690{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:999px;background:#f8fafc14;border:1px solid rgba(248,250,252,.18);color:#f8fafc;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}._emptyHighlights_nb8ab_705{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}._emptyHighlights_nb8ab_705 span{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#94a3b81f;border:1px solid rgba(148,163,184,.18);color:#e2e8f0;font-size:13px;font-weight:700;letter-spacing:.02em}._loader_nb8ab_727{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:24px;color:var(--text-secondary)}._spinner_nb8ab_737{animation:_spin_nb8ab_737 1s linear infinite;color:var(--accent-primary, #6366f1)}@keyframes _spin_nb8ab_737{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._backBtn_nb8ab_138{background:var(--button-secondary-bg);border:1px solid var(--button-secondary-border);color:var(--button-secondary-text);display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer;padding:10px 16px;border-radius:12px;transition:all .2s ease}._backBtn_nb8ab_138:hover{background:var(--button-secondary-hover-bg);border-color:var(--button-secondary-hover-border);color:var(--button-secondary-hover-text)}._navAction_nb8ab_137{background:var(--button-secondary-bg);border:1px solid var(--button-secondary-border);color:var(--button-secondary-text);padding:10px 20px;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s ease}._navAction_nb8ab_137:hover{background:var(--button-secondary-hover-bg);border-color:var(--button-secondary-hover-border);color:var(--button-secondary-hover-text)}._statusBanner_nb8ab_790{margin-top:24px;padding:12px 24px;border-radius:12px;font-weight:500;font-size:14px}._successBanner_nb8ab_798{background:color-mix(in srgb,var(--status-success) 12%,var(--plans-surface-elevated));color:var(--status-success);border:1px solid color-mix(in srgb,var(--status-success) 24%,transparent)}._infoBanner_nb8ab_804{background:color-mix(in srgb,var(--button-primary-bg) 10%,var(--plans-surface-elevated));color:var(--text-secondary);border:1px solid color-mix(in srgb,var(--button-primary-bg) 18%,transparent)}._errorBanner_nb8ab_810{background:color-mix(in srgb,var(--status-error) 12%,var(--plans-surface-elevated));color:var(--status-error);border:1px solid color-mix(in srgb,var(--status-error) 24%,transparent)}@media(max-width:768px){._plansWrapper_nb8ab_1{padding:28px 14px}._withChrome_nb8ab_38{padding-top:24px}._header_nb8ab_77{margin-bottom:24px;padding:22px 18px}._headerBar_nb8ab_239{gap:10px;flex-wrap:wrap;margin-bottom:18px}._title_nb8ab_56{font-size:34px;margin-bottom:12px}._grid_nb8ab_105{grid-template-columns:1fr;gap:18px}._siteVariant_nb8ab_42 ._grid_nb8ab_105{grid-template-columns:1fr}._siteVariant_nb8ab_42{padding:56px 24px 80px}._siteVariant_nb8ab_42._withChrome_nb8ab_38{padding-top:14px}._siteVariant_nb8ab_42 ._header_nb8ab_77{padding:62px 0 32px}._planCard_nb8ab_92{padding:22px}._planNoticeCard_nb8ab_362{margin-top:18px}._teamComingSoonCard_nb8ab_378{margin-bottom:18px}._marketingEmptyState_nb8ab_662{padding:56px 24px}._marketingEmptyState_nb8ab_662 h2{font-size:34px}._marketingEmptyState_nb8ab_662 p{font-size:16px}._headerActions_nb8ab_248{width:100%;justify-content:flex-start}}
@@ -1 +0,0 @@
1
- import{j as s}from"./vendor-react-CKJs5o3c.js";import{ContextAttachmentManager as c}from"./ContextAttachmentManager-DsXPTvi-.js";import"./index--mh3pktj.js";import"./vendor-icons-CLnehDTw.js";import"./vendor-markdown-BUxTU7dS.js";import"./vendor-dnd-DRzYolkg.js";import"./vendor-router-BbWMxlnO.js";import"./documentReferences-Do9YjrS3.js";function R(t){const{taskId:e,taskReferenceLabel:o,workspaceId:n,apiBaseUrl:a,contextFiles:r,onAddContextFile:m,onRemoveContextFile:p,onUpdateContextCaption:i}=t;return s.jsx(c,{ownerType:"task",ownerId:e,ownerReferenceLabel:o,workspaceId:n,apiBaseUrl:a,attachments:r,onAddAttachment:m,onRemoveAttachment:p,onUpdateAttachmentCaption:i})}export{R as TaskContextUpload};