@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
@@ -116,7 +116,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
116
116
  f' command="{spec["command"]}",',
117
117
  f" args={args_formatted},",
118
118
  f' transport="{spec.get("transport", "stdio")}",',
119
- f" enabled={spec.get('enabled', True)},",
119
+ f" enabled={spec.get('enabled', False)},",
120
120
  " tools=[],",
121
121
  ]
122
122
  )
@@ -279,7 +279,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
279
279
  f" command: '{spec['command']}',",
280
280
  f" args: {args_formatted},",
281
281
  f" transport: '{spec.get('transport', 'stdio')}',",
282
- f" enabled: {str(spec.get('enabled', True)).lower()},",
282
+ f" enabled: {str(spec.get('enabled', False)).lower()},",
283
283
  " isAvailable: false,",
284
284
  " tools: [],",
285
285
  f" requiredEnvVars: {envvars_formatted},",
@@ -109,21 +109,35 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
109
109
  str(tokens_limit) if tokens_limit is not None else "None"
110
110
  )
111
111
 
112
- lines.extend(
113
- [
114
- f"{const_name} = AIModel(",
115
- f' id="{spec["id"]}",',
116
- f' version="{spec["version"]}",',
117
- f' name="{spec["name"]}",',
118
- f' description="{spec.get("description", "")}",',
119
- f' provider="{spec["provider"]}",',
120
- f" default={spec.get('default', False)},",
121
- f" required_env_vars={env_vars_formatted},",
122
- f" tokens_limit={tokens_limit_formatted},",
123
- ")",
124
- "",
125
- ]
126
- )
112
+ model_lines = [
113
+ f"{const_name} = AIModel(",
114
+ f' id="{spec["id"]}",',
115
+ f' version="{spec["version"]}",',
116
+ f' name="{spec["name"]}",',
117
+ f' description="{spec.get("description", "")}",',
118
+ f' provider="{spec["provider"]}",',
119
+ f" default={spec.get('default', False)},",
120
+ # What is worth offering today, as distinct from what the platform
121
+ # knows how to talk to.
122
+ f" available={spec.get('available', False)},",
123
+ f" required_env_vars={env_vars_formatted},",
124
+ f" tokens_limit={tokens_limit_formatted},",
125
+ ]
126
+
127
+ # Local-model fields, emitted only when set so hosted models stay terse.
128
+ if spec.get("local"):
129
+ model_lines.append(" local=True,")
130
+ if spec.get("base_url"):
131
+ model_lines.append(f' base_url="{spec["base_url"]}",')
132
+ if spec.get("api_key_env"):
133
+ model_lines.append(f' api_key_env="{spec["api_key_env"]}",')
134
+ capabilities = spec.get("capabilities") or []
135
+ if capabilities:
136
+ formatted = "[" + ", ".join(f'"{c}"' for c in capabilities) + "]"
137
+ model_lines.append(f" capabilities={formatted},")
138
+
139
+ model_lines.extend([")", ""])
140
+ lines.extend(model_lines)
127
141
 
128
142
  # Generate catalog dictionary
129
143
  lines.extend(
@@ -304,10 +318,21 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
304
318
  f" description: '{description}',",
305
319
  f" provider: '{spec['provider']}',",
306
320
  f" default: {str(spec.get('default', False)).lower()},",
321
+ f" available: {str(spec.get('available', False)).lower()},",
307
322
  f" requiredEnvVars: {env_vars_formatted},",
308
323
  ]
309
324
  if tokens_limit is not None:
310
325
  model_lines.append(f" tokensLimit: {tokens_limit},")
