@xenosystem/agent-interface-ui 0.1.3

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 (384) hide show
  1. package/LICENSE +67 -0
  2. package/dist/adapters/agentHostPlatformBridge.d.ts +24 -0
  3. package/dist/adapters/agentHostPlatformBridge.d.ts.map +1 -0
  4. package/dist/adapters/agentHostPlatformBridge.js +1244 -0
  5. package/dist/adapters/agentHostPlatformBridge.js.map +1 -0
  6. package/dist/adapters/hubAgentPlatformBridge.d.ts +17 -0
  7. package/dist/adapters/hubAgentPlatformBridge.d.ts.map +1 -0
  8. package/dist/adapters/hubAgentPlatformBridge.js +109 -0
  9. package/dist/adapters/hubAgentPlatformBridge.js.map +1 -0
  10. package/dist/adapters/xenoAgentCompatibilityBridge.d.ts +14 -0
  11. package/dist/adapters/xenoAgentCompatibilityBridge.d.ts.map +1 -0
  12. package/dist/adapters/xenoAgentCompatibilityBridge.js +237 -0
  13. package/dist/adapters/xenoAgentCompatibilityBridge.js.map +1 -0
  14. package/dist/adapters/xenoAgentHostCatalog.d.ts +40 -0
  15. package/dist/adapters/xenoAgentHostCatalog.d.ts.map +1 -0
  16. package/dist/adapters/xenoAgentHostCatalog.js +228 -0
  17. package/dist/adapters/xenoAgentHostCatalog.js.map +1 -0
  18. package/dist/components/agent/AIStatusIndicator.d.ts +25 -0
  19. package/dist/components/agent/AIStatusIndicator.d.ts.map +1 -0
  20. package/dist/components/agent/AIStatusIndicator.js +85 -0
  21. package/dist/components/agent/AIStatusIndicator.js.map +1 -0
  22. package/dist/components/agent/AgentInterface.d.ts +21 -0
  23. package/dist/components/agent/AgentInterface.d.ts.map +1 -0
  24. package/dist/components/agent/AgentInterface.js +7586 -0
  25. package/dist/components/agent/AgentInterface.js.map +1 -0
  26. package/dist/components/agent/AgentOnboarding.d.ts +16 -0
  27. package/dist/components/agent/AgentOnboarding.d.ts.map +1 -0
  28. package/dist/components/agent/AgentOnboarding.js +423 -0
  29. package/dist/components/agent/AgentOnboarding.js.map +1 -0
  30. package/dist/components/agent/AgentPtyTerminalPanel.d.ts +13 -0
  31. package/dist/components/agent/AgentPtyTerminalPanel.d.ts.map +1 -0
  32. package/dist/components/agent/AgentPtyTerminalPanel.js +129 -0
  33. package/dist/components/agent/AgentPtyTerminalPanel.js.map +1 -0
  34. package/dist/components/agent/AgentView.d.ts +143 -0
  35. package/dist/components/agent/AgentView.d.ts.map +1 -0
  36. package/dist/components/agent/AgentView.js +7250 -0
  37. package/dist/components/agent/AgentView.js.map +1 -0
  38. package/dist/components/agent/AgentWorkbenchCliPanel.d.ts +15 -0
  39. package/dist/components/agent/AgentWorkbenchCliPanel.d.ts.map +1 -0
  40. package/dist/components/agent/AgentWorkbenchCliPanel.js +275 -0
  41. package/dist/components/agent/AgentWorkbenchCliPanel.js.map +1 -0
  42. package/dist/components/agent/AgentWorkbenchPanel.d.ts +791 -0
  43. package/dist/components/agent/AgentWorkbenchPanel.d.ts.map +1 -0
  44. package/dist/components/agent/AgentWorkbenchPanel.js +584 -0
  45. package/dist/components/agent/AgentWorkbenchPanel.js.map +1 -0
  46. package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts +11 -0
  47. package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts.map +1 -0
  48. package/dist/components/agent/AgentWorkspaceBrowserPanel.js +198 -0
  49. package/dist/components/agent/AgentWorkspaceBrowserPanel.js.map +1 -0
  50. package/dist/components/agent/AssistantTurnStatusNotice.d.ts +16 -0
  51. package/dist/components/agent/AssistantTurnStatusNotice.d.ts.map +1 -0
  52. package/dist/components/agent/AssistantTurnStatusNotice.js +54 -0
  53. package/dist/components/agent/AssistantTurnStatusNotice.js.map +1 -0
  54. package/dist/components/agent/CommandToolCard.d.ts +11 -0
  55. package/dist/components/agent/CommandToolCard.d.ts.map +1 -0
  56. package/dist/components/agent/CommandToolCard.js +29 -0
  57. package/dist/components/agent/CommandToolCard.js.map +1 -0
  58. package/dist/components/agent/FleetPanel.d.ts +28 -0
  59. package/dist/components/agent/FleetPanel.d.ts.map +1 -0
  60. package/dist/components/agent/FleetPanel.js +175 -0
  61. package/dist/components/agent/FleetPanel.js.map +1 -0
  62. package/dist/components/agent/GhostTextArea.d.ts +13 -0
  63. package/dist/components/agent/GhostTextArea.d.ts.map +1 -0
  64. package/dist/components/agent/GhostTextArea.js +21 -0
  65. package/dist/components/agent/GhostTextArea.js.map +1 -0
  66. package/dist/components/agent/IntakePanel.d.ts +29 -0
  67. package/dist/components/agent/IntakePanel.d.ts.map +1 -0
  68. package/dist/components/agent/IntakePanel.js +81 -0
  69. package/dist/components/agent/IntakePanel.js.map +1 -0
  70. package/dist/components/agent/KnowledgePanel.d.ts +25 -0
  71. package/dist/components/agent/KnowledgePanel.d.ts.map +1 -0
  72. package/dist/components/agent/KnowledgePanel.js +99 -0
  73. package/dist/components/agent/KnowledgePanel.js.map +1 -0
  74. package/dist/components/agent/MonacoDiffWorkbenchEditor.d.ts +9 -0
  75. package/dist/components/agent/MonacoDiffWorkbenchEditor.d.ts.map +1 -0
  76. package/dist/components/agent/MonacoDiffWorkbenchEditor.js +204 -0
  77. package/dist/components/agent/MonacoDiffWorkbenchEditor.js.map +1 -0
  78. package/dist/components/agent/MonacoWorkbenchEditor.d.ts +15 -0
  79. package/dist/components/agent/MonacoWorkbenchEditor.d.ts.map +1 -0
  80. package/dist/components/agent/MonacoWorkbenchEditor.js +380 -0
  81. package/dist/components/agent/MonacoWorkbenchEditor.js.map +1 -0
  82. package/dist/components/agent/PermissionDialog.d.ts +34 -0
  83. package/dist/components/agent/PermissionDialog.d.ts.map +1 -0
  84. package/dist/components/agent/PermissionDialog.js +67 -0
  85. package/dist/components/agent/PermissionDialog.js.map +1 -0
  86. package/dist/components/agent/PluginManager.d.ts +20 -0
  87. package/dist/components/agent/PluginManager.d.ts.map +1 -0
  88. package/dist/components/agent/PluginManager.js +506 -0
  89. package/dist/components/agent/PluginManager.js.map +1 -0
  90. package/dist/components/agent/RunReviewPanel.d.ts +52 -0
  91. package/dist/components/agent/RunReviewPanel.d.ts.map +1 -0
  92. package/dist/components/agent/RunReviewPanel.js +236 -0
  93. package/dist/components/agent/RunReviewPanel.js.map +1 -0
  94. package/dist/components/agent/SessionsPanel.d.ts +30 -0
  95. package/dist/components/agent/SessionsPanel.d.ts.map +1 -0
  96. package/dist/components/agent/SessionsPanel.js +247 -0
  97. package/dist/components/agent/SessionsPanel.js.map +1 -0
  98. package/dist/components/agent/acp/AcpAgentConfigForm.d.ts +19 -0
  99. package/dist/components/agent/acp/AcpAgentConfigForm.d.ts.map +1 -0
  100. package/dist/components/agent/acp/AcpAgentConfigForm.js +85 -0
  101. package/dist/components/agent/acp/AcpAgentConfigForm.js.map +1 -0
  102. package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.d.ts +10 -0
  103. package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.d.ts.map +1 -0
  104. package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js +80 -0
  105. package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js.map +1 -0
  106. package/dist/components/agent/acp/AcpAgentManager.d.ts +3 -0
  107. package/dist/components/agent/acp/AcpAgentManager.d.ts.map +1 -0
  108. package/dist/components/agent/acp/AcpAgentManager.js +152 -0
  109. package/dist/components/agent/acp/AcpAgentManager.js.map +1 -0
  110. package/dist/components/agent/acp/AcpAgentTestResultPanel.d.ts +9 -0
  111. package/dist/components/agent/acp/AcpAgentTestResultPanel.d.ts.map +1 -0
  112. package/dist/components/agent/acp/AcpAgentTestResultPanel.js +24 -0
  113. package/dist/components/agent/acp/AcpAgentTestResultPanel.js.map +1 -0
  114. package/dist/components/agent/acp/AcpApprovalPanel.d.ts +29 -0
  115. package/dist/components/agent/acp/AcpApprovalPanel.d.ts.map +1 -0
  116. package/dist/components/agent/acp/AcpApprovalPanel.js +37 -0
  117. package/dist/components/agent/acp/AcpApprovalPanel.js.map +1 -0
  118. package/dist/components/agent/acp/AcpCertificationPanel.d.ts +10 -0
  119. package/dist/components/agent/acp/AcpCertificationPanel.d.ts.map +1 -0
  120. package/dist/components/agent/acp/AcpCertificationPanel.js +41 -0
  121. package/dist/components/agent/acp/AcpCertificationPanel.js.map +1 -0
  122. package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.d.ts +11 -0
  123. package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.d.ts.map +1 -0
  124. package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js +32 -0
  125. package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js.map +1 -0
  126. package/dist/components/agent/acp/AcpProviderManagerPanel.d.ts +7 -0
  127. package/dist/components/agent/acp/AcpProviderManagerPanel.d.ts.map +1 -0
  128. package/dist/components/agent/acp/AcpProviderManagerPanel.js +69 -0
  129. package/dist/components/agent/acp/AcpProviderManagerPanel.js.map +1 -0
  130. package/dist/components/agent/acp/AcpProviderModelsPanel.d.ts +7 -0
  131. package/dist/components/agent/acp/AcpProviderModelsPanel.d.ts.map +1 -0
  132. package/dist/components/agent/acp/AcpProviderModelsPanel.js +108 -0
  133. package/dist/components/agent/acp/AcpProviderModelsPanel.js.map +1 -0
  134. package/dist/components/agent/acp/AcpSupportBundlePanel.d.ts +8 -0
  135. package/dist/components/agent/acp/AcpSupportBundlePanel.d.ts.map +1 -0
  136. package/dist/components/agent/acp/AcpSupportBundlePanel.js +56 -0
  137. package/dist/components/agent/acp/AcpSupportBundlePanel.js.map +1 -0
  138. package/dist/components/agent/compactionSummary.d.ts +28 -0
  139. package/dist/components/agent/compactionSummary.d.ts.map +1 -0
  140. package/dist/components/agent/compactionSummary.js +41 -0
  141. package/dist/components/agent/compactionSummary.js.map +1 -0
  142. package/dist/components/agent/monacoWorkbenchShared.d.ts +13 -0
  143. package/dist/components/agent/monacoWorkbenchShared.d.ts.map +1 -0
  144. package/dist/components/agent/monacoWorkbenchShared.js +226 -0
  145. package/dist/components/agent/monacoWorkbenchShared.js.map +1 -0
  146. package/dist/components/agent/settings/EntitySettingsLayout.d.ts +61 -0
  147. package/dist/components/agent/settings/EntitySettingsLayout.d.ts.map +1 -0
  148. package/dist/components/agent/settings/EntitySettingsLayout.js +72 -0
  149. package/dist/components/agent/settings/EntitySettingsLayout.js.map +1 -0
  150. package/dist/components/agent/settings/SettingsNavigation.d.ts +8 -0
  151. package/dist/components/agent/settings/SettingsNavigation.d.ts.map +1 -0
  152. package/dist/components/agent/settings/SettingsNavigation.js +39 -0
  153. package/dist/components/agent/settings/SettingsNavigation.js.map +1 -0
  154. package/dist/components/agent/settings/sections/AccessMembersSection.d.ts +3 -0
  155. package/dist/components/agent/settings/sections/AccessMembersSection.d.ts.map +1 -0
  156. package/dist/components/agent/settings/sections/AccessMembersSection.js +31 -0
  157. package/dist/components/agent/settings/sections/AccessMembersSection.js.map +1 -0
  158. package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.d.ts +25 -0
  159. package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.d.ts.map +1 -0
  160. package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js +56 -0
  161. package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js.map +1 -0
  162. package/dist/components/agent/settings/sections/DangerZoneSection.d.ts +3 -0
  163. package/dist/components/agent/settings/sections/DangerZoneSection.d.ts.map +1 -0
  164. package/dist/components/agent/settings/sections/DangerZoneSection.js +19 -0
  165. package/dist/components/agent/settings/sections/DangerZoneSection.js.map +1 -0
  166. package/dist/components/agent/settings/sections/DefaultAgentConfigSection.d.ts +3 -0
  167. package/dist/components/agent/settings/sections/DefaultAgentConfigSection.d.ts.map +1 -0
  168. package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js +66 -0
  169. package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js.map +1 -0
  170. package/dist/components/agent/settings/sections/EnvironmentSecretsSection.d.ts +3 -0
  171. package/dist/components/agent/settings/sections/EnvironmentSecretsSection.d.ts.map +1 -0
  172. package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js +87 -0
  173. package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js.map +1 -0
  174. package/dist/components/agent/settings/sections/ExportBackupSection.d.ts +3 -0
  175. package/dist/components/agent/settings/sections/ExportBackupSection.d.ts.map +1 -0
  176. package/dist/components/agent/settings/sections/ExportBackupSection.js +23 -0
  177. package/dist/components/agent/settings/sections/ExportBackupSection.js.map +1 -0
  178. package/dist/components/agent/settings/sections/GeneralSection.d.ts +3 -0
  179. package/dist/components/agent/settings/sections/GeneralSection.d.ts.map +1 -0
  180. package/dist/components/agent/settings/sections/GeneralSection.js +15 -0
  181. package/dist/components/agent/settings/sections/GeneralSection.js.map +1 -0
  182. package/dist/components/agent/settings/sections/IntegrationsSection.d.ts +3 -0
  183. package/dist/components/agent/settings/sections/IntegrationsSection.d.ts.map +1 -0
  184. package/dist/components/agent/settings/sections/IntegrationsSection.js +40 -0
  185. package/dist/components/agent/settings/sections/IntegrationsSection.js.map +1 -0
  186. package/dist/components/agent/settings/sections/NotificationsSection.d.ts +3 -0
  187. package/dist/components/agent/settings/sections/NotificationsSection.d.ts.map +1 -0
  188. package/dist/components/agent/settings/sections/NotificationsSection.js +28 -0
  189. package/dist/components/agent/settings/sections/NotificationsSection.js.map +1 -0
  190. package/dist/components/agent/settings/sections/ResourceLimitsSection.d.ts +3 -0
  191. package/dist/components/agent/settings/sections/ResourceLimitsSection.d.ts.map +1 -0
  192. package/dist/components/agent/settings/sections/ResourceLimitsSection.js +17 -0
  193. package/dist/components/agent/settings/sections/ResourceLimitsSection.js.map +1 -0
  194. package/dist/components/agent/settings/sections/SecurityComplianceSection.d.ts +3 -0
  195. package/dist/components/agent/settings/sections/SecurityComplianceSection.d.ts.map +1 -0
  196. package/dist/components/agent/settings/sections/SecurityComplianceSection.js +28 -0
  197. package/dist/components/agent/settings/sections/SecurityComplianceSection.js.map +1 -0
  198. package/dist/components/agent/settings/sections/UsageAnalyticsSection.d.ts +3 -0
  199. package/dist/components/agent/settings/sections/UsageAnalyticsSection.d.ts.map +1 -0
  200. package/dist/components/agent/settings/sections/UsageAnalyticsSection.js +17 -0
  201. package/dist/components/agent/settings/sections/UsageAnalyticsSection.js.map +1 -0
  202. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.d.ts +54 -0
  203. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.d.ts.map +1 -0
  204. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js +333 -0
  205. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js.map +1 -0
  206. package/dist/components/agent/settings/shared/CheckboxField.d.ts +13 -0
  207. package/dist/components/agent/settings/shared/CheckboxField.d.ts.map +1 -0
  208. package/dist/components/agent/settings/shared/CheckboxField.js +8 -0
  209. package/dist/components/agent/settings/shared/CheckboxField.js.map +1 -0
  210. package/dist/components/agent/settings/shared/InputField.d.ts +15 -0
  211. package/dist/components/agent/settings/shared/InputField.d.ts.map +1 -0
  212. package/dist/components/agent/settings/shared/InputField.js +7 -0
  213. package/dist/components/agent/settings/shared/InputField.js.map +1 -0
  214. package/dist/components/agent/settings/shared/MembersTable.d.ts +11 -0
  215. package/dist/components/agent/settings/shared/MembersTable.d.ts.map +1 -0
  216. package/dist/components/agent/settings/shared/MembersTable.js +7 -0
  217. package/dist/components/agent/settings/shared/MembersTable.js.map +1 -0
  218. package/dist/components/agent/settings/shared/SettingRow.d.ts +11 -0
  219. package/dist/components/agent/settings/shared/SettingRow.d.ts.map +1 -0
  220. package/dist/components/agent/settings/shared/SettingRow.js +6 -0
  221. package/dist/components/agent/settings/shared/SettingRow.js.map +1 -0
  222. package/dist/components/agent/settings/shared/SettingsCard.d.ts +11 -0
  223. package/dist/components/agent/settings/shared/SettingsCard.d.ts.map +1 -0
  224. package/dist/components/agent/settings/shared/SettingsCard.js +8 -0
  225. package/dist/components/agent/settings/shared/SettingsCard.js.map +1 -0
  226. package/dist/components/agent/settings/shared/ToggleSwitch.d.ts +8 -0
  227. package/dist/components/agent/settings/shared/ToggleSwitch.d.ts.map +1 -0
  228. package/dist/components/agent/settings/shared/ToggleSwitch.js +6 -0
  229. package/dist/components/agent/settings/shared/ToggleSwitch.js.map +1 -0
  230. package/dist/components/agent/settings/shared/UsageChart.d.ts +12 -0
  231. package/dist/components/agent/settings/shared/UsageChart.d.ts.map +1 -0
  232. package/dist/components/agent/settings/shared/UsageChart.js +16 -0
  233. package/dist/components/agent/settings/shared/UsageChart.js.map +1 -0
  234. package/dist/components/agent/toolCardDisplay.d.ts +24 -0
  235. package/dist/components/agent/toolCardDisplay.d.ts.map +1 -0
  236. package/dist/components/agent/toolCardDisplay.js +85 -0
  237. package/dist/components/agent/toolCardDisplay.js.map +1 -0
  238. package/dist/components/product/XenoAgentProductHeader.d.ts +18 -0
  239. package/dist/components/product/XenoAgentProductHeader.d.ts.map +1 -0
  240. package/dist/components/product/XenoAgentProductHeader.js +25 -0
  241. package/dist/components/product/XenoAgentProductHeader.js.map +1 -0
  242. package/dist/components/product/XenoAgentSessionTabs.d.ts +18 -0
  243. package/dist/components/product/XenoAgentSessionTabs.d.ts.map +1 -0
  244. package/dist/components/product/XenoAgentSessionTabs.js +103 -0
  245. package/dist/components/product/XenoAgentSessionTabs.js.map +1 -0
  246. package/dist/components/ui/CodeBlock.d.ts +8 -0
  247. package/dist/components/ui/CodeBlock.d.ts.map +1 -0
  248. package/dist/components/ui/CodeBlock.js +89 -0
  249. package/dist/components/ui/CodeBlock.js.map +1 -0
  250. package/dist/components/ui/XenoLogo.d.ts +11 -0
  251. package/dist/components/ui/XenoLogo.d.ts.map +1 -0
  252. package/dist/components/ui/XenoLogo.js +9 -0
  253. package/dist/components/ui/XenoLogo.js.map +1 -0
  254. package/dist/index.d.ts +50 -0
  255. package/dist/index.d.ts.map +1 -0
  256. package/dist/index.js +127 -0
  257. package/dist/index.js.map +1 -0
  258. package/dist/platformApiTypes.d.ts +3992 -0
  259. package/dist/platformApiTypes.d.ts.map +1 -0
  260. package/dist/platformApiTypes.js +2 -0
  261. package/dist/platformApiTypes.js.map +1 -0
  262. package/dist/platformBridge.d.ts +9 -0
  263. package/dist/platformBridge.d.ts.map +1 -0
  264. package/dist/platformBridge.js +19 -0
  265. package/dist/platformBridge.js.map +1 -0
  266. package/dist/providerSelector.d.ts +28 -0
  267. package/dist/providerSelector.d.ts.map +1 -0
  268. package/dist/providerSelector.js +104 -0
  269. package/dist/providerSelector.js.map +1 -0
  270. package/dist/services/connectionMode.d.ts +13 -0
  271. package/dist/services/connectionMode.d.ts.map +1 -0
  272. package/dist/services/connectionMode.js +31 -0
  273. package/dist/services/connectionMode.js.map +1 -0
  274. package/dist/sessionTabs.d.ts +48 -0
  275. package/dist/sessionTabs.d.ts.map +1 -0
  276. package/dist/sessionTabs.js +106 -0
  277. package/dist/sessionTabs.js.map +1 -0
  278. package/dist/stores/acpAgentStore.d.ts +264 -0
  279. package/dist/stores/acpAgentStore.d.ts.map +1 -0
  280. package/dist/stores/acpAgentStore.js +825 -0
  281. package/dist/stores/acpAgentStore.js.map +1 -0
  282. package/dist/stores/agentChatStore.d.ts +529 -0
  283. package/dist/stores/agentChatStore.d.ts.map +1 -0
  284. package/dist/stores/agentChatStore.js +5309 -0
  285. package/dist/stores/agentChatStore.js.map +1 -0
  286. package/dist/stores/agentIdeStore.d.ts +9 -0
  287. package/dist/stores/agentIdeStore.d.ts.map +1 -0
  288. package/dist/stores/agentIdeStore.js +8 -0
  289. package/dist/stores/agentIdeStore.js.map +1 -0
  290. package/dist/stores/agentSearchStore.d.ts +174 -0
  291. package/dist/stores/agentSearchStore.d.ts.map +1 -0
  292. package/dist/stores/agentSearchStore.js +305 -0
  293. package/dist/stores/agentSearchStore.js.map +1 -0
  294. package/dist/stores/authStore.d.ts +26 -0
  295. package/dist/stores/authStore.d.ts.map +1 -0
  296. package/dist/stores/authStore.js +163 -0
  297. package/dist/stores/authStore.js.map +1 -0
  298. package/dist/stores/entitySettingsStore.d.ts +236 -0
  299. package/dist/stores/entitySettingsStore.d.ts.map +1 -0
  300. package/dist/stores/entitySettingsStore.js +916 -0
  301. package/dist/stores/entitySettingsStore.js.map +1 -0
  302. package/dist/stores/permissionStore.d.ts +25 -0
  303. package/dist/stores/permissionStore.d.ts.map +1 -0
  304. package/dist/stores/permissionStore.js +58 -0
  305. package/dist/stores/permissionStore.js.map +1 -0
  306. package/dist/stores/suggestionStore.d.ts +29 -0
  307. package/dist/stores/suggestionStore.d.ts.map +1 -0
  308. package/dist/stores/suggestionStore.js +160 -0
  309. package/dist/stores/suggestionStore.js.map +1 -0
  310. package/dist/stores/tabStore.d.ts +30 -0
  311. package/dist/stores/tabStore.d.ts.map +1 -0
  312. package/dist/stores/tabStore.js +252 -0
  313. package/dist/stores/tabStore.js.map +1 -0
  314. package/dist/stores/themeStore.d.ts +13 -0
  315. package/dist/stores/themeStore.d.ts.map +1 -0
  316. package/dist/stores/themeStore.js +77 -0
  317. package/dist/stores/themeStore.js.map +1 -0
  318. package/dist/stores/workspaceStore.d.ts +175 -0
  319. package/dist/stores/workspaceStore.d.ts.map +1 -0
  320. package/dist/stores/workspaceStore.js +694 -0
  321. package/dist/stores/workspaceStore.js.map +1 -0
  322. package/dist/stores/xenoChatStore.d.ts +88 -0
  323. package/dist/stores/xenoChatStore.d.ts.map +1 -0
  324. package/dist/stores/xenoChatStore.js +572 -0
  325. package/dist/stores/xenoChatStore.js.map +1 -0
  326. package/dist/toolCardProjection.d.ts +33 -0
  327. package/dist/toolCardProjection.d.ts.map +1 -0
  328. package/dist/toolCardProjection.js +62 -0
  329. package/dist/toolCardProjection.js.map +1 -0
  330. package/dist/types/agentEditor.d.ts +39 -0
  331. package/dist/types/agentEditor.d.ts.map +1 -0
  332. package/dist/types/agentEditor.js +2 -0
  333. package/dist/types/agentEditor.js.map +1 -0
  334. package/dist/types/agentRuntimeProvider.d.ts +2 -0
  335. package/dist/types/agentRuntimeProvider.d.ts.map +1 -0
  336. package/dist/types/agentRuntimeProvider.js +2 -0
  337. package/dist/types/agentRuntimeProvider.js.map +1 -0
  338. package/dist/utils/acpExecutionAuthority.d.ts +18 -0
  339. package/dist/utils/acpExecutionAuthority.d.ts.map +1 -0
  340. package/dist/utils/acpExecutionAuthority.js +22 -0
  341. package/dist/utils/acpExecutionAuthority.js.map +1 -0
  342. package/dist/utils/agentAttachedContextPrompt.d.ts +2 -0
  343. package/dist/utils/agentAttachedContextPrompt.d.ts.map +1 -0
  344. package/dist/utils/agentAttachedContextPrompt.js +2 -0
  345. package/dist/utils/agentAttachedContextPrompt.js.map +1 -0
  346. package/dist/utils/agentModelContext.d.ts +2 -0
  347. package/dist/utils/agentModelContext.d.ts.map +1 -0
  348. package/dist/utils/agentModelContext.js +2 -0
  349. package/dist/utils/agentModelContext.js.map +1 -0
  350. package/dist/utils/agentReasoningEffort.d.ts +3 -0
  351. package/dist/utils/agentReasoningEffort.d.ts.map +1 -0
  352. package/dist/utils/agentReasoningEffort.js +2 -0
  353. package/dist/utils/agentReasoningEffort.js.map +1 -0
  354. package/dist/utils/agentRuntimeProvider.d.ts +3 -0
  355. package/dist/utils/agentRuntimeProvider.d.ts.map +1 -0
  356. package/dist/utils/agentRuntimeProvider.js +2 -0
  357. package/dist/utils/agentRuntimeProvider.js.map +1 -0
  358. package/dist/utils/cloudModels.d.ts +3 -0
  359. package/dist/utils/cloudModels.d.ts.map +1 -0
  360. package/dist/utils/cloudModels.js +181 -0
  361. package/dist/utils/cloudModels.js.map +1 -0
  362. package/dist/utils/conversationRuntime.d.ts +3 -0
  363. package/dist/utils/conversationRuntime.d.ts.map +1 -0
  364. package/dist/utils/conversationRuntime.js +2 -0
  365. package/dist/utils/conversationRuntime.js.map +1 -0
  366. package/dist/utils/fileCreateIntent.d.ts +16 -0
  367. package/dist/utils/fileCreateIntent.d.ts.map +1 -0
  368. package/dist/utils/fileCreateIntent.js +123 -0
  369. package/dist/utils/fileCreateIntent.js.map +1 -0
  370. package/dist/utils/legacyAgentRuntimeEvents.d.ts +2 -0
  371. package/dist/utils/legacyAgentRuntimeEvents.d.ts.map +1 -0
  372. package/dist/utils/legacyAgentRuntimeEvents.js +2 -0
  373. package/dist/utils/legacyAgentRuntimeEvents.js.map +1 -0
  374. package/dist/utils/markdownWindowsPaths.d.ts +2 -0
  375. package/dist/utils/markdownWindowsPaths.d.ts.map +1 -0
  376. package/dist/utils/markdownWindowsPaths.js +2 -0
  377. package/dist/utils/markdownWindowsPaths.js.map +1 -0
  378. package/dist/utils/workspaceSelectionContinuation.d.ts +2 -0
  379. package/dist/utils/workspaceSelectionContinuation.d.ts.map +1 -0
  380. package/dist/utils/workspaceSelectionContinuation.js +2 -0
  381. package/dist/utils/workspaceSelectionContinuation.js.map +1 -0
  382. package/package.json +53 -0
  383. package/src/agent.css +1156 -0
  384. package/src/foundation.css +62 -0
