@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,161 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * CopilotKit Lexical Example with CopilotKit Integration.
8
+ *
9
+ * To run this example, create a .env file in the core directory with:
10
+ * - VITE_DATALAYER_API_TOKEN: Get from https://datalayer.app/settings/iam/tokens
11
+ * - VITE_COPILOT_KIT_API_KEY: Get from https://cloud.copilotkit.ai/dashboard
12
+ *
13
+ * You also will need to connect copilot kit to some sort of LLM Add LLM Provider API Key.
14
+ *
15
+ * https://docs.copilotkit.ai/reference/hooks/useFrontendTool
16
+ *
17
+ * @module examples/CopilotKitLexicalExample
18
+ */
19
+ import 'prismjs';
20
+ import 'prismjs/components/prism-clike';
21
+ import 'prismjs/components/prism-javascript';
22
+ import 'prismjs/components/prism-markup';
23
+ import 'prismjs/components/prism-markdown';
24
+ import 'prismjs/components/prism-c';
25
+ import 'prismjs/components/prism-css';
26
+ import 'prismjs/components/prism-objectivec';
27
+ import 'prismjs/components/prism-sql';
28
+ import 'prismjs/components/prism-python';
29
+ import 'prismjs/components/prism-rust';
30
+ import 'prismjs/components/prism-swift';
31
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
32
+ import { $getRoot, $createParagraphNode } from 'lexical';
33
+ import { LexicalComposer } from '@lexical/react/LexicalComposer';
34
+ import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
35
+ import { ContentEditable } from '@lexical/react/LexicalContentEditable';
36
+ import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
37
+ import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
38
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
39
+ import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';
40
+ import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';
41
+ import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
42
+ import { TRANSFORMERS } from '@lexical/markdown';
43
+ import { registerCodeHighlighting } from '@lexical/code';
44
+ import { ListPlugin } from '@lexical/react/LexicalListPlugin';
45
+ import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
46
+ import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
47
+ import { CopilotKit, useFrontendTool } from '@copilotkit/react-core';
48
+ import { CopilotSidebar } from '@copilotkit/react-ui';
49
+ import { Box } from '@datalayer/primer-addons';
50
+ import { JupyterReactTheme, useJupyter } from '@datalayer/jupyter-react';
51
+ import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, AutoLinkPlugin, AutoEmbedPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, } from '@datalayer/jupyter-lexical';
52
+ import { ActionRegistrar, useLexicalToolActions, } from '../tools/adapters/copilotkit/lexicalHooks';
53
+ import { editorConfig } from './lexical/editorConfig';
54
+ import '@datalayer/jupyter-lexical/style/index.css';
55
+ import '@copilotkit/react-ui/styles.css';
56
+ import './lexical/lexical-theme.css';
57
+ // Fixed lexical document ID
58
+ const LEXICAL_ID = 'agui-lexical-example';
59
+ // import contentLexical from './lexicals/vscode.lexical';
60
+ // const INITIAL_CONTENT = JSON.stringify(contentLexical);
61
+ const INITIAL_CONTENT = undefined; // Use default empty document
62
+ /**
63
+ * Lexical plugin for loading initial content into the editor.
64
+ */
65
+ function LoadContentPlugin({ content }) {
66
+ const [editor] = useLexicalComposerContext();
67
+ const isFirstRender = useRef(true);
68
+ useEffect(() => {
69
+ if (!content || !isFirstRender.current) {
70
+ return;
71
+ }
72
+ isFirstRender.current = false;
73
+ try {
74
+ const parsed = JSON.parse(content);
75
+ if (parsed && typeof parsed === 'object' && parsed.root) {
76
+ const editorState = editor.parseEditorState(content);
77
+ editor.setEditorState(editorState, {
78
+ tag: 'history-merge',
79
+ });
80
+ }
81
+ else {
82
+ throw new Error('Invalid Lexical editor state format');
83
+ }
84
+ }
85
+ catch {
86
+ editor.update(() => {
87
+ const root = $getRoot();
88
+ root.clear();
89
+ const paragraph = $createParagraphNode();
90
+ root.append(paragraph);
91
+ }, {
92
+ tag: 'history-merge',
93
+ });
94
+ }
95
+ }, [content, editor]);
96
+ return null;
97
+ }
98
+ /**
99
+ * Lexical plugin for Simple code syntax highlighting.
100
+ */
101
+ function CodeHighlightPlugin() {
102
+ const [editor] = useLexicalComposerContext();
103
+ useEffect(() => {
104
+ return registerCodeHighlighting(editor);
105
+ }, [editor]);
106
+ return null;
107
+ }
108
+ /**
109
+ * Wrapper component for kernel-dependent Simple plugins.
110
+ */
111
+ function SimpleKernelPluginsInner() {
112
+ const { defaultKernel } = useJupyter();
113
+ return (_jsxs(_Fragment, { children: [_jsx(ComponentPickerMenuPlugin, { kernel: defaultKernel }), _jsx(JupyterInputOutputPlugin, { kernel: defaultKernel })] }));
114
+ }
115
+ const LexicalUI = React.memo(function LexicalUI({ content = INITIAL_CONTENT, serviceManager, }) {
116
+ const [floatingAnchorElem, setFloatingAnchorElem] = useState(null);
117
+ const onRef = (_floatingAnchorElem) => {
118
+ if (_floatingAnchorElem !== null) {
119
+ setFloatingAnchorElem(_floatingAnchorElem);
120
+ }
121
+ };
122
+ const handleChange = useCallback((_editorState) => {
123
+ // onChange handler - can be used for tracking changes
124
+ }, []);
125
+ return (_jsx(Box, { sx: {
126
+ height: '100vh',
127
+ width: '100vw',
128
+ display: 'flex',
129
+ overflow: 'hidden',
130
+ }, children: _jsxs(Box, { sx: {
131
+ flex: 1,
132
+ display: 'flex',
133
+ flexDirection: 'column',
134
+ overflow: 'auto',
135
+ padding: 3,
136
+ }, children: [_jsxs(Box, { sx: {
137
+ marginBottom: 3,
138
+ paddingBottom: 3,
139
+ borderBottom: '1px solid',
140
+ borderColor: 'border.default',
141
+ }, children: [_jsx("h1", { children: "CopilotKit Lexical Example" }), _jsx("p", { children: "Platform-agnostic tool usage with CopilotKit integration. Use the AI copilot to manipulate the document." })] }), _jsx(Box, { sx: {
142
+ border: '1px solid',
143
+ borderColor: 'border.default',
144
+ borderRadius: 2,
145
+ padding: 3,
146
+ backgroundColor: 'canvas.default',
147
+ minHeight: '600px',
148
+ }, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsx(LexicalComposer, { initialConfig: editorConfig, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(RichTextPlugin, { contentEditable: _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), ErrorBoundary: LexicalErrorBoundary }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), _jsx(LoadContentPlugin, { content: content }), _jsx(CodeHighlightPlugin, {}), _jsx(ImagesPlugin, { captionsEnabled: false }), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(JupyterReactTheme, { children: _jsx(SimpleKernelPluginsInner, {}) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] }))] }) }) }) })] }) }));
149
+ });
150
+ function LexicalWithTools({ content, serviceManager, }) {
151
+ // Get all actions for this lexical document
152
+ const actions = useLexicalToolActions(LEXICAL_ID);
153
+ return (_jsxs(_Fragment, { children: [actions.map((action, i) => (_jsx(ActionRegistrar, { action: action, useFrontendTool: useFrontendTool }, action.name || i))), _jsx(LexicalUI, { content: content, serviceManager: serviceManager })] }));
154
+ }
155
+ function CopilotKitLexicalExample({ content, serviceManager, }) {
156
+ return (_jsx(CopilotKit, { showDevConsole: true, publicApiKey: import.meta.env.VITE_COPILOT_KIT_API_KEY, children: _jsx(CopilotSidebar, { defaultOpen: true, labels: {
157
+ title: 'Lexical AI Copilot',
158
+ initial: 'Hi! I can help you edit lexical documents. Try: "Insert a heading", "Add a code block", or "Create a list"',
159
+ }, children: _jsx(LexicalWithTools, { content: content, serviceManager: serviceManager }) }) }));
160
+ }
161
+ export default CopilotKitLexicalExample;
@@ -0,0 +1,11 @@
1
+ import { ServiceManager } from '@jupyterlab/services';
2
+ import '@copilotkit/react-ui/styles.css';
3
+ /**
4
+ * Main CopilotKit notebook example component with tool registration
5
+ * IMPORTANT: This must be inside CopilotKit context
6
+ */
7
+ interface CopilotKitNotebookExampleProps {
8
+ serviceManager?: ServiceManager.IManager;
9
+ }
10
+ declare function CopilotKitNotebookExample({ serviceManager, }: CopilotKitNotebookExampleProps): JSX.Element;
11
+ export default CopilotKitNotebookExample;
@@ -0,0 +1,70 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * CopilotKit Notebook Example with CopilotKit Integration
8
+ *
9
+ * To run this example, create a .env file in the core directory with:
10
+ * - VITE_DATALAYER_API_TOKEN: Get from https://datalayer.app/settings/iam/tokens
11
+ * - VITE_COPILOT_KIT_API_KEY: Get from https://cloud.copilotkit.ai/dashboard
12
+ *
13
+ * You also will need to connect co[pilot kit to some sort of LLM Add LLM Provider API Key
14
+ *
15
+ * @module datalayer-core/CopilotKitNotebookExample
16
+ */
17
+ import React from 'react';
18
+ import { Box } from '@datalayer/primer-addons';
19
+ import { Notebook } from '@datalayer/jupyter-react';
20
+ // CopilotKit imports
21
+ import { CopilotKit, useFrontendTool } from '@copilotkit/react-core';
22
+ import { CopilotSidebar } from '@copilotkit/react-ui';
23
+ import '@copilotkit/react-ui/styles.css';
24
+ // Import CopilotKit components and hooks
25
+ import { ActionRegistrar, useNotebookToolActions, } from '../tools/adapters/copilotkit/notebookHooks';
26
+ // Import Matplotlib notebook
27
+ import MatplotlibNotebook from './stores/notebooks/Matplotlib.ipynb.json';
28
+ // Fixed notebook ID
29
+ const NOTEBOOK_ID = 'agui-notebook-example';
30
+ // Use the imported Matplotlib notebook
31
+ const NOTEBOOK_CONTENT = MatplotlibNotebook;
32
+ const NotebookUI = React.memo(function NotebookUI({ serviceManager, }) {
33
+ return (_jsx(Box, { style: {
34
+ height: '100vh',
35
+ width: '100vw',
36
+ display: 'flex',
37
+ overflow: 'hidden',
38
+ }, children: _jsxs(Box, { style: {
39
+ flex: 1,
40
+ display: 'flex',
41
+ flexDirection: 'column',
42
+ overflow: 'auto',
43
+ padding: 24,
44
+ }, children: [_jsxs(Box, { style: {
45
+ marginBottom: 24,
46
+ paddingBottom: 24,
47
+ borderBottom: '1px solid var(--borderColor-default)',
48
+ }, children: [_jsx("h1", { children: "CopilotKit Notebook Example" }), _jsx("p", { children: "Platform-agnostic tool usage with CopilotKit integration." })] }), _jsx(Box, { style: {
49
+ border: '1px solid var(--borderColor-default)',
50
+ borderRadius: 8,
51
+ padding: 24,
52
+ backgroundColor: 'var(--bgColor-default)',
53
+ }, children: serviceManager ? (_jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, serviceManager: serviceManager, height: "600px", cellSidebarMargin: 120, startDefaultKernel: true })) : (_jsx(Box, { style: { padding: 24 }, children: _jsx("p", { children: "Loading service manager..." }) })) })] }) }));
54
+ });
55
+ /**
56
+ * Component to register actions with CopilotKit.
57
+ * Must be inside CopilotKit context.
58
+ */
59
+ function NotebookActions() {
60
+ // Create notebook tool actions (stable reference)
61
+ const actions = useNotebookToolActions(NOTEBOOK_ID);
62
+ return (_jsx(_Fragment, { children: actions.map((action, i) => (_jsx(ActionRegistrar, { action: action, useFrontendTool: useFrontendTool }, action.name || i))) }));
63
+ }
64
+ function CopilotKitNotebookExample({ serviceManager, }) {
65
+ return (_jsx(CopilotKit, { showDevConsole: true, publicApiKey: import.meta.env.VITE_COPILOT_KIT_API_KEY, children: _jsxs(CopilotSidebar, { defaultOpen: true, labels: {
66
+ title: 'Notebook AI Copilot',
67
+ initial: 'Hi! I can help you edit notebook cells.',
68
+ }, children: [_jsx(NotebookActions, {}), _jsx(NotebookUI, { serviceManager: serviceManager })] }) }));
69
+ }
70
+ export default CopilotKitNotebookExample;
@@ -0,0 +1,16 @@
1
+ import { ServiceManager } from '@jupyterlab/services';
2
+ /**
3
+ * Example demonstrating how to use Datalayer services with Notebook
4
+ *
5
+ * This example shows:
6
+ * 1. How to create and use DatalayerServiceManager for kernel management
7
+ * 2. How to create and use DatalayerCollaborationProvider for real-time collaboration
8
+ * 3. How to enable/disable Datalayer collaboration
9
+ * 4. How to pass these to the base Notebook component
10
+ * 5. Graceful fallback when Datalayer credentials are not available
11
+ */
12
+ type IDatalayerNotebookExampleProps = {
13
+ serviceManager?: ServiceManager.IManager;
14
+ };
15
+ declare const DatalayerNotebookExample: (props: IDatalayerNotebookExampleProps) => import("react/jsx-runtime").JSX.Element;
16
+ export default DatalayerNotebookExample;
@@ -0,0 +1,99 @@
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
+ import { useState, useEffect, useMemo } from 'react';
7
+ import { Checkbox, FormControl, Heading } from '@primer/react';
8
+ import { Box } from '@datalayer/primer-addons';
9
+ import { useCoreStore, createDatalayerServiceManager, DatalayerCollaborationProvider, } from '@datalayer/core';
10
+ import { loadJupyterConfig, JupyterReactTheme, Notebook, } from '@datalayer/jupyter-react';
11
+ import nbformatExample from './stores/notebooks/NotebookExample1.ipynb.json';
12
+ // This corresponds to the notebook ID in the URL when you open an existing notbook in your library
13
+ const NOTEBOOK_ID = '01JZQRQ35GG871QQCZW9TB1A8J';
14
+ const DatalayerNotebookExample = (props) => {
15
+ // Load config on component mount
16
+ loadJupyterConfig();
17
+ const [nbformat] = useState(nbformatExample);
18
+ const [enableCollaboration, setEnableCollaboration] = useState(false);
19
+ const [readonly] = useState(false);
20
+ const [serviceManager, setServiceManager] = useState(props.serviceManager);
21
+ const { configuration } = useCoreStore();
22
+ useEffect(() => {
23
+ // Create DatalayerServiceManager if not provided
24
+ const createManager = async () => {
25
+ if (props.serviceManager) {
26
+ // Use provided service manager (should be DatalayerServiceManager from main.tsx)
27
+ // Wait for it to be ready
28
+ await props.serviceManager.ready;
29
+ return;
30
+ }
31
+ // Create DatalayerServiceManager if we have credentials
32
+ if (configuration?.token && configuration?.runUrl) {
33
+ try {
34
+ // Now we can pass undefined to use config/defaults
35
+ const manager = await createDatalayerServiceManager(configuration?.cpuEnvironment, configuration?.credits);
36
+ await manager.ready;
37
+ setServiceManager(manager);
38
+ }
39
+ catch (error) {
40
+ console.error('Failed to create DatalayerServiceManager:', error);
41
+ }
42
+ }
43
+ else {
44
+ console.warn('Datalayer credentials not configured. Please set runUrl and token.');
45
+ }
46
+ };
47
+ createManager();
48
+ }, [props.serviceManager, configuration]);
49
+ // Create the collaboration provider when enabled
50
+ const collaborationProvider = useMemo(() => {
51
+ if (!enableCollaboration) {
52
+ return undefined;
53
+ }
54
+ const runUrl = configuration?.runUrl;
55
+ const token = configuration?.token;
56
+ if (!runUrl || !token) {
57
+ console.warn('Datalayer collaboration enabled but runUrl or token not configured. ' +
58
+ 'Please configure them in the Datalayer store or environment.');
59
+ return undefined;
60
+ }
61
+ // Create and return the Datalayer collaboration provider
62
+ return new DatalayerCollaborationProvider({
63
+ runUrl,
64
+ token,
65
+ });
66
+ }, [enableCollaboration, configuration]);
67
+ return (_jsx(JupyterReactTheme, { children: _jsxs(Box, { p: 3, children: [_jsx(Heading, { as: "h2", sx: { mb: 3 }, children: "Datalayer Notebook Collaboration Example" }), _jsx(Box, { sx: { mb: 3 }, children: _jsxs(FormControl, { children: [_jsx(Checkbox, { checked: enableCollaboration, onChange: e => setEnableCollaboration(e.target.checked) }), _jsx(FormControl.Label, { children: "Enable Datalayer Collaboration" })] }) }), (!configuration?.runUrl || !configuration?.token) && (_jsx(Box, { sx: { mb: 2, p: 2, bg: 'danger.subtle' }, children: "Warning: Datalayer configuration is missing. Please configure runUrl and token to use DatalayerServiceManager and collaboration features." })), !serviceManager && (_jsx(Box, { sx: { mb: 2, p: 2, bg: 'attention.subtle' }, children: "Note: DatalayerServiceManager is not available. Notebook functionality will be limited." })), enableCollaboration ? (_jsxs(Box, { sx: {
68
+ display: 'flex',
69
+ gap: 2,
70
+ flexDirection: 'row',
71
+ }, children: [_jsxs(Box, { sx: {
72
+ flex: 1,
73
+ border: '1px solid',
74
+ borderColor: 'border.default',
75
+ borderRadius: 2,
76
+ }, children: [_jsx(Box, { sx: {
77
+ p: 2,
78
+ bg: 'canvas.subtle',
79
+ borderBottom: '1px solid',
80
+ borderColor: 'border.default',
81
+ fontWeight: 'bold',
82
+ }, children: "Collaborator 1" }), serviceManager ? (_jsx(Notebook, { id: `${NOTEBOOK_ID}-collab-1`, height: "calc(100vh - 280px)", nbformat: nbformat, readonly: readonly, serviceManager: serviceManager, startDefaultKernel: true, collaborationProvider: collaborationProvider })) : (_jsx(Box, { sx: { p: 4, textAlign: 'center' }, children: "Loading ServiceManager..." }))] }), _jsxs(Box, { sx: {
83
+ flex: 1,
84
+ border: '1px solid',
85
+ borderColor: 'border.default',
86
+ borderRadius: 2,
87
+ }, children: [_jsx(Box, { sx: {
88
+ p: 2,
89
+ bg: 'canvas.subtle',
90
+ borderBottom: '1px solid',
91
+ borderColor: 'border.default',
92
+ fontWeight: 'bold',
93
+ }, children: "Collaborator 2" }), serviceManager ? (_jsx(Notebook, { id: `${NOTEBOOK_ID}-collab-2`, height: "calc(100vh - 280px)", nbformat: nbformat, readonly: readonly, serviceManager: serviceManager, startDefaultKernel: false, collaborationProvider: collaborationProvider })) : (_jsx(Box, { sx: { p: 4, textAlign: 'center' }, children: "Loading ServiceManager..." }))] })] })) : (_jsx(Box, { sx: {
94
+ border: '1px solid',
95
+ borderColor: 'border.default',
96
+ borderRadius: 2,
97
+ }, children: serviceManager ? (_jsx(Notebook, { id: NOTEBOOK_ID, height: "calc(100vh - 200px)", nbformat: nbformat, readonly: readonly, serviceManager: serviceManager, startDefaultKernel: true, collaborationProvider: collaborationProvider })) : (_jsx(Box, { sx: { p: 4, textAlign: 'center' }, children: "Loading ServiceManager..." })) })), _jsxs(Box, { sx: { mt: 2, fontSize: 1, color: 'fg.subtle' }, children: [_jsx("p", { children: "This example demonstrates how to use Datalayer services with Notebook:" }), _jsxs("ul", { children: [_jsxs("li", { children: [_jsx("strong", { children: "DatalayerServiceManager:" }), " Connects to Datalayer infrastructure for kernel management"] }), _jsxs("li", { children: [_jsx("strong", { children: "DatalayerCollaborationProvider:" }), " Enables real-time collaboration"] }), _jsx("li", { children: "Both require Datalayer credentials (runUrl and token)" }), _jsx("li", { children: "Pass them directly to the base Notebook component" }), _jsx("li", { children: "No wrapper components needed - just create the services and pass them as props" }), _jsx("li", { children: "This shows the explicit, composable pattern for Datalayer integration" })] })] })] }) }));
98
+ };
99
+ export default DatalayerNotebookExample;
@@ -0,0 +1,6 @@
1
+ import { ServiceManager } from '@jupyterlab/services';
2
+ type IJupyterCellExampleProps = {
3
+ serviceManager?: ServiceManager.IManager;
4
+ };
5
+ export declare const JupyterCellExample: (props: IJupyterCellExampleProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default JupyterCellExample;
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { JupyterReactTheme, Cell, KernelIndicator, useJupyter, useKernelsStore, useCellsStore, } from '@datalayer/jupyter-react';
3
+ import { Button, Label } from '@primer/react';
4
+ import { Box } from '@datalayer/primer-addons';
5
+ const CELL_ID = 'cell-example-1';
6
+ const DEFAULT_SOURCE = `from IPython.display import display
7
+
8
+ for i in range(10):
9
+ display('I am a long string which is repeatedly added to the dom in separated divs: %d' % i)`;
10
+ const JupyterCellExampleContent = () => {
11
+ const { defaultKernel } = useJupyter({ startDefaultKernel: true });
12
+ const cellsStore = useCellsStore();
13
+ const kernelsStore = useKernelsStore();
14
+ return (_jsxs(Box, { p: 4, children: [_jsx(Box, { as: "h1", children: "Jupyter Cell Example" }), _jsxs(Box, { children: ["Source: ", cellsStore.getSource(CELL_ID)] }), _jsxs(Box, { children: ["Outputs Count: ", cellsStore.getOutputsCount(CELL_ID)] }), _jsxs(Box, { children: ["Kernel State:", ' ', _jsx(Label, { children: defaultKernel && kernelsStore.getExecutionState(defaultKernel.id) })] }), _jsxs(Box, { children: ["Kernel Phase:", ' ', _jsx(Label, { children: defaultKernel && kernelsStore.getExecutionPhase(defaultKernel.id) })] }), _jsxs(Box, { display: "flex", children: [_jsx(Box, { children: "Kernel Indicator:" }), _jsx(Box, { ml: 3, children: _jsx(KernelIndicator, { kernel: defaultKernel && defaultKernel.connection }) })] }), _jsx(Box, { children: _jsx(Button, { onClick: () => cellsStore.execute(CELL_ID), children: "Run cell" }) }), _jsx(Cell, { source: DEFAULT_SOURCE, id: CELL_ID, kernel: defaultKernel })] }));
15
+ };
16
+ export const JupyterCellExample = (props) => {
17
+ return (_jsx(JupyterReactTheme, { children: _jsx(JupyterCellExampleContent, {}) }));
18
+ };
19
+ export default JupyterCellExample;
@@ -0,0 +1,6 @@
1
+ import { ServiceManager } from '@jupyterlab/services';
2
+ type IJupyterNotebookExampleProps = {
3
+ serviceManager?: ServiceManager.IManager;
4
+ };
5
+ export declare const JupyterNotebookExample: (props: IJupyterNotebookExampleProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default JupyterNotebookExample;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /*
7
+ * Copyright (c) 2021-2023 Datalayer, Inc.
8
+ *
9
+ * MIT License
10
+ */
11
+ import { useMemo } from 'react';
12
+ import { Box } from '@datalayer/primer-addons';
13
+ import { Notebook, NotebookToolbar, CellSidebarExtension, CellSidebarButton, } from '@datalayer/jupyter-react';
14
+ import nbformatExample from './stores/notebooks/NotebookExample1.ipynb.json';
15
+ const NOTEBOOK_ID = 'notebook-example-1';
16
+ export const JupyterNotebookExample = (props) => {
17
+ const { serviceManager } = props;
18
+ const extensions = useMemo(() => [new CellSidebarExtension({ factory: CellSidebarButton })], []);
19
+ return (_jsxs(_Fragment, { children: [_jsx(Box, { as: "h1", children: "Jupyter Notebook Example" }), serviceManager && (_jsx(Notebook, { id: NOTEBOOK_ID, nbformat: nbformatExample, serviceManager: serviceManager, startDefaultKernel: true, extensions: extensions, Toolbar: NotebookToolbar }))] }));
20
+ };
21
+ export default JupyterNotebookExample;
@@ -0,0 +1,18 @@
1
+ import { type HaikuResult } from './InlineHaikuCard';
2
+ /**
3
+ * Props for HaikuDisplay
4
+ */
5
+ export interface HaikuDisplayProps {
6
+ /** Array of haikus to display */
7
+ haikus: HaikuResult[];
8
+ /** Title for the display section */
9
+ title?: string;
10
+ }
11
+ /**
12
+ * HaikuDisplay Component
13
+ *
14
+ * Displays a carousel of haiku cards with navigation controls.
15
+ * Shows the most recent haiku first with ability to browse older ones.
16
+ */
17
+ export declare function HaikuDisplay({ haikus, title, }: HaikuDisplayProps): import("react/jsx-runtime").JSX.Element;
18
+ export default HaikuDisplay;
@@ -0,0 +1,110 @@
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
+ * HaikuDisplay - A carousel display for haiku collections.
8
+ *
9
+ * This component displays a collection of haikus in a carousel format
10
+ * for the main view area. Inspired by the AG-UI Dojo implementation.
11
+ *
12
+ * @module examples/ag-ui/haiku/HaikuDisplay
13
+ */
14
+ import { useState } from 'react';
15
+ import { IconButton, Text } from '@primer/react';
16
+ import { ChevronLeftIcon, ChevronRightIcon } from '@primer/octicons-react';
17
+ import { InlineHaikuCard } from './InlineHaikuCard';
18
+ /**
19
+ * HaikuDisplay Component
20
+ *
21
+ * Displays a carousel of haiku cards with navigation controls.
22
+ * Shows the most recent haiku first with ability to browse older ones.
23
+ */
24
+ export function HaikuDisplay({ haikus, title = 'Generated Haikus', }) {
25
+ const [currentIndex, setCurrentIndex] = useState(0);
26
+ // No haikus to display
27
+ if (haikus.length === 0) {
28
+ return (_jsxs("div", { style: {
29
+ display: 'flex',
30
+ flexDirection: 'column',
31
+ alignItems: 'center',
32
+ justifyContent: 'center',
33
+ padding: 40,
34
+ border: '2px dashed',
35
+ borderColor: 'var(--borderColor-muted, #d0d7de)',
36
+ borderRadius: 12,
37
+ backgroundColor: 'var(--bgColor-subtle, #f6f8fa)',
38
+ minHeight: 200,
39
+ }, children: [_jsx(Text, { sx: {
40
+ fontSize: 1,
41
+ color: 'fg.muted',
42
+ textAlign: 'center',
43
+ }, children: "No haikus yet. Ask the assistant to generate one!" }), _jsx(Text, { sx: {
44
+ fontSize: 0,
45
+ color: 'fg.subtle',
46
+ marginTop: 2,
47
+ textAlign: 'center',
48
+ }, children: "Try: \"Write me a haiku about cherry blossoms\"" })] }));
49
+ }
50
+ const canGoLeft = currentIndex > 0;
51
+ const canGoRight = currentIndex < haikus.length - 1;
52
+ const goLeft = () => {
53
+ if (canGoLeft) {
54
+ setCurrentIndex(currentIndex - 1);
55
+ }
56
+ };
57
+ const goRight = () => {
58
+ if (canGoRight) {
59
+ setCurrentIndex(currentIndex + 1);
60
+ }
61
+ };
62
+ return (_jsxs("div", { style: {
63
+ display: 'flex',
64
+ flexDirection: 'column',
65
+ alignItems: 'center',
66
+ width: '100%',
67
+ }, children: [_jsx(Text, { as: "h3", sx: {
68
+ fontSize: 2,
69
+ fontWeight: 'semibold',
70
+ marginBottom: 3,
71
+ color: 'fg.default',
72
+ }, children: title }), _jsxs("div", { style: {
73
+ display: 'flex',
74
+ alignItems: 'center',
75
+ gap: 16,
76
+ width: '100%',
77
+ justifyContent: 'center',
78
+ }, children: [_jsx(IconButton, { icon: ChevronLeftIcon, "aria-label": "Previous haiku", onClick: goLeft, disabled: !canGoLeft, variant: "invisible", sx: {
79
+ opacity: canGoLeft ? 1 : 0.3,
80
+ cursor: canGoLeft ? 'pointer' : 'not-allowed',
81
+ } }), _jsx("div", { style: {
82
+ display: 'flex',
83
+ justifyContent: 'center',
84
+ minWidth: 320,
85
+ }, children: _jsx(InlineHaikuCard, { haiku: haikus[currentIndex], status: "complete", size: "large" }) }), _jsx(IconButton, { icon: ChevronRightIcon, "aria-label": "Next haiku", onClick: goRight, disabled: !canGoRight, variant: "invisible", sx: {
86
+ opacity: canGoRight ? 1 : 0.3,
87
+ cursor: canGoRight ? 'pointer' : 'not-allowed',
88
+ } })] }), haikus.length > 1 && (_jsx("div", { style: {
89
+ display: 'flex',
90
+ gap: 8,
91
+ marginTop: 16,
92
+ alignItems: 'center',
93
+ }, children: haikus.map((_, index) => (_jsx("button", { onClick: () => setCurrentIndex(index), style: {
94
+ width: index === currentIndex ? 24 : 8,
95
+ height: 8,
96
+ borderRadius: 4,
97
+ border: 'none',
98
+ backgroundColor: index === currentIndex
99
+ ? 'var(--fgColor-accent, #0969da)'
100
+ : 'var(--borderColor-muted, #d0d7de)',
101
+ cursor: 'pointer',
102
+ transition: 'all 0.2s ease',
103
+ padding: 0,
104
+ }, "aria-label": `Go to haiku ${index + 1}` }, index))) })), _jsxs(Text, { sx: {
105
+ fontSize: 0,
106
+ color: 'fg.muted',
107
+ marginTop: 2,
108
+ }, children: [currentIndex + 1, " of ", haikus.length] })] }));
109
+ }
110
+ export default HaikuDisplay;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Haiku data structure returned by the backend tool
3
+ */
4
+ export interface HaikuResult {
5
+ japanese: string[];
6
+ english: string[];
7
+ gradient: string;
8
+ }
9
+ /**
10
+ * Props for InlineHaikuCard
11
+ * Status aligned with tool rendering patterns
12
+ */
13
+ export interface InlineHaikuCardProps {
14
+ /** Haiku data */
15
+ haiku?: HaikuResult;
16
+ /**
17
+ * Current status:
18
+ * - 'inProgress': Arguments are being streamed
19
+ * - 'executing': Tool is executing on backend
20
+ * - 'complete': Tool completed successfully
21
+ * - 'error': Tool execution failed
22
+ */
23
+ status: 'inProgress' | 'executing' | 'complete' | 'error';
24
+ /** Error message if status is 'error' */
25
+ error?: string;
26
+ /** Optional size variant */
27
+ size?: 'normal' | 'large';
28
+ }
29
+ /**
30
+ * InlineHaikuCard Component
31
+ *
32
+ * Renders a beautiful haiku card inline in the chat or in a display area with:
33
+ * - Custom gradient background
34
+ * - Japanese text (decorative, larger)
35
+ * - English translation (below)
36
+ * - Decorative corner accents
37
+ */
38
+ export declare function InlineHaikuCard({ haiku, status, error, size, }: InlineHaikuCardProps): import("react/jsx-runtime").JSX.Element;
39
+ export default InlineHaikuCard;