326
+ if spec.get("local"):
327
+ model_lines.append(" local: true,")
328
+ if spec.get("base_url"):
329
+ model_lines.append(f" baseUrl: '{spec['base_url']}',")
330
+ if spec.get("api_key_env"):
331
+ model_lines.append(f" apiKeyEnv: '{spec['api_key_env']}',")
332
+ capabilities = spec.get("capabilities") or []
333
+ if capabilities:
334
+ formatted = "[" + ", ".join(f"'{c}'" for c in capabilities) + "]"
335
+ model_lines.append(f" capabilities: {formatted},")
311
336
  model_lines.extend(
312
337
  [
313
338
  "};",
@@ -95,6 +95,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
95
95
  f' name="{spec["name"]}",',
96
96
  f' description="{desc}",',
97
97
  f' icon="{spec.get("icon", "")}",',
98
+ f" enabled={spec.get('enabled', False)},",
98
99
  f" supports_template={spec.get('supports_template', False)},",
99
100
  f" supports_storage={spec.get('supports_storage', False)},",
100
101
  f" mime_types={_fmt_list(spec.get('mime_types', []))},",
@@ -181,6 +182,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
181
182
  f" name: '{_esc(spec['name'])}',",
182
183
  f" description: '{desc}',",
183
184
  f" icon: '{spec.get('icon', '')}',",
185
+ f" enabled: {str(spec.get('enabled', False)).lower()},",
184
186
  f" supports_template: {str(spec.get('supports_template', False)).lower()},",
185
187
  f" supports_storage: {str(spec.get('supports_storage', False)).lower()},",
186
188
  f" mime_types: {_ts_list(spec.get('mime_types', []))},",
@@ -13,104 +13,118 @@ from __future__ import annotations
13
13
  import argparse
14
14
  from pathlib import Path
15
15
 
16
- VARIANTS: tuple[str, ...] = (
17
- "eval",
18
- "jupyter",
19
- "docker",
20
- "datalayer",
21
- "colab",
22
- "kaggle",
23
- "monty",
24
- "modal",
25
- )
26
-
27
-
28
- def _emoji_for_variant(variant: str) -> str:
29
- mapping = {
30
- "eval": "A",
31
- "jupyter": "B",
32
- "docker": "C",
33
- "datalayer": "D",
34
- "colab": "E",
35
- "kaggle": "H",
36
- "monty": "F",
37
- "modal": "G",
38
- }
39
- return mapping.get(variant, "A")
16
+ # Variant → the short key its spec goes by, so the ids stay the ones the
17
+ # examples and the code-sandboxes capacity plugins already name.
18
+ VARIANTS: dict[str, str] = {
19
+ "eval": "eval",
20
+ "jupyter-server": "jupyter",
21
+ "docker": "docker",
22
+ "datalayer": "datalayer",
23
+ "google-colab": "colab",
24
+ "kaggle": "kaggle",
25
+ "monty": "monty",
26
+ "modal": "modal",
27
+ }
28
+
29
+ _TITLES = {
30
+ "eval": "Eval",
31
+ "jupyter-server": "Jupyter",
32
+ "docker": "Docker",
33
+ "datalayer": "Datalayer",
34
+ "google-colab": "Colab",
35
+ "kaggle": "Kaggle",
36
+ "monty": "Monty",
37
+ "modal": "Modal",
38
+ }
39
+
40
+ _WHERE = {
41
+ "eval": "in this server's own Python process",
42
+ "jupyter-server": "in a Jupyter kernel the server starts beside itself",
43
+ "docker": "in a container",
44
+ "datalayer": "on a Datalayer runtime in the cloud",
45
+ "google-colab": "on a Google Colab runtime",
46
+ "kaggle": "on a Kaggle kernel",
47
+ "monty": "in the Monty interpreter, a restricted in-process sandbox",
48
+ "modal": "on a Modal cloud sandbox",
49
+ }
40
50
 
41
51
 
42
52
  def _content_for_variant(variant: str) -> str:
43
- variant_title = variant.capitalize()
44
- spec_id = f"example-sandbox-{variant}"
45
- emoji = _emoji_for_variant(variant)
46
-
53
+ key = VARIANTS[variant]
54
+ title = _TITLES[variant]
55
+ where = _WHERE[variant]
56
+ spec_id = f"example-sandbox-{key}"
47
57
  return f"""# Copyright (c) 2025-2026 Datalayer, Inc.
48
58
  # Distributed under the terms of the Modified BSD License.
49
59
 
50
60
  # Agent Specification: Sandbox Variant ({variant})
61
+ # Scaffolded by scripts/codegen/generate_sandbox_agents.py — edit the template
62
+ # there, not this file. Used by AgentCodeSandboxesExample.
51
63
 
52
64
  id: {spec_id}
53
65
  version: 0.0.1
54
- name: Example Sandbox {variant_title} Agent
66
+ name: Example Sandbox {title} Agent
55
67
  description: >-
56
- Demonstration agent configured to run codemode code execution with the
57
- '{variant}' sandbox variant.
68
+ Demonstrates the '{variant}' code sandbox: Python the agent runs through
69
+ execute_code executes {where}.
58
70
 
59
71
  tags:
60
72
  - sandbox
61
- - codemode
62
- - {variant}
73
+ - code-execution
74
+ - {key}
63
75
 
64
76
  enabled: true
65
- model: "bedrock:us.anthropic.claude-opus-4-8"
77
+ model: "bedrock:us.anthropic.claude-sonnet-4-6"
78
+ harness: pydantic-ai
66
79
 
67
80
  sandbox_variant: {variant}
68
81
  memory: ephemeral
69
82
 
70
- mcp_servers:
71
- - tavily:0.0.1
83
+ mcp_servers: []
72
84
 
73
- skills:
74
- - events:0.0.1
85
+ skills: []
75
86
 
76
- tools:
77
- - runtime-echo:0.0.1
87
+ tools: []
78
88
 
79
- frontend_tools:
80
- - jupyter-notebook:0.0.1
81
- - lexical-document:0.0.1
89
+ frontend_tools: []
82
90
 
83
91
  environment_name: ai-agents-env
84
92
 
85
93
  icon: package
86
- emoji: "{emoji}"
94
+ emoji: "📦"
87
95
  color: "#1F6FEB"
88
96
 
89
97
  suggestions:
90
- - "Use execute_code to print('sandbox variant: {variant}')"
91
- - "Use execute_code to compute sum(i*i for i in range(20))"
92
- - "Use execute_code to load pandas and build a small DataFrame"
98
+ # First: proof of where the code runs — the point of a variant.
99
+ - text: >-
100
+ Run Python that prints platform.platform(), sys.version and
101
+ os.getenv("DATALAYER_CODE_SANDBOX_VARIANT"), and tell me where this
102
+ code ran.
103
+ summary: "Where does my code run?"
104
+ - text: "Run Python that prints sum(i*i for i in range(20))."
105
+ summary: "Sum of squares"
106
+ - text: >-
107
+ Run Python that builds a small pandas DataFrame of three cities and
108
+ their populations and prints it sorted by population.
109
+ summary: "Small DataFrame"
93
110
 
94
111
  welcome_message: >-
95
- You're connected to the {variant} sandbox variant demo. Ask me to run
96
- Python code and I will use execute_code in codemode.
112
+ You're connected to the {variant} sandbox. Ask me to run Python: it
113
+ executes {where}.
97
114
 
98
115
  system_prompt: >-
99
- You are a sandbox-variant demonstration assistant. Prefer executing
100
- Python code via execute_code for computations, data checks, and quick
101
- experiments, then summarize results clearly.
102
-
103
- system_prompt_codemode_addons: >-
104
- Always use execute_code when the user requests calculations, scripts,
105
- DataFrame operations, package checks, or shell-style diagnostics.
116
+ You are the {title} sandbox example agent. Any computation, script or
117
+ check the person asks for is done by running Python in the sandbox with
118
+ `execute_code` — never by working it out yourself. Run the code, report
119
+ what it printed, briefly, and when asked where the code ran, answer from
120
+ what the code printed. Answer in the conversation, and only with the
121
+ tools you actually have; never call a tool you were not given.
106
122
 
107
- codemode:
108
- enabled: true
109
- token_reduction: "~80%"
110
- speedup: "~1.5x"
123
+ system_prompt_codemode_addons: null
111
124
 
112
125
  welcome_notebook: null
113
126
  welcome_document: null
127
+
114
128
  trigger: null
115
129
  """
116
130
 
@@ -118,8 +132,8 @@ trigger: null
118
132
  def generate_specs(agents_dir: Path) -> int:
119
133
  agents_dir.mkdir(parents=True, exist_ok=True)
120
134
  count = 0
121
- for variant in VARIANTS:
122
- path = agents_dir / f"example-sandbox-{variant}.yaml"
135
+ for variant, key in VARIANTS.items():
136
+ path = agents_dir / f"example-sandbox-{key}.yaml"
123
137
  path.write_text(_content_for_variant(variant), encoding="utf-8")
124
138
  count += 1
125
139
  return count
@@ -115,7 +115,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
115
115
  f" tags={_fmt_list(spec.get('tags', []))},",
116
116
  f" icon={icon},",
117
117
  f" emoji={emoji},",
118
- f" enabled={spec.get('enabled', True)},",
118
+ f" enabled={spec.get('enabled', False)},",
119
119
  ")",
120
120
  "",
121
121
  ]
@@ -279,7 +279,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
279
279
  f" tags: {tags_json},",
280
280
  f" icon: {icon},",
281
281
  f" emoji: {emoji},",
282
- f" enabled: {str(spec.get('enabled', True)).lower()},",
282
+ f" enabled: {str(spec.get('enabled', False)).lower()},",
283
283
  "};",
284
284
  "",
285
285
  ]
