@datalayer/agent-runtimes 1.0.28 → 1.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) hide show
  1. package/lib/AgentDocument.js +5 -22
  2. package/lib/AgentNode.d.ts +1 -1
  3. package/lib/AgentNode.js +193 -23
  4. package/lib/AgentNotebook.js +1 -1
  5. package/lib/App.d.ts +1 -1
  6. package/lib/AppExamples2.d.ts +1 -1
  7. package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
  8. package/lib/agent-node/AgentNodeGallery.js +19 -15
  9. package/lib/agent-node/themeStore.js +7 -6
  10. package/lib/agents/AgentDetails.d.ts +8 -2
  11. package/lib/agents/AgentDetails.js +41 -11
  12. package/lib/agents/AgentRuntimeChat.d.ts +3 -3
  13. package/lib/agents/AgentRuntimeChat.js +15 -15
  14. package/lib/api/agents.d.ts +10 -10
  15. package/lib/api/agents.js +15 -15
  16. package/lib/api/checkpoints.d.ts +40 -0
  17. package/lib/api/checkpoints.js +75 -0
  18. package/lib/api/index.d.ts +1 -0
  19. package/lib/api/index.js +18 -5
  20. package/lib/api/notifications.d.ts +21 -6
  21. package/lib/api/notifications.js +32 -14
  22. package/lib/api/runtimes/environments.d.ts +385 -4
  23. package/lib/api/runtimes/environments.js +610 -9
  24. package/lib/api/runtimes/runtimes.d.ts +19 -19
  25. package/lib/api/runtimes/runtimes.js +47 -46
  26. package/lib/api/spacer/notebooks.js +1 -1
  27. package/lib/chat/Chat.d.ts +16 -4
  28. package/lib/chat/Chat.js +18 -5
  29. package/lib/chat/ChatFloating.d.ts +13 -2
  30. package/lib/chat/ChatFloating.js +192 -117
  31. package/lib/chat/ChatInline.d.ts +15 -0
  32. package/lib/chat/ChatInline.js +0 -18
  33. package/lib/chat/ChatPopupStandalone.d.ts +1 -1
  34. package/lib/chat/ChatSidebar.d.ts +14 -2
  35. package/lib/chat/ChatSidebar.js +1 -1
  36. package/lib/chat/ChatStandalone.d.ts +1 -1
  37. package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
  38. package/lib/chat/EphemeralSurfaceControl.js +55 -0
  39. package/lib/chat/base/ChatAvailability.d.ts +34 -0
  40. package/lib/chat/base/ChatAvailability.js +18 -0
  41. package/lib/chat/base/ChatBase.d.ts +2 -1
  42. package/lib/chat/base/ChatBase.js +657 -28
  43. package/lib/chat/display/EmptyState.d.ts +15 -1
  44. package/lib/chat/display/EmptyState.js +78 -12
  45. package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
  46. package/lib/chat/display/PoweredByTag.d.ts +1 -1
  47. package/lib/chat/display/groupSuggestions.d.ts +21 -0
  48. package/lib/chat/display/groupSuggestions.js +18 -0
  49. package/lib/chat/document/EphemeralDocument.d.ts +70 -6
  50. package/lib/chat/document/EphemeralDocument.js +154 -52
  51. package/lib/chat/header/ChatHeader.d.ts +1 -1
  52. package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
  53. package/lib/chat/header/ChatHeaderBase.js +67 -96
  54. package/lib/chat/index.d.ts +4 -1
  55. package/lib/chat/index.js +8 -1
  56. package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
  57. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
  58. package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
  59. package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
  60. package/lib/chat/messages/ChatMessageList.d.ts +22 -1
  61. package/lib/chat/messages/ChatMessageList.js +370 -166
  62. package/lib/chat/messages/ChatMessages.d.ts +1 -1
  63. package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
  64. package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
  65. package/lib/chat/messages/TurnFooter.d.ts +42 -0
  66. package/lib/chat/messages/TurnFooter.js +75 -0
  67. package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
  68. package/lib/chat/messages/assistantMarkdown.js +56 -0
  69. package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
  70. package/lib/chat/notebook/EphemeralNotebook.js +194 -61
  71. package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
  72. package/lib/chat/parts/MessagePart.d.ts +1 -1
  73. package/lib/chat/parts/ReasoningPart.d.ts +8 -1
  74. package/lib/chat/parts/TextPart.d.ts +1 -1
  75. package/lib/chat/parts/ToolPart.d.ts +8 -1
  76. package/lib/chat/prompt/FloatingCard.d.ts +26 -0
  77. package/lib/chat/prompt/FloatingCard.js +80 -0
  78. package/lib/chat/prompt/InputPrompt.d.ts +206 -53
  79. package/lib/chat/prompt/InputPrompt.js +161 -80
  80. package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
  81. package/lib/chat/prompt/InputPromptBase.js +225 -0
  82. package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
  83. package/lib/chat/prompt/InputPromptLexical.js +227 -30
  84. package/lib/chat/prompt/InputPromptText.d.ts +10 -2
  85. package/lib/chat/prompt/InputPromptText.js +35 -3
  86. package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
  87. package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
  88. package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
  89. package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
  90. package/lib/chat/prompt/footer/index.d.ts +7 -0
  91. package/lib/chat/prompt/footer/index.js +11 -0
  92. package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
  93. package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
  94. package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
  95. package/lib/chat/prompt/header/InPromptHeader.js +14 -0
  96. package/lib/chat/prompt/header/index.d.ts +7 -0
  97. package/lib/chat/prompt/header/index.js +11 -0
  98. package/lib/chat/prompt/index.d.ts +8 -4
  99. package/lib/chat/prompt/index.js +15 -3
  100. package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
  101. package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
  102. package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
  103. package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
  104. package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
  105. package/lib/chat/prompt/menus/ModelSelector.js +27 -0
  106. package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
  107. package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
  108. package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
  109. package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
  110. package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
  111. package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
  112. package/lib/chat/prompt/menus/index.d.ts +15 -0
  113. package/lib/chat/prompt/menus/index.js +19 -0
  114. package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
  115. package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
  116. package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
  117. package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
  118. package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
  119. package/lib/chat/prompt/plugins/MentionChip.js +24 -0
  120. package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
  121. package/lib/chat/prompt/plugins/MentionNode.js +77 -0
  122. package/lib/chat/prompt/promptHistory.d.ts +52 -0
  123. package/lib/chat/prompt/promptHistory.js +123 -0
  124. package/lib/chat/prompt/stack.d.ts +81 -0
  125. package/lib/chat/prompt/stack.js +41 -0
  126. package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
  127. package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
  128. package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
  129. package/lib/chat/tools/A2AAgentDialog.js +265 -0
  130. package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
  131. package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
  132. package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
  133. package/lib/chat/tools/index.d.ts +1 -0
  134. package/lib/chat/tools/index.js +1 -0
  135. package/lib/chat/usage/ContextPie.d.ts +17 -0
  136. package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
  137. package/lib/chat/useViewportDrag.d.ts +11 -0
  138. package/lib/chat/useViewportDrag.js +61 -0
  139. package/lib/chat/viewModes.d.ts +51 -0
  140. package/lib/chat/viewModes.js +57 -0
  141. package/lib/client/AgentRuntimesClient.d.ts +10 -9
  142. package/lib/client/AgentRuntimesClient.js +1 -1
  143. package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
  144. package/lib/client/AgentsMixin.d.ts +12 -12
  145. package/lib/client/AgentsMixin.js +31 -31
  146. package/lib/client/IAgentRuntimesClient.d.ts +10 -10
  147. package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
  148. package/lib/client/SdkAgentRuntimesClient.js +10 -10
  149. package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
  150. package/lib/client/mixins/RuntimesMixin.js +54 -21
  151. package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
  152. package/lib/components/agents/AgentSummary.d.ts +13 -0
  153. package/lib/components/agents/AgentSummary.js +21 -4
  154. package/lib/components/cards/NotificationEventCard.d.ts +1 -1
  155. package/lib/components/cards/OutputCard.d.ts +1 -1
  156. package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
  157. package/lib/components/cards/ToolApprovalCard.js +1 -0
  158. package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
  159. package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
  160. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
  161. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
  162. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +76 -0
  163. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +81 -0
  164. package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +12 -0
  165. package/lib/components/code-sandboxes/CodeSandboxLauncher.js +132 -25
  166. package/lib/components/code-sandboxes/CodeSandboxNames.js +75 -29
  167. package/lib/components/code-sandboxes/CodeSandboxPicker.d.ts +14 -1
  168. package/lib/components/code-sandboxes/CodeSandboxPicker.js +226 -45
  169. package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
  170. package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
  171. package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
  172. package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
  173. package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
  174. package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +16 -1
  175. package/lib/components/code-sandboxes/CodeSandboxUtils.js +69 -12
  176. package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
  177. package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
  178. package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
  179. package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
  180. package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
  181. package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
  182. package/lib/components/code-sandboxes/codeSandboxProviders.d.ts +29 -0
  183. package/lib/components/code-sandboxes/codeSandboxProviders.js +90 -0
  184. package/lib/components/code-sandboxes/index.d.ts +3 -0
  185. package/lib/components/code-sandboxes/index.js +3 -0
  186. package/lib/components/context/SpaceSelect.d.ts +1 -1
  187. package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
  188. package/lib/components/icons/ArtifactIcon.d.ts +1 -0
  189. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  190. package/lib/components/progress/CreditsIndicator.d.ts +1 -0
  191. package/lib/components/progress/CreditsIndicator.js +0 -4
  192. package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
  193. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
  194. package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
  195. package/lib/components/snippets/SnippetDialog.d.ts +1 -0
  196. package/lib/components/snippets/SnippetDialog.js +0 -4
  197. package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
  198. package/lib/components/specs/SpecPayloadPreview.js +102 -0
  199. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  200. package/lib/context/ContextDistribution.d.ts +1 -1
  201. package/lib/context/ContextInspector.d.ts +2 -1
  202. package/lib/context/ContextPanel.d.ts +1 -1
  203. package/lib/context/ContextUsage.d.ts +1 -1
  204. package/lib/context/CostTracker.d.ts +1 -1
  205. package/lib/context/CostUsageChart.d.ts +1 -1
  206. package/lib/context/CostUsageChart.js +4 -4
  207. package/lib/context/MessageHistory.d.ts +3 -2
  208. package/lib/context/TokenUsageChart.d.ts +1 -1
  209. package/lib/context/TokenUsageChart.js +4 -4
  210. package/lib/examples/A2UiAgentExample.js +15 -6
  211. package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
  212. package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
  213. package/lib/examples/A2UiContactCardExample.d.ts +10 -0
  214. package/lib/examples/A2UiContactCardExample.js +23 -170
  215. package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
  216. package/lib/examples/A2UiJupyterOutputExample.js +792 -0
  217. package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
  218. package/lib/examples/A2UiRestaurantExample.js +24 -179
  219. package/lib/examples/A2UiViewerExample.d.ts +10 -0
  220. package/lib/examples/A2UiViewerExample.js +24 -378
  221. package/lib/examples/AgUiAgenticExample.js +2 -4
  222. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
  223. package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
  224. package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
  225. package/lib/examples/AgUiSharedStateExample.js +2 -4
  226. package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
  227. package/lib/examples/AgentA2AExample.d.ts +17 -0
  228. package/lib/examples/AgentA2AExample.js +56 -0
  229. package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
  230. package/lib/examples/AgentCheckpointsExample.js +72 -54
  231. package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
  232. package/lib/examples/AgentCodeSandboxExample.js +93 -303
  233. package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
  234. package/lib/examples/AgentCodeSandboxesExample.js +56 -162
  235. package/lib/examples/AgentCodemodeExample.d.ts +7 -2
  236. package/lib/examples/AgentCodemodeExample.js +60 -125
  237. package/lib/examples/AgentCompactionExample.js +19 -135
  238. package/lib/examples/AgentEvalsExample.js +34 -66
  239. package/lib/examples/AgentGuardrailsExample.js +64 -112
  240. package/lib/examples/AgentHooksExample.d.ts +11 -0
  241. package/lib/examples/AgentHooksExample.js +30 -67
  242. package/lib/examples/AgentInferenceProviderExample.js +8 -32
  243. package/lib/examples/AgentLoopExample.d.ts +4 -2
  244. package/lib/examples/AgentLoopExample.js +45 -93
  245. package/lib/examples/AgentMCPExample.js +30 -79
  246. package/lib/examples/AgentMemoryExample.js +21 -64
  247. package/lib/examples/AgentMonitoringExample.js +33 -94
  248. package/lib/examples/AgentNotificationsExample.js +56 -95
  249. package/lib/examples/AgentOtelExample.js +35 -88
  250. package/lib/examples/AgentOutputsExample.d.ts +2 -1
  251. package/lib/examples/AgentOutputsExample.js +16 -137
  252. package/lib/examples/AgentParametersExample.js +7 -17
  253. package/lib/examples/AgentSkillsExample.js +40 -154
  254. package/lib/examples/AgentSubagentsExample.d.ts +7 -6
  255. package/lib/examples/AgentSubagentsExample.js +80 -191
  256. package/lib/examples/AgentToolApprovalsExample.js +35 -91
  257. package/lib/examples/AgentTriggersExample.js +43 -59
  258. package/lib/examples/AgentspecsExample.js +7 -7
  259. package/lib/examples/CellExample.d.ts +1 -1
  260. package/lib/examples/ChatExample.d.ts +12 -5
  261. package/lib/examples/ChatExample.js +38 -13
  262. package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
  263. package/lib/examples/CopilotKitLexicalExample.js +4 -41
  264. package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
  265. package/lib/examples/CopilotKitNotebookExample.js +2 -14
  266. package/lib/examples/DecksAgent.d.ts +21 -0
  267. package/lib/examples/DecksAgent.js +23 -0
  268. package/lib/examples/DocumentPageAgent.d.ts +19 -0
  269. package/lib/examples/DocumentPageAgent.js +15 -0
  270. package/lib/examples/Lexical2Example.d.ts +2 -2
  271. package/lib/examples/Lexical2Example.js +17 -38
  272. package/lib/examples/LexicalAgentExample.d.ts +2 -1
  273. package/lib/examples/LexicalAgentExample.js +29 -102
  274. package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
  275. package/lib/examples/LexicalAgentSidebarExample.js +99 -131
  276. package/lib/examples/LoopShellExample.d.ts +38 -0
  277. package/lib/examples/LoopShellExample.js +68 -0
  278. package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
  279. package/lib/examples/LoopWorkspaceEmbed.js +73 -0
  280. package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
  281. package/lib/examples/LoopWorkspaceExample.js +151 -0
  282. package/lib/examples/NotebookAgentExample.d.ts +13 -0
  283. package/lib/examples/NotebookAgentExample.js +36 -86
  284. package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
  285. package/lib/examples/NotebookAgentSidebarExample.js +39 -83
  286. package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
  287. package/lib/examples/NotebookCollaborationExample.js +108 -20
  288. package/lib/examples/NotebookExample.d.ts +1 -1
  289. package/lib/examples/NotebookExample.js +20 -10
  290. package/lib/examples/NotebookPageAgent.d.ts +23 -0
  291. package/lib/examples/NotebookPageAgent.js +17 -0
  292. package/lib/examples/components/ExampleWrapper.d.ts +5 -0
  293. package/lib/examples/components/ExampleWrapper.js +36 -28
  294. package/lib/examples/components/LexicalEditor.d.ts +1 -1
  295. package/lib/examples/components/LexicalEditor.js +4 -24
  296. package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
  297. package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
  298. package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
  299. package/lib/examples/example-selector.js +26 -6
  300. package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
  301. package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
  302. package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
  303. package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
  304. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
  305. package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
  306. package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
  307. package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
  308. package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
  309. package/lib/examples/index.d.ts +4 -0
  310. package/lib/examples/index.js +6 -0
  311. package/lib/examples/lexical/editorConfig.d.ts +2 -75
  312. package/lib/examples/lexical/editorConfig.js +26 -48
  313. package/lib/examples/lexical/lexical-theme.css +65 -47
  314. package/lib/examples/main.js +450 -322
  315. package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
  316. package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
  317. package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
  318. package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
  319. package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
  320. package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
  321. package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
  322. package/lib/examples/scenes/A2UiViewerScene.js +395 -0
  323. package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
  324. package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
  325. package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
  326. package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
  327. package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
  328. package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
  329. package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
  330. package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
  331. package/lib/examples/utils/exampleSurfaces.js +38 -0
  332. package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
  333. package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
  334. package/lib/examples/utils/localUrl.d.ts +2 -0
  335. package/lib/examples/utils/localUrl.js +49 -0
  336. package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
  337. package/lib/examples/utils/notebookToolbarItems.js +129 -0
  338. package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
  339. package/lib/examples/utils/runtimeTargetStore.js +82 -1
  340. package/lib/examples/utils/themedProvider.d.ts +7 -0
  341. package/lib/examples/utils/themedProvider.js +57 -4
  342. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
  343. package/lib/examples/utils/waitForAgent.d.ts +23 -0
  344. package/lib/examples/utils/waitForAgent.js +24 -0
  345. package/lib/examples2/CellExample.d.ts +1 -1
  346. package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
  347. package/lib/examples2/NotebookExample.d.ts +1 -1
  348. package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
  349. package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
  350. package/lib/examples2/main.js +24 -4
  351. package/lib/extensions/A2UIExtension.d.ts +1 -1
  352. package/lib/hooks/index.d.ts +8 -5
  353. package/lib/hooks/index.js +20 -5
  354. package/lib/hooks/useAgentRuntimes.d.ts +49 -22
  355. package/lib/hooks/useAgentRuntimes.js +214 -90
  356. package/lib/hooks/useAgentsCatalog.js +32 -4
  357. package/lib/hooks/useBrowserAgent.d.ts +26 -0
  358. package/lib/hooks/useBrowserAgent.js +75 -0
  359. package/lib/hooks/useBrowserInference.d.ts +27 -0
  360. package/lib/hooks/useBrowserInference.js +67 -0
  361. package/lib/hooks/useCheckpoints.d.ts +8 -17
  362. package/lib/hooks/useCheckpoints.js +25 -59
  363. package/lib/hooks/useConfig.d.ts +1 -1
  364. package/lib/hooks/useConfig.js +5 -1
  365. package/lib/hooks/useContextSnapshot.d.ts +18 -7
  366. package/lib/hooks/useContextSnapshot.js +14 -10
  367. package/lib/hooks/useNotifications.d.ts +11 -11
  368. package/lib/hooks/useNotifications.js +1 -1
  369. package/lib/hooks/useProjects.d.ts +7 -19
  370. package/lib/hooks/useProjects.js +5 -5
  371. package/lib/hooks/useSkills.d.ts +0 -1
  372. package/lib/hooks/useSkills.js +6 -2
  373. package/lib/hooks/useToolApprovals.d.ts +8 -8
  374. package/lib/hooks/useToolApprovals.js +3 -3
  375. package/lib/identity/AgentIdentity.d.ts +9 -2
  376. package/lib/identity/index.d.ts +1 -1
  377. package/lib/identity/index.js +1 -1
  378. package/lib/identity/types.d.ts +1 -1
  379. package/lib/identity/types.js +1 -1
  380. package/lib/index.d.ts +1 -0
  381. package/lib/index.js +4 -0
  382. package/lib/jupyter/index.d.ts +2 -1
  383. package/lib/jupyter/index.js +2 -1
  384. package/lib/jupyter/serverExecution.d.ts +78 -0
  385. package/lib/jupyter/serverExecution.js +258 -0
  386. package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
  387. package/lib/jupyter/useResumeServerExecutions.js +64 -0
  388. package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
  389. package/lib/lexical/ChatInlinePlugin.js +0 -36
  390. package/lib/loop/core/focusRequests.d.ts +10 -0
  391. package/lib/loop/core/focusRequests.js +46 -0
  392. package/lib/loop/core/index.d.ts +894 -0
  393. package/lib/loop/core/index.js +264 -0
  394. package/lib/loop/core/promptStore.d.ts +44 -0
  395. package/lib/loop/core/promptStore.js +63 -0
  396. package/lib/loop/core/surfaceRequests.d.ts +33 -0
  397. package/lib/loop/core/surfaceRequests.js +29 -0
  398. package/lib/loop/core/toolbar.d.ts +28 -0
  399. package/lib/loop/core/toolbar.js +59 -0
  400. package/lib/loop/embed/LoopEmbed.d.ts +57 -0
  401. package/lib/loop/embed/LoopEmbed.js +118 -0
  402. package/lib/loop/extensions.d.ts +10 -0
  403. package/lib/loop/extensions.js +49 -0
  404. package/lib/loop/index.d.ts +68 -0
  405. package/lib/loop/index.js +87 -0
  406. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
  407. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
  408. package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
  409. package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
  410. package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
  411. package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
  412. package/lib/loop/plugins/a2ui/index.d.ts +3 -0
  413. package/lib/loop/plugins/a2ui/index.js +50 -0
  414. package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
  415. package/lib/loop/plugins/a2ui-scene/index.js +28 -0
  416. package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
  417. package/lib/loop/plugins/agent-a2a/index.js +26 -0
  418. package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
  419. package/lib/loop/plugins/agent-a2ui/index.js +42 -0
  420. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
  421. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
  422. package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
  423. package/lib/loop/plugins/agent-capacity/index.js +52 -0
  424. package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
  425. package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
  426. package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
  427. package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
  428. package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
  429. package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
  430. package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
  431. package/lib/loop/plugins/agent-codemode/index.js +41 -0
  432. package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
  433. package/lib/loop/plugins/agent-compaction/index.js +34 -0
  434. package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
  435. package/lib/loop/plugins/agent-evals/index.js +25 -0
  436. package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
  437. package/lib/loop/plugins/agent-guardrails/index.js +25 -0
  438. package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
  439. package/lib/loop/plugins/agent-hooks/index.js +28 -0
  440. package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
  441. package/lib/loop/plugins/agent-inference/index.js +29 -0
  442. package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
  443. package/lib/loop/plugins/agent-mcp/index.js +25 -0
  444. package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
  445. package/lib/loop/plugins/agent-memory/index.js +25 -0
  446. package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
  447. package/lib/loop/plugins/agent-monitoring/index.js +25 -0
  448. package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
  449. package/lib/loop/plugins/agent-notifications/index.js +25 -0
  450. package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
  451. package/lib/loop/plugins/agent-otel/index.js +25 -0
  452. package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
  453. package/lib/loop/plugins/agent-outputs/index.js +25 -0
  454. package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
  455. package/lib/loop/plugins/agent-parameters/index.js +25 -0
  456. package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
  457. package/lib/loop/plugins/agent-skills/index.js +25 -0
  458. package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
  459. package/lib/loop/plugins/agent-subagents/index.js +25 -0
  460. package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
  461. package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
  462. package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
  463. package/lib/loop/plugins/agent-triggers/index.js +26 -0
  464. package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
  465. package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
  466. package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
  467. package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
  468. package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
  469. package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
  470. package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
  471. package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
  472. package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
  473. package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
  474. package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
  475. package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
  476. package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
  477. package/lib/loop/plugins/agents/SandboxView.js +43 -0
  478. package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
  479. package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
  480. package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
  481. package/lib/loop/plugins/agents/agentIcons.js +88 -0
  482. package/lib/loop/plugins/agents/browserService.d.ts +50 -0
  483. package/lib/loop/plugins/agents/browserService.js +233 -0
  484. package/lib/loop/plugins/agents/index.d.ts +13 -0
  485. package/lib/loop/plugins/agents/index.js +17 -0
  486. package/lib/loop/plugins/agents/plugin.d.ts +91 -0
  487. package/lib/loop/plugins/agents/plugin.js +201 -0
  488. package/lib/loop/plugins/agents/service.d.ts +99 -0
  489. package/lib/loop/plugins/agents/service.js +167 -0
  490. package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
  491. package/lib/loop/plugins/agents/specSubagents.js +33 -0
  492. package/lib/loop/plugins/agents/switchable.d.ts +107 -0
  493. package/lib/loop/plugins/agents/switchable.js +405 -0
  494. package/lib/loop/plugins/agents/team.d.ts +87 -0
  495. package/lib/loop/plugins/agents/team.js +143 -0
  496. package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
  497. package/lib/loop/plugins/agents/useSandboxService.js +36 -0
  498. package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
  499. package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
  500. package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
  501. package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
  502. package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
  503. package/lib/loop/plugins/agentspecs/index.js +63 -0
  504. package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
  505. package/lib/loop/plugins/chat/ChatView.js +1670 -0
  506. package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
  507. package/lib/loop/plugins/chat/chatViewTools.js +92 -0
  508. package/lib/loop/plugins/chat/index.d.ts +111 -0
  509. package/lib/loop/plugins/chat/index.js +143 -0
  510. package/lib/loop/plugins/chat/turnState.d.ts +41 -0
  511. package/lib/loop/plugins/chat/turnState.js +90 -0
  512. package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
  513. package/lib/loop/plugins/chat-extras/index.js +51 -0
  514. package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
  515. package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
  516. package/lib/loop/plugins/chat-header/index.d.ts +3 -0
  517. package/lib/loop/plugins/chat-header/index.js +21 -0
  518. package/lib/loop/plugins/chat-view/index.d.ts +10 -0
  519. package/lib/loop/plugins/chat-view/index.js +29 -0
  520. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
  521. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
  522. package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
  523. package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
  524. package/lib/loop/plugins/commands/index.d.ts +20 -0
  525. package/lib/loop/plugins/commands/index.js +148 -0
  526. package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
  527. package/lib/loop/plugins/decks/DeckSurface.js +6 -0
  528. package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
  529. package/lib/loop/plugins/decks/DecksMenu.js +42 -0
  530. package/lib/loop/plugins/decks/index.d.ts +19 -0
  531. package/lib/loop/plugins/decks/index.js +133 -0
  532. package/lib/loop/plugins/decks/surface.d.ts +7 -0
  533. package/lib/loop/plugins/decks/surface.js +11 -0
  534. package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
  535. package/lib/loop/plugins/document/DocumentView.js +68 -0
  536. package/lib/loop/plugins/document/index.d.ts +3 -0
  537. package/lib/loop/plugins/document/index.js +86 -0
  538. package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
  539. package/lib/loop/plugins/document/openingDocument.js +122 -0
  540. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
  541. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
  542. package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
  543. package/lib/loop/plugins/document-toolbar/index.js +35 -0
  544. package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
  545. package/lib/loop/plugins/document-toolbar/names.js +10 -0
  546. package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
  547. package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
  548. package/lib/loop/plugins/document-view/index.d.ts +10 -0
  549. package/lib/loop/plugins/document-view/index.js +28 -0
  550. package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
  551. package/lib/loop/plugins/graph/GraphToggle.js +22 -0
  552. package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
  553. package/lib/loop/plugins/graph/GraphView.js +6 -0
  554. package/lib/loop/plugins/graph/index.d.ts +5 -0
  555. package/lib/loop/plugins/graph/index.js +80 -0
  556. package/lib/loop/plugins/graph/viewType.d.ts +10 -0
  557. package/lib/loop/plugins/graph/viewType.js +14 -0
  558. package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
  559. package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
  560. package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
  561. package/lib/loop/plugins/input-prompt/index.js +26 -0
  562. package/lib/loop/plugins/models/index.d.ts +3 -0
  563. package/lib/loop/plugins/models/index.js +49 -0
  564. package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
  565. package/lib/loop/plugins/notebook/NotebookView.js +189 -0
  566. package/lib/loop/plugins/notebook/index.d.ts +3 -0
  567. package/lib/loop/plugins/notebook/index.js +91 -0
  568. package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
  569. package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
  570. package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
  571. package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
  572. package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
  573. package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
  574. package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
  575. package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
  576. package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
  577. package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
  578. package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
  579. package/lib/loop/plugins/notebook-view/index.js +30 -0
  580. package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
  581. package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
  582. package/lib/loop/plugins/page-layout/index.d.ts +35 -0
  583. package/lib/loop/plugins/page-layout/index.js +80 -0
  584. package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
  585. package/lib/loop/plugins/plugins-panel/index.js +74 -0
  586. package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
  587. package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
  588. package/lib/loop/plugins/prompt/index.d.ts +11 -0
  589. package/lib/loop/plugins/prompt/index.js +73 -0
  590. package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
  591. package/lib/loop/plugins/shell/editorChoice.js +58 -0
  592. package/lib/loop/plugins/shell/index.d.ts +47 -0
  593. package/lib/loop/plugins/shell/index.js +142 -0
  594. package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
  595. package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
  596. package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
  597. package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
  598. package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
  599. package/lib/loop/plugins/subagent-activity/index.js +42 -0
  600. package/lib/loop/plugins/view-switch/index.d.ts +46 -0
  601. package/lib/loop/plugins/view-switch/index.js +68 -0
  602. package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
  603. package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
  604. package/lib/loop/plugins/window-frame/index.d.ts +6 -0
  605. package/lib/loop/plugins/window-frame/index.js +79 -0
  606. package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
  607. package/lib/loop/plugins/window-frame/slots.js +30 -0
  608. package/lib/loop/presets.d.ts +167 -0
  609. package/lib/loop/presets.js +139 -0
  610. package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
  611. package/lib/loop/shell/LoopWorkspace.js +231 -0
  612. package/lib/loop/shell/PluginToggles.d.ts +21 -0
  613. package/lib/loop/shell/PluginToggles.js +41 -0
  614. package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
  615. package/lib/loop/shell/ViewSwitcher.js +43 -0
  616. package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
  617. package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
  618. package/lib/loop/shell/index.d.ts +10 -0
  619. package/lib/loop/shell/index.js +14 -0
  620. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
  621. package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
  622. package/lib/loop-example-main.d.ts +1 -0
  623. package/lib/loop-example-main.js +42 -0
  624. package/lib/loop-main.d.ts +1 -0
  625. package/lib/loop-main.js +138 -0
  626. package/lib/mcp/McpServerManager.d.ts +1 -1
  627. package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
  628. package/lib/models/CodeSandboxVariant.d.ts +53 -0
  629. package/lib/models/CodeSandboxVariant.js +77 -0
  630. package/lib/models/Content.d.ts +26 -0
  631. package/lib/models/Environment.d.ts +561 -5
  632. package/lib/models/Environment.js +12 -1
  633. package/lib/models/EnvironmentDTO.d.ts +24 -6
  634. package/lib/models/EnvironmentDTO.js +13 -2
  635. package/lib/models/Exercise.d.ts +0 -2
  636. package/lib/models/Library.d.ts +0 -2
  637. package/lib/models/Notebook.d.ts +0 -2
  638. package/lib/models/ProjectDTO.d.ts +2 -2
  639. package/lib/models/ProjectDTO.js +4 -4
  640. package/lib/models/Runtime.d.ts +11 -11
  641. package/lib/models/RuntimeDTO.d.ts +16 -7
  642. package/lib/models/RuntimeDTO.js +9 -9
  643. package/lib/models/Space.d.ts +10 -0
  644. package/lib/models/Space.js +1 -1
  645. package/lib/models/SpaceDTO.d.ts +1 -1
  646. package/lib/models/SpaceItem.d.ts +1 -2
  647. package/lib/models/environments.generated.d.ts +113 -0
  648. package/lib/models/environments.generated.js +13 -0
  649. package/lib/models/index.d.ts +1 -1
  650. package/lib/models/index.js +1 -1
  651. package/lib/protocols/A2AAdapter.d.ts +39 -6
  652. package/lib/protocols/A2AAdapter.js +180 -11
  653. package/lib/protocols/ACPAdapter.js +40 -37
  654. package/lib/protocols/AGUIAdapter.d.ts +14 -0
  655. package/lib/protocols/AGUIAdapter.js +34 -9
  656. package/lib/protocols/BrowserAgentAdapter.d.ts +117 -0
  657. package/lib/protocols/BrowserAgentAdapter.js +310 -0
  658. package/lib/protocols/VercelAIAdapter.d.ts +10 -0
  659. package/lib/protocols/VercelAIAdapter.js +27 -7
  660. package/lib/protocols/index.d.ts +1 -0
  661. package/lib/protocols/index.js +1 -0
  662. package/lib/runtimes/actions.d.ts +3 -3
  663. package/lib/runtimes/actions.js +41 -16
  664. package/lib/runtimes/apis.d.ts +13 -4
  665. package/lib/runtimes/browser/agent.d.ts +54 -0
  666. package/lib/runtimes/browser/agent.js +63 -0
  667. package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
  668. package/lib/runtimes/browser/anonymousToken.js +300 -0
  669. package/lib/runtimes/browser/frontendTools.d.ts +61 -0
  670. package/lib/runtimes/browser/frontendTools.js +152 -0
  671. package/lib/runtimes/browser/index.d.ts +11 -0
  672. package/lib/runtimes/browser/index.js +20 -0
  673. package/lib/runtimes/browser/model.d.ts +52 -0
  674. package/lib/runtimes/browser/model.js +110 -0
  675. package/lib/runtimes/browser/protocol.d.ts +54 -0
  676. package/lib/runtimes/browser/protocol.js +35 -0
  677. package/lib/runtimes/browser/subagents.d.ts +131 -0
  678. package/lib/runtimes/browser/subagents.js +241 -0
  679. package/lib/runtimes/index.d.ts +3 -0
  680. package/lib/runtimes/index.js +3 -0
  681. package/lib/runtimes/lifecycle.d.ts +76 -0
  682. package/lib/runtimes/lifecycle.js +99 -0
  683. package/lib/runtimes/variants.d.ts +172 -0
  684. package/lib/runtimes/variants.js +187 -0
  685. package/lib/services/reconnectToRuntime.d.ts +2 -2
  686. package/lib/services/reconnectToRuntime.js +3 -3
  687. package/lib/services/sandboxServiceManagers.d.ts +2 -2
  688. package/lib/services/sandboxServiceManagers.js +11 -11
  689. package/lib/specs/agents/agents.d.ts +128 -112
  690. package/lib/specs/agents/agents.js +8024 -5052
  691. package/lib/specs/envvars.d.ts +1 -1
  692. package/lib/specs/envvars.js +3 -3
  693. package/lib/specs/evals.js +9 -0
  694. package/lib/specs/frontendTools.d.ts +3 -0
  695. package/lib/specs/frontendTools.js +46 -3
  696. package/lib/specs/mcpServers.d.ts +1 -0
  697. package/lib/specs/mcpServers.js +27 -4
  698. package/lib/specs/models.d.ts +18 -0
  699. package/lib/specs/models.js +154 -0
  700. package/lib/specs/outputs.d.ts +2 -0
  701. package/lib/specs/outputs.js +22 -0
  702. package/lib/specs/personas.js +1 -1
  703. package/lib/specs/teams/teams.d.ts +2 -0
  704. package/lib/specs/teams/teams.js +628 -111
  705. package/lib/state/index.d.ts +1 -1
  706. package/lib/state/index.js +1 -1
  707. package/lib/state/substates/RuntimesState.d.ts +5 -5
  708. package/lib/state/substates/RuntimesState.js +17 -14
  709. package/lib/state/substates/index.d.ts +1 -1
  710. package/lib/state/substates/index.js +1 -1
  711. package/lib/stores/agentRuntimeStore.d.ts +43 -1
  712. package/lib/stores/agentRuntimeStore.js +100 -11
  713. package/lib/stores/index.d.ts +1 -1
  714. package/lib/stores/index.js +1 -1
  715. package/lib/stories/Button.d.ts +1 -1
  716. package/lib/stories/Button.stories.d.ts +1 -1
  717. package/lib/stories/Header.d.ts +1 -1
  718. package/lib/stories/Header.stories.d.ts +1 -1
  719. package/lib/test-setup.js +66 -0
  720. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
  721. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
  722. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
  723. package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
  724. package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
  725. package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
  726. package/lib/tools/adapters/commands/index.d.ts +1 -0
  727. package/lib/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
  728. package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
  729. package/lib/tools/index.d.ts +1 -0
  730. package/lib/tools/index.js +1 -0
  731. package/lib/types/a2a.d.ts +15 -1
  732. package/lib/types/agents-lifecycle.d.ts +11 -6
  733. package/lib/types/agents.d.ts +31 -6
  734. package/lib/types/agentspecs.d.ts +120 -4
  735. package/lib/types/chat.d.ts +251 -3
  736. package/lib/types/checkpoints.d.ts +20 -0
  737. package/lib/types/config.d.ts +13 -1
  738. package/lib/types/connection.d.ts +1 -1
  739. package/lib/types/evals.d.ts +2 -0
  740. package/lib/types/messages.d.ts +60 -0
  741. package/lib/types/models.d.ts +26 -0
  742. package/lib/types/notifications.d.ts +15 -6
  743. package/lib/types/protocol.d.ts +7 -2
  744. package/lib/types/stream.d.ts +48 -3
  745. package/lib/types/stream.js +5 -0
  746. package/lib/types/teams.d.ts +102 -4
  747. package/lib/types/tool-approvals.d.ts +1 -1
  748. package/lib/types/tools.d.ts +8 -2
  749. package/lib/utils/utils.js +7 -1
  750. package/package.json +376 -361
  751. package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
  752. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  753. package/scripts/codegen/compose.py +208 -0
  754. package/scripts/codegen/generate_agents.py +202 -31
  755. package/scripts/codegen/generate_evals.py +2 -0
  756. package/scripts/codegen/generate_frontend_tools.py +35 -6
  757. package/scripts/codegen/generate_models.py +40 -15
  758. package/scripts/codegen/generate_sandbox_agents.py +76 -62
  759. package/scripts/codegen/generate_teams.py +178 -4
  760. package/scripts/codegen/generate_tools.py +6 -4
  761. package/scripts/gen_workers.py +279 -111
  762. package/scripts/generate-environments-types.py +404 -0
  763. package/lib/chat/prompt/InputFooter.d.ts +0 -58
  764. package/lib/chat/prompt/InputFooter.js +0 -194
  765. package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
  766. package/lib/chat/prompt/InputPromptFooter.js +0 -15
  767. package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
  768. package/lib/chat/prompt/InputPromptHeader.js +0 -15
  769. package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
  770. package/lib/hooks/useRuntimes.d.ts +0 -5
  771. package/lib/hooks/useRuntimes.js +0 -34
  772. package/lib/jupyter/kernelsHandler.d.ts +0 -8
  773. package/lib/jupyter/kernelsHandler.js +0 -39
  774. package/lib/models/Dataset.d.ts +0 -16
  775. package/lib/utils/Cells.d.ts +0 -2
  776. package/lib/utils/Cells.js +0 -28
