@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
@@ -0,0 +1,205 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React, { useLayoutEffect, useRef, useState } from 'react';
3
+ import { getAgentPlatformBridge } from '../../../../platformBridge.js';
4
+ import { SettingsCard } from '../shared/SettingsCard.js';
5
+ import { requireAccountAcknowledgement, requestPreparedAccountMutation } from './AccountWorkspacePanel.js';
6
+ import { isUnresolvedKeyOperation, reconcileKeyOperations } from './workspaceKeyOperationProjection.js';
7
+ import { ConfirmationController, InAppConfirmationDialog } from '../shared/InAppConfirmationDialog.js';
8
+ export function WorkspaceKeysPanel({ workspaceId, readOnly = false }) {
9
+ const [confirmationController] = useState(() => new ConfirmationController());
10
+ const [confirmation, setConfirmation] = useState(null);
11
+ const [accountAuthority, setAccountAuthority] = useState();
12
+ const [keys, setKeys] = useState(null);
13
+ const [revision, setRevision] = useState();
14
+ const [cursor, setCursor] = useState(null);
15
+ const [available, setAvailable] = useState(false);
16
+ const [abandonmentAvailable, setAbandonmentAvailable] = useState(false);
17
+ const [receipt, setReceipt] = useState();
18
+ const [operations, setOperations] = useState([]);
19
+ const [error, setError] = useState(null);
20
+ const [notice, setNotice] = useState(null);
21
+ const [busy, setBusy] = useState(false);
22
+ const [name, setName] = useState('');
23
+ const [days, setDays] = useState('30');
24
+ const [scopes, setScopes] = useState(['workspace:read']);
25
+ const epoch = useRef(0), flight = useRef(false);
26
+ const bindingIdentity = useRef(undefined);
27
+ const call = (input) => {
28
+ const account = getAgentPlatformBridge().account;
29
+ if (!account)
30
+ return Promise.reject(new Error('Canonical account bridge is unavailable.'));
31
+ return requireAccountAcknowledgement(account.request, input);
32
+ };
33
+ const load = async (generation, nextCursor) => {
34
+ const binding = await call({ action: 'binding', workspaceId, intentPhase: 'lookup' });
35
+ if (!binding.binding || !binding.bindingRevision)
36
+ throw new Error('Link this workspace to an authorized XENO account workspace in General settings first.');
37
+ // Continuing a cursor under a changed binding must not append foreign rows.
38
+ if (nextCursor && binding.bindingRevision !== revision)
39
+ throw new Error('Account workspace binding changed. Refresh the key list.');
40
+ // Own operation history remains recoverable after membership/role loss.
41
+ // Never require listing server keys before displaying a durable local intent.
42
+ const recovery = await call({ action: 'key-operations', workspaceId, expectedBindingRevision: binding.bindingRevision, intentPhase: 'lookup' });
43
+ if (epoch.current !== generation)
44
+ return;
45
+ const changedBinding = bindingIdentity.current !== undefined && bindingIdentity.current !== binding.bindingRevision;
46
+ if (changedBinding) {
47
+ setReceipt(undefined);
48
+ setKeys(null);
49
+ setAvailable(false);
50
+ }
51
+ bindingIdentity.current = binding.bindingRevision;
52
+ setRevision(binding.bindingRevision);
53
+ setOperations(current => reconcileKeyOperations(changedBinding ? [] : current.filter(value => value.outcome !== 'preparation-unknown'), recovery.keyOperations || []));
54
+ // Keep the confirmation bound to account and role as well as the binding revision.
55
+ // Catalog failure must not hide this account's own recoverable operation records.
56
+ let role;
57
+ try {
58
+ role = (await call({ action: 'list-workspaces' })).workspaces?.find(workspace => workspace.id === binding.binding.serverWorkspaceId)?.role;
59
+ }
60
+ catch { /* The host remains authoritative for recovery after role loss. */ }
61
+ if (epoch.current !== generation)
62
+ return;
63
+ setAccountAuthority({ accountId: binding.binding.accountId, serverWorkspaceId: binding.binding.serverWorkspaceId, ...(role ? { role } : {}) });
64
+ setRevision(binding.bindingRevision);
65
+ setAbandonmentAvailable(recovery.workspaceOperationAbandonmentAvailable === true);
66
+ setOperations(current => reconcileKeyOperations(changedBinding ? [] : current.filter(value => value.outcome !== 'preparation-unknown'), recovery.keyOperations || []));
67
+ let result;
68
+ try {
69
+ result = await call({ action: 'keys', workspaceId, expectedBindingRevision: binding.bindingRevision, ...(nextCursor ? { keyCursor: nextCursor } : {}) });
70
+ }
71
+ catch (error) {
72
+ if (epoch.current === generation) {
73
+ setKeys(null);
74
+ setAvailable(false);
75
+ setCursor(null);
76
+ }
77
+ throw error;
78
+ }
79
+ if (epoch.current !== generation)
80
+ return;
81
+ setRevision(binding.bindingRevision);
82
+ setKeys(old => nextCursor ? [...(old || []), ...(result.keys || [])] : result.keys || []);
83
+ setCursor(result.nextKeyCursor ?? null);
84
+ setAvailable(result.keyManagementAvailable === true);
85
+ setOperations(current => reconcileKeyOperations(current, result.keyOperations || []));
86
+ };
87
+ const execute = async (input, nextCursor) => {
88
+ if (flight.current)
89
+ return;
90
+ const generation = epoch.current;
91
+ flight.current = true;
92
+ setBusy(true);
93
+ setError(null);
94
+ setNotice(null);
95
+ try {
96
+ if (input) {
97
+ const account = getAgentPlatformBridge().account;
98
+ if (!account)
99
+ throw new Error('Canonical account bridge is unavailable.');
100
+ const result = ['create-key', 'rotate-key', 'revoke-key'].includes(input.action)
101
+ ? await requestPreparedAccountMutation(account.request, input, () => epoch.current === generation && !readOnly)
102
+ : await account.request(input);
103
+ if (epoch.current !== generation)
104
+ return;
105
+ if (result.keyMutation) {
106
+ setOperations(current => reconcileKeyOperations(current, [result.keyMutation]));
107
+ }
108
+ if (result.keyReceipt)
109
+ setReceipt(result.keyReceipt);
110
+ if (result.keyMutation?.outcome === 'prepared') {
111
+ setNotice('Prepared locally; not dispatched. Retry same operation explicitly executes the stored intent.');
112
+ if (!result.success)
113
+ setError(result.error || 'Execution was not admitted.');
114
+ return;
115
+ }
116
+ if (result.keyMutation?.outcome === 'cancelled') {
117
+ setNotice('Prepared intent discarded locally. It was not dispatched; no server change was made.');
118
+ await load(generation);
119
+ return;
120
+ }
121
+ if (result.keyMutation?.outcome === 'abandoned') {
122
+ setNotice('Abandonment confirmed by the server. This operation cannot change a key.');
123
+ await load(generation);
124
+ return;
125
+ }
126
+ if (!result.success) {
127
+ setError(result.error || 'Key operation has not been acknowledged.');
128
+ await load(generation);
129
+ return;
130
+ }
131
+ if (result.keyCopied) {
132
+ setReceipt(undefined);
133
+ setNotice('Key copied through the native host. Clipboard history may retain copies.');
134
+ }
135
+ else
136
+ setNotice(result.keyMutation?.secretDelivery === 'unavailable' && result.keyMutation.action !== 'revoke'
137
+ ? 'The server committed this key operation, but its one-time secret is unavailable. Explicitly rotate the identified key if you need a replacement.'
138
+ : 'Key operation acknowledged by the server.');
139
+ if (input.action === 'create-key')
140
+ setName('');
141
+ }
142
+ await load(generation, nextCursor);
143
+ }
144
+ catch (cause) {
145
+ if (epoch.current === generation) {
146
+ setError(cause instanceof Error ? cause.message : 'Key operation failed.');
147
+ }
148
+ }
149
+ finally {
150
+ if (epoch.current === generation) {
151
+ flight.current = false;
152
+ setBusy(false);
153
+ }
154
+ }
155
+ };
156
+ useLayoutEffect(() => {
157
+ setAbandonmentAvailable(false);
158
+ setAccountAuthority(undefined);
159
+ epoch.current++;
160
+ flight.current = false;
161
+ bindingIdentity.current = undefined;
162
+ setKeys(null);
163
+ setReceipt(undefined);
164
+ setOperations([]);
165
+ setRevision(undefined);
166
+ setCursor(null);
167
+ setAvailable(false);
168
+ setError(null);
169
+ setNotice(null);
170
+ setName('');
171
+ setBusy(false);
172
+ if (workspaceId)
173
+ void execute();
174
+ return () => { epoch.current++; };
175
+ }, [workspaceId, readOnly]);
176
+ const context = { workspaceId, expectedBindingRevision: revision };
177
+ const button = 'rounded border border-white/10 px-2 py-1 text-[11px] text-white/70 hover:bg-white/5 disabled:opacity-35';
178
+ const recoveryDisabled = busy || readOnly || !available || !revision;
179
+ const disabled = recoveryDisabled || operations.some(value => value.outcome === 'prepared' || isUnresolvedKeyOperation(value));
180
+ const confirmationAuthority = JSON.stringify([workspaceId, epoch.current, accountAuthority?.accountId, accountAuthority?.serverWorkspaceId, accountAuthority?.role, revision, readOnly, abandonmentAvailable]);
181
+ useLayoutEffect(() => {
182
+ confirmationController.invalidate();
183
+ setConfirmation(null);
184
+ return () => confirmationController.invalidate();
185
+ }, [confirmationController, confirmationAuthority]);
186
+ const cancelConfirmation = () => { if (confirmation && confirmationController.cancel(confirmation.id))
187
+ setConfirmation(null); };
188
+ const confirmAction = () => {
189
+ const confirmed = confirmation && confirmationController.confirm(confirmationAuthority, confirmation.id);
190
+ if (confirmed)
191
+ setConfirmation(null);
192
+ if (confirmed && !readOnly && !busy)
193
+ void execute({ ...confirmed.request });
194
+ };
195
+ const confirmAbandonment = (operationId) => {
196
+ const local = operations.find(value => value.operationId === operationId)?.outcome === 'prepared';
197
+ if (busy || readOnly || !revision || (!local && !abandonmentAvailable))
198
+ return;
199
+ setConfirmation(confirmationController.begin({ authority: confirmationAuthority, title: local ? 'Discard prepared key intent' : 'Abandon key change',
200
+ description: local ? `Discard locally prepared operation ${operationId}? It has never been admitted or dispatched. This makes no server change.` : `Ask the server to abandon operation ${operationId}? This does not undo a committed change. It stays blocked until the server confirms its outcome.`,
201
+ confirmLabel: local ? 'Discard intent' : 'Request abandonment', request: Object.freeze({ action: 'abandon-key-operation', ...context, keyOperationId: operationId, ...(local ? { intentPhase: 'execute' } : {}) }) }));
202
+ };
203
+ return _jsx(SettingsCard, { title: "Workspace API Keys", children: _jsxs("div", { className: "space-y-2 text-[11px] text-white/65", "aria-busy": busy, children: [_jsx("p", { children: "Scoped workspace metadata/member reads only. These are not inference or personal API keys." }), readOnly && _jsx("p", { children: "Inherited workspace keys. Manage them in workspace settings." }), error && _jsx("p", { role: "alert", className: "text-amber-300", children: error }), notice && _jsx("p", { role: "status", children: notice }), operations.map(operation => _jsxs("div", { className: "rounded border border-white/10 p-2", children: [_jsxs("p", { children: [operation.action, " \u00B7 ", operation.outcome === 'preparation-unknown' ? 'preparation unconfirmed · no execution requested' : operation.outcome === 'prepared' ? 'prepared locally · not dispatched' : operation.outcome, " \u00B7 ", operation.key?.name || operation.operationId] }), (operation.outcome === 'preparation-unknown' || operation.outcome === 'prepared' || operation.outcome === 'pending' || operation.outcome === 'uncertain') && _jsxs(_Fragment, { children: [_jsx("p", { role: "alert", children: operation.outcome === 'preparation-unknown' ? 'Check local preparation before another operation. No execution was requested.' : operation.outcome === 'prepared' ? 'This intent has not been dispatched. Explicit retry uses its durable ID and request.' : 'The result is not confirmed. A new key operation is blocked until this one is reconciled.' }), _jsx("button", { className: button, disabled: busy || readOnly || !revision, onClick: () => { void execute({ action: 'key-operation', ...context, keyOperationId: operation.operationId, ...(['prepared', 'preparation-unknown'].includes(operation.outcome) ? { intentPhase: 'lookup' } : {}) }); }, children: "Check operation" }), _jsx("button", { className: button, disabled: recoveryDisabled || operation.outcome === 'preparation-unknown', onClick: () => { void execute({ action: 'retry-key-operation', ...context, keyOperationId: operation.operationId, intentPhase: 'execute' }); }, children: "Retry same operation" }), operation.outcome === 'prepared' && _jsx("button", { className: button, disabled: busy || readOnly || !revision, onClick: () => confirmAbandonment(operation.operationId), children: "Discard prepared key intent" }), !['prepared', 'preparation-unknown'].includes(operation.outcome) && abandonmentAvailable && _jsx("button", { className: button, disabled: busy || readOnly || !revision, onClick: () => confirmAbandonment(operation.operationId), children: "Abandon pending key change" })] }), operation.outcome === 'committed' && operation.secretDelivery === 'available' && _jsx("button", { className: button, disabled: recoveryDisabled, onClick: () => { void execute({ action: 'key-operation', ...context, keyOperationId: operation.operationId }); }, children: "Recover one-time copy handle" }), operation.outcome === 'committed' && operation.action !== 'revoke' && operation.secretDelivery === 'unavailable' && _jsx("p", { children: "One-time secret unavailable. Use an explicitly confirmed rotation of this key if needed." })] }, operation.operationId)), keys === null ? _jsx("p", { children: busy ? 'Loading server key authority...' : 'Key authority has not been loaded.' }) : _jsxs(_Fragment, { children: [!available && _jsx("p", { children: "Durable operation recovery or native secure handoff is unavailable in this host. Issuance is refused before creating a key." }), !keys.length && _jsx("p", { children: "No keys in this server workspace." }), keys.map(key => _jsxs("div", { className: "rounded border border-white/10 p-2 space-y-1", children: [_jsxs("p", { children: [key.name, " \u00B7 ", _jsxs("code", { children: [key.prefix, "\u2026"] })] }), _jsxs("p", { children: [key.scopes.join(', '), " \u00B7 ", key.revokedAt ? 'Revoked' : `Expires ${key.expiresAt}`] }), !key.revokedAt && _jsxs("div", { className: "flex gap-2", children: [_jsxs("button", { className: button, disabled: disabled, onClick: () => { void execute({ action: 'rotate-key', ...context, keyOperationId: crypto.randomUUID(), keyId: key.id, keyRevision: key.revision, keyName: key.name }); }, children: ["Rotate ", key.name] }), _jsxs("button", { className: button, disabled: disabled, onClick: () => { void execute({ action: 'revoke-key', ...context, keyOperationId: crypto.randomUUID(), keyId: key.id, keyRevision: key.revision, keyName: key.name }); }, children: ["Revoke ", key.name] })] })] }, key.id)), cursor && _jsx("button", { className: button, disabled: busy, onClick: () => { void execute(undefined, cursor); }, children: "Load older keys" })] }), !readOnly && _jsxs("div", { className: "space-y-2", children: [_jsx("input", { "aria-label": "Workspace key name", placeholder: "Key name", value: name, maxLength: 100, disabled: disabled, onChange: event => setName(event.target.value), className: "w-full rounded bg-[#111114] p-2" }), _jsxs("label", { children: ["Expires in days ", _jsx("input", { "aria-label": "Key expiry days", type: "number", min: 1, max: 90, value: days, disabled: disabled, onChange: event => setDays(event.target.value), className: "w-16 rounded bg-[#111114] p-1" })] }), ['workspace:read', 'workspace:members:read'].map(scope => _jsxs("label", { className: "block", children: [_jsx("input", { type: "checkbox", checked: scopes.includes(scope), disabled: disabled, onChange: event => setScopes(current => event.target.checked ? [...current, scope] : current.filter(value => value !== scope)) }), " ", scope] }, scope)), _jsx("button", { className: button, disabled: disabled || !name.trim() || !scopes.length || !Number.isInteger(Number(days)) || Number(days) < 1 || Number(days) > 90, onClick: () => { void execute({ action: 'create-key', ...context, keyOperationId: crypto.randomUUID(), keyName: name, keyScopes: scopes, keyExpiresAt: new Date(Date.now() + Number(days) * 86400000).toISOString() }); }, children: "Create workspace key" }), receipt && _jsxs("div", { children: [_jsxs("p", { children: ["Secret stays in host memory until ", receipt.expiresAt, ". It is never shown in chat."] }), _jsx("button", { className: button, disabled: recoveryDisabled, onClick: () => { void execute({ action: 'copy-key', ...context, keyReceiptId: receipt.id }); }, children: "Copy new key once" })] })] }), _jsx("button", { className: button, disabled: busy || !workspaceId, onClick: () => { void execute(); }, children: "Refresh keys" }), confirmation && _jsx(InAppConfirmationDialog, { prompt: confirmation, onCancel: cancelConfirmation, onConfirm: confirmAction }, confirmation.id)] }) });
204
+ }
205
+ //# sourceMappingURL=WorkspaceKeysPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceKeysPanel.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/sections/WorkspaceKeysPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Acknowledging an old scope must never clear a new scope's replacement draft. */
2
+ export declare function saveEnvironmentDraft(save: () => Promise<boolean>, stillCurrent: () => boolean, clear: () => void): Promise<void>;
3
+ //# sourceMappingURL=environmentDraftAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentDraftAction.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/sections/environmentDraftAction.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,MAAM,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtI"}
@@ -0,0 +1,6 @@
1
+ /** Acknowledging an old scope must never clear a new scope's replacement draft. */
2
+ export async function saveEnvironmentDraft(save, stillCurrent, clear) {
3
+ if (await save() && stillCurrent())
4
+ clear();
5
+ }
6
+ //# sourceMappingURL=environmentDraftAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentDraftAction.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/sections/environmentDraftAction.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAA4B,EAAE,YAA2B,EAAE,KAAiB;IACrH,IAAI,MAAM,IAAI,EAAE,IAAI,YAAY,EAAE;QAAE,KAAK,EAAE,CAAA;AAC7C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentMembershipMutation } from '@xenosystem/agent-interface-contract';
2
+ export declare function reconcileMembershipOperations(previous: AgentMembershipMutation[], incoming?: AgentMembershipMutation[]): AgentMembershipMutation[];
3
+ //# sourceMappingURL=membershipOperationProjection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"membershipOperationProjection.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/sections/membershipOperationProjection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,sCAAsC,CAAA;AACjF,wBAAgB,6BAA6B,CAAC,QAAQ,EAAC,uBAAuB,EAAE,EAAC,QAAQ,CAAC,EAAC,uBAAuB,EAAE,GAAE,uBAAuB,EAAE,CAK9I"}
@@ -0,0 +1,9 @@
1
+ export function reconcileMembershipOperations(previous, incoming) {
2
+ if (!incoming)
3
+ return previous;
4
+ const records = new Map(previous.filter(value => value.outcome === 'preparation-unknown' || value.outcome === 'pending' || value.outcome === 'uncertain').map(value => [value.operationId, value]));
5
+ for (const value of incoming)
6
+ records.set(value.operationId, value);
7
+ return [...records.values()];
8
+ }
9
+ //# sourceMappingURL=membershipOperationProjection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"membershipOperationProjection.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/sections/membershipOperationProjection.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,6BAA6B,CAAC,QAAkC,EAAC,QAAmC;IAClH,IAAG,CAAC,QAAQ;QAAC,OAAO,QAAQ,CAAA;IAC5B,MAAM,OAAO,GAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE,CAAA,KAAK,CAAC,OAAO,KAAG,qBAAqB,IAAE,KAAK,CAAC,OAAO,KAAG,SAAS,IAAE,KAAK,CAAC,OAAO,KAAG,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAA,EAAE,CAAA,CAAC,KAAK,CAAC,WAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClL,KAAI,MAAM,KAAK,IAAI,QAAQ;QAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAC,KAAK,CAAC,CAAA;IAChE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { AgentWorkspaceKeyMutation } from '@xenosystem/agent-interface-contract';
2
+ export declare const isUnresolvedKeyOperation: (value: AgentWorkspaceKeyMutation) => boolean;
3
+ /** A list refresh is not an acknowledgement that a missing in-flight mutation
4
+ * failed. Keep local unknowns until the host returns its actual operation result. */
5
+ export declare function reconcileKeyOperations(current: AgentWorkspaceKeyMutation[], acknowledged: AgentWorkspaceKeyMutation[]): AgentWorkspaceKeyMutation[];
6
+ //# sourceMappingURL=workspaceKeyOperationProjection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceKeyOperationProjection.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/sections/workspaceKeyOperationProjection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAErF,eAAO,MAAM,wBAAwB,GAAI,OAAO,yBAAyB,YAA4G,CAAA;AACrL;qFACqF;AACrF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,yBAAyB,EAAE,GAAG,yBAAyB,EAAE,CAGnJ"}
@@ -0,0 +1,8 @@
1
+ export const isUnresolvedKeyOperation = (value) => value.outcome === 'preparation-unknown' || value.outcome === 'pending' || value.outcome === 'uncertain';
2
+ /** A list refresh is not an acknowledgement that a missing in-flight mutation
3
+ * failed. Keep local unknowns until the host returns its actual operation result. */
4
+ export function reconcileKeyOperations(current, acknowledged) {
5
+ const seen = new Set(acknowledged.map(value => value.operationId));
6
+ return [...acknowledged.filter(value => value.outcome !== 'not-dispatched'), ...current.filter(value => isUnresolvedKeyOperation(value) && !seen.has(value.operationId))];
7
+ }
8
+ //# sourceMappingURL=workspaceKeyOperationProjection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceKeyOperationProjection.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/sections/workspaceKeyOperationProjection.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAgC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,qBAAqB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,CAAA;AACrL;qFACqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,OAAoC,EAAE,YAAyC;IACpH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,gBAAgB,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAC3K,CAAC"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ export interface ConfirmationPrompt {
3
+ id: number;
4
+ authority: string;
5
+ title: string;
6
+ description: string;
7
+ confirmLabel: string;
8
+ }
9
+ /** Consumes a confirmation exactly once and only in the authority incarnation that opened it. */
10
+ export declare class ConfirmationController<T extends ConfirmationPrompt> {
11
+ private sequence;
12
+ private pending;
13
+ begin(input: Omit<T, 'id'>): T;
14
+ confirm(authority: string, id: number): T | null;
15
+ cancel(id: number): boolean;
16
+ invalidate(): void;
17
+ }
18
+ interface InAppConfirmationDialogProps {
19
+ prompt: ConfirmationPrompt;
20
+ onCancel(): void;
21
+ onConfirm(): void;
22
+ }
23
+ export declare function InAppConfirmationDialog({ prompt, onCancel, onConfirm }: InAppConfirmationDialogProps): React.ReactPortal | null;
24
+ export {};
25
+ //# sourceMappingURL=InAppConfirmationDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InAppConfirmationDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/InAppConfirmationDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAA;AAIpE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,iGAAiG;AACjG,qBAAa,sBAAsB,CAAC,CAAC,SAAS,kBAAkB;IAC9D,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,OAAO,CAAiB;IAChC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;IAK9B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAMhD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAC3B,UAAU,IAAI,IAAI;CACnB;AAED,UAAU,4BAA4B;IACpC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,QAAQ,IAAI,IAAI,CAAA;IAChB,SAAS,IAAI,IAAI,CAAA;CAClB;AAID,wBAAgB,uBAAuB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,4BAA4B,4BA6DpG"}
@@ -0,0 +1,89 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useCallback, useEffect, useId, useRef } from 'react';
3
+ import { createPortal } from 'react-dom';
4
+ import { X } from 'lucide-react';
5
+ /** Consumes a confirmation exactly once and only in the authority incarnation that opened it. */
6
+ export class ConfirmationController {
7
+ sequence = 0;
8
+ pending = null;
9
+ begin(input) {
10
+ const prompt = Object.freeze({ ...input, id: ++this.sequence });
11
+ this.pending = prompt;
12
+ return prompt;
13
+ }
14
+ confirm(authority, id) {
15
+ const prompt = this.pending;
16
+ if (prompt?.id !== id)
17
+ return null;
18
+ this.pending = null;
19
+ return prompt?.authority === authority ? prompt : null;
20
+ }
21
+ cancel(id) { if (this.pending?.id !== id)
22
+ return false; this.pending = null; return true; }
23
+ invalidate() { this.pending = null; this.sequence++; }
24
+ }
25
+ const focusableSelector = 'button:not(:disabled), [href], input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])';
26
+ export function InAppConfirmationDialog({ prompt, onCancel, onConfirm }) {
27
+ const titleId = useId(), descriptionId = useId();
28
+ const overlayRef = useRef(null), dialogRef = useRef(null), cancelRef = useRef(null);
29
+ const settled = useRef(false);
30
+ const actions = useRef({ onCancel, onConfirm });
31
+ actions.current = { onCancel, onConfirm };
32
+ const cancel = useCallback(() => { if (settled.current)
33
+ return; settled.current = true; actions.current.onCancel(); }, []);
34
+ const confirm = useCallback(() => { if (settled.current)
35
+ return; settled.current = true; actions.current.onConfirm(); }, []);
36
+ useEffect(() => {
37
+ const opener = document.activeElement instanceof HTMLElement ? document.activeElement : null;
38
+ const overflow = document.body.style.overflow;
39
+ const background = Array.from(document.body.children).filter((element) => element instanceof HTMLElement && element !== overlayRef.current)
40
+ .map(element => ({ element, inert: element.inert }));
41
+ for (const { element } of background)
42
+ element.inert = true;
43
+ document.body.style.overflow = 'hidden';
44
+ cancelRef.current?.focus();
45
+ const keydown = (event) => {
46
+ if (event.key === 'Escape') {
47
+ event.preventDefault();
48
+ event.stopImmediatePropagation();
49
+ cancel();
50
+ return;
51
+ }
52
+ if (event.key !== 'Tab')
53
+ return;
54
+ const controls = Array.from(dialogRef.current?.querySelectorAll(focusableSelector) || []);
55
+ if (controls.length === 0) {
56
+ event.preventDefault();
57
+ dialogRef.current?.focus();
58
+ return;
59
+ }
60
+ const first = controls[0], last = controls[controls.length - 1];
61
+ if (event.shiftKey && document.activeElement === first) {
62
+ event.preventDefault();
63
+ last.focus();
64
+ }
65
+ else if (!event.shiftKey && document.activeElement === last) {
66
+ event.preventDefault();
67
+ first.focus();
68
+ }
69
+ };
70
+ const focusin = (event) => { if (event.target instanceof Node && !dialogRef.current?.contains(event.target))
71
+ cancelRef.current?.focus(); };
72
+ document.addEventListener('keydown', keydown, true);
73
+ document.addEventListener('focusin', focusin);
74
+ return () => {
75
+ document.removeEventListener('keydown', keydown, true);
76
+ document.removeEventListener('focusin', focusin);
77
+ for (const { element, inert } of background)
78
+ element.inert = inert;
79
+ document.body.style.overflow = overflow;
80
+ if (opener?.isConnected)
81
+ opener.focus();
82
+ };
83
+ }, [cancel]);
84
+ if (typeof document === 'undefined')
85
+ return null;
86
+ return createPortal(_jsx("div", { ref: overlayRef, className: "fixed inset-0 z-[500] flex items-center justify-center bg-black/70", onMouseDown: event => { if (event.target === event.currentTarget)
87
+ cancel(); }, children: _jsxs("div", { ref: dialogRef, role: "dialog", "aria-modal": "true", "aria-labelledby": titleId, "aria-describedby": descriptionId, tabIndex: -1, className: "flex w-[420px] max-w-[calc(100vw-32px)] flex-col overflow-hidden rounded-md border border-white/[0.10] bg-[#111115] text-white", children: [_jsxs("div", { className: "flex h-[34px] items-center justify-between gap-2 border-b border-white/[0.05] px-3", children: [_jsx("h2", { id: titleId, className: "truncate text-[11px] font-medium uppercase tracking-[0.08em] text-white/80", children: prompt.title }), _jsx("button", { type: "button", onClick: cancel, "aria-label": "Cancel confirmation", className: "flex h-6 w-6 cursor-pointer items-center justify-center rounded-sm bg-white/[0.06] text-white/40 transition-colors hover:bg-white/[0.10] hover:text-white/70 focus-visible:outline focus-visible:outline-2 focus-visible:outline-white/25", children: _jsx(X, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }) })] }), _jsx("div", { className: "px-3 py-3", children: _jsx("p", { id: descriptionId, className: "break-words text-[12px] leading-relaxed text-[#a8a8b1]", children: prompt.description }) }), _jsxs("div", { className: "flex h-8 items-center justify-end gap-2 border-t border-white/[0.05] px-3", children: [_jsx("button", { ref: cancelRef, type: "button", onClick: cancel, className: "h-7 cursor-pointer rounded-sm bg-white/[0.06] px-3 text-[11px] text-white/60 transition-colors hover:bg-white/[0.10] hover:text-white/80 focus-visible:outline focus-visible:outline-2 focus-visible:outline-white/25", children: "Cancel" }), _jsx("button", { type: "button", onClick: confirm, className: "h-7 cursor-pointer rounded-sm border border-red-500/30 px-3 text-[11px] text-red-400/70 transition-colors hover:bg-red-500/10 hover:text-red-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-white/25", children: prompt.confirmLabel })] })] }) }), document.body);
88
+ }
89
+ //# sourceMappingURL=InAppConfirmationDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InAppConfirmationDialog.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/InAppConfirmationDialog.tsx"],"names":[],"mappings":"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"}
@@ -10,6 +10,6 @@ interface InputFieldProps {
10
10
  mono?: boolean;
11
11
  onBlur?: () => void;
12
12
  }