@@ -22,6 +22,23 @@ import yaml
22
22
  from versioning import ensure_spec_version, version_suffix
23
23
 
24
24
 
25
+ def _suggestion_fields(item: Any) -> Dict[str, Any]:
26
+ """A suggestion's fields, from either shape it may be written in.
27
+
28
+ A bare string is still read as a suggestion with no marks — see the same
29
+ helper in `generate_agents.py`.
30
+ """
31
+ if isinstance(item, str):
32
+ return {"text": item}
33
+ return {
34
+ "text": item.get("text", ""),
35
+ # The label, when the text is too long to be one.
36
+ "summary": item.get("summary"),
37
+ "icon": item.get("icon"),
38
+ "emoji": item.get("emoji"),
39
+ }
40
+
41
+
25
42
  def _make_const_name(team_id: str) -> str:
26
43
  """Convert a team ID to a constant name (e.g., 'analyze-campaign-performance' -> 'ANALYZE_CAMPAIGN_PERFORMANCE_TEAM_SPEC')."""
27
44
  return f"{team_id.upper().replace('-', '_')}_TEAM_SPEC"
@@ -103,15 +120,47 @@ def load_yaml_specs(specs_dir: Path) -> List[tuple[str, Dict[str, Any]]]:
103
120
  return specs
