@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,236 @@
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
+ * Chat Lexical Example - Floating popup chat with Lexical editor.
8
+ *
9
+ * This example demonstrates using the chat popup component with:
10
+ * - Floating popup window that appears in a corner
11
+ * - Lexical editor integration
12
+ * - Frontend tool execution
13
+ * - Escape to close, click outside to close
14
+ * - Keyboard shortcuts
15
+ *
16
+ * To run this example, create a .env file with:
17
+ * - VITE_DATALAYER_API_TOKEN: Get from https://datalayer.app/settings/iam/tokens
18
+ *
19
+ * @module examples/ChatLexicalExample
20
+ */
21
+ import 'prismjs';
22
+ import 'prismjs/components/prism-clike';
23
+ import 'prismjs/components/prism-javascript';
24
+ import 'prismjs/components/prism-markup';
25
+ import 'prismjs/components/prism-markdown';
26
+ import 'prismjs/components/prism-c';
27
+ import 'prismjs/components/prism-css';
28
+ import 'prismjs/components/prism-objectivec';
29
+ import 'prismjs/components/prism-sql';
30
+ import 'prismjs/components/prism-python';
31
+ import 'prismjs/components/prism-rust';
32
+ import 'prismjs/components/prism-swift';
33
+ import { useCallback, useEffect, useState } from 'react';
34
+ import { LexicalComposer } from '@lexical/react/LexicalComposer';
35
+ import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
36
+ import { ContentEditable } from '@lexical/react/LexicalContentEditable';
37
+ import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
38
+ import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
39
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
40
+ import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';
41
+ import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';
42
+ import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
43
+ import { TRANSFORMERS } from '@lexical/markdown';
44
+ import { registerCodeHighlighting } from '@lexical/code';
45
+ import { ListPlugin } from '@lexical/react/LexicalListPlugin';
46
+ import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
47
+ import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
48
+ import { Box } from '@datalayer/primer-addons';
49
+ import { Text } from '@primer/react';
50
+ import { JupyterReactTheme, useJupyter } from '@datalayer/jupyter-react';
51
+ import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, AutoLinkPlugin, AutoEmbedPlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, } from '@datalayer/jupyter-lexical';
52
+ // Import Chat components
53
+ import { ChatFloating, useChatStore, useFrontendTool, DatalayerInferenceProvider, } from '../components/chat';
54
+ import { useLexicalToolActions, ActionRegistrar, } from '../tools/adapters/copilotkit/lexicalHooks';
55
+ import { editorConfig } from './lexical/editorConfig';
56
+ import '@datalayer/jupyter-lexical/style/index.css';
57
+ import './lexical/lexical-theme.css';
58
+ // Fixed lexical document ID
59
+ const LEXICAL_ID = 'chat-popup-lexical-example';
60
+ /**
61
+ * Lexical plugin for code highlighting
62
+ */
63
+ function CodeHighlightingPlugin() {
64
+ const [editor] = useLexicalComposerContext();
65
+ useEffect(() => {
66
+ return registerCodeHighlighting(editor);
67
+ }, [editor]);
68
+ return null;
69
+ }
70
+ /**
71
+ * Tool registration component - registers Lexical tools with Chat
72
+ */
73
+ function LexicalToolRegistrar() {
74
+ // Get Lexical tool actions (compatible with ActionRegistrar pattern)
75
+ const lexicalTools = useLexicalToolActions(LEXICAL_ID);
76
+ // Register each tool with Chat
77
+ return (_jsx(_Fragment, { children: lexicalTools.map((action, i) => (_jsx(ActionRegistrar, { action: action, useFrontendTool: useFrontendTool }, action.name || i))) }));
78
+ }
79
+ /**
80
+ * Custom tools for demonstration
81
+ */
82
+ function CustomToolsRegistrar() {
83
+ // Simple greeting tool
84
+ useFrontendTool({
85
+ name: 'greet_user',
86
+ description: 'Greet a user by name',
87
+ parameters: [
88
+ {
89
+ name: 'name',
90
+ type: 'string',
91
+ description: 'Name of the user',
92
+ required: true,
93
+ },
94
+ ],
95
+ handler: async ({ name }) => {
96
+ return {
97
+ greeting: `Hello, ${name}! Welcome to Agent Runtime Lexical Example.`,
98
+ };
99
+ },
100
+ });
101
+ // Get current date/time tool
102
+ useFrontendTool({
103
+ name: 'get_current_time',
104
+ description: 'Get the current date and time',
105
+ parameters: [],
106
+ handler: async () => {
107
+ return {
108
+ datetime: new Date().toISOString(),
109
+ formatted: new Date().toLocaleString(),
110
+ };
111
+ },
112
+ });
113
+ // Document info tool
114
+ useFrontendTool({
115
+ name: 'get_document_info',
116
+ description: 'Get information about the current document',
117
+ parameters: [],
118
+ handler: async () => {
119
+ return {
120
+ documentId: LEXICAL_ID,
121
+ timestamp: new Date().toISOString(),
122
+ message: 'This is a Lexical document with Simple integration',
123
+ };
124
+ },
125
+ });
126
+ return null;
127
+ }
128
+ function LexicalEditor({ serviceManager: _serviceManager, }) {
129
+ const [floatingAnchorElem, setFloatingAnchorElem] = useState(null);
130
+ const onRef = (_floatingAnchorElem) => {
131
+ if (_floatingAnchorElem !== null) {
132
+ setFloatingAnchorElem(_floatingAnchorElem);
133
+ }
134
+ };
135
+ // Handle editor changes
136
+ const onChange = useCallback((_editorState) => {
137
+ // Could persist state here
138
+ }, []);
139
+ return (_jsx(LexicalComposer, { initialConfig: editorConfig, children: _jsxs(Box, { sx: {
140
+ position: 'relative',
141
+ flex: 1,
142
+ display: 'flex',
143
+ flexDirection: 'column',
144
+ overflow: 'hidden',
145
+ }, children: [_jsx(RichTextPlugin, { contentEditable: _jsx("div", { ref: onRef, style: { flex: 1, display: 'flex', flexDirection: 'column' }, children: _jsx(ContentEditable, { className: "lexical-editor-content", style: {
146
+ flex: 1,
147
+ padding: '24px',
148
+ outline: 'none',
149
+ overflow: 'auto',
150
+ } }) }), placeholder: _jsx("div", { style: {
151
+ position: 'absolute',
152
+ top: '24px',
153
+ left: '24px',
154
+ color: 'var(--fgColor-muted)',
155
+ pointerEvents: 'none',
156
+ }, children: "Start typing or click the chat button to open the AI assistant..." }), 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 })] }))] }) }));
157
+ }
158
+ export function ChatLexicalExampleInner({ serviceManager, }) {
159
+ // Chat configuration - set up the inference provider in the store
160
+ useEffect(() => {
161
+ const config = {
162
+ defaultProvider: 'datalayer',
163
+ apiBaseUrl: import.meta.env.VITE_DATALAYER_API_URL ||
164
+ 'https://oss.datalayer.run/api',
165
+ apiKey: import.meta.env.VITE_DATALAYER_API_TOKEN,
166
+ defaultModel: 'claude-sonnet-4-20250514',
167
+ enableStreaming: true,
168
+ requireToolApproval: false,
169
+ debug: import.meta.env.DEV,
170
+ };
171
+ // Set config in store
172
+ useChatStore.getState().setConfig(config);
173
+ // Create and set inference provider
174
+ const provider = new DatalayerInferenceProvider({
175
+ apiKey: config.apiKey ?? '',
176
+ baseUrl: config.apiBaseUrl,
177
+ model: config.defaultModel,
178
+ });
179
+ useChatStore.getState().setInferenceProvider(provider);
180
+ // Cleanup on unmount
181
+ return () => {
182
+ useChatStore.getState().setInferenceProvider(null);
183
+ };
184
+ }, []);
185
+ return (_jsxs(_Fragment, { children: [_jsx(LexicalToolRegistrar, {}), _jsx(CustomToolsRegistrar, {}), _jsxs(Box, { sx: {
186
+ height: '100vh',
187
+ width: '100vw',
188
+ display: 'flex',
189
+ flexDirection: 'column',
190
+ overflow: 'hidden',
191
+ }, children: [_jsxs(Box, { sx: {
192
+ p: 3,
193
+ borderBottom: '1px solid',
194
+ borderColor: 'border.default',
195
+ bg: 'canvas.subtle',
196
+ display: 'flex',
197
+ justifyContent: 'space-between',
198
+ alignItems: 'center',
199
+ }, children: [_jsxs("div", { children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "Chat Lexical Example" }), _jsx("p", { style: { margin: '8px 0 0', color: 'var(--fgColor-muted)' }, children: "Sidebar popup chat with Lexical editor integration." })] }), _jsx(Box, { sx: {
200
+ display: 'flex',
201
+ gap: 2,
202
+ alignItems: 'center',
203
+ }, children: _jsxs(Text, { sx: { fontSize: 1, color: 'fg.muted' }, children: ["Press", ' ', _jsx("kbd", { style: {
204
+ padding: '2px 6px',
205
+ borderRadius: '4px',
206
+ backgroundColor: 'var(--bgColor-neutral-muted)',
207
+ border: '1px solid var(--borderColor-default)',
208
+ fontFamily: 'monospace',
209
+ fontSize: '12px',
210
+ }, children: "\u2318/" }), ' ', "or click the button to open chat"] }) })] }), _jsx(Box, { sx: {
211
+ flex: 1,
212
+ display: 'flex',
213
+ overflow: 'hidden',
214
+ bg: 'canvas.default',
215
+ }, children: _jsx(LexicalEditor, { serviceManager: serviceManager }) })] }), _jsx(ChatFloating, { useStore: true, title: "AI Assistant", position: "bottom-right", width: 400, height: 550, defaultOpen: false, showNewChatButton: true, showClearButton: true, showSettingsButton: false, clickOutsideToClose: true, escapeToClose: true, enableKeyboardShortcuts: true, toggleShortcut: "/", buttonTooltip: "Open AI Assistant", showPoweredBy: true, poweredByProps: {
216
+ brandName: 'Datalayer',
217
+ brandUrl: 'https://datalayer.ai',
218
+ }, onOpen: () => {
219
+ // opened
220
+ }, onClose: () => {
221
+ // closed
222
+ }, onNewChat: () => {
223
+ // New chat started
224
+ } })] }));
225
+ }
226
+ /**
227
+ * Main example component with Simple wrapper
228
+ */
229
+ export function AgentRuntimePopupLexicalExample() {
230
+ return (_jsx(JupyterReactTheme, { children: _jsx(JupyterWrapper, {}) }));
231
+ }
232
+ function JupyterWrapper() {
233
+ const { serviceManager } = useJupyter();
234
+ return _jsx(ChatLexicalExampleInner, { serviceManager: serviceManager });
235
+ }
236
+ export default AgentRuntimePopupLexicalExample;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Agent Runtime Lexical Example with Agent-Runtimes Integration.
3
+ *
4
+ * This example demonstrates using the agent-runtimes ChatFloating component
5
+ * with lexical tools for AI-assisted document editing.
6
+ *
7
+ * To run this example:
8
+ * 1. Start the agent-runtimes server: `npm run start:server`
9
+ * 2. Start the frontend: `npm run dev`
10
+ *
11
+ * @module examples/AgentRuntimeLexicalExample
12
+ */
13
+ import 'prismjs';
14
+ import 'prismjs/components/prism-clike';
15
+ import 'prismjs/components/prism-javascript';
16
+ import 'prismjs/components/prism-markup';
17
+ import 'prismjs/components/prism-markdown';
18
+ import 'prismjs/components/prism-c';
19
+ import 'prismjs/components/prism-css';
20
+ import 'prismjs/components/prism-objectivec';
21
+ import 'prismjs/components/prism-sql';
22
+ import 'prismjs/components/prism-python';
23
+ import 'prismjs/components/prism-rust';
24
+ import 'prismjs/components/prism-swift';
25
+ import type { ServiceManager } from '@jupyterlab/services';
26
+ import '@datalayer/jupyter-lexical/style/index.css';
27
+ import './lexical/lexical-theme.css';
28
+ /**
29
+ * Main Agent Runtime lexical example component
30
+ */
31
+ interface AgentRuntimeLexicalExampleProps {
32
+ content?: string;
33
+ serviceManager?: ServiceManager.IManager;
34
+ }
35
+ declare function AgentRuntimeLexicalExample({ content, serviceManager, }: AgentRuntimeLexicalExampleProps): JSX.Element;
36
+ export default AgentRuntimeLexicalExample;
@@ -0,0 +1,260 @@
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 with Agent-Runtimes Integration.
8
+ *
9
+ * This example demonstrates using the agent-runtimes ChatFloating component
10
+ * with lexical tools for AI-assisted document 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/AgentRuntimeLexicalExample
17
+ */
18
+ import 'prismjs';
19
+ import 'prismjs/components/prism-clike';
20
+ import 'prismjs/components/prism-javascript';
21
+ import 'prismjs/components/prism-markup';
22
+ import 'prismjs/components/prism-markdown';
23
+ import 'prismjs/components/prism-c';
24
+ import 'prismjs/components/prism-css';
25
+ import 'prismjs/components/prism-objectivec';
26
+ import 'prismjs/components/prism-sql';
27
+ import 'prismjs/components/prism-python';
28
+ import 'prismjs/components/prism-rust';
29
+ import 'prismjs/components/prism-swift';
30
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
31
+ import { $getRoot, $createParagraphNode } from 'lexical';
32
+ import { LexicalComposer } from '@lexical/react/LexicalComposer';
33
+ import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
34
+ import { ContentEditable } from '@lexical/react/LexicalContentEditable';
35
+ import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
36
+ import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
37
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
38
+ import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';
39
+ import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';
40
+ import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
41
+ import { TRANSFORMERS } from '@lexical/markdown';
42
+ import { registerCodeHighlighting } from '@lexical/code';
43
+ import { ListPlugin } from '@lexical/react/LexicalListPlugin';
44
+ import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
45
+ import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
46
+ import { Box } from '@datalayer/primer-addons';
47
+ import { JupyterReactTheme, useJupyter } from '@datalayer/jupyter-react';
48
+ import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, AutoLinkPlugin, AutoEmbedPlugin, LexicalConfigProvider, LexicalStatePlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, } from '@datalayer/jupyter-lexical';
49
+ // Agent-runtimes imports
50
+ import { ChatFloating } from '../components/chat';
51
+ import { ChatInlinePlugin } from '../lexical/ChatInlinePlugin';
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 = 'agui-lexical-example';
58
+ // Base URL for agent-runtimes server
59
+ const BASE_URL = 'http://localhost:8765';
60
+ const AGENT_ID = 'lexical-agent-runtime-example';
61
+ // AG-UI endpoint for lexical operations
62
+ const AG_UI_ENDPOINT = `${BASE_URL}/api/v1/ag-ui/${AGENT_ID}/`;
63
+ /**
64
+ * Hook to ensure the demo-agent exists on the server.
65
+ * Creates it if it doesn't exist.
66
+ */
67
+ function useEnsureAgent(agentId, baseUrl) {
68
+ const [isReady, setIsReady] = useState(false);
69
+ const [error, setError] = useState(null);
70
+ useEffect(() => {
71
+ let mounted = true;
72
+ async function ensureAgent() {
73
+ try {
74
+ // Try to create the agent (will fail if already exists, which is fine)
75
+ const response = await fetch(`${baseUrl}/api/v1/agents`, {
76
+ method: 'POST',
77
+ headers: {
78
+ 'Content-Type': 'application/json',
79
+ },
80
+ body: JSON.stringify({
81
+ name: agentId,
82
+ description: 'Demo agent for lexical example',
83
+ agent_library: 'pydantic-ai',
84
+ transport: 'ag-ui',
85
+ model: 'openai:gpt-4o-mini',
86
+ system_prompt: 'You are a helpful AI assistant that helps users work with documents. You can help with writing, editing, and formatting content.',
87
+ }),
88
+ });
89
+ if (mounted) {
90
+ if (response.ok) {
91
+ console.log(`[AgentRuntimeLexicalExample] Created agent: ${agentId}`);
92
+ setIsReady(true);
93
+ }
94
+ else if (response.status === 400) {
95
+ // Agent already exists, which is fine
96
+ console.log(`[AgentRuntimeLexicalExample] Agent already exists: ${agentId}`);
97
+ setIsReady(true);
98
+ }
99
+ else {
100
+ const errorData = await response.json().catch(() => ({}));
101
+ setError(errorData.detail || `Failed to create agent: ${response.status}`);
102
+ }
103
+ }
104
+ }
105
+ catch (err) {
106
+ if (mounted) {
107
+ console.error('[AgentRuntimeLexicalExample] Error creating agent:', err);
108
+ setError(err instanceof Error ? err.message : 'Failed to connect to server');
109
+ }
110
+ }
111
+ }
112
+ ensureAgent();
113
+ return () => {
114
+ mounted = false;
115
+ };
116
+ }, [agentId, baseUrl]);
117
+ return { isReady, error };
118
+ }
119
+ // import contentLexical from './lexicals/vscode.lexical';
120
+ // const INITIAL_CONTENT = JSON.stringify(contentLexical);
121
+ const INITIAL_CONTENT = undefined; // Use default empty document
122
+ /**
123
+ * Lexical plugin for loading initial content into the editor.
124
+ */
125
+ function LoadContentPlugin({ content }) {
126
+ const [editor] = useLexicalComposerContext();
127
+ const isFirstRender = useRef(true);
128
+ useEffect(() => {
129
+ if (!content || !isFirstRender.current) {
130
+ return;
131
+ }
132
+ isFirstRender.current = false;
133
+ try {
134
+ const parsed = JSON.parse(content);
135
+ if (parsed && typeof parsed === 'object' && parsed.root) {
136
+ const editorState = editor.parseEditorState(content);
137
+ editor.setEditorState(editorState, {
138
+ tag: 'history-merge',
139
+ });
140
+ }
141
+ else {
142
+ throw new Error('Invalid Lexical editor state format');
143
+ }
144
+ }
145
+ catch {
146
+ editor.update(() => {
147
+ const root = $getRoot();
148
+ root.clear();
149
+ const paragraph = $createParagraphNode();
150
+ root.append(paragraph);
151
+ }, {
152
+ tag: 'history-merge',
153
+ });
154
+ }
155
+ }, [content, editor]);
156
+ return null;
157
+ }
158
+ /**
159
+ * Lexical plugin for Simple code syntax highlighting.
160
+ */
161
+ function CodeHighlightPlugin() {
162
+ const [editor] = useLexicalComposerContext();
163
+ useEffect(() => {
164
+ return registerCodeHighlighting(editor);
165
+ }, [editor]);
166
+ return null;
167
+ }
168
+ /**
169
+ * Wrapper component for kernel-dependent Simple plugins.
170
+ */
171
+ function SimpleKernelPluginsInner() {
172
+ const { defaultKernel } = useJupyter();
173
+ return (_jsxs(_Fragment, { children: [_jsx(ComponentPickerMenuPlugin, { kernel: defaultKernel }), _jsx(JupyterInputOutputPlugin, { kernel: defaultKernel })] }));
174
+ }
175
+ /**
176
+ * Plugin component that captures lexical tools and passes them to parent.
177
+ * Must be rendered inside LexicalConfigProvider context.
178
+ */
179
+ function LexicalToolsPlugin({ onToolsReady, }) {
180
+ const tools = useLexicalTools(LEXICAL_ID);
181
+ useEffect(() => {
182
+ onToolsReady(tools);
183
+ }, [tools, onToolsReady]);
184
+ return null;
185
+ }
186
+ const LexicalUI = React.memo(function LexicalUI({ content = INITIAL_CONTENT, serviceManager, onToolsReady, }) {
187
+ const [floatingAnchorElem, setFloatingAnchorElem] = useState(null);
188
+ const onRef = (_floatingAnchorElem) => {
189
+ if (_floatingAnchorElem !== null) {
190
+ setFloatingAnchorElem(_floatingAnchorElem);
191
+ }
192
+ };
193
+ const handleChange = useCallback((_editorState) => {
194
+ // onChange handler - can be used for tracking changes
195
+ }, []);
196
+ return (_jsxs(Box, { sx: {
197
+ flex: 1,
198
+ display: 'flex',
199
+ flexDirection: 'column',
200
+ overflow: 'auto',
201
+ padding: 3,
202
+ }, children: [_jsxs(Box, { sx: {
203
+ marginBottom: 3,
204
+ paddingBottom: 3,
205
+ borderBottom: '1px solid',
206
+ borderColor: 'border.default',
207
+ }, children: [_jsx("h1", { children: "Agent Runtime Lexical Example" }), _jsx("p", { children: "Platform-agnostic tool usage with agent-runtimes integration. Use the AI copilot to manipulate the document." })] }), _jsx(Box, { sx: {
208
+ border: '1px solid',
209
+ borderColor: 'border.default',
210
+ borderRadius: 2,
211
+ padding: 3,
212
+ backgroundColor: 'canvas.default',
213
+ minHeight: '600px',
214
+ }, children: _jsxs(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: [_jsx(LexicalToolsPlugin, { onToolsReady: onToolsReady }), _jsx(LexicalComposer, { initialConfig: editorConfig, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(RichTextPlugin, { contentEditable: _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), ErrorBoundary: LexicalErrorBoundary }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), _jsx(LoadContentPlugin, { content: content }), _jsx(CodeHighlightPlugin, {}), _jsx(ImagesPlugin, { captionsEnabled: false }), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(JupyterReactTheme, { children: _jsx(SimpleKernelPluginsInner, {}) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] })), _jsx(ChatInlinePlugin, { protocol: {
215
+ type: 'ag-ui',
216
+ endpoint: AG_UI_ENDPOINT,
217
+ } })] }) })] }) })] }));
218
+ });
219
+ function LexicalWithChat({ content, serviceManager, }) {
220
+ // Ensure the agent exists before rendering chat
221
+ const { isReady, error } = useEnsureAgent(AGENT_ID, BASE_URL);
222
+ // State to hold tools - populated by LexicalToolsPlugin inside the context
223
+ const [tools, setTools] = useState([]);
224
+ // Stable callback for receiving tools from LexicalToolsPlugin
225
+ const handleToolsReady = useCallback((newTools) => {
226
+ setTools(newTools);
227
+ }, []);
228
+ return (_jsxs(Box, { sx: {
229
+ height: '100vh',
230
+ width: '100vw',
231
+ display: 'flex',
232
+ overflow: 'hidden',
233
+ }, children: [_jsx(LexicalUI, { content: content, serviceManager: serviceManager, onToolsReady: handleToolsReady }), error && (_jsxs(Box, { sx: {
234
+ position: 'fixed',
235
+ bottom: 20,
236
+ right: 20,
237
+ padding: 3,
238
+ backgroundColor: 'danger.subtle',
239
+ color: 'danger.fg',
240
+ borderRadius: 2,
241
+ maxWidth: 300,
242
+ }, children: [_jsx("strong", { children: "Error:" }), " ", error] })), isReady && (_jsx(ChatFloating, { endpoint: AG_UI_ENDPOINT, title: "Lexical AI Agent Runtime", description: "Hi! I can help you edit documents. Try: 'Insert a heading', 'Add a code block', or 'Create a list'", defaultOpen: true, defaultViewMode: "panel", position: "bottom-right", brandColor: "#7c3aed", tools: tools, useStore: false, suggestions: [
243
+ {
244
+ title: 'Insert heading',
245
+ message: 'Insert a heading that says "Welcome"',
246
+ },
247
+ {
248
+ title: 'Add code block',
249
+ message: 'Add a Python code block with a hello world example',
250
+ },
251
+ {
252
+ title: 'Create list',
253
+ message: 'Create a bullet list with three items about Jupyter',
254
+ },
255
+ ] }))] }));
256
+ }
257
+ function AgentRuntimeLexicalExample({ content, serviceManager, }) {
258
+ return _jsx(LexicalWithChat, { content: content, serviceManager: serviceManager });
259
+ }
260
+ export default AgentRuntimeLexicalExample;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Agent Runtime Lexical Example - Next generation chat with Lexical editor.
3
+ *
4
+ * This example demonstrates using the chat component with:
5
+ * - Lexical editor integration
6
+ * - Frontend tool execution
7
+ * - Multiple protocol support (AG-UI, A2A)
8
+ * - Middleware and extensions
9
+ *
10
+ * To run this example, create a .env file with:
11
+ * - VITE_DATALAYER_API_TOKEN: Get from https://datalayer.app/settings/iam/tokens
12
+ *
13
+ * @module examples/ChatLexicalExample
14
+ */
15
+ import 'prismjs';
16
+ import 'prismjs/components/prism-clike';
17
+ import 'prismjs/components/prism-javascript';
18
+ import 'prismjs/components/prism-markup';
19
+ import 'prismjs/components/prism-markdown';
20
+ import 'prismjs/components/prism-c';
21
+ import 'prismjs/components/prism-css';
22
+ import 'prismjs/components/prism-objectivec';
23
+ import 'prismjs/components/prism-sql';
24
+ import 'prismjs/components/prism-python';
25
+ import 'prismjs/components/prism-rust';
26
+ import 'prismjs/components/prism-swift';
27
+ import type { ServiceManager } from '@jupyterlab/services';
28
+ import '@datalayer/jupyter-lexical/style/index.css';
29
+ import './lexical/lexical-theme.css';
30
+ /**
31
+ * Agent Runtime Lexical Sidebar Example with Simple integration
32
+ */
33
+ interface ChatLexicalExampleProps {
34
+ serviceManager?: ServiceManager.IManager;
35
+ }
36
+ export declare function ChatLexicalExampleInner({ serviceManager, }: ChatLexicalExampleProps): import("react/jsx-runtime").JSX.Element;
37
+ /**
38
+ * Main example component with Simple wrapper
39
+ */
40
+ export declare function AgentRuntimeLexicalSidebarExample(): import("react/jsx-runtime").JSX.Element;
41
+ export default AgentRuntimeLexicalSidebarExample;