13
- export declare function InputField({ label, value, onChange, type, placeholder, rows, className, mono, onBlur }: InputFieldProps): React.JSX.Element;
13
+ export declare function InputField({ label, value, onChange, type, placeholder, rows, className, mono, onBlur, }: InputFieldProps): React.JSX.Element;
14
14
  export {};
15
15
  //# sourceMappingURL=InputField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputField.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/InputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAA;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAa,EAAE,WAAW,EAAE,IAAQ,EAAE,SAAc,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,qBA2BzI"}
1
+ {"version":3,"file":"InputField.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/InputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAA;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAa,EACb,WAAW,EACX,IAAQ,EACR,SAAc,EACd,IAAI,EACJ,MAAM,GACP,EAAE,eAAe,qBAkCjB"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- export function InputField({ label, value, onChange, type = 'text', placeholder, rows = 3, className = '', mono, onBlur }) {
4
- const inputClass = `w-full px-2.5 py-2 bg-[#2b2b2b] border border-[#27272a] rounded text-white text-[12px] placeholder-white/20 focus:outline-none focus:border-white/[0.15] transition-colors ${mono ? 'font-mono text-[11px]' : ''} ${className}`;
5
- return (_jsxs("div", { children: [_jsx("label", { className: "block text-[10px] text-white/30 mb-1", children: label }), type === 'textarea' ? (_jsx("textarea", { value: value, onChange: (e) => onChange(e.target.value), placeholder: placeholder, rows: rows, onBlur: onBlur, className: `${inputClass} resize-none` })) : (_jsx("input", { type: type, value: value, onChange: (e) => onChange(e.target.value), placeholder: placeholder, onBlur: onBlur, className: inputClass }))] }));
3
+ export function InputField({ label, value, onChange, type = 'text', placeholder, rows = 3, className = '', mono, onBlur, }) {
4
+ const inputId = React.useId();
5
+ const inputClass = `w-full px-2.5 py-1.5 bg-[#0c0c0e] border border-white/[0.06] rounded-[4px] text-white text-[12px] placeholder-[#57575e] focus:outline-none focus:border-white/25 transition-colors ${mono ? 'font-mono text-[11px]' : ''} ${className}`;
6
+ return (_jsxs("div", { children: [_jsx("label", { htmlFor: inputId, className: "block text-[10px] font-medium text-[#7f7f86] uppercase tracking-[0.08em] mb-1", children: label }), type === 'textarea' ? (_jsx("textarea", { id: inputId, "aria-label": label, value: value, onChange: (e) => onChange(e.target.value), placeholder: placeholder, rows: rows, onBlur: onBlur, className: `${inputClass} resize-none` })) : (_jsx("input", { id: inputId, "aria-label": label, type: type, value: value, onChange: (e) => onChange(e.target.value), placeholder: placeholder, onBlur: onBlur, className: inputClass }))] }));
6
7
  }
7
8
  //# sourceMappingURL=InputField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputField.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/InputField.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAmB;IACxI,MAAM,UAAU,GAAG,8KAA8K,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,EAAE,CAAA;IAEnP,OAAO,CACL,0BACE,gBAAO,SAAS,EAAC,sCAAsC,YAAE,KAAK,GAAS,EACtE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CACrB,mBACE,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,UAAU,cAAc,GACtC,CACH,CAAC,CAAC,CAAC,CACF,gBACE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,GACrB,CACH,IACG,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"InputField.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/InputField.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,MAAM,EACb,WAAW,EACX,IAAI,GAAG,CAAC,EACR,SAAS,GAAG,EAAE,EACd,IAAI,EACJ,MAAM,GACU;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;IAC7B,MAAM,UAAU,GAAG,sLACjB,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EACnC,IAAI,SAAS,EAAE,CAAA;IAEf,OAAO,CACL,0BACE,gBAAO,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,+EAA+E,YAAE,KAAK,GAAS,EACjI,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CACrB,mBACE,EAAE,EAAE,OAAO,gBACC,KAAK,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,UAAU,cAAc,GACtC,CACH,CAAC,CAAC,CAAC,CACF,gBACE,EAAE,EAAE,OAAO,gBACC,KAAK,EACjB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,GACrB,CACH,IACG,CACP,CAAA;AACH,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import type { MemberInfo, UserRole } from '../../../../stores/entitySettingsStore.js';
2
+ import type { AgentAccountMember, AgentAccountRole } from '@xenosystem/agent-interface-contract';
3
3
  interface MembersTableProps {
4
- members: MemberInfo[];
5
- onUpdateRole: (memberId: string, role: UserRole) => void;
4
+ members: AgentAccountMember[];
5
+ onUpdateRole: (memberId: string, role: Exclude<AgentAccountRole, 'owner'>) => void;
6
6
  onRemove: (memberId: string) => void;
7
7
  readonly?: boolean;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MembersTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/MembersTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAA;AAErF,UAAU,iBAAiB;IACzB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IACxD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,iBAAiB,qBA2CpG"}
1
+ {"version":3,"file":"MembersTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/MembersTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEhG,UAAU,iBAAiB;IACzB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClF,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,iBAAiB,qBA8CpG"}
@@ -2,6 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import { Trash2 } from 'lucide-react';
4
4
  export function MembersTable({ members, onUpdateRole, onRemove, readonly = false }) {
5
- return (_jsx("div", { className: "space-y-1", children: members.map((member) => (_jsxs("div", { className: "flex items-center justify-between py-2 px-3 rounded-md hover:bg-[#1E1E1E] group", children: [_jsxs("div", { className: "flex items-center gap-3 min-w-0 flex-1", children: [_jsx("div", { className: "w-7 h-7 rounded bg-[#252525] flex items-center justify-center text-[11px] text-white/60 font-medium flex-shrink-0", children: member.name.charAt(0).toUpperCase() }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[12px] text-white/80 truncate", children: member.name }), _jsx("div", { className: "text-[10px] text-white/30 truncate", children: member.email })] })] }), _jsxs("div", { className: "flex items-center gap-2 ml-3", children: [readonly || member.role === 'owner' ? (_jsx("span", { className: "text-[10px] text-white/30 uppercase tracking-wider px-2 py-1 bg-[#1E1E1E] rounded", children: member.role })) : (_jsxs("select", { value: member.role, onChange: (e) => onUpdateRole(member.id, e.target.value), className: "text-[11px] bg-[#2b2b2b] border border-[#27272a] rounded px-2 py-1 text-white/60 focus:outline-none", children: [_jsx("option", { value: "admin", children: "Admin" }), _jsx("option", { value: "editor", children: "Editor" }), _jsx("option", { value: "viewer", children: "Viewer" })] })), !readonly && member.role !== 'owner' && (_jsx("button", { onClick: () => onRemove(member.id), className: "opacity-0 group-hover:opacity-100 text-white/30 hover:text-red-400/70 transition-all", children: _jsx(Trash2, { className: "w-3.5 h-3.5" }) }))] })] }, member.id))) }));
5
+ return (_jsx("div", { className: "space-y-1", children: members.map((member) => (_jsxs("div", { className: "flex items-center justify-between py-2 px-3 rounded-md hover:bg-[#1E1E1E] group", children: [_jsxs("div", { className: "flex items-center gap-3 min-w-0 flex-1", children: [_jsx("div", { className: "w-7 h-7 rounded bg-[#252525] flex items-center justify-center text-[11px] text-white/60 font-medium flex-shrink-0", children: (member.name || member.email || member.userId).charAt(0).toUpperCase() }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[12px] text-white/80 truncate", children: member.name || member.userId }), _jsx("div", { className: "text-[10px] text-white/30 truncate", children: member.email })] })] }), _jsxs("div", { className: "flex items-center gap-2 ml-3", children: [readonly || member.role === 'owner' ? (_jsx("span", { className: "text-[10px] text-white/30 uppercase tracking-wider px-2 py-1 bg-[#1E1E1E] rounded", children: member.role })) : (_jsxs("select", { value: member.role, "aria-label": `Role for ${member.email || member.userId}`, onChange: (e) => onUpdateRole(member.id, e.target.value), className: "text-[11px] bg-[#2b2b2b] border border-[#27272a] rounded px-2 py-1 text-white/60 focus:outline-none", children: [_jsx("option", { value: "admin", children: "Admin" }), _jsx("option", { value: "member", children: "Member" }), _jsx("option", { value: "viewer", children: "Viewer" })] })), !readonly && member.role !== 'owner' && (_jsx("button", { type: "button", "aria-label": `Remove member ${member.email || member.userId}`, onClick: () => onRemove(member.id), className: "opacity-0 group-hover:opacity-100 text-white/30 hover:text-red-400/70 transition-all", children: _jsx(Trash2, { className: "w-3.5 h-3.5" }) }))] })] }, member.id))) }));
6
6
  }
7
7
  //# sourceMappingURL=MembersTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MembersTable.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/MembersTable.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAUrC,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAqB;IACnG,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,eAAqB,SAAS,EAAC,iFAAiF,aAC9G,eAAK,SAAS,EAAC,wCAAwC,aACrD,cAAK,SAAS,EAAC,mHAAmH,YAC/H,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAChC,EACN,eAAK,SAAS,EAAC,SAAS,aACtB,cAAK,SAAS,EAAC,oCAAoC,YAAE,MAAM,CAAC,IAAI,GAAO,EACvE,cAAK,SAAS,EAAC,oCAAoC,YAAE,MAAM,CAAC,KAAK,GAAO,IACpE,IACF,EACN,eAAK,SAAS,EAAC,8BAA8B,aAC1C,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CACrC,eAAM,SAAS,EAAC,mFAAmF,YAChG,MAAM,CAAC,IAAI,GACP,CACR,CAAC,CAAC,CAAC,CACF,kBACE,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAiB,CAAC,EACpE,SAAS,EAAC,qGAAqG,aAE/G,iBAAQ,KAAK,EAAC,OAAO,sBAAe,EACpC,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,EACtC,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,IAC/B,CACV,EACA,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CACvC,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAClC,SAAS,EAAC,sFAAsF,YAEhG,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,GAAG,GAC3B,CACV,IACG,KAlCE,MAAM,CAAC,EAAE,CAmCb,CACP,CAAC,GACE,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"MembersTable.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/MembersTable.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAUrC,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAqB;IACnG,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,eAAqB,SAAS,EAAC,iFAAiF,aAC9G,eAAK,SAAS,EAAC,wCAAwC,aACrD,cAAK,SAAS,EAAC,mHAAmH,YAC/H,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GACnE,EACN,eAAK,SAAS,EAAC,SAAS,aACtB,cAAK,SAAS,EAAC,oCAAoC,YAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,GAAO,EACxF,cAAK,SAAS,EAAC,oCAAoC,YAAE,MAAM,CAAC,KAAK,GAAO,IACpE,IACF,EACN,eAAK,SAAS,EAAC,8BAA8B,aAC1C,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CACrC,eAAM,SAAS,EAAC,mFAAmF,YAChG,MAAM,CAAC,IAAI,GACP,CACR,CAAC,CAAC,CAAC,CACF,kBACE,KAAK,EAAE,MAAM,CAAC,IAAI,gBACN,YAAY,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EACvD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAA2C,CAAC,EAC9F,SAAS,EAAC,qGAAqG,aAE/G,iBAAQ,KAAK,EAAC,OAAO,sBAAe,EACpC,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,EACtC,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,IAC/B,CACV,EACA,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CACvC,iBACE,IAAI,EAAC,QAAQ,gBACD,iBAAiB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAC5D,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAClC,SAAS,EAAC,sFAAsF,YAEhG,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,GAAG,GAC3B,CACV,IACG,KArCE,MAAM,CAAC,EAAE,CAsCb,CACP,CAAC,GACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { type AgentAuditRequest } from '@xenosystem/agent-interface-contract';
3
+ /** Key this component by the exact selected entity so old completions cannot cross scopes. */
4
+ export declare function ScopedAuditPanel({ entityType, entityId }: Pick<AgentAuditRequest, 'entityType' | 'entityId'>): React.JSX.Element;
5
+ //# sourceMappingURL=ScopedAuditPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopedAuditPanel.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/ScopedAuditPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAC1D,OAAO,EAA4C,KAAK,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAGvH,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,UAAU,CAAC,qBA+D5G"}