@datalayer/agent-runtimes 1.0.1 → 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 (610) 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 +25 -16
  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 +37 -12
  208. package/lib/hooks/index.js +37 -12
  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/useAgentsCatalog.d.ts +25 -0
  216. package/lib/hooks/useAgentsCatalog.js +28 -0
  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 +2 -3
  259. package/lib/{components → mcp}/McpServerManager.js +1 -1
  260. package/lib/mcp/index.d.ts +1 -0
  261. package/lib/{specs/agents/codeai → mcp}/index.js +1 -1
  262. package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.d.ts +3 -3
  263. package/lib/{components/chat/middleware → middleware}/index.d.ts +1 -1
  264. package/lib/{components/chat/middleware → middleware}/index.js +1 -1
  265. package/lib/{components/chat/protocols → protocols}/A2AAdapter.d.ts +6 -6
  266. package/lib/{components/chat/protocols → protocols}/A2AAdapter.js +3 -3
  267. package/lib/{components/chat/protocols → protocols}/ACPAdapter.d.ts +6 -6
  268. package/lib/{components/chat/protocols → protocols}/ACPAdapter.js +4 -4
  269. package/lib/{components/chat/protocols → protocols}/AGUIAdapter.d.ts +14 -6
  270. package/lib/{components/chat/protocols → protocols}/AGUIAdapter.js +72 -10
  271. package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.d.ts +6 -6
  272. package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.js +1 -1
  273. package/lib/{components/chat/protocols → protocols}/VercelAIAdapter.d.ts +31 -7
  274. package/lib/protocols/VercelAIAdapter.js +682 -0
  275. package/lib/{components/chat/protocols → protocols}/index.d.ts +1 -2
  276. package/lib/{components/chat/protocols → protocols}/index.js +1 -1
  277. package/lib/specs/agents/agents.d.ts +54 -0
  278. package/lib/specs/agents/agents.js +2638 -0
  279. package/lib/specs/agents/index.js +14 -7
  280. package/lib/specs/envvars.d.ts +11 -19
  281. package/lib/specs/envvars.js +42 -21
  282. package/lib/specs/evals.d.ts +20 -0
  283. package/lib/specs/evals.js +133 -0
  284. package/lib/specs/events.d.ts +18 -0
  285. package/lib/specs/events.js +182 -0
  286. package/lib/specs/frontendTools.d.ts +14 -0
  287. package/lib/specs/frontendTools.js +53 -0
  288. package/lib/specs/guardrails.d.ts +22 -0
  289. package/lib/specs/guardrails.js +391 -0
  290. package/lib/specs/index.d.ts +15 -2
  291. package/lib/specs/index.js +15 -2
  292. package/lib/specs/mcpServers.d.ts +13 -10
  293. package/lib/specs/mcpServers.js +95 -25
  294. package/lib/specs/memory.d.ts +34 -0
  295. package/lib/specs/memory.js +99 -0
  296. package/lib/specs/models.d.ts +22 -35
  297. package/lib/specs/models.js +64 -44
  298. package/lib/specs/notifications.d.ts +17 -0
  299. package/lib/specs/notifications.js +187 -0
  300. package/lib/specs/outputs.d.ts +19 -0
  301. package/lib/specs/outputs.js +112 -0
  302. package/lib/specs/skills.d.ts +7 -16
  303. package/lib/specs/skills.js +89 -12
  304. package/lib/specs/teams/index.d.ts +17 -0
  305. package/lib/specs/teams/index.js +37 -0
  306. package/lib/specs/teams/teams.d.ts +27 -0
  307. package/lib/specs/teams/teams.js +1120 -0
  308. package/lib/specs/tools.d.ts +15 -0
  309. package/lib/specs/tools.js +83 -0
  310. package/lib/specs/triggers.d.ts +15 -0
  311. package/lib/specs/triggers.js +117 -0
  312. package/lib/stores/agentsStore.d.ts +123 -0
  313. package/lib/stores/agentsStore.js +270 -0
  314. package/lib/{components/chat/store → stores}/chatStore.d.ts +3 -2
  315. package/lib/{components/chat/store → stores}/chatStore.js +2 -2
  316. package/lib/{components/chat/store → stores}/conversationStore.d.ts +2 -2
  317. package/lib/{components/chat/store → stores}/conversationStore.js +3 -3
  318. package/lib/{components/chat/store → stores}/index.d.ts +3 -2
  319. package/lib/{components/chat/store → stores}/index.js +3 -2
  320. package/lib/{components/chat/tools → tools}/ToolExecutor.d.ts +2 -2
  321. package/lib/{components/chat/tools → tools}/ToolExecutor.js +1 -1
  322. package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.d.ts +1 -1
  323. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +14 -10
  324. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +31 -21
  325. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +1 -1
  326. package/lib/tools/index.d.ts +3 -0
  327. package/lib/tools/index.js +3 -7
  328. package/lib/types/a2a.d.ts +39 -0
  329. package/lib/types/acp.d.ts +21 -0
  330. package/lib/types/ag-ui.d.ts +25 -0
  331. package/lib/types/agents-lifecycle.d.ts +36 -0
  332. package/lib/types/agents.d.ts +80 -0
  333. package/lib/types/agents.js +22 -0
  334. package/lib/types/agentspecs.d.ts +90 -0
  335. package/lib/{components/chat/components/base/ChatBase.d.ts → types/chat.d.ts} +60 -100
  336. package/lib/types/checkpoints.d.ts +32 -0
  337. package/lib/types/checkpoints.js +5 -0
  338. package/lib/types/config.d.ts +67 -0
  339. package/lib/{runtime/types.js → types/config.js} +2 -2
  340. package/lib/types/connection.d.ts +31 -0
  341. package/lib/types/connection.js +5 -0
  342. package/lib/types/context.d.ts +67 -0
  343. package/lib/types/context.js +5 -0
  344. package/lib/types/cost.d.ts +42 -0
  345. package/lib/types/cost.js +5 -0
  346. package/lib/types/envvars.d.ts +21 -0
  347. package/lib/types/envvars.js +5 -0
  348. package/lib/types/evals.d.ts +66 -0
  349. package/lib/types/evals.js +5 -0
  350. package/lib/types/events.d.ts +49 -0
  351. package/lib/types/events.js +5 -0
  352. package/lib/types/eventspecs.d.ts +39 -0
  353. package/lib/types/eventspecs.js +5 -0
  354. package/lib/types/examples.d.ts +31 -0
  355. package/lib/types/examples.js +5 -0
  356. package/lib/{components/chat/types → types}/execution.d.ts +10 -1
  357. package/lib/{components/chat/types/extension.d.ts → types/extensions.d.ts} +3 -3
  358. package/lib/types/guardrails.d.ts +106 -0
  359. package/lib/types/guardrails.js +5 -0
  360. package/lib/types/index.d.ts +36 -2
  361. package/lib/types/index.js +35 -2
  362. package/lib/{components/chat/types → types}/inference.d.ts +3 -3
  363. package/lib/types/inference.js +5 -0
  364. package/lib/types/mcp.d.ts +117 -0
  365. package/lib/types/mcp.js +27 -0
  366. package/lib/types/memory.d.ts +23 -0
  367. package/lib/types/memory.js +5 -0
  368. package/lib/{components/chat/types/message.d.ts → types/messages.d.ts} +20 -1
  369. package/lib/{components/chat/types → types}/middleware.d.ts +3 -3
  370. package/lib/types/models.d.ts +63 -0
  371. package/lib/types/models.js +5 -0
  372. package/lib/types/notifications.d.ts +85 -0
  373. package/lib/types/notifications.js +5 -0
  374. package/lib/types/outputs.d.ts +51 -0
  375. package/lib/types/outputs.js +5 -0
  376. package/lib/{components/chat/types → types}/protocol.d.ts +37 -99
  377. package/lib/types/protocol.js +5 -0
  378. package/lib/types/sandbox.d.ts +27 -0
  379. package/lib/types/sandbox.js +24 -0
  380. package/lib/types/skills.d.ts +74 -0
  381. package/lib/types/skills.js +5 -0
  382. package/lib/types/teams.d.ts +133 -0
  383. package/lib/types/teams.js +5 -0
  384. package/lib/types/tool-approvals.d.ts +39 -0
  385. package/lib/types/tool-approvals.js +5 -0
  386. package/lib/{components/chat/types/tool.d.ts → types/tools.d.ts} +59 -4
  387. package/lib/types/triggers.d.ts +48 -0
  388. package/lib/types/triggers.js +5 -0
  389. package/lib/types/usage.d.ts +36 -0
  390. package/lib/types/usage.js +5 -0
  391. package/lib/utils/index.d.ts +1 -0
  392. package/lib/utils/index.js +5 -0
  393. package/lib/utils/utils.d.ts +60 -0
  394. package/lib/utils/utils.js +205 -0
  395. package/package.json +13 -14
  396. package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
  397. package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
  398. package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
  399. package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
  400. package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
  401. package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
  402. package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
  403. package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
  404. package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
  405. package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
  406. package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
  407. package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
  408. package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
  409. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  410. package/scripts/codegen/generate_agents.py +464 -58
  411. package/scripts/codegen/generate_envvars.py +36 -35
  412. package/scripts/codegen/generate_evals.py +279 -0
  413. package/scripts/codegen/generate_events.py +312 -0
  414. package/scripts/codegen/generate_frontend_tools.py +266 -0
  415. package/scripts/codegen/generate_guardrails.py +475 -0
  416. package/scripts/codegen/generate_mcp_servers.py +36 -9
  417. package/scripts/codegen/generate_memory.py +468 -0
  418. package/scripts/codegen/generate_models.py +22 -46
  419. package/scripts/codegen/generate_notifications.py +309 -0
  420. package/scripts/codegen/generate_outputs.py +267 -0
  421. package/scripts/codegen/generate_skills.py +108 -51
  422. package/scripts/codegen/generate_teams.py +922 -0
  423. package/scripts/codegen/generate_tools.py +326 -0
  424. package/scripts/codegen/generate_triggers.py +295 -0
  425. package/scripts/codegen/versioning.py +53 -0
  426. package/lib/components/chat/components/base/ChatBase.js +0 -2240
  427. package/lib/components/chat/components/base/InputPrompt.d.ts +0 -42
  428. package/lib/components/chat/components/base/InputPrompt.js +0 -131
  429. package/lib/components/chat/components/display/index.d.ts +0 -6
  430. package/lib/components/chat/components/index.d.ts +0 -26
  431. package/lib/components/chat/components/index.js +0 -39
  432. package/lib/components/chat/extensions/A2UIExtension.d.ts +0 -87
  433. package/lib/components/chat/extensions/A2UIExtension.js +0 -312
  434. package/lib/components/chat/extensions/index.d.ts +0 -10
  435. package/lib/components/chat/index.d.ts +0 -61
  436. package/lib/components/chat/index.js +0 -76
  437. package/lib/components/chat/protocols/VercelAIAdapter.js +0 -315
  438. package/lib/components/chat/tools/index.d.ts +0 -8
  439. package/lib/components/chat/tools/index.js +0 -11
  440. package/lib/components/chat/types/index.d.ts +0 -12
  441. package/lib/components/chat/types/index.js +0 -17
  442. package/lib/components/sparklines/Sparklines.d.ts +0 -16
  443. package/lib/components/sparklines/Sparklines.js +0 -65
  444. package/lib/components/sparklines/SparklinesLine.d.ts +0 -8
  445. package/lib/components/sparklines/SparklinesLine.js +0 -37
  446. package/lib/components/sparklines/dataProcessing.d.ts +0 -25
  447. package/lib/components/sparklines/dataProcessing.js +0 -35
  448. package/lib/components/sparklines/index.d.ts +0 -4
  449. package/lib/components/sparklines/index.js +0 -7
  450. package/lib/components/sparklines/types.d.ts +0 -36
  451. package/lib/examples/stores/examplesStore.d.ts +0 -5
  452. package/lib/examples/stores/notebooks/Empty.ipynb.json +0 -33
  453. package/lib/examples/stores/notebooks/NotebookExample2.ipynb.json +0 -48
  454. package/lib/examples/stores/themeStore.d.ts +0 -33
  455. package/lib/examples/stores/themeStore.js +0 -38
  456. package/lib/hooks/useKeyboardShortcuts.d.ts +0 -47
  457. package/lib/hooks/useKeyboardShortcuts.js +0 -153
  458. package/lib/hooks/useMobile.d.ts +0 -1
  459. package/lib/hooks/useMobile.js +0 -19
  460. package/lib/hooks/useNotebookAIAgent.d.ts +0 -8
  461. package/lib/hooks/useNotebookAIAgent.js +0 -73
  462. package/lib/renderers/a2ui/components/A2UIRenderer.d.ts +0 -7
  463. package/lib/renderers/a2ui/components/A2UIRenderer.js +0 -102
  464. package/lib/renderers/a2ui/components/SurfaceRenderer.d.ts +0 -7
  465. package/lib/renderers/a2ui/components/SurfaceRenderer.js +0 -101
  466. package/lib/renderers/a2ui/components/content/AudioPlayer.d.ts +0 -9
  467. package/lib/renderers/a2ui/components/content/AudioPlayer.js +0 -38
  468. package/lib/renderers/a2ui/components/content/Divider.d.ts +0 -9
  469. package/lib/renderers/a2ui/components/content/Divider.js +0 -35
  470. package/lib/renderers/a2ui/components/content/Icon.d.ts +0 -9
  471. package/lib/renderers/a2ui/components/content/Icon.js +0 -110
  472. package/lib/renderers/a2ui/components/content/Image.d.ts +0 -9
  473. package/lib/renderers/a2ui/components/content/Image.js +0 -61
  474. package/lib/renderers/a2ui/components/content/Text.d.ts +0 -9
  475. package/lib/renderers/a2ui/components/content/Text.js +0 -64
  476. package/lib/renderers/a2ui/components/content/Video.d.ts +0 -9
  477. package/lib/renderers/a2ui/components/content/Video.js +0 -37
  478. package/lib/renderers/a2ui/components/content/index.d.ts +0 -6
  479. package/lib/renderers/a2ui/components/content/index.js +0 -25
  480. package/lib/renderers/a2ui/components/index.d.ts +0 -5
  481. package/lib/renderers/a2ui/components/index.js +0 -24
  482. package/lib/renderers/a2ui/components/interactive/Button.d.ts +0 -11
  483. package/lib/renderers/a2ui/components/interactive/Button.js +0 -71
  484. package/lib/renderers/a2ui/components/interactive/CheckBox.d.ts +0 -9
  485. package/lib/renderers/a2ui/components/interactive/CheckBox.js +0 -48
  486. package/lib/renderers/a2ui/components/interactive/DateTimeInput.d.ts +0 -9
  487. package/lib/renderers/a2ui/components/interactive/DateTimeInput.js +0 -62
  488. package/lib/renderers/a2ui/components/interactive/MultipleChoice.d.ts +0 -9
  489. package/lib/renderers/a2ui/components/interactive/MultipleChoice.js +0 -73
  490. package/lib/renderers/a2ui/components/interactive/Slider.d.ts +0 -9
  491. package/lib/renderers/a2ui/components/interactive/Slider.js +0 -53
  492. package/lib/renderers/a2ui/components/interactive/TextField.d.ts +0 -9
  493. package/lib/renderers/a2ui/components/interactive/TextField.js +0 -72
  494. package/lib/renderers/a2ui/components/interactive/index.d.ts +0 -6
  495. package/lib/renderers/a2ui/components/interactive/index.js +0 -25
  496. package/lib/renderers/a2ui/components/layout/Card.d.ts +0 -11
  497. package/lib/renderers/a2ui/components/layout/Card.js +0 -30
  498. package/lib/renderers/a2ui/components/layout/Column.d.ts +0 -11
  499. package/lib/renderers/a2ui/components/layout/Column.js +0 -65
  500. package/lib/renderers/a2ui/components/layout/List.d.ts +0 -11
  501. package/lib/renderers/a2ui/components/layout/List.js +0 -55
  502. package/lib/renderers/a2ui/components/layout/Modal.d.ts +0 -11
  503. package/lib/renderers/a2ui/components/layout/Modal.js +0 -58
  504. package/lib/renderers/a2ui/components/layout/Row.d.ts +0 -11
  505. package/lib/renderers/a2ui/components/layout/Row.js +0 -65
  506. package/lib/renderers/a2ui/components/layout/Tabs.d.ts +0 -11
  507. package/lib/renderers/a2ui/components/layout/Tabs.js +0 -48
  508. package/lib/renderers/a2ui/components/layout/index.d.ts +0 -6
  509. package/lib/renderers/a2ui/components/layout/index.js +0 -25
  510. package/lib/renderers/a2ui/context/A2UIContext.d.ts +0 -17
  511. package/lib/renderers/a2ui/context/A2UIContext.js +0 -54
  512. package/lib/renderers/a2ui/context/ThemeContext.d.ts +0 -20
  513. package/lib/renderers/a2ui/context/ThemeContext.js +0 -333
  514. package/lib/renderers/a2ui/hooks/useA2UI.d.ts +0 -36
  515. package/lib/renderers/a2ui/hooks/useA2UI.js +0 -62
  516. package/lib/renderers/a2ui/hooks/useDataBinding.d.ts +0 -8
  517. package/lib/renderers/a2ui/hooks/useDataBinding.js +0 -83
  518. package/lib/renderers/a2ui/index.d.ts +0 -9
  519. package/lib/renderers/a2ui/index.js +0 -28
  520. package/lib/renderers/a2ui/lib/utils.d.ts +0 -11
  521. package/lib/renderers/a2ui/lib/utils.js +0 -38
  522. package/lib/renderers/a2ui/types/index.d.ts +0 -17
  523. package/lib/runtime/index.d.ts +0 -38
  524. package/lib/runtime/index.js +0 -40
  525. package/lib/runtime/runtimeStore.d.ts +0 -76
  526. package/lib/runtime/runtimeStore.js +0 -184
  527. package/lib/runtime/types.d.ts +0 -84
  528. package/lib/runtime/useAgentConnection.d.ts +0 -45
  529. package/lib/runtime/useAgentConnection.js +0 -112
  530. package/lib/runtime/useAgentRuntime.d.ts +0 -93
  531. package/lib/runtime/useAgentRuntime.js +0 -125
  532. package/lib/specs/agents/codeai/agents.d.ts +0 -28
  533. package/lib/specs/agents/codeai/agents.js +0 -151
  534. package/lib/specs/agents/codeai/index.d.ts +0 -1
  535. package/lib/specs/agents/codemode-paper/agents.d.ts +0 -31
  536. package/lib/specs/agents/codemode-paper/agents.js +0 -308
  537. package/lib/specs/agents/codemode-paper/index.d.ts +0 -1
  538. package/lib/specs/agents/codemode-paper/index.js +0 -5
  539. package/lib/specs/agents/datalayer-ai/agents.d.ts +0 -31
  540. package/lib/specs/agents/datalayer-ai/agents.js +0 -282
  541. package/lib/specs/agents/datalayer-ai/index.d.ts +0 -1
  542. package/lib/specs/agents/datalayer-ai/index.js +0 -5
  543. package/lib/state/index.d.ts +0 -1
  544. package/lib/state/index.js +0 -5
  545. package/lib/state/substates/AIAgentState.d.ts +0 -80
  546. package/lib/state/substates/AIAgentState.js +0 -108
  547. package/lib/state/substates/index.d.ts +0 -1
  548. package/lib/state/substates/index.js +0 -5
  549. package/lib/types/AIAgent.d.ts +0 -17
  550. package/lib/types/Types.d.ts +0 -189
  551. /package/lib/{components/chat → api}/handler.d.ts +0 -0
  552. /package/lib/{renderers/index.d.ts → api/utils.d.ts} +0 -0
  553. /package/lib/{renderers/index.js → api/utils.js} +0 -0
  554. /package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.js +0 -0
  555. /package/lib/{components/chat/components → chat}/parts/DynamicToolPart.js +0 -0
  556. /package/lib/{components/chat/components → chat}/parts/ReasoningPart.d.ts +0 -0
  557. /package/lib/{components/chat/components → chat}/parts/TextPart.js +0 -0
  558. /package/lib/{components/chat/components → chat}/parts/ToolPart.d.ts +0 -0
  559. /package/lib/{components/chat/components → chat}/styles/streamdownStyles.js +0 -0
  560. /package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.d.ts +0 -0
  561. /package/lib/{components/chat/components → context}/ContextDistribution.d.ts +0 -0
  562. /package/lib/{components/chat/components → context}/ContextDistribution.js +0 -0
  563. /package/lib/{components/chat/components → context}/ContextInspector.d.ts +0 -0
  564. /package/lib/{components/chat/components → context}/ContextPanel.d.ts +0 -0
  565. /package/lib/{components/chat/components → context}/ContextUsage.d.ts +0 -0
  566. /package/lib/{components/chat/components → context}/ContextUsage.js +0 -0
  567. /package/lib/examples/{JupyterCellExample.d.ts → CellSimpleExample.d.ts} +0 -0
  568. /package/lib/examples/{AgentRuntimeCustomExample.d.ts → ChatCustomExample.d.ts} +0 -0
  569. /package/lib/examples/{AgentRuntimeChatExample.d.ts → ChatExample.d.ts} +0 -0
  570. /package/lib/examples/{AgentRuntimeStandaloneExample.d.ts → ChatStandaloneExample.d.ts} +0 -0
  571. /package/lib/examples/{AgentRuntimeNotebookExample.d.ts → NotebookExample.d.ts} +0 -0
  572. /package/lib/examples/{AgentRuntimeNotebookSidebarExample.d.ts → NotebookSidebarExample.d.ts} +0 -0
  573. /package/lib/examples/{JupyterNotebookExample.d.ts → NotebookSimpleExample.d.ts} +0 -0
  574. /package/lib/examples/{stores → utils}/agents/earthquake-detector.ipynb.json +0 -0
  575. /package/lib/examples/{stores → utils}/agents/earthquake-detector.json +0 -0
  576. /package/lib/examples/{stores → utils}/agents/earthquake-detector.lexical.json +0 -0
  577. /package/lib/examples/{stores → utils}/agents/sales-forecaster.ipynb.json +0 -0
  578. /package/lib/examples/{stores → utils}/agents/sales-forecaster.json +0 -0
  579. /package/lib/examples/{stores → utils}/agents/sales-forecaster.lexical.json +0 -0
  580. /package/lib/examples/{stores → utils}/agents/social-post-generator.ipynb.json +0 -0
  581. /package/lib/examples/{stores → utils}/agents/social-post-generator.json +0 -0
  582. /package/lib/examples/{stores → utils}/agents/social-post-generator.lexical.json +0 -0
  583. /package/lib/examples/{stores → utils}/agents/stock-market.ipynb.json +0 -0
  584. /package/lib/examples/{stores → utils}/agents/stock-market.json +0 -0
  585. /package/lib/examples/{stores → utils}/agents/stock-market.lexical.json +0 -0
  586. /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExample.ipynb.json +0 -0
  587. /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -0
  588. /package/lib/examples/{stores → utils}/notebooks/Lite.ipynb.json +0 -0
  589. /package/lib/examples/{stores → utils}/notebooks/Matplotlib.ipynb.json +0 -0
  590. /package/lib/examples/{stores → utils}/notebooks/NotebookExample1.ipynb.json +0 -0
  591. /package/lib/examples/{stores → utils}/notebooks/NotebookOutputs.ipynb.json +0 -0
  592. /package/lib/examples/{stores → utils}/notebooks/NotebookToCExample.ipynb.json +0 -0
  593. /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.d.ts +0 -0
  594. /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.js +0 -0
  595. /package/lib/examples/{stores → utils}/notebooks/PyGWalker.ipynb.json +0 -0
  596. /package/lib/examples/{stores → utils}/themedProvider.d.ts +0 -0
  597. /package/lib/examples/{stores → utils}/themedProvider.js +0 -0
  598. /package/lib/{components/chat/inference → inference}/BaseInferenceProvider.js +0 -0
  599. /package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.js +0 -0
  600. /package/lib/{components/chat/types/inference.js → types/a2a.js} +0 -0
  601. /package/lib/{components/chat/types/protocol.js → types/acp.js} +0 -0
  602. /package/lib/{components/sparklines/types.js → types/ag-ui.js} +0 -0
  603. /package/lib/{renderers/a2ui/types/index.js → types/agents-lifecycle.js} +0 -0
  604. /package/lib/types/{AIAgent.js → agentspecs.js} +0 -0
  605. /package/lib/types/{Types.js → chat.js} +0 -0
  606. /package/lib/{components/chat/types → types}/execution.js +0 -0
  607. /package/lib/{components/chat/types/extension.js → types/extensions.js} +0 -0
  608. /package/lib/{components/chat/types/message.js → types/messages.js} +0 -0
  609. /package/lib/{components/chat/types → types}/middleware.js +0 -0
  610. /package/lib/{components/chat/types/tool.js → types/tools.js} +0 -0
