@datalayer/agent-runtimes 1.0.29 → 1.3.11

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 (779) 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 +2 -1
  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 +406 -4
  23. package/lib/api/runtimes/environments.js +641 -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 +20 -2
  30. package/lib/chat/ChatFloating.js +196 -118
  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/ButtonGlow.d.ts +9 -0
  44. package/lib/chat/display/ButtonGlow.js +60 -0
  45. package/lib/chat/display/EmptyState.d.ts +15 -1
  46. package/lib/chat/display/EmptyState.js +81 -12
  47. package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
  48. package/lib/chat/display/PoweredByTag.d.ts +1 -1
  49. package/lib/chat/display/groupSuggestions.d.ts +21 -0
  50. package/lib/chat/display/groupSuggestions.js +18 -0
  51. package/lib/chat/document/EphemeralDocument.d.ts +70 -6
  52. package/lib/chat/document/EphemeralDocument.js +154 -52
  53. package/lib/chat/header/ChatHeader.d.ts +1 -1
  54. package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
  55. package/lib/chat/header/ChatHeaderBase.js +21 -102
  56. package/lib/chat/header/ChatViewModeToggle.d.ts +29 -0
  57. package/lib/chat/header/ChatViewModeToggle.js +55 -0
  58. package/lib/chat/index.d.ts +5 -1
  59. package/lib/chat/index.js +9 -1
  60. package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
  61. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
  62. package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
  63. package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
  64. package/lib/chat/messages/ChatMessageList.d.ts +22 -1
  65. package/lib/chat/messages/ChatMessageList.js +370 -166
  66. package/lib/chat/messages/ChatMessages.d.ts +1 -1
  67. package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
  68. package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
  69. package/lib/chat/messages/TurnFooter.d.ts +42 -0
  70. package/lib/chat/messages/TurnFooter.js +75 -0
  71. package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
  72. package/lib/chat/messages/assistantMarkdown.js +56 -0
  73. package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
  74. package/lib/chat/notebook/EphemeralNotebook.js +194 -61
  75. package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
  76. package/lib/chat/parts/MessagePart.d.ts +1 -1
  77. package/lib/chat/parts/ReasoningPart.d.ts +8 -1
  78. package/lib/chat/parts/TextPart.d.ts +1 -1
  79. package/lib/chat/parts/ToolPart.d.ts +8 -1
  80. package/lib/chat/prompt/FloatingCard.d.ts +26 -0
  81. package/lib/chat/prompt/FloatingCard.js +80 -0
  82. package/lib/chat/prompt/InputPrompt.d.ts +206 -53
  83. package/lib/chat/prompt/InputPrompt.js +161 -80
  84. package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
  85. package/lib/chat/prompt/InputPromptBase.js +225 -0
  86. package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
  87. package/lib/chat/prompt/InputPromptLexical.js +227 -30
  88. package/lib/chat/prompt/InputPromptText.d.ts +10 -2
  89. package/lib/chat/prompt/InputPromptText.js +35 -3
  90. package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
  91. package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
  92. package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
  93. package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
  94. package/lib/chat/prompt/footer/index.d.ts +7 -0
  95. package/lib/chat/prompt/footer/index.js +11 -0
  96. package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
  97. package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
  98. package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
  99. package/lib/chat/prompt/header/InPromptHeader.js +14 -0
  100. package/lib/chat/prompt/header/index.d.ts +7 -0
  101. package/lib/chat/prompt/header/index.js +11 -0
  102. package/lib/chat/prompt/index.d.ts +8 -4
  103. package/lib/chat/prompt/index.js +15 -3
  104. package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
  105. package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
  106. package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
  107. package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
  108. package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
  109. package/lib/chat/prompt/menus/ModelSelector.js +27 -0
  110. package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
  111. package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
  112. package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
  113. package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
  114. package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
  115. package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
  116. package/lib/chat/prompt/menus/index.d.ts +15 -0
  117. package/lib/chat/prompt/menus/index.js +19 -0
  118. package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
  119. package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
  120. package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
  121. package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
  122. package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
  123. package/lib/chat/prompt/plugins/MentionChip.js +24 -0
  124. package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
  125. package/lib/chat/prompt/plugins/MentionNode.js +77 -0
  126. package/lib/chat/prompt/promptHistory.d.ts +52 -0
  127. package/lib/chat/prompt/promptHistory.js +123 -0
  128. package/lib/chat/prompt/stack.d.ts +81 -0
  129. package/lib/chat/prompt/stack.js +41 -0
  130. package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
  131. package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
  132. package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
  133. package/lib/chat/tools/A2AAgentDialog.js +265 -0
  134. package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
  135. package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
  136. package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
  137. package/lib/chat/tools/index.d.ts +1 -0
  138. package/lib/chat/tools/index.js +1 -0
  139. package/lib/chat/usage/ContextPie.d.ts +17 -0
  140. package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
  141. package/lib/chat/useViewportDrag.d.ts +11 -0
  142. package/lib/chat/useViewportDrag.js +61 -0
  143. package/lib/chat/viewModes.d.ts +51 -0
  144. package/lib/chat/viewModes.js +57 -0
  145. package/lib/client/AgentRuntimesClient.d.ts +10 -9
  146. package/lib/client/AgentRuntimesClient.js +1 -1
  147. package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
  148. package/lib/client/AgentsMixin.d.ts +12 -12
  149. package/lib/client/AgentsMixin.js +31 -31
  150. package/lib/client/IAgentRuntimesClient.d.ts +10 -10
  151. package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
  152. package/lib/client/SdkAgentRuntimesClient.js +10 -10
  153. package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
  154. package/lib/client/mixins/RuntimesMixin.js +54 -21
  155. package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
  156. package/lib/components/agents/AgentSummary.d.ts +13 -0
  157. package/lib/components/agents/AgentSummary.js +21 -4
  158. package/lib/components/cards/NotificationEventCard.d.ts +1 -1
  159. package/lib/components/cards/OutputCard.d.ts +1 -1
  160. package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
  161. package/lib/components/cards/ToolApprovalCard.js +1 -0
  162. package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
  163. package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
  164. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
  165. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
  166. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
  167. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
  168. package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +9 -0
  169. package/lib/components/code-sandboxes/CodeSandboxLauncher.js +95 -23
  170. package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
  171. package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
  172. package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
  173. package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
  174. package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
  175. package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
  176. package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
  177. package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
  178. package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
  179. package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
  180. package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
  181. package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
  182. package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
  183. package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +97 -0
  184. package/lib/components/code-sandboxes/codeSandboxEnvironments.js +184 -0
  185. package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
  186. package/lib/components/code-sandboxes/index.d.ts +1 -0
  187. package/lib/components/code-sandboxes/index.js +1 -0
  188. package/lib/components/context/SpaceSelect.d.ts +1 -1
  189. package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
  190. package/lib/components/icons/ArtifactIcon.d.ts +1 -0
  191. package/lib/components/icons/ArtifactIcon.js +2 -1
  192. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  193. package/lib/components/progress/CreditsIndicator.d.ts +1 -0
  194. package/lib/components/progress/CreditsIndicator.js +0 -4
  195. package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
  196. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
  197. package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
  198. package/lib/components/snippets/SnippetDialog.d.ts +1 -0
  199. package/lib/components/snippets/SnippetDialog.js +0 -4
  200. package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
  201. package/lib/components/specs/SpecPayloadPreview.js +102 -0
  202. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  203. package/lib/context/ContextDistribution.d.ts +1 -1
  204. package/lib/context/ContextInspector.d.ts +2 -1
  205. package/lib/context/ContextPanel.d.ts +1 -1
  206. package/lib/context/ContextUsage.d.ts +1 -1
  207. package/lib/context/CostTracker.d.ts +1 -1
  208. package/lib/context/CostUsageChart.d.ts +1 -1
  209. package/lib/context/CostUsageChart.js +4 -4
  210. package/lib/context/MessageHistory.d.ts +3 -2
  211. package/lib/context/TokenUsageChart.d.ts +1 -1
  212. package/lib/context/TokenUsageChart.js +4 -4
  213. package/lib/examples/A2UiAgentExample.js +15 -6
  214. package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
  215. package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
  216. package/lib/examples/A2UiContactCardExample.d.ts +10 -0
  217. package/lib/examples/A2UiContactCardExample.js +23 -170
  218. package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
  219. package/lib/examples/A2UiJupyterOutputExample.js +792 -0
  220. package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
  221. package/lib/examples/A2UiRestaurantExample.js +24 -179
  222. package/lib/examples/A2UiViewerExample.d.ts +10 -0
  223. package/lib/examples/A2UiViewerExample.js +24 -378
  224. package/lib/examples/AgUiAgenticExample.js +2 -4
  225. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
  226. package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
  227. package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
  228. package/lib/examples/AgUiSharedStateExample.js +2 -4
  229. package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
  230. package/lib/examples/AgentA2AExample.d.ts +17 -0
  231. package/lib/examples/AgentA2AExample.js +56 -0
  232. package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
  233. package/lib/examples/AgentCheckpointsExample.js +72 -54
  234. package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
  235. package/lib/examples/AgentCodeSandboxExample.js +93 -303
  236. package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
  237. package/lib/examples/AgentCodeSandboxesExample.js +56 -162
  238. package/lib/examples/AgentCodemodeExample.d.ts +7 -2
  239. package/lib/examples/AgentCodemodeExample.js +60 -125
  240. package/lib/examples/AgentCompactionExample.js +19 -135
  241. package/lib/examples/AgentEvalsExample.js +34 -66
  242. package/lib/examples/AgentGuardrailsExample.js +64 -112
  243. package/lib/examples/AgentHooksExample.d.ts +11 -0
  244. package/lib/examples/AgentHooksExample.js +30 -67
  245. package/lib/examples/AgentInferenceProviderExample.js +8 -32
  246. package/lib/examples/AgentLoopExample.d.ts +4 -2
  247. package/lib/examples/AgentLoopExample.js +45 -93
  248. package/lib/examples/AgentMCPExample.js +30 -79
  249. package/lib/examples/AgentMemoryExample.js +21 -64
  250. package/lib/examples/AgentMonitoringExample.js +33 -94
  251. package/lib/examples/AgentNotificationsExample.js +56 -95
  252. package/lib/examples/AgentOtelExample.js +35 -88
  253. package/lib/examples/AgentOutputsExample.d.ts +2 -1
  254. package/lib/examples/AgentOutputsExample.js +16 -137
  255. package/lib/examples/AgentParametersExample.js +7 -17
  256. package/lib/examples/AgentSkillsExample.js +40 -154
  257. package/lib/examples/AgentSubagentsExample.d.ts +7 -6
  258. package/lib/examples/AgentSubagentsExample.js +80 -191
  259. package/lib/examples/AgentToolApprovalsExample.js +35 -91
  260. package/lib/examples/AgentTriggersExample.js +43 -59
  261. package/lib/examples/AgentspecsExample.js +4 -4
  262. package/lib/examples/CellExample.d.ts +1 -1
  263. package/lib/examples/ChatExample.d.ts +12 -5
  264. package/lib/examples/ChatExample.js +38 -13
  265. package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
  266. package/lib/examples/CopilotKitLexicalExample.js +4 -41
  267. package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
  268. package/lib/examples/CopilotKitNotebookExample.js +2 -14
  269. package/lib/examples/DecksAgent.d.ts +21 -0
  270. package/lib/examples/DecksAgent.js +23 -0
  271. package/lib/examples/DocumentPageAgent.d.ts +19 -0
  272. package/lib/examples/DocumentPageAgent.js +15 -0
  273. package/lib/examples/Lexical2Example.d.ts +2 -2
  274. package/lib/examples/Lexical2Example.js +17 -38
  275. package/lib/examples/LexicalAgentExample.d.ts +2 -1
  276. package/lib/examples/LexicalAgentExample.js +29 -102
  277. package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
  278. package/lib/examples/LexicalAgentSidebarExample.js +99 -131
  279. package/lib/examples/LoopShellExample.d.ts +38 -0
  280. package/lib/examples/LoopShellExample.js +68 -0
  281. package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
  282. package/lib/examples/LoopWorkspaceEmbed.js +73 -0
  283. package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
  284. package/lib/examples/LoopWorkspaceExample.js +151 -0
  285. package/lib/examples/NotebookAgentExample.d.ts +13 -0
  286. package/lib/examples/NotebookAgentExample.js +36 -86
  287. package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
  288. package/lib/examples/NotebookAgentSidebarExample.js +39 -83
  289. package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
  290. package/lib/examples/NotebookCollaborationExample.js +108 -20
  291. package/lib/examples/NotebookExample.d.ts +1 -1
  292. package/lib/examples/NotebookExample.js +20 -10
  293. package/lib/examples/NotebookPageAgent.d.ts +23 -0
  294. package/lib/examples/NotebookPageAgent.js +17 -0
  295. package/lib/examples/components/ExampleWrapper.d.ts +5 -0
  296. package/lib/examples/components/ExampleWrapper.js +36 -28
  297. package/lib/examples/components/LexicalEditor.d.ts +1 -1
  298. package/lib/examples/components/LexicalEditor.js +4 -24
  299. package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
  300. package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
  301. package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
  302. package/lib/examples/example-selector.js +26 -6
  303. package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
  304. package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
  305. package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
  306. package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
  307. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
  308. package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
  309. package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
  310. package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
  311. package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
  312. package/lib/examples/index.d.ts +4 -0
  313. package/lib/examples/index.js +6 -0
  314. package/lib/examples/lexical/editorConfig.d.ts +2 -75
  315. package/lib/examples/lexical/editorConfig.js +26 -48
  316. package/lib/examples/lexical/lexical-theme.css +65 -47
  317. package/lib/examples/main.js +450 -322
  318. package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
  319. package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
  320. package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
  321. package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
  322. package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
  323. package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
  324. package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
  325. package/lib/examples/scenes/A2UiViewerScene.js +395 -0
  326. package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
  327. package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
  328. package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
  329. package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
  330. package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
  331. package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
  332. package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
  333. package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
  334. package/lib/examples/utils/exampleSurfaces.js +38 -0
  335. package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
  336. package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
  337. package/lib/examples/utils/localUrl.d.ts +2 -0
  338. package/lib/examples/utils/localUrl.js +49 -0
  339. package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
  340. package/lib/examples/utils/notebookToolbarItems.js +129 -0
  341. package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
  342. package/lib/examples/utils/runtimeTargetStore.js +82 -1
  343. package/lib/examples/utils/themedProvider.d.ts +7 -0
  344. package/lib/examples/utils/themedProvider.js +57 -4
  345. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
  346. package/lib/examples/utils/waitForAgent.d.ts +23 -0
  347. package/lib/examples/utils/waitForAgent.js +24 -0
  348. package/lib/examples2/CellExample.d.ts +1 -1
  349. package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
  350. package/lib/examples2/NotebookExample.d.ts +1 -1
  351. package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
  352. package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
  353. package/lib/examples2/main.js +24 -4
  354. package/lib/extensions/A2UIExtension.d.ts +1 -1
  355. package/lib/hooks/index.d.ts +8 -5
  356. package/lib/hooks/index.js +20 -5
  357. package/lib/hooks/useAgentRuntimes.d.ts +49 -22
  358. package/lib/hooks/useAgentRuntimes.js +214 -90
  359. package/lib/hooks/useAgentsCatalog.js +32 -4
  360. package/lib/hooks/useBrowserAgent.d.ts +26 -0
  361. package/lib/hooks/useBrowserAgent.js +75 -0
  362. package/lib/hooks/useBrowserInference.d.ts +27 -0
  363. package/lib/hooks/useBrowserInference.js +67 -0
  364. package/lib/hooks/useCheckpoints.d.ts +8 -17
  365. package/lib/hooks/useCheckpoints.js +25 -59
  366. package/lib/hooks/useConfig.d.ts +1 -1
  367. package/lib/hooks/useConfig.js +5 -1
  368. package/lib/hooks/useContextSnapshot.d.ts +18 -7
  369. package/lib/hooks/useContextSnapshot.js +14 -10
  370. package/lib/hooks/useNotifications.d.ts +11 -11
  371. package/lib/hooks/useNotifications.js +1 -1
  372. package/lib/hooks/useProjects.d.ts +7 -19
  373. package/lib/hooks/useProjects.js +5 -5
  374. package/lib/hooks/useSkills.d.ts +0 -1
  375. package/lib/hooks/useSkills.js +6 -2
  376. package/lib/hooks/useToolApprovals.d.ts +8 -8
  377. package/lib/hooks/useToolApprovals.js +3 -3
  378. package/lib/identity/AgentIdentity.d.ts +9 -2
  379. package/lib/index.d.ts +1 -0
  380. package/lib/index.js +4 -0
  381. package/lib/jupyter/index.d.ts +2 -1
  382. package/lib/jupyter/index.js +2 -1
  383. package/lib/jupyter/serverExecution.d.ts +78 -0
  384. package/lib/jupyter/serverExecution.js +258 -0
  385. package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
  386. package/lib/jupyter/useResumeServerExecutions.js +64 -0
  387. package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
  388. package/lib/lexical/ChatInlinePlugin.js +0 -36
  389. package/lib/loop/core/focusRequests.d.ts +10 -0
  390. package/lib/loop/core/focusRequests.js +46 -0
  391. package/lib/loop/core/index.d.ts +903 -0
  392. package/lib/loop/core/index.js +264 -0
  393. package/lib/loop/core/promptStore.d.ts +44 -0
  394. package/lib/loop/core/promptStore.js +63 -0
  395. package/lib/loop/core/surfaceRequests.d.ts +33 -0
  396. package/lib/loop/core/surfaceRequests.js +29 -0
  397. package/lib/loop/core/toolbar.d.ts +28 -0
  398. package/lib/loop/core/toolbar.js +59 -0
  399. package/lib/loop/embed/LoopEmbed.d.ts +57 -0
  400. package/lib/loop/embed/LoopEmbed.js +124 -0
  401. package/lib/loop/extensions.d.ts +10 -0
  402. package/lib/loop/extensions.js +49 -0
  403. package/lib/loop/index.d.ts +68 -0
  404. package/lib/loop/index.js +87 -0
  405. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
  406. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
  407. package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
  408. package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
  409. package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
  410. package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
  411. package/lib/loop/plugins/a2ui/index.d.ts +3 -0
  412. package/lib/loop/plugins/a2ui/index.js +50 -0
  413. package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
  414. package/lib/loop/plugins/a2ui-scene/index.js +28 -0
  415. package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
  416. package/lib/loop/plugins/agent-a2a/index.js +26 -0
  417. package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
  418. package/lib/loop/plugins/agent-a2ui/index.js +42 -0
  419. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
  420. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
  421. package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
  422. package/lib/loop/plugins/agent-capacity/index.js +52 -0
  423. package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
  424. package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
  425. package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
  426. package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
  427. package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
  428. package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
  429. package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
  430. package/lib/loop/plugins/agent-codemode/index.js +41 -0
  431. package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
  432. package/lib/loop/plugins/agent-compaction/index.js +34 -0
  433. package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
  434. package/lib/loop/plugins/agent-evals/index.js +25 -0
  435. package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
  436. package/lib/loop/plugins/agent-guardrails/index.js +25 -0
  437. package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
  438. package/lib/loop/plugins/agent-hooks/index.js +28 -0
  439. package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
  440. package/lib/loop/plugins/agent-inference/index.js +29 -0
  441. package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
  442. package/lib/loop/plugins/agent-mcp/index.js +25 -0
  443. package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
  444. package/lib/loop/plugins/agent-memory/index.js +25 -0
  445. package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
  446. package/lib/loop/plugins/agent-monitoring/index.js +25 -0
  447. package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
  448. package/lib/loop/plugins/agent-notifications/index.js +25 -0
  449. package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
  450. package/lib/loop/plugins/agent-otel/index.js +25 -0
  451. package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
  452. package/lib/loop/plugins/agent-outputs/index.js +25 -0
  453. package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
  454. package/lib/loop/plugins/agent-parameters/index.js +25 -0
  455. package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
  456. package/lib/loop/plugins/agent-skills/index.js +25 -0
  457. package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
  458. package/lib/loop/plugins/agent-subagents/index.js +25 -0
  459. package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
  460. package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
  461. package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
  462. package/lib/loop/plugins/agent-triggers/index.js +26 -0
  463. package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
  464. package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
  465. package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
  466. package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
  467. package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
  468. package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
  469. package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
  470. package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
  471. package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
  472. package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
  473. package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
  474. package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
  475. package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
  476. package/lib/loop/plugins/agents/SandboxView.js +43 -0
  477. package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
  478. package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
  479. package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
  480. package/lib/loop/plugins/agents/agentIcons.js +88 -0
  481. package/lib/loop/plugins/agents/browserService.d.ts +50 -0
  482. package/lib/loop/plugins/agents/browserService.js +233 -0
  483. package/lib/loop/plugins/agents/index.d.ts +13 -0
  484. package/lib/loop/plugins/agents/index.js +17 -0
  485. package/lib/loop/plugins/agents/plugin.d.ts +91 -0
  486. package/lib/loop/plugins/agents/plugin.js +201 -0
  487. package/lib/loop/plugins/agents/service.d.ts +99 -0
  488. package/lib/loop/plugins/agents/service.js +167 -0
  489. package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
  490. package/lib/loop/plugins/agents/specSubagents.js +33 -0
  491. package/lib/loop/plugins/agents/switchable.d.ts +107 -0
  492. package/lib/loop/plugins/agents/switchable.js +405 -0
  493. package/lib/loop/plugins/agents/team.d.ts +87 -0
  494. package/lib/loop/plugins/agents/team.js +143 -0
  495. package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
  496. package/lib/loop/plugins/agents/useSandboxService.js +36 -0
  497. package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
  498. package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
  499. package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
  500. package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
  501. package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
  502. package/lib/loop/plugins/agentspecs/index.js +63 -0
  503. package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
  504. package/lib/loop/plugins/chat/ChatView.js +1679 -0
  505. package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
  506. package/lib/loop/plugins/chat/chatViewTools.js +92 -0
  507. package/lib/loop/plugins/chat/index.d.ts +111 -0
  508. package/lib/loop/plugins/chat/index.js +143 -0
  509. package/lib/loop/plugins/chat/turnState.d.ts +41 -0
  510. package/lib/loop/plugins/chat/turnState.js +90 -0
  511. package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
  512. package/lib/loop/plugins/chat-extras/index.js +51 -0
  513. package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
  514. package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
  515. package/lib/loop/plugins/chat-header/index.d.ts +3 -0
  516. package/lib/loop/plugins/chat-header/index.js +21 -0
  517. package/lib/loop/plugins/chat-view/index.d.ts +10 -0
  518. package/lib/loop/plugins/chat-view/index.js +29 -0
  519. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
  520. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
  521. package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
  522. package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
  523. package/lib/loop/plugins/commands/index.d.ts +20 -0
  524. package/lib/loop/plugins/commands/index.js +148 -0
  525. package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
  526. package/lib/loop/plugins/decks/DeckSurface.js +6 -0
  527. package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
  528. package/lib/loop/plugins/decks/DecksMenu.js +42 -0
  529. package/lib/loop/plugins/decks/index.d.ts +19 -0
  530. package/lib/loop/plugins/decks/index.js +133 -0
  531. package/lib/loop/plugins/decks/surface.d.ts +7 -0
  532. package/lib/loop/plugins/decks/surface.js +11 -0
  533. package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
  534. package/lib/loop/plugins/document/DocumentView.js +68 -0
  535. package/lib/loop/plugins/document/index.d.ts +3 -0
  536. package/lib/loop/plugins/document/index.js +86 -0
  537. package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
  538. package/lib/loop/plugins/document/openingDocument.js +122 -0
  539. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
  540. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
  541. package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
  542. package/lib/loop/plugins/document-toolbar/index.js +35 -0
  543. package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
  544. package/lib/loop/plugins/document-toolbar/names.js +10 -0
  545. package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
  546. package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
  547. package/lib/loop/plugins/document-view/index.d.ts +10 -0
  548. package/lib/loop/plugins/document-view/index.js +28 -0
  549. package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
  550. package/lib/loop/plugins/graph/GraphToggle.js +22 -0
  551. package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
  552. package/lib/loop/plugins/graph/GraphView.js +6 -0
  553. package/lib/loop/plugins/graph/index.d.ts +5 -0
  554. package/lib/loop/plugins/graph/index.js +80 -0
  555. package/lib/loop/plugins/graph/viewType.d.ts +10 -0
  556. package/lib/loop/plugins/graph/viewType.js +14 -0
  557. package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
  558. package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
  559. package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
  560. package/lib/loop/plugins/input-prompt/index.js +26 -0
  561. package/lib/loop/plugins/models/index.d.ts +3 -0
  562. package/lib/loop/plugins/models/index.js +49 -0
  563. package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
  564. package/lib/loop/plugins/notebook/NotebookView.js +189 -0
  565. package/lib/loop/plugins/notebook/index.d.ts +3 -0
  566. package/lib/loop/plugins/notebook/index.js +91 -0
  567. package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
  568. package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
  569. package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
  570. package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
  571. package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
  572. package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
  573. package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
  574. package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
  575. package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
  576. package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
  577. package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
  578. package/lib/loop/plugins/notebook-view/index.js +30 -0
  579. package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
  580. package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
  581. package/lib/loop/plugins/page-layout/index.d.ts +71 -0
  582. package/lib/loop/plugins/page-layout/index.js +160 -0
  583. package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
  584. package/lib/loop/plugins/plugins-panel/index.js +74 -0
  585. package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
  586. package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
  587. package/lib/loop/plugins/prompt/index.d.ts +11 -0
  588. package/lib/loop/plugins/prompt/index.js +73 -0
  589. package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
  590. package/lib/loop/plugins/shell/editorChoice.js +58 -0
  591. package/lib/loop/plugins/shell/index.d.ts +47 -0
  592. package/lib/loop/plugins/shell/index.js +142 -0
  593. package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
  594. package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
  595. package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
  596. package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
  597. package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
  598. package/lib/loop/plugins/subagent-activity/index.js +42 -0
  599. package/lib/loop/plugins/view-switch/index.d.ts +46 -0
  600. package/lib/loop/plugins/view-switch/index.js +68 -0
  601. package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
  602. package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
  603. package/lib/loop/plugins/window-frame/index.d.ts +6 -0
  604. package/lib/loop/plugins/window-frame/index.js +79 -0
  605. package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
  606. package/lib/loop/plugins/window-frame/slots.js +30 -0
  607. package/lib/loop/presets.d.ts +181 -0
  608. package/lib/loop/presets.js +141 -0
  609. package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
  610. package/lib/loop/shell/LoopWorkspace.js +231 -0
  611. package/lib/loop/shell/PluginToggles.d.ts +21 -0
  612. package/lib/loop/shell/PluginToggles.js +41 -0
  613. package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
  614. package/lib/loop/shell/ViewSwitcher.js +43 -0
  615. package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
  616. package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
  617. package/lib/loop/shell/index.d.ts +10 -0
  618. package/lib/loop/shell/index.js +14 -0
  619. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
  620. package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
  621. package/lib/loop-example-main.d.ts +1 -0
  622. package/lib/loop-example-main.js +42 -0
  623. package/lib/loop-main.d.ts +1 -0
  624. package/lib/loop-main.js +138 -0
  625. package/lib/mcp/McpServerManager.d.ts +1 -1
  626. package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
  627. package/lib/models/CodeSandboxVariant.d.ts +13 -5
  628. package/lib/models/CodeSandboxVariant.js +17 -5
  629. package/lib/models/Content.d.ts +26 -0
  630. package/lib/models/Deck.d.ts +14 -0
  631. package/lib/models/Environment.d.ts +678 -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/ItemType.d.ts +1 -1
  637. package/lib/models/Library.d.ts +0 -2
  638. package/lib/models/Notebook.d.ts +0 -2
  639. package/lib/models/ProjectDTO.d.ts +2 -2
  640. package/lib/models/ProjectDTO.js +4 -4
  641. package/lib/models/Runtime.d.ts +17 -11
  642. package/lib/models/RuntimeDTO.d.ts +16 -7
  643. package/lib/models/RuntimeDTO.js +9 -9
  644. package/lib/models/Space.d.ts +10 -0
  645. package/lib/models/Space.js +1 -1
  646. package/lib/models/SpaceDTO.d.ts +1 -1
  647. package/lib/models/SpaceItem.d.ts +2 -2
  648. package/lib/models/environments.generated.d.ts +141 -0
  649. package/lib/models/environments.generated.js +13 -0
  650. package/lib/models/index.d.ts +1 -1
  651. package/lib/models/index.js +1 -1
  652. package/lib/protocols/A2AAdapter.d.ts +39 -6
  653. package/lib/protocols/A2AAdapter.js +180 -11
  654. package/lib/protocols/ACPAdapter.js +40 -37
  655. package/lib/protocols/AGUIAdapter.d.ts +14 -0
  656. package/lib/protocols/AGUIAdapter.js +34 -9
  657. package/lib/protocols/BrowserAgentAdapter.d.ts +125 -0
  658. package/lib/protocols/BrowserAgentAdapter.js +317 -0
  659. package/lib/protocols/VercelAIAdapter.d.ts +10 -0
  660. package/lib/protocols/VercelAIAdapter.js +27 -7
  661. package/lib/protocols/index.d.ts +1 -0
  662. package/lib/protocols/index.js +1 -0
  663. package/lib/runtimes/actions.d.ts +8 -3
  664. package/lib/runtimes/actions.js +46 -14
  665. package/lib/runtimes/apis.d.ts +13 -4
  666. package/lib/runtimes/browser/agent.d.ts +54 -0
  667. package/lib/runtimes/browser/agent.js +63 -0
  668. package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
  669. package/lib/runtimes/browser/anonymousToken.js +300 -0
  670. package/lib/runtimes/browser/frontendTools.d.ts +61 -0
  671. package/lib/runtimes/browser/frontendTools.js +152 -0
  672. package/lib/runtimes/browser/index.d.ts +11 -0
  673. package/lib/runtimes/browser/index.js +20 -0
  674. package/lib/runtimes/browser/model.d.ts +52 -0
  675. package/lib/runtimes/browser/model.js +110 -0
  676. package/lib/runtimes/browser/protocol.d.ts +54 -0
  677. package/lib/runtimes/browser/protocol.js +35 -0
  678. package/lib/runtimes/browser/subagents.d.ts +131 -0
  679. package/lib/runtimes/browser/subagents.js +241 -0
  680. package/lib/runtimes/index.d.ts +3 -0
  681. package/lib/runtimes/index.js +3 -0
  682. package/lib/runtimes/lifecycle.d.ts +76 -0
  683. package/lib/runtimes/lifecycle.js +99 -0
  684. package/lib/runtimes/variants.d.ts +172 -0
  685. package/lib/runtimes/variants.js +187 -0
  686. package/lib/services/reconnectToRuntime.d.ts +2 -2
  687. package/lib/services/reconnectToRuntime.js +3 -3
  688. package/lib/services/sandboxServiceManagers.d.ts +2 -2
  689. package/lib/services/sandboxServiceManagers.js +11 -11
  690. package/lib/specs/agents/agents.d.ts +129 -112
  691. package/lib/specs/agents/agents.js +8200 -5044
  692. package/lib/specs/evals.js +9 -0
  693. package/lib/specs/frontendTools.d.ts +4 -0
  694. package/lib/specs/frontendTools.js +77 -3
  695. package/lib/specs/mcpServers.d.ts +1 -0
  696. package/lib/specs/mcpServers.js +38 -15
  697. package/lib/specs/models.d.ts +18 -0
  698. package/lib/specs/models.js +154 -0
  699. package/lib/specs/outputs.d.ts +2 -0
  700. package/lib/specs/outputs.js +31 -0
  701. package/lib/specs/personas.js +1 -1
  702. package/lib/specs/skills.js +7 -7
  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 +14 -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/tools/adapters/commands/index.js +5 -0
  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/outputs.d.ts +2 -0
  744. package/lib/types/protocol.d.ts +7 -2
  745. package/lib/types/stream.d.ts +48 -3
  746. package/lib/types/stream.js +5 -0
  747. package/lib/types/teams.d.ts +102 -4
  748. package/lib/types/tool-approvals.d.ts +1 -1
  749. package/lib/types/tools.d.ts +8 -2
  750. package/lib/utils/utils.js +7 -1
  751. package/package.json +376 -361
  752. package/scripts/codegen/compose.py +208 -0
  753. package/scripts/codegen/generate_agents.py +202 -31
  754. package/scripts/codegen/generate_evals.py +2 -0
  755. package/scripts/codegen/generate_frontend_tools.py +35 -6
  756. package/scripts/codegen/generate_mcp_servers.py +2 -2
  757. package/scripts/codegen/generate_models.py +40 -15
  758. package/scripts/codegen/generate_outputs.py +2 -0
  759. package/scripts/codegen/generate_sandbox_agents.py +76 -62
  760. package/scripts/codegen/generate_skills.py +2 -2
  761. package/scripts/codegen/generate_teams.py +178 -4
  762. package/scripts/codegen/generate_tools.py +6 -4
  763. package/scripts/gen_workers.py +278 -110
  764. package/scripts/generate-environments-types.py +404 -0
  765. package/lib/chat/prompt/InputFooter.d.ts +0 -58
  766. package/lib/chat/prompt/InputFooter.js +0 -194
  767. package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
  768. package/lib/chat/prompt/InputPromptFooter.js +0 -15
  769. package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
  770. package/lib/chat/prompt/InputPromptHeader.js +0 -15
  771. package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
  772. package/lib/hooks/useRuntimes.d.ts +0 -5
  773. package/lib/hooks/useRuntimes.js +0 -34
  774. package/lib/jupyter/kernelsHandler.d.ts +0 -8
  775. package/lib/jupyter/kernelsHandler.js +0 -39
  776. package/lib/models/Dataset.d.ts +0 -16
  777. package/lib/utils/Cells.d.ts +0 -2
  778. package/lib/utils/Cells.js +0 -28
  779. /package/lib/models/{Dataset.js → Deck.js} +0 -0
