@taskforcehq/taskforce 0.3.305 → 0.3.307

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 (440) hide show
  1. package/README.md +0 -2
  2. package/dist/Taskforce.module.css +603 -107
  3. package/dist/TaskforceCore.js +216 -43
  4. package/dist/TaskforceCore.test.js +611 -28
  5. package/dist/assets/fonts/CourierPrime-Bold.woff2 +0 -0
  6. package/dist/assets/fonts/CourierPrime-BoldItalic.woff2 +0 -0
  7. package/dist/assets/fonts/CourierPrime-Italic.woff2 +0 -0
  8. package/dist/assets/fonts/CourierPrime-Regular.woff2 +0 -0
  9. package/dist/assets/fonts/Noir_medium.woff2 +0 -0
  10. package/dist/assets/fonts/Noir_regular.woff2 +0 -0
  11. package/dist/assets/fonts/RussoOne-Regular.woff2 +0 -0
  12. package/dist/assets/fonts/SpecialElite-Regular.woff2 +0 -0
  13. package/dist/compat/workspaceSyncCompat.js +46 -2
  14. package/dist/compat/workspaceSyncCompat.test.js +38 -1
  15. package/dist/components/activity/EntityActivityTimeline.d.ts +34 -0
  16. package/dist/components/activity/EntityActivityTimeline.js +81 -0
  17. package/dist/components/context/ContextAttachmentManager.d.ts +14 -0
  18. package/dist/components/context/ContextAttachmentManager.js +561 -0
  19. package/dist/components/features/AgentsModule.d.ts +14 -1
  20. package/dist/components/features/AgentsModule.js +366 -18
  21. package/dist/components/features/AgentsModule.test.js +507 -8
  22. package/dist/components/features/AnnotatedAttachmentWorkspace.d.ts +3 -1
  23. package/dist/components/features/AnnotatedAttachmentWorkspace.js +118 -4
  24. package/dist/components/features/AnnotatedAttachmentWorkspace.test.js +52 -0
  25. package/dist/components/features/DocumentIndex.d.ts +2 -2
  26. package/dist/components/features/DocumentIndex.js +3 -4
  27. package/dist/components/features/DocumentViewer.d.ts +7 -1
  28. package/dist/components/features/DocumentViewer.js +62 -4
  29. package/dist/components/features/DocumentWorkspace.d.ts +10 -2
  30. package/dist/components/features/DocumentWorkspace.js +15 -4
  31. package/dist/components/features/DocumentWorkspace.test.js +51 -1
  32. package/dist/components/features/TaskSettings.d.ts +2 -0
  33. package/dist/components/features/TaskSettings.js +83 -78
  34. package/dist/components/features/TaskSettings.test.js +171 -82
  35. package/dist/components/features/documentWorkspaceModel.d.ts +1 -1
  36. package/dist/components/task/TaskActionHeader.js +11 -5
  37. package/dist/components/task/TaskActionHeader.test.js +10 -0
  38. package/dist/components/task/TaskCard.js +24 -29
  39. package/dist/components/task/TaskCard.test.js +38 -3
  40. package/dist/components/task/TaskContextUpload.js +4 -526
  41. package/dist/components/task/TaskContextUpload.test.js +3 -3
  42. package/dist/components/task/TaskForm.js +61 -116
  43. package/dist/components/task/TaskForm.test.js +110 -8
  44. package/dist/components/task/TaskKanban.d.ts +2 -1
  45. package/dist/components/task/TaskKanban.js +94 -21
  46. package/dist/components/task/TaskKanban.test.js +36 -0
  47. package/dist/components/task/TaskList.js +5 -1
  48. package/dist/components/task/TaskList.test.js +4 -0
  49. package/dist/components/ui/EditableAvatarButton.d.ts +18 -0
  50. package/dist/components/ui/EditableAvatarButton.js +18 -0
  51. package/dist/components/ui/HierarchyActionBadge.d.ts +10 -0
  52. package/dist/components/ui/HierarchyActionBadge.js +5 -0
  53. package/dist/components/views/AppShellHeader.d.ts +3 -1
  54. package/dist/components/views/AppShellHeader.js +27 -11
  55. package/dist/components/views/AppShellHeader.test.js +18 -1
  56. package/dist/components/views/PlanComparisonPage.d.ts +9 -1
  57. package/dist/components/views/PlanComparisonPage.js +78 -14
  58. package/dist/components/views/PlanComparisonPage.test.js +257 -0
  59. package/dist/components/views/PlansPage.js +127 -36
  60. package/dist/components/views/PlansPage.test.js +294 -12
  61. package/dist/components/views/StandaloneLayout.js +529 -592
  62. package/dist/components/views/WidgetView.js +10 -8
  63. package/dist/components/views/panels/PlanningDrawer.d.ts +25 -5
  64. package/dist/components/views/panels/PlanningDrawer.js +270 -55
  65. package/dist/components/views/panels/PlanningDrawer.test.d.ts +1 -0
  66. package/dist/components/views/panels/PlanningDrawer.test.js +529 -0
  67. package/dist/components/views/planningScope.d.ts +20 -0
  68. package/dist/components/views/planningScope.js +25 -0
  69. package/dist/components/views/planningScope.test.d.ts +1 -0
  70. package/dist/components/views/planningScope.test.js +60 -0
  71. package/dist/components/views/standalone/modals/AccountHubModal.d.ts +26 -1
  72. package/dist/components/views/standalone/modals/AccountHubModal.js +76 -2
  73. package/dist/components/views/standalone/modals/AccountHubModal.test.js +20 -3
  74. package/dist/components/views/standalone/modals/AvatarImageManagerModal.d.ts +20 -0
  75. package/dist/components/views/standalone/modals/AvatarImageManagerModal.js +127 -0
  76. package/dist/components/views/standalone/modals/EditProfileModal.d.ts +2 -9
  77. package/dist/components/views/standalone/modals/EditProfileModal.js +3 -2
  78. package/dist/components/views/standalone/modals/SyncEnableWarningModal.d.ts +9 -0
  79. package/dist/components/views/standalone/modals/SyncEnableWarningModal.js +6 -0
  80. package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.d.ts +1 -0
  81. package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.js +24 -0
  82. package/dist/components/views/standalone/modals/SyncStatusModal.d.ts +2 -1
  83. package/dist/components/views/standalone/modals/SyncStatusModal.js +2 -2
  84. package/dist/config/envSchema.js +1 -0
  85. package/dist/core/AiProfileService.d.ts +46 -2
  86. package/dist/core/AiProfileService.js +1073 -82
  87. package/dist/core/AiProfileService.test.js +19 -1
  88. package/dist/core/AiProfiles.test.js +1249 -44
  89. package/dist/core/AttachmentLinkService.d.ts +3 -0
  90. package/dist/core/AttachmentLinkService.js +110 -23
  91. package/dist/core/AuthIdentityService.d.ts +107 -0
  92. package/dist/core/AuthIdentityService.js +284 -0
  93. package/dist/core/AuthTokenService.d.ts +4 -0
  94. package/dist/core/AuthTokenService.js +34 -6
  95. package/dist/core/AuthTokenService.test.js +3 -3
  96. package/dist/core/EntitlementsPolicy.test.js +2 -2
  97. package/dist/core/GlobalSettingsService.js +127 -6
  98. package/dist/core/McpTokenService.d.ts +12 -0
  99. package/dist/core/McpTokenService.js +44 -1
  100. package/dist/core/PlanEntitlementService.d.ts +23 -2
  101. package/dist/core/PlanEntitlementService.js +343 -57
  102. package/dist/core/PlanFeatureCatalog.test.d.ts +1 -0
  103. package/dist/core/PlanFeatureCatalog.test.js +84 -0
  104. package/dist/core/PlanVersionPolicy.test.js +35 -2
  105. package/dist/core/PlanningEntities.test.js +418 -4
  106. package/dist/core/SignupMonetizationSettings.test.js +199 -27
  107. package/dist/core/SyncReconciliationService.js +2 -65
  108. package/dist/core/SystemAdmin.test.js +42 -42
  109. package/dist/core/TaskActivityService.d.ts +28 -1
  110. package/dist/core/TaskActivityService.js +227 -46
  111. package/dist/core/TaskActivitySync.test.d.ts +1 -0
  112. package/dist/core/TaskActivitySync.test.js +90 -0
  113. package/dist/core/TaskAttachmentsCanonical.test.js +51 -1
  114. package/dist/core/TaskAuditTimeline.test.js +96 -0
  115. package/dist/core/Taskforce.d.ts +415 -40
  116. package/dist/core/Taskforce.ids.test.js +58 -0
  117. package/dist/core/Taskforce.js +1543 -266
  118. package/dist/core/Taskforce.listTasksSlim.test.d.ts +1 -0
  119. package/dist/core/Taskforce.listTasksSlim.test.js +91 -0
  120. package/dist/core/Taskforce.mcpAuth.test.js +109 -0
  121. package/dist/core/UserProfileAvatarDrafts.test.js +30 -3
  122. package/dist/core/WorkspaceLifecycleService.js +0 -5
  123. package/dist/core/WorkspacePermissions.test.js +25 -1
  124. package/dist/core/WorkspacePlanMode.test.js +117 -16
  125. package/dist/core/shared.d.ts +1 -1
  126. package/dist/core/shared.js +5 -1
  127. package/dist/core/types.d.ts +75 -2
  128. package/dist/hooks/auth/useTaskforceAuthBootstrap.js +28 -2
  129. package/dist/hooks/bootstrapTimeouts.d.ts +4 -0
  130. package/dist/hooks/bootstrapTimeouts.js +8 -0
  131. package/dist/hooks/bootstrapTimeouts.test.d.ts +1 -0
  132. package/dist/hooks/bootstrapTimeouts.test.js +12 -0
  133. package/dist/hooks/sync/bootstrap.js +2 -0
  134. package/dist/hooks/sync/controlPlane.d.ts +37 -0
  135. package/dist/hooks/sync/controlPlane.js +78 -0
  136. package/dist/hooks/sync/controlPlane.test.d.ts +1 -0
  137. package/dist/hooks/sync/controlPlane.test.js +121 -0
  138. package/dist/hooks/sync/lifecyclePolicy.d.ts +45 -0
  139. package/dist/hooks/sync/lifecyclePolicy.js +93 -0
  140. package/dist/hooks/sync/lifecyclePolicy.test.d.ts +1 -0
  141. package/dist/hooks/sync/lifecyclePolicy.test.js +124 -0
  142. package/dist/hooks/sync/orchestratorShared.d.ts +13 -4
  143. package/dist/hooks/sync/orchestratorShared.js +129 -48
  144. package/dist/hooks/sync/orchestratorShared.test.js +50 -1
  145. package/dist/hooks/sync/pullLifecycle.d.ts +31 -0
  146. package/dist/hooks/sync/pullLifecycle.js +24 -0
  147. package/dist/hooks/sync/pullLifecycle.test.d.ts +1 -0
  148. package/dist/hooks/sync/pullLifecycle.test.js +80 -0
  149. package/dist/hooks/sync/recovery.d.ts +16 -2
  150. package/dist/hooks/sync/recovery.js +179 -53
  151. package/dist/hooks/sync/recovery.test.d.ts +1 -0
  152. package/dist/hooks/sync/recovery.test.js +292 -0
  153. package/dist/hooks/sync/transfers.d.ts +16 -3
  154. package/dist/hooks/sync/transfers.js +210 -66
  155. package/dist/hooks/sync/transfers.test.d.ts +1 -0
  156. package/dist/hooks/sync/transfers.test.js +928 -0
  157. package/dist/hooks/sync/useRecentSyncEvents.d.ts +21 -0
  158. package/dist/hooks/sync/useRecentSyncEvents.js +92 -0
  159. package/dist/hooks/sync/useRecentSyncEvents.test.d.ts +1 -0
  160. package/dist/hooks/sync/useRecentSyncEvents.test.js +124 -0
  161. package/dist/hooks/sync/useSyncStatusActions.d.ts +30 -0
  162. package/dist/hooks/sync/useSyncStatusActions.js +88 -0
  163. package/dist/hooks/sync/useSyncStatusActions.test.d.ts +1 -0
  164. package/dist/hooks/sync/useSyncStatusActions.test.js +133 -0
  165. package/dist/hooks/sync/useSyncStatusControls.d.ts +25 -0
  166. package/dist/hooks/sync/useSyncStatusControls.js +60 -0
  167. package/dist/hooks/sync/useSyncStatusControls.test.d.ts +1 -0
  168. package/dist/hooks/sync/useSyncStatusControls.test.js +88 -0
  169. package/dist/hooks/useFilterSort.js +13 -13
  170. package/dist/hooks/useFilterSort.test.js +87 -1
  171. package/dist/hooks/useSyncOrchestrator.aiProfiles.test.js +12 -0
  172. package/dist/hooks/useSyncOrchestrator.d.ts +9 -2
  173. package/dist/hooks/useSyncOrchestrator.js +409 -183
  174. package/dist/hooks/useSyncOrchestrator.retry-closure.test.js +407 -0
  175. package/dist/hooks/useTaskData.js +8 -3
  176. package/dist/hooks/useTaskData.test.js +45 -0
  177. package/dist/hooks/useTaskforce.d.ts +145 -52
  178. package/dist/hooks/useTaskforce.js +592 -253
  179. package/dist/hooks/useTaskforce.runtime-routing.test.d.ts +1 -0
  180. package/dist/hooks/useTaskforce.runtime-routing.test.js +246 -0
  181. package/dist/hooks/useTaskforce.sync-behavior.test.js +2468 -201
  182. package/dist/hooks/useWorkspaceSyncController.d.ts +1 -0
  183. package/dist/hooks/useWorkspaceSyncController.js +13 -2
  184. package/dist/hooks/useWorkspaceSyncController.test.js +48 -0
  185. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.d.ts +16 -0
  186. package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +328 -40
  187. package/dist/localization/locales/en-US.d.ts +0 -1
  188. package/dist/localization/locales/en-US.js +0 -1
  189. package/dist/localization/locales/es-419.js +0 -1
  190. package/dist/localization/locales/pt-BR.js +0 -1
  191. package/dist/mcp/canonicalAssetHelpers.d.ts +16 -4
  192. package/dist/mcp/canonicalAssetHelpers.js +18 -10
  193. package/dist/mcp/canonicalAssetHelpers.test.d.ts +1 -0
  194. package/dist/mcp/canonicalAssetHelpers.test.js +67 -0
  195. package/dist/mcp/clientIntegrations.d.ts +1 -0
  196. package/dist/mcp/clientIntegrations.js +25 -0
  197. package/dist/mcp/clientIntegrations.test.js +14 -3
  198. package/dist/mcp/clientProfileDefaults.js +3 -3
  199. package/dist/mcp/collaborationRegistrar.js +7 -7
  200. package/dist/mcp/documentAssetRegistrar.js +116 -10
  201. package/dist/mcp/runtime.d.ts +3 -0
  202. package/dist/mcp/runtime.js +1099 -185
  203. package/dist/mcp/runtime.test.js +1491 -140
  204. package/dist/mcp/taskAttachmentTypes.d.ts +1 -1
  205. package/dist/mcp/taskPlanningRegistrar.js +48 -0
  206. package/dist/mcp/toolRegistry.d.ts +56 -0
  207. package/dist/mcp/toolRegistry.js +8 -0
  208. package/dist/mcp/toolRegistry.test.js +4 -0
  209. package/dist/migrations/taskSchemaMigrations.d.ts +1 -1
  210. package/dist/migrations/taskSchemaMigrations.js +192 -61
  211. package/dist/migrations/taskSchemaMigrations.test.js +15 -0
  212. package/dist/resources/templates/workflow-sources/workflowDocs.mjs +6 -6
  213. package/dist/resources/templates/workflows/collaborate.yaml +1 -1
  214. package/dist/resources/templates/workflows/evaluate.yaml +2 -2
  215. package/dist/resources/templates/workflows/plan.yaml +1 -1
  216. package/dist/resources/templates/workflows/review.yaml +2 -2
  217. package/dist/server/aiProfileAvatarAssets.d.ts +49 -0
  218. package/dist/server/aiProfileAvatarAssets.js +319 -0
  219. package/dist/server/aiProfileAvatarAssets.test.d.ts +1 -0
  220. package/dist/server/aiProfileAvatarAssets.test.js +213 -0
  221. package/dist/server/annotatedAttachmentsRoutes.test.js +69 -10
  222. package/dist/server/auth/providers/apple.d.ts +33 -0
  223. package/dist/server/auth/providers/apple.js +82 -0
  224. package/dist/server/auth/providers/appleClientSecret.d.ts +37 -0
  225. package/dist/server/auth/providers/appleClientSecret.js +65 -0
  226. package/dist/server/auth/providers/github.d.ts +26 -0
  227. package/dist/server/auth/providers/github.js +86 -0
  228. package/dist/server/auth/providers/google.d.ts +21 -0
  229. package/dist/server/auth/providers/google.js +56 -0
  230. package/dist/server/auth/providers/types.d.ts +21 -0
  231. package/dist/server/auth/providers/types.js +1 -0
  232. package/dist/server/auth.d.ts +2 -0
  233. package/dist/server/auth.js +6 -3
  234. package/dist/server/documentReviewRoutes.test.js +36 -3
  235. package/dist/server/index.cookieProxy.test.js +1 -0
  236. package/dist/server/index.d.ts +12 -0
  237. package/dist/server/index.js +124 -9
  238. package/dist/server/index.rateLimit.test.js +3 -0
  239. package/dist/server/index.test.js +111 -3
  240. package/dist/server/routes/admin.d.ts +3 -0
  241. package/dist/server/routes/admin.js +459 -28
  242. package/dist/server/routes/annotatedAttachments.js +51 -0
  243. package/dist/server/routes/auth.d.ts +26 -2
  244. package/dist/server/routes/auth.js +1170 -71
  245. package/dist/server/routes/authSupport.d.ts +5 -1
  246. package/dist/server/routes/authSupport.js +13 -2
  247. package/dist/server/routes/billing.js +372 -35
  248. package/dist/server/routes/billing.test.js +595 -12
  249. package/dist/server/routes/documents.d.ts +1 -0
  250. package/dist/server/routes/documents.js +182 -70
  251. package/dist/server/routes/shared.d.ts +28 -2
  252. package/dist/server/routes/shared.js +69 -14
  253. package/dist/server/routes/sync.integration.test.js +658 -39
  254. package/dist/server/routes/sync.js +74 -608
  255. package/dist/server/routes/syncAuxRoutes.d.ts +15 -0
  256. package/dist/server/routes/syncAuxRoutes.js +91 -0
  257. package/dist/server/routes/syncAuxRoutes.test.d.ts +1 -0
  258. package/dist/server/routes/syncAuxRoutes.test.js +158 -0
  259. package/dist/server/routes/syncPullApplyRoutes.d.ts +36 -0
  260. package/dist/server/routes/syncPullApplyRoutes.js +204 -0
  261. package/dist/server/routes/syncPushRoutes.d.ts +24 -0
  262. package/dist/server/routes/syncPushRoutes.js +212 -0
  263. package/dist/server/routes/syncRouteGuards.d.ts +36 -0
  264. package/dist/server/routes/syncRouteGuards.js +67 -0
  265. package/dist/server/routes/syncRouteGuards.test.d.ts +1 -0
  266. package/dist/server/routes/syncRouteGuards.test.js +94 -0
  267. package/dist/server/routes/syncRouteTypes.d.ts +13 -0
  268. package/dist/server/routes/syncRouteTypes.js +1 -0
  269. package/dist/server/routes/syncSnapshotRoutes.d.ts +66 -0
  270. package/dist/server/routes/syncSnapshotRoutes.js +182 -0
  271. package/dist/server/routes/tasks.js +55 -10
  272. package/dist/server/routes/workspaces.js +36 -5
  273. package/dist/server/routes.js +147 -11
  274. package/dist/server/routes.test.js +2704 -183
  275. package/dist/services/workflowExportSnapshots.test.js +2 -0
  276. package/dist/shared/aiProfileSeatScope.d.ts +5 -0
  277. package/dist/shared/aiProfileSeatScope.js +21 -0
  278. package/dist/shared/aiProfileSurfaceType.d.ts +1 -1
  279. package/dist/shared/aiProfileSurfaceType.js +10 -8
  280. package/dist/shared/passwordPolicy.d.ts +13 -0
  281. package/dist/shared/passwordPolicy.js +84 -0
  282. package/dist/shared/passwordPolicy.test.d.ts +1 -0
  283. package/dist/shared/passwordPolicy.test.js +34 -0
  284. package/dist/storage/objectStorage.d.ts +1 -0
  285. package/dist/storage/objectStorage.js +2 -1
  286. package/dist/storage/objectStorageClient.d.ts +1 -0
  287. package/dist/storage/objectStorageClient.js +41 -8
  288. package/dist/storage/objectStorageClient.test.js +26 -1
  289. package/dist/storage/objectStorageConfig.js +3 -1
  290. package/dist/storage/objectStorageConfig.test.js +13 -1
  291. package/dist/storage/workspaceAssetStore.d.ts +15 -3
  292. package/dist/storage/workspaceAssetStore.js +132 -44
  293. package/dist/storage/workspaceAssetStore.test.js +93 -6
  294. package/dist/styles/fonts.css +70 -0
  295. package/dist/sync/collaborationSyncPayload.d.ts +6 -1
  296. package/dist/sync/collaborationSyncPayload.js +19 -11
  297. package/dist/sync/collaborationSyncPayload.test.js +14 -1
  298. package/dist/sync/collaborationSyncState.d.ts +3 -3
  299. package/dist/sync/collaborationSyncState.js +19 -12
  300. package/dist/sync/contentSyncPayload.d.ts +5 -1
  301. package/dist/sync/contentSyncPayload.js +9 -0
  302. package/dist/sync/contentSyncPayload.test.js +39 -0
  303. package/dist/sync/contentSyncState.d.ts +9 -9
  304. package/dist/sync/contentSyncState.js +248 -107
  305. package/dist/sync/planningSyncPayload.js +5 -0
  306. package/dist/sync/planningSyncPayload.test.js +24 -0
  307. package/dist/sync/syncApplyHandlers.d.ts +11 -4
  308. package/dist/sync/syncApplyHandlers.js +115 -42
  309. package/dist/sync/syncApplyHandlers.test.js +251 -4
  310. package/dist/sync/syncFieldSemantics.d.ts +12 -0
  311. package/dist/sync/syncFieldSemantics.js +55 -0
  312. package/dist/sync/syncResourceAdapters.d.ts +46 -0
  313. package/dist/sync/syncResourceAdapters.js +79 -0
  314. package/dist/sync/syncService.d.ts +6 -0
  315. package/dist/sync/syncService.js +65 -1
  316. package/dist/sync/syncService.test.js +96 -3
  317. package/dist/sync/taskSyncChangeKey.d.ts +2 -0
  318. package/dist/sync/taskSyncChangeKey.js +143 -0
  319. package/dist/sync/taskSyncPayload.js +3 -8
  320. package/dist/sync/workspacePullFeed.d.ts +4 -0
  321. package/dist/sync/workspacePullFeed.js +132 -72
  322. package/dist/sync/workspacePullFeed.test.js +92 -0
  323. package/dist/sync/workspaceRepair.js +5 -2
  324. package/dist/sync/workspaceSyncModel.d.ts +73 -6
  325. package/dist/sync/workspaceSyncModel.js +342 -73
  326. package/dist/sync/workspaceSyncModel.test.js +559 -14
  327. package/dist/sync/workspaceSyncState.d.ts +17 -0
  328. package/dist/sync/workspaceSyncState.js +2 -1
  329. package/dist/sync/workspaceSyncSurface.js +3 -8
  330. package/dist/types.d.ts +50 -2
  331. package/dist/ui/assets/AgentsModule-2y82_3DO.js +1 -0
  332. package/dist/ui/assets/AnnotatedAttachmentWorkspace-BTLZZCiQ.js +3 -0
  333. package/dist/ui/assets/AnnotatedAttachmentWorkspace-BVKew-mH.css +1 -0
  334. package/dist/ui/assets/ContextAttachmentManager-D2epuNnG.js +3 -0
  335. package/dist/ui/assets/CourierPrime-Bold-BuLj_dpw.woff2 +0 -0
  336. package/dist/ui/assets/CourierPrime-BoldItalic-BrK2pUkZ.woff2 +0 -0
  337. package/dist/ui/assets/CourierPrime-Italic-DFUZK5Ey.woff2 +0 -0
  338. package/dist/ui/assets/CourierPrime-Regular-BsKphzVf.woff2 +0 -0
  339. package/dist/ui/assets/DocumentWorkspace-D4rJKXzd.css +1 -0
  340. package/dist/ui/assets/DocumentWorkspace-sVa-3Do6.js +252 -0
  341. package/dist/ui/assets/EntityActivityTimeline-DyqvvhuF.css +1 -0
  342. package/dist/ui/assets/EntityActivityTimeline-Zods27y_.js +1 -0
  343. package/dist/ui/assets/{InitiativesModule-Dhm7M8e7.js → InitiativesModule-D4XseTwW.js} +1 -1
  344. package/dist/ui/assets/Noir_medium-bxQwKGzB.woff2 +0 -0
  345. package/dist/ui/assets/Noir_regular-ojf2kxlG.woff2 +0 -0
  346. package/dist/ui/assets/PlansPage-D5AcbO0L.js +1 -0
  347. package/dist/ui/assets/PlansPage-Dvqsz5zc.css +1 -0
  348. package/dist/ui/assets/RussoOne-Regular-Cu_qq_qC.woff2 +0 -0
  349. package/dist/ui/assets/SpecialElite-Regular-Di6gSvAS.woff2 +0 -0
  350. package/dist/ui/assets/TaskContextUpload-uC5qx4Bv.js +1 -0
  351. package/dist/ui/assets/TaskSettings-CqvPAsTv.js +9 -0
  352. package/dist/ui/assets/{WorkflowsModule-BcS4afRn.js → WorkflowsModule-oOA9bcdK.js} +4 -4
  353. package/dist/ui/assets/documentReferences-DPZuTgHh.js +1 -0
  354. package/dist/ui/assets/index-607WPo_X.js +4 -0
  355. package/dist/ui/assets/index-CYyodXsg.css +1 -0
  356. package/dist/ui/assets/{vendor-icons-BSUaRwF8.js → vendor-icons-B32hGuF2.js} +1 -1
  357. package/dist/ui/fonts/CourierPrime-Bold.ttf +0 -0
  358. package/dist/ui/fonts/CourierPrime-Bold.woff2 +0 -0
  359. package/dist/ui/fonts/CourierPrime-BoldItalic.ttf +0 -0
  360. package/dist/ui/fonts/CourierPrime-BoldItalic.woff2 +0 -0
  361. package/dist/ui/fonts/CourierPrime-Italic.ttf +0 -0
  362. package/dist/ui/fonts/CourierPrime-Italic.woff2 +0 -0
  363. package/dist/ui/fonts/CourierPrime-Regular.ttf +0 -0
  364. package/dist/ui/fonts/CourierPrime-Regular.woff2 +0 -0
  365. package/dist/ui/fonts/Noir_medium.otf +0 -0
  366. package/dist/ui/fonts/Noir_medium.woff2 +0 -0
  367. package/dist/ui/fonts/Noir_regular.otf +0 -0
  368. package/dist/ui/fonts/Noir_regular.woff2 +0 -0
  369. package/dist/ui/fonts/RussoOne-Regular.woff2 +0 -0
  370. package/dist/ui/fonts/SpecialElite-Regular.ttf +0 -0
  371. package/dist/ui/fonts/SpecialElite-Regular.woff2 +0 -0
  372. package/dist/ui/index.html +3 -3
  373. package/dist/ui/product/agent manager.png +0 -0
  374. package/dist/ui/product/agent_manager_02.png +0 -0
  375. package/dist/utils/accountProfileSummaryCache.d.ts +5 -0
  376. package/dist/utils/aiProfileEvents.d.ts +7 -0
  377. package/dist/utils/aiProfileEvents.js +6 -0
  378. package/dist/utils/assignees.d.ts +8 -0
  379. package/dist/utils/assignees.js +10 -1
  380. package/dist/utils/assignees.test.d.ts +1 -0
  381. package/dist/utils/assignees.test.js +25 -0
  382. package/dist/utils/avatarDisplay.d.ts +1 -0
  383. package/dist/utils/avatarDisplay.js +15 -0
  384. package/dist/utils/avatarUpload.d.ts +27 -0
  385. package/dist/utils/avatarUpload.js +132 -0
  386. package/dist/utils/avatarUpload.test.d.ts +1 -0
  387. package/dist/utils/avatarUpload.test.js +40 -0
  388. package/dist/utils/bootstrapTrace.d.ts +7 -0
  389. package/dist/utils/bootstrapTrace.js +29 -0
  390. package/dist/utils/commercialLifecyclePresentation.js +3 -0
  391. package/dist/utils/contextAssetEvents.d.ts +2 -0
  392. package/dist/utils/contextFiles.d.ts +3 -1
  393. package/dist/utils/contextFiles.js +2 -1
  394. package/dist/utils/syncEventDetails.d.ts +3 -0
  395. package/dist/utils/syncEventDetails.js +64 -0
  396. package/dist/utils/syncEventDetails.test.d.ts +1 -0
  397. package/dist/utils/syncEventDetails.test.js +23 -0
  398. package/dist/utils/syncEventPresentation.d.ts +15 -0
  399. package/dist/utils/syncEventPresentation.js +129 -0
  400. package/dist/utils/syncEventPresentation.test.d.ts +1 -0
  401. package/dist/utils/syncEventPresentation.test.js +64 -0
  402. package/dist/utils/syncStatusPresentation.d.ts +72 -0
  403. package/dist/utils/syncStatusPresentation.js +217 -0
  404. package/dist/utils/syncStatusPresentation.test.d.ts +1 -0
  405. package/dist/utils/syncStatusPresentation.test.js +164 -0
  406. package/dist/utils/taskActivity.d.ts +9 -1
  407. package/dist/utils/taskActivity.js +290 -22
  408. package/dist/utils/taskActivity.test.js +141 -8
  409. package/dist/utils/taskSearch.d.ts +22 -0
  410. package/dist/utils/taskSearch.js +87 -0
  411. package/dist/utils/taskSearch.test.d.ts +1 -0
  412. package/dist/utils/taskSearch.test.js +69 -0
  413. package/dist/utils/taskUtils.js +10 -3
  414. package/dist/utils/taskUtils.test.d.ts +1 -0
  415. package/dist/utils/taskUtils.test.js +19 -0
  416. package/dist/utils/workspaceSyncPresentation.d.ts +4 -0
  417. package/dist/utils/workspaceSyncPresentation.js +68 -2
  418. package/dist/utils/workspaceSyncPresentation.test.js +36 -1
  419. package/package.json +3 -2
  420. package/scripts/export-sqlite-to-postgres.mjs +7 -9
  421. package/scripts/run-e2e-realtime.sh +17 -3
  422. package/scripts/run-smoke.sh +17 -5
  423. package/scripts/run-soak.sh +17 -5
  424. package/src/resources/templates/workflow-sources/workflowDocs.mjs +6 -6
  425. package/src/resources/templates/workflows/collaborate.yaml +1 -1
  426. package/src/resources/templates/workflows/evaluate.yaml +2 -2
  427. package/src/resources/templates/workflows/plan.yaml +1 -1
  428. package/src/resources/templates/workflows/review.yaml +2 -2
  429. package/dist/ui/assets/AgentsModule-N2MnQBZk.js +0 -1
  430. package/dist/ui/assets/AnnotatedAttachmentWorkspace-BG6P_GVW.js +0 -3
  431. package/dist/ui/assets/AnnotatedAttachmentWorkspace-BaS2VwIr.css +0 -1
  432. package/dist/ui/assets/DocumentWorkspace-B3nV_Gc5.css +0 -1
  433. package/dist/ui/assets/DocumentWorkspace-DRbDMwh8.js +0 -252
  434. package/dist/ui/assets/PlansPage-C2dd2n1X.css +0 -1
  435. package/dist/ui/assets/PlansPage-Cq0zXj3I.js +0 -1
  436. package/dist/ui/assets/RussoOne-Regular-C3BxZIj7.ttf +0 -0
  437. package/dist/ui/assets/TaskSettings-ln0aF7xc.js +0 -9
  438. package/dist/ui/assets/index-C2-OXZV7.css +0 -1
  439. package/dist/ui/assets/index-DcSI5F86.js +0 -6
  440. 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
  }
