@datalayer/agent-runtimes 1.0.28 → 1.3.10

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 (776) hide show
  1. package/lib/AgentDocument.js +5 -22
  2. package/lib/AgentNode.d.ts +1 -1
  3. package/lib/AgentNode.js +193 -23
  4. package/lib/AgentNotebook.js +1 -1
  5. package/lib/App.d.ts +1 -1
  6. package/lib/AppExamples2.d.ts +1 -1
  7. package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
  8. package/lib/agent-node/AgentNodeGallery.js +19 -15
  9. package/lib/agent-node/themeStore.js +7 -6
  10. package/lib/agents/AgentDetails.d.ts +8 -2
  11. package/lib/agents/AgentDetails.js +41 -11
  12. package/lib/agents/AgentRuntimeChat.d.ts +3 -3
  13. package/lib/agents/AgentRuntimeChat.js +15 -15
  14. package/lib/api/agents.d.ts +10 -10
  15. package/lib/api/agents.js +15 -15
  16. package/lib/api/checkpoints.d.ts +40 -0
  17. package/lib/api/checkpoints.js +75 -0
  18. package/lib/api/index.d.ts +1 -0
  19. package/lib/api/index.js +18 -5
  20. package/lib/api/notifications.d.ts +21 -6
  21. package/lib/api/notifications.js +32 -14
  22. package/lib/api/runtimes/environments.d.ts +385 -4
  23. package/lib/api/runtimes/environments.js +610 -9
  24. package/lib/api/runtimes/runtimes.d.ts +19 -19
  25. package/lib/api/runtimes/runtimes.js +47 -46
  26. package/lib/api/spacer/notebooks.js +1 -1
  27. package/lib/chat/Chat.d.ts +16 -4
  28. package/lib/chat/Chat.js +18 -5
  29. package/lib/chat/ChatFloating.d.ts +13 -2
  30. package/lib/chat/ChatFloating.js +192 -117
  31. package/lib/chat/ChatInline.d.ts +15 -0
  32. package/lib/chat/ChatInline.js +0 -18
  33. package/lib/chat/ChatPopupStandalone.d.ts +1 -1
  34. package/lib/chat/ChatSidebar.d.ts +14 -2
  35. package/lib/chat/ChatSidebar.js +1 -1
  36. package/lib/chat/ChatStandalone.d.ts +1 -1
  37. package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
  38. package/lib/chat/EphemeralSurfaceControl.js +55 -0
  39. package/lib/chat/base/ChatAvailability.d.ts +34 -0
  40. package/lib/chat/base/ChatAvailability.js +18 -0
  41. package/lib/chat/base/ChatBase.d.ts +2 -1
  42. package/lib/chat/base/ChatBase.js +657 -28
  43. package/lib/chat/display/EmptyState.d.ts +15 -1
  44. package/lib/chat/display/EmptyState.js +78 -12
  45. package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
  46. package/lib/chat/display/PoweredByTag.d.ts +1 -1
  47. package/lib/chat/display/groupSuggestions.d.ts +21 -0
  48. package/lib/chat/display/groupSuggestions.js +18 -0
  49. package/lib/chat/document/EphemeralDocument.d.ts +70 -6
  50. package/lib/chat/document/EphemeralDocument.js +154 -52
  51. package/lib/chat/header/ChatHeader.d.ts +1 -1
  52. package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
  53. package/lib/chat/header/ChatHeaderBase.js +67 -96
  54. package/lib/chat/index.d.ts +4 -1
  55. package/lib/chat/index.js +8 -1
  56. package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
  57. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
  58. package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
  59. package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
  60. package/lib/chat/messages/ChatMessageList.d.ts +22 -1
  61. package/lib/chat/messages/ChatMessageList.js +370 -166
  62. package/lib/chat/messages/ChatMessages.d.ts +1 -1
  63. package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
  64. package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
  65. package/lib/chat/messages/TurnFooter.d.ts +42 -0
  66. package/lib/chat/messages/TurnFooter.js +75 -0
  67. package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
  68. package/lib/chat/messages/assistantMarkdown.js +56 -0
  69. package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
  70. package/lib/chat/notebook/EphemeralNotebook.js +194 -61
  71. package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
  72. package/lib/chat/parts/MessagePart.d.ts +1 -1
  73. package/lib/chat/parts/ReasoningPart.d.ts +8 -1
  74. package/lib/chat/parts/TextPart.d.ts +1 -1
  75. package/lib/chat/parts/ToolPart.d.ts +8 -1
  76. package/lib/chat/prompt/FloatingCard.d.ts +26 -0
  77. package/lib/chat/prompt/FloatingCard.js +80 -0
  78. package/lib/chat/prompt/InputPrompt.d.ts +206 -53
  79. package/lib/chat/prompt/InputPrompt.js +161 -80
  80. package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
  81. package/lib/chat/prompt/InputPromptBase.js +225 -0
  82. package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
  83. package/lib/chat/prompt/InputPromptLexical.js +227 -30
  84. package/lib/chat/prompt/InputPromptText.d.ts +10 -2
  85. package/lib/chat/prompt/InputPromptText.js +35 -3
  86. package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
  87. package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
  88. package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
  89. package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
  90. package/lib/chat/prompt/footer/index.d.ts +7 -0
  91. package/lib/chat/prompt/footer/index.js +11 -0
  92. package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
  93. package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
  94. package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
  95. package/lib/chat/prompt/header/InPromptHeader.js +14 -0
  96. package/lib/chat/prompt/header/index.d.ts +7 -0
  97. package/lib/chat/prompt/header/index.js +11 -0
  98. package/lib/chat/prompt/index.d.ts +8 -4
  99. package/lib/chat/prompt/index.js +15 -3
  100. package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
  101. package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
  102. package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
  103. package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
  104. package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
  105. package/lib/chat/prompt/menus/ModelSelector.js +27 -0
  106. package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
  107. package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
  108. package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
  109. package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
  110. package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
  111. package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
  112. package/lib/chat/prompt/menus/index.d.ts +15 -0
  113. package/lib/chat/prompt/menus/index.js +19 -0
  114. package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
  115. package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
  116. package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
  117. package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
  118. package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
  119. package/lib/chat/prompt/plugins/MentionChip.js +24 -0
  120. package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
  121. package/lib/chat/prompt/plugins/MentionNode.js +77 -0
  122. package/lib/chat/prompt/promptHistory.d.ts +52 -0
  123. package/lib/chat/prompt/promptHistory.js +123 -0
  124. package/lib/chat/prompt/stack.d.ts +81 -0
  125. package/lib/chat/prompt/stack.js +41 -0
  126. package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
  127. package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
  128. package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
  129. package/lib/chat/tools/A2AAgentDialog.js +265 -0
  130. package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
  131. package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
  132. package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
  133. package/lib/chat/tools/index.d.ts +1 -0
  134. package/lib/chat/tools/index.js +1 -0
  135. package/lib/chat/usage/ContextPie.d.ts +17 -0
  136. package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
  137. package/lib/chat/useViewportDrag.d.ts +11 -0
  138. package/lib/chat/useViewportDrag.js +61 -0
  139. package/lib/chat/viewModes.d.ts +51 -0
  140. package/lib/chat/viewModes.js +57 -0
  141. package/lib/client/AgentRuntimesClient.d.ts +10 -9
  142. package/lib/client/AgentRuntimesClient.js +1 -1
  143. package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
  144. package/lib/client/AgentsMixin.d.ts +12 -12
  145. package/lib/client/AgentsMixin.js +31 -31
  146. package/lib/client/IAgentRuntimesClient.d.ts +10 -10
  147. package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
  148. package/lib/client/SdkAgentRuntimesClient.js +10 -10
  149. package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
  150. package/lib/client/mixins/RuntimesMixin.js +54 -21
  151. package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
  152. package/lib/components/agents/AgentSummary.d.ts +13 -0
  153. package/lib/components/agents/AgentSummary.js +21 -4
  154. package/lib/components/cards/NotificationEventCard.d.ts +1 -1
  155. package/lib/components/cards/OutputCard.d.ts +1 -1
  156. package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
  157. package/lib/components/cards/ToolApprovalCard.js +1 -0
  158. package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
  159. package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
  160. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
  161. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
  162. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +76 -0
  163. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +81 -0
  164. package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +12 -0
  165. package/lib/components/code-sandboxes/CodeSandboxLauncher.js +132 -25
  166. package/lib/components/code-sandboxes/CodeSandboxNames.js +75 -29
  167. package/lib/components/code-sandboxes/CodeSandboxPicker.d.ts +14 -1
  168. package/lib/components/code-sandboxes/CodeSandboxPicker.js +226 -45
  169. package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
  170. package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
  171. package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
  172. package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
  173. package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
  174. package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +16 -1
  175. package/lib/components/code-sandboxes/CodeSandboxUtils.js +69 -12
  176. package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
  177. package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
  178. package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
  179. package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
  180. package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
  181. package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
  182. package/lib/components/code-sandboxes/codeSandboxProviders.d.ts +29 -0
  183. package/lib/components/code-sandboxes/codeSandboxProviders.js +90 -0
  184. package/lib/components/code-sandboxes/index.d.ts +3 -0
  185. package/lib/components/code-sandboxes/index.js +3 -0
  186. package/lib/components/context/SpaceSelect.d.ts +1 -1
  187. package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
  188. package/lib/components/icons/ArtifactIcon.d.ts +1 -0
  189. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  190. package/lib/components/progress/CreditsIndicator.d.ts +1 -0
  191. package/lib/components/progress/CreditsIndicator.js +0 -4
  192. package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
  193. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
  194. package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
  195. package/lib/components/snippets/SnippetDialog.d.ts +1 -0
  196. package/lib/components/snippets/SnippetDialog.js +0 -4
  197. package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
  198. package/lib/components/specs/SpecPayloadPreview.js +102 -0
  199. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  200. package/lib/context/ContextDistribution.d.ts +1 -1
  201. package/lib/context/ContextInspector.d.ts +2 -1
  202. package/lib/context/ContextPanel.d.ts +1 -1
  203. package/lib/context/ContextUsage.d.ts +1 -1
  204. package/lib/context/CostTracker.d.ts +1 -1
  205. package/lib/context/CostUsageChart.d.ts +1 -1
  206. package/lib/context/CostUsageChart.js +4 -4
  207. package/lib/context/MessageHistory.d.ts +3 -2
  208. package/lib/context/TokenUsageChart.d.ts +1 -1
  209. package/lib/context/TokenUsageChart.js +4 -4
  210. package/lib/examples/A2UiAgentExample.js +15 -6
  211. package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
  212. package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
  213. package/lib/examples/A2UiContactCardExample.d.ts +10 -0
  214. package/lib/examples/A2UiContactCardExample.js +23 -170
  215. package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
  216. package/lib/examples/A2UiJupyterOutputExample.js +792 -0
  217. package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
  218. package/lib/examples/A2UiRestaurantExample.js +24 -179
  219. package/lib/examples/A2UiViewerExample.d.ts +10 -0
  220. package/lib/examples/A2UiViewerExample.js +24 -378
  221. package/lib/examples/AgUiAgenticExample.js +2 -4
  222. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
  223. package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
  224. package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
  225. package/lib/examples/AgUiSharedStateExample.js +2 -4
  226. package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
  227. package/lib/examples/AgentA2AExample.d.ts +17 -0
  228. package/lib/examples/AgentA2AExample.js +56 -0
  229. package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
  230. package/lib/examples/AgentCheckpointsExample.js +72 -54
  231. package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
  232. package/lib/examples/AgentCodeSandboxExample.js +93 -303
  233. package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
  234. package/lib/examples/AgentCodeSandboxesExample.js +56 -162
  235. package/lib/examples/AgentCodemodeExample.d.ts +7 -2
  236. package/lib/examples/AgentCodemodeExample.js +60 -125
  237. package/lib/examples/AgentCompactionExample.js +19 -135
  238. package/lib/examples/AgentEvalsExample.js +34 -66
  239. package/lib/examples/AgentGuardrailsExample.js +64 -112
  240. package/lib/examples/AgentHooksExample.d.ts +11 -0
  241. package/lib/examples/AgentHooksExample.js +30 -67
  242. package/lib/examples/AgentInferenceProviderExample.js +8 -32
  243. package/lib/examples/AgentLoopExample.d.ts +4 -2
  244. package/lib/examples/AgentLoopExample.js +45 -93
  245. package/lib/examples/AgentMCPExample.js +30 -79
  246. package/lib/examples/AgentMemoryExample.js +21 -64
  247. package/lib/examples/AgentMonitoringExample.js +33 -94
  248. package/lib/examples/AgentNotificationsExample.js +56 -95
  249. package/lib/examples/AgentOtelExample.js +35 -88
  250. package/lib/examples/AgentOutputsExample.d.ts +2 -1
  251. package/lib/examples/AgentOutputsExample.js +16 -137
  252. package/lib/examples/AgentParametersExample.js +7 -17
  253. package/lib/examples/AgentSkillsExample.js +40 -154
  254. package/lib/examples/AgentSubagentsExample.d.ts +7 -6
  255. package/lib/examples/AgentSubagentsExample.js +80 -191
  256. package/lib/examples/AgentToolApprovalsExample.js +35 -91
  257. package/lib/examples/AgentTriggersExample.js +43 -59
  258. package/lib/examples/AgentspecsExample.js +7 -7
  259. package/lib/examples/CellExample.d.ts +1 -1
  260. package/lib/examples/ChatExample.d.ts +12 -5
  261. package/lib/examples/ChatExample.js +38 -13
  262. package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
  263. package/lib/examples/CopilotKitLexicalExample.js +4 -41
  264. package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
  265. package/lib/examples/CopilotKitNotebookExample.js +2 -14
  266. package/lib/examples/DecksAgent.d.ts +21 -0
  267. package/lib/examples/DecksAgent.js +23 -0
  268. package/lib/examples/DocumentPageAgent.d.ts +19 -0
  269. package/lib/examples/DocumentPageAgent.js +15 -0
  270. package/lib/examples/Lexical2Example.d.ts +2 -2
  271. package/lib/examples/Lexical2Example.js +17 -38
  272. package/lib/examples/LexicalAgentExample.d.ts +2 -1
  273. package/lib/examples/LexicalAgentExample.js +29 -102
  274. package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
  275. package/lib/examples/LexicalAgentSidebarExample.js +99 -131
  276. package/lib/examples/LoopShellExample.d.ts +38 -0
  277. package/lib/examples/LoopShellExample.js +68 -0
  278. package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
  279. package/lib/examples/LoopWorkspaceEmbed.js +73 -0
  280. package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
  281. package/lib/examples/LoopWorkspaceExample.js +151 -0
  282. package/lib/examples/NotebookAgentExample.d.ts +13 -0
  283. package/lib/examples/NotebookAgentExample.js +36 -86
  284. package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
  285. package/lib/examples/NotebookAgentSidebarExample.js +39 -83
  286. package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
  287. package/lib/examples/NotebookCollaborationExample.js +108 -20
  288. package/lib/examples/NotebookExample.d.ts +1 -1
  289. package/lib/examples/NotebookExample.js +20 -10
  290. package/lib/examples/NotebookPageAgent.d.ts +23 -0
  291. package/lib/examples/NotebookPageAgent.js +17 -0
  292. package/lib/examples/components/ExampleWrapper.d.ts +5 -0
  293. package/lib/examples/components/ExampleWrapper.js +36 -28
  294. package/lib/examples/components/LexicalEditor.d.ts +1 -1
  295. package/lib/examples/components/LexicalEditor.js +4 -24
  296. package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
  297. package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
  298. package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
  299. package/lib/examples/example-selector.js +26 -6
  300. package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
  301. package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
  302. package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
  303. package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
  304. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
  305. package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
  306. package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
  307. package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
  308. package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
  309. package/lib/examples/index.d.ts +4 -0
  310. package/lib/examples/index.js +6 -0
  311. package/lib/examples/lexical/editorConfig.d.ts +2 -75
  312. package/lib/examples/lexical/editorConfig.js +26 -48
  313. package/lib/examples/lexical/lexical-theme.css +65 -47
  314. package/lib/examples/main.js +450 -322
  315. package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
  316. package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
  317. package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
  318. package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
  319. package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
  320. package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
  321. package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
  322. package/lib/examples/scenes/A2UiViewerScene.js +395 -0
  323. package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
  324. package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
  325. package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
  326. package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
  327. package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
  328. package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
  329. package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
  330. package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
  331. package/lib/examples/utils/exampleSurfaces.js +38 -0
  332. package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
  333. package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
  334. package/lib/examples/utils/localUrl.d.ts +2 -0
  335. package/lib/examples/utils/localUrl.js +49 -0
  336. package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
  337. package/lib/examples/utils/notebookToolbarItems.js +129 -0
  338. package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
  339. package/lib/examples/utils/runtimeTargetStore.js +82 -1
  340. package/lib/examples/utils/themedProvider.d.ts +7 -0
  341. package/lib/examples/utils/themedProvider.js +57 -4
  342. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
  343. package/lib/examples/utils/waitForAgent.d.ts +23 -0
  344. package/lib/examples/utils/waitForAgent.js +24 -0
  345. package/lib/examples2/CellExample.d.ts +1 -1
  346. package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
  347. package/lib/examples2/NotebookExample.d.ts +1 -1
  348. package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
  349. package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
  350. package/lib/examples2/main.js +24 -4
  351. package/lib/extensions/A2UIExtension.d.ts +1 -1
  352. package/lib/hooks/index.d.ts +8 -5
  353. package/lib/hooks/index.js +20 -5
  354. package/lib/hooks/useAgentRuntimes.d.ts +49 -22
  355. package/lib/hooks/useAgentRuntimes.js +214 -90
  356. package/lib/hooks/useAgentsCatalog.js +32 -4
  357. package/lib/hooks/useBrowserAgent.d.ts +26 -0
  358. package/lib/hooks/useBrowserAgent.js +75 -0
  359. package/lib/hooks/useBrowserInference.d.ts +27 -0
  360. package/lib/hooks/useBrowserInference.js +67 -0
  361. package/lib/hooks/useCheckpoints.d.ts +8 -17
  362. package/lib/hooks/useCheckpoints.js +25 -59
  363. package/lib/hooks/useConfig.d.ts +1 -1
  364. package/lib/hooks/useConfig.js +5 -1
  365. package/lib/hooks/useContextSnapshot.d.ts +18 -7
  366. package/lib/hooks/useContextSnapshot.js +14 -10
  367. package/lib/hooks/useNotifications.d.ts +11 -11
  368. package/lib/hooks/useNotifications.js +1 -1
  369. package/lib/hooks/useProjects.d.ts +7 -19
  370. package/lib/hooks/useProjects.js +5 -5
  371. package/lib/hooks/useSkills.d.ts +0 -1
  372. package/lib/hooks/useSkills.js +6 -2
  373. package/lib/hooks/useToolApprovals.d.ts +8 -8
  374. package/lib/hooks/useToolApprovals.js +3 -3
  375. package/lib/identity/AgentIdentity.d.ts +9 -2
  376. package/lib/identity/index.d.ts +1 -1
  377. package/lib/identity/index.js +1 -1
  378. package/lib/identity/types.d.ts +1 -1
  379. package/lib/identity/types.js +1 -1
  380. package/lib/index.d.ts +1 -0
  381. package/lib/index.js +4 -0
  382. package/lib/jupyter/index.d.ts +2 -1
  383. package/lib/jupyter/index.js +2 -1
  384. package/lib/jupyter/serverExecution.d.ts +78 -0
  385. package/lib/jupyter/serverExecution.js +258 -0
  386. package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
  387. package/lib/jupyter/useResumeServerExecutions.js +64 -0
  388. package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
  389. package/lib/lexical/ChatInlinePlugin.js +0 -36
  390. package/lib/loop/core/focusRequests.d.ts +10 -0
  391. package/lib/loop/core/focusRequests.js +46 -0
  392. package/lib/loop/core/index.d.ts +894 -0
  393. package/lib/loop/core/index.js +264 -0
  394. package/lib/loop/core/promptStore.d.ts +44 -0
  395. package/lib/loop/core/promptStore.js +63 -0
  396. package/lib/loop/core/surfaceRequests.d.ts +33 -0
  397. package/lib/loop/core/surfaceRequests.js +29 -0
  398. package/lib/loop/core/toolbar.d.ts +28 -0
  399. package/lib/loop/core/toolbar.js +59 -0
  400. package/lib/loop/embed/LoopEmbed.d.ts +57 -0
  401. package/lib/loop/embed/LoopEmbed.js +118 -0
  402. package/lib/loop/extensions.d.ts +10 -0
  403. package/lib/loop/extensions.js +49 -0
  404. package/lib/loop/index.d.ts +68 -0
  405. package/lib/loop/index.js +87 -0
  406. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
  407. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
  408. package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
  409. package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
  410. package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
  411. package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
  412. package/lib/loop/plugins/a2ui/index.d.ts +3 -0
  413. package/lib/loop/plugins/a2ui/index.js +50 -0
  414. package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
  415. package/lib/loop/plugins/a2ui-scene/index.js +28 -0
  416. package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
  417. package/lib/loop/plugins/agent-a2a/index.js +26 -0
  418. package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
  419. package/lib/loop/plugins/agent-a2ui/index.js +42 -0
  420. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
  421. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
  422. package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
  423. package/lib/loop/plugins/agent-capacity/index.js +52 -0
  424. package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
  425. package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
  426. package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
  427. package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
  428. package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
  429. package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
  430. package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
  431. package/lib/loop/plugins/agent-codemode/index.js +41 -0
  432. package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
  433. package/lib/loop/plugins/agent-compaction/index.js +34 -0
  434. package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
  435. package/lib/loop/plugins/agent-evals/index.js +25 -0
  436. package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
  437. package/lib/loop/plugins/agent-guardrails/index.js +25 -0
  438. package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
  439. package/lib/loop/plugins/agent-hooks/index.js +28 -0
  440. package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
  441. package/lib/loop/plugins/agent-inference/index.js +29 -0
  442. package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
  443. package/lib/loop/plugins/agent-mcp/index.js +25 -0
  444. package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
  445. package/lib/loop/plugins/agent-memory/index.js +25 -0
  446. package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
  447. package/lib/loop/plugins/agent-monitoring/index.js +25 -0
  448. package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
  449. package/lib/loop/plugins/agent-notifications/index.js +25 -0
  450. package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
  451. package/lib/loop/plugins/agent-otel/index.js +25 -0
  452. package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
  453. package/lib/loop/plugins/agent-outputs/index.js +25 -0
  454. package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
  455. package/lib/loop/plugins/agent-parameters/index.js +25 -0
  456. package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
  457. package/lib/loop/plugins/agent-skills/index.js +25 -0
  458. package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
  459. package/lib/loop/plugins/agent-subagents/index.js +25 -0
  460. package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
  461. package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
  462. package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
  463. package/lib/loop/plugins/agent-triggers/index.js +26 -0
  464. package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
  465. package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
  466. package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
  467. package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
  468. package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
  469. package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
  470. package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
  471. package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
  472. package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
  473. package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
  474. package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
  475. package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
  476. package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
  477. package/lib/loop/plugins/agents/SandboxView.js +43 -0
  478. package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
  479. package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
  480. package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
  481. package/lib/loop/plugins/agents/agentIcons.js +88 -0
  482. package/lib/loop/plugins/agents/browserService.d.ts +50 -0
  483. package/lib/loop/plugins/agents/browserService.js +233 -0
  484. package/lib/loop/plugins/agents/index.d.ts +13 -0
  485. package/lib/loop/plugins/agents/index.js +17 -0
  486. package/lib/loop/plugins/agents/plugin.d.ts +91 -0
  487. package/lib/loop/plugins/agents/plugin.js +201 -0
  488. package/lib/loop/plugins/agents/service.d.ts +99 -0
  489. package/lib/loop/plugins/agents/service.js +167 -0
  490. package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
  491. package/lib/loop/plugins/agents/specSubagents.js +33 -0
  492. package/lib/loop/plugins/agents/switchable.d.ts +107 -0
  493. package/lib/loop/plugins/agents/switchable.js +405 -0
  494. package/lib/loop/plugins/agents/team.d.ts +87 -0
  495. package/lib/loop/plugins/agents/team.js +143 -0
  496. package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
  497. package/lib/loop/plugins/agents/useSandboxService.js +36 -0
  498. package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
  499. package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
  500. package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
  501. package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
  502. package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
  503. package/lib/loop/plugins/agentspecs/index.js +63 -0
  504. package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
  505. package/lib/loop/plugins/chat/ChatView.js +1670 -0
  506. package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
  507. package/lib/loop/plugins/chat/chatViewTools.js +92 -0
  508. package/lib/loop/plugins/chat/index.d.ts +111 -0
  509. package/lib/loop/plugins/chat/index.js +143 -0
  510. package/lib/loop/plugins/chat/turnState.d.ts +41 -0
  511. package/lib/loop/plugins/chat/turnState.js +90 -0
  512. package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
  513. package/lib/loop/plugins/chat-extras/index.js +51 -0
  514. package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
  515. package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
  516. package/lib/loop/plugins/chat-header/index.d.ts +3 -0
  517. package/lib/loop/plugins/chat-header/index.js +21 -0
  518. package/lib/loop/plugins/chat-view/index.d.ts +10 -0
  519. package/lib/loop/plugins/chat-view/index.js +29 -0
  520. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
  521. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
  522. package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
  523. package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
  524. package/lib/loop/plugins/commands/index.d.ts +20 -0
  525. package/lib/loop/plugins/commands/index.js +148 -0
  526. package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
  527. package/lib/loop/plugins/decks/DeckSurface.js +6 -0
  528. package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
  529. package/lib/loop/plugins/decks/DecksMenu.js +42 -0
  530. package/lib/loop/plugins/decks/index.d.ts +19 -0
  531. package/lib/loop/plugins/decks/index.js +133 -0
  532. package/lib/loop/plugins/decks/surface.d.ts +7 -0
  533. package/lib/loop/plugins/decks/surface.js +11 -0
  534. package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
  535. package/lib/loop/plugins/document/DocumentView.js +68 -0
  536. package/lib/loop/plugins/document/index.d.ts +3 -0
  537. package/lib/loop/plugins/document/index.js +86 -0
  538. package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
  539. package/lib/loop/plugins/document/openingDocument.js +122 -0
  540. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
  541. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
  542. package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
  543. package/lib/loop/plugins/document-toolbar/index.js +35 -0
  544. package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
  545. package/lib/loop/plugins/document-toolbar/names.js +10 -0
  546. package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
  547. package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
  548. package/lib/loop/plugins/document-view/index.d.ts +10 -0
  549. package/lib/loop/plugins/document-view/index.js +28 -0
  550. package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
  551. package/lib/loop/plugins/graph/GraphToggle.js +22 -0
  552. package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
  553. package/lib/loop/plugins/graph/GraphView.js +6 -0
  554. package/lib/loop/plugins/graph/index.d.ts +5 -0
  555. package/lib/loop/plugins/graph/index.js +80 -0
  556. package/lib/loop/plugins/graph/viewType.d.ts +10 -0
  557. package/lib/loop/plugins/graph/viewType.js +14 -0
  558. package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
  559. package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
  560. package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
  561. package/lib/loop/plugins/input-prompt/index.js +26 -0
  562. package/lib/loop/plugins/models/index.d.ts +3 -0
  563. package/lib/loop/plugins/models/index.js +49 -0
  564. package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
  565. package/lib/loop/plugins/notebook/NotebookView.js +189 -0
  566. package/lib/loop/plugins/notebook/index.d.ts +3 -0
  567. package/lib/loop/plugins/notebook/index.js +91 -0
  568. package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
  569. package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
  570. package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
  571. package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
  572. package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
  573. package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
  574. package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
  575. package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
  576. package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
  577. package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
  578. package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
  579. package/lib/loop/plugins/notebook-view/index.js +30 -0
  580. package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
  581. package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
  582. package/lib/loop/plugins/page-layout/index.d.ts +35 -0
  583. package/lib/loop/plugins/page-layout/index.js +80 -0
  584. package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
  585. package/lib/loop/plugins/plugins-panel/index.js +74 -0
  586. package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
  587. package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
  588. package/lib/loop/plugins/prompt/index.d.ts +11 -0
  589. package/lib/loop/plugins/prompt/index.js +73 -0
  590. package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
  591. package/lib/loop/plugins/shell/editorChoice.js +58 -0
  592. package/lib/loop/plugins/shell/index.d.ts +47 -0
  593. package/lib/loop/plugins/shell/index.js +142 -0
  594. package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
  595. package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
  596. package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
  597. package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
  598. package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
  599. package/lib/loop/plugins/subagent-activity/index.js +42 -0
  600. package/lib/loop/plugins/view-switch/index.d.ts +46 -0
  601. package/lib/loop/plugins/view-switch/index.js +68 -0
  602. package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
  603. package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
  604. package/lib/loop/plugins/window-frame/index.d.ts +6 -0
  605. package/lib/loop/plugins/window-frame/index.js +79 -0
  606. package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
  607. package/lib/loop/plugins/window-frame/slots.js +30 -0
  608. package/lib/loop/presets.d.ts +167 -0
  609. package/lib/loop/presets.js +139 -0
  610. package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
  611. package/lib/loop/shell/LoopWorkspace.js +231 -0
  612. package/lib/loop/shell/PluginToggles.d.ts +21 -0
  613. package/lib/loop/shell/PluginToggles.js +41 -0
  614. package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
  615. package/lib/loop/shell/ViewSwitcher.js +43 -0
  616. package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
  617. package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
  618. package/lib/loop/shell/index.d.ts +10 -0
  619. package/lib/loop/shell/index.js +14 -0
  620. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
  621. package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
  622. package/lib/loop-example-main.d.ts +1 -0
  623. package/lib/loop-example-main.js +42 -0
  624. package/lib/loop-main.d.ts +1 -0
  625. package/lib/loop-main.js +138 -0
  626. package/lib/mcp/McpServerManager.d.ts +1 -1
  627. package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
  628. package/lib/models/CodeSandboxVariant.d.ts +53 -0
  629. package/lib/models/CodeSandboxVariant.js +77 -0
  630. package/lib/models/Content.d.ts +26 -0
  631. package/lib/models/Environment.d.ts +561 -5
  632. package/lib/models/Environment.js +12 -1
  633. package/lib/models/EnvironmentDTO.d.ts +24 -6
  634. package/lib/models/EnvironmentDTO.js +13 -2
  635. package/lib/models/Exercise.d.ts +0 -2
  636. package/lib/models/Library.d.ts +0 -2
  637. package/lib/models/Notebook.d.ts +0 -2
  638. package/lib/models/ProjectDTO.d.ts +2 -2
  639. package/lib/models/ProjectDTO.js +4 -4
  640. package/lib/models/Runtime.d.ts +11 -11
  641. package/lib/models/RuntimeDTO.d.ts +16 -7
  642. package/lib/models/RuntimeDTO.js +9 -9
  643. package/lib/models/Space.d.ts +10 -0
  644. package/lib/models/Space.js +1 -1
  645. package/lib/models/SpaceDTO.d.ts +1 -1
  646. package/lib/models/SpaceItem.d.ts +1 -2
  647. package/lib/models/environments.generated.d.ts +113 -0
  648. package/lib/models/environments.generated.js +13 -0
  649. package/lib/models/index.d.ts +1 -1
  650. package/lib/models/index.js +1 -1
  651. package/lib/protocols/A2AAdapter.d.ts +39 -6
  652. package/lib/protocols/A2AAdapter.js +180 -11
  653. package/lib/protocols/ACPAdapter.js +40 -37
  654. package/lib/protocols/AGUIAdapter.d.ts +14 -0
  655. package/lib/protocols/AGUIAdapter.js +34 -9
  656. package/lib/protocols/BrowserAgentAdapter.d.ts +117 -0
  657. package/lib/protocols/BrowserAgentAdapter.js +310 -0
  658. package/lib/protocols/VercelAIAdapter.d.ts +10 -0
  659. package/lib/protocols/VercelAIAdapter.js +27 -7
  660. package/lib/protocols/index.d.ts +1 -0
  661. package/lib/protocols/index.js +1 -0
  662. package/lib/runtimes/actions.d.ts +3 -3
  663. package/lib/runtimes/actions.js +41 -16
  664. package/lib/runtimes/apis.d.ts +13 -4
  665. package/lib/runtimes/browser/agent.d.ts +54 -0
  666. package/lib/runtimes/browser/agent.js +63 -0
  667. package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
  668. package/lib/runtimes/browser/anonymousToken.js +300 -0
  669. package/lib/runtimes/browser/frontendTools.d.ts +61 -0
  670. package/lib/runtimes/browser/frontendTools.js +152 -0
  671. package/lib/runtimes/browser/index.d.ts +11 -0
  672. package/lib/runtimes/browser/index.js +20 -0
  673. package/lib/runtimes/browser/model.d.ts +52 -0
  674. package/lib/runtimes/browser/model.js +110 -0
  675. package/lib/runtimes/browser/protocol.d.ts +54 -0
  676. package/lib/runtimes/browser/protocol.js +35 -0
  677. package/lib/runtimes/browser/subagents.d.ts +131 -0
  678. package/lib/runtimes/browser/subagents.js +241 -0
  679. package/lib/runtimes/index.d.ts +3 -0
  680. package/lib/runtimes/index.js +3 -0
  681. package/lib/runtimes/lifecycle.d.ts +76 -0
  682. package/lib/runtimes/lifecycle.js +99 -0
  683. package/lib/runtimes/variants.d.ts +172 -0
  684. package/lib/runtimes/variants.js +187 -0
  685. package/lib/services/reconnectToRuntime.d.ts +2 -2
  686. package/lib/services/reconnectToRuntime.js +3 -3
  687. package/lib/services/sandboxServiceManagers.d.ts +2 -2
  688. package/lib/services/sandboxServiceManagers.js +11 -11
  689. package/lib/specs/agents/agents.d.ts +128 -112
  690. package/lib/specs/agents/agents.js +8024 -5052
  691. package/lib/specs/envvars.d.ts +1 -1
  692. package/lib/specs/envvars.js +3 -3
  693. package/lib/specs/evals.js +9 -0
  694. package/lib/specs/frontendTools.d.ts +3 -0
  695. package/lib/specs/frontendTools.js +46 -3
  696. package/lib/specs/mcpServers.d.ts +1 -0
  697. package/lib/specs/mcpServers.js +27 -4
  698. package/lib/specs/models.d.ts +18 -0
  699. package/lib/specs/models.js +154 -0
  700. package/lib/specs/outputs.d.ts +2 -0
  701. package/lib/specs/outputs.js +22 -0
  702. package/lib/specs/personas.js +1 -1
  703. package/lib/specs/teams/teams.d.ts +2 -0
  704. package/lib/specs/teams/teams.js +628 -111
  705. package/lib/state/index.d.ts +1 -1
  706. package/lib/state/index.js +1 -1
  707. package/lib/state/substates/RuntimesState.d.ts +5 -5
  708. package/lib/state/substates/RuntimesState.js +17 -14
  709. package/lib/state/substates/index.d.ts +1 -1
  710. package/lib/state/substates/index.js +1 -1
  711. package/lib/stores/agentRuntimeStore.d.ts +43 -1
  712. package/lib/stores/agentRuntimeStore.js +100 -11
  713. package/lib/stores/index.d.ts +1 -1
  714. package/lib/stores/index.js +1 -1
  715. package/lib/stories/Button.d.ts +1 -1
  716. package/lib/stories/Button.stories.d.ts +1 -1
  717. package/lib/stories/Header.d.ts +1 -1
  718. package/lib/stories/Header.stories.d.ts +1 -1
  719. package/lib/test-setup.js +66 -0
  720. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
  721. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
  722. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
  723. package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
  724. package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
  725. package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
  726. package/lib/tools/adapters/commands/index.d.ts +1 -0
  727. package/lib/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
  728. package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
  729. package/lib/tools/index.d.ts +1 -0
  730. package/lib/tools/index.js +1 -0
  731. package/lib/types/a2a.d.ts +15 -1
  732. package/lib/types/agents-lifecycle.d.ts +11 -6
  733. package/lib/types/agents.d.ts +31 -6
  734. package/lib/types/agentspecs.d.ts +120 -4
  735. package/lib/types/chat.d.ts +251 -3
  736. package/lib/types/checkpoints.d.ts +20 -0
  737. package/lib/types/config.d.ts +13 -1
  738. package/lib/types/connection.d.ts +1 -1
  739. package/lib/types/evals.d.ts +2 -0
  740. package/lib/types/messages.d.ts +60 -0
  741. package/lib/types/models.d.ts +26 -0
  742. package/lib/types/notifications.d.ts +15 -6
  743. package/lib/types/protocol.d.ts +7 -2
  744. package/lib/types/stream.d.ts +48 -3
  745. package/lib/types/stream.js +5 -0
  746. package/lib/types/teams.d.ts +102 -4
  747. package/lib/types/tool-approvals.d.ts +1 -1
  748. package/lib/types/tools.d.ts +8 -2
  749. package/lib/utils/utils.js +7 -1
  750. package/package.json +376 -361
  751. package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
  752. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  753. package/scripts/codegen/compose.py +208 -0
  754. package/scripts/codegen/generate_agents.py +202 -31
  755. package/scripts/codegen/generate_evals.py +2 -0
  756. package/scripts/codegen/generate_frontend_tools.py +35 -6
  757. package/scripts/codegen/generate_models.py +40 -15
  758. package/scripts/codegen/generate_sandbox_agents.py +76 -62
  759. package/scripts/codegen/generate_teams.py +178 -4
  760. package/scripts/codegen/generate_tools.py +6 -4
  761. package/scripts/gen_workers.py +279 -111
  762. package/scripts/generate-environments-types.py +404 -0
  763. package/lib/chat/prompt/InputFooter.d.ts +0 -58
  764. package/lib/chat/prompt/InputFooter.js +0 -194
  765. package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
  766. package/lib/chat/prompt/InputPromptFooter.js +0 -15
  767. package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
  768. package/lib/chat/prompt/InputPromptHeader.js +0 -15
  769. package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
  770. package/lib/hooks/useRuntimes.d.ts +0 -5
  771. package/lib/hooks/useRuntimes.js +0 -34
  772. package/lib/jupyter/kernelsHandler.d.ts +0 -8
  773. package/lib/jupyter/kernelsHandler.js +0 -39
  774. package/lib/models/Dataset.d.ts +0 -16
  775. package/lib/utils/Cells.d.ts +0 -2
  776. package/lib/utils/Cells.js +0 -28
