@solidxai/core-ui 0.1.19-beta.0 → 0.1.19

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 (512) hide show
  1. package/README.md +19 -0
  2. package/dist/components/common/SolidPopupContainer.d.ts.map +1 -1
  3. package/dist/components/common/SolidPopupContainer.js +3 -2
  4. package/dist/components/common/SolidPopupContainer.js.map +1 -1
  5. package/dist/components/common/SolidPopupContainer.tsx +3 -2
  6. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
  7. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +4 -1
  8. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  9. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +11 -5
  10. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  11. package/dist/components/core/chatter/SolidChatter.js +2 -1
  12. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  13. package/dist/components/core/chatter/SolidChatter.tsx +2 -0
  14. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +2 -0
  15. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  16. package/dist/components/core/chatter/SolidChatterMessageBox.js +7 -4
  17. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  18. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +8 -3
  19. package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts +5 -0
  20. package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts.map +1 -0
  21. package/dist/components/core/chatter/SolidChatterMessageWidget.js +85 -0
  22. package/dist/components/core/chatter/SolidChatterMessageWidget.js.map +1 -0
  23. package/dist/components/core/chatter/SolidChatterMessageWidget.tsx +59 -0
  24. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  25. package/dist/components/core/common/SolidGlobalSearchElement.js +6 -5
  26. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  27. package/dist/components/core/common/SolidGlobalSearchElement.tsx +6 -5
  28. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts +11 -0
  29. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts.map +1 -0
  30. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js +102 -0
  31. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js.map +1 -0
  32. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.tsx +129 -0
  33. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts +4 -0
  34. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts.map +1 -0
  35. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js +29 -0
  36. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js.map +1 -0
  37. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.module.css +226 -0
  38. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.tsx +57 -0
  39. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts +4 -0
  40. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts.map +1 -0
  41. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js +33 -0
  42. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js.map +1 -0
  43. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.tsx +47 -0
  44. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts +5 -0
  45. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts.map +1 -0
  46. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js +59 -0
  47. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js.map +1 -0
  48. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.tsx +82 -0
  49. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts +17 -0
  50. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts.map +1 -0
  51. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js +258 -0
  52. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js.map +1 -0
  53. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.tsx +286 -0
  54. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  55. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +102 -62
  56. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  57. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +116 -106
  58. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts +6 -0
  59. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts.map +1 -0
  60. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js +37 -0
  61. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js.map +1 -0
  62. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.tsx +89 -0
  63. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts +3 -0
  64. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts.map +1 -0
  65. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js +18 -0
  66. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js.map +1 -0
  67. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.tsx +51 -0
  68. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts +10 -0
  69. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts.map +1 -0
  70. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js +63 -0
  71. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js.map +1 -0
  72. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.tsx +111 -0
  73. package/dist/components/core/field/FieldListViewData.d.ts.map +1 -1
  74. package/dist/components/core/field/FieldListViewData.js +29 -9
  75. package/dist/components/core/field/FieldListViewData.js.map +1 -1
  76. package/dist/components/core/field/FieldListViewData.tsx +7 -6
  77. package/dist/components/core/form/SolidFormView.d.ts +1 -0
  78. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  79. package/dist/components/core/form/SolidFormView.js +49 -48
  80. package/dist/components/core/form/SolidFormView.js.map +1 -1
  81. package/dist/components/core/form/SolidFormView.tsx +4 -3
  82. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  83. package/dist/components/core/form/fields/SolidPasswordField.js +13 -1
  84. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  85. package/dist/components/core/form/fields/SolidPasswordField.tsx +14 -3
  86. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  87. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  88. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  89. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  90. package/dist/components/core/kanban/KanbanBoard.tsx +5 -1
  91. package/dist/components/core/kanban/KanbanCard.d.ts +3 -0
  92. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  93. package/dist/components/core/kanban/KanbanCard.js +5 -4
  94. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  95. package/dist/components/core/kanban/KanbanCard.tsx +31 -11
  96. package/dist/components/core/kanban/KanbanColumn.d.ts +5 -1
  97. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  98. package/dist/components/core/kanban/KanbanColumn.js +14 -3
  99. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  100. package/dist/components/core/kanban/KanbanColumn.tsx +43 -3
  101. package/dist/components/core/kanban/SolidKanbanView.d.ts +2 -0
  102. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  103. package/dist/components/core/kanban/SolidKanbanView.js +90 -52
  104. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  105. package/dist/components/core/kanban/SolidKanbanView.tsx +93 -13
  106. package/dist/components/core/list/SolidDataTable.d.ts +2 -1
  107. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  108. package/dist/components/core/list/SolidDataTable.js +2 -2
  109. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  110. package/dist/components/core/list/SolidDataTable.tsx +3 -0
  111. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  112. package/dist/components/core/list/SolidListView.js +114 -57
  113. package/dist/components/core/list/SolidListView.js.map +1 -1
  114. package/dist/components/core/list/SolidListView.tsx +71 -7
  115. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  116. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +14 -0
  117. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  118. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +13 -0
  119. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts +3 -0
  120. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts.map +1 -0
  121. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js +51 -0
  122. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js.map +1 -0
  123. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.tsx +60 -0
  124. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts +4 -0
  125. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts.map +1 -0
  126. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js +24 -0
  127. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js.map +1 -0
  128. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.tsx +32 -0
  129. package/dist/components/core/model/ModelListViewData.d.ts.map +1 -1
  130. package/dist/components/core/model/ModelListViewData.js +6 -23
  131. package/dist/components/core/model/ModelListViewData.js.map +1 -1
  132. package/dist/components/core/model/ModelListViewData.tsx +1 -48
  133. package/dist/components/core/solid-agent/AgentModelIndicator.d.ts +5 -0
  134. package/dist/components/core/solid-agent/AgentModelIndicator.d.ts.map +1 -0
  135. package/dist/components/core/solid-agent/AgentModelIndicator.js +14 -0
  136. package/dist/components/core/solid-agent/AgentModelIndicator.js.map +1 -0
  137. package/dist/components/core/solid-agent/AgentModelIndicator.tsx +40 -0
  138. package/dist/components/core/solid-agent/AgentSignIn.d.ts +12 -0
  139. package/dist/components/core/solid-agent/AgentSignIn.d.ts.map +1 -0
  140. package/dist/components/core/solid-agent/AgentSignIn.js +82 -0
  141. package/dist/components/core/solid-agent/AgentSignIn.js.map +1 -0
  142. package/dist/components/core/solid-agent/AgentSignIn.tsx +91 -0
  143. package/dist/components/core/solid-agent/SolidAgent.module.css +596 -0
  144. package/dist/components/core/solid-agent/SolidAgentChat.d.ts +30 -0
  145. package/dist/components/core/solid-agent/SolidAgentChat.d.ts.map +1 -0
  146. package/dist/components/core/solid-agent/SolidAgentChat.js +300 -0
  147. package/dist/components/core/solid-agent/SolidAgentChat.js.map +1 -0
  148. package/dist/components/core/solid-agent/SolidAgentChat.tsx +451 -0
  149. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts +44 -0
  150. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts.map +1 -0
  151. package/dist/components/core/solid-agent/SolidAgentEmbedded.js +46 -0
  152. package/dist/components/core/solid-agent/SolidAgentEmbedded.js.map +1 -0
  153. package/dist/components/core/solid-agent/SolidAgentEmbedded.tsx +87 -0
  154. package/dist/components/core/solid-agent/SolidAgentHost.d.ts +8 -0
  155. package/dist/components/core/solid-agent/SolidAgentHost.d.ts.map +1 -0
  156. package/dist/components/core/solid-agent/SolidAgentHost.js +152 -0
  157. package/dist/components/core/solid-agent/SolidAgentHost.js.map +1 -0
  158. package/dist/components/core/solid-agent/SolidAgentHost.tsx +164 -0
  159. package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts +16 -0
  160. package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts.map +1 -0
  161. package/dist/components/core/solid-agent/SolidAgentMarkdown.js +161 -0
  162. package/dist/components/core/solid-agent/SolidAgentMarkdown.js.map +1 -0
  163. package/dist/components/core/solid-agent/SolidAgentMarkdown.tsx +133 -0
  164. package/dist/components/core/solid-agent/SolidAgentMount.d.ts +3 -0
  165. package/dist/components/core/solid-agent/SolidAgentMount.d.ts.map +1 -0
  166. package/dist/components/core/solid-agent/SolidAgentMount.js +62 -0
  167. package/dist/components/core/solid-agent/SolidAgentMount.js.map +1 -0
  168. package/dist/components/core/solid-agent/SolidAgentMount.tsx +31 -0
  169. package/dist/components/core/solid-agent/SolidXAIIcon.d.ts +5 -0
  170. package/dist/components/core/solid-agent/SolidXAIIcon.d.ts.map +1 -0
  171. package/dist/components/core/solid-agent/SolidXAIIcon.js +7 -0
  172. package/dist/components/core/solid-agent/SolidXAIIcon.js.map +1 -0
  173. package/dist/components/core/solid-agent/SolidXAIIcon.tsx +6 -0
  174. package/dist/components/core/solid-agent/agentAttachments.d.ts +20 -0
  175. package/dist/components/core/solid-agent/agentAttachments.d.ts.map +1 -0
  176. package/dist/components/core/solid-agent/agentAttachments.js +184 -0
  177. package/dist/components/core/solid-agent/agentAttachments.js.map +1 -0
  178. package/dist/components/core/solid-agent/agentAttachments.ts +119 -0
  179. package/dist/components/core/solid-agent/agentEvents.d.ts +34 -0
  180. package/dist/components/core/solid-agent/agentEvents.d.ts.map +1 -0
  181. package/dist/components/core/solid-agent/agentEvents.js +282 -0
  182. package/dist/components/core/solid-agent/agentEvents.js.map +1 -0
  183. package/dist/components/core/solid-agent/agentEvents.ts +292 -0
  184. package/dist/components/core/solid-agent/agentFormat.d.ts +18 -0
  185. package/dist/components/core/solid-agent/agentFormat.d.ts.map +1 -0
  186. package/dist/components/core/solid-agent/agentFormat.js +179 -0
  187. package/dist/components/core/solid-agent/agentFormat.js.map +1 -0
  188. package/dist/components/core/solid-agent/agentFormat.ts +160 -0
  189. package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts +9 -0
  190. package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts.map +1 -0
  191. package/dist/components/core/solid-agent/client/agentAttachmentMedia.js +129 -0
  192. package/dist/components/core/solid-agent/client/agentAttachmentMedia.js.map +1 -0
  193. package/dist/components/core/solid-agent/client/agentAttachmentMedia.ts +69 -0
  194. package/dist/components/core/solid-agent/client/agentAuth.d.ts +63 -0
  195. package/dist/components/core/solid-agent/client/agentAuth.d.ts.map +1 -0
  196. package/dist/components/core/solid-agent/client/agentAuth.js +307 -0
  197. package/dist/components/core/solid-agent/client/agentAuth.js.map +1 -0
  198. package/dist/components/core/solid-agent/client/agentAuth.ts +222 -0
  199. package/dist/components/core/solid-agent/client/agentRest.d.ts +30 -0
  200. package/dist/components/core/solid-agent/client/agentRest.d.ts.map +1 -0
  201. package/dist/components/core/solid-agent/client/agentRest.js +178 -0
  202. package/dist/components/core/solid-agent/client/agentRest.js.map +1 -0
  203. package/dist/components/core/solid-agent/client/agentRest.ts +100 -0
  204. package/dist/components/core/solid-agent/client/agentRuntime.d.ts +48 -0
  205. package/dist/components/core/solid-agent/client/agentRuntime.d.ts.map +1 -0
  206. package/dist/components/core/solid-agent/client/agentRuntime.js +406 -0
  207. package/dist/components/core/solid-agent/client/agentRuntime.js.map +1 -0
  208. package/dist/components/core/solid-agent/client/agentRuntime.ts +226 -0
  209. package/dist/components/core/solid-agent/client/agentSocket.d.ts +46 -0
  210. package/dist/components/core/solid-agent/client/agentSocket.d.ts.map +1 -0
  211. package/dist/components/core/solid-agent/client/agentSocket.js +535 -0
  212. package/dist/components/core/solid-agent/client/agentSocket.js.map +1 -0
  213. package/dist/components/core/solid-agent/client/agentSocket.ts +276 -0
  214. package/dist/components/core/solid-agent/client/agentUrls.d.ts +11 -0
  215. package/dist/components/core/solid-agent/client/agentUrls.d.ts.map +1 -0
  216. package/dist/components/core/solid-agent/client/agentUrls.js +18 -0
  217. package/dist/components/core/solid-agent/client/agentUrls.js.map +1 -0
  218. package/dist/components/core/solid-agent/client/agentUrls.ts +19 -0
  219. package/dist/components/core/solid-agent/composer/AgentComposer.d.ts +21 -0
  220. package/dist/components/core/solid-agent/composer/AgentComposer.d.ts.map +1 -0
  221. package/dist/components/core/solid-agent/composer/AgentComposer.js +219 -0
  222. package/dist/components/core/solid-agent/composer/AgentComposer.js.map +1 -0
  223. package/dist/components/core/solid-agent/composer/AgentComposer.tsx +241 -0
  224. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts +8 -0
  225. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts.map +1 -0
  226. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js +87 -0
  227. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js.map +1 -0
  228. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.tsx +58 -0
  229. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts +20 -0
  230. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts.map +1 -0
  231. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js +103 -0
  232. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js.map +1 -0
  233. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.ts +60 -0
  234. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts +11 -0
  235. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts.map +1 -0
  236. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js +21 -0
  237. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js.map +1 -0
  238. package/dist/components/core/solid-agent/embed/agentEmbedSamples.ts +266 -0
  239. package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts +15 -0
  240. package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts.map +1 -0
  241. package/dist/components/core/solid-agent/processes/agentHubProcessApi.js +122 -0
  242. package/dist/components/core/solid-agent/processes/agentHubProcessApi.js.map +1 -0
  243. package/dist/components/core/solid-agent/processes/agentHubProcessApi.ts +64 -0
  244. package/dist/components/core/solid-agent/sdk/solidAgent.d.ts +39 -0
  245. package/dist/components/core/solid-agent/sdk/solidAgent.d.ts.map +1 -0
  246. package/dist/components/core/solid-agent/sdk/solidAgent.js +44 -0
  247. package/dist/components/core/solid-agent/sdk/solidAgent.js.map +1 -0
  248. package/dist/components/core/solid-agent/sdk/solidAgent.ts +56 -0
  249. package/dist/components/core/solid-agent/thread/AgentThread.d.ts +17 -0
  250. package/dist/components/core/solid-agent/thread/AgentThread.d.ts.map +1 -0
  251. package/dist/components/core/solid-agent/thread/AgentThread.js +166 -0
  252. package/dist/components/core/solid-agent/thread/AgentThread.js.map +1 -0
  253. package/dist/components/core/solid-agent/thread/AgentThread.tsx +248 -0
  254. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts +36 -0
  255. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts.map +1 -0
  256. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js +148 -0
  257. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js.map +1 -0
  258. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.tsx +116 -0
  259. package/dist/components/core/solid-agent/thread/inlineWidget.d.ts +8 -0
  260. package/dist/components/core/solid-agent/thread/inlineWidget.d.ts.map +1 -0
  261. package/dist/components/core/solid-agent/thread/inlineWidget.js +30 -0
  262. package/dist/components/core/solid-agent/thread/inlineWidget.js.map +1 -0
  263. package/dist/components/core/solid-agent/thread/inlineWidget.ts +27 -0
  264. package/dist/components/core/solid-agent/types.d.ts +155 -0
  265. package/dist/components/core/solid-agent/types.d.ts.map +1 -0
  266. package/dist/components/core/solid-agent/types.js +31 -0
  267. package/dist/components/core/solid-agent/types.js.map +1 -0
  268. package/dist/components/core/solid-agent/types.ts +148 -0
  269. package/dist/components/core/solid-agent/useAdminInputContext.d.ts +4 -0
  270. package/dist/components/core/solid-agent/useAdminInputContext.d.ts.map +1 -0
  271. package/dist/components/core/solid-agent/useAdminInputContext.js +49 -0
  272. package/dist/components/core/solid-agent/useAdminInputContext.js.map +1 -0
  273. package/dist/components/core/solid-agent/useAdminInputContext.ts +52 -0
  274. package/dist/components/core/solid-agent/useAgentAuth.d.ts +14 -0
  275. package/dist/components/core/solid-agent/useAgentAuth.d.ts.map +1 -0
  276. package/dist/components/core/solid-agent/useAgentAuth.js +88 -0
  277. package/dist/components/core/solid-agent/useAgentAuth.js.map +1 -0
  278. package/dist/components/core/solid-agent/useAgentAuth.ts +40 -0
  279. package/dist/components/core/solid-agent/useAgentAvailability.d.ts +19 -0
  280. package/dist/components/core/solid-agent/useAgentAvailability.d.ts.map +1 -0
  281. package/dist/components/core/solid-agent/useAgentAvailability.js +109 -0
  282. package/dist/components/core/solid-agent/useAgentAvailability.js.map +1 -0
  283. package/dist/components/core/solid-agent/useAgentAvailability.ts +80 -0
  284. package/dist/components/core/solid-agent/useAgentChat.d.ts +22 -0
  285. package/dist/components/core/solid-agent/useAgentChat.d.ts.map +1 -0
  286. package/dist/components/core/solid-agent/useAgentChat.js +45 -0
  287. package/dist/components/core/solid-agent/useAgentChat.js.map +1 -0
  288. package/dist/components/core/solid-agent/useAgentChat.ts +57 -0
  289. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts +7 -0
  290. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts.map +1 -0
  291. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js +15 -0
  292. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js.map +1 -0
  293. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.tsx +24 -0
  294. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts +7 -0
  295. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts.map +1 -0
  296. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js +15 -0
  297. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js.map +1 -0
  298. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.tsx +28 -0
  299. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts +4 -0
  300. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts.map +1 -0
  301. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js +20 -0
  302. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js.map +1 -0
  303. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.tsx +8 -0
  304. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts +7 -0
  305. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts.map +1 -0
  306. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js +11 -0
  307. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js.map +1 -0
  308. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.tsx +16 -0
  309. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts +7 -0
  310. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts.map +1 -0
  311. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js +67 -0
  312. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js.map +1 -0
  313. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.tsx +135 -0
  314. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts +7 -0
  315. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts.map +1 -0
  316. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js +24 -0
  317. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js.map +1 -0
  318. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.tsx +17 -0
  319. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts +8 -0
  320. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts.map +1 -0
  321. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js +30 -0
  322. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js.map +1 -0
  323. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.tsx +77 -0
  324. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts +7 -0
  325. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts.map +1 -0
  326. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js +40 -0
  327. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js.map +1 -0
  328. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.tsx +57 -0
  329. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts +4 -0
  330. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts.map +1 -0
  331. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js +13 -0
  332. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js.map +1 -0
  333. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.tsx +19 -0
  334. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts +7 -0
  335. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts.map +1 -0
  336. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js +55 -0
  337. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js.map +1 -0
  338. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.tsx +81 -0
  339. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts +4 -0
  340. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts.map +1 -0
  341. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js +15 -0
  342. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js.map +1 -0
  343. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.tsx +30 -0
  344. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts +4 -0
  345. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts.map +1 -0
  346. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js +15 -0
  347. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js.map +1 -0
  348. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.tsx +21 -0
  349. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts +7 -0
  350. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts.map +1 -0
  351. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js +21 -0
  352. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js.map +1 -0
  353. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.tsx +33 -0
  354. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts +4 -0
  355. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts.map +1 -0
  356. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js +11 -0
  357. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js.map +1 -0
  358. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.tsx +9 -0
  359. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts +15 -0
  360. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts.map +1 -0
  361. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js +26 -0
  362. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js.map +1 -0
  363. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.tsx +42 -0
  364. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts +7 -0
  365. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts.map +1 -0
  366. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js +41 -0
  367. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js.map +1 -0
  368. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.tsx +69 -0
  369. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts +7 -0
  370. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts.map +1 -0
  371. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js +23 -0
  372. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js.map +1 -0
  373. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.tsx +40 -0
  374. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts +4 -0
  375. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts.map +1 -0
  376. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js +32 -0
  377. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js.map +1 -0
  378. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.tsx +55 -0
  379. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts +7 -0
  380. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts.map +1 -0
  381. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js +17 -0
  382. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js.map +1 -0
  383. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.tsx +31 -0
  384. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts +12 -0
  385. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts.map +1 -0
  386. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js +17 -0
  387. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js.map +1 -0
  388. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.ts +19 -0
  389. package/dist/components/core/solid-agent/widgets/solidChatWidgets.module.css +909 -0
  390. package/dist/components/core/solid-ai/SolidAiChat.js +1 -1
  391. package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -1
  392. package/dist/components/core/solid-ai/SolidAiChat.tsx +2 -2
  393. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  394. package/dist/components/layout/AdminLayout.js +2 -1
  395. package/dist/components/layout/AdminLayout.js.map +1 -1
  396. package/dist/components/layout/AdminLayout.tsx +2 -0
  397. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  398. package/dist/components/shad-cn-ui/SolidAutocomplete.js +2 -2
  399. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  400. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +19 -15
  401. package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
  402. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  403. package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
  404. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  405. package/dist/components/shad-cn-ui/SolidDialog.tsx +3 -0
  406. package/dist/components/shad-cn-ui/SolidIconPicker.d.ts +7 -0
  407. package/dist/components/shad-cn-ui/SolidIconPicker.d.ts.map +1 -0
  408. package/dist/components/shad-cn-ui/SolidIconPicker.js +43 -0
  409. package/dist/components/shad-cn-ui/SolidIconPicker.js.map +1 -0
  410. package/dist/components/shad-cn-ui/SolidIconPicker.tsx +73 -0
  411. package/dist/components/shad-cn-ui/index.d.ts +1 -0
  412. package/dist/components/shad-cn-ui/index.d.ts.map +1 -1
  413. package/dist/components/shad-cn-ui/index.js +1 -0
  414. package/dist/components/shad-cn-ui/index.js.map +1 -1
  415. package/dist/components/shad-cn-ui/index.ts +1 -0
  416. package/dist/constants/allowed-ai-models.d.ts +8 -0
  417. package/dist/constants/allowed-ai-models.d.ts.map +1 -0
  418. package/dist/constants/allowed-ai-models.js +33 -0
  419. package/dist/constants/allowed-ai-models.js.map +1 -0
  420. package/dist/constants/allowed-ai-models.ts +39 -0
  421. package/dist/helpers/hydrateRelationRules.d.ts.map +1 -1
  422. package/dist/helpers/hydrateRelationRules.js +3 -1
  423. package/dist/helpers/hydrateRelationRules.js.map +1 -1
  424. package/dist/helpers/hydrateRelationRules.ts +5 -1
  425. package/dist/helpers/registry.d.ts +4 -2
  426. package/dist/helpers/registry.d.ts.map +1 -1
  427. package/dist/helpers/registry.js +75 -12
  428. package/dist/helpers/registry.js.map +1 -1
  429. package/dist/helpers/registry.ts +73 -16
  430. package/dist/helpers/updatePasswordField.d.ts.map +1 -1
  431. package/dist/helpers/updatePasswordField.js +21 -15
  432. package/dist/helpers/updatePasswordField.js.map +1 -1
  433. package/dist/helpers/updatePasswordField.ts +6 -1
  434. package/dist/index.d.ts +21 -5
  435. package/dist/index.d.ts.map +1 -1
  436. package/dist/index.js +16 -3
  437. package/dist/index.js.map +1 -1
  438. package/dist/index.ts +34 -3
  439. package/dist/redux/api/fieldApi.js +1 -1
  440. package/dist/redux/api/fieldApi.js.map +1 -1
  441. package/dist/redux/api/fieldApi.ts +2 -2
  442. package/dist/redux/api/modelApi.d.ts +13 -13
  443. package/dist/redux/api/modelApi.d.ts.map +1 -1
  444. package/dist/redux/api/modelApi.js +15 -15
  445. package/dist/redux/api/modelApi.js.map +1 -1
  446. package/dist/redux/api/modelApi.ts +12 -15
  447. package/dist/redux/features/agentSlice.d.ts +34 -0
  448. package/dist/redux/features/agentSlice.d.ts.map +1 -0
  449. package/dist/redux/features/agentSlice.js +92 -0
  450. package/dist/redux/features/agentSlice.js.map +1 -0
  451. package/dist/redux/features/agentSlice.ts +119 -0
  452. package/dist/redux/store/defaultStoreConfig.d.ts +11 -10
  453. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  454. package/dist/redux/store/defaultStoreConfig.js +2 -0
  455. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  456. package/dist/redux/store/defaultStoreConfig.ts +2 -0
  457. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  458. package/dist/redux/store/solidEntityApiPool.js +7 -0
  459. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  460. package/dist/redux/store/solidEntityApiPool.ts +6 -0
  461. package/dist/resources/globals.css +109 -1
  462. package/dist/resources/solid-custom.css +295 -0
  463. package/dist/resources/solid-tailwind-generated.css +1 -1
  464. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.css +47 -0
  465. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts +12 -0
  466. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts.map +1 -0
  467. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js +80 -0
  468. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js.map +1 -0
  469. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.tsx +123 -0
  470. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.css +110 -0
  471. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts +3 -0
  472. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts.map +1 -0
  473. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js +702 -0
  474. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js.map +1 -0
  475. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.tsx +630 -0
  476. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.css +303 -0
  477. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts +3 -0
  478. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts.map +1 -0
  479. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js +330 -0
  480. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js.map +1 -0
  481. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.tsx +460 -0
  482. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.css +125 -0
  483. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts +3 -0
  484. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts.map +1 -0
  485. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js +295 -0
  486. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js.map +1 -0
  487. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.tsx +275 -0
  488. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js +11 -11
  489. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js.map +1 -1
  490. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx +15 -15
  491. package/dist/routes/pages/embed/AgentEmbedPage.d.ts +3 -0
  492. package/dist/routes/pages/embed/AgentEmbedPage.d.ts.map +1 -0
  493. package/dist/routes/pages/embed/AgentEmbedPage.js +170 -0
  494. package/dist/routes/pages/embed/AgentEmbedPage.js.map +1 -0
  495. package/dist/routes/pages/embed/AgentEmbedPage.module.css +195 -0
  496. package/dist/routes/pages/embed/AgentEmbedPage.tsx +169 -0
  497. package/dist/routes/solidRoutes.d.ts.map +1 -1
  498. package/dist/routes/solidRoutes.js +8 -0
  499. package/dist/routes/solidRoutes.js.map +1 -1
  500. package/dist/routes/solidRoutes.tsx +8 -0
  501. package/dist/types/extension-registry.d.ts +4 -0
  502. package/dist/types/extension-registry.d.ts.map +1 -1
  503. package/dist/types/extension-registry.js +7 -0
  504. package/dist/types/extension-registry.js.map +1 -1
  505. package/dist/types/extension-registry.ts +7 -0
  506. package/dist/types/index.d.ts +4 -0
  507. package/dist/types/list-row-action.d.ts +2 -0
  508. package/dist/types/list-row-action.d.ts.map +1 -1
  509. package/dist/types/list-row-action.js.map +1 -1
  510. package/dist/types/list-row-action.ts +3 -0
  511. package/dist/types/solid-core.d.ts +36 -0
  512. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ import type { SolidKanbanCardWidgetProps } from "../../../../../../types/solid-core";