@@ -0,0 +1,468 @@
1
+ #!/usr/bin/env python3
2
+ # Copyright (c) 2025-2026 Datalayer, Inc.
3
+ # Distributed under the terms of the Modified BSD License.
4
+
5
+ """
6
+ Generate Python and TypeScript code from YAML memory specifications.
7
+
8
+ Usage:
9
+ python generate_memory.py \\
10
+ --specs-dir agentspecs/agentspecs/memory \\
11
+ --python-output agent_runtimes/specs/memory.py \\
12
+ --typescript-output src/specs/memory.ts
13
+ """
14
+
15
+ import argparse
16
+ import sys
17
+ from pathlib import Path
18
+ from typing import Any
19
+
20
+ import yaml
21
+ from versioning import ensure_spec_version, version_suffix
22
+
23
+
24
+ def _make_const_name(memory_id: str) -> str:
25
+ """Convert a memory ID to a Python/TS constant name (e.g., 'mem0' -> 'MEM0_MEMORY')."""
26
+ return f"{memory_id.upper().replace('-', '_')}_MEMORY"
27
+
28
+
29
+ def _make_enum_name(memory_id: str) -> str:
30
+ """Convert a memory ID to an enum member name (e.g., 'mem0' -> 'MEM0')."""
31
+ return memory_id.upper().replace("-", "_")
32
+
33
+
34
+ def _fmt_list(items: list[str]) -> str:
35
+ """Format a list of strings with double quotes for ruff compliance."""
36
+ if not items:
37
+ return "[]"
38
+ return "[" + ", ".join(f'"{item}"' for item in items) + "]"
39
+
40
+
41
+ def load_memory_specs(specs_dir: Path) -> list[dict[str, Any]]:
42
+ """Load all memory YAML specifications from a directory."""
43
+ specs = []
44
+ for yaml_file in sorted(specs_dir.glob("*.yaml")):
45
+ with open(yaml_file) as f:
46
+ spec = yaml.safe_load(f)
47
+ ensure_spec_version(spec)
48
+ specs.append(spec)
49
+ return specs
50
+
51
+
52
+ def generate_python_code(specs: list[dict[str, Any]]) -> str:
53
+ """Generate Python code from memory specifications."""
54
+ lines = [
55
+ "# Copyright (c) 2025-2026 Datalayer, Inc.",
56
+ "# Distributed under the terms of the Modified BSD License.",
57
+ '"""',
58
+ "Memory Catalog.",
59
+ "",
60
+ "Predefined memory backend configurations that can be used by agents.",
61
+ "",
62
+ "This file is AUTO-GENERATED from YAML specifications.",
63
+ "DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
64
+ '"""',
65
+ "",
66
+ "from enum import Enum",
67
+ "from typing import Optional",
68
+ "",
69
+ "from agent_runtimes.types import MemorySpec",
70
+ "",
71
+ "",
72
+ "# " + "=" * 76,
73
+ "# Memories Enum",
74
+ "# " + "=" * 76,
75
+ "",
76
+ "",
77
+ "class Memories(str, Enum):",
78
+ ' """Enumeration of available memory backends."""',
79
+ "",
80
+ ]
81
+
82
+ for spec in specs:
83
+ enum_name = _make_enum_name(spec["id"])
84
+ lines.append(f' {enum_name} = "{spec["id"]}"')
85
+
86
+ lines.extend(
87
+ [
88
+ "",
89
+ "",
90
+ "# " + "=" * 76,
91
+ "# Memory Definitions",
92
+ "# " + "=" * 76,
93
+ "",
94
+ ]
95
+ )
96
+
97
+ # Generate memory constants
98
+ for spec in specs:
99
+ version = spec["version"]
100
+ const_name = _make_const_name(spec["id"]) + version_suffix(version)
101
+
102
+ # Clean description
103
+ description = (
104
+ spec.get("description", "").replace("\n", " ").replace(" ", " ").strip()
105
+ )
106
+ # Escape double quotes
107
+ description = description.replace('"', '\\"')
108
+
109
+ icon = f'"{spec.get("icon", "database")}"'
110
+ emoji = f'"{spec.get("emoji", "🧠")}"'
111
+
112
+ lines.extend(
113
+ [
114
+ f"{const_name} = MemorySpec(",
115
+ f' id="{spec["id"]}",',
116
+ f' version="{version}",',
117
+ f' name="{spec["name"]}",',
118
+ f' description="{description}",',
119
+ f' persistence="{spec.get("persistence", "none")}",',
120
+ f' scope="{spec.get("scope", "agent")}",',
121
+ f' backend="{spec.get("backend", "in-memory")}",',
122
+ f" icon={icon},",
123
+ f" emoji={emoji},",
124
+ ")",
125
+ "",
126
+ ]
127
+ )
128
+
129
+ # Generate catalog
130
+ lines.extend(
131
+ [
132
+ "",
133
+ "# " + "=" * 76,
134
+ "# Memory Catalog",
135
+ "# " + "=" * 76,
136
+ "",
137
+ "MEMORY_CATALOGUE: dict[str, MemorySpec] = {",
138
+ ]
139
+ )
140
+
141
+ for spec in specs:
142
+ memory_id = spec["id"]
143
+ version = spec["version"]
144
+ const_name = _make_const_name(memory_id) + version_suffix(version)
145
+ lines.append(f' "{memory_id}": {const_name},')
146
+
147
+ lines.extend(
148
+ [
149
+ "}",
150
+ "",
151
+ ]
152
+ )
153
+
154
+ # Default memory
155
+ lines.extend(
156
+ [
157
+ "",
158
+ 'DEFAULT_MEMORY: str = "ephemeral"',
159
+ "",
160
+ "",
161
+ "def get_memory(memory_id: str) -> Optional[MemorySpec]:",
162
+ ' """',
163
+ " Get a memory specification by ID (accepts both bare and versioned refs).",
164
+ "",
165
+ " Args:",
166
+ " memory_id: The unique identifier of the memory backend.",
167
+ "",
168
+ " Returns:",
169
+ " The MemorySpec, or None if not found.",
170
+ ' """',
171
+ " mem = MEMORY_CATALOGUE.get(memory_id)",
172
+ " if mem is not None:",
173
+ " return mem",
174
+ " base, _, ver = memory_id.rpartition(':')",
175
+ " if base and '.' in ver:",
176
+ " return MEMORY_CATALOGUE.get(base)",
177
+ " return None",
178
+ "",
179
+ "",
180
+ "def get_default_memory() -> Optional[MemorySpec]:",
181
+ ' """',
182
+ " Get the default memory backend.",
183
+ "",
184
+ " Returns:",
185
+ " The default MemorySpec, or None if no default is set.",
186
+ ' """',
187
+ " return MEMORY_CATALOGUE.get(DEFAULT_MEMORY)",
188
+ "",
189
+ "",
190
+ "def list_memories() -> list[MemorySpec]:",
191
+ ' """',
192
+ " List all available memory backends.",
193
+ "",
194
+ " Returns:",
195
+ " List of all MemorySpec specifications.",
196
+ ' """',
197
+ " return list(MEMORY_CATALOGUE.values())",
198
+ "",
199
+ ]
200
+ )
201
+
202
+ return "\n".join(lines)
203
+
204
+
205
+ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
206
+ """Generate TypeScript code from memory specifications."""
207
+ lines = [
208
+ "/*",
209
+ " * Copyright (c) 2025-2026 Datalayer, Inc.",
210
+ " * Distributed under the terms of the Modified BSD License.",
211
+ " */",
212
+ "",
213
+ "/**",
214
+ " * Memory Catalog",
215
+ " *",
216
+ " * Predefined memory backend configurations.",
217
+ " *",
218
+ " * This file is AUTO-GENERATED from YAML specifications.",
219
+ " * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
220
+ " */",
221
+ "",
222
+ "import type { MemorySpec } from '../types';",
223
+ "",
224
+ "// " + "=" * 76,
225
+ "// Memories Enum",
226
+ "// " + "=" * 76,
227
+ "",
228
+ "export const Memories = {",
229
+ ]
230
+
231
+ # Generate enum-like const object
232
+ for spec in specs:
233
+ enum_name = _make_enum_name(spec["id"])
234
+ lines.append(f" {enum_name}: '{spec['id']}',")
235
+
236
+ lines.extend(
237
+ [
238
+ "} as const;",
239
+ "",
240
+ "export type MemoryId = (typeof Memories)[keyof typeof Memories];",
241
+ "",
242
+ "// " + "=" * 76,
243
+ "// Memory Definitions",
244
+ "// " + "=" * 76,
245
+ "",
246
+ ]
247
+ )
248
+
249
+ # Generate memory constants
250
+ for spec in specs:
251
+ version = spec["version"]
252
+ const_name = _make_const_name(spec["id"]) + version_suffix(version)
253
+
254
+ # Clean description
255
+ description = (
256
+ spec.get("description", "").replace("\n", " ").replace(" ", " ").strip()
257
+ )
258
+ # Escape single quotes
259
+ description = description.replace("'", "\\'")
260
+
261
+ lines.extend(
262
+ [
263
+ f"export const {const_name}: MemorySpec = {{",
264
+ f" id: '{spec['id']}',",
265
+ f" version: '{version}',",
266
+ f" name: '{spec['name']}',",
267
+ f" description: '{description}',",
268
+ f" persistence: '{spec.get('persistence', 'none')}',",
269
+ f" scope: '{spec.get('scope', 'agent')}',",
270
+ f" backend: '{spec.get('backend', 'in-memory')}',",
271
+ f" icon: '{spec.get('icon', 'database')}',",
272
+ f" emoji: '{spec.get('emoji', '🧠')}',",
273
+ "};",
274
+ "",
275
+ ]
276
+ )
277
+
278
+ # Generate catalog
279
+ lines.extend(
280
+ [
281
+ "// " + "=" * 76,
282
+ "// Memory Catalog",
283
+ "// " + "=" * 76,
284
+ "",
285
+ "export const MEMORY_CATALOGUE: Record<string, MemorySpec> = {",
286
+ ]
287
+ )
288
+
289
+ for spec in specs:
290
+ memory_id = spec["id"]
291
+ version = spec["version"]
292
+ const_name = _make_const_name(memory_id) + version_suffix(version)
293
+ lines.append(f" '{memory_id}': {const_name},")
294
+
295
+ lines.extend(
296
+ [
297
+ "};",
298
+ "",
299
+ "export const DEFAULT_MEMORY: MemoryId = Memories.EPHEMERAL;",
300
+ "",
301
+ "function resolveMemoryId(memoryId: string): string {",
302
+ " if (memoryId in MEMORY_CATALOGUE) return memoryId;",
303
+ " const idx = memoryId.lastIndexOf(':');",
304
+ " if (idx > 0) {",
305
+ " const base = memoryId.slice(0, idx);",
306
+ " if (base in MEMORY_CATALOGUE) return base;",
307
+ " }",
308
+ " return memoryId;",
309
+ "}",
310
+ "",
311
+ "/**",
312
+ " * Get a memory specification by ID.",
313
+ " */",
314
+ "export function getMemory(memoryId: string): MemorySpec | undefined {",
315
+ " return MEMORY_CATALOGUE[resolveMemoryId(memoryId)];",
316
+ "}",
317
+ "",
318
+ "/**",
319
+ " * Get the default memory backend.",
320
+ " */",
321
+ "export function getDefaultMemory(): MemorySpec | undefined {",
322
+ " return MEMORY_CATALOGUE[DEFAULT_MEMORY];",
323
+ "}",
324
+ "",
325
+ "/**",
326
+ " * List all available memory backends.",
327
+ " */",
328
+ "export function listMemories(): MemorySpec[] {",
329
+ " return Object.values(MEMORY_CATALOGUE);",
330
+ "}",
331
+ "",
332
+ ]
333
+ )
334
+
335
+ return "\n".join(lines)
336
+
337
+
338
+ def update_init_file(specs: list[dict[str, Any]], init_file: Path) -> None:
339
+ """Update the __init__.py file with correct imports based on generated specs."""
340
+ memory_constants = []
341
+ for spec in specs:
342
+ const_name = _make_const_name(spec["id"])
343
+ memory_constants.append(const_name)
344
+
345
+ init_content = init_file.read_text()
346
+
347
+ # Find the memory import section
348
+ import_start = init_content.find("from .memory import (")
349
+ if import_start == -1:
350
+ # Section doesn't exist yet — append it
351
+ all_names = sorted(
352
+ memory_constants
353
+ + [
354
+ "MemorySpec",
355
+ "Memories",
356
+ "MEMORY_CATALOGUE",
357
+ "DEFAULT_MEMORY",
358
+ "get_default_memory",
359
+ "get_memory",
360
+ "list_memories",
361
+ ],
362
+ key=str.casefold,
363
+ )
364
+ new_imports = ["\nfrom .memory import ("]
365
+ for name in all_names:
366
+ new_imports.append(f" {name},")
367
+ new_imports.append(")")
368
+ init_content = init_content.rstrip() + "\n" + "\n".join(new_imports) + "\n"
369
+ init_file.write_text(init_content)
370
+ print(f"✓ Added memory imports to {init_file}")
371
+ return
372
+
373
+ # Find the end of the import statement
374
+ import_end = init_content.find(")", import_start)
375
+ if import_end == -1:
376
+ print(f"Warning: Could not find end of memory import in {init_file}")
377
+ return
378
+
379
+ # Generate new import lines
380
+ all_names = sorted(
381
+ memory_constants
382
+ + [
383
+ "MemorySpec",
384
+ "Memories",
385
+ "MEMORY_CATALOGUE",
386
+ "DEFAULT_MEMORY",
387
+ "get_default_memory",
388
+ "get_memory",
389
+ "list_memories",
390
+ ],
391
+ key=str.casefold,
392
+ )
393
+ new_imports = ["from .memory import ("]
394
+ for name in all_names:
395
+ new_imports.append(f" {name},")
396
+ new_imports.append(")")
397
+
398
+ new_content = (
399
+ init_content[:import_start]
400
+ + "\n".join(new_imports)
401
+ + init_content[import_end + 1 :]
402
+ )
403
+
404
+ init_file.write_text(new_content)
405
+ print(f"✓ Updated {init_file}")
406
+
407
+
408
+ def main():
409
+ """Main entry point."""
410
+ parser = argparse.ArgumentParser(
411
+ description="Generate Python and TypeScript code from YAML memory specifications"
412
+ )
413
+ parser.add_argument(
414
+ "--specs-dir",
415
+ type=Path,
416
+ required=True,
417
+ help="Directory containing YAML memory specification files",
418
+ )
419
+ parser.add_argument(
420
+ "--python-output",
421
+ type=Path,
422
+ required=True,
423
+ help="Output path for generated Python file",
424
+ )
425
+ parser.add_argument(
426
+ "--typescript-output",
427
+ type=Path,
428
+ required=True,
429
+ help="Output path for generated TypeScript file",
430
+ )
431
+
432
+ args = parser.parse_args()
433
+
434
+ # Validate specs directory
435
+ if not args.specs_dir.exists():
436
+ print(f"Error: Specs directory does not exist: {args.specs_dir}")
437
+ sys.exit(1)
438
+
439
+ # Load specifications
440
+ print(f"Loading memory specs from {args.specs_dir}...")
441
+ specs = load_memory_specs(args.specs_dir)
442
+ print(f"Loaded {len(specs)} memory specifications")
443
+
444
+ # Generate Python code
445
+ print("Generating Python code...")
446
+ python_code = generate_python_code(specs)
447
+ args.python_output.parent.mkdir(parents=True, exist_ok=True)
448
+ args.python_output.write_text(python_code)
449
+ print(f"✓ Generated {args.python_output}")
450
+
451
+ # Generate TypeScript code
452
+ print("Generating TypeScript code...")
453
+ typescript_code = generate_typescript_code(specs)
454
+ args.typescript_output.parent.mkdir(parents=True, exist_ok=True)
455
+ args.typescript_output.write_text(typescript_code)
456
+ print(f"✓ Generated {args.typescript_output}")
457
+
458
+ # Update __init__.py with correct imports
459
+ init_file = args.python_output.parent / "__init__.py"
460
+ if init_file.exists():
461
+ print("Updating imports in __init__.py...")
462
+ update_init_file(specs, init_file)
463
+
464
+ print(f"\n✓ Successfully generated code from {len(specs)} memory specs")
465
+
466
+
467
+ if __name__ == "__main__":
468
+ main()
@@ -18,6 +18,7 @@ from pathlib import Path
18
18
  from typing import Any
