@taskforcehq/taskforce 0.3.311 → 0.3.313

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 (454) hide show
  1. package/README.md +40 -2
  2. package/dist/TaskforceCore.js +1 -1
  3. package/dist/components/features/InitiativesModule.js +1 -1
  4. package/dist/components/features/TaskSettings.js +1 -1
  5. package/dist/components/views/StandaloneLayout.js +3 -6
  6. package/dist/components/views/standalone/modals/AccountHubModal.d.ts +1 -2
  7. package/dist/components/views/standalone/modals/AccountHubModal.js +2 -3
  8. package/dist/components/views/standalone/modals/HelpModal.js +15 -2
  9. package/dist/hooks/useFilterSort.js +1 -1
  10. package/dist/hooks/useTaskforce.js +2 -2
  11. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +5 -2
  12. package/dist/ui/assets/{AgentsModule-D8u9P5dZ.js → AgentsModule-BULqIo8e.js} +1 -1
  13. package/dist/ui/assets/{AnnotatedAttachmentWorkspace-CsUauFA2.js → AnnotatedAttachmentWorkspace-DHr4rHK9.js} +1 -1
  14. package/dist/ui/assets/{ContextAttachmentManager-DbQvDHFz.js → ContextAttachmentManager-DoMe2OpY.js} +1 -1
  15. package/dist/ui/assets/{DocumentWorkspace-BmTkN1A8.js → DocumentWorkspace-DumBWhvb.js} +1 -1
  16. package/dist/ui/assets/{EntityActivityTimeline-BXHTM-Nh.js → EntityActivityTimeline-sHk8Nzbq.js} +1 -1
  17. package/dist/ui/assets/{InitiativesModule-D33RyXx0.js → InitiativesModule-3X9UNzHh.js} +1 -1
  18. package/dist/ui/assets/{PlansPage-D0RXlT9_.js → PlansPage-C3A3EYaV.js} +1 -1
  19. package/dist/ui/assets/{TaskContextUpload-Vsg67lpR.js → TaskContextUpload-C8G7pWkX.js} +1 -1
  20. package/dist/ui/assets/{TaskSettings-DshLw7_d.js → TaskSettings-DM1o9Wla.js} +2 -2
  21. package/dist/ui/assets/{WorkflowsModule-CLM-1BnF.js → WorkflowsModule-CW0crzvD.js} +1 -1
  22. package/dist/ui/assets/documentReferences-BZB3nMRb.js +1 -0
  23. package/dist/ui/assets/index-BWFQ9mGn.js +5 -0
  24. package/dist/ui/assets/{index-DOR9PRqt.css → index-DcK_8tuE.css} +1 -1
  25. package/dist/ui/index.html +2 -2
  26. package/package.json +12 -4
  27. package/scripts/postinstall.js +4 -3
  28. package/dist/TaskforceCore.CategoryFallback.test.d.ts +0 -1
  29. package/dist/TaskforceCore.CategoryFallback.test.js +0 -101
  30. package/dist/TaskforceCore.filter-persistence.test.d.ts +0 -1
  31. package/dist/TaskforceCore.filter-persistence.test.js +0 -402
  32. package/dist/TaskforceCore.routing.test.d.ts +0 -1
  33. package/dist/TaskforceCore.routing.test.js +0 -311
  34. package/dist/TaskforceCore.test.d.ts +0 -1
  35. package/dist/TaskforceCore.test.js +0 -7910
  36. package/dist/TaskforceWidget.test.d.ts +0 -1
  37. package/dist/TaskforceWidget.test.js +0 -92
  38. package/dist/UnsavedChangesRelaxed.test.d.ts +0 -1
  39. package/dist/UnsavedChangesRelaxed.test.js +0 -16
  40. package/dist/__tests__/localizationCatalogs.test.d.ts +0 -1
  41. package/dist/__tests__/localizationCatalogs.test.js +0 -54
  42. package/dist/__tests__/workflowSimulation.test.d.ts +0 -1
  43. package/dist/__tests__/workflowSimulation.test.js +0 -113
  44. package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.test.d.ts +0 -1
  45. package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.test.js +0 -278
  46. package/dist/annotatedAttachments/payload.test.d.ts +0 -1
  47. package/dist/annotatedAttachments/payload.test.js +0 -67
  48. package/dist/compat/workspaceSyncCompat.test.d.ts +0 -1
  49. package/dist/compat/workspaceSyncCompat.test.js +0 -124
  50. package/dist/components/features/AgentsModule.test.d.ts +0 -1
  51. package/dist/components/features/AgentsModule.test.js +0 -601
  52. package/dist/components/features/AnnotatedAttachmentWorkspace.test.d.ts +0 -1
  53. package/dist/components/features/AnnotatedAttachmentWorkspace.test.js +0 -2883
  54. package/dist/components/features/DocumentWorkspace.test.d.ts +0 -1
  55. package/dist/components/features/DocumentWorkspace.test.js +0 -1439
  56. package/dist/components/features/TaskSettings.test.d.ts +0 -1
  57. package/dist/components/features/TaskSettings.test.js +0 -1674
  58. package/dist/components/features/settings/TaxonomyLibraryManager.test.d.ts +0 -1
  59. package/dist/components/features/settings/TaxonomyLibraryManager.test.js +0 -141
  60. package/dist/components/task/TaskActionHeader.test.d.ts +0 -1
  61. package/dist/components/task/TaskActionHeader.test.js +0 -91
  62. package/dist/components/task/TaskCard.test.d.ts +0 -1
  63. package/dist/components/task/TaskCard.test.js +0 -513
  64. package/dist/components/task/TaskContextUpload.test.d.ts +0 -1
  65. package/dist/components/task/TaskContextUpload.test.js +0 -506
  66. package/dist/components/task/TaskForm.test.d.ts +0 -1
  67. package/dist/components/task/TaskForm.test.js +0 -946
  68. package/dist/components/task/TaskKanban.empty-column-drop.test.d.ts +0 -1
  69. package/dist/components/task/TaskKanban.empty-column-drop.test.js +0 -66
  70. package/dist/components/task/TaskKanban.planning-drop.test.d.ts +0 -1
  71. package/dist/components/task/TaskKanban.planning-drop.test.js +0 -93
  72. package/dist/components/task/TaskKanban.test.d.ts +0 -1
  73. package/dist/components/task/TaskKanban.test.js +0 -99
  74. package/dist/components/task/TaskList.test.d.ts +0 -1
  75. package/dist/components/task/TaskList.test.js +0 -473
  76. package/dist/components/task/TaskStatusActions.test.d.ts +0 -1
  77. package/dist/components/task/TaskStatusActions.test.js +0 -54
  78. package/dist/components/task/taskKanbanDropRules.test.d.ts +0 -1
  79. package/dist/components/task/taskKanbanDropRules.test.js +0 -114
  80. package/dist/components/ui/LevelSelector.test.d.ts +0 -1
  81. package/dist/components/ui/LevelSelector.test.js +0 -55
  82. package/dist/components/ui/Markdown.test.d.ts +0 -1
  83. package/dist/components/ui/Markdown.test.js +0 -38
  84. package/dist/components/ui/MultiSelectFilter.test.d.ts +0 -1
  85. package/dist/components/ui/MultiSelectFilter.test.js +0 -74
  86. package/dist/components/ui/TaxonomyDropdown.test.d.ts +0 -1
  87. package/dist/components/ui/TaxonomyDropdown.test.js +0 -130
  88. package/dist/components/ui/TopNoticeLayer.test.d.ts +0 -1
  89. package/dist/components/ui/TopNoticeLayer.test.js +0 -25
  90. package/dist/components/views/AppShellHeader.test.d.ts +0 -1
  91. package/dist/components/views/AppShellHeader.test.js +0 -42
  92. package/dist/components/views/PlanComparisonPage.test.d.ts +0 -1
  93. package/dist/components/views/PlanComparisonPage.test.js +0 -758
  94. package/dist/components/views/PlansPage.test.d.ts +0 -1
  95. package/dist/components/views/PlansPage.test.js +0 -710
  96. package/dist/components/views/chrome/WorkspaceChromeSections.test.d.ts +0 -1
  97. package/dist/components/views/chrome/WorkspaceChromeSections.test.js +0 -54
  98. package/dist/components/views/chrome/workspaceChrome.test.d.ts +0 -1
  99. package/dist/components/views/chrome/workspaceChrome.test.js +0 -52
  100. package/dist/components/views/panels/DocumentFilterToolbar.test.d.ts +0 -1
  101. package/dist/components/views/panels/DocumentFilterToolbar.test.js +0 -19
  102. package/dist/components/views/panels/FilterToolbar.test.d.ts +0 -1
  103. package/dist/components/views/panels/FilterToolbar.test.js +0 -47
  104. package/dist/components/views/panels/PlanningDrawer.test.d.ts +0 -1
  105. package/dist/components/views/panels/PlanningDrawer.test.js +0 -529
  106. package/dist/components/views/planningScope.test.d.ts +0 -1
  107. package/dist/components/views/planningScope.test.js +0 -60
  108. package/dist/components/views/standalone/modals/AccountHubModal.test.d.ts +0 -1
  109. package/dist/components/views/standalone/modals/AccountHubModal.test.js +0 -72
  110. package/dist/components/views/standalone/modals/HelpModal.test.d.ts +0 -1
  111. package/dist/components/views/standalone/modals/HelpModal.test.js +0 -23
  112. package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.d.ts +0 -1
  113. package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.js +0 -24
  114. package/dist/components/views/teamManagementAccess.test.d.ts +0 -1
  115. package/dist/components/views/teamManagementAccess.test.js +0 -44
  116. package/dist/config/deployment.test.d.ts +0 -1
  117. package/dist/config/deployment.test.js +0 -90
  118. package/dist/config/envSchema.test.d.ts +0 -1
  119. package/dist/config/envSchema.test.js +0 -125
  120. package/dist/core/AiProfileService.test.d.ts +0 -1
  121. package/dist/core/AiProfileService.test.js +0 -184
  122. package/dist/core/AiProfiles.test.d.ts +0 -1
  123. package/dist/core/AiProfiles.test.js +0 -1873
  124. package/dist/core/AuthTokenService.test.d.ts +0 -1
  125. package/dist/core/AuthTokenService.test.js +0 -78
  126. package/dist/core/BulkUpdateFieldsPreview.test.d.ts +0 -1
  127. package/dist/core/BulkUpdateFieldsPreview.test.js +0 -62
  128. package/dist/core/CompletedAt.test.d.ts +0 -1
  129. package/dist/core/CompletedAt.test.js +0 -44
  130. package/dist/core/CreatedBy.test.d.ts +0 -1
  131. package/dist/core/CreatedBy.test.js +0 -188
  132. package/dist/core/DeletedTaskTrash.test.d.ts +0 -1
  133. package/dist/core/DeletedTaskTrash.test.js +0 -104
  134. package/dist/core/EntitlementsPolicy.test.d.ts +0 -1
  135. package/dist/core/EntitlementsPolicy.test.js +0 -280
  136. package/dist/core/GlobalSettingsService.test.d.ts +0 -1
  137. package/dist/core/GlobalSettingsService.test.js +0 -45
  138. package/dist/core/JsonBackupRuntime.test.d.ts +0 -1
  139. package/dist/core/JsonBackupRuntime.test.js +0 -155
  140. package/dist/core/PlanFeatureCatalog.test.d.ts +0 -1
  141. package/dist/core/PlanFeatureCatalog.test.js +0 -139
  142. package/dist/core/PlanVersionPolicy.test.d.ts +0 -1
  143. package/dist/core/PlanVersionPolicy.test.js +0 -236
  144. package/dist/core/PlanningEntities.test.d.ts +0 -1
  145. package/dist/core/PlanningEntities.test.js +0 -509
  146. package/dist/core/ScheduleFields.test.d.ts +0 -1
  147. package/dist/core/ScheduleFields.test.js +0 -193
  148. package/dist/core/SetupState.test.d.ts +0 -1
  149. package/dist/core/SetupState.test.js +0 -113
  150. package/dist/core/SignupMonetizationSettings.test.d.ts +0 -1
  151. package/dist/core/SignupMonetizationSettings.test.js +0 -515
  152. package/dist/core/Stats.test.d.ts +0 -1
  153. package/dist/core/Stats.test.js +0 -36
  154. package/dist/core/SystemAdmin.test.d.ts +0 -1
  155. package/dist/core/SystemAdmin.test.js +0 -1106
  156. package/dist/core/TaskActivitySync.test.d.ts +0 -1
  157. package/dist/core/TaskActivitySync.test.js +0 -90
  158. package/dist/core/TaskAttachmentsCanonical.test.d.ts +0 -1
  159. package/dist/core/TaskAttachmentsCanonical.test.js +0 -356
  160. package/dist/core/TaskAuditTimeline.test.d.ts +0 -1
  161. package/dist/core/TaskAuditTimeline.test.js +0 -319
  162. package/dist/core/TaskTaxonomyValidation.test.d.ts +0 -1
  163. package/dist/core/TaskTaxonomyValidation.test.js +0 -440
  164. package/dist/core/Taskforce.ids.test.d.ts +0 -1
  165. package/dist/core/Taskforce.ids.test.js +0 -611
  166. package/dist/core/Taskforce.listTasksSlim.test.d.ts +0 -1
  167. package/dist/core/Taskforce.listTasksSlim.test.js +0 -91
  168. package/dist/core/Taskforce.mcpAuth.test.d.ts +0 -1
  169. package/dist/core/Taskforce.mcpAuth.test.js +0 -450
  170. package/dist/core/Taskforce.realtimeMutation.test.d.ts +0 -1
  171. package/dist/core/Taskforce.realtimeMutation.test.js +0 -131
  172. package/dist/core/UserProfileAvatarDrafts.test.d.ts +0 -1
  173. package/dist/core/UserProfileAvatarDrafts.test.js +0 -138
  174. package/dist/core/WorkspaceDelete.test.d.ts +0 -1
  175. package/dist/core/WorkspaceDelete.test.js +0 -159
  176. package/dist/core/WorkspacePermissions.test.d.ts +0 -1
  177. package/dist/core/WorkspacePermissions.test.js +0 -270
  178. package/dist/core/WorkspacePlanMode.test.d.ts +0 -1
  179. package/dist/core/WorkspacePlanMode.test.js +0 -383
  180. package/dist/core/WorkspaceSyncSettings.test.d.ts +0 -1
  181. package/dist/core/WorkspaceSyncSettings.test.js +0 -65
  182. package/dist/core/__tests__/TaskAttachmentsCanonical.test.d.ts +0 -1
  183. package/dist/core/__tests__/TaskAttachmentsCanonical.test.js +0 -212
  184. package/dist/documentReviews/DocumentReviewSessionStore.test.d.ts +0 -1
  185. package/dist/documentReviews/DocumentReviewSessionStore.test.js +0 -127
  186. package/dist/hooks/authGuardPolicy.test.d.ts +0 -1
  187. package/dist/hooks/authGuardPolicy.test.js +0 -76
  188. package/dist/hooks/bootstrapTimeouts.test.d.ts +0 -1
  189. package/dist/hooks/bootstrapTimeouts.test.js +0 -12
  190. package/dist/hooks/sync/controlPlane.test.d.ts +0 -1
  191. package/dist/hooks/sync/controlPlane.test.js +0 -121
  192. package/dist/hooks/sync/lifecyclePolicy.test.d.ts +0 -1
  193. package/dist/hooks/sync/lifecyclePolicy.test.js +0 -124
  194. package/dist/hooks/sync/orchestratorShared.test.d.ts +0 -1
  195. package/dist/hooks/sync/orchestratorShared.test.js +0 -98
  196. package/dist/hooks/sync/pullLifecycle.test.d.ts +0 -1
  197. package/dist/hooks/sync/pullLifecycle.test.js +0 -80
  198. package/dist/hooks/sync/recovery.test.d.ts +0 -1
  199. package/dist/hooks/sync/recovery.test.js +0 -292
  200. package/dist/hooks/sync/transfers.test.d.ts +0 -1
  201. package/dist/hooks/sync/transfers.test.js +0 -928
  202. package/dist/hooks/sync/useRecentSyncEvents.test.d.ts +0 -1
  203. package/dist/hooks/sync/useRecentSyncEvents.test.js +0 -124
  204. package/dist/hooks/sync/useSyncStatusActions.test.d.ts +0 -1
  205. package/dist/hooks/sync/useSyncStatusActions.test.js +0 -133
  206. package/dist/hooks/sync/useSyncStatusControls.test.d.ts +0 -1
  207. package/dist/hooks/sync/useSyncStatusControls.test.js +0 -88
  208. package/dist/hooks/useFilterSort.test.d.ts +0 -1
  209. package/dist/hooks/useFilterSort.test.js +0 -419
  210. package/dist/hooks/useRealtimeSync.test.d.ts +0 -1
  211. package/dist/hooks/useRealtimeSync.test.js +0 -311
  212. package/dist/hooks/useSyncOrchestrator.aiProfiles.test.d.ts +0 -1
  213. package/dist/hooks/useSyncOrchestrator.aiProfiles.test.js +0 -54
  214. package/dist/hooks/useSyncOrchestrator.context-assets.test.d.ts +0 -1
  215. package/dist/hooks/useSyncOrchestrator.context-assets.test.js +0 -228
  216. package/dist/hooks/useSyncOrchestrator.retry-closure.test.d.ts +0 -1
  217. package/dist/hooks/useSyncOrchestrator.retry-closure.test.js +0 -2027
  218. package/dist/hooks/useTaskData.test.d.ts +0 -1
  219. package/dist/hooks/useTaskData.test.js +0 -291
  220. package/dist/hooks/useTaskMutations.test.d.ts +0 -1
  221. package/dist/hooks/useTaskMutations.test.js +0 -256
  222. package/dist/hooks/useTaskforce.contract.test.d.ts +0 -1
  223. package/dist/hooks/useTaskforce.contract.test.js +0 -7
  224. package/dist/hooks/useTaskforce.priority-filters.test.d.ts +0 -1
  225. package/dist/hooks/useTaskforce.priority-filters.test.js +0 -28
  226. package/dist/hooks/useTaskforce.runtime-routing.test.d.ts +0 -1
  227. package/dist/hooks/useTaskforce.runtime-routing.test.js +0 -246
  228. package/dist/hooks/useTaskforce.sync-behavior.test.d.ts +0 -1
  229. package/dist/hooks/useTaskforce.sync-behavior.test.js +0 -3644
  230. package/dist/hooks/useWorkspaceSyncController.test.d.ts +0 -1
  231. package/dist/hooks/useWorkspaceSyncController.test.js +0 -192
  232. package/dist/hooks/workspace/useTaskforceApiRouting.test.d.ts +0 -1
  233. package/dist/hooks/workspace/useTaskforceApiRouting.test.js +0 -77
  234. package/dist/hooks/workspace/workspaceLocalState.test.d.ts +0 -1
  235. package/dist/hooks/workspace/workspaceLocalState.test.js +0 -59
  236. package/dist/localization/localizationCatalogs.test.d.ts +0 -1
  237. package/dist/localization/localizationCatalogs.test.js +0 -37
  238. package/dist/mcp/aiProfileBootstrap.test.d.ts +0 -1
  239. package/dist/mcp/aiProfileBootstrap.test.js +0 -68
  240. package/dist/mcp/canonicalAssetHelpers.test.d.ts +0 -1
  241. package/dist/mcp/canonicalAssetHelpers.test.js +0 -67
  242. package/dist/mcp/clientIntegrations.test.d.ts +0 -1
  243. package/dist/mcp/clientIntegrations.test.js +0 -219
  244. package/dist/mcp/optionResolution.test.d.ts +0 -1
  245. package/dist/mcp/optionResolution.test.js +0 -43
  246. package/dist/mcp/runtime.test.d.ts +0 -1
  247. package/dist/mcp/runtime.test.js +0 -5211
  248. package/dist/mcp/structuredCommentValidation.test.d.ts +0 -1
  249. package/dist/mcp/structuredCommentValidation.test.js +0 -31
  250. package/dist/mcp/structuredDocValidation.test.d.ts +0 -1
  251. package/dist/mcp/structuredDocValidation.test.js +0 -35
  252. package/dist/mcp/toolRegistry.test.d.ts +0 -1
  253. package/dist/mcp/toolRegistry.test.js +0 -34
  254. package/dist/migrations/billingSchemaParity.test.d.ts +0 -1
  255. package/dist/migrations/billingSchemaParity.test.js +0 -160
  256. package/dist/migrations/taskSchemaMigrations.test.d.ts +0 -1
  257. package/dist/migrations/taskSchemaMigrations.test.js +0 -225
  258. package/dist/qaOpen.test.d.ts +0 -1
  259. package/dist/qaOpen.test.js +0 -56
  260. package/dist/releaseVersion.test.d.ts +0 -1
  261. package/dist/releaseVersion.test.js +0 -32
  262. package/dist/runtime/appGates.test.d.ts +0 -1
  263. package/dist/runtime/appGates.test.js +0 -42
  264. package/dist/server/aiProfileAvatarAssets.test.d.ts +0 -1
  265. package/dist/server/aiProfileAvatarAssets.test.js +0 -213
  266. package/dist/server/annotatedAttachmentsRoutes.test.d.ts +0 -1
  267. package/dist/server/annotatedAttachmentsRoutes.test.js +0 -532
  268. package/dist/server/auth.test.d.ts +0 -1
  269. package/dist/server/auth.test.js +0 -131
  270. package/dist/server/buildInfo.test.d.ts +0 -1
  271. package/dist/server/buildInfo.test.js +0 -29
  272. package/dist/server/cors.test.d.ts +0 -1
  273. package/dist/server/cors.test.js +0 -77
  274. package/dist/server/documentReviewRoutes.test.d.ts +0 -1
  275. package/dist/server/documentReviewRoutes.test.js +0 -190
  276. package/dist/server/email.test.d.ts +0 -1
  277. package/dist/server/email.test.js +0 -113
  278. package/dist/server/index.cookieProxy.test.d.ts +0 -1
  279. package/dist/server/index.cookieProxy.test.js +0 -67
  280. package/dist/server/index.rateLimit.test.d.ts +0 -1
  281. package/dist/server/index.rateLimit.test.js +0 -22
  282. package/dist/server/index.test.d.ts +0 -1
  283. package/dist/server/index.test.js +0 -283
  284. package/dist/server/rateLimit.test.d.ts +0 -1
  285. package/dist/server/rateLimit.test.js +0 -107
  286. package/dist/server/realtimeSync.auth.test.d.ts +0 -1
  287. package/dist/server/realtimeSync.auth.test.js +0 -62
  288. package/dist/server/realtimeSync.replay.test.d.ts +0 -1
  289. package/dist/server/realtimeSync.replay.test.js +0 -192
  290. package/dist/server/realtimeSync.workspaceIsolation.test.d.ts +0 -1
  291. package/dist/server/realtimeSync.workspaceIsolation.test.js +0 -101
  292. package/dist/server/routes/billing.test.d.ts +0 -1
  293. package/dist/server/routes/billing.test.js +0 -3515
  294. package/dist/server/routes/shared.test.d.ts +0 -1
  295. package/dist/server/routes/shared.test.js +0 -32
  296. package/dist/server/routes/sync.integration.test.d.ts +0 -1
  297. package/dist/server/routes/sync.integration.test.js +0 -2932
  298. package/dist/server/routes/syncAuxRoutes.test.d.ts +0 -1
  299. package/dist/server/routes/syncAuxRoutes.test.js +0 -158
  300. package/dist/server/routes/syncRouteGuards.test.d.ts +0 -1
  301. package/dist/server/routes/syncRouteGuards.test.js +0 -94
  302. package/dist/server/routes.test.d.ts +0 -1
  303. package/dist/server/routes.test.js +0 -15612
  304. package/dist/server/runtimeMode.test.d.ts +0 -1
  305. package/dist/server/runtimeMode.test.js +0 -26
  306. package/dist/server/securityHeaders.test.d.ts +0 -1
  307. package/dist/server/securityHeaders.test.js +0 -70
  308. package/dist/services/templateEngine.test.d.ts +0 -1
  309. package/dist/services/templateEngine.test.js +0 -150
  310. package/dist/services/templates.test.d.ts +0 -1
  311. package/dist/services/templates.test.js +0 -45
  312. package/dist/services/workflowDocumentFixtures.test.d.ts +0 -1
  313. package/dist/services/workflowDocumentFixtures.test.js +0 -78
  314. package/dist/services/workflowExportMatrix.test.d.ts +0 -1
  315. package/dist/services/workflowExportMatrix.test.js +0 -113
  316. package/dist/services/workflowExportSnapshots.test.d.ts +0 -1
  317. package/dist/services/workflowExportSnapshots.test.js +0 -30
  318. package/dist/services/workflowGeneration.test.d.ts +0 -1
  319. package/dist/services/workflowGeneration.test.js +0 -12
  320. package/dist/services/workflowSimulation.test.d.ts +0 -1
  321. package/dist/services/workflowSimulation.test.js +0 -113
  322. package/dist/services/workflowV2Policy.test.d.ts +0 -1
  323. package/dist/services/workflowV2Policy.test.js +0 -80
  324. package/dist/shared/customTaxonomyLibrary.test.d.ts +0 -1
  325. package/dist/shared/customTaxonomyLibrary.test.js +0 -20
  326. package/dist/shared/passwordPolicy.test.d.ts +0 -1
  327. package/dist/shared/passwordPolicy.test.js +0 -34
  328. package/dist/shared/runtimeContract.test.d.ts +0 -1
  329. package/dist/shared/runtimeContract.test.js +0 -23
  330. package/dist/shared/taxonomyLibrary.test.d.ts +0 -1
  331. package/dist/shared/taxonomyLibrary.test.js +0 -26
  332. package/dist/shared/taxonomyState.test.d.ts +0 -1
  333. package/dist/shared/taxonomyState.test.js +0 -71
  334. package/dist/soak/preflight.cli.d.ts +0 -1
  335. package/dist/soak/preflight.cli.js +0 -28
  336. package/dist/soak/preflight.d.ts +0 -26
  337. package/dist/soak/preflight.js +0 -113
  338. package/dist/soak/preflight.test.d.ts +0 -1
  339. package/dist/soak/preflight.test.js +0 -39
  340. package/dist/storage/objectStorageClient.test.d.ts +0 -1
  341. package/dist/storage/objectStorageClient.test.js +0 -82
  342. package/dist/storage/objectStorageConfig.test.d.ts +0 -1
  343. package/dist/storage/objectStorageConfig.test.js +0 -50
  344. package/dist/storage/postgresAdapter.test.d.ts +0 -1
  345. package/dist/storage/postgresAdapter.test.js +0 -29
  346. package/dist/storage/workspaceAssetStore.test.d.ts +0 -1
  347. package/dist/storage/workspaceAssetStore.test.js +0 -588
  348. package/dist/sync/cloudSyncApi.test.d.ts +0 -1
  349. package/dist/sync/cloudSyncApi.test.js +0 -111
  350. package/dist/sync/collaborationSyncPayload.test.d.ts +0 -1
  351. package/dist/sync/collaborationSyncPayload.test.js +0 -125
  352. package/dist/sync/contentSyncPayload.test.d.ts +0 -1
  353. package/dist/sync/contentSyncPayload.test.js +0 -143
  354. package/dist/sync/encryptionService.test.d.ts +0 -1
  355. package/dist/sync/encryptionService.test.js +0 -52
  356. package/dist/sync/planningSyncPayload.test.d.ts +0 -1
  357. package/dist/sync/planningSyncPayload.test.js +0 -92
  358. package/dist/sync/realtimeFeature.test.d.ts +0 -1
  359. package/dist/sync/realtimeFeature.test.js +0 -30
  360. package/dist/sync/realtimeReconcile.test.d.ts +0 -1
  361. package/dist/sync/realtimeReconcile.test.js +0 -43
  362. package/dist/sync/syncApplyHandlers.test.d.ts +0 -1
  363. package/dist/sync/syncApplyHandlers.test.js +0 -626
  364. package/dist/sync/syncService.test.d.ts +0 -1
  365. package/dist/sync/syncService.test.js +0 -903
  366. package/dist/sync/taskSyncPayload.test.d.ts +0 -1
  367. package/dist/sync/taskSyncPayload.test.js +0 -54
  368. package/dist/sync/workspacePullFeed.test.d.ts +0 -1
  369. package/dist/sync/workspacePullFeed.test.js +0 -438
  370. package/dist/sync/workspaceSyncModel.test.d.ts +0 -1
  371. package/dist/sync/workspaceSyncModel.test.js +0 -1442
  372. package/dist/test/setup.d.ts +0 -1
  373. package/dist/test/setup.js +0 -15
  374. package/dist/ui/assets/documentReferences-BPWp6ce0.js +0 -1
  375. package/dist/ui/assets/index-zvbo2Jse.js +0 -5
  376. package/dist/utils/accountProfileSummaryCache.test.d.ts +0 -1
  377. package/dist/utils/accountProfileSummaryCache.test.js +0 -63
  378. package/dist/utils/annotatedAttachments.test.d.ts +0 -1
  379. package/dist/utils/annotatedAttachments.test.js +0 -108
  380. package/dist/utils/assignees.test.d.ts +0 -1
  381. package/dist/utils/assignees.test.js +0 -25
  382. package/dist/utils/avatarUpload.test.d.ts +0 -1
  383. package/dist/utils/avatarUpload.test.js +0 -40
  384. package/dist/utils/canonicalAssetKind.test.d.ts +0 -1
  385. package/dist/utils/canonicalAssetKind.test.js +0 -24
  386. package/dist/utils/coalescedRefresh.test.d.ts +0 -1
  387. package/dist/utils/coalescedRefresh.test.js +0 -30
  388. package/dist/utils/constants.icons.test.d.ts +0 -1
  389. package/dist/utils/constants.icons.test.js +0 -41
  390. package/dist/utils/planParser.test.d.ts +0 -1
  391. package/dist/utils/planParser.test.js +0 -183
  392. package/dist/utils/planningReferences.test.d.ts +0 -1
  393. package/dist/utils/planningReferences.test.js +0 -17
  394. package/dist/utils/supportContact.test.d.ts +0 -1
  395. package/dist/utils/supportContact.test.js +0 -19
  396. package/dist/utils/syncEventDetails.test.d.ts +0 -1
  397. package/dist/utils/syncEventDetails.test.js +0 -23
  398. package/dist/utils/syncEventPresentation.test.d.ts +0 -1
  399. package/dist/utils/syncEventPresentation.test.js +0 -64
  400. package/dist/utils/syncStatusPresentation.test.d.ts +0 -1
  401. package/dist/utils/syncStatusPresentation.test.js +0 -164
  402. package/dist/utils/taskActivity.test.d.ts +0 -1
  403. package/dist/utils/taskActivity.test.js +0 -218
  404. package/dist/utils/taskDraftDefaults.test.d.ts +0 -1
  405. package/dist/utils/taskDraftDefaults.test.js +0 -34
  406. package/dist/utils/taskDragZones.test.d.ts +0 -1
  407. package/dist/utils/taskDragZones.test.js +0 -14
  408. package/dist/utils/taskNormalization.test.d.ts +0 -1
  409. package/dist/utils/taskNormalization.test.js +0 -158
  410. package/dist/utils/taskSearch.test.d.ts +0 -1
  411. package/dist/utils/taskSearch.test.js +0 -69
  412. package/dist/utils/taskUtils.test.d.ts +0 -1
  413. package/dist/utils/taskUtils.test.js +0 -19
  414. package/dist/utils/taskforceApiClient.test.d.ts +0 -1
  415. package/dist/utils/taskforceApiClient.test.js +0 -44
  416. package/dist/utils/taxonomyFormDefaults.test.d.ts +0 -1
  417. package/dist/utils/taxonomyFormDefaults.test.js +0 -63
  418. package/dist/utils/uiNotice.test.d.ts +0 -1
  419. package/dist/utils/uiNotice.test.js +0 -18
  420. package/dist/utils/workspaceIdentity.test.d.ts +0 -1
  421. package/dist/utils/workspaceIdentity.test.js +0 -61
  422. package/dist/utils/workspaceLifecycle.test.d.ts +0 -1
  423. package/dist/utils/workspaceLifecycle.test.js +0 -64
  424. package/dist/utils/workspaceSyncPresentation.test.d.ts +0 -1
  425. package/dist/utils/workspaceSyncPresentation.test.js +0 -71
  426. package/scripts/bootstrap-playwright-auth.mjs +0 -155
  427. package/scripts/check-cloud-mcp.mjs +0 -83
  428. package/scripts/check-compat-boundaries.mjs +0 -41
  429. package/scripts/check-env.ts +0 -31
  430. package/scripts/check-localization-strings.mjs +0 -49
  431. package/scripts/check-runtime-boundaries.mjs +0 -44
  432. package/scripts/debug-global.mjs +0 -34
  433. package/scripts/debug-login.mjs +0 -32
  434. package/scripts/debug-server.mjs +0 -36
  435. package/scripts/deploy-prod.sh +0 -41
  436. package/scripts/deploy-staging.sh +0 -23
  437. package/scripts/export-sqlite-to-postgres.mjs +0 -123
  438. package/scripts/generate-env-example.ts +0 -8
  439. package/scripts/mcp-stdio-adapter.mjs +0 -160
  440. package/scripts/migrate-task-data-assets.mjs +0 -408
  441. package/scripts/playwright-auth.sh +0 -19
  442. package/scripts/qa-open-lib.mjs +0 -175
  443. package/scripts/qa-open-lib.mjs.d.ts +0 -49
  444. package/scripts/qa-open.mjs +0 -352
  445. package/scripts/release-version-lib.mjs +0 -88
  446. package/scripts/release-version.mjs +0 -72
  447. package/scripts/run-billing-performance-smoke.sh +0 -24
  448. package/scripts/run-dev-proxy.sh +0 -51
  449. package/scripts/run-e2e-realtime.sh +0 -30
  450. package/scripts/run-smoke.sh +0 -35
  451. package/scripts/run-soak.sh +0 -41
  452. package/scripts/test-global.js +0 -143
  453. package/scripts/update-homebrew-formula.sh +0 -108
  454. package/scripts/with-esbuild.sh +0 -11
