@datalayer/agent-runtimes 1.0.29 → 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 (768) 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 +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 +35 -0
  163. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
  164. package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +1 -0
  165. package/lib/components/code-sandboxes/CodeSandboxLauncher.js +42 -19
  166. package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
  167. package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
  168. package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
  169. package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
  170. package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
  171. package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
  172. package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
  173. package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
  174. package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
  175. package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
  176. package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
  177. package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
  178. package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
  179. package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
  180. package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
  181. package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
  182. package/lib/components/code-sandboxes/index.d.ts +1 -0
  183. package/lib/components/code-sandboxes/index.js +1 -0
  184. package/lib/components/context/SpaceSelect.d.ts +1 -1
  185. package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
  186. package/lib/components/icons/ArtifactIcon.d.ts +1 -0
  187. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  188. package/lib/components/progress/CreditsIndicator.d.ts +1 -0
  189. package/lib/components/progress/CreditsIndicator.js +0 -4
  190. package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
  191. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
  192. package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
  193. package/lib/components/snippets/SnippetDialog.d.ts +1 -0
  194. package/lib/components/snippets/SnippetDialog.js +0 -4
  195. package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
  196. package/lib/components/specs/SpecPayloadPreview.js +102 -0
  197. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  198. package/lib/context/ContextDistribution.d.ts +1 -1
  199. package/lib/context/ContextInspector.d.ts +2 -1
  200. package/lib/context/ContextPanel.d.ts +1 -1
  201. package/lib/context/ContextUsage.d.ts +1 -1
  202. package/lib/context/CostTracker.d.ts +1 -1
  203. package/lib/context/CostUsageChart.d.ts +1 -1
  204. package/lib/context/CostUsageChart.js +4 -4
  205. package/lib/context/MessageHistory.d.ts +3 -2
  206. package/lib/context/TokenUsageChart.d.ts +1 -1
  207. package/lib/context/TokenUsageChart.js +4 -4
  208. package/lib/examples/A2UiAgentExample.js +15 -6
  209. package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
  210. package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
  211. package/lib/examples/A2UiContactCardExample.d.ts +10 -0
  212. package/lib/examples/A2UiContactCardExample.js +23 -170
  213. package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
  214. package/lib/examples/A2UiJupyterOutputExample.js +792 -0
  215. package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
  216. package/lib/examples/A2UiRestaurantExample.js +24 -179
  217. package/lib/examples/A2UiViewerExample.d.ts +10 -0
  218. package/lib/examples/A2UiViewerExample.js +24 -378
  219. package/lib/examples/AgUiAgenticExample.js +2 -4
  220. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
  221. package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
  222. package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
  223. package/lib/examples/AgUiSharedStateExample.js +2 -4
  224. package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
  225. package/lib/examples/AgentA2AExample.d.ts +17 -0
  226. package/lib/examples/AgentA2AExample.js +56 -0
  227. package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
  228. package/lib/examples/AgentCheckpointsExample.js +72 -54
  229. package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
  230. package/lib/examples/AgentCodeSandboxExample.js +93 -303
  231. package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
  232. package/lib/examples/AgentCodeSandboxesExample.js +56 -162
  233. package/lib/examples/AgentCodemodeExample.d.ts +7 -2
  234. package/lib/examples/AgentCodemodeExample.js +60 -125
  235. package/lib/examples/AgentCompactionExample.js +19 -135
  236. package/lib/examples/AgentEvalsExample.js +34 -66
  237. package/lib/examples/AgentGuardrailsExample.js +64 -112
  238. package/lib/examples/AgentHooksExample.d.ts +11 -0
  239. package/lib/examples/AgentHooksExample.js +30 -67
  240. package/lib/examples/AgentInferenceProviderExample.js +8 -32
  241. package/lib/examples/AgentLoopExample.d.ts +4 -2
  242. package/lib/examples/AgentLoopExample.js +45 -93
  243. package/lib/examples/AgentMCPExample.js +30 -79
  244. package/lib/examples/AgentMemoryExample.js +21 -64
  245. package/lib/examples/AgentMonitoringExample.js +33 -94
  246. package/lib/examples/AgentNotificationsExample.js +56 -95
  247. package/lib/examples/AgentOtelExample.js +35 -88
  248. package/lib/examples/AgentOutputsExample.d.ts +2 -1
  249. package/lib/examples/AgentOutputsExample.js +16 -137
  250. package/lib/examples/AgentParametersExample.js +7 -17
  251. package/lib/examples/AgentSkillsExample.js +40 -154
  252. package/lib/examples/AgentSubagentsExample.d.ts +7 -6
  253. package/lib/examples/AgentSubagentsExample.js +80 -191
  254. package/lib/examples/AgentToolApprovalsExample.js +35 -91
  255. package/lib/examples/AgentTriggersExample.js +43 -59
  256. package/lib/examples/AgentspecsExample.js +4 -4
  257. package/lib/examples/CellExample.d.ts +1 -1
  258. package/lib/examples/ChatExample.d.ts +12 -5
  259. package/lib/examples/ChatExample.js +38 -13
  260. package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
  261. package/lib/examples/CopilotKitLexicalExample.js +4 -41
  262. package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
  263. package/lib/examples/CopilotKitNotebookExample.js +2 -14
  264. package/lib/examples/DecksAgent.d.ts +21 -0
  265. package/lib/examples/DecksAgent.js +23 -0
  266. package/lib/examples/DocumentPageAgent.d.ts +19 -0
  267. package/lib/examples/DocumentPageAgent.js +15 -0
  268. package/lib/examples/Lexical2Example.d.ts +2 -2
  269. package/lib/examples/Lexical2Example.js +17 -38
  270. package/lib/examples/LexicalAgentExample.d.ts +2 -1
  271. package/lib/examples/LexicalAgentExample.js +29 -102
  272. package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
  273. package/lib/examples/LexicalAgentSidebarExample.js +99 -131
  274. package/lib/examples/LoopShellExample.d.ts +38 -0
  275. package/lib/examples/LoopShellExample.js +68 -0
  276. package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
  277. package/lib/examples/LoopWorkspaceEmbed.js +73 -0
  278. package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
  279. package/lib/examples/LoopWorkspaceExample.js +151 -0
  280. package/lib/examples/NotebookAgentExample.d.ts +13 -0
  281. package/lib/examples/NotebookAgentExample.js +36 -86
  282. package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
  283. package/lib/examples/NotebookAgentSidebarExample.js +39 -83
  284. package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
  285. package/lib/examples/NotebookCollaborationExample.js +108 -20
  286. package/lib/examples/NotebookExample.d.ts +1 -1
  287. package/lib/examples/NotebookExample.js +20 -10
  288. package/lib/examples/NotebookPageAgent.d.ts +23 -0
  289. package/lib/examples/NotebookPageAgent.js +17 -0
  290. package/lib/examples/components/ExampleWrapper.d.ts +5 -0
  291. package/lib/examples/components/ExampleWrapper.js +36 -28
  292. package/lib/examples/components/LexicalEditor.d.ts +1 -1
  293. package/lib/examples/components/LexicalEditor.js +4 -24
  294. package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
  295. package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
  296. package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
  297. package/lib/examples/example-selector.js +26 -6
  298. package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
  299. package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
  300. package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
  301. package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
  302. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
  303. package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
  304. package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
  305. package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
  306. package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
  307. package/lib/examples/index.d.ts +4 -0
  308. package/lib/examples/index.js +6 -0
  309. package/lib/examples/lexical/editorConfig.d.ts +2 -75
  310. package/lib/examples/lexical/editorConfig.js +26 -48
  311. package/lib/examples/lexical/lexical-theme.css +65 -47
  312. package/lib/examples/main.js +450 -322
  313. package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
  314. package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
  315. package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
  316. package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
  317. package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
  318. package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
  319. package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
  320. package/lib/examples/scenes/A2UiViewerScene.js +395 -0
  321. package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
  322. package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
  323. package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
  324. package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
  325. package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
  326. package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
  327. package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
  328. package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
  329. package/lib/examples/utils/exampleSurfaces.js +38 -0
  330. package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
  331. package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
  332. package/lib/examples/utils/localUrl.d.ts +2 -0
  333. package/lib/examples/utils/localUrl.js +49 -0
  334. package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
  335. package/lib/examples/utils/notebookToolbarItems.js +129 -0
  336. package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
  337. package/lib/examples/utils/runtimeTargetStore.js +82 -1
  338. package/lib/examples/utils/themedProvider.d.ts +7 -0
  339. package/lib/examples/utils/themedProvider.js +57 -4
  340. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
  341. package/lib/examples/utils/waitForAgent.d.ts +23 -0
  342. package/lib/examples/utils/waitForAgent.js +24 -0
  343. package/lib/examples2/CellExample.d.ts +1 -1
  344. package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
  345. package/lib/examples2/NotebookExample.d.ts +1 -1
  346. package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
  347. package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
  348. package/lib/examples2/main.js +24 -4
  349. package/lib/extensions/A2UIExtension.d.ts +1 -1
  350. package/lib/hooks/index.d.ts +8 -5
  351. package/lib/hooks/index.js +20 -5
  352. package/lib/hooks/useAgentRuntimes.d.ts +49 -22
  353. package/lib/hooks/useAgentRuntimes.js +214 -90
  354. package/lib/hooks/useAgentsCatalog.js +32 -4
  355. package/lib/hooks/useBrowserAgent.d.ts +26 -0
  356. package/lib/hooks/useBrowserAgent.js +75 -0
  357. package/lib/hooks/useBrowserInference.d.ts +27 -0
  358. package/lib/hooks/useBrowserInference.js +67 -0
  359. package/lib/hooks/useCheckpoints.d.ts +8 -17
  360. package/lib/hooks/useCheckpoints.js +25 -59
  361. package/lib/hooks/useConfig.d.ts +1 -1
  362. package/lib/hooks/useConfig.js +5 -1
  363. package/lib/hooks/useContextSnapshot.d.ts +18 -7
  364. package/lib/hooks/useContextSnapshot.js +14 -10
  365. package/lib/hooks/useNotifications.d.ts +11 -11
  366. package/lib/hooks/useNotifications.js +1 -1
  367. package/lib/hooks/useProjects.d.ts +7 -19
  368. package/lib/hooks/useProjects.js +5 -5
  369. package/lib/hooks/useSkills.d.ts +0 -1
  370. package/lib/hooks/useSkills.js +6 -2
  371. package/lib/hooks/useToolApprovals.d.ts +8 -8
  372. package/lib/hooks/useToolApprovals.js +3 -3
  373. package/lib/identity/AgentIdentity.d.ts +9 -2
  374. package/lib/index.d.ts +1 -0
  375. package/lib/index.js +4 -0
  376. package/lib/jupyter/index.d.ts +2 -1
  377. package/lib/jupyter/index.js +2 -1
  378. package/lib/jupyter/serverExecution.d.ts +78 -0
  379. package/lib/jupyter/serverExecution.js +258 -0
  380. package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
  381. package/lib/jupyter/useResumeServerExecutions.js +64 -0
  382. package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
  383. package/lib/lexical/ChatInlinePlugin.js +0 -36
  384. package/lib/loop/core/focusRequests.d.ts +10 -0
  385. package/lib/loop/core/focusRequests.js +46 -0
  386. package/lib/loop/core/index.d.ts +894 -0
  387. package/lib/loop/core/index.js +264 -0
  388. package/lib/loop/core/promptStore.d.ts +44 -0
  389. package/lib/loop/core/promptStore.js +63 -0
  390. package/lib/loop/core/surfaceRequests.d.ts +33 -0
  391. package/lib/loop/core/surfaceRequests.js +29 -0
  392. package/lib/loop/core/toolbar.d.ts +28 -0
  393. package/lib/loop/core/toolbar.js +59 -0
  394. package/lib/loop/embed/LoopEmbed.d.ts +57 -0
  395. package/lib/loop/embed/LoopEmbed.js +118 -0
  396. package/lib/loop/extensions.d.ts +10 -0
  397. package/lib/loop/extensions.js +49 -0
  398. package/lib/loop/index.d.ts +68 -0
  399. package/lib/loop/index.js +87 -0
  400. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
  401. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
  402. package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
  403. package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
  404. package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
  405. package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
  406. package/lib/loop/plugins/a2ui/index.d.ts +3 -0
  407. package/lib/loop/plugins/a2ui/index.js +50 -0
  408. package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
  409. package/lib/loop/plugins/a2ui-scene/index.js +28 -0
  410. package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
  411. package/lib/loop/plugins/agent-a2a/index.js +26 -0
  412. package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
  413. package/lib/loop/plugins/agent-a2ui/index.js +42 -0
  414. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
  415. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
  416. package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
  417. package/lib/loop/plugins/agent-capacity/index.js +52 -0
  418. package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
  419. package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
  420. package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
  421. package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
  422. package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
  423. package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
  424. package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
  425. package/lib/loop/plugins/agent-codemode/index.js +41 -0
  426. package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
  427. package/lib/loop/plugins/agent-compaction/index.js +34 -0
  428. package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
  429. package/lib/loop/plugins/agent-evals/index.js +25 -0
  430. package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
  431. package/lib/loop/plugins/agent-guardrails/index.js +25 -0
  432. package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
  433. package/lib/loop/plugins/agent-hooks/index.js +28 -0
  434. package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
  435. package/lib/loop/plugins/agent-inference/index.js +29 -0
  436. package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
  437. package/lib/loop/plugins/agent-mcp/index.js +25 -0
  438. package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
  439. package/lib/loop/plugins/agent-memory/index.js +25 -0
  440. package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
  441. package/lib/loop/plugins/agent-monitoring/index.js +25 -0
  442. package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
  443. package/lib/loop/plugins/agent-notifications/index.js +25 -0
  444. package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
  445. package/lib/loop/plugins/agent-otel/index.js +25 -0
  446. package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
  447. package/lib/loop/plugins/agent-outputs/index.js +25 -0
  448. package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
  449. package/lib/loop/plugins/agent-parameters/index.js +25 -0
  450. package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
  451. package/lib/loop/plugins/agent-skills/index.js +25 -0
  452. package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
  453. package/lib/loop/plugins/agent-subagents/index.js +25 -0
  454. package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
  455. package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
  456. package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
  457. package/lib/loop/plugins/agent-triggers/index.js +26 -0
  458. package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
  459. package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
  460. package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
  461. package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
  462. package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
  463. package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
  464. package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
  465. package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
  466. package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
  467. package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
  468. package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
  469. package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
  470. package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
  471. package/lib/loop/plugins/agents/SandboxView.js +43 -0
  472. package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
  473. package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
  474. package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
  475. package/lib/loop/plugins/agents/agentIcons.js +88 -0
  476. package/lib/loop/plugins/agents/browserService.d.ts +50 -0
  477. package/lib/loop/plugins/agents/browserService.js +233 -0
  478. package/lib/loop/plugins/agents/index.d.ts +13 -0
  479. package/lib/loop/plugins/agents/index.js +17 -0
  480. package/lib/loop/plugins/agents/plugin.d.ts +91 -0
  481. package/lib/loop/plugins/agents/plugin.js +201 -0
  482. package/lib/loop/plugins/agents/service.d.ts +99 -0
  483. package/lib/loop/plugins/agents/service.js +167 -0
  484. package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
  485. package/lib/loop/plugins/agents/specSubagents.js +33 -0
  486. package/lib/loop/plugins/agents/switchable.d.ts +107 -0
  487. package/lib/loop/plugins/agents/switchable.js +405 -0
  488. package/lib/loop/plugins/agents/team.d.ts +87 -0
  489. package/lib/loop/plugins/agents/team.js +143 -0
  490. package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
  491. package/lib/loop/plugins/agents/useSandboxService.js +36 -0
  492. package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
  493. package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
  494. package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
  495. package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
  496. package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
  497. package/lib/loop/plugins/agentspecs/index.js +63 -0
  498. package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
  499. package/lib/loop/plugins/chat/ChatView.js +1670 -0
  500. package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
  501. package/lib/loop/plugins/chat/chatViewTools.js +92 -0
  502. package/lib/loop/plugins/chat/index.d.ts +111 -0
  503. package/lib/loop/plugins/chat/index.js +143 -0
  504. package/lib/loop/plugins/chat/turnState.d.ts +41 -0
  505. package/lib/loop/plugins/chat/turnState.js +90 -0
  506. package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
  507. package/lib/loop/plugins/chat-extras/index.js +51 -0
  508. package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
  509. package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
  510. package/lib/loop/plugins/chat-header/index.d.ts +3 -0
  511. package/lib/loop/plugins/chat-header/index.js +21 -0
  512. package/lib/loop/plugins/chat-view/index.d.ts +10 -0
  513. package/lib/loop/plugins/chat-view/index.js +29 -0
  514. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
  515. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
  516. package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
  517. package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
  518. package/lib/loop/plugins/commands/index.d.ts +20 -0
  519. package/lib/loop/plugins/commands/index.js +148 -0
  520. package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
  521. package/lib/loop/plugins/decks/DeckSurface.js +6 -0
  522. package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
  523. package/lib/loop/plugins/decks/DecksMenu.js +42 -0
  524. package/lib/loop/plugins/decks/index.d.ts +19 -0
  525. package/lib/loop/plugins/decks/index.js +133 -0
  526. package/lib/loop/plugins/decks/surface.d.ts +7 -0
  527. package/lib/loop/plugins/decks/surface.js +11 -0
  528. package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
  529. package/lib/loop/plugins/document/DocumentView.js +68 -0
  530. package/lib/loop/plugins/document/index.d.ts +3 -0
  531. package/lib/loop/plugins/document/index.js +86 -0
  532. package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
  533. package/lib/loop/plugins/document/openingDocument.js +122 -0
  534. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
  535. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
  536. package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
  537. package/lib/loop/plugins/document-toolbar/index.js +35 -0
  538. package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
  539. package/lib/loop/plugins/document-toolbar/names.js +10 -0
  540. package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
  541. package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
  542. package/lib/loop/plugins/document-view/index.d.ts +10 -0
  543. package/lib/loop/plugins/document-view/index.js +28 -0
  544. package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
  545. package/lib/loop/plugins/graph/GraphToggle.js +22 -0
  546. package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
  547. package/lib/loop/plugins/graph/GraphView.js +6 -0
  548. package/lib/loop/plugins/graph/index.d.ts +5 -0
  549. package/lib/loop/plugins/graph/index.js +80 -0
  550. package/lib/loop/plugins/graph/viewType.d.ts +10 -0
  551. package/lib/loop/plugins/graph/viewType.js +14 -0
  552. package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
  553. package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
  554. package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
  555. package/lib/loop/plugins/input-prompt/index.js +26 -0
  556. package/lib/loop/plugins/models/index.d.ts +3 -0
  557. package/lib/loop/plugins/models/index.js +49 -0
  558. package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
  559. package/lib/loop/plugins/notebook/NotebookView.js +189 -0
  560. package/lib/loop/plugins/notebook/index.d.ts +3 -0
  561. package/lib/loop/plugins/notebook/index.js +91 -0
  562. package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
  563. package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
  564. package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
  565. package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
  566. package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
  567. package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
  568. package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
  569. package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
  570. package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
  571. package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
  572. package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
  573. package/lib/loop/plugins/notebook-view/index.js +30 -0
  574. package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
  575. package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
  576. package/lib/loop/plugins/page-layout/index.d.ts +35 -0
  577. package/lib/loop/plugins/page-layout/index.js +80 -0
  578. package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
  579. package/lib/loop/plugins/plugins-panel/index.js +74 -0
  580. package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
  581. package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
  582. package/lib/loop/plugins/prompt/index.d.ts +11 -0
  583. package/lib/loop/plugins/prompt/index.js +73 -0
  584. package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
  585. package/lib/loop/plugins/shell/editorChoice.js +58 -0
  586. package/lib/loop/plugins/shell/index.d.ts +47 -0
  587. package/lib/loop/plugins/shell/index.js +142 -0
  588. package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
  589. package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
  590. package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
  591. package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
  592. package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
  593. package/lib/loop/plugins/subagent-activity/index.js +42 -0
  594. package/lib/loop/plugins/view-switch/index.d.ts +46 -0
  595. package/lib/loop/plugins/view-switch/index.js +68 -0
  596. package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
  597. package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
  598. package/lib/loop/plugins/window-frame/index.d.ts +6 -0
  599. package/lib/loop/plugins/window-frame/index.js +79 -0
  600. package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
  601. package/lib/loop/plugins/window-frame/slots.js +30 -0
  602. package/lib/loop/presets.d.ts +167 -0
  603. package/lib/loop/presets.js +139 -0
  604. package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
  605. package/lib/loop/shell/LoopWorkspace.js +231 -0
  606. package/lib/loop/shell/PluginToggles.d.ts +21 -0
  607. package/lib/loop/shell/PluginToggles.js +41 -0
  608. package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
  609. package/lib/loop/shell/ViewSwitcher.js +43 -0
  610. package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
  611. package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
  612. package/lib/loop/shell/index.d.ts +10 -0
  613. package/lib/loop/shell/index.js +14 -0
  614. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
  615. package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
  616. package/lib/loop-example-main.d.ts +1 -0
  617. package/lib/loop-example-main.js +42 -0
  618. package/lib/loop-main.d.ts +1 -0
  619. package/lib/loop-main.js +138 -0
  620. package/lib/mcp/McpServerManager.d.ts +1 -1
  621. package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
  622. package/lib/models/CodeSandboxVariant.d.ts +13 -5
  623. package/lib/models/CodeSandboxVariant.js +17 -5
  624. package/lib/models/Content.d.ts +26 -0
  625. package/lib/models/Environment.d.ts +561 -5
  626. package/lib/models/Environment.js +12 -1
  627. package/lib/models/EnvironmentDTO.d.ts +24 -6
  628. package/lib/models/EnvironmentDTO.js +13 -2
  629. package/lib/models/Exercise.d.ts +0 -2
  630. package/lib/models/Library.d.ts +0 -2
  631. package/lib/models/Notebook.d.ts +0 -2
  632. package/lib/models/ProjectDTO.d.ts +2 -2
  633. package/lib/models/ProjectDTO.js +4 -4
  634. package/lib/models/Runtime.d.ts +11 -11
  635. package/lib/models/RuntimeDTO.d.ts +16 -7
  636. package/lib/models/RuntimeDTO.js +9 -9
  637. package/lib/models/Space.d.ts +10 -0
  638. package/lib/models/Space.js +1 -1
  639. package/lib/models/SpaceDTO.d.ts +1 -1
  640. package/lib/models/SpaceItem.d.ts +1 -2
  641. package/lib/models/environments.generated.d.ts +113 -0
  642. package/lib/models/environments.generated.js +13 -0
  643. package/lib/models/index.d.ts +0 -1
  644. package/lib/models/index.js +0 -1
  645. package/lib/protocols/A2AAdapter.d.ts +39 -6
  646. package/lib/protocols/A2AAdapter.js +180 -11
  647. package/lib/protocols/ACPAdapter.js +40 -37
  648. package/lib/protocols/AGUIAdapter.d.ts +14 -0
  649. package/lib/protocols/AGUIAdapter.js +34 -9
  650. package/lib/protocols/BrowserAgentAdapter.d.ts +117 -0
  651. package/lib/protocols/BrowserAgentAdapter.js +310 -0
  652. package/lib/protocols/VercelAIAdapter.d.ts +10 -0
  653. package/lib/protocols/VercelAIAdapter.js +27 -7
  654. package/lib/protocols/index.d.ts +1 -0
  655. package/lib/protocols/index.js +1 -0
  656. package/lib/runtimes/actions.d.ts +3 -3
  657. package/lib/runtimes/actions.js +27 -14
  658. package/lib/runtimes/apis.d.ts +13 -4
  659. package/lib/runtimes/browser/agent.d.ts +54 -0
  660. package/lib/runtimes/browser/agent.js +63 -0
  661. package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
  662. package/lib/runtimes/browser/anonymousToken.js +300 -0
  663. package/lib/runtimes/browser/frontendTools.d.ts +61 -0
  664. package/lib/runtimes/browser/frontendTools.js +152 -0
  665. package/lib/runtimes/browser/index.d.ts +11 -0
  666. package/lib/runtimes/browser/index.js +20 -0
  667. package/lib/runtimes/browser/model.d.ts +52 -0
  668. package/lib/runtimes/browser/model.js +110 -0
  669. package/lib/runtimes/browser/protocol.d.ts +54 -0
  670. package/lib/runtimes/browser/protocol.js +35 -0
  671. package/lib/runtimes/browser/subagents.d.ts +131 -0
  672. package/lib/runtimes/browser/subagents.js +241 -0
  673. package/lib/runtimes/index.d.ts +3 -0
  674. package/lib/runtimes/index.js +3 -0
  675. package/lib/runtimes/lifecycle.d.ts +76 -0
  676. package/lib/runtimes/lifecycle.js +99 -0
  677. package/lib/runtimes/variants.d.ts +172 -0
  678. package/lib/runtimes/variants.js +187 -0
  679. package/lib/services/reconnectToRuntime.d.ts +2 -2
  680. package/lib/services/reconnectToRuntime.js +3 -3
  681. package/lib/services/sandboxServiceManagers.d.ts +2 -2
  682. package/lib/services/sandboxServiceManagers.js +11 -11
  683. package/lib/specs/agents/agents.d.ts +128 -112
  684. package/lib/specs/agents/agents.js +8024 -5052
  685. package/lib/specs/evals.js +9 -0
  686. package/lib/specs/frontendTools.d.ts +3 -0
  687. package/lib/specs/frontendTools.js +46 -3
  688. package/lib/specs/mcpServers.d.ts +1 -0
  689. package/lib/specs/mcpServers.js +25 -2
  690. package/lib/specs/models.d.ts +18 -0
  691. package/lib/specs/models.js +154 -0
  692. package/lib/specs/outputs.d.ts +2 -0
  693. package/lib/specs/outputs.js +22 -0
  694. package/lib/specs/personas.js +1 -1
  695. package/lib/specs/teams/teams.d.ts +2 -0
  696. package/lib/specs/teams/teams.js +628 -111
  697. package/lib/state/index.d.ts +1 -1
  698. package/lib/state/index.js +1 -1
  699. package/lib/state/substates/RuntimesState.d.ts +5 -5
  700. package/lib/state/substates/RuntimesState.js +14 -14
  701. package/lib/state/substates/index.d.ts +1 -1
  702. package/lib/state/substates/index.js +1 -1
  703. package/lib/stores/agentRuntimeStore.d.ts +43 -1
  704. package/lib/stores/agentRuntimeStore.js +100 -11
  705. package/lib/stores/index.d.ts +1 -1
  706. package/lib/stores/index.js +1 -1
  707. package/lib/stories/Button.d.ts +1 -1
  708. package/lib/stories/Button.stories.d.ts +1 -1
  709. package/lib/stories/Header.d.ts +1 -1
  710. package/lib/stories/Header.stories.d.ts +1 -1
  711. package/lib/test-setup.js +66 -0
  712. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
  713. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
  714. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
  715. package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
  716. package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
  717. package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
  718. package/lib/tools/adapters/commands/index.d.ts +1 -0
  719. package/lib/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
  720. package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
  721. package/lib/tools/index.d.ts +1 -0
  722. package/lib/tools/index.js +1 -0
  723. package/lib/types/a2a.d.ts +15 -1
  724. package/lib/types/agents-lifecycle.d.ts +11 -6
  725. package/lib/types/agents.d.ts +31 -6
  726. package/lib/types/agentspecs.d.ts +120 -4
  727. package/lib/types/chat.d.ts +251 -3
  728. package/lib/types/checkpoints.d.ts +20 -0
  729. package/lib/types/config.d.ts +13 -1
  730. package/lib/types/connection.d.ts +1 -1
  731. package/lib/types/evals.d.ts +2 -0
  732. package/lib/types/messages.d.ts +60 -0
  733. package/lib/types/models.d.ts +26 -0
  734. package/lib/types/notifications.d.ts +15 -6
  735. package/lib/types/protocol.d.ts +7 -2
  736. package/lib/types/stream.d.ts +48 -3
  737. package/lib/types/stream.js +5 -0
  738. package/lib/types/teams.d.ts +102 -4
  739. package/lib/types/tool-approvals.d.ts +1 -1
  740. package/lib/types/tools.d.ts +8 -2
  741. package/lib/utils/utils.js +7 -1
  742. package/package.json +376 -361
  743. package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
  744. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  745. package/scripts/codegen/compose.py +208 -0
  746. package/scripts/codegen/generate_agents.py +202 -31
  747. package/scripts/codegen/generate_evals.py +2 -0
  748. package/scripts/codegen/generate_frontend_tools.py +35 -6
  749. package/scripts/codegen/generate_models.py +40 -15
  750. package/scripts/codegen/generate_sandbox_agents.py +76 -62
  751. package/scripts/codegen/generate_teams.py +178 -4
  752. package/scripts/codegen/generate_tools.py +6 -4
  753. package/scripts/gen_workers.py +278 -110
  754. package/scripts/generate-environments-types.py +404 -0
  755. package/lib/chat/prompt/InputFooter.d.ts +0 -58
  756. package/lib/chat/prompt/InputFooter.js +0 -194
  757. package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
  758. package/lib/chat/prompt/InputPromptFooter.js +0 -15
  759. package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
  760. package/lib/chat/prompt/InputPromptHeader.js +0 -15
  761. package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
  762. package/lib/hooks/useRuntimes.d.ts +0 -5
  763. package/lib/hooks/useRuntimes.js +0 -34
  764. package/lib/jupyter/kernelsHandler.d.ts +0 -8
  765. package/lib/jupyter/kernelsHandler.js +0 -39
  766. package/lib/models/Dataset.d.ts +0 -16
  767. package/lib/utils/Cells.d.ts +0 -2
  768. package/lib/utils/Cells.js +0 -28
