@taskforcehq/taskforce 0.3.305 → 0.3.306

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 (337) hide show
  1. package/dist/Taskforce.module.css +295 -89
  2. package/dist/TaskforceCore.js +215 -43
  3. package/dist/TaskforceCore.test.js +433 -28
  4. package/dist/assets/fonts/CourierPrime-Bold.woff2 +0 -0
  5. package/dist/assets/fonts/CourierPrime-BoldItalic.woff2 +0 -0
  6. package/dist/assets/fonts/CourierPrime-Italic.woff2 +0 -0
  7. package/dist/assets/fonts/CourierPrime-Regular.woff2 +0 -0
  8. package/dist/assets/fonts/Noir_medium.woff2 +0 -0
  9. package/dist/assets/fonts/Noir_regular.woff2 +0 -0
  10. package/dist/assets/fonts/RussoOne-Regular.woff2 +0 -0
  11. package/dist/assets/fonts/SpecialElite-Regular.woff2 +0 -0
  12. package/dist/compat/workspaceSyncCompat.js +46 -2
  13. package/dist/compat/workspaceSyncCompat.test.js +38 -1
  14. package/dist/components/context/ContextAttachmentManager.d.ts +14 -0
  15. package/dist/components/context/ContextAttachmentManager.js +549 -0
  16. package/dist/components/features/AgentsModule.d.ts +10 -1
  17. package/dist/components/features/AgentsModule.js +260 -15
  18. package/dist/components/features/AgentsModule.test.js +255 -5
  19. package/dist/components/features/DocumentViewer.d.ts +5 -1
  20. package/dist/components/features/DocumentViewer.js +60 -3
  21. package/dist/components/features/DocumentWorkspace.js +1 -1
  22. package/dist/components/features/DocumentWorkspace.test.js +33 -0
  23. package/dist/components/features/documentWorkspaceModel.d.ts +1 -1
  24. package/dist/components/task/TaskCard.js +19 -28
  25. package/dist/components/task/TaskCard.test.js +38 -3
  26. package/dist/components/task/TaskContextUpload.js +4 -526
  27. package/dist/components/task/TaskForm.js +85 -90
  28. package/dist/components/task/TaskForm.test.js +110 -8
  29. package/dist/components/task/TaskKanban.d.ts +2 -1
  30. package/dist/components/task/TaskKanban.js +94 -13
  31. package/dist/components/task/TaskKanban.test.js +36 -0
  32. package/dist/components/ui/EditableAvatarButton.d.ts +18 -0
  33. package/dist/components/ui/EditableAvatarButton.js +18 -0
  34. package/dist/components/views/PlanComparisonPage.d.ts +9 -1
  35. package/dist/components/views/PlanComparisonPage.js +70 -14
  36. package/dist/components/views/PlanComparisonPage.test.js +238 -0
  37. package/dist/components/views/PlansPage.js +127 -36
  38. package/dist/components/views/PlansPage.test.js +294 -12
  39. package/dist/components/views/StandaloneLayout.js +283 -533
  40. package/dist/components/views/panels/PlanningDrawer.d.ts +8 -1
  41. package/dist/components/views/panels/PlanningDrawer.js +18 -11
  42. package/dist/components/views/panels/PlanningDrawer.test.d.ts +1 -0
  43. package/dist/components/views/panels/PlanningDrawer.test.js +141 -0
  44. package/dist/components/views/planningScope.d.ts +20 -0
  45. package/dist/components/views/planningScope.js +25 -0
  46. package/dist/components/views/planningScope.test.d.ts +1 -0
  47. package/dist/components/views/planningScope.test.js +60 -0
  48. package/dist/components/views/standalone/modals/AccountHubModal.d.ts +26 -1
  49. package/dist/components/views/standalone/modals/AccountHubModal.js +76 -2
  50. package/dist/components/views/standalone/modals/AccountHubModal.test.js +20 -3
  51. package/dist/components/views/standalone/modals/AvatarImageManagerModal.d.ts +20 -0
  52. package/dist/components/views/standalone/modals/AvatarImageManagerModal.js +127 -0
  53. package/dist/components/views/standalone/modals/EditProfileModal.d.ts +2 -9
  54. package/dist/components/views/standalone/modals/EditProfileModal.js +3 -2
  55. package/dist/components/views/standalone/modals/SyncEnableWarningModal.d.ts +9 -0
  56. package/dist/components/views/standalone/modals/SyncEnableWarningModal.js +6 -0
  57. package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.d.ts +1 -0
  58. package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.js +24 -0
  59. package/dist/components/views/standalone/modals/SyncStatusModal.d.ts +2 -1
  60. package/dist/components/views/standalone/modals/SyncStatusModal.js +2 -2
  61. package/dist/core/AiProfileService.d.ts +39 -2
  62. package/dist/core/AiProfileService.js +639 -73
  63. package/dist/core/AiProfileService.test.js +19 -1
  64. package/dist/core/AiProfiles.test.js +566 -7
  65. package/dist/core/AttachmentLinkService.js +57 -15
  66. package/dist/core/AuthIdentityService.d.ts +107 -0
  67. package/dist/core/AuthIdentityService.js +284 -0
  68. package/dist/core/AuthTokenService.d.ts +4 -0
  69. package/dist/core/AuthTokenService.js +34 -6
  70. package/dist/core/AuthTokenService.test.js +3 -3
  71. package/dist/core/EntitlementsPolicy.test.js +2 -2
  72. package/dist/core/GlobalSettingsService.js +115 -6
  73. package/dist/core/PlanEntitlementService.d.ts +23 -2
  74. package/dist/core/PlanEntitlementService.js +343 -57
  75. package/dist/core/PlanFeatureCatalog.test.d.ts +1 -0
  76. package/dist/core/PlanFeatureCatalog.test.js +84 -0
  77. package/dist/core/PlanVersionPolicy.test.js +35 -2
  78. package/dist/core/PlanningEntities.test.js +52 -0
  79. package/dist/core/SignupMonetizationSettings.test.js +199 -27
  80. package/dist/core/SyncReconciliationService.js +2 -65
  81. package/dist/core/SystemAdmin.test.js +42 -42
  82. package/dist/core/TaskAttachmentsCanonical.test.js +51 -1
  83. package/dist/core/Taskforce.d.ts +225 -14
  84. package/dist/core/Taskforce.js +765 -192
  85. package/dist/core/Taskforce.listTasksSlim.test.d.ts +1 -0
  86. package/dist/core/Taskforce.listTasksSlim.test.js +91 -0
  87. package/dist/core/UserProfileAvatarDrafts.test.js +30 -3
  88. package/dist/core/WorkspaceLifecycleService.js +0 -5
  89. package/dist/core/WorkspacePermissions.test.js +25 -1
  90. package/dist/core/WorkspacePlanMode.test.js +117 -16
  91. package/dist/core/shared.d.ts +1 -1
  92. package/dist/core/shared.js +5 -1
  93. package/dist/core/types.d.ts +68 -2
  94. package/dist/hooks/auth/useTaskforceAuthBootstrap.js +26 -1
  95. package/dist/hooks/sync/bootstrap.js +2 -0
  96. package/dist/hooks/sync/controlPlane.d.ts +37 -0
  97. package/dist/hooks/sync/controlPlane.js +78 -0
  98. package/dist/hooks/sync/controlPlane.test.d.ts +1 -0
  99. package/dist/hooks/sync/controlPlane.test.js +121 -0
  100. package/dist/hooks/sync/lifecyclePolicy.d.ts +45 -0
  101. package/dist/hooks/sync/lifecyclePolicy.js +93 -0
  102. package/dist/hooks/sync/lifecyclePolicy.test.d.ts +1 -0
  103. package/dist/hooks/sync/lifecyclePolicy.test.js +124 -0
  104. package/dist/hooks/sync/orchestratorShared.d.ts +10 -1
  105. package/dist/hooks/sync/orchestratorShared.js +68 -47
  106. package/dist/hooks/sync/orchestratorShared.test.js +50 -1
  107. package/dist/hooks/sync/pullLifecycle.d.ts +31 -0
  108. package/dist/hooks/sync/pullLifecycle.js +24 -0
  109. package/dist/hooks/sync/pullLifecycle.test.d.ts +1 -0
  110. package/dist/hooks/sync/pullLifecycle.test.js +80 -0
  111. package/dist/hooks/sync/recovery.d.ts +16 -2
  112. package/dist/hooks/sync/recovery.js +171 -53
  113. package/dist/hooks/sync/recovery.test.d.ts +1 -0
  114. package/dist/hooks/sync/recovery.test.js +292 -0
  115. package/dist/hooks/sync/transfers.d.ts +15 -3
  116. package/dist/hooks/sync/transfers.js +179 -62
  117. package/dist/hooks/sync/transfers.test.d.ts +1 -0
  118. package/dist/hooks/sync/transfers.test.js +396 -0
  119. package/dist/hooks/sync/useRecentSyncEvents.d.ts +21 -0
  120. package/dist/hooks/sync/useRecentSyncEvents.js +92 -0
  121. package/dist/hooks/sync/useRecentSyncEvents.test.d.ts +1 -0
  122. package/dist/hooks/sync/useRecentSyncEvents.test.js +124 -0
  123. package/dist/hooks/sync/useSyncStatusActions.d.ts +30 -0
  124. package/dist/hooks/sync/useSyncStatusActions.js +88 -0
  125. package/dist/hooks/sync/useSyncStatusActions.test.d.ts +1 -0
  126. package/dist/hooks/sync/useSyncStatusActions.test.js +133 -0
  127. package/dist/hooks/sync/useSyncStatusControls.d.ts +25 -0
  128. package/dist/hooks/sync/useSyncStatusControls.js +60 -0
  129. package/dist/hooks/sync/useSyncStatusControls.test.d.ts +1 -0
  130. package/dist/hooks/sync/useSyncStatusControls.test.js +88 -0
  131. package/dist/hooks/useSyncOrchestrator.aiProfiles.test.js +12 -0
  132. package/dist/hooks/useSyncOrchestrator.d.ts +9 -2
  133. package/dist/hooks/useSyncOrchestrator.js +359 -178
  134. package/dist/hooks/useSyncOrchestrator.retry-closure.test.js +407 -0
  135. package/dist/hooks/useTaskData.js +8 -3
  136. package/dist/hooks/useTaskData.test.js +45 -0
  137. package/dist/hooks/useTaskforce.d.ts +60 -2
  138. package/dist/hooks/useTaskforce.js +549 -240
  139. package/dist/hooks/useTaskforce.runtime-routing.test.d.ts +1 -0
  140. package/dist/hooks/useTaskforce.runtime-routing.test.js +152 -0
  141. package/dist/hooks/useTaskforce.sync-behavior.test.js +2380 -212
  142. package/dist/hooks/useWorkspaceSyncController.d.ts +1 -0
  143. package/dist/hooks/useWorkspaceSyncController.js +6 -1
  144. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.d.ts +16 -0
  145. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +316 -35
  146. package/dist/localization/locales/en-US.d.ts +0 -1
  147. package/dist/localization/locales/en-US.js +0 -1
  148. package/dist/localization/locales/es-419.js +0 -1
  149. package/dist/localization/locales/pt-BR.js +0 -1
  150. package/dist/mcp/documentAssetRegistrar.js +3 -3
  151. package/dist/mcp/runtime.d.ts +2 -0
  152. package/dist/mcp/runtime.js +131 -64
  153. package/dist/mcp/runtime.test.js +291 -12
  154. package/dist/migrations/taskSchemaMigrations.d.ts +1 -1
  155. package/dist/migrations/taskSchemaMigrations.js +171 -61
  156. package/dist/migrations/taskSchemaMigrations.test.js +15 -0
  157. package/dist/resources/templates/workflow-sources/workflowDocs.mjs +6 -6
  158. package/dist/resources/templates/workflows/collaborate.yaml +1 -1
  159. package/dist/resources/templates/workflows/evaluate.yaml +2 -2
  160. package/dist/resources/templates/workflows/plan.yaml +1 -1
  161. package/dist/resources/templates/workflows/review.yaml +2 -2
  162. package/dist/server/annotatedAttachmentsRoutes.test.js +3 -3
  163. package/dist/server/auth/providers/apple.d.ts +33 -0
  164. package/dist/server/auth/providers/apple.js +82 -0
  165. package/dist/server/auth/providers/appleClientSecret.d.ts +37 -0
  166. package/dist/server/auth/providers/appleClientSecret.js +65 -0
  167. package/dist/server/auth/providers/github.d.ts +26 -0
  168. package/dist/server/auth/providers/github.js +86 -0
  169. package/dist/server/auth/providers/google.d.ts +21 -0
  170. package/dist/server/auth/providers/google.js +56 -0
  171. package/dist/server/auth/providers/types.d.ts +21 -0
  172. package/dist/server/auth/providers/types.js +1 -0
  173. package/dist/server/auth.d.ts +2 -0
  174. package/dist/server/auth.js +6 -3
  175. package/dist/server/documentReviewRoutes.test.js +36 -3
  176. package/dist/server/index.cookieProxy.test.js +1 -0
  177. package/dist/server/index.d.ts +12 -0
  178. package/dist/server/index.js +120 -9
  179. package/dist/server/index.rateLimit.test.js +3 -0
  180. package/dist/server/index.test.js +106 -3
  181. package/dist/server/routes/admin.d.ts +3 -0
  182. package/dist/server/routes/admin.js +272 -19
  183. package/dist/server/routes/auth.d.ts +15 -2
  184. package/dist/server/routes/auth.js +994 -57
  185. package/dist/server/routes/authSupport.d.ts +1 -1
  186. package/dist/server/routes/authSupport.js +1 -1
  187. package/dist/server/routes/billing.js +361 -35
  188. package/dist/server/routes/billing.test.js +592 -12
  189. package/dist/server/routes/documents.d.ts +1 -0
  190. package/dist/server/routes/documents.js +172 -70
  191. package/dist/server/routes/shared.d.ts +28 -2
  192. package/dist/server/routes/shared.js +69 -4
  193. package/dist/server/routes/sync.integration.test.js +437 -39
  194. package/dist/server/routes/sync.js +61 -605
  195. package/dist/server/routes/syncAuxRoutes.d.ts +15 -0
  196. package/dist/server/routes/syncAuxRoutes.js +91 -0
  197. package/dist/server/routes/syncAuxRoutes.test.d.ts +1 -0
  198. package/dist/server/routes/syncAuxRoutes.test.js +158 -0
  199. package/dist/server/routes/syncPullApplyRoutes.d.ts +36 -0
  200. package/dist/server/routes/syncPullApplyRoutes.js +204 -0
  201. package/dist/server/routes/syncPushRoutes.d.ts +24 -0
  202. package/dist/server/routes/syncPushRoutes.js +212 -0
  203. package/dist/server/routes/syncRouteGuards.d.ts +36 -0
  204. package/dist/server/routes/syncRouteGuards.js +67 -0
  205. package/dist/server/routes/syncRouteGuards.test.d.ts +1 -0
  206. package/dist/server/routes/syncRouteGuards.test.js +94 -0
  207. package/dist/server/routes/syncRouteTypes.d.ts +13 -0
  208. package/dist/server/routes/syncRouteTypes.js +1 -0
  209. package/dist/server/routes/syncSnapshotRoutes.d.ts +66 -0
  210. package/dist/server/routes/syncSnapshotRoutes.js +180 -0
  211. package/dist/server/routes/tasks.js +43 -1
  212. package/dist/server/routes/workspaces.js +36 -5
  213. package/dist/server/routes.js +60 -3
  214. package/dist/server/routes.test.js +1824 -171
  215. package/dist/services/workflowExportSnapshots.test.js +2 -0
  216. package/dist/shared/aiProfileSeatScope.d.ts +5 -0
  217. package/dist/shared/aiProfileSeatScope.js +21 -0
  218. package/dist/shared/passwordPolicy.d.ts +13 -0
  219. package/dist/shared/passwordPolicy.js +84 -0
  220. package/dist/shared/passwordPolicy.test.d.ts +1 -0
  221. package/dist/shared/passwordPolicy.test.js +34 -0
  222. package/dist/storage/workspaceAssetStore.d.ts +15 -3
  223. package/dist/storage/workspaceAssetStore.js +132 -44
  224. package/dist/storage/workspaceAssetStore.test.js +93 -6
  225. package/dist/styles/fonts.css +70 -0
  226. package/dist/sync/collaborationSyncPayload.d.ts +6 -1
  227. package/dist/sync/collaborationSyncPayload.js +17 -11
  228. package/dist/sync/collaborationSyncPayload.test.js +13 -1
  229. package/dist/sync/contentSyncState.d.ts +4 -8
  230. package/dist/sync/contentSyncState.js +17 -70
  231. package/dist/sync/syncApplyHandlers.d.ts +7 -0
  232. package/dist/sync/syncApplyHandlers.js +28 -13
  233. package/dist/sync/syncApplyHandlers.test.js +70 -3
  234. package/dist/sync/syncFieldSemantics.d.ts +12 -0
  235. package/dist/sync/syncFieldSemantics.js +55 -0
  236. package/dist/sync/syncResourceAdapters.d.ts +44 -0
  237. package/dist/sync/syncResourceAdapters.js +77 -0
  238. package/dist/sync/syncService.d.ts +5 -0
  239. package/dist/sync/syncService.js +52 -0
  240. package/dist/sync/syncService.test.js +57 -3
  241. package/dist/sync/taskSyncChangeKey.d.ts +2 -0
  242. package/dist/sync/taskSyncChangeKey.js +143 -0
  243. package/dist/sync/taskSyncPayload.js +3 -8
  244. package/dist/sync/workspacePullFeed.js +4 -3
  245. package/dist/sync/workspacePullFeed.test.js +43 -0
  246. package/dist/sync/workspaceRepair.js +5 -2
  247. package/dist/sync/workspaceSyncModel.d.ts +45 -0
  248. package/dist/sync/workspaceSyncModel.js +183 -28
  249. package/dist/sync/workspaceSyncModel.test.js +291 -12
  250. package/dist/sync/workspaceSyncState.d.ts +17 -0
  251. package/dist/sync/workspaceSyncState.js +2 -1
  252. package/dist/sync/workspaceSyncSurface.js +3 -8
  253. package/dist/types.d.ts +17 -0
  254. package/dist/ui/assets/AgentsModule-DrLawwNl.js +1 -0
  255. package/dist/ui/assets/{AnnotatedAttachmentWorkspace-BG6P_GVW.js → AnnotatedAttachmentWorkspace-Z9_whf7F.js} +1 -1
  256. package/dist/ui/assets/CourierPrime-Bold-BuLj_dpw.woff2 +0 -0
  257. package/dist/ui/assets/CourierPrime-BoldItalic-BrK2pUkZ.woff2 +0 -0
  258. package/dist/ui/assets/CourierPrime-Italic-DFUZK5Ey.woff2 +0 -0
  259. package/dist/ui/assets/CourierPrime-Regular-BsKphzVf.woff2 +0 -0
  260. package/dist/ui/assets/DocumentWorkspace-B03MaSkw.js +252 -0
  261. package/dist/ui/assets/DocumentWorkspace-Dhdso07p.css +1 -0
  262. package/dist/ui/assets/{InitiativesModule-Dhm7M8e7.js → InitiativesModule-9E6ParrY.js} +1 -1
  263. package/dist/ui/assets/Noir_medium-bxQwKGzB.woff2 +0 -0
  264. package/dist/ui/assets/Noir_regular-ojf2kxlG.woff2 +0 -0
  265. package/dist/ui/assets/PlansPage-CvfnMiWq.css +1 -0
  266. package/dist/ui/assets/PlansPage-DRXscYxH.js +1 -0
  267. package/dist/ui/assets/RussoOne-Regular-Cu_qq_qC.woff2 +0 -0
  268. package/dist/ui/assets/SpecialElite-Regular-Di6gSvAS.woff2 +0 -0
  269. package/dist/ui/assets/{TaskSettings-ln0aF7xc.js → TaskSettings-DZX4jk7e.js} +1 -1
  270. package/dist/ui/assets/{WorkflowsModule-BcS4afRn.js → WorkflowsModule-BA7jcEpH.js} +1 -1
  271. package/dist/ui/assets/index-9eT8e0Lu.css +1 -0
  272. package/dist/ui/assets/index-C6k75jr8.js +6 -0
  273. package/dist/ui/assets/{vendor-icons-BSUaRwF8.js → vendor-icons-DuEd_65c.js} +1 -1
  274. package/dist/ui/fonts/CourierPrime-Bold.ttf +0 -0
  275. package/dist/ui/fonts/CourierPrime-Bold.woff2 +0 -0
  276. package/dist/ui/fonts/CourierPrime-BoldItalic.ttf +0 -0
  277. package/dist/ui/fonts/CourierPrime-BoldItalic.woff2 +0 -0
  278. package/dist/ui/fonts/CourierPrime-Italic.ttf +0 -0
  279. package/dist/ui/fonts/CourierPrime-Italic.woff2 +0 -0
  280. package/dist/ui/fonts/CourierPrime-Regular.ttf +0 -0
  281. package/dist/ui/fonts/CourierPrime-Regular.woff2 +0 -0
  282. package/dist/ui/fonts/Noir_medium.otf +0 -0
  283. package/dist/ui/fonts/Noir_medium.woff2 +0 -0
  284. package/dist/ui/fonts/Noir_regular.otf +0 -0
  285. package/dist/ui/fonts/Noir_regular.woff2 +0 -0
  286. package/dist/ui/fonts/RussoOne-Regular.woff2 +0 -0
  287. package/dist/ui/fonts/SpecialElite-Regular.ttf +0 -0
  288. package/dist/ui/fonts/SpecialElite-Regular.woff2 +0 -0
  289. package/dist/ui/index.html +3 -3
  290. package/dist/utils/accountProfileSummaryCache.d.ts +5 -0
  291. package/dist/utils/assignees.d.ts +2 -0
  292. package/dist/utils/assignees.js +2 -0
  293. package/dist/utils/avatarUpload.d.ts +27 -0
  294. package/dist/utils/avatarUpload.js +132 -0
  295. package/dist/utils/avatarUpload.test.d.ts +1 -0
  296. package/dist/utils/avatarUpload.test.js +40 -0
  297. package/dist/utils/bootstrapTrace.d.ts +7 -0
  298. package/dist/utils/bootstrapTrace.js +29 -0
  299. package/dist/utils/commercialLifecyclePresentation.js +3 -0
  300. package/dist/utils/contextAssetEvents.d.ts +2 -0
  301. package/dist/utils/syncEventDetails.d.ts +3 -0
  302. package/dist/utils/syncEventDetails.js +64 -0
  303. package/dist/utils/syncEventDetails.test.d.ts +1 -0
  304. package/dist/utils/syncEventDetails.test.js +23 -0
  305. package/dist/utils/syncEventPresentation.d.ts +15 -0
  306. package/dist/utils/syncEventPresentation.js +129 -0
  307. package/dist/utils/syncEventPresentation.test.d.ts +1 -0
  308. package/dist/utils/syncEventPresentation.test.js +64 -0
  309. package/dist/utils/syncStatusPresentation.d.ts +72 -0
  310. package/dist/utils/syncStatusPresentation.js +217 -0
  311. package/dist/utils/syncStatusPresentation.test.d.ts +1 -0
  312. package/dist/utils/syncStatusPresentation.test.js +164 -0
  313. package/dist/utils/taskActivity.d.ts +2 -0
  314. package/dist/utils/taskActivity.js +228 -22
  315. package/dist/utils/taskActivity.test.js +119 -8
  316. package/dist/utils/workspaceSyncPresentation.d.ts +4 -0
  317. package/dist/utils/workspaceSyncPresentation.js +68 -2
  318. package/dist/utils/workspaceSyncPresentation.test.js +36 -1
  319. package/package.json +3 -2
  320. package/scripts/export-sqlite-to-postgres.mjs +7 -9
  321. package/scripts/run-e2e-realtime.sh +17 -3
  322. package/scripts/run-smoke.sh +17 -5
  323. package/scripts/run-soak.sh +17 -5
  324. package/src/resources/templates/workflow-sources/workflowDocs.mjs +6 -6
  325. package/src/resources/templates/workflows/collaborate.yaml +1 -1
  326. package/src/resources/templates/workflows/evaluate.yaml +2 -2
  327. package/src/resources/templates/workflows/plan.yaml +1 -1
  328. package/src/resources/templates/workflows/review.yaml +2 -2
  329. package/dist/ui/assets/AgentsModule-N2MnQBZk.js +0 -1
  330. package/dist/ui/assets/DocumentWorkspace-B3nV_Gc5.css +0 -1
  331. package/dist/ui/assets/DocumentWorkspace-DRbDMwh8.js +0 -252
  332. package/dist/ui/assets/PlansPage-C2dd2n1X.css +0 -1
  333. package/dist/ui/assets/PlansPage-Cq0zXj3I.js +0 -1
  334. package/dist/ui/assets/RussoOne-Regular-C3BxZIj7.ttf +0 -0
  335. package/dist/ui/assets/index-C2-OXZV7.css +0 -1
  336. package/dist/ui/assets/index-DcSI5F86.js +0 -6
  337. package/scripts/migrate-planning-model.ts +0 -233