@@ -4,7 +4,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
6
  /**
7
- * Agent Runtime Lexical Example - Next generation chat with Lexical editor.
7
+ * Lexical Example - Next generation chat with Lexical editor.
8
8
  *
9
9
  * This example demonstrates using the chat component with:
10
10
  * - Lexical editor integration
@@ -18,67 +18,48 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
18
18
  * @module examples/LexicalAgentSidebarExample
19
19
  */
20
20
  import '@datalayer/jupyter-react/lib/css/PrismCss';
21
- import { useCallback, useEffect, useMemo, useState } from 'react';
22
- import { LexicalComposer } from '@lexical/react/LexicalComposer';
23
- import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
21
+ import { useCallback, useState } from 'react';
22
+ import { LexicalExtensionComposer } from '@lexical/react/LexicalExtensionComposer';
24
23
  import { ContentEditable } from '@lexical/react/LexicalContentEditable';
25
- import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
26
24
  import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
27
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
28
- import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';
29
- import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';
30
- import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
31
- import { TRANSFORMERS } from '@lexical/markdown';
32
- import { registerCodeHighlighting } from '@lexical/code';
33
- import { ListPlugin } from '@lexical/react/LexicalListPlugin';
34
- import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
35
- import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
36
25
  import { Box } from '@datalayer/primer-addons';
