@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
@@ -7,22 +7,29 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  * A2UiRestaurantExample
8
8
  *
9
9
  * Demonstrates A2UI (Agent-to-UI) protocol integration with a pydantic-ai
10
- * restaurant finder agent. The agent generates A2UI JSON messages that are
11
- * rendered into React components.
10
+ * restaurant finder agent using the official @a2ui/react renderer.
11
+ *
12
+ * The agent generates A2UI JSON messages that are rendered into
13
+ * interactive React components via A2UIProvider + A2UIRenderer.
12
14
  *
13
15
  * Features:
14
- * - A2UI protocol message processing
16
+ * - A2UI protocol message processing via @a2ui/react
15
17
  * - Dynamic UI generation from agent responses
16
18
  * - Restaurant search and booking interface
19
+ * - Action handling for interactive components (buttons, forms)
17
20
  * - Dark/light theme support
18
21
  *
19
22
  * Backend: /api/v1/a2ui/restaurant/
20
23
  */
21
24
  import { useState, useCallback, useEffect, useRef } from 'react';
22
- import { Box } from '@datalayer/primer-addons';
23
- import { ThemedProvider } from './stores/themedProvider';
25
+ import { Box, getCardGradient } from '@datalayer/primer-addons';
26
+ import { ThemedProvider } from './utils/themedProvider';
27
+ import { useExampleThemeStore } from './utils/themeStore';
24
28
  import { Text, Spinner, TextInput, Button } from '@primer/react';
25
- import { A2UIProvider, A2UIRenderer, useA2UI } from '../renderers/a2ui';
29
+ import { A2UIProvider, A2UIRenderer, useA2UIActions, initializeDefaultCatalog, } from '@a2ui/react';
30
+ // Initialize the A2UI default component catalog (buttons, cards, text, etc.)
31
+ // This must be called once before any A2UI rendering occurs.
32
+ initializeDefaultCatalog();
26
33
  // A2UI endpoint for pydantic-ai restaurant agent
27
34
  const A2UI_RESTAURANT_ENDPOINT = 'http://localhost:8765/api/v1/a2ui/restaurant/';