@@ -1,15 +1,10 @@
1
+ @import "./styles/fonts.css";
2
+
1
3
  /**
2
4
  * DevTask Manager - Styles
3
5
  *
4
6
  * Matches FeedbackWidget styling with project design tokens.
5
7
  */
6
- @font-face {
7
- font-family: "Russo One";
8
- src: url("./assets/fonts/RussoOne-Regular.ttf") format("truetype");
9
- font-weight: normal;
10
- font-style: normal;
11
- }
12
-
13
8
  .filterGlow {
14
9
  color: var(--brand-primary) !important;
15
10
  background: var(--brand-primary-soft) !important;
@@ -127,7 +122,7 @@
127
122
  letter-spacing: -0.01em;
128
123
  flex: 1;
129
124
  min-width: 0;
130
- font-family: "Russo One", sans-serif;
125
+ font-family: var(--font-brand);
131
126
  text-transform: uppercase;
132
127
  font-style: italic;
133
128
  }
@@ -462,6 +457,18 @@
462
457
  color: var(--color-success, #10b981);
463
458
  }
464
459
 
460
+ .errorMessage {
461
+ padding: 12px 14px;
462
+ border-radius: var(--radius-md, 12px);
463
+ border: 1px solid rgba(239, 68, 68, 0.28);
464
+ background: rgba(127, 29, 29, 0.18);
465
+ color: #fecaca;
466
+ display: flex;
467
+ align-items: flex-start;
468
+ gap: 8px;
469
+ font-size: 13px;
470
+ }
471
+
465
472
  .successIcon {
466
473
  width: 64px;
467
474
  height: 64px;
@@ -4713,6 +4720,25 @@
4713
4720
  ============================= */
4714
4721
 
4715
4722
  /* AI Profiles Management */
4723
+ .agentsModuleRoot {
4724
+ flex: 1;
4725
+ min-width: 0;
4726
+ min-height: 0;
4727
+ width: 100%;
4728
+ box-sizing: border-box;
4729
+ overflow: hidden;
4730
+ padding: 20px 24px 22px;
4731
+ }
4732
+
4733
+ .agentsModuleContent {
4734
+ width: min(100%, 760px);
4735
+ min-height: 0;
4736
+ }
4737
+
4738
+ .agentsModuleGroup {
4739
+ min-height: 0;
4740
+ }
4741
+
4716
4742
  .marginTop24 {
4717
4743
  margin-top: 24px;
4718
4744
  }
@@ -4744,36 +4770,25 @@
4744
4770
 
4745
4771
  .aiProfilesExplorer {
4746
4772
  display: grid;
4747
- grid-template-columns: 360px 360px;
4773
+ grid-template-columns: 360px 600px;
4748
4774
  gap: 16px;
4749
4775
  align-items: start;
4750
4776
  justify-content: start;
4777
+ min-height: 0;
4778
+ width: fit-content;
4779
+ max-width: 100%;
4751
4780
  }
4752
4781
 
4753
4782
  .aiProfilesListPane {
4754
4783
  min-width: 0;
4755
- max-height: min(72vh, 780px);
4784
+ max-height: min(72vh, calc(100vh - 250px));
4756
4785
  overflow-y: auto;
4786
+ overflow-x: hidden;
4757
4787
  overscroll-behavior: contain;
4758
- padding-right: 6px;
4788
+ padding-right: 8px;
4759
4789
  scrollbar-gutter: stable;
4760
- scrollbar-width: thin;
4761
- scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
4762
- }
4763
-
4764
- .aiProfilesListPane::-webkit-scrollbar {
4765
- width: 10px;
4766
- }
4767
-
4768
- .aiProfilesListPane::-webkit-scrollbar-track {
4769
- background: var(--scrollbar-track);
4770
- border-radius: 999px;
4771
- }
4772
-
4773
- .aiProfilesListPane::-webkit-scrollbar-thumb {
4774
- background: var(--scrollbar-thumb);
4775
- border-radius: 999px;
4776
- border: 2px solid var(--scrollbar-track);
4790
+ --tf-scrollbar-size: 8px;
4791
+ --tf-scrollbar-thumb-border: 1px;
4777
4792
  }
4778
4793
 
4779
4794
  .aiProfilesList {
@@ -4801,7 +4816,7 @@
4801
4816
  appearance: none;
4802
4817
  border: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
4803
4818
  border-radius: 8px;
4804
- padding: 8px 12px;
4819
+ padding: 10px 40px 10px 12px;
4805
4820
  width: 100%;
4806
4821
  text-align: left;
4807
4822
  font: inherit;
@@ -4809,6 +4824,7 @@
4809
4824
  background: rgba(255, 255, 255, 0.02);
4810
4825
  cursor: pointer;
4811
4826
  box-sizing: border-box;
4827
+ position: relative;
4812
4828
  transition: border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
4813
4829
  }
4814
4830
 
@@ -4832,35 +4848,94 @@
4832
4848
 
4833
4849
  .aiProfileGroupHeader {
4834
4850
  display: flex;
4835
- align-items: center;
4836
- gap: 8px;
4851
+ align-items: flex-start;
4852
+ gap: 10px;
4837
4853
  font-size: 12px;
4838
4854
  font-weight: 500;
4839
4855
  }
4840
4856
 
4841
- .aiProfileName {
4857
+ .aiProfileGroupAvatar {
4858
+ width: 60px;
4859
+ height: 60px;
4860
+ border-radius: 999px;
4861
+ display: inline-flex;
4862
+ align-items: center;
4863
+ justify-content: center;
4864
+ flex: 0 0 auto;
4865
+ margin-right: 2px;
4866
+ overflow: hidden;
4867
+ background:
4868
+ linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)),
4869
+ rgba(15, 23, 42, 0.42);
4870
+ border: 1px solid rgba(255, 255, 255, 0.1);
4871
+ }
4872
+
4873
+ .aiProfileGroupAvatar img {
4874
+ width: 100%;
4875
+ height: 100%;
4876
+ object-fit: cover;
4877
+ }
4878
+
4879
+ .aiProfileGroupIdentity {
4880
+ min-width: 0;
4881
+ display: flex;
4842
4882
  flex: 1;
4883
+ flex-direction: column;
4884
+ gap: 3px;
4885
+ padding-top: 2px;
4886
+ }
4887
+
4888
+ .aiProfileName {
4843
4889
  color: var(--text-primary, #fff);
4890
+ font-size: 13px;
4891
+ font-weight: 700;
4892
+ line-height: 1.25;
4893
+ overflow-wrap: anywhere;
4844
4894
  }
4845
4895
 
4846
- .aiProfileMetaRow {
4847
- display: flex;
4848
- flex-wrap: wrap;
4896
+ .aiProfileHandle,
4897
+ .aiProfileRole {
4898
+ color: var(--text-muted, #94a3b8);
4899
+ font-size: 12px;
4900
+ line-height: 1.25;
4901
+ overflow-wrap: anywhere;
4902
+ }
4903
+
4904
+ .aiProfileRole {
4905
+ color: var(--text-secondary, #cbd5e1);
4906
+ }
4907
+
4908
+ .aiProfileSeatSummary {
4909
+ display: inline-flex;
4849
4910
  align-items: center;
4850
- gap: 6px;
4851
- margin-top: 4px;
4852
- font-size: 11px;
4853
- color: var(--text-secondary, #9ca3af);
4911
+ margin-bottom: 14px;
4912
+ color: var(--text-secondary, #cbd5e1);
4913
+ font-size: 12px;
4914
+ font-weight: 600;
4854
4915
  }
4855
4916
 
4856
- .aiProfileSurfaceBadge {
4917
+ .aiProfileSeatScopeIcon {
4918
+ position: absolute;
4919
+ top: 10px;
4920
+ right: 10px;
4857
4921
  display: inline-flex;
4858
4922
  align-items: center;
4859
- padding: 2px 6px;
4860
- border-radius: 999px;
4861
- border: 1px solid rgba(255, 255, 255, 0.12);
4862
- background: rgba(255, 255, 255, 0.05);
4863
- color: var(--text-primary, #fff);
4923
+ justify-content: center;
4924
+ line-height: 1;
4925
+ opacity: 0.95;
4926
+ }
4927
+
4928
+ .aiProfileSeatScopeIconDetail {
4929
+ top: 18px;
4930
+ right: 18px;
4931
+ }
4932
+
4933
+ .aiProfileSeatScopeIconCloud {
4934
+ color: #60a5fa;
4935
+ }
4936
+
4937
+ .aiProfileSeatScopeIconLocal {
4938
+ color: #a78bfa;
4864
4939
  }
4865
4940
 
4866
4941
  .aiProfileDuplicateBadge {
@@ -4929,13 +5004,15 @@
4929
5004
  }
4930
5005
 
4931
5006
  .aiProfileDetailCard {
5007
+ width: 600px;
4932
5008
  min-width: 0;
4933
5009
  border: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
4934
5010
  border-radius: var(--radius-md);
4935
- padding: 18px;
5011
+ padding: 16px;
4936
5012
  background: var(--surface-panel);
4937
5013
  box-shadow: var(--box-shadow-md);
4938
5014
  backdrop-filter: blur(10px);
5015
+ position: relative;
4939
5016
  }
4940
5017
 
4941
5018
  .aiProfileDetailHero {
@@ -4958,6 +5035,10 @@
4958
5035
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
4959
5036
  }
4960
5037
 
5038
+ .aiProfileDetailAvatar {
5039
+ flex: 0 0 auto;
5040
+ }
5041
+
4961
5042
  .aiProfileDetailHeading {
4962
5043
  min-width: 0;
4963
5044
  flex: 1;
@@ -4991,18 +5072,11 @@
4991
5072
  font-size: 12px;
4992
5073
  }
4993
5074
 
4994
- .aiProfileDetailSectionBadge {
4995
- display: inline-flex;
4996
- align-items: center;
4997
- padding: 3px 8px;
4998
- border-radius: 999px;
4999
- background: rgba(255, 255, 255, 0.06);
5000
- border: 1px solid rgba(255, 255, 255, 0.08);
5001
- color: var(--text-secondary, #dbe5f4);
5002
- font-size: 10px;
5003
- font-weight: 700;
5004
- letter-spacing: 0.08em;
5005
- text-transform: uppercase;
5075
+ .aiProfileDetailRole {
5076
+ margin-top: 10px;
5077
+ color: var(--text-primary, #fff);
5078
+ font-size: 13px;
5079
+ line-height: 1.35;
5006
5080
  }
5007
5081
 
5008
5082
  .aiProfileDetailLinkedCount {
@@ -5011,60 +5085,101 @@
5011
5085
  }
5012
5086
 
5013
5087
  .aiProfileDetailDescription {
5014
- margin-top: 15px;
5088
+ margin-top: 8px;
5015
5089
  font-size: 13px;
5016
5090
  line-height: 1.5;
5017
5091
  color: var(--text-secondary, #cbd5e1);
5018
5092
  }
5019
5093
 
5020
- .aiProfileDetailGrid {
5094
+ .aiProfileDetailDataList {
5021
5095
  display: grid;
5022
- grid-template-columns: repeat(2, minmax(0, 1fr));
5023
- gap: 12px;
5024
- margin-top: 18px;
5096
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
5097
+ gap: 18px;
5098
+ margin-top: 14px;
5099
+ padding-top: 14px;
5100
+ border-top: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
5025
5101
  }
5026
5102
 
5027
- .aiProfileDetailStat {
5103
+ .aiProfileDetailDataGroup {
5028
5104
  display: flex;
5029
5105
  flex-direction: column;
5030
- gap: 7px;
5106
+ gap: 6px;
5031
5107
  min-width: 0;
5032
- border: 1px solid rgba(255, 255, 255, 0.07);
5033
- border-radius: 12px;
5034
- padding: 11px 12px;
5035
- background:
5036
- linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
5037
- rgba(15, 23, 42, 0.18);
5038
5108
  }
5039
5109
 
5040
- .aiProfileDetailStatLabel {
5041
- display: inline-flex;
5042
- align-items: center;
5043
- gap: 6px;
5044
- font-size: 11px;
5045
- text-transform: uppercase;
5046
- letter-spacing: 0.08em;
5047
- color: var(--text-secondary, #94a3b8);
5110
+ .aiProfileDetailDateGroup {
5111
+ border-left: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
5112
+ padding-left: 18px;
5048
5113
  }
5049
5114
 
5050
- .aiProfileDetailStatValue {
5051
- font-size: 14px;
5115
+ .aiProfileDetailDataRow {
5116
+ display: grid;
5117
+ grid-template-columns: 120px minmax(0, 1fr);
5118
+ gap: 10px;
5119
+ align-items: baseline;
5120
+ font-size: 12px;
5052
5121
  line-height: 1.35;
5122
+ }
5123
+
5124
+ .aiProfileDetailDataLabel {
5125
+ color: var(--text-muted, #94a3b8);
5126
+ font-weight: 700;
5127
+ letter-spacing: 0.06em;
5128
+ text-transform: uppercase;
5129
+ }
5130
+
5131
+ .aiProfileDetailDataValue {
5132
+ min-width: 0;
5133
+ color: var(--text-secondary, #cbd5e1);
5134
+ overflow-wrap: anywhere;
5135
+ }
5136
+
5137
+ .aiProfileStatusSelect {
5138
+ justify-self: end;
5139
+ max-width: 100%;
5140
+ appearance: none;
5141
+ border: 0;
5142
+ border-radius: 4px;
5143
+ background: transparent;
5144
+ color: var(--text-secondary, #cbd5e1);
5145
+ font: inherit;
5146
+ font-size: 12px;
5147
+ font-weight: 600;
5148
+ line-height: 1.2;
5149
+ padding: 2px 16px 2px 0;
5150
+ cursor: pointer;
5151
+ background-image:
5152
+ linear-gradient(45deg, transparent 50%, currentColor 50%),
5153
+ linear-gradient(135deg, currentColor 50%, transparent 50%);
5154
+ background-position:
5155
+ calc(100% - 7px) 50%,
5156
+ calc(100% - 3px) 50%;
5157
+ background-size: 4px 4px, 4px 4px;
5158
+ background-repeat: no-repeat;
5159
+ }
5160
+
5161
+ .aiProfileStatusSelect:hover {
5053
5162
  color: var(--text-primary, #fff);
5054
- word-break: break-word;
5163
+ text-decoration: underline;
5164
+ text-underline-offset: 3px;
5165
+ }
5166
+
5167
+ .aiProfileStatusSelect:focus-visible {
5168
+ outline: 2px solid rgba(96, 165, 250, 0.55);
5169
+ outline-offset: 2px;
5055
5170
  }
5056
5171
 
5057
5172
  .aiProfileInstanceSection {
5058
- margin-top: 18px;
5059
- padding-top: 16px;
5173
+ margin-top: 14px;
5174
+ padding-top: 12px;
5060
5175
  border-top: 1px solid rgba(255, 255, 255, 0.08);
5061
5176
  }
5062
5177
 
5063
5178
  .aiProfileInstanceSectionHeader {
5064
5179
  display: flex;
5065
5180
  flex-direction: column;
5066
- gap: 4px;
5067
- margin-bottom: 10px;
5181
+ gap: 3px;
5182
+ margin-bottom: 8px;
5068
5183
  color: var(--text-primary, #fff);
5069
5184
  font-size: 13px;
5070
5185
  font-weight: 600;
@@ -5079,13 +5194,66 @@
5079
5194
  .aiProfileInstanceCard {
5080
5195
  border: 1px solid rgba(255, 255, 255, 0.08);
5081
5196
  border-radius: 12px;
5082
- padding: 11px 12px;
5197
+ padding: 9px 11px;
5083
5198
  background:
5084
5199
  linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)),
5085
5200
  rgba(15, 23, 42, 0.2);
5086
5201
  display: flex;
5087
5202
  flex-direction: column;
5088
- gap: 9px;
5203
+ gap: 7px;
5204
+ position: relative;
5205
+ }
5206
+
5207
+ .aiProfileIdFooter {
5208
+ display: flex;
5209
+ flex-direction: column;
5210
+ align-items: center;
5211
+ gap: 8px;
5212
+ margin-top: 14px;
5213
+ padding-top: 12px;
5214
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
5215
+ }
5216
+
5217
+ .aiProfileIdFooterValue {
5218
+ max-width: 100%;
5219
+ color: var(--text-muted, #94a3b8);
5220
+ font-family: monospace;
5221
+ font-size: 11px;
5222
+ line-height: 1.35;
5223
+ text-align: center;
5224
+ overflow-wrap: anywhere;
5225
+ }
5226
+
5227
+ .aiProfileDangerTextButton {
5228
+ align-self: flex-end;
5229
+ border: 0;
5230
+ background: transparent;
5231
+ color: var(--text-muted, #94a3b8);
5232
+ font-size: 12px;
5233
+ font-weight: 600;
5234
+ line-height: 1.3;
5235
+ padding: 2px 0;
5236
+ cursor: pointer;
5237
+ transition: color var(--transition-base), text-decoration-color var(--transition-base);
5238
+ }
5239
+
5240
+ .aiProfileDangerTextButton:hover:not(:disabled),
5241
+ .aiProfileDangerTextButton:focus-visible {
5242
+ color: #f87171;
5243
+ text-decoration: underline;
5244
+ text-decoration-color: currentColor;
5245
+ text-underline-offset: 3px;
5246
+ }
5247
+
5248
+ .aiProfileDangerTextButton:focus-visible {
5249
+ outline: 2px solid rgba(248, 113, 113, 0.55);
5250
+ outline-offset: 3px;
5251
+ border-radius: 4px;
5252
+ }
5253
+
5254
+ .aiProfileDangerTextButton:disabled {
5255
+ cursor: not-allowed;
5256
+ opacity: 0.55;
5089
5257
  }
5090
5258
 
5091
5259
  .aiProfileInstanceTopRow {
@@ -5110,9 +5278,31 @@
5110
5278
  color: var(--text-secondary, #94a3b8);
5111
5279
  }
5112
5280
 
5281
+ .aiProfileInlineError {
5282
+ display: flex;
5283
+ align-items: flex-start;
5284
+ gap: 6px;
5285
+ border: 1px solid rgba(239, 68, 68, 0.2);
5286
+ background: rgba(127, 29, 29, 0.14);
5287
+ color: #fecaca;
5288
+ border-radius: 10px;
5289
+ padding: 8px 10px;
5290
+ font-size: 12px;
5291
+ line-height: 1.4;
5292
+ }
5293
+
5113
5294
  @media (max-width: 1100px) {
5295
+ .agentsModuleRoot {
5296
+ padding: 20px;
5297
+ }
5298
+
5299
+ .agentsModuleContent {
5300
+ width: 100%;
5301
+ }
5302
+
5114
5303
  .aiProfilesExplorer {
5115
5304
  grid-template-columns: minmax(0, 1fr);
5305
+ width: 100%;
5116
5306
  }
5117
5307
 
5118
5308
  .aiProfilesListPane {
@@ -5123,10 +5313,26 @@
5123
5313
  .aiProfileDetailPane {
5124
5314
  position: static;
5125
5315
  }
5316
+
5317
+ .aiProfileDetailCard {
5318
+ width: auto;
5319
+ }
5126
5320
  }
5127
5321
 
5128
5322
  @media (max-width: 640px) {
5129
- .aiProfileDetailGrid {
5323
+ .aiProfileDetailDataList {
5324
+ grid-template-columns: 1fr;
5325
+ }
5326
+
5327
+ .aiProfileDetailDateGroup {
5328
+ border-left: 0;
5329
+ border-top: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
5330
+ padding-left: 0;
5331
+ padding-top: 12px;
5332
+ }
5333
+
5334
+ .aiProfileDetailDataRow {
5130
5335
  grid-template-columns: 1fr;
5336
+ gap: 2px;
5131
5337
  }
5132
5338
  }