37
26
  import { useJupyter } from '@datalayer/jupyter-react';
38
- import { ThemedJupyterProvider } from './utils/themedProvider';
39
- import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, ExcalidrawPlugin, CollapsiblePlugin, AutoLinkPlugin, AutoEmbedPlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, LexicalConfigProvider, LexicalStatePlugin, TableCellResizerPlugin, TablePlugin, } from '@datalayer/jupyter-lexical';
27
+ import { ThemedProvider } from './utils/themedProvider';
28
+ import { useExampleThemeStore } from './utils/themeStore';
29
+ import { ComponentPickerMenuPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, LexicalConfigProvider, LexicalPrimerThemeProvider, LexicalStatePlugin, TableCellResizerPlugin, } from '@datalayer/jupyter-lexical';
40
30
  import { ChatSidebar } from '../chat';
41
31
  import { ChatInlinePlugin } from '../lexical/ChatInlinePlugin';
42
32
  import { useChatInlineToolbarItems } from '../lexical/useChatInlineToolbarItems';
43
33
  import { useLexicalTools } from '../tools/adapters/agent-runtimes/lexicalHooks';
44
- import { editorConfig } from './lexical/editorConfig';
45
- import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
46
- import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
47
- import { DEFAULT_MODEL } from '../specs';
34
+ import { editorExtension } from './lexical/editorConfig';
35
+ import { useExampleJupyterAgent } from './hooks/useExampleJupyterAgent';
48
36
  import '@datalayer/jupyter-lexical/style/index.css';
