@datalayer/agent-runtimes 1.0.29 → 1.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (779) hide show
  1. package/lib/AgentDocument.js +5 -22
  2. package/lib/AgentNode.d.ts +1 -1
  3. package/lib/AgentNode.js +193 -23
  4. package/lib/AgentNotebook.js +1 -1
  5. package/lib/App.d.ts +1 -1
  6. package/lib/AppExamples2.d.ts +1 -1
  7. package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
  8. package/lib/agent-node/AgentNodeGallery.js +19 -15
  9. package/lib/agent-node/themeStore.js +7 -6
  10. package/lib/agents/AgentDetails.d.ts +8 -2
  11. package/lib/agents/AgentDetails.js +41 -11
  12. package/lib/agents/AgentRuntimeChat.d.ts +3 -3
  13. package/lib/agents/AgentRuntimeChat.js +15 -15
  14. package/lib/api/agents.d.ts +10 -10
  15. package/lib/api/agents.js +15 -15
  16. package/lib/api/checkpoints.d.ts +40 -0
  17. package/lib/api/checkpoints.js +75 -0
  18. package/lib/api/index.d.ts +1 -0
  19. package/lib/api/index.js +2 -1
  20. package/lib/api/notifications.d.ts +21 -6
  21. package/lib/api/notifications.js +32 -14
  22. package/lib/api/runtimes/environments.d.ts +406 -4
  23. package/lib/api/runtimes/environments.js +641 -9
  24. package/lib/api/runtimes/runtimes.d.ts +19 -19
  25. package/lib/api/runtimes/runtimes.js +47 -46
  26. package/lib/api/spacer/notebooks.js +1 -1
  27. package/lib/chat/Chat.d.ts +16 -4
  28. package/lib/chat/Chat.js +18 -5
  29. package/lib/chat/ChatFloating.d.ts +20 -2
  30. package/lib/chat/ChatFloating.js +196 -118
  31. package/lib/chat/ChatInline.d.ts +15 -0
  32. package/lib/chat/ChatInline.js +0 -18
  33. package/lib/chat/ChatPopupStandalone.d.ts +1 -1
  34. package/lib/chat/ChatSidebar.d.ts +14 -2
  35. package/lib/chat/ChatSidebar.js +1 -1
  36. package/lib/chat/ChatStandalone.d.ts +1 -1
  37. package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
  38. package/lib/chat/EphemeralSurfaceControl.js +55 -0
  39. package/lib/chat/base/ChatAvailability.d.ts +34 -0
  40. package/lib/chat/base/ChatAvailability.js +18 -0
  41. package/lib/chat/base/ChatBase.d.ts +2 -1
  42. package/lib/chat/base/ChatBase.js +657 -28
  43. package/lib/chat/display/ButtonGlow.d.ts +9 -0
  44. package/lib/chat/display/ButtonGlow.js +60 -0
  45. package/lib/chat/display/EmptyState.d.ts +15 -1
  46. package/lib/chat/display/EmptyState.js +81 -12
  47. package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
  48. package/lib/chat/display/PoweredByTag.d.ts +1 -1
  49. package/lib/chat/display/groupSuggestions.d.ts +21 -0
  50. package/lib/chat/display/groupSuggestions.js +18 -0
  51. package/lib/chat/document/EphemeralDocument.d.ts +70 -6
  52. package/lib/chat/document/EphemeralDocument.js +154 -52
  53. package/lib/chat/header/ChatHeader.d.ts +1 -1
  54. package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
  55. package/lib/chat/header/ChatHeaderBase.js +21 -102
  56. package/lib/chat/header/ChatViewModeToggle.d.ts +29 -0
  57. package/lib/chat/header/ChatViewModeToggle.js +55 -0
  58. package/lib/chat/index.d.ts +5 -1
  59. package/lib/chat/index.js +9 -1
  60. package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
  61. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
  62. package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
  63. package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
  64. package/lib/chat/messages/ChatMessageList.d.ts +22 -1
  65. package/lib/chat/messages/ChatMessageList.js +370 -166
  66. package/lib/chat/messages/ChatMessages.d.ts +1 -1
  67. package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
  68. package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
  69. package/lib/chat/messages/TurnFooter.d.ts +42 -0
  70. package/lib/chat/messages/TurnFooter.js +75 -0
  71. package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
  72. package/lib/chat/messages/assistantMarkdown.js +56 -0
  73. package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
  74. package/lib/chat/notebook/EphemeralNotebook.js +194 -61
  75. package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
  76. package/lib/chat/parts/MessagePart.d.ts +1 -1
  77. package/lib/chat/parts/ReasoningPart.d.ts +8 -1
  78. package/lib/chat/parts/TextPart.d.ts +1 -1
  79. package/lib/chat/parts/ToolPart.d.ts +8 -1
  80. package/lib/chat/prompt/FloatingCard.d.ts +26 -0
  81. package/lib/chat/prompt/FloatingCard.js +80 -0
  82. package/lib/chat/prompt/InputPrompt.d.ts +206 -53
  83. package/lib/chat/prompt/InputPrompt.js +161 -80
  84. package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
  85. package/lib/chat/prompt/InputPromptBase.js +225 -0
  86. package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
  87. package/lib/chat/prompt/InputPromptLexical.js +227 -30
  88. package/lib/chat/prompt/InputPromptText.d.ts +10 -2
  89. package/lib/chat/prompt/InputPromptText.js +35 -3
  90. package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
  91. package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
  92. package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
  93. package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
  94. package/lib/chat/prompt/footer/index.d.ts +7 -0
  95. package/lib/chat/prompt/footer/index.js +11 -0
  96. package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
  97. package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
  98. package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
  99. package/lib/chat/prompt/header/InPromptHeader.js +14 -0
  100. package/lib/chat/prompt/header/index.d.ts +7 -0
  101. package/lib/chat/prompt/header/index.js +11 -0
  102. package/lib/chat/prompt/index.d.ts +8 -4
  103. package/lib/chat/prompt/index.js +15 -3
  104. package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
  105. package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
  106. package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
  107. package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
  108. package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
  109. package/lib/chat/prompt/menus/ModelSelector.js +27 -0
  110. package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
  111. package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
  112. package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
  113. package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
  114. package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
  115. package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
  116. package/lib/chat/prompt/menus/index.d.ts +15 -0
  117. package/lib/chat/prompt/menus/index.js +19 -0
  118. package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
  119. package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
  120. package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
  121. package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
  122. package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
  123. package/lib/chat/prompt/plugins/MentionChip.js +24 -0
  124. package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
  125. package/lib/chat/prompt/plugins/MentionNode.js +77 -0
  126. package/lib/chat/prompt/promptHistory.d.ts +52 -0
  127. package/lib/chat/prompt/promptHistory.js +123 -0
  128. package/lib/chat/prompt/stack.d.ts +81 -0
  129. package/lib/chat/prompt/stack.js +41 -0
  130. package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
  131. package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
  132. package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
  133. package/lib/chat/tools/A2AAgentDialog.js +265 -0
  134. package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
  135. package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
  136. package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
  137. package/lib/chat/tools/index.d.ts +1 -0
  138. package/lib/chat/tools/index.js +1 -0
  139. package/lib/chat/usage/ContextPie.d.ts +17 -0
  140. package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
  141. package/lib/chat/useViewportDrag.d.ts +11 -0
  142. package/lib/chat/useViewportDrag.js +61 -0
  143. package/lib/chat/viewModes.d.ts +51 -0
  144. package/lib/chat/viewModes.js +57 -0
  145. package/lib/client/AgentRuntimesClient.d.ts +10 -9
  146. package/lib/client/AgentRuntimesClient.js +1 -1
  147. package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
  148. package/lib/client/AgentsMixin.d.ts +12 -12
  149. package/lib/client/AgentsMixin.js +31 -31
  150. package/lib/client/IAgentRuntimesClient.d.ts +10 -10
  151. package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
  152. package/lib/client/SdkAgentRuntimesClient.js +10 -10
  153. package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
  154. package/lib/client/mixins/RuntimesMixin.js +54 -21
  155. package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
  156. package/lib/components/agents/AgentSummary.d.ts +13 -0
  157. package/lib/components/agents/AgentSummary.js +21 -4
  158. package/lib/components/cards/NotificationEventCard.d.ts +1 -1
  159. package/lib/components/cards/OutputCard.d.ts +1 -1
  160. package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
  161. package/lib/components/cards/ToolApprovalCard.js +1 -0
  162. package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
  163. package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
  164. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
  165. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
  166. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
  167. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
  168. package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +9 -0
  169. package/lib/components/code-sandboxes/CodeSandboxLauncher.js +95 -23
  170. package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
  171. package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
  172. package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
  173. package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
  174. package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
  175. package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
  176. package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
  177. package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
  178. package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
  179. package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
  180. package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
  181. package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
  182. package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
  183. package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +97 -0
  184. package/lib/components/code-sandboxes/codeSandboxEnvironments.js +184 -0
  185. package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
  186. package/lib/components/code-sandboxes/index.d.ts +1 -0
  187. package/lib/components/code-sandboxes/index.js +1 -0
  188. package/lib/components/context/SpaceSelect.d.ts +1 -1
  189. package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
  190. package/lib/components/icons/ArtifactIcon.d.ts +1 -0
  191. package/lib/components/icons/ArtifactIcon.js +2 -1
  192. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  193. package/lib/components/progress/CreditsIndicator.d.ts +1 -0
  194. package/lib/components/progress/CreditsIndicator.js +0 -4
  195. package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
  196. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
  197. package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
  198. package/lib/components/snippets/SnippetDialog.d.ts +1 -0
  199. package/lib/components/snippets/SnippetDialog.js +0 -4
  200. package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
  201. package/lib/components/specs/SpecPayloadPreview.js +102 -0
  202. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  203. package/lib/context/ContextDistribution.d.ts +1 -1
  204. package/lib/context/ContextInspector.d.ts +2 -1
  205. package/lib/context/ContextPanel.d.ts +1 -1
  206. package/lib/context/ContextUsage.d.ts +1 -1
  207. package/lib/context/CostTracker.d.ts +1 -1
  208. package/lib/context/CostUsageChart.d.ts +1 -1
  209. package/lib/context/CostUsageChart.js +4 -4
  210. package/lib/context/MessageHistory.d.ts +3 -2
  211. package/lib/context/TokenUsageChart.d.ts +1 -1
  212. package/lib/context/TokenUsageChart.js +4 -4
  213. package/lib/examples/A2UiAgentExample.js +15 -6
  214. package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
  215. package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
  216. package/lib/examples/A2UiContactCardExample.d.ts +10 -0
  217. package/lib/examples/A2UiContactCardExample.js +23 -170
  218. package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
  219. package/lib/examples/A2UiJupyterOutputExample.js +792 -0
  220. package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
  221. package/lib/examples/A2UiRestaurantExample.js +24 -179
  222. package/lib/examples/A2UiViewerExample.d.ts +10 -0
  223. package/lib/examples/A2UiViewerExample.js +24 -378
  224. package/lib/examples/AgUiAgenticExample.js +2 -4
  225. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
  226. package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
  227. package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
  228. package/lib/examples/AgUiSharedStateExample.js +2 -4
  229. package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
  230. package/lib/examples/AgentA2AExample.d.ts +17 -0
  231. package/lib/examples/AgentA2AExample.js +56 -0
  232. package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
  233. package/lib/examples/AgentCheckpointsExample.js +72 -54
  234. package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
  235. package/lib/examples/AgentCodeSandboxExample.js +93 -303
  236. package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
  237. package/lib/examples/AgentCodeSandboxesExample.js +56 -162
  238. package/lib/examples/AgentCodemodeExample.d.ts +7 -2
  239. package/lib/examples/AgentCodemodeExample.js +60 -125
  240. package/lib/examples/AgentCompactionExample.js +19 -135
  241. package/lib/examples/AgentEvalsExample.js +34 -66
  242. package/lib/examples/AgentGuardrailsExample.js +64 -112
  243. package/lib/examples/AgentHooksExample.d.ts +11 -0
  244. package/lib/examples/AgentHooksExample.js +30 -67
  245. package/lib/examples/AgentInferenceProviderExample.js +8 -32
  246. package/lib/examples/AgentLoopExample.d.ts +4 -2
  247. package/lib/examples/AgentLoopExample.js +45 -93
  248. package/lib/examples/AgentMCPExample.js +30 -79
  249. package/lib/examples/AgentMemoryExample.js +21 -64
  250. package/lib/examples/AgentMonitoringExample.js +33 -94
  251. package/lib/examples/AgentNotificationsExample.js +56 -95
  252. package/lib/examples/AgentOtelExample.js +35 -88
  253. package/lib/examples/AgentOutputsExample.d.ts +2 -1
  254. package/lib/examples/AgentOutputsExample.js +16 -137
  255. package/lib/examples/AgentParametersExample.js +7 -17
  256. package/lib/examples/AgentSkillsExample.js +40 -154
  257. package/lib/examples/AgentSubagentsExample.d.ts +7 -6
  258. package/lib/examples/AgentSubagentsExample.js +80 -191
  259. package/lib/examples/AgentToolApprovalsExample.js +35 -91
  260. package/lib/examples/AgentTriggersExample.js +43 -59
  261. package/lib/examples/AgentspecsExample.js +4 -4
  262. package/lib/examples/CellExample.d.ts +1 -1
  263. package/lib/examples/ChatExample.d.ts +12 -5
  264. package/lib/examples/ChatExample.js +38 -13
  265. package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
  266. package/lib/examples/CopilotKitLexicalExample.js +4 -41
  267. package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
  268. package/lib/examples/CopilotKitNotebookExample.js +2 -14
  269. package/lib/examples/DecksAgent.d.ts +21 -0
  270. package/lib/examples/DecksAgent.js +23 -0
  271. package/lib/examples/DocumentPageAgent.d.ts +19 -0
  272. package/lib/examples/DocumentPageAgent.js +15 -0
  273. package/lib/examples/Lexical2Example.d.ts +2 -2
  274. package/lib/examples/Lexical2Example.js +17 -38
  275. package/lib/examples/LexicalAgentExample.d.ts +2 -1
  276. package/lib/examples/LexicalAgentExample.js +29 -102
  277. package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
  278. package/lib/examples/LexicalAgentSidebarExample.js +99 -131
  279. package/lib/examples/LoopShellExample.d.ts +38 -0
  280. package/lib/examples/LoopShellExample.js +68 -0
  281. package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
  282. package/lib/examples/LoopWorkspaceEmbed.js +73 -0
  283. package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
  284. package/lib/examples/LoopWorkspaceExample.js +151 -0
  285. package/lib/examples/NotebookAgentExample.d.ts +13 -0
  286. package/lib/examples/NotebookAgentExample.js +36 -86
  287. package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
  288. package/lib/examples/NotebookAgentSidebarExample.js +39 -83
  289. package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
  290. package/lib/examples/NotebookCollaborationExample.js +108 -20
  291. package/lib/examples/NotebookExample.d.ts +1 -1
  292. package/lib/examples/NotebookExample.js +20 -10
  293. package/lib/examples/NotebookPageAgent.d.ts +23 -0
  294. package/lib/examples/NotebookPageAgent.js +17 -0
  295. package/lib/examples/components/ExampleWrapper.d.ts +5 -0
  296. package/lib/examples/components/ExampleWrapper.js +36 -28
  297. package/lib/examples/components/LexicalEditor.d.ts +1 -1
  298. package/lib/examples/components/LexicalEditor.js +4 -24
  299. package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
  300. package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
  301. package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
  302. package/lib/examples/example-selector.js +26 -6
  303. package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
  304. package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
  305. package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
  306. package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
  307. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
  308. package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
  309. package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
  310. package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
  311. package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
  312. package/lib/examples/index.d.ts +4 -0
  313. package/lib/examples/index.js +6 -0
  314. package/lib/examples/lexical/editorConfig.d.ts +2 -75
  315. package/lib/examples/lexical/editorConfig.js +26 -48
  316. package/lib/examples/lexical/lexical-theme.css +65 -47
  317. package/lib/examples/main.js +450 -322
  318. package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
  319. package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
  320. package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
  321. package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
  322. package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
  323. package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
  324. package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
  325. package/lib/examples/scenes/A2UiViewerScene.js +395 -0
  326. package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
  327. package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
  328. package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
  329. package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
  330. package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
  331. package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
  332. package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
  333. package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
  334. package/lib/examples/utils/exampleSurfaces.js +38 -0
  335. package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
  336. package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
  337. package/lib/examples/utils/localUrl.d.ts +2 -0
  338. package/lib/examples/utils/localUrl.js +49 -0
  339. package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
  340. package/lib/examples/utils/notebookToolbarItems.js +129 -0
  341. package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
  342. package/lib/examples/utils/runtimeTargetStore.js +82 -1
  343. package/lib/examples/utils/themedProvider.d.ts +7 -0
  344. package/lib/examples/utils/themedProvider.js +57 -4
  345. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
  346. package/lib/examples/utils/waitForAgent.d.ts +23 -0
  347. package/lib/examples/utils/waitForAgent.js +24 -0
  348. package/lib/examples2/CellExample.d.ts +1 -1
  349. package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
  350. package/lib/examples2/NotebookExample.d.ts +1 -1
  351. package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
  352. package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
  353. package/lib/examples2/main.js +24 -4
  354. package/lib/extensions/A2UIExtension.d.ts +1 -1
  355. package/lib/hooks/index.d.ts +8 -5
  356. package/lib/hooks/index.js +20 -5
  357. package/lib/hooks/useAgentRuntimes.d.ts +49 -22
  358. package/lib/hooks/useAgentRuntimes.js +214 -90
  359. package/lib/hooks/useAgentsCatalog.js +32 -4
  360. package/lib/hooks/useBrowserAgent.d.ts +26 -0
  361. package/lib/hooks/useBrowserAgent.js +75 -0
  362. package/lib/hooks/useBrowserInference.d.ts +27 -0
  363. package/lib/hooks/useBrowserInference.js +67 -0
  364. package/lib/hooks/useCheckpoints.d.ts +8 -17
  365. package/lib/hooks/useCheckpoints.js +25 -59
  366. package/lib/hooks/useConfig.d.ts +1 -1
  367. package/lib/hooks/useConfig.js +5 -1
  368. package/lib/hooks/useContextSnapshot.d.ts +18 -7
  369. package/lib/hooks/useContextSnapshot.js +14 -10
  370. package/lib/hooks/useNotifications.d.ts +11 -11
  371. package/lib/hooks/useNotifications.js +1 -1
  372. package/lib/hooks/useProjects.d.ts +7 -19
  373. package/lib/hooks/useProjects.js +5 -5
  374. package/lib/hooks/useSkills.d.ts +0 -1
  375. package/lib/hooks/useSkills.js +6 -2
  376. package/lib/hooks/useToolApprovals.d.ts +8 -8
  377. package/lib/hooks/useToolApprovals.js +3 -3
  378. package/lib/identity/AgentIdentity.d.ts +9 -2
  379. package/lib/index.d.ts +1 -0
  380. package/lib/index.js +4 -0
  381. package/lib/jupyter/index.d.ts +2 -1
  382. package/lib/jupyter/index.js +2 -1
  383. package/lib/jupyter/serverExecution.d.ts +78 -0
  384. package/lib/jupyter/serverExecution.js +258 -0
  385. package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
  386. package/lib/jupyter/useResumeServerExecutions.js +64 -0
  387. package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
  388. package/lib/lexical/ChatInlinePlugin.js +0 -36
  389. package/lib/loop/core/focusRequests.d.ts +10 -0
  390. package/lib/loop/core/focusRequests.js +46 -0
  391. package/lib/loop/core/index.d.ts +903 -0
  392. package/lib/loop/core/index.js +264 -0
  393. package/lib/loop/core/promptStore.d.ts +44 -0
  394. package/lib/loop/core/promptStore.js +63 -0
  395. package/lib/loop/core/surfaceRequests.d.ts +33 -0
  396. package/lib/loop/core/surfaceRequests.js +29 -0
  397. package/lib/loop/core/toolbar.d.ts +28 -0
  398. package/lib/loop/core/toolbar.js +59 -0
  399. package/lib/loop/embed/LoopEmbed.d.ts +57 -0
  400. package/lib/loop/embed/LoopEmbed.js +124 -0
  401. package/lib/loop/extensions.d.ts +10 -0
  402. package/lib/loop/extensions.js +49 -0
  403. package/lib/loop/index.d.ts +68 -0
  404. package/lib/loop/index.js +87 -0
  405. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
  406. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
  407. package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
  408. package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
  409. package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
  410. package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
  411. package/lib/loop/plugins/a2ui/index.d.ts +3 -0
  412. package/lib/loop/plugins/a2ui/index.js +50 -0
  413. package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
  414. package/lib/loop/plugins/a2ui-scene/index.js +28 -0
  415. package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
  416. package/lib/loop/plugins/agent-a2a/index.js +26 -0
  417. package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
  418. package/lib/loop/plugins/agent-a2ui/index.js +42 -0
  419. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
  420. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
  421. package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
  422. package/lib/loop/plugins/agent-capacity/index.js +52 -0
  423. package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
  424. package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
  425. package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
  426. package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
  427. package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
  428. package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
  429. package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
  430. package/lib/loop/plugins/agent-codemode/index.js +41 -0
  431. package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
  432. package/lib/loop/plugins/agent-compaction/index.js +34 -0
  433. package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
  434. package/lib/loop/plugins/agent-evals/index.js +25 -0
  435. package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
  436. package/lib/loop/plugins/agent-guardrails/index.js +25 -0
  437. package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
  438. package/lib/loop/plugins/agent-hooks/index.js +28 -0
  439. package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
  440. package/lib/loop/plugins/agent-inference/index.js +29 -0
  441. package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
  442. package/lib/loop/plugins/agent-mcp/index.js +25 -0
  443. package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
  444. package/lib/loop/plugins/agent-memory/index.js +25 -0
  445. package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
  446. package/lib/loop/plugins/agent-monitoring/index.js +25 -0
  447. package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
  448. package/lib/loop/plugins/agent-notifications/index.js +25 -0
  449. package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
  450. package/lib/loop/plugins/agent-otel/index.js +25 -0
  451. package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
  452. package/lib/loop/plugins/agent-outputs/index.js +25 -0
  453. package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
  454. package/lib/loop/plugins/agent-parameters/index.js +25 -0
  455. package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
  456. package/lib/loop/plugins/agent-skills/index.js +25 -0
  457. package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
  458. package/lib/loop/plugins/agent-subagents/index.js +25 -0
  459. package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
  460. package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
  461. package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
  462. package/lib/loop/plugins/agent-triggers/index.js +26 -0
  463. package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
  464. package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
  465. package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
  466. package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
  467. package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
  468. package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
  469. package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
  470. package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
  471. package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
  472. package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
  473. package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
  474. package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
  475. package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
  476. package/lib/loop/plugins/agents/SandboxView.js +43 -0
  477. package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
  478. package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
  479. package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
  480. package/lib/loop/plugins/agents/agentIcons.js +88 -0
  481. package/lib/loop/plugins/agents/browserService.d.ts +50 -0
  482. package/lib/loop/plugins/agents/browserService.js +233 -0
  483. package/lib/loop/plugins/agents/index.d.ts +13 -0
  484. package/lib/loop/plugins/agents/index.js +17 -0
  485. package/lib/loop/plugins/agents/plugin.d.ts +91 -0
  486. package/lib/loop/plugins/agents/plugin.js +201 -0
  487. package/lib/loop/plugins/agents/service.d.ts +99 -0
  488. package/lib/loop/plugins/agents/service.js +167 -0
  489. package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
  490. package/lib/loop/plugins/agents/specSubagents.js +33 -0
  491. package/lib/loop/plugins/agents/switchable.d.ts +107 -0
  492. package/lib/loop/plugins/agents/switchable.js +405 -0
  493. package/lib/loop/plugins/agents/team.d.ts +87 -0
  494. package/lib/loop/plugins/agents/team.js +143 -0
  495. package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
  496. package/lib/loop/plugins/agents/useSandboxService.js +36 -0
  497. package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
  498. package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
  499. package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
  500. package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
  501. package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
  502. package/lib/loop/plugins/agentspecs/index.js +63 -0
  503. package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
  504. package/lib/loop/plugins/chat/ChatView.js +1679 -0
  505. package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
  506. package/lib/loop/plugins/chat/chatViewTools.js +92 -0
  507. package/lib/loop/plugins/chat/index.d.ts +111 -0
  508. package/lib/loop/plugins/chat/index.js +143 -0
  509. package/lib/loop/plugins/chat/turnState.d.ts +41 -0
  510. package/lib/loop/plugins/chat/turnState.js +90 -0
  511. package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
  512. package/lib/loop/plugins/chat-extras/index.js +51 -0
  513. package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
  514. package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
  515. package/lib/loop/plugins/chat-header/index.d.ts +3 -0
  516. package/lib/loop/plugins/chat-header/index.js +21 -0
  517. package/lib/loop/plugins/chat-view/index.d.ts +10 -0
  518. package/lib/loop/plugins/chat-view/index.js +29 -0
  519. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
  520. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
  521. package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
  522. package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
  523. package/lib/loop/plugins/commands/index.d.ts +20 -0
  524. package/lib/loop/plugins/commands/index.js +148 -0
  525. package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
  526. package/lib/loop/plugins/decks/DeckSurface.js +6 -0
  527. package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
  528. package/lib/loop/plugins/decks/DecksMenu.js +42 -0
  529. package/lib/loop/plugins/decks/index.d.ts +19 -0
  530. package/lib/loop/plugins/decks/index.js +133 -0
  531. package/lib/loop/plugins/decks/surface.d.ts +7 -0
  532. package/lib/loop/plugins/decks/surface.js +11 -0
  533. package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
  534. package/lib/loop/plugins/document/DocumentView.js +68 -0
  535. package/lib/loop/plugins/document/index.d.ts +3 -0
  536. package/lib/loop/plugins/document/index.js +86 -0
  537. package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
  538. package/lib/loop/plugins/document/openingDocument.js +122 -0
  539. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
  540. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
  541. package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
  542. package/lib/loop/plugins/document-toolbar/index.js +35 -0
  543. package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
  544. package/lib/loop/plugins/document-toolbar/names.js +10 -0
  545. package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
  546. package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
  547. package/lib/loop/plugins/document-view/index.d.ts +10 -0
  548. package/lib/loop/plugins/document-view/index.js +28 -0
  549. package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
  550. package/lib/loop/plugins/graph/GraphToggle.js +22 -0
  551. package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
  552. package/lib/loop/plugins/graph/GraphView.js +6 -0
  553. package/lib/loop/plugins/graph/index.d.ts +5 -0
  554. package/lib/loop/plugins/graph/index.js +80 -0
  555. package/lib/loop/plugins/graph/viewType.d.ts +10 -0
  556. package/lib/loop/plugins/graph/viewType.js +14 -0
  557. package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
  558. package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
  559. package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
  560. package/lib/loop/plugins/input-prompt/index.js +26 -0
  561. package/lib/loop/plugins/models/index.d.ts +3 -0
  562. package/lib/loop/plugins/models/index.js +49 -0
  563. package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
  564. package/lib/loop/plugins/notebook/NotebookView.js +189 -0
  565. package/lib/loop/plugins/notebook/index.d.ts +3 -0
  566. package/lib/loop/plugins/notebook/index.js +91 -0
  567. package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
  568. package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
  569. package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
  570. package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
  571. package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
  572. package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
  573. package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
  574. package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
  575. package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
  576. package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
  577. package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
  578. package/lib/loop/plugins/notebook-view/index.js +30 -0
  579. package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
  580. package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
  581. package/lib/loop/plugins/page-layout/index.d.ts +71 -0
  582. package/lib/loop/plugins/page-layout/index.js +160 -0
  583. package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
  584. package/lib/loop/plugins/plugins-panel/index.js +74 -0
  585. package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
  586. package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
  587. package/lib/loop/plugins/prompt/index.d.ts +11 -0
  588. package/lib/loop/plugins/prompt/index.js +73 -0
  589. package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
  590. package/lib/loop/plugins/shell/editorChoice.js +58 -0
  591. package/lib/loop/plugins/shell/index.d.ts +47 -0
  592. package/lib/loop/plugins/shell/index.js +142 -0
  593. package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
  594. package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
  595. package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
  596. package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
  597. package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
  598. package/lib/loop/plugins/subagent-activity/index.js +42 -0
  599. package/lib/loop/plugins/view-switch/index.d.ts +46 -0
  600. package/lib/loop/plugins/view-switch/index.js +68 -0
  601. package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
  602. package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
  603. package/lib/loop/plugins/window-frame/index.d.ts +6 -0
  604. package/lib/loop/plugins/window-frame/index.js +79 -0
  605. package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
  606. package/lib/loop/plugins/window-frame/slots.js +30 -0
  607. package/lib/loop/presets.d.ts +181 -0
  608. package/lib/loop/presets.js +141 -0
  609. package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
  610. package/lib/loop/shell/LoopWorkspace.js +231 -0
  611. package/lib/loop/shell/PluginToggles.d.ts +21 -0
  612. package/lib/loop/shell/PluginToggles.js +41 -0
  613. package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
  614. package/lib/loop/shell/ViewSwitcher.js +43 -0
  615. package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
  616. package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
  617. package/lib/loop/shell/index.d.ts +10 -0
  618. package/lib/loop/shell/index.js +14 -0
  619. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
  620. package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
  621. package/lib/loop-example-main.d.ts +1 -0
  622. package/lib/loop-example-main.js +42 -0
  623. package/lib/loop-main.d.ts +1 -0
  624. package/lib/loop-main.js +138 -0
  625. package/lib/mcp/McpServerManager.d.ts +1 -1
  626. package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
  627. package/lib/models/CodeSandboxVariant.d.ts +13 -5
  628. package/lib/models/CodeSandboxVariant.js +17 -5
  629. package/lib/models/Content.d.ts +26 -0
  630. package/lib/models/Deck.d.ts +14 -0
  631. package/lib/models/Environment.d.ts +678 -5
  632. package/lib/models/Environment.js +12 -1
  633. package/lib/models/EnvironmentDTO.d.ts +24 -6
  634. package/lib/models/EnvironmentDTO.js +13 -2
  635. package/lib/models/Exercise.d.ts +0 -2
  636. package/lib/models/ItemType.d.ts +1 -1
  637. package/lib/models/Library.d.ts +0 -2
  638. package/lib/models/Notebook.d.ts +0 -2
  639. package/lib/models/ProjectDTO.d.ts +2 -2
  640. package/lib/models/ProjectDTO.js +4 -4
  641. package/lib/models/Runtime.d.ts +17 -11
  642. package/lib/models/RuntimeDTO.d.ts +16 -7
  643. package/lib/models/RuntimeDTO.js +9 -9
  644. package/lib/models/Space.d.ts +10 -0
  645. package/lib/models/Space.js +1 -1
  646. package/lib/models/SpaceDTO.d.ts +1 -1
  647. package/lib/models/SpaceItem.d.ts +2 -2
  648. package/lib/models/environments.generated.d.ts +141 -0
  649. package/lib/models/environments.generated.js +13 -0
  650. package/lib/models/index.d.ts +1 -1
  651. package/lib/models/index.js +1 -1
  652. package/lib/protocols/A2AAdapter.d.ts +39 -6
  653. package/lib/protocols/A2AAdapter.js +180 -11
  654. package/lib/protocols/ACPAdapter.js +40 -37
  655. package/lib/protocols/AGUIAdapter.d.ts +14 -0
  656. package/lib/protocols/AGUIAdapter.js +34 -9
  657. package/lib/protocols/BrowserAgentAdapter.d.ts +125 -0
  658. package/lib/protocols/BrowserAgentAdapter.js +317 -0
  659. package/lib/protocols/VercelAIAdapter.d.ts +10 -0
  660. package/lib/protocols/VercelAIAdapter.js +27 -7
  661. package/lib/protocols/index.d.ts +1 -0
  662. package/lib/protocols/index.js +1 -0
  663. package/lib/runtimes/actions.d.ts +8 -3
  664. package/lib/runtimes/actions.js +46 -14
  665. package/lib/runtimes/apis.d.ts +13 -4
  666. package/lib/runtimes/browser/agent.d.ts +54 -0
  667. package/lib/runtimes/browser/agent.js +63 -0
  668. package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
  669. package/lib/runtimes/browser/anonymousToken.js +300 -0
  670. package/lib/runtimes/browser/frontendTools.d.ts +61 -0
  671. package/lib/runtimes/browser/frontendTools.js +152 -0
  672. package/lib/runtimes/browser/index.d.ts +11 -0
  673. package/lib/runtimes/browser/index.js +20 -0
  674. package/lib/runtimes/browser/model.d.ts +52 -0
  675. package/lib/runtimes/browser/model.js +110 -0
  676. package/lib/runtimes/browser/protocol.d.ts +54 -0
  677. package/lib/runtimes/browser/protocol.js +35 -0
  678. package/lib/runtimes/browser/subagents.d.ts +131 -0
  679. package/lib/runtimes/browser/subagents.js +241 -0
  680. package/lib/runtimes/index.d.ts +3 -0
  681. package/lib/runtimes/index.js +3 -0
  682. package/lib/runtimes/lifecycle.d.ts +76 -0
  683. package/lib/runtimes/lifecycle.js +99 -0
  684. package/lib/runtimes/variants.d.ts +172 -0
  685. package/lib/runtimes/variants.js +187 -0
  686. package/lib/services/reconnectToRuntime.d.ts +2 -2
  687. package/lib/services/reconnectToRuntime.js +3 -3
  688. package/lib/services/sandboxServiceManagers.d.ts +2 -2
  689. package/lib/services/sandboxServiceManagers.js +11 -11
  690. package/lib/specs/agents/agents.d.ts +129 -112
  691. package/lib/specs/agents/agents.js +8200 -5044
  692. package/lib/specs/evals.js +9 -0
  693. package/lib/specs/frontendTools.d.ts +4 -0
  694. package/lib/specs/frontendTools.js +77 -3
  695. package/lib/specs/mcpServers.d.ts +1 -0
  696. package/lib/specs/mcpServers.js +38 -15
  697. package/lib/specs/models.d.ts +18 -0
  698. package/lib/specs/models.js +154 -0
  699. package/lib/specs/outputs.d.ts +2 -0
  700. package/lib/specs/outputs.js +31 -0
  701. package/lib/specs/personas.js +1 -1
  702. package/lib/specs/skills.js +7 -7
  703. package/lib/specs/teams/teams.d.ts +2 -0
  704. package/lib/specs/teams/teams.js +628 -111
  705. package/lib/state/index.d.ts +1 -1
  706. package/lib/state/index.js +1 -1
  707. package/lib/state/substates/RuntimesState.d.ts +5 -5
  708. package/lib/state/substates/RuntimesState.js +14 -14
  709. package/lib/state/substates/index.d.ts +1 -1
  710. package/lib/state/substates/index.js +1 -1
  711. package/lib/stores/agentRuntimeStore.d.ts +43 -1
  712. package/lib/stores/agentRuntimeStore.js +100 -11
  713. package/lib/stores/index.d.ts +1 -1
  714. package/lib/stores/index.js +1 -1
  715. package/lib/stories/Button.d.ts +1 -1
  716. package/lib/stories/Button.stories.d.ts +1 -1
  717. package/lib/stories/Header.d.ts +1 -1
  718. package/lib/stories/Header.stories.d.ts +1 -1
  719. package/lib/test-setup.js +66 -0
  720. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
  721. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
  722. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
  723. package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
  724. package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
  725. package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
  726. package/lib/tools/adapters/commands/index.d.ts +1 -0
  727. package/lib/tools/adapters/commands/index.js +5 -0
  728. package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
  729. package/lib/tools/index.d.ts +1 -0
  730. package/lib/tools/index.js +1 -0
  731. package/lib/types/a2a.d.ts +15 -1
  732. package/lib/types/agents-lifecycle.d.ts +11 -6
  733. package/lib/types/agents.d.ts +31 -6
  734. package/lib/types/agentspecs.d.ts +120 -4
  735. package/lib/types/chat.d.ts +251 -3
  736. package/lib/types/checkpoints.d.ts +20 -0
  737. package/lib/types/config.d.ts +13 -1
  738. package/lib/types/connection.d.ts +1 -1
  739. package/lib/types/evals.d.ts +2 -0
  740. package/lib/types/messages.d.ts +60 -0
  741. package/lib/types/models.d.ts +26 -0
  742. package/lib/types/notifications.d.ts +15 -6
  743. package/lib/types/outputs.d.ts +2 -0
  744. package/lib/types/protocol.d.ts +7 -2
  745. package/lib/types/stream.d.ts +48 -3
  746. package/lib/types/stream.js +5 -0
  747. package/lib/types/teams.d.ts +102 -4
  748. package/lib/types/tool-approvals.d.ts +1 -1
  749. package/lib/types/tools.d.ts +8 -2
  750. package/lib/utils/utils.js +7 -1
  751. package/package.json +376 -361
  752. package/scripts/codegen/compose.py +208 -0
  753. package/scripts/codegen/generate_agents.py +202 -31
  754. package/scripts/codegen/generate_evals.py +2 -0
  755. package/scripts/codegen/generate_frontend_tools.py +35 -6
  756. package/scripts/codegen/generate_mcp_servers.py +2 -2
  757. package/scripts/codegen/generate_models.py +40 -15
  758. package/scripts/codegen/generate_outputs.py +2 -0
  759. package/scripts/codegen/generate_sandbox_agents.py +76 -62
  760. package/scripts/codegen/generate_skills.py +2 -2
  761. package/scripts/codegen/generate_teams.py +178 -4
  762. package/scripts/codegen/generate_tools.py +6 -4
  763. package/scripts/gen_workers.py +278 -110
  764. package/scripts/generate-environments-types.py +404 -0
  765. package/lib/chat/prompt/InputFooter.d.ts +0 -58
  766. package/lib/chat/prompt/InputFooter.js +0 -194
  767. package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
  768. package/lib/chat/prompt/InputPromptFooter.js +0 -15
  769. package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
  770. package/lib/chat/prompt/InputPromptHeader.js +0 -15
  771. package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
  772. package/lib/hooks/useRuntimes.d.ts +0 -5
  773. package/lib/hooks/useRuntimes.js +0 -34
  774. package/lib/jupyter/kernelsHandler.d.ts +0 -8
  775. package/lib/jupyter/kernelsHandler.js +0 -39
  776. package/lib/models/Dataset.d.ts +0 -16
  777. package/lib/utils/Cells.d.ts +0 -2
  778. package/lib/utils/Cells.js +0 -28
  779. /package/lib/models/{Dataset.js → Deck.js} +0 -0