@@ -1,72 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { execFileSync } from 'child_process';
4
- import * as fs from 'fs';
5
- import * as path from 'path';
6
- import {
7
- computeNextVersion,
8
- readPackageVersion,
9
- readVersionConfig
10
- } from './release-version-lib.mjs';
11
-
12
- function hasArg(name) {
13
- return process.argv.includes(name);
14
- }
15
-
16
- function readReleaseTags(projectRoot) {
17
- const output = execFileSync('git', ['tag', '--list', 'v*'], {
18
- cwd: projectRoot,
19
- encoding: 'utf8'
20
- });
21
- return output
22
- .split('\n')
23
- .map(line => line.trim())
24
- .filter(Boolean);
25
- }
26
-
27
- function writeGithubOutput(key, value) {
28
- const outputPath = String(process.env.GITHUB_OUTPUT || '').trim();
29
- if (!outputPath) return;
30
- fs.appendFileSync(outputPath, `${key}=${value}\n`, 'utf8');
31
- }
32
-
33
- function main() {
34
- const projectRoot = process.cwd();
35
- const dryRun = hasArg('--dry-run');
36
- const json = hasArg('--json');
37
-
38
- const { major, minor, path: configPath } = readVersionConfig(projectRoot);
39
- const currentPackageVersion = readPackageVersion(projectRoot);
40
- const releaseTags = readReleaseTags(projectRoot);
41
- const nextVersion = computeNextVersion({
42
- major,
43
- minor,
44
- releaseTags,
45
- currentPackageVersion
46
- });
47
-
48
- writeGithubOutput('version', nextVersion);
49
-
50
- if (json) {
51
- console.log(JSON.stringify({
52
- configPath: path.relative(projectRoot, configPath),
53
- currentPackageVersion,
54
- nextVersion,
55
- dryRun
56
- }));
57
- } else {
58
- console.log(`Next release version: ${nextVersion}`);
59
- if (dryRun) {
60
- console.log('Dry run enabled. package.json was not modified.');
61
- }
62
- }
63
-
64
- if (dryRun) return;
65
-
66
- execFileSync('npm', ['version', '--no-git-tag-version', nextVersion], {
67
- cwd: projectRoot,
68
- stdio: 'inherit'
69
- });
70
- }
71
-
72
- main();
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env sh
2
- set -eu
3
-
4
- LOCAL_ENV_FILE="${TASKFORCE_PLAYWRIGHT_ENV_FILE:-$HOME/.codex/taskforce-playwright.env}"
5
- REPO_E2E_ENV_FILE="${TASKFORCE_PLAYWRIGHT_REPO_E2E_ENV_FILE:-.env.e2e}"
6
-
7
- if [ -f "$LOCAL_ENV_FILE" ]; then
8
- set -a
9
- # shellcheck disable=SC1090
10
- . "$LOCAL_ENV_FILE"
11
- set +a
12
- elif [ -f "$REPO_E2E_ENV_FILE" ]; then
13
- set -a
14
- # shellcheck disable=SC1090
15
- . "$REPO_E2E_ENV_FILE"
16
- set +a
17
- fi
18
-
19
- TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL="${TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL:-https://performance-app.taskforcehq.ai}"
20
- export TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL
21
- export TASKFORCE_PLAYWRIGHT_BASE_URL="${TASKFORCE_PLAYWRIGHT_BASE_URL:-$TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL}"
22
-
23
- node scripts/bootstrap-playwright-auth.mjs
24
- exec npx playwright test -c playwright.interactive.config.ts tests/e2e/billing-performance.smoke.spec.ts "$@"
@@ -1,51 +0,0 @@
1
- #!/usr/bin/env sh
2
- set -eu
3
-
4
- target="${1:-}"
5
- if [ -z "$target" ]; then
6
- echo "Usage: sh scripts/run-dev-proxy.sh <staging|performance>" >&2
7
- exit 1
8
- fi
9
-
10
- case "$target" in
11
- staging)
12
- base_url="https://staging-app.taskforcehq.ai"
13
- ;;
14
- performance)
15
- base_url="https://performance-app.taskforcehq.ai"
16
- ;;
17
- *)
18
- echo "Invalid target: $target (expected staging or performance)" >&2
19
- exit 1
20
- ;;
21
- esac
22
-
23
- env_file=""
24
- for candidate in ".env.${target}" ".env.e2e" ".env.local"; do
25
- if [ -f "$candidate" ]; then
26
- env_file="$candidate"
27
- break
28
- fi
29
- done
30
-
31
- if [ -n "$env_file" ]; then
32
- set -a
33
- # shellcheck disable=SC1090
34
- . "$env_file"
35
- set +a
36
- fi
37
-
38
- client_id="${TASKFORCE_CF_ACCESS_CLIENT_ID:-${CF_ACCESS_CLIENT_ID:-}}"
39
- client_secret="${TASKFORCE_CF_ACCESS_CLIENT_SECRET:-${CF_ACCESS_CLIENT_SECRET:-}}"
40
- if [ -z "${client_id}" ] || [ -z "${client_secret}" ]; then
41
- echo "Missing Cloudflare Access service token variables." >&2
42
- echo "Set TASKFORCE_CF_ACCESS_CLIENT_ID/TASKFORCE_CF_ACCESS_CLIENT_SECRET" >&2
43
- echo "or CF_ACCESS_CLIENT_ID/CF_ACCESS_CLIENT_SECRET in .env.${target}, .env.e2e, or .env.local." >&2
44
- exit 1
45
- fi
46
-
47
- TASKFORCE_RUNTIME_MODE="local" \
48
- TASKFORCE_CLOUD_ENVIRONMENT="$target" \
49
- VITE_TASKFORCE_BASE_URL="$base_url" \
50
- TASKFORCE_CLOUD_PROXY_BASE_URL="$base_url" \
51
- npm run dev:runtime
@@ -1,30 +0,0 @@
1
- #!/bin/sh
2
- set -eu
3
-
4
- LOCAL_ENV_FILE="${TASKFORCE_PLAYWRIGHT_ENV_FILE:-$HOME/.codex/taskforce-playwright.env}"
5
- REPO_E2E_ENV_FILE="${TASKFORCE_PLAYWRIGHT_REPO_E2E_ENV_FILE:-.env.e2e}"
6
-
7
- if [ -f "$LOCAL_ENV_FILE" ]; then
8
- set -a
9
- # shellcheck disable=SC1090
10
- . "$LOCAL_ENV_FILE"
11
- set +a
12
- elif [ -f "$REPO_E2E_ENV_FILE" ]; then
13
- set -a
14
- # shellcheck disable=SC1090
15
- . "$REPO_E2E_ENV_FILE"
16
- set +a
17
- fi
18
-
19
- # Mirror soak defaults so realtime e2e runs are plug-compatible with existing env setup.
20
- export SYNC_SOAK_LOCAL_BASE_URL="${SYNC_SOAK_LOCAL_BASE_URL:-http://localhost:5174}"
21
- export SYNC_SOAK_CLOUD_BASE_URL="${SYNC_SOAK_CLOUD_BASE_URL:-${TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL:-https://performance-app.taskforcehq.ai}}"
22
- export SYNC_SOAK_WORKSPACE_ID="${SYNC_SOAK_WORKSPACE_ID:-test-smoke}"
23
- export SYNC_SOAK_EMAIL="${SYNC_SOAK_EMAIL:-${TASKFORCE_E2E_EMAIL:-}}"
24
- export SYNC_SOAK_PASSWORD="${SYNC_SOAK_PASSWORD:-${TASKFORCE_E2E_PASSWORD:-}}"
25
- PLAYWRIGHT_AUTH_STORAGE_STATE="${PLAYWRIGHT_AUTH_STORAGE_STATE:-${TASKFORCE_PLAYWRIGHT_STORAGE_STATE:-}}"
26
- unset TASKFORCE_E2E_EMAIL TASKFORCE_E2E_PASSWORD TASKFORCE_PLAYWRIGHT_STORAGE_STATE TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL
27
-
28
- node --import tsx scripts/check-env.ts --target=soak --strict=true
29
- export PLAYWRIGHT_AUTH_STORAGE_STATE
30
- npx playwright test -c playwright.e2e.config.ts "$@"
@@ -1,35 +0,0 @@
1
- #!/bin/sh
2
- set -eu
3
-
4
- LOCAL_ENV_FILE="${TASKFORCE_PLAYWRIGHT_ENV_FILE:-$HOME/.codex/taskforce-playwright.env}"
5
- REPO_E2E_ENV_FILE="${TASKFORCE_PLAYWRIGHT_REPO_E2E_ENV_FILE:-.env.e2e}"
6
-
7
- if [ -f "$LOCAL_ENV_FILE" ]; then
8
- set -a
9
- # shellcheck disable=SC1090
10
- . "$LOCAL_ENV_FILE"
11
- set +a
12
- elif [ -f "$REPO_E2E_ENV_FILE" ]; then
13
- set -a
14
- # shellcheck disable=SC1090
15
- . "$REPO_E2E_ENV_FILE"
16
- set +a
17
- fi
18
-
19
- # Provide safe defaults for non-secret settings; allow caller/.env.e2e overrides.
20
- export SYNC_SOAK_LOCAL_BASE_URL="${SYNC_SOAK_LOCAL_BASE_URL:-http://localhost:5174}"
21
- export SYNC_SOAK_CLOUD_BASE_URL="${SYNC_SOAK_CLOUD_BASE_URL:-${TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL:-https://performance-app.taskforcehq.ai}}"
22
- export SYNC_SOAK_WORKSPACE_ID="${SYNC_SOAK_WORKSPACE_ID:-test-smoke}"
23
- export SYNC_SOAK_EMAIL="${SYNC_SOAK_EMAIL:-${TASKFORCE_E2E_EMAIL:-}}"
24
- export SYNC_SOAK_PASSWORD="${SYNC_SOAK_PASSWORD:-${TASKFORCE_E2E_PASSWORD:-}}"
25
- unset TASKFORCE_E2E_EMAIL TASKFORCE_E2E_PASSWORD TASKFORCE_PLAYWRIGHT_STORAGE_STATE TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL
26
-
27
- node --import tsx scripts/check-env.ts --target=soak --strict=true
28
-
29
- # Shared credentials are required and may come from the local Playwright auth env file or repo .env.e2e.
30
- if [ -z "${SYNC_SOAK_ACCOUNTS_JSON:-}" ] && { [ -z "${SYNC_SOAK_EMAIL:-}" ] || [ -z "${SYNC_SOAK_PASSWORD:-}" ]; }; then
31
- echo "Missing credentials. Set SYNC_SOAK_ACCOUNTS_JSON or SYNC_SOAK_EMAIL+SYNC_SOAK_PASSWORD in $TASKFORCE_PLAYWRIGHT_ENV_FILE or .env.e2e." >&2
32
- exit 1
33
- fi
34
-
35
- npx playwright test -c playwright.smoke.config.ts "$@"
@@ -1,41 +0,0 @@
1
- #!/bin/sh
2
- set -eu
3
-
4
- LOCAL_ENV_FILE="${TASKFORCE_PLAYWRIGHT_ENV_FILE:-$HOME/.codex/taskforce-playwright.env}"
5
- REPO_E2E_ENV_FILE="${TASKFORCE_PLAYWRIGHT_REPO_E2E_ENV_FILE:-.env.e2e}"
6
-
7
- if [ -f "$LOCAL_ENV_FILE" ]; then
8
- set -a
9
- # shellcheck disable=SC1090
10
- . "$LOCAL_ENV_FILE"
11
- set +a
12
- elif [ -f "$REPO_E2E_ENV_FILE" ]; then
13
- set -a
14
- # shellcheck disable=SC1090
15
- . "$REPO_E2E_ENV_FILE"
16
- set +a
17
- fi
18
-
19
- # Provide safe defaults for non-secret settings; allow caller/.env.e2e overrides.
20
- # Soak runs target the dedicated performance cloud by default.
21
- export SYNC_SOAK_LOCAL_BASE_URL="${SYNC_SOAK_LOCAL_BASE_URL:-http://localhost:5174}"
22
- export SYNC_SOAK_CLOUD_BASE_URL="${SYNC_SOAK_CLOUD_BASE_URL:-${TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL:-https://performance-app.taskforcehq.ai}}"
23
- export SYNC_SOAK_WORKSPACE_ID="${SYNC_SOAK_WORKSPACE_ID:-test-smoke}"
24
- export SYNC_SOAK_EMAIL="${SYNC_SOAK_EMAIL:-${TASKFORCE_E2E_EMAIL:-}}"
25
- export SYNC_SOAK_PASSWORD="${SYNC_SOAK_PASSWORD:-${TASKFORCE_E2E_PASSWORD:-}}"
26
- unset TASKFORCE_E2E_EMAIL TASKFORCE_E2E_PASSWORD TASKFORCE_PLAYWRIGHT_STORAGE_STATE TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL
27
-
28
- node --import tsx scripts/check-env.ts --target=soak --strict=true
29
-
30
- # Shared credentials are required and may come from the local Playwright auth env file or repo .env.e2e.
31
- if [ -z "${SYNC_SOAK_ACCOUNTS_JSON:-}" ] && { [ -z "${SYNC_SOAK_EMAIL:-}" ] || [ -z "${SYNC_SOAK_PASSWORD:-}" ]; }; then
32
- echo "Missing credentials. Set SYNC_SOAK_ACCOUNTS_JSON or SYNC_SOAK_EMAIL+SYNC_SOAK_PASSWORD in $TASKFORCE_PLAYWRIGHT_ENV_FILE or .env.e2e." >&2
33
- exit 1
34
- fi
35
-
36
- if [ "${SOAK_BUILD_UI:-true}" = "true" ]; then
37
- echo "[Soak] Rebuilding full dist bundle before soak run (SOAK_BUILD_UI=true)"
38
- npm run -s build
39
- fi
40
-
41
- npx playwright test -c playwright.smoke.config.ts "$@"
@@ -1,143 +0,0 @@
1
- import { execSync, spawnSync } from 'child_process';
2
- import { existsSync, readFileSync, readdirSync, unlinkSync } from 'fs';
3
- import { join } from 'path';
4
-
5
- const DEFAULT_COMMAND_TIMEOUT_MS = Number.parseInt(
6
- String(process.env.TASKFORCE_TEST_GLOBAL_TIMEOUT_MS || ''),
7
- 10
8
- ) || 20 * 60 * 1000;
9
-
10
- const BUILD_COMMAND_TIMEOUT_MS = Number.parseInt(
11
- String(process.env.TASKFORCE_TEST_GLOBAL_BUILD_TIMEOUT_MS || ''),
12
- 10
13
- ) || 30 * 60 * 1000;
14
-
15
- const run = (cmd, options = {}) => {
16
- const timeoutMs = Number.isFinite(Number(options.timeoutMs))
17
- ? Number(options.timeoutMs)
18
- : DEFAULT_COMMAND_TIMEOUT_MS;
19
- const retries = Math.max(0, Number(options.retries) || 0);
20
-
21
- for (let attempt = 0; attempt <= retries; attempt += 1) {
22
- const tryLabel = retries > 0 ? ` (attempt ${attempt + 1}/${retries + 1})` : '';
23
- console.log(`\n🏃 Running: ${cmd}${tryLabel}`);
24
- try {
25
- execSync(cmd, {
26
- stdio: 'inherit',
27
- timeout: timeoutMs,
28
- killSignal: 'SIGTERM'
29
- });
30
- return;
31
- } catch (error) {
32
- const timedOut = error?.signal === 'SIGTERM' && /ETIMEDOUT/i.test(String(error?.message || ''));
33
- if (timedOut) {
34
- console.error(`⏱️ Command timed out after ${Math.round(timeoutMs / 1000)}s: ${cmd}`);
35
- } else {
36
- console.error(`❌ Command failed: ${cmd}`);
37
- }
38
-
39
- if (attempt < retries) {
40
- console.log('🔁 Retrying...');
41
- continue;
42
- }
43
-
44
- process.exit(1);
45
- }
46
- }
47
- };
48
-
49
- console.log('🏗️ Building project...');
50
- run('npm run build', { timeoutMs: BUILD_COMMAND_TIMEOUT_MS, retries: 1 });
51
-
52
- console.log('📦 Creating tarball...');
53
- const packageJson = JSON.parse(readFileSync(join(process.cwd(), 'package.json'), 'utf8'));
54
- const tarballPrefix = `${String(packageJson.name).replace(/^@/, '').replace(/\//g, '-')}-`;
55
- // Ensure no old tarballs exist
56
- const files = readdirSync('.');
57
- const tarballs = files.filter(f => f.startsWith(tarballPrefix) && f.endsWith('.tgz'));
58
- tarballs.forEach(f => {
59
- console.log(` Removing old tarball: ${f}`);
60
- unlinkSync(f);
61
- });
62
-
63
- run('npm pack');
64
-
65
- // Find the generated tarball
66
- const newFiles = readdirSync('.');
67
- const tarball = newFiles.find(f => f.startsWith(tarballPrefix) && f.endsWith('.tgz'));
68
-
69
- if (!tarball) {
70
- console.error('❌ Error: Tarball not generated.');
71
- process.exit(1);
72
- }
73
-
74
- console.log(`🌍 Installing globally (${tarball})...`);
75
-
76
- const installGlobal = () => spawnSync('npm', ['install', '-g', `./${tarball}`], { encoding: 'utf8' });
77
- const printOutput = (result) => {
78
- if (result.stdout) process.stdout.write(result.stdout);
79
- if (result.stderr) process.stderr.write(result.stderr);
80
- };
81
-
82
- let installResult = installGlobal();
83
- printOutput(installResult);
84
-
85
- if (installResult.status !== 0) {
86
- const combinedOutput = `${installResult.stdout || ''}\n${installResult.stderr || ''}`;
87
- const isFileExists = /EEXIST/i.test(combinedOutput);
88
- const isPermissionError = /(EACCES|EPERM|permission denied)/i.test(combinedOutput);
89
-
90
- if (isFileExists) {
91
- console.log('⚠️ Existing global binary detected. Cleaning up and retrying...');
92
- const packageName = String(packageJson.name);
93
- const uninstallResult = spawnSync('npm', ['uninstall', '-g', packageName], { encoding: 'utf8' });
94
- printOutput(uninstallResult);
95
-
96
- const pathMatch = combinedOutput.match(/npm error path (.+)/i);
97
- if (pathMatch?.[1]) {
98
- const stalePath = pathMatch[1].trim();
99
- try {
100
- if (existsSync(stalePath)) {
101
- unlinkSync(stalePath);
102
- console.log(`🧹 Removed stale binary: ${stalePath}`);
103
- }
104
- } catch (error) {
105
- console.log(`⚠️ Could not remove stale binary at ${stalePath}.`);
106
- }
107
- }
108
-
109
- try {
110
- const npmPrefix = execSync('npm config get prefix', { encoding: 'utf8' }).trim();
111
- const taskforceBin = join(npmPrefix, 'bin', 'taskforce');
112
- if (existsSync(taskforceBin)) {
113
- unlinkSync(taskforceBin);
114
- console.log(`🧹 Removed stale binary: ${taskforceBin}`);
115
- }
116
- } catch (error) {
117
- console.log('⚠️ Could not inspect npm global bin path. Continuing with reinstall...');
118
- }
119
-
120
- installResult = installGlobal();
121
- printOutput(installResult);
122
- } else if (isPermissionError) {
123
- console.log('⚠️ Permission denied. Retrying with sudo...');
124
- try {
125
- execSync(`sudo npm install -g ./${tarball}`, { stdio: 'inherit' });
126
- installResult = { status: 0 };
127
- } catch (sudoError) {
128
- console.error('❌ Failed to install globally with sudo.');
129
- process.exit(1);
130
- }
131
- }
132
- }
133
-
134
- if (installResult.status !== 0) {
135
- console.error('❌ Failed to install globally.');
136
- process.exit(1);
137
- }
138
-
139
- console.log('🧹 Cleaning up artifacts...');
140
- unlinkSync(tarball);
141
-
142
- console.log('✅ Successfully installed!');
143
- console.log('🚀 You can now run "taskforce open" from any directory.');
@@ -1,108 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- if [[ $# -lt 2 || $# -gt 5 ]]; then
5
- cat <<'EOF'
6
- Usage:
7
- scripts/update-homebrew-formula.sh <formula_path> [npm_package] <version> [--sha256 <sha>]
8
-
9
- Example:
10
- scripts/update-homebrew-formula.sh packaging/homebrew/Formula/taskforce.rb @taskforcehq/taskforce 0.3.168
11
- scripts/update-homebrew-formula.sh packaging/homebrew/Formula/taskforce.rb 0.3.168 --sha256 abc123...
12
- EOF
13
- exit 1
14
- fi
15
-
16
- FORMULA_PATH="$1"
17
- shift
18
-
19
- NPM_PACKAGE="@taskforcehq/taskforce"
20
- if [[ "${1:-}" == @*/* ]]; then
21
- NPM_PACKAGE="$1"
22
- shift
23
- fi
24
-
25
- if [[ $# -lt 1 ]]; then
26
- echo "Missing required <version> argument." >&2
27
- exit 1
28
- fi
29
-
30
- VERSION="$1"
31
- shift
32
-
33
- SHA256="${HOMEBREW_SHA256:-}"
34
- while [[ $# -gt 0 ]]; do
35
- case "$1" in
36
- --sha256)
37
- if [[ $# -lt 2 ]]; then
38
- echo "--sha256 requires a value" >&2
39
- exit 1
40
- fi
41
- SHA256="$2"
42
- shift 2
43
- ;;
44
- *)
45
- echo "Unknown argument: $1" >&2
46
- exit 1
47
- ;;
48
- esac
49
- done
50
-
51
- if [[ ! -f "$FORMULA_PATH" ]]; then
52
- echo "Formula file not found: $FORMULA_PATH" >&2
53
- exit 1
54
- fi
55
-
56
- if [[ "$NPM_PACKAGE" != @*/* ]]; then
57
- echo "npm package must be scoped (for example: @taskforcehq/taskforce)." >&2
58
- exit 1
59
- fi
60
-
61
- PACKAGE_SCOPE="${NPM_PACKAGE#@}"
62
- PACKAGE_SCOPE="${PACKAGE_SCOPE%%/*}"
63
- PACKAGE_NAME="${NPM_PACKAGE##*/}"
64
- URL="https://registry.npmjs.org/${NPM_PACKAGE}/-/$(printf '%s-%s.tgz' "${PACKAGE_NAME}" "${VERSION}")"
65
-
66
- if [[ -z "$SHA256" ]]; then
67
- TMP_TGZ="$(mktemp "/tmp/${PACKAGE_NAME}-${VERSION}.XXXXXX.tgz")"
68
- trap 'rm -f "$TMP_TGZ"' EXIT
69
- echo "Downloading npm tarball: $URL"
70
- CURL_ARGS=(-fsSL "$URL" -o "$TMP_TGZ")
71
- AUTH_TOKEN="${NODE_AUTH_TOKEN:-${NPM_TOKEN:-}}"
72
- if [[ -n "$AUTH_TOKEN" ]]; then
73
- CURL_ARGS=(-fsSL -H "Authorization: Bearer ${AUTH_TOKEN}" "$URL" -o "$TMP_TGZ")
74
- fi
75
- if ! curl "${CURL_ARGS[@]}"; then
76
- echo "Direct npm tarball download failed (likely private package auth). Falling back to npm pack..."
77
- rm -f "$TMP_TGZ"
78
- TMP_DIR="$(mktemp -d "/tmp/${PACKAGE_NAME}-${VERSION}.XXXXXX")"
79
- trap 'rm -rf "$TMP_DIR"' EXIT
80
- npm pack "${NPM_PACKAGE}@${VERSION}" --pack-destination "$TMP_DIR" >/dev/null
81
- PACKED_TGZ="$(ls "$TMP_DIR"/*.tgz | head -n 1)"
82
- if [[ -z "$PACKED_TGZ" || ! -f "$PACKED_TGZ" ]]; then
83
- echo "Failed to locate tarball produced by npm pack." >&2
84
- exit 1
85
- fi
86
- TMP_TGZ="$PACKED_TGZ"
87
- fi
88
- if command -v shasum >/dev/null 2>&1; then
89
- SHA256="$(shasum -a 256 "$TMP_TGZ" | awk '{print $1}')"
90
- else
91
- SHA256="$(sha256sum "$TMP_TGZ" | awk '{print $1}')"
92
- fi
93
- fi
94
-
95
- sed -i.bak \
96
- -e "s#homepage \".*\"#homepage \"https://github.com/taskforcehq/taskforce\"#g" \
97
- -e "s#url \".*\"#url \"${URL}\"#g" \
98
- -e "s#sha256 \".*\"#sha256 \"${SHA256}\"#g" \
99
- "$FORMULA_PATH"
100
-
101
- rm -f "${FORMULA_PATH}.bak"
102
- echo "Updated ${FORMULA_PATH}"
103
- echo " npm package: ${NPM_PACKAGE}"
104
- echo " package scope: ${PACKAGE_SCOPE}"
105
- echo " package name: ${PACKAGE_NAME}"
106
- echo " homepage: https://github.com/taskforcehq/taskforce"
107
- echo " url: ${URL}"
108
- echo " sha256: ${SHA256}"
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env sh
2
- set -eu
3
-
4
- if [ -z "${ESBUILD_BINARY_PATH:-}" ]; then
5
- fallback_bin="$(pwd)/node_modules/@esbuild/darwin-arm64/bin/esbuild 2"
6
- if [ -x "$fallback_bin" ]; then
7
- export ESBUILD_BINARY_PATH="$fallback_bin"
8
- fi
9
- fi
10
-
11
- exec "$@"