@xenosystem/agent-interface-ui 0.1.25 → 0.1.26

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 (380) hide show
  1. package/dist/adapters/agentHostPlatformBridge.d.ts.map +1 -1
  2. package/dist/adapters/agentHostPlatformBridge.js +96 -16
  3. package/dist/adapters/agentHostPlatformBridge.js.map +1 -1
  4. package/dist/adapters/hubAgentPlatformBridge.d.ts.map +1 -1
  5. package/dist/adapters/hubAgentPlatformBridge.js +2 -0
  6. package/dist/adapters/hubAgentPlatformBridge.js.map +1 -1
  7. package/dist/adapters/scopedBackupBridge.d.ts +4 -0
  8. package/dist/adapters/scopedBackupBridge.d.ts.map +1 -0
  9. package/dist/adapters/scopedBackupBridge.js +49 -0
  10. package/dist/adapters/scopedBackupBridge.js.map +1 -0
  11. package/dist/adapters/xenoAgentCompatibilityBridge.d.ts.map +1 -1
  12. package/dist/adapters/xenoAgentCompatibilityBridge.js +9 -1
  13. package/dist/adapters/xenoAgentCompatibilityBridge.js.map +1 -1
  14. package/dist/agent.css +13227 -0
  15. package/dist/components/agent/AgentIdentityGenerator.d.ts +16 -0
  16. package/dist/components/agent/AgentIdentityGenerator.d.ts.map +1 -0
  17. package/dist/components/agent/AgentIdentityGenerator.js +80 -0
  18. package/dist/components/agent/AgentIdentityGenerator.js.map +1 -0
  19. package/dist/components/agent/AgentInterface.d.ts +1 -0
  20. package/dist/components/agent/AgentInterface.d.ts.map +1 -1
  21. package/dist/components/agent/AgentInterface.js +1816 -643
  22. package/dist/components/agent/AgentInterface.js.map +1 -1
  23. package/dist/components/agent/AgentNotificationBanner.d.ts +10 -0
  24. package/dist/components/agent/AgentNotificationBanner.d.ts.map +1 -0
  25. package/dist/components/agent/AgentNotificationBanner.js +28 -0
  26. package/dist/components/agent/AgentNotificationBanner.js.map +1 -0
  27. package/dist/components/agent/AgentOnboarding.d.ts +16 -2
  28. package/dist/components/agent/AgentOnboarding.d.ts.map +1 -1
  29. package/dist/components/agent/AgentOnboarding.js +93 -201
  30. package/dist/components/agent/AgentOnboarding.js.map +1 -1
  31. package/dist/components/agent/AgentView.d.ts.map +1 -1
  32. package/dist/components/agent/AgentView.js +533 -308
  33. package/dist/components/agent/AgentView.js.map +1 -1
  34. package/dist/components/agent/AgentWorkbenchPanel.d.ts +3 -1
  35. package/dist/components/agent/AgentWorkbenchPanel.d.ts.map +1 -1
  36. package/dist/components/agent/AgentWorkbenchPanel.js +3 -2
  37. package/dist/components/agent/AgentWorkbenchPanel.js.map +1 -1
  38. package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts +4 -1
  39. package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts.map +1 -1
  40. package/dist/components/agent/AgentWorkspaceBrowserPanel.js +23 -195
  41. package/dist/components/agent/AgentWorkspaceBrowserPanel.js.map +1 -1
  42. package/dist/components/agent/AgentsWorkspaceView.d.ts +12 -0
  43. package/dist/components/agent/AgentsWorkspaceView.d.ts.map +1 -0
  44. package/dist/components/agent/AgentsWorkspaceView.js +129 -0
  45. package/dist/components/agent/AgentsWorkspaceView.js.map +1 -0
  46. package/dist/components/agent/DevelopmentCoordinationPanel.d.ts +7 -0
  47. package/dist/components/agent/DevelopmentCoordinationPanel.d.ts.map +1 -1
  48. package/dist/components/agent/DevelopmentCoordinationPanel.js +57 -49
  49. package/dist/components/agent/DevelopmentCoordinationPanel.js.map +1 -1
  50. package/dist/components/agent/KnowledgePanel.d.ts.map +1 -1
  51. package/dist/components/agent/KnowledgePanel.js +17 -67
  52. package/dist/components/agent/KnowledgePanel.js.map +1 -1
  53. package/dist/components/agent/LiveConversationCollaboration.d.ts +27 -0
  54. package/dist/components/agent/LiveConversationCollaboration.d.ts.map +1 -0
  55. package/dist/components/agent/LiveConversationCollaboration.js +127 -0
  56. package/dist/components/agent/LiveConversationCollaboration.js.map +1 -0
  57. package/dist/components/agent/MonacoDiffWorkbenchEditor.d.ts.map +1 -1
  58. package/dist/components/agent/MonacoDiffWorkbenchEditor.js +1 -1
  59. package/dist/components/agent/MonacoDiffWorkbenchEditor.js.map +1 -1
  60. package/dist/components/agent/MonacoWorkbenchEditor.d.ts.map +1 -1
  61. package/dist/components/agent/MonacoWorkbenchEditor.js +3 -3
  62. package/dist/components/agent/MonacoWorkbenchEditor.js.map +1 -1
  63. package/dist/components/agent/OwnedBrowserController.d.ts +55 -0
  64. package/dist/components/agent/OwnedBrowserController.d.ts.map +1 -0
  65. package/dist/components/agent/OwnedBrowserController.js +166 -0
  66. package/dist/components/agent/OwnedBrowserController.js.map +1 -0
  67. package/dist/components/agent/OwnedWorkforceView.d.ts +10 -0
  68. package/dist/components/agent/OwnedWorkforceView.d.ts.map +1 -0
  69. package/dist/components/agent/OwnedWorkforceView.js +256 -0
  70. package/dist/components/agent/OwnedWorkforceView.js.map +1 -0
  71. package/dist/components/agent/PluginManager.d.ts +34 -0
  72. package/dist/components/agent/PluginManager.d.ts.map +1 -1
  73. package/dist/components/agent/PluginManager.js +187 -126
  74. package/dist/components/agent/PluginManager.js.map +1 -1
  75. package/dist/components/agent/ProjectsWorkspaceView.d.ts +14 -0
  76. package/dist/components/agent/ProjectsWorkspaceView.d.ts.map +1 -0
  77. package/dist/components/agent/ProjectsWorkspaceView.js +176 -0
  78. package/dist/components/agent/ProjectsWorkspaceView.js.map +1 -0
  79. package/dist/components/agent/RunReviewPanel.d.ts +8 -13
  80. package/dist/components/agent/RunReviewPanel.d.ts.map +1 -1
  81. package/dist/components/agent/RunReviewPanel.js +120 -106
  82. package/dist/components/agent/RunReviewPanel.js.map +1 -1
  83. package/dist/components/agent/ScheduledWorkspaceView.d.ts +19 -0
  84. package/dist/components/agent/ScheduledWorkspaceView.d.ts.map +1 -0
  85. package/dist/components/agent/ScheduledWorkspaceView.js +150 -0
  86. package/dist/components/agent/ScheduledWorkspaceView.js.map +1 -0
  87. package/dist/components/agent/SdkSessionPanel.d.ts +25 -0
  88. package/dist/components/agent/SdkSessionPanel.d.ts.map +1 -0
  89. package/dist/components/agent/SdkSessionPanel.js +15 -0
  90. package/dist/components/agent/SdkSessionPanel.js.map +1 -0
  91. package/dist/components/agent/SlashCommandAutocomplete.d.ts +12 -0
  92. package/dist/components/agent/SlashCommandAutocomplete.d.ts.map +1 -0
  93. package/dist/components/agent/SlashCommandAutocomplete.js +33 -0
  94. package/dist/components/agent/SlashCommandAutocomplete.js.map +1 -0
  95. package/dist/components/agent/TeamsWorkspaceView.d.ts +12 -0
  96. package/dist/components/agent/TeamsWorkspaceView.d.ts.map +1 -0
  97. package/dist/components/agent/TeamsWorkspaceView.js +127 -0
  98. package/dist/components/agent/TeamsWorkspaceView.js.map +1 -0
  99. package/dist/components/agent/WorkspacePersistenceNotice.d.ts +3 -0
  100. package/dist/components/agent/WorkspacePersistenceNotice.d.ts.map +1 -0
  101. package/dist/components/agent/WorkspacePersistenceNotice.js +23 -0
  102. package/dist/components/agent/WorkspacePersistenceNotice.js.map +1 -0
  103. package/dist/components/agent/acp/AcpAgentConfigForm.d.ts +1 -0
  104. package/dist/components/agent/acp/AcpAgentConfigForm.d.ts.map +1 -1
  105. package/dist/components/agent/acp/AcpAgentConfigForm.js +47 -14
  106. package/dist/components/agent/acp/AcpAgentConfigForm.js.map +1 -1
  107. package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js +1 -1
  108. package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js.map +1 -1
  109. package/dist/components/agent/acp/AcpAgentManager.d.ts.map +1 -1
  110. package/dist/components/agent/acp/AcpAgentManager.js +18 -18
  111. package/dist/components/agent/acp/AcpAgentManager.js.map +1 -1
  112. package/dist/components/agent/acp/AcpAgentTestResultPanel.js +1 -1
  113. package/dist/components/agent/acp/AcpAgentTestResultPanel.js.map +1 -1
  114. package/dist/components/agent/acp/AcpApprovalPanel.js +2 -2
  115. package/dist/components/agent/acp/AcpApprovalPanel.js.map +1 -1
  116. package/dist/components/agent/acp/AcpCertificationPanel.js +1 -1
  117. package/dist/components/agent/acp/AcpCertificationPanel.js.map +1 -1
  118. package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js +1 -1
  119. package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js.map +1 -1
  120. package/dist/components/agent/acp/AcpProviderManagerPanel.js +1 -1
  121. package/dist/components/agent/acp/AcpProviderManagerPanel.js.map +1 -1
  122. package/dist/components/agent/acp/AcpProviderModelsPanel.js +1 -1
  123. package/dist/components/agent/acp/AcpProviderModelsPanel.js.map +1 -1
  124. package/dist/components/agent/acp/AcpSupportBundlePanel.js +1 -1
  125. package/dist/components/agent/acp/AcpSupportBundlePanel.js.map +1 -1
  126. package/dist/components/agent/collaborationWindow.d.ts +11 -0
  127. package/dist/components/agent/collaborationWindow.d.ts.map +1 -0
  128. package/dist/components/agent/collaborationWindow.js +10 -0
  129. package/dist/components/agent/collaborationWindow.js.map +1 -0
  130. package/dist/components/agent/conversationCollaborationAppendJournal.d.ts +25 -0
  131. package/dist/components/agent/conversationCollaborationAppendJournal.d.ts.map +1 -0
  132. package/dist/components/agent/conversationCollaborationAppendJournal.js +118 -0
  133. package/dist/components/agent/conversationCollaborationAppendJournal.js.map +1 -0
  134. package/dist/components/agent/conversationCollaborationController.d.ts +96 -0
  135. package/dist/components/agent/conversationCollaborationController.d.ts.map +1 -0
  136. package/dist/components/agent/conversationCollaborationController.js +597 -0
  137. package/dist/components/agent/conversationCollaborationController.js.map +1 -0
  138. package/dist/components/agent/destructiveConfirmation.d.ts +76 -0
  139. package/dist/components/agent/destructiveConfirmation.d.ts.map +1 -0
  140. package/dist/components/agent/destructiveConfirmation.js +231 -0
  141. package/dist/components/agent/destructiveConfirmation.js.map +1 -0
  142. package/dist/components/agent/developmentCoordinationController.d.ts +43 -0
  143. package/dist/components/agent/developmentCoordinationController.d.ts.map +1 -0
  144. package/dist/components/agent/developmentCoordinationController.js +94 -0
  145. package/dist/components/agent/developmentCoordinationController.js.map +1 -0
  146. package/dist/components/agent/developmentCoordinationProjection.d.ts +24 -0
  147. package/dist/components/agent/developmentCoordinationProjection.d.ts.map +1 -1
  148. package/dist/components/agent/developmentCoordinationProjection.js +34 -5
  149. package/dist/components/agent/developmentCoordinationProjection.js.map +1 -1
  150. package/dist/components/agent/editorOperationAuthority.d.ts +29 -0
  151. package/dist/components/agent/editorOperationAuthority.d.ts.map +1 -0
  152. package/dist/components/agent/editorOperationAuthority.js +73 -0
  153. package/dist/components/agent/editorOperationAuthority.js.map +1 -0
  154. package/dist/components/agent/knowledgePagination.d.ts +7 -0
  155. package/dist/components/agent/knowledgePagination.d.ts.map +1 -0
  156. package/dist/components/agent/knowledgePagination.js +7 -0
  157. package/dist/components/agent/knowledgePagination.js.map +1 -0
  158. package/dist/components/agent/knowledgePanelController.d.ts +32 -0
  159. package/dist/components/agent/knowledgePanelController.d.ts.map +1 -0
  160. package/dist/components/agent/knowledgePanelController.js +119 -0
  161. package/dist/components/agent/knowledgePanelController.js.map +1 -0
  162. package/dist/components/agent/monacoWorkbenchShared.js +1 -1
  163. package/dist/components/agent/onboardingModels.d.ts +31 -0
  164. package/dist/components/agent/onboardingModels.d.ts.map +1 -0
  165. package/dist/components/agent/onboardingModels.js +107 -0
  166. package/dist/components/agent/onboardingModels.js.map +1 -0
  167. package/dist/components/agent/personalConversationScope.d.ts +26 -0
  168. package/dist/components/agent/personalConversationScope.d.ts.map +1 -0
  169. package/dist/components/agent/personalConversationScope.js +43 -0
  170. package/dist/components/agent/personalConversationScope.js.map +1 -0
  171. package/dist/components/agent/reviewRequestScope.d.ts +16 -0
  172. package/dist/components/agent/reviewRequestScope.d.ts.map +1 -0
  173. package/dist/components/agent/reviewRequestScope.js +101 -0
  174. package/dist/components/agent/reviewRequestScope.js.map +1 -0
  175. package/dist/components/agent/scheduleCreationAttempt.d.ts +12 -0
  176. package/dist/components/agent/scheduleCreationAttempt.d.ts.map +1 -0
  177. package/dist/components/agent/scheduleCreationAttempt.js +30 -0
  178. package/dist/components/agent/scheduleCreationAttempt.js.map +1 -0
  179. package/dist/components/agent/settings/EntitySettingsLayout.d.ts +1 -1
  180. package/dist/components/agent/settings/EntitySettingsLayout.d.ts.map +1 -1
  181. package/dist/components/agent/settings/EntitySettingsLayout.js +64 -44
  182. package/dist/components/agent/settings/EntitySettingsLayout.js.map +1 -1
  183. package/dist/components/agent/settings/SettingsNavigation.d.ts.map +1 -1
  184. package/dist/components/agent/settings/SettingsNavigation.js +17 -17
  185. package/dist/components/agent/settings/SettingsNavigation.js.map +1 -1
  186. package/dist/components/agent/settings/entityArchiveState.d.ts +24 -0
  187. package/dist/components/agent/settings/entityArchiveState.d.ts.map +1 -0
  188. package/dist/components/agent/settings/entityArchiveState.js +12 -0
  189. package/dist/components/agent/settings/entityArchiveState.js.map +1 -0
  190. package/dist/components/agent/settings/sections/AccessMembersSection.d.ts.map +1 -1
  191. package/dist/components/agent/settings/sections/AccessMembersSection.js +10 -25
  192. package/dist/components/agent/settings/sections/AccessMembersSection.js.map +1 -1
  193. package/dist/components/agent/settings/sections/AccountWorkspacePanel.d.ts +16 -0
  194. package/dist/components/agent/settings/sections/AccountWorkspacePanel.d.ts.map +1 -0
  195. package/dist/components/agent/settings/sections/AccountWorkspacePanel.js +265 -0
  196. package/dist/components/agent/settings/sections/AccountWorkspacePanel.js.map +1 -0
  197. package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.d.ts.map +1 -1
  198. package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js +47 -32
  199. package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js.map +1 -1
  200. package/dist/components/agent/settings/sections/DangerZoneSection.d.ts.map +1 -1
  201. package/dist/components/agent/settings/sections/DangerZoneSection.js +30 -6
  202. package/dist/components/agent/settings/sections/DangerZoneSection.js.map +1 -1
  203. package/dist/components/agent/settings/sections/DefaultAgentConfigSection.d.ts.map +1 -1
  204. package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js +47 -37
  205. package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js.map +1 -1
  206. package/dist/components/agent/settings/sections/EnvironmentSecretsSection.d.ts.map +1 -1
  207. package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js +30 -43
  208. package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js.map +1 -1
  209. package/dist/components/agent/settings/sections/ExportBackupSection.d.ts +3 -1
  210. package/dist/components/agent/settings/sections/ExportBackupSection.d.ts.map +1 -1
  211. package/dist/components/agent/settings/sections/ExportBackupSection.js +14 -12
  212. package/dist/components/agent/settings/sections/ExportBackupSection.js.map +1 -1
  213. package/dist/components/agent/settings/sections/GeneralSection.d.ts.map +1 -1
  214. package/dist/components/agent/settings/sections/GeneralSection.js +47 -4
  215. package/dist/components/agent/settings/sections/GeneralSection.js.map +1 -1
  216. package/dist/components/agent/settings/sections/IntegrationsSection.d.ts.map +1 -1
  217. package/dist/components/agent/settings/sections/IntegrationsSection.js +14 -21
  218. package/dist/components/agent/settings/sections/IntegrationsSection.js.map +1 -1
  219. package/dist/components/agent/settings/sections/NotificationsSection.d.ts.map +1 -1
  220. package/dist/components/agent/settings/sections/NotificationsSection.js +125 -20
  221. package/dist/components/agent/settings/sections/NotificationsSection.js.map +1 -1
  222. package/dist/components/agent/settings/sections/ResourceLimitsSection.d.ts.map +1 -1
  223. package/dist/components/agent/settings/sections/ResourceLimitsSection.js +7 -7
  224. package/dist/components/agent/settings/sections/ResourceLimitsSection.js.map +1 -1
  225. package/dist/components/agent/settings/sections/SecurityComplianceSection.d.ts.map +1 -1
  226. package/dist/components/agent/settings/sections/SecurityComplianceSection.js +5 -4
  227. package/dist/components/agent/settings/sections/SecurityComplianceSection.js.map +1 -1
  228. package/dist/components/agent/settings/sections/UsageAnalyticsSection.d.ts.map +1 -1
  229. package/dist/components/agent/settings/sections/UsageAnalyticsSection.js +2 -3
  230. package/dist/components/agent/settings/sections/UsageAnalyticsSection.js.map +1 -1
  231. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.d.ts.map +1 -1
  232. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js +39 -26
  233. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js.map +1 -1
  234. package/dist/components/agent/settings/sections/WorkspaceKeysPanel.d.ts +6 -0
  235. package/dist/components/agent/settings/sections/WorkspaceKeysPanel.d.ts.map +1 -0
  236. package/dist/components/agent/settings/sections/WorkspaceKeysPanel.js +205 -0
  237. package/dist/components/agent/settings/sections/WorkspaceKeysPanel.js.map +1 -0
  238. package/dist/components/agent/settings/sections/environmentDraftAction.d.ts +3 -0
  239. package/dist/components/agent/settings/sections/environmentDraftAction.d.ts.map +1 -0
  240. package/dist/components/agent/settings/sections/environmentDraftAction.js +6 -0
  241. package/dist/components/agent/settings/sections/environmentDraftAction.js.map +1 -0
  242. package/dist/components/agent/settings/sections/membershipOperationProjection.d.ts +3 -0
  243. package/dist/components/agent/settings/sections/membershipOperationProjection.d.ts.map +1 -0
  244. package/dist/components/agent/settings/sections/membershipOperationProjection.js +9 -0
  245. package/dist/components/agent/settings/sections/membershipOperationProjection.js.map +1 -0
  246. package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.d.ts +6 -0
  247. package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.d.ts.map +1 -0
  248. package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.js +8 -0
  249. package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.js.map +1 -0
  250. package/dist/components/agent/settings/shared/InAppConfirmationDialog.d.ts +25 -0
  251. package/dist/components/agent/settings/shared/InAppConfirmationDialog.d.ts.map +1 -0
  252. package/dist/components/agent/settings/shared/InAppConfirmationDialog.js +89 -0
  253. package/dist/components/agent/settings/shared/InAppConfirmationDialog.js.map +1 -0
  254. package/dist/components/agent/settings/shared/InputField.d.ts +1 -1
  255. package/dist/components/agent/settings/shared/InputField.d.ts.map +1 -1
  256. package/dist/components/agent/settings/shared/InputField.js +4 -3
  257. package/dist/components/agent/settings/shared/InputField.js.map +1 -1
  258. package/dist/components/agent/settings/shared/MembersTable.d.ts +3 -3
  259. package/dist/components/agent/settings/shared/MembersTable.d.ts.map +1 -1
  260. package/dist/components/agent/settings/shared/MembersTable.js +1 -1
  261. package/dist/components/agent/settings/shared/MembersTable.js.map +1 -1
  262. package/dist/components/agent/settings/shared/ScopedAuditPanel.d.ts +5 -0
  263. package/dist/components/agent/settings/shared/ScopedAuditPanel.d.ts.map +1 -0
  264. package/dist/components/agent/settings/shared/ScopedAuditPanel.js +70 -0
  265. package/dist/components/agent/settings/shared/ScopedAuditPanel.js.map +1 -0
  266. package/dist/components/agent/settings/shared/SettingsCard.d.ts +2 -1
  267. package/dist/components/agent/settings/shared/SettingsCard.d.ts.map +1 -1
  268. package/dist/components/agent/settings/shared/SettingsCard.js +2 -2
  269. package/dist/components/agent/settings/shared/SettingsCard.js.map +1 -1
  270. package/dist/components/agent/settings/shared/ToggleSwitch.d.ts.map +1 -1
  271. package/dist/components/agent/settings/shared/ToggleSwitch.js +1 -1
  272. package/dist/components/agent/settings/shared/ToggleSwitch.js.map +1 -1
  273. package/dist/components/agent/settings/shared/UsageChart.d.ts +10 -0
  274. package/dist/components/agent/settings/shared/UsageChart.d.ts.map +1 -1
  275. package/dist/components/agent/settings/shared/UsageChart.js +16 -10
  276. package/dist/components/agent/settings/shared/UsageChart.js.map +1 -1
  277. package/dist/components/agent/settings/shared/WorkspaceRulesControl.d.ts +8 -0
  278. package/dist/components/agent/settings/shared/WorkspaceRulesControl.d.ts.map +1 -0
  279. package/dist/components/agent/settings/shared/WorkspaceRulesControl.js +26 -0
  280. package/dist/components/agent/settings/shared/WorkspaceRulesControl.js.map +1 -0
  281. package/dist/components/agent/settings/shared/useScopedConfirmation.d.ts +8 -0
  282. package/dist/components/agent/settings/shared/useScopedConfirmation.d.ts.map +1 -0
  283. package/dist/components/agent/settings/shared/useScopedConfirmation.js +53 -0
  284. package/dist/components/agent/settings/shared/useScopedConfirmation.js.map +1 -0
  285. package/dist/components/agent/settings/shared/useSettingsConfirmation.d.ts +8 -0
  286. package/dist/components/agent/settings/shared/useSettingsConfirmation.d.ts.map +1 -0
  287. package/dist/components/agent/settings/shared/useSettingsConfirmation.js +51 -0
  288. package/dist/components/agent/settings/shared/useSettingsConfirmation.js.map +1 -0
  289. package/dist/components/agent/settings/shared/workspaceRulesController.d.ts +28 -0
  290. package/dist/components/agent/settings/shared/workspaceRulesController.d.ts.map +1 -0
  291. package/dist/components/agent/settings/shared/workspaceRulesController.js +82 -0
  292. package/dist/components/agent/settings/shared/workspaceRulesController.js.map +1 -0
  293. package/dist/components/agent/sidebarEntityPins.d.ts +11 -0
  294. package/dist/components/agent/sidebarEntityPins.d.ts.map +1 -0
  295. package/dist/components/agent/sidebarEntityPins.js +37 -0
  296. package/dist/components/agent/sidebarEntityPins.js.map +1 -0
  297. package/dist/components/agent/workspaceHierarchy.d.ts +24 -0
  298. package/dist/components/agent/workspaceHierarchy.d.ts.map +1 -0
  299. package/dist/components/agent/workspaceHierarchy.js +50 -0
  300. package/dist/components/agent/workspaceHierarchy.js.map +1 -0
  301. package/dist/components/product/XenoAgentProductHeader.d.ts +4 -2
  302. package/dist/components/product/XenoAgentProductHeader.d.ts.map +1 -1
  303. package/dist/components/product/XenoAgentProductHeader.js +22 -4
  304. package/dist/components/product/XenoAgentProductHeader.js.map +1 -1
  305. package/dist/components/product/XenoAgentSessionTabs.js +1 -1
  306. package/dist/components/product/XenoAgentSessionTabs.js.map +1 -1
  307. package/dist/components/product/XenoAgentWorkspaceSelector.d.ts +7 -0
  308. package/dist/components/product/XenoAgentWorkspaceSelector.d.ts.map +1 -0
  309. package/dist/components/product/XenoAgentWorkspaceSelector.js +237 -0
  310. package/dist/components/product/XenoAgentWorkspaceSelector.js.map +1 -0
  311. package/dist/components/workspace/WorkspaceCreationWizard.d.ts +6 -0
  312. package/dist/components/workspace/WorkspaceCreationWizard.d.ts.map +1 -0
  313. package/dist/components/workspace/WorkspaceCreationWizard.js +48 -0
  314. package/dist/components/workspace/WorkspaceCreationWizard.js.map +1 -0
  315. package/dist/hooks/useSidebarLayoutPreference.d.ts +29 -0
  316. package/dist/hooks/useSidebarLayoutPreference.d.ts.map +1 -0
  317. package/dist/hooks/useSidebarLayoutPreference.js +83 -0
  318. package/dist/hooks/useSidebarLayoutPreference.js.map +1 -0
  319. package/dist/hooks/useWorkspaceCreation.d.ts +8 -0
  320. package/dist/hooks/useWorkspaceCreation.d.ts.map +1 -0
  321. package/dist/hooks/useWorkspaceCreation.js +40 -0
  322. package/dist/hooks/useWorkspaceCreation.js.map +1 -0
  323. package/dist/index.d.ts +3 -0
  324. package/dist/index.d.ts.map +1 -1
  325. package/dist/index.js +3 -0
  326. package/dist/index.js.map +1 -1
  327. package/dist/platformApiTypes.d.ts +77 -36
  328. package/dist/platformApiTypes.d.ts.map +1 -1
  329. package/dist/platformBridge.d.ts +4 -0
  330. package/dist/platformBridge.d.ts.map +1 -1
  331. package/dist/platformBridge.js +10 -0
  332. package/dist/platformBridge.js.map +1 -1
  333. package/dist/stores/agentChatStore.d.ts +120 -2
  334. package/dist/stores/agentChatStore.d.ts.map +1 -1
  335. package/dist/stores/agentChatStore.js +329 -35
  336. package/dist/stores/agentChatStore.js.map +1 -1
  337. package/dist/stores/agentCreationDefaults.d.ts +25 -0
  338. package/dist/stores/agentCreationDefaults.d.ts.map +1 -0
  339. package/dist/stores/agentCreationDefaults.js +11 -0
  340. package/dist/stores/agentCreationDefaults.js.map +1 -0
  341. package/dist/stores/entitySettingsStore.d.ts +37 -12
  342. package/dist/stores/entitySettingsStore.d.ts.map +1 -1
  343. package/dist/stores/entitySettingsStore.js +558 -585
  344. package/dist/stores/entitySettingsStore.js.map +1 -1
  345. package/dist/stores/suggestionStore.d.ts +9 -2
  346. package/dist/stores/suggestionStore.d.ts.map +1 -1
  347. package/dist/stores/suggestionStore.js +51 -24
  348. package/dist/stores/suggestionStore.js.map +1 -1
  349. package/dist/stores/workspaceCreationAttempt.d.ts +14 -0
  350. package/dist/stores/workspaceCreationAttempt.d.ts.map +1 -0
  351. package/dist/stores/workspaceCreationAttempt.js +35 -0
  352. package/dist/stores/workspaceCreationAttempt.js.map +1 -0
  353. package/dist/stores/workspaceReconciliation.d.ts +6 -0
  354. package/dist/stores/workspaceReconciliation.d.ts.map +1 -0
  355. package/dist/stores/workspaceReconciliation.js +33 -0
  356. package/dist/stores/workspaceReconciliation.js.map +1 -0
  357. package/dist/stores/workspaceStore.d.ts +44 -9
  358. package/dist/stores/workspaceStore.d.ts.map +1 -1
  359. package/dist/stores/workspaceStore.js +238 -99
  360. package/dist/stores/workspaceStore.js.map +1 -1
  361. package/dist/types/agentEditor.d.ts +1 -0
  362. package/dist/types/agentEditor.d.ts.map +1 -1
  363. package/dist/utils/advertisedReasoning.d.ts +25 -0
  364. package/dist/utils/advertisedReasoning.d.ts.map +1 -0
  365. package/dist/utils/advertisedReasoning.js +62 -0
  366. package/dist/utils/advertisedReasoning.js.map +1 -0
  367. package/dist/utils/clipboardCopy.d.ts +4 -0
  368. package/dist/utils/clipboardCopy.d.ts.map +1 -0
  369. package/dist/utils/clipboardCopy.js +27 -0
  370. package/dist/utils/clipboardCopy.js.map +1 -0
  371. package/dist/utils/providerCommandArgs.d.ts +11 -0
  372. package/dist/utils/providerCommandArgs.d.ts.map +1 -0
  373. package/dist/utils/providerCommandArgs.js +18 -0
  374. package/dist/utils/providerCommandArgs.js.map +1 -0
  375. package/dist/utils/rendererTeardown.d.ts +6 -0
  376. package/dist/utils/rendererTeardown.d.ts.map +1 -0
  377. package/dist/utils/rendererTeardown.js +18 -0
  378. package/dist/utils/rendererTeardown.js.map +1 -0
  379. package/package.json +20 -8
  380. package/src/agent.css +39 -9
