@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,28 @@
1
+ /**
2
+ * FleetPanel โ€” ADE ยง9 step 6, rendered.
3
+ *
4
+ * The step where the workspace stops being an agent WINDOW and becomes a view
5
+ * over many runs at once. `fleet.view` composes what three subsystems know;
6
+ * `projectFleetBoard` decides what may be claimed and in what order; this
7
+ * renders it and does no judging of its own.
8
+ *
9
+ * That split is the same one `RunReviewPanel` uses, for the same reason: an
10
+ * honesty rule written in a component is enforced by whoever writes the next
11
+ * component. The only decisions here are visual.
12
+ *
13
+ * ๐Ÿ”ด **The notice renders ABOVE the rows, not beside them.** A fleet board is
14
+ * scanned, and a caveat placed next to a list is read after the list โ€” by which
15
+ * point the reader has already concluded the fleet is fine. Where the board is
16
+ * not the whole picture, that is the first thing on the screen.
17
+ *
18
+ * Design: monochromatic, rectangles only, no circles โ€” `DESIGN_SYSTEM.md`.
19
+ */
20
+ import React from 'react';
21
+ export interface FleetPanelProps {
22
+ /** Paths each run has claimed, when the caller knows them. Advisory only โ€”
23
+ * contested paths are computed from OBSERVED diffs, because nothing forces an
24
+ * agent to claim before writing. */
25
+ claimedPathsByRun?: Record<string, string[]>;
26
+ }
27
+ export declare function FleetPanel({ claimedPathsByRun }: FleetPanelProps): React.ReactElement;
28
+ //# sourceMappingURL=FleetPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FleetPanel.d.ts","sourceRoot":"","sources":["../../../src/components/agent/FleetPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAA;AAsB/D,MAAM,WAAW,eAAe;IAC9B;;yCAEqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAC7C;AAED,wBAAgB,UAAU,CAAC,EAAE,iBAAiB,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAkVrF"}
@@ -0,0 +1,175 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * FleetPanel โ€” ADE ยง9 step 6, rendered.
4
+ *
5
+ * The step where the workspace stops being an agent WINDOW and becomes a view
6
+ * over many runs at once. `fleet.view` composes what three subsystems know;
7
+ * `projectFleetBoard` decides what may be claimed and in what order; this
8
+ * renders it and does no judging of its own.
9
+ *
10
+ * That split is the same one `RunReviewPanel` uses, for the same reason: an
11
+ * honesty rule written in a component is enforced by whoever writes the next
12
+ * component. The only decisions here are visual.
13
+ *
14
+ * ๐Ÿ”ด **The notice renders ABOVE the rows, not beside them.** A fleet board is
15
+ * scanned, and a caveat placed next to a list is read after the list โ€” by which
16
+ * point the reader has already concluded the fleet is fine. Where the board is
17
+ * not the whole picture, that is the first thing on the screen.
18
+ *
19
+ * Design: monochromatic, rectangles only, no circles โ€” `DESIGN_SYSTEM.md`.
20
+ */
21
+ import React, { useCallback, useEffect, useState } from 'react';
22
+ import { AlertTriangle, GitBranch, RefreshCw } from 'lucide-react';
23
+ import { projectFleetBoard } from '@xenosystem/agent-interface-core';
24
+ import { getAgentPlatformBridge } from '../../platformBridge';
25
+ /**
26
+ * The bridge, or null when this surface has none configured.
27
+ *
28
+ * `getAgentPlatformBridge()` throws when unconfigured, which is right for a
29
+ * caller that cannot proceed and wrong here: a fleet board that cannot reach the
30
+ * host should say so, not take the surface down.
31
+ */
32
+ function tryBridge() {
33
+ try {
34
+ return getAgentPlatformBridge();
35
+ }
36
+ catch {
37
+ return null;
38
+ }
39
+ }
40
+ export function FleetPanel({ claimedPathsByRun }) {
41
+ const [board, setBoard] = useState(null);
42
+ /**
43
+ * Messages withheld from one run, awaiting this reader (ยง6 `hold`).
44
+ *
45
+ * Opened per run rather than fetched for all of them: the fleet row
46
+ * carries the COUNT, and the text is a deliberate second request โ€” the
47
+ * event feed that feeds this board carries ids and counts and never
48
+ * message bytes.
49
+ */
50
+ const [held, setHeld] = useState(null);
51
+ const [heldBusy, setHeldBusy] = useState(false);
52
+ const [busy, setBusy] = useState(false);
53
+ const [unreachable, setUnreachable] = useState(false);
54
+ const refresh = useCallback(async () => {
55
+ const bridge = tryBridge();
56
+ if (!bridge?.fleet) {
57
+ // Distinct from an empty fleet. "No runs" and "cannot ask" are different
58
+ // facts, and a board that showed both as an empty list would have a person
59
+ // waiting for runs that were never going to appear.
60
+ setUnreachable(true);
61
+ return;
62
+ }
63
+ setBusy(true);
64
+ try {
65
+ const view = await bridge.fleet.view({ ...(claimedPathsByRun ? { claimedPathsByRun } : {}) });
66
+ setUnreachable(false);
67
+ setBoard(projectFleetBoard(view));
68
+ }
69
+ finally {
70
+ setBusy(false);
71
+ }
72
+ }, [claimedPathsByRun]);
73
+ const openHeld = useCallback(async (runId) => {
74
+ const bridge = tryBridge();
75
+ const list = bridge?.agent?.listHeldMessages;
76
+ // OPTIONAL, so an older host with no coordination surface degrades to
77
+ // showing nothing rather than throwing at a board that rendered fine.
78
+ if (!list)
79
+ return;
80
+ const result = await list({ runId });
81
+ setHeld({
82
+ runId,
83
+ available: result.available,
84
+ ...(result.reason === undefined ? {} : { reason: result.reason }),
85
+ messages: result.held.map((message) => ({
86
+ id: message.id,
87
+ fromRunId: message.fromRunId,
88
+ text: message.text,
89
+ })),
90
+ });
91
+ }, []);
92
+ const approveHeld = useCallback(async (messageId) => {
93
+ const bridge = tryBridge();
94
+ const release = bridge?.agent?.releaseHeldMessage;
95
+ if (!release || !held)
96
+ return;
97
+ setHeldBusy(true);
98
+ try {
99
+ const result = await release({ runId: held.runId, messageId });
100
+ // ๐Ÿ”ด `expired` is an ORDINARY outcome, not a failure: a second
101
+ // reader may have approved it, or the run may have ended. Reported
102
+ // verbatim rather than reworded, and the list is re-read either way so
103
+ // the board never shows an approval that did not happen.
104
+ if (result.status !== 'delivered') {
105
+ setHeld((current) => (current
106
+ ? { ...current, reason: result.reason ?? `That message was ${result.status}.` }
107
+ : current));
108
+ }
109
+ await openHeld(held.runId);
110
+ await refresh();
111
+ }
112
+ finally {
113
+ setHeldBusy(false);
114
+ }
115
+ }, [held, openHeld]);
116
+ /**
117
+ * Pins or clears this run's inbound policy โ€” ยง6's override.
118
+ *
119
+ * ๐Ÿ”ด BOTH reads are refreshed: the held list, because pinning `accept` does
120
+ * not release what is already held and a panel that stopped showing them
121
+ * would imply it did; and the board, because the row badge is where the pin
122
+ * becomes visible at all. One screen, two reads โ€” refresh both or the surface
123
+ * disagrees with the host.
124
+ */
125
+ const pinPolicy = useCallback(async (policy) => {
126
+ const bridge = tryBridge();
127
+ const set = bridge?.agent?.setInboundPolicy;
128
+ // OPTIONAL for the same reason as the calls above: an older host without
129
+ // this method degrades to a panel that cannot pin, not to a thrown board.
130
+ if (!set || !held)
131
+ return;
132
+ setHeldBusy(true);
133
+ try {
134
+ const result = await set({ runId: held.runId, policy });
135
+ if (!result.ok) {
136
+ setHeld((current) => (current
137
+ ? { ...current, reason: result.reason ?? 'That policy could not be set.' }
138
+ : current));
139
+ }
140
+ await openHeld(held.runId);
141
+ await refresh();
142
+ }
143
+ finally {
144
+ setHeldBusy(false);
145
+ }
146
+ }, [held, openHeld, refresh]);
147
+ useEffect(() => { void refresh(); }, [refresh]);
148
+ /**
149
+ * Keeps the board live โ€” ADE ยง5.2/ยง5.4.
150
+ *
151
+ * ๐Ÿ”ด Read once, this board is accurate for an instant. Every fact on it
152
+ * moves without the reader touching anything: a run takes a claim, two runs
153
+ * collide, a diff grows, a run stops on a permission prompt. A person decides
154
+ * whether work is safe to land from this, and a stale board answers that
155
+ * question with yesterday's state while looking current.
156
+ */
157
+ useEffect(() => {
158
+ const bridge = tryBridge();
159
+ if (!bridge?.fleet?.subscribeChanged)
160
+ return;
161
+ return bridge.fleet.subscribeChanged(() => { void refresh(); });
162
+ }, [refresh]);
163
+ return (_jsxs("div", { className: "xeno-fleet", "data-testid": "fleet-panel", children: [_jsxs("header", { className: "xeno-fleet__header", children: [_jsxs("h2", { children: [_jsx(GitBranch, { size: 14, "aria-hidden": true }), " Fleet"] }), _jsx("button", { type: "button", onClick: () => void refresh(), disabled: busy, "aria-label": "Refresh fleet", children: _jsx(RefreshCw, { size: 14, "aria-hidden": true }) })] }), unreachable ? (_jsx("p", { className: "xeno-fleet__notice", "data-testid": "fleet-unreachable", children: "This surface cannot reach the Agent host, so there is no fleet to show." })) : board === null ? (_jsx("p", { className: "xeno-fleet__notice", children: "Loading the fleet\u2026" })) : (_jsxs(_Fragment, { children: [board.notice && (_jsxs("p", { className: "xeno-fleet__notice", "data-testid": "fleet-notice", children: [_jsx(AlertTriangle, { size: 14, "aria-hidden": true }), " ", board.notice] })), board.liveCollisions.length > 0 && (_jsxs("section", { className: "xeno-fleet__collisions", "data-testid": "fleet-collisions", children: [_jsx("h3", { children: "Blocked now" }), _jsx("ul", { children: board.liveCollisions.map((collision) => (_jsxs("li", { children: [_jsx("span", { children: collision.wantedByRunId }), _jsx("span", { children: "wants" }), _jsx("span", { children: collision.scope }), _jsxs("span", { children: ["held by ", collision.heldByRunId] })] }, `${collision.wantedByRunId}-${collision.scope}`))) })] })), board.rows.length === 0 ? (_jsx("p", { className: "xeno-fleet__notice", children: "No runs yet." })) : (_jsx("ol", { className: "xeno-fleet__runs", "data-testid": "fleet-runs", children: board.rows.map((row) => (_jsxs("li", { "data-attention": row.attention, "data-working": row.working ? 'true' : undefined, children: [_jsx("span", { className: "xeno-fleet__run-id", children: row.runId }), row.intakeItemId && (_jsxs("span", { className: "xeno-fleet__origin", "data-testid": "fleet-origin", children: ["from ", row.intakeItemId] })), _jsx("span", { className: "xeno-fleet__headline", children: row.headline }), row.claims.length > 0 && (_jsxs("span", { className: "xeno-fleet__claims", children: ["holds ", row.claims.join(', ')] })), row.heldMessages !== undefined && row.heldMessages > 0 && (_jsxs("button", { type: "button", className: "xeno-fleet__held", onClick: () => void openHeld(row.runId), "data-testid": "fleet-held-open", children: [row.heldMessages, " awaiting your approval"] })), row.inboundPolicy !== undefined && (_jsxs("span", { className: "xeno-fleet__policy", "data-testid": "fleet-policy", children: ["inbound pinned: ", row.inboundPolicy] })), row.isolation !== undefined && (_jsx("span", { className: "xeno-fleet__isolation", "data-testid": "fleet-isolation", "data-isolation": row.isolation, children: row.isolation === 'sandboxed'
164
+ ? `contained${row.isolationMechanism ? ` (${row.isolationMechanism})` : ''}`
165
+ : row.isolation === 'none'
166
+ ? 'not contained'
167
+ : 'containment unknown' })), row.changes && row.diffTrustworthy && (_jsxs("span", { className: "xeno-fleet__changes", children: ["+", row.changes.added, " ~", row.changes.modified, " -", row.changes.deleted] }))] }, row.runId))) })), held && (
168
+ /**
169
+ * ๐Ÿ”ด ยง6: a held message is "surfaced to the human for approval".
170
+ * Until this existed the hold had an exit in the protocol and no
171
+ * door in any surface โ€” which is why nothing ever set the policy.
172
+ */
173
+ _jsxs("section", { className: "xeno-fleet__held-panel", "data-testid": "fleet-held", children: [_jsxs("h3", { children: ["Awaiting your approval \u2014 ", held.runId] }), !held.available && (_jsx("p", { className: "xeno-fleet__notice", "data-testid": "fleet-held-unavailable", children: held.reason ?? 'This host is not coordinating runs.' })), held.available && held.reason && (_jsx("p", { className: "xeno-fleet__notice", children: held.reason })), held.available && held.messages.length === 0 ? (_jsx("p", { className: "xeno-fleet__notice", children: "Nothing is waiting for this run." })) : (_jsx("ol", { children: held.messages.map((message) => (_jsxs("li", { "data-testid": "fleet-held-message", children: [_jsxs("span", { className: "xeno-fleet__held-from", children: ["from ", message.fromRunId] }), _jsx("span", { className: "xeno-fleet__held-text", children: message.text }), _jsx("button", { type: "button", disabled: heldBusy, onClick: () => void approveHeld(message.id), "data-testid": "fleet-held-approve", title: "Deliver this message to the run", children: "Approve" })] }, message.id))) })), held.available && (_jsxs("div", { className: "xeno-fleet__policy-controls", "data-testid": "fleet-policy-controls", children: [_jsx("button", { type: "button", disabled: heldBusy, onClick: () => void pinPolicy('hold'), "data-testid": "fleet-policy-hold", title: "Withhold every inbound message for this run until you approve it", children: "Hold all inbound" }), _jsx("button", { type: "button", disabled: heldBusy, onClick: () => void pinPolicy('accept'), "data-testid": "fleet-policy-accept", title: "Accept every inbound message for this run, overriding the derived rule", children: "Accept all inbound" }), _jsx("button", { type: "button", disabled: heldBusy, onClick: () => void pinPolicy(null), "data-testid": "fleet-policy-clear", title: "Return this run to the derived rule: hold only what moves trust upward", children: "Use the derived rule" })] }))] })), board.resolvedCollisions.length > 0 && (_jsxs("section", { className: "xeno-fleet__history", "data-testid": "fleet-resolved", children: [_jsx("h3", { children: "Resolved collisions" }), _jsx("ul", { children: board.resolvedCollisions.map((collision) => (_jsxs("li", { children: [collision.wantedByRunId, " waited on ", collision.scope] }, `${collision.wantedByRunId}-${collision.scope}-${collision.at}`))) })] }))] }))] }));
174
+ }
175
+ //# sourceMappingURL=FleetPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FleetPanel.js","sourceRoot":"","sources":["../../../src/components/agent/FleetPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ interface GhostTextAreaProps {
2
+ value: string;
3
+ onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
4
+ onKeyDown: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
5
+ disabled?: boolean;
6
+ placeholder?: string;
7
+ rows?: number;
8
+ effectiveGhostText: string;
9
+ onAcceptGhost: () => void;
10
+ }
11
+ export declare const GhostTextArea: import("react").ForwardRefExoticComponent<GhostTextAreaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
12
+ export {};
13
+ //# sourceMappingURL=GhostTextArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GhostTextArea.d.ts","sourceRoot":"","sources":["../../../src/components/agent/GhostTextArea.tsx"],"names":[],"mappings":"AAEA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IAC7D,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,eAAO,MAAM,aAAa,oHAiDzB,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useRef } from 'react';
3
+ export const GhostTextArea = forwardRef(function GhostTextArea({ value, onChange, onKeyDown, disabled, placeholder, rows, effectiveGhostText, onAcceptGhost }, ref) {
4
+ const overlayRef = useRef(null);
5
+ const minRows = Math.max(rows ?? 1, 1);
6
+ const minHeightClass = minRows >= 2 ? 'min-h-[56px]' : 'min-h-[40px]';
7
+ const textAreaChromeClass = `w-full px-2 py-1.5 text-[13px] leading-relaxed ${minHeightClass}`;
8
+ const handleKeyDown = (e) => {
9
+ if (e.key === 'Tab' && !e.shiftKey && !e.ctrlKey && !e.altKey && effectiveGhostText) {
10
+ e.preventDefault();
11
+ onAcceptGhost();
12
+ return;
13
+ }
14
+ onKeyDown(e);
15
+ };
16
+ return (_jsxs("div", { className: "relative", children: [effectiveGhostText && (_jsxs("div", { ref: overlayRef, "aria-hidden": true, className: `absolute inset-0 ${textAreaChromeClass} pointer-events-none whitespace-pre-wrap break-words overflow-hidden`, children: [_jsx("span", { className: "invisible", children: value }), _jsx("span", { className: "text-white/15", children: effectiveGhostText })] })), _jsx("textarea", { ref: ref, rows: rows, value: value, onChange: onChange, onKeyDown: handleKeyDown, onScroll: (event) => {
17
+ if (overlayRef.current)
18
+ overlayRef.current.scrollTop = event.currentTarget.scrollTop;
19
+ }, disabled: disabled, placeholder: placeholder, "aria-label": "Message input", className: `${textAreaChromeClass} bg-transparent text-white placeholder-white/20 focus:outline-none resize-none hide-scrollbar disabled:opacity-30 disabled:cursor-not-allowed relative z-10` })] }));
20
+ });
21
+ //# sourceMappingURL=GhostTextArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GhostTextArea.js","sourceRoot":"","sources":["../../../src/components/agent/GhostTextArea.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAa1C,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CACrC,SAAS,aAAa,CACpB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAC9F,GAAG;IAEH,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAA;IACrE,MAAM,mBAAmB,GAAG,kDAAkD,cAAc,EAAE,CAAA;IAE9F,MAAM,aAAa,GAAG,CAAC,CAA2C,EAAE,EAAE;QACpE,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACpF,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,aAAa,EAAE,CAAA;YACf,OAAM;QACR,CAAC;QACD,SAAS,CAAC,CAAC,CAAC,CAAA;IACd,CAAC,CAAA;IAED,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aAEtB,kBAAkB,IAAI,CACrB,eACE,GAAG,EAAE,UAAU,uBAEf,SAAS,EAAE,oBAAoB,mBAAmB,sEAAsE,aAExH,eAAM,SAAS,EAAC,WAAW,YAAE,KAAK,GAAQ,EAC1C,eAAM,SAAS,EAAC,eAAe,YAAE,kBAAkB,GAAQ,IACvD,CACP,EACD,mBACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,UAAU,CAAC,OAAO;wBAAE,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAA;gBACtF,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,gBACb,eAAe,EAC1B,SAAS,EAAE,GAAG,mBAAmB,6JAA6J,GAC9L,IACE,CACP,CAAA;AACH,CAAC,CACF,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * IntakePanel โ€” ADE ยง5.1, rendered.
3
+ *
4
+ * The first pillar of the developer's loop: work arriving from a tracker, a
5
+ * TODO, a plan document, another agent. `projectIntakeBoard` decides what may be
6
+ * claimed about each item and what may be offered; this renders it.
7
+ *
8
+ * ๐Ÿ”ด **The notice renders ABOVE the list.** An inbox missing items reads as "no
9
+ * more work" โ€” the same reason the fleet board puts its notice first. A caveat
10
+ * under a list is read after the reader has already decided there is nothing to
11
+ * do.
12
+ *
13
+ * ๐Ÿ”ด **Refusals are shown VERBATIM.** The host names who holds an item and which
14
+ * run has it; re-wording that here would be a second source of truth about who
15
+ * is doing what.
16
+ *
17
+ * Design: monochromatic, rectangles only, no circles โ€” `DESIGN_SYSTEM.md`.
18
+ */
19
+ import React from 'react';
20
+ export interface IntakePanelProps {
21
+ /** Identifies THIS client for claiming. Two surfaces must not share it, or
22
+ * exactly-once degrades to first-surface-wins-forever. */
23
+ clientId: string;
24
+ /** Where a dispatched item's work should run. Absent, dispatch is unavailable
25
+ * rather than guessing a run id. */
26
+ runId?: string;
27
+ }
28
+ export declare function IntakePanel({ clientId, runId }: IntakePanelProps): React.ReactElement;
29
+ //# sourceMappingURL=IntakePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntakePanel.d.ts","sourceRoot":"","sources":["../../../src/components/agent/IntakePanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,MAAM,WAAW,gBAAgB;IAC/B;+DAC2D;IAC3D,QAAQ,EAAE,MAAM,CAAA;IAChB;yCACqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAkHrF"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * IntakePanel โ€” ADE ยง5.1, rendered.
4
+ *
5
+ * The first pillar of the developer's loop: work arriving from a tracker, a
6
+ * TODO, a plan document, another agent. `projectIntakeBoard` decides what may be
7
+ * claimed about each item and what may be offered; this renders it.
8
+ *
9
+ * ๐Ÿ”ด **The notice renders ABOVE the list.** An inbox missing items reads as "no
10
+ * more work" โ€” the same reason the fleet board puts its notice first. A caveat
11
+ * under a list is read after the reader has already decided there is nothing to
12
+ * do.
13
+ *
14
+ * ๐Ÿ”ด **Refusals are shown VERBATIM.** The host names who holds an item and which
15
+ * run has it; re-wording that here would be a second source of truth about who
16
+ * is doing what.
17
+ *
18
+ * Design: monochromatic, rectangles only, no circles โ€” `DESIGN_SYSTEM.md`.
19
+ */
20
+ import React, { useCallback, useEffect, useState } from 'react';
21
+ import { AlertTriangle, Inbox, RefreshCw } from 'lucide-react';
22
+ import { projectIntakeBoard } from '@xenosystem/agent-interface-core';
23
+ import { getAgentPlatformBridge } from '../../platformBridge';
24
+ function tryBridge() {
25
+ try {
26
+ return getAgentPlatformBridge();
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ }
32
+ export function IntakePanel({ clientId, runId }) {
33
+ const [board, setBoard] = useState(null);
34
+ const [busy, setBusy] = useState(false);
35
+ const [refusal, setRefusal] = useState(null);
36
+ const refresh = useCallback(async () => {
37
+ const bridge = tryBridge();
38
+ if (!bridge?.intake) {
39
+ setBoard(projectIntakeBoard({ available: false, items: [], complete: false, failedSources: [], reason: 'This surface cannot reach the Agent host.' }, clientId));
40
+ return;
41
+ }
42
+ setBusy(true);
43
+ try {
44
+ setBoard(projectIntakeBoard(await bridge.intake.list({}), clientId));
45
+ }
46
+ finally {
47
+ setBusy(false);
48
+ }
49
+ }, [clientId]);
50
+ useEffect(() => { void refresh(); }, [refresh]);
51
+ /** One shape for every action: run it, show any refusal verbatim, re-read. */
52
+ const act = useCallback(async (run) => {
53
+ const bridge = tryBridge();
54
+ if (!bridge?.intake)
55
+ return;
56
+ setBusy(true);
57
+ try {
58
+ const result = await run(bridge);
59
+ setRefusal(result.ok ? null : result.reason ?? 'That did not work.');
60
+ }
61
+ finally {
62
+ setBusy(false);
63
+ await refresh();
64
+ }
65
+ }, [refresh]);
66
+ return (_jsxs("div", { className: "xeno-intake", "data-testid": "intake-panel", children: [_jsxs("header", { className: "xeno-intake__header", children: [_jsxs("h2", { children: [_jsx(Inbox, { size: 14, "aria-hidden": true }), " Intake"] }), _jsx("button", { type: "button", onClick: () => void refresh(), disabled: busy, "aria-label": "Refresh intake", children: _jsx(RefreshCw, { size: 14, "aria-hidden": true }) })] }), board?.notice && (_jsxs("p", { className: "xeno-intake__notice", "data-testid": "intake-notice", children: [_jsx(AlertTriangle, { size: 14, "aria-hidden": true }), " ", board.notice] })), board === null ? (_jsx("p", { className: "xeno-intake__notice", children: "Loading the inbox\u2026" })) : board.rows.length === 0 ? (
67
+ // Only honest when the inbox was actually read. When it was not, the
68
+ // notice above already says so and this line does not appear alone.
69
+ _jsx("p", { className: "xeno-intake__notice", children: board.trustworthy ? 'Nothing waiting.' : '' })) : (_jsxs(_Fragment, { children: [_jsxs("p", { className: "xeno-intake__summary", "data-testid": "intake-free-count", children: [board.freeCount, " waiting to be picked up"] }), _jsx("ol", { className: "xeno-intake__items", "data-testid": "intake-items", children: board.rows.map((row) => (_jsxs("li", { "data-availability": row.availability, children: [_jsx("span", { className: "xeno-intake__source", children: row.sourceId }), _jsx("span", { className: "xeno-intake__title", children: row.title }), _jsx("span", { className: "xeno-intake__headline", children: row.headline }), _jsxs("div", { className: "xeno-intake__actions", children: [_jsx("button", { type: "button",
70
+ /* Advice only โ€” the host arbitrates and refuses a second
71
+ claimant by name. */
72
+ disabled: busy || !row.canClaim, onClick: () => void act((bridge) => bridge.intake.claim({ itemId: row.id, clientId })), "data-testid": `intake-claim-${row.id}`, children: "Claim" }), _jsx("button", { type: "button",
73
+ /* Dispatch needs a run to dispatch INTO. Without one the
74
+ control is unavailable rather than inventing a run id. */
75
+ disabled: busy || !row.canDispatch || !runId, onClick: () => void act((bridge) => bridge.intake.dispatch({
76
+ itemId: row.id,
77
+ clientId,
78
+ runId: runId,
79
+ })), children: "Dispatch" }), _jsx("button", { type: "button", disabled: busy || !row.canRelease, onClick: () => void act((bridge) => bridge.intake.release({ itemId: row.id, clientId })), children: "Hand back" })] })] }, row.id))) })] })), refusal && _jsx("p", { className: "xeno-intake__notice", "data-testid": "intake-refusal", children: refusal })] }));
80
+ }
81
+ //# sourceMappingURL=IntakePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntakePanel.js","sourceRoot":"","sources":["../../../src/components/agent/IntakePanel.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE9D,OAAO,EAAE,kBAAkB,EAAoB,MAAM,kCAAkC,CAAA;AAEvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,OAAO,sBAAsB,EAAE,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAWD,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAoB;IAC/D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAA;IAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAE3D,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACpB,QAAQ,CAAC,kBAAkB,CACzB,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,2CAA2C,EAAE,EACxH,QAAQ,CACT,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,IAAI,CAAC;YACH,QAAQ,CAAC,kBAAkB,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QACtE,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAE9C,8EAA8E;IAC9E,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAC3B,GAAqG,EACrG,EAAE;QACF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,EAAE,MAAM;YAAE,OAAM;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA;YAChC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAAC,CAAA;QACtE,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAA;YACd,MAAM,OAAO,EAAE,CAAA;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,OAAO,CACL,eAAK,SAAS,EAAC,aAAa,iBAAa,cAAc,aACrD,kBAAQ,SAAS,EAAC,qBAAqB,aACrC,yBAAI,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,wBAAgB,eAAY,EAC/C,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,gBAAa,gBAAgB,YAC9F,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,wBAAgB,GAC5B,IACF,EAGR,KAAK,EAAE,MAAM,IAAI,CAChB,aAAG,SAAS,EAAC,qBAAqB,iBAAa,eAAe,aAC5D,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,wBAAgB,OAAE,KAAK,CAAC,MAAM,IACnD,CACL,EAEA,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAChB,YAAG,SAAS,EAAC,qBAAqB,wCAAuB,CAC1D,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,qEAAqE;YACrE,oEAAoE;YACpE,YAAG,SAAS,EAAC,qBAAqB,YAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAK,CACrF,CAAC,CAAC,CAAC,CACF,8BACE,aAAG,SAAS,EAAC,sBAAsB,iBAAa,mBAAmB,aAChE,KAAK,CAAC,SAAS,gCACd,EACJ,aAAI,SAAS,EAAC,oBAAoB,iBAAa,cAAc,YAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACvB,mCAAoC,GAAG,CAAC,YAAY,aAClD,eAAM,SAAS,EAAC,qBAAqB,YAAE,GAAG,CAAC,QAAQ,GAAQ,EAC3D,eAAM,SAAS,EAAC,oBAAoB,YAAE,GAAG,CAAC,KAAK,GAAQ,EACvD,eAAM,SAAS,EAAC,uBAAuB,YAAE,GAAG,CAAC,QAAQ,GAAQ,EAC7D,eAAK,SAAS,EAAC,sBAAsB,aACnC,iBACE,IAAI,EAAC,QAAQ;4CACb;mEACuB;4CACvB,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,iBACzE,gBAAgB,GAAG,CAAC,EAAE,EAAE,sBAG9B,EACT,iBACE,IAAI,EAAC,QAAQ;4CACb;wGAC4D;4CAC5D,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,KAAK,EAC5C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gDACzD,MAAM,EAAE,GAAG,CAAC,EAAE;gDACd,QAAQ;gDACR,KAAK,EAAE,KAAe;6CACvB,CAAC,CAAC,yBAGI,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,0BAGjF,IACL,KAnCC,GAAG,CAAC,EAAE,CAoCV,CACN,CAAC,GACC,IACJ,CACJ,EAEA,OAAO,IAAI,YAAG,SAAS,EAAC,qBAAqB,iBAAa,gBAAgB,YAAE,OAAO,GAAK,IACrF,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * KnowledgePanel โ€” ADE ยง5.8, rendered.
3
+ *
4
+ * What this workspace has learned, and what it used to believe.
5
+ * `projectKnowledgeBoard` decides which facts are current and what must be said
6
+ * about the store; this renders it.
7
+ *
8
+ * ๐Ÿ”ด **The durability warning is first, not a footnote.** A panel that rendered
9
+ * facts identically whether or not they survive a restart invites someone to
10
+ * teach the workspace something important and lose it on close.
11
+ *
12
+ * ๐Ÿ”ด **History is shown APART from current facts.** The store keeps a replaced
13
+ * fact deliberately โ€” "when did this change?" is a real question โ€” but a list
14
+ * mixing them tells a reader the workspace holds two contradictory beliefs.
15
+ *
16
+ * Design: monochromatic, rectangles only, no circles โ€” `DESIGN_SYSTEM.md`.
17
+ */
18
+ import React from 'react';
19
+ export interface KnowledgePanelProps {
20
+ workspaceId: string;
21
+ /** Recorded as provenance on anything added here. */
22
+ runId: string;
23
+ }
24
+ export declare function KnowledgePanel({ workspaceId, runId }: KnowledgePanelProps): React.ReactElement;
25
+ //# sourceMappingURL=KnowledgePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgePanel.d.ts","sourceRoot":"","sources":["../../../src/components/agent/KnowledgePanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAsJ9F"}
@@ -0,0 +1,99 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * KnowledgePanel โ€” ADE ยง5.8, rendered.
4
+ *
5
+ * What this workspace has learned, and what it used to believe.
6
+ * `projectKnowledgeBoard` decides which facts are current and what must be said
7
+ * about the store; this renders it.
8
+ *
9
+ * ๐Ÿ”ด **The durability warning is first, not a footnote.** A panel that rendered
10
+ * facts identically whether or not they survive a restart invites someone to
11
+ * teach the workspace something important and lose it on close.
12
+ *
13
+ * ๐Ÿ”ด **History is shown APART from current facts.** The store keeps a replaced
14
+ * fact deliberately โ€” "when did this change?" is a real question โ€” but a list
15
+ * mixing them tells a reader the workspace holds two contradictory beliefs.
16
+ *
17
+ * Design: monochromatic, rectangles only, no circles โ€” `DESIGN_SYSTEM.md`.
18
+ */
19
+ import React, { useCallback, useEffect, useState } from 'react';
20
+ import { AlertTriangle, BookOpen, Pin, RefreshCw } from 'lucide-react';
21
+ import { projectKnowledgeBoard } from '@xenosystem/agent-interface-core';
22
+ import { getAgentPlatformBridge } from '../../platformBridge';
23
+ function tryBridge() {
24
+ try {
25
+ return getAgentPlatformBridge();
26
+ }
27
+ catch {
28
+ return null;
29
+ }
30
+ }
31
+ export function KnowledgePanel({ workspaceId, runId }) {
32
+ const [board, setBoard] = useState(null);
33
+ const [busy, setBusy] = useState(false);
34
+ const [showHistory, setShowHistory] = useState(false);
35
+ const [subject, setSubject] = useState('');
36
+ const [fact, setFact] = useState('');
37
+ const [problem, setProblem] = useState(null);
38
+ const refresh = useCallback(async () => {
39
+ const bridge = tryBridge();
40
+ if (!bridge?.knowledge) {
41
+ setBoard(projectKnowledgeBoard({
42
+ available: false,
43
+ entries: [],
44
+ durable: false,
45
+ reason: 'This surface cannot reach the Agent host.',
46
+ }));
47
+ return;
48
+ }
49
+ setBusy(true);
50
+ try {
51
+ setBoard(projectKnowledgeBoard(await bridge.knowledge.list({ workspaceId })));
52
+ }
53
+ finally {
54
+ setBusy(false);
55
+ }
56
+ }, [workspaceId]);
57
+ useEffect(() => { void refresh(); }, [refresh]);
58
+ const record = useCallback(async (pinned) => {
59
+ const bridge = tryBridge();
60
+ if (!bridge?.knowledge)
61
+ return;
62
+ setBusy(true);
63
+ try {
64
+ const result = await bridge.knowledge.record({
65
+ workspaceId,
66
+ subject,
67
+ fact,
68
+ ...(pinned ? { pinned: true } : {}),
69
+ runId,
70
+ });
71
+ // The host's refusal verbatim โ€” it already says what is missing.
72
+ setProblem(result.ok ? null : result.reason ?? 'That fact could not be recorded.');
73
+ if (result.ok) {
74
+ setSubject('');
75
+ setFact('');
76
+ }
77
+ }
78
+ finally {
79
+ setBusy(false);
80
+ await refresh();
81
+ }
82
+ }, [workspaceId, runId, subject, fact, refresh]);
83
+ const forget = useCallback(async (entryId) => {
84
+ const bridge = tryBridge();
85
+ if (!bridge?.knowledge)
86
+ return;
87
+ setBusy(true);
88
+ try {
89
+ const result = await bridge.knowledge.forget({ workspaceId, entryId });
90
+ setProblem(result.ok ? null : result.reason ?? null);
91
+ }
92
+ finally {
93
+ setBusy(false);
94
+ await refresh();
95
+ }
96
+ }, [workspaceId, refresh]);
97
+ return (_jsxs("div", { className: "xeno-knowledge", "data-testid": "knowledge-panel", children: [_jsxs("header", { className: "xeno-knowledge__header", children: [_jsxs("h2", { children: [_jsx(BookOpen, { size: 14, "aria-hidden": true }), " Knowledge"] }), _jsx("button", { type: "button", onClick: () => void refresh(), disabled: busy, "aria-label": "Refresh knowledge", children: _jsx(RefreshCw, { size: 14, "aria-hidden": true }) })] }), board?.notice && (_jsxs("p", { className: "xeno-knowledge__notice", "data-testid": "knowledge-notice", children: [_jsx(AlertTriangle, { size: 14, "aria-hidden": true }), " ", board.notice] })), board === null ? (_jsx("p", { className: "xeno-knowledge__notice", children: "Loading what this workspace knows\u2026" })) : (_jsxs(_Fragment, { children: [board.current.length === 0 ? (_jsx("p", { className: "xeno-knowledge__notice", children: "This workspace has not learned anything yet." })) : (_jsx("ul", { className: "xeno-knowledge__current", "data-testid": "knowledge-current", children: board.current.map((row) => (_jsxs("li", { "data-pinned": row.pinned ? 'true' : undefined, children: [row.pinned && _jsx(Pin, { size: 12, "aria-hidden": true }), _jsx("span", { className: "xeno-knowledge__subject", children: row.subject }), _jsx("span", { className: "xeno-knowledge__fact", children: row.fact }), _jsx("span", { className: "xeno-knowledge__provenance", children: row.provenance }), _jsx("button", { type: "button", disabled: busy, onClick: () => void forget(row.id), children: "Forget" })] }, row.id))) })), _jsxs("section", { className: "xeno-knowledge__record", children: [_jsx("input", { value: subject, onChange: (event) => setSubject(event.target.value), placeholder: "subject, e.g. build.package-manager", "aria-label": "Subject" }), _jsx("input", { value: fact, onChange: (event) => setFact(event.target.value), placeholder: "what is true about it", "aria-label": "Fact" }), _jsx("button", { type: "button", disabled: busy, onClick: () => void record(false), children: "Record" }), _jsx("button", { type: "button", disabled: busy, onClick: () => void record(true), children: "Record pinned" })] }), board.history.length > 0 && (_jsxs("section", { className: "xeno-knowledge__history", "data-testid": "knowledge-history", children: [_jsx("button", { type: "button", onClick: () => setShowHistory((shown) => !shown), children: showHistory ? 'Hide' : `Show ${board.history.length} superseded fact(s)` }), showHistory && (_jsx("ul", { children: board.history.map((row) => (_jsxs("li", { children: [_jsx("span", { children: row.subject }), _jsx("span", { children: row.fact }), _jsx("span", { children: row.provenance })] }, row.id))) }))] }))] })), problem && _jsx("p", { className: "xeno-knowledge__notice", "data-testid": "knowledge-problem", children: problem })] }));
98
+ }
99
+ //# sourceMappingURL=KnowledgePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgePanel.js","sourceRoot":"","sources":["../../../src/components/agent/KnowledgePanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ConversationEditorDiff } from '../../types/agentEditor';
2
+ export default function MonacoDiffWorkbenchEditor({ diff, rootDirectory, layoutKey, statusMessage, onOpenFile, }: {
3
+ diff: ConversationEditorDiff | null;
4
+ rootDirectory: string | null;
5
+ layoutKey?: string;
6
+ statusMessage?: string | null;
7
+ onOpenFile?: (path: string) => void;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=MonacoDiffWorkbenchEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonacoDiffWorkbenchEditor.d.ts","sourceRoot":"","sources":["../../../src/components/agent/MonacoDiffWorkbenchEditor.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAUrE,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,IAAI,EACJ,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,GACX,EAAE;IACD,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAAA;IACnC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC,+BA6QA"}