@@ -138,6 +133,32 @@
138
133
  object-fit: contain;
139
134
  }
140
135
 
136
+ .brandHomeButton,
137
+ .brandHomeStatic {
138
+ display: inline-flex;
139
+ align-items: center;
140
+ gap: 8px;
141
+ min-width: 0;
142
+ color: inherit;
143
+ font: inherit;
144
+ letter-spacing: inherit;
145
+ text-transform: inherit;
146
+ font-style: inherit;
147
+ }
148
+
149
+ .brandHomeButton {
150
+ border: 0;
151
+ padding: 0;
152
+ background: transparent;
153
+ cursor: pointer;
154
+ }
155
+
156
+ .brandHomeButton:focus-visible {
157
+ outline: 2px solid var(--field-focus-border, var(--brand-primary));
158
+ outline-offset: 4px;
159
+ border-radius: 4px;
160
+ }
161
+
141
162
  .brandCloudSuffix {
142
163
  color: var(--brand-cloud-accent);
143
164
  letter-spacing: 0.04em;
@@ -462,6 +483,18 @@
462
483
  color: var(--color-success, #10b981);
463
484
  }
464
485
 
486
+ .errorMessage {
487
+ padding: 12px 14px;
488
+ border-radius: var(--radius-md, 12px);
489
+ border: 1px solid rgba(239, 68, 68, 0.28);
490
+ background: rgba(127, 29, 29, 0.18);
491
+ color: #fecaca;
492
+ display: flex;
493
+ align-items: flex-start;
494
+ gap: 8px;
495
+ font-size: 13px;
496
+ }
497
+
465
498
  .successIcon {
466
499
  width: 64px;
467
500
  height: 64px;
@@ -1055,6 +1088,12 @@
1055
1088
  min-height: 0;
1056
1089
  }
1057
1090
 
1091
+ .settingsTabMcpOnly {
1092
+ width: 100%;
1093
+ height: 100%;
1094
+ overflow: visible;
1095
+ }
1096
+
1058
1097
 
1059
1098
  /* Modal Size Classes moved to Modal.module.css */
1060
1099
 
@@ -1079,6 +1118,12 @@
1079
1118
  height: 100%;
1080
1119
  }