@@ -5,25 +5,657 @@
5
5
  /**
6
6
  * Computing environments API functions for the Datalayer platform.
7
7
  *
8
- * Provides functions for managing computing environment configurations.
8
+ * `GET /environments` lists the platform's environments and the user
9
+ * environments the caller may use. The registry beside it (PLAN_ENV.md,
10
+ * section 9, served by Runtimes since E1-01) creates environments, their
11
+ * versions, builds and artifacts, and serves build logs. The specification a
12
+ * version carries is typed from the JSON Schema `code-sandboxes` exports
13
+ * (D-14), in `models/environments.generated.ts`.
14
+ *
15
+ * A conditional write names the record it replaces with `If-Match`, the
16
+ * `etag` every record carries. A keyed create is replayed with the same
17
+ * `Idempotency-Key`. Every call may carry the caller's `X-Correlation-Id`,
18
+ * which a refusal answers in its section 10 body: `asEnvironmentsError` reads
19
+ * that body from the error a call rejects with.
9
20
  *
10
21
  * @module api/runtimes/environments
11
22
  */
12
23
  import { requestDatalayerAPI } from '@datalayer/core/lib/api/DatalayerApi';
13
24
  import { API_BASE_PATHS, DEFAULT_SERVICE_URLS, } from '@datalayer/core/lib/api/constants';