49
37
  import './lexical/lexical-theme.css';
50
38
  // Fixed lexical document ID
51
39
  const LEXICAL_ID = 'chat-lexical-example';
52
40
  // Default configuration
53
41
  const DEFAULT_AGENT_ID = import.meta.env.VITE_AGENT_ID || 'lexical-sidebar-agent-runtime-example';
54
- function getJupyterSandboxUrl(serviceManager) {
55
- const envUrl = import.meta.env.VITE_JUPYTER_SANDBOX_URL;
56
- if (envUrl) {
57
- return envUrl;
58
- }
59
- const baseUrl = serviceManager?.serverSettings?.baseUrl?.replace(/\/$/, '');
60
- if (!baseUrl) {
61
- return undefined;
62
- }
63
- if (baseUrl.includes('token=')) {
64
- return baseUrl;
65
- }
66
- const token = serviceManager?.serverSettings?.token;
67
- if (!token) {
68
- return baseUrl;
69
- }
70
- const separator = baseUrl.includes('?') ? '&' : '?';
71
- return `${baseUrl}${separator}token=${encodeURIComponent(token)}`;
72
- }
42
+ /** The agentspec this example's agent is built from. */
43
+ const AGENTSPEC_ID = 'example-document-agent-sidebar';
73
44
  /**
74
- * Lexical plugin for code highlighting
45
+ * The plugins that need a kernel, and the kernel they need.
46
+ *
47
+ * `ComponentPickerMenuPlugin` and `JupyterInputOutputPlugin` both take a
48
+ * `kernel` prop, and both were mounted here without one — so a Jupyter cell in
49
+ * the document had nothing to run on and said "No runtime connected" however
50
+ * healthy the sandbox was. `LexicalAgentExample` had this right all along;
51
+ * this is the same component.
52
+ *
53
+ * The service manager is passed explicitly rather than left ambient. A bare
54
+ * `useJupyter()` builds its own from the page config, which is the cloud —
55
+ * see the note on `AgentRuntimeLexicalAgentSidebarExample`.
75
56
  */