104
121
 
105
122
 
123
+ def _generate_team_subagent_py(subagent: Dict[str, Any]) -> str:
124
+ """Generate Python code for a TeamSubagentspec."""
125
+ description = (
126
+ subagent.get("description", "").replace('"', '\\"').replace("\n", " ").strip()
127
+ )
128
+ instructions = (
129
+ subagent.get("instructions", "").replace('"', '\\"').replace("\n", " ").strip()
130
+ )
131
+ return (
132
+ "TeamSubagentspec("
133
+ f'name="{subagent.get("name", "")}", '
134
+ f'ref="{subagent.get("ref", "")}", '
135
+ f'description="{description}", '
136
+ f'instructions="{instructions}"'
137
+ ")"
138
+ )
139
+
140
+
106
141
  def _generate_team_agent_py(agent: Dict[str, Any]) -> str:
107
142
  """Generate Python code for a TeamAgentspec."""
108
143
  lines = []
109
144
  lines.append("TeamAgentspec(")
110
145
  lines.append(f' id="{agent.get("id", "")}",')
111
146
  lines.append(f' name="{agent.get("name", "")}",')
112
- lines.append(f' role="{agent.get("role", "")}",')
147
+ # The reference into the agent catalogue. Emitted before the overrides
148
+ # because it is what the member *is*; the rest says how it differs here.
149
+ lines.append(f' ref="{agent.get("ref", "")}",')
150
+ lines.append(f' role="{agent.get("role", "contributor")}",')
113
151
  goal = agent.get("goal", "").replace('"', '\\"').replace("\n", " ").strip()
