@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,181 @@
1
+ /**
2
+ * Extension types for chat component.
3
+ * Extensions add pluggable UI and protocol capabilities.
4
+ *
5
+ * @module components/chat/types/extension
6
+ */
7
+ import type { ReactNode } from 'react';
8
+ import type { ChatMessage } from './message';
9
+ import type { ToolRenderProps } from './tool';
10
+ import type { ProtocolEvent } from './protocol';
11
+ /**
12
+ * Extension type identifiers
13
+ */
14
+ export type ExtensionType = 'a2ui' | 'mcp-ui' | 'tool-approval' | 'dev-console' | 'activity' | 'custom';
15
+ /**
16
+ * Extension lifecycle hooks
17
+ */
18
+ export interface ExtensionLifecycle {
19
+ /** Called when extension is registered */
20
+ onRegister?: () => void;
21
+ /** Called when extension is unregistered */
22
+ onUnregister?: () => void;
23
+ /** Called when chat context changes */
24
+ onContextChange?: (context: unknown) => void;
25
+ }
26
+ /**
27
+ * Message renderer extension
28
+ * Used to render custom message types (A2UI, activity messages, etc.)
29
+ */
30
+ export interface MessageRendererExtension {
31
+ type: 'message-renderer';
32
+ /** Unique extension name */
33
+ name: string;
34
+ /** Check if this extension can render the message */
35
+ canRender: (message: ChatMessage) => boolean;
36
+ /** Render the message */
37
+ render: (props: {
38
+ message: ChatMessage;
39
+ isStreaming?: boolean;
40
+ }) => ReactNode;
41
+ /** Priority (higher = checked first) */
42
+ priority?: number;
43
+ }
44
+ /**
45
+ * Activity renderer extension
46
+ * Used to render protocol-specific activity messages
47
+ */
48
+ export interface ActivityRendererExtension {
49
+ type: 'activity-renderer';
50
+ /** Unique extension name */
51
+ name: string;
52
+ /** Activity types this extension handles */
53
+ activityTypes: string[];
54
+ /** Render the activity */
55
+ render: (props: {
56
+ activityType: string;
57
+ data: unknown;
58
+ message: ChatMessage;
59
+ }) => ReactNode;
60
+ /** Priority (higher = checked first) */
61
+ priority?: number;
62
+ }
63
+ /**
64
+ * Tool UI extension
65
+ * Used to provide custom UI for tool calls (beyond tool's own render)
66
+ */
67
+ export interface ToolUIExtension {
68
+ type: 'tool-ui';
69
+ /** Unique extension name */
70
+ name: string;
71
+ /** Tool names this extension handles (or '*' for all) */
72
+ toolNames: string[] | '*';
73
+ /** Render custom UI for tool */
74
+ render: (props: ToolRenderProps & {
75
+ toolName: string;
76
+ defaultRender: () => ReactNode;
77
+ }) => ReactNode;
78
+ /** Priority (higher = checked first) */
79
+ priority?: number;
80
+ }
81
+ /**
82
+ * Protocol event extension
83
+ * Used to handle custom protocol events
84
+ */
85
+ export interface ProtocolEventExtension {
86
+ type: 'protocol-event';
87
+ /** Unique extension name */
88
+ name: string;
89
+ /** Event types this extension handles */
90
+ eventTypes: string[];
91
+ /** Handle the protocol event */
92
+ handle: (event: ProtocolEvent) => void;
93
+ /** Optionally render UI for the event */
94
+ render?: (event: ProtocolEvent) => ReactNode;
95
+ }
96
+ /**
97
+ * Panel extension
98
+ * Used to add custom panels (dev console, settings, etc.)
99
+ */
100
+ export interface PanelExtension {
101
+ type: 'panel';
102
+ /** Unique extension name */
103
+ name: string;
104
+ /** Panel title */
105
+ title: string;
106
+ /** Panel icon (optional) */
107
+ icon?: ReactNode;
108
+ /** Panel position */
109
+ position: 'sidebar' | 'bottom' | 'floating';
110
+ /** Render the panel content */
111
+ render: () => ReactNode;
112
+ /** Whether panel is initially visible */
113
+ defaultVisible?: boolean;
114
+ }
115
+ /**
116
+ * Union type for all extensions
117
+ */
118
+ export type ChatExtension = MessageRendererExtension | ActivityRendererExtension | ToolUIExtension | ProtocolEventExtension | PanelExtension;
119
+ /**
120
+ * Extension registration options
121
+ */
122
+ export interface ExtensionRegistrationOptions {
123
+ /** Replace existing extension with same name */
124
+ replace?: boolean;
125
+ /** Enable/disable extension */
126
+ enabled?: boolean;
127
+ }
128
+ /**
129
+ * Extension registry entry
130
+ */
131
+ export interface ExtensionRegistryEntry {
132
+ extension: ChatExtension;
133
+ enabled: boolean;
134
+ registeredAt: Date;
135
+ }
136
+ /**
137
+ * A2UI specific extension types
138
+ */
139
+ export declare namespace A2UIExtension {
140
+ /** A2UI surface state */
141
+ interface Surface {
142
+ id: string;
143
+ root: string;
144
+ styles?: {
145
+ font?: string;
146
+ primaryColor?: string;
147
+ };
148
+ components: Map<string, Component>;
149
+ dataModel: Map<string, unknown>;
150
+ }
151
+ /** A2UI component definition */
152
+ interface Component {
153
+ id: string;
154
+ type: string;
155
+ props: Record<string, unknown>;
156
+ children?: string[];
157
+ }
158
+ /** A2UI message types */
159
+ type MessageType = 'beginRendering' | 'surfaceUpdate' | 'dataModelUpdate' | 'deleteSurface';
160
+ /** A2UI renderer theme */
161
+ interface Theme {
162
+ components?: Record<string, React.ComponentType<unknown>>;
163
+ styles?: Record<string, unknown>;
164
+ }
165
+ }
166
+ /**
167
+ * Type guard to check extension type
168
+ */
169
+ export declare function isMessageRendererExtension(ext: ChatExtension): ext is MessageRendererExtension;
170
+ export declare function isActivityRendererExtension(ext: ChatExtension): ext is ActivityRendererExtension;
171
+ export declare function isToolUIExtension(ext: ChatExtension): ext is ToolUIExtension;
172
+ export declare function isProtocolEventExtension(ext: ChatExtension): ext is ProtocolEventExtension;
173
+ export declare function isPanelExtension(ext: ChatExtension): ext is PanelExtension;
174
+ /**
175
+ * Helper to create a message renderer extension
176
+ */
177
+ export declare function createMessageRenderer(name: string, canRender: MessageRendererExtension['canRender'], render: MessageRendererExtension['render'], priority?: number): MessageRendererExtension;
178
+ /**
179
+ * Helper to create an activity renderer extension
180
+ */
181
+ export declare function createActivityRenderer(name: string, activityTypes: string[], render: ActivityRendererExtension['render'], priority?: number): ActivityRendererExtension;
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Type guard to check extension type
7
+ */
8
+ export function isMessageRendererExtension(ext) {
9
+ return ext.type === 'message-renderer';
10
+ }
11
+ export function isActivityRendererExtension(ext) {
12
+ return ext.type === 'activity-renderer';
13
+ }
14
+ export function isToolUIExtension(ext) {
15
+ return ext.type === 'tool-ui';
16
+ }
17
+ export function isProtocolEventExtension(ext) {
18
+ return ext.type === 'protocol-event';
19
+ }
20
+ export function isPanelExtension(ext) {
21
+ return ext.type === 'panel';
22
+ }
23
+ /**
24
+ * Helper to create a message renderer extension
25
+ */
26
+ export function createMessageRenderer(name, canRender, render, priority = 0) {
27
+ return {
28
+ type: 'message-renderer',
29
+ name,
30
+ canRender,
31
+ render,
32
+ priority,
33
+ };
34
+ }
35
+ /**
36
+ * Helper to create an activity renderer extension
37
+ */
38
+ export function createActivityRenderer(name, activityTypes, render, priority = 0) {
39
+ return {
40
+ type: 'activity-renderer',
41
+ name,
42
+ activityTypes,
43
+ render,
44
+ priority,
45
+ };
46
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Core types for chat component.
3
+ *
4
+ * @module components/chat/types
5
+ */
6
+ export * from './message';
7
+ export * from './tool';
8
+ export * from './inference';
9
+ export * from './protocol';
10
+ export * from './middleware';
11
+ export * from './extension';
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Core types for chat component.
7
+ *
8
+ * @module components/chat/types
9
+ */
10
+ // Re-export all types
11
+ export * from './message';
12
+ export * from './tool';
13
+ export * from './inference';
14
+ export * from './protocol';
15
+ export * from './middleware';
16
+ export * from './extension';
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Inference provider types for chat component.
3
+ * Supports multiple backends: Datalayer, OpenAI, Anthropic, self-hosted.
4
+ *
5
+ * @module components/chat/types/inference
6
+ */
7
+ import type { ChatMessage, ChatMessageDelta } from './message';
8
+ import type { ToolDefinition, ToolCallRequest, ToolExecutionResult } from './tool';
9
+ /**
10
+ * Inference provider configuration
11
+ */
12
+ export interface InferenceProviderConfig {
13
+ /** API key for authentication */
14
+ apiKey?: string;
15
+ /** Base URL for API requests */
16
+ baseUrl?: string;
17
+ /** Model to use for inference */
18
+ model?: string;
19
+ /** Request timeout in milliseconds */
20
+ timeout?: number;
21
+ /** Additional provider-specific options */
22
+ options?: Record<string, unknown>;
23
+ }
24
+ /**
25
+ * Request options for sending messages
26
+ */
27
+ export interface InferenceRequestOptions {
28
+ /** System prompt / instructions */
29
+ instructions?: string;
30
+ /** Temperature for response generation */
31
+ temperature?: number;
32
+ /** Maximum tokens to generate */
33
+ maxTokens?: number;
34
+ /** Tools available for the LLM */
35
+ tools?: ToolDefinition[];
36
+ /** Abort signal for cancellation */
37
+ signal?: AbortSignal;
38
+ /** Thread/conversation ID */
39
+ threadId?: string;
40
+ /** Agent name for multi-agent scenarios */
41
+ agentName?: string;
42
+ /** Additional metadata */
43
+ metadata?: Record<string, unknown>;
44
+ }
45
+ /**
46
+ * Response from inference provider
47
+ */
48
+ export interface InferenceResponse {
49
+ /** Generated message */
50
+ message: ChatMessage;
51
+ /** Usage statistics */
52
+ usage?: {
53
+ promptTokens: number;
54
+ completionTokens: number;
55
+ totalTokens: number;
56
+ };
57
+ /** Finish reason */
58
+ finishReason?: 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'error';
59
+ }
60
+ /**
61
+ * Streaming event types
62
+ */
63
+ export type StreamEventType = 'message-start' | 'content-delta' | 'tool-call-start' | 'tool-call-delta' | 'tool-call-end' | 'message-end' | 'error';
64
+ /**
65
+ * Streaming event
66
+ */
67
+ export interface StreamEvent {
68
+ type: StreamEventType;
69
+ messageId?: string;
70
+ delta?: ChatMessageDelta;
71
+ toolCall?: ToolCallRequest;
72
+ error?: Error;
73
+ finishReason?: string;
74
+ }
75
+ /**
76
+ * Callback for handling stream events
77
+ */
78
+ export type StreamEventHandler = (event: StreamEvent) => void;
79
+ /**
80
+ * Abstract inference provider interface
81
+ */
82
+ export interface InferenceProvider {
83
+ /** Provider name for identification */
84
+ readonly name: string;
85
+ /**
86
+ * Send a message and get a response (non-streaming)
87
+ */
88
+ sendMessage(messages: ChatMessage[], options?: InferenceRequestOptions): Promise<InferenceResponse>;
89
+ /**
90
+ * Send a message with streaming response
91
+ */
92
+ streamMessage(messages: ChatMessage[], options?: InferenceRequestOptions, onEvent?: StreamEventHandler): Promise<InferenceResponse>;
93
+ /**
94
+ * Cancel an ongoing request
95
+ */
96
+ cancelRequest(requestId?: string): void;
97
+ /**
98
+ * Execute a backend tool (for hybrid execution)
99
+ */
100
+ executeBackendTool?(toolName: string, args: Record<string, unknown>, options?: InferenceRequestOptions): Promise<ToolExecutionResult>;
101
+ /**
102
+ * Check if provider is available/configured
103
+ */
104
+ isAvailable(): boolean;
105
+ /**
106
+ * Get provider configuration
107
+ */
108
+ getConfig(): InferenceProviderConfig;
109
+ }
110
+ /**
111
+ * Factory function type for creating inference providers
112
+ */
113
+ export type InferenceProviderFactory = (config: InferenceProviderConfig) => InferenceProvider;
114
+ /**
115
+ * Provider type identifiers
116
+ */
117
+ export type InferenceProviderType = 'datalayer' | 'openai' | 'anthropic' | 'self-hosted' | 'copilotkit';
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export {};
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Message types for chat component.
3
+ * Based on AG-UI protocol message format for interoperability.
4
+ *
5
+ * @module components/chat/types/message
6
+ */
7
+ /**
8
+ * Message role enumeration
9
+ */
10
+ export type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
11
+ /**
12
+ * Tool call status for tracking execution state
13
+ */
14
+ export type ToolCallStatus = 'pending' | 'executing' | 'completed' | 'failed' | 'awaiting-approval';
15
+ /**
16
+ * Content part types for multi-modal messages
17
+ */
18
+ export interface TextContentPart {
19
+ type: 'text';
20
+ text: string;
21
+ }
22
+ export interface ImageContentPart {
23
+ type: 'image';
24
+ url: string;
25
+ alt?: string;
26
+ }
27
+ export interface ToolCallContentPart {
28
+ type: 'tool-call';
29
+ toolCallId: string;
30
+ toolName: string;
31
+ args: Record<string, unknown>;
32
+ status: ToolCallStatus;
33
+ result?: unknown;
34
+ }
35
+ export interface ToolResultContentPart {
36
+ type: 'tool-result';
37
+ toolCallId: string;
38
+ toolName: string;
39
+ result: unknown;
40
+ isError?: boolean;
41
+ }
42
+ export interface ActivityContentPart {
43
+ type: 'activity';
44
+ activityType: string;
45
+ data: unknown;
46
+ }
47
+ export type ContentPart = TextContentPart | ImageContentPart | ToolCallContentPart | ToolResultContentPart | ActivityContentPart;
48
+ /**
49
+ * Core message interface
50
+ */
51
+ export interface ChatMessage {
52
+ /** Unique message identifier */
53
+ id: string;
54
+ /** Message role */
55
+ role: MessageRole;
56
+ /** Message content - can be string or structured parts */
57
+ content: string | ContentPart[];
58
+ /** Timestamp when message was created */
59
+ createdAt: Date;
60
+ /** Optional agent name for multi-agent scenarios */
61
+ agentName?: string;
62
+ /** Optional metadata */
63
+ metadata?: Record<string, unknown>;
64
+ /** Tool calls for assistant messages */
65
+ toolCalls?: ToolCallContentPart[];
66
+ /** For activity messages (A2A, A2UI, etc.) */
67
+ activityType?: string;
68
+ activityData?: unknown;
69
+ }
70
+ /**
71
+ * Message input for sending new messages
72
+ */
73
+ export interface ChatMessageInput {
74
+ role: MessageRole;
75
+ content: string | ContentPart[];
76
+ metadata?: Record<string, unknown>;
77
+ }
78
+ /**
79
+ * Streaming message delta for incremental updates
80
+ */
81
+ export interface ChatMessageDelta {
82
+ messageId: string;
83
+ delta: {
84
+ content?: string;
85
+ toolCalls?: Partial<ToolCallContentPart>[];
86
+ };
87
+ }
88
+ /**
89
+ * Conversation thread metadata
90
+ */
91
+ export interface ChatThread {
92
+ id: string;
93
+ title?: string;
94
+ createdAt: Date;
95
+ updatedAt: Date;
96
+ metadata?: Record<string, unknown>;
97
+ }
98
+ /**
99
+ * Generate unique message ID
100
+ */
101
+ export declare function generateMessageId(): string;
102
+ /**
103
+ * Create a new user message
104
+ */
105
+ export declare function createUserMessage(content: string, metadata?: Record<string, unknown>): ChatMessage;
106
+ /**
107
+ * Create a new assistant message
108
+ */
109
+ export declare function createAssistantMessage(content: string, options?: {
110
+ agentName?: string;
111
+ toolCalls?: ToolCallContentPart[];
112
+ metadata?: Record<string, unknown>;
113
+ }): ChatMessage;
114
+ /**
115
+ * Create an activity message (for A2A, A2UI protocols)
116
+ */
117
+ export declare function createActivityMessage(activityType: string, activityData: unknown, metadata?: Record<string, unknown>): ChatMessage;
@@ -0,0 +1,50 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Generate unique message ID
7
+ */
8
+ export function generateMessageId() {
9
+ return `msg_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
10
+ }
11
+ /**
12
+ * Create a new user message
13
+ */
14
+ export function createUserMessage(content, metadata) {
15
+ return {
16
+ id: generateMessageId(),
17
+ role: 'user',
18
+ content,
19
+ createdAt: new Date(),
20
+ metadata,
21
+ };
22
+ }
23
+ /**
24
+ * Create a new assistant message
25
+ */
26
+ export function createAssistantMessage(content, options) {
27
+ return {
28
+ id: generateMessageId(),
29
+ role: 'assistant',
30
+ content,
31
+ createdAt: new Date(),
32
+ agentName: options?.agentName,
33
+ toolCalls: options?.toolCalls,
34
+ metadata: options?.metadata,
35
+ };
36
+ }
37
+ /**
38
+ * Create an activity message (for A2A, A2UI protocols)
39
+ */
40
+ export function createActivityMessage(activityType, activityData, metadata) {
41
+ return {
42
+ id: generateMessageId(),
43
+ role: 'assistant',
44
+ content: [{ type: 'activity', activityType, data: activityData }],
45
+ createdAt: new Date(),
46
+ activityType,
47
+ activityData,
48
+ metadata,
49
+ };
50
+ }
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Middleware types for chat component.
3
+ * Supports request/response interception and tool call middleware.
4
+ *
5
+ * @module components/chat/types/middleware
6
+ */
7
+ import type { ChatMessage } from './message';
8
+ import type { ToolCallRequest, ToolExecutionResult } from './tool';
9
+ import type { InferenceRequestOptions, InferenceResponse } from './inference';
10
+ /**
11
+ * Context passed to middleware functions
12
+ */
13
+ export interface MiddlewareContext {
14
+ /** Thread/conversation ID */
15
+ threadId?: string;
16
+ /** Run/request ID */
17
+ runId?: string;
18
+ /** Request URL */
19
+ url?: string;
20
+ /** Additional properties */
21
+ properties?: Record<string, unknown>;
22
+ }
23
+ /**
24
+ * Middleware for intercepting requests before they're sent
25
+ */
26
+ export interface BeforeRequestMiddleware {
27
+ name: string;
28
+ /**
29
+ * Called before a request is sent to the inference provider
30
+ * Can modify messages, options, or abort the request
31
+ */
32
+ onBeforeRequest: (options: {
33
+ messages: ChatMessage[];
34
+ requestOptions: InferenceRequestOptions;
35
+ context: MiddlewareContext;
36
+ }) => Promise<{
37
+ messages: ChatMessage[];
38
+ requestOptions: InferenceRequestOptions;
39
+ abort?: boolean;
40
+ abortReason?: string;
41
+ }>;
42
+ }
43
+ /**
44
+ * Middleware for intercepting responses after they're received
45
+ */
46
+ export interface AfterRequestMiddleware {
47
+ name: string;
48
+ /**
49
+ * Called after a response is received from the inference provider
50
+ * Can modify the response or perform side effects
51
+ */
52
+ onAfterRequest: (options: {
53
+ inputMessages: ChatMessage[];
54
+ outputMessages: ChatMessage[];
55
+ response: InferenceResponse;
56
+ context: MiddlewareContext;
57
+ }) => Promise<{
58
+ outputMessages: ChatMessage[];
59
+ response: InferenceResponse;
60
+ }>;
61
+ }
62
+ /**
63
+ * Middleware for intercepting tool calls
64
+ */
65
+ export interface ToolCallMiddleware {
66
+ name: string;
67
+ /**
68
+ * Called before a tool is executed
69
+ * Can modify args, approve/reject, or skip execution
70
+ */
71
+ onToolCall: (options: {
72
+ toolCall: ToolCallRequest;
73
+ context: MiddlewareContext;
74
+ }) => Promise<{
75
+ toolCall: ToolCallRequest;
76
+ /** If true, proceed with execution */
77
+ proceed: boolean;
78
+ /** If false, use this result instead of executing */
79
+ overrideResult?: ToolExecutionResult;
80
+ /** Reason for rejection/override */
81
+ reason?: string;
82
+ }>;
83
+ /**
84
+ * Called after a tool is executed (optional)
85
+ */
86
+ onToolResult?: (options: {
87
+ toolCall: ToolCallRequest;
88
+ result: ToolExecutionResult;
89
+ context: MiddlewareContext;
90
+ }) => Promise<{
91
+ result: ToolExecutionResult;
92
+ }>;
93
+ }
94
+ /**
95
+ * Error handling middleware
96
+ */
97
+ export interface ErrorMiddleware {
98
+ name: string;
99
+ /**
100
+ * Called when an error occurs during request/response cycle
101
+ */
102
+ onError: (options: {
103
+ error: Error;
104
+ phase: 'request' | 'response' | 'tool-execution' | 'stream';
105
+ context: MiddlewareContext;
106
+ }) => Promise<{
107
+ /** If true, error is handled and should not propagate */
108
+ handled: boolean;
109
+ /** Optional replacement error */
110
+ error?: Error;
111
+ /** Optional recovery message to show user */
112
+ recoveryMessage?: string;
113
+ }>;
114
+ }
115
+ /**
116
+ * Combined middleware definition
117
+ */
118
+ export interface ChatMiddleware {
119
+ name: string;
120
+ priority?: number;
121
+ beforeRequest?: BeforeRequestMiddleware['onBeforeRequest'];
122
+ afterRequest?: AfterRequestMiddleware['onAfterRequest'];
123
+ onToolCall?: ToolCallMiddleware['onToolCall'];
124
+ onToolResult?: ToolCallMiddleware['onToolResult'];
125
+ onError?: ErrorMiddleware['onError'];
126
+ }
127
+ /**
128
+ * Middleware pipeline configuration
129
+ */
130
+ export interface MiddlewarePipelineConfig {
131
+ /** Middlewares to use */
132
+ middlewares: ChatMiddleware[];
133
+ /** Whether to continue on middleware error */
134
+ continueOnError?: boolean;
135
+ /** Enable middleware logging */
136
+ debug?: boolean;
137
+ }
138
+ /**
139
+ * Built-in middleware names
140
+ */
141
+ export type BuiltInMiddlewareName = 'auth' | 'logging' | 'rate-limit' | 'retry' | 'cache' | 'tool-approval' | 'analytics';
142
+ /**
143
+ * Helper to create a simple before-request middleware
144
+ */
145
+ export declare function createBeforeRequestMiddleware(name: string, handler: BeforeRequestMiddleware['onBeforeRequest']): ChatMiddleware;
146
+ /**
147
+ * Helper to create a simple after-request middleware
148
+ */
149
+ export declare function createAfterRequestMiddleware(name: string, handler: AfterRequestMiddleware['onAfterRequest']): ChatMiddleware;
150
+ /**
151
+ * Helper to create a tool call middleware
152
+ */
153
+ export declare function createToolCallMiddleware(name: string, onToolCall: ToolCallMiddleware['onToolCall'], onToolResult?: ToolCallMiddleware['onToolResult']): ChatMiddleware;