@datalayer/agent-runtimes 1.0.1 → 1.0.3

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 (610) hide show
  1. package/README.md +1 -1
  2. package/lib/Agent.js +2 -2
  3. package/lib/AgentLexical.d.ts +1 -12
  4. package/lib/AgentLexical.js +3 -14
  5. package/lib/AgentNotebook.js +3 -3
  6. package/lib/App.js +2 -2
  7. package/lib/{components/chat/components → agents}/AgentDetails.d.ts +13 -2
  8. package/lib/{components/chat/components → agents}/AgentDetails.js +6 -12
  9. package/lib/api/agents.d.ts +47 -0
  10. package/lib/api/agents.js +106 -0
  11. package/lib/api/context.d.ts +17 -0
  12. package/lib/api/context.js +45 -0
  13. package/lib/api/evals.d.ts +27 -0
  14. package/lib/api/evals.js +63 -0
  15. package/lib/api/events.d.ts +17 -0
  16. package/lib/api/events.js +93 -0
  17. package/lib/{components/chat → api}/handler.js +1 -1
  18. package/lib/api/index.d.ts +15 -0
  19. package/lib/api/index.js +20 -0
  20. package/lib/api/notifications.d.ts +39 -0
  21. package/lib/api/notifications.js +103 -0
  22. package/lib/api/output.d.ts +28 -0
  23. package/lib/api/output.js +64 -0
  24. package/lib/api/tool-approvals.d.ts +62 -0
  25. package/lib/api/tool-approvals.js +145 -0
  26. package/lib/{components/chat/components → chat}/Chat.d.ts +25 -16
  27. package/lib/{components/chat/components → chat}/Chat.js +16 -16
  28. package/lib/{components/chat/components → chat}/ChatFloating.d.ts +17 -9
  29. package/lib/{components/chat/components → chat}/ChatFloating.js +17 -9
  30. package/lib/{components/chat/components → chat}/ChatInline.d.ts +2 -2
  31. package/lib/{components/chat/components → chat}/ChatInline.js +8 -6
  32. package/lib/{components/chat/components → chat}/ChatPopupStandalone.d.ts +3 -4
  33. package/lib/{components/chat/components → chat}/ChatPopupStandalone.js +6 -6
  34. package/lib/{components/chat/components → chat}/ChatSidebar.d.ts +14 -5
  35. package/lib/{components/chat/components → chat}/ChatSidebar.js +48 -26
  36. package/lib/{components/chat/components → chat}/ChatStandalone.d.ts +3 -4
  37. package/lib/{components/chat/components → chat}/ChatStandalone.js +5 -5
  38. package/lib/chat/base/ChatBase.d.ts +6 -0
  39. package/lib/chat/base/ChatBase.js +1287 -0
  40. package/lib/chat/display/EmptyState.d.ts +27 -0
  41. package/lib/chat/display/EmptyState.js +41 -0
  42. package/lib/{components/chat/components/elements → chat/display}/FloatingBrandButton.d.ts +1 -1
  43. package/lib/{components/chat/components/elements → chat/display}/FloatingBrandButton.js +1 -1
  44. package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.d.ts +1 -1
  45. package/lib/{components/chat/components/elements → chat/header}/ChatHeader.d.ts +1 -4
  46. package/lib/{components/chat/components/elements → chat/header}/ChatHeader.js +1 -1
  47. package/lib/chat/header/ChatHeaderBase.d.ts +38 -0
  48. package/lib/chat/header/ChatHeaderBase.js +83 -0
  49. package/lib/chat/index.d.ts +66 -0
  50. package/lib/chat/index.js +74 -0
  51. package/lib/chat/indicators/McpStatusIndicator.d.ts +9 -0
  52. package/lib/chat/indicators/McpStatusIndicator.js +128 -0
  53. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +10 -0
  54. package/lib/chat/indicators/SandboxStatusIndicator.js +175 -0
  55. package/lib/chat/indicators/index.d.ts +17 -0
  56. package/lib/chat/indicators/index.js +19 -0
  57. package/lib/chat/messages/ChatMessageList.d.ts +49 -0
  58. package/lib/chat/messages/ChatMessageList.js +319 -0
  59. package/lib/{components/chat/components/elements → chat/messages}/ChatMessages.d.ts +2 -2
  60. package/lib/{components/chat/components/elements → chat/messages}/ChatMessages.js +6 -4
  61. package/lib/{components/chat/components → chat}/parts/DynamicToolPart.d.ts +1 -1
  62. package/lib/{components/chat/components/elements → chat/parts}/MessagePart.d.ts +1 -1
  63. package/lib/{components/chat/components/elements → chat/parts}/MessagePart.js +4 -4
  64. package/lib/{components/chat/components → chat}/parts/ReasoningPart.js +1 -1
  65. package/lib/{components/chat/components → chat}/parts/TextPart.d.ts +1 -1
  66. package/lib/{components/chat/components → chat}/parts/ToolPart.js +1 -1
  67. package/lib/{components/chat/components → chat}/parts/index.d.ts +2 -1
  68. package/lib/{components/chat/components → chat}/parts/index.js +2 -1
  69. package/lib/chat/prompt/InputFooter.d.ts +43 -0
  70. package/lib/chat/prompt/InputFooter.js +135 -0
  71. package/lib/chat/prompt/InputPrompt.d.ts +60 -0
  72. package/lib/chat/prompt/InputPrompt.js +83 -0
  73. package/lib/chat/prompt/InputPromptFooter.d.ts +25 -0
  74. package/lib/chat/prompt/InputPromptFooter.js +15 -0
  75. package/lib/chat/prompt/InputPromptHeader.d.ts +15 -0
  76. package/lib/chat/prompt/InputPromptHeader.js +15 -0
  77. package/lib/chat/prompt/InputPromptLexical.d.ts +16 -0
  78. package/lib/chat/prompt/InputPromptLexical.js +122 -0
  79. package/lib/chat/prompt/InputPromptText.d.ts +24 -0
  80. package/lib/chat/prompt/InputPromptText.js +66 -0
  81. package/lib/chat/prompt/index.d.ts +11 -0
  82. package/lib/chat/prompt/index.js +15 -0
  83. package/lib/{components/chat/components → chat}/styles/streamdownStyles.d.ts +1 -1
  84. package/lib/chat/tools/ToolApprovalBanner.d.ts +31 -0
  85. package/lib/chat/tools/ToolApprovalBanner.js +62 -0
  86. package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.js +1 -1
  87. package/lib/{components/chat/components/display → chat/tools}/ToolCallDisplay.d.ts +13 -4
  88. package/lib/{components/chat/components/display → chat/tools}/ToolCallDisplay.js +18 -8
  89. package/lib/chat/tools/index.d.ts +8 -0
  90. package/lib/{components/chat/components/display → chat/tools}/index.js +3 -1
  91. package/lib/chat/usage/TokenUsageBar.d.ts +8 -0
  92. package/lib/chat/usage/TokenUsageBar.js +213 -0
  93. package/lib/client/AgentsMixin.d.ts +169 -0
  94. package/lib/client/AgentsMixin.js +279 -0
  95. package/lib/client/index.d.ts +6 -0
  96. package/lib/client/index.js +10 -0
  97. package/lib/components/NotificationEventCard.d.ts +8 -0
  98. package/lib/components/NotificationEventCard.js +152 -0
  99. package/lib/components/OutputCard.d.ts +8 -0
  100. package/lib/components/OutputCard.js +80 -0
  101. package/lib/components/ToolApprovalCard.d.ts +33 -0
  102. package/lib/components/ToolApprovalCard.js +60 -0
  103. package/lib/components/index.d.ts +3 -7
  104. package/lib/components/index.js +3 -4
  105. package/lib/{components → config}/AgentConfiguration.d.ts +43 -21
  106. package/lib/{components → config}/AgentConfiguration.js +48 -28
  107. package/lib/config/index.d.ts +2 -0
  108. package/lib/config/index.js +1 -0
  109. package/lib/{components/chat/components → context}/ContextInspector.js +38 -8
  110. package/lib/{components/chat/components → context}/ContextPanel.js +27 -6
  111. package/lib/context/CostTracker.d.ts +37 -0
  112. package/lib/context/CostTracker.js +124 -0
  113. package/lib/context/TokenUsageChart.d.ts +10 -0
  114. package/lib/context/TokenUsageChart.js +288 -0
  115. package/lib/examples/A2UiComponentGalleryExample.d.ts +20 -0
  116. package/lib/examples/A2UiComponentGalleryExample.js +568 -0
  117. package/lib/examples/A2UiContactCardExample.d.ts +21 -0
  118. package/lib/examples/A2UiContactCardExample.js +432 -0
  119. package/lib/examples/A2UiRestaurantExample.d.ts +11 -3
  120. package/lib/examples/A2UiRestaurantExample.js +63 -98
  121. package/lib/examples/A2UiViewerExample.d.ts +21 -0
  122. package/lib/examples/A2UiViewerExample.js +563 -0
  123. package/lib/examples/AgUiAgenticExample.js +3 -3
  124. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -3
  125. package/lib/examples/{AgUiHaikuGenUIExample.d.ts → AgUiHaikuGenUiExample.d.ts} +4 -4
  126. package/lib/examples/{AgUiHaikuGenUIExample.js → AgUiHaikuGenUiExample.js} +7 -7
  127. package/lib/examples/AgUiHumanInTheLoopExample.js +3 -3
  128. package/lib/examples/AgUiSharedStateExample.js +3 -3
  129. package/lib/examples/{AgUiToolsBasedGenUIExample.d.ts → AgUiToolsBasedGenUiExample.d.ts} +4 -4
  130. package/lib/examples/{AgUiToolsBasedGenUIExample.js → AgUiToolsBasedGenUiExample.js} +7 -7
  131. package/lib/examples/AgentCheckpointsExample.d.ts +19 -0
  132. package/lib/examples/AgentCheckpointsExample.js +506 -0
  133. package/lib/examples/AgentCodemodeExample.d.ts +14 -0
  134. package/lib/examples/AgentCodemodeExample.js +262 -0
  135. package/lib/examples/AgentEvalsExample.d.ts +14 -0
  136. package/lib/examples/AgentEvalsExample.js +216 -0
  137. package/lib/examples/AgentGuardrailsExample.d.ts +14 -0
  138. package/lib/examples/AgentGuardrailsExample.js +218 -0
  139. package/lib/examples/AgentMemoryExample.d.ts +14 -0
  140. package/lib/examples/AgentMemoryExample.js +234 -0
  141. package/lib/examples/AgentMonitoringExample.d.ts +13 -0
  142. package/lib/examples/AgentMonitoringExample.js +311 -0
  143. package/lib/examples/AgentNotificationsExample.d.ts +14 -0
  144. package/lib/examples/AgentNotificationsExample.js +273 -0
  145. package/lib/examples/AgentOtelExample.d.ts +25 -0
  146. package/lib/examples/AgentOtelExample.js +281 -0
  147. package/lib/examples/AgentOutputsExample.d.ts +14 -0
  148. package/lib/examples/AgentOutputsExample.js +211 -0
  149. package/lib/examples/AgentSandboxExample.d.ts +17 -0
  150. package/lib/examples/AgentSandboxExample.js +496 -0
  151. package/lib/examples/AgentSkillsExample.d.ts +3 -0
  152. package/lib/examples/AgentSkillsExample.js +290 -0
  153. package/lib/examples/AgentToolApprovalsExample.d.ts +3 -0
  154. package/lib/examples/AgentToolApprovalsExample.js +672 -0
  155. package/lib/examples/AgentTriggersExample.d.ts +14 -0
  156. package/lib/examples/AgentTriggersExample.js +523 -0
  157. package/lib/examples/{AgentRuntimeFormExample.d.ts → AgentspecExample.d.ts} +3 -4
  158. package/lib/examples/{AgentRuntimeFormExample.js → AgentspecExample.js} +92 -34
  159. package/lib/examples/{JupyterCellExample.js → CellSimpleExample.js} +1 -1
  160. package/lib/examples/{AgentRuntimeCustomExample.js → ChatCustomExample.js} +3 -3
  161. package/lib/examples/{AgentRuntimeChatExample.js → ChatExample.js} +4 -4
  162. package/lib/examples/{AgentRuntimeStandaloneExample.js → ChatStandaloneExample.js} +2 -2
  163. package/lib/examples/CopilotKitLexicalExample.d.ts +3 -14
  164. package/lib/examples/CopilotKitLexicalExample.js +4 -15
  165. package/lib/examples/CopilotKitNotebookExample.js +4 -6
  166. package/lib/examples/DatalayerNotebookExample.js +2 -2
  167. package/lib/examples/{AgentRuntimeLexical2Example.d.ts → Lexical2Example.d.ts} +2 -13
  168. package/lib/examples/{AgentRuntimeLexical2Example.js → Lexical2Example.js} +8 -17
  169. package/lib/examples/{AgentRuntimeLexicalExample.d.ts → LexicalExample.d.ts} +1 -12
  170. package/lib/examples/{AgentRuntimeLexicalExample.js → LexicalExample.js} +28 -27
  171. package/lib/examples/{AgentRuntimeLexicalSidebarExample.d.ts → LexicalSidebarExample.d.ts} +2 -13
  172. package/lib/examples/{AgentRuntimeLexicalSidebarExample.js → LexicalSidebarExample.js} +6 -18
  173. package/lib/examples/{AgentRuntimeNotebookExample.js → NotebookExample.js} +14 -10
  174. package/lib/examples/{AgentRuntimeNotebookSidebarExample.js → NotebookSidebarExample.js} +5 -8
  175. package/lib/examples/{JupyterNotebookExample.js → NotebookSimpleExample.js} +2 -2
  176. package/lib/examples/ag-ui/weather/InlineWeatherCard.js +1 -1
  177. package/lib/examples/components/ExampleWrapper.d.ts +12 -0
  178. package/lib/examples/components/ExampleWrapper.js +16 -0
  179. package/lib/examples/components/Header.d.ts +2 -2
  180. package/lib/examples/components/HeaderControls.js +1 -1
  181. package/lib/examples/components/LexicalEditor.d.ts +1 -12
  182. package/lib/examples/components/LexicalEditor.js +1 -12
  183. package/lib/examples/components/MainContent.d.ts +4 -11
  184. package/lib/examples/components/MainContent.js +6 -60
  185. package/lib/examples/components/index.d.ts +1 -0
  186. package/lib/examples/components/index.js +1 -0
  187. package/lib/examples/example-selector.d.ts +1 -1
  188. package/lib/examples/example-selector.js +35 -22
  189. package/lib/examples/index.d.ts +26 -13
  190. package/lib/examples/index.js +26 -12
  191. package/lib/examples/main.d.ts +6 -0
  192. package/lib/examples/main.js +20 -43
  193. package/lib/examples/utils/examplesStore.d.ts +4 -0
  194. package/lib/examples/{stores → utils}/examplesStore.js +1 -1
  195. package/lib/examples/utils/notebooks/Empty.ipynb.json +33 -0
  196. package/lib/examples/utils/notebooks/NotebookExample2.ipynb.json +48 -0
  197. package/lib/examples/utils/themeStore.d.ts +8 -0
  198. package/lib/examples/utils/themeStore.js +14 -0
  199. package/lib/extensions/A2UIExtension.d.ts +65 -0
  200. package/lib/extensions/A2UIExtension.js +202 -0
  201. package/lib/{components/chat/extensions → extensions}/ExtensionRegistry.d.ts +2 -3
  202. package/lib/{components/chat/extensions → extensions}/ExtensionRegistry.js +0 -2
  203. package/lib/{components/chat/extensions → extensions}/MCPUIExtension.d.ts +2 -2
  204. package/lib/{components/chat/extensions → extensions}/MCPUIExtension.js +1 -1
  205. package/lib/extensions/index.d.ts +9 -0
  206. package/lib/{components/chat/extensions → extensions}/index.js +2 -2
  207. package/lib/hooks/index.d.ts +37 -12
  208. package/lib/hooks/index.js +37 -12
  209. package/lib/hooks/useAIAgentsWebSocket.d.ts +29 -0
  210. package/lib/hooks/useAIAgentsWebSocket.js +136 -0
  211. package/lib/hooks/{useAGUI.d.ts → useAgUi.d.ts} +2 -2
  212. package/lib/hooks/{useAGUI.js → useAgUi.js} +2 -2
  213. package/lib/hooks/useAgents.d.ts +150 -11
  214. package/lib/hooks/useAgents.js +623 -61
  215. package/lib/hooks/useAgentsCatalog.d.ts +25 -0
  216. package/lib/hooks/useAgentsCatalog.js +28 -0
  217. package/lib/hooks/useAgentsRegistry.d.ts +10 -0
  218. package/lib/hooks/useAgentsRegistry.js +20 -0
  219. package/lib/hooks/useAgentsService.d.ts +22 -0
  220. package/lib/hooks/useAgentsService.js +146 -0
  221. package/lib/hooks/useChat.d.ts +2 -2
  222. package/lib/hooks/useChat.js +14 -8
  223. package/lib/hooks/useCheckpoints.d.ts +176 -0
  224. package/lib/hooks/useCheckpoints.js +466 -0
  225. package/lib/hooks/useConfig.d.ts +11 -0
  226. package/lib/hooks/useConfig.js +46 -0
  227. package/lib/hooks/useContextSnapshot.d.ts +11 -0
  228. package/lib/hooks/useContextSnapshot.js +44 -0
  229. package/lib/hooks/useMonitoring.d.ts +24 -0
  230. package/lib/hooks/useMonitoring.js +111 -0
  231. package/lib/hooks/useNotifications.d.ts +67 -0
  232. package/lib/hooks/useNotifications.js +208 -0
  233. package/lib/hooks/useSandbox.d.ts +12 -0
  234. package/lib/hooks/useSandbox.js +49 -0
  235. package/lib/hooks/useSkills.d.ts +13 -0
  236. package/lib/hooks/useSkills.js +46 -0
  237. package/lib/hooks/useToolApprovals.d.ts +45 -0
  238. package/lib/hooks/useToolApprovals.js +126 -0
  239. package/lib/hooks/useTools.d.ts +4 -4
  240. package/lib/hooks/useTools.js +2 -2
  241. package/lib/hooks/{useVercelChat.d.ts → useVercelAI.d.ts} +3 -3
  242. package/lib/hooks/{useVercelChat.js → useVercelAI.js} +2 -2
  243. package/lib/{components/chat/components → identity}/AgentIdentity.d.ts +1 -1
  244. package/lib/{components/chat/components → identity}/AgentIdentity.js +4 -3
  245. package/lib/identity/index.d.ts +1 -0
  246. package/lib/identity/index.js +2 -0
  247. package/lib/index.d.ts +4 -3
  248. package/lib/index.js +3 -2
  249. package/lib/{components/chat/inference → inference}/BaseInferenceProvider.d.ts +3 -3
  250. package/lib/{components/chat/inference → inference}/DatalayerInferenceProvider.d.ts +3 -3
  251. package/lib/{components/chat/inference → inference}/DatalayerInferenceProvider.js +1 -1
  252. package/lib/{components/chat/inference → inference}/SelfHostedInferenceProvider.d.ts +2 -2
  253. package/lib/{components/chat/inference → inference}/SelfHostedInferenceProvider.js +1 -1
  254. package/lib/{components/chat/inference → inference}/index.d.ts +1 -1
  255. package/lib/{components/chat/inference → inference}/index.js +1 -1
  256. package/lib/lexical/ChatInlinePlugin.d.ts +1 -1
  257. package/lib/lexical/ChatInlinePlugin.js +1 -1
  258. package/lib/{components → mcp}/McpServerManager.d.ts +2 -3
  259. package/lib/{components → mcp}/McpServerManager.js +1 -1
  260. package/lib/mcp/index.d.ts +1 -0
  261. package/lib/{specs/agents/codeai → mcp}/index.js +1 -1
  262. package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.d.ts +3 -3
  263. package/lib/{components/chat/middleware → middleware}/index.d.ts +1 -1
  264. package/lib/{components/chat/middleware → middleware}/index.js +1 -1
  265. package/lib/{components/chat/protocols → protocols}/A2AAdapter.d.ts +6 -6
  266. package/lib/{components/chat/protocols → protocols}/A2AAdapter.js +3 -3
  267. package/lib/{components/chat/protocols → protocols}/ACPAdapter.d.ts +6 -6
  268. package/lib/{components/chat/protocols → protocols}/ACPAdapter.js +4 -4
  269. package/lib/{components/chat/protocols → protocols}/AGUIAdapter.d.ts +14 -6
  270. package/lib/{components/chat/protocols → protocols}/AGUIAdapter.js +72 -10
  271. package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.d.ts +6 -6
  272. package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.js +1 -1
  273. package/lib/{components/chat/protocols → protocols}/VercelAIAdapter.d.ts +31 -7
  274. package/lib/protocols/VercelAIAdapter.js +682 -0
  275. package/lib/{components/chat/protocols → protocols}/index.d.ts +1 -2
  276. package/lib/{components/chat/protocols → protocols}/index.js +1 -1
  277. package/lib/specs/agents/agents.d.ts +54 -0
  278. package/lib/specs/agents/agents.js +2638 -0
  279. package/lib/specs/agents/index.js +14 -7
  280. package/lib/specs/envvars.d.ts +11 -19
  281. package/lib/specs/envvars.js +42 -21
  282. package/lib/specs/evals.d.ts +20 -0
  283. package/lib/specs/evals.js +133 -0
  284. package/lib/specs/events.d.ts +18 -0
  285. package/lib/specs/events.js +182 -0
  286. package/lib/specs/frontendTools.d.ts +14 -0
  287. package/lib/specs/frontendTools.js +53 -0
  288. package/lib/specs/guardrails.d.ts +22 -0
  289. package/lib/specs/guardrails.js +391 -0
  290. package/lib/specs/index.d.ts +15 -2
  291. package/lib/specs/index.js +15 -2
  292. package/lib/specs/mcpServers.d.ts +13 -10
  293. package/lib/specs/mcpServers.js +95 -25
  294. package/lib/specs/memory.d.ts +34 -0
  295. package/lib/specs/memory.js +99 -0
  296. package/lib/specs/models.d.ts +22 -35
  297. package/lib/specs/models.js +64 -44
  298. package/lib/specs/notifications.d.ts +17 -0
  299. package/lib/specs/notifications.js +187 -0
  300. package/lib/specs/outputs.d.ts +19 -0
  301. package/lib/specs/outputs.js +112 -0
  302. package/lib/specs/skills.d.ts +7 -16
  303. package/lib/specs/skills.js +89 -12
  304. package/lib/specs/teams/index.d.ts +17 -0
  305. package/lib/specs/teams/index.js +37 -0
  306. package/lib/specs/teams/teams.d.ts +27 -0
  307. package/lib/specs/teams/teams.js +1120 -0
  308. package/lib/specs/tools.d.ts +15 -0
  309. package/lib/specs/tools.js +83 -0
  310. package/lib/specs/triggers.d.ts +15 -0
  311. package/lib/specs/triggers.js +117 -0
  312. package/lib/stores/agentsStore.d.ts +123 -0
  313. package/lib/stores/agentsStore.js +270 -0
  314. package/lib/{components/chat/store → stores}/chatStore.d.ts +3 -2
  315. package/lib/{components/chat/store → stores}/chatStore.js +2 -2
  316. package/lib/{components/chat/store → stores}/conversationStore.d.ts +2 -2
  317. package/lib/{components/chat/store → stores}/conversationStore.js +3 -3
  318. package/lib/{components/chat/store → stores}/index.d.ts +3 -2
  319. package/lib/{components/chat/store → stores}/index.js +3 -2
  320. package/lib/{components/chat/tools → tools}/ToolExecutor.d.ts +2 -2
  321. package/lib/{components/chat/tools → tools}/ToolExecutor.js +1 -1
  322. package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.d.ts +1 -1
  323. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +14 -10
  324. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +31 -21
  325. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +1 -1
  326. package/lib/tools/index.d.ts +3 -0
  327. package/lib/tools/index.js +3 -7
  328. package/lib/types/a2a.d.ts +39 -0
  329. package/lib/types/acp.d.ts +21 -0
  330. package/lib/types/ag-ui.d.ts +25 -0
  331. package/lib/types/agents-lifecycle.d.ts +36 -0
  332. package/lib/types/agents.d.ts +80 -0
  333. package/lib/types/agents.js +22 -0
  334. package/lib/types/agentspecs.d.ts +90 -0
  335. package/lib/{components/chat/components/base/ChatBase.d.ts → types/chat.d.ts} +60 -100
  336. package/lib/types/checkpoints.d.ts +32 -0
  337. package/lib/types/checkpoints.js +5 -0
  338. package/lib/types/config.d.ts +67 -0
  339. package/lib/{runtime/types.js → types/config.js} +2 -2
  340. package/lib/types/connection.d.ts +31 -0
  341. package/lib/types/connection.js +5 -0
  342. package/lib/types/context.d.ts +67 -0
  343. package/lib/types/context.js +5 -0
  344. package/lib/types/cost.d.ts +42 -0
  345. package/lib/types/cost.js +5 -0
  346. package/lib/types/envvars.d.ts +21 -0
  347. package/lib/types/envvars.js +5 -0
  348. package/lib/types/evals.d.ts +66 -0
  349. package/lib/types/evals.js +5 -0
  350. package/lib/types/events.d.ts +49 -0
  351. package/lib/types/events.js +5 -0
  352. package/lib/types/eventspecs.d.ts +39 -0
  353. package/lib/types/eventspecs.js +5 -0
  354. package/lib/types/examples.d.ts +31 -0
  355. package/lib/types/examples.js +5 -0
  356. package/lib/{components/chat/types → types}/execution.d.ts +10 -1
  357. package/lib/{components/chat/types/extension.d.ts → types/extensions.d.ts} +3 -3
  358. package/lib/types/guardrails.d.ts +106 -0
  359. package/lib/types/guardrails.js +5 -0
  360. package/lib/types/index.d.ts +36 -2
  361. package/lib/types/index.js +35 -2
  362. package/lib/{components/chat/types → types}/inference.d.ts +3 -3
  363. package/lib/types/inference.js +5 -0
  364. package/lib/types/mcp.d.ts +117 -0
  365. package/lib/types/mcp.js +27 -0
  366. package/lib/types/memory.d.ts +23 -0
  367. package/lib/types/memory.js +5 -0
  368. package/lib/{components/chat/types/message.d.ts → types/messages.d.ts} +20 -1
  369. package/lib/{components/chat/types → types}/middleware.d.ts +3 -3
  370. package/lib/types/models.d.ts +63 -0
  371. package/lib/types/models.js +5 -0
  372. package/lib/types/notifications.d.ts +85 -0
  373. package/lib/types/notifications.js +5 -0
  374. package/lib/types/outputs.d.ts +51 -0
  375. package/lib/types/outputs.js +5 -0
  376. package/lib/{components/chat/types → types}/protocol.d.ts +37 -99
  377. package/lib/types/protocol.js +5 -0
  378. package/lib/types/sandbox.d.ts +27 -0
  379. package/lib/types/sandbox.js +24 -0
  380. package/lib/types/skills.d.ts +74 -0
  381. package/lib/types/skills.js +5 -0
  382. package/lib/types/teams.d.ts +133 -0
  383. package/lib/types/teams.js +5 -0
  384. package/lib/types/tool-approvals.d.ts +39 -0
  385. package/lib/types/tool-approvals.js +5 -0
  386. package/lib/{components/chat/types/tool.d.ts → types/tools.d.ts} +59 -4
  387. package/lib/types/triggers.d.ts +48 -0
  388. package/lib/types/triggers.js +5 -0
  389. package/lib/types/usage.d.ts +36 -0
  390. package/lib/types/usage.js +5 -0
  391. package/lib/utils/index.d.ts +1 -0
  392. package/lib/utils/index.js +5 -0
  393. package/lib/utils/utils.d.ts +60 -0
  394. package/lib/utils/utils.js +205 -0
  395. package/package.json +13 -14
  396. package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
  397. package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
  398. package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
  399. package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
  400. package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
  401. package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
  402. package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
  403. package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
  404. package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
  405. package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
  406. package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
  407. package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
  408. package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
  409. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  410. package/scripts/codegen/generate_agents.py +464 -58
  411. package/scripts/codegen/generate_envvars.py +36 -35
  412. package/scripts/codegen/generate_evals.py +279 -0
  413. package/scripts/codegen/generate_events.py +312 -0
  414. package/scripts/codegen/generate_frontend_tools.py +266 -0
  415. package/scripts/codegen/generate_guardrails.py +475 -0
  416. package/scripts/codegen/generate_mcp_servers.py +36 -9
  417. package/scripts/codegen/generate_memory.py +468 -0
  418. package/scripts/codegen/generate_models.py +22 -46
  419. package/scripts/codegen/generate_notifications.py +309 -0
  420. package/scripts/codegen/generate_outputs.py +267 -0
  421. package/scripts/codegen/generate_skills.py +108 -51
  422. package/scripts/codegen/generate_teams.py +922 -0
  423. package/scripts/codegen/generate_tools.py +326 -0
  424. package/scripts/codegen/generate_triggers.py +295 -0
  425. package/scripts/codegen/versioning.py +53 -0
  426. package/lib/components/chat/components/base/ChatBase.js +0 -2240
  427. package/lib/components/chat/components/base/InputPrompt.d.ts +0 -42
  428. package/lib/components/chat/components/base/InputPrompt.js +0 -131
  429. package/lib/components/chat/components/display/index.d.ts +0 -6
  430. package/lib/components/chat/components/index.d.ts +0 -26
  431. package/lib/components/chat/components/index.js +0 -39
  432. package/lib/components/chat/extensions/A2UIExtension.d.ts +0 -87
  433. package/lib/components/chat/extensions/A2UIExtension.js +0 -312
  434. package/lib/components/chat/extensions/index.d.ts +0 -10
  435. package/lib/components/chat/index.d.ts +0 -61
  436. package/lib/components/chat/index.js +0 -76
  437. package/lib/components/chat/protocols/VercelAIAdapter.js +0 -315
  438. package/lib/components/chat/tools/index.d.ts +0 -8
  439. package/lib/components/chat/tools/index.js +0 -11
  440. package/lib/components/chat/types/index.d.ts +0 -12
  441. package/lib/components/chat/types/index.js +0 -17
  442. package/lib/components/sparklines/Sparklines.d.ts +0 -16
  443. package/lib/components/sparklines/Sparklines.js +0 -65
  444. package/lib/components/sparklines/SparklinesLine.d.ts +0 -8
  445. package/lib/components/sparklines/SparklinesLine.js +0 -37
  446. package/lib/components/sparklines/dataProcessing.d.ts +0 -25
  447. package/lib/components/sparklines/dataProcessing.js +0 -35
  448. package/lib/components/sparklines/index.d.ts +0 -4
  449. package/lib/components/sparklines/index.js +0 -7
  450. package/lib/components/sparklines/types.d.ts +0 -36
  451. package/lib/examples/stores/examplesStore.d.ts +0 -5
  452. package/lib/examples/stores/notebooks/Empty.ipynb.json +0 -33
  453. package/lib/examples/stores/notebooks/NotebookExample2.ipynb.json +0 -48
  454. package/lib/examples/stores/themeStore.d.ts +0 -33
  455. package/lib/examples/stores/themeStore.js +0 -38
  456. package/lib/hooks/useKeyboardShortcuts.d.ts +0 -47
  457. package/lib/hooks/useKeyboardShortcuts.js +0 -153
  458. package/lib/hooks/useMobile.d.ts +0 -1
  459. package/lib/hooks/useMobile.js +0 -19
  460. package/lib/hooks/useNotebookAIAgent.d.ts +0 -8
  461. package/lib/hooks/useNotebookAIAgent.js +0 -73
  462. package/lib/renderers/a2ui/components/A2UIRenderer.d.ts +0 -7
  463. package/lib/renderers/a2ui/components/A2UIRenderer.js +0 -102
  464. package/lib/renderers/a2ui/components/SurfaceRenderer.d.ts +0 -7
  465. package/lib/renderers/a2ui/components/SurfaceRenderer.js +0 -101
  466. package/lib/renderers/a2ui/components/content/AudioPlayer.d.ts +0 -9
  467. package/lib/renderers/a2ui/components/content/AudioPlayer.js +0 -38
  468. package/lib/renderers/a2ui/components/content/Divider.d.ts +0 -9
  469. package/lib/renderers/a2ui/components/content/Divider.js +0 -35
  470. package/lib/renderers/a2ui/components/content/Icon.d.ts +0 -9
  471. package/lib/renderers/a2ui/components/content/Icon.js +0 -110
  472. package/lib/renderers/a2ui/components/content/Image.d.ts +0 -9
  473. package/lib/renderers/a2ui/components/content/Image.js +0 -61
  474. package/lib/renderers/a2ui/components/content/Text.d.ts +0 -9
  475. package/lib/renderers/a2ui/components/content/Text.js +0 -64
  476. package/lib/renderers/a2ui/components/content/Video.d.ts +0 -9
  477. package/lib/renderers/a2ui/components/content/Video.js +0 -37
  478. package/lib/renderers/a2ui/components/content/index.d.ts +0 -6
  479. package/lib/renderers/a2ui/components/content/index.js +0 -25
  480. package/lib/renderers/a2ui/components/index.d.ts +0 -5
  481. package/lib/renderers/a2ui/components/index.js +0 -24
  482. package/lib/renderers/a2ui/components/interactive/Button.d.ts +0 -11
  483. package/lib/renderers/a2ui/components/interactive/Button.js +0 -71
  484. package/lib/renderers/a2ui/components/interactive/CheckBox.d.ts +0 -9
  485. package/lib/renderers/a2ui/components/interactive/CheckBox.js +0 -48
  486. package/lib/renderers/a2ui/components/interactive/DateTimeInput.d.ts +0 -9
  487. package/lib/renderers/a2ui/components/interactive/DateTimeInput.js +0 -62
  488. package/lib/renderers/a2ui/components/interactive/MultipleChoice.d.ts +0 -9
  489. package/lib/renderers/a2ui/components/interactive/MultipleChoice.js +0 -73
  490. package/lib/renderers/a2ui/components/interactive/Slider.d.ts +0 -9
  491. package/lib/renderers/a2ui/components/interactive/Slider.js +0 -53
  492. package/lib/renderers/a2ui/components/interactive/TextField.d.ts +0 -9
  493. package/lib/renderers/a2ui/components/interactive/TextField.js +0 -72
  494. package/lib/renderers/a2ui/components/interactive/index.d.ts +0 -6
  495. package/lib/renderers/a2ui/components/interactive/index.js +0 -25
  496. package/lib/renderers/a2ui/components/layout/Card.d.ts +0 -11
  497. package/lib/renderers/a2ui/components/layout/Card.js +0 -30
  498. package/lib/renderers/a2ui/components/layout/Column.d.ts +0 -11
  499. package/lib/renderers/a2ui/components/layout/Column.js +0 -65
  500. package/lib/renderers/a2ui/components/layout/List.d.ts +0 -11
  501. package/lib/renderers/a2ui/components/layout/List.js +0 -55
  502. package/lib/renderers/a2ui/components/layout/Modal.d.ts +0 -11
  503. package/lib/renderers/a2ui/components/layout/Modal.js +0 -58
  504. package/lib/renderers/a2ui/components/layout/Row.d.ts +0 -11
  505. package/lib/renderers/a2ui/components/layout/Row.js +0 -65
  506. package/lib/renderers/a2ui/components/layout/Tabs.d.ts +0 -11
  507. package/lib/renderers/a2ui/components/layout/Tabs.js +0 -48
  508. package/lib/renderers/a2ui/components/layout/index.d.ts +0 -6
  509. package/lib/renderers/a2ui/components/layout/index.js +0 -25
  510. package/lib/renderers/a2ui/context/A2UIContext.d.ts +0 -17
  511. package/lib/renderers/a2ui/context/A2UIContext.js +0 -54
  512. package/lib/renderers/a2ui/context/ThemeContext.d.ts +0 -20
  513. package/lib/renderers/a2ui/context/ThemeContext.js +0 -333
  514. package/lib/renderers/a2ui/hooks/useA2UI.d.ts +0 -36
  515. package/lib/renderers/a2ui/hooks/useA2UI.js +0 -62
  516. package/lib/renderers/a2ui/hooks/useDataBinding.d.ts +0 -8
  517. package/lib/renderers/a2ui/hooks/useDataBinding.js +0 -83
  518. package/lib/renderers/a2ui/index.d.ts +0 -9
  519. package/lib/renderers/a2ui/index.js +0 -28
  520. package/lib/renderers/a2ui/lib/utils.d.ts +0 -11
  521. package/lib/renderers/a2ui/lib/utils.js +0 -38
  522. package/lib/renderers/a2ui/types/index.d.ts +0 -17
  523. package/lib/runtime/index.d.ts +0 -38
  524. package/lib/runtime/index.js +0 -40
  525. package/lib/runtime/runtimeStore.d.ts +0 -76
  526. package/lib/runtime/runtimeStore.js +0 -184
  527. package/lib/runtime/types.d.ts +0 -84
  528. package/lib/runtime/useAgentConnection.d.ts +0 -45
  529. package/lib/runtime/useAgentConnection.js +0 -112
  530. package/lib/runtime/useAgentRuntime.d.ts +0 -93
  531. package/lib/runtime/useAgentRuntime.js +0 -125
  532. package/lib/specs/agents/codeai/agents.d.ts +0 -28
  533. package/lib/specs/agents/codeai/agents.js +0 -151
  534. package/lib/specs/agents/codeai/index.d.ts +0 -1
  535. package/lib/specs/agents/codemode-paper/agents.d.ts +0 -31
  536. package/lib/specs/agents/codemode-paper/agents.js +0 -308
  537. package/lib/specs/agents/codemode-paper/index.d.ts +0 -1
  538. package/lib/specs/agents/codemode-paper/index.js +0 -5
  539. package/lib/specs/agents/datalayer-ai/agents.d.ts +0 -31
  540. package/lib/specs/agents/datalayer-ai/agents.js +0 -282
  541. package/lib/specs/agents/datalayer-ai/index.d.ts +0 -1
  542. package/lib/specs/agents/datalayer-ai/index.js +0 -5
  543. package/lib/state/index.d.ts +0 -1
  544. package/lib/state/index.js +0 -5
  545. package/lib/state/substates/AIAgentState.d.ts +0 -80
  546. package/lib/state/substates/AIAgentState.js +0 -108
  547. package/lib/state/substates/index.d.ts +0 -1
  548. package/lib/state/substates/index.js +0 -5
  549. package/lib/types/AIAgent.d.ts +0 -17
  550. package/lib/types/Types.d.ts +0 -189
  551. /package/lib/{components/chat → api}/handler.d.ts +0 -0
  552. /package/lib/{renderers/index.d.ts → api/utils.d.ts} +0 -0
  553. /package/lib/{renderers/index.js → api/utils.js} +0 -0
  554. /package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.js +0 -0
  555. /package/lib/{components/chat/components → chat}/parts/DynamicToolPart.js +0 -0
  556. /package/lib/{components/chat/components → chat}/parts/ReasoningPart.d.ts +0 -0
  557. /package/lib/{components/chat/components → chat}/parts/TextPart.js +0 -0
  558. /package/lib/{components/chat/components → chat}/parts/ToolPart.d.ts +0 -0
  559. /package/lib/{components/chat/components → chat}/styles/streamdownStyles.js +0 -0
  560. /package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.d.ts +0 -0
  561. /package/lib/{components/chat/components → context}/ContextDistribution.d.ts +0 -0
  562. /package/lib/{components/chat/components → context}/ContextDistribution.js +0 -0
  563. /package/lib/{components/chat/components → context}/ContextInspector.d.ts +0 -0
  564. /package/lib/{components/chat/components → context}/ContextPanel.d.ts +0 -0
  565. /package/lib/{components/chat/components → context}/ContextUsage.d.ts +0 -0
  566. /package/lib/{components/chat/components → context}/ContextUsage.js +0 -0
  567. /package/lib/examples/{JupyterCellExample.d.ts → CellSimpleExample.d.ts} +0 -0
  568. /package/lib/examples/{AgentRuntimeCustomExample.d.ts → ChatCustomExample.d.ts} +0 -0
  569. /package/lib/examples/{AgentRuntimeChatExample.d.ts → ChatExample.d.ts} +0 -0
  570. /package/lib/examples/{AgentRuntimeStandaloneExample.d.ts → ChatStandaloneExample.d.ts} +0 -0
  571. /package/lib/examples/{AgentRuntimeNotebookExample.d.ts → NotebookExample.d.ts} +0 -0
  572. /package/lib/examples/{AgentRuntimeNotebookSidebarExample.d.ts → NotebookSidebarExample.d.ts} +0 -0
  573. /package/lib/examples/{JupyterNotebookExample.d.ts → NotebookSimpleExample.d.ts} +0 -0
  574. /package/lib/examples/{stores → utils}/agents/earthquake-detector.ipynb.json +0 -0
  575. /package/lib/examples/{stores → utils}/agents/earthquake-detector.json +0 -0
  576. /package/lib/examples/{stores → utils}/agents/earthquake-detector.lexical.json +0 -0
  577. /package/lib/examples/{stores → utils}/agents/sales-forecaster.ipynb.json +0 -0
  578. /package/lib/examples/{stores → utils}/agents/sales-forecaster.json +0 -0
  579. /package/lib/examples/{stores → utils}/agents/sales-forecaster.lexical.json +0 -0
  580. /package/lib/examples/{stores → utils}/agents/social-post-generator.ipynb.json +0 -0
  581. /package/lib/examples/{stores → utils}/agents/social-post-generator.json +0 -0
  582. /package/lib/examples/{stores → utils}/agents/social-post-generator.lexical.json +0 -0
  583. /package/lib/examples/{stores → utils}/agents/stock-market.ipynb.json +0 -0
  584. /package/lib/examples/{stores → utils}/agents/stock-market.json +0 -0
  585. /package/lib/examples/{stores → utils}/agents/stock-market.lexical.json +0 -0
  586. /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExample.ipynb.json +0 -0
  587. /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -0
  588. /package/lib/examples/{stores → utils}/notebooks/Lite.ipynb.json +0 -0
  589. /package/lib/examples/{stores → utils}/notebooks/Matplotlib.ipynb.json +0 -0
  590. /package/lib/examples/{stores → utils}/notebooks/NotebookExample1.ipynb.json +0 -0
  591. /package/lib/examples/{stores → utils}/notebooks/NotebookOutputs.ipynb.json +0 -0
  592. /package/lib/examples/{stores → utils}/notebooks/NotebookToCExample.ipynb.json +0 -0
  593. /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.d.ts +0 -0
  594. /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.js +0 -0
  595. /package/lib/examples/{stores → utils}/notebooks/PyGWalker.ipynb.json +0 -0
  596. /package/lib/examples/{stores → utils}/themedProvider.d.ts +0 -0
  597. /package/lib/examples/{stores → utils}/themedProvider.js +0 -0
  598. /package/lib/{components/chat/inference → inference}/BaseInferenceProvider.js +0 -0
  599. /package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.js +0 -0
  600. /package/lib/{components/chat/types/inference.js → types/a2a.js} +0 -0
  601. /package/lib/{components/chat/types/protocol.js → types/acp.js} +0 -0
  602. /package/lib/{components/sparklines/types.js → types/ag-ui.js} +0 -0
  603. /package/lib/{renderers/a2ui/types/index.js → types/agents-lifecycle.js} +0 -0
  604. /package/lib/types/{AIAgent.js → agentspecs.js} +0 -0
  605. /package/lib/types/{Types.js → chat.js} +0 -0
  606. /package/lib/{components/chat/types → types}/execution.js +0 -0
  607. /package/lib/{components/chat/types/extension.js → types/extensions.js} +0 -0
  608. /package/lib/{components/chat/types/message.js → types/messages.js} +0 -0
  609. /package/lib/{components/chat/types → types}/middleware.js +0 -0
  610. /package/lib/{components/chat/types/tool.js → types/tools.js} +0 -0
