@datalayer/agent-runtimes 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (615) hide show
  1. package/README.md +1 -1
  2. package/lib/Agent.js +2 -2
  3. package/lib/AgentLexical.d.ts +1 -12
  4. package/lib/AgentLexical.js +3 -14
  5. package/lib/AgentNotebook.js +3 -3
  6. package/lib/App.js +2 -2
  7. package/lib/{components/chat/components → agents}/AgentDetails.d.ts +13 -2
  8. package/lib/{components/chat/components → agents}/AgentDetails.js +6 -12
  9. package/lib/api/agents.d.ts +47 -0
  10. package/lib/api/agents.js +106 -0
  11. package/lib/api/context.d.ts +17 -0
  12. package/lib/api/context.js +45 -0
  13. package/lib/api/evals.d.ts +27 -0
  14. package/lib/api/evals.js +63 -0
  15. package/lib/api/events.d.ts +17 -0
  16. package/lib/api/events.js +93 -0
  17. package/lib/{components/chat → api}/handler.js +1 -1
  18. package/lib/api/index.d.ts +15 -0
  19. package/lib/api/index.js +20 -0
  20. package/lib/api/notifications.d.ts +39 -0
  21. package/lib/api/notifications.js +103 -0
  22. package/lib/api/output.d.ts +28 -0
  23. package/lib/api/output.js +64 -0
  24. package/lib/api/tool-approvals.d.ts +62 -0
  25. package/lib/api/tool-approvals.js +145 -0
  26. package/lib/{components/chat/components → chat}/Chat.d.ts +24 -15
  27. package/lib/{components/chat/components → chat}/Chat.js +16 -16
  28. package/lib/{components/chat/components → chat}/ChatFloating.d.ts +17 -9
  29. package/lib/{components/chat/components → chat}/ChatFloating.js +17 -9
  30. package/lib/{components/chat/components → chat}/ChatInline.d.ts +2 -2
  31. package/lib/{components/chat/components → chat}/ChatInline.js +8 -6
  32. package/lib/{components/chat/components → chat}/ChatPopupStandalone.d.ts +3 -4
  33. package/lib/{components/chat/components → chat}/ChatPopupStandalone.js +6 -6
  34. package/lib/{components/chat/components → chat}/ChatSidebar.d.ts +14 -5
  35. package/lib/{components/chat/components → chat}/ChatSidebar.js +48 -26
  36. package/lib/{components/chat/components → chat}/ChatStandalone.d.ts +3 -4
  37. package/lib/{components/chat/components → chat}/ChatStandalone.js +5 -5
  38. package/lib/chat/base/ChatBase.d.ts +6 -0
  39. package/lib/chat/base/ChatBase.js +1287 -0
  40. package/lib/chat/display/EmptyState.d.ts +27 -0
  41. package/lib/chat/display/EmptyState.js +41 -0
  42. package/lib/{components/chat/components/elements → chat/display}/FloatingBrandButton.d.ts +1 -1
  43. package/lib/{components/chat/components/elements → chat/display}/FloatingBrandButton.js +1 -1
  44. package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.d.ts +1 -1
  45. package/lib/{components/chat/components/elements → chat/header}/ChatHeader.d.ts +1 -4
  46. package/lib/{components/chat/components/elements → chat/header}/ChatHeader.js +1 -1
  47. package/lib/chat/header/ChatHeaderBase.d.ts +38 -0
  48. package/lib/chat/header/ChatHeaderBase.js +83 -0
  49. package/lib/chat/index.d.ts +66 -0
  50. package/lib/chat/index.js +74 -0
  51. package/lib/chat/indicators/McpStatusIndicator.d.ts +9 -0
  52. package/lib/chat/indicators/McpStatusIndicator.js +128 -0
  53. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +10 -0
  54. package/lib/chat/indicators/SandboxStatusIndicator.js +175 -0
  55. package/lib/chat/indicators/index.d.ts +17 -0
  56. package/lib/chat/indicators/index.js +19 -0
  57. package/lib/chat/messages/ChatMessageList.d.ts +49 -0
  58. package/lib/chat/messages/ChatMessageList.js +319 -0
  59. package/lib/{components/chat/components/elements → chat/messages}/ChatMessages.d.ts +2 -2
  60. package/lib/{components/chat/components/elements → chat/messages}/ChatMessages.js +6 -4
  61. package/lib/{components/chat/components → chat}/parts/DynamicToolPart.d.ts +1 -1
  62. package/lib/{components/chat/components/elements → chat/parts}/MessagePart.d.ts +1 -1
  63. package/lib/{components/chat/components/elements → chat/parts}/MessagePart.js +4 -4
  64. package/lib/{components/chat/components → chat}/parts/ReasoningPart.js +1 -1
  65. package/lib/{components/chat/components → chat}/parts/TextPart.d.ts +1 -1
  66. package/lib/{components/chat/components → chat}/parts/ToolPart.js +1 -1
  67. package/lib/{components/chat/components → chat}/parts/index.d.ts +2 -1
  68. package/lib/{components/chat/components → chat}/parts/index.js +2 -1
  69. package/lib/chat/prompt/InputFooter.d.ts +43 -0
  70. package/lib/chat/prompt/InputFooter.js +135 -0
  71. package/lib/chat/prompt/InputPrompt.d.ts +60 -0
  72. package/lib/chat/prompt/InputPrompt.js +83 -0
  73. package/lib/chat/prompt/InputPromptFooter.d.ts +25 -0
  74. package/lib/chat/prompt/InputPromptFooter.js +15 -0
  75. package/lib/chat/prompt/InputPromptHeader.d.ts +15 -0
  76. package/lib/chat/prompt/InputPromptHeader.js +15 -0
  77. package/lib/chat/prompt/InputPromptLexical.d.ts +16 -0
  78. package/lib/chat/prompt/InputPromptLexical.js +122 -0
  79. package/lib/chat/prompt/InputPromptText.d.ts +24 -0
  80. package/lib/chat/prompt/InputPromptText.js +66 -0
  81. package/lib/chat/prompt/index.d.ts +11 -0
  82. package/lib/chat/prompt/index.js +15 -0
  83. package/lib/{components/chat/components → chat}/styles/streamdownStyles.d.ts +1 -1
  84. package/lib/chat/tools/ToolApprovalBanner.d.ts +31 -0
  85. package/lib/chat/tools/ToolApprovalBanner.js +62 -0
  86. package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.js +1 -1
  87. package/lib/{components/chat/components/display → chat/tools}/ToolCallDisplay.d.ts +13 -4
  88. package/lib/{components/chat/components/display → chat/tools}/ToolCallDisplay.js +18 -8
  89. package/lib/chat/tools/index.d.ts +8 -0
  90. package/lib/{components/chat/components/display → chat/tools}/index.js +3 -1
  91. package/lib/chat/usage/TokenUsageBar.d.ts +8 -0
  92. package/lib/chat/usage/TokenUsageBar.js +213 -0
  93. package/lib/client/AgentsMixin.d.ts +169 -0
  94. package/lib/client/AgentsMixin.js +279 -0
  95. package/lib/client/index.d.ts +6 -0
  96. package/lib/client/index.js +10 -0
  97. package/lib/components/NotificationEventCard.d.ts +8 -0
  98. package/lib/components/NotificationEventCard.js +152 -0
  99. package/lib/components/OutputCard.d.ts +8 -0
  100. package/lib/components/OutputCard.js +80 -0
  101. package/lib/components/ToolApprovalCard.d.ts +33 -0
  102. package/lib/components/ToolApprovalCard.js +60 -0
  103. package/lib/components/index.d.ts +3 -7
  104. package/lib/components/index.js +3 -4
  105. package/lib/{components → config}/AgentConfiguration.d.ts +43 -21
  106. package/lib/{components → config}/AgentConfiguration.js +48 -28
  107. package/lib/config/index.d.ts +2 -0
  108. package/lib/config/index.js +1 -0
  109. package/lib/{components/chat/components → context}/ContextInspector.js +38 -8
  110. package/lib/{components/chat/components → context}/ContextPanel.js +27 -6
  111. package/lib/context/CostTracker.d.ts +37 -0
  112. package/lib/context/CostTracker.js +124 -0
  113. package/lib/context/TokenUsageChart.d.ts +10 -0
  114. package/lib/context/TokenUsageChart.js +288 -0
  115. package/lib/examples/A2UiComponentGalleryExample.d.ts +20 -0
  116. package/lib/examples/A2UiComponentGalleryExample.js +568 -0
  117. package/lib/examples/A2UiContactCardExample.d.ts +21 -0
  118. package/lib/examples/A2UiContactCardExample.js +432 -0
  119. package/lib/examples/A2UiRestaurantExample.d.ts +11 -3
  120. package/lib/examples/A2UiRestaurantExample.js +63 -98
  121. package/lib/examples/A2UiViewerExample.d.ts +21 -0
  122. package/lib/examples/A2UiViewerExample.js +563 -0
  123. package/lib/examples/AgUiAgenticExample.js +3 -3
  124. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -3
  125. package/lib/examples/{AgUiHaikuGenUIExample.d.ts → AgUiHaikuGenUiExample.d.ts} +4 -4
  126. package/lib/examples/{AgUiHaikuGenUIExample.js → AgUiHaikuGenUiExample.js} +7 -7
  127. package/lib/examples/AgUiHumanInTheLoopExample.js +3 -3
  128. package/lib/examples/AgUiSharedStateExample.js +3 -3
  129. package/lib/examples/{AgUiToolsBasedGenUIExample.d.ts → AgUiToolsBasedGenUiExample.d.ts} +4 -4
  130. package/lib/examples/{AgUiToolsBasedGenUIExample.js → AgUiToolsBasedGenUiExample.js} +7 -7
  131. package/lib/examples/AgentCheckpointsExample.d.ts +19 -0
  132. package/lib/examples/AgentCheckpointsExample.js +506 -0
  133. package/lib/examples/AgentCodemodeExample.d.ts +14 -0
  134. package/lib/examples/AgentCodemodeExample.js +262 -0
  135. package/lib/examples/AgentEvalsExample.d.ts +14 -0
  136. package/lib/examples/AgentEvalsExample.js +216 -0
  137. package/lib/examples/AgentGuardrailsExample.d.ts +14 -0
  138. package/lib/examples/AgentGuardrailsExample.js +218 -0
  139. package/lib/examples/AgentMemoryExample.d.ts +14 -0
  140. package/lib/examples/AgentMemoryExample.js +234 -0
  141. package/lib/examples/AgentMonitoringExample.d.ts +13 -0
  142. package/lib/examples/AgentMonitoringExample.js +311 -0
  143. package/lib/examples/AgentNotificationsExample.d.ts +14 -0
  144. package/lib/examples/AgentNotificationsExample.js +273 -0
  145. package/lib/examples/AgentOtelExample.d.ts +25 -0
  146. package/lib/examples/AgentOtelExample.js +281 -0
  147. package/lib/examples/AgentOutputsExample.d.ts +14 -0
  148. package/lib/examples/AgentOutputsExample.js +211 -0
  149. package/lib/examples/AgentSandboxExample.d.ts +17 -0
  150. package/lib/examples/AgentSandboxExample.js +496 -0
  151. package/lib/examples/AgentSkillsExample.d.ts +3 -0
  152. package/lib/examples/AgentSkillsExample.js +290 -0
  153. package/lib/examples/AgentToolApprovalsExample.d.ts +3 -0
  154. package/lib/examples/AgentToolApprovalsExample.js +672 -0
  155. package/lib/examples/AgentTriggersExample.d.ts +14 -0
  156. package/lib/examples/AgentTriggersExample.js +523 -0
  157. package/lib/examples/{AgentRuntimeFormExample.d.ts → AgentspecExample.d.ts} +3 -4
  158. package/lib/examples/{AgentRuntimeFormExample.js → AgentspecExample.js} +92 -34
  159. package/lib/examples/{JupyterCellExample.js → CellSimpleExample.js} +1 -1
  160. package/lib/examples/{AgentRuntimeCustomExample.js → ChatCustomExample.js} +3 -3
  161. package/lib/examples/{AgentRuntimeChatExample.js → ChatExample.js} +4 -4
  162. package/lib/examples/{AgentRuntimeStandaloneExample.js → ChatStandaloneExample.js} +2 -2
  163. package/lib/examples/CopilotKitLexicalExample.d.ts +3 -14
  164. package/lib/examples/CopilotKitLexicalExample.js +4 -15
  165. package/lib/examples/CopilotKitNotebookExample.js +4 -6
  166. package/lib/examples/DatalayerNotebookExample.js +2 -2
  167. package/lib/examples/{AgentRuntimeLexical2Example.d.ts → Lexical2Example.d.ts} +2 -13
  168. package/lib/examples/{AgentRuntimeLexical2Example.js → Lexical2Example.js} +8 -17
  169. package/lib/examples/{AgentRuntimeLexicalExample.d.ts → LexicalExample.d.ts} +1 -12
  170. package/lib/examples/{AgentRuntimeLexicalExample.js → LexicalExample.js} +28 -27
  171. package/lib/examples/{AgentRuntimeLexicalSidebarExample.d.ts → LexicalSidebarExample.d.ts} +2 -13
  172. package/lib/examples/{AgentRuntimeLexicalSidebarExample.js → LexicalSidebarExample.js} +6 -18
  173. package/lib/examples/{AgentRuntimeNotebookExample.js → NotebookExample.js} +14 -10
  174. package/lib/examples/{AgentRuntimeNotebookSidebarExample.js → NotebookSidebarExample.js} +5 -8
  175. package/lib/examples/{JupyterNotebookExample.js → NotebookSimpleExample.js} +2 -2
  176. package/lib/examples/ag-ui/weather/InlineWeatherCard.js +1 -1
  177. package/lib/examples/components/ExampleWrapper.d.ts +12 -0
  178. package/lib/examples/components/ExampleWrapper.js +16 -0
  179. package/lib/examples/components/Header.d.ts +2 -2
  180. package/lib/examples/components/HeaderControls.js +1 -1
  181. package/lib/examples/components/LexicalEditor.d.ts +1 -12
  182. package/lib/examples/components/LexicalEditor.js +1 -12
  183. package/lib/examples/components/MainContent.d.ts +4 -11
  184. package/lib/examples/components/MainContent.js +6 -60
  185. package/lib/examples/components/index.d.ts +1 -0
  186. package/lib/examples/components/index.js +1 -0
  187. package/lib/examples/example-selector.d.ts +1 -1
  188. package/lib/examples/example-selector.js +35 -22
  189. package/lib/examples/index.d.ts +26 -13
  190. package/lib/examples/index.js +26 -12
  191. package/lib/examples/main.d.ts +6 -0
  192. package/lib/examples/main.js +20 -43
  193. package/lib/examples/utils/examplesStore.d.ts +4 -0
  194. package/lib/examples/{stores → utils}/examplesStore.js +1 -1
  195. package/lib/examples/utils/notebooks/Empty.ipynb.json +33 -0
  196. package/lib/examples/utils/notebooks/NotebookExample2.ipynb.json +48 -0
  197. package/lib/examples/utils/themeStore.d.ts +8 -0
  198. package/lib/examples/utils/themeStore.js +14 -0
  199. package/lib/extensions/A2UIExtension.d.ts +65 -0
  200. package/lib/extensions/A2UIExtension.js +202 -0
  201. package/lib/{components/chat/extensions → extensions}/ExtensionRegistry.d.ts +2 -3
  202. package/lib/{components/chat/extensions → extensions}/ExtensionRegistry.js +0 -2
  203. package/lib/{components/chat/extensions → extensions}/MCPUIExtension.d.ts +2 -2
  204. package/lib/{components/chat/extensions → extensions}/MCPUIExtension.js +1 -1
  205. package/lib/extensions/index.d.ts +9 -0
  206. package/lib/{components/chat/extensions → extensions}/index.js +2 -2
  207. package/lib/hooks/index.d.ts +33 -16
  208. package/lib/hooks/index.js +33 -16
  209. package/lib/hooks/useAIAgentsWebSocket.d.ts +29 -0
  210. package/lib/hooks/useAIAgentsWebSocket.js +136 -0
  211. package/lib/hooks/{useAGUI.d.ts → useAgUi.d.ts} +2 -2
  212. package/lib/hooks/{useAGUI.js → useAgUi.js} +2 -2
  213. package/lib/hooks/useAgents.d.ts +150 -11
  214. package/lib/hooks/useAgents.js +623 -61
  215. package/lib/hooks/{useAgentStore.d.ts → useAgentsCatalog.d.ts} +3 -8
  216. package/lib/hooks/{useAgentStore.js → useAgentsCatalog.js} +9 -3
  217. package/lib/hooks/useAgentsRegistry.d.ts +10 -0
  218. package/lib/hooks/useAgentsRegistry.js +20 -0
  219. package/lib/hooks/useAgentsService.d.ts +22 -0
  220. package/lib/hooks/useAgentsService.js +146 -0
  221. package/lib/hooks/useChat.d.ts +2 -2
  222. package/lib/hooks/useChat.js +14 -8
  223. package/lib/hooks/useCheckpoints.d.ts +176 -0
  224. package/lib/hooks/useCheckpoints.js +466 -0
  225. package/lib/hooks/useConfig.d.ts +11 -0
  226. package/lib/hooks/useConfig.js +46 -0
  227. package/lib/hooks/useContextSnapshot.d.ts +11 -0
  228. package/lib/hooks/useContextSnapshot.js +44 -0
  229. package/lib/hooks/useMonitoring.d.ts +24 -0
  230. package/lib/hooks/useMonitoring.js +111 -0
  231. package/lib/hooks/useNotifications.d.ts +67 -0
  232. package/lib/hooks/useNotifications.js +208 -0
  233. package/lib/hooks/useSandbox.d.ts +12 -0
  234. package/lib/hooks/useSandbox.js +49 -0
  235. package/lib/hooks/useSkills.d.ts +13 -0
  236. package/lib/hooks/useSkills.js +46 -0
  237. package/lib/hooks/useToolApprovals.d.ts +45 -0
  238. package/lib/hooks/useToolApprovals.js +126 -0
  239. package/lib/hooks/useTools.d.ts +4 -4
  240. package/lib/hooks/useTools.js +2 -2
  241. package/lib/hooks/{useVercelChat.d.ts → useVercelAI.d.ts} +3 -3
  242. package/lib/hooks/{useVercelChat.js → useVercelAI.js} +2 -2
  243. package/lib/{components/chat/components → identity}/AgentIdentity.d.ts +1 -1
  244. package/lib/{components/chat/components → identity}/AgentIdentity.js +4 -3
  245. package/lib/identity/index.d.ts +1 -0
  246. package/lib/identity/index.js +2 -0
  247. package/lib/index.d.ts +4 -3
  248. package/lib/index.js +3 -2
  249. package/lib/{components/chat/inference → inference}/BaseInferenceProvider.d.ts +3 -3
  250. package/lib/{components/chat/inference → inference}/DatalayerInferenceProvider.d.ts +3 -3
  251. package/lib/{components/chat/inference → inference}/DatalayerInferenceProvider.js +1 -1
  252. package/lib/{components/chat/inference → inference}/SelfHostedInferenceProvider.d.ts +2 -2
  253. package/lib/{components/chat/inference → inference}/SelfHostedInferenceProvider.js +1 -1
  254. package/lib/{components/chat/inference → inference}/index.d.ts +1 -1
  255. package/lib/{components/chat/inference → inference}/index.js +1 -1
  256. package/lib/lexical/ChatInlinePlugin.d.ts +1 -1
  257. package/lib/lexical/ChatInlinePlugin.js +1 -1
  258. package/lib/{components → mcp}/McpServerManager.d.ts +1 -2
  259. package/lib/mcp/index.d.ts +1 -0
  260. package/lib/{specs/agents/codeai → mcp}/index.js +1 -1
  261. package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.d.ts +3 -3
  262. package/lib/{components/chat/middleware → middleware}/index.d.ts +1 -1
  263. package/lib/{components/chat/middleware → middleware}/index.js +1 -1
  264. package/lib/{components/chat/protocols → protocols}/A2AAdapter.d.ts +6 -6
  265. package/lib/{components/chat/protocols → protocols}/A2AAdapter.js +3 -3
  266. package/lib/{components/chat/protocols → protocols}/ACPAdapter.d.ts +6 -6
  267. package/lib/{components/chat/protocols → protocols}/ACPAdapter.js +4 -4
  268. package/lib/{components/chat/protocols → protocols}/AGUIAdapter.d.ts +14 -6
  269. package/lib/{components/chat/protocols → protocols}/AGUIAdapter.js +72 -10
  270. package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.d.ts +6 -6
  271. package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.js +1 -1
  272. package/lib/{components/chat/protocols → protocols}/VercelAIAdapter.d.ts +31 -7
  273. package/lib/protocols/VercelAIAdapter.js +682 -0
  274. package/lib/{components/chat/protocols → protocols}/index.d.ts +1 -2
  275. package/lib/{components/chat/protocols → protocols}/index.js +1 -1
  276. package/lib/specs/agents/agents.d.ts +54 -0
  277. package/lib/specs/agents/{mocks/agents.js → agents.js} +1144 -799
  278. package/lib/specs/agents/index.js +14 -9
  279. package/lib/specs/envvars.d.ts +11 -19
  280. package/lib/specs/envvars.js +42 -21
  281. package/lib/specs/evals.d.ts +20 -0
  282. package/lib/specs/evals.js +133 -0
  283. package/lib/specs/events.d.ts +18 -0
  284. package/lib/specs/events.js +182 -0
  285. package/lib/specs/frontendTools.d.ts +14 -0
  286. package/lib/specs/frontendTools.js +53 -0
  287. package/lib/specs/guardrails.d.ts +22 -0
  288. package/lib/specs/guardrails.js +391 -0
  289. package/lib/specs/index.d.ts +15 -2
  290. package/lib/specs/index.js +15 -2
  291. package/lib/specs/mcpServers.d.ts +13 -11
  292. package/lib/specs/mcpServers.js +82 -28
  293. package/lib/specs/memory.d.ts +34 -0
  294. package/lib/specs/memory.js +99 -0
  295. package/lib/specs/models.d.ts +21 -34
  296. package/lib/specs/models.js +61 -41
  297. package/lib/specs/notifications.d.ts +17 -0
  298. package/lib/specs/notifications.js +187 -0
  299. package/lib/specs/outputs.d.ts +19 -0
  300. package/lib/specs/outputs.js +112 -0
  301. package/lib/specs/skills.d.ts +7 -16
  302. package/lib/specs/skills.js +89 -12
  303. package/lib/specs/teams/index.d.ts +17 -0
  304. package/lib/specs/teams/index.js +37 -0
  305. package/lib/specs/teams/teams.d.ts +27 -0
  306. package/lib/specs/teams/teams.js +1120 -0
  307. package/lib/specs/tools.d.ts +15 -0
  308. package/lib/specs/tools.js +83 -0
  309. package/lib/specs/triggers.d.ts +15 -0
  310. package/lib/specs/triggers.js +117 -0
  311. package/lib/stores/agentsStore.d.ts +123 -0
  312. package/lib/stores/agentsStore.js +270 -0
  313. package/lib/{components/chat/store → stores}/chatStore.d.ts +3 -2
  314. package/lib/{components/chat/store → stores}/chatStore.js +2 -2
  315. package/lib/{components/chat/store → stores}/conversationStore.d.ts +1 -1
  316. package/lib/{components/chat/store → stores}/conversationStore.js +1 -1
  317. package/lib/{components/chat/store → stores}/index.d.ts +3 -2
  318. package/lib/{components/chat/store → stores}/index.js +3 -2
  319. package/lib/{components/chat/tools → tools}/ToolExecutor.d.ts +2 -2
  320. package/lib/{components/chat/tools → tools}/ToolExecutor.js +1 -1
  321. package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.d.ts +1 -1
  322. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +14 -10
  323. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +31 -21
  324. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +1 -1
  325. package/lib/tools/index.d.ts +3 -0
  326. package/lib/tools/index.js +3 -7
  327. package/lib/types/a2a.d.ts +39 -0
  328. package/lib/types/acp.d.ts +21 -0
  329. package/lib/types/ag-ui.d.ts +25 -0
  330. package/lib/types/agents-lifecycle.d.ts +36 -0
  331. package/lib/types/agents.d.ts +80 -0
  332. package/lib/types/agents.js +22 -0
  333. package/lib/types/agentspecs.d.ts +90 -0
  334. package/lib/{components/chat/components/base/ChatBase.d.ts → types/chat.d.ts} +59 -99
  335. package/lib/types/checkpoints.d.ts +32 -0
  336. package/lib/types/checkpoints.js +5 -0
  337. package/lib/types/config.d.ts +67 -0
  338. package/lib/{runtime/types.js → types/config.js} +2 -2
  339. package/lib/types/connection.d.ts +31 -0
  340. package/lib/types/connection.js +5 -0
  341. package/lib/types/context.d.ts +67 -0
  342. package/lib/types/context.js +5 -0
  343. package/lib/types/cost.d.ts +42 -0
  344. package/lib/types/cost.js +5 -0
  345. package/lib/types/envvars.d.ts +21 -0
  346. package/lib/types/envvars.js +5 -0
  347. package/lib/types/evals.d.ts +66 -0
  348. package/lib/types/evals.js +5 -0
  349. package/lib/types/events.d.ts +49 -0
  350. package/lib/types/events.js +5 -0
  351. package/lib/types/eventspecs.d.ts +39 -0
  352. package/lib/types/eventspecs.js +5 -0
  353. package/lib/types/examples.d.ts +31 -0
  354. package/lib/types/examples.js +5 -0
  355. package/lib/{components/chat/types → types}/execution.d.ts +10 -1
  356. package/lib/{components/chat/types/extension.d.ts → types/extensions.d.ts} +3 -3
  357. package/lib/types/guardrails.d.ts +106 -0
  358. package/lib/types/guardrails.js +5 -0
  359. package/lib/types/index.d.ts +36 -2
  360. package/lib/types/index.js +35 -2
  361. package/lib/{components/chat/types → types}/inference.d.ts +3 -3
  362. package/lib/types/inference.js +5 -0
  363. package/lib/types/mcp.d.ts +117 -0
  364. package/lib/types/mcp.js +27 -0
  365. package/lib/types/memory.d.ts +23 -0
  366. package/lib/types/memory.js +5 -0
  367. package/lib/{components/chat/types/message.d.ts → types/messages.d.ts} +20 -1
  368. package/lib/{components/chat/types → types}/middleware.d.ts +3 -3
  369. package/lib/types/models.d.ts +63 -0
  370. package/lib/types/models.js +5 -0
  371. package/lib/types/notifications.d.ts +85 -0
  372. package/lib/types/notifications.js +5 -0
  373. package/lib/types/outputs.d.ts +51 -0
  374. package/lib/types/outputs.js +5 -0
  375. package/lib/{components/chat/types → types}/protocol.d.ts +37 -99
  376. package/lib/types/protocol.js +5 -0
  377. package/lib/types/sandbox.d.ts +27 -0
  378. package/lib/types/sandbox.js +24 -0
  379. package/lib/types/skills.d.ts +74 -0
  380. package/lib/types/skills.js +5 -0
  381. package/lib/types/teams.d.ts +133 -0
  382. package/lib/types/teams.js +5 -0
  383. package/lib/types/tool-approvals.d.ts +39 -0
  384. package/lib/types/tool-approvals.js +5 -0
  385. package/lib/{components/chat/types/tool.d.ts → types/tools.d.ts} +59 -4
  386. package/lib/types/triggers.d.ts +48 -0
  387. package/lib/types/triggers.js +5 -0
  388. package/lib/types/usage.d.ts +36 -0
  389. package/lib/types/usage.js +5 -0
  390. package/lib/utils/index.d.ts +1 -0
  391. package/lib/utils/index.js +5 -0
  392. package/lib/utils/utils.d.ts +60 -0
  393. package/lib/utils/utils.js +205 -0
  394. package/package.json +13 -14
  395. package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
  396. package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
  397. package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
  398. package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
  399. package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
  400. package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
  401. package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
  402. package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
  403. package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
  404. package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
  405. package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
  406. package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
  407. package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
  408. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  409. package/scripts/codegen/generate_agents.py +373 -60
  410. package/scripts/codegen/generate_envvars.py +36 -35
  411. package/scripts/codegen/generate_evals.py +279 -0
  412. package/scripts/codegen/generate_events.py +312 -0
  413. package/scripts/codegen/generate_frontend_tools.py +266 -0
  414. package/scripts/codegen/generate_guardrails.py +475 -0
  415. package/scripts/codegen/generate_mcp_servers.py +36 -9
  416. package/scripts/codegen/generate_memory.py +468 -0
  417. package/scripts/codegen/generate_models.py +22 -46
  418. package/scripts/codegen/generate_notifications.py +309 -0
  419. package/scripts/codegen/generate_outputs.py +267 -0
  420. package/scripts/codegen/generate_skills.py +108 -51
  421. package/scripts/codegen/generate_teams.py +922 -0
  422. package/scripts/codegen/generate_tools.py +326 -0
  423. package/scripts/codegen/generate_triggers.py +295 -0
  424. package/scripts/codegen/versioning.py +53 -0
  425. package/lib/components/chat/components/base/ChatBase.js +0 -2242
  426. package/lib/components/chat/components/base/InputPrompt.d.ts +0 -42
  427. package/lib/components/chat/components/base/InputPrompt.js +0 -131
  428. package/lib/components/chat/components/display/index.d.ts +0 -6
  429. package/lib/components/chat/components/index.d.ts +0 -26
  430. package/lib/components/chat/components/index.js +0 -39
  431. package/lib/components/chat/extensions/A2UIExtension.d.ts +0 -87
  432. package/lib/components/chat/extensions/A2UIExtension.js +0 -312
  433. package/lib/components/chat/extensions/index.d.ts +0 -10
  434. package/lib/components/chat/index.d.ts +0 -61
  435. package/lib/components/chat/index.js +0 -76
  436. package/lib/components/chat/protocols/VercelAIAdapter.js +0 -315
  437. package/lib/components/chat/tools/index.d.ts +0 -8
  438. package/lib/components/chat/tools/index.js +0 -11
  439. package/lib/components/chat/types/index.d.ts +0 -12
  440. package/lib/components/chat/types/index.js +0 -17
  441. package/lib/components/sparklines/Sparklines.d.ts +0 -16
  442. package/lib/components/sparklines/Sparklines.js +0 -65
  443. package/lib/components/sparklines/SparklinesLine.d.ts +0 -8
  444. package/lib/components/sparklines/SparklinesLine.js +0 -37
  445. package/lib/components/sparklines/dataProcessing.d.ts +0 -25
  446. package/lib/components/sparklines/dataProcessing.js +0 -35
  447. package/lib/components/sparklines/index.d.ts +0 -4
  448. package/lib/components/sparklines/index.js +0 -7
  449. package/lib/components/sparklines/types.d.ts +0 -36
  450. package/lib/examples/stores/examplesStore.d.ts +0 -5
  451. package/lib/examples/stores/notebooks/Empty.ipynb.json +0 -33
  452. package/lib/examples/stores/notebooks/NotebookExample2.ipynb.json +0 -48
  453. package/lib/examples/stores/themeStore.d.ts +0 -33
  454. package/lib/examples/stores/themeStore.js +0 -38
  455. package/lib/hooks/useAgentRuntimes.d.ts +0 -350
  456. package/lib/hooks/useAgentRuntimes.js +0 -78
  457. package/lib/hooks/useKeyboardShortcuts.d.ts +0 -47
  458. package/lib/hooks/useKeyboardShortcuts.js +0 -153
  459. package/lib/hooks/useMobile.d.ts +0 -1
  460. package/lib/hooks/useMobile.js +0 -19
  461. package/lib/hooks/useNotebookAIAgent.d.ts +0 -8
  462. package/lib/hooks/useNotebookAIAgent.js +0 -73
  463. package/lib/renderers/a2ui/components/A2UIRenderer.d.ts +0 -7
  464. package/lib/renderers/a2ui/components/A2UIRenderer.js +0 -102
  465. package/lib/renderers/a2ui/components/SurfaceRenderer.d.ts +0 -7
  466. package/lib/renderers/a2ui/components/SurfaceRenderer.js +0 -101
  467. package/lib/renderers/a2ui/components/content/AudioPlayer.d.ts +0 -9
  468. package/lib/renderers/a2ui/components/content/AudioPlayer.js +0 -38
  469. package/lib/renderers/a2ui/components/content/Divider.d.ts +0 -9
  470. package/lib/renderers/a2ui/components/content/Divider.js +0 -35
  471. package/lib/renderers/a2ui/components/content/Icon.d.ts +0 -9
  472. package/lib/renderers/a2ui/components/content/Icon.js +0 -110
  473. package/lib/renderers/a2ui/components/content/Image.d.ts +0 -9
  474. package/lib/renderers/a2ui/components/content/Image.js +0 -61
  475. package/lib/renderers/a2ui/components/content/Text.d.ts +0 -9
  476. package/lib/renderers/a2ui/components/content/Text.js +0 -64
  477. package/lib/renderers/a2ui/components/content/Video.d.ts +0 -9
  478. package/lib/renderers/a2ui/components/content/Video.js +0 -37
  479. package/lib/renderers/a2ui/components/content/index.d.ts +0 -6
  480. package/lib/renderers/a2ui/components/content/index.js +0 -25
  481. package/lib/renderers/a2ui/components/index.d.ts +0 -5
  482. package/lib/renderers/a2ui/components/index.js +0 -24
  483. package/lib/renderers/a2ui/components/interactive/Button.d.ts +0 -11
  484. package/lib/renderers/a2ui/components/interactive/Button.js +0 -71
  485. package/lib/renderers/a2ui/components/interactive/CheckBox.d.ts +0 -9
  486. package/lib/renderers/a2ui/components/interactive/CheckBox.js +0 -48
  487. package/lib/renderers/a2ui/components/interactive/DateTimeInput.d.ts +0 -9
  488. package/lib/renderers/a2ui/components/interactive/DateTimeInput.js +0 -62
  489. package/lib/renderers/a2ui/components/interactive/MultipleChoice.d.ts +0 -9
  490. package/lib/renderers/a2ui/components/interactive/MultipleChoice.js +0 -73
  491. package/lib/renderers/a2ui/components/interactive/Slider.d.ts +0 -9
  492. package/lib/renderers/a2ui/components/interactive/Slider.js +0 -53
  493. package/lib/renderers/a2ui/components/interactive/TextField.d.ts +0 -9
  494. package/lib/renderers/a2ui/components/interactive/TextField.js +0 -72
  495. package/lib/renderers/a2ui/components/interactive/index.d.ts +0 -6
  496. package/lib/renderers/a2ui/components/interactive/index.js +0 -25
  497. package/lib/renderers/a2ui/components/layout/Card.d.ts +0 -11
  498. package/lib/renderers/a2ui/components/layout/Card.js +0 -30
  499. package/lib/renderers/a2ui/components/layout/Column.d.ts +0 -11
  500. package/lib/renderers/a2ui/components/layout/Column.js +0 -65
  501. package/lib/renderers/a2ui/components/layout/List.d.ts +0 -11
  502. package/lib/renderers/a2ui/components/layout/List.js +0 -55
  503. package/lib/renderers/a2ui/components/layout/Modal.d.ts +0 -11
  504. package/lib/renderers/a2ui/components/layout/Modal.js +0 -58
  505. package/lib/renderers/a2ui/components/layout/Row.d.ts +0 -11
  506. package/lib/renderers/a2ui/components/layout/Row.js +0 -65
  507. package/lib/renderers/a2ui/components/layout/Tabs.d.ts +0 -11
  508. package/lib/renderers/a2ui/components/layout/Tabs.js +0 -48
  509. package/lib/renderers/a2ui/components/layout/index.d.ts +0 -6
  510. package/lib/renderers/a2ui/components/layout/index.js +0 -25
  511. package/lib/renderers/a2ui/context/A2UIContext.d.ts +0 -17
  512. package/lib/renderers/a2ui/context/A2UIContext.js +0 -54
  513. package/lib/renderers/a2ui/context/ThemeContext.d.ts +0 -20
  514. package/lib/renderers/a2ui/context/ThemeContext.js +0 -333
  515. package/lib/renderers/a2ui/hooks/useA2UI.d.ts +0 -36
  516. package/lib/renderers/a2ui/hooks/useA2UI.js +0 -62
  517. package/lib/renderers/a2ui/hooks/useDataBinding.d.ts +0 -8
  518. package/lib/renderers/a2ui/hooks/useDataBinding.js +0 -83
  519. package/lib/renderers/a2ui/index.d.ts +0 -9
  520. package/lib/renderers/a2ui/index.js +0 -28
  521. package/lib/renderers/a2ui/lib/utils.d.ts +0 -11
  522. package/lib/renderers/a2ui/lib/utils.js +0 -38
  523. package/lib/renderers/a2ui/types/index.d.ts +0 -17
  524. package/lib/runtime/index.d.ts +0 -38
  525. package/lib/runtime/index.js +0 -40
  526. package/lib/runtime/runtimeStore.d.ts +0 -76
  527. package/lib/runtime/runtimeStore.js +0 -184
  528. package/lib/runtime/types.d.ts +0 -84
  529. package/lib/runtime/useAgentConnection.d.ts +0 -45
  530. package/lib/runtime/useAgentConnection.js +0 -112
  531. package/lib/runtime/useAgentRuntime.d.ts +0 -93
  532. package/lib/runtime/useAgentRuntime.js +0 -125
  533. package/lib/specs/agents/codeai/agents.d.ts +0 -28
  534. package/lib/specs/agents/codeai/agents.js +0 -179
  535. package/lib/specs/agents/codeai/index.d.ts +0 -1
  536. package/lib/specs/agents/codemode-paper/agents.d.ts +0 -31
  537. package/lib/specs/agents/codemode-paper/agents.js +0 -378
  538. package/lib/specs/agents/codemode-paper/index.d.ts +0 -1
  539. package/lib/specs/agents/codemode-paper/index.js +0 -5
  540. package/lib/specs/agents/datalayer-ai/agents.d.ts +0 -31
  541. package/lib/specs/agents/datalayer-ai/agents.js +0 -352
  542. package/lib/specs/agents/datalayer-ai/index.d.ts +0 -1
  543. package/lib/specs/agents/datalayer-ai/index.js +0 -5
  544. package/lib/specs/agents/mocks/agents.d.ts +0 -43
  545. package/lib/specs/agents/mocks/index.d.ts +0 -1
  546. package/lib/specs/agents/mocks/index.js +0 -5
  547. package/lib/state/index.d.ts +0 -1
  548. package/lib/state/index.js +0 -5
  549. package/lib/state/substates/AIAgentState.d.ts +0 -80
  550. package/lib/state/substates/AIAgentState.js +0 -108
  551. package/lib/state/substates/index.d.ts +0 -1
  552. package/lib/state/substates/index.js +0 -5
  553. package/lib/types/AIAgent.d.ts +0 -17
  554. package/lib/types/Types.d.ts +0 -217
  555. /package/lib/{components/chat → api}/handler.d.ts +0 -0
  556. /package/lib/{renderers/index.d.ts → api/utils.d.ts} +0 -0
  557. /package/lib/{renderers/index.js → api/utils.js} +0 -0
  558. /package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.js +0 -0
  559. /package/lib/{components/chat/components → chat}/parts/DynamicToolPart.js +0 -0
  560. /package/lib/{components/chat/components → chat}/parts/ReasoningPart.d.ts +0 -0
  561. /package/lib/{components/chat/components → chat}/parts/TextPart.js +0 -0
  562. /package/lib/{components/chat/components → chat}/parts/ToolPart.d.ts +0 -0
  563. /package/lib/{components/chat/components → chat}/styles/streamdownStyles.js +0 -0
  564. /package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.d.ts +0 -0
  565. /package/lib/{components/chat/components → context}/ContextDistribution.d.ts +0 -0
  566. /package/lib/{components/chat/components → context}/ContextDistribution.js +0 -0
  567. /package/lib/{components/chat/components → context}/ContextInspector.d.ts +0 -0
  568. /package/lib/{components/chat/components → context}/ContextPanel.d.ts +0 -0
  569. /package/lib/{components/chat/components → context}/ContextUsage.d.ts +0 -0
  570. /package/lib/{components/chat/components → context}/ContextUsage.js +0 -0
  571. /package/lib/examples/{JupyterCellExample.d.ts → CellSimpleExample.d.ts} +0 -0
  572. /package/lib/examples/{AgentRuntimeCustomExample.d.ts → ChatCustomExample.d.ts} +0 -0
  573. /package/lib/examples/{AgentRuntimeChatExample.d.ts → ChatExample.d.ts} +0 -0
  574. /package/lib/examples/{AgentRuntimeStandaloneExample.d.ts → ChatStandaloneExample.d.ts} +0 -0
  575. /package/lib/examples/{AgentRuntimeNotebookExample.d.ts → NotebookExample.d.ts} +0 -0
  576. /package/lib/examples/{AgentRuntimeNotebookSidebarExample.d.ts → NotebookSidebarExample.d.ts} +0 -0
  577. /package/lib/examples/{JupyterNotebookExample.d.ts → NotebookSimpleExample.d.ts} +0 -0
  578. /package/lib/examples/{stores → utils}/agents/earthquake-detector.ipynb.json +0 -0
  579. /package/lib/examples/{stores → utils}/agents/earthquake-detector.json +0 -0
  580. /package/lib/examples/{stores → utils}/agents/earthquake-detector.lexical.json +0 -0
  581. /package/lib/examples/{stores → utils}/agents/sales-forecaster.ipynb.json +0 -0
  582. /package/lib/examples/{stores → utils}/agents/sales-forecaster.json +0 -0
  583. /package/lib/examples/{stores → utils}/agents/sales-forecaster.lexical.json +0 -0
  584. /package/lib/examples/{stores → utils}/agents/social-post-generator.ipynb.json +0 -0
  585. /package/lib/examples/{stores → utils}/agents/social-post-generator.json +0 -0
  586. /package/lib/examples/{stores → utils}/agents/social-post-generator.lexical.json +0 -0
  587. /package/lib/examples/{stores → utils}/agents/stock-market.ipynb.json +0 -0
  588. /package/lib/examples/{stores → utils}/agents/stock-market.json +0 -0
  589. /package/lib/examples/{stores → utils}/agents/stock-market.lexical.json +0 -0
  590. /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExample.ipynb.json +0 -0
  591. /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -0
  592. /package/lib/examples/{stores → utils}/notebooks/Lite.ipynb.json +0 -0
  593. /package/lib/examples/{stores → utils}/notebooks/Matplotlib.ipynb.json +0 -0
  594. /package/lib/examples/{stores → utils}/notebooks/NotebookExample1.ipynb.json +0 -0
  595. /package/lib/examples/{stores → utils}/notebooks/NotebookOutputs.ipynb.json +0 -0
  596. /package/lib/examples/{stores → utils}/notebooks/NotebookToCExample.ipynb.json +0 -0
  597. /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.d.ts +0 -0
  598. /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.js +0 -0
  599. /package/lib/examples/{stores → utils}/notebooks/PyGWalker.ipynb.json +0 -0
  600. /package/lib/examples/{stores → utils}/themedProvider.d.ts +0 -0
  601. /package/lib/examples/{stores → utils}/themedProvider.js +0 -0
  602. /package/lib/{components/chat/inference → inference}/BaseInferenceProvider.js +0 -0
  603. /package/lib/{components → mcp}/McpServerManager.js +0 -0
  604. /package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.js +0 -0
  605. /package/lib/{components/chat/types/inference.js → types/a2a.js} +0 -0
  606. /package/lib/{components/chat/types/protocol.js → types/acp.js} +0 -0
  607. /package/lib/{components/sparklines/types.js → types/ag-ui.js} +0 -0
  608. /package/lib/{renderers/a2ui/types/index.js → types/agents-lifecycle.js} +0 -0
  609. /package/lib/types/{AIAgent.js → agentspecs.js} +0 -0
  610. /package/lib/types/{Types.js → chat.js} +0 -0
  611. /package/lib/{components/chat/types → types}/execution.js +0 -0
  612. /package/lib/{components/chat/types/extension.js → types/extensions.js} +0 -0
  613. /package/lib/{components/chat/types/message.js → types/messages.js} +0 -0
  614. /package/lib/{components/chat/types → types}/middleware.js +0 -0
  615. /package/lib/{components/chat/types/tool.js → types/tools.js} +0 -0