@@ -24,17 +24,19 @@ import { AuthRequiredView, ErrorView } from './components';
24
24
  import { ThemedProvider } from './utils/themedProvider';
25
25
  import { uniqueAgentId } from './utils/agentId';
26
26
  import { useSimpleAuthStore } from '@datalayer/core/lib/views/otel';
27
- import { Chat } from '../chat';
27
+ import { LoopEmbed } from '../loop';
28
+ import { AgentTriggersPlugin } from '../loop/plugins/agent-triggers';
28
29
  import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
30
+ import { waitForAgent } from './utils/waitForAgent';
29
31
  import { useConnectedIdentities } from '../identity';
30
32
  import { ToolApprovalBanner, ToolApprovalDialog, } from '../chat/tools';
31
33
  import { useAgentEvents, useDeleteAgentEvent, useMarkEventRead, useMarkEventUnread, useAIAgentsWebSocket, } from '../hooks';
32
- import { VercelAIAdapter } from '../protocols';
34
+ import { AGUIAdapter, VercelAIAdapter } from '../protocols';
33
35
  import { createUserMessage } from '../types/messages';
36
+ const LOOP_PLUGINS_AGENTTRI = [AgentTriggersPlugin];
34
37
  const queryClient = new QueryClient();
35
38
  // ─── Constants ─────────────────────────────────────────────────────────────