@@ -16,16 +16,16 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  * - Vercel AI - HTTP/SSE streaming (via SelfHostedInferenceProvider)
17
17
  * - Vercel AI Jupyter - Same as Vercel AI but served by Jupyter server
18
18
  *
19
- * @module components/chat/components/Chat
19
+ * @module chat/Chat
20
20
  */
21
21
  import { useEffect, useMemo, useState } from 'react';
22
22
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
23
23
  import { Text, Button, Spinner } from '@primer/react';
24
24
  import { AlertIcon, SyncIcon } from '@primer/octicons-react';
25
25
  import { Box } from '@datalayer/primer-addons';
26
+ import { useConnectedIdentities } from '../identity';
26
27
  import { ChatBase } from './base/ChatBase';
27
- import { AgentDetails } from './AgentDetails';
28
- import { useConnectedIdentities } from '../../../identity';
28
+ import { AgentDetails } from '../agents/AgentDetails';
29
29
  // Try to get Jupyter settings if available
30
30
  let getJupyterSettings;
31
31
  try {
@@ -62,8 +62,8 @@ const queryClient = new QueryClient();
62
62
  /**
63
63
  * Get transport endpoint path
64
64
  */
65
- function getEndpointPath(transport, agentId) {
66
- switch (transport) {
65
+ function getEndpointPath(protocol, agentId) {
66
+ switch (protocol) {
67
67
  case 'vercel-ai':
68
68
  return `/api/v1/vercel-ai/${agentId}`;
69
69
  case 'vercel-ai-jupyter':
@@ -84,12 +84,12 @@ function getEndpointPath(transport, agentId) {
84
84
  /**
85
85
  * Map transport type to protocol type
86
86
  */
87
- function getProtocolType(transport) {
88
- switch (transport) {
87
+ function getProtocolType(protocol) {
88
+ switch (protocol) {
89
89
  case 'vercel-ai-jupyter':
90
90
  return 'vercel-ai';
91
91
  default:
92
- return transport;
92
+ return protocol;
93
93
  }
94
94
  }
95
95
  /**
@@ -133,7 +133,7 @@ function getProtocolType(transport) {
133
133
  * />
134
134
  * ```
135
135
  */
136
- export function Chat({ transport, extensions: _extensions, baseUrl = 'http://localhost:8765', wsUrl, agentId, placeholder = 'Type your message...', title, autoConnect: _autoConnect = true, streaming: _streaming = true, onMessageSent: _onMessageSent, onMessageReceived: _onMessageReceived, onDisconnect, onLogout: _onLogout, onCollapsePanel: _onCollapsePanel, className, height = '600px', showHeader = true, showModelSelector = true, showToolsMenu = true, showSkillsMenu = false, codemodeEnabled = false, showTokenUsage = true, initialModel, availableModels, mcpServers, initialSkills, clearOnMount: _clearOnMount = true, suggestions, submitOnSuggestionClick = true, description, autoFocus = false, identityProviders, onIdentityConnect, onIdentityDisconnect, runtimeId, historyEndpoint, pendingPrompt, errorBanner, showInformation = true, chatViewMode, onChatViewModeChange, frontendTools, }) {
136
+ export function Chat({ protocol: transport, extensions: _extensions, baseUrl = 'http://localhost:8765', wsUrl, agentId, authToken: authTokenProp, placeholder = 'Type your message...', title, brandIcon, autoConnect: _autoConnect = true, streaming: _streaming = true, onMessageSent: _onMessageSent, onMessageReceived: _onMessageReceived, onDisconnect, onLogout: _onLogout, onCollapsePanel: _onCollapsePanel, className, height = '600px', showHeader = true, showNewChatButton = true, showClearButton = true, showModelSelector = true, showToolsMenu = true, showSkillsMenu = false, codemodeEnabled = false, showTokenUsage = true, initialModel, availableModels, mcpServers, initialSkills, clearOnMount: _clearOnMount = true, suggestions, submitOnSuggestionClick = true, description, headerContent, headerActions, autoFocus = false, identityProviders, onIdentityConnect, onIdentityDisconnect, runtimeId, historyEndpoint, pendingPrompt, errorBanner, showInformation = true, chatViewMode, onChatViewModeChange, frontendTools, renderToolResult, hideMessagesAfterToolUI = false, }) {
137
137
  const [error, setError] = useState(null);
138
138
  const [isInitializing, setIsInitializing] = useState(true);
139
139
  const [showDetails, setShowDetails] = useState(false);
@@ -165,7 +165,7 @@ export function Chat({ transport, extensions: _extensions, baseUrl = 'http://loc
165
165
  const protocolConfig = useMemo(() => {
166
166
  try {
167
167
  let endpoint;
168
- let authToken;
168
+ let authToken = authTokenProp;
169
169
  let options;
170
170
  switch (transport) {
171
171
  case 'vercel-ai-jupyter': {
@@ -232,7 +232,7 @@ export function Chat({ transport, extensions: _extensions, baseUrl = 'http://loc
232
232
  setError(err instanceof Error ? err.message : 'Failed to configure');
233
233
  return undefined;
234
234
  }
235
- }, [transport, baseUrl, wsUrl, agentId]);
235
+ }, [transport, baseUrl, wsUrl, agentId, authTokenProp]);
236
236
  // Set initialized once protocol config is built
237
237
  useEffect(() => {
238
238
  if (protocolConfig) {
@@ -285,7 +285,7 @@ export function Chat({ transport, extensions: _extensions, baseUrl = 'http://loc
285
285
  display: showDetails ? 'flex' : 'none',
286
286
  flexDirection: 'column',
287
287
  height: '100%',
288
- }, children: _jsx(AgentDetails, { name: title || 'AI Agent', protocol: transport, url: protocolConfig?.endpoint || baseUrl, messageCount: messageCount, agentId: agentId, apiBase: baseUrl, identityProviders: identityProviders, onIdentityConnect: onIdentityConnect, onIdentityDisconnect: onIdentityDisconnect, onBack: () => setShowDetails(false) }) }), _jsxs(Box, { sx: {
288
+ }, children: _jsx(AgentDetails, { name: title || 'AI Agent', icon: brandIcon, protocol: transport, url: protocolConfig?.endpoint || baseUrl, messageCount: messageCount, agentId: agentId, apiBase: baseUrl, identityProviders: identityProviders, onIdentityConnect: onIdentityConnect, onIdentityDisconnect: onIdentityDisconnect, onBack: () => setShowDetails(false) }) }), _jsxs(Box, { sx: {
289
289
  display: showDetails ? 'none' : 'flex',
290
290
  flexDirection: 'column',
291
291
  height: '100%',
@@ -310,12 +310,12 @@ export function Chat({ transport, extensions: _extensions, baseUrl = 'http://loc
310
310
  ? 'attention.fg'
311
311
  : 'danger.fg',
312
312
  flex: 1,
313
- }, children: errorBanner.message })] })), _jsx(ChatBase, { title: title, showHeader: showHeader, protocol: protocolConfig, placeholder: placeholder, description: description, suggestions: suggestions, submitOnSuggestionClick: submitOnSuggestionClick, autoFocus: autoFocus, runtimeId: runtimeId, historyEndpoint: historyEndpoint, pendingPrompt: pendingPrompt, showInformation: showInformation, onInformationClick: () => setShowDetails(true), showModelSelector: showModelSelector, showToolsMenu: showToolsMenu, showSkillsMenu: showSkillsMenu, showTokenUsage: showTokenUsage, codemodeEnabled: codemodeEnabled, initialModel: initialModel, availableModels: availableModels, mcpServers: mcpServers, initialSkills: initialSkills, connectedIdentities: identitiesForChat, onNewChat: handleNewChat, onMessagesChange: messages => setMessageCount(messages.length), headerButtons: {
314
- showNewChat: true,
315
- showClear: true,
313
+ }, children: errorBanner.message })] })), _jsx(ChatBase, { title: title, brandIcon: brandIcon, showHeader: showHeader, protocol: protocolConfig, placeholder: placeholder, description: description, suggestions: suggestions, submitOnSuggestionClick: submitOnSuggestionClick, autoFocus: autoFocus, runtimeId: runtimeId, historyEndpoint: historyEndpoint, pendingPrompt: pendingPrompt, showInformation: showInformation, onInformationClick: () => setShowDetails(true), headerContent: headerContent, headerActions: headerActions, showModelSelector: showModelSelector, showToolsMenu: showToolsMenu, showSkillsMenu: showSkillsMenu, showTokenUsage: showTokenUsage, codemodeEnabled: codemodeEnabled, initialModel: initialModel, availableModels: availableModels, mcpServers: mcpServers, initialSkills: initialSkills, connectedIdentities: identitiesForChat, onNewChat: handleNewChat, onMessagesChange: messages => setMessageCount(messages.length), headerButtons: {
314
+ showNewChat: showNewChatButton,
315
+ showClear: showClearButton,
316
316
  onNewChat: handleNewChat,
317
317
  }, avatarConfig: {
318
318
  showAvatars: true,
319
- }, backgroundColor: "canvas.default", focusTrigger: focusTrigger, chatViewMode: chatViewMode, onChatViewModeChange: onChatViewModeChange, frontendTools: frontendTools })] })] }) }));
319
+ }, backgroundColor: "canvas.default", focusTrigger: focusTrigger, chatViewMode: chatViewMode, onChatViewModeChange: onChatViewModeChange, frontendTools: frontendTools, renderToolResult: renderToolResult, hideMessagesAfterToolUI: hideMessagesAfterToolUI })] })] }) }));
320
320
  }