@@ -8,6 +8,20 @@
8
8
  */
9
9
  import { type ReactNode } from 'react';
10
10
  import type { EmptyStateConfig, Suggestion } from '../../types/chat';
11
+ export { groupSuggestions } from './groupSuggestions';
12
+ /**
13
+ * How wide a suggestion chip stands, in pixels — fixed, not a cap.
14
+ *
15
+ * An opener is a whole request in the words somebody would type, and some
16
+ * are a sentence long — "Explain this notebook cell by cell, as if I am new
17
+ * to Python" — while others are a few words — "Rerun with another model".
18
+ * Sized to their own words, a row of them read as uneven lines of text
19
+ * rather than as one set of options. One width, for every chip and every
20
+ * place that draws them (the empty state below and the page layout's row
21
+ * under the composer); past it the label truncates, and the chip's own
22
+ * title still carries the whole sentence on hover.
23
+ */
24
+ export declare const SUGGESTION_CHIP_WIDTH = 140;
11
25
  export interface ChatEmptyStateProps {
12
26
  /** Empty-state configuration (icon, title, subtitle, render) */
13
27
  emptyState?: EmptyStateConfig;
@@ -24,4 +38,4 @@ export interface ChatEmptyStateProps {
24
38
  /** Whether clicking a suggestion auto-submits it */
25
39
  submitOnSuggestionClick?: boolean;
26
40
  }
27
- export declare function ChatEmptyState({ emptyState, brandIcon, description, suggestions, onSuggestionSubmit, onSuggestionFill, submitOnSuggestionClick, }: ChatEmptyStateProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare function ChatEmptyState({ emptyState, brandIcon, description, suggestions, onSuggestionSubmit, onSuggestionFill, submitOnSuggestionClick, }: ChatEmptyStateProps): import("react").JSX.Element;
@@ -2,6 +2,21 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  import { Text, LabelGroup, Label, Truncate, ThemeProvider, } from '@primer/react';
3
3
  import { Box } from '@datalayer/primer-addons';
4
4
  import { AiAgentIcon } from '@datalayer/icons-react';
5
+ import { groupSuggestions } from './groupSuggestions';
6
+ export { groupSuggestions } from './groupSuggestions';
7
+ /**
8
+ * How wide a suggestion chip stands, in pixels — fixed, not a cap.
9
+ *
10
+ * An opener is a whole request in the words somebody would type, and some
11
+ * are a sentence long — "Explain this notebook cell by cell, as if I am new
12
+ * to Python" — while others are a few words — "Rerun with another model".
13
+ * Sized to their own words, a row of them read as uneven lines of text
14
+ * rather than as one set of options. One width, for every chip and every
15
+ * place that draws them (the empty state below and the page layout's row
16
+ * under the composer); past it the label truncates, and the chip's own
17
+ * title still carries the whole sentence on hover.
18
+ */
19
+ export const SUGGESTION_CHIP_WIDTH = 140;
5
20
  // ---------------------------------------------------------------------------
6
21
  // Component
7
22
  // ---------------------------------------------------------------------------
@@ -18,24 +33,75 @@ export function ChatEmptyState({ emptyState, brandIcon, description, suggestions
18
33
  onSuggestionFill?.(suggestion.message);
19
34
  }
20
35
  };
36
+ /*
37
+ * The openers in blocks: the ungrouped ones first, as the one row they
38
+ * always were, then each group under its own heading in the order the
39
+ * groups first appear. A team's openers and, beneath them, the addressed
40
+ * member's own is the case this draws — and when the host gave the empty
41
+ * state *levels*, each level takes its own group's openers and the blocks
42
+ * below are only what no level claimed.
43
+ */
44
+ const sections = emptyState?.sections ?? [];
45
+ const claimed = new Set(sections.map(section => section.group));
46
+ const blocks = groupSuggestions((suggestions ?? []).filter(suggestion => suggestion.group === undefined || !claimed.has(suggestion.group)));
47
+ const chips = (items) => (_jsx(LabelGroup, { sx: { justifyContent: 'center' }, children: items.map((suggestion, index) => (_jsx(Label, { variant: "accent",
48
+ // The whole request: the chip may show only its summary.
49
+ title: suggestion.message, sx: {
50
+ cursor: 'pointer',
51
+ display: 'inline-flex',
52
+ alignItems: 'center',
53
+ width: SUGGESTION_CHIP_WIDTH,
54
+ flex: `0 0 ${SUGGESTION_CHIP_WIDTH}px`,
55
+ '&:hover': {
56
+ bg: 'accent.emphasis',
57
+ color: 'var(--button-primary-fgColor-rest)',
58
+ borderColor: 'accent.emphasis',
59
+ },
60
+ }, onClick: () => handleSuggestionClick(suggestion), children: _jsx(Truncate, { title: suggestion.message, maxWidth: "100%", sx: { minWidth: 0 }, children: suggestion.title }) }, index))) }));
21
61
  return (_jsx(ThemeProvider, { children: _jsxs(Box, { sx: {
22
62
  display: 'flex',
23
63
  flexDirection: 'column',
64
+ // Centred across the column, anchored to its top: the introduction
65
+ // is where a conversation starts, and the first message should
66
+ // appear under it rather than push it around the canvas.
24
67
  alignItems: 'center',
25
- justifyContent: 'center',
26
- height: '100%',
68
+ justifyContent: 'flex-start',
27
69
  p: 4,
28
70
  color: 'fg.muted',
29
71
  textAlign: 'center',
30
72
  gap: 2,
31
- }, children: [emptyState?.icon || brandIcon || _jsx(AiAgentIcon, { colored: true, size: 48 }), _jsx(Text, { sx: { fontSize: 2 }, children: emptyState?.title || 'Start a conversation' }), (emptyState?.subtitle || description) && (_jsx(Text, { sx: { fontSize: 1 }, children: emptyState?.subtitle || description })), suggestions && suggestions.length > 0 && (_jsx(LabelGroup, { sx: { mt: 2, justifyContent: 'center' }, children: suggestions.map((suggestion, index) => (_jsx(Label, { variant: "accent", title: suggestion.title, sx: {
32
- cursor: 'pointer',
33
- display: 'inline-flex',
34
- alignItems: 'center',
35
- '&:hover': {
36
- bg: 'accent.emphasis',
37
- color: 'var(--button-primary-fgColor-rest)',
38
- borderColor: 'accent.emphasis',
39
- },
40
- }, onClick: () => handleSuggestionClick(suggestion), children: _jsx(Box, { sx: { width: 140, maxWidth: 140, minWidth: 140 }, children: _jsx(Truncate, { title: suggestion.title, maxWidth: "100%", children: suggestion.title }) }) }, index))) }))] }) }));
73
+ }, children: [sections.length > 0 ? (
74
+ /*
75
+ * Levels: the first at full size, the ones under it a step
76
+ * smaller and set off by a rule — a team, then the member of it
77
+ * being addressed, each introducing itself and offering its own
78
+ * openers.
79
+ */
80
+ sections.map((section, level) => (_jsxs(Box, { sx: {
81
+ display: 'flex',
82
+ flexDirection: 'column',
83
+ alignItems: 'center',
84
+ gap: 2,
85
+ width: '100%',
86
+ ...(level > 0
87
+ ? {
88
+ mt: 3,
89
+ pt: 3,
90
+ borderTop: '1px solid',
91
+ borderColor: 'border.muted',
92
+ }
93
+ : null),
94
+ }, children: [section.icon, _jsx(Text, { sx: {
95
+ fontSize: level === 0 ? 2 : 1,
96
+ fontWeight: level === 0 ? 'normal' : 'semibold',
97
+ }, children: section.title }), section.subtitle ? (_jsx(Text, { sx: { fontSize: level === 0 ? 1 : 0 }, children: section.subtitle })) : null, (() => {
98
+ const own = (suggestions ?? []).filter(suggestion => suggestion.group === section.group);
99
+ return own.length > 0 ? chips(own) : null;
100
+ })()] }, section.group)))) : (_jsxs(_Fragment, { children: [emptyState?.icon || brandIcon || _jsx(AiAgentIcon, { colored: true, size: 48 }), _jsx(Text, { sx: { fontSize: 2 }, children: emptyState?.title || 'Start a conversation' }), (emptyState?.subtitle || description) && (_jsx(Text, { sx: { fontSize: 1 }, children: emptyState?.subtitle || description }))] })), blocks.map(block => (_jsxs(Box, { sx: {
101
+ display: 'flex',
102
+ flexDirection: 'column',
103
+ alignItems: 'center',
104
+ gap: 1,
105
+ mt: 2,
106
+ }, children: [block.group ? (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: block.group })) : null, chips(block.items)] }, block.group ?? '')))] }) }));
41
107
  }