114
152
  lines.append(f' goal="{goal}",')
153
+ lines.append(f" depends_on={_fmt_list(agent.get('depends_on', []))},")
154
+ subagents = agent.get("subagents", [])
155
+ if subagents:
156
+ rendered = ",\n ".join(
157
+ _generate_team_subagent_py(sub) for sub in subagents
158
+ )
159
+ lines.append(
160
+ f" subagents=[\n {rendered},\n ],"
161
+ )
162
+ else:
163
+ lines.append(" subagents=[],")
115
164
  lines.append(f' model="{agent.get("model", "")}",')
116
165
  lines.append(f' mcp_server="{agent.get("mcp_server", "")}",')
117
166
  tools = agent.get("tools", [])
@@ -123,16 +172,46 @@ def _generate_team_agent_py(agent: Dict[str, Any]) -> str:
123
172
  return "\n".join(lines)
124
173
 
125
174
 
175
+ def _generate_team_subagent_ts(subagent: Dict[str, Any]) -> str:
176
+ """Generate TypeScript code for a TeamSubagentspec."""
177
+ description = (
178
+ subagent.get("description", "").replace("`", "\\`").replace("\n", " ").strip()
179
+ )
180
+ instructions = (
181
+ subagent.get("instructions", "").replace("`", "\\`").replace("\n", " ").strip()
182
+ )
183
+ return (
184
+ "{ "
185
+ f"name: '{subagent.get('name', '')}', "
186
+ f"ref: '{subagent.get('ref', '')}', "
187
+ f"description: `{description}`, "
188
+ f"instructions: `{instructions}`"
189
+ " }"
190
+ )
191
+
192
+
126
193
  def _generate_team_agent_ts(agent: Dict[str, Any]) -> str:
127
194
  """Generate TypeScript code for a TeamAgentspec."""
128
195
  goal = agent.get("goal", "").replace("`", "\\`").replace("\n", " ").strip()
129
196
  tools = json.dumps(agent.get("tools", []))
197
+ depends_on = json.dumps(agent.get("depends_on", []))
130
198
  trigger = agent.get("trigger", "").replace("'", "\\'")