19
19
 
20
20
  import yaml
21
+ from versioning import ensure_spec_version, version_suffix
21
22
 
22
23
 
23
24
  def load_model_specs(specs_dir: Path) -> list[dict[str, Any]]:
@@ -26,6 +27,7 @@ def load_model_specs(specs_dir: Path) -> list[dict[str, Any]]:
26
27
  for yaml_file in sorted(specs_dir.glob("*.yaml")):
27
28
  with open(yaml_file) as f:
28
29
  spec = yaml.safe_load(f)
30
+ ensure_spec_version(spec)
29
31
  specs.append(spec)
30
32
  return specs
31
33
 
@@ -62,26 +64,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
62
64
  "from enum import Enum",
63
65
  "from typing import Dict, List, Optional",
64
66
  "",
65
- "from pydantic import BaseModel, Field",
66
- "",
67
- "",
68
- "# " + "=" * 76,
69
- "# AIModel Pydantic class",
70
- "# " + "=" * 76,
71
- "",
72
- "",
73
- "class AIModel(BaseModel):",
74
- ' """Specification for an AI model."""',
75
- "",
76
- ' id: str = Field(..., description="Unique model identifier")',
77
- ' name: str = Field(..., description="Display name")',
78
- ' description: str = Field(default="", description="Model description")',
79
- ' provider: str = Field(..., description="Provider name")',
80
- ' default: bool = Field(default=False, description="Whether this is the default model")',
81
- " required_env_vars: List[str] = Field(",
82
- " default_factory=list,",
83
- ' description="Required environment variable names",',
84
- " )",
67
+ "from agent_runtimes.types import AIModel",
85
68
  "",