36
39
  const AGENT_NAME = 'trigger-example-agent';
37
- const AGENTSPEC_ID = 'example-one-trigger';
38
40
  const APPROVAL_AGENT_NAME = 'trigger-approval-agent';
39
41
  const APPROVAL_AGENTSPEC_ID = 'example-tool-approvals';
40
42
  const ONCE_TRIGGER_PROMPT = "List the user's top 3 public and top 3 private GitHub repositories, ranked by recent activity, and provide a brief summary of each. Execute exactly two tool calls: run_skill_script(skill_name='github', script_name='list_repos', kwargs={visibility:'public', sort:'updated', limit:3, format:'json'}) and run_skill_script(skill_name='github', script_name='list_repos', kwargs={visibility:'private', sort:'updated', limit:3, format:'json'}). Do not call list_skills/load_skill/read_skill_resource. Do not retry. If a tool call fails, report failure_reason/error/stderr exactly as returned.";
@@ -60,6 +62,7 @@ const AgentTriggerInner = ({ onLogout, }) => {
60
62
  const [agentId, setAgentId] = useState(agentName);
61
63
  const agentBaseUrl = useExampleAgentRuntimesUrl();
62
64
  const chatAuthToken = token === null ? undefined : token;
65
+ void chatAuthToken;
63
66
  // Cron state
64
67
  const [cronExpr, setCronExpr] = useState(DEFAULT_CRON);
65
68
  const [editCron, setEditCron] = useState(DEFAULT_CRON);
@@ -110,6 +113,8 @@ const AgentTriggerInner = ({ onLogout, }) => {
110
113
  const [activeApproval, setActiveApproval] = useState(null);
111
114
  // Approval sidebar messages
112
115
  const [approvalSidebarMessages, setApprovalSidebarMessages] = useState([]);
116
+ // The approval agent's live stream, kept open while a tool waits: that
117
+ // agent speaks Vercel AI, whose adapter knows the deferred tool call.
113
118
  const approvalStreamRef = useRef(null);
114
119
  // Events hooks
115
120
  const eventsQuery = useAgentEvents(agentId);
@@ -221,56 +226,22 @@ const AgentTriggerInner = ({ onLogout, }) => {
221
226
  }), [token]);