package/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
  [![Netlify Status](https://api.netlify.com/api/v1/badges/f7f9e08a-884f-4f76-b20d-666d5873716c/deploy-status)](https://app.netlify.com/projects/agent-runtimes/deploys)
15
15
  [![PyPI - Version](https://img.shields.io/pypi/v/agent-runtimes)](https://pypi.org/project/agent-runtimes)
16
16
 
17
- **Agent Runtimes** is a unified platform for deploying, managing, and interacting with AI agents across multiple protocols and frameworks. It provides both a Python server for hosting agents and React components for seamless integration into web and desktop applications.
17
+ **Agent Runtimes** is a unified library for deploying, managing, and interacting with AI agents across multiple protocols and frameworks. It provides both a Python server for hosting agents and React components for seamless integration into web and desktop applications.
18
18
 
19
19
  ## What is Agent Runtimes?
20
20
 
package/lib/Agent.js CHANGED
@@ -26,7 +26,7 @@ import { useEffect, useState } from 'react';
26
26
  import { Text, Spinner } from '@primer/react';
27
27
  import { AlertIcon } from '@primer/octicons-react';
28
28
  import { Box, DatalayerThemeProvider, setupPrimerPortals, } from '@datalayer/primer-addons';
29
- import { Chat } from './components/chat';
29
+ import { Chat } from './chat';
30
30
  import { DEFAULT_MODEL } from './specs';
31
31
  import '../style/primer-primitives.css';
32
32
  setupPrimerPortals();
@@ -116,7 +116,7 @@ export const Agent = () => {
116
116
  }, children: [_jsx(AlertIcon, { size: 48 }), _jsx(Text, { sx: { color: 'danger.fg', fontSize: 2 }, children: "Failed to connect to agent" }), _jsx(Text, { sx: { color: 'fg.muted', fontSize: 1 }, children: error })] }) }));
