@datalayer/agent-runtimes 0.0.2

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 (571) hide show
  1. package/LICENSE +32 -0
  2. package/README.md +56 -0
  3. package/lib/App.css +47 -0
  4. package/lib/App.d.ts +3 -0
  5. package/lib/App.js +18 -0
  6. package/lib/components/chat/components/AgentDetails.d.ts +19 -0
  7. package/lib/components/chat/components/AgentDetails.js +170 -0
  8. package/lib/components/chat/components/Chat.d.ts +105 -0
  9. package/lib/components/chat/components/Chat.js +275 -0
  10. package/lib/components/chat/components/ChatFloating.d.ts +146 -0
  11. package/lib/components/chat/components/ChatFloating.js +381 -0
  12. package/lib/components/chat/components/ChatInline.d.ts +42 -0
  13. package/lib/components/chat/components/ChatInline.js +327 -0
  14. package/lib/components/chat/components/ChatPopupStandalone.d.ts +110 -0
  15. package/lib/components/chat/components/ChatPopupStandalone.js +422 -0
  16. package/lib/components/chat/components/ChatSidebar.d.ts +78 -0
  17. package/lib/components/chat/components/ChatSidebar.js +224 -0
  18. package/lib/components/chat/components/ChatStandalone.d.ts +105 -0
  19. package/lib/components/chat/components/ChatStandalone.js +320 -0
  20. package/lib/components/chat/components/base/ChatBase.d.ts +285 -0
  21. package/lib/components/chat/components/base/ChatBase.js +1192 -0
  22. package/lib/components/chat/components/display/ToolCallDisplay.d.ts +26 -0
  23. package/lib/components/chat/components/display/ToolCallDisplay.js +225 -0
  24. package/lib/components/chat/components/display/index.d.ts +6 -0
  25. package/lib/components/chat/components/display/index.js +10 -0
  26. package/lib/components/chat/components/elements/ChatHeader.d.ts +43 -0
  27. package/lib/components/chat/components/elements/ChatHeader.js +67 -0
  28. package/lib/components/chat/components/elements/ChatInputPrompt.d.ts +26 -0
  29. package/lib/components/chat/components/elements/ChatInputPrompt.js +145 -0
  30. package/lib/components/chat/components/elements/ChatMessages.d.ts +36 -0
  31. package/lib/components/chat/components/elements/ChatMessages.js +195 -0
  32. package/lib/components/chat/components/elements/FloatingBrandButton.d.ts +34 -0
  33. package/lib/components/chat/components/elements/FloatingBrandButton.js +88 -0
  34. package/lib/components/chat/components/elements/MessagePart.d.ts +50 -0
  35. package/lib/components/chat/components/elements/MessagePart.js +48 -0
  36. package/lib/components/chat/components/elements/PoweredByTag.d.ts +26 -0
  37. package/lib/components/chat/components/elements/PoweredByTag.js +33 -0
  38. package/lib/components/chat/components/elements/ToolApprovalDialog.d.ts +42 -0
  39. package/lib/components/chat/components/elements/ToolApprovalDialog.js +96 -0
  40. package/lib/components/chat/components/index.d.ts +21 -0
  41. package/lib/components/chat/components/index.js +34 -0
  42. package/lib/components/chat/components/parts/DynamicToolPart.d.ts +20 -0
  43. package/lib/components/chat/components/parts/DynamicToolPart.js +13 -0
  44. package/lib/components/chat/components/parts/ReasoningPart.d.ts +17 -0
  45. package/lib/components/chat/components/parts/ReasoningPart.js +69 -0
  46. package/lib/components/chat/components/parts/TextPart.d.ts +28 -0
  47. package/lib/components/chat/components/parts/TextPart.js +103 -0
  48. package/lib/components/chat/components/parts/ToolPart.d.ts +17 -0
  49. package/lib/components/chat/components/parts/ToolPart.js +163 -0
  50. package/lib/components/chat/components/parts/index.d.ts +9 -0
  51. package/lib/components/chat/components/parts/index.js +13 -0
  52. package/lib/components/chat/extensions/A2UIExtension.d.ts +87 -0
  53. package/lib/components/chat/extensions/A2UIExtension.js +312 -0
  54. package/lib/components/chat/extensions/ExtensionRegistry.d.ts +66 -0
  55. package/lib/components/chat/extensions/ExtensionRegistry.js +128 -0
  56. package/lib/components/chat/extensions/MCPUIExtension.d.ts +77 -0
  57. package/lib/components/chat/extensions/MCPUIExtension.js +212 -0
  58. package/lib/components/chat/extensions/index.d.ts +9 -0
  59. package/lib/components/chat/extensions/index.js +12 -0
  60. package/lib/components/chat/handler.d.ts +20 -0
  61. package/lib/components/chat/handler.js +56 -0
  62. package/lib/components/chat/index.d.ts +61 -0
  63. package/lib/components/chat/index.js +76 -0
  64. package/lib/components/chat/inference/BaseInferenceProvider.d.ts +57 -0
  65. package/lib/components/chat/inference/BaseInferenceProvider.js +69 -0
  66. package/lib/components/chat/inference/DatalayerInferenceProvider.d.ts +83 -0
  67. package/lib/components/chat/inference/DatalayerInferenceProvider.js +305 -0
  68. package/lib/components/chat/inference/SelfHostedInferenceProvider.d.ts +54 -0
  69. package/lib/components/chat/inference/SelfHostedInferenceProvider.js +246 -0
  70. package/lib/components/chat/inference/index.d.ts +9 -0
  71. package/lib/components/chat/inference/index.js +12 -0
  72. package/lib/components/chat/middleware/MiddlewarePipeline.d.ts +118 -0
  73. package/lib/components/chat/middleware/MiddlewarePipeline.js +255 -0
  74. package/lib/components/chat/middleware/index.d.ts +7 -0
  75. package/lib/components/chat/middleware/index.js +10 -0
  76. package/lib/components/chat/protocols/A2AAdapter.d.ts +79 -0
  77. package/lib/components/chat/protocols/A2AAdapter.js +388 -0
  78. package/lib/components/chat/protocols/ACPAdapter.d.ts +161 -0
  79. package/lib/components/chat/protocols/ACPAdapter.js +504 -0
  80. package/lib/components/chat/protocols/AGUIAdapter.d.ts +82 -0
  81. package/lib/components/chat/protocols/AGUIAdapter.js +518 -0
  82. package/lib/components/chat/protocols/BaseProtocolAdapter.d.ts +75 -0
  83. package/lib/components/chat/protocols/BaseProtocolAdapter.js +119 -0
  84. package/lib/components/chat/protocols/VercelAIAdapter.d.ts +77 -0
  85. package/lib/components/chat/protocols/VercelAIAdapter.js +252 -0
  86. package/lib/components/chat/protocols/index.d.ts +11 -0
  87. package/lib/components/chat/protocols/index.js +14 -0
  88. package/lib/components/chat/store/chatStore.d.ts +158 -0
  89. package/lib/components/chat/store/chatStore.js +313 -0
  90. package/lib/components/chat/store/index.d.ts +6 -0
  91. package/lib/components/chat/store/index.js +10 -0
  92. package/lib/components/chat/tools/ToolExecutor.d.ts +49 -0
  93. package/lib/components/chat/tools/ToolExecutor.js +151 -0
  94. package/lib/components/chat/tools/index.d.ts +8 -0
  95. package/lib/components/chat/tools/index.js +11 -0
  96. package/lib/components/chat/types/extension.d.ts +181 -0
  97. package/lib/components/chat/types/extension.js +46 -0
  98. package/lib/components/chat/types/index.d.ts +11 -0
  99. package/lib/components/chat/types/index.js +16 -0
  100. package/lib/components/chat/types/inference.d.ts +117 -0
  101. package/lib/components/chat/types/inference.js +5 -0
  102. package/lib/components/chat/types/message.d.ts +117 -0
  103. package/lib/components/chat/types/message.js +50 -0
  104. package/lib/components/chat/types/middleware.d.ts +153 -0
  105. package/lib/components/chat/types/middleware.js +32 -0
  106. package/lib/components/chat/types/protocol.d.ts +209 -0
  107. package/lib/components/chat/types/protocol.js +5 -0
  108. package/lib/components/chat/types/tool.d.ts +140 -0
  109. package/lib/components/chat/types/tool.js +23 -0
  110. package/lib/components/index.d.ts +1 -0
  111. package/lib/components/index.js +6 -0
  112. package/lib/components/sparklines/Sparklines.d.ts +16 -0
  113. package/lib/components/sparklines/Sparklines.js +65 -0
  114. package/lib/components/sparklines/SparklinesLine.d.ts +8 -0
  115. package/lib/components/sparklines/SparklinesLine.js +37 -0
  116. package/lib/components/sparklines/dataProcessing.d.ts +25 -0
  117. package/lib/components/sparklines/dataProcessing.js +35 -0
  118. package/lib/components/sparklines/index.d.ts +4 -0
  119. package/lib/components/sparklines/index.js +7 -0
  120. package/lib/components/sparklines/types.d.ts +36 -0
  121. package/lib/components/sparklines/types.js +5 -0
  122. package/lib/components/ui/accordion.d.ts +7 -0
  123. package/lib/components/ui/accordion.js +22 -0
  124. package/lib/components/ui/alert-dialog.d.ts +14 -0
  125. package/lib/components/ui/alert-dialog.js +43 -0
  126. package/lib/components/ui/alert.d.ts +9 -0
  127. package/lib/components/ui/alert.js +24 -0
  128. package/lib/components/ui/aspect-ratio.d.ts +3 -0
  129. package/lib/components/ui/aspect-ratio.js +11 -0
  130. package/lib/components/ui/avatar.d.ts +6 -0
  131. package/lib/components/ui/avatar.js +18 -0
  132. package/lib/components/ui/badge.d.ts +9 -0
  133. package/lib/components/ui/badge.js +22 -0
  134. package/lib/components/ui/breadcrumb.d.ts +11 -0
  135. package/lib/components/ui/breadcrumb.js +27 -0
  136. package/lib/components/ui/button-group.d.ts +11 -0
  137. package/lib/components/ui/button-group.js +31 -0
  138. package/lib/components/ui/button.d.ts +13 -0
  139. package/lib/components/ui/button.js +39 -0
  140. package/lib/components/ui/calendar.d.ts +8 -0
  141. package/lib/components/ui/calendar.js +80 -0
  142. package/lib/components/ui/card.d.ts +9 -0
  143. package/lib/components/ui/card.js +24 -0
  144. package/lib/components/ui/carousel.d.ts +19 -0
  145. package/lib/components/ui/carousel.js +95 -0
  146. package/lib/components/ui/chart.d.ts +53 -0
  147. package/lib/components/ui/chart.js +136 -0
  148. package/lib/components/ui/checkbox.d.ts +4 -0
  149. package/lib/components/ui/checkbox.js +13 -0
  150. package/lib/components/ui/collapsible.d.ts +5 -0
  151. package/lib/components/ui/collapsible.js +17 -0
  152. package/lib/components/ui/command.d.ts +18 -0
  153. package/lib/components/ui/command.js +38 -0
  154. package/lib/components/ui/context-menu.d.ts +25 -0
  155. package/lib/components/ui/context-menu.js +55 -0
  156. package/lib/components/ui/dialog.d.ts +15 -0
  157. package/lib/components/ui/dialog.js +40 -0
  158. package/lib/components/ui/drawer.d.ts +13 -0
  159. package/lib/components/ui/drawer.js +39 -0
  160. package/lib/components/ui/dropdown-menu.d.ts +25 -0
  161. package/lib/components/ui/dropdown-menu.js +55 -0
  162. package/lib/components/ui/empty.d.ts +11 -0
  163. package/lib/components/ui/empty.js +37 -0
  164. package/lib/components/ui/field.d.ts +24 -0
  165. package/lib/components/ui/field.js +80 -0
  166. package/lib/components/ui/form.d.ts +24 -0
  167. package/lib/components/ui/form.js +63 -0
  168. package/lib/components/ui/hover-card.d.ts +6 -0
  169. package/lib/components/ui/hover-card.js +18 -0
  170. package/lib/components/ui/input-group.d.ts +19 -0
  171. package/lib/components/ui/input-group.js +69 -0
  172. package/lib/components/ui/input-otp.d.ts +11 -0
  173. package/lib/components/ui/input-otp.js +25 -0
  174. package/lib/components/ui/input.d.ts +3 -0
  175. package/lib/components/ui/input.js +6 -0
  176. package/lib/components/ui/item.d.ts +23 -0
  177. package/lib/components/ui/item.js +66 -0
  178. package/lib/components/ui/kbd.d.ts +3 -0
  179. package/lib/components/ui/kbd.js +13 -0
  180. package/lib/components/ui/label.d.ts +4 -0
  181. package/lib/components/ui/label.js +12 -0
  182. package/lib/components/ui/menubar.d.ts +26 -0
  183. package/lib/components/ui/menubar.js +58 -0
  184. package/lib/components/ui/navigation-menu.d.ts +14 -0
  185. package/lib/components/ui/navigation-menu.js +31 -0
  186. package/lib/components/ui/pagination.d.ts +13 -0
  187. package/lib/components/ui/pagination.js +29 -0
  188. package/lib/components/ui/popover.d.ts +7 -0
  189. package/lib/components/ui/popover.js +21 -0
  190. package/lib/components/ui/progress.d.ts +4 -0
  191. package/lib/components/ui/progress.js +12 -0
  192. package/lib/components/ui/radio-group.d.ts +5 -0
  193. package/lib/components/ui/radio-group.js +16 -0
  194. package/lib/components/ui/resizable.d.ts +8 -0
  195. package/lib/components/ui/resizable.js +19 -0
  196. package/lib/components/ui/scroll-area.d.ts +5 -0
  197. package/lib/components/ui/scroll-area.js +17 -0
  198. package/lib/components/ui/select.d.ts +15 -0
  199. package/lib/components/ui/select.js +42 -0
  200. package/lib/components/ui/separator.d.ts +4 -0
  201. package/lib/components/ui/separator.js +12 -0
  202. package/lib/components/ui/sheet.d.ts +13 -0
  203. package/lib/components/ui/sheet.js +44 -0
  204. package/lib/components/ui/sidebar.d.ts +69 -0
  205. package/lib/components/ui/sidebar.js +216 -0
  206. package/lib/components/ui/skeleton.d.ts +2 -0
  207. package/lib/components/ui/skeleton.js +10 -0
  208. package/lib/components/ui/slider.d.ts +4 -0
  209. package/lib/components/ui/slider.js +18 -0
  210. package/lib/components/ui/sonner.d.ts +3 -0
  211. package/lib/components/ui/sonner.js +25 -0
  212. package/lib/components/ui/spinner.d.ts +2 -0
  213. package/lib/components/ui/spinner.js +11 -0
  214. package/lib/components/ui/switch.d.ts +4 -0
  215. package/lib/components/ui/switch.js +12 -0
  216. package/lib/components/ui/table.d.ts +10 -0
  217. package/lib/components/ui/table.js +32 -0
  218. package/lib/components/ui/tabs.d.ts +7 -0
  219. package/lib/components/ui/tabs.js +21 -0
  220. package/lib/components/ui/textarea.d.ts +3 -0
  221. package/lib/components/ui/textarea.js +6 -0
  222. package/lib/components/ui/toast.d.ts +15 -0
  223. package/lib/components/ui/toast.js +38 -0
  224. package/lib/components/ui/toaster.d.ts +1 -0
  225. package/lib/components/ui/toaster.js +14 -0
  226. package/lib/components/ui/toggle-group.d.ts +9 -0
  227. package/lib/components/ui/toggle-group.js +26 -0
  228. package/lib/components/ui/toggle.d.ts +9 -0
  229. package/lib/components/ui/toggle.js +30 -0
  230. package/lib/components/ui/tooltip.d.ts +7 -0
  231. package/lib/components/ui/tooltip.js +21 -0
  232. package/lib/components/vercel-ai-elements/artifact.d.ts +23 -0
  233. package/lib/components/vercel-ai-elements/artifact.js +24 -0
  234. package/lib/components/vercel-ai-elements/code-block.d.ts +17 -0
  235. package/lib/components/vercel-ai-elements/code-block.js +94 -0
  236. package/lib/components/vercel-ai-elements/conversation.d.ts +15 -0
  237. package/lib/components/vercel-ai-elements/conversation.js +21 -0
  238. package/lib/components/vercel-ai-elements/loader.d.ts +5 -0
  239. package/lib/components/vercel-ai-elements/loader.js +8 -0
  240. package/lib/components/vercel-ai-elements/message.d.ts +46 -0
  241. package/lib/components/vercel-ai-elements/message.js +109 -0
  242. package/lib/components/vercel-ai-elements/model-selector.d.ts +35 -0
  243. package/lib/components/vercel-ai-elements/model-selector.js +22 -0
  244. package/lib/components/vercel-ai-elements/prompt-input.d.ts +195 -0
  245. package/lib/components/vercel-ai-elements/prompt-input.js +589 -0
  246. package/lib/components/vercel-ai-elements/reasoning.d.ts +26 -0
  247. package/lib/components/vercel-ai-elements/reasoning.js +80 -0
  248. package/lib/components/vercel-ai-elements/shimmer.d.ts +9 -0
  249. package/lib/components/vercel-ai-elements/shimmer.js +22 -0
  250. package/lib/components/vercel-ai-elements/sources.d.ts +12 -0
  251. package/lib/components/vercel-ai-elements/sources.js +13 -0
  252. package/lib/components/vercel-ai-elements/suggestion.d.ts +10 -0
  253. package/lib/components/vercel-ai-elements/suggestion.js +16 -0
  254. package/lib/components/vercel-ai-elements/tool.d.ts +23 -0
  255. package/lib/components/vercel-ai-elements/tool.js +52 -0
  256. package/lib/examples/A2UiRestaurantExample.d.ts +25 -0
  257. package/lib/examples/A2UiRestaurantExample.js +305 -0
  258. package/lib/examples/AgUiAgenticExample.d.ts +25 -0
  259. package/lib/examples/AgUiAgenticExample.js +63 -0
  260. package/lib/examples/AgUiBackendToolRenderingExample.d.ts +30 -0
  261. package/lib/examples/AgUiBackendToolRenderingExample.js +103 -0
  262. package/lib/examples/AgUiHaikuGenUIExample.d.ts +44 -0
  263. package/lib/examples/AgUiHaikuGenUIExample.js +151 -0
  264. package/lib/examples/AgUiHumanInTheLoopExample.d.ts +26 -0
  265. package/lib/examples/AgUiHumanInTheLoopExample.js +220 -0
  266. package/lib/examples/AgUiSharedStateExample.d.ts +25 -0
  267. package/lib/examples/AgUiSharedStateExample.js +181 -0
  268. package/lib/examples/AgUiToolsBasedGenUIExample.d.ts +25 -0
  269. package/lib/examples/AgUiToolsBasedGenUIExample.js +257 -0
  270. package/lib/examples/AgentRuntimeCustomExample.d.ts +9 -0
  271. package/lib/examples/AgentRuntimeCustomExample.js +68 -0
  272. package/lib/examples/AgentRuntimeLexical2Example.d.ts +42 -0
  273. package/lib/examples/AgentRuntimeLexical2Example.js +236 -0
  274. package/lib/examples/AgentRuntimeLexicalExample.d.ts +36 -0
  275. package/lib/examples/AgentRuntimeLexicalExample.js +260 -0
  276. package/lib/examples/AgentRuntimeLexicalSidebarExample.d.ts +41 -0
  277. package/lib/examples/AgentRuntimeLexicalSidebarExample.js +166 -0
  278. package/lib/examples/AgentRuntimeNotebookExample.d.ts +9 -0
  279. package/lib/examples/AgentRuntimeNotebookExample.js +148 -0
  280. package/lib/examples/AgentRuntimeNotebookSidebarExample.d.ts +13 -0
  281. package/lib/examples/AgentRuntimeNotebookSidebarExample.js +121 -0
  282. package/lib/examples/AgentRuntimeStandaloneExample.d.ts +21 -0
  283. package/lib/examples/AgentRuntimeStandaloneExample.js +158 -0
  284. package/lib/examples/AgentSpaceFormExample.d.ts +22 -0
  285. package/lib/examples/AgentSpaceFormExample.js +296 -0
  286. package/lib/examples/AgentSpaceHomeExample.d.ts +8 -0
  287. package/lib/examples/AgentSpaceHomeExample.js +171 -0
  288. package/lib/examples/CopilotKitLexicalExample.d.ts +38 -0
  289. package/lib/examples/CopilotKitLexicalExample.js +161 -0
  290. package/lib/examples/CopilotKitNotebookExample.d.ts +11 -0
  291. package/lib/examples/CopilotKitNotebookExample.js +70 -0
  292. package/lib/examples/DatalayerNotebookExample.d.ts +16 -0
  293. package/lib/examples/DatalayerNotebookExample.js +99 -0
  294. package/lib/examples/JupyterCellExample.d.ts +6 -0
  295. package/lib/examples/JupyterCellExample.js +19 -0
  296. package/lib/examples/JupyterNotebookExample.d.ts +6 -0
  297. package/lib/examples/JupyterNotebookExample.js +21 -0
  298. package/lib/examples/ag-ui/haiku/HaikuDisplay.d.ts +18 -0
  299. package/lib/examples/ag-ui/haiku/HaikuDisplay.js +110 -0
  300. package/lib/examples/ag-ui/haiku/InlineHaikuCard.d.ts +39 -0
  301. package/lib/examples/ag-ui/haiku/InlineHaikuCard.js +117 -0
  302. package/lib/examples/ag-ui/haiku/index.d.ts +11 -0
  303. package/lib/examples/ag-ui/haiku/index.js +15 -0
  304. package/lib/examples/ag-ui/index.d.ts +10 -0
  305. package/lib/examples/ag-ui/index.js +16 -0
  306. package/lib/examples/ag-ui/weather/InlineWeatherCard.d.ts +43 -0
  307. package/lib/examples/ag-ui/weather/InlineWeatherCard.js +180 -0
  308. package/lib/examples/ag-ui/weather/index.d.ts +9 -0
  309. package/lib/examples/ag-ui/weather/index.js +13 -0
  310. package/lib/examples/components/AgentConfiguration.d.ts +50 -0
  311. package/lib/examples/components/AgentConfiguration.js +115 -0
  312. package/lib/examples/components/AgentsDataTable.d.ts +13 -0
  313. package/lib/examples/components/AgentsDataTable.js +74 -0
  314. package/lib/examples/components/FooterMetrics.d.ts +12 -0
  315. package/lib/examples/components/FooterMetrics.js +17 -0
  316. package/lib/examples/components/Header.d.ts +27 -0
  317. package/lib/examples/components/Header.js +294 -0
  318. package/lib/examples/components/HeaderControls.d.ts +11 -0
  319. package/lib/examples/components/HeaderControls.js +24 -0
  320. package/lib/examples/components/LexicalEditor.d.ts +27 -0
  321. package/lib/examples/components/LexicalEditor.js +118 -0
  322. package/lib/examples/components/MainContent.d.ts +19 -0
  323. package/lib/examples/components/MainContent.js +68 -0
  324. package/lib/examples/components/MockFileBrowser.d.ts +12 -0
  325. package/lib/examples/components/MockFileBrowser.js +131 -0
  326. package/lib/examples/components/Rating.d.ts +14 -0
  327. package/lib/examples/components/Rating.js +12 -0
  328. package/lib/examples/components/SessionTabs.d.ts +21 -0
  329. package/lib/examples/components/SessionTabs.js +11 -0
  330. package/lib/examples/components/TimeTravel.d.ts +15 -0
  331. package/lib/examples/components/TimeTravel.js +23 -0
  332. package/lib/examples/components/index.d.ts +11 -0
  333. package/lib/examples/components/index.js +14 -0
  334. package/lib/examples/example-selector.d.ts +22 -0
  335. package/lib/examples/example-selector.js +62 -0
  336. package/lib/examples/index.d.ts +21 -0
  337. package/lib/examples/index.js +25 -0
  338. package/lib/examples/lexical/editorConfig.d.ts +76 -0
  339. package/lib/examples/lexical/editorConfig.js +55 -0
  340. package/lib/examples/lexical/lexical-theme.css +436 -0
  341. package/lib/examples/lexical/theme.d.ts +61 -0
  342. package/lib/examples/lexical/theme.js +72 -0
  343. package/lib/examples/main.d.ts +2 -0
  344. package/lib/examples/main.js +334 -0
  345. package/lib/examples/stores/agents/earthquake-detector.ipynb.json +111 -0
  346. package/lib/examples/stores/agents/earthquake-detector.json +13 -0
  347. package/lib/examples/stores/agents/earthquake-detector.lexical.json +2988 -0
  348. package/lib/examples/stores/agents/sales-forecaster.ipynb.json +111 -0
  349. package/lib/examples/stores/agents/sales-forecaster.json +13 -0
  350. package/lib/examples/stores/agents/sales-forecaster.lexical.json +2988 -0
  351. package/lib/examples/stores/agents/social-post-generator.ipynb.json +111 -0
  352. package/lib/examples/stores/agents/social-post-generator.json +13 -0
  353. package/lib/examples/stores/agents/social-post-generator.lexical.json +2988 -0
  354. package/lib/examples/stores/agents/stock-market.ipynb.json +56 -0
  355. package/lib/examples/stores/agents/stock-market.json +13 -0
  356. package/lib/examples/stores/agents/stock-market.lexical.json +1026 -0
  357. package/lib/examples/stores/examplesStore.d.ts +26 -0
  358. package/lib/examples/stores/examplesStore.js +60 -0
  359. package/lib/examples/stores/notebooks/Empty.ipynb.json +33 -0
  360. package/lib/examples/stores/notebooks/IPyWidgetsExample.ipynb.json +101 -0
  361. package/lib/examples/stores/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
  362. package/lib/examples/stores/notebooks/Lite.ipynb.json +128 -0
  363. package/lib/examples/stores/notebooks/Matplotlib.ipynb.json +137 -0
  364. package/lib/examples/stores/notebooks/NotebookExample1.ipynb.json +126 -0
  365. package/lib/examples/stores/notebooks/NotebookExample2.ipynb.json +48 -0
  366. package/lib/examples/stores/notebooks/NotebookOutputs.ipynb.json +49 -0
  367. package/lib/examples/stores/notebooks/NotebookToCExample.ipynb.json +102 -0
  368. package/lib/examples/stores/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
  369. package/lib/examples/stores/notebooks/OutputIPyWidgetsExample.js +153 -0
  370. package/lib/examples/stores/notebooks/PyGWalker.ipynb.json +55 -0
  371. package/lib/examples/vercel-ai-elements/VercelAiElementsShowcase.d.ts +12 -0
  372. package/lib/examples/vercel-ai-elements/VercelAiElementsShowcase.js +69 -0
  373. package/lib/examples/vercel-ai-elements/components/ArtifactShowcase.d.ts +1 -0
  374. package/lib/examples/vercel-ai-elements/components/ArtifactShowcase.js +85 -0
  375. package/lib/examples/vercel-ai-elements/components/CodeBlockShowcase.d.ts +1 -0
  376. package/lib/examples/vercel-ai-elements/components/CodeBlockShowcase.js +62 -0
  377. package/lib/examples/vercel-ai-elements/components/ConversationShowcase.d.ts +1 -0
  378. package/lib/examples/vercel-ai-elements/components/ConversationShowcase.js +51 -0
  379. package/lib/examples/vercel-ai-elements/components/LoaderShowcase.d.ts +1 -0
  380. package/lib/examples/vercel-ai-elements/components/LoaderShowcase.js +9 -0
  381. package/lib/examples/vercel-ai-elements/components/MessageShowcase.d.ts +1 -0
  382. package/lib/examples/vercel-ai-elements/components/MessageShowcase.js +56 -0
  383. package/lib/examples/vercel-ai-elements/components/ModelSelectorShowcase.d.ts +1 -0
  384. package/lib/examples/vercel-ai-elements/components/ModelSelectorShowcase.js +50 -0
  385. package/lib/examples/vercel-ai-elements/components/PromptInputShowcase.d.ts +1 -0
  386. package/lib/examples/vercel-ai-elements/components/PromptInputShowcase.js +16 -0
  387. package/lib/examples/vercel-ai-elements/components/ReasoningShowcase.d.ts +1 -0
  388. package/lib/examples/vercel-ai-elements/components/ReasoningShowcase.js +72 -0
  389. package/lib/examples/vercel-ai-elements/components/ShimmerShowcase.d.ts +1 -0
  390. package/lib/examples/vercel-ai-elements/components/ShimmerShowcase.js +9 -0
  391. package/lib/examples/vercel-ai-elements/components/SourcesShowcase.d.ts +1 -0
  392. package/lib/examples/vercel-ai-elements/components/SourcesShowcase.js +43 -0
  393. package/lib/examples/vercel-ai-elements/components/SuggestionShowcase.d.ts +1 -0
  394. package/lib/examples/vercel-ai-elements/components/SuggestionShowcase.js +31 -0
  395. package/lib/examples/vercel-ai-elements/components/ToolShowcase.d.ts +1 -0
  396. package/lib/examples/vercel-ai-elements/components/ToolShowcase.js +54 -0
  397. package/lib/examples/vercel-ai-elements/index.d.ts +13 -0
  398. package/lib/examples/vercel-ai-elements/index.js +17 -0
  399. package/lib/examples/vercel-ai-elements/main.d.ts +1 -0
  400. package/lib/examples/vercel-ai-elements/main.js +9 -0
  401. package/lib/examples/vercel-ai-elements/showcase.css +128 -0
  402. package/lib/hooks/index.d.ts +68 -0
  403. package/lib/hooks/index.js +81 -0
  404. package/lib/hooks/useA2A.d.ts +75 -0
  405. package/lib/hooks/useA2A.js +368 -0
  406. package/lib/hooks/useAGUI.d.ts +63 -0
  407. package/lib/hooks/useAGUI.js +162 -0
  408. package/lib/hooks/useAcp.d.ts +121 -0
  409. package/lib/hooks/useAcp.js +459 -0
  410. package/lib/hooks/useAgents.d.ts +13 -0
  411. package/lib/hooks/useAgents.js +71 -0
  412. package/lib/hooks/useChat.d.ts +62 -0
  413. package/lib/hooks/useChat.js +363 -0
  414. package/lib/hooks/useKeyboardShortcuts.d.ts +47 -0
  415. package/lib/hooks/useKeyboardShortcuts.js +153 -0
  416. package/lib/hooks/useMobile.d.ts +1 -0
  417. package/lib/hooks/useMobile.js +19 -0
  418. package/lib/hooks/useNotebookAIAgent.d.ts +8 -0
  419. package/lib/hooks/useNotebookAIAgent.js +56 -0
  420. package/lib/hooks/useToast.d.ts +44 -0
  421. package/lib/hooks/useToast.js +128 -0
  422. package/lib/hooks/useTools.d.ts +107 -0
  423. package/lib/hooks/useTools.js +130 -0
  424. package/lib/hooks/useVercelChat.d.ts +45 -0
  425. package/lib/hooks/useVercelChat.js +62 -0
  426. package/lib/index.css +73 -0
  427. package/lib/index.d.ts +1 -0
  428. package/lib/index.js +5 -0
  429. package/lib/lexical/ChatInlinePlugin.d.ts +21 -0
  430. package/lib/lexical/ChatInlinePlugin.js +379 -0
  431. package/lib/lexical/index.d.ts +6 -0
  432. package/lib/lexical/index.js +10 -0
  433. package/lib/lib/utils.d.ts +2 -0
  434. package/lib/lib/utils.js +9 -0
  435. package/lib/main.d.ts +1 -0
  436. package/lib/main.js +12 -0
  437. package/lib/models/AIAgent.d.ts +17 -0
  438. package/lib/models/AIAgent.js +5 -0
  439. package/lib/models/index.d.ts +1 -0
  440. package/lib/models/index.js +5 -0
  441. package/lib/renderers/a2ui/components/A2UIRenderer.d.ts +7 -0
  442. package/lib/renderers/a2ui/components/A2UIRenderer.js +102 -0
  443. package/lib/renderers/a2ui/components/SurfaceRenderer.d.ts +7 -0
  444. package/lib/renderers/a2ui/components/SurfaceRenderer.js +101 -0
  445. package/lib/renderers/a2ui/components/content/AudioPlayer.d.ts +9 -0
  446. package/lib/renderers/a2ui/components/content/AudioPlayer.js +38 -0
  447. package/lib/renderers/a2ui/components/content/Divider.d.ts +9 -0
  448. package/lib/renderers/a2ui/components/content/Divider.js +35 -0
  449. package/lib/renderers/a2ui/components/content/Icon.d.ts +9 -0
  450. package/lib/renderers/a2ui/components/content/Icon.js +110 -0
  451. package/lib/renderers/a2ui/components/content/Image.d.ts +9 -0
  452. package/lib/renderers/a2ui/components/content/Image.js +61 -0
  453. package/lib/renderers/a2ui/components/content/Text.d.ts +9 -0
  454. package/lib/renderers/a2ui/components/content/Text.js +64 -0
  455. package/lib/renderers/a2ui/components/content/Video.d.ts +9 -0
  456. package/lib/renderers/a2ui/components/content/Video.js +37 -0
  457. package/lib/renderers/a2ui/components/content/index.d.ts +6 -0
  458. package/lib/renderers/a2ui/components/content/index.js +25 -0
  459. package/lib/renderers/a2ui/components/index.d.ts +5 -0
  460. package/lib/renderers/a2ui/components/index.js +24 -0
  461. package/lib/renderers/a2ui/components/interactive/Button.d.ts +11 -0
  462. package/lib/renderers/a2ui/components/interactive/Button.js +71 -0
  463. package/lib/renderers/a2ui/components/interactive/CheckBox.d.ts +9 -0
  464. package/lib/renderers/a2ui/components/interactive/CheckBox.js +48 -0
  465. package/lib/renderers/a2ui/components/interactive/DateTimeInput.d.ts +9 -0
  466. package/lib/renderers/a2ui/components/interactive/DateTimeInput.js +62 -0
  467. package/lib/renderers/a2ui/components/interactive/MultipleChoice.d.ts +9 -0
  468. package/lib/renderers/a2ui/components/interactive/MultipleChoice.js +73 -0
  469. package/lib/renderers/a2ui/components/interactive/Slider.d.ts +9 -0
  470. package/lib/renderers/a2ui/components/interactive/Slider.js +53 -0
  471. package/lib/renderers/a2ui/components/interactive/TextField.d.ts +9 -0
  472. package/lib/renderers/a2ui/components/interactive/TextField.js +72 -0
  473. package/lib/renderers/a2ui/components/interactive/index.d.ts +6 -0
  474. package/lib/renderers/a2ui/components/interactive/index.js +25 -0
  475. package/lib/renderers/a2ui/components/layout/Card.d.ts +11 -0
  476. package/lib/renderers/a2ui/components/layout/Card.js +30 -0
  477. package/lib/renderers/a2ui/components/layout/Column.d.ts +11 -0
  478. package/lib/renderers/a2ui/components/layout/Column.js +65 -0
  479. package/lib/renderers/a2ui/components/layout/List.d.ts +11 -0
  480. package/lib/renderers/a2ui/components/layout/List.js +55 -0
  481. package/lib/renderers/a2ui/components/layout/Modal.d.ts +11 -0
  482. package/lib/renderers/a2ui/components/layout/Modal.js +58 -0
  483. package/lib/renderers/a2ui/components/layout/Row.d.ts +11 -0
  484. package/lib/renderers/a2ui/components/layout/Row.js +65 -0
  485. package/lib/renderers/a2ui/components/layout/Tabs.d.ts +11 -0
  486. package/lib/renderers/a2ui/components/layout/Tabs.js +48 -0
  487. package/lib/renderers/a2ui/components/layout/index.d.ts +6 -0
  488. package/lib/renderers/a2ui/components/layout/index.js +25 -0
  489. package/lib/renderers/a2ui/context/A2UIContext.d.ts +17 -0
  490. package/lib/renderers/a2ui/context/A2UIContext.js +54 -0
  491. package/lib/renderers/a2ui/context/ThemeContext.d.ts +20 -0
  492. package/lib/renderers/a2ui/context/ThemeContext.js +333 -0
  493. package/lib/renderers/a2ui/hooks/useA2UI.d.ts +36 -0
  494. package/lib/renderers/a2ui/hooks/useA2UI.js +62 -0
  495. package/lib/renderers/a2ui/hooks/useDataBinding.d.ts +8 -0
  496. package/lib/renderers/a2ui/hooks/useDataBinding.js +83 -0
  497. package/lib/renderers/a2ui/index.d.ts +9 -0
  498. package/lib/renderers/a2ui/index.js +28 -0
  499. package/lib/renderers/a2ui/lib/utils.d.ts +11 -0
  500. package/lib/renderers/a2ui/lib/utils.js +38 -0
  501. package/lib/renderers/a2ui/types/index.d.ts +17 -0
  502. package/lib/renderers/a2ui/types/index.js +5 -0
  503. package/lib/renderers/index.d.ts +1 -0
  504. package/lib/renderers/index.js +5 -0
  505. package/lib/state/index.d.ts +1 -0
  506. package/lib/state/index.js +5 -0
  507. package/lib/state/substates/AIAgentState.d.ts +11 -0
  508. package/lib/state/substates/AIAgentState.js +42 -0
  509. package/lib/state/substates/index.d.ts +1 -0
  510. package/lib/state/substates/index.js +5 -0
  511. package/lib/stories/Button.d.ts +15 -0
  512. package/lib/stories/Button.js +13 -0
  513. package/lib/stories/Button.stories.d.ts +23 -0
  514. package/lib/stories/Button.stories.js +48 -0
  515. package/lib/stories/Cell.stories.d.ts +12 -0
  516. package/lib/stories/Cell.stories.js +123 -0
  517. package/lib/stories/Header.d.ts +12 -0
  518. package/lib/stories/Header.js +8 -0
  519. package/lib/stories/Header.stories.d.ts +18 -0
  520. package/lib/stories/Header.stories.js +30 -0
  521. package/lib/stories/Page.d.ts +3 -0
  522. package/lib/stories/Page.js +12 -0
  523. package/lib/stories/Page.stories.d.ts +12 -0
  524. package/lib/stories/Page.stories.js +28 -0
  525. package/lib/stories/assets/accessibility.png +0 -0
  526. package/lib/stories/assets/accessibility.svg +1 -0
  527. package/lib/stories/assets/addon-library.png +0 -0
  528. package/lib/stories/assets/assets.png +0 -0
  529. package/lib/stories/assets/context.png +0 -0
  530. package/lib/stories/assets/discord.svg +1 -0
  531. package/lib/stories/assets/docs.png +0 -0
  532. package/lib/stories/assets/figma-plugin.png +0 -0
  533. package/lib/stories/assets/github.svg +1 -0
  534. package/lib/stories/assets/share.png +0 -0
  535. package/lib/stories/assets/styling.png +0 -0
  536. package/lib/stories/assets/testing.png +0 -0
  537. package/lib/stories/assets/theming.png +0 -0
  538. package/lib/stories/assets/tutorials.svg +1 -0
  539. package/lib/stories/assets/youtube.svg +1 -0
  540. package/lib/stories/button.css +35 -0
  541. package/lib/stories/header.css +37 -0
  542. package/lib/stories/page.css +73 -0
  543. package/lib/test-setup.d.ts +1 -0
  544. package/lib/test-setup.js +80 -0
  545. package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.d.ts +40 -0
  546. package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.js +110 -0
  547. package/lib/tools/adapters/agent-runtimes/index.d.ts +9 -0
  548. package/lib/tools/adapters/agent-runtimes/index.js +13 -0
  549. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +24 -0
  550. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +50 -0
  551. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +24 -0
  552. package/lib/tools/adapters/agent-runtimes/notebookHooks.js +51 -0
  553. package/lib/tools/adapters/copilotkit/CopilotKitToolAdapter.d.ts +73 -0
  554. package/lib/tools/adapters/copilotkit/CopilotKitToolAdapter.js +244 -0
  555. package/lib/tools/adapters/copilotkit/index.d.ts +10 -0
  556. package/lib/tools/adapters/copilotkit/index.js +14 -0
  557. package/lib/tools/adapters/copilotkit/lexicalHooks.d.ts +27 -0
  558. package/lib/tools/adapters/copilotkit/lexicalHooks.js +59 -0
  559. package/lib/tools/adapters/copilotkit/notebookHooks.d.ts +27 -0
  560. package/lib/tools/adapters/copilotkit/notebookHooks.js +58 -0
  561. package/lib/tools/adapters/index.d.ts +1 -0
  562. package/lib/tools/adapters/index.js +5 -0
  563. package/lib/tools/index.d.ts +6 -0
  564. package/lib/tools/index.js +18 -0
  565. package/lib/types.d.ts +5 -0
  566. package/lib/types.js +5 -0
  567. package/package.json +327 -0
  568. package/style/animation/Animation.module.css +174 -0
  569. package/style/base.css +204 -0
  570. package/style/index.css +6 -0
  571. package/style/showcase-vercel-ai.css +137 -0