28
35
  const LOADING_TEXT_LINES = [
@@ -31,26 +38,37 @@ const LOADING_TEXT_LINES = [
31
38
  'Looking for open tables...',
32
39
  'Almost there...',
33
40
  ];
41
+ /**
42
+ * Extract ServerToClientMessage[] from A2A server payload,
43
+ * handling both Python SDK (root wrapper) and JS SDK (direct) formats.
44
+ */
45
+ function extractMessages(data) {
46
+ const messages = [];
47
+ for (const item of data) {
48
+ const part = item.root || item;
49
+ if (part.kind === 'text')
50
+ continue;
51
+ if (part.data) {
52
+ messages.push(part.data);
53
+ }
54
+ }
55
+ return messages;
56
+ }
34
57
  /**
35
58
  * Custom hook for A2UI restaurant client communication.
59
+ * Uses useA2UIActions() from @a2ui/react for message processing.
36
60
  */
37
61
  function useA2UIRestaurantClient() {
38
- const { surfaces, processMessages, clearSurfaces, sendAction } = useA2UI();
62
+ const { processMessages, clearSurfaces, getSurfaces } = useA2UIActions();
39
63
  const [isLoading, setIsLoading] = useState(false);
40
64
  const [error, setError] = useState(null);
41
- /**
42
- * Send a message to the A2UI backend and process the response.
43
- */
44
65
  const makeRequest = useCallback(async (message) => {
45
- let messages;
46
66
  try {
47
67
  setIsLoading(true);
48
68
  setError(null);
49
69
  const response = await fetch(A2UI_RESTAURANT_ENDPOINT, {
50
70
  method: 'POST',
51
- headers: {
52
- 'Content-Type': 'application/json',
53
- },
71
+ headers: { 'Content-Type': 'application/json' },
54
72
  body: JSON.stringify({ query: message }),
55
73
  });
56
74
  if (!response.ok) {
@@ -58,19 +76,9 @@ function useA2UIRestaurantClient() {
58
76
  throw new Error(errorData.error || 'Request failed');
59
77
  }
60
78
  const data = (await response.json());
61
- if ('error' in data) {
79
+ if ('error' in data)
62
80
  throw new Error(data.error);
63
- }
64
- messages = [];
65
- for (const item of data) {
66
- // Handle both Python SDK (with root wrapper) and JS SDK (direct) formats
67
- const part = item.root || item;
68
- if (part.kind === 'text')
69
- continue;
70
- if (part.data) {
71
- messages.push(part.data);
72
- }
73
- }
81
+ const messages = extractMessages(data);
74
82
  clearSurfaces();
75
83
  processMessages(messages);
76
84
  return messages;
@@ -85,59 +93,11 @@ function useA2UIRestaurantClient() {
85
93
  setIsLoading(false);
86
94
  }
87
95
  }, [processMessages, clearSurfaces]);
88
- /**
89
- * Handle A2UI actions (button clicks, form submissions, etc.)
90
- */
91
- const handleAction = useCallback(async (action) => {
92
- try {
93
- setIsLoading(true);
94
- setError(null);
95
- const response = await fetch(A2UI_RESTAURANT_ENDPOINT, {
96
- method: 'POST',
97
- headers: {
98
- 'Content-Type': 'application/json',
99
- },
100
- body: JSON.stringify({
101
- action: action.actionId,
102
- context: action.context,
103
- }),
104
- });
105
- if (!response.ok) {
106
- const errorData = await response.json();
107
- throw new Error(errorData.error || 'Action failed');
108
- }
109
- const data = (await response.json());
110
- if ('error' in data) {
111
- throw new Error(data.error);
112
- }
113
- const messages = [];
114
- for (const item of data) {
115
- const part = item.root || item;
116
- if (part.kind === 'text')
117
- continue;
118
- if (part.data) {
119
- messages.push(part.data);
120
- }
121
- }
122
- clearSurfaces();
123
- processMessages(messages);
124
- }
125
- catch (err) {
126
- const errorMessage = err instanceof Error ? err.message : 'Unknown error';
127
- setError(errorMessage);
128
- console.error('A2UI action error:', err);
129
- }
130
- finally {
131
- setIsLoading(false);
132
- }
133
- }, [processMessages, clearSurfaces]);
134
96
  return {
135
- surfaces,
97
+ getSurfaces,
136
98
  isLoading,
137
99
  error,
138
100
  makeRequest,
139
- handleAction,
140
- sendAction,
141
101
  };
142
102
  }
143
103
  /**
@@ -145,6 +105,8 @@ function useA2UIRestaurantClient() {
145
105
  */
146
106
  function RestaurantSearch({ onSearch, isLoading, defaultValue = 'Top 5 Chinese restaurants in New York', }) {
147
107
  const [inputValue, setInputValue] = useState(defaultValue);
108
+ const { theme, colorMode } = useExampleThemeStore();
109
+ const gradient = getCardGradient(theme, colorMode);
148
110
  const handleSubmit = useCallback((event) => {
149
111
  event.preventDefault();
150
112
  if (inputValue.trim() && !isLoading) {
@@ -163,23 +125,17 @@ function RestaurantSearch({ onSearch, isLoading, defaultValue = 'Top 5 Chinese r
163
125
  width: '100%',
164
126
  height: '200px',
165
127
  borderRadius: '12px',
166
- background: 'linear-gradient(135deg, #117A65 0%, #1ABC9C 100%)',
128
+ background: `linear-gradient(135deg, ${gradient.from} 0%, ${gradient.to} 100%)`,
167
129
  display: 'flex',
168
130
  alignItems: 'center',
169
131
  justifyContent: 'center',
170
132
  marginBottom: 2,
171
- }, children: _jsx(Text, { sx: {
172
- fontSize: '4rem',
173
- }, children: "\uD83C\uDF7D\uFE0F" }) }), _jsx(Text, { as: "h1", sx: {
133
+ }, children: _jsx(Text, { sx: { fontSize: '4rem' }, children: "\uD83C\uDF7D\uFE0F" }) }), _jsx(Text, { as: "h1", sx: {
174
134
  fontSize: '2rem',
175
135
  fontWeight: 'bold',
176
136
  textAlign: 'center',
177
137
  marginBottom: 2,
178
- }, children: "Restaurant Finder" }), _jsx(Text, { sx: {
179
- color: 'fg.muted',
180
- textAlign: 'center',
181
- marginBottom: 3,
182
- }, children: "Powered by A2UI protocol and pydantic-ai" }), _jsx("form", { onSubmit: handleSubmit, style: { width: '100%' }, children: _jsxs(Box, { sx: { display: 'flex', gap: 2 }, children: [_jsx(TextInput, { value: inputValue, onChange: e => setInputValue(e.target.value), placeholder: "Search for restaurants...", disabled: isLoading, sx: { flex: 1 }, block: true }), _jsx(Button, { type: "submit", disabled: isLoading || !inputValue.trim(), children: isLoading ? _jsx(Spinner, { size: "small" }) : 'Search' })] }) })] }));
138
+ }, children: "Restaurant Finder" }), _jsx(Text, { sx: { color: 'fg.muted', textAlign: 'center', marginBottom: 3 }, children: "Powered by A2UI protocol and pydantic-ai" }), _jsx("form", { onSubmit: handleSubmit, style: { width: '100%' }, children: _jsxs(Box, { sx: { display: 'flex', gap: 2 }, children: [_jsx(TextInput, { value: inputValue, onChange: e => setInputValue(e.target.value), placeholder: "Search for restaurants...", disabled: isLoading, sx: { flex: 1 }, block: true }), _jsx(Button, { type: "submit", disabled: isLoading || !inputValue.trim(), children: isLoading ? _jsx(Spinner, { size: "small" }) : 'Search' })] }) })] }));
183
139
  }