@@ -30,5 +30,5 @@ export interface FloatingBrandButtonProps {
30
30
  * Floating brand button component
31
31
  * A circular button that floats in a corner to open/close the chat
32
32
  */
33
- export declare function FloatingBrandButton({ isOpen, onToggle, position, icon, tooltip, unreadCount, className, brandColor, }: FloatingBrandButtonProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function FloatingBrandButton({ isOpen, onToggle, position, icon, tooltip, unreadCount, className, brandColor, }: FloatingBrandButtonProps): React.JSX.Element;
34
34
  export default FloatingBrandButton;
@@ -22,5 +22,5 @@ export interface PoweredByTagProps {
22
22
  * PoweredBy tag component
23
23
  * Displays a "Powered by X" branding tag
24
24
  */
25
- export declare function PoweredByTag({ show, brandName, brandUrl, brandIcon, }: PoweredByTagProps): import("react/jsx-runtime").JSX.Element | null;
25
+ export declare function PoweredByTag({ show, brandName, brandUrl, brandIcon, }: PoweredByTagProps): React.JSX.Element | null;
26
26
  export default PoweredByTag;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Openers in blocks.
3
+ *
4
+ * A suggestion may name a `group`; the ungrouped ones come first, as one
5
+ * block, and each group follows as a block of its own in the order it first
6
+ * appears. The empty state draws the blocks as rows of chips under headings
7
+ * and the composer's suggestions menu as sections — the same shape, so a
8
+ * team's openers and the addressed member's own read the same in both.
9
+ *
10
+ * @module chat/display/groupSuggestions
11
+ */
12
+ /** The least a suggestion needs to be grouped. */
13
+ export type Groupable = {
14
+ group?: string;
15
+ };
16
+ export type SuggestionBlock<T extends Groupable> = {
17
+ group?: string;
18
+ items: T[];
19
+ };
20
+ /** The openers in blocks: the ungrouped first, then each group as it first appears. */
21
+ export declare function groupSuggestions<T extends Groupable>(suggestions: T[]): SuggestionBlock<T>[];
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /** The openers in blocks: the ungrouped first, then each group as it first appears. */
6
+ export function groupSuggestions(suggestions) {
7
+ const blocks = [];
8
+ for (const suggestion of suggestions) {
9
+ const block = blocks.find(entry => entry.group === suggestion.group);
10
+ if (block) {
11
+ block.items.push(suggestion);
12
+ }
13
+ else {
14
+ blocks.push({ group: suggestion.group, items: [suggestion] });
15
+ }
16
+ }
17
+ return blocks.sort((left, right) => left.group === undefined ? -1 : right.group === undefined ? 1 : 0);
18
+ }
@@ -1,8 +1,27 @@
1
+ /**
2
+ * EphemeralDocument — an in-memory Lexical rich-text document rendered next to
3
+ * the chat.
4
+ *
5
+ * This is the document analogue of {@link EphemeralNotebook}. The Lexical
6
+ * editor state lives purely in memory and is mirrored into the agent-runtime
7
+ * Zustand store (`ephemeralDocumentModels`) so the document survives navigating
8
+ * away from and back to the same runtime page. While mounted, its lexical
9
+ * frontend tools are reported upward via `onToolsReady` so the agent can drive
10
+ * the document blocks (insert / update / delete / read).
11
+ *
12
+ * IMPORTANT: this module statically imports `@datalayer/jupyter-lexical`, which
13
+ * initialises Lumino-backed nodes on load. It is therefore lazy-loaded by
14
+ * `ChatBase` (via `React.lazy`) so notebook-only chats never pull in lexical.
15
+ *
16
+ * @module chat/document/EphemeralDocument
17
+ */
18
+ import '@datalayer/jupyter-react/lib/css/PrismCss';
19
+ import type { JSX } from 'react';
20
+ import { ServiceManager } from '@jupyterlab/services';
1
21
  import type { IKernelConnection } from '@jupyterlab/services/lib/kernel/kernel';
2
22
  import { type ToolbarItem } from '@datalayer/primer-addons';
3
23
  import type { FrontendToolDefinition } from '../../types/tools';
4
24
  import type { EphemeralRuntimeOverride } from '../notebook/EphemeralNotebook';
5
- import '@datalayer/jupyter-react/lib/css/PrismCss';
6
25
  import '@datalayer/jupyter-lexical/style/index.css';
7
26
  /**
8
27
  * Real-time collaboration configuration for the ephemeral document.
@@ -38,9 +57,27 @@ export interface EphemeralDocumentProps {
38
57
  */
39
58
  documentId: string;
40
59
  /** Preferred runtime pod name to bind the document kernel to. */
41
- runtimePodName?: string;
60
+ runtimeName?: string;
42
61
  /** Optional explicit runtime endpoint (agent-node tunnel proxy path). */
43
62
  runtimeOverride?: EphemeralRuntimeOverride;
63
+ /**
64
+ * Services the host already has, used instead of building some from a URL.
65
+ *
66
+ * An in-page sandbox — JupyterLite over Pyodide — has no address to connect
67
+ * to: it *is* the services. Without this the document had no way to reach
68
+ * such a kernel and rendered an empty editor with nothing in the console,
69
+ * because "no base url" was a silent early return rather than a failure.
70
+ *
71
+ * The host keeps ownership: a manager passed in is never disposed here.
72
+ */
73
+ serviceManager?: ServiceManager.IManager;
74
+ /**
75
+ * Kernel to join on that manager, rather than starting another.
76
+ *
77
+ * The agent and the reader should be looking at one kernel; starting a
78
+ * second one beside it is how they end up with different variables.
79
+ */
80
+ kernelId?: string;
44
81
  /** Optional theme variant override from host chat context. */
45
82
  themeVariant?: string;
46
83
  /** Optional color mode override from host chat context. */
@@ -73,10 +110,37 @@ export interface EphemeralDocumentProps {
73
110
  * change it — the same way the notebook surface does through the
74
111
  * `extraItems` of its toolbar.
75
112
  */
113
+ /**
114
+ * Render without wrapping the content in a theme provider.
115
+ *
116
+ * For a host that already owns one — the LOOP workspace, where the entry
117
+ * point provides the theme and the views inherit it. Nested providers fight
118
+ * over `BaseStyles` and font tokens, and the inner one wins for the wrong
119
+ * reasons.
120
+ */
121
+ inheritTheme?: boolean;
76
122
  toolbarExtraItems?: ToolbarItem[];
123
+ /**
124
+ * Whether to draw a toolbar at all. Defaults to true.
125
+ *
126
+ * For a host where the toolbar is somebody's to provide — the LOOP
127
+ * workspace, where a plugin owns it and can be switched off. `false` draws
128
+ * no bar rather than an empty one: an empty bar still costs a row and a
129
+ * border, and reads as broken rather than as absent.
130
+ */
131
+ showToolbar?: boolean;
132
+ /**
133
+ * Whether the document takes the caret once its editor mounts. Defaults to
134
+ * `true`.
135
+ *
136
+ * `false` for a host whose composer already asked for the caret on mount:
137
+ * this editor only exists once a sandbox — and, for the ephemeral case, a
138
+ * kernel — has finished starting, well after a chat composer's own
139
+ * `autoFocus` effect has already run and stopped watching, so the
140
+ * document's unconditional autofocus otherwise steals the caret back a
141
+ * moment later purely by mounting second.
142
+ */
143
+ autoFocus?: boolean;
77
144
  }
78
- /**
79
- * Renders an in-memory Lexical document backed by a sandbox kernel.
80
- */
81
- export declare function EphemeralDocument({ documentId, runtimePodName, runtimeOverride, themeVariant, colorMode, content, onContentChange, onToolsReady, onKernelChange, collaboration, toolbarExtraItems, }: EphemeralDocumentProps): import("react/jsx-runtime").JSX.Element;
145
+ export declare function EphemeralDocument({ documentId, runtimeName, runtimeOverride, serviceManager: providedServiceManager, kernelId, themeVariant, colorMode, content, onContentChange, onToolsReady, onKernelChange, collaboration, toolbarExtraItems, showToolbar, inheritTheme, autoFocus, }: EphemeralDocumentProps): JSX.Element;
82
146
  export default EphemeralDocument;
@@ -20,34 +20,32 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
20
20
  *
21
21
  * @module chat/document/EphemeralDocument
22
22
  */
23
+ /*
24
+ * First, before anything lexical: `@lexical/code` pulls Prism *language
25
+ * components*, plain scripts that read the bare global `Prism` the moment
26
+ * they evaluate — and this module is what defines it. Imported lower down,
27
+ * the languages ran first and the whole editor died on "Prism is not
28
+ * defined" before it could draw anything.
29
+ */
30
+ import '@datalayer/jupyter-react/lib/css/PrismCss';
23
31
  import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
24
- import { $getRoot, $createParagraphNode, } from 'lexical';
25
- import { LexicalComposer } from '@lexical/react/LexicalComposer';
26
- import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
32
+ import { $getRoot, $createParagraphNode, defineExtension, } from 'lexical';
33
+ import { LexicalExtensionComposer } from '@lexical/react/LexicalExtensionComposer';
27
34
  import { ContentEditable } from '@lexical/react/LexicalContentEditable';
28
- import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
29
35
  import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
30
36
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
31
- import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';
32
- import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';
33
- import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
34
- import { TRANSFORMERS } from '@lexical/markdown';
35
- import { registerCodeHighlighting } from '@lexical/code';
36
- import { ListPlugin } from '@lexical/react/LexicalListPlugin';
37
- import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
38
- import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
37
+ import { AutoFocusExtension, getExtensionDependencyFromEditor, } from '@lexical/extension';
38
+ import { HistoryExtension } from '@lexical/history';
39
39
  import { ServerConnection, ServiceManager } from '@jupyterlab/services';
40
40
  import { DatalayerThemeProvider, getThemeConfig, useSystemColorMode, useThemeStore, } from '@datalayer/primer-addons';
41
- import { Box, Spinner, Text } from '@primer/react';
41
+ import { Box } from '@primer/react';
42
42
  import { JupyterReactTheme, Kernel, disposeServiceManager, } from '@datalayer/jupyter-react';
43
- import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, ExcalidrawPlugin, TablePlugin, TableCellResizerPlugin, TableActionMenuPlugin, TableHoverActionsV2Plugin, CollapsiblePlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, AutoLinkPlugin, AutoEmbedPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, ToolbarPlugin, ToolbarContext, CommentsProvider, commentTheme, } from '@datalayer/jupyter-lexical';
43
+ import { ComponentPickerMenuPlugin, JupyterLexicalExtension, JupyterInputOutputPlugin, DraggableBlockPlugin, TableCellResizerPlugin, TableActionMenuPlugin, TableHoverActionsV2Plugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ToolbarPlugin, ToolbarContext, CommentsProvider, DocumentSkeleton, commentTheme, } from '@datalayer/jupyter-lexical';
44
44
  import { createWebsocketProvider, LoroCollaborationPlugin, } from '@datalayer/lexical-loro';
45
- import { editorConfig } from '../../examples/lexical/editorConfig';
46
45
  import { useLexicalTools } from '../../tools/adapters/agent-runtimes/lexicalHooks';
47
46
  import { useAgentsRuntimes } from '../../hooks/useAgentRuntimes';
48
47
  import { registerSandboxServiceManager } from '../../services/sandboxServiceManagers';
49
48
  import { useProgressTask } from '../../hooks/useProgressTask';
50
- import '@datalayer/jupyter-react/lib/css/PrismCss';
51
49
  import '@datalayer/jupyter-lexical/style/index.css';
52
50
  /**
53
51
  * Lexical plugin that loads the initial (restored) editor state exactly once.
@@ -89,10 +87,18 @@ function LoadContentPlugin({ content }) {
89
87
  }, [content, editor]);
90
88
  return null;
91
89
  }
92
- /** Registers code syntax highlighting for code blocks. */
93
- function CodeHighlightPlugin() {
90
+ /**
91
+ * Undo history follows the collaboration mode.
92
+ *
93
+ * The history is the bundled `HistoryExtension`'s. Its `disabled` signal is
94
+ * flipped here rather than set in the root extension, so that a change of
95
+ * mode does not rebuild the editor and lose the document with it.
96
+ */
97
+ function HistoryTogglePlugin({ disabled }) {
94
98
  const [editor] = useLexicalComposerContext();
95
- useEffect(() => registerCodeHighlighting(editor), [editor]);
99
+ useEffect(() => {
100
+ getExtensionDependencyFromEditor(editor, HistoryExtension).output.disabled.value = disabled;
101
+ }, [editor, disabled]);
96
102
  return null;
97
103
  }
98
104
  /**
@@ -108,7 +114,20 @@ function DocumentToolbar({ setIsLinkEditMode, extraItems, }) {
108
114
  /**
109
115
  * Renders an in-memory Lexical document backed by a sandbox kernel.
110
116
  */
111
- export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride, themeVariant, colorMode, content, onContentChange, onToolsReady, onKernelChange, collaboration, toolbarExtraItems, }) {
117
+ /**
118
+ * The theme provider, or nothing.
119
+ *
120
+ * A host that already owns a theme root passes `inherit`; nested providers
121
+ * fight over `BaseStyles` and font tokens, and the inner one wins for the wrong
122
+ * reasons.
123
+ */
124
+ function ThemeRoot({ inherit, colorMode, themeConfig, children, }) {
125
+ if (inherit) {
126
+ return _jsx(_Fragment, { children: children });
127
+ }
128
+ return (_jsx(DatalayerThemeProvider, { colorMode: colorMode, theme: themeConfig.primerTheme, themeStyles: themeConfig.themeStyles, children: children }));
129
+ }
130
+ export function EphemeralDocument({ documentId, runtimeName, runtimeOverride, serviceManager: providedServiceManager, kernelId, themeVariant, colorMode, content, onContentChange, onToolsReady, onKernelChange, collaboration, toolbarExtraItems, showToolbar = true, inheritTheme = false, autoFocus = true, }) {
112
131
  // Real-time collaboration is active only when both a WebSocket endpoint and a
113
132
  // room id are supplied. In that mode the shared Loro CRDT is the single source
114
133
  // of truth: local content-seeding and undo history are disabled so the local
@@ -162,17 +181,18 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
162
181
  url: overrideBaseUrl,
163
182
  wsUrl: String(runtimeOverride?.wsUrl || '').trim() || undefined,
164
183
  token: String(runtimeOverride?.token || '').trim(),
165
- pod_name: String(runtimeOverride?.podName || '').trim() || 'agent-node-proxy',
184
+ runtime_name: String(runtimeOverride?.runtimeName || '').trim() ||
185
+ 'agent-node-proxy',
166
186
  };
167
187
  }
168
- const preferredPod = String(runtimePodName || '').trim();
169
- if (!preferredPod) {
188
+ const preferredRuntime = String(runtimeName || '').trim();
189
+ if (!preferredRuntime) {
170
190
  return undefined;
171
191
  }
172
- return runtimes.find(rt => String(rt?.pod_name || '') === preferredPod);
173
- }, [runtimeOverride, runtimePodName, runtimes]);
192
+ return runtimes.find(rt => String(rt?.runtime_name || '') === preferredRuntime);
193
+ }, [runtimeOverride, runtimeName, runtimes]);
174
194
  const needsRuntimeLookup = Boolean(!runtimeOverride?.baseUrl &&
175
- String(runtimePodName || '').trim() &&
195
+ String(runtimeName || '').trim() &&
176
196
  !selectedRuntime);