199
+ subagents = agent.get("subagents", [])
200
+ rendered = (
201
+ "[\n "
202
+ + ",\n ".join(_generate_team_subagent_ts(sub) for sub in subagents)
203
+ + ",\n ]"
204
+ if subagents
205
+ else "[]"
206
+ )
131
207
  return f""" {{
132
208
  id: '{agent.get("id", "")}',
133
209
  name: '{agent.get("name", "")}',
134
- role: '{agent.get("role", "")}',
210
+ ref: '{agent.get("ref", "")}',
211
+ role: '{agent.get("role", "contributor")}',
135
212
  goal: `{goal}`,
213
+ dependsOn: {depends_on},
214
+ subagents: {rendered},
136
215
  model: '{agent.get("model", "")}',
137
216
  mcpServer: '{agent.get("mcp_server", "")}',
138
217
  tools: {tools},
@@ -157,10 +236,14 @@ from typing import Dict, Optional
157
236
 
158
237
  from agent_runtimes.types import (
159
238
  TeamAgentspec,
239
+ TeamContextSpec,
240
+ TeamDelegationSpec,
241
+ TeamSubagentspec,
160
242
  TeamHealthMonitoring,
161
243
  TeamOutputSpec,
162
244
  TeamReactionRule,
163
245
  TeamSpec,
246
+ TeamSuggestionSpec,
164
247
  TeamSupervisorSpec,
165
248
  TeamValidationSpec,
166
249
  )
@@ -218,8 +301,25 @@ from agent_runtimes.types import (
218
301
  if supervisor and isinstance(supervisor, dict):
219
302
  sup_name = supervisor.get("name", "").replace('"', '\\"')
220
303
  sup_model = supervisor.get("model", "")
304
+ sup_ref = supervisor.get("ref", "")
305
+ sup_goal = (
306
+ supervisor.get("goal", "")
307
+ .replace('"', '\\"')
308
+ .replace("\n", " ")
309
+ .strip()
310
+ )
311
+ sup_instructions = (
312
+ supervisor.get("instructions", "")
313
+ .replace('"', '\\"')
314
+ .replace("\n", " ")
315
+ .strip()
316
+ )
221
317
  supervisor_code = (
222
- f'TeamSupervisorSpec(name="{sup_name}", model="{sup_model}")'
318
+ f'TeamSupervisorSpec(name="{sup_name}", ref="{sup_ref}", '
319
+ f'model="{sup_model}", goal="{sup_goal}", '
320
+ f'instructions="{sup_instructions}", '
321
+ f'approval="{supervisor.get("approval", "auto")}", '
322
+ f"can_terminate={bool(supervisor.get('can_terminate', True))})"
223
323
  )
224
324
  else:
225
325
  supervisor_code = "None"
@@ -326,6 +426,35 @@ from agent_runtimes.types import (
326
426
  )
327
427
  code += f" supervisor={supervisor_code},\n"
328
428
  code += f' routing_instructions="{routing}",\n'
429
+ suggestions = spec.get("suggestions") or []
430
+ if suggestions:
431
+ rendered = ", ".join(
432
+ "TeamSuggestionSpec("
433
+ + ", ".join(
434
+ f"{key}={value!r}"
435
+ for key, value in _suggestion_fields(item).items()
436
+ if value
437
+ )
438
+ + ")"
439
+ for item in suggestions
440
+ )
441
+ code += f" suggestions=[{rendered}],\n"
442
+ delegation = spec.get("delegation") or {}
443
+ code += (
444
+ " delegation=TeamDelegationSpec("
445
+ f"max_depth={delegation.get('max_depth', 2)}, "
446
+ f"allow_peer_delegation={bool(delegation.get('allow_peer_delegation', False))}, "
447
+ f"include_general_purpose={bool(delegation.get('include_general_purpose', False))}"
448
+ "),\n"
449
+ )
450
+ # `shared` by default: routing only makes sense if the member
451
+ # receiving the work can see what was already said.
452
+ context = spec.get("context") or {}
453
+ code += (
454
+ " context=TeamContextSpec("
455
+ f'sharing="{context.get("sharing", "shared")}"'
456
+ "),\n"
457
+ )
329
458
  code += f" validation={validation_code},\n"
330
459
  code += f" agents={agents_code},\n"
331
460
  if reaction_rules_code != "None":
@@ -454,7 +583,26 @@ import type {{ TeamSpec }} from '{types_import_path}';
454
583
  if supervisor and isinstance(supervisor, dict):
455
584
  sup_name = supervisor.get("name", "").replace("'", "\\'")
456
585
  sup_model = supervisor.get("model", "")
457
- supervisor_ts = f"{{ name: '{sup_name}', model: '{sup_model}' }}"
586
+ sup_ref = supervisor.get("ref", "")
587
+ sup_goal = (
588
+ supervisor.get("goal", "")
589
+ .replace("`", "\\`")
590
+ .replace("\n", " ")
591
+ .strip()
592
+ )
593
+ sup_instructions = (
594
+ supervisor.get("instructions", "")
595
+ .replace("`", "\\`")
596
+ .replace("\n", " ")
597
+ .strip()
598
+ )
599
+ supervisor_ts = (
600
+ f"{{ name: '{sup_name}', ref: '{sup_ref}', "
601
+ f"model: '{sup_model}', goal: `{sup_goal}`, "
602
+ f"instructions: `{sup_instructions}`, "
603
+ f"approval: '{supervisor.get('approval', 'auto')}', "
604
+ f"canTerminate: {str(bool(supervisor.get('can_terminate', True))).lower()} }}"
605
+ )
458
606
  else:
459
607
  supervisor_ts = "undefined"
460
608
 
@@ -566,6 +714,32 @@ import type {{ TeamSpec }} from '{types_import_path}';
566
714
  code += f" executionMode: '{spec.get('execution_mode', 'sequential')}',\n"
567
715
  code += f" supervisor: {supervisor_ts},\n"
568
716
  code += f" routingInstructions: `{routing}`,\n"
717
+ # What an empty chat offers. Emitted only when the team names
718
+ # some: an empty array in every generated team would be four
719
+ # hundred lines saying nothing.
720
+ suggestions = spec.get("suggestions") or []
721
+ if suggestions:
722
+ rendered = ", ".join(
723
+ "{ "
724
+ + ", ".join(
725
+ f"{key}: " + json.dumps(value, ensure_ascii=False)
726
+ for key, value in _suggestion_fields(item).items()
727
+ if value
728
+ )
729
+ + " }"
730
+ for item in suggestions
731
+ )
732
+ code += f" suggestions: [{rendered}],\n"
733
+ delegation = spec.get("delegation") or {}
734
+ code += (
735
+ " delegation: { "
736
+ f"maxDepth: {delegation.get('max_depth', 2)}, "
737
+ f"allowPeerDelegation: {str(bool(delegation.get('allow_peer_delegation', False))).lower()}, "
738
+ f"includeGeneralPurpose: {str(bool(delegation.get('include_general_purpose', False))).lower()}"
739
+ " },\n"
740
+ )
741
+ context = spec.get("context") or {}
742
+ code += f" context: {{ sharing: '{context.get('sharing', 'shared')}' }},\n"
569
743
  code += f" validation: {validation_ts},\n"
570
744
  code += f" agents: {agents_ts},\n"
571
745
  if rr_ts is not None:
@@ -7,6 +7,7 @@ Generate Python and TypeScript code from YAML tool specifications.
7
7
  """