1081
1120
 
1121
+ .settingsLayoutMcpOnly {
1122
+ display: block;
1123
+ min-height: 0;
1124
+ height: auto;
1125
+ }
1126
+
1082
1127
  .settingsSidebar {
1083
1128
  display: flex;
1084
1129
  flex-direction: column;
@@ -1235,6 +1280,90 @@
1235
1280
  position: relative;
1236
1281
  }
1237
1282
 
1283
+ .settingsTabMcpOnly .settingsContent {
1284
+ padding: 0;
1285
+ gap: 16px;
1286
+ overflow: visible;
1287
+ }
1288
+
1289
+ .settingsTabMcpOnly .settingsTabs {
1290
+ margin: 0 -12px;
1291
+ padding: 12px 28px 0;
1292
+ background: var(--bg-secondary);
1293
+ box-shadow:
1294
+ 0 -16px 0 16px var(--bg-secondary),
1295
+ 0 10px 18px color-mix(in srgb, var(--bg-secondary) 92%, transparent);
1296
+ }
1297
+
1298
+ .mcpRegistrationHint {
1299
+ display: flex;
1300
+ align-items: center;
1301
+ flex-wrap: wrap;
1302
+ gap: 6px;
1303
+ margin-top: 8px;
1304
+ color: var(--text-secondary);
1305
+ font-size: 12px;
1306
+ line-height: 1.5;
1307
+ }
1308
+
1309
+ .mcpRegistrationPrompt {
1310
+ appearance: none;
1311
+ border: 0;
1312
+ border-radius: var(--radius-sm);
1313
+ background: transparent;
1314
+ color: var(--brand-primary-strong);
1315
+ font: inherit;
1316
+ font-weight: 700;
1317
+ padding: 0 2px;
1318
+ cursor: pointer;
1319
+ }
1320
+
1321
+ .mcpRegistrationPrompt:hover,
1322
+ .mcpRegistrationPrompt:focus-visible {
1323
+ color: var(--text-primary);
1324
+ text-decoration: underline;
1325
+ outline: none;
1326
+ }
1327
+
1328
+ .mcpAuthRequiredCard {
1329
+ display: flex;
1330
+ align-items: flex-start;
1331
+ gap: 14px;
1332
+ padding: 18px;
1333
+ border: 1px solid var(--border-primary);
1334
+ border-radius: var(--radius-md);
1335
+ background:
1336
+ linear-gradient(135deg, color-mix(in srgb, var(--brand-primary) 12%, transparent), transparent 62%),
1337
+ var(--surface-raised);
1338
+ }
1339
+
1340
+ .mcpAuthRequiredIcon {
1341
+ display: inline-flex;
1342
+ align-items: center;
1343
+ justify-content: center;
1344
+ width: 42px;
1345
+ height: 42px;
1346
+ flex: 0 0 42px;
1347
+ border-radius: var(--radius-md);
1348
+ color: var(--brand-primary-strong);
1349
+ background: var(--brand-primary-soft);
1350
+ border: 1px solid color-mix(in srgb, var(--brand-primary) 28%, transparent);
1351
+ }
1352
+
1353
+ .mcpAuthRequiredBody {
1354
+ display: flex;
1355
+ min-width: 0;
1356
+ flex-direction: column;
1357
+ gap: 8px;
1358
+ }
1359
+
1360
+ .mcpAuthRequiredActions {
1361
+ display: flex;
1362
+ flex-wrap: wrap;
1363
+ gap: 8px;
1364
+ margin-top: 4px;
1365
+ }
1366
+
1238
1367
  @media (max-width: 900px) {
1239
1368
  .settingsLayout {
1240
1369
  grid-template-columns: 1fr;
@@ -2883,6 +3012,13 @@
2883
3012
  line-height: 1;
2884
3013
  }
2885
3014
 
3015
+ .taskHierarchySegment {
3016
+ min-width: 0;
3017
+ display: inline-flex;
3018
+ align-items: center;
3019
+ gap: 6px;
3020
+ }
3021
+
2886
3022
  .taskHierarchyMeta {
2887
3023
  display: inline-flex;
2888
3024
  align-items: center;
@@ -2896,7 +3032,7 @@
2896
3032
  line-height: 1.2;
2897
3033
  }
2898
3034
 
2899
- .taskHierarchyAddBtn {
3035
+ .taskHierarchyActionBtn {
2900
3036
  justify-content: center;
2901
3037
  padding-inline: 6px;
2902
3038
  min-width: 24px;
@@ -3923,8 +4059,15 @@
3923
4059
  font-size: inherit;
3924
4060
  }
3925
4061
 
4062
+ .mcpTokenValueInput {
4063
+ font-family: "JetBrains Mono", "Fira Code", monospace;
4064
+ font-size: 13px;
4065
+ }
4066
+
3926
4067
  .mcpTokenActionRow {
3927
4068
  display: flex;
4069
+ gap: 8px;
4070
+ flex-wrap: wrap;
3928
4071
  justify-content: flex-end;
3929
4072
  padding: 8px 16px 14px;
3930
4073
  }
@@ -4659,8 +4802,10 @@
4659
4802
  ============================= */
4660
4803
 
4661
4804
  .docWorkspace {
4805
+ --doc-tray-width: min(332px, calc(100vw - 96px));
4662
4806
  display: flex;
4663
4807
  flex: 1;
4808
+ position: relative;
4664
4809
  min-height: 0;
4665
4810
  overflow: hidden;
4666
4811
  height: 100%;
@@ -4679,6 +4824,47 @@
4679
4824
  overflow: hidden;
4680
4825
  }
4681
4826
 
4827
+ .docWorkspaceTrayMode .docViewerPanel {
4828
+ margin-left: 0;
4829
+ transition: margin-left 220ms cubic-bezier(0.4, 0, 0.2, 1);
4830
+ }
4831
+
4832
+ .docWorkspaceTrayOpen .docViewerPanel {
4833
+ margin-left: var(--doc-tray-width);
4834
+ }
4835
+
4836
+ .docTrayPanel {
4837
+ position: absolute;
4838
+ top: 0;
4839
+ bottom: 0;
4840
+ left: 0;
4841
+ width: var(--doc-tray-width);
4842
+ min-width: 260px;
4843
+ max-width: 332px;
4844
+ display: flex;
4845
+ flex-direction: column;
4846
+ padding: 0 12px;
4847
+ box-sizing: border-box;
4848
+ border-right: 1px solid var(--border-primary);
4849
+ background: var(--bg-secondary);
4850
+ overflow: hidden;
4851
+ transform: translateX(-100%);
4852
+ opacity: 0;
4853
+ visibility: hidden;
4854
+ pointer-events: none;
4855
+ z-index: 34;
4856
+ box-shadow: 4px 0 18px rgba(8, 10, 24, 0.16);
4857
+ transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 160ms ease, visibility 0s linear 220ms;
4858
+ }
4859
+
4860
+ .docTrayPanelOpen {
4861
+ transform: translateX(0);
4862
+ opacity: 1;
4863
+ visibility: visible;
4864
+ pointer-events: auto;
4865
+ transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 160ms ease, visibility 0s linear 0s;
4866
+ }
4867
+
4682
4868
  .docSpinning {
4683
4869
  animation: docSpin 1s linear infinite;
4684
4870
  }
@@ -4713,6 +4899,105 @@
4713
4899
  ============================= */
4714
4900
 
4715
4901
  /* AI Profiles Management */
4902
+ .agentsModuleRoot {
4903
+ --agent-tray-width: min(760px, calc(100vw - 96px));
4904
+ position: relative;
4905
+ flex: 1;
4906
+ min-width: 0;
4907
+ min-height: 0;
4908
+ width: 100%;
4909
+ box-sizing: border-box;
4910
+ overflow: hidden;
4911
+ padding: 20px 24px 22px;
4912
+ }
4913
+
4914
+ .agentsModuleWithTray {
4915
+ transition: padding-left 220ms cubic-bezier(0.4, 0, 0.2, 1);
4916
+ }
4917
+
4918
+ .agentsModuleTrayOpen {
4919
+ padding-left: calc(var(--agent-tray-width) + 20px);
4920
+ }
4921
+
4922
+ .agentTrayPanel {
4923
+ position: absolute;
4924
+ top: 0;
4925
+ bottom: 0;
4926
+ left: 0;
4927
+ width: var(--agent-tray-width);
4928
+ min-width: min(360px, calc(100vw - 96px));
4929
+ max-width: 760px;
4930
+ display: flex;
4931
+ flex-direction: column;
4932
+ box-sizing: border-box;
4933
+ border-right: 1px solid var(--border-primary);
4934
+ background: var(--bg-secondary);
4935
+ overflow: hidden;
4936
+ transform: translateX(-100%);
4937
+ opacity: 0;
4938
+ visibility: hidden;
4939
+ pointer-events: none;
4940
+ z-index: 34;
4941
+ box-shadow: 4px 0 18px rgba(8, 10, 24, 0.16);
4942
+ transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 160ms ease, visibility 0s linear 220ms;
4943
+ }
4944
+
4945
+ .agentTrayPanelOpen {
4946
+ transform: translateX(0);
4947
+ opacity: 1;
4948
+ visibility: visible;
4949
+ pointer-events: auto;
4950
+ transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 160ms ease, visibility 0s linear 0s;
4951
+ }
4952
+
4953
+ .agentTrayHeader {
4954
+ position: sticky;
4955
+ top: 0;
4956
+ z-index: 12;
4957
+ display: flex;
4958
+ align-items: center;
4959
+ justify-content: space-between;
4960
+ gap: 0.75rem;
4961
+ padding: 12px 12px 10px;
4962
+ border-bottom: 1px solid var(--border-default);
4963
+ background: var(--bg-secondary);
4964
+ box-shadow: 0 10px 16px color-mix(in srgb, var(--bg-secondary) 90%, transparent);
4965
+ flex-shrink: 0;
4966
+ }
4967
+
4968
+ .agentTrayTitle {
4969
+ flex: 1;
4970
+ display: flex;
4971
+ align-items: center;
4972
+ gap: 6px;
4973
+ font-size: 0.78rem;
4974
+ font-weight: 700;
4975
+ letter-spacing: 0.06em;
4976
+ text-transform: uppercase;
4977
+ color: var(--text-secondary);
4978
+ }
4979
+
4980
+ .agentTrayContent {
4981
+ flex: 1;
4982
+ min-height: 0;
4983
+ padding: 12px 0 16px;
4984
+ overflow-y: auto;
4985
+ overflow-x: hidden;
4986
+ }
4987
+
4988
+ .agentTrayContentInner {
4989
+ padding: 0 12px;
4990
+ }
4991
+
4992
+ .agentsModuleContent {
4993
+ width: min(100%, 760px);
4994
+ min-height: 0;
4995
+ }
4996
+
4997
+ .agentsModuleGroup {
4998
+ min-height: 0;
4999
+ }
5000
+
4716
5001
  .marginTop24 {
4717
5002
  margin-top: 24px;
4718
5003
  }
@@ -4744,36 +5029,25 @@
4744
5029
 
4745
5030
  .aiProfilesExplorer {
4746
5031
  display: grid;
4747
- grid-template-columns: 360px 360px;
5032
+ grid-template-columns: 360px 620px;
4748
5033
  gap: 16px;
4749
5034
  align-items: start;
4750
5035
  justify-content: start;
5036
+ min-height: 0;
5037
+ width: fit-content;
5038
+ max-width: 100%;
4751
5039
  }
4752
5040
 
4753
5041
  .aiProfilesListPane {
4754
5042
  min-width: 0;
4755
- max-height: min(72vh, 780px);
5043
+ max-height: min(72vh, calc(100vh - 250px));
4756
5044
  overflow-y: auto;
5045
+ overflow-x: hidden;
4757
5046
  overscroll-behavior: contain;
4758
- padding-right: 6px;
5047
+ padding-right: 8px;
4759
5048
  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);
5049
+ --tf-scrollbar-size: 8px;
5050
+ --tf-scrollbar-thumb-border: 1px;
4777
5051
  }
4778
5052
 
4779
5053
  .aiProfilesList {
@@ -4799,30 +5073,34 @@
4799
5073
 
4800
5074
  .aiProfileGroup {
4801
5075
  appearance: none;
4802
- border: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
5076
+ border: 1px solid var(--agent-card-border, var(--border-primary, rgba(255, 255, 255, 0.08)));
4803
5077
  border-radius: 8px;
4804
- padding: 8px 12px;
5078
+ padding: 10px 40px 10px 12px;
4805
5079
  width: 100%;
4806
5080
  text-align: left;
4807
5081
  font: inherit;
4808
5082
  color: inherit;
4809
- background: rgba(255, 255, 255, 0.02);
5083
+ background: var(--agent-card-bg, rgba(255, 255, 255, 0.02));
5084
+ box-shadow: var(--agent-card-shadow, none);
4810
5085
  cursor: pointer;
4811
5086
  box-sizing: border-box;
4812
- transition: border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
5087
+ position: relative;
5088
+ transition: border-color 140ms ease, background 140ms ease, box-shadow 140ms ease, transform 140ms ease;
4813
5089
  }
4814
5090
 
4815
5091
  .aiProfileGroup:hover {
4816
- border-color: rgba(96, 165, 250, 0.3);
4817
- background: rgba(255, 255, 255, 0.04);
5092
+ border-color: var(--agent-card-hover-border, rgba(96, 165, 250, 0.3));
5093
+ background: var(--agent-card-hover-bg, rgba(255, 255, 255, 0.04));
5094
+ transform: translateY(-1px);
4818
5095
  }
4819
5096
 
4820
5097
  .aiProfileGroupSelected {
4821
- border-color: rgba(96, 165, 250, 0.5);
5098
+ border-color: var(--agent-card-selected-border, rgba(96, 165, 250, 0.5));
4822
5099
  background:
4823
- linear-gradient(135deg, rgba(59, 130, 246, 0.14), rgba(14, 165, 233, 0.06)),
4824
- rgba(255, 255, 255, 0.04);
4825
- box-shadow: inset 0 0 0 1px rgba(96, 165, 250, 0.16);
5100
+ linear-gradient(135deg, color-mix(in srgb, var(--brand-primary) 10%, transparent), color-mix(in srgb, var(--status-info, #3b82f6) 4%, transparent)),
5101
+ var(--agent-card-selected-bg, rgba(255, 255, 255, 0.04));
5102
+ box-shadow: var(--agent-card-selected-shadow, inset 0 0 0 1px rgba(96, 165, 250, 0.16));
5103
+ transform: none;
4826
5104
  }
4827
5105
 
4828
5106
  .aiProfileGroupDuplicate {
@@ -4832,35 +5110,94 @@
4832
5110
 
4833
5111
  .aiProfileGroupHeader {
4834
5112
  display: flex;
4835
- align-items: center;
4836
- gap: 8px;
5113
+ align-items: flex-start;
5114
+ gap: 10px;
4837
5115
  font-size: 12px;
4838
5116
  font-weight: 500;
4839
5117
  }
4840
5118
 
4841
- .aiProfileName {
5119
+ .aiProfileGroupAvatar {
5120
+ width: 60px;
5121
+ height: 60px;
5122
+ border-radius: 999px;
5123
+ display: inline-flex;
5124
+ align-items: center;
5125
+ justify-content: center;
5126
+ flex: 0 0 auto;
5127
+ margin-right: 2px;
5128
+ overflow: hidden;
5129
+ background:
5130
+ linear-gradient(180deg, color-mix(in srgb, #fff 8%, transparent), transparent),
5131
+ var(--agent-avatar-bg, rgba(15, 23, 42, 0.42));
5132
+ border: 1px solid var(--agent-avatar-border, rgba(255, 255, 255, 0.1));
5133
+ }
5134
+
5135
+ .aiProfileGroupAvatar img {
5136
+ width: 100%;
5137
+ height: 100%;
5138
+ object-fit: cover;
5139
+ }
5140
+
5141
+ .aiProfileGroupIdentity {
5142
+ min-width: 0;
5143
+ display: flex;
4842
5144
  flex: 1;
5145
+ flex-direction: column;
5146
+ gap: 3px;
5147
+ padding-top: 2px;
5148
+ }
5149
+
5150
+ .aiProfileName {
4843
5151
  color: var(--text-primary, #fff);
5152
+ font-size: 13px;
5153
+ font-weight: 700;
5154
+ line-height: 1.25;
5155
+ overflow-wrap: anywhere;
4844
5156
  }
4845
5157
 
4846
- .aiProfileMetaRow {
4847
- display: flex;
4848
- flex-wrap: wrap;
5158
+ .aiProfileHandle,
5159
+ .aiProfileRole {
5160
+ color: var(--text-muted, #94a3b8);
5161
+ font-size: 12px;
5162
+ line-height: 1.25;
5163
+ overflow-wrap: anywhere;
5164
+ }
5165
+
5166
+ .aiProfileRole {
5167
+ color: var(--text-secondary, #cbd5e1);
5168
+ }
5169
+
5170
+ .aiProfileSeatSummary {
5171
+ display: inline-flex;
4849
5172
  align-items: center;
4850
- gap: 6px;
4851
- margin-top: 4px;
4852
- font-size: 11px;
4853
- color: var(--text-secondary, #9ca3af);
5173
+ margin-bottom: 14px;
5174
+ color: var(--text-secondary, #cbd5e1);
5175
+ font-size: 12px;
5176
+ font-weight: 600;
4854
5177
  }
4855
5178
 
4856
- .aiProfileSurfaceBadge {
5179
+ .aiProfileSeatScopeIcon {
5180
+ position: absolute;
5181
+ top: 10px;
5182
+ right: 10px;
4857
5183
  display: inline-flex;
4858
5184
  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);
5185
+ justify-content: center;
5186
+ line-height: 1;
5187
+ opacity: 0.86;
5188
+ }
5189
+
5190
+ .aiProfileSeatScopeIconDetail {
5191
+ top: 18px;
5192
+ right: 18px;
5193
+ }
5194
+
5195
+ .aiProfileSeatScopeIconCloud {
5196
+ color: color-mix(in srgb, var(--status-info, #60a5fa) 78%, var(--text-secondary, #cbd5e1));
5197
+ }
5198
+
5199
+ .aiProfileSeatScopeIconLocal {
5200
+ color: color-mix(in srgb, var(--brand-primary, #a78bfa) 78%, var(--text-secondary, #cbd5e1));
4864
5201
  }
4865
5202
 
4866
5203
  .aiProfileDuplicateBadge {
@@ -4893,8 +5230,8 @@
4893
5230
  font-family: monospace;
4894
5231
  font-size: 10px;
4895
5232
  color: var(--text-muted, #9ca3af);
4896
- background: rgba(255, 255, 255, 0.04);
4897
- border: 1px solid rgba(255, 255, 255, 0.06);
5233
+ background: var(--surface-inset, rgba(255, 255, 255, 0.04));
5234
+ border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.06));
4898
5235
  border-radius: 6px;
4899
5236
  padding: 3px 7px;
4900
5237
  max-width: 100%;
@@ -4929,13 +5266,15 @@
4929
5266
  }
4930
5267
 
4931
5268
  .aiProfileDetailCard {
5269
+ width: 620px;
4932
5270
  min-width: 0;
4933
- border: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
5271
+ border: 1px solid var(--agent-detail-border, var(--border-primary, rgba(255, 255, 255, 0.08)));
4934
5272
  border-radius: var(--radius-md);
4935
- padding: 18px;
4936
- background: var(--surface-panel);
4937
- box-shadow: var(--box-shadow-md);
5273
+ padding: 16px;
5274
+ background: var(--agent-detail-bg, var(--surface-panel));
5275
+ box-shadow: var(--agent-detail-shadow, var(--box-shadow-md));
4938
5276
  backdrop-filter: blur(10px);
5277
+ position: relative;
4939
5278
  }
4940
5279
 
4941
5280
  .aiProfileDetailHero {
@@ -4952,12 +5291,16 @@
4952
5291
  height: 44px;
4953
5292
  border-radius: 14px;
4954
5293
  background:
4955
- linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.03)),
4956
- rgba(15, 23, 42, 0.36);
4957
- border: 1px solid rgba(255, 255, 255, 0.1);
5294
+ linear-gradient(180deg, color-mix(in srgb, #fff 10%, transparent), transparent),
5295
+ var(--agent-avatar-bg, rgba(15, 23, 42, 0.36));
5296
+ border: 1px solid var(--agent-avatar-border, rgba(255, 255, 255, 0.1));
4958
5297
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
4959
5298
  }
4960
5299
 
5300
+ .aiProfileDetailAvatar {
5301
+ flex: 0 0 auto;
5302
+ }
5303
+
4961
5304
  .aiProfileDetailHeading {
4962
5305
  min-width: 0;
4963
5306
  flex: 1;
@@ -4991,18 +5334,11 @@
4991
5334
  font-size: 12px;
4992
5335
  }
4993
5336
 
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;
5337
+ .aiProfileDetailRole {
5338
+ margin-top: 10px;
5339
+ color: var(--text-primary, #fff);
5340
+ font-size: 13px;
5341
+ line-height: 1.35;
5006
5342
  }
5007
5343
 
5008
5344
  .aiProfileDetailLinkedCount {
@@ -5011,60 +5347,128 @@
5011
5347
  }
5012
5348
 
5013
5349
  .aiProfileDetailDescription {
5014
- margin-top: 15px;
5350
+ margin-top: 8px;
5015
5351
  font-size: 13px;
5016
5352
  line-height: 1.5;
5017
5353
  color: var(--text-secondary, #cbd5e1);
5018
5354
  }
5019
5355
 
5020
- .aiProfileDetailGrid {
5356
+ .aiProfileSignatureColor {
5357
+ display: inline-flex;
5358
+ align-items: center;
5359
+ gap: 7px;
5360
+ margin-top: 10px;
5361
+ color: var(--text-muted, #94a3b8);
5362
+ font-size: 12px;
5363
+ line-height: 1.3;
5364
+ }
5365
+
5366
+ .aiProfileSignatureSwatch {
5367
+ width: 12px;
5368
+ height: 12px;
5369
+ border-radius: 3px;
5370
+ border: 1px solid rgba(255, 255, 255, 0.22);
5371
+ box-shadow:
5372
+ 0 0 0 2px rgba(255, 255, 255, 0.04),
5373
+ 0 2px 6px rgba(0, 0, 0, 0.22);
5374
+ }
5375
+
5376
+ .aiProfileDetailDataList {
5021
5377
  display: grid;
5022
- grid-template-columns: repeat(2, minmax(0, 1fr));
5023
- gap: 12px;
5024
- margin-top: 18px;
5378
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
5379
+ gap: 18px;
5380
+ margin-top: 14px;
5381
+ padding-top: 14px;
5382
+ border-top: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
5025
5383
  }
5026
5384
 
5027
- .aiProfileDetailStat {
5385
+ .aiProfileDetailDataGroup {
5028
5386
  display: flex;
5029
5387
  flex-direction: column;
5030
- gap: 7px;
5388
+ gap: 6px;
5031
5389
  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
5390
  }
5039
5391
 
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);
5392
+ .aiProfileDetailDateGroup {
5393
+ border-left: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
5394
+ padding-left: 18px;
5048
5395
  }
5049
5396
 
5050
- .aiProfileDetailStatValue {
5051
- font-size: 14px;
5397
+ .aiProfileDetailDataRow {
5398
+ display: grid;
5399
+ grid-template-columns: 120px minmax(0, 1fr);
5400
+ gap: 10px;
5401
+ align-items: baseline;
5402
+ font-size: 12px;
5052
5403
  line-height: 1.35;
5404
+ }
5405
+
5406
+ .aiProfileDetailDataLabel {
5407
+ color: var(--text-muted, #94a3b8);
5408
+ font-weight: 700;
5409
+ letter-spacing: 0.06em;
5410
+ text-transform: uppercase;
5411
+ }
5412
+
5413
+ .aiProfileDetailDataValue {
5414
+ min-width: 0;
5415
+ color: var(--text-secondary, #cbd5e1);
5416
+ overflow-wrap: anywhere;
5417
+ }
5418
+
5419
+ .aiProfileStatusSelect {
5420
+ display: block;
5421
+ width: 100%;
5422
+ max-width: 100%;
5423
+ appearance: none;
5424
+ border: 0;
5425
+ border-radius: 4px;
5426
+ background: transparent;
5427
+ color: var(--text-secondary, #cbd5e1);
5428
+ font: inherit;
5429
+ font-size: 12px;
5430
+ font-weight: 600;
5431
+ line-height: 1.2;
5432
+ padding: 2px 16px 2px 0;
5433
+ cursor: pointer;
5434
+ background-image:
5435
+ linear-gradient(45deg, transparent 50%, currentColor 50%),
5436
+ linear-gradient(135deg, currentColor 50%, transparent 50%);
5437
+ background-position:
5438
+ calc(100% - 7px) 50%,
5439
+ calc(100% - 3px) 50%;
5440
+ background-size: 4px 4px, 4px 4px;
5441
+ background-repeat: no-repeat;
5442
+ }
5443
+
5444
+ .aiProfileStatusSelect:hover {
5053
5445
  color: var(--text-primary, #fff);
5054
- word-break: break-word;
5446
+ text-decoration: underline;
5447
+ text-underline-offset: 3px;
5448
+ }
5449
+
5450
+ .aiProfileStatusSelect:disabled {
5451
+ cursor: wait;
5452
+ opacity: 0.62;
5453
+ text-decoration: none;
5454
+ }
5455
+
5456
+ .aiProfileStatusSelect:focus-visible {
5457
+ outline: 2px solid rgba(96, 165, 250, 0.55);
5458
+ outline-offset: 2px;
5055
5459
  }
5056
5460
 
5057
5461
  .aiProfileInstanceSection {
5058
- margin-top: 18px;
5059
- padding-top: 16px;
5462
+ margin-top: 14px;
5463
+ padding-top: 12px;
5060
5464
  border-top: 1px solid rgba(255, 255, 255, 0.08);
5061
5465
  }
5062
5466
 
5063
5467
  .aiProfileInstanceSectionHeader {
5064
5468
  display: flex;
5065
5469
  flex-direction: column;
5066
- gap: 4px;
5067
- margin-bottom: 10px;
5470
+ gap: 3px;
5471
+ margin-bottom: 8px;
5068
5472
  color: var(--text-primary, #fff);
5069
5473
  font-size: 13px;
5070
5474
  font-weight: 600;
@@ -5079,13 +5483,66 @@
5079
5483
  .aiProfileInstanceCard {
5080
5484
  border: 1px solid rgba(255, 255, 255, 0.08);
5081
5485
  border-radius: 12px;
5082
- padding: 11px 12px;
5486
+ padding: 9px 11px;
5083
5487
  background:
5084
5488
  linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)),
5085
5489
  rgba(15, 23, 42, 0.2);
5086
5490
  display: flex;
5087
5491
  flex-direction: column;
5088
- gap: 9px;
5492
+ gap: 7px;
5493
+ position: relative;
5494
+ }
5495
+
5496
+ .aiProfileIdFooter {
5497
+ display: flex;
5498
+ flex-direction: column;
5499
+ align-items: center;
5500
+ gap: 8px;
5501
+ margin-top: 14px;
5502
+ padding-top: 12px;
5503
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
5504
+ }
5505
+
5506
+ .aiProfileIdFooterValue {
5507
+ max-width: 100%;
5508
+ color: var(--text-muted, #94a3b8);
5509
+ font-family: monospace;
5510
+ font-size: 11px;
5511
+ line-height: 1.35;
5512
+ text-align: center;
5513
+ overflow-wrap: anywhere;
5514
+ }
5515
+
5516
+ .aiProfileDangerTextButton {
5517
+ align-self: flex-end;
5518
+ border: 0;
5519
+ background: transparent;
5520
+ color: var(--text-muted, #94a3b8);
5521
+ font-size: 12px;
5522
+ font-weight: 600;
5523
+ line-height: 1.3;
5524
+ padding: 2px 0;
5525
+ cursor: pointer;
5526
+ transition: color var(--transition-base), text-decoration-color var(--transition-base);
5527
+ }
5528
+
5529
+ .aiProfileDangerTextButton:hover:not(:disabled),
5530
+ .aiProfileDangerTextButton:focus-visible {
5531
+ color: #f87171;
5532
+ text-decoration: underline;
5533
+ text-decoration-color: currentColor;
5534
+ text-underline-offset: 3px;
5535
+ }
5536
+
5537
+ .aiProfileDangerTextButton:focus-visible {
5538
+ outline: 2px solid rgba(248, 113, 113, 0.55);
5539
+ outline-offset: 3px;
5540
+ border-radius: 4px;
5541
+ }
5542
+
5543
+ .aiProfileDangerTextButton:disabled {
5544
+ cursor: not-allowed;
5545
+ opacity: 0.55;
5089
5546
  }
5090
5547
 
5091
5548
  .aiProfileInstanceTopRow {
@@ -5110,9 +5567,31 @@
5110
5567
  color: var(--text-secondary, #94a3b8);
5111
5568
  }
5112
5569
 
5570
+ .aiProfileInlineError {
5571
+ display: flex;
5572
+ align-items: flex-start;
5573
+ gap: 6px;
5574
+ border: 1px solid rgba(239, 68, 68, 0.2);
5575
+ background: rgba(127, 29, 29, 0.14);
5576
+ color: #fecaca;
5577
+ border-radius: 10px;
5578
+ padding: 8px 10px;
5579
+ font-size: 12px;
5580
+ line-height: 1.4;
5581
+ }
5582
+
5113
5583
  @media (max-width: 1100px) {
5584
+ .agentsModuleRoot {
5585
+ padding: 20px;
5586
+ }
5587
+
5588
+ .agentsModuleContent {
5589
+ width: 100%;
5590
+ }
5591
+
5114
5592
  .aiProfilesExplorer {
5115
5593
  grid-template-columns: minmax(0, 1fr);
5594
+ width: 100%;
5116
5595
  }
5117
5596
 
5118
5597
  .aiProfilesListPane {
@@ -5123,10 +5602,27 @@
5123
5602
  .aiProfileDetailPane {
5124
5603
  position: static;
5125
5604
  }
5605
+
5606
+ .aiProfileDetailCard {
5607
+ width: auto;
5608
+ }
5126
5609
  }
5127
5610
 
5128
5611
  @media (max-width: 640px) {
5129
- .aiProfileDetailGrid {
5612
+ .aiProfileDetailDataList {
5130
5613
  grid-template-columns: 1fr;
5131
5614
  }
5615
+
5616
+ .aiProfileDetailDateGroup {
5617
+ border-left: 0;
5618
+ border-top: 1px solid var(--border-primary, rgba(255, 255, 255, 0.08));
5619
+ padding-left: 0;
5620
+ padding-top: 12px;
5621
+ }
5622
+
5623
+ .aiProfileDetailDataRow {
5624
+ grid-template-columns: 1fr;
5625
+ gap: 2px;
5626
+ }
5627
+
5132
5628
  }