177
197
  useEffect(() => {
178
198
  if (!needsRuntimeLookup) {
@@ -195,6 +215,41 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
195
215
  let manager = null;
196
216
  let unregisterManager = null;
197
217
  const connectRuntime = async () => {
218
+ // Services handed over by the host — an in-page JupyterLite sandbox —
219
+ // are used as they are. There is no URL to connect to in that case, and
220
+ // the old code read "no url" as "nothing to do" and returned silently,
221
+ // which is why the editor came up blank with an empty console.
222
+ if (providedServiceManager) {
223
+ try {
224
+ await providedServiceManager.ready;
225
+ const connection = kernelId
226
+ ? providedServiceManager.kernels.connectTo({
227
+ model: { id: kernelId, name: 'python' },
228
+ })
229
+ : await providedServiceManager.kernels.startNew();
230
+ if (!cancelled) {
231
+ setRuntimeServiceManager(providedServiceManager);
232
+ setDocumentKernel(new Kernel({
233
+ kernelName: connection.model.name,
234
+ kernelSpecName: connection.model.name,
235
+ kernelModel: connection.model,
236
+ kernelManager: providedServiceManager.kernels,
237
+ kernelspecsManager: providedServiceManager.kernelspecs,
238
+ sessionManager: providedServiceManager.sessions,
239
+ }));
240
+ }
241
+ }
242
+ catch (reason) {
243
+ // Said out loud. A document that silently shows nothing is the
244
+ // hardest kind of failure to chase.
245
+ console.error('[agent-runtimes] The document could not reach the kernel of the sandbox it was given.', reason);
246
+ if (!cancelled) {
247
+ setRuntimeServiceManager(null);
248
+ setDocumentKernel(undefined);
249
+ }
250
+ }
251
+ return;
252
+ }
198
253
  const baseUrl = String(selectedRuntime?.url || '').trim();
199
254
  if (!baseUrl) {
200
255
  if (!cancelled) {
@@ -216,7 +271,7 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
216
271
  manager = new ServiceManager({ serverSettings });
217
272
  // Central sandbox registry: runtime terminate/pause disposes this
218
273
  // manager immediately so its pollers cannot hit the dead pod ingress.
219
- unregisterManager = registerSandboxServiceManager(String(selectedRuntime?.pod_name || ''), manager);
274
+ unregisterManager = registerSandboxServiceManager(String(selectedRuntime?.runtime_name || ''), manager);
220
275
  await manager.ready;
221
276
  const kernelConnection = await manager.kernels.startNew();
222
277
  if (!cancelled) {
@@ -243,11 +298,19 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
243
298
  return () => {
244
299
  cancelled = true;
245
300
  unregisterManager?.();
301
+ // Only what this component built. A manager the host passed in is still
302
+ // theirs, and disposing it would take the sandbox down with the view.
246
303
  if (manager) {
247
304
  disposeServiceManager(manager);
248
305
  }
249
306
  };
250
- }, [selectedRuntime?.pod_name, selectedRuntime?.url, selectedRuntime?.token]);
307
+ }, [
308
+ providedServiceManager,
309
+ kernelId,
310
+ selectedRuntime?.runtime_name,
311
+ selectedRuntime?.url,
312
+ selectedRuntime?.token,
313
+ ]);
251
314
  // Surface the document's live kernel connection to the parent so the chat
252
315
  // header's kernel indicator reflects the real connected kernel instead of
253
316
  // the "disconnected"/"no-kernel" placeholder while the document is active.
@@ -258,23 +321,31 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
258
321
  };
259
322
  }, [documentKernel, onKernelChange]);