117
117
  }
118
118
  // Agent is ready — render the Chat component
119
- return (_jsx(DatalayerThemeProvider, { children: _jsx(Chat, { transport: "ag-ui", baseUrl: BASE_URL, agentId: agentId, title: "Agent", placeholder: "Send a message...", description: "Chat with the agent", showHeader: true, height: '100vh', showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, autoFocus: true, runtimeId: agentId, historyEndpoint: `${BASE_URL}/api/v1/history`, suggestions: [
119
+ return (_jsx(DatalayerThemeProvider, { children: _jsx(Chat, { protocol: "ag-ui", baseUrl: BASE_URL, agentId: agentId, title: "Agent", placeholder: "Send a message...", description: "Chat with the agent", showHeader: true, height: '100vh', showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, autoFocus: true, runtimeId: agentId, historyEndpoint: `${BASE_URL}/api/v1/history`, suggestions: [
120
120
  {
121
121
  title: 'Hello',
122
122
  message: 'Hello, what can you do?',
@@ -13,18 +13,7 @@
13
13
  * - jupyterBaseUrl: base URL for the Jupyter server (optional, falls back to jupyter-config-data)
14
14
  * - jupyterToken: token for the Jupyter server (optional, falls back to jupyter-config-data)
15
15
  */
16
- import 'prismjs';
17
- import 'prismjs/components/prism-clike';
18
- import 'prismjs/components/prism-javascript';
19
- import 'prismjs/components/prism-markup';
20
- import 'prismjs/components/prism-markdown';
21
- import 'prismjs/components/prism-c';
22
- import 'prismjs/components/prism-css';
23
- import 'prismjs/components/prism-objectivec';
24
- import 'prismjs/components/prism-sql';
25
- import 'prismjs/components/prism-python';
26
- import 'prismjs/components/prism-rust';
27
- import 'prismjs/components/prism-swift';
16
+ import '@datalayer/jupyter-react/lib/css/PrismCss';
28
17
  import React from 'react';
29
18
  import '@datalayer/jupyter-lexical/style/index.css';
30
19
  import './examples/lexical/lexical-theme.css';
@@ -18,18 +18,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
18
18
  * - jupyterBaseUrl: base URL for the Jupyter server (optional, falls back to jupyter-config-data)
19
19
  * - jupyterToken: token for the Jupyter server (optional, falls back to jupyter-config-data)
20
20
  */
21
- import 'prismjs';
22
- import 'prismjs/components/prism-clike';
23
- import 'prismjs/components/prism-javascript';
24
- import 'prismjs/components/prism-markup';
25
- import 'prismjs/components/prism-markdown';
26
- import 'prismjs/components/prism-c';
27
- import 'prismjs/components/prism-css';
28
- import 'prismjs/components/prism-objectivec';
29
- import 'prismjs/components/prism-sql';
30
- import 'prismjs/components/prism-python';
31
- import 'prismjs/components/prism-rust';
32
- import 'prismjs/components/prism-swift';
21
+ import '@datalayer/jupyter-react/lib/css/PrismCss';
33
22
  import React, { useCallback, useEffect, useRef, useState } from 'react';
34
23
  import { $getRoot, $createParagraphNode } from 'lexical';
35
24
  import { LexicalComposer } from '@lexical/react/LexicalComposer';
@@ -52,7 +41,7 @@ import { Box, DatalayerThemeProvider, setupPrimerPortals, } from '@datalayer/pri
52
41
  import { JupyterReactTheme, loadJupyterConfig, createServerSettings, getJupyterServerUrl, getJupyterServerToken, setJupyterServerUrl, setJupyterServerToken, useJupyter, } from '@datalayer/jupyter-react';
53
42
  import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, ExcalidrawPlugin, CollapsiblePlugin, AutoLinkPlugin, AutoEmbedPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, TableCellResizerPlugin, TablePlugin, } from '@datalayer/jupyter-lexical';
54
43
  import { ServiceManager } from '@jupyterlab/services';
55
- import { Chat } from './components/chat';
44
+ import { Chat } from './chat';
56
45
  import { ChatInlinePlugin } from './lexical/ChatInlinePlugin';
57
46
  import { useChatInlineToolbarItems } from './lexical/useChatInlineToolbarItems';
58
47
  import { useLexicalTools } from './tools/adapters/agent-runtimes/lexicalHooks';
@@ -187,7 +176,7 @@ const ChatPanel = ({ agentId, tools }) => {
187
176
  display: 'flex',
188
177
  flexDirection: 'column',
189
178
  overflow: 'hidden',
190
- }, children: _jsx(Chat, { transport: "ag-ui", baseUrl: BASE_URL, agentId: agentId, title: "Agent Lexical", placeholder: "Ask about the document...", description: "Chat with the agent to manipulate the document", showHeader: true, height: "100vh", showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, frontendTools: tools, autoFocus: true, runtimeId: agentId, historyEndpoint: `${BASE_URL}/api/v1/history`, suggestions: [
179
+ }, children: _jsx(Chat, { protocol: "ag-ui", baseUrl: BASE_URL, agentId: agentId, title: "Agent Lexical", placeholder: "Ask about the document...", description: "Chat with the agent to manipulate the document", showHeader: true, height: "100vh", showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, frontendTools: tools, autoFocus: true, runtimeId: agentId, historyEndpoint: `${BASE_URL}/api/v1/history`, suggestions: [
191
180
  {
192
181
  title: 'Insert heading',
193
182
  message: 'Insert a heading that says "Welcome"',
@@ -24,10 +24,10 @@ import { AlertIcon } from '@primer/octicons-react';
24
24
  import { Box, DatalayerThemeProvider, setupPrimerPortals, } from '@datalayer/primer-addons';
25
25
  import { Notebook, JupyterReactTheme, loadJupyterConfig, createServerSettings, getJupyterServerUrl, getJupyterServerToken, setJupyterServerUrl, setJupyterServerToken, } from '@datalayer/jupyter-react';
26
26
  import { ServiceManager } from '@jupyterlab/services';
27
- import { Chat } from './components/chat';
27
+ import { Chat } from './chat';
28
28
  import { useNotebookTools } from './tools/adapters/agent-runtimes/notebookHooks';
29
29
  import { DEFAULT_MODEL } from './specs';
30
- import MatplotlibNotebook from './examples/stores/notebooks/Matplotlib.ipynb.json';
30
+ import MatplotlibNotebook from './examples/utils/notebooks/Matplotlib.ipynb.json';
31
31
  import '../style/primer-primitives.css';
32
32
  setupPrimerPortals();
33
33
  const BASE_URL = window.location.origin;
@@ -88,7 +88,7 @@ const ChatPanel = ({ agentId }) => {
88
88
  display: 'flex',
89
89
  flexDirection: 'column',
90
90
  overflow: 'hidden',
91
- }, children: _jsx(Chat, { transport: "ag-ui", baseUrl: BASE_URL, agentId: agentId, title: "Agent Notebook", placeholder: "Ask about the notebook...", description: "Chat with the agent to manipulate the notebook", showHeader: true, height: "100vh", showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, frontendTools: notebookTools, autoFocus: true, runtimeId: agentId, historyEndpoint: `${BASE_URL}/api/v1/history`, suggestions: [
91
+ }, children: _jsx(Chat, { protocol: "ag-ui", baseUrl: BASE_URL, agentId: agentId, title: "Agent Notebook", placeholder: "Ask about the notebook...", description: "Chat with the agent to manipulate the notebook", showHeader: true, height: "100vh", showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, frontendTools: notebookTools, autoFocus: true, runtimeId: agentId, historyEndpoint: `${BASE_URL}/api/v1/history`, suggestions: [
92
92
  {
93
93
  title: 'Add a cell',
94
94
  message: 'Insert a new code cell into the notebook',
package/lib/App.js CHANGED
@@ -4,8 +4,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
6
  import { useJupyter, JupyterReactTheme } from '@datalayer/jupyter-react';
7
- import { JupyterCellExample } from './examples/JupyterCellExample';
8
- import { JupyterNotebookExample } from './examples/JupyterNotebookExample';
7
+ import { JupyterCellExample } from './examples/CellSimpleExample';
8
+ import { JupyterNotebookExample } from './examples/NotebookSimpleExample';
9
9
  import './App.css';
10
10
  export function App() {
11
11
  const { serviceManager } = useJupyter({
@@ -1,7 +1,16 @@
1
- import type { OAuthProvider, OAuthProviderConfig, Identity } from '../../../identity';
1
+ /**
2
+ * AgentDetails component - Shows detailed information about the agent
3
+ * including name, protocol, URL, message count, and context details.
4
+ */
5
+ import type { ReactNode } from 'react';
6
+ import type { OAuthProvider, OAuthProviderConfig, Identity } from '../identity';
2
7
  export interface AgentDetailsProps {
3
8
  /** Agent name/title */
4
9
  name?: string;
10
+ /** Custom icon node (e.g. an Octicon component) shown instead of the default icon */
11
+ icon?: ReactNode;
12
+ /** Emoji from the agent spec (displayed instead of the default icon) */
13
+ emoji?: string;
5
14
  /** Protocol being used */
6
15
  protocol: string;
7
16
  /** Endpoint URL */
@@ -28,9 +37,11 @@ export interface AgentDetailsProps {
28
37
  onBack: () => void;
29
38
  /** Whether to show the header with back button (default: true) */
30
39
  showBackHeader?: boolean;
40
+ /** Whether to show context usage/history and context snapshot sections (default: true) */
41
+ showUsage?: boolean;
31
42
  }
32
43
  /**
33
44
  * AgentDetails component displays comprehensive information about the agent.
34
45
  */
35
- export declare function AgentDetails({ name, protocol, url, messageCount, agentId, apiBase, identityProviders, onIdentityConnect, onIdentityDisconnect, onBack, showBackHeader, }: AgentDetailsProps): import("react/jsx-runtime").JSX.Element;
46
+ export declare function AgentDetails({ name, icon, emoji, protocol, url, messageCount, agentId, apiBase, identityProviders, onIdentityConnect, onIdentityDisconnect, onBack, showBackHeader, showUsage, }: AgentDetailsProps): import("react/jsx-runtime").JSX.Element;
36
47
  export default AgentDetails;
@@ -1,18 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- // Copyright (c) 2025-2026 Datalayer, Inc.
3
- // Distributed under the terms of the Modified BSD License.
4
- /**
5
- * AgentDetails component - Shows detailed information about the agent
6
- * including name, protocol, URL, message count, and context details.
7
- */
8
2
  import { ArrowLeftIcon, CheckCircleIcon, XCircleIcon, CodeIcon, BriefcaseIcon, DownloadIcon, NoteIcon, ServerIcon, } from '@primer/octicons-react';
9
3
  import { Button, Heading, IconButton, Text, Label, Spinner, ToggleSwitch, } from '@primer/react';
10
4
  import { Box } from '@datalayer/primer-addons';
11
5
  import { AiAgentIcon } from '@datalayer/icons-react';
12
6
  import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
13
- import { ContextPanel } from './ContextPanel';
14
- import { ContextInspector } from './ContextInspector';
15
- import { AgentIdentity } from './AgentIdentity';
7
+ import { ContextPanel } from '../context/ContextPanel';
8
+ import { ContextInspector, } from '../context/ContextInspector';
9
+ import { AgentIdentity } from '../identity/AgentIdentity';
16
10
  /**
17
11
  * Get the API base URL for fetching data.
18
12
  * If apiBase prop is provided, use it.
@@ -171,7 +165,7 @@ async function downloadContextSnapshotAsCSV(agentId, apiBase) {
171
165
  /**
172
166
  * AgentDetails component displays comprehensive information about the agent.
173
167
  */
174
- export function AgentDetails({ name = 'AI Agent', protocol, url, messageCount, agentId, apiBase, identityProviders, onIdentityConnect, onIdentityDisconnect, onBack, showBackHeader = true, }) {
168
+ export function AgentDetails({ name = 'AI Agent', icon, emoji, protocol, url, messageCount, agentId, apiBase, identityProviders, onIdentityConnect, onIdentityDisconnect, onBack, showBackHeader = true, showUsage = true, }) {
175
169
  const queryClient = useQueryClient();
176
170
  // Fetch MCP toolsets status
177
171
  const { data: mcpStatus, isLoading: mcpLoading } = useQuery({
@@ -259,7 +253,7 @@ export function AgentDetails({ name = 'AI Agent', protocol, url, messageCount, a
259
253
  p: 2,
260
254
  bg: 'accent.subtle',
261
255
  borderRadius: 2,
262
- }, children: _jsx(AiAgentIcon, { colored: true, size: 32 }) }), _jsxs(Box, { sx: { flex: 1 }, children: [_jsx(Heading, { as: "h3", sx: { fontSize: 2, fontWeight: 'semibold', mb: 1 }, children: name }), agentId && (_jsxs(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: ["ID: ", agentId] }))] })] }), _jsxs(Box, { children: [_jsx(Heading, { as: "h4", sx: {
256
+ }, children: icon ? (_jsx(Box, { sx: { display: 'inline-flex', color: 'accent.fg' }, children: icon })) : emoji ? (_jsx(Text, { sx: { fontSize: 5, lineHeight: 1 }, children: emoji })) : (_jsx(AiAgentIcon, { colored: true, size: 32 })) }), _jsxs(Box, { sx: { flex: 1 }, children: [_jsx(Heading, { as: "h3", sx: { fontSize: 2, fontWeight: 'semibold', mb: 1 }, children: name }), agentId && (_jsxs(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: ["ID: ", agentId] }))] })] }), _jsxs(Box, { children: [_jsx(Heading, { as: "h4", sx: {
263
257
  fontSize: 1,
264
258
  fontWeight: 'semibold',
265
259
  mb: 2,
@@ -579,7 +573,7 @@ export function AgentDetails({ name = 'AI Agent', protocol, url, messageCount, a
579
573
  gap: 1,
580
574
  flexWrap: 'wrap',
581
575
  mt: 1,
582
- }, children: codemodeStatus.available_skills.map(skill => (_jsx(Label, { variant: "secondary", size: "small", children: skill.name }, skill.name))) })] })), codemodeStatus.available_skills.length === 0 && (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: "No skills available. Add skills to the skills/ directory." }))] })) : (_jsx(Text, { sx: { fontSize: 1, color: 'fg.muted' }, children: "Failed to load Codemode status" })) })] }), agentId && (_jsx(ContextPanel, { agentId: agentId, apiBase: apiBase, messageCount: messageCount, chartHeight: "200px" })), agentId && (_jsxs(Box, { sx: { mt: 3 }, children: [_jsxs(Box, { sx: {
576
+ }, children: codemodeStatus.available_skills.map(skill => (_jsx(Label, { variant: "secondary", size: "small", children: skill.name }, skill.name))) })] })), codemodeStatus.available_skills.length === 0 && (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: "No skills available. Add skills to the skills/ directory." }))] })) : (_jsx(Text, { sx: { fontSize: 1, color: 'fg.muted' }, children: "Failed to load Codemode status" })) })] }), showUsage && agentId && (_jsx(ContextPanel, { agentId: agentId, apiBase: apiBase, messageCount: messageCount, chartHeight: "200px" })), showUsage && agentId && (_jsxs(Box, { sx: { mt: 3 }, children: [_jsxs(Box, { sx: {
583
577
  display: 'flex',
584
578
  alignItems: 'center',
585
579
  justifyContent: 'space-between',
@@ -0,0 +1,47 @@
1
+ import type { RunningAgent, AgentUsageSummary, ConversationCheckpoint } from '../types';
2
+ /**
3
+ * List all running agents across runtimes.
4
+ * @param token - Authentication token
5
+ * @param baseUrl - Base URL for the AI Agents API
6
+ * @returns Promise resolving to list of running agents
7
+ */
8
+ export declare const getRunningAgents: (token: string, baseUrl?: string) => Promise<RunningAgent[]>;
9
+ /**
10
+ * Get detailed status for a specific agent.
11
+ * @param token - Authentication token
12
+ * @param podName - Pod name hosting the agent
13
+ * @param agentId - Agent ID within the pod (optional, defaults to primary)
14
+ * @param baseUrl - Base URL
15
+ * @returns Promise resolving to agent status
16
+ */
17
+ export declare const getAgentStatus: (token: string, podName: string, agentId?: string, baseUrl?: string) => Promise<RunningAgent>;
18
+ /**
19
+ * Pause a running agent (light checkpoint by default, CRIU optional).
20
+ * @param token - Authentication token
21
+ * @param podName - Pod name
22
+ * @param baseUrl - Base URL
23
+ */
24
+ export declare const pauseAgent: (token: string, podName: string, baseUrl?: string) => Promise<void>;
25
+ /**
26
+ * Resume a paused/checkpointed agent.
27
+ * @param token - Authentication token
28
+ * @param podName - Pod name
29
+ * @param baseUrl - Base URL
30
+ */
31
+ export declare const resumeAgent: (token: string, podName: string, baseUrl?: string) => Promise<void>;
32
+ /**
33
+ * Get conversation checkpoints for an agent.
34
+ * @param token - Authentication token
35
+ * @param podName - Pod name
36
+ * @param agentId - Agent ID
37
+ * @param baseUrl - Base URL
38
+ */
39
+ export declare const getAgentCheckpoints: (token: string, podName: string, agentId?: string, baseUrl?: string) => Promise<ConversationCheckpoint[]>;
40
+ /**
41
+ * Get usage summary for an agent.
42
+ * @param token - Authentication token
43
+ * @param podName - Pod name
44
+ * @param agentId - Agent ID
45
+ * @param baseUrl - Base URL
46
+ */
47
+ export declare const getAgentUsage: (token: string, podName: string, agentId?: string, baseUrl?: string) => Promise<AgentUsageSummary>;
@@ -0,0 +1,106 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Running agents API functions.
7
+ *
8
+ * Provides functions for listing, inspecting, pausing, and resuming
9
+ * durable agents across runtimes.
10
+ *
11
+ * @module api/agents
12
+ */
13
+ import { requestDatalayerAPI } from '@datalayer/core/lib/api/DatalayerApi';
14
+ import { API_BASE_PATHS, DEFAULT_SERVICE_URLS, } from '@datalayer/core/lib/api/constants';
15
+ import { validateToken } from '@datalayer/core/lib/api/utils/validation';
16
+ /**
17
+ * List all running agents across runtimes.
18
+ * @param token - Authentication token
19
+ * @param baseUrl - Base URL for the AI Agents API
20
+ * @returns Promise resolving to list of running agents
21
+ */
22
+ export const getRunningAgents = async (token, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
23
+ validateToken(token);
24
+ return requestDatalayerAPI({
25
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents`,
26
+ method: 'GET',
27
+ token,
28
+ });
29
+ };
30
+ /**
31
+ * Get detailed status for a specific agent.
32
+ * @param token - Authentication token
33
+ * @param podName - Pod name hosting the agent
34
+ * @param agentId - Agent ID within the pod (optional, defaults to primary)
35
+ * @param baseUrl - Base URL
36
+ * @returns Promise resolving to agent status
37
+ */
38
+ export const getAgentStatus = async (token, podName, agentId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
39
+ validateToken(token);
40
+ const query = agentId ? `?agent_id=${encodeURIComponent(agentId)}` : '';
41
+ return requestDatalayerAPI({
42
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(podName)}${query}`,
43
+ method: 'GET',
44
+ token,
45
+ });
46
+ };
47
+ /**
48
+ * Pause a running agent (light checkpoint by default, CRIU optional).
49
+ * @param token - Authentication token
50
+ * @param podName - Pod name
51
+ * @param baseUrl - Base URL
52
+ */
53
+ export const pauseAgent = async (token, podName, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
54
+ validateToken(token);
55
+ await requestDatalayerAPI({
56
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(podName)}/pause`,
57
+ method: 'POST',
58
+ token,
59
+ });
60
+ };
61
+ /**
62
+ * Resume a paused/checkpointed agent.
63
+ * @param token - Authentication token
64
+ * @param podName - Pod name
65
+ * @param baseUrl - Base URL
66
+ */
67
+ export const resumeAgent = async (token, podName, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
68
+ validateToken(token);
69
+ await requestDatalayerAPI({
70
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(podName)}/resume`,
71
+ method: 'POST',
72
+ token,
73
+ });
74
+ };
75
+ /**
76
+ * Get conversation checkpoints for an agent.
77
+ * @param token - Authentication token
78
+ * @param podName - Pod name
79
+ * @param agentId - Agent ID
80
+ * @param baseUrl - Base URL
81
+ */
82
+ export const getAgentCheckpoints = async (token, podName, agentId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
83
+ validateToken(token);
84
+ const query = agentId ? `?agent_id=${encodeURIComponent(agentId)}` : '';
85
+ return requestDatalayerAPI({
86
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(podName)}/checkpoints${query}`,
87
+ method: 'GET',
88
+ token,
89
+ });
90
+ };
91
+ /**
92
+ * Get usage summary for an agent.
93
+ * @param token - Authentication token
94
+ * @param podName - Pod name
95
+ * @param agentId - Agent ID
96
+ * @param baseUrl - Base URL
97
+ */
98
+ export const getAgentUsage = async (token, podName, agentId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
99
+ validateToken(token);
100
+ const query = agentId ? `?agent_id=${encodeURIComponent(agentId)}` : '';
101
+ return requestDatalayerAPI({
102
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(podName)}/usage${query}`,
103
+ method: 'GET',
104
+ token,
105
+ });
106
+ };
@@ -0,0 +1,17 @@
1
+ import type { ContextUsage, CostUsage } from '../types';
2
+ /**
3
+ * Get current context window usage for an agent.
4
+ * @param token - Authentication token
5
+ * @param agentId - Agent ID
6
+ * @param baseUrl - Base URL
7
+ * @returns Promise resolving to context usage data
8
+ */
9
+ export declare const getContextUsage: (token: string, agentId: string, baseUrl?: string) => Promise<ContextUsage>;
10
+ /**
11
+ * Get cost/usage tracking data for an agent.
12
+ * @param token - Authentication token
13
+ * @param agentId - Agent ID
14
+ * @param baseUrl - Base URL
15
+ * @returns Promise resolving to cost usage data
16
+ */
17
+ export declare const getCostUsage: (token: string, agentId: string, baseUrl?: string) => Promise<CostUsage>;
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Context usage API functions.
7
+ *
8
+ * Provides functions for retrieving real-time context window
9
+ * usage and cost tracking data for agents.
10
+ *
11
+ * @module api/context
12
+ */
13
+ import { requestDatalayerAPI } from '@datalayer/core/lib/api/DatalayerApi';
14
+ import { API_BASE_PATHS, DEFAULT_SERVICE_URLS, } from '@datalayer/core/lib/api/constants';
15
+ import { validateToken } from '@datalayer/core/lib/api/utils/validation';
16
+ /**
17
+ * Get current context window usage for an agent.
18
+ * @param token - Authentication token
19
+ * @param agentId - Agent ID
20
+ * @param baseUrl - Base URL
21
+ * @returns Promise resolving to context usage data
22
+ */
23
+ export const getContextUsage = async (token, agentId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
24
+ validateToken(token);
25
+ return requestDatalayerAPI({
26
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(agentId)}/context-usage`,
27
+ method: 'GET',
28
+ token,
29
+ });
30
+ };
31
+ /**
32
+ * Get cost/usage tracking data for an agent.
33
+ * @param token - Authentication token
34
+ * @param agentId - Agent ID
35
+ * @param baseUrl - Base URL
36
+ * @returns Promise resolving to cost usage data
37
+ */
38
+ export const getCostUsage = async (token, agentId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
39
+ validateToken(token);
40
+ return requestDatalayerAPI({
41
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(agentId)}/cost-usage`,
42
+ method: 'GET',
43
+ token,
44
+ });
45
+ };
@@ -0,0 +1,27 @@
1
+ import type { EvalReport, RunEvalsRequest } from '../types';
2
+ /**
3
+ * Trigger an evaluation run for the specified agent.
4
+ * @param token - Authentication token
5
+ * @param agentId - Agent ID
6
+ * @param request - Eval run request body
7
+ * @param baseUrl - Base URL
8
+ * @returns Promise resolving to the eval report
9
+ */
10
+ export declare const runEvals: (token: string, agentId: string, request: RunEvalsRequest, baseUrl?: string) => Promise<EvalReport>;
11
+ /**
12
+ * List past evaluation runs for an agent.
13
+ * @param token - Authentication token
14
+ * @param agentId - Agent ID
15
+ * @param baseUrl - Base URL
16
+ * @returns Promise resolving to list of eval reports
17
+ */
18
+ export declare const listEvals: (token: string, agentId: string, baseUrl?: string) => Promise<EvalReport[]>;
19
+ /**
20
+ * Get a specific evaluation report.
21
+ * @param token - Authentication token
22
+ * @param agentId - Agent ID
23
+ * @param evalId - Eval run ID
24
+ * @param baseUrl - Base URL
25
+ * @returns Promise resolving to the eval report
26
+ */
27
+ export declare const getEval: (token: string, agentId: string, evalId: string, baseUrl?: string) => Promise<EvalReport>;
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Evaluation runs API functions.
7
+ *
8
+ * Provides functions for triggering, listing, and retrieving
9
+ * evaluation reports for agents.
10
+ *
11
+ * @module api/evals
12
+ */
13
+ import { requestDatalayerAPI } from '@datalayer/core/lib/api/DatalayerApi';
14
+ import { API_BASE_PATHS, DEFAULT_SERVICE_URLS, } from '@datalayer/core/lib/api/constants';
15
+ import { validateToken } from '@datalayer/core/lib/api/utils/validation';
16
+ /**
17
+ * Trigger an evaluation run for the specified agent.
18
+ * @param token - Authentication token
19
+ * @param agentId - Agent ID
20
+ * @param request - Eval run request body
21
+ * @param baseUrl - Base URL
22
+ * @returns Promise resolving to the eval report
23
+ */
24
+ export const runEvals = async (token, agentId, request, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
25
+ validateToken(token);
26
+ return requestDatalayerAPI({
27
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(agentId)}/evals/run`,
28
+ method: 'POST',
29
+ token,
30
+ body: request,
31
+ });
32
+ };
33
+ /**
34
+ * List past evaluation runs for an agent.
35
+ * @param token - Authentication token
36
+ * @param agentId - Agent ID
37
+ * @param baseUrl - Base URL
38
+ * @returns Promise resolving to list of eval reports
39
+ */
40
+ export const listEvals = async (token, agentId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
41
+ validateToken(token);
42
+ return requestDatalayerAPI({
43
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(agentId)}/evals`,
44
+ method: 'GET',
45
+ token,
46
+ });
47
+ };
48
+ /**
49
+ * Get a specific evaluation report.
50
+ * @param token - Authentication token
51
+ * @param agentId - Agent ID
52
+ * @param evalId - Eval run ID
53
+ * @param baseUrl - Base URL
54
+ * @returns Promise resolving to the eval report
55
+ */
56
+ export const getEval = async (token, agentId, evalId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
57
+ validateToken(token);
58
+ return requestDatalayerAPI({
59
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(agentId)}/evals/${encodeURIComponent(evalId)}`,
60
+ method: 'GET',
61
+ token,
62
+ });
63
+ };
@@ -0,0 +1,17 @@
1
+ import type { AgentEvent, CreateAgentEventRequest, GetAgentEventResponse, ListAgentEventsParams, ListAgentEventsResponse, UpdateAgentEventRequest } from '../types';
2
+ export declare const createEvent: (token: string, data: CreateAgentEventRequest, baseUrl?: string) => Promise<{
3
+ success: boolean;
4
+ event: AgentEvent;
5
+ }>;
6
+ export declare const listEvents: (token: string, agentId: string, params?: Omit<ListAgentEventsParams, "agent_id">, baseUrl?: string) => Promise<ListAgentEventsResponse>;
7
+ export declare const getEvent: (token: string, agentId: string, eventId: string, baseUrl?: string) => Promise<GetAgentEventResponse>;
8
+ export declare const updateEvent: (token: string, agentId: string, eventId: string, data: UpdateAgentEventRequest, baseUrl?: string) => Promise<GetAgentEventResponse>;
9
+ export declare const deleteEvent: (token: string, agentId: string, eventId: string, baseUrl?: string) => Promise<{
10
+ success: boolean;
11
+ }>;
12
+ export declare const markEventRead: (token: string, agentId: string, eventId: string, baseUrl?: string) => Promise<GetAgentEventResponse>;
13
+ export declare const markEventUnread: (token: string, agentId: string, eventId: string, baseUrl?: string) => Promise<GetAgentEventResponse>;
14
+ /**
15
+ * List events across all agents for the authenticated user.
16
+ */
17
+ export declare const listAllEvents: (token: string, params?: Omit<ListAgentEventsParams, "agent_id">, baseUrl?: string) => Promise<ListAgentEventsResponse>;
@@ -0,0 +1,93 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Agent events API functions.
7
+ *
8
+ * Provides CRUD operations for agent event records.
9
+ *
10
+ * @module api/events
11
+ */
12
+ import { requestDatalayerAPI } from '@datalayer/core/lib/api/DatalayerApi';
13
+ import { API_BASE_PATHS, DEFAULT_SERVICE_URLS, } from '@datalayer/core/lib/api/constants';
14
+ import { validateToken, validateRequiredString, } from '@datalayer/core/lib/api/utils/validation';
15
+ const toQueryString = (params) => {
16
+ const searchParams = new URLSearchParams();
17
+ Object.entries(params).forEach(([k, v]) => {
18
+ if (v !== undefined && v !== null && v !== '') {
19
+ searchParams.append(k, String(v));
20
+ }
21
+ });
22
+ const query = searchParams.toString();
23
+ return query ? `?${query}` : '';
24
+ };
25
+ const agentEventsPath = (agentId) => `${API_BASE_PATHS.AI_AGENTS}/agents/${encodeURIComponent(agentId)}/events`;
26
+ export const createEvent = async (token, data, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
27
+ validateToken(token);
28
+ validateRequiredString(data.agent_id, 'agent_id');
29
+ validateRequiredString(data.title, 'title');
30
+ return requestDatalayerAPI({
31
+ url: `${baseUrl}${agentEventsPath(data.agent_id)}`,
32
+ method: 'POST',
33
+ token,
34
+ body: data,
35
+ });
36
+ };
37
+ export const listEvents = async (token, agentId, params = {}, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
38
+ validateToken(token);
39
+ validateRequiredString(agentId, 'agentId');
40
+ return requestDatalayerAPI({
41
+ url: `${baseUrl}${agentEventsPath(agentId)}${toQueryString(params)}`,
42
+ method: 'GET',
43
+ token,
44
+ });
45
+ };
46
+ export const getEvent = async (token, agentId, eventId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
47
+ validateToken(token);
48
+ validateRequiredString(agentId, 'agentId');
49
+ validateRequiredString(eventId, 'eventId');
50
+ return requestDatalayerAPI({
51
+ url: `${baseUrl}${agentEventsPath(agentId)}/${encodeURIComponent(eventId)}`,
52
+ method: 'GET',
53
+ token,
54
+ });
55
+ };
56
+ export const updateEvent = async (token, agentId, eventId, data, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
57
+ validateToken(token);
58
+ validateRequiredString(agentId, 'agentId');
59
+ validateRequiredString(eventId, 'eventId');
60
+ return requestDatalayerAPI({
61
+ url: `${baseUrl}${agentEventsPath(agentId)}/${encodeURIComponent(eventId)}`,
62
+ method: 'PATCH',
63
+ token,
64
+ body: data,
65
+ });
66
+ };
67
+ export const deleteEvent = async (token, agentId, eventId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
68
+ validateToken(token);
69
+ validateRequiredString(agentId, 'agentId');
70
+ validateRequiredString(eventId, 'eventId');
71
+ return requestDatalayerAPI({
72
+ url: `${baseUrl}${agentEventsPath(agentId)}/${encodeURIComponent(eventId)}`,
73
+ method: 'DELETE',
74
+ token,
75
+ });
76
+ };
77
+ export const markEventRead = async (token, agentId, eventId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
78
+ return updateEvent(token, agentId, eventId, { read: true }, baseUrl);
79
+ };
80
+ export const markEventUnread = async (token, agentId, eventId, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
81
+ return updateEvent(token, agentId, eventId, { read: false }, baseUrl);
82
+ };
83
+ /**
84
+ * List events across all agents for the authenticated user.
85
+ */
86
+ export const listAllEvents = async (token, params = {}, baseUrl = DEFAULT_SERVICE_URLS.AI_AGENTS) => {
87
+ validateToken(token);
88
+ return requestDatalayerAPI({
89
+ url: `${baseUrl}${API_BASE_PATHS.AI_AGENTS}/events${toQueryString(params)}`,
90
+ method: 'GET',
91
+ token,
92
+ });
93
+ };
@@ -6,7 +6,7 @@
6
6
  * Simple API request handler.
7
7
  * Helper function to make API requests to the Simple server.
8
8
  *
9
- * @module components/chat/handler
9
+ * @module api/handler
10
10
  */
11
11
  import { URLExt } from '@jupyterlab/coreutils';
12
12
  import { ServerConnection } from '@jupyterlab/services';