@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,97 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { Box, Text } from '@primer/react';
4
+ import { basicCatalog, } from '@a2ui/react/v0_9';
5
+ import { MessageProcessor, } from '@a2ui/web_core/v0_9';
6
+ import { useSignalValue } from '@datalayer/reactor/react';
7
+ import { A2uiSurfaceComposed } from '../../../components/a2ui';
8
+ import { useSandboxService } from '../agents';
9
+ /**
10
+ * A2UI's basic catalog draws from inherited `--a2ui-*` custom properties, so a
11
+ * surface follows the workspace's theme by inheriting rather than by being
12
+ * told — which is what keeps a generated surface from being the one light card
13
+ * in a dark workspace (§3.6).
14
+ */
15
+ const INHERIT_THEME = {
16
+ ['--a2ui-color-surface']: 'var(--bgColor-muted)',
17
+ ['--a2ui-color-on-surface']: 'var(--fgColor-default)',
18
+ ['--a2ui-color-primary']: 'var(--fgColor-accent)',
19
+ ['--a2ui-color-outline']: 'var(--borderColor-default)',
20
+ };
21
+ export default function A2uiView({ workspace }) {
22
+ const service = useSandboxService();
23
+ const lastExecution = useSignalValue(service.lastExecution);
24
+ const [surfaces, setSurfaces] = useState([]);
25
+ const [error, setError] = useState(null);
26
+ // The code that produced what is on screen, so an action can re-run *it*
27
+ // rather than whatever the sandbox happened to execute last.
28
+ const sourceRef = useRef('');
29
+ const renderRef = useRef(null);
30
+ const processor = useMemo(() => new MessageProcessor([basicCatalog], action => {
31
+ // The round-trip: what the reader did goes back to the code that drew
32
+ // the surface, and the surface it returns replaces this one. Without
33
+ // this a surface is a screenshot with buttons on it.
34
+ void renderRef.current?.(sourceRef.current, action);
35
+ }), []);
36
+ useEffect(() => {
37
+ const created = processor.onSurfaceCreated(surface => setSurfaces(previous => [...previous, surface]));
38
+ const deleted = processor.onSurfaceDeleted(id => setSurfaces(previous => previous.filter(surface => surface.id !== id)));
39
+ return () => {
40
+ created.unsubscribe();
41
+ deleted.unsubscribe();
42
+ };
43
+ }, [processor]);
44
+ const render = useCallback(async (code, action) => {
45
+ setError(null);
46
+ sourceRef.current = code;
47
+ try {
48
+ const response = await fetch(`${workspace.serverUrl}/api/v1/sandbox/execute/a2ui`, {
49
+ method: 'POST',
50
+ headers: { 'content-type': 'application/json' },
51
+ body: JSON.stringify({ code, action: action ?? null }),
52
+ });
53
+ if (!response.ok) {
54
+ setError(`The server could not render that execution (${response.status}).`);
55
+ return;
56
+ }
57
+ const payload = await response.json();
58
+ // Replace rather than stack: a filtered view is the same surface with
59
+ // different data, not a second one below the first.
60
+ setSurfaces([]);
61
+ processor.processMessages((payload.messages ?? []));
62
+ }
63
+ catch (failure) {
64
+ setError(failure instanceof Error ? failure.message : String(failure));
65
+ }
66
+ }, [processor, workspace.serverUrl]);
67
+ // Published for the processor's action callback, which is built once and
68
+ // cannot close over a `render` that changes with the server URL.
69
+ useEffect(() => {
70
+ renderRef.current = render;
71
+ }, [render]);
72
+ // Re-render whenever the sandbox runs something new.
73
+ useEffect(() => {
74
+ if (lastExecution?.code) {
75
+ void render(lastExecution.code);
76
+ }
77
+ }, [lastExecution, render]);
78
+ if (error) {
79
+ return (_jsx(Centered, { children: _jsx(Text, { sx: { color: 'danger.fg' }, children: error }) }));
80
+ }
81
+ if (surfaces.length === 0) {
82
+ return (_jsx(Centered, { children: _jsx(Text, { children: "Nothing has run yet. Ask for something that executes code and the result appears here as a surface rather than as output." }) }));
83
+ }
84
+ return (_jsx(Box, { sx: { height: '100%', overflowY: 'auto', px: 4, py: 3 }, style: INHERIT_THEME, children: surfaces.map(surface => (_jsx(A2uiSurfaceComposed, { surface: surface }, surface.id))) }));
85
+ }
86
+ function Centered({ children }) {
87
+ return (_jsx(Box, { sx: {
88
+ height: '100%',
89
+ display: 'flex',
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ color: 'fg.muted',
93
+ fontSize: 1,
94
+ px: 4,
95
+ textAlign: 'center',
96
+ }, children: children }));
97
+ }
@@ -0,0 +1,3 @@
1
+ export declare const A2UI_PLUGIN_NAME = "@datalayer/loop-plugin-a2ui";
2
+ export declare const A2uiPlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
3
+ export default A2uiPlugin;
@@ -0,0 +1,50 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * `@datalayer/loop-plugin-a2ui` — a prompt runs code, and the result is a UI.
7
+ *
8
+ * @module loop/plugins/a2ui
9
+ */
10
+ import { BrowserIcon } from '@primer/octicons-react';
11
+ import { contribution, definePlugin } from '@datalayer/reactor';
12
+ import { LoopCommand, LoopViewType } from '../../core';
13
+ import { AgentsPlugin } from '../agents';
14
+ export const A2UI_PLUGIN_NAME = '@datalayer/loop-plugin-a2ui';
15
+ export const A2uiPlugin = definePlugin({
16
+ name: A2UI_PLUGIN_NAME,
17
+ displayName: 'A2UI surfaces',
18
+ description: 'The last execution, rendered as a surface rather than dumped.',
19
+ octicon: 'browser',
20
+ emoji: '\u{1F5BC}',
21
+ dependencies: [AgentsPlugin],
22
+ contributes: [
23
+ contribution(LoopViewType, {
24
+ viewType: 'a2ui',
25
+ title: 'Surface',
26
+ icon: BrowserIcon,
27
+ order: 30,
28
+ canOpen: workspace => workspace.sandbox.state === 'running' &&
29
+ // The converter that turns an execution into a surface lives on the
30
+ // server (D20), so a browser sandbox has nothing to render with.
31
+ // Saying so is better than an empty panel.
32
+ workspace.sandbox.variant !== 'pyodide',
33
+ unavailableReason: workspace => workspace.sandbox.variant === 'pyodide'
34
+ ? 'Surfaces are rendered by the server; this sandbox runs in the browser'
35
+ : 'Needs a running sandbox',
36
+ load: () => import('./A2uiView'),
37
+ }, { id: 'a2ui', order: 30 }),
38
+ contribution(LoopCommand, {
39
+ name: 'a2ui',
40
+ aliases: ['surface'],
41
+ description: 'Show the last execution as a rendered surface',
42
+ group: 'Open',
43
+ keybinding: 'Mod+Alt+U',
44
+ run: async ({ workspace }) => {
45
+ workspace.setActiveViewType('a2ui');
46
+ },
47
+ }, { id: 'a2ui' }),
48
+ ],
49
+ });
50
+ export default A2uiPlugin;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The mould the A2UI scene plugins are cast from.
3
+ *
4
+ * A scene — the contact card, the restaurant menu, the components gallery —
5
+ * is a canned set of A2UI protocol messages rendered as a surface, no agent
6
+ * behind it. The capacity, factored once here, is *showing such a scene as
7
+ * a workspace view*: the plugin contributes one `LoopViewType` entry whose
8
+ * component loads lazily, ordered ahead of the chat so the workspace opens
9
+ * on the scene with the conversation one tab away.
10
+ *
11
+ * The scene component itself stays with whoever owns the scene (the
12
+ * examples own theirs); this module owns only the casting.
13
+ *
14
+ * @module loop/plugins/a2ui-scene
15
+ */
16
+ import type { ComponentType } from 'react';
17
+ import { type ReactorPlugin } from '@datalayer/reactor';
18
+ import { type LoopViewProps } from '../../core';
19
+ export type A2uiSceneOptions = {
20
+ /** Short slug: `contact-card`, … names the plugin `…-a2ui-scene-<key>`. */
21
+ key: string;
22
+ title: string;
23
+ description: string;
24
+ /** Registry icon name. */
25
+ octicon?: string;
26
+ emoji?: string;
27
+ icon?: ComponentType<{
28
+ size?: number;
29
+ }>;
30
+ /** The scene view, loaded when first shown. */
31
+ load: () => Promise<{
32
+ default: ComponentType<LoopViewProps>;
33
+ }>;
34
+ };
35
+ export declare function defineA2uiScenePlugin(options: A2uiSceneOptions): ReactorPlugin<Record<string, never>, unknown, unknown>;
36
+ export default defineA2uiScenePlugin;
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { contribution, definePlugin, } from '@datalayer/reactor';
6
+ import { LoopViewType } from '../../core';
7
+ export function defineA2uiScenePlugin(options) {
8
+ const { key, title, description, icon, load } = options;
9
+ return definePlugin({
10
+ name: `@datalayer/loop-plugin-a2ui-scene-${key}`,
11
+ displayName: title,
12
+ description,
13
+ octicon: options.octicon ?? 'browser',
14
+ emoji: options.emoji,
15
+ contributes: [
16
+ contribution(LoopViewType, {
17
+ viewType: `a2ui-scene-${key}`,
18
+ title,
19
+ icon,
20
+ // Ahead of the chat (order 0): the scene is what this workspace
21
+ // exists to show, and the conversation stands one tab away.
22
+ order: -10,
23
+ load,
24
+ }, { id: `a2ui-scene-${key}`, order: -10 }),
25
+ ],
26
+ });
27
+ }
28
+ export default defineA2uiScenePlugin;
@@ -0,0 +1,3 @@
1
+ export declare const AGENT_A2A_PLUGIN_NAME = "@datalayer/loop-plugin-agent-a2a";
2
+ export declare const AgentA2APlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
3
+ export default AgentA2APlugin;
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * `@datalayer/loop-plugin-agent-a2a` — the capacity, as a plugin.
7
+ *
8
+ * Mounts the `example-a2a` agent: an orchestrator whose researcher and writer
9
+ * are separate agents reached over the A2A protocol, launched beside it on
10
+ * the local server or on Datalayer runtimes when it runs in the cloud. Cast
11
+ * from the shared capacity mould; see `loop/plugins/agent-capacity`. The
12
+ * openers are the spec's own: one list, kept where the agent is described.
13
+ *
14
+ * @module loop/plugins/agent-a2a
15
+ */
16
+ import { defineAgentCapacityPlugin } from '../agent-capacity';
17
+ export const AGENT_A2A_PLUGIN_NAME = '@datalayer/loop-plugin-agent-a2a';
18
+ export const AgentA2APlugin = defineAgentCapacityPlugin({
19
+ key: 'a2a',
20
+ displayName: 'Agent A2A',
21
+ description: 'Delegation to separate agents over the A2A protocol',
22
+ specId: 'example-a2a',
23
+ octicon: 'broadcast',
24
+ emoji: '📡',
25
+ });
26
+ export default AgentA2APlugin;
@@ -0,0 +1,3 @@
1
+ export declare const AGENT_A2UI_PLUGIN_NAME = "@datalayer/loop-plugin-agent-a2ui";
2
+ export declare const AgentA2uiPlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
3
+ export default AgentA2uiPlugin;
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * `@datalayer/loop-plugin-agent-a2ui` — generated surfaces, as a capacity.
7
+ *
8
+ * Mounts the `example-a2ui-agent` agent: ask for a form or a configurator
9
+ * and the answer arrives as an interactive A2UI surface, rendered in the
10
+ * workspace's a2ui view. Cast from the shared capacity mould.
11
+ *
12
+ * @module loop/plugins/agent-a2ui
13
+ */
14
+ import { defineAgentCapacityPlugin } from '../agent-capacity';
15
+ export const AGENT_A2UI_PLUGIN_NAME = '@datalayer/loop-plugin-agent-a2ui';
16
+ export const AgentA2uiPlugin = defineAgentCapacityPlugin({
17
+ key: 'a2ui',
18
+ displayName: 'Agent A2UI',
19
+ description: 'Generate interactive A2UI surfaces from plain requests.',
20
+ specId: 'example-a2ui-agent',
21
+ octicon: 'browser',
22
+ emoji: '🪟',
23
+ suggestions: [
24
+ {
25
+ text: 'Support ticket intake',
26
+ message: 'Build a support ticket intake form with category, priority and a description.',
27
+ },
28
+ {
29
+ text: 'Trip booking',
30
+ message: 'Create a trip booking form with destination, dates, travelers and budget.',
31
+ },
32
+ {
33
+ text: 'Feedback survey',
34
+ message: 'Generate a customer feedback survey with a rating slider and comments.',
35
+ },
36
+ {
37
+ text: 'Product configurator',
38
+ message: 'Make a product configurator for a laptop with CPU, RAM and add-ons.',
39
+ },
40
+ ],
41
+ });
42
+ export default AgentA2uiPlugin;
@@ -0,0 +1,3 @@
1
+ export declare const AGENT_A2UI_JUPYTER_OUTPUT_PLUGIN_NAME = "@datalayer/loop-plugin-agent-a2ui-jupyter-output";
2
+ export declare const AgentA2uiJupyterOutputPlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
3
+ export default AgentA2uiJupyterOutputPlugin;
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * `@datalayer/loop-plugin-agent-a2ui-jupyter-output` — Jupyter outputs on
7
+ * A2UI surfaces, as a capacity.
8
+ *
9
+ * Mounts the `example-a2ui-jupyter-output` agent: each demonstration runs
10
+ * real code in the sandbox and lands its kernel outputs — streams, figures,
11
+ * tables, tracebacks, widgets — on the conversation. On the browser target
12
+ * the loop turns in the page and the blueprint is inert; on Local the same
13
+ * plugin creates the agent server-side.
14
+ *
15
+ * @module loop/plugins/agent-a2ui-jupyter-output
16
+ */
17
+ import { defineAgentCapacityPlugin } from '../agent-capacity';
18
+ export const AGENT_A2UI_JUPYTER_OUTPUT_PLUGIN_NAME = '@datalayer/loop-plugin-agent-a2ui-jupyter-output';
19
+ export const AgentA2uiJupyterOutputPlugin = defineAgentCapacityPlugin({
20
+ key: 'a2ui-jupyter-output',
21
+ displayName: 'Agent A2UI Jupyter Output',
22
+ description: 'Kernel outputs — streams, figures, tables, errors, widgets — rendered as surfaces.',
23
+ specId: 'example-a2ui-jupyter-output',
24
+ octicon: 'log',
25
+ emoji: '📓',
26
+ suggestions: [
27
+ {
28
+ text: 'Stream output',
29
+ message: 'Run something in the code sandbox that prints as it goes.',
30
+ },
31
+ {
32
+ text: 'Figure output',
33
+ message: 'Plot a chart in the code sandbox and show me the image.',
34
+ },
35
+ {
36
+ text: 'Table output',
37
+ message: 'Build a small DataFrame in the code sandbox and show it as a table.',
38
+ },
39
+ {
40
+ text: 'Error output',
41
+ message: 'Run something in the code sandbox that fails, so I can see the traceback.',
42
+ },
43
+ {
44
+ text: 'IPyWidgets output',
45
+ message: 'Show me an interactive slider from the code sandbox.',
46
+ },
47
+ {
48
+ text: 'Interactive output',
49
+ message: 'Give me a surface with buttons I can press.',
50
+ },
51
+ ],
52
+ });
53
+ export default AgentA2uiJupyterOutputPlugin;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The mould the agent-capacity plugins are cast from.
3
+ *
4
+ * A capacity — codemode, hooks, guardrails, memory — is, from the
5
+ * workspace's side, always the same two statements: *which agent* answers
6
+ * (an agentspec id and the create-payload details its server needs) and
7
+ * *what it is worth asking* (the openers on the empty chat). This factory
8
+ * turns those statements into a reactor plugin: an `LoopAgentBlueprint`
9
+ * contribution the agents plugin reads when its Local target creates the
10
+ * agent, and an optional `LoopChatSuggestion` contribution the chat shows
11
+ * ahead of the spec's own.
12
+ *
13
+ * One folder per capacity under `loop/plugins/agent-*`, each a few lines of
14
+ * facts handed to this mould — the way every example used to carry the same
15
+ * facts as props into its own private `<Chat>`.
16
+ *
17
+ * @module loop/plugins/agent-capacity
18
+ */
19
+ import { type ReactorPlugin } from '@datalayer/reactor';
20
+ import { type ChatSuggestionItem } from '../../core';
21
+ export type AgentCapacityOptions = {
22
+ /** Short slug: `hooks`, `codemode`, … names the plugin `…-agent-<key>`. */
23
+ key: string;
24
+ displayName: string;
25
+ description: string;
26
+ /** The agentspec the Local agent is created from. */
27
+ specId: string;
28
+ /** Registry icon; a sensible default is used when absent. */
29
+ octicon?: string;
30
+ emoji?: string;
31
+ /** Whether the agent runs its tools through codemode. */
32
+ codemode?: boolean;
33
+ /** Extra fields merged into the server's create-agent payload. */
34
+ createPayload?: Record<string, unknown>;
35
+ /** The openers the empty chat offers for this capacity. */
36
+ suggestions?: ChatSuggestionItem[];
37
+ };
38
+ export declare function defineAgentCapacityPlugin(options: AgentCapacityOptions): ReactorPlugin<Record<string, never>, unknown, unknown>;
39
+ export default defineAgentCapacityPlugin;
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * The mould the agent-capacity plugins are cast from.
7
+ *
8
+ * A capacity — codemode, hooks, guardrails, memory — is, from the
9
+ * workspace's side, always the same two statements: *which agent* answers
10
+ * (an agentspec id and the create-payload details its server needs) and
11
+ * *what it is worth asking* (the openers on the empty chat). This factory
12
+ * turns those statements into a reactor plugin: an `LoopAgentBlueprint`
13
+ * contribution the agents plugin reads when its Local target creates the
14
+ * agent, and an optional `LoopChatSuggestion` contribution the chat shows
15
+ * ahead of the spec's own.
16
+ *
17
+ * One folder per capacity under `loop/plugins/agent-*`, each a few lines of
18
+ * facts handed to this mould — the way every example used to carry the same
19
+ * facts as props into its own private `<Chat>`.
20
+ *
21
+ * @module loop/plugins/agent-capacity
22
+ */
23
+ import { contribution, definePlugin, } from '@datalayer/reactor';
24
+ import { LoopAgentBlueprint, LoopChatSuggestion, } from '../../core';
25
+ export function defineAgentCapacityPlugin(options) {
26
+ const { key, displayName, description, specId, octicon, emoji, codemode, createPayload, suggestions, } = options;
27
+ return definePlugin({
28
+ name: `@datalayer/loop-plugin-agent-${key}`,
29
+ displayName,
30
+ description,
31
+ octicon: octicon ?? 'dependabot',
32
+ emoji,
33
+ contributes: [
34
+ contribution(LoopAgentBlueprint, {
35
+ id: key,
36
+ specId,
37
+ createPayload: {
38
+ description,
39
+ agent_library: 'pydantic-ai',
40
+ enable_codemode: codemode ?? false,
41
+ ...createPayload,
42
+ },
43
+ }, { id: key }),
44
+ ...(suggestions && suggestions.length > 0
45
+ ? [
46
+ contribution(LoopChatSuggestion, { id: key, suggestions }, { id: key }),
47
+ ]
48
+ : []),
49
+ ],
50
+ });
51
+ }
52
+ export default defineAgentCapacityPlugin;
@@ -0,0 +1,3 @@
1
+ export declare const AGENT_CHECKPOINTS_PLUGIN_NAME = "@datalayer/loop-plugin-agent-checkpoints";
2
+ export declare const AgentCheckpointsPlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
3
+ export default AgentCheckpointsPlugin;
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * `@datalayer/loop-plugin-agent-checkpoints` — checkpointing, as a capacity.
7
+ *
8
+ * Mounts the `example-checkpoints` agent: its conversation is snapshotted
9
+ * after every turn, and it can save, list and rewind to checkpoints on
10
+ * request. Cast from the shared capacity mould; the openers are the spec's
11
+ * own. Pair it with the checkpoints sidebar to see and use the checkpoints
12
+ * from outside the chat.
13
+ *
14
+ * @module loop/plugins/agent-checkpoints
15
+ */
16
+ import { defineAgentCapacityPlugin } from '../agent-capacity';
17
+ export const AGENT_CHECKPOINTS_PLUGIN_NAME = '@datalayer/loop-plugin-agent-checkpoints';
18
+ export const AgentCheckpointsPlugin = defineAgentCapacityPlugin({
19
+ key: 'checkpoints',
20
+ displayName: 'Agent Checkpoints',
21
+ description: 'Conversation checkpoints: taken every turn, saved on request, rewound to.',
22
+ specId: 'example-checkpoints',
23
+ octicon: 'versions',
24
+ emoji: '💾',
25
+ });
26
+ export default AgentCheckpointsPlugin;
@@ -0,0 +1,3 @@
1
+ export declare const AGENT_CODE_SANDBOX_PLUGIN_NAME = "@datalayer/loop-plugin-agent-code-sandbox";
2
+ export declare const AgentCodeSandboxPlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
3
+ export default AgentCodeSandboxPlugin;
@@ -0,0 +1,24 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * `@datalayer/loop-plugin-agent-code-sandbox` — the code sandbox, as a capacity.
7
+ *
8
+ * Mounts the `example-code-sandbox` agent: Python run through `execute_code`
9
+ * in a sandbox the server manages, whose variant can be switched live. Cast
10
+ * from the shared capacity mould; the openers are the spec's own.
11
+ *
12
+ * @module loop/plugins/agent-code-sandbox
13
+ */
14
+ import { defineAgentCapacityPlugin } from '../agent-capacity';
15
+ export const AGENT_CODE_SANDBOX_PLUGIN_NAME = '@datalayer/loop-plugin-agent-code-sandbox';
16
+ export const AgentCodeSandboxPlugin = defineAgentCapacityPlugin({
17
+ key: 'code-sandbox',
18
+ displayName: 'Agent Code Sandbox',
19
+ description: 'Python run in a server-managed sandbox: eval or a Jupyter kernel.',
20
+ specId: 'example-code-sandbox',
21
+ octicon: 'codespaces',
22
+ emoji: '📦',
23
+ });
24
+ export default AgentCodeSandboxPlugin;
@@ -0,0 +1,13 @@
1
+ type SandboxCapacity = {
2
+ key: string;
3
+ variant: string;
4
+ specId: string;
5
+ displayName: string;
6
+ description: string;
7
+ };
8
+ export declare const SANDBOX_CAPACITIES: SandboxCapacity[];
9
+ /** The plugins, keyed by capacity key — one per sandbox variant. */
10
+ export declare const SandboxCapacityPlugins: {
11
+ [k: string]: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
12
+ };
13
+ export default SandboxCapacityPlugins;
@@ -0,0 +1,85 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * `@datalayer/loop-plugin-agent-sandbox-*` — where the code runs, as
7
+ * capacities.
8
+ *
9
+ * One plugin per sandbox variant, each cast from the shared capacity mould:
10
+ * the blueprint names the variant's agentspec *and* pins `sandbox_variant`
11
+ * in the create payload, which the Local target respects. The code-sandboxes
12
+ * example offers the whole family behind a chooser; a host that wants
13
+ * exactly one mounts exactly one.
14
+ *
15
+ * The openers are each spec's own: the same three on every variant, the
16
+ * first of which asks the code where it ran.
17
+ *
18
+ * @module loop/plugins/agent-code-sandboxes
19
+ */
20
+ import { defineAgentCapacityPlugin } from '../agent-capacity';
21
+ export const SANDBOX_CAPACITIES = [
22
+ {
23
+ key: 'sandbox-eval',
24
+ variant: 'eval',
25
+ specId: 'example-sandbox-eval',
26
+ displayName: 'Eval Sandbox',
27
+ description: 'In-process Python execution for quick local iteration.',
28
+ },
29
+ {
30
+ key: 'sandbox-jupyter',
31
+ variant: 'jupyter-server',
32
+ specId: 'example-sandbox-jupyter',
33
+ displayName: 'Jupyter Sandbox',
34
+ description: 'Kernel-backed execution with notebook-compatible behavior.',
35
+ },
36
+ {
37
+ key: 'sandbox-docker',
38
+ variant: 'docker',
39
+ specId: 'example-sandbox-docker',
40
+ displayName: 'Docker Sandbox',
41
+ description: 'Containerized execution for stronger process isolation.',
42
+ },
43
+ {
44
+ key: 'sandbox-datalayer',
45
+ variant: 'datalayer',
46
+ specId: 'example-sandbox-datalayer',
47
+ displayName: 'Datalayer Sandbox',
48
+ description: 'Cloud sandbox runtime powered by Datalayer environments.',
49
+ },
50
+ {
51
+ key: 'sandbox-colab',
52
+ variant: 'google-colab',
53
+ specId: 'example-sandbox-colab',
54
+ displayName: 'Colab Sandbox',
55
+ description: 'Google Colab runtime connector (reuse an already-running kernel).',
56
+ },
57
+ {
58
+ key: 'sandbox-kaggle',
59
+ variant: 'kaggle',
60
+ specId: 'example-sandbox-kaggle',
61
+ displayName: 'Kaggle Sandbox',
62
+ description: 'Kaggle runtime connector (create kernel with API token or attach existing).',
63
+ },
64
+ {
65
+ key: 'sandbox-monty',
66
+ variant: 'monty',
67
+ specId: 'example-sandbox-monty',
68
+ displayName: 'Monty Sandbox',
69
+ description: 'Secure in-process interpreter focused on safe snippets.',
70
+ },
71
+ ];
72
+ /** The plugins, keyed by capacity key — one per sandbox variant. */
73
+ export const SandboxCapacityPlugins = Object.fromEntries(SANDBOX_CAPACITIES.map(capacity => [
74
+ capacity.key,
75
+ defineAgentCapacityPlugin({
76
+ key: capacity.key,
77
+ displayName: capacity.displayName,
78
+ description: capacity.description,
79
+ specId: capacity.specId,
80
+ octicon: 'codespaces',
81
+ emoji: '📦',
82
+ createPayload: { sandbox_variant: capacity.variant },
83
+ }),
84
+ ]));
85
+ export default SandboxCapacityPlugins;
@@ -0,0 +1,5 @@
1
+ export declare const AGENT_CODEMODE_PLUGIN_NAME = "@datalayer/loop-plugin-agent-codemode";
2
+ export declare const AGENT_NO_CODEMODE_PLUGIN_NAME = "@datalayer/loop-plugin-agent-no-codemode";
3
+ export declare const AgentCodemodePlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
4
+ export declare const AgentNoCodemodePlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
5
+ export default AgentCodemodePlugin;
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * `@datalayer/loop-plugin-agent-codemode` — codemode, as a capacity.
7
+ *
8
+ * Two plugins from one mould, because codemode is best understood as a
9
+ * comparison: {@link AgentCodemodePlugin} mounts the `example-codemode`
10
+ * agent, whose MCP tools are converted into programmatic tools the model
11
+ * composes in code; {@link AgentNoCodemodePlugin} mounts
12
+ * `example-no-codemode`, the same tools raw. The codemode example mounts
13
+ * both side by side and hands each pane the same task.
14
+ *
15
+ * The openers are the specs' own — the same first task on both sides, so
16
+ * the example's two panes compare like with like.
17
+ *
18
+ * @module loop/plugins/agent-codemode
19
+ */
20
+ import { defineAgentCapacityPlugin } from '../agent-capacity';
21
+ export const AGENT_CODEMODE_PLUGIN_NAME = '@datalayer/loop-plugin-agent-codemode';
22
+ export const AGENT_NO_CODEMODE_PLUGIN_NAME = '@datalayer/loop-plugin-agent-no-codemode';
23
+ export const AgentCodemodePlugin = defineAgentCapacityPlugin({
24
+ key: 'codemode',
25
+ displayName: 'Agent Codemode',
26
+ description: 'MCP tools converted into programmatic tools.',
27
+ specId: 'example-codemode',
28
+ octicon: 'code-square',
29
+ emoji: '🧑‍💻',
30
+ codemode: true,
31
+ });
32
+ export const AgentNoCodemodePlugin = defineAgentCapacityPlugin({
33
+ key: 'no-codemode',
34
+ displayName: 'Agent MCP Tools (No Codemode)',
35
+ description: 'Raw MCP tools without codemode conversion.',
36
+ specId: 'example-no-codemode',
37
+ octicon: 'tools',
38
+ emoji: '🔧',
39
+ codemode: false,
40
+ });
41
+ export default AgentCodemodePlugin;