222
227
  // ── Create agent on demand (no startup on initial page load) ────────────
223
228
  const createAgent = useCallback(async () => {
224
- setRuntimeStatus('launching');
225
- setIsReady(false);
226
229
  setHookError(null);
227
- try {
228
- const response = await authFetch(`${agentBaseUrl}/api/v1/agents`, {
229
- method: 'POST',
230
- body: JSON.stringify({
231
- name: agentName,
232
- description: 'Agent with cron, webhook, event, and manual triggers',
233
- agent_library: 'pydantic-ai',
234
- transport: 'vercel-ai',
235
- agent_spec_id: AGENTSPEC_ID,
236
- }),
237
- });
238
- let resolvedAgentId = agentName;
239
- if (response.ok) {
240
- const data = await response.json();
241
- resolvedAgentId = data?.id || agentName;
242
- }
243
- else {
244
- const contentType = response.headers.get('content-type') || '';
245
- let detail = '';
246
- if (contentType.includes('application/json')) {
247
- const data = await response.json().catch(() => null);
248
- detail =
249
- (typeof data?.detail === 'string' && data.detail) ||
250
- (typeof data?.message === 'string' && data.message) ||
251
- '';
252
- }
253
- else {
254
- detail = await response.text();
255
- }
256
- if (response.status === 409 || /already exists/i.test(detail || '')) {
257
- // Agent already running — reuse it
258
- }
259
- else {
260
- throw new Error(detail || `Failed to create agent: ${response.status}`);
261
- }
262
- }
263
- setAgentId(resolvedAgentId);
264
- setIsReady(true);
265
- setRuntimeStatus('ready');
266
- return true;
267
- }
268
- catch (error) {
269
- setHookError(error instanceof Error ? error.message : 'Agent failed to start');
230
+ // Mounting the Loop is what creates the agent: it builds it from the
231
+ // triggers capacity plugin's blueprint — so the page is "ready" at once,
232
+ // and only waits for the server to have the agent before it fires
233
+ // triggers at it.
234
+ setAgentId(agentName);
235
+ setIsReady(true);
236
+ setRuntimeStatus('ready');
237
+ const found = await waitForAgent(agentBaseUrl, agentName);
238
+ if (!found) {
239
+ setHookError(`The agent '${agentName}' did not appear on ${agentBaseUrl}.`);
270
240
  setRuntimeStatus('error');
271
241
  return false;
272
242
  }
273
- }, [agentBaseUrl, authFetch, agentName]);
243
+ return true;
244
+ }, [agentBaseUrl, agentName]);
274
245
  const ensureRuntimeReady = useCallback(async () => {
275
246
  if (isReady) {
276
247
  return true;
@@ -294,18 +265,30 @@ const AgentTriggerInner = ({ onLogout, }) => {
294
265
  });
295
266
  }, []);