@@ -0,0 +1,241 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2023-2026 Datalayer, Inc.
7
+ *
8
+ * MIT License
9
+ */
10
+ /**
11
+ * Delegation, for an agent whose loop runs in the page.
12
+ *
13
+ * The server-side harness already has this: `subagents/capability.py`
14
+ * contributes a `delegate_task` tool to a pydantic-ai agent, runs the named
15
+ * subagent in a child run, and hands its final output back to the parent. This
16
+ * is the same idea in the browser, and deliberately built the way the Vercel AI
17
+ * SDK documents rather than reinvented:
18
+ *
19
+ * - a subagent is a {@link ToolLoopAgent}, the same class the parent is;
20
+ * - the parent reaches it through an ordinary `tool()` whose `execute` calls
21
+ * `generate()` and returns the text;
22
+ * - what the parent's model sees is trimmed with `toModelOutput`.
23
+ *
24
+ * The one thing that is ours is *which conversation the child is given*. The
25
+ * SDK isolates by default and shows you how to pass `messages` instead; a
26
+ * teamspec says which of those a team wants, so the choice is read from the
27
+ * spec rather than decided here.
28
+ *
29
+ * One SDK constraint worth knowing: a subagent tool cannot take part in
30
+ * approval flows. A subagent that must be approved has to be a plain tool.
31
+ *
32
+ * @module runtimes/browser/subagents
33
+ */
34
+ import { ToolLoopAgent, stepCountIs, tool, jsonSchema, } from 'ai';
35
+ import { SUBAGENT_STOPPED, } from '../../types/stream';
36
+ import { createBrowserModel } from './model';
37
+ /** How many turns a delegated task may take before it is stopped. */
38
+ export const DEFAULT_SUBAGENT_MAX_STEPS = 12;
39
+ /** The input every delegation tool takes. */
40
+ const TASK_SCHEMA = {
41
+ type: 'object',
42
+ properties: {
43
+ task: {
44
+ type: 'string',
45
+ description: 'What to do, stated so that it can be carried out without the rest of this conversation.',
46
+ },
47
+ },
48
+ required: ['task'],
49
+ };
50
+ /**
51
+ * The tools a parent needs in order to delegate.
52
+ *
53
+ * One per subagent, named after it, so the model reaches for `Compactor`
54
+ * rather than for `delegate_task('Compactor', …)`. A name the model can read
55
+ * is a name it picks correctly more often, and the description is what it
56
+ * chooses on.
57
+ */
58
+ export function subagentTools(options) {
59
+ const { subagents, inference, model, sharing = 'shared', maxSteps = DEFAULT_SUBAGENT_MAX_STEPS, tools: shared, onEvent, signal: runSignal, } = options;
60
+ const tools = {};
61
+ for (const subagent of subagents) {
62
+ tools[subagent.name] = tool({
63
+ description: subagent.description,
64
+ inputSchema: jsonSchema(TASK_SCHEMA),
65
+ execute: async (input, executionOptions) => {
66
+ const { task } = (input ?? {});
67
+ if (!task?.trim()) {
68
+ return { error: 'A delegated task needs to say what to do.' };
69
+ }
70
+ // Keyed by the parent's tool call, as the server keys its events:
71
+ // one delegation, one timeline, whichever side ran it. A run ends
72
+ // once: a stream that reports an error and then rejects would
73
+ // otherwise say so twice.
74
+ const toolCallId = executionOptions?.toolCallId ?? null;
75
+ let ended = false;
76
+ const emit = (event) => {
77
+ if (event.phase === 'end' || event.phase === 'error') {
78
+ if (ended) {
79
+ return;
80
+ }
81
+ ended = true;
82
+ }
83
+ onEvent?.({ subagentName: subagent.name, toolCallId, ...event });
84
+ };
85
+ const child = new ToolLoopAgent({
86
+ id: subagent.name,
87
+ model: createBrowserModel({
88
+ ...inference,
89
+ model: subagent.model ?? model,
90
+ }),
91
+ instructions: subagent.instructions,
92
+ tools: subagent.tools ?? shared ?? {},
93
+ stopWhen: stepCountIs(maxSteps),
94
+ });
95
+ // Stopped when either the run or this tool call is: the two signals
96
+ // are one to the child.
97
+ const signal = anySignal([
98
+ executionOptions?.abortSignal,
99
+ runSignal?.(),
100
+ ]);
101
+ emit({ phase: 'start', task });
102
+ try {
103
+ // `messages` for a shared conversation, `prompt` for an isolated
104
+ // one — the same two shapes the SDK documents, chosen by the team.
105
+ const history = sharing === 'shared'
106
+ ? (executionOptions?.messages ?? [])
107
+ : [];
108
+ // Streamed rather than generated, so the run can be watched: each
109
+ // part becomes an event as it arrives, and the text is what the
110
+ // parent is handed at the end.
111
+ const result = await child.stream({
112
+ messages: [...history, { role: 'user', content: task }],
113
+ abortSignal: signal,
114
+ });
115
+ const streamed = await relaySubagentRun(result.fullStream, emit, signal);
116
+ if (signal?.aborted) {
117
+ emit({ phase: 'error', error: STOPPED });
118
+ return { agent: subagent.name, error: STOPPED };
119
+ }
120
+ const output = streamed || (await result.text);
121
+ emit({ phase: 'end', output });
122
+ return { agent: subagent.name, result: output };
123
+ }
124
+ catch (reason) {
125
+ // Returned rather than thrown: a failed delegation is a step the
126
+ // parent can recover from — try another member, or tell the person
127
+ // — and a throw would abort the whole run instead.
128
+ // A stop is said as a stop, not as whatever the aborted fetch threw.
129
+ const error = signal?.aborted
130
+ ? STOPPED
131
+ : reason instanceof Error
132
+ ? reason.message
133
+ : String(reason);
134
+ emit({ phase: 'error', error });
135
+ return { agent: subagent.name, error };
136
+ }
137
+ },
138
+ // What the parent's model reads. The person can see the whole delegated
139
+ // run in the transcript; the parent only needs its conclusion, and
140
+ // paying for the rest in context is how a delegation model runs out of
141
+ // room three hand-offs in.
142
+ toModelOutput: ({ output }) => {
143
+ const value = output;
144
+ return {
145
+ type: 'text',
146
+ value: value?.error
147
+ ? `${subagent.name} could not finish: ${value.error}`
148
+ : (value?.result ?? 'Done.'),
149
+ };
150
+ },
151
+ });
152
+ }
153
+ return tools;
154
+ }
155
+ /** What a delegation says when the person stopped it. */
156
+ export const STOPPED = SUBAGENT_STOPPED;
157
+ /** One signal for several, or the one there is. */
158
+ function anySignal(signals) {
159
+ const present = signals.filter((entry) => Boolean(entry));
160
+ if (present.length <= 1) {
161
+ return present[0];
162
+ }
163
+ if (typeof AbortSignal.any === 'function') {
164
+ return AbortSignal.any(present);
165
+ }
166
+ // Older runtimes: a controller that follows whichever fires first.
167
+ const controller = new AbortController();
168
+ for (const entry of present) {
169
+ if (entry.aborted) {
170
+ controller.abort(entry.reason);
171
+ break;
172
+ }
173
+ entry.addEventListener('abort', () => controller.abort(entry.reason), {
174
+ once: true,
175
+ });
176
+ }
177
+ return controller.signal;
178
+ }
179
+ /** A tool's result as a line the timeline can show. */
180
+ function preview(value) {
181
+ const text = typeof value === 'string' ? value : JSON.stringify(value);
182
+ return text.length > 400 ? `${text.slice(0, 400)}…` : text;
183
+ }
184
+ /**
185
+ * Turn a delegated run's stream into subagent events, and return its text.
186
+ *
187
+ * Text and reasoning deltas, tool calls and their results, and errors — the
188
+ * phases the server-side harness reports — each emitted as the part arrives.
189
+ * Everything else the SDK streams (step and finish markers, sources, files)
190
+ * is not a phase and passes in silence.
191
+ */
192
+ export async function relaySubagentRun(stream, emit, signal) {
193
+ let text = '';
194
+ for await (const part of stream) {
195
+ // Stopped: whatever is still in the pipe is not worth relaying.
196
+ if (signal?.aborted) {
197
+ break;
198
+ }
199
+ switch (part.type) {
200
+ case 'text-delta':
201
+ text += part.text ?? '';
202
+ emit({ phase: 'text', text: part.text ?? '' });
203
+ break;
204
+ case 'reasoning-delta':
205
+ emit({ phase: 'thinking', text: part.text ?? '' });
206
+ break;
207
+ case 'tool-call':
208
+ emit({
209
+ phase: 'tool_call',
210
+ toolName: part.toolName,
211
+ toolArgs: (part.input ?? {}),
212
+ });
213
+ break;
214
+ case 'tool-result':
215
+ emit({
216
+ phase: 'tool_result',
217
+ toolName: part.toolName,
218
+ result: preview(part.output),
219
+ });
220
+ break;
221
+ case 'tool-error':
222
+ emit({
223
+ phase: 'tool_result',
224
+ toolName: part.toolName,
225
+ result: preview(part.error),
226
+ });
227
+ break;
228
+ case 'error':
229
+ emit({
230
+ phase: 'error',
231
+ error: part.error instanceof Error
232
+ ? part.error.message
233
+ : String(part.error),
234
+ });
235
+ break;
236
+ default:
237
+ break;
238
+ }
239
+ }
240
+ return text;
241
+ }
@@ -1,5 +1,8 @@
1
1
  export * from './actions';