@@ -0,0 +1,166 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * Agent Runtime Lexical Example - Next generation chat with Lexical editor.
8
+ *
9
+ * This example demonstrates using the chat component with:
10
+ * - Lexical editor integration
11
+ * - Frontend tool execution
12
+ * - Multiple protocol support (AG-UI, A2A)
13
+ * - Middleware and extensions
14
+ *
15
+ * To run this example, create a .env file with:
16
+ * - VITE_DATALAYER_API_TOKEN: Get from https://datalayer.app/settings/iam/tokens
17
+ *
18
+ * @module examples/ChatLexicalExample
19
+ */
20
+ import 'prismjs';
21
+ import 'prismjs/components/prism-clike';
22
+ import 'prismjs/components/prism-javascript';
23
+ import 'prismjs/components/prism-markup';
24
+ import 'prismjs/components/prism-markdown';
25
+ import 'prismjs/components/prism-c';
26
+ import 'prismjs/components/prism-css';
27
+ import 'prismjs/components/prism-objectivec';
28
+ import 'prismjs/components/prism-sql';
29
+ import 'prismjs/components/prism-python';
30
+ import 'prismjs/components/prism-rust';
31
+ import 'prismjs/components/prism-swift';
32
+ import { useCallback, useEffect, useMemo, useState } from 'react';
33
+ import { LexicalComposer } from '@lexical/react/LexicalComposer';
34
+ import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
35
+ import { ContentEditable } from '@lexical/react/LexicalContentEditable';
36
+ import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
37
+ import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
38
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
39
+ import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';
40
+ import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';
41
+ import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
42
+ import { TRANSFORMERS } from '@lexical/markdown';
43
+ import { registerCodeHighlighting } from '@lexical/code';
44
+ import { ListPlugin } from '@lexical/react/LexicalListPlugin';
45
+ import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
46
+ import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
47
+ import { Box } from '@datalayer/primer-addons';
48
+ import { JupyterReactTheme, useJupyter } from '@datalayer/jupyter-react';
49
+ import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, AutoLinkPlugin, AutoEmbedPlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, LexicalConfigProvider, LexicalStatePlugin, } from '@datalayer/jupyter-lexical';
50
+ // Import Chat components
51
+ import { ChatSidebar, } from '../components/chat';
52
+ import { useLexicalTools } from '../tools/adapters/agent-runtimes/lexicalHooks';
53
+ import { editorConfig } from './lexical/editorConfig';
54
+ import '@datalayer/jupyter-lexical/style/index.css';
55
+ import './lexical/lexical-theme.css';
56
+ // Fixed lexical document ID
57
+ const LEXICAL_ID = 'chat-lexical-example';
58
+ // Default configuration
59
+ const DEFAULT_BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:8765';
60
+ const DEFAULT_AGENT_ID = import.meta.env.VITE_AGENT_ID || 'agentic_chat';
61
+ /**
62
+ * Lexical plugin for code highlighting
63
+ */
64
+ function CodeHighlightingPlugin() {
65
+ const [editor] = useLexicalComposerContext();
66
+ useEffect(() => {
67
+ return registerCodeHighlighting(editor);
68
+ }, [editor]);
69
+ return null;
70
+ }
71
+ function LexicalEditor({ serviceManager }) {
72
+ const [floatingAnchorElem, setFloatingAnchorElem] = useState(null);
73
+ const onRef = (_floatingAnchorElem) => {
74
+ if (_floatingAnchorElem !== null) {
75
+ setFloatingAnchorElem(_floatingAnchorElem);
76
+ }
77
+ };
78
+ // Handle editor changes
79
+ const onChange = useCallback((_editorState) => {
80
+ // Could persist state here
81
+ }, []);
82
+ return (_jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsxs(LexicalComposer, { initialConfig: editorConfig, children: [_jsx(LexicalStatePlugin, {}), _jsxs(Box, { sx: {
83
+ position: 'relative',
84
+ flex: 1,
85
+ display: 'flex',
86
+ flexDirection: 'column',
87
+ overflow: 'hidden',
88
+ }, children: [_jsx(RichTextPlugin, { contentEditable: _jsx("div", { ref: onRef, style: { flex: 1, display: 'flex', flexDirection: 'column' }, children: _jsx(ContentEditable, { className: "lexical-editor-content", style: {
89
+ flex: 1,
90
+ padding: '24px',
91
+ outline: 'none',
92
+ overflow: 'auto',
93
+ } }) }), placeholder: _jsx("div", { style: {
94
+ position: 'absolute',
95
+ top: '24px',
96
+ left: '24px',
97
+ color: 'var(--fgColor-muted)',
98
+ pointerEvents: 'none',
99
+ }, children: "Start typing or use the chat to create content..." }), ErrorBoundary: LexicalErrorBoundary }), _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(OnChangePlugin, { onChange: onChange }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), _jsx(CodeHighlightingPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(JupyterInputOutputPlugin, {}), _jsx(ImagesPlugin, {}), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(ComponentPickerMenuPlugin, {}), _jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] }))] })] }) }));
100
+ }
101
+ export function ChatLexicalExampleInner({ serviceManager, }) {
102
+ // Get lexical tools for ChatSidebar
103
+ const tools = useLexicalTools(LEXICAL_ID);
104
+ // Build AG-UI protocol config
105
+ const protocolConfig = useMemo(() => {
106
+ return {
107
+ type: 'ag-ui',
108
+ endpoint: `${DEFAULT_BASE_URL}/api/v1/examples/${DEFAULT_AGENT_ID}/`,
109
+ agentId: DEFAULT_AGENT_ID,
110
+ };
111
+ }, []);
112
+ return (_jsx(_Fragment, { children: _jsxs(Box, { sx: {
113
+ height: '100vh',
114
+ width: '100vw',
115
+ display: 'flex',
116
+ overflow: 'hidden',
117
+ }, children: [_jsxs(Box, { sx: {
118
+ flex: 1,
119
+ display: 'flex',
120
+ flexDirection: 'column',
121
+ overflow: 'hidden',
122
+ }, children: [_jsxs(Box, { sx: {
123
+ p: 3,
124
+ borderBottom: '1px solid',
125
+ borderColor: 'border.default',
126
+ bg: 'canvas.subtle',
127
+ }, children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "Agent Runtime Lexical Sidebar Example" }), _jsx("p", { style: { margin: '8px 0 0', color: 'var(--fgColor-muted)' }, children: "Next generation chat with Lexical editor integration (NO Provider!)" })] }), _jsx(Box, { sx: {
128
+ flex: 1,
129
+ display: 'flex',
130
+ overflow: 'hidden',
131
+ bg: 'canvas.default',
132
+ }, children: _jsx(LexicalEditor, { serviceManager: serviceManager }) })] }), _jsx(ChatSidebar, { title: "AI Assistant", position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
133
+ protocol: protocolConfig,
134
+ frontendTools: tools,
135
+ useStore: true,
136
+ suggestions: [
137
+ {
138
+ title: '✍️ Help me write',
139
+ message: 'Can you help me write a document?',
140
+ },
141
+ {
142
+ title: '📝 Summarize text',
143
+ message: 'Can you summarize the content in the editor?',
144
+ },
145
+ {
146
+ title: '🔍 Proofread',
147
+ message: 'Can you proofread and improve my text?',
148
+ },
149
+ {
150
+ title: '💡 Generate ideas',
151
+ message: 'Can you suggest some ideas for content?',
152
+ },
153
+ ],
154
+ } })] }) }));
155
+ }
156
+ /**
157
+ * Main example component with Simple wrapper
158
+ */
159
+ export function AgentRuntimeLexicalSidebarExample() {
160
+ return (_jsx(JupyterReactTheme, { children: _jsx(SimpleWrapper, {}) }));
161
+ }
162
+ function SimpleWrapper() {
163
+ const { serviceManager } = useJupyter();
164
+ return _jsx(ChatLexicalExampleInner, { serviceManager: serviceManager });
165
+ }
166
+ export default AgentRuntimeLexicalSidebarExample;
@@ -0,0 +1,9 @@
1
+ import { ServiceManager } from '@jupyterlab/services';
2
+ /**
3
+ * Main Agent Runtime notebook example component
4
+ */
5
+ interface AgentRuntimeNotebookExampleProps {
6
+ serviceManager?: ServiceManager.IManager;
7
+ }
8
+ declare function AgentRuntimeNotebookExample({ serviceManager, }: AgentRuntimeNotebookExampleProps): JSX.Element;
9
+ export default AgentRuntimeNotebookExample;
@@ -0,0 +1,148 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * Agent Runtime Notebook Example with Agent-Runtimes Integration
8
+ *
9
+ * This example demonstrates using the agent-runtimes ChatFloating component
10
+ * with notebook tools for AI-assisted notebook editing.
11
+ *
12
+ * To run this example:
13
+ * 1. Start the agent-runtimes server: `npm run start:server`
14
+ * 2. Start the frontend: `npm run dev`
15
+ *
16
+ * @module examples/AgentRuntimeNotebookExample
17
+ */
18
+ import React, { useEffect, useState } from 'react';
19
+ import { Box } from '@datalayer/primer-addons';
20
+ import { Notebook } from '@datalayer/jupyter-react';
21
+ // Agent-runtimes imports
22
+ import { ChatFloating } from '../components/chat';
23
+ import { useNotebookTools } from '../tools/adapters/agent-runtimes/notebookHooks';
24
+ // Import Matplotlib notebook
25
+ import MatplotlibNotebook from './stores/notebooks/Matplotlib.ipynb.json';
26
+ // Fixed notebook ID
27
+ const NOTEBOOK_ID = 'agui-notebook-example';
28
+ // Use the imported Matplotlib notebook
29
+ const NOTEBOOK_CONTENT = MatplotlibNotebook;
30
+ // Base URL for agent-runtimes server
31
+ const BASE_URL = 'http://localhost:8765';
32
+ const AGENT_ID = 'notebook-agent-runtime-example';
33
+ // AG-UI endpoint for notebook operations
34
+ const AG_UI_ENDPOINT = `${BASE_URL}/api/v1/ag-ui/${AGENT_ID}/`;
35
+ /**
36
+ * Hook to ensure the demo-agent exists on the server.
37
+ * Creates it if it doesn't exist.
38
+ */
39
+ function useEnsureAgent(agentId, baseUrl) {
40
+ const [isReady, setIsReady] = useState(false);
41
+ const [error, setError] = useState(null);
42
+ useEffect(() => {
43
+ let mounted = true;
44
+ async function ensureAgent() {
45
+ try {
46
+ // Try to create the agent (will fail if already exists, which is fine)
47
+ const response = await fetch(`${baseUrl}/api/v1/agents`, {
48
+ method: 'POST',
49
+ headers: {
50
+ 'Content-Type': 'application/json',
51
+ },
52
+ body: JSON.stringify({
53
+ name: agentId,
54
+ description: 'Demo agent for notebook example',
55
+ agent_library: 'pydantic-ai',
56
+ transport: 'ag-ui',
57
+ model: 'openai:gpt-4o-mini',
58
+ system_prompt: 'You are a helpful AI assistant that helps users work with Jupyter notebooks. You can help with code, explanations, and data analysis.',
59
+ }),
60
+ });
61
+ if (mounted) {
62
+ if (response.ok) {
63
+ console.log(`[AgentRuntimeExample] Created agent: ${agentId}`);
64
+ setIsReady(true);
65
+ }
66
+ else if (response.status === 400) {
67
+ // Agent already exists, which is fine
68
+ console.log(`[AgentRuntimeExample] Agent already exists: ${agentId}`);
69
+ setIsReady(true);
70
+ }
71
+ else {
72
+ const errorData = await response.json().catch(() => ({}));
73
+ setError(errorData.detail || `Failed to create agent: ${response.status}`);
74
+ }
75
+ }
76
+ }
77
+ catch (err) {
78
+ if (mounted) {
79
+ console.error('[AgentRuntimeExample] Error creating agent:', err);
80
+ setError(err instanceof Error ? err.message : 'Failed to connect to server');
81
+ }
82
+ }
83
+ }
84
+ ensureAgent();
85
+ return () => {
86
+ mounted = false;
87
+ };
88
+ }, [agentId, baseUrl]);
89
+ return { isReady, error };
90
+ }
91
+ const NotebookUI = React.memo(function NotebookUI({ serviceManager, }) {
92
+ return (_jsxs(Box, { sx: {
93
+ flex: 1,
94
+ display: 'flex',
95
+ flexDirection: 'column',
96
+ overflow: 'auto',
97
+ padding: 3,
98
+ }, children: [_jsxs(Box, { sx: {
99
+ marginBottom: 3,
100
+ paddingBottom: 3,
101
+ borderBottom: '1px solid',
102
+ borderColor: 'border.default',
103
+ }, children: [_jsx(Box, { as: "h1", children: "Agent Runtime Notebook Example" }), _jsx("p", { children: "Platform-agnostic tool usage with agent-runtimes integration. Use the AI copilot to manipulate the notebook." })] }), _jsx(Box, { sx: {
104
+ border: '1px solid',
105
+ borderColor: 'border.default',
106
+ borderRadius: 2,
107
+ padding: 3,
108
+ backgroundColor: 'canvas.default',
109
+ }, children: serviceManager ? (_jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, serviceManager: serviceManager, height: "600px", cellSidebarMargin: 120, startDefaultKernel: true })) : (_jsx(Box, { sx: { padding: 3 }, children: _jsx("p", { children: "Loading service manager..." }) })) })] }));
110
+ });
111
+ function NotebookWithChat({ serviceManager, }) {
112
+ // Ensure the agent exists before rendering chat
113
+ const { isReady, error } = useEnsureAgent(AGENT_ID, BASE_URL);
114
+ // Get notebook tools for ChatFloating
115
+ const tools = useNotebookTools(NOTEBOOK_ID);
116
+ return (_jsxs(Box, { sx: {
117
+ height: '100vh',
118
+ width: '100vw',
119
+ display: 'flex',
120
+ overflow: 'hidden',
121
+ }, children: [_jsx(NotebookUI, { serviceManager: serviceManager }), error && (_jsxs(Box, { sx: {
122
+ position: 'fixed',
123
+ bottom: 20,
124
+ right: 20,
125
+ padding: 3,
126
+ backgroundColor: 'danger.subtle',
127
+ color: 'danger.fg',
128
+ borderRadius: 2,
129
+ maxWidth: 300,
130
+ }, children: [_jsx("strong", { children: "Error:" }), " ", error] })), isReady && (_jsx(ChatFloating, { endpoint: AG_UI_ENDPOINT, title: "Notebook AI Agent Runtime", description: "Hi! I can help you edit notebook cells. Try: 'Add a new code cell', 'Run cell 1', or 'Delete the last cell'", defaultOpen: true, defaultViewMode: "panel", position: "bottom-right", brandColor: "#7c3aed", tools: tools, useStore: false, suggestions: [
131
+ {
132
+ title: 'Add a cell',
133
+ message: 'Insert a random cell to the notebook',
134
+ },
135
+ {
136
+ title: 'Run the first cell',
137
+ message: 'Run the first cell in the notebook',
138
+ },
139
+ {
140
+ title: 'Show cells',
141
+ message: 'Show the notebook cells content and compute the number of cells',
142
+ },
143
+ ] }))] }));
144
+ }
145
+ function AgentRuntimeNotebookExample({ serviceManager, }) {
146
+ return _jsx(NotebookWithChat, { serviceManager: serviceManager });
147
+ }
148
+ export default AgentRuntimeNotebookExample;
@@ -0,0 +1,13 @@
1
+ import { ServiceManager } from '@jupyterlab/services';
2
+ /**
3
+ * Agent Runtime Notebook Sidebar Example with Simple integration
4
+ */
5
+ interface ChatJupyterNotebookExampleProps {
6
+ serviceManager?: ServiceManager.IManager;
7
+ }
8
+ export declare function AgentRuntimeNotebookExampleInner({ serviceManager, }: ChatJupyterNotebookExampleProps): import("react/jsx-runtime").JSX.Element;
9
+ /**
10
+ * Main example component with Simple wrapper
11
+ */
12
+ export declare function AgentRuntimeNotebookSidebarExample(): import("react/jsx-runtime").JSX.Element;
13
+ export default AgentRuntimeNotebookSidebarExample;
@@ -0,0 +1,121 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * Agent Runtime Notebook Example - Next generation chat with Jupyter Notebook.
8
+ *
9
+ * This example demonstrates using the chat component with:
10
+ * - Jupyter Notebook integration
11
+ * - Frontend tool execution for notebook operations
12
+ * - AG-UI protocol support
13
+ * - HITL (Human-in-the-loop) tool approval
14
+ *
15
+ * To run this example:
16
+ * 1. Start the agent-runtimes server: `npm run start:ag-ui`
17
+ * 2. Create a .env file with VITE_BASE_URL if not using defaults
18
+ *
19
+ * @module examples/ChatJupyterNotebookExample
20
+ */
21
+ import { useMemo } from 'react';
22
+ import { Box } from '@datalayer/primer-addons';
23
+ import { Notebook, JupyterReactTheme, useJupyter, } from '@datalayer/jupyter-react';
24
+ // Import Chat components
25
+ import { ChatSidebar, } from '../components/chat';
26
+ // Import agent-runtimes notebook tools
27
+ import { useNotebookTools } from '../tools/adapters/agent-runtimes/notebookHooks';
28
+ // Import sample notebook
29
+ import MatplotlibNotebook from './stores/notebooks/Matplotlib.ipynb.json';
30
+ // Fixed notebook ID
31
+ const NOTEBOOK_ID = 'chat-notebook-example';
32
+ // Use the imported Matplotlib notebook
33
+ const NOTEBOOK_CONTENT = MatplotlibNotebook;
34
+ // Default configuration
35
+ const DEFAULT_BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:8765';
36
+ const DEFAULT_AGENT_ID = import.meta.env.VITE_AGENT_ID || 'agentic_chat';
37
+ function NotebookUI({ serviceManager }) {
38
+ if (!serviceManager) {
39
+ return (_jsx(Box, { sx: {
40
+ display: 'flex',
41
+ alignItems: 'center',
42
+ justifyContent: 'center',
43
+ height: '100%',
44
+ color: 'fg.muted',
45
+ }, children: "Loading Simple services..." }));
46
+ }
47
+ return (_jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, serviceManager: serviceManager, height: "100%", cellSidebarMargin: 120, startDefaultKernel: true }));
48
+ }
49
+ export function AgentRuntimeNotebookExampleInner({ serviceManager, }) {
50
+ // Get notebook tools for ChatSidebar
51
+ const tools = useNotebookTools(NOTEBOOK_ID);
52
+ // Build AG-UI protocol config
53
+ const protocolConfig = useMemo(() => {
54
+ return {
55
+ type: 'ag-ui',
56
+ endpoint: `${DEFAULT_BASE_URL}/api/v1/examples/${DEFAULT_AGENT_ID}/`,
57
+ agentId: DEFAULT_AGENT_ID,
58
+ };
59
+ }, []);
60
+ return (_jsx(_Fragment, { children: _jsxs(Box, { sx: {
61
+ height: '100vh',
62
+ width: '100vw',
63
+ display: 'flex',
64
+ overflow: 'hidden',
65
+ }, children: [_jsxs(Box, { sx: {
66
+ flex: 1,
67
+ display: 'flex',
68
+ flexDirection: 'column',
69
+ overflow: 'hidden',
70
+ }, children: [_jsxs(Box, { sx: {
71
+ p: 3,
72
+ borderBottom: '1px solid',
73
+ borderColor: 'border.default',
74
+ bg: 'canvas.subtle',
75
+ }, children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "Agent Runtime Notebook Sidebar Example" }), _jsx("p", { style: { margin: '8px 0 0', color: 'var(--fgColor-muted)' }, children: "Next generation chat with Jupyter Notebook integration" })] }), _jsx(Box, { sx: {
76
+ flex: 1,
77
+ display: 'flex',
78
+ overflow: 'hidden',
79
+ bg: 'canvas.default',
80
+ p: 3,
81
+ }, children: _jsx(Box, { sx: {
82
+ flex: 1,
83
+ border: '1px solid',
84
+ borderColor: 'border.default',
85
+ borderRadius: 2,
86
+ overflow: 'hidden',
87
+ }, children: _jsx(NotebookUI, { serviceManager: serviceManager }) }) })] }), _jsx(ChatSidebar, { title: "AI Assistant", position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
88
+ protocol: protocolConfig,
89
+ frontendTools: tools,
90
+ useStore: true,
91
+ suggestions: [
92
+ {
93
+ title: '📓 Explain notebook',
94
+ message: 'Can you explain what this notebook does?',
95
+ },
96
+ {
97
+ title: '🔧 Fix errors',
98
+ message: 'Can you help me fix any errors in the notebook?',
99
+ },
100
+ {
101
+ title: '📊 Add visualization',
102
+ message: 'Can you add a visualization to the notebook?',
103
+ },
104
+ {
105
+ title: '✨ Improve code',
106
+ message: 'Can you suggest improvements for the code?',
107
+ },
108
+ ],
109
+ } })] }) }));
110
+ }
111
+ /**
112
+ * Main example component with Simple wrapper
113
+ */
114
+ export function AgentRuntimeNotebookSidebarExample() {
115
+ return (_jsx(JupyterReactTheme, { children: _jsx(SimpleWrapper, {}) }));
116
+ }
117
+ function SimpleWrapper() {
118
+ const { serviceManager } = useJupyter();
119
+ return _jsx(AgentRuntimeNotebookExampleInner, { serviceManager: serviceManager });
120
+ }
121
+ export default AgentRuntimeNotebookSidebarExample;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * ChatStandaloneExample
3
+ *
4
+ * Demonstrates the ChatStandalone component which provides a floating
5
+ * chat popup with props-based message handling. This is perfect for custom
6
+ * integrations where you want full control over the inference logic.
7
+ *
8
+ * Unlike ChatFloating (which uses protocol adapters like AG-UI), this component
9
+ * lets you provide your own message handler function.
10
+ *
11
+ * This example simulates an AI assistant that can respond to various queries.
12
+ */
13
+ import React from 'react';
14
+ /**
15
+ * AgentRuntimePopupStandaloneExample Component
16
+ *
17
+ * Demonstrates a standalone floating chat popup with custom message handling.
18
+ * Perfect for integrations where you want full control over the AI logic.
19
+ */
20
+ declare const AgentRuntimePopupStandaloneExample: React.FC;
21
+ export default AgentRuntimePopupStandaloneExample;
@@ -0,0 +1,158 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * ChatStandaloneExample
8
+ *
9
+ * Demonstrates the ChatStandalone component which provides a floating
10
+ * chat popup with props-based message handling. This is perfect for custom
11
+ * integrations where you want full control over the inference logic.
12
+ *
13
+ * Unlike ChatFloating (which uses protocol adapters like AG-UI), this component
14
+ * lets you provide your own message handler function.
15
+ *
16
+ * This example simulates an AI assistant that can respond to various queries.
17
+ */
18
+ import { useCallback } from 'react';
19
+ import { Text } from '@primer/react';
20
+ import { Box } from '@datalayer/primer-addons';
21
+ import { datalayerTheme, DatalayerThemeProvider } from '@datalayer/core';
22
+ import { ChatStandalone } from '../components/chat';
23
+ /**
24
+ * Simulated AI responses for demo purposes.
25
+ * In a real application, this would call your AI backend.
26
+ */
27
+ const simulateAIResponse = async (message, onChunk) => {
28
+ const lowerMessage = message.toLowerCase();
29
+ // Determine response based on message content
30
+ let response;
31
+ if (lowerMessage.includes('hello') || lowerMessage.includes('hi')) {
32
+ response =
33
+ "Hello! I'm a demo assistant powered by ChatStandalone. I can help you with various questions. Try asking me about the weather, time, or just chat!";
34
+ }
35
+ else if (lowerMessage.includes('weather')) {
36
+ response =
37
+ "I'm a demo assistant, so I can't fetch real weather data. But in a real implementation, you could connect me to a weather API! The ChatStandalone component lets you implement any custom logic you need.";
38
+ }
39
+ else if (lowerMessage.includes('time')) {
40
+ const now = new Date();
41
+ response = `The current time is ${now.toLocaleTimeString()} on ${now.toLocaleDateString()}. This is a real response from your browser!`;
42
+ }
43
+ else if (lowerMessage.includes('help') ||
44
+ lowerMessage.includes('what can you do')) {
45
+ response = `I'm a demo assistant showcasing ChatStandalone. Here's what makes this component special:
46
+
47
+ • **Props-based**: You provide your own message handler
48
+ • **Full control**: Implement any AI backend or logic
49
+ • **Streaming support**: I'm simulating streaming right now!
50
+ • **Customizable**: Brand colors, icons, positions, and more
51
+
52
+ Try asking me about the time, weather, or just say hello!`;
53
+ }
54
+ else if (lowerMessage.includes('joke')) {
55
+ response =
56
+ 'Why do programmers prefer dark mode? Because light attracts bugs! 🐛';
57
+ }
58
+ else {
59
+ response = `You said: "${message}"
60
+
61
+ I'm a demo assistant, so I have limited responses. In a real implementation, you would connect ChatStandalone to your preferred AI service (OpenAI, Anthropic, local LLM, etc.) by implementing the \`onSendMessage\` handler.
62
+
63
+ Try asking me for the time, a joke, or what I can do!`;
64
+ }
65
+ // Simulate streaming by sending chunks
66
+ if (onChunk) {
67
+ const words = response.split(' ');
68
+ for (let i = 0; i < words.length; i++) {
69
+ await new Promise(resolve => setTimeout(resolve, 30 + Math.random() * 20));
70
+ onChunk(words.slice(0, i + 1).join(' '));
71
+ }
72
+ }
73
+ else {
74
+ // Simulate processing delay
75
+ await new Promise(resolve => setTimeout(resolve, 500));
76
+ }
77
+ return response;
78
+ };
79
+ /**
80
+ * AgentRuntimePopupStandaloneExample Component
81
+ *
82
+ * Demonstrates a standalone floating chat popup with custom message handling.
83
+ * Perfect for integrations where you want full control over the AI logic.
84
+ */
85
+ const AgentRuntimePopupStandaloneExample = () => {
86
+ // Message handler - this is where you implement your AI logic
87
+ // The handler receives: message, messages (conversation history), and streaming options
88
+ const handleSendMessage = useCallback(async (message, _messages, options) => {
89
+ try {
90
+ const response = await simulateAIResponse(message, options?.onChunk);
91
+ options?.onComplete?.(response);
92
+ return response;
93
+ }
94
+ catch (error) {
95
+ const err = error instanceof Error ? error : new Error(String(error));
96
+ options?.onError?.(err);
97
+ throw err;
98
+ }
99
+ }, []);
100
+ return (_jsx(DatalayerThemeProvider, { theme: datalayerTheme, children: _jsxs(Box, { sx: {
101
+ minHeight: '100vh',
102
+ backgroundColor: 'canvas.default',
103
+ padding: 4,
104
+ }, children: [_jsxs(Box, { sx: {
105
+ maxWidth: '800px',
106
+ margin: '0 auto',
107
+ }, children: [_jsx(Text, { as: "h1", sx: {
108
+ fontSize: 4,
109
+ fontWeight: 'bold',
110
+ marginBottom: 2,
111
+ }, children: "Agent Runtime Standalone Example" }), _jsx(Text, { as: "p", sx: {
112
+ fontSize: 2,
113
+ color: 'fg.muted',
114
+ marginBottom: 4,
115
+ }, children: "A standalone floating chat popup with props-based message handling. Click the chat button in the bottom-right corner to start!" }), _jsxs(Box, { sx: {
116
+ padding: 4,
117
+ backgroundColor: 'canvas.subtle',
118
+ borderRadius: 2,
119
+ border: '1px solid',
120
+ borderColor: 'border.default',
121
+ marginBottom: 4,
122
+ }, children: [_jsx(Text, { as: "h2", sx: { fontSize: 2, fontWeight: 'semibold', marginBottom: 2 }, children: "Key Features" }), _jsxs(Box, { as: "ul", sx: { paddingLeft: 3 }, children: [_jsxs(Box, { as: "li", sx: { marginBottom: 2 }, children: [_jsx(Text, { sx: { fontWeight: 'semibold' }, children: "Props-based Handler" }), _jsxs(Text, { sx: { fontSize: 1, color: 'fg.muted', display: 'block' }, children: ["Implement your own ", _jsx("code", { children: "onSendMessage" }), " function to connect to any AI backend"] })] }), _jsxs(Box, { as: "li", sx: { marginBottom: 2 }, children: [_jsx(Text, { sx: { fontWeight: 'semibold' }, children: "Streaming Support" }), _jsxs(Text, { sx: { fontSize: 1, color: 'fg.muted', display: 'block' }, children: ["Use the ", _jsx("code", { children: "onChunk" }), " callback for real-time streaming responses"] })] }), _jsxs(Box, { as: "li", sx: { marginBottom: 2 }, children: [_jsx(Text, { sx: { fontWeight: 'semibold' }, children: "Full Customization" }), _jsx(Text, { sx: { fontSize: 1, color: 'fg.muted', display: 'block' }, children: "Brand colors, icons, position, keyboard shortcuts, and more" })] }), _jsxs(Box, { as: "li", sx: { marginBottom: 2 }, children: [_jsx(Text, { sx: { fontWeight: 'semibold' }, children: "No Backend Required" }), _jsx(Text, { sx: { fontSize: 1, color: 'fg.muted', display: 'block' }, children: "Unlike AG-UI examples, this works without a server (demo mode)" })] })] })] }), _jsxs(Box, { sx: {
123
+ padding: 4,
124
+ backgroundColor: 'canvas.subtle',
125
+ borderRadius: 2,
126
+ border: '1px solid',
127
+ borderColor: 'border.default',
128
+ marginBottom: 4,
129
+ }, children: [_jsx(Text, { as: "h2", sx: { fontSize: 2, fontWeight: 'semibold', marginBottom: 2 }, children: "Usage Example" }), _jsx(Box, { as: "pre", sx: {
130
+ backgroundColor: 'neutral.emphasisPlus',
131
+ color: 'fg.onEmphasis',
132
+ padding: 3,
133
+ borderRadius: 2,
134
+ overflow: 'auto',
135
+ fontSize: 0,
136
+ }, children: _jsx("code", { children: `<ChatStandalone
137
+ title="My Assistant"
138
+ onSendMessage={async (message, options) => {
139
+ // Your custom AI logic here
140
+ const response = await myAI.chat(message);
141
+
142
+ // Support streaming with onChunk
143
+ options?.onChunk?.(response);
144
+ options?.onComplete?.(response);
145
+
146
+ return response;
147
+ }}
148
+ brandColor="#7c3aed"
149
+ position="bottom-right"
150
+ />` }) })] }), _jsxs(Box, { sx: {
151
+ padding: 4,
152
+ backgroundColor: 'attention.subtle',
153
+ borderRadius: 2,
154
+ border: '1px solid',
155
+ borderColor: 'attention.muted',
156
+ }, children: [_jsx(Text, { as: "h2", sx: { fontSize: 2, fontWeight: 'semibold', marginBottom: 2 }, children: "When to Use" }), _jsxs(Text, { as: "p", sx: { fontSize: 1, marginBottom: 2 }, children: ["Use ", _jsx("strong", { children: "ChatStandalone" }), " when:"] }), _jsxs(Box, { as: "ul", sx: { paddingLeft: 3, fontSize: 1 }, children: [_jsx("li", { children: "You have a custom AI backend that does not use AG-UI/ACP" }), _jsx("li", { children: "You want full control over the message handling logic" }), _jsx("li", { children: "You need to integrate with a specific API (OpenAI, etc.)" }), _jsx("li", { children: "You want a quick demo without setting up a backend server" })] }), _jsxs(Text, { as: "p", sx: { fontSize: 1, marginTop: 2 }, children: ["Use ", _jsx("strong", { children: "ChatFloating" }), " instead when:"] }), _jsxs(Box, { as: "ul", sx: { paddingLeft: 3, fontSize: 1 }, children: [_jsx("li", { children: "You have an AG-UI compatible backend" }), _jsx("li", { children: "You need built-in tool rendering support" }), _jsx("li", { children: "You want automatic protocol handling" })] })] })] }), _jsx(ChatStandalone, { title: "Demo Assistant", onSendMessage: handleSendMessage, position: "bottom-right", brandColor: "#7c3aed", enableStreaming: true, emptyStateMessage: "Hi! I'm a demo assistant. Try asking me for the time, a joke, or what I can do!", buttonTooltip: "Chat with Demo Assistant", showPoweredBy: true })] }) }));
157
+ };
158
+ export default AgentRuntimePopupStandaloneExample;