296
267
  const streamRunMessages = useCallback(async (targetAgentId, prompt, setMessages, setError, options) => {
297
- const endpoint = `${agentBaseUrl}/api/v1/vercel-ai/${encodeURIComponent(targetAgentId)}`;
268
+ // Two agents, two doors: the trigger agent is the Loop's and speaks
269
+ // AG-UI; the approval agent the page makes itself speaks Vercel AI,
270
+ // whose adapter can carry a deferred tool call through an approval.
271
+ const viaVercel = targetAgentId === approvalAgentName;
272
+ const endpoint = viaVercel
273
+ ? `${agentBaseUrl}/api/v1/vercel-ai/${encodeURIComponent(targetAgentId)}`
274
+ : `${agentBaseUrl}/api/v1/ag-ui/${encodeURIComponent(targetAgentId)}/`;
298
275
  if (options?.keepAliveForApproval && approvalStreamRef.current) {
299
276
  approvalStreamRef.current.unsubscribe();
300
277
  approvalStreamRef.current.adapter.disconnect();
301
278
  approvalStreamRef.current = null;
302
279
  }
303
- const adapter = new VercelAIAdapter({
304
- protocol: 'vercel-ai',
305
- baseUrl: endpoint,
306
- agentId: targetAgentId,
307
- headers: token ? { Authorization: `Bearer ${token}` } : undefined,
308
- });
280
+ const adapter = viaVercel
281
+ ? new VercelAIAdapter({
282
+ protocol: 'vercel-ai',
283
+ baseUrl: endpoint,
284
+ agentId: targetAgentId,
285
+ headers: token ? { Authorization: `Bearer ${token}` } : undefined,
286
+ })
287
+ : new AGUIAdapter({
288
+ protocol: 'ag-ui',
289
+ baseUrl: endpoint,
290
+ agentId: targetAgentId,
291
+ });
309
292
  let latestAssistantText = null;
310
293
  let pendingApproval = false;
311
294
  const unsubscribe = adapter.subscribe(event => {
@@ -363,7 +346,8 @@ const AgentTriggerInner = ({ onLogout, }) => {
363
346
  throw error;
364
347
  }
365
348
  finally {
366
- if (options?.keepAliveForApproval) {
349
+ if (options?.keepAliveForApproval &&
350
+ adapter instanceof VercelAIAdapter) {
367
351
  approvalStreamRef.current = { adapter, unsubscribe };
368
352
  }
369
353
  else {
@@ -814,7 +798,7 @@ const AgentTriggerInner = ({ onLogout, }) => {
814
798
  if (runtimeStatus === 'error' || hookError) {
815
799
  return _jsx(ErrorView, { error: hookError, onLogout: onLogout });
816
800
  }
817
- const triggerRunCurl = `curl -N -X POST '${agentBaseUrl}/api/v1/vercel-ai/${agentId}' -H 'Content-Type: application/json' -H 'Accept: text/event-stream'${token ? " -H 'Authorization: Bearer <TOKEN>'" : ''} --data '{"messages":[{"role":"user","parts":[{"type":"text","text":"${ONCE_TRIGGER_PROMPT.replace(/"/g, '\\"')}"}]}],"trigger":"submit-message","sdkVersion":6}'`;
801
+ const triggerRunCurl = `curl -X POST '${agentBaseUrl}/api/v1/agents/${agentId}/trigger/run' -H 'Content-Type: application/json'${token ? " -H 'Authorization: Bearer <TOKEN>'" : ''} --data '{"source":"once"}'`;
818
802
  const isAgentLaunching = isLaunchingOnce || isLaunchingApproval;
819
803
  return (_jsx("fieldset", { disabled: isAgentLaunching, style: {
820
804
  border: 0,
@@ -855,7 +839,7 @@ const AgentTriggerInner = ({ onLogout, }) => {
855
839
  setActiveApproval(null);
856
840
  }
857
841
  }
858
- }, onClose: () => setActiveApproval(null) }), approvalError && (_jsx(Box, { sx: { px: 3, py: 1 }, children: _jsx(Text, { sx: { color: 'danger.fg', fontSize: 0 }, children: approvalError }) })), _jsxs(Box, { sx: { flex: 1, minHeight: 0, display: 'flex' }, children: [_jsx(Box, { sx: { flex: 1, minWidth: 0 }, children: isReady ? (_jsx(Chat, { protocol: "vercel-ai", baseUrl: agentBaseUrl, agentId: agentId, authToken: chatAuthToken, title: "Trigger Agent", brandIcon: _jsx(ZapIcon, { size: 16 }), description: `View-only trigger output. Cron: ${cronExpr} | Webhook: ${webhookEnabled ? 'on' : 'off'} | Event: ${eventSubscribed ? eventTopic : 'none'}`, showHeader: true, kernelIndicatorPlacement: "right", autoFocus: false, height: "100%", runtimeId: agentId, showInput: true, disableInputPrompt: true, showModelSelector: true, showToolsMenu: true, showSkillsMenu: true })) : (_jsx(Box, { sx: {
842
+ }, onClose: () => setActiveApproval(null) }), approvalError && (_jsx(Box, { sx: { px: 3, py: 1 }, children: _jsx(Text, { sx: { color: 'danger.fg', fontSize: 0 }, children: approvalError }) })), _jsxs(Box, { sx: { flex: 1, minHeight: 0, display: 'flex' }, children: [_jsx(Box, { sx: { flex: 1, minWidth: 0 }, children: isReady ? (_jsx(LoopEmbed, { serverUrl: agentBaseUrl, target: "local", showAgentVariants: true, agentId: agentId, editors: false, showHeader: true, plugins: LOOP_PLUGINS_AGENTTRI })) : (_jsx(Box, { sx: {
859
843
  height: '100%',
860
844
  display: 'flex',
861
845
  alignItems: 'center',
@@ -51,7 +51,7 @@ function useJupyterSandboxStatus(baseUrl, isConfigured, enableCodemode, useJupyt
51
51
  return undefined;
52
52
  }
53
53
  // Check if Jupyter variant is selected but not connected
54
- if (sandbox.variant === 'jupyter' && !sandbox.jupyter_connected) {
54
+ if (sandbox.variant === 'jupyter-server' && !sandbox.jupyter_connected) {
55
55
  return {
56
56
  message: sandbox.jupyter_error
57
57
  ? `Jupyter Sandbox Error: ${sandbox.jupyter_error}`
@@ -301,7 +301,7 @@ githubClientId, kaggleToken, }) => {
301
301
  const localAgentRuntimesBaseUrl = useExampleAgentRuntimesUrl();
302
302
  const cloudCatalogBaseUrl = useMemo(() => {
303
303
  const configured = normalizeHttpUrl(configuration?.runtimesUrl);
304
- const resolvedCloudBaseUrl = normalizeHttpUrl(resolveExampleAgentRuntimesUrl('cloud'));
304
+ const resolvedCloudBaseUrl = normalizeHttpUrl(resolveExampleAgentRuntimesUrl('datalayer'));
305
305
  if (configured && !isLocalhostUrl(configured)) {
306
306
  return configured;
307
307
  }
@@ -627,7 +627,7 @@ githubClientId, kaggleToken, }) => {
627
627
  codemodeConfig?.allow_direct_tool_calls));
628
628
  setEnableToolReranker(Boolean(codemodeConfig?.enableToolReranker ??
629
629
  codemodeConfig?.enable_tool_reranker));
630
- setUseJupyterSandbox(spec.sandboxVariant === 'jupyter');
630
+ setUseJupyterSandbox(spec.sandboxVariant === 'jupyter-server');
631
631
  }, []);
632
632
  const mergedSpecForLaunch = useMemo(() => {
633
633
  const normalizedProtocol = transport === 'vercel-ai-jupyter' ? 'vercel-ai' : transport;
@@ -831,7 +831,7 @@ githubClientId, kaggleToken, }) => {
831
831
  if (deleteResponse.ok) {
832
832
  return await tryCreate();
833
833
  }
834
- throw new Error(`Failed to delete existing agent '${agentName}' before retry: ${deleteResponse.status}`);
834
+ throw new Error(`Failed to delete existing agent '${agentName}' before retry: ${deleteResponse.status}`, { cause: error });
835
835
  }
836
836
  throw error;
837
837
  }
@@ -2,5 +2,5 @@ import { ServiceManager } from '@jupyterlab/services';
2
2
  type IJupyterCellExampleProps = {
3
3
  serviceManager?: ServiceManager.IManager;
4
4
  };
5
- export declare const CellExample: (props: IJupyterCellExampleProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const CellExample: (props: IJupyterCellExampleProps) => import("react").JSX.Element;
6
6
  export default CellExample;
@@ -1,12 +1,19 @@
1
1
  /**
2
2
  * AgentRuntimeChatExample
3
3
  *
4
- * Demonstrates the unified Chat component with automatic agent creation.
5
- * On mount, it creates an agent from the codeai/simple spec via the
6
- * REST API, then renders a full-page Chat interface.
4
+ * The unified Chat component, with whatever agent the selected runtime target
5
+ * can give it.
7
6
  *
8
- * This mirrors how agent.html works but inside the examples runner,
9
- * without requiring a CLI `--agent-id` flag at server startup.
7
+ * Against a runtime that means creating one from the `example-simple` spec
8
+ * over the REST API and talking to its endpoint. In the browser it means the
9
+ * in-page harness: the spec asks for `pydantic-ai`, but a page has no server
10
+ * to turn that loop, so the location decides and the Vercel AI SDK runs it
11
+ * here instead.
12
+ *
13
+ * This example is the plainest case of that split — no sandbox, no tools, no
14
+ * surface, just a conversation — which is why the choice lives in
15
+ * `useExampleAgentProtocol` rather than in the notebook-shaped hook it started
16
+ * out in.
10
17
  *
11
18
  * Backend: POST /api/v1/agents → /api/v1/ag-ui/{agentId}/
12
19
  */
@@ -6,12 +6,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  /**
7
7
  * AgentRuntimeChatExample
8
8
  *
9
- * Demonstrates the unified Chat component with automatic agent creation.
10
- * On mount, it creates an agent from the codeai/simple spec via the
11
- * REST API, then renders a full-page Chat interface.
9
+ * The unified Chat component, with whatever agent the selected runtime target
10
+ * can give it.
12
11
  *
13
- * This mirrors how agent.html works but inside the examples runner,
14
- * without requiring a CLI `--agent-id` flag at server startup.
12
+ * Against a runtime that means creating one from the `example-simple` spec
13
+ * over the REST API and talking to its endpoint. In the browser it means the
14
+ * in-page harness: the spec asks for `pydantic-ai`, but a page has no server
15
+ * to turn that loop, so the location decides and the Vercel AI SDK runs it
16
+ * here instead.
17
+ *
18
+ * This example is the plainest case of that split — no sandbox, no tools, no
19
+ * surface, just a conversation — which is why the choice lives in
20
+ * `useExampleAgentProtocol` rather than in the notebook-shaped hook it started
21
+ * out in.
15
22
  *
16
23
  * Backend: POST /api/v1/agents → /api/v1/ag-ui/{agentId}/
17
24
  */
@@ -20,17 +27,19 @@ import { Text, Spinner } from '@primer/react';
20
27
  import { Box, setupPrimerPortals } from '@datalayer/primer-addons';
21
28
  import { ThemedProvider } from './utils/themedProvider';
22
29
  import { uniqueAgentId } from './utils/agentId';
23
- import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
24
30
  import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
31
+ import { BROWSER_SIGN_IN_REASON, useExampleAgentProtocol, } from './hooks/useExampleAgentProtocol';
32
+ import { runsInBrowser } from '../runtimes/variants';
33
+ import { EXAMPLE_SIMPLE_AGENTSPEC_0_0_1 } from '../specs/agents/agents';
25
34
  import { ErrorView } from './components';
26
35
  import { Chat } from '../chat';
27
36
  setupPrimerPortals();
28
37
  const AGENTSPEC_ID = 'example-simple';
29
38
  const AGENT_NAME = 'simple';
39
+ const SPEC = EXAMPLE_SIMPLE_AGENTSPEC_0_0_1;
30
40
  const AgentRuntimeChatExample = () => {
31
- const baseUrl = useExampleAgentRuntimesUrl();
32
41
  const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
33
- const { agentId, error, status, isReady } = useExampleAgentRuntime({
42
+ const { agentId, baseUrl, error, status, isReady, variant } = useExampleAgentRuntime({
34
43
  exampleId: 'ChatExample',
35
44
  agentName,
36
45
  specId: AGENTSPEC_ID,
@@ -39,7 +48,16 @@ const AgentRuntimeChatExample = () => {
39
48
  agentSpecId: AGENTSPEC_ID,
40
49
  },
41
50
  });
42
- const isCreating = !isReady && status !== 'error';
51
+ const inBrowser = runsInBrowser(variant);
52
+ const { protocol, needsSignIn } = useExampleAgentProtocol({
53
+ inBrowser,
54
+ agentName,
55
+ systemPrompt: SPEC.systemPrompt,
56
+ model: SPEC.model,
57
+ remoteBaseUrl: baseUrl,
58
+ });
59
+ // There is nothing to create in the browser, so nothing to wait for either.
60
+ const isCreating = !inBrowser && !isReady && status !== 'error';
43
61
  // Loading state while agent is being created
44
62
  if (isCreating) {
45
63
  return (_jsx(ThemedProvider, { children: _jsxs(Box, { sx: {
@@ -52,12 +70,19 @@ const AgentRuntimeChatExample = () => {
52
70
  bg: 'canvas.default',
53
71
  }, children: [_jsx(Spinner, { size: "large" }), _jsxs(Text, { sx: { color: 'fg.muted' }, children: ["Creating agent from ", AGENTSPEC_ID, "..."] })] }) }));
54
72
  }
55
- // Error state
56
- if (error || !agentId) {
57
- return (_jsx(ThemedProvider, { children: _jsx(ErrorView, { error: "Failed to start agent", detail: error || 'No agent ID returned' }) }));
73
+ // Error state. In the browser there is no agent id to have — the loop is
74
+ // here — so the only thing that can be missing is the sign-in the inference
75
+ // service requires.
76
+ const failure = inBrowser
77
+ ? needsSignIn
78
+ ? BROWSER_SIGN_IN_REASON
79
+ : error
80
+ : error || (!agentId ? 'No agent ID returned' : undefined);
81
+ if (failure) {
82
+ return (_jsx(ThemedProvider, { children: _jsx(ErrorView, { error: "Failed to start agent", detail: failure }) }));
58
83
  }
59
84
  // Agent is ready — render the Chat component
60
- return (_jsx(Chat, { protocol: "ag-ui", baseUrl: baseUrl, agentId: agentId, title: "Simple Agent", placeholder: "Send a message...", description: "Chat with a simple AI assistant", showHeader: true, kernelIndicatorPlacement: "right", showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, autoFocus: true, height: "100vh", runtimeId: agentId, historyEndpoint: `${baseUrl}/api/v1/history`, suggestions: [
85
+ return (_jsx(Chat, { protocol: inBrowser ? protocol : 'ag-ui', baseUrl: baseUrl, agentId: agentName, title: "Simple Agent", placeholder: "Send a message...", description: "Chat with a simple AI assistant", showHeader: true, kernelIndicatorPlacement: "right", showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, autoFocus: true, height: "100vh", runtimeId: agentName, historyEndpoint: inBrowser ? undefined : `${baseUrl}/api/v1/history`, suggestions: [
61
86
  {
62
87
  title: 'Hello',
63
88
  message: 'Hello, what can you do?',
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * @module examples/CopilotKitLexicalExample
13
13
  */
14
+ import type { JSX } from 'react';
14
15
  import '@datalayer/jupyter-react/lib/css/PrismCss';
15
16
  import type { ServiceManager } from '@jupyterlab/services';
16
17
  import '@datalayer/jupyter-lexical/style/index.css';
@@ -1,47 +1,20 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /*
3
- * Copyright (c) 2025-2026 Datalayer, Inc.
4
- * Distributed under the terms of the Modified BSD License.
5
- */
6
- /**
7
- * CopilotKit Lexical Example with CopilotKit Integration.
8
- *
9
- * To run this example, create a .env file in the core directory with:
10
- * - VITE_DATALAYER_API_KEY: Get from https://datalayer.ai/settings/iam/tokens
11
- * - VITE_COPILOT_KIT_API_KEY: Get from https://cloud.copilotkit.ai/dashboard
12
- *
13
- * You also will need to connect copilotkit to some sort of LLM Add LLM Provider API Key.
14
- *
15
- * https://docs.copilotkit.ai/reference/hooks/useFrontendTool
16
- *
17
- * @module examples/CopilotKitLexicalExample
18
- */
19
2
  import '@datalayer/jupyter-react/lib/css/PrismCss';
20
3
  import React, { useCallback, useEffect, useRef, useState } from 'react';
21
4
  import { $getRoot, $createParagraphNode } from 'lexical';
22
- import { LexicalComposer } from '@lexical/react/LexicalComposer';
23
- import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
5
+ import { LexicalExtensionComposer } from '@lexical/react/LexicalExtensionComposer';
24
6
  import { ContentEditable } from '@lexical/react/LexicalContentEditable';
25
- import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
26
7
  import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
27
8
  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
9
  import { CopilotKit, useFrontendTool } from '@copilotkit/react-core';
37
10
  import { CopilotSidebar } from '@copilotkit/react-ui';
38
11
  import { Box } from '@datalayer/primer-addons';
39
12
  import { useJupyter } from '@datalayer/jupyter-react';
40
13
  import { ThemedJupyterProvider } from './utils/themedProvider';
41
- import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, ExcalidrawPlugin, CollapsiblePlugin, AutoLinkPlugin, AutoEmbedPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, TableCellResizerPlugin, TablePlugin, } from '@datalayer/jupyter-lexical';
14
+ import { ComponentPickerMenuPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, TableCellResizerPlugin, } from '@datalayer/jupyter-lexical';
42
15
  import { useLexicalToolActions } from '../tools/adapters/copilotkit/lexicalHooks';
43
16
  import { ActionRegistrar } from '../tools/adapters/copilotkit/CopilotKitToolAdapter';
44
- import { editorConfig } from './lexical/editorConfig';
17
+ import { editorExtension } from './lexical/editorConfig';
45
18
  import '@datalayer/jupyter-lexical/style/index.css';
46
19
  import '@copilotkit/react-ui/styles.css';
47
20
  import './lexical/lexical-theme.css';
@@ -86,16 +59,6 @@ function LoadContentPlugin({ content }) {
86
59
  }, [content, editor]);
87
60
  return null;
88
61
  }
89
- /**
90
- * Lexical plugin for Simple code syntax highlighting.
91
- */
92
- function CodeHighlightPlugin() {
93
- const [editor] = useLexicalComposerContext();
94
- useEffect(() => {
95
- return registerCodeHighlighting(editor);
96
- }, [editor]);
97
- return null;
98
- }
99
62
  /**
100
63
  * Wrapper component for kernel-dependent Simple plugins.
101
64
  */
@@ -137,7 +100,7 @@ const LexicalUI = React.memo(function LexicalUI({ content = INITIAL_CONTENT, ser
137
100
  padding: 3,
138
101
  backgroundColor: 'canvas.default',
139
102
  minHeight: '600px',
140
- }, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsx(LexicalComposer, { initialConfig: editorConfig, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(RichTextPlugin, { contentEditable: _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), ErrorBoundary: LexicalErrorBoundary }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(TablePlugin, {}), _jsx(TableCellResizerPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), _jsx(LoadContentPlugin, { content: content }), _jsx(CodeHighlightPlugin, {}), _jsx(ImagesPlugin, { captionsEnabled: false }), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(ExcalidrawPlugin, {}), _jsx(CollapsiblePlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(ThemedJupyterProvider, { children: _jsx(SimpleKernelPluginsInner, {}) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] }))] }) }) }) })] }) }));
103
+ }, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsx(LexicalExtensionComposer, { extension: editorExtension, contentEditable: null, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(TableCellResizerPlugin, {}), _jsx(LoadContentPlugin, { content: content }), _jsx(ThemedJupyterProvider, { children: _jsx(SimpleKernelPluginsInner, {}) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] }))] }) }) }) })] }) }));
141
104
  });
142
105
  function LexicalWithTools({ content, serviceManager, }) {
143
106
  // Get all actions for this lexical document
@@ -1,3 +1,13 @@
1
+ /**
2
+ * CopilotKit Notebook Example with CopilotKit Integration
3
+ *
4
+ * To run this example, create a .env file in the core directory with:
5
+ * - VITE_DATALAYER_API_KEY: Get from https://datalayer.ai/settings/iam/tokens
6
+ * - VITE_COPILOT_KIT_API_KEY: Get from https://cloud.copilotkit.ai/dashboard
7
+ *
8
+ * You also will need to connect copilotkit to some sort of LLM Add LLM Provider API Key
9
+ */
10
+ import type { JSX } from 'react';
1
11
  import { ServiceManager } from '@jupyterlab/services';
2
12
  import '@copilotkit/react-ui/styles.css';
3
13
  /**
@@ -1,17 +1,4 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /*
3
- * Copyright (c) 2025-2026 Datalayer, Inc.
4
- * Distributed under the terms of the Modified BSD License.
5
- */
6
- /**
7
- * CopilotKit Notebook Example with CopilotKit Integration
8
- *
9
- * To run this example, create a .env file in the core directory with:
10
- * - VITE_DATALAYER_API_KEY: Get from https://datalayer.ai/settings/iam/tokens
11
- * - VITE_COPILOT_KIT_API_KEY: Get from https://cloud.copilotkit.ai/dashboard
12
- *
13
- * You also will need to connect copilotkit to some sort of LLM Add LLM Provider API Key
14
- */
15
2
  import React from 'react';
16
3
  import { Box } from '@datalayer/primer-addons';
17
4
  import { Notebook } from '@datalayer/jupyter-react';
@@ -25,6 +12,7 @@ import { useNotebookToolActions } from '../tools/adapters/copilotkit/notebookHoo
25
12
  import { ActionRegistrar } from '../tools/adapters/copilotkit/CopilotKitToolAdapter';
26
13
  // Import Matplotlib notebook
27
14
  import MatplotlibNotebook from './utils/notebooks/Matplotlib.ipynb.json';
15
+ import { ExampleNotebookToolbar } from './utils/notebookToolbarItems';
28
16
  // Fixed notebook ID
29
17
  const NOTEBOOK_ID = 'agui-notebook-example';
30
18
  // Use the imported Matplotlib notebook
@@ -50,7 +38,7 @@ const NotebookUI = React.memo(function NotebookUI({ serviceManager, }) {
50
38
  borderRadius: 8,
51
39
  padding: 24,
52
40
  backgroundColor: 'var(--bgColor-default)',
53
- }, children: serviceManager ? (_jsx(ThemedJupyterProvider, { children: _jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, serviceManager: serviceManager, height: "600px", cellSidebarMargin: 120, startDefaultKernel: true }) })) : (_jsx(Box, { style: { padding: 24 }, children: _jsx("p", { children: "Loading service manager..." }) })) })] }) }));
41
+ }, children: serviceManager ? (_jsx(ThemedJupyterProvider, { children: _jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, Toolbar: ExampleNotebookToolbar, serviceManager: serviceManager, height: "600px", cellSidebarMargin: 120, startDefaultKernel: true }) })) : (_jsx(Box, { style: { padding: 24 }, children: _jsx("p", { children: "Loading service manager..." }) })) })] }) }));
54
42
  });