8
8
 
9
9
  import argparse
10
+ import json
10
11
  import re
11
12
  import sys
12
13
  from pathlib import Path
@@ -123,8 +124,8 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
123
124
  f"{const_name} = ToolSpec(",
124
125
  f' id="{tool_id}",',
125
126
  f' version="{version}",',
126
- f' name="{spec["name"]}",',
127
- f' description="{spec.get("description", "")}",',
127
+ f" name={json.dumps(spec['name'], ensure_ascii=False)},",
128
+ f" description={json.dumps(spec.get('description', ''), ensure_ascii=False)},",
128
129
  f" tags={_fmt_list(spec.get('tags', []))},",
129
130
  f" enabled={spec.get('enabled', True)},",
130
131
  f' approval="{spec.get("approval", "auto")}",',
@@ -229,8 +230,9 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
229
230
  f"export const {const_name}: ToolSpec = {{",
230
231
  f" id: '{tool_id}',",
231
232
  f" version: '{version}',",
232
- f" name: '{spec['name']}',",
233
- f" description: '{spec.get('description', '')}',",
233
+ # JSON-escaped: an apostrophe in a description is not a syntax error.
234
+ f" name: {json.dumps(spec['name'], ensure_ascii=False)},",
235
+ f" description: {json.dumps(spec.get('description', ''), ensure_ascii=False)},",
234
236
  f" tags: {tags_json},",
235
237
  f" enabled: {str(spec.get('enabled', True)).lower()},",
236
238
  f" approval: '{spec.get('approval', 'auto')}',",