14
- import { validateToken } from '@datalayer/core/lib/api/utils/validation';
25
+ import { validateRequiredString, validateToken, } from '@datalayer/core/lib/api/utils/validation';
26
+ const registryUrl = (baseUrl, path, query = {}) => {
27
+ const params = new URLSearchParams();
28
+ for (const [name, value] of Object.entries(query)) {
29
+ if (value !== undefined && value !== '') {
30
+ params.set(name, String(value));
31
+ }
32
+ }
33
+ const search = params.toString();
34
+ return `${baseUrl}${API_BASE_PATHS.RUNTIMES}${path}${search ? `?${search}` : ''}`;
35
+ };
36
+ const segment = (value, label) => {
37
+ validateRequiredString(value, label);
38
+ return encodeURIComponent(value);
39
+ };
40
+ const send = (token, method, url, options, body) => {
41
+ const headers = {};
42
+ if (options.ifMatch) {
43
+ headers['If-Match'] = options.ifMatch;
44
+ }
45
+ if (options.idempotencyKey) {
46
+ headers['Idempotency-Key'] = options.idempotencyKey;
47
+ }
48
+ if (options.correlationId) {
49
+ headers['X-Correlation-Id'] = options.correlationId;
50
+ }
51
+ return requestDatalayerAPI({
52
+ url,
53
+ method,
54
+ token,
55
+ headers,
56
+ signal: options.signal,
57
+ ...(body === undefined ? {} : { body }),
58
+ });
59
+ };
60
+ /**
61
+ * The section 10 body of a refusal, from the error a call rejected with.
62
+ *
63
+ * @param error - What an environments call rejected with
64
+ * @returns The body, with its `code` and `correlationId`; `undefined` when the
65
+ * error is not a refusal that carries one
66
+ */
67
+ export const asEnvironmentsError = async (error) => {
68
+ const response = error
69
+ ?.response;
70
+ if (typeof response?.json !== 'function') {
71
+ return undefined;
72
+ }
73
+ try {
74
+ const body = await response.json();
75
+ return body &&
76
+ typeof body === 'object' &&
77
+ typeof body.code === 'string'
78
+ ? body
79
+ : undefined;
80
+ }
81
+ catch {
82
+ return undefined;
83
+ }
84
+ };
15
85
  /**
16
- * List all available computing environments.
86
+ * List the environments the caller may use: the platform's, then its own and
87
+ * its organizations'.
17
88
  * @param token - Authentication token
18
89
  * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
19
- * @returns Promise resolving to list of available environments
90
+ * @param query - Filters, and the cursor of the page to read
91
+ * @param options - Correlation id and abort signal
92
+ * @returns Promise resolving to one page of environments
20
93
  * @throws {Error} If authentication token is missing or invalid
21
94
  */