260
323
  const activeServiceManager = runtimeServiceManager;
261
- const isRuntimeStarting = Boolean((String(runtimePodName || '').trim() ||
262
- String(runtimeOverride?.baseUrl || '').trim()) &&
324
+ // Starting covers the supplied-services path too. Without it the spinner
325
+ // appeared and vanished in the same frame — the only sign that anything was
326
+ // happening — and then the editor sat empty while the kernel connected.
327
+ const isRuntimeStarting = Boolean((String(runtimeName || '').trim() ||
328
+ String(runtimeOverride?.baseUrl || '').trim() ||
329
+ providedServiceManager) &&
263
330
  !activeServiceManager);
264
331
  useProgressTask(`ephemeral-document-start-${documentId}`, isRuntimeStarting);
265
- // Build the initial config once per documentId, without the demo content so
266
- // the document starts empty and is either restored or filled by the agent.
267
- const initialConfig = useMemo(() => {
268
- // Drop the demo `editorState` and the examples `lexicalTheme`. Use the
269
- // shared `commentTheme` (same as the document editor) so the Jupyter cell
270
- // and rich-text nodes get the class names styled by jupyter-lexical CSS.
271
- const { editorState: _ignored, theme: _theme, ...rest } = editorConfig;
272
- return {
273
- ...rest,
274
- theme: commentTheme,
275
- namespace: `ephemeral-document-${documentId}`,
276
- };
277
- }, [documentId]);
332
+ // The root extension, once per documentId: the shared Jupyter Lexical
333
+ // document with the `commentTheme` the jupyter-lexical stylesheet styles,
334
+ // focus on mount unless the host asked otherwise, and no content — the
335
+ // document starts empty and is either restored or filled by the agent
336
+ // (LoadContentPlugin) or by the room.
337
+ const extension = useMemo(() => defineExtension({
338
+ name: '@datalayer/agent-runtimes/EphemeralDocument',
339
+ namespace: `ephemeral-document-${documentId}`,
340
+ theme: commentTheme,
341
+ dependencies: [
342
+ JupyterLexicalExtension,
343
+ ...(autoFocus ? [AutoFocusExtension] : []),
344
+ ],
345
+ onError(error) {
346
+ console.error('[EphemeralDocument]', error);
347
+ },
348
+ }), [documentId, autoFocus]);
278
349
  const handleChange = useCallback((editorState) => {
279
350
  if (!onContentChange) {
280
351
  return;
@@ -288,6 +359,14 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
288
359
  }, [onContentChange]);
289
360
  const [floatingAnchorElem, setFloatingAnchorElem] = useState(null);
290
361
  const [, setIsLinkEditMode] = useState(false);
362
+ // A collaborative document is not here until its room has sent the first
363
+ // snapshot: an editor drawn before that is an empty page for a document
364
+ // that exists. Remembered per room, so another room waits again; without a
365
+ // room the content is local and known at mount.
366
+ const roomId = isCollaborative ? collaboration?.roomId : undefined;
367
+ const [initializedRoom, setInitializedRoom] = useState();
368
+ const documentReady = roomId === undefined || initializedRoom === roomId;
369
+ const onRoomInitialization = useCallback((isInitialized) => setInitializedRoom(isInitialized ? roomId : undefined), [roomId]);
291
370
  const onAnchorRef = (elem) => {
292
371
  if (elem !== null) {
293
372
  setFloatingAnchorElem(elem);
@@ -313,7 +392,7 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
313
392
  position: 'relative',
314
393
  overflow: 'hidden',
315
394
  bg: 'canvas.default',
316
- }, children: activeServiceManager ? (_jsx(DatalayerThemeProvider, { colorMode: effectiveColorMode, theme: themeConfig.primerTheme, themeStyles: themeConfig.themeStyles, children: _jsx(JupyterReactTheme, { colormode: resolvedMode, backgroundColor: themeBackground, children: _jsx(Box, { sx: {
395
+ }, children: activeServiceManager ? (_jsx(ThemeRoot, { inherit: inheritTheme, colorMode: effectiveColorMode, themeConfig: themeConfig, children: _jsx(JupyterReactTheme, { colormode: resolvedMode, backgroundColor: themeBackground, children: _jsx(Box, { sx: {
317
396
  position: 'absolute',
318
397
  inset: 0,
319
398
  display: 'flex',
@@ -322,6 +401,26 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
322
401
  overflow: 'hidden',
323
402
  overscrollBehaviorY: 'contain',
324
403
  padding: 2,
404
+ backgroundColor: themeBackground,
405
+ /*
406
+ * The variable Lexical's own stylesheets paint from.
407
+ *
408
+ * `Editor.css`, `Rich.css` and `TableNode.css` all write
409
+ * `background: var(--bgColor-default, #fff)` — they are theme-
410
+ * aware by design, and go white only where that variable is
411
+ * undefined. In the lexical package's own examples it is
412
+ * defined, because `LexicalPrimerThemeProvider` wraps them in a
413
+ * `DatalayerThemeProvider`; here the host owns the theme and
414
+ * this subtree never inherited it.
415
+ *
416
+ * Defining it here fixes every one of those rules at once,
417
+ * including the ones nobody has hit yet. Chasing them class by
418
+ * class is what the block below used to do, and it lost: an
419
+ * emotion rule and `.editor-shell .editor-container` have the
420
+ * same specificity, so which one wins comes down to stylesheet
421
+ * order.
422
+ */
423
+ '--bgColor-default': themeBackground,
325
424
  '& .editor-shell': {
326
425
  backgroundColor: themeBackground,
327
426
  borderRadius: 2,
@@ -384,13 +483,16 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
384
483
  '& [role="toolbar"][aria-label="Editor toolbar"]': {
385
484
  backgroundColor: themeBackground,
386
485
  },
387
- }, children: _jsx(LexicalConfigProvider, { lexicalId: documentId, serviceManager: activeServiceManager, children: _jsx(LexicalComposer, { initialConfig: initialConfig, children: _jsx(CommentsProvider, { children: _jsx(ToolbarContext, { children: _jsxs("div", { className: "editor-shell", children: [_jsx(DocumentToolbar, { setIsLinkEditMode: setIsLinkEditMode, extraItems: toolbarExtraItems }), _jsx("div", { className: "editor-container", children: _jsxs("div", { className: "editor-inner", children: [isCollaborative && collaboration ? (_jsx(LoroCollaborationPlugin, { id: collaboration.roomId, providerFactory: createWebsocketProvider, websocketUrl: collaboration.websocketUrl, shouldBootstrap: true, showCollaborators: true, username: collaborationName, cursorColor: collaborationColor, awarenessData: collaborationAwarenessData })) : null, _jsx(LexicalStatePlugin, {}), _jsx(RichTextPlugin, { contentEditable: _jsx("div", { className: "editor-scroller", children: _jsx("div", { className: "editor", ref: onAnchorRef, children: _jsx(ContentEditable, { className: "editor-input", "aria-label": "Ephemeral document editor" }) }) }), ErrorBoundary: LexicalErrorBoundary }), !isCollaborative && (_jsx(OnChangePlugin, { onChange: handleChange })), !isCollaborative && _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), !isCollaborative && (_jsx(LoadContentPlugin, { content: initialContent })), _jsx(CodeHighlightPlugin, {}), _jsx(ImagesPlugin, { captionsEnabled: false }), _jsx(ExcalidrawPlugin, {}), _jsx(TablePlugin, {}), _jsx(TableCellResizerPlugin, {}), _jsx(TableActionMenuPlugin, {}), _jsx(TableHoverActionsV2Plugin, {}), _jsx(CollapsiblePlugin, {}), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(ComponentPickerMenuPlugin, { kernel: documentKernel }), _jsx(JupyterInputOutputPlugin, { kernel: documentKernel }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] }))] }) })] }) }) }) }) }) }) }) })) : isRuntimeStarting ? (_jsxs(Box, { sx: {
388
- height: '100%',
389
- display: 'flex',
390
- alignItems: 'center',
391
- justifyContent: 'center',
392
- gap: 2,
393
- color: 'fg.muted',
394
- }, children: [_jsx(Spinner, { size: "small" }), _jsx(Text, { sx: { fontSize: 1, color: 'fg.muted' }, children: "Starting document..." })] })) : null }));
486
+ }, children: _jsx(LexicalConfigProvider, { lexicalId: documentId, serviceManager: activeServiceManager, children: _jsx(LexicalExtensionComposer, { extension: extension, contentEditable: null, children: _jsx(CommentsProvider, { children: _jsx(ToolbarContext, { children: _jsxs("div", { className: "editor-shell", children: [showToolbar ? (_jsx(DocumentToolbar, { setIsLinkEditMode: setIsLinkEditMode, extraItems: toolbarExtraItems })) : null, _jsx("div", { className: "editor-container", children: _jsxs("div", { className: "editor-inner", children: [isCollaborative && collaboration ? (_jsx(LoroCollaborationPlugin, { id: collaboration.roomId, providerFactory: createWebsocketProvider, websocketUrl: collaboration.websocketUrl, shouldBootstrap: true, showCollaborators: true, username: collaborationName, cursorColor: collaborationColor, awarenessData: collaborationAwarenessData, onInitialization: onRoomInitialization })) : null, _jsx(LexicalStatePlugin, {}), documentReady ? (_jsx("div", { className: "editor-scroller", children: _jsx("div", { className: "editor", ref: onAnchorRef, children: _jsx(ContentEditable, { className: "editor-input", "aria-label": "Ephemeral document editor" }) }) })) : (_jsx(DocumentSkeleton, { maxWidth: "100%" })), !isCollaborative && (_jsx(OnChangePlugin, { onChange: handleChange })), _jsx(HistoryTogglePlugin, { disabled: isCollaborative }), !isCollaborative && (_jsx(LoadContentPlugin, { content: initialContent })), _jsx(TableCellResizerPlugin, {}), _jsx(TableActionMenuPlugin, {}), _jsx(TableHoverActionsV2Plugin, {}), _jsx(ComponentPickerMenuPlugin, { kernel: documentKernel }), _jsx(JupyterInputOutputPlugin, { kernel: documentKernel }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] }))] }) })] }) }) }) }) }) }) }) })) : isRuntimeStarting ? (
487
+ // The document's shape while its runtime starts, where the document
488
+ // will be — not a wheel, which says nothing about what is coming.
489
+ _jsx(ThemeRoot, { inherit: inheritTheme, colorMode: effectiveColorMode, themeConfig: themeConfig, children: _jsx(Box, { sx: {
490
+ position: 'absolute',
491
+ inset: 0,
492
+ display: 'flex',
493
+ flexDirection: 'column',
494
+ padding: 2,
495
+ backgroundColor: themeBackground,
496
+ }, children: _jsx(DocumentSkeleton, { label: "Starting the document", maxWidth: "100%" }) }) })) : null }));
395
497
  }
396
498
  export default EphemeralDocument;
@@ -38,5 +38,5 @@ export interface ChatHeaderProps {
38
38
  * />
39
39
  * ```
40
40
  */
41
- export declare function ChatHeader({ title, description, connectionState, runtimeBusy, onReconnect, onDisconnect, onLogout, onCollapsePanel, }: ChatHeaderProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare function ChatHeader({ title, description, connectionState, runtimeBusy, onReconnect, onDisconnect, onLogout, onCollapsePanel, }: ChatHeaderProps): import("react").JSX.Element;
42
42
  export default ChatHeader;