86
69
  "",
87
70
  "# " + "=" * 76,
@@ -112,7 +95,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
112
95
 
113
96
  # Generate model constants
114
97
  for spec in specs:
115
- const_name = _make_const_name(spec["id"])
98
+ const_name = _make_const_name(spec["id"]) + version_suffix(spec["version"])
116
99
 
117
100
  # Format required_env_vars
118
101
  env_vars = spec.get("required_env_vars", [])
@@ -125,6 +108,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
125
108
  [
126
109
  f"{const_name} = AIModel(",
127
110
  f' id="{spec["id"]}",',
111
+ f' version="{spec["version"]}",',
128
112
  f' name="{spec["name"]}",',
129
113
  f' description="{spec.get("description", "")}",',
130
114
  f' provider="{spec["provider"]}",',
@@ -148,7 +132,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
148
132
 
149
133
  for spec in specs:
150
134
  model_id = spec["id"]
151
- const_name = _make_const_name(model_id)
135
+ const_name = _make_const_name(model_id) + version_suffix(spec["version"])
152
136
  lines.append(f' "{model_id}": {const_name},')
153
137
 
154
138
  lines.extend(
@@ -200,7 +184,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
200
184
  "",
201
185
  "def get_model(model_id: str) -> Optional[AIModel]:",
202
186
  ' """',
203
- " Get an AI model by ID.",
187
+ " Get an AI model by ID (accepts both bare and versioned refs).",
204
188
  "",
205
189
  " Args:",
206
190
  " model_id: The unique identifier of the AI model.",
@@ -208,7 +192,13 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
208
192
  " Returns:",
209
193
  " The AIModel specification, or None if not found.",
210
194
  ' """',
211
- " return AI_MODEL_CATALOGUE.get(model_id)",
195
+ " model = AI_MODEL_CATALOGUE.get(model_id)",
196
+ " if model is not None:",
197
+ " return model",
198
+ " base, _, ver = model_id.rpartition(':')",
199
+ " if base and '.' in ver:",
200
+ " return AI_MODEL_CATALOGUE.get(base)",
201
+ " return None",
212
202
  "",
213
203
  "",
214
204
  "def get_default_model() -> Optional[AIModel]:",
@@ -257,24 +247,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
257
247
  " * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
258
248
  " */",
259
249
  "",
260
- "// " + "=" * 76,
261
- "// AIModel Type",
262
- "// " + "=" * 76,
263
- "",
264
- "export interface AIModel {",
265
- " /** Unique model identifier (e.g., 'anthropic:claude-sonnet-4-5-20250514') */",
266
- " id: string;",
267
- " /** Display name for the model */",
268
- " name: string;",
269
- " /** Model description */",
270
- " description: string;",
271
- " /** Provider name (anthropic, openai, bedrock, azure-openai) */",
272
- " provider: string;",
273
- " /** Whether this is the default model */",
274
- " default: boolean;",
275
- " /** Required environment variable names */",
276
- " requiredEnvVars: string[];",
277
- "}",
250
+ "import type { AIModel } from '../types';",
278
251
  "",
279
252
  "// " + "=" * 76,
280
253
  "// AIModels Enum",
@@ -303,7 +276,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
303
276
 
304
277
  # Generate model constants
305
278
  for spec in specs:
306
- const_name = _make_const_name(spec["id"])
279
+ const_name = _make_const_name(spec["id"]) + version_suffix(spec["version"])
307
280
 
308
281
  # Format required_env_vars
309
282
  env_vars = spec.get("required_env_vars", [])
@@ -319,6 +292,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
319
292
  [
320
293
  f"export const {const_name}: AIModel = {{",
321
294
  f" id: '{spec['id']}',",
295
+ f" version: '{spec['version']}',",
322
296
  f" name: '{spec['name']}',",
323
297
  f" description: '{description}',",
324
298
  f" provider: '{spec['provider']}',",
@@ -342,7 +316,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
342
316
 
343
317
  for spec in specs:
344
318
  model_id = spec["id"]
345
- const_name = _make_const_name(model_id)
319
+ const_name = _make_const_name(model_id) + version_suffix(spec["version"])
346
320
  lines.append(f" '{model_id}': {const_name},")
347
321
 
348
322
  lines.extend(
@@ -356,7 +330,9 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
356
330
  default_specs = [s for s in specs if s.get("default", False)]
357
331
  if default_specs:
358
332
  default_id = default_specs[0]["id"]
359
- default_const = _make_const_name(default_id)
333
+ default_const = _make_const_name(default_id) + version_suffix(
334
+ default_specs[0]["version"]
335
+ )
360
336
  lines.extend(
361
337
  [
362
338
  f"export const DEFAULT_MODEL: AIModelId = AIModels.{_make_enum_name(default_id)};",
@@ -373,7 +349,7 @@ def update_init_file(specs: list[dict[str, Any]], init_file: Path) -> None:
373
349
  # Generate list of model constant names
374
350
  model_constants = []
375
351
  for spec in specs:
376
- const_name = _make_const_name(spec["id"])
352
+ const_name = _make_const_name(spec["id"]) + version_suffix(spec["version"])
377
353
  model_constants.append(const_name)
378
354
 
379
355
  # Read the current __init__.py