76
- function CodeHighlightingPlugin() {
77
- const [editor] = useLexicalComposerContext();
78
- useEffect(() => {
79
- return registerCodeHighlighting(editor);
80
- }, [editor]);
81
- return null;
57
+ function DocumentKernelPlugins({ serviceManager, }) {
58
+ const { defaultKernel } = useJupyter({
59
+ serviceManager,
60
+ startDefaultKernel: !!serviceManager,
61
+ });
62
+ return (_jsxs(_Fragment, { children: [_jsx(ComponentPickerMenuPlugin, { kernel: defaultKernel }), _jsx(JupyterInputOutputPlugin, { kernel: defaultKernel })] }));
82
63
  }
83
64
  function LexicalEditor({ serviceManager, endpoint }) {
84
65
  const [floatingAnchorElem, setFloatingAnchorElem] = useState(null);
@@ -94,79 +75,54 @@ function LexicalEditor({ serviceManager, endpoint }) {
94
75
  const onChange = useCallback((_editorState) => {
95
76
  // Could persist state here
96
77
  }, []);
97
- return (_jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsxs(LexicalComposer, { initialConfig: editorConfig, children: [_jsx(LexicalStatePlugin, {}), _jsxs(Box, { sx: {
98
- position: 'relative',
99
- flex: 1,
100
- display: 'flex',
101
- flexDirection: 'column',
102
- overflow: 'hidden',
103
- }, children: [_jsx(RichTextPlugin, { contentEditable: _jsx("div", { ref: onRef, style: { flex: 1, display: 'flex', flexDirection: 'column' }, children: _jsx(ContentEditable, { className: "lexical-editor-content", style: {
104
- flex: 1,
105
- padding: '24px',
106
- outline: 'none',
107
- overflow: 'auto',
108
- } }) }), placeholder: _jsx("div", { style: {
109
- position: 'absolute',
110
- top: '24px',
111
- left: '24px',
112
- color: 'var(--fgColor-muted)',
113
- pointerEvents: 'none',
114
- }, children: "Start typing or use the chat to create content..." }), ErrorBoundary: LexicalErrorBoundary }), _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(OnChangePlugin, { onChange: onChange }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), _jsx(CodeHighlightingPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(TablePlugin, {}), _jsx(TableCellResizerPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(JupyterInputOutputPlugin, {}), _jsx(ImagesPlugin, {}), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(ExcalidrawPlugin, {}), _jsx(CollapsiblePlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(ComponentPickerMenuPlugin, {}), _jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode, extraItems: toolbarItems }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] })), _jsx(ChatInlinePlugin, { protocol: {
115
- type: 'vercel-ai',
116
- endpoint,
117
- }, isOpen: isAiOpen, onClose: closeAi, pendingPrompt: pendingPrompt, onPendingPromptConsumed: clearPendingPrompt })] })] }) }));
78
+ /*
79
+ * The editor's own theme scope.
80
+ *
81
+ * `LexicalPrimerThemeProvider` is what the platform's document editor uses,
82
+ * and it carries the two halves this example was missing: the resolved
83
+ * `colormode` and canvas background handed to `JupyterReactTheme`, so the
84
+ * `--jp-*` variables the editor's stylesheet reads follow the picker; and a
85
+ * `ThemeContext`, which is where `ExcalidrawModal` and `ExcalidrawImage`
86
+ * read light-or-dark from. Without it a drawing rendered light on a dark
87
+ * document, and the editor surface kept Primer's stock palette.
88
+ *
89
+ * Only the editor is wrapped. `JupyterReactTheme` nests a Primer theme of
90
+ * its own, and putting the header, the chat sidebar and the error panel
91
+ * inside it is what made them read `canvas.default` from the stock light
92
+ * palette — the same trap `NotebookAgentSidebarExample` documents.
93
+ */
94
+ return (_jsx(LexicalPrimerThemeProvider, { useStore: useExampleThemeStore, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsxs(LexicalExtensionComposer, { extension: editorExtension, contentEditable: null, children: [_jsx(LexicalStatePlugin, {}), _jsxs(Box, { sx: { position: 'relative', width: '100%' }, children: [_jsx("div", { ref: onRef, children: _jsx(ContentEditable, { placeholder: _jsx("div", { style: {
95
+ position: 'absolute',
96
+ top: '24px',
97
+ left: '24px',
98
+ color: 'var(--fgColor-muted)',
99
+ pointerEvents: 'none',
100
+ }, children: "Start typing or use the chat to create content..." }), "aria-placeholder": "Start typing or use the chat to create content...", className: "lexical-editor-content", "aria-label": "Lexical Editor", style: { padding: '24px', outline: 'none' } }) }), _jsx(OnChangePlugin, { onChange: onChange }), _jsx(TableCellResizerPlugin, {}), _jsx(DocumentKernelPlugins, { serviceManager: serviceManager }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode, extraItems: toolbarItems }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] })), _jsx(ChatInlinePlugin, { protocol: {
101
+ type: 'vercel-ai',
102
+ endpoint,
103
+ }, isOpen: isAiOpen, onClose: closeAi, pendingPrompt: pendingPrompt, onPendingPromptConsumed: clearPendingPrompt })] })] }) }) }));
118
104
  }