@@ -5,6 +5,9 @@ export interface AgentCapabilities {
5
5
  fileWrite: boolean;
6
6
  appLaunch: boolean;
7
7
  webSearch?: boolean;
8
+ codeExecution?: boolean;
9
+ imageGeneration?: boolean;
10
+ dataAnalysis?: boolean;
8
11
  }
9
12
  export type AgentPermissionProfileName = 'standard' | 'read-only' | 'edit-with-approval' | 'trusted-workspace' | 'plan';
10
13
  export interface WorkspaceApp {
@@ -76,6 +79,7 @@ export interface AccessSettings {
76
79
  allowGuestViewing: boolean;
77
80
  }
78
81
  export interface Agent {
82
+ isArchived?: boolean;
79
83
  id: string;
80
84
  name: string;
81
85
  description?: string;
@@ -96,7 +100,13 @@ export interface Agent {
96
100
  rateLimits?: RateLimits;
97
101
  tools?: string[];
98
102
  }
103
+ export interface AgentCreationDefaults {
104
+ model?: string;
105
+ systemPrompt?: string;
106
+ tools?: string[];
107
+ }
99
108
  export interface Team {
109
+ isArchived?: boolean;
100
110
  id: string;
101
111
  name: string;
102
112
  description?: string;
@@ -107,6 +117,7 @@ export interface Team {
107
117
  isExpanded: boolean;
108
118
  rateLimits?: RateLimits;
109
119
  envVars?: EnvVar[];
120
+ agentDefaults?: AgentCreationDefaults;
110
121
  }
111
122
  export interface SecuritySettings {
112
123
  require2FA: boolean;
@@ -130,39 +141,55 @@ export interface Workspace {
130
141
  access?: AccessSettings;
131
142
  security?: SecuritySettings;
132
143
  isArchived?: boolean;
144
+ agentDefaults?: AgentCreationDefaults;
133
145
  }
146
+ export declare function toolsForAgentCapabilities(capabilities?: AgentCapabilities): string[];
134
147
  interface WorkspaceState {
148
+ lifecycleBusy: boolean;
149
+ lifecycleError: string | null;
150
+ lifecycleMessage: string | null;
151
+ retryLifecycle: () => Promise<boolean>;
135
152
  workspaces: Workspace[];
136
153
  isLoaded: boolean;
154
+ persistenceStatus: 'idle' | 'saving' | 'saved' | 'error';
155
+ persistenceError: string | null;
156
+ retryPersistence: () => void;
157
+ activeWorkspaceScope: string | null;
158
+ setActiveWorkspaceScope: (id: string | null) => void;
159
+ isWorkspaceWizardOpen: boolean;
160
+ openWorkspaceWizard: () => void;
161
+ closeWorkspaceWizard: () => void;
137
162
  loadWorkspaces: () => Promise<void>;
163
+ /** Explicit user recovery; never invoked by background change notifications. */
164
+ discardUnsavedWorkspaceChanges: () => Promise<void>;
138
165
  addWorkspace: (name: string) => string;
139
166
  renameWorkspace: (id: string, name: string) => void;
140
- deleteWorkspace: (id: string) => void;
167
+ deleteWorkspace: (id: string) => Promise<boolean>;
141
168
  duplicateWorkspace: (id: string) => void;
142
169
  toggleWorkspaceExpanded: (id: string) => void;
143
170
  addDirectoryToWorkspace: (workspaceId: string, path: string) => void;
144
171
  removeDirectoryFromWorkspace: (workspaceId: string, directory: string) => void;
145
172
  addAppToWorkspace: (workspaceId: string, app: WorkspaceApp) => void;
146
173
  removeAppFromWorkspace: (workspaceId: string, appId: string) => void;
147
- addTeam: (workspaceId: string, name: string) => string;
174
+ addTeam: (workspaceId: string, name: string, description?: string) => string;
148
175
  renameTeam: (workspaceId: string, teamId: string, name: string) => void;
149
- deleteTeam: (workspaceId: string, teamId: string) => void;
176
+ deleteTeam: (workspaceId: string, teamId: string) => Promise<boolean>;
150
177
  duplicateTeam: (workspaceId: string, teamId: string) => void;
151
178
  moveTeam: (sourceWsId: string, teamId: string, targetWsId: string) => void;
152
179
  toggleTeamExpanded: (workspaceId: string, teamId: string) => void;
153
- addAgent: (workspaceId: string, teamId: string, name: string, model?: string, systemPrompt?: string, capabilities?: AgentCapabilities) => string;
180
+ addAgent: (workspaceId: string, teamId: string, name: string, model?: string, systemPrompt?: string, capabilities?: AgentCapabilities, runtimeSelection?: HubAgentRuntimeSelection) => string;
154
181
  renameAgent: (workspaceId: string, teamId: string, agentId: string, name: string) => void;
155
- deleteAgent: (workspaceId: string, teamId: string, agentId: string) => void;
182
+ deleteAgent: (workspaceId: string, teamId: string, agentId: string) => Promise<boolean>;
156
183
  duplicateAgent: (workspaceId: string, teamId: string, agentId: string) => void;
157
184
  moveAgent: (srcWsId: string, srcTeamId: string, agentId: string, dstWsId: string, dstTeamId: string) => void;
158
185
  toggleAgentExpanded: (workspaceId: string, teamId: string, agentId: string) => void;
159
186
  updateAgent: (workspaceId: string, teamId: string, agentId: string, updates: Partial<Agent>) => void;
160
187
  addAgentApprovalRule: (workspaceId: string, teamId: string, agentId: string, rule: Omit<AgentApprovalRule, 'id' | 'createdAt'> & Partial<Pick<AgentApprovalRule, 'id' | 'createdAt'>>) => void;
161
188
  removeAgentApprovalRule: (workspaceId: string, teamId: string, agentId: string, ruleId: string) => void;
162
- updateWorkspace: (id: string, updates: Partial<Pick<Workspace, 'name' | 'description' | 'rateLimits' | 'envVars' | 'isArchived'>>) => void;
163
- updateTeam: (workspaceId: string, teamId: string, updates: Partial<Pick<Team, 'name' | 'description' | 'rateLimits' | 'envVars' | 'teamAgentPolicy'>>) => void;
164
- archiveWorkspace: (id: string) => void;
165
- unarchiveWorkspace: (id: string) => void;
189
+ updateWorkspace: (id: string, updates: Partial<Pick<Workspace, 'name' | 'description' | 'rateLimits' | 'envVars' | 'isArchived' | 'agentDefaults'>>) => void;
190
+ updateTeam: (workspaceId: string, teamId: string, updates: Partial<Pick<Team, 'name' | 'description' | 'rateLimits' | 'envVars' | 'teamAgentPolicy' | 'agentDefaults'>>) => void;
191
+ archiveWorkspace: (id: string) => Promise<boolean>;
192
+ unarchiveWorkspace: (id: string) => Promise<boolean>;
166
193
  setWorkspaces: (workspaces: Workspace[] | ((prev: Workspace[]) => Workspace[])) => void;
167
194
  findAgentById: (agentId: string) => {
168
195
  workspace: Workspace;
@@ -170,6 +197,14 @@ interface WorkspaceState {
170
197
  agent: Agent;
171
198
  } | null;
172
199
  }
200
+ export declare function waitForWorkspacePersistence(): Promise<void>;
201
+ /** Check the host-acknowledged snapshot, not just the optimistic renderer tree. */
202
+ export declare function requireWorkspacePersistence(contains: (workspaces: Workspace[]) => boolean): Promise<void>;
203
+ type LifecycleScope = import('@xenosystem/agent-interface-contract').AgentWorkspaceLifecycleScope;
204
+ /** Restore only the archived flag against the latest canonical revision; never restart execution. */
205
+ export declare function restoreWorkspaceLifecycle(scope: LifecycleScope): Promise<boolean>;
206
+ /** Every UI entrypoint uses host ACK; renderer snapshots never perform the cascade. */
207
+ export declare function requestWorkspaceLifecycle(scope: LifecycleScope, action: 'archive' | 'delete', operationId?: string): Promise<boolean>;
173
208
  export declare const useWorkspaceStore: import("zustand").UseBoundStore<import("zustand").StoreApi<WorkspaceState>>;
174
209
  export {};
175
210
  //# sourceMappingURL=workspaceStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceStore.d.ts","sourceRoot":"","sources":["../../src/stores/workspaceStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaceStore.d.ts","sourceRoot":"","sources":["../../src/stores/workspaceStore.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { getAgentPlatformBridge } from '../platformBridge.js';
2
+ import { reconcileWorkspaces } from './workspaceReconciliation.js';
3
+ import { agentCreationConfiguration } from './agentCreationDefaults.js';
4
+ import { capabilitiesForToolCategories, toolCategoriesForCapabilities } from '@xenosystem/agent-interface-core';
2
5
  /**
3
6
  * Workspace Store — Zustand store with file-backed persistence
4
7
  *
@@ -7,7 +10,6 @@ import { getAgentPlatformBridge } from '../platformBridge.js';
7
10
  * Conversations are NOT stored here — they live in agentChatStore.
8
11
  */
9
12
  import { create } from 'zustand';
10
- import { useAgentChatStore } from './agentChatStore.js';
11
13
  import { DEFAULT_HUB_AGENT_RUNTIME_SELECTION, normalizeHubAgentRuntimeSelection, } from '../utils/agentRuntimeProvider.js';
12
14
  // =============================================================================
13
15
  // HELPERS
@@ -21,6 +23,9 @@ const DEFAULT_CAPABILITIES = {
21
23
  fileWrite: false,
22
24
  appLaunch: true,
23
25
  };
26
+ export function toolsForAgentCapabilities(capabilities = DEFAULT_CAPABILITIES) {
27
+ return toolCategoriesForCapabilities(capabilities);
28
+ }
24
29
  const DEFAULT_PERMISSION_PROFILE = 'standard';
25
30
  const VALID_PERMISSION_PROFILES = new Set([
26
31
  'standard',
@@ -64,7 +69,7 @@ function normalizeTeamAgentCallPolicy(value) {
64
69
  function normalizeLoadedAgent(agent) {
65
70
  return {
66
71
  ...agent,
67
- capabilities: agent.capabilities || DEFAULT_CAPABILITIES,
72
+ capabilities: Array.isArray(agent.tools) ? capabilitiesForToolCategories(agent.tools) : agent.capabilities || DEFAULT_CAPABILITIES,
68
73
  permissionProfile: normalizePermissionProfile(agent.permissionProfile),
69
74
  runtimeSelection: normalizeHubAgentRuntimeSelection(agent.runtimeSelection),
70
75
  allowedDirectories: Array.isArray(agent.allowedDirectories) ? agent.allowedDirectories : [],
@@ -87,31 +92,94 @@ function normalizeLoadedWorkspaces(workspaces) {
87
92
  })),
88
93
  }));
89
94
  }
90
- // Debounced persist
91
- let persistTimer = null;
95
+ // Dispatch edits without a renderer-only debounce window. Serialize acknowledgements
96
+ // so an older slow write cannot overwrite a newer snapshot.
97
+ let persistQueue = Promise.resolve();
98
+ let persistGeneration = 0;
99
+ let persistPending = 0;
100
+ let workspaceLoadGeneration = 0;
101
+ const workspaceBaselines = new WeakMap();
102
+ export function waitForWorkspacePersistence() {
103
+ return persistQueue;
104
+ }
105
+ /** Check the host-acknowledged snapshot, not just the optimistic renderer tree. */
106
+ export async function requireWorkspacePersistence(contains) {
107
+ // Includes this creation's queued write. Later unrelated edits must not keep a
108
+ // successfully saved dialog open indefinitely.
109
+ await persistQueue;
110
+ const state = useWorkspaceStore.getState();
111
+ if (state.persistenceStatus === 'error')
112
+ throw new Error(state.persistenceError || 'Workspace save was not acknowledged.');
113
+ const storage = getAgentPlatformBridge()?.workspaceStorage;
114
+ const acknowledged = storage && workspaceBaselines.get(storage);
115
+ if (!acknowledged || !contains(acknowledged.workspaces) || !contains(state.workspaces)) {
116
+ throw new Error('The created item is not present in the acknowledged workspace state. It may have been changed or removed.');
117
+ }
118
+ }
119
+ if (typeof window !== 'undefined') {
120
+ window.addEventListener('beforeunload', (event) => {
121
+ if (persistPending === 0 && useWorkspaceStore.getState().persistenceStatus !== 'error')
122
+ return;
123
+ event.preventDefault();
124
+ event.returnValue = '';
125
+ });
126
+ }
92
127
  function schedulePersist(workspaces) {
93
- if (persistTimer)
94
- clearTimeout(persistTimer);
95
- persistTimer = setTimeout(() => {
96
- persistTimer = null;
97
- const teamCount = workspaces.reduce((sum, w) => sum + w.teams.length, 0);
98
- const agentCount = workspaces.reduce((sum, w) => sum + w.teams.reduce((s, t) => s + t.agents.length, 0), 0);
99
- console.warn(`[WorkspaceStore] Saving ${workspaces.length} workspaces, ${teamCount} teams, ${agentCount} agents`);
100
- getAgentPlatformBridge()?.workspaceStorage?.save(workspaces).catch((err) => {
101
- console.warn('[WorkspaceStore] Save failed:', err);
102
- });
103
- }, 300);
128
+ const generation = ++persistGeneration;
129
+ const storage = getAgentPlatformBridge()?.workspaceStorage;
130
+ const base = storage ? workspaceBaselines.get(storage) : undefined;
131
+ persistPending += 1;
132
+ // Callers use Zustand updater functions; notify only after that update commits.
133
+ queueMicrotask(() => useWorkspaceStore.setState({ persistenceStatus: 'saving', persistenceError: null }));
134
+ persistQueue = persistQueue.then(async () => {
135
+ try {
136
+ if (!storage?.save)
137
+ throw new Error('Workspace storage is not available on this host.');
138
+ let desired = workspaces;
139
+ let current = workspaceBaselines.get(storage);
140
+ if (base && current && base !== current) {
141
+ const merged = reconcileWorkspaces(base.workspaces, desired, current.workspaces);
142
+ if (merged.conflicts.length)
143
+ throw new Error(`Workspace edits conflict at ${merged.conflicts.join(', ')}. Your local edits are retained.`);
144
+ desired = merged.value;
145
+ }
146
+ let result = await storage.save(desired, current?.revision);
147
+ if (!result.success && result.code === 'WORKSPACE_CONFLICT' && base) {
148
+ const latest = await storage.load();
149
+ if (!latest.success || !Array.isArray(latest.workspaces) || !latest.revision)
150
+ throw new Error(latest.error || 'Could not read newer workspace state for reconciliation.');
151
+ const merged = reconcileWorkspaces(base.workspaces, workspaces, normalizeLoadedWorkspaces(latest.workspaces));
152
+ if (merged.conflicts.length)
153
+ throw new Error(`Workspace edits conflict at ${merged.conflicts.join(', ')}. Your local edits are retained.`);
154
+ desired = merged.value;
155
+ // One bounded retry. Another intervening writer is reported, never overwritten.
156
+ result = await storage.save(desired, latest.revision);
157
+ }
158
+ if (!result?.success)
159
+ throw new Error(result?.error || 'The host did not confirm the workspace save.');
160
+ workspaceBaselines.set(storage, { workspaces: structuredClone(desired), revision: result.revision });
161
+ if (generation === persistGeneration) {
162
+ useWorkspaceStore.setState({ workspaces: desired, persistenceStatus: 'saved', persistenceError: null });
163
+ }
164
+ }
165
+ catch (error) {
166
+ if (generation === persistGeneration) {
167
+ useWorkspaceStore.setState({
168
+ persistenceStatus: 'error',
169
+ persistenceError: error instanceof Error ? error.message : 'Workspace save failed.',
170
+ });
171
+ }
172
+ }
173
+ finally {
174
+ persistPending -= 1;
175
+ }
176
+ });
104
177
  }
105
178
  function flushPersist(workspaces) {
106
- if (persistTimer)
107
- clearTimeout(persistTimer);
108
- persistTimer = null;
109
- console.warn(`[WorkspaceStore] Flush-saving (delete operation)`);
110
- getAgentPlatformBridge()?.workspaceStorage?.save(workspaces).catch((err) => {
111
- console.warn('[WorkspaceStore] Save failed:', err);
112
- });
179
+ schedulePersist(workspaces);
113
180
  }
114
- let workspaceStorageChangedListenerRegistered = false;
181
+ let workspaceStorageChangedBinding;
182
+ let unsubscribeWorkspaceStorageChanged;
115
183
  let workspaceStorageChangedUnsupportedReported = false;
116
184
  /**
117
185
  * Registers the cross-surface workspace-change listener when the active platform
@@ -123,9 +191,12 @@ let workspaceStorageChangedUnsupportedReported = false;
123
191
  * latch stays open, so a later bridge that does support it can still register.
124
192
  */
125
193
  function ensureWorkspaceStorageChangedListener() {
126
- if (workspaceStorageChangedListenerRegistered)
127
- return;
128
194
  const storage = getAgentPlatformBridge()?.workspaceStorage;
195
+ if (workspaceStorageChangedBinding === storage)
196
+ return;
197
+ unsubscribeWorkspaceStorageChanged?.();
198
+ unsubscribeWorkspaceStorageChanged = undefined;
199
+ workspaceStorageChangedBinding = undefined;
129
200
  if (typeof storage?.onChanged !== 'function') {
130
201
  if (!workspaceStorageChangedUnsupportedReported) {
131
202
  workspaceStorageChangedUnsupportedReported = true;
@@ -135,52 +206,155 @@ function ensureWorkspaceStorageChangedListener() {
135
206
  return;
136
207
  }
137
208
  try {
138
- storage.onChanged(() => {
209
+ const unsubscribe = storage.onChanged(() => {
139
210
  void useWorkspaceStore.getState().loadWorkspaces();
140
211
  });
141
- workspaceStorageChangedListenerRegistered = true;
212
+ unsubscribeWorkspaceStorageChanged = typeof unsubscribe === 'function' ? unsubscribe : () => storage.offChanged?.();
213
+ workspaceStorageChangedBinding = storage;
142
214
  }
143
215
  catch (err) {
144
216
  console.warn('[WorkspaceStore] Failed to register the workspace-storage change listener:', err);
145
217
  }
146
218
  }
147
- // Cascade: collect all agent IDs from a workspace
148
- function collectAgentIds(workspace) {
149
- return workspace.teams.flatMap(t => t.agents.map(a => a.id));
219
+ let pendingLifecycle;
220
+ /** Restore only the archived flag against the latest canonical revision; never restart execution. */
221
+ export async function restoreWorkspaceLifecycle(scope) {
222
+ if (useWorkspaceStore.getState().lifecycleBusy)
223
+ return false;
224
+ useWorkspaceStore.setState({ lifecycleBusy: true, lifecycleError: null, lifecycleMessage: null });
225
+ try {
226
+ await waitForWorkspacePersistence();
227
+ if (useWorkspaceStore.getState().persistenceStatus === 'error')
228
+ throw new Error('Resolve unsaved workspace edits before restoring');
229
+ const storage = getAgentPlatformBridge().workspaceStorage;
230
+ const state = await storage.load();
231
+ if (!state.success || !state.revision)
232
+ throw new Error(state.error || 'Workspace revision unavailable');
233
+ const workspaces = structuredClone(state.workspaces);
234
+ const workspace = workspaces.find(w => w.id === scope.workspaceId);
235
+ const team = workspace?.teams.find(t => t.id === scope.teamId);
236
+ const entity = scope.agentId ? team?.agents.find(a => a.id === scope.agentId) : scope.teamId ? team : workspace;
237
+ if (!entity)
238
+ throw new Error('Archived scope no longer exists');
239
+ entity.isArchived = false;
240
+ const saved = await storage.save(workspaces, state.revision);
241
+ if (!saved.success)
242
+ throw new Error(saved.error || 'Restore was not acknowledged');
243
+ await useWorkspaceStore.getState().loadWorkspaces();
244
+ useWorkspaceStore.setState({ lifecycleMessage: 'Restore confirmed by host. Execution remains stopped.' });
245
+ return true;
246
+ }
247
+ catch (error) {
248
+ useWorkspaceStore.setState({ lifecycleError: error instanceof Error ? error.message : 'Restore failed' });
249
+ return false;
250
+ }
251
+ finally {
252
+ useWorkspaceStore.setState({ lifecycleBusy: false });
253
+ }
150
254
  }
151
- // Cascade: delete conversations for a list of agent IDs
152
- function cascadeDeleteConversations(agentIds) {
153
- const store = useAgentChatStore.getState();
154
- const conversations = store.conversations;
155
- for (const conv of Object.values(conversations)) {
156
- if (agentIds.includes(conv.agentId)) {
157
- store.deleteConversation(conv.id);
255
+ /** Every UI entrypoint uses host ACK; renderer snapshots never perform the cascade. */
256
+ export async function requestWorkspaceLifecycle(scope, action, operationId = crypto.randomUUID()) {
257
+ if (useWorkspaceStore.getState().lifecycleBusy)
258
+ return false;
259
+ pendingLifecycle = { scope: { ...scope }, action, id: operationId };
260
+ useWorkspaceStore.setState({ lifecycleBusy: true, lifecycleError: null, lifecycleMessage: null });
261
+ let completed = false;
262
+ const confirmedMessage = action === 'archive' ? 'Archive confirmed by host.' : 'Delete confirmed by host.';
263
+ const refreshWarning = 'The operation is complete, but its view could not be refreshed. Reload the workspace; do not repeat the operation.';
264
+ try {
265
+ await waitForWorkspacePersistence();
266
+ if (useWorkspaceStore.getState().persistenceStatus === 'error')
267
+ throw new Error('Resolve unsaved workspace edits before changing lifecycle');
268
+ const api = getAgentPlatformBridge();
269
+ if (!api.workspace?.lifecycle)
270
+ throw new Error('Durable workspace lifecycle service is unavailable');
271
+ const state = await api.workspaceStorage.load();
272
+ if (!state.success || !state.revision)
273
+ throw new Error(state.error || 'Workspace revision is unavailable');
274
+ const result = await api.workspace.lifecycle({ scope, action, operationId, expectedRevision: state.revision });
275
+ if (!result.success || result.status !== 'completed' || result.operationId !== operationId)
276
+ throw new Error(result.error || 'Lifecycle cancellation remains pending; retry once execution stops');
277
+ completed = true;
278
+ pendingLifecycle = undefined;
279
+ await useWorkspaceStore.getState().loadWorkspaces();
280
+ if (action === 'delete') {
281
+ const { useAgentChatStore, loadLocalAgentConversations } = await import('./agentChatStore.js');
282
+ const removed = new Set(result.conversationIds ?? []);
283
+ useAgentChatStore.setState(current => ({ conversations: Object.fromEntries(Object.entries(current.conversations).filter(([id]) => !removed.has(id))) }));
284
+ await loadLocalAgentConversations();
285
+ if (!scope.teamId && useWorkspaceStore.getState().activeWorkspaceScope === scope.workspaceId)
286
+ useWorkspaceStore.setState({ activeWorkspaceScope: null });
287
+ }
288
+ const refreshUnavailable = result.projectionStatus === 'unavailable' || useWorkspaceStore.getState().persistenceStatus === 'error';
289
+ useWorkspaceStore.setState({ lifecycleMessage: confirmedMessage + (refreshUnavailable ? ` ${refreshWarning}` : '') });
290
+ return true;
291
+ }
292
+ catch (error) {
293
+ if (completed) {
294
+ useWorkspaceStore.setState({ lifecycleError: null, lifecycleMessage: `${confirmedMessage} ${refreshWarning}` });
295
+ return true;
158
296
  }
297
+ useWorkspaceStore.setState({ lifecycleError: error instanceof Error ? error.message : 'Lifecycle was not confirmed' });
298
+ return false;
299
+ }
300
+ finally {
301
+ useWorkspaceStore.setState({ lifecycleBusy: false });
159
302
  }
160
303
  }
161
304
  export const useWorkspaceStore = create((set, get) => ({
305
+ lifecycleBusy: false,
306
+ lifecycleError: null,
307
+ lifecycleMessage: null,
308
+ retryLifecycle: () => pendingLifecycle ? requestWorkspaceLifecycle(pendingLifecycle.scope, pendingLifecycle.action, pendingLifecycle.id) : Promise.resolve(false),
162
309
  workspaces: [],
163
310
  isLoaded: false,
311
+ persistenceStatus: 'idle',
312
+ persistenceError: null,
313
+ retryPersistence: () => schedulePersist(get().workspaces),
314
+ discardUnsavedWorkspaceChanges: async () => {
315
+ await waitForWorkspacePersistence();
316
+ set({ persistenceStatus: 'idle', persistenceError: null });
317
+ await get().loadWorkspaces();
318
+ },
319
+ activeWorkspaceScope: null,
320
+ setActiveWorkspaceScope: (id) => set({ activeWorkspaceScope: id }),
321
+ isWorkspaceWizardOpen: false,
322
+ openWorkspaceWizard: () => set({ isWorkspaceWizardOpen: true }),
323
+ closeWorkspaceWizard: () => set({ isWorkspaceWizardOpen: false }),
164
324
  // ── Lifecycle ────────────────────────────────────────────────────────────
165
325
  loadWorkspaces: async () => {
326
+ const loadGeneration = ++workspaceLoadGeneration;
166
327
  try {
167
328
  ensureWorkspaceStorageChangedListener();
168
- const result = await getAgentPlatformBridge()?.workspaceStorage?.load();
329
+ // A change notification or navigation must not replace unsaved local edits.
330
+ const generation = persistGeneration;
331
+ await waitForWorkspacePersistence();
332
+ if (generation !== persistGeneration || get().persistenceStatus === 'error')
333
+ return;
334
+ const storage = getAgentPlatformBridge()?.workspaceStorage;
335
+ const result = await storage?.load();
336
+ if (generation !== persistGeneration || loadGeneration !== workspaceLoadGeneration)
337
+ return;
169
338
  if (result?.success && Array.isArray(result.workspaces)) {
339
+ if (!get().lifecycleBusy && result.pendingLifecycle?.[0]) {
340
+ pendingLifecycle = result.pendingLifecycle[0];
341
+ set({ lifecycleError: 'A workspace lifecycle operation is pending. Stop its remaining execution and retry.', lifecycleMessage: null });
342
+ }
170
343
  const ws = normalizeLoadedWorkspaces(result.workspaces);
344
+ workspaceBaselines.set(storage, { workspaces: structuredClone(ws), revision: result.revision });
171
345
  const teamCount = ws.reduce((sum, w) => sum + w.teams.length, 0);
172
346
  const agentCount = ws.reduce((sum, w) => sum + w.teams.reduce((s, t) => s + t.agents.length, 0), 0);
173
347
  console.warn(`[WorkspaceStore] Loaded ${ws.length} workspaces, ${teamCount} teams, ${agentCount} agents`);
174
348
  set({ workspaces: ws, isLoaded: true });
175
349
  }
176
350
  else {
177
- console.warn('[WorkspaceStore] No saved workspaces found — starting fresh');
178
- set({ isLoaded: true });
351
+ set({ isLoaded: true, persistenceStatus: 'error', persistenceError: result?.error || 'Workspace state could not be loaded. Existing local state has been retained.' });
179
352
  }
180
353
  }
181
354
  catch (err) {
182
355
  console.warn('[WorkspaceStore] Failed to load workspaces:', err);
183
- set({ isLoaded: true });
356
+ if (loadGeneration === workspaceLoadGeneration)
357
+ set({ isLoaded: true, persistenceStatus: 'error', persistenceError: err instanceof Error ? err.message : 'Workspace load failed.' });
184
358
  }
185
359
  },
186
360
  // ── Workspace CRUD ───────────────────────────────────────────────────────
@@ -209,16 +383,7 @@ export const useWorkspaceStore = create((set, get) => ({
209
383
  return { workspaces: next };
210
384
  });
211
385
  },
212
- deleteWorkspace: (id) => {
213
- const ws = get().workspaces.find(w => w.id === id);
214
- if (ws)
215
- cascadeDeleteConversations(collectAgentIds(ws));
216
- set(state => {
217
- const next = state.workspaces.filter(w => w.id !== id);
218
- flushPersist(next);
219
- return { workspaces: next };
220
- });
221
- },
386
+ deleteWorkspace: (id) => requestWorkspaceLifecycle({ workspaceId: id }, 'delete'),
222
387
  duplicateWorkspace: (id) => {
223
388
  set(state => {
224
389
  const source = state.workspaces.find(w => w.id === id);
@@ -311,11 +476,15 @@ export const useWorkspaceStore = create((set, get) => ({
311
476
  });
312
477
  },
313
478
  // ── Team CRUD ────────────────────────────────────────────────────────────
314
- addTeam: (workspaceId, name) => {
479
+ addTeam: (workspaceId, name, description) => {
480
+ const workspace = get().workspaces.find(w => w.id === workspaceId && !w.isArchived);
481
+ if (!workspace || !name.trim())
482
+ throw new Error('A named team requires an active workspace.');
315
483
  const id = generateId();
316
484
  const team = {
317
485
  id,
318
486
  name: name.trim(),
487
+ ...(description?.trim() ? { description: description.trim() } : {}),
319
488
  allowedDirectories: [],
320
489
  allowedApps: [],
321
490
  agents: [],
@@ -339,19 +508,7 @@ export const useWorkspaceStore = create((set, get) => ({
339
508
  return { workspaces: next };
340
509
  });
341
510
  },
342
- deleteTeam: (workspaceId, teamId) => {
343
- const ws = get().workspaces.find(w => w.id === workspaceId);
344
- const team = ws?.teams.find(t => t.id === teamId);
345
- if (team)
346
- cascadeDeleteConversations(team.agents.map(a => a.id));
347
- set(state => {
348
- const next = state.workspaces.map(w => w.id === workspaceId
349
- ? { ...w, teams: w.teams.filter(t => t.id !== teamId) }
350
- : w);
351
- flushPersist(next);
352
- return { workspaces: next };
353
- });
354
- },
511
+ deleteTeam: (workspaceId, teamId) => requestWorkspaceLifecycle({ workspaceId, teamId }, 'delete'),
355
512
  duplicateTeam: (workspaceId, teamId) => {
356
513
  set(state => {
357
514
  const next = state.workspaces.map(w => {
@@ -414,21 +571,25 @@ export const useWorkspaceStore = create((set, get) => ({
414
571
  });
415
572
  },
416
573
  // ── Agent CRUD ───────────────────────────────────────────────────────────
417
- addAgent: (workspaceId, teamId, name, model, systemPrompt, capabilities) => {
574
+ addAgent: (workspaceId, teamId, name, model, systemPrompt, capabilities, runtimeSelection) => {
418
575
  const id = generateId();
419
576
  const ws = get().workspaces.find(w => w.id === workspaceId);
420
577
  const team = ws?.teams.find(t => t.id === teamId);
578
+ if (!ws || !team || ws.isArchived || team.isArchived || !name.trim())
579
+ throw new Error('A named agent requires an active workspace and team.');
580
+ const defaults = agentCreationConfiguration(ws, team, { model, systemPrompt, capabilities });
421
581
  const isFirst = !team?.agents.length || !team.agents.some(a => a.isMainAssistant);
422
582
  const agent = {
423
583
  id,
424
584
  name: name.trim(),
425
585
  isMainAssistant: isFirst,
426
- model: model || 'claude-sonnet-4-6',
427
- systemPrompt: systemPrompt || `You are ${name.trim()}, an assistant in ${ws?.name || 'Workspace'}/${team?.name || 'Team'}.`,
586
+ model: model || defaults.model || undefined,
587
+ systemPrompt: systemPrompt ?? defaults.systemPrompt ?? `You are ${name.trim()}, an assistant in ${ws.name}/${team.name}.`,
588
+ tools: defaults.tools,
428
589
  templateName: 'Custom',
429
- capabilities: capabilities || DEFAULT_CAPABILITIES,
590
+ capabilities: defaults.capabilities,
430
591
  permissionProfile: DEFAULT_PERMISSION_PROFILE,
431
- runtimeSelection: {
592
+ runtimeSelection: runtimeSelection ? normalizeHubAgentRuntimeSelection(runtimeSelection) : {
432
593
  ...DEFAULT_HUB_AGENT_RUNTIME_SELECTION,
433
594
  selectedAt: Date.now(),
434
595
  },
@@ -468,21 +629,7 @@ export const useWorkspaceStore = create((set, get) => ({
468
629
  return { workspaces: next };
469
630
  });
470
631
  },
471
- deleteAgent: (workspaceId, teamId, agentId) => {
472
- cascadeDeleteConversations([agentId]);
473
- set(state => {
474
- const next = state.workspaces.map(w => w.id === workspaceId
475
- ? {
476
- ...w,
477
- teams: w.teams.map(t => t.id === teamId
478
- ? { ...t, agents: t.agents.filter(a => a.id !== agentId) }
479
- : t),
480
- }
481
- : w);
482
- flushPersist(next);
483
- return { workspaces: next };
484
- });
485
- },
632
+ deleteAgent: (workspaceId, teamId, agentId) => requestWorkspaceLifecycle({ workspaceId, teamId, agentId }, 'delete'),
486
633
  duplicateAgent: (workspaceId, teamId, agentId) => {
487
634
  set(state => {
488
635
  const next = state.workspaces.map(w => w.id === workspaceId
@@ -570,6 +717,10 @@ export const useWorkspaceStore = create((set, get) => ({
570
717
  const safeUpdates = updates.runtimeSelection === undefined
571
718
  ? updates
572
719
  : { ...updates, runtimeSelection: normalizeHubAgentRuntimeSelection(updates.runtimeSelection) };
720
+ if (updates.tools !== undefined)
721
+ safeUpdates.capabilities = capabilitiesForToolCategories(updates.tools);
722
+ else if (updates.capabilities !== undefined)
723
+ safeUpdates.tools = toolCategoriesForCapabilities(updates.capabilities);
573
724
  set(state => {
574
725
  const next = state.workspaces.map(w => w.id === workspaceId
575
726
  ? {
@@ -654,20 +805,8 @@ export const useWorkspaceStore = create((set, get) => ({
654
805
  return { workspaces: next };
655
806
  });
656
807
  },
657
- archiveWorkspace: (id) => {
658
- set(state => {
659
- const next = state.workspaces.map(w => w.id === id ? { ...w, isArchived: true } : w);
660
- flushPersist(next);
661
- return { workspaces: next };
662
- });
663
- },
664
- unarchiveWorkspace: (id) => {
665
- set(state => {
666
- const next = state.workspaces.map(w => w.id === id ? { ...w, isArchived: false } : w);
667
- flushPersist(next);
668
- return { workspaces: next };
669
- });
670
- },
808
+ archiveWorkspace: (id) => requestWorkspaceLifecycle({ workspaceId: id }, 'archive'),
809
+ unarchiveWorkspace: (id) => restoreWorkspaceLifecycle({ workspaceId: id }),
671
810
  // ── Bulk setter (backward compat) ────────────────────────────────────────
672
811
  setWorkspaces: (workspacesOrFn) => {
673
812
  set(state => {