@@ -0,0 +1,247 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * SessionsPanel — ADE §5.5 attach and takeover, rendered.
4
+ *
5
+ * The substrate has had attach, takeover and input routing since §2.8; the
6
+ * protocol surface landed last commit. Neither put it in front of anybody.
7
+ *
8
+ * `projectSessionBoard` decides what may be claimed about the write lease;
9
+ * `describeSessionOutput` decides what to say about a snapshot. This renders
10
+ * them. The only judgements made here are visual, and the two that are not are
11
+ * marked where they happen.
12
+ *
13
+ * 🔴 **A refusal is shown VERBATIM, as the host wrote it.** Re-wording it here
14
+ * would create a second explanation of why a keystroke did nothing, and the two
15
+ * disagree the first time either changes. The host already says which human is
16
+ * typing; repeating that in our own words adds nothing and can contradict it.
17
+ *
18
+ * 🔴 **`canTakeOver` disables a button and nothing more.** The host arbitrates.
19
+ * A surface that treated it as the decision would be a second implementation of
20
+ * the lease, diverging optimistically.
21
+ *
22
+ * Design: monochromatic, rectangles only, no circles — `DESIGN_SYSTEM.md`.
23
+ */
24
+ import React, { useCallback, useEffect, useState } from 'react';
25
+ import { AlertTriangle, RefreshCw, Terminal } from 'lucide-react';
26
+ import { describeSessionOutput, projectSessionBoard, } from '@xenosystem/agent-interface-core';
27
+ import { getAgentPlatformBridge } from '../../platformBridge';
28
+ function tryBridge() {
29
+ try {
30
+ return getAgentPlatformBridge();
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ export function SessionsPanel({ viewerId }) {
37
+ const [board, setBoard] = useState(null);
38
+ const [unavailable, setUnavailable] = useState(null);
39
+ const [selected, setSelected] = useState(null);
40
+ const [output, setOutput] = useState(null);
41
+ const [refusal, setRefusal] = useState(null);
42
+ const [busy, setBusy] = useState(false);
43
+ const [draft, setDraft] = useState('');
44
+ /**
45
+ * What this session's typing is waiting behind.
46
+ *
47
+ * 🔴 Keyed by CONVERSATION, which a session does not know until the
48
+ * host tells it: `session.input` returns the queued instruction together
49
+ * with the conversation it landed in, because the id alone is something a
50
+ * surface can render and not act on.
51
+ */
52
+ const [queue, setQueue] = useState(null);
53
+ const refresh = useCallback(async () => {
54
+ const bridge = tryBridge();
55
+ if (!bridge?.session) {
56
+ setUnavailable('This surface cannot reach the Agent host.');
57
+ return;
58
+ }
59
+ setBusy(true);
60
+ try {
61
+ const list = await bridge.session.list({});
62
+ if (!list.available) {
63
+ // Distinct from "no sessions open" — a host with no substrate will never
64
+ // have any, and a person waiting for one should be told.
65
+ setUnavailable(list.reason ?? 'This host has no session substrate.');
66
+ return;
67
+ }
68
+ setUnavailable(null);
69
+ setBoard(projectSessionBoard(list.sessions, viewerId));
70
+ }
71
+ finally {
72
+ setBusy(false);
73
+ }
74
+ }, [viewerId]);
75
+ useEffect(() => { void refresh(); }, [refresh]);
76
+ /**
77
+ * Keeps the LIST live — ADE §2.8.
78
+ *
79
+ * 🔴 A run gets its session at TURN START, so a list read once on mount is
80
+ * correct for an instant and then wrong for everything that happens next: the
81
+ * session a person is waiting to watch is precisely the one opened after they
82
+ * looked. The host has always published `session.event`; nothing listened.
83
+ *
84
+ * Only the list. Output stays a poll because terminal bytes deliberately do
85
+ * not ride the event feed — they are per-viewer and large.
86
+ */
87
+ useEffect(() => {
88
+ const bridge = tryBridge();
89
+ if (!bridge?.session?.subscribeChanged)
90
+ return;
91
+ return bridge.session.subscribeChanged(() => { void refresh(); });
92
+ }, [refresh]);
93
+ const open = useCallback(async (sessionId) => {
94
+ const bridge = tryBridge();
95
+ if (!bridge?.session)
96
+ return;
97
+ setSelected(sessionId);
98
+ setRefusal(null);
99
+ // Attach first: it registers this surface as a viewer, which is what makes
100
+ // the viewer count true for everyone else. Reading output without attaching
101
+ // would show a session as unwatched while somebody watched it.
102
+ await bridge.session.attach({ sessionId, viewerId });
103
+ const snapshot = await bridge.session.snapshot({ sessionId });
104
+ setOutput(describeSessionOutput(snapshot));
105
+ await refresh();
106
+ }, [viewerId, refresh]);
107
+ const poll = useCallback(async () => {
108
+ const bridge = tryBridge();
109
+ if (!bridge?.session || !selected)
110
+ return;
111
+ const snapshot = await bridge.session.snapshot({ sessionId: selected });
112
+ setOutput(describeSessionOutput(snapshot));
113
+ }, [selected]);
114
+ /**
115
+ * Ordinary typing — ADE §2.8.
116
+ *
117
+ * 🔴 This panel had NO way to type. Its only write actions were "Take over"
118
+ * and "Hand back", so a person could seize the write lease and then say
119
+ * nothing — and `session.input`, the lease-honouring path, was bound nowhere
120
+ * because nothing needed it.
121
+ *
122
+ * Distinct from takeover on purpose: §5.5 says typing IS the takeover, so a
123
+ * panel that sent every keystroke through it would record an intervention for
124
+ * an ordinary message and seize a lease nobody asked to take.
125
+ */
126
+ const send = useCallback(async () => {
127
+ const bridge = tryBridge();
128
+ if (!bridge?.session?.input || !selected || !draft)
129
+ return;
130
+ setBusy(true);
131
+ try {
132
+ const result = await bridge.session.input({ sessionId: selected, viewerId, data: draft });
133
+ if (!result.ok) {
134
+ setRefusal(result.reason ?? 'That input could not be routed.');
135
+ return;
136
+ }
137
+ setDraft('');
138
+ /**
139
+ * \u{1F534} The OUTCOME, not a checkmark. `delivered: false` means the agent
140
+ * does not have this yet — the substrate refuses to write into a PTY with
141
+ * no process behind it, and an `acp` steer travels `turn.steer`, which can
142
+ * refuse. A panel that showed "sent" either way would be the exact lie
143
+ * the delivery reporting exists to prevent.
144
+ */
145
+ /**
146
+ * 🔴 Driven by `queued`, NOT by `disposition`.
147
+ *
148
+ * This said "Queued for the agent's next turn" on the disposition
149
+ * alone, and for a long time that was false: the `turn.queue` sink was
150
+ * announced and serviced by nobody, so the panel reported a queue
151
+ * entry that did not exist. The disposition is an INTENT; `queued` is
152
+ * the host saying it happened.
153
+ */
154
+ if (result.queued) {
155
+ await loadQueue(result.queued.conversationId);
156
+ setRefusal(null);
157
+ }
158
+ else {
159
+ setRefusal(result.delivered
160
+ ? null
161
+ : result.reason
162
+ ?? (result.disposition === 'queue'
163
+ // Intent without effect. Saying "queued" here would repeat
164
+ // the original defect in the surface.
165
+ ? 'The host meant to queue this and did not say it did.'
166
+ : 'Not delivered yet.'));
167
+ }
168
+ }
169
+ finally {
170
+ setBusy(false);
171
+ await poll();
172
+ }
173
+ }, [selected, viewerId, draft, poll]);
174
+ const loadQueue = useCallback(async (conversationId) => {
175
+ const bridge = tryBridge();
176
+ const list = bridge?.agent?.listQueuedInstructions;
177
+ // OPTIONAL, so an older host that has no queue surface degrades to
178
+ // showing none rather than throwing at a panel that mounted fine.
179
+ if (!list)
180
+ return;
181
+ const result = await list({ conversationId });
182
+ setQueue({
183
+ conversationId,
184
+ entries: result.queue.map((entry) => ({ id: entry.id, instruction: entry.instruction })),
185
+ });
186
+ }, []);
187
+ const dropQueued = useCallback(async (instructionId) => {
188
+ const bridge = tryBridge();
189
+ const drop = bridge?.agent?.dropQueuedInstruction;
190
+ if (!drop || !queue)
191
+ return;
192
+ setBusy(true);
193
+ try {
194
+ const result = await drop({ conversationId: queue.conversationId, instructionId });
195
+ // 🔴 Verbatim, and only on refusal. A panel that removed the row
196
+ // optimistically would show a queue the host still holds.
197
+ if (!result.success)
198
+ setRefusal(result.safeError ?? 'That instruction could not be dropped.');
199
+ await loadQueue(queue.conversationId);
200
+ }
201
+ finally {
202
+ setBusy(false);
203
+ }
204
+ }, [queue, loadQueue]);
205
+ const takeOver = useCallback(async (data) => {
206
+ const bridge = tryBridge();
207
+ if (!bridge?.session || !selected)
208
+ return;
209
+ setBusy(true);
210
+ try {
211
+ const result = await bridge.session.takeover({ sessionId: selected, viewerId, data });
212
+ // Verbatim. See the header — a second wording of the same refusal is a
213
+ // second source of truth about who is typing.
214
+ setRefusal(result.ok ? null : result.reason ?? 'The write lease could not be taken.');
215
+ }
216
+ finally {
217
+ setBusy(false);
218
+ await refresh();
219
+ await poll();
220
+ }
221
+ }, [selected, viewerId, refresh, poll]);
222
+ const release = useCallback(async () => {
223
+ const bridge = tryBridge();
224
+ if (!bridge?.session || !selected)
225
+ return;
226
+ const result = await bridge.session.release({ sessionId: selected, viewerId });
227
+ setRefusal(result.ok ? null : result.reason ?? null);
228
+ await refresh();
229
+ }, [selected, viewerId, refresh]);
230
+ const row = board?.rows.find((candidate) => candidate.sessionId === selected);
231
+ return (_jsxs("div", { className: "xeno-sessions", "data-testid": "sessions-panel", children: [_jsxs("header", { className: "xeno-sessions__header", children: [_jsxs("h2", { children: [_jsx(Terminal, { size: 14, "aria-hidden": true }), " Sessions"] }), _jsx("button", { type: "button", onClick: () => void refresh(), disabled: busy, "aria-label": "Refresh sessions", children: _jsx(RefreshCw, { size: 14, "aria-hidden": true }) })] }), unavailable ? (_jsx("p", { className: "xeno-sessions__notice", "data-testid": "sessions-unavailable", children: unavailable })) : (_jsxs(_Fragment, { children: [board?.notice && (_jsxs("p", { className: "xeno-sessions__notice", "data-testid": "sessions-notice", children: [_jsx(AlertTriangle, { size: 14, "aria-hidden": true }), " ", board.notice] })), board === null ? (_jsx("p", { className: "xeno-sessions__notice", children: "Loading sessions\u2026" })) : board.rows.length === 0 ? (_jsx("p", { className: "xeno-sessions__notice", children: "No sessions are open." })) : (_jsx("ol", { className: "xeno-sessions__list", "data-testid": "sessions-list", children: board.rows.map((entry) => (_jsx("li", { "data-lease": entry.lease, "data-selected": entry.sessionId === selected ? 'true' : undefined, children: _jsxs("button", { type: "button", onClick: () => void open(entry.sessionId), children: [_jsx("span", { children: entry.runId }), _jsx("span", { children: entry.mode }), _jsx("span", { children: entry.headline }), entry.othersWatching > 0 && (_jsxs("span", { children: [entry.othersWatching, " other viewer", entry.othersWatching === 1 ? '' : 's'] }))] }) }, entry.sessionId))) })), selected && row && (_jsxs("section", { className: "xeno-sessions__terminal", "data-testid": "session-terminal", children: [_jsx("h3", { children: selected }), output?.notice && (_jsx("p", { className: "xeno-sessions__notice", "data-testid": "session-output-notice", children: output.notice })), _jsx("pre", { children: output?.text ?? '' }), _jsxs("div", { className: "xeno-sessions__compose", children: [_jsx("input", { type: "text", value: draft, onChange: (event) => setDraft(event.target.value), placeholder: "Type to this session", "aria-label": "Type to this session", "data-testid": "session-draft" }), _jsx("button", { type: "button",
232
+ /* Empty input is not a message. The substrate would report it
233
+ undelivered, which is true and useless. */
234
+ disabled: busy || !draft, onClick: () => void send(), "data-testid": "session-send", children: "Send" })] }), queue && queue.entries.length > 0 && (
235
+ /**
236
+ * 🔴 What is waiting, and how to take it back.
237
+ *
238
+ * §16: a result must say whether the callee acted AND the
239
+ * surface must render it. The host has queued instructions
240
+ * since the sink was serviced; without this a person was told
241
+ * something was waiting and could neither see nor cancel it.
242
+ */
243
+ _jsxs("section", { className: "xeno-sessions__queue", "data-testid": "session-queue", children: [_jsx("h4", { children: "Waiting for the next turn" }), _jsx("ol", { children: queue.entries.map((entry) => (_jsxs("li", { "data-testid": "session-queue-entry", children: [_jsx("span", { children: entry.instruction }), _jsx("button", { type: "button", disabled: busy, onClick: () => void dropQueued(entry.id), "data-testid": "session-queue-drop", title: "Remove this instruction before it runs", children: "Drop" })] }, entry.id))) })] })), _jsxs("div", { className: "xeno-sessions__actions", children: [_jsx("button", { type: "button", onClick: () => void poll(), children: "Refresh output" }), _jsx("button", { type: "button",
244
+ /* Advice only — the host arbitrates regardless. */
245
+ disabled: busy || !row.canTakeOver, onClick: () => void takeOver(''), "data-testid": "session-takeover", children: "Take over" }), _jsx("button", { type: "button", disabled: busy || !row.canRelease, onClick: () => void release(), "data-testid": "session-release", children: "Hand back" })] }), refusal && (_jsx("p", { className: "xeno-sessions__notice", "data-testid": "session-refusal", children: refusal }))] }))] }))] }));
246
+ }
247
+ //# sourceMappingURL=SessionsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionsPanel.js","sourceRoot":"","sources":["../../../src/components/agent/SessionsPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { AcpAgentSaveInput, AcpAgentView } from '../../../stores/acpAgentStore';
3
+ interface AcpAgentConfigFormProps {
4
+ agent: AcpAgentView | null;
5
+ saving: boolean;
6
+ error: string | null;
7
+ onSave: (input: AcpAgentSaveInput) => Promise<{
8
+ success: boolean;
9
+ error?: string;
10
+ }>;
11
+ }
12
+ export declare function AcpAgentConfigForm({ agent, saving, error, onSave }: AcpAgentConfigFormProps): React.JSX.Element;
13
+ export declare function parseListText(value: string): string[];
14
+ export declare function parseEnvText(value: string): {
15
+ values: Record<string, string>;
16
+ error?: string;
17
+ };
18
+ export {};
19
+ //# sourceMappingURL=AcpAgentConfigForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcpAgentConfigForm.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpAgentConfigForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEpF,UAAU,uBAAuB;IAC/B,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF;AAED,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,uBAAuB,qBAqL3F;AAYD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAY9F"}
@@ -0,0 +1,85 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useEffect, useState } from 'react';
3
+ export function AcpAgentConfigForm({ agent, saving, error, onSave }) {
4
+ const [id, setId] = useState('');
5
+ const [name, setName] = useState('');
6
+ const [command, setCommand] = useState('');
7
+ const [argsText, setArgsText] = useState('');
8
+ const [cwd, setCwd] = useState('');
9
+ const [envText, setEnvText] = useState('');
10
+ const [enabled, setEnabled] = useState(false);
11
+ const [trustLevel, setTrustLevel] = useState('restricted');
12
+ const [localError, setLocalError] = useState(null);
13
+ useEffect(() => {
14
+ setId(agent?.id || '');
15
+ setName(agent?.name || '');
16
+ setCommand('');
17
+ setArgsText(agent?.args?.join('\n') || '');
18
+ setCwd('');
19
+ setEnvText('');
20
+ setEnabled(agent?.enabled === true);
21
+ setTrustLevel(agent?.trustLevel === 'workspace' ? 'workspace' : 'restricted');
22
+ setLocalError(null);
23
+ }, [agent?.id]);
24
+ const isEditing = !!agent;
25
+ const submit = async (event) => {
26
+ event.preventDefault();
27
+ const cleanId = id.trim();
28
+ const cleanName = name.trim();
29
+ if (!cleanId || !cleanName) {
30
+ setLocalError('ACP agent id and name are required.');
31
+ return;
32
+ }
33
+ const env = parseEnvText(envText);
34
+ if (env.error) {
35
+ setLocalError(env.error);
36
+ return;
37
+ }
38
+ const payload = {
39
+ id: cleanId,
40
+ name: cleanName,
41
+ enabled,
42
+ trustLevel,
43
+ args: parseListText(argsText),
44
+ };
45
+ if (command.trim())
46
+ payload.command = command.trim();
47
+ if (cwd.trim())
48
+ payload.cwd = cwd.trim();
49
+ if (Object.keys(env.values).length > 0)
50
+ payload.env = env.values;
51
+ const result = await onSave(payload);
52
+ if (result.success) {
53
+ setCommand('');
54
+ setCwd('');
55
+ setEnvText('');
56
+ setLocalError(null);
57
+ }
58
+ };
59
+ return (_jsxs("form", { onSubmit: submit, className: "min-h-0 space-y-3", children: [_jsxs("div", { className: "rounded border border-white/[0.06] bg-black/20 px-3 py-2", children: [_jsx("p", { className: "text-[10px] uppercase tracking-[0.14em] text-white/44", children: "Endpoint config" }), _jsx("p", { className: "mt-1 text-[10px] leading-relaxed text-white/30", children: "Command and arguments stay redacted after save. Approval and certification decide whether this endpoint can run." })] }), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-2", children: [_jsx(Field, { label: "Agent id", helper: "Stable registry id. Use lowercase names for portable configs.", children: _jsx("input", { value: id, onChange: (event) => setId(event.target.value), disabled: isEditing, placeholder: "fixture-normal", className: "acp-form-input" }) }), _jsx(Field, { label: "Display name", helper: "Visible name in the ACP Agent Manager.", children: _jsx("input", { value: name, onChange: (event) => setName(event.target.value), placeholder: "Fixture ACP normal", className: "acp-form-input" }) })] }), _jsx(Field, { label: isEditing ? 'Command path replacement' : 'Command path', helper: isEditing ? `Stored command is redacted as ${agent?.command || 'command'}. Leave blank to preserve it.` : 'Absolute executable path only. Shell commands are rejected by backend validation.', children: _jsx("input", { value: command, onChange: (event) => setCommand(event.target.value), placeholder: isEditing ? 'Leave blank to preserve stored command' : 'C:\\Program Files\\Agent\\agent.exe', className: "acp-form-input font-mono text-[11px]" }) }), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-2", children: [_jsx(Field, { label: "Args", helper: "One argument per line. Structured list only, not a shell command string.", children: _jsx("textarea", { value: argsText, onChange: (event) => setArgsText(event.target.value), rows: 4, placeholder: "--mode=normal", className: "acp-form-input resize-none font-mono text-[11px]" }) }), _jsx(Field, { label: "Working directory", helper: isEditing ? 'Leave blank to preserve stored cwd. Must be absolute if provided.' : 'Optional absolute cwd.', children: _jsx("input", { value: cwd, onChange: (event) => setCwd(event.target.value), placeholder: isEditing ? 'Leave blank to preserve cwd' : 'C:\\Users\\you\\project', className: "acp-form-input font-mono text-[11px]" }) })] }), _jsx(Field, { label: "Environment", helper: "Env keys only are shown after save. Non-secret fixture/config values only; raw tokens and keys are rejected.", children: _jsx("textarea", { value: envText, onChange: (event) => setEnvText(event.target.value), rows: 3, placeholder: "XENO_ACP_FIXTURE_MODE=normal", className: "acp-form-input resize-none font-mono text-[11px]" }) }), agent?.envKeys?.length ? (_jsxs("div", { className: "rounded border border-white/[0.05] bg-black/20 px-3 py-2", children: [_jsx("p", { className: "text-[10px] uppercase tracking-[0.14em] text-white/24", children: "Env keys only" }), _jsx("div", { className: "mt-1 flex flex-wrap gap-1.5", children: agent.envKeys.map((key) => (_jsx("span", { className: "rounded-[3px] bg-white/[0.06] px-1.5 py-0.5 font-mono text-[10px] text-white/48", children: key }, key))) })] })) : null, _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-2", children: [_jsxs("label", { className: "flex items-center justify-between rounded border border-white/[0.06] bg-black/20 px-3 py-2", children: [_jsxs("span", { children: [_jsx("span", { className: "block text-[10px] uppercase tracking-[0.14em] text-white/28", children: "Enabled" }), _jsx("span", { className: "block text-[10px] text-white/32", children: "Disabled configs cannot be tested or launched." })] }), _jsx("input", { type: "checkbox", checked: enabled, onChange: (event) => setEnabled(event.target.checked), className: "h-4 w-4 accent-white" })] }), _jsx(Field, { label: "Trust level", helper: "Restricted is the default. Workspace still stays under XENO policy.", children: _jsxs("select", { value: trustLevel, onChange: (event) => setTrustLevel(event.target.value === 'workspace' ? 'workspace' : 'restricted'), className: "acp-form-input", children: [_jsx("option", { value: "restricted", children: "restricted" }), _jsx("option", { value: "workspace", children: "workspace" })] }) })] }), (localError || error) && (_jsx("div", { className: "rounded border border-[#4b1f24] bg-[#1a0f12] px-3 py-2 text-[11px] leading-relaxed text-[#ffb0b0]", children: localError || error })), _jsx("button", { type: "submit", disabled: saving, className: "h-8 w-full rounded-[4px] bg-white/[0.09] px-3 text-[10px] uppercase tracking-[0.13em] text-white/72 transition-transform hover:bg-white/[0.13] active:translate-y-[1px] disabled:opacity-35", children: saving ? 'Saving...' : isEditing ? 'Save ACP agent' : 'Create ACP agent' })] }));
60
+ }
61
+ function Field({ label, helper, children }) {
62
+ return (_jsxs("label", { className: "block", children: [_jsx("span", { className: "block text-[10px] uppercase tracking-[0.14em] text-white/30", children: label }), _jsx("span", { className: "mb-1 mt-0.5 block text-[10px] leading-relaxed text-white/24", children: helper }), children] }));
63
+ }
64
+ export function parseListText(value) {
65
+ return value
66
+ .split(/\r?\n/g)
67
+ .map((item) => item.trim())
68
+ .filter(Boolean);
69
+ }
70
+ export function parseEnvText(value) {
71
+ const values = {};
72
+ const lines = parseListText(value);
73
+ for (const line of lines) {
74
+ const index = line.indexOf('=');
75
+ if (index <= 0)
76
+ return { values: {}, error: `Invalid env entry: ${line}` };
77
+ const key = line.slice(0, index).trim();
78
+ const itemValue = line.slice(index + 1);
79
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key))
80
+ return { values: {}, error: `Invalid env key: ${key}` };
81
+ values[key] = itemValue;
82
+ }
83
+ return { values };
84
+ }
85
+ //# sourceMappingURL=AcpAgentConfigForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcpAgentConfigForm.js","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpAgentConfigForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { AcpAgentDiagnostics } from '../../../stores/acpAgentStore';
3
+ interface AcpAgentDiagnosticsPanelProps {
4
+ diagnostics: AcpAgentDiagnostics | null;
5
+ loading: boolean;
6
+ onRefresh: () => void;
7
+ }
8
+ export declare function AcpAgentDiagnosticsPanel({ diagnostics, loading, onRefresh }: AcpAgentDiagnosticsPanelProps): React.JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=AcpAgentDiagnosticsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcpAgentDiagnosticsPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpAgentDiagnosticsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAExE,UAAU,6BAA6B;IACrC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,6BAA6B,qBAoG1G"}
@@ -0,0 +1,80 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ export function AcpAgentDiagnosticsPanel({ diagnostics, loading, onRefresh }) {
4
+ const triage = diagnostics ? buildDiagnosticsTriage(diagnostics.agents) : null;
5
+ return (_jsxs("section", { className: "min-h-0 rounded border border-white/[0.06] bg-black/20", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-white/[0.05] px-3 py-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-[10px] uppercase tracking-[0.14em] text-white/28", children: "Diagnostics UX" }), _jsx("p", { className: "mt-0.5 text-[10px] uppercase tracking-[0.14em] text-white/38", children: "Redacted diagnostics" }), _jsx("p", { className: "truncate text-[10px] text-white/25", children: "Registry health, launch blockers, approval state, secret refs, command basenames, and env keys only." })] }), _jsx("button", { type: "button", onClick: onRefresh, disabled: loading, className: "rounded-[3px] border border-white/[0.06] px-2 py-1 text-[10px] uppercase tracking-[0.12em] text-white/42 transition-colors hover:bg-white/[0.06] disabled:opacity-35", children: loading ? 'Loading' : 'Refresh' })] }), _jsx("div", { className: "space-y-3 p-3", children: !diagnostics ? (_jsx("p", { className: "text-[11px] leading-relaxed text-white/30", children: "Diagnostics have not been loaded yet. Refresh to inspect the redacted registry summary." })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-2", children: [_jsx(Metric, { label: "Agents", value: String(diagnostics.agentCount) }), _jsx(Metric, { label: "Enabled", value: String(diagnostics.enabledCount) }), _jsx(Metric, { label: "Version", value: String(diagnostics.version) }), _jsx(Metric, { label: "Repaired", value: diagnostics.repaired ? 'yes' : 'no', tone: diagnostics.repaired ? 'warn' : 'default' })] }), triage && (_jsxs("div", { className: "space-y-2 rounded border border-white/[0.05] bg-white/[0.025] px-3 py-2", children: [_jsxs("div", { className: "grid grid-cols-2 gap-2", children: [_jsx(Metric, { label: "Launch blockers", value: String(triage.launchBlockerCount), tone: triage.launchBlockerCount ? 'warn' : 'default' }), _jsx(Metric, { label: "Runnable providers", value: String(triage.runnableProviderCount) }), _jsx(Metric, { label: "Secret refs missing", value: String(triage.secretAttentionCount), tone: triage.secretAttentionCount ? 'warn' : 'default' }), _jsx(Metric, { label: "Process warnings", value: String(triage.processWarningCount), tone: triage.processWarningCount ? 'warn' : 'default' })] }), _jsxs("div", { children: [_jsx("p", { className: "text-[10px] uppercase tracking-[0.14em] text-white/22", children: "Operator triage" }), triage.blockers.length === 0 ? (_jsx("p", { className: "mt-1 text-[10px] leading-relaxed text-[#96e59d]/62", children: "No launch blockers detected in redacted diagnostics." })) : (_jsx("div", { className: "mt-1 space-y-1", children: triage.blockers.map((blocker) => (_jsx("p", { className: "text-[10px] leading-relaxed text-[#ffd38a]/66", children: blocker }, blocker))) }))] })] })), _jsxs("div", { className: "rounded border border-white/[0.05] bg-white/[0.025] px-3 py-2", children: [_jsx("p", { className: "text-[10px] uppercase tracking-[0.14em] text-white/22", children: "Registry" }), _jsx("p", { className: "mt-1 truncate font-mono text-[10px] text-white/42", children: diagnostics.path }), diagnostics.backupPath && (_jsxs("p", { className: "mt-1 truncate font-mono text-[10px] text-[#ffd38a]/58", children: ["Backup: ", diagnostics.backupPath] }))] }), _jsx("div", { className: "space-y-1.5", children: diagnostics.agents.length === 0 ? (_jsx("p", { className: "text-[11px] text-white/28", children: "No configured ACP agents in diagnostics." })) : diagnostics.agents.map((agent) => (_jsxs("div", { className: "rounded border border-white/[0.045] bg-black/20 px-2.5 py-2", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("p", { className: "truncate text-[11px] text-white/62", children: agent.name }), _jsx("span", { className: "rounded-[3px] bg-white/[0.05] px-1.5 py-0.5 text-[9px] uppercase tracking-[0.1em] text-white/34", children: agent.enabled ? 'enabled' : 'disabled' })] }), _jsx("p", { className: "mt-1 truncate font-mono text-[10px] text-white/30", children: agent.command }), _jsxs("p", { className: "mt-1 text-[10px] text-white/24", children: ["Certification: ", agent.certification?.status || 'not_certified'] }), agent.providerVersionReadiness && (_jsxs("p", { className: `mt-1 text-[10px] ${agent.providerVersionReadiness.ok ? 'text-[#96e59d]/55' : 'text-[#ffd38a]/66'}`, children: ["Provider version: ", formatProviderVersion(agent)] })), _jsxs("p", { className: "mt-1 text-[10px] text-white/24", children: ["Env keys only: ", agent.envKeys.length ? agent.envKeys.join(', ') : 'none'] }), agent.providerReview && (_jsxs("div", { className: "mt-2 rounded border border-white/[0.04] bg-white/[0.02] px-2 py-1.5", children: [_jsxs("p", { className: "truncate text-[10px] text-white/34", children: ["Provider diagnostics: ", agent.providerReview.displayName || agent.providerReview.providerId] }), _jsxs("p", { className: "mt-1 text-[10px] text-white/24", children: ["Approval state: ", agent.providerReview.approvalState || 'unknown', "; runnable: ", agent.providerReview.runnable ? 'yes' : 'no'] }), _jsxs("p", { className: "mt-1 text-[10px] text-white/24", children: ["Secret refs: ", formatSecretRefs(agent)] }), _jsxs("p", { className: "mt-1 text-[10px] text-white/24", children: ["Missing required refs: ", agent.providerReview.secretBinding?.missingRequiredRefs.length ? agent.providerReview.secretBinding.missingRequiredRefs.join(', ') : 'none'] }), _jsxs("p", { className: "mt-1 text-[10px] text-white/24", children: ["Process containment: ", formatEnforcement(agent)] })] }))] }, agent.id))) })] })) })] }));
6
+ }
7
+ function Metric({ label, value, tone = 'default' }) {
8
+ return (_jsxs("div", { className: "rounded border border-white/[0.045] bg-black/20 px-2.5 py-2", children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.14em] text-white/22", children: label }), _jsx("p", { className: `mt-1 font-mono text-[13px] ${tone === 'warn' ? 'text-[#ffd38a]' : 'text-white/62'}`, children: value })] }));
9
+ }
10
+ function buildDiagnosticsTriage(agents) {
11
+ let launchBlockerCount = 0;
12
+ let runnableProviderCount = 0;
13
+ let secretAttentionCount = 0;
14
+ let processWarningCount = 0;
15
+ const blockers = [];
16
+ for (const agent of agents) {
17
+ const reasons = [];
18
+ const provider = agent.providerReview;
19
+ if (!agent.enabled)
20
+ reasons.push('disabled');
21
+ if (!isFixtureAgent(agent) && agent.certification?.status !== 'certified')
22
+ reasons.push('not certified');
23
+ if (provider?.runnable)
24
+ runnableProviderCount += 1;
25
+ if (provider?.approvalState === 'missing' || provider?.approvalState === 'stale' || provider?.approvalState === 'blocked') {
26
+ reasons.push(`approval state ${provider.approvalState}`);
27
+ }
28
+ if (provider?.secretBinding && !provider.secretBinding.complete) {
29
+ reasons.push('missing required refs');
30
+ secretAttentionCount += 1;
31
+ }
32
+ if (agent.providerVersionReadiness && !agent.providerVersionReadiness.ok) {
33
+ reasons.push(`provider version ${agent.providerVersionReadiness.status}`);
34
+ }
35
+ if (isNotEnforced(provider?.enforcementClassification?.network) || isNotEnforced(provider?.enforcementClassification?.filesystem)) {
36
+ processWarningCount += 1;
37
+ }
38
+ if (reasons.length) {
39
+ launchBlockerCount += 1;
40
+ blockers.push(`${agent.name}: ${reasons.join(', ')}`);
41
+ }
42
+ }
43
+ return {
44
+ launchBlockerCount,
45
+ runnableProviderCount,
46
+ secretAttentionCount,
47
+ processWarningCount,
48
+ blockers: blockers.slice(0, 4),
49
+ };
50
+ }
51
+ function formatProviderVersion(agent) {
52
+ const readiness = agent.providerVersionReadiness;
53
+ if (!readiness)
54
+ return 'not checked';
55
+ const installed = readiness.installedVersion || 'unknown';
56
+ const required = readiness.minimumVersion ? ` >=${readiness.minimumVersion}` : '';
57
+ const hint = readiness.ok ? '' : readiness.updateHint ? `; ${readiness.updateHint}` : '';
58
+ return `${readiness.status} (${readiness.agentId} ${installed}${required})${hint}`;
59
+ }
60
+ function formatSecretRefs(agent) {
61
+ const provider = agent.providerReview;
62
+ if (!provider)
63
+ return 'none';
64
+ const refs = [...provider.requiredAuthRefs, ...provider.optionalAuthRefs];
65
+ return refs.length ? refs.join(', ') : 'none';
66
+ }
67
+ function formatEnforcement(agent) {
68
+ const enforcement = agent.providerReview?.enforcementClassification;
69
+ const parts = [enforcement?.network, enforcement?.filesystem].filter((item) => !!item);
70
+ return parts.length ? parts.join('; ') : 'not reported';
71
+ }
72
+ function isFixtureAgent(agent) {
73
+ return agent.certification?.status === 'fixture_only'
74
+ || agent.id.toLowerCase().includes('fixture')
75
+ || agent.name.toLowerCase().includes('fixture');
76
+ }
77
+ function isNotEnforced(value) {
78
+ return !!value && value.includes('not_enforced');
79
+ }
80
+ //# sourceMappingURL=AcpAgentDiagnosticsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcpAgentDiagnosticsPanel.js","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpAgentDiagnosticsPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function AcpAgentManager(): React.JSX.Element;
3
+ //# sourceMappingURL=AcpAgentManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcpAgentManager.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpAgentManager.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAgC3D,wBAAgB,eAAe,sBAqQ9B"}