119
105
  export function ChatLexicalAgentExampleInner({ serviceManager, }) {
120
- const baseUrl = useExampleAgentRuntimesUrl();
121
- const vercelAiEndpoint = `${baseUrl}/api/v1/vercel-ai/${DEFAULT_AGENT_ID}`;
122
- const [createRequested, setCreateRequested] = useState(false);
123
- const jupyterSandboxUrl = useMemo(() => getJupyterSandboxUrl(serviceManager), [serviceManager]);
124
- const { agentId, isReady, status, error, createAgent } = useExampleAgentRuntime({
106
+ // The tools. Which of the chat and the harness runs them depends on
107
+ // where the loop turns, and the hook decides that.
108
+ const tools = useLexicalTools(LEXICAL_ID);
109
+ const { agentReady, protocol: protocolConfig, chatFrontendTools, error, unavailableReason, } = useExampleJupyterAgent({
125
110
  exampleId: 'LexicalAgentSidebarExample',
126
111
  agentName: DEFAULT_AGENT_ID,
127
- autoCreateAgent: false,
128
- agentConfig: {
129
- name: DEFAULT_AGENT_ID,
130
- description: 'Demo agent for lexical sidebar example',
131
- protocol: 'vercel-ai',
132
- model: DEFAULT_MODEL,
133
- systemPrompt: 'You are a helpful AI assistant that helps users work with lexical documents. For document operations, always use the lexical frontend tools so actions happen in the live document UI. Use executeCode only for temporary inspection code that should not modify persisted document content.',
134
- enableCodemode: false,
135
- sandboxVariant: 'jupyter',
136
- jupyterSandbox: jupyterSandboxUrl,
137
- },
112
+ specId: AGENTSPEC_ID,
113
+ description: 'Demo agent for lexical sidebar example',
114
+ systemPrompt: 'You are a helpful AI assistant that helps users work with lexical documents. For document operations, always use the lexical frontend tools so actions happen in the live document UI. Diagrams are documents too: this editor mounts the Excalidraw plugin, so draw with the excalidraw* tools rather than describing a picture in prose or writing it as ASCII art — excalidrawInsertNode to make one, excalidrawListDrawings then excalidrawReadScene to find and read an existing one before changing it. Use executeCodeInDocument only for temporary inspection code that should not modify persisted document content.',
115
+ serviceManager,
116
+ frontendTools: tools,
138
117
  });
139
- useEffect(() => {
140
- if (!jupyterSandboxUrl || createRequested || agentId) {
141
- return;
142
- }
143
- setCreateRequested(true);
144
- void createAgent({
145
- name: DEFAULT_AGENT_ID,
146
- description: 'Demo agent for lexical sidebar example',
147
- protocol: 'vercel-ai',
148
- model: DEFAULT_MODEL,
149
- systemPrompt: 'You are a helpful AI assistant that helps users work with lexical documents. For document operations, always use the lexical frontend tools so actions happen in the live document UI. Use executeCode only for temporary inspection code that should not modify persisted document content.',
150
- enableCodemode: false,
151
- sandboxVariant: 'jupyter',
152
- jupyterSandbox: jupyterSandboxUrl,
153
- }).catch(() => {
154
- setCreateRequested(false);
155
- });
156
- }, [jupyterSandboxUrl, createRequested, agentId, createAgent]);
157
- const effectiveReady = isReady || status === 'ready';
118
+ // One failed attempt is reported, not retried — see
119
+ // `useExampleJupyterAgent`.
120
+ const chatError = error || unavailableReason;
121
+ // The example's own agent, not merely the runtime: on the cloud target the
122
+ // runtime is ready before this agent has been registered on it.
123
+ const effectiveReady = agentReady;
158
124
  // Get lexical tools for ChatSidebar
159
- const tools = useLexicalTools(LEXICAL_ID);
160
125
  // Build Vercel AI protocol config
161
- const protocolConfig = useMemo(() => {
162
- return {
163
- type: 'vercel-ai',
164
- endpoint: vercelAiEndpoint,
165
- agentId: DEFAULT_AGENT_ID,
166
- enableConfigQuery: true,
167
- configEndpoint: `${baseUrl}/api/v1/configure`,
168
- };
169
- }, [baseUrl, vercelAiEndpoint]);
170
126
  return (_jsxs(_Fragment, { children: [_jsxs(Box, { sx: {
171
127
  height: 'calc(100vh - 70px)',
172
128
  width: '100vw',
@@ -182,34 +138,39 @@ export function ChatLexicalAgentExampleInner({ serviceManager, }) {
182
138
  borderBottom: '1px solid',
183
139
  borderColor: 'border.default',
184
140
  bg: 'canvas.default',
185
- }, children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "Agent Runtime Lexical Sidebar Example" }), _jsx("p", { style: { margin: '8px 0 0', color: 'var(--fgColor-muted)' }, children: "Next generation chat with Lexical editor integration (NO Provider!)" })] }), _jsx(Box, { sx: {
141
+ }, children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "Lexical Agent Sidebar Example" }), _jsx("p", { style: { margin: '8px 0 0', color: 'var(--fgColor-muted)' }, children: "Next generation chat with Lexical editor integration" })] }), _jsx(Box, { sx: {
186
142
  flex: 1,
143
+ minHeight: 0,
187
144
  display: 'flex',
188
- overflow: 'hidden',
145
+ flexDirection: 'column',
146
+ overflow: 'auto',
189
147
  bg: 'canvas.default',
190
- }, children: _jsx(LexicalEditor, { serviceManager: serviceManager, endpoint: vercelAiEndpoint }) })] }), effectiveReady && (_jsx(ChatSidebar, { kernelIndicatorPlacement: "right", title: "AI Assistant", protocol: protocolConfig, position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
148
+ }, children: _jsx(LexicalEditor, { serviceManager: serviceManager, endpoint: protocolConfig.endpoint }) })] }), effectiveReady && (_jsx(ChatSidebar, { kernelIndicatorPlacement: "right", title: "AI Assistant", protocol: protocolConfig, position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
191
149
  protocol: protocolConfig,
192
- frontendTools: tools,
150
+ frontendTools: chatFrontendTools,
193
151
  useStore: true,
152
+ // Two of these exercise the drawing tools the mounted
153
+ // `ExcalidrawPlugin` contributes, because a suggestion is how
154
+ // anyone finds out a tool exists.
194
155
  suggestions: [
195
156
  {
196
157
  title: '✍️ Help me write',
197
158
  message: 'Can you help me write a document?',
198
159
  },
199
160
  {
200
- title: '📝 Summarize text',
201
- message: 'Can you summarize the content in the editor?',
161
+ title: '📊 Draw a diagram',
162
+ message: 'Draw a flowchart of a three-stage data pipeline — ingest, transform, publish — with labelled arrows between the stages.',
202
163
  },
203
164
  {
204
- title: '🔍 Proofread',
205
- message: 'Can you proofread and improve my text?',
165
+ title: '🎨 Edit the drawing',
166
+ message: 'Read the drawing in this document and add a box for a validation step between ingest and transform, wired into the existing arrows.',
206
167
  },
207
168
  {
208
- title: '💡 Generate ideas',
209
- message: 'Can you suggest some ideas for content?',
169
+ title: '📝 Summarize text',
170
+ message: 'Can you summarize the content in the editor?',
210
171
  },
211
172
  ],
212
- } }))] }), error && (_jsxs(Box, { sx: {
173
+ } }))] }), chatError && (_jsxs(Box, { sx: {
213
174
  position: 'fixed',
214
175
  bottom: 20,
215
176
  right: 20,
@@ -218,16 +179,23 @@ export function ChatLexicalAgentExampleInner({ serviceManager, }) {
218
179
  color: 'danger.fg',
219
180
  borderRadius: 2,
220
181
  maxWidth: 300,
221
- }, children: [_jsx("strong", { children: "Error:" }), " ", error] }))] }));
182
+ }, children: [_jsx("strong", { children: "Error:" }), " ", chatError] }))] }));
222
183
  }
