@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,212 @@
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
+ * MCP-UI extension for chat component.
8
+ * Renders MCP UI protocol messages and resources.
9
+ *
10
+ * @module components/chat/extensions/MCPUIExtension
11
+ */
12
+ import React from 'react';
13
+ /**
14
+ * Create MCP-UI activity renderer
15
+ */
16
+ export function createMCPUIRenderer(customRenderers) {
17
+ // Track resources per session
18
+ const contexts = new Map();
19
+ const getContext = (sessionId) => {
20
+ if (!contexts.has(sessionId)) {
21
+ contexts.set(sessionId, {
22
+ resources: new Map(),
23
+ });
24
+ }
25
+ return contexts.get(sessionId);
26
+ };
27
+ return {
28
+ name: 'mcp-ui-renderer',
29
+ type: 'activity-renderer',
30
+ activityTypes: ['mcp-ui'],
31
+ render: ({ activityType: _activityType, data, message: _message }) => {
32
+ // Use default session for now
33
+ const sessionId = 'default';
34
+ const mcpContext = getContext(sessionId);
35
+ const mcpData = data;
36
+ // Handle resource list
37
+ if (mcpData.resourceList) {
38
+ for (const resource of mcpData.resourceList.resources) {
39
+ mcpContext.resources.set(resource.uri, resource);
40
+ }
41
+ return (_jsx("div", { className: "mcp-ui-resource-list", children: mcpData.resourceList.resources.map((resource, index) => (_jsx(ResourceItem, { resource: resource }, resource.uri || index))) }));
42
+ }
43
+ // Handle resource content
44
+ if (mcpData.resourceContent) {
45
+ const { uri, content } = mcpData.resourceContent;
46
+ mcpContext.resources.set(uri, content);
47
+ // Check for custom renderer
48
+ if (customRenderers && content.mimeType) {
49
+ const CustomRenderer = customRenderers[content.mimeType];
50
+ if (CustomRenderer) {
51
+ return _jsx(CustomRenderer, { resource: content });
52
+ }
53
+ }
54
+ return _jsx(ResourceContent, { resource: content });
55
+ }
56
+ // Handle UI element
57
+ if (mcpData.uiElement) {
58
+ return _jsx(UIElement, { element: mcpData.uiElement });
59
+ }
60
+ // Fallback: render raw data
61
+ return _jsx("pre", { className: "mcp-ui-raw", children: JSON.stringify(data, null, 2) });
62
+ },
63
+ };
64
+ }
65
+ /**
66
+ * Resource item component
67
+ */
68
+ const ResourceItem = ({ resource }) => {
69
+ return (_jsxs("div", { style: {
70
+ padding: '8px 12px',
71
+ margin: '4px 0',
72
+ backgroundColor: 'var(--color-canvas-subtle)',
73
+ borderRadius: '6px',
74
+ border: '1px solid var(--color-border-default)',
75
+ }, children: [_jsx("div", { style: { fontWeight: 500, marginBottom: '4px' }, children: resource.name || resource.uri }), resource.description && (_jsx("div", { style: { fontSize: '12px', color: 'var(--color-fg-muted)' }, children: resource.description })), resource.mimeType && (_jsx("div", { style: {
76
+ fontSize: '11px',
77
+ color: 'var(--color-fg-subtle)',
78
+ marginTop: '4px',
79
+ }, children: resource.mimeType }))] }));
80
+ };
81
+ /**
82
+ * Resource content component
83
+ */
84
+ const ResourceContent = ({ resource, }) => {
85
+ const mimeType = resource.mimeType || 'text/plain';
86
+ // Handle text content
87
+ if (resource.text ||
88
+ (mimeType.startsWith('text/') && typeof resource.content === 'string')) {
89
+ const text = resource.text || resource.content;
90
+ if (mimeType === 'text/html') {
91
+ return (_jsx("div", { className: "mcp-ui-html", dangerouslySetInnerHTML: { __html: text }, style: {
92
+ padding: '12px',
93
+ backgroundColor: 'var(--color-canvas-subtle)',
94
+ borderRadius: '6px',
95
+ } }));
96
+ }
97
+ if (mimeType === 'text/markdown') {
98
+ // For markdown, we'd ideally use a markdown renderer
99
+ // For now, just show as preformatted text
100
+ return (_jsx("pre", { style: {
101
+ padding: '12px',
102
+ backgroundColor: 'var(--color-canvas-subtle)',
103
+ borderRadius: '6px',
104
+ overflow: 'auto',
105
+ whiteSpace: 'pre-wrap',
106
+ }, children: text }));
107
+ }
108
+ // Plain text or code
109
+ return (_jsx("pre", { style: {
110
+ padding: '12px',
111
+ backgroundColor: 'var(--color-canvas-subtle)',
112
+ borderRadius: '6px',
113
+ overflow: 'auto',
114
+ whiteSpace: 'pre-wrap',
115
+ fontFamily: 'monospace',
116
+ }, children: text }));
117
+ }
118
+ // Handle blob content (base64 encoded)
119
+ if (resource.blob) {
120
+ if (mimeType.startsWith('image/')) {
121
+ return (_jsx("img", { src: `data:${mimeType};base64,${resource.blob}`, alt: resource.name || 'MCP Resource', style: { maxWidth: '100%', borderRadius: '6px' } }));
122
+ }
123
+ // For other blob types, show download link
124
+ return (_jsxs("a", { href: `data:${mimeType};base64,${resource.blob}`, download: resource.name || 'resource', style: {
125
+ display: 'inline-block',
126
+ padding: '8px 16px',
127
+ backgroundColor: 'var(--color-accent-emphasis)',
128
+ color: 'var(--color-fg-on-emphasis)',
129
+ borderRadius: '6px',
130
+ textDecoration: 'none',
131
+ }, children: ["Download ", resource.name || 'resource'] }));
132
+ }
133
+ // Handle JSON content
134
+ if (mimeType === 'application/json' || typeof resource.content === 'object') {
135
+ return (_jsx("pre", { style: {
136
+ padding: '12px',
137
+ backgroundColor: 'var(--color-canvas-subtle)',
138
+ borderRadius: '6px',
139
+ overflow: 'auto',
140
+ fontFamily: 'monospace',
141
+ }, children: JSON.stringify(resource.content, null, 2) }));
142
+ }
143
+ // Fallback
144
+ return (_jsxs("div", { style: {
145
+ padding: '12px',
146
+ backgroundColor: 'var(--color-canvas-subtle)',
147
+ borderRadius: '6px',
148
+ color: 'var(--color-fg-muted)',
149
+ }, children: ["Resource: ", resource.uri] }));
150
+ };
151
+ /**
152
+ * UI Element component for rendering MCP UI elements
153
+ */
154
+ const UIElement = ({ element, }) => {
155
+ if (!element)
156
+ return null;
157
+ const { type, props = {}, children } = element;
158
+ // Map MCP UI element types to HTML elements
159
+ const elementMap = {
160
+ container: 'div',
161
+ text: 'span',
162
+ button: 'button',
163
+ input: 'input',
164
+ form: 'form',
165
+ list: 'ul',
166
+ listItem: 'li',
167
+ heading: 'h3',
168
+ paragraph: 'p',
169
+ link: 'a',
170
+ image: 'img',
171
+ code: 'code',
172
+ pre: 'pre',
173
+ };
174
+ const htmlTag = elementMap[type] || 'div';
175
+ return React.createElement(htmlTag, {
176
+ ...props,
177
+ style: {
178
+ ...(props.style || {}),
179
+ },
180
+ }, children?.map((child, index) => (_jsx(UIElement, { element: child.uiElement }, index))));
181
+ };
182
+ /**
183
+ * MCP-UI Extension implementation class
184
+ */
185
+ export class MCPUIExtensionImpl {
186
+ renderer;
187
+ customRenderers;
188
+ constructor(customRenderers) {
189
+ this.customRenderers = customRenderers || {};
190
+ this.renderer = createMCPUIRenderer(this.customRenderers);
191
+ }
192
+ /**
193
+ * Get the activity renderer extension
194
+ */
195
+ getRenderer() {
196
+ return this.renderer;
197
+ }
198
+ /**
199
+ * Register a custom renderer for a MIME type
200
+ */
201
+ registerMimeTypeRenderer(mimeType, renderer) {
202
+ this.customRenderers[mimeType] = renderer;
203
+ // Recreate renderer with updated custom renderers
204
+ this.renderer = createMCPUIRenderer(this.customRenderers);
205
+ }
206
+ /**
207
+ * Cleanup extension state
208
+ */
209
+ cleanup() {
210
+ // Context cleanup handled by renderer garbage collection
211
+ }
212
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Extension exports for chat component.
3
+ *
4
+ * @module components/chat/extensions
5
+ */
6
+ export { ExtensionRegistry, createMessageRenderer, createActivityRenderer, } from './ExtensionRegistry';
7
+ export { createA2UIRenderer, A2UIExtensionImpl, type A2UIMessage, } from './A2UIExtension';
8
+ export { createMCPUIRenderer, MCPUIExtensionImpl, type MCPUIMessage, type MCPUIResource, } from './MCPUIExtension';
9
+ export type { ChatExtension, ExtensionType, MessageRendererExtension, ActivityRendererExtension, ToolUIExtension, ProtocolEventExtension, PanelExtension, A2UIExtension, } from '../types/extension';
@@ -0,0 +1,12 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Extension exports for chat component.
7
+ *
8
+ * @module components/chat/extensions
9
+ */
10
+ export { ExtensionRegistry, createMessageRenderer, createActivityRenderer, } from './ExtensionRegistry';
11
+ export { createA2UIRenderer, A2UIExtensionImpl, } from './A2UIExtension';
12
+ export { createMCPUIRenderer, MCPUIExtensionImpl, } from './MCPUIExtension';
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Call the API extension
3
+ *
4
+ * @param endPoint - API REST end point for the extension
5
+ * @param init - Initial values for the request
6
+ * @returns The response body interpreted as JSON
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // GET request
11
+ * const config = await requestAPI<Config>('config');
12
+ *
13
+ * // POST request
14
+ * const result = await requestAPI<Result>('chat', {
15
+ * method: 'POST',
16
+ * body: JSON.stringify({ message: 'Hello' }),
17
+ * });
18
+ * ```
19
+ */
20
+ export declare function requestAPI<T>(endPoint?: string, init?: RequestInit): Promise<T>;
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Simple API request handler.
7
+ * Helper function to make API requests to the Simple server.
8
+ *
9
+ * @module components/chat/handler
10
+ */
11
+ import { URLExt } from '@jupyterlab/coreutils';
12
+ import { ServerConnection } from '@jupyterlab/services';
13
+ /**
14
+ * Call the API extension
15
+ *
16
+ * @param endPoint - API REST end point for the extension
17
+ * @param init - Initial values for the request
18
+ * @returns The response body interpreted as JSON
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * // GET request
23
+ * const config = await requestAPI<Config>('config');
24
+ *
25
+ * // POST request
26
+ * const result = await requestAPI<Result>('chat', {
27
+ * method: 'POST',
28
+ * body: JSON.stringify({ message: 'Hello' }),
29
+ * });
30
+ * ```
31
+ */
32
+ export async function requestAPI(endPoint = '', init = {}) {
33
+ // Make request to Simple API
34
+ const settings = ServerConnection.makeSettings();
35
+ const requestUrl = URLExt.join(settings.baseUrl, 'agent_runtimes', endPoint);
36
+ let response;
37
+ try {
38
+ response = await ServerConnection.makeRequest(requestUrl, init, settings);
39
+ }
40
+ catch (error) {
41
+ throw new ServerConnection.NetworkError(error);
42
+ }
43
+ let data = await response.text();
44
+ if (data.length > 0) {
45
+ try {
46
+ data = JSON.parse(data);
47
+ }
48
+ catch {
49
+ // Not a JSON response body
50
+ }
51
+ }
52
+ if (!response.ok) {
53
+ throw new ServerConnection.ResponseError(response, data.message || data);
54
+ }
55
+ return data;
56
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Chat - Next generation chat component for agent-runtimes.
3
+ *
4
+ * Features:
5
+ * - Multiple transport support: AG-UI, A2A, ACP
6
+ * - Hybrid tool execution (frontend/backend)
7
+ * - Human-in-the-loop (HITL) tool approval
8
+ * - Middleware pipeline for extensibility
9
+ * - Extension registry for custom renderers
10
+ * - Primer React UI components
11
+ * - Zustand state management (NO provider required!)
12
+ *
13
+ * @module components/chat
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * import {
18
+ * useChatStore,
19
+ * ChatSidebar,
20
+ * useFrontendTool,
21
+ * DatalayerInferenceProvider,
22
+ * } from './chat';
23
+ *
24
+ * // Setup inference provider (once at app init)
25
+ * const provider = new DatalayerInferenceProvider({
26
+ * apiKey: 'your-api-key',
27
+ * baseUrl: 'https://api.datalayer.io',
28
+ * });
29
+ * useChatStore.getState().setInferenceProvider(provider);
30
+ *
31
+ * function App() {
32
+ * return (
33
+ * <>
34
+ * <ToolRegistrar />
35
+ * <ChatSidebar title="Assistant" />
36
+ * </>
37
+ * );
38
+ * }
39
+ *
40
+ * function ToolRegistrar() {
41
+ * useFrontendTool({
42
+ * name: 'greet',
43
+ * description: 'Greet a user',
44
+ * parameters: [{ name: 'name', type: 'string', required: true }],
45
+ * handler: async ({ name }) => ({ greeting: `Hello, ${name}!` }),
46
+ * });
47
+ * return null;
48
+ * }
49
+ * ```
50
+ */
51
+ export * from './types';
52
+ export { useChatStore, useChatMessages, useChatLoading, useChatStreaming, useChatError, useChatTools, useChatOpen, useChatConfig, useChatReady, useChatInferenceProvider, useChatExtensionRegistry, defaultChatConfig, type ChatStore, type ChatConfig, } from './store';
53
+ export { useChat, useFrontendTool, useBackendTool, ActionRegistrar, type UseChatReturn, type UseFrontendToolFn, } from '../../hooks';
54
+ export { BaseInferenceProvider, DatalayerInferenceProvider, SelfHostedInferenceProvider, type DatalayerInferenceConfig, type SelfHostedInferenceConfig, } from './inference';
55
+ export { BaseProtocolAdapter, AGUIAdapter, A2AAdapter, ACPAdapter, type AGUIAdapterConfig, type A2AAdapterConfig, type ACPAdapterConfig, type ACPSession, type ACPAgent, type ACPPendingPermission, } from './protocols';
56
+ export { ToolExecutor, type ToolExecutionContext } from './tools';
57
+ export { MiddlewarePipeline, createMiddleware, loggingMiddleware, createHITLMiddleware, type RequestContext, type ResponseContext, } from './middleware';
58
+ export { ExtensionRegistry, createMessageRenderer, createActivityRenderer, createA2UIRenderer, A2UIExtensionImpl, type A2UIMessage, } from './extensions';
59
+ export { ChatMessages, ChatInputPrompt, ChatSidebar, ChatStandalone, ChatBase, ToolApprovalDialog, useToolApprovalDialog, PoweredByTag, FloatingBrandButton, ChatHeader, MessagePart, TextPart, ReasoningPart, ToolPart, DynamicToolPart, ToolCallDisplay, Chat, ChatFloating, type ChatMessagesProps, type ChatInputPromptProps, type ChatSidebarProps, type ChatStandaloneProps, type MessageHandler, type ChatBaseProps, type ProtocolConfig, type ToolApprovalDialogProps, type PoweredByTagProps, type FloatingBrandButtonProps, type ChatFloatingProps, type ToolCallRenderContext, type ToolCallStatus, type RenderToolResult, type RespondCallback, type Suggestion, type ChatHeaderProps, type ConnectionState, type MessagePartProps, type TextPartProps, type ReasoningPartProps, type ToolPartProps, type DynamicToolPartProps, type ToolCallDisplayProps, type ChatProps, type Transport, type Extension, } from './components';
60
+ export { requestAPI } from './handler';
61
+ export { useKeyboardShortcuts, useChatKeyboardShortcuts, getShortcutDisplay, type KeyboardShortcut, type UseKeyboardShortcutsOptions, } from '../../hooks';
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Chat - Next generation chat component for agent-runtimes.
7
+ *
8
+ * Features:
9
+ * - Multiple transport support: AG-UI, A2A, ACP
10
+ * - Hybrid tool execution (frontend/backend)
11
+ * - Human-in-the-loop (HITL) tool approval
12
+ * - Middleware pipeline for extensibility
13
+ * - Extension registry for custom renderers
14
+ * - Primer React UI components
15
+ * - Zustand state management (NO provider required!)
16
+ *
17
+ * @module components/chat
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * import {
22
+ * useChatStore,
23
+ * ChatSidebar,
24
+ * useFrontendTool,
25
+ * DatalayerInferenceProvider,
26
+ * } from './chat';
27
+ *
28
+ * // Setup inference provider (once at app init)
29
+ * const provider = new DatalayerInferenceProvider({
30
+ * apiKey: 'your-api-key',
31
+ * baseUrl: 'https://api.datalayer.io',
32
+ * });
33
+ * useChatStore.getState().setInferenceProvider(provider);
34
+ *
35
+ * function App() {
36
+ * return (
37
+ * <>
38
+ * <ToolRegistrar />
39
+ * <ChatSidebar title="Assistant" />
40
+ * </>
41
+ * );
42
+ * }
43
+ *
44
+ * function ToolRegistrar() {
45
+ * useFrontendTool({
46
+ * name: 'greet',
47
+ * description: 'Greet a user',
48
+ * parameters: [{ name: 'name', type: 'string', required: true }],
49
+ * handler: async ({ name }) => ({ greeting: `Hello, ${name}!` }),
50
+ * });
51
+ * return null;
52
+ * }
53
+ * ```
54
+ */
55
+ // Types
56
+ export * from './types';
57
+ // Store (primary state management - no provider needed!)
58
+ export { useChatStore, useChatMessages, useChatLoading, useChatStreaming, useChatError, useChatTools, useChatOpen, useChatConfig, useChatReady, useChatInferenceProvider, useChatExtensionRegistry, defaultChatConfig, } from './store';
59
+ // Hooks (re-exported from main hooks folder)
60
+ export { useChat, useFrontendTool, useBackendTool, ActionRegistrar, } from '../../hooks';
61
+ // Inference Providers
62
+ export { BaseInferenceProvider, DatalayerInferenceProvider, SelfHostedInferenceProvider, } from './inference';
63
+ // Protocol Adapters
64
+ export { BaseProtocolAdapter, AGUIAdapter, A2AAdapter, ACPAdapter, } from './protocols';
65
+ // Tools
66
+ export { ToolExecutor } from './tools';
67
+ // Middleware
68
+ export { MiddlewarePipeline, createMiddleware, loggingMiddleware, createHITLMiddleware, } from './middleware';
69
+ // Extensions
70
+ export { ExtensionRegistry, createMessageRenderer, createActivityRenderer, createA2UIRenderer, A2UIExtensionImpl, } from './extensions';
71
+ // Components
72
+ export { ChatMessages, ChatInputPrompt, ChatSidebar, ChatStandalone, ChatBase, ToolApprovalDialog, useToolApprovalDialog, PoweredByTag, FloatingBrandButton, ChatHeader, MessagePart, TextPart, ReasoningPart, ToolPart, DynamicToolPart, ToolCallDisplay, Chat, ChatFloating, } from './components';
73
+ // Simple API request handler (merged from chat)
74
+ export { requestAPI } from './handler';
75
+ // Keyboard shortcuts (re-exported from main hooks folder)
76
+ export { useKeyboardShortcuts, useChatKeyboardShortcuts, getShortcutDisplay, } from '../../hooks';
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Base inference provider class with common functionality.
3
+ *
4
+ * @module components/chat/inference/BaseInferenceProvider
5
+ */
6
+ import type { InferenceProvider, InferenceProviderConfig, InferenceRequestOptions, InferenceResponse, StreamEventHandler } from '../types';
7
+ import type { ChatMessage } from '../types/message';
8
+ import type { ToolExecutionResult } from '../types/tool';
9
+ /**
10
+ * Abstract base class for inference providers
11
+ */
12
+ export declare abstract class BaseInferenceProvider implements InferenceProvider {
13
+ protected config: InferenceProviderConfig;
14
+ protected abortController: AbortController | null;
15
+ abstract readonly name: string;
16
+ constructor(config: InferenceProviderConfig);
17
+ /**
18
+ * Send a message and get a response (non-streaming)
19
+ */
20
+ abstract sendMessage(messages: ChatMessage[], options?: InferenceRequestOptions): Promise<InferenceResponse>;
21
+ /**
22
+ * Send a message with streaming response
23
+ */
24
+ abstract streamMessage(messages: ChatMessage[], options?: InferenceRequestOptions, onEvent?: StreamEventHandler): Promise<InferenceResponse>;
25
+ /**
26
+ * Cancel an ongoing request
27
+ */
28
+ cancelRequest(): void;
29
+ /**
30
+ * Execute a backend tool (optional, for hybrid execution)
31
+ */
32
+ executeBackendTool(_toolName: string, _args: Record<string, unknown>, _options?: InferenceRequestOptions): Promise<ToolExecutionResult>;
33
+ /**
34
+ * Check if provider is available/configured
35
+ */
36
+ isAvailable(): boolean;
37
+ /**
38
+ * Get provider configuration
39
+ */
40
+ getConfig(): InferenceProviderConfig;
41
+ /**
42
+ * Create abort controller for request
43
+ */
44
+ protected createAbortController(signal?: AbortSignal): AbortController;
45
+ /**
46
+ * Build headers for API requests
47
+ */
48
+ protected buildHeaders(additionalHeaders?: Record<string, string>): Record<string, string>;
49
+ /**
50
+ * Convert internal messages to provider-specific format
51
+ */
52
+ protected abstract convertMessages(messages: ChatMessage[]): unknown[];
53
+ /**
54
+ * Parse provider response to internal format
55
+ */
56
+ protected abstract parseResponse(response: unknown): InferenceResponse;
57
+ }
@@ -0,0 +1,69 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Abstract base class for inference providers
7
+ */
8
+ export class BaseInferenceProvider {
9
+ config;
10
+ abortController = null;
11
+ constructor(config) {
12
+ this.config = config;
13
+ }
14
+ /**
15
+ * Cancel an ongoing request
16
+ */
17
+ cancelRequest() {
18
+ if (this.abortController) {
19
+ this.abortController.abort();
20
+ this.abortController = null;
21
+ }
22
+ }
23
+ /**
24
+ * Execute a backend tool (optional, for hybrid execution)
25
+ */
26
+ async executeBackendTool(_toolName, _args, _options) {
27
+ return {
28
+ success: false,
29
+ error: `Backend tool execution not supported by ${this.name} provider`,
30
+ };
31
+ }
32
+ /**
33
+ * Check if provider is available/configured
34
+ */
35
+ isAvailable() {
36
+ return !!this.config.apiKey || !!this.config.baseUrl;
37
+ }
38
+ /**
39
+ * Get provider configuration
40
+ */
41
+ getConfig() {
42
+ return { ...this.config };
43
+ }
44
+ /**
45
+ * Create abort controller for request
46
+ */
47
+ createAbortController(signal) {
48
+ this.abortController = new AbortController();
49
+ // Link to external signal if provided
50
+ if (signal) {
51
+ signal.addEventListener('abort', () => {
52
+ this.abortController?.abort();
53
+ });
54
+ }
55
+ return this.abortController;
56
+ }
57
+ /**
58
+ * Build headers for API requests
59
+ */
60
+ buildHeaders(additionalHeaders) {
61
+ const headers = {
62
+ 'Content-Type': 'application/json',
63
+ };
64
+ if (this.config.apiKey) {
65
+ headers['Authorization'] = `Bearer ${this.config.apiKey}`;
66
+ }
67
+ return { ...headers, ...additionalHeaders };
68
+ }
69
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Datalayer inference provider implementation.
3
+ * Uses Datalayer's API for LLM inference.
4
+ *
5
+ * @module components/chat/inference/DatalayerInferenceProvider
6
+ */
7
+ import type { InferenceProviderConfig, InferenceRequestOptions, InferenceResponse, StreamEventHandler } from '../types';
8
+ import type { ChatMessage } from '../types/message';
9
+ import type { ToolExecutionResult } from '../types/tool';
10
+ import { BaseInferenceProvider } from './BaseInferenceProvider';
11
+ /**
12
+ * Finish reason type for inference responses
13
+ */
14
+ export type FinishReason = 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'error';
15
+ /**
16
+ * Datalayer-specific configuration
17
+ */
18
+ export interface DatalayerInferenceConfig extends InferenceProviderConfig {
19
+ /** Datalayer API key */
20
+ apiKey: string;
21
+ /** Base URL for Datalayer API */
22
+ baseUrl?: string;
23
+ /** Model to use */
24
+ model?: string;
25
+ /** Agent ID for agent-specific inference */
26
+ agentId?: string;
27
+ }
28
+ /**
29
+ * Datalayer inference provider
30
+ */
31
+ export declare class DatalayerInferenceProvider extends BaseInferenceProvider {
32
+ readonly name = "datalayer";
33
+ private datalayerConfig;
34
+ constructor(config: DatalayerInferenceConfig);
35
+ /**
36
+ * Send a message and get a response (non-streaming)
37
+ */
38
+ sendMessage(messages: ChatMessage[], options?: InferenceRequestOptions): Promise<InferenceResponse>;
39
+ /**
40
+ * Send a message with streaming response
41
+ */
42
+ streamMessage(messages: ChatMessage[], options?: InferenceRequestOptions, onEvent?: StreamEventHandler): Promise<InferenceResponse>;
43
+ /**
44
+ * Execute a backend tool
45
+ */
46
+ executeBackendTool(toolName: string, args: Record<string, unknown>, options?: InferenceRequestOptions): Promise<ToolExecutionResult>;
47
+ /**
48
+ * Check if provider is available
49
+ */
50
+ isAvailable(): boolean;
51
+ /**
52
+ * Convert internal messages to OpenAI-compatible format
53
+ */
54
+ protected convertMessages(messages: ChatMessage[]): unknown[];
55
+ /**
56
+ * Convert tool definitions to OpenAI format
57
+ */
58
+ private convertTools;
59
+ /**
60
+ * Parse API response to internal format
61
+ */
62
+ protected parseResponse(data: {
63
+ choices?: Array<{
64
+ message?: {
65
+ role?: string;
66
+ content?: string;
67
+ tool_calls?: Array<{
68
+ id: string;
69
+ function: {
70
+ name: string;
71
+ arguments: string;
72
+ };
73
+ }>;
74
+ };
75
+ finish_reason?: string;
76
+ }>;
77
+ usage?: {
78
+ prompt_tokens?: number;
79
+ completion_tokens?: number;
80
+ total_tokens?: number;
81
+ };
82
+ }): InferenceResponse;
83
+ }