2
+ export * from './lifecycle';
2
3
  export * from './apis';
3
4
  export * from './settings';
4
5
  export * from './snapshots';
5
6
  export * from './utils';
7
+ export * from './variants';
8
+ export * from './browser';
@@ -3,7 +3,10 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  export * from './actions';
6
+ export * from './lifecycle';
6
7
  export * from './apis';
7
8
  export * from './settings';
8
9
  export * from './snapshots';
9
10
  export * from './utils';
11
+ export * from './variants';
12
+ export * from './browser';
@@ -0,0 +1,76 @@
1
+ /**
2
+ * The converged sandbox lifecycle, in TypeScript.
3
+ *
4
+ * The Python side states this vocabulary in `code_sandboxes.lifecycle` and the
5
+ * Runtimes client is written to it. This is the same statement for callers that
6
+ * reach the API from a browser: one place that knows how a runtime URL is
7
+ * spelled, so a hook, a mixin and a page cannot drift from each other the way
8
+ * they did when each built its own string.
9
+ *
10
+ * Transport stays with the caller — `requestDatalayerAPI`, `requestDatalayer`
11
+ * and a bare `fetch` all have their reasons. Only the URLs and the verbs are
12
+ * shared, because those are what has to agree.
13
+ */
14
+ /**
15
+ * A verb a caller may use, and the REST spelling it corresponds to.
16
+ *
17
+ * Mirrors `LIFECYCLE_OPERATIONS` in `code_sandboxes.lifecycle` — if one of them
18
+ * changes, so does the other, and the tests on both sides say so.
19
+ */
20
+ export declare const LIFECYCLE_OPERATIONS: {
21
+ readonly create: "POST /runtimes";
22
+ readonly start: "POST /runtimes (implied) — begin a created sandbox";
23
+ readonly stop: "DELETE /runtimes/{runtime_name}";
24
+ readonly pause: "POST /runtimes/{runtime_name}/pause";
25
+ readonly resume: "POST /runtimes/{runtime_name}/resume";
26
+ readonly list: "GET /runtimes";
27
+ readonly get: "GET /runtimes/{runtime_name}";
28
+ readonly update: "PUT /runtimes/{runtime_name}";
29
+ readonly snapshot: "POST /sandbox-snapshots";
30
+ readonly execute: "run code in the sandbox";
31
+ };
32
+ /**
33
+ * The name of a lifecycle verb.
34
+ */
35
+ export type LifecycleOperation = keyof typeof LIFECYCLE_OPERATIONS;
36
+ /**
37
+ * The Runtimes API prefix, below whichever host serves it.
38
+ */
39
+ export declare const RUNTIMES_API_PREFIX = "api/runtimes/v1";
40
+ /**
41
+ * Every runtime — the collection.
42
+ *
43
+ * `create` posts here and `list` gets here.
44
+ */
45
+ export declare function runtimesUrl(baseUrl: string): string;
46
+ /**
47
+ * One runtime, by pod name.
48
+ *
49
+ * `get` reads it, `update` puts to it, and `stop` deletes it — whether the
50
+ * runtime is running or paused, which is why there is no second path for the
51
+ * paused case.
52
+ */
53
+ export declare function runtimeUrl(baseUrl: string, runtimeName: string): string;
54
+ /**
55
+ * Suspend one runtime, keeping its state.
56
+ */
57
+ export declare function runtimePauseUrl(baseUrl: string, runtimeName: string): string;
58
+ /**
59
+ * Bring one paused runtime back.
60
+ */
61
+ export declare function runtimeResumeUrl(baseUrl: string, runtimeName: string): string;
62
+ /**
63
+ * The snapshots collection.
64
+ *
65
+ * A snapshot outlives the runtime it came from, which is why it is its own
66
+ * resource rather than a sub-path of the pod.
67
+ */
68
+ export declare function sandboxSnapshotsUrl(baseUrl: string): string;
69
+ /**
70
+ * One snapshot, by UID.
71
+ */
72
+ export declare function sandboxSnapshotUrl(baseUrl: string, id: string): string;
73
+ /**
74
+ * The checkpoint records behind pause and resume.
75
+ */
76
+ export declare function runtimeCheckpointsUrl(baseUrl: string): string;
@@ -0,0 +1,99 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * The converged sandbox lifecycle, in TypeScript.
7
+ *
8
+ * The Python side states this vocabulary in `code_sandboxes.lifecycle` and the
9
+ * Runtimes client is written to it. This is the same statement for callers that
10
+ * reach the API from a browser: one place that knows how a runtime URL is
11
+ * spelled, so a hook, a mixin and a page cannot drift from each other the way
12
+ * they did when each built its own string.
13
+ *
14
+ * Transport stays with the caller — `requestDatalayerAPI`, `requestDatalayer`
15
+ * and a bare `fetch` all have their reasons. Only the URLs and the verbs are
16
+ * shared, because those are what has to agree.
17
+ */
18
+ /**
19
+ * A verb a caller may use, and the REST spelling it corresponds to.
20
+ *
21
+ * Mirrors `LIFECYCLE_OPERATIONS` in `code_sandboxes.lifecycle` — if one of them
22
+ * changes, so does the other, and the tests on both sides say so.
23
+ */
24
+ export const LIFECYCLE_OPERATIONS = {
25
+ create: 'POST /runtimes',
26
+ start: 'POST /runtimes (implied) — begin a created sandbox',
27
+ stop: 'DELETE /runtimes/{runtime_name}',
28
+ pause: 'POST /runtimes/{runtime_name}/pause',
29
+ resume: 'POST /runtimes/{runtime_name}/resume',
30
+ list: 'GET /runtimes',
31
+ get: 'GET /runtimes/{runtime_name}',
32
+ update: 'PUT /runtimes/{runtime_name}',
33
+ snapshot: 'POST /sandbox-snapshots',
34
+ execute: 'run code in the sandbox',
35
+ };
36
+ /**
37
+ * The Runtimes API prefix, below whichever host serves it.
38
+ */
39
+ export const RUNTIMES_API_PREFIX = 'api/runtimes/v1';
40
+ /**
41
+ * Join a base URL to a path without doubling or dropping the slash between.
42
+ *
43
+ * `URLExt.join` would do this, but the callers of this module include ones with
44
+ * no JupyterLab dependency, and a runtime URL is not worth one.
45
+ */
46
+ function join(base, path) {
47
+ return `${base.replace(/\/+$/, '')}/${path.replace(/^\/+/, '')}`;
48
+ }
49
+ /**
50
+ * Every runtime — the collection.
51
+ *
52
+ * `create` posts here and `list` gets here.
53
+ */
54
+ export function runtimesUrl(baseUrl) {
55
+ return join(baseUrl, `${RUNTIMES_API_PREFIX}/runtimes`);
56
+ }
57
+ /**
58
+ * One runtime, by pod name.
59
+ *
60
+ * `get` reads it, `update` puts to it, and `stop` deletes it — whether the
61
+ * runtime is running or paused, which is why there is no second path for the
62
+ * paused case.
63
+ */
64
+ export function runtimeUrl(baseUrl, runtimeName) {
65
+ return `${runtimesUrl(baseUrl)}/${runtimeName}`;
66
+ }
67
+ /**
68
+ * Suspend one runtime, keeping its state.
69
+ */
70
+ export function runtimePauseUrl(baseUrl, runtimeName) {
71
+ return `${runtimeUrl(baseUrl, runtimeName)}/pause`;
72
+ }
73
+ /**
74
+ * Bring one paused runtime back.
75
+ */
76
+ export function runtimeResumeUrl(baseUrl, runtimeName) {
77
+ return `${runtimeUrl(baseUrl, runtimeName)}/resume`;
78
+ }
79
+ /**
80
+ * The snapshots collection.
81
+ *
82
+ * A snapshot outlives the runtime it came from, which is why it is its own
83
+ * resource rather than a sub-path of the pod.
84
+ */
85
+ export function sandboxSnapshotsUrl(baseUrl) {
86
+ return join(baseUrl, `${RUNTIMES_API_PREFIX}/sandbox-snapshots`);
87
+ }
88
+ /**
89
+ * One snapshot, by UID.
90
+ */
91
+ export function sandboxSnapshotUrl(baseUrl, id) {
92
+ return `${sandboxSnapshotsUrl(baseUrl)}/${id}`;
93
+ }
94
+ /**
95
+ * The checkpoint records behind pause and resume.
96
+ */
97
+ export function runtimeCheckpointsUrl(baseUrl) {
98
+ return join(baseUrl, `${RUNTIMES_API_PREFIX}/runtime-checkpoints`);
99
+ }
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Agent runtime variants: where an agent's loop runs, and what runs it.
3
+ *
4
+ * There have always been two ways to start an agent — a local agent-runtimes
5
+ * server and a cloud one — and they were named after the service each talked
6
+ * to (`local-agent-runtimes`, `backend-services`). That naming held while both
7
+ * ran the same framework. A browser agent breaks it: it talks to no service at
8
+ * all, and it runs a different framework.
9
+ *
10
+ * So a variant names the two things that actually vary, in that order:
11
+ *
12
+ * <location>-<harness> browser-vercelai
13
+ * local-pydanticai
14
+ * cloud-pydanticai
15
+ *
16
+ * The point of splitting them is that most code cares about exactly one half.
17
+ * Anything about *reaching* a runtime — a URL, a lifecycle, a sandbox — is a
18
+ * question of location. Anything about *turning the loop* — the SDK, the tool
19
+ * protocol, the streaming format — is a question of harness. Code that branches
20
+ * on the whole variant string has to be edited every time either axis gains a
21
+ * value; code that asks {@link locationOf} or {@link harnessOf} does not.
22
+ *
23
+ * That is what makes the next ones cheap. `cloud-ax` is a new harness against
24
+ * an existing location, so only harness-specific code changes; `browser-ax` is
25
+ * a combination of two things that already exist.
26
+ *
27
+ * @module runtimes/variants
28
+ */
29
+ import type { Agentspec } from '../types/agentspecs';
30
+ /** Where the agent's loop runs. */
31
+ export type AgentLocation = 'browser' | 'local' | 'cloud';
32
+ /**
33
+ * What turns the loop.
34
+ *
35
+ * Spelled without the hyphen the frameworks use in their own names, because
36
+ * the hyphen is already doing a job here: it separates location from harness.
37
+ * {@link SPEC_HARNESS_BY_HARNESS} maps back to the spelling an agentspec uses.
38
+ */
39
+ export type AgentHarness = 'pydanticai' | 'vercelai';
40
+ /**
41
+ * The combinations that exist today.
42
+ *
43
+ * Enumerated rather than derived from the two axes, because not every pairing
44
+ * is real: there is no `browser-pydanticai`, and a type that admitted one would
45
+ * be describing a runtime nobody can start.
46
+ */
47
+ export declare const AGENT_RUNTIME_VARIANTS: readonly ["browser-vercelai", "local-pydanticai", "cloud-pydanticai"];
48
+ export type AgentRuntimeVariant = (typeof AGENT_RUNTIME_VARIANTS)[number];
49
+ /** The variant used when a caller does not choose one. */
50
+ export declare const DEFAULT_AGENT_RUNTIME_VARIANT: AgentRuntimeVariant;
51
+ /**
52
+ * The harness as an agentspec spells it.
53
+ *
54
+ * A spec says `harness: pydantic-ai`; a variant says `pydanticai`. Same thing,
55
+ * two spellings forced by the separator, and this is the one place that knows
56
+ * it — rather than every caller doing its own `replace('-', '')`.
57
+ */
58
+ export declare const SPEC_HARNESS_BY_HARNESS: Record<AgentHarness, string>;
59
+ /** The reverse, for reading an agentspec's declared harness. */
60
+ export declare const HARNESS_BY_SPEC_HARNESS: Record<string, AgentHarness>;
61
+ /**
62
+ * The names the two original ways to start an agent went by.
63
+ *
64
+ * Kept working rather than removed: they are exported API and appear in
65
+ * applications this package does not own. New code should pass a variant.
66
+ *
67
+ * @deprecated Use {@link AgentRuntimeVariant}.
68
+ */
69
+ export type RuntimeCreationTarget = 'backend-services' | 'local-agent-runtimes';
70
+ /** Whether a string is a variant this package knows how to start. */
71
+ export declare function isAgentRuntimeVariant(value: unknown): value is AgentRuntimeVariant;
72
+ /**
73
+ * The variant a caller meant, from a variant or one of the legacy target names.
74
+ *
75
+ * One funnel, so the rest of the package sees variants only and no branch has
76
+ * to remember that two vocabularies exist.
77
+ */
78
+ export declare function toAgentRuntimeVariant(value: AgentRuntimeVariant | RuntimeCreationTarget | undefined | null, fallback?: AgentRuntimeVariant): AgentRuntimeVariant;
79
+ /** Where this variant's loop runs. */
80
+ export declare function locationOf(variant: AgentRuntimeVariant): AgentLocation;
81
+ /** What turns this variant's loop. */
82
+ export declare function harnessOf(variant: AgentRuntimeVariant): AgentHarness;
83
+ /**
84
+ * Whether the loop runs in the page.
85
+ *
86
+ * The question worth asking wherever a runtime would otherwise be reached for,
87
+ * because it is the one that changes what exists: a browser agent has no
88
+ * service behind it, so no runtime to create, no sandbox to execute in, no MCP
89
+ * servers to call, and no lifecycle to pause or resume.
90
+ */
91
+ export declare function runsInBrowser(variant: AgentRuntimeVariant): boolean;
92
+ /**
93
+ * Whether a runtime has to be created and reached over HTTP.
94
+ *
95
+ * True for every location except the browser, and the reason most of the
96
+ * lifecycle code can stay indifferent to which of the two remote locations it
97
+ * is talking to.
98
+ */
99
+ export declare function needsRuntimeService(variant: AgentRuntimeVariant): boolean;
100
+ /**
101
+ * The variant for a location.
102
+ *
103
+ * A location decides its own harness, because only one framework can run there
104
+ * — the browser has no server to turn a pydantic-ai loop, and the two remote
105
+ * locations have no page to turn a Vercel AI one. Naming both halves in a
106
+ * variant is still worth it: it is what makes `cloud-ax` a value rather than a
107
+ * rewrite. But given a location, the harness is not a separate choice.
108
+ */
109
+ export declare function variantForLocation(location: AgentLocation): AgentRuntimeVariant;
110
+ /**
111
+ * Whether a variant can run an agent that declared this harness in its spec.
112
+ *
113
+ * An agentspec says which framework it *prefers* — `harness:` is where the
114
+ * agent normally runs, not a demand — and a variant says which framework a
115
+ * location can actually provide. Where they disagree the location wins, which
116
+ * is why the browser accepts any spec:
117
+ *
118
+ * harness: pydantic-ai + browser → runs, with the Vercel AI SDK
119
+ *
120
+ * The alternative was a second spec per agent, identical but for one field.
121
+ * That duplicated the prompt, the tools, the evals and everything else that
122
+ * has nothing to do with where a loop turns — and it made a spec's author
123
+ * responsible for a decision the host makes.
124
+ *
125
+ * The remote locations are stricter: a spec built for the browser harness
126
+ * assumes frontend tools and no server, so running it on a runtime would be
127
+ * running something else.
128
+ */
129
+ export declare function variantSupportsSpecHarness(variant: AgentRuntimeVariant, specHarness: string | undefined | null): boolean;
130
+ /**
131
+ * The variants that could run an agent with this declared harness.
132
+ *
133
+ * What a host offers a person choosing where to run something. The browser is
134
+ * always among them — it can run anything, because it overrides the harness —
135
+ * while an agent built for the browser is not offered a remote runtime that
136
+ * would be running something else.
137
+ */
138
+ export declare function variantsForSpecHarness(specHarness: string | undefined | null): AgentRuntimeVariant[];
139
+ /**
140
+ * The legacy target name closest to a variant.
141
+ *
142
+ * For consumers still reading `runtimeCreationTarget`: a browser agent has no
143
+ * old name — there was no way to start one — so it reports as local, which is
144
+ * the truthful half of the answer (nothing remote is being reached).
145
+ *
146
+ * @deprecated Read the variant.
147
+ */
148
+ export declare function legacyTargetOf(variant: AgentRuntimeVariant): RuntimeCreationTarget;
149
+ /**
150
+ * The harness a spec asks for, in the variant spelling.
151
+ *
152
+ * Defaulted rather than optional: every agent is run by something, and a spec
153
+ * that says nothing is run by the framework that has always run it. That
154
+ * default is what lets every spec written before this field stay correct.
155
+ */
156
+ export declare function specHarnessOf(spec: Pick<Agentspec, 'harness'>): AgentHarness;
157
+ /**
158
+ * The variants that could run this agent.
159
+ *
160
+ * What a host offers when someone picks where to run something: an agent built
161
+ * for the browser harness should not be offered a cloud runtime that cannot
162
+ * turn its loop, and a server-side agent should not be offered the page.
163
+ */
164
+ export declare function variantsForSpec(spec: Pick<Agentspec, 'harness'>): AgentRuntimeVariant[];
165
+ /**
166
+ * The variant to start this agent with when the host has no preference.
167
+ *
168
+ * The package default when the spec can run there, and otherwise the first
169
+ * variant that can run it at all — so a `harness: vercel-ai` agent lands in
170
+ * the browser without every caller having to know that is where it belongs.
171
+ */
172
+ export declare function defaultVariantForSpec(spec: Pick<Agentspec, 'harness'>): AgentRuntimeVariant;