223
184
  /**
224
- * Main example component with Simple wrapper
185
+ * The example, in the app's theme, on the shell's runtime.
186
+ *
187
+ * The service manager comes from the shell, as it does in every other
188
+ * example. Reading it from an ambient `useJupyter()` instead — which is what
189
+ * this example used to do — did not merely risk showing a document on a
190
+ * different runtime than the picker says: with no `<Jupyter>` provider above
191
+ * it there was nothing ambient to read, so the hook fell back to
192
+ * `DEFAULT_JUPYTER_SERVER_URL` (`prod1.datalayer.run/api/jupyter-server`).
193
+ * That URL is what the example then handed the agent runtime as its sandbox,
194
+ * and validating it is what came back as "Failed to connect to Jupyter
195
+ * sandbox: Jupyter server returned HTTP 404" — a server that was running all
196
+ * along, just not the one being asked.
225
197
  */
226
- export function AgentRuntimeLexicalAgentSidebarExample() {
227
- return (_jsx(ThemedJupyterProvider, { children: _jsx(SimpleWrapper, {}) }));
228
- }
229
- function SimpleWrapper() {
230
- const { serviceManager } = useJupyter();
231
- return _jsx(ChatLexicalAgentExampleInner, { serviceManager: serviceManager });
198
+ export function AgentRuntimeLexicalAgentSidebarExample({ serviceManager, }) {
199
+ return (_jsx(ThemedProvider, { children: _jsx(ChatLexicalAgentExampleInner, { serviceManager: serviceManager }) }));
232
200
  }
233
201
  export default AgentRuntimeLexicalAgentSidebarExample;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The Loop Shell: the workspace with almost everything taken away.
3
+ *
4
+ * Where `LoopWorkspaceExample` shows everything Loop can mount, this shows how
5
+ * little it needs: a blank shell, a floating prompt that can be dragged out of
6
+ * the way, and one control in the top-right corner choosing the editor —
7
+ * `None` by default, the notebook and the document on offer. Everything on
8
+ * screen is a plugin; the example itself only picks them.
9
+ *
10
+ * The code runs in the browser sandbox — the in-page kernel reached through
11
+ * the Jupyter service manager — so the page needs no server and no account.
12
+ * The agents are the `jupyter` team the landing page runs — Analyst,
13
+ * Reviewer, Writer, Decks, Tutor and Compactor — with the Analyst at the
14
+ * front door; `@` in the composer reaches the others, and the team picker in
15
+ * the header switches to one. The decks plugin is mounted so the Decks member
16
+ * has its tools and a deck can open beside the conversation, like the
17
+ * notebook and the document.
18
+ *
19
+ * @module examples/LoopShellExample
20
+ */
21
+ import type { JSX } from 'react';
22
+ export type LoopShellExampleProps = {
23
+ /** Server backing the session. Defaults to this page's origin. */
24
+ serverUrl?: string;
25
+ /** Agent bound to the session; the team's front door by default. */
26
+ agentId?: string;
27
+ /**
28
+ * Which editor the shell opens on.
29
+ *
30
+ * `'none'` is the point of this example: the conversation is the canvas,
31
+ * and the selector in the top-right corner is how an editor arrives.
32
+ */
33
+ defaultEditor?: 'none' | 'notebook' | 'document' | 'deck';
34
+ /** Render without wrapping the shell in a theme provider. */
35
+ inheritTheme?: boolean;
36
+ };
37
+ export declare function LoopShellExample({ serverUrl, agentId, defaultEditor, inheritTheme, }: LoopShellExampleProps): JSX.Element;
38
+ export default LoopShellExample;
@@ -0,0 +1,68 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { Box } from '@primer/react';
4
+ import { QueryClientProvider } from '@tanstack/react-query';
5
+ import { useReactor } from '@datalayer/reactor/react';
6
+ import { registerDecks } from '@datalayer/decks';
7
+ import { exampleDecks } from '@datalayer/decks/examples';
8
+ import { buildLoopReactor, LoopWorkspace } from '../loop/shell';
9
+ import { DeckViewPlugin, LoopDecksPlugin } from '../loop/plugins/decks';
10
+ import { loopPlugins } from '../loop/presets';
11
+ import { internalQueryClient } from '../utils';
12
+ import { resolveExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
13
+ import { ThemedProvider } from './utils/themedProvider';
14
+ /** The team the landing page runs, and this example with it. */
15
+ const TEAM_ID = 'jupyter';
16
+ /** Its front door: the member a prompt reaches unless `@` says otherwise. */
17
+ const FRONT_DOOR = 'jupyter-data-analyst';
18
+ // The package's example decks, so the Decks member has something to open and
19
+ // change before it has made one. Once, at module load.
20
+ registerDecks(exampleDecks);
21
+ export function LoopShellExample({ serverUrl = resolveExampleAgentRuntimesUrl('local'), agentId = FRONT_DOOR, defaultEditor = 'none', inheritTheme = false, }) {
22
+ // Built once: rebuilding would restart every plugin on each render.
23
+ const reactor = useMemo(() => buildLoopReactor([
24
+ ...loopPlugins({
25
+ serverUrl,
26
+ // The browser sandbox: the in-page kernel behind the Jupyter
27
+ // service manager, so nothing has to be installed or signed into.
28
+ target: 'browser',
29
+ showAgentVariants: false,
30
+ defaultEditor,
31
+ // The two plugins this example exists to show: the draggable
32
+ // prompt floating over the shell, and the editor choice in the
33
+ // header. Each switches the chat's own copy of itself off.
34
+ floatingPrompt: true,
35
+ editorSelector: true,
36
+ // Naked: the page names the example, and a title bar inside an
37
+ // otherwise blank shell would be the only chrome in sight.
38
+ hideChatHeader: true,
39
+ // First-class commands still deserve their keystrokes.
40
+ commandPalette: true,
41
+ // The landing page's team, front door and all: what `@` offers
42
+ // in the composer and what the header's picker switches between.
43
+ teamId: TEAM_ID,
44
+ localAgentSpec: FRONT_DOOR,
45
+ }),
46
+ // The deck beside the chat — an editor in the selector, a footer
47
+ // icon, a menu in the composer — and the tools the Decks member
48
+ // reads and writes decks with. Without these the fourth member
49
+ // would be a name with nothing behind it.
50
+ LoopDecksPlugin,
51
+ DeckViewPlugin,
52
+ ]), [serverUrl, defaultEditor]);
53
+ // Registered here rather than inside the workspace, because this component
54
+ // built it; the workspace is told not to manage it a second time.
55
+ useReactor(reactor);
56
+ const shell = (_jsx(QueryClientProvider, { client: internalQueryClient, children: _jsx(Box, { sx: { height: '100%', minHeight: 0 }, children: _jsx(LoopWorkspace, { serverUrl: serverUrl, agentId: agentId, reactor: reactor, manageReactor: false,
57
+ // The header stays for the one thing living in it — the editor
58
+ // selector on its trailing edge — but offers no view switcher:
59
+ // a blank shell with one control is the example.
60
+ showViewSelector: false }) }) }));
61
+ if (inheritTheme) {
62
+ return shell;
63
+ }
64
+ // The one theme provider in the tree; see LoopWorkspaceExample for why the
65
+ // editors need it even when the chrome looks right without it.
66
+ return _jsx(ThemedProvider, { children: shell });
67
+ }
68
+ export default LoopShellExample;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The LOOP workspace, ready to drop into somebody else's page.
3
+ *
4
+ * `LoopWorkspaceExample` is the workspace; this is everything a host has to do
5
+ * around it, done once here instead of once per host:
6
+ *
7
+ * - **Loaded lazily, fetched eagerly.** The workspace pulls in a notebook
8
+ * editor and a Python runtime measured in megabytes, so it must not be in
9
+ * the bundle a page needs before it can paint. Downloading it only when it
10
+ * first renders turns that saving into a wait, so the chunk is requested as
11
+ * soon as this module evaluates and is usually there before anyone scrolls
12
+ * to it.
13
+ * - **Fenced off.** An old browser, a blocked worker, a network that dropped
14
+ * the Python payload: none of those should cost the host the rest of its
15
+ * page, so a failure inside the workspace stops here.
16
+ * - **Honest while it waits**, and honest when it cannot start.
17
+ *
18
+ * The landing page had all three, written against a package it embeds — which
19
+ * is the wrong side of the boundary for them to live on: a change to how the
20
+ * workspace boots would have had to be made in a repository that only
21
+ * *renders* it. What a host keeps is the frame it puts around the thing and
22
+ * where a failure should send its readers.
23
+ *
24
+ * @module examples/LoopWorkspaceEmbed
25
+ */
26
+ import type { JSX } from 'react';
27
+ import { type ReactNode } from 'react';
28
+ import type { LoopWorkspaceExampleProps } from './LoopWorkspaceExample';
29
+ /** Ask for the workspace's code before anything renders it. */
30
+ export declare function preloadLoopWorkspace(): void;
31
+ export type LoopWorkspaceEmbedProps = LoopWorkspaceExampleProps & {
32
+ /**
33
+ * What to show in place of the workspace when it cannot run.
34
+ *
35
+ * The default says what happened and nothing else. A host with somewhere
36
+ * useful to send a reader — a gallery, a sign-up — should say so here: this
37
+ * package does not know what else that page has to offer.
38
+ */
39
+ fallback?: ReactNode;
40
+ /** What to show while the workspace is on its way. */
41
+ loading?: ReactNode;
42
+ };
43
+ /**
44
+ * The workspace, framed by whoever is embedding it.
45
+ *
46
+ * Fills its container: give it a height. Every other prop is the example's own
47
+ * — see {@link LoopWorkspaceExampleProps}.
48
+ */
49
+ export declare function LoopWorkspaceEmbed({ fallback, loading, ...workspace }: LoopWorkspaceEmbedProps): JSX.Element;
50
+ export default LoopWorkspaceEmbed;
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Component, Suspense } from 'react';
3
+ import { Spinner, Text } from '@primer/react';
4
+ import { Box } from '@datalayer/primer-addons';
5
+ import { lazyWithPreload } from '@datalayer/core/lib/utils';
6
+ /**
7
+ * The workspace itself, split out of the host's bundle.
8
+ *
9
+ * The real one — plugins, views, chat, sandbox and all, exactly as the
10
+ * examples app runs it. Reaching for it rather than rebuilding a smaller one
11
+ * for embedding is the whole point: a second implementation drifts from the
12
+ * first by the following release.
13
+ */
14
+ const LazyLoopWorkspace = lazyWithPreload(async () => {
15
+ const module = await import('./LoopWorkspaceExample');
16
+ return { default: module.LoopWorkspaceExample };
17
+ });
18
+ // Requested now, rendered later. See the note at the top of the file.
19
+ LazyLoopWorkspace.preload();
20
+ /** Ask for the workspace's code before anything renders it. */
21
+ export function preloadLoopWorkspace() {
22
+ void LazyLoopWorkspace.preload();
23
+ }
24
+ /** Rendered while the editor and its runtime are arriving. */
25
+ function WorkspaceLoading() {
26
+ return (_jsxs(Box, { sx: {
27
+ height: '100%',
28
+ display: 'flex',
29
+ flexDirection: 'column',
30
+ alignItems: 'center',
31
+ justifyContent: 'center',
32
+ gap: 3,
33
+ }, children: [_jsx(Spinner, {}), _jsx(Text, { sx: { color: 'fg.muted', fontSize: 1 }, children: "Starting the workspace\u2026" })] }));
34
+ }
35
+ /** Said when the workspace will not start, and the host offered nothing better. */
36
+ function WorkspaceUnavailable() {
37
+ return (_jsxs(Box, { sx: {
38
+ height: '100%',
39
+ display: 'flex',
40
+ flexDirection: 'column',
41
+ alignItems: 'center',
42
+ justifyContent: 'center',
43
+ gap: 2,
44
+ px: 4,
45
+ textAlign: 'center',
46
+ }, children: [_jsx(Text, { sx: { fontSize: 2, fontWeight: 'semibold' }, children: "The live workspace could not start in this browser." }), _jsx(Text, { sx: { color: 'fg.muted', fontSize: 1, maxWidth: 420 }, children: "It needs a modern browser that can run Python in a worker." })] }));
47
+ }
48
+ /** Keeps a failing workspace from taking its host's page with it. */
49
+ class WorkspaceBoundary extends Component {
50
+ state = { failed: false };
51
+ static getDerivedStateFromError() {
52
+ return { failed: true };
53
+ }
54
+ componentDidCatch(error) {
55
+ // Worth a console line for whoever is debugging it; not worth a banner on
56
+ // somebody's landing page.
57
+ console.warn('The embedded agent workspace could not start.', error);
58
+ }
59
+ render() {
60
+ return this.state.failed ? this.props.fallback : this.props.children;
61
+ }
62
+ }
63
+ /**
64
+ * The workspace, framed by whoever is embedding it.
65
+ *
66
+ * Fills its container: give it a height. Every other prop is the example's own
67
+ * — see {@link LoopWorkspaceExampleProps}.
68
+ */
69
+ export function LoopWorkspaceEmbed({ fallback, loading, ...workspace }) {
70
+ const waiting = loading ?? _jsx(WorkspaceLoading, {});
71
+ return (_jsx(WorkspaceBoundary, { fallback: fallback ?? _jsx(WorkspaceUnavailable, {}), children: _jsx(Suspense, { fallback: waiting, children: _jsx(LazyLoopWorkspace, { ...workspace }) }) }));
72
+ }
73
+ export default LoopWorkspaceEmbed;