22
- export const listEnvironments = async (token, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
95
+ export const listEnvironments = async (token, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES, query = {}, options = {}) => {
23
96
  validateToken(token);
24
- return requestDatalayerAPI({
25
- url: `${baseUrl}${API_BASE_PATHS.RUNTIMES}/environments`,
26
- method: 'GET',
27
- token,
97
+ return send(token, 'GET', registryUrl(baseUrl, '/environments', { ...query }), options);
98
+ };
99
+ /**
100
+ * Create a user environment, for the caller's account or an organization it owns.
101
+ * @param token - Authentication token
102
+ * @param request - Its name, and optionally title, description, visibility and owner
103
+ * @param options - Idempotency key, correlation id and abort signal
104
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
105
+ * @returns Promise resolving to the environment created, or the one a replayed key created
106
+ */
107
+ export const createEnvironment = async (token, request, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
108
+ validateToken(token);
109
+ return send(token, 'POST', registryUrl(baseUrl, '/environments'), options, request);
110
+ };
111
+ /**
112
+ * Get a user environment.
113
+ * @param token - Authentication token
114
+ * @param environmentUid - The environment's uid
115
+ * @param options - Correlation id and abort signal
116
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
117
+ * @returns Promise resolving to the environment
118
+ */
119
+ export const getEnvironment = async (token, environmentUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
120
+ validateToken(token);
121
+ return send(token, 'GET', registryUrl(baseUrl, `/environments/${segment(environmentUid, 'Environment UID')}`), options);
122
+ };
123
+ /**
124
+ * Change an environment's title, description or visibility.
125
+ * @param token - Authentication token
126
+ * @param environmentUid - The environment's uid
127
+ * @param changes - The fields to change
128
+ * @param ifMatch - The `etag` of the environment read; a stale one is refused with 412
129
+ * @param options - Correlation id and abort signal
130
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
131
+ * @returns Promise resolving to the environment changed
132
+ */
133
+ export const updateEnvironment = async (token, environmentUid, changes, ifMatch, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
134
+ validateToken(token);
135
+ validateRequiredString(ifMatch, 'If-Match');
136
+ return send(token, 'PATCH', registryUrl(baseUrl, `/environments/${segment(environmentUid, 'Environment UID')}`), { ...options, ifMatch }, changes);
137
+ };
138
+ /**
139
+ * Delete an environment, softly. Refused with 409 `DL_ENV_CONFLICT` while a
140
+ * version is promoted, an artifact is referenced, or a runtime still runs one
141
+ * of its artifacts, whoever launched it: the refusal's `detail` is an
142
+ * `IEnvironmentDeletionConflict`, whose `runtimes` name each one (E1-15).
143
+ * Refused with 503 `DL_ENV_UNAVAILABLE` when the service cannot read which
144
+ * runtimes run it; nothing is deleted then either.
145
+ * @param token - Authentication token
146
+ * @param environmentUid - The environment's uid
147
+ * @param options - If-Match, correlation id and abort signal
148
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
149
+ * @returns Promise resolving once the environment is deleted
150
+ */
151
+ export const deleteEnvironment = async (token, environmentUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
152
+ validateToken(token);
153
+ await send(token, 'DELETE', registryUrl(baseUrl, `/environments/${segment(environmentUid, 'Environment UID')}`), options);
154
+ };
155
+ /**
156
+ * Archive an environment: kept and readable, no longer offered for launches.
157
+ * @param token - Authentication token
158
+ * @param environmentUid - The environment's uid
159
+ * @param options - If-Match, correlation id and abort signal
160
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
161
+ * @returns Promise resolving to the environment archived
162
+ */
163
+ export const archiveEnvironment = async (token, environmentUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
164
+ validateToken(token);
165
+ return send(token, 'POST', registryUrl(baseUrl, `/environments/${segment(environmentUid, 'Environment UID')}/archive`), options);
166
+ };
167
+ /**
168
+ * Promote a version, or none with `versionUid: null`; a rollback is the same
169
+ * call with an older version, and builds nothing (E1-15).
170
+ *
171
+ * A partially ready version is promoted only when
172
+ * `acknowledgeUnavailableVariants` names exactly its unavailable variants:
173
+ * otherwise 409 `DL_ENV_CONFLICT`, whose `detail` is an
174
+ * `IEnvironmentPromotionConflict` naming them. The promotion is recorded on
175
+ * the version, as its `promotion`. Asking again for the version already
176
+ * promoted writes nothing and answers the environment, even with a stale
177
+ * `If-Match`; asking for another with a stale one is refused with 412.
178
+ * @param token - Authentication token
179
+ * @param environmentUid - The environment's uid
180
+ * @param request - `{versionUid, acknowledgeUnavailableVariants}`
181
+ * @param ifMatch - The `etag` of the environment read; a stale one is refused with 412
182
+ * @param options - Correlation id and abort signal
183
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
184
+ * @returns Promise resolving to the environment, naming its promoted version
185
+ */
186
+ export const promoteEnvironmentVersion = async (token, environmentUid, request, ifMatch, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
187
+ validateToken(token);
188
+ validateRequiredString(ifMatch, 'If-Match');
189
+ return send(token, 'PUT', registryUrl(baseUrl, `/environments/${segment(environmentUid, 'Environment UID')}/promoted-version`), { ...options, ifMatch }, request);
190
+ };
191
+ /**
192
+ * Create a draft version of an environment from a specification.
193
+ * @param token - Authentication token
194
+ * @param environmentUid - The environment's uid
195
+ * @param request - `{spec, label}`
196
+ * @param options - Idempotency key, correlation id and abort signal
197
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
198
+ * @returns Promise resolving to the draft, or the one a replayed key created
199
+ */
200
+ export const createEnvironmentVersion = async (token, environmentUid, request, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
201
+ validateToken(token);
202
+ return send(token, 'POST', registryUrl(baseUrl, `/environments/${segment(environmentUid, 'Environment UID')}/versions`), options, request);
203
+ };
204
+ /**
205
+ * List an environment's versions, newest first.
206
+ * @param token - Authentication token
207
+ * @param environmentUid - The environment's uid
208
+ * @param page - The cursor of the page to read, and its size
209
+ * @param options - Correlation id and abort signal
210
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
211
+ * @returns Promise resolving to one page of versions
212
+ */
213
+ export const listEnvironmentVersions = async (token, environmentUid, page = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
214
+ validateToken(token);
215
+ return send(token, 'GET', registryUrl(baseUrl, `/environments/${segment(environmentUid, 'Environment UID')}/versions`, { ...page }), options);
216
+ };
217
+ /**
218
+ * Get a version, with its specification and its status.
219
+ * @param token - Authentication token
220
+ * @param versionUid - The version's uid
221
+ * @param options - Correlation id and abort signal
222
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
223
+ * @returns Promise resolving to the version
224
+ */
225
+ export const getEnvironmentVersion = async (token, versionUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
226
+ validateToken(token);
227
+ return send(token, 'GET', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}`), options);
228
+ };
229
+ /**
230
+ * Edit a draft's specification or label.
231
+ * @param token - Authentication token
232
+ * @param versionUid - The version's uid
233
+ * @param changes - `{spec, label}`, either or both
234
+ * @param ifMatch - The `etag` of the version read; a stale one is refused with 412
235
+ * @param options - Correlation id and abort signal
236
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
237
+ * @returns Promise resolving to the draft changed
238
+ */
239
+ export const updateEnvironmentVersion = async (token, versionUid, changes, ifMatch, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
240
+ validateToken(token);
241
+ validateRequiredString(ifMatch, 'If-Match');
242
+ return send(token, 'PATCH', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}`), { ...options, ifMatch }, changes);
243
+ };
244
+ /**
245
+ * Validate a version: a dry run answering a capability report per variant.
246
+ * @param token - Authentication token
247
+ * @param versionUid - The version's uid
248
+ * @param request - `{variants}`: the version's own variants when absent
249
+ * @param options - Correlation id and abort signal
250
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
251
+ * @returns Promise resolving to the report
252
+ */
253
+ export const validateEnvironmentVersion = async (token, versionUid, request = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
254
+ validateToken(token);
255
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/validate`), options, request);
256
+ };
257
+ /**
258
+ * Resolve a version into its lock. The service answers 501 until PLAN_ENV.md
259
+ * E1-04 builds the resolver, whose answer this resolves to.
260
+ * @param token - Authentication token
261
+ * @param versionUid - The version's uid
262
+ * @param options - Correlation id and abort signal
263
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
264
+ * @returns Promise resolving to the service's answer
265
+ */
266
+ export const resolveEnvironmentVersion = async (token, versionUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
267
+ validateToken(token);
268
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/resolve`), options);
269
+ };
270
+ /**
271
+ * Queue a build per variant and region.
272
+ * @param token - Authentication token
273
+ * @param versionUid - The version's uid
274
+ * @param request - `{variants, requiredVariants, regions, force}`
275
+ * @param options - Idempotency key, correlation id and abort signal
276
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
277
+ * @returns Promise resolving to the builds queued, or those a replayed key queued
278
+ */
279
+ export const createEnvironmentBuilds = async (token, versionUid, request = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
280
+ validateToken(token);
281
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/builds`), options, request);
282
+ };
283
+ /**
284
+ * List a version's builds, newest first.
285
+ * @param token - Authentication token
286
+ * @param versionUid - The version's uid
287
+ * @param page - The cursor of the page to read, and its size
288
+ * @param options - Correlation id and abort signal
289
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
290
+ * @returns Promise resolving to one page of builds
291
+ */
292
+ export const listEnvironmentBuilds = async (token, versionUid, page = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
293
+ validateToken(token);
294
+ return send(token, 'GET', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/builds`, { ...page }), options);
295
+ };
296
+ /**
297
+ * The sandboxes running a version now: yours by uid, anybody else's counted (E2-19).
298
+ * @param token - Authentication token
299
+ * @param versionUid - The version's uid
300
+ * @param options - Correlation id and abort signal
301
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
302
+ * @returns Promise resolving to the version's live sandboxes
303
+ */
304
+ export const getEnvironmentVersionSandboxes = async (token, versionUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
305
+ validateToken(token);
306
+ return send(token, 'GET', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/sandboxes`), options);
307
+ };
308
+ /**
309
+ * An owner's build quotas and what it holds against each (E1-13, E2-19).
310
+ * @param token - Authentication token
311
+ * @param owner - The caller's own when empty; an organization's by its uid
312
+ * @param options - Correlation id and abort signal
313
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
314
+ * @returns Promise resolving to the limits and the holdings
315
+ */
316
+ export const getEnvironmentQuotas = async (token, owner = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
317
+ validateToken(token);
318
+ const query = {};
319
+ if (owner.ownerType) {
320
+ query.ownerType = owner.ownerType;
321
+ }
322
+ if (owner.ownerUid) {
323
+ query.ownerUid = owner.ownerUid;
324
+ }
325
+ return send(token, 'GET', registryUrl(baseUrl, '/environment-quotas', query), options);
326
+ };
327
+ /**
328
+ * List a version's artifacts, one per variant and region.
329
+ * @param token - Authentication token
330
+ * @param versionUid - The version's uid
331
+ * @param page - The cursor of the page to read, and its size
332
+ * @param options - Correlation id and abort signal
333
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
334
+ * @returns Promise resolving to one page of artifacts
335
+ */
336
+ export const listEnvironmentArtifacts = async (token, versionUid, page = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
337
+ validateToken(token);
338
+ return send(token, 'GET', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/artifacts`, { ...page }), options);
339
+ };
340
+ /**
341
+ * Launch a trial sandbox of a ready or partially ready version, before it is
342
+ * promoted (E1-14).
343
+ *
344
+ * Only an owner tries a version. The runtime is launched as `POST /runtimes`
345
+ * launches one, with the version pinned, a given name saying which version it
346
+ * tries, and a credits limit no higher than the service's cap. A draft, a
347
+ * failed or a deprecated version is refused with 409 `DL_ENV_CONFLICT`, and a
348
+ * version with no artifact on the plane with 422 `DL_ENV_ARTIFACT_MISSING`.
349
+ * @param token - Authentication token
350
+ * @param versionUid - The version's uid
351
+ * @param request - `{creditsLimit}`, lowered to the service's cap when higher
352
+ * @param options - Correlation id and abort signal
353
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
354
+ * @returns Promise resolving to the runtime launched, its environment naming the version and artifact
355
+ */
356
+ export const trialEnvironmentVersion = async (token, versionUid, request = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
357
+ validateToken(token);
358
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/trial`), options, request);
359
+ };
360
+ /**
361
+ * Publish a promoted version to the public Library (D-12, E2-15).
362
+ *
363
+ * Only an owner publishes (D-19), and only a version whose every input is
364
+ * public — no build secret, only public indexes — and whose Datalayer
365
+ * artifact passed its scan: otherwise the refusal is `DL_ENV_PUBLICATION_BLOCKED`.
366
+ * The snapshot frozen is immutable, so publishing the same version again reads
367
+ * it back and a withdrawal followed by a re-publish restores exactly what was
368
+ * public.
369
+ * @param token - Authentication token
370
+ * @param versionUid - The version's uid
371
+ * @param options - Optional If-Match, correlation id and abort signal
372
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
373
+ * @returns Promise resolving to the publication, with its immutable snapshot
374
+ */
375
+ export const publishEnvironmentVersion = async (token, versionUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
376
+ validateToken(token);
377
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/publish`), options);
378
+ };
379
+ /**
380
+ * Withdraw a version from the public Library; running sandboxes keep it (D-12,
381
+ * E2-15). The snapshot is kept, so a later publish restores exactly what was
382
+ * public.
383
+ * @param token - Authentication token
384
+ * @param versionUid - The version's uid
385
+ * @param options - Correlation id and abort signal
386
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
387
+ * @returns Promise resolving to the withdrawn publication
388
+ */
389
+ export const unpublishEnvironmentVersion = async (token, versionUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
390
+ validateToken(token);
391
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/unpublish`), options);
392
+ };
393
+ /**
394
+ * A version's public publication and its immutable snapshot (D-12, E2-15), or
395
+ * a 404 when it is not public. The publication is world-visible, so any
396
+ * signed-in caller reads it; a version never published, or one withdrawn,
397
+ * reads 404.
398
+ * @param token - Authentication token
399
+ * @param versionUid - The version's uid
400
+ * @param options - Correlation id and abort signal
401
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
402
+ * @returns Promise resolving to the publication, with its immutable snapshot
403
+ */
404
+ export const getEnvironmentPublication = async (token, versionUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
405
+ validateToken(token);
406
+ return send(token, 'GET', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/publication`), options);
407
+ };
408
+ /**
409
+ * Fork a published version into the caller's own private environment (D-12,
410
+ * E2-15).
411
+ *
412
+ * Any signed-in caller forks. The fork is made from the published version's
413
+ * exact spec and reuses the published Datalayer artifact — the same immutable
414
+ * reference — when its inputs are unchanged, so it launches without a rebuild;
415
+ * a fork under a new `name` re-specialises the spec and builds fresh.
416
+ * @param token - Authentication token
417
+ * @param versionUid - The published version's uid
418
+ * @param request - `{name}`: the source environment's name by default
419
+ * @param options - Correlation id and abort signal
420
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
421
+ * @returns Promise resolving to the fork: its environment, version and reused artifacts
422
+ */
423
+ export const forkEnvironmentVersion = async (token, versionUid, request = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
424
+ validateToken(token);
425
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/fork`), options, request);
426
+ };
427
+ /**
428
+ * Deprecate a version: no new launches, and running sandboxes keep it.
429
+ * @param token - Authentication token
430
+ * @param versionUid - The version's uid
431
+ * @param options - If-Match, correlation id and abort signal
432
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
433
+ * @returns Promise resolving to the version deprecated
434
+ */
435
+ export const deprecateEnvironmentVersion = async (token, versionUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
436
+ validateToken(token);
437
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-versions/${segment(versionUid, 'Version UID')}/deprecate`), options);
438
+ };
439
+ /**
440
+ * Get a build.
441
+ * @param token - Authentication token
442
+ * @param buildUid - The build's uid
443
+ * @param options - Correlation id and abort signal
444
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
445
+ * @returns Promise resolving to the build
446
+ */
447
+ export const getEnvironmentBuild = async (token, buildUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
448
+ validateToken(token);
449
+ return send(token, 'GET', registryUrl(baseUrl, `/environment-builds/${segment(buildUid, 'Build UID')}`), options);
450
+ };
451
+ /**
452
+ * Read a build's stored log chunks after a cursor: the polling side of D-15.
453
+ * @param token - Authentication token
454
+ * @param buildUid - The build's uid
455
+ * @param page - `cursor`, the sequence of the last chunk read, and the page size
456
+ * @param options - Correlation id and abort signal
457
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
458
+ * @returns Promise resolving to the chunks, the next cursor, and whether the log is complete
459
+ */
460
+ export const getEnvironmentBuildLogs = async (token, buildUid, page = {}, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
461
+ validateToken(token);
462
+ return send(token, 'GET', registryUrl(baseUrl, `/environment-builds/${segment(buildUid, 'Build UID')}/logs`, { ...page }), options);
463
+ };
464
+ /**
465
+ * Cancel a build that has not ended.
466
+ * @param token - Authentication token
467
+ * @param buildUid - The build's uid
468
+ * @param options - If-Match, correlation id and abort signal
469
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
470
+ * @returns Promise resolving to the build cancelled
471
+ */
472
+ export const cancelEnvironmentBuild = async (token, buildUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
473
+ validateToken(token);
474
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-builds/${segment(buildUid, 'Build UID')}/cancel`), options);
475
+ };
476
+ /**
477
+ * Queue the next attempt of a cancelled build, or of one that failed under a
478
+ * retryable code, once however often it is asked for.
479
+ *
480
+ * A retryable failure — a timeout, a quota, a missing artifact, an unmapped
481
+ * provider failure — reopens its version, `failed` back to `building`. Any
482
+ * other failure is refused with `DL_ENV_CONFLICT` naming the code: a new
483
+ * version is what changes it, not another attempt.
484
+ * @param token - Authentication token
485
+ * @param buildUid - The build's uid
486
+ * @param options - Correlation id and abort signal
487
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
488
+ * @returns Promise resolving to the attempt queued
489
+ */
490
+ export const retryEnvironmentBuild = async (token, buildUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
491
+ validateToken(token);
492
+ return send(token, 'POST', registryUrl(baseUrl, `/environment-builds/${segment(buildUid, 'Build UID')}/retry`), options);
493
+ };
494
+ // -- Following a build's log (D-15) --------------------------------------------
495
+ /** The event the log stream ends with, once the build is terminal and every chunk is sent. */
496
+ export const BUILD_LOG_END_EVENT = 'end';
497
+ /** The service refused to stream the log; asking again would be refused again. */
498
+ export class BuildLogSubscriptionRefused extends Error {
499
+ status;
500
+ detail;
501
+ constructor(status, detail) {
502
+ super(`Following the build log was refused with ${status}: ${detail}`);
503
+ this.status = status;
504
+ this.detail = detail;
505
+ this.name = 'BuildLogSubscriptionRefused';
506
+ }
507
+ }
508
+ /** The complete events of what has arrived, and the start of one still arriving. */
509
+ const readServerSentEvents = (buffer) => {
510
+ const blocks = buffer.replace(/\r\n/g, '\n').split('\n\n');
511
+ const rest = blocks.pop() ?? '';
512
+ const events = blocks
513
+ .filter(block => block.trim() !== '')
514
+ .map(block => {
515
+ const framed = { event: 'message', data: '' };
516
+ const data = [];
517
+ for (const line of block.split('\n')) {
518
+ if (line.startsWith(':')) {
519
+ continue;
520
+ }
521
+ const colon = line.indexOf(':');
522
+ const field = colon === -1 ? line : line.slice(0, colon);
523
+ const value = colon === -1 ? '' : line.slice(colon + 1).replace(/^ /, '');
524
+ if (field === 'id') {
525
+ framed.id = value;
526
+ }
527
+ else if (field === 'event') {
528
+ framed.event = value;
529
+ }
530
+ else if (field === 'data') {
531
+ data.push(value);
532
+ }
533
+ }
534
+ framed.data = data.join('\n');
535
+ return framed;
28
536
  });
537
+ return { events, rest };
538
+ };
539
+ const pause = (milliseconds, signal) => new Promise(resolve => {
540
+ if (milliseconds <= 0 || signal?.aborted) {
541
+ resolve();
542
+ return;
543
+ }
544
+ const timer = setTimeout(resolve, milliseconds);
545
+ signal?.addEventListener('abort', () => {
546
+ clearTimeout(timer);
547
+ resolve();
548
+ }, { once: true });
549
+ });
550
+ /**
551
+ * Follow a build's log until the build is terminal (D-15).
552
+ *
553
+ * Modelled on core's `subscribeToExecution`: the stream is Server-Sent Events
554
+ * read with `fetch`, which unlike `EventSource` carries the bearer token. Each
555
+ * event's id is the sequence of its chunk. A connection that drops, before the
556
+ * service answered or in the middle of the stream, is resumed with the last id
557
+ * received as `Last-Event-ID`, so no chunk is repeated; after `maxReconnects`
558
+ * drops in a row with no chunk between them, `done` rejects. The stream ends
559
+ * with `end` once the build is terminal and every chunk is sent (E1-16). A
560
+ * refusal is not retried: `done` rejects with `BuildLogSubscriptionRefused`,
561
+ * such as the 404 a caller who may not read the build is answered before the
562
+ * stream opens. An abort ends the subscription quietly.
563
+ *
564
+ * @param token - Authentication token
565
+ * @param buildUid - The build's uid
566
+ * @param subscribe - The callbacks, the resume point and the reconnect bounds
567
+ * @param baseUrl - Base URL for the API (defaults to production Runtimes URL)
568
+ * @returns The subscription
569
+ */
570
+ export const subscribeToBuildLogs = (token, buildUid, subscribe, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => {
571
+ validateToken(token);
572
+ const url = registryUrl(baseUrl, `/environment-builds/${segment(buildUid, 'Build UID')}/logs`, { follow: true });
573
+ let lastEventId = subscribe.lastEventId;
574
+ const fetcher = subscribe.fetch ??
575
+ ((address, init) => fetch(address, init));
576
+ const maxReconnects = subscribe.maxReconnects ?? 5;
577
+ const run = async () => {
578
+ let dropsInARow = 0;
579
+ for (;;) {
580
+ const headers = {
581
+ Accept: 'text/event-stream',
582
+ Authorization: `Bearer ${token}`,
583
+ };
584
+ if (lastEventId) {
585
+ headers['Last-Event-ID'] = lastEventId;
586
+ }
587
+ let response;
588
+ try {
589
+ response = await fetcher(url, {
590
+ headers,
591
+ signal: subscribe.signal,
592
+ credentials: 'include',
593
+ });
594
+ }
595
+ catch {
596
+ if (subscribe.signal?.aborted) {
597
+ return;
598
+ }
599
+ }
600
+ if (response && !response.ok) {
601
+ throw new BuildLogSubscriptionRefused(response.status, await response.text());
602
+ }
603
+ let ended = false;
604
+ if (response?.body) {
605
+ const reader = response.body.getReader();
606
+ const decoder = new TextDecoder();
607
+ let buffer = '';
608
+ while (!ended) {
609
+ let read;
610
+ try {
611
+ read = await reader.read();
612
+ }
613
+ catch {
614
+ if (subscribe.signal?.aborted) {
615
+ return;
616
+ }
617
+ break;
618
+ }
619
+ if (read.done) {
620
+ break;
621
+ }
622
+ buffer += decoder.decode(read.value, { stream: true });
623
+ const { events, rest } = readServerSentEvents(buffer);
624
+ buffer = rest;
625
+ for (const framed of events) {
626
+ if (framed.event === BUILD_LOG_END_EVENT) {
627
+ ended = true;
628
+ break;
629
+ }
630
+ if (framed.data === '') {
631
+ continue;
632
+ }
633
+ const chunk = JSON.parse(framed.data);
634
+ if (typeof chunk?.sequence !== 'number') {
635
+ continue;
636
+ }
637
+ lastEventId = framed.id ? framed.id : String(chunk.sequence);
638
+ subscribe.onChunk(chunk, lastEventId);
639
+ dropsInARow = 0;
640
+ }
641
+ }
642
+ if (ended) {
643
+ await reader.cancel().catch(() => undefined);
644
+ }
645
+ }
646
+ if (ended) {
647
+ subscribe.onEnd?.();
648
+ return;
649
+ }
650
+ if (subscribe.signal?.aborted) {
651
+ return;
652
+ }
653
+ dropsInARow += 1;
654
+ if (dropsInARow > maxReconnects) {
655
+ throw new Error(`The log of build '${buildUid}' dropped ${dropsInARow} times with no chunk in between.`);
656
+ }
657
+ await pause(subscribe.reconnectDelayMs ?? 1000, subscribe.signal);
658
+ }
659
+ };
660
+ return { done: run(), lastEventId: () => lastEventId };
29
661
  };