321
321
  export default Chat;
@@ -9,13 +9,11 @@
9
9
  * 2. Store mode: When `useStore` is true
10
10
  * 3. Any protocol supported by ChatBase (AG-UI, A2A, ACP, Vercel AI)
11
11
  *
12
- * @module components/chat/components/ChatFloating
12
+ * @module chat/ChatFloating
13
13
  */
14
14
  import React from 'react';
15
- import { type ChatBaseProps, type RenderToolResult, type ToolCallRenderContext, type ToolCallStatus, type ProtocolConfig, type RespondCallback, type Suggestion, type RemoteConfig, type ModelConfig, type BuiltinTool, type MCPServerConfig, type MCPServerTool, type ChatViewMode } from './base/ChatBase';
16
- import type { PoweredByTagProps } from './elements/PoweredByTag';
17
- import type { FrontendToolDefinition } from '../types/tool';
18
- export type { ToolCallStatus, ToolCallRenderContext, RenderToolResult, RespondCallback, Suggestion, RemoteConfig, ModelConfig, BuiltinTool, MCPServerConfig, MCPServerTool, ChatViewMode, };
15
+ import type { PoweredByTagProps } from './display/PoweredByTag';
16
+ import type { ChatBaseProps, ChatViewMode, FrontendToolDefinition, ModelConfig, Protocol, ProtocolConfig, RenderToolResult, Suggestion } from '../types';
19
17
  /**
20
18
  * ChatFloating props
21
19
  */