2
+ /** Compact shared card renderer for agent skill and tool records. */
3
+ export declare function AgentResourceCardWidget({ rowData }: SolidKanbanCardWidgetProps): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=AgentResourceCardWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentResourceCardWidget.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAerF,qEAAqE;AACrE,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,EAAE,0BAA0B,2CA8B9E"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { SolidMaterialSymbol } from "../../../../../common/SolidMaterialSymbol";
3
+ import styles from "./AgentRegistryCardWidget.module.css";
4
+ function toTags(value) {
5
+ if (Array.isArray(value))
6
+ return value.map(String).map(function (tag) { return tag.trim(); }).filter(Boolean);
7
+ if (typeof value !== "string" || !value.trim())
8
+ return [];
9
+ try {
10
+ var parsed = JSON.parse(value);
11
+ return Array.isArray(parsed) ? parsed.map(String).map(function (tag) { return tag.trim(); }).filter(Boolean) : [];
12
+ }
13
+ catch (_a) {
14
+ return value === "{}" ? [] : value.split(",").map(function (tag) { return tag.trim(); }).filter(Boolean);
15
+ }
16
+ }
17
+ /** Compact shared card renderer for agent skill and tool records. */
18
+ export function AgentResourceCardWidget(_a) {
19
+ var rowData = _a.rowData;
20
+ var iconName = typeof (rowData === null || rowData === void 0 ? void 0 : rowData.iconName) === "string" && rowData.iconName.trim()
21
+ ? rowData.iconName.trim()
22
+ : (rowData === null || rowData === void 0 ? void 0 : rowData.type) ? "build" : "psychology";
23
+ var name = typeof (rowData === null || rowData === void 0 ? void 0 : rowData.name) === "string" && rowData.name.trim() ? rowData.name.trim() : "Untitled";
24
+ var description = typeof (rowData === null || rowData === void 0 ? void 0 : rowData.description) === "string" ? rowData.description.trim() : "";
25
+ var tags = toTags(rowData === null || rowData === void 0 ? void 0 : rowData.tags);
26
+ var status = typeof (rowData === null || rowData === void 0 ? void 0 : rowData.status) === "string" && rowData.status.trim() ? rowData.status.trim() : "";
27
+ var loadError = status === "load_failed" && typeof (rowData === null || rowData === void 0 ? void 0 : rowData.lastLoadError) === "string"
28
+ ? rowData.lastLoadError.trim()
29
+ : "";
30
+ var kind = typeof (rowData === null || rowData === void 0 ? void 0 : rowData.type) === "string" && rowData.type.trim() ? rowData.type.trim() : "";
31
+ return (_jsxs("article", { className: styles.card, children: [_jsxs("div", { className: styles.header, children: [_jsx("div", { className: styles.iconBadge, "aria-label": "".concat(name, " icon"), children: _jsx(SolidMaterialSymbol, { name: iconName, size: 22, "aria-hidden": "true" }) }), status && _jsx("span", { className: "".concat(styles.status, " ").concat(styles["status_".concat(status.toLowerCase().replace(/[^a-z0-9]+/g, "_"))] || ""), children: status.replace(/[_-]+/g, " ") })] }), _jsx("div", { className: styles.heading, children: _jsx("h3", { className: styles.title, title: name, children: name }) }), _jsx("p", { className: styles.description, title: description || undefined, children: description || "No description provided." }), loadError && _jsx("p", { className: styles.loadError, title: loadError, children: loadError }), (kind || tags.length > 0) && _jsxs("div", { className: styles.footer, children: [_jsx("div", { className: styles.meta, children: kind && _jsx("span", { className: styles.badge, children: kind.replace(/[_-]+/g, " ") }) }), tags.length > 0 && _jsx("div", { className: styles.tags, children: tags.slice(0, 3).map(function (tag) { return _jsx("span", { className: styles.tag, children: tag }, tag); }) })] })] }));
32
+ }
33
+ //# sourceMappingURL=AgentResourceCardWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentResourceCardWidget.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { SolidKanbanCardWidgetProps } from \"../../../../../../types/solid-core\";\nimport { SolidMaterialSymbol } from \"../../../../../common/SolidMaterialSymbol\";\nimport styles from \"./AgentRegistryCardWidget.module.css\";\n\nfunction toTags(value: unknown): string[] {\n if (Array.isArray(value)) return value.map(String).map((tag) => tag.trim()).filter(Boolean);\n if (typeof value !== \"string\" || !value.trim()) return [];\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.map(String).map((tag) => tag.trim()).filter(Boolean) : [];\n } catch {\n return value === \"{}\" ? [] : value.split(\",\").map((tag) => tag.trim()).filter(Boolean);\n }\n}\n\n/** Compact shared card renderer for agent skill and tool records. */\nexport function AgentResourceCardWidget({ rowData }: SolidKanbanCardWidgetProps) {\n const iconName = typeof rowData?.iconName === \"string\" && rowData.iconName.trim()\n ? rowData.iconName.trim()\n : rowData?.type ? \"build\" : \"psychology\";\n const name = typeof rowData?.name === \"string\" && rowData.name.trim() ? rowData.name.trim() : \"Untitled\";\n const description = typeof rowData?.description === \"string\" ? rowData.description.trim() : \"\";\n const tags = toTags(rowData?.tags);\n const status = typeof rowData?.status === \"string\" && rowData.status.trim() ? rowData.status.trim() : \"\";\n const loadError = status === \"load_failed\" && typeof rowData?.lastLoadError === \"string\"\n ? rowData.lastLoadError.trim()\n : \"\";\n const kind = typeof rowData?.type === \"string\" && rowData.type.trim() ? rowData.type.trim() : \"\";\n\n return (\n <article className={styles.card}>\n <div className={styles.header}>\n <div className={styles.iconBadge} aria-label={`${name} icon`}>\n <SolidMaterialSymbol name={iconName} size={22} aria-hidden=\"true\" />\n </div>\n {status && <span className={`${styles.status} ${styles[`status_${status.toLowerCase().replace(/[^a-z0-9]+/g, \"_\")}`] || \"\"}`}>{status.replace(/[_-]+/g, \" \")}</span>}\n </div>\n <div className={styles.heading}><h3 className={styles.title} title={name}>{name}</h3></div>\n <p className={styles.description} title={description || undefined}>{description || \"No description provided.\"}</p>\n {loadError && <p className={styles.loadError} title={loadError}>{loadError}</p>}\n {(kind || tags.length > 0) && <div className={styles.footer}>\n <div className={styles.meta}>{kind && <span className={styles.badge}>{kind.replace(/[_-]+/g, \" \")}</span>}</div>\n {tags.length > 0 && <div className={styles.tags}>{tags.slice(0, 3).map((tag) => <span className={styles.tag} key={tag}>{tag}</span>)}</div>}\n </div>}\n </article>\n );\n}\n"]}
@@ -0,0 +1,47 @@
1
+ import type { SolidKanbanCardWidgetProps } from "../../../../../../types/solid-core";
2
+ import { SolidMaterialSymbol } from "../../../../../common/SolidMaterialSymbol";
3
+ import styles from "./AgentRegistryCardWidget.module.css";
4
+
5
+ function toTags(value: unknown): string[] {
6
+ if (Array.isArray(value)) return value.map(String).map((tag) => tag.trim()).filter(Boolean);
7
+ if (typeof value !== "string" || !value.trim()) return [];
8
+ try {
9
+ const parsed = JSON.parse(value);
10
+ return Array.isArray(parsed) ? parsed.map(String).map((tag) => tag.trim()).filter(Boolean) : [];
11
+ } catch {
12
+ return value === "{}" ? [] : value.split(",").map((tag) => tag.trim()).filter(Boolean);
13
+ }
14
+ }
15
+
16
+ /** Compact shared card renderer for agent skill and tool records. */
17
+ export function AgentResourceCardWidget({ rowData }: SolidKanbanCardWidgetProps) {
18
+ const iconName = typeof rowData?.iconName === "string" && rowData.iconName.trim()
19
+ ? rowData.iconName.trim()
20
+ : rowData?.type ? "build" : "psychology";
21
+ const name = typeof rowData?.name === "string" && rowData.name.trim() ? rowData.name.trim() : "Untitled";
22
+ const description = typeof rowData?.description === "string" ? rowData.description.trim() : "";
23
+ const tags = toTags(rowData?.tags);
24
+ const status = typeof rowData?.status === "string" && rowData.status.trim() ? rowData.status.trim() : "";
25
+ const loadError = status === "load_failed" && typeof rowData?.lastLoadError === "string"
26
+ ? rowData.lastLoadError.trim()
27
+ : "";
28
+ const kind = typeof rowData?.type === "string" && rowData.type.trim() ? rowData.type.trim() : "";
29
+
30
+ return (
31
+ <article className={styles.card}>
32
+ <div className={styles.header}>
33
+ <div className={styles.iconBadge} aria-label={`${name} icon`}>
34
+ <SolidMaterialSymbol name={iconName} size={22} aria-hidden="true" />
35
+ </div>
36
+ {status && <span className={`${styles.status} ${styles[`status_${status.toLowerCase().replace(/[^a-z0-9]+/g, "_")}`] || ""}`}>{status.replace(/[_-]+/g, " ")}</span>}
37
+ </div>
38
+ <div className={styles.heading}><h3 className={styles.title} title={name}>{name}</h3></div>
39
+ <p className={styles.description} title={description || undefined}>{description || "No description provided."}</p>
40
+ {loadError && <p className={styles.loadError} title={loadError}>{loadError}</p>}
41
+ {(kind || tags.length > 0) && <div className={styles.footer}>
42
+ <div className={styles.meta}>{kind && <span className={styles.badge}>{kind.replace(/[_-]+/g, " ")}</span>}</div>
43
+ {tags.length > 0 && <div className={styles.tags}>{tags.slice(0, 3).map((tag) => <span className={styles.tag} key={tag}>{tag}</span>)}</div>}
44
+ </div>}
45
+ </article>
46
+ );
47
+ }
@@ -0,0 +1,5 @@
1
+ export declare function AgentProcessesPanel({ agentId, agentLabel }: {
2
+ agentId: number | string;
3
+ agentLabel?: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=AgentProcessesPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentProcessesPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,2CAgE7G"}
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { AlertCircle, Clock3, RefreshCw, Search } from "lucide-react";
4
+ import { createSolidEntityApi } from "../../../../../redux/api/solidEntityApi";
5
+ import { SolidInput } from "../../../../shad-cn-ui";
6
+ import { AgentSessionsPanel } from "./AgentToolSessionsPanel";
7
+ function processQuery(agentId) {
8
+ return "offset=0&limit=1000&sort[0]=startedAt%3Adesc&filters[agent][id][$eq]=".concat(encodeURIComponent(String(agentId)));
9
+ }
10
+ export function AgentProcessesPanel(_a) {
11
+ var agentId = _a.agentId, agentLabel = _a.agentLabel;
12
+ var processApi = React.useMemo(function () { return createSolidEntityApi("agentProcess"); }, []);
13
+ var fetchProcesses = processApi.useLazyGetSolidEntitiesQuery()[0];
14
+ var _b = React.useState([]), processes = _b[0], setProcesses = _b[1];
15
+ var _c = React.useState(null), selectedProcessId = _c[0], setSelectedProcessId = _c[1];
16
+ var _d = React.useState(""), search = _d[0], setSearch = _d[1];
17
+ var _e = React.useState(true), loading = _e[0], setLoading = _e[1];
18
+ var _f = React.useState(false), error = _f[0], setError = _f[1];
19
+ var _g = React.useState(0), refreshVersion = _g[0], setRefreshVersion = _g[1];
20
+ React.useEffect(function () {
21
+ var alive = true;
22
+ setLoading(true);
23
+ setError(false);
24
+ void fetchProcesses(processQuery(agentId), false).unwrap().then(function (result) {
25
+ if (!alive)
26
+ return;
27
+ var records = Array.isArray(result === null || result === void 0 ? void 0 : result.records) ? result.records : [];
28
+ setProcesses(records);
29
+ setSelectedProcessId(function (current) { var _a, _b; return records.some(function (process) { return process.id === current; }) ? current : (_b = (_a = records[0]) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null; });
30
+ }).catch(function () {
31
+ if (!alive)
32
+ return;
33
+ setProcesses([]);
34
+ setSelectedProcessId(null);
35
+ setError(true);
36
+ }).finally(function () { if (alive)
37
+ setLoading(false); });
38
+ return function () { alive = false; };
39
+ }, [agentId, fetchProcesses, refreshVersion]);
40
+ var selectedProcess = processes.find(function (process) { return process.id === selectedProcessId; });
41
+ var query = search.trim().toLowerCase();
42
+ var visibleProcesses = processes.filter(function (process) {
43
+ return [process.id, process.processId, process.status].some(function (value) { return String(value !== null && value !== void 0 ? value : "").toLowerCase().includes(query); });
44
+ });
45
+ return _jsxs("section", { className: "agent-process-view", "aria-label": "Processes, sessions and events", children: [_jsxs("aside", { className: "agent-process-view__processes", children: [_jsxs("header", { className: "agent-tool-editor__sessions-sidebar-head", children: [_jsxs("div", { className: "agent-tool-editor__sessions-heading", children: [_jsx("h2", { children: "Processes" }), _jsx("button", { type: "button", className: "agent-tool-editor__refresh".concat(loading ? " is-loading" : ""), "aria-label": "Refresh processes", title: "Refresh processes", disabled: loading, onClick: function () { return setRefreshVersion(function (version) { return version + 1; }); }, children: _jsx(RefreshCw, { size: 13 }) }), _jsxs("span", { children: [visibleProcesses.length, visibleProcesses.length !== processes.length ? " / ".concat(processes.length) : ""] })] }), _jsx("p", { children: "Browse processes for this agent." }), _jsxs("label", { className: "agent-tool-editor__session-search", children: [_jsx("span", { className: "sr-only", children: "Find a process" }), _jsx(Search, { size: 14 }), _jsx(SolidInput, { value: search, placeholder: "Find a process\u2026", onChange: function (event) { return setSearch(event.target.value); } })] })] }), _jsx("div", { className: "agent-tool-editor__session-list", role: "listbox", "aria-label": "Processes", children: loading ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: "Loading processes\u2026" })
46
+ : error ? _jsxs("p", { className: "agent-tool-editor__sessions-message agent-tool-editor__sessions-message--error", children: [_jsx(AlertCircle, { size: 15 }), " Could not load processes."] })
47
+ : processes.length === 0 ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: "No processes found for this agent." })
48
+ : visibleProcesses.length === 0 ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: "No processes match this search." })
49
+ : visibleProcesses.map(function (process) {
50
+ var _a, _b;
51
+ var label = "#".concat(process.id);
52
+ var status = (_a = process.status) !== null && _a !== void 0 ? _a : "Unknown";
53
+ var started = process.startedAt ? new Date(process.startedAt) : null;
54
+ var startedLabel = started && !Number.isNaN(started.getTime()) ? started.toLocaleString() : "Start time unknown";
55
+ return _jsxs("button", { type: "button", role: "option", "aria-selected": process.id === selectedProcessId, className: "agent-tool-editor__session-item".concat(process.id === selectedProcessId ? " is-selected" : ""), title: (_b = process.processId) !== null && _b !== void 0 ? _b : label, onClick: function () { return setSelectedProcessId(process.id); }, children: [_jsx("span", { className: "agent-tool-editor__session-item-id", children: label }), _jsx("span", { className: "agent-tool-editor__session-item-meta", children: _jsxs("span", { children: [_jsx(Clock3, { size: 12 }), " ", startedLabel] }) }), _jsx("span", { className: "agent-tool-editor__session-status".concat(status === "ready" ? " is-running" : ""), children: status })] }, process.id);
56
+ }) })] }), selectedProcess ? _jsx(AgentSessionsPanel, { agentId: agentId, agentLabel: agentLabel, processId: selectedProcess.id, processLabel: "#".concat(selectedProcess.id) }, selectedProcess.id)
57
+ : _jsx("div", { className: "agent-process-view__empty", children: loading ? "Loading processes…" : error ? "Processes could not be loaded." : "Select a process to inspect its sessions and events." })] });
58
+ }
59
+ //# sourceMappingURL=AgentProcessesPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentProcessesPanel.js","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { AlertCircle, Clock3, RefreshCw, Search } from \"lucide-react\";\nimport { createSolidEntityApi } from \"../../../../../redux/api/solidEntityApi\";\nimport { SolidInput } from \"../../../../shad-cn-ui\";\nimport { AgentSessionsPanel } from \"./AgentToolSessionsPanel\";\n\ntype ProcessRecord = {\n id: number;\n processId?: string | null;\n status?: string | null;\n startedAt?: string | null;\n};\n\nfunction processQuery(agentId: number | string): string {\n return `offset=0&limit=1000&sort[0]=startedAt%3Adesc&filters[agent][id][$eq]=${encodeURIComponent(String(agentId))}`;\n}\n\nexport function AgentProcessesPanel({ agentId, agentLabel }: { agentId: number | string; agentLabel?: string }) {\n const processApi = React.useMemo(() => createSolidEntityApi(\"agentProcess\"), []);\n const [fetchProcesses] = processApi.useLazyGetSolidEntitiesQuery();\n const [processes, setProcesses] = React.useState<ProcessRecord[]>([]);\n const [selectedProcessId, setSelectedProcessId] = React.useState<number | null>(null);\n const [search, setSearch] = React.useState(\"\");\n const [loading, setLoading] = React.useState(true);\n const [error, setError] = React.useState(false);\n const [refreshVersion, setRefreshVersion] = React.useState(0);\n\n React.useEffect(() => {\n let alive = true;\n setLoading(true);\n setError(false);\n void fetchProcesses(processQuery(agentId), false).unwrap().then((result: any) => {\n if (!alive) return;\n const records = Array.isArray(result?.records) ? result.records as ProcessRecord[] : [];\n setProcesses(records);\n setSelectedProcessId((current) => records.some((process) => process.id === current) ? current : records[0]?.id ?? null);\n }).catch(() => {\n if (!alive) return;\n setProcesses([]);\n setSelectedProcessId(null);\n setError(true);\n }).finally(() => { if (alive) setLoading(false); });\n return () => { alive = false; };\n }, [agentId, fetchProcesses, refreshVersion]);\n\n const selectedProcess = processes.find((process) => process.id === selectedProcessId);\n const query = search.trim().toLowerCase();\n const visibleProcesses = processes.filter((process) =>\n [process.id, process.processId, process.status].some((value) => String(value ?? \"\").toLowerCase().includes(query)));\n\n return <section className=\"agent-process-view\" aria-label=\"Processes, sessions and events\">\n <aside className=\"agent-process-view__processes\">\n <header className=\"agent-tool-editor__sessions-sidebar-head\">\n <div className=\"agent-tool-editor__sessions-heading\"><h2>Processes</h2><button type=\"button\" className={`agent-tool-editor__refresh${loading ? \" is-loading\" : \"\"}`} aria-label=\"Refresh processes\" title=\"Refresh processes\" disabled={loading} onClick={() => setRefreshVersion((version) => version + 1)}><RefreshCw size={13} /></button><span>{visibleProcesses.length}{visibleProcesses.length !== processes.length ? ` / ${processes.length}` : \"\"}</span></div>\n <p>Browse processes for this agent.</p>\n <label className=\"agent-tool-editor__session-search\"><span className=\"sr-only\">Find a process</span><Search size={14} /><SolidInput value={search} placeholder=\"Find a process…\" onChange={(event: React.ChangeEvent<HTMLInputElement>) => setSearch(event.target.value)} /></label>\n </header>\n <div className=\"agent-tool-editor__session-list\" role=\"listbox\" aria-label=\"Processes\">\n {loading ? <p className=\"agent-tool-editor__sessions-message\">Loading processes…</p>\n : error ? <p className=\"agent-tool-editor__sessions-message agent-tool-editor__sessions-message--error\"><AlertCircle size={15} /> Could not load processes.</p>\n : processes.length === 0 ? <p className=\"agent-tool-editor__sessions-message\">No processes found for this agent.</p>\n : visibleProcesses.length === 0 ? <p className=\"agent-tool-editor__sessions-message\">No processes match this search.</p>\n : visibleProcesses.map((process) => {\n const label = `#${process.id}`;\n const status = process.status ?? \"Unknown\";\n const started = process.startedAt ? new Date(process.startedAt) : null;\n const startedLabel = started && !Number.isNaN(started.getTime()) ? started.toLocaleString() : \"Start time unknown\";\n return <button key={process.id} type=\"button\" role=\"option\" aria-selected={process.id === selectedProcessId}\n className={`agent-tool-editor__session-item${process.id === selectedProcessId ? \" is-selected\" : \"\"}`}\n title={process.processId ?? label} onClick={() => setSelectedProcessId(process.id)}>\n <span className=\"agent-tool-editor__session-item-id\">{label}</span>\n <span className=\"agent-tool-editor__session-item-meta\"><span><Clock3 size={12} /> {startedLabel}</span></span>\n <span className={`agent-tool-editor__session-status${status === \"ready\" ? \" is-running\" : \"\"}`}>{status}</span>\n </button>;\n })}\n </div>\n </aside>\n {selectedProcess ? <AgentSessionsPanel key={selectedProcess.id} agentId={agentId} agentLabel={agentLabel}\n processId={selectedProcess.id} processLabel={`#${selectedProcess.id}`} />\n : <div className=\"agent-process-view__empty\">{loading ? \"Loading processes…\" : error ? \"Processes could not be loaded.\" : \"Select a process to inspect its sessions and events.\"}</div>}\n </section>;\n}\n"]}
@@ -0,0 +1,82 @@
1
+ import React from "react";
2
+ import { AlertCircle, Clock3, RefreshCw, Search } from "lucide-react";
3
+ import { createSolidEntityApi } from "../../../../../redux/api/solidEntityApi";
4
+ import { SolidInput } from "../../../../shad-cn-ui";
5
+ import { AgentSessionsPanel } from "./AgentToolSessionsPanel";
6
+
7
+ type ProcessRecord = {
8
+ id: number;
9
+ processId?: string | null;
10
+ status?: string | null;
11
+ startedAt?: string | null;
12
+ };
13
+
14
+ function processQuery(agentId: number | string): string {
15
+ return `offset=0&limit=1000&sort[0]=startedAt%3Adesc&filters[agent][id][$eq]=${encodeURIComponent(String(agentId))}`;
16
+ }
17
+
18
+ export function AgentProcessesPanel({ agentId, agentLabel }: { agentId: number | string; agentLabel?: string }) {
19
+ const processApi = React.useMemo(() => createSolidEntityApi("agentProcess"), []);
20
+ const [fetchProcesses] = processApi.useLazyGetSolidEntitiesQuery();
21
+ const [processes, setProcesses] = React.useState<ProcessRecord[]>([]);
22
+ const [selectedProcessId, setSelectedProcessId] = React.useState<number | null>(null);
23
+ const [search, setSearch] = React.useState("");
24
+ const [loading, setLoading] = React.useState(true);
25
+ const [error, setError] = React.useState(false);
26
+ const [refreshVersion, setRefreshVersion] = React.useState(0);
27
+
28
+ React.useEffect(() => {
29
+ let alive = true;
30
+ setLoading(true);
31
+ setError(false);
32
+ void fetchProcesses(processQuery(agentId), false).unwrap().then((result: any) => {
33
+ if (!alive) return;
34
+ const records = Array.isArray(result?.records) ? result.records as ProcessRecord[] : [];
35
+ setProcesses(records);
36
+ setSelectedProcessId((current) => records.some((process) => process.id === current) ? current : records[0]?.id ?? null);
37
+ }).catch(() => {
38
+ if (!alive) return;
39
+ setProcesses([]);
40
+ setSelectedProcessId(null);
41
+ setError(true);
42
+ }).finally(() => { if (alive) setLoading(false); });
43
+ return () => { alive = false; };
44
+ }, [agentId, fetchProcesses, refreshVersion]);
45
+
46
+ const selectedProcess = processes.find((process) => process.id === selectedProcessId);
47
+ const query = search.trim().toLowerCase();
48
+ const visibleProcesses = processes.filter((process) =>
49
+ [process.id, process.processId, process.status].some((value) => String(value ?? "").toLowerCase().includes(query)));
50
+
51
+ return <section className="agent-process-view" aria-label="Processes, sessions and events">
52
+ <aside className="agent-process-view__processes">
53
+ <header className="agent-tool-editor__sessions-sidebar-head">
54
+ <div className="agent-tool-editor__sessions-heading"><h2>Processes</h2><button type="button" className={`agent-tool-editor__refresh${loading ? " is-loading" : ""}`} aria-label="Refresh processes" title="Refresh processes" disabled={loading} onClick={() => setRefreshVersion((version) => version + 1)}><RefreshCw size={13} /></button><span>{visibleProcesses.length}{visibleProcesses.length !== processes.length ? ` / ${processes.length}` : ""}</span></div>
55
+ <p>Browse processes for this agent.</p>
56
+ <label className="agent-tool-editor__session-search"><span className="sr-only">Find a process</span><Search size={14} /><SolidInput value={search} placeholder="Find a process…" onChange={(event: React.ChangeEvent<HTMLInputElement>) => setSearch(event.target.value)} /></label>
57
+ </header>
58
+ <div className="agent-tool-editor__session-list" role="listbox" aria-label="Processes">
59
+ {loading ? <p className="agent-tool-editor__sessions-message">Loading processes…</p>
60
+ : error ? <p className="agent-tool-editor__sessions-message agent-tool-editor__sessions-message--error"><AlertCircle size={15} /> Could not load processes.</p>
61
+ : processes.length === 0 ? <p className="agent-tool-editor__sessions-message">No processes found for this agent.</p>
62
+ : visibleProcesses.length === 0 ? <p className="agent-tool-editor__sessions-message">No processes match this search.</p>
63
+ : visibleProcesses.map((process) => {
64
+ const label = `#${process.id}`;
65
+ const status = process.status ?? "Unknown";
66
+ const started = process.startedAt ? new Date(process.startedAt) : null;
67
+ const startedLabel = started && !Number.isNaN(started.getTime()) ? started.toLocaleString() : "Start time unknown";
68
+ return <button key={process.id} type="button" role="option" aria-selected={process.id === selectedProcessId}
69
+ className={`agent-tool-editor__session-item${process.id === selectedProcessId ? " is-selected" : ""}`}
70
+ title={process.processId ?? label} onClick={() => setSelectedProcessId(process.id)}>
71
+ <span className="agent-tool-editor__session-item-id">{label}</span>
72
+ <span className="agent-tool-editor__session-item-meta"><span><Clock3 size={12} /> {startedLabel}</span></span>
73
+ <span className={`agent-tool-editor__session-status${status === "ready" ? " is-running" : ""}`}>{status}</span>
74
+ </button>;
75
+ })}
76
+ </div>
77
+ </aside>
78
+ {selectedProcess ? <AgentSessionsPanel key={selectedProcess.id} agentId={agentId} agentLabel={agentLabel}
79
+ processId={selectedProcess.id} processLabel={`#${selectedProcess.id}`} />
80
+ : <div className="agent-process-view__empty">{loading ? "Loading processes…" : error ? "Processes could not be loaded." : "Select a process to inspect its sessions and events."}</div>}
81
+ </section>;
82
+ }
@@ -0,0 +1,17 @@
1
+ import "../../../../../routes/pages/admin/core/AgentToolRegistryEditorPage.css";
2
+ type AgentOption = {
3
+ id: number | string;
4
+ name?: string;
5
+ title?: string;
6
+ };
7
+ type Props = {
8
+ agents?: AgentOption[];
9
+ agentId?: number | string;
10
+ agentLabel?: string;
11
+ processId?: number;
12
+ processLabel?: string;
13
+ };
14
+ export declare function AgentSessionsPanel({ agents, agentId, agentLabel, processId, processLabel }: Props): import("react/jsx-runtime").JSX.Element;
15
+ export declare const AgentToolSessionsPanel: typeof AgentSessionsPanel;
16
+ export {};
17
+ //# sourceMappingURL=AgentToolSessionsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentToolSessionsPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,wEAAwE,CAAC;AAEhF,KAAK,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAoD1E,KAAK,KAAK,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAKnI,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,KAAK,2CA0NjG;AAED,eAAO,MAAM,sBAAsB,2BAAqB,CAAC"}
@@ -0,0 +1,258 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
49
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
50
+ if (ar || !(i in from)) {
51
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
52
+ ar[i] = from[i];
53
+ }
54
+ }
55
+ return to.concat(ar || Array.prototype.slice.call(from));
56
+ };
57
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
58
+ import React from "react";
59
+ import qs from "qs";
60
+ import { AlertCircle, Clock3, RefreshCw, Search } from "lucide-react";
61
+ import { createSolidEntityApi } from "../../../../../redux/api/solidEntityApi";
62
+ import { SolidAutocomplete, SolidDialog, SolidDialogDescription, SolidDialogHeader, SolidDialogTitle, SolidInput, SolidSelect } from "../../../../shad-cn-ui";
63
+ import { AgentEventOutcomeListWidget, getAgentEventFailure } from "../agentEvent/list/AgentEventOutcomeListWidget";
64
+ import "../../../../../routes/pages/admin/core/AgentToolRegistryEditorPage.css";
65
+ function unwrapRecords(result) {
66
+ return Array.isArray(result === null || result === void 0 ? void 0 : result.records) ? result.records : [];
67
+ }
68
+ function ago(value) {
69
+ if (!value)
70
+ return "Start time unknown";
71
+ var date = new Date(value);
72
+ if (Number.isNaN(date.getTime()))
73
+ return "Start time unknown";
74
+ var seconds = Math.max(0, Math.floor((Date.now() - date.getTime()) / 1000));
75
+ if (seconds < 60)
76
+ return "Started just now";
77
+ if (seconds < 3600)
78
+ return "Started ".concat(Math.floor(seconds / 60), "m ago");
79
+ if (seconds < 86400)
80
+ return "Started ".concat(Math.floor(seconds / 3600), "h ago");
81
+ var days = Math.floor(seconds / 86400);
82
+ return days < 30 ? "Started ".concat(days, "d ago") : "Started ".concat(date.toLocaleDateString());
83
+ }
84
+ function agentName(session, agents) {
85
+ var _a, _b, _c, _d;
86
+ var relation = session.agent;
87
+ var id = relation && typeof relation === "object" ? relation.id : relation;
88
+ var agent = agents.find(function (item) { return String(item.id) === String(id); });
89
+ if (agent)
90
+ return (_b = (_a = agent.name) !== null && _a !== void 0 ? _a : agent.title) !== null && _b !== void 0 ? _b : "Unnamed agent";
91
+ if (relation && typeof relation === "object")
92
+ return (_d = (_c = relation.name) !== null && _c !== void 0 ? _c : relation.title) !== null && _d !== void 0 ? _d : "Unnamed agent";
93
+ return "Unknown agent";
94
+ }
95
+ function sessionQuery(agentId, processId) {
96
+ var processFilter = processId == null ? "" : "&filters[process][id][$eq]=".concat(encodeURIComponent(String(processId)));
97
+ return "offset=0&limit=1000&populate[0]=agent&sort[0]=startedAt%3Adesc&filters[agent][id][$eq]=".concat(encodeURIComponent(String(agentId))).concat(processFilter);
98
+ }
99
+ function eventsQuery(sessionId, offset, limit, eventType, search) {
100
+ var conditions = [{ session: { $eq: sessionId } }];
101
+ if (eventType !== "all")
102
+ conditions.push({ eventType: { $eq: eventType } });
103
+ if (search.trim())
104
+ conditions.push({ $or: ["eventType", "toolName", "content", "toolOutput", "eventData"]
105
+ .map(function (field) {
106
+ var _a;
107
+ return (_a = {}, _a[field] = { $containsi: search.trim() }, _a);
108
+ }) });
109
+ return qs.stringify({
110
+ offset: offset,
111
+ limit: limit,
112
+ sort: ["createdAt:asc", "id:asc"], filters: { $and: conditions },
113
+ fields: ["id", "createdAt", "eventType", "toolName", "cost", "inputTokens", "outputTokens", "toolReturncode", "toolOutput", "eventData"],
114
+ });
115
+ }
116
+ var EMPTY_AGENTS = [];
117
+ var EVENT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];
118
+ var EventFormView = React.lazy(function () { return import("../../../form/SolidFormView"); });
119
+ export function AgentSessionsPanel(_a) {
120
+ var _this = this;
121
+ var _b, _c, _d, _e, _f, _g;
122
+ var agents = _a.agents, agentId = _a.agentId, agentLabel = _a.agentLabel, processId = _a.processId, processLabel = _a.processLabel;
123
+ var linkedAgents = agents !== null && agents !== void 0 ? agents : EMPTY_AGENTS;
124
+ var scopedAgents = React.useMemo(function () { return agentId != null
125
+ ? [{ id: agentId, name: agentLabel !== null && agentLabel !== void 0 ? agentLabel : "Agent" }]
126
+ : linkedAgents; }, [agentId, agentLabel, linkedAgents]);
127
+ var sessionApi = React.useMemo(function () { return createSolidEntityApi("agentSession"); }, []);
128
+ var eventApi = React.useMemo(function () { return createSolidEntityApi("agentEvent"); }, []);
129
+ var fetchSessions = sessionApi.useLazyGetSolidEntitiesQuery()[0];
130
+ var _h = React.useState([]), sessions = _h[0], setSessions = _h[1];
131
+ var _j = React.useState(null), selectedAgent = _j[0], setSelectedAgent = _j[1];
132
+ var _k = React.useState(null), selectedSessionId = _k[0], setSelectedSessionId = _k[1];
133
+ var _l = React.useState(null), selectedEventId = _l[0], setSelectedEventId = _l[1];
134
+ var eventsTableRef = React.useRef(null);
135
+ var _m = React.useState(false), isLoadingSessions = _m[0], setIsLoadingSessions = _m[1];
136
+ var _o = React.useState(false), sessionsError = _o[0], setSessionsError = _o[1];
137
+ var _p = React.useState("all"), eventTypeFilter = _p[0], setEventTypeFilter = _p[1];
138
+ var _q = React.useState("all"), outcomeFilter = _q[0], setOutcomeFilter = _q[1];
139
+ var _r = React.useState(""), eventSearch = _r[0], setEventSearch = _r[1];
140
+ var _s = React.useState(""), eventSearchQuery = _s[0], setEventSearchQuery = _s[1];
141
+ var _t = React.useState({ scope: "", page: 1 }), eventPagination = _t[0], setEventPagination = _t[1];
142
+ var _u = React.useState(25), eventPageSize = _u[0], setEventPageSize = _u[1];
143
+ var eventPageSizeId = React.useId();
144
+ var _v = React.useState(""), sessionSearch = _v[0], setSessionSearch = _v[1];
145
+ var _w = React.useState(0), sessionRefreshVersion = _w[0], setSessionRefreshVersion = _w[1];
146
+ var eventScope = JSON.stringify([selectedSessionId, eventTypeFilter, eventSearchQuery]);
147
+ var currentEventPage = eventPagination.scope === eventScope ? eventPagination.page : 1;
148
+ var eventFirst = (currentEventPage - 1) * eventPageSize;
149
+ var eventResult = eventApi.useGetSolidEntitiesQuery(selectedSessionId == null ? "" : eventsQuery(selectedSessionId, eventFirst, eventPageSize, eventTypeFilter, eventSearchQuery), { skip: selectedSessionId == null });
150
+ var eventTypesResult = eventApi.useGetSolidEntitiesQuery(qs.stringify({
151
+ groupBy: ["eventType"], sort: ["eventType:asc"], filters: { session: { $eq: selectedSessionId } },
152
+ }), { skip: selectedSessionId == null });
153
+ var events = unwrapRecords(eventResult.currentData);
154
+ var totalEvents = Number((_d = (_c = (_b = eventResult.currentData) === null || _b === void 0 ? void 0 : _b.meta) === null || _c === void 0 ? void 0 : _c.totalRecords) !== null && _d !== void 0 ? _d : 0);
155
+ var eventPageCount = Math.max(1, Math.ceil(totalEvents / eventPageSize));
156
+ var isLoadingEvents = eventResult.isFetching || eventSearch.trim() !== eventSearchQuery;
157
+ var eventsError = eventResult.isError;
158
+ var agentOptions = React.useMemo(function () { return linkedAgents.map(function (agent) {
159
+ var _a, _b;
160
+ return ({
161
+ id: String(agent.id),
162
+ label: (_b = (_a = agent.name) !== null && _a !== void 0 ? _a : agent.title) !== null && _b !== void 0 ? _b : "Agent ".concat(agent.id),
163
+ });
164
+ }); }, [linkedAgents]);
165
+ var linkedAgentKey = agentOptions.map(function (agent) { return agent.id; }).join(",");
166
+ React.useEffect(function () {
167
+ var alive = true;
168
+ var requestedAgents = agentId != null ? scopedAgents : selectedAgent ? scopedAgents.filter(function (agent) { return String(agent.id) === selectedAgent.id; }) : scopedAgents;
169
+ if (!requestedAgents.length) {
170
+ setSessions([]);
171
+ setSelectedSessionId(null);
172
+ return;
173
+ }
174
+ setIsLoadingSessions(true);
175
+ setSessionsError(false);
176
+ void Promise.all(requestedAgents.map(function (agent) { return __awaiter(_this, void 0, void 0, function () {
177
+ var result;
178
+ return __generator(this, function (_a) {
179
+ switch (_a.label) {
180
+ case 0: return [4 /*yield*/, fetchSessions(sessionQuery(agent.id, processId), false).unwrap()];
181
+ case 1:
182
+ result = _a.sent();
183
+ return [2 /*return*/, unwrapRecords(result).map(function (item) { return (__assign(__assign({}, item), { agent: item.agent && typeof item.agent === "object" ? item.agent : agent })); })];
184
+ }
185
+ });
186
+ }); })).then(function (groups) {
187
+ if (!alive)
188
+ return;
189
+ var unique = new Map();
190
+ groups.flat().forEach(function (session) { return unique.set(String(session.id), session); });
191
+ var ordered = Array.from(unique.values()).sort(function (a, b) { var _a, _b; return new Date((_a = b.startedAt) !== null && _a !== void 0 ? _a : 0).getTime() - new Date((_b = a.startedAt) !== null && _b !== void 0 ? _b : 0).getTime(); });
192
+ setSessions(ordered);
193
+ setSelectedSessionId(function (current) { var _a, _b; return ordered.some(function (session) { return session.id === current; }) ? current : (_b = (_a = ordered[0]) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null; });
194
+ }).catch(function () {
195
+ if (alive) {
196
+ setSessions([]);
197
+ setSelectedSessionId(null);
198
+ setSessionsError(true);
199
+ }
200
+ }).finally(function () { return alive && setIsLoadingSessions(false); });
201
+ return function () { alive = false; };
202
+ }, [agentId, fetchSessions, linkedAgentKey, processId, scopedAgents, selectedAgent, sessionRefreshVersion]);
203
+ React.useEffect(function () {
204
+ var timer = window.setTimeout(function () { return setEventSearchQuery(eventSearch.trim()); }, 300);
205
+ return function () { return window.clearTimeout(timer); };
206
+ }, [eventSearch]);
207
+ var eventTypes = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], ((_f = (_e = eventTypesResult.currentData) === null || _e === void 0 ? void 0 : _e.groupMeta) !== null && _f !== void 0 ? _f : []).map(function (group) { var _a; return String((_a = group.groupValue) !== null && _a !== void 0 ? _a : ""); }), true), events.map(function (event) { var _a; return String((_a = event.eventType) !== null && _a !== void 0 ? _a : ""); }), true), [
208
+ eventTypeFilter === "all" ? "" : eventTypeFilter,
209
+ ], false).filter(Boolean))).sort();
210
+ var visibleEvents = events.filter(function (event) { return outcomeFilter === "all"
211
+ || Boolean(getAgentEventFailure(event)) === (outcomeFilter === "failure"); });
212
+ React.useEffect(function () {
213
+ if (!isLoadingEvents && eventResult.currentData && currentEventPage > eventPageCount) {
214
+ setEventPagination({ scope: eventScope, page: eventPageCount });
215
+ }
216
+ }, [isLoadingEvents, eventResult.currentData, currentEventPage, eventPageCount, eventScope]);
217
+ React.useEffect(function () {
218
+ if (eventsTableRef.current)
219
+ eventsTableRef.current.scrollTop = 0;
220
+ }, [currentEventPage, eventPageSize, selectedSessionId, eventSearch, eventTypeFilter, outcomeFilter]);
221
+ var selectedSession = sessions.find(function (session) { return session.id === selectedSessionId; });
222
+ var visibleSessions = React.useMemo(function () {
223
+ var query = sessionSearch.trim().toLowerCase();
224
+ if (!query)
225
+ return sessions;
226
+ return sessions.filter(function (session) { return [session.sessionId, session.id, session.status, agentName(session, scopedAgents)]
227
+ .some(function (value) { return String(value !== null && value !== void 0 ? value : "").toLowerCase().includes(query); }); });
228
+ }, [scopedAgents, sessionSearch, sessions]);
229
+ return (_jsxs("section", { className: "agent-tool-editor__sessions", "aria-label": "Sessions and events", children: [_jsxs("aside", { className: "agent-tool-editor__sessions-sidebar", children: [_jsxs("header", { className: "agent-tool-editor__sessions-sidebar-head", children: [_jsx("div", { children: _jsxs("div", { className: "agent-tool-editor__sessions-heading", children: [_jsx("h2", { children: "Sessions" }), _jsx("button", { type: "button", className: "agent-tool-editor__refresh".concat(isLoadingSessions ? " is-loading" : ""), "aria-label": "Refresh sessions", title: "Refresh sessions", disabled: isLoadingSessions, onClick: function () { return setSessionRefreshVersion(function (version) { return version + 1; }); }, children: _jsx(RefreshCw, { size: 13 }) }), _jsxs("span", { children: [visibleSessions.length, visibleSessions.length !== sessions.length ? " / ".concat(sessions.length) : ""] })] }) }), _jsx("p", { children: processId != null ? "In ".concat(processLabel !== null && processLabel !== void 0 ? processLabel : "process #".concat(processId), ".") : agentId != null ? "Browse activity for this agent." : "Browse activity across linked agents." }), agentId == null && linkedAgents.length > 1 && _jsxs("label", { className: "agent-tool-editor__sessions-agent-filter", children: [_jsx("span", { children: "Agent" }), _jsx(SolidAutocomplete, { value: selectedAgent ? [selectedAgent] : [], suggestions: agentOptions, field: "label", multiple: true, maxVisibleChips: 1, dropdown: true, forceSelection: true, portal: true, placeholder: "All linked agents", onChange: function (event) { var _a; return setSelectedAgent(Array.isArray(event.value) ? (_a = event.value[0]) !== null && _a !== void 0 ? _a : null : null); } })] }), _jsxs("label", { className: "agent-tool-editor__session-search", children: [_jsx("span", { className: "sr-only", children: "Find a session" }), _jsx(Search, { size: 14 }), _jsx(SolidInput, { value: sessionSearch, placeholder: "Find session or agent\u2026", onChange: function (event) { return setSessionSearch(event.target.value); } })] })] }), _jsx("div", { className: "agent-tool-editor__session-list", role: "listbox", "aria-label": "Sessions", children: isLoadingSessions ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: "Loading sessions\u2026" })
230
+ : sessionsError ? _jsxs("p", { className: "agent-tool-editor__sessions-message agent-tool-editor__sessions-message--error", children: [_jsx(AlertCircle, { size: 15 }), " Could not load sessions."] })
231
+ : sessions.length === 0 ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: processId != null ? "No sessions assigned to this process. Older unassigned sessions remain in the Sessions tab." : "No sessions found for linked agents." })
232
+ : visibleSessions.length === 0 ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: "No sessions match this search." })
233
+ : visibleSessions.map(function (session) {
234
+ var _a, _b;
235
+ var sessionLabel = (_a = session.sessionId) !== null && _a !== void 0 ? _a : String(session.id);
236
+ var rawStatus = String((_b = session.status) !== null && _b !== void 0 ? _b : "").toLowerCase();
237
+ var statusLabel = rawStatus === "active" ? "Idle"
238
+ : rawStatus === "awaiting_input" ? "Awaiting input"
239
+ : rawStatus === "awaiting_approval" ? "Awaiting approval"
240
+ : rawStatus ? rawStatus.replace(/[_-]+/g, " ") : session.endedAt ? "Ended" : "Open";
241
+ return _jsxs("button", { type: "button", role: "option", "aria-selected": session.id === selectedSessionId, className: "agent-tool-editor__session-item".concat(session.id === selectedSessionId ? " is-selected" : ""), onClick: function () { return setSelectedSessionId(session.id); }, title: sessionLabel, children: [_jsx("span", { className: "agent-tool-editor__session-item-id", title: sessionLabel, children: sessionLabel }), _jsxs("span", { className: "agent-tool-editor__session-item-meta", children: [_jsxs("span", { children: [_jsx(Clock3, { size: 12 }), " ", ago(session.startedAt)] }), _jsx("span", { className: "agent-tool-editor__session-status".concat(rawStatus === "running" ? " is-running" : rawStatus === "active" ? " is-idle" : ""), children: statusLabel })] }), agentId == null && _jsx("small", { children: agentName(session, scopedAgents) })] }, session.id);
242
+ }) })] }), _jsxs("div", { className: "agent-tool-editor__session-events", children: [_jsxs("header", { className: "agent-tool-editor__events-head", children: [_jsxs("div", { className: "agent-tool-editor__events-title", children: [_jsxs("div", { children: [_jsxs("div", { className: "agent-tool-editor__heading-with-refresh", children: [_jsx("h2", { children: "Events" }), _jsx("button", { type: "button", className: "agent-tool-editor__refresh".concat(isLoadingEvents ? " is-loading" : ""), "aria-label": "Refresh events", title: "Refresh events", disabled: !selectedSessionId || isLoadingEvents, onClick: function () { void eventResult.refetch(); void eventTypesResult.refetch(); }, children: _jsx(RefreshCw, { size: 13 }) })] }), _jsx("p", { children: selectedSession ? "".concat((_g = selectedSession.sessionId) !== null && _g !== void 0 ? _g : selectedSession.id, " \u00B7 ").concat(agentName(selectedSession, scopedAgents)) : "Select a session to inspect its events." })] }), _jsx("span", { children: outcomeFilter === "all" ? totalEvents : "".concat(visibleEvents.length, " / ").concat(events.length, " on page") })] }), _jsxs("div", { className: "agent-tool-editor__event-filters", children: [_jsxs("label", { children: [_jsx("span", { children: "Event type" }), _jsxs("select", { value: eventTypeFilter, onChange: function (event) { return setEventTypeFilter(event.target.value); }, children: [_jsx("option", { value: "all", children: "All types" }), eventTypes.map(function (eventType) { return _jsx("option", { value: eventType, children: eventType }, eventType); })] })] }), _jsxs("label", { children: [_jsx("span", { children: "Outcome (current page)" }), _jsxs("select", { value: outcomeFilter, onChange: function (event) { return setOutcomeFilter(event.target.value); }, children: [_jsx("option", { value: "all", children: "All outcomes" }), _jsx("option", { value: "success", children: "Success" }), _jsx("option", { value: "failure", children: "Failure" })] })] }), _jsxs("label", { className: "agent-tool-editor__event-search", children: [_jsx("span", { children: "Search events" }), _jsxs("span", { className: "agent-tool-editor__event-search-control", children: [_jsx(Search, { size: 15 }), _jsx(SolidInput, { value: eventSearch, placeholder: "Search events\u2026", onChange: function (event) { return setEventSearch(event.target.value); } })] })] }), _jsxs("nav", { className: "agent-tool-editor__event-pagination", "aria-label": "Event pagination", children: [_jsxs("div", { className: "solid-paginator-meta flex items-center gap-2", children: [_jsx("label", { className: "solid-paginator-label", htmlFor: eventPageSizeId, children: "Rows" }), _jsx(SolidSelect, { id: eventPageSizeId, value: eventPageSize, className: "solid-paginator-select", options: EVENT_PAGE_SIZE_OPTIONS.map(function (value) { return ({ label: String(value), value: value }); }), native: false, menuPlacement: "bottom", disabled: isLoadingEvents || eventsError, onChange: function (_a) {
243
+ var value = _a.value;
244
+ setEventPageSize(Number(value));
245
+ setEventPagination({ scope: eventScope, page: 1 });
246
+ } }), _jsx("span", { className: "solid-paginator-report", "aria-live": "polite", children: isLoadingEvents ? "Loading…" : "".concat(events.length ? eventFirst + 1 : 0, " - ").concat(events.length ? Math.min(eventFirst + events.length, totalEvents) : 0, " of ").concat(totalEvents) })] }), _jsxs("div", { className: "solid-paginator-actions flex items-center gap-2", children: [_jsx("button", { type: "button", className: "solid-paginator-btn", "aria-label": "Previous event page", disabled: isLoadingEvents || eventsError || currentEventPage === 1, onClick: function () { return setEventPagination({ scope: eventScope, page: currentEventPage - 1 }); }, children: "Previous" }), _jsx("button", { type: "button", className: "solid-paginator-btn", "aria-label": "Next event page", disabled: isLoadingEvents || eventsError || currentEventPage >= eventPageCount, onClick: function () { return setEventPagination({ scope: eventScope, page: currentEventPage + 1 }); }, children: "Next" })] })] })] })] }), _jsx("div", { className: "agent-tool-editor__events-table-wrap", ref: eventsTableRef, children: isLoadingEvents ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: "Loading events\u2026" })
247
+ : eventsError ? _jsxs("p", { className: "agent-tool-editor__sessions-message agent-tool-editor__sessions-message--error", children: [_jsx(AlertCircle, { size: 15 }), " Could not load events for this session."] })
248
+ : !selectedSession ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: "Choose a session from the left to view its events." })
249
+ : visibleEvents.length === 0 ? _jsx("p", { className: "agent-tool-editor__sessions-message", children: events.length ? "No events on this page match the outcome filter." : "No events match these filters." })
250
+ : _jsxs("table", { className: "agent-tool-editor__events-table", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "Time" }), _jsx("th", { children: "Event type" }), _jsx("th", { children: "Tool" }), _jsx("th", { children: "Cost" }), _jsx("th", { children: "Tokens" })] }) }), _jsx("tbody", { children: visibleEvents.map(function (event) {
251
+ var _a, _b;
252
+ return _jsxs("tr", { className: "agent-tool-editor__event-row", onClick: function (click) { if (!click.target.closest("button, a"))
253
+ setSelectedEventId(event.id); }, children: [_jsx("td", { children: _jsx("button", { type: "button", className: "agent-tool-editor__event-open", "aria-label": "View ".concat(event.eventType || "event", " #").concat(event.id), onClick: function () { return setSelectedEventId(event.id); }, children: event.createdAt ? new Date(event.createdAt).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", second: "2-digit" }) : "—" }) }), _jsx("td", { children: _jsx(AgentEventOutcomeListWidget, { rowData: event, fieldMetadata: { name: "eventType" }, solidListViewMetaData: {}, column: { attrs: {} } }) }), _jsx("td", { children: event.toolName || "—" }), _jsx("td", { children: event.cost == null ? "—" : Number(event.cost).toLocaleString(undefined, { maximumFractionDigits: 6 }) }), _jsx("td", { children: event.inputTokens || event.outputTokens ? "".concat((_a = event.inputTokens) !== null && _a !== void 0 ? _a : 0, " / ").concat((_b = event.outputTokens) !== null && _b !== void 0 ? _b : 0) : "—" })] }, event.id);
254
+ }) })] }) })] }), _jsxs(SolidDialog, { open: selectedEventId != null, onOpenChange: function (open) { if (!open)
255
+ setSelectedEventId(null); }, className: "solid-dialog solid-inline-relation-dialog", style: { width: "min(70rem, 95vw)" }, showHeader: false, children: [_jsxs(SolidDialogHeader, { className: "solid-sr-only", children: [_jsxs(SolidDialogTitle, { children: ["Event #", selectedEventId] }), _jsx(SolidDialogDescription, { children: "View the selected event's details and data." })] }), selectedEventId != null && _jsx(React.Suspense, { fallback: _jsx("p", { className: "agent-tool-editor__sessions-message", children: "Loading event\u2026" }), children: _jsx(EventFormView, { moduleName: "solid-core", modelName: "agentEvent", id: String(selectedEventId), embeded: true, viewMode: "view", handlePopupClose: function () { return setSelectedEventId(null); } }, selectedEventId) })] })] }));
256
+ }
257
+ export var AgentToolSessionsPanel = AgentSessionsPanel;
258
+ //# sourceMappingURL=AgentToolSessionsPanel.js.map