55
43
  /**
56
44
  * Component to register actions with CopilotKit.
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A deck beside the chat, written by an agent.
3
+ *
4
+ * What this shows is a *plugin* joining a Loop: `@datalayer/decks` is a
5
+ * Reactor plugin with a Python half of its own, and here it is mounted into
6
+ * an agent workspace — its list in the sidebar, its view as an editor beside
7
+ * the conversation, its commands in the palette and in a menu on the
8
+ * composer, and its tools in the agent's hands. `worker-decks` writes a deck
9
+ * as data, saves it, opens it, and steps through it while you talk.
10
+ *
11
+ * Everything runs in the browser: the agent on the Vercel AI harness, the
12
+ * decks in the page's catalog. Point the plugin at a `datalayer-decks`
13
+ * server (`backendUrl`) and the same decks are saved there.
14
+ *
15
+ * The sidebar is the plugins panel — switch the decks plugin off and the
16
+ * Deck view, the menu and the tools all leave together — with the plugin
17
+ * graph a click away, as in the reactor's music example.
18
+ */
19
+ import React from 'react';
20
+ declare const DecksAgent: React.FC;
21
+ export default DecksAgent;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '@datalayer/primer-addons';
3
+ import { ThemedProvider } from './utils/themedProvider';
4
+ import { registerDecks } from '@datalayer/decks';
5
+ import { exampleDecks } from '@datalayer/decks/examples';
6
+ import { LoopEmbed } from '../loop';
7
+ import { DeckViewPlugin, LoopDecksPlugin } from '../loop/plugins/decks';
8
+ // The package's example decks, so the catalog has something to open and the
9
+ // agent's suggestions point at decks that exist. Once, at module load.
10
+ registerDecks(exampleDecks);
11
+ // Module-level, so the embed builds its reactor once rather than on every
12
+ // render of this component.
13
+ const DECK_PLUGINS = [LoopDecksPlugin, DeckViewPlugin];
14
+ const DecksAgent = () => (_jsx(ThemedProvider, { children: _jsx(Box, { sx: { height: '100vh', minHeight: 0 }, children: _jsx(LoopEmbed, { target: "browser", agentId: "worker-decks",
15
+ /* The deck open beside the chat from the first frame. */
16
+ defaultEditor: "deck",
17
+ /* The header carries the editor choice — deck, notebook, document, or
18
+ the conversation alone. */
19
+ showHeader: true, editorSelector: true, commandPalette: true,
20
+ /* The plugins panel in the sidebar, and the plugin graph behind its
21
+ button. */
22
+ pluginsPanel: true, graph: true, agentSummary: false, plugins: DECK_PLUGINS }) }) }));
23
+ export default DecksAgent;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * A document as a page, with an agent writing in it.
3
+ *
4
+ * The same page layout as `NotebookPageAgent`, opened on the document
5
+ * editor instead of the notebook: a sheet at reading width, the composer
6
+ * docked above it at that same width, the conversation in a side panel. Ask for a
7
+ * paragraph, a heading, a code block that runs — the agent writes it into
8
+ * the document on the page, with the document's own tools, and the result
9
+ * is a document a reader can keep editing by hand.
10
+ *
11
+ * Reactor plugins only: `pageLayout` mounts the layout plugin, the Loop
12
+ * Shell's agent drives the document tools, and the loop turns in the
13
+ * browser.
14
+ *
15
+ * @module examples/DocumentPageAgent
16
+ */
17
+ import React from 'react';
18
+ declare const DocumentPageAgent: React.FC;
19
+ export default DocumentPageAgent;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '@datalayer/primer-addons';
3
+ import { ThemedProvider } from './utils/themedProvider';
4
+ import { LoopEmbed } from '../loop';
5
+ const DocumentPageAgent = () => (_jsx(ThemedProvider, { children: _jsx(Box, { sx: { height: '100vh', minHeight: 0 }, children: _jsx(LoopEmbed, { target: "browser",
6
+ /* The Loop Shell's agent: it drives the document tools — insert a
7
+ block, run a code block, read the document — as readily as the
8
+ notebook's, and its openers work on either. */
9
+ agentId: "loop-shell", localAgentSpec: "loop-shell", teamId: "",
10
+ /* The document, open on the page. */
11
+ defaultEditor: "document", pageLayout: true,
12
+ /* The composer as a draggable card over the top of the page rather
13
+ than the docked band. */
14
+ pageLayoutPrompt: "floating", showHeader: true, editorSelector: true, commandPalette: true, agentSummary: false }) }) }));
15
+ export default DocumentPageAgent;
@@ -23,9 +23,9 @@ import './lexical/lexical-theme.css';
23
23
  interface ChatLexicalExampleProps {
24
24
  serviceManager?: ServiceManager.IManager;
25
25
  }
26
- export declare function ChatLexicalExampleInner({ serviceManager, }: ChatLexicalExampleProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function ChatLexicalExampleInner({ serviceManager, }: ChatLexicalExampleProps): import("react").JSX.Element;
27
27
  /**
28
28
  * Main example component with Simple wrapper
29
29
  */
30
- export declare function AgentRuntimePopupLexicalExample(): import("react/jsx-runtime").JSX.Element;
30
+ export declare function AgentRuntimePopupLexicalExample(): import("react").JSX.Element;
31
31
  export default AgentRuntimePopupLexicalExample;