@@ -26,10 +24,15 @@ export interface ChatFloatingProps {
26
24
  */
27
25
  endpoint?: string;
28
26
  /**
29
- * Protocol configuration for other protocols (A2A, ACP, Vercel AI).
30
- * Takes precedence over endpoint when provided.
27
+ * Protocol type or full configuration.
28
+ *
29
+ * When a `Protocol` string is provided (e.g. `'vercel-ai'`), it overrides the
30
+ * auto-detected protocol from the endpoint URL. When a full `ProtocolConfig`
31
+ * object is provided, it is used directly and takes precedence over endpoint.
32
+ *
33
+ * @default 'vercel-ai'
31
34
  */
32
- protocol?: ProtocolConfig;
35
+ protocol?: Protocol | ProtocolConfig;
33
36
  /**
34
37
  * Use Zustand store for state management instead of protocol endpoint.
35
38
  * @default false
@@ -182,6 +185,11 @@ export interface ChatFloatingProps {
182
185
  * Defaults to `{protocol.endpoint}/api/v1/history` when runtimeId is set.
183
186
  */
184
187
  historyEndpoint?: string;
188
+ /**
189
+ * Auth token for authenticating with the agent runtime.
190
+ * Used for indicator API calls (MCP status, sandbox status) and history.
191
+ */
192
+ authToken?: string;
185
193
  /**
186
194
  * Auth token for the history endpoint.
187
195
  */
@@ -206,5 +214,5 @@ export interface ChatFloatingProps {
206
214
  * ChatFloating component
207
215
  * A floating chat window built on ChatBase
208
216
  */
209
- export declare function ChatFloating({ endpoint, protocol: protocolProp, useStore: useStoreMode, title, description, position, defaultOpen, width, height, showHeader, showButton, showNewChatButton, showClearButton, showSettingsButton, enableKeyboardShortcuts, toggleShortcut, showPoweredBy, poweredByProps, clickOutsideToClose, escapeToClose, className, onSettingsClick, onNewChat, onOpen, onClose, onStateUpdate, children, brandIcon, buttonIcon, buttonTooltip, brandColor, offset, animationDuration, renderToolResult, frontendTools, initialState: _initialState, suggestions, submitOnSuggestionClick, hideMessagesAfterToolUI, defaultViewMode, onViewModeChange, showPanelBackdrop, availableModels, showModelSelector, showToolsMenu, showSkillsMenu, showTokenUsage, runtimeId, historyEndpoint, historyAuthToken, pendingPrompt, showInformation, onInformationClick, panelProps, }: ChatFloatingProps): import("react/jsx-runtime").JSX.Element;
217
+ export declare function ChatFloating({ endpoint, protocol: protocolProp, useStore: useStoreMode, title, description, position, defaultOpen, width, height, showHeader, showButton, showNewChatButton, showClearButton, showSettingsButton, enableKeyboardShortcuts, toggleShortcut, showPoweredBy, poweredByProps, clickOutsideToClose, escapeToClose, className, onSettingsClick, onNewChat, onOpen, onClose, onStateUpdate, children, brandIcon, buttonIcon, buttonTooltip, brandColor, offset, animationDuration, renderToolResult, frontendTools, initialState: _initialState, suggestions, submitOnSuggestionClick, hideMessagesAfterToolUI, defaultViewMode, onViewModeChange, showPanelBackdrop, availableModels, showModelSelector, showToolsMenu, showSkillsMenu, showTokenUsage, runtimeId, historyEndpoint, authToken, historyAuthToken, pendingPrompt, showInformation, onInformationClick, panelProps, }: ChatFloatingProps): import("react/jsx-runtime").JSX.Element;
210
218
  export default ChatFloating;
@@ -14,16 +14,16 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
14
14
  * 2. Store mode: When `useStore` is true
15
15
  * 3. Any protocol supported by ChatBase (AG-UI, A2A, ACP, Vercel AI)
16
16
  *
17
- * @module components/chat/components/ChatFloating
17
+ * @module chat/ChatFloating
18
18
  */
19
19
  import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
20
20
  import { IconButton, Text, Tooltip } from '@primer/react';
21
21
  import { Box } from '@datalayer/primer-addons';
22
22
  import { XIcon, CommentDiscussionIcon } from '@primer/octicons-react';
23
23
  import { AiAgentIcon } from '@datalayer/icons-react';
24
- import { ChatBase, } from './base/ChatBase';
25
- import { useChatOpen, useChatMessages, useChatStore } from '../store/chatStore';
26
- import { useChatKeyboardShortcuts, getShortcutDisplay, } from '../../../hooks/useKeyboardShortcuts';
24
+ import { ChatBase } from './base/ChatBase';
25
+ import { useChatOpen, useChatMessages, useChatStore, } from '../stores/chatStore';
26
+ import { useChatKeyboardShortcuts, getShortcutDisplay, } from '@datalayer/core/lib/hooks';
27
27
  /**
28
28
  * Hook to detect mobile viewport
29
29
  */
@@ -43,7 +43,7 @@ function useIsMobile(breakpoint = 640) {
43
43
  * ChatFloating component
44
44
  * A floating chat window built on ChatBase
45
45
  */
46
- export function ChatFloating({ endpoint, protocol: protocolProp, useStore: useStoreMode = true, title = 'Chat', description = 'Start a conversation with the AI agent.', position = 'bottom-right', defaultOpen = false, width = 400, height = 550, showHeader = true, showButton = true, showNewChatButton = true, showClearButton = true, showSettingsButton = false, enableKeyboardShortcuts = true, toggleShortcut = '/', showPoweredBy = true, poweredByProps, clickOutsideToClose = false, escapeToClose = true, className, onSettingsClick, onNewChat, onOpen, onClose, onStateUpdate, children, brandIcon, buttonIcon, buttonTooltip = 'Chat with AI', brandColor, offset = 20, animationDuration = 200, renderToolResult, frontendTools, initialState: _initialState, suggestions, submitOnSuggestionClick = true, hideMessagesAfterToolUI = false, defaultViewMode = 'floating', onViewModeChange, showPanelBackdrop = false, availableModels, showModelSelector = false, showToolsMenu = false, showSkillsMenu = false, showTokenUsage = true, runtimeId, historyEndpoint, historyAuthToken, pendingPrompt, showInformation = false, onInformationClick, panelProps, }) {
46
+ export function ChatFloating({ endpoint, protocol: protocolProp, useStore: useStoreMode = true, title = 'Chat', description = 'Start a conversation with the AI agent.', position = 'bottom-right', defaultOpen = false, width = 400, height = 550, showHeader = true, showButton = true, showNewChatButton = true, showClearButton = true, showSettingsButton = false, enableKeyboardShortcuts = true, toggleShortcut = '/', showPoweredBy = true, poweredByProps, clickOutsideToClose = false, escapeToClose = true, className, onSettingsClick, onNewChat, onOpen, onClose, onStateUpdate, children, brandIcon, buttonIcon, buttonTooltip = 'Chat with AI', brandColor, offset = 20, animationDuration = 200, renderToolResult, frontendTools, initialState: _initialState, suggestions, submitOnSuggestionClick = true, hideMessagesAfterToolUI = false, defaultViewMode = 'floating', onViewModeChange, showPanelBackdrop = false, availableModels, showModelSelector = false, showToolsMenu = false, showSkillsMenu = false, showTokenUsage = true, runtimeId, historyEndpoint, authToken, historyAuthToken, pendingPrompt, showInformation = false, onInformationClick, panelProps, }) {
47
47
  // Store-based state
48
48
  const storeIsOpen = useChatOpen();
49
49
  const storeMessages = useChatMessages();
@@ -80,23 +80,30 @@ export function ChatFloating({ endpoint, protocol: protocolProp, useStore: useSt
80
80
  // Build protocol config from endpoint if not provided directly
81
81
  // Memoize to avoid creating new object on every render (which would trigger useEffect re-runs)
82
82
  const protocol = useMemo(() => {
83
- if (protocolProp)
83
+ // Full ProtocolConfig object takes precedence
84
+ if (protocolProp && typeof protocolProp === 'object')
84
85
  return protocolProp;
85
86
  if (!endpoint)
86
87
  return undefined;
88
+ // If protocolProp is a Protocol string, use it as explicit type override
89
+ const explicitType = typeof protocolProp === 'string' ? protocolProp : undefined;
87
90
  // Extract base URL from endpoint - everything before /api/v1/
88
91
  // e.g., https://prod1.datalayer.run/agent-runtimes/pool1/rt123/api/v1/ag-ui/default/
89
92
  // -> https://prod1.datalayer.run/agent-runtimes/pool1/rt123
90
93
  const baseUrl = endpoint.match(/^(.*?)\/api\/v1\//)?.[1] ||
91
94
  endpoint.match(/^(https?:\/\/[^/]+)/)?.[1] ||
92
95
  '';
93
- // Extract agentId from endpoint path (e.g., .../ag-ui/default/ -> default)
94
- const agentIdMatch = endpoint.match(/\/ag-ui\/([^/]+)/);
96
+ // Detect protocol type from endpoint path (fallback when no explicit type)
97
+ const protocolMatch = endpoint.match(/\/api\/v1\/(ag-ui|vercel-ai|a2a|acp)\//);
98
+ const detectedType = (explicitType ?? protocolMatch?.[1] ?? 'vercel-ai');
99
+ // Extract agentId from endpoint path
100
+ const agentIdMatch = endpoint.match(/\/api\/v1\/(?:ag-ui|vercel-ai|a2a\/agents|acp\/ws)\/([^/]+)/);
95
101
  const extractedAgentId = agentIdMatch ? agentIdMatch[1] : undefined;
96
102
  return {
97
- type: 'ag-ui',
103
+ type: detectedType,
98
104
  endpoint,
99
105
  agentId: extractedAgentId,
106
+ authToken,
100
107
  // Enable config query for model/tools/skills selector or token usage
101
108
  enableConfigQuery: showModelSelector || showToolsMenu || showSkillsMenu || showTokenUsage,
102
109
  // Config endpoint is at /api/v1/configure (global, not per-agent)
@@ -107,6 +114,7 @@ export function ChatFloating({ endpoint, protocol: protocolProp, useStore: useSt
107
114
  }, [
108
115
  protocolProp,
109
116
  endpoint,
117
+ authToken,
110
118
  showModelSelector,
111
119
  showToolsMenu,
112
120
  showSkillsMenu,
@@ -1,10 +1,10 @@
1
- import type { TransportType } from '../types/protocol';
1
+ import type { Protocol } from '../types/protocol';
2
2
  /**
3
3
  * Protocol configuration for ChatInline
4
4
  */
5
5
  export interface ChatInlineProtocolConfig {
6
6
  /** Protocol type (ag-ui, vercel-ai, etc.) */
7
- type: TransportType;
7
+ type: Protocol;
8
8
  /** Endpoint URL */
9
9
  endpoint: string;
10
10
  /** Authentication token */
@@ -15,7 +15,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
15
15
  *
16
16
  * Uses Primer UI components instead of Tailwind CSS.
17
17
  *
18
- * @module components/chat/components/ChatInline
18
+ * @module chat/ChatInline
19
19
  */
20
20
  import { useState, useCallback, useMemo, useRef, useEffect, Fragment, } from 'react';
21
21
  import { Text, TextInput, IconButton, ActionList, Spinner, } from '@primer/react';
@@ -23,7 +23,8 @@ import { Box } from '@datalayer/primer-addons';
23
23
  import { CopyIcon, ArrowLeftIcon, SyncIcon, TrashIcon, CheckIcon, PlusIcon, PencilIcon, XIcon, } from '@primer/octicons-react';
24
24
  import { SparklesIcon } from '@datalayer/icons-react';
25
25
  import { AGUIAdapter } from '../protocols';
26
- import { generateMessageId } from '../types/message';
26
+ import { generateMessageId } from '../types/messages';
27
+ import { sanitizeAssistantContent } from '../utils';
27
28
  /**
28
29
  * Pre-defined AI action groups
29
30
  */
@@ -120,7 +121,7 @@ export function ChatInline({ selectedText, protocol, onReplaceSelection, onInser
120
121
  if (!protocol)
121
122
  return;
122
123
  const adapter = new AGUIAdapter({
123
- type: protocol.type,
124
+ protocol: protocol.type,
124
125
  baseUrl: protocol.endpoint,
125
126
  authToken: protocol.authToken,
126
127
  agentId: protocol.agentId,
@@ -132,9 +133,10 @@ export function ChatInline({ selectedText, protocol, onReplaceSelection, onInser
132
133
  switch (event.type) {
133
134
  case 'message':
134
135
  if (event.message?.content) {
135
- setAiResponse(typeof event.message.content === 'string'
136
- ? event.message.content
137
- : '');
136
+ const content = typeof event.message.content === 'string'
137
+ ? sanitizeAssistantContent(event.message.content)
138
+ : '';
139
+ setAiResponse(content);
138
140
  }
139
141
  break;
140
142
  case 'error':
@@ -6,12 +6,11 @@
6
6
  * This component uses ChatBase for all chat functionality and provides
7
7
  * a floating popup wrapper with animation, positioning, and FAB button.
8
8
  *
9
- * @module components/chat/components/ChatPopupStandalone
9
+ * @module chat/ChatPopupStandalone
10
10
  */
11
11
  import React from 'react';
12
- import { type ChatBaseProps, type RenderToolResult, type ToolCallRenderContext, type ToolCallStatus } from './base/ChatBase';
13
- import { type PoweredByTagProps } from './elements/PoweredByTag';
14
- export type { ToolCallStatus, ToolCallRenderContext, RenderToolResult };
12
+ import { type PoweredByTagProps } from './display/PoweredByTag';
13
+ import { ChatBaseProps, RenderToolResult } from '../types';
15
14
  /**
16
15
  * Simple message handler type for standalone usage
17
16
  */
@@ -11,18 +11,18 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
11
11
  * This component uses ChatBase for all chat functionality and provides
12
12
  * a floating popup wrapper with animation, positioning, and FAB button.
13
13
  *
14
- * @module components/chat/components/ChatPopupStandalone
14
+ * @module chat/ChatPopupStandalone
15
15
  */
16
16
  import { useCallback, useEffect, useRef, useState, } from 'react';
17
17
  import { IconButton, Text, Tooltip, Textarea, Button } from '@primer/react';
18
18
  import { Box } from '@datalayer/primer-addons';
19
19
  import { XIcon, CommentDiscussionIcon, PaperAirplaneIcon, SquareCircleIcon, } from '@primer/octicons-react';
20
20
  import { AiAgentIcon } from '@datalayer/icons-react';
21
- import { ChatBase, } from './base/ChatBase';
22
- import { PoweredByTag } from './elements/PoweredByTag';
23
- import { useChatOpen, useChatMessages, useChatStore, useChatLoading, useChatStreaming, } from '../store/chatStore';
24
- import { generateMessageId, createUserMessage, createAssistantMessage, } from '../types/message';
25
- import { useChatKeyboardShortcuts, getShortcutDisplay, } from '../../../hooks/useKeyboardShortcuts';
21
+ import { useChatKeyboardShortcuts, getShortcutDisplay, } from '@datalayer/core/lib/hooks';
22
+ import { ChatBase } from './base/ChatBase';
23
+ import { PoweredByTag } from './display/PoweredByTag';
24
+ import { useChatOpen, useChatMessages, useChatStore, useChatLoading, useChatStreaming, } from '../stores/chatStore';
25
+ import { generateMessageId, createUserMessage, createAssistantMessage, } from '../types/messages';
26
26
  /**
27
27
  * Hook to detect mobile viewport
28
28
  */
@@ -4,18 +4,27 @@
4
4
  * Features: keyboard shortcuts, mobile responsive, powered by tag.
5
5
  * Built on top of ChatBase for core chat functionality.
6
6
  *
7
- * @module components/chat/components/ChatSidebar
7
+ * @module chat/ChatSidebar
8
8
  */
9
9
  import React from 'react';
10
- import { type ChatBaseProps, type MessageHandler } from './base/ChatBase';
11
- import type { PoweredByTagProps } from './elements/PoweredByTag';
12
- export type { MessageHandler };
10
+ import type { PoweredByTagProps } from './display/PoweredByTag';
11
+ import type { ChatBaseProps, MessageHandler, Protocol, ProtocolConfig } from '../types';
13
12
  /**
14
13
  * ChatSidebar props
15
14
  */
16
15
  export interface ChatSidebarProps {
17
16
  /** Sidebar title */
18
17
  title?: string;
18
+ /**
19
+ * Protocol type or full configuration.
20
+ *
21
+ * When a `Protocol` string is provided (e.g. `'vercel-ai'`), it is forwarded
22
+ * to ChatBase. When a full `ProtocolConfig` object is provided, it is passed
23
+ * directly via `panelProps`.
24
+ *
25
+ * @default 'vercel-ai'
26
+ */
27
+ protocol?: Protocol | ProtocolConfig;
19
28
  /** Initial open state */
20
29
  defaultOpen?: boolean;
21
30
  /** Sidebar position */
@@ -79,5 +88,5 @@ export interface ChatSidebarProps {
79
88
  /**
80
89
  * Chat Sidebar component
81
90
  */
82
- export declare function ChatSidebar({ title, defaultOpen, position, width, showHeader, showNewChatButton, showClearButton, showSettingsButton, enableKeyboardShortcuts, toggleShortcut, showPoweredBy, poweredByProps, clickOutsideToClose, escapeToClose, className, onSettingsClick, onNewChat, onOpen, onClose, children, brandIcon, onSendMessage, enableStreaming, placeholder, description, pendingPrompt, panelProps, }: ChatSidebarProps): import("react/jsx-runtime").JSX.Element;
91
+ export declare function ChatSidebar({ title, protocol: protocolProp, defaultOpen, position, width, showHeader, showNewChatButton, showClearButton, showSettingsButton, enableKeyboardShortcuts, toggleShortcut, showPoweredBy, poweredByProps, clickOutsideToClose, className, onSettingsClick, onNewChat, onOpen, onClose, children, brandIcon, onSendMessage, enableStreaming, placeholder, description, pendingPrompt, panelProps, }: ChatSidebarProps): import("react/jsx-runtime").JSX.Element;
83
92
  export default ChatSidebar;
@@ -9,16 +9,16 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
9
9
  * Features: keyboard shortcuts, mobile responsive, powered by tag.
10
10
  * Built on top of ChatBase for core chat functionality.
11
11
  *
12
- * @module components/chat/components/ChatSidebar
12
+ * @module chat/ChatSidebar
13
13
  */
14
14
  import { useCallback, useEffect, useRef, useState } from 'react';
15
15
  import { IconButton, Text } from '@primer/react';
16
16
  import { Box } from '@datalayer/primer-addons';
17
17
  import { SidebarCollapseIcon, SidebarExpandIcon, XIcon, } from '@primer/octicons-react';
18
18
  import { AiAgentIcon } from '@datalayer/icons-react';
19
- import { ChatBase, } from './base/ChatBase';
20
- import { useChatStore, useChatOpen, useChatMessages } from '../store/chatStore';
21
- import { useChatKeyboardShortcuts, getShortcutDisplay, } from '../../../hooks/useKeyboardShortcuts';
19
+ import { useChatKeyboardShortcuts, getShortcutDisplay, } from '@datalayer/core/lib/hooks';
20
+ import { ChatBase } from './base/ChatBase';
21
+ import { useChatStore, useChatOpen, useChatMessages, } from '../stores/chatStore';
22
22
  /**
23
23
  * Hook to detect mobile viewport
24
24
  */
@@ -37,7 +37,7 @@ function useIsMobile(breakpoint = 640) {
37
37
  /**
38
38
  * Chat Sidebar component
39
39
  */
40
- export function ChatSidebar({ title = 'Chat', defaultOpen = true, position = 'right', width = 400, showHeader = true, showNewChatButton = true, showClearButton = true, showSettingsButton = false, enableKeyboardShortcuts = true, toggleShortcut = 'k', showPoweredBy = true, poweredByProps, clickOutsideToClose = true, escapeToClose = true, className, onSettingsClick, onNewChat, onOpen, onClose, children, brandIcon, onSendMessage, enableStreaming = true, placeholder = 'Ask a question...', description, pendingPrompt, panelProps, }) {
40
+ export function ChatSidebar({ title = 'Chat', protocol: protocolProp, defaultOpen = true, position = 'right', width = 400, showHeader = true, showNewChatButton = true, showClearButton = true, showSettingsButton = false, enableKeyboardShortcuts = true, toggleShortcut = 'k', showPoweredBy = true, poweredByProps, clickOutsideToClose = true, className, onSettingsClick, onNewChat, onOpen, onClose, children, brandIcon, onSendMessage, enableStreaming = true, placeholder = 'Ask a question...', description, pendingPrompt, panelProps, }) {
41
41
  const isOpen = useChatOpen();
42
42
  const messages = useChatMessages();
43
43
  const setOpen = useChatStore(state => state.setOpen);
@@ -138,34 +138,56 @@ export function ChatSidebar({ title = 'Chat', defaultOpen = true, position = 'ri
138
138
  // Collapsed state
139
139
  if (!isOpen) {
140
140
  return (_jsxs(Box, { ref: sidebarRef, className: className, sx: {
141
- position: 'relative',
141
+ position: 'fixed',
142
+ top: 12,
143
+ ...(position === 'right' ? { right: 12 } : { left: 12 }),
144
+ zIndex: 1001,
142
145
  display: 'flex',
143
146
  flexDirection: 'column',
144
147
  alignItems: 'center',
145
- p: 2,
146
- bg: 'canvas.subtle',
147
- borderLeft: position === 'right' ? '1px solid' : 'none',
148
- borderRight: position === 'left' ? '1px solid' : 'none',
149
- borderColor: 'border.default',
150
- width: 48,
151
- }, children: [_jsx(IconButton, { icon: position === 'right' ? SidebarExpandIcon : SidebarCollapseIcon, "aria-label": `Open chat${shortcutHint ? ` (${shortcutHint})` : ''}`, onClick: handleToggle, variant: "invisible" }), _jsx(Box, { sx: { mt: 2 }, children: brandIcon || _jsx(AiAgentIcon, { colored: true, size: 24 }) }), messages.length > 0 && (_jsx(Box, { sx: {
152
- mt: 2,
153
- px: 2,
154
- py: 1,
155
- bg: 'accent.emphasis',
156
- color: 'fg.onEmphasis',
157
- borderRadius: '50%',
158
- fontSize: 0,
159
- fontWeight: 'bold',
160
- }, children: messages.length })), shortcutHint && (_jsx(Box, { sx: {
161
- mt: 'auto',
162
- mb: 1,
148
+ gap: 2,
149
+ }, children: [_jsxs(Box, { sx: { position: 'relative' }, children: [_jsx(IconButton, { icon: position === 'right' ? SidebarExpandIcon : SidebarCollapseIcon, "aria-label": `Open chat${shortcutHint ? ` (${shortcutHint})` : ''}`, onClick: handleToggle, variant: "default", size: "small", sx: {
150
+ bg: 'canvas.default',
151
+ border: '1px solid',
152
+ borderColor: 'border.default',
153
+ boxShadow: 'shadow.small',
154
+ } }), messages.length > 0 && (_jsx(Box, { sx: {
155
+ position: 'absolute',
156
+ top: -6,
157
+ right: -6,
158
+ minWidth: 16,
159
+ height: 16,
160
+ px: 1,
161
+ display: 'flex',
162
+ alignItems: 'center',
163
+ justifyContent: 'center',
164
+ bg: 'accent.emphasis',
165
+ color: 'fg.onEmphasis',
166
+ borderRadius: '50%',
167
+ fontSize: '10px',
168
+ fontWeight: 'bold',
169
+ boxShadow: 'shadow.small',
170
+ }, children: messages.length > 99 ? '99+' : messages.length }))] }), _jsx(Box, { sx: {
171
+ width: 32,
172
+ height: 32,
173
+ display: 'flex',
174
+ alignItems: 'center',
175
+ justifyContent: 'center',
176
+ bg: 'canvas.default',
177
+ border: '1px solid',
178
+ borderColor: 'border.default',
179
+ borderRadius: 2,
180
+ boxShadow: 'shadow.small',
181
+ }, children: brandIcon || _jsx(AiAgentIcon, { colored: true, size: 20 }) }), shortcutHint && (_jsx(Box, { sx: {
163
182
  px: 1,
164
183
  py: '2px',
165
- bg: 'neutral.muted',
184
+ bg: 'canvas.default',
185
+ border: '1px solid',
186
+ borderColor: 'border.default',
166
187
  color: 'fg.muted',
167
188
  borderRadius: 1,
168
189
  fontSize: 0,
190
+ boxShadow: 'shadow.small',
169
191
  }, children: _jsx(Text, { sx: { fontSize: '10px', fontFamily: 'mono' }, children: shortcutHint }) }))] }));
170
192
  }
171
193
  // Mobile full-screen overlay
@@ -206,7 +228,7 @@ export function ChatSidebar({ title = 'Chat', defaultOpen = true, position = 'ri
206
228
  borderRight: !isMobile && position === 'left' ? '1px solid' : 'none',
207
229
  borderColor: 'border.default',
208
230
  ...mobileStyles,
209
- }, children: _jsx(ChatBase, { title: title, showHeader: showHeader, brandIcon: brandIcon, headerButtons: {
231
+ }, children: _jsx(ChatBase, { title: title, showHeader: showHeader, brandIcon: brandIcon, protocol: protocolProp, headerButtons: {
210
232
  showNewChat: showNewChatButton,
211
233
  showClear: showClearButton && messages.length > 0,
212
234
  showSettings: showSettingsButton,
@@ -6,12 +6,11 @@
6
6
  * This component uses ChatBase for all chat functionality and provides
7
7
  * a floating popup wrapper with animation, positioning, and FAB button.
8
8
  *
9
- * @module components/chat/components/ChatStandalone
9
+ * @module chat/ChatStandalone
10
10
  */
11
11
  import React from 'react';
12
- import { type ChatBaseProps, type RenderToolResult, type ToolCallRenderContext, type ToolCallStatus, type StreamingMessageOptions, type MessageHandler } from './base/ChatBase';
13
- import { type PoweredByTagProps } from './elements/PoweredByTag';
14
- export type { ToolCallStatus, ToolCallRenderContext, RenderToolResult, StreamingMessageOptions, MessageHandler, };
12
+ import { type PoweredByTagProps } from './display/PoweredByTag';
13
+ import { type ChatBaseProps, type RenderToolResult, type MessageHandler } from '../types';
15
14
  /**
16
15
  * ChatStandalone props
17
16
  */
@@ -11,17 +11,17 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
11
11
  * This component uses ChatBase for all chat functionality and provides
12
12
  * a floating popup wrapper with animation, positioning, and FAB button.
13
13
  *
14
- * @module components/chat/components/ChatStandalone
14
+ * @module chat/ChatStandalone
15
15
  */
16
16
  import { useCallback, useEffect, useRef, useState } from 'react';
17
17
  import { IconButton, Text, Tooltip } from '@primer/react';
18
18
  import { Box } from '@datalayer/primer-addons';
19
19
  import { XIcon, CommentDiscussionIcon } from '@primer/octicons-react';
20
20
  import { AiAgentIcon } from '@datalayer/icons-react';
21
- import { ChatBase, } from './base/ChatBase';
22
- import { PoweredByTag } from './elements/PoweredByTag';
23
- import { useChatOpen, useChatMessages, useChatStore } from '../store/chatStore';
24
- import { useChatKeyboardShortcuts, getShortcutDisplay, } from '../../../hooks/useKeyboardShortcuts';
21
+ import { useChatKeyboardShortcuts, getShortcutDisplay, } from '@datalayer/core/lib/hooks';
22
+ import { ChatBase } from './base/ChatBase';
23
+ import { PoweredByTag } from './display/PoweredByTag';
24
+ import { useChatOpen, useChatMessages, useChatStore, } from '../stores/chatStore';
25
25
  /**
26
26
  * Hook to detect mobile viewport
27
27
  */
@@ -0,0 +1,6 @@
1
+ import type { ChatBaseProps } from '../../types/chat';
2
+ /**
3
+ * ChatBase component — Universal chat panel supporting store, protocol, and custom modes.
4
+ */
5
+ export declare function ChatBase(props: ChatBaseProps): import("react/jsx-runtime").JSX.Element;
6
+ export default ChatBase;