184
140
  /**
185
141
  * Loading state component with animated text
@@ -209,8 +165,8 @@ function LoadingState() {
209
165
  /**
210
166
  * Results display component with A2UI renderer
211
167
  */
212
- function ResultsDisplay({ surfaces, onBack, }) {
213
- return (_jsxs(Box, { sx: { padding: 3 }, children: [_jsx(Box, { sx: { display: 'flex', justifyContent: 'flex-start', marginBottom: 3 }, children: _jsx(Button, { variant: "invisible", onClick: onBack, children: "\u2190 New Search" }) }), _jsx(Box, { sx: { display: 'flex', flexDirection: 'column', gap: 3 }, children: Array.from(surfaces.entries()).map(([surfaceId]) => (_jsx(A2UIRenderer, { surfaceId: surfaceId, className: "a2ui-surface" }, surfaceId))) })] }));
168
+ function ResultsDisplay({ surfaceEntries, onBack, }) {
169
+ return (_jsxs(Box, { sx: { padding: 3 }, children: [_jsx(Box, { sx: { display: 'flex', justifyContent: 'flex-start', marginBottom: 3 }, children: _jsx(Button, { variant: "invisible", onClick: onBack, children: "\u2190 New Search" }) }), _jsx(Box, { sx: { display: 'flex', flexDirection: 'column', gap: 3 }, children: surfaceEntries.map(([surfaceId]) => (_jsx(A2UIRenderer, { surfaceId: surfaceId }, surfaceId))) })] }));
214
170
  }
215
171
  /**
216
172
  * Error display component
@@ -226,11 +182,11 @@ function ErrorDisplay({ error, onRetry, }) {
226
182
  }, children: [_jsxs(Text, { sx: { color: 'danger.fg', fontSize: '1.2rem' }, children: ["\u26A0\uFE0F ", error] }), _jsx(Button, { onClick: onRetry, children: "Try Again" })] }));
227
183
  }
228
184
  /**
229
- * Main A2UI Restaurant content component
230
- * (needs to be inside A2UIProvider to use hooks)
185
+ * Main A2UI Restaurant content component.
186
+ * Must be rendered inside A2UIProvider to access hooks.
231
187
  */
232
188
  function A2UIRestaurantContent() {
233
- const { surfaces, isLoading, error, makeRequest } = useA2UIRestaurantClient();
189
+ const { getSurfaces, isLoading, error, makeRequest } = useA2UIRestaurantClient();
234
190
  const [hasData, setHasData] = useState(false);
235
191
  const [lastQuery, setLastQuery] = useState('');
236
192
  const handleSearch = useCallback(async (query) => {
@@ -251,19 +207,18 @@ function A2UIRestaurantContent() {
251
207
  handleSearch(lastQuery);
252
208
  }
253
209
  }, [lastQuery, handleSearch]);
254
- // Show error state
255
210
  if (error && !isLoading) {
256
211
  return _jsx(ErrorDisplay, { error: error, onRetry: handleRetry });
257
212
  }
258
- // Show loading state
259
213
  if (isLoading) {
260
214
  return _jsx(LoadingState, {});
261
215
  }
262
- // Show search or results
263
216
  if (!hasData) {
264
217
  return _jsx(RestaurantSearch, { onSearch: handleSearch, isLoading: isLoading });
265
218
  }
266
- return _jsx(ResultsDisplay, { surfaces: surfaces, onBack: handleBack });
219
+ const surfaces = getSurfaces();
220
+ const surfaceEntries = Array.from(surfaces.entries());
221
+ return _jsx(ResultsDisplay, { surfaceEntries: surfaceEntries, onBack: handleBack });
267
222
  }
268
223
  /**
269
224
  * A2UiRestaurantExample - Main example component
@@ -271,12 +226,22 @@ function A2UIRestaurantContent() {
271
226
  * Demonstrates A2UI protocol integration with pydantic-ai.
272
227
  * The agent generates A2UI JSON messages for restaurant search,
273
228
  * display, and booking functionality.
229
+ *
230
+ * Uses @a2ui/react's two-context architecture:
231
+ * - A2UIProvider wraps the app, receives an onAction callback
232
+ * - useA2UIActions() provides processMessages/clearSurfaces/getSurfaces
233
+ * - A2UIRenderer renders surfaces by ID
274
234
  */
275
235
  const A2UiRestaurantExample = () => {
276
- // Handle A2UI actions globally
277
- const handleAction = useCallback((action) => {
278
- console.log('A2UI Action:', action);
279
- // Actions are handled in the content component
236
+ // Handle A2UI actions (button clicks, form submissions, etc.)
237
+ const handleAction = useCallback((actionMessage) => {
238
+ console.log('A2UI Action:', actionMessage);
239
+ // Send action back to the agent for processing
240
+ fetch(A2UI_RESTAURANT_ENDPOINT, {
241
+ method: 'POST',
242
+ headers: { 'Content-Type': 'application/json' },
243
+ body: JSON.stringify(actionMessage),
244
+ }).catch(err => console.error('Action send error:', err));
280
245
  }, []);
281
246
  return (_jsx(ThemedProvider, { children: _jsx(A2UIProvider, { onAction: handleAction, children: _jsxs(Box, { sx: {
282
247
  display: 'flex',
@@ -294,7 +259,7 @@ const A2UiRestaurantExample = () => {
294
259
  display: 'flex',
295
260
  alignItems: 'center',
296
261
  gap: 2,
297
- }, children: "\uD83E\uDD16 A2UI Restaurant Example" }), _jsx(Text, { sx: { fontSize: '0.875rem', color: 'fg.muted' }, children: "pydantic-ai agent with A2UI protocol rendering" })] }), _jsx(Box, { sx: { flex: 1, padding: 3 }, children: _jsx(A2UIRestaurantContent, {}) }), _jsx(Box, { sx: {
262
+ }, children: "\uD83E\uDD16 A2UI Restaurant Example" }), _jsx(Text, { sx: { fontSize: '0.875rem', color: 'fg.muted' }, children: "pydantic-ai agent with A2UI protocol rendering (@a2ui/react)" })] }), _jsx(Box, { sx: { flex: 1, padding: 3 }, children: _jsx(A2UIRestaurantContent, {}) }), _jsx(Box, { sx: {
298
263
  padding: 2,
299
264
  borderTop: '1px solid',
300
265
  borderColor: 'border.default',
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A2UiViewerExample
3
+ *
4
+ * Demonstrates the standalone A2UIViewer component from @a2ui/react.
5
+ * Unlike A2UIProvider + A2UIRenderer (which require context), A2UIViewer
6
+ * is a self-contained component that takes component definitions directly.
7
+ *
8
+ * Features:
9
+ * - Standalone rendering — no A2UIProvider needed
10
+ * - Multiple pre-built A2UI scenes (recipe card, booking form, dashboard)
11
+ * - Shows how to use A2UIViewer for embedding A2UI in any React context
12
+ *
13
+ * No backend required — uses static ComponentInstance[] arrays.
14
+ */
15
+ import React from 'react';
16
+ /**
17
+ * A2UiViewerExample — Standalone A2UIViewer with multiple scenes.
18
+ * Demonstrates embedding A2UI components without a Provider context.
19
+ */
20
+ declare const A2UiViewerExample: React.FC;
21
+ export default A2UiViewerExample;