@datalayer/agent-runtimes 1.0.29 → 1.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (768) hide show
  1. package/lib/AgentDocument.js +5 -22
  2. package/lib/AgentNode.d.ts +1 -1
  3. package/lib/AgentNode.js +193 -23
  4. package/lib/AgentNotebook.js +1 -1
  5. package/lib/App.d.ts +1 -1
  6. package/lib/AppExamples2.d.ts +1 -1
  7. package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
  8. package/lib/agent-node/AgentNodeGallery.js +19 -15
  9. package/lib/agent-node/themeStore.js +7 -6
  10. package/lib/agents/AgentDetails.d.ts +8 -2
  11. package/lib/agents/AgentDetails.js +41 -11
  12. package/lib/agents/AgentRuntimeChat.d.ts +3 -3
  13. package/lib/agents/AgentRuntimeChat.js +15 -15
  14. package/lib/api/agents.d.ts +10 -10
  15. package/lib/api/agents.js +15 -15
  16. package/lib/api/checkpoints.d.ts +40 -0
  17. package/lib/api/checkpoints.js +75 -0
  18. package/lib/api/index.d.ts +1 -0
  19. package/lib/api/index.js +2 -1
  20. package/lib/api/notifications.d.ts +21 -6
  21. package/lib/api/notifications.js +32 -14
  22. package/lib/api/runtimes/environments.d.ts +385 -4
  23. package/lib/api/runtimes/environments.js +610 -9
  24. package/lib/api/runtimes/runtimes.d.ts +19 -19
  25. package/lib/api/runtimes/runtimes.js +47 -46
  26. package/lib/api/spacer/notebooks.js +1 -1
  27. package/lib/chat/Chat.d.ts +16 -4
  28. package/lib/chat/Chat.js +18 -5
  29. package/lib/chat/ChatFloating.d.ts +13 -2
  30. package/lib/chat/ChatFloating.js +192 -117
  31. package/lib/chat/ChatInline.d.ts +15 -0
  32. package/lib/chat/ChatInline.js +0 -18
  33. package/lib/chat/ChatPopupStandalone.d.ts +1 -1
  34. package/lib/chat/ChatSidebar.d.ts +14 -2
  35. package/lib/chat/ChatSidebar.js +1 -1
  36. package/lib/chat/ChatStandalone.d.ts +1 -1
  37. package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
  38. package/lib/chat/EphemeralSurfaceControl.js +55 -0
  39. package/lib/chat/base/ChatAvailability.d.ts +34 -0
  40. package/lib/chat/base/ChatAvailability.js +18 -0
  41. package/lib/chat/base/ChatBase.d.ts +2 -1
  42. package/lib/chat/base/ChatBase.js +657 -28
  43. package/lib/chat/display/EmptyState.d.ts +15 -1
  44. package/lib/chat/display/EmptyState.js +78 -12
  45. package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
  46. package/lib/chat/display/PoweredByTag.d.ts +1 -1
  47. package/lib/chat/display/groupSuggestions.d.ts +21 -0
  48. package/lib/chat/display/groupSuggestions.js +18 -0
  49. package/lib/chat/document/EphemeralDocument.d.ts +70 -6
  50. package/lib/chat/document/EphemeralDocument.js +154 -52
  51. package/lib/chat/header/ChatHeader.d.ts +1 -1
  52. package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
  53. package/lib/chat/header/ChatHeaderBase.js +67 -96
  54. package/lib/chat/index.d.ts +4 -1
  55. package/lib/chat/index.js +8 -1
  56. package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
  57. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
  58. package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
  59. package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
  60. package/lib/chat/messages/ChatMessageList.d.ts +22 -1
  61. package/lib/chat/messages/ChatMessageList.js +370 -166
  62. package/lib/chat/messages/ChatMessages.d.ts +1 -1
  63. package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
  64. package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
  65. package/lib/chat/messages/TurnFooter.d.ts +42 -0
  66. package/lib/chat/messages/TurnFooter.js +75 -0
  67. package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
  68. package/lib/chat/messages/assistantMarkdown.js +56 -0
  69. package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
  70. package/lib/chat/notebook/EphemeralNotebook.js +194 -61
  71. package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
  72. package/lib/chat/parts/MessagePart.d.ts +1 -1
  73. package/lib/chat/parts/ReasoningPart.d.ts +8 -1
  74. package/lib/chat/parts/TextPart.d.ts +1 -1
  75. package/lib/chat/parts/ToolPart.d.ts +8 -1
  76. package/lib/chat/prompt/FloatingCard.d.ts +26 -0
  77. package/lib/chat/prompt/FloatingCard.js +80 -0
  78. package/lib/chat/prompt/InputPrompt.d.ts +206 -53
  79. package/lib/chat/prompt/InputPrompt.js +161 -80
  80. package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
  81. package/lib/chat/prompt/InputPromptBase.js +225 -0
  82. package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
  83. package/lib/chat/prompt/InputPromptLexical.js +227 -30
  84. package/lib/chat/prompt/InputPromptText.d.ts +10 -2
  85. package/lib/chat/prompt/InputPromptText.js +35 -3
  86. package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
  87. package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
  88. package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
  89. package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
  90. package/lib/chat/prompt/footer/index.d.ts +7 -0
  91. package/lib/chat/prompt/footer/index.js +11 -0
  92. package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
  93. package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
  94. package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
  95. package/lib/chat/prompt/header/InPromptHeader.js +14 -0
  96. package/lib/chat/prompt/header/index.d.ts +7 -0
  97. package/lib/chat/prompt/header/index.js +11 -0
  98. package/lib/chat/prompt/index.d.ts +8 -4
  99. package/lib/chat/prompt/index.js +15 -3
  100. package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
  101. package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
  102. package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
  103. package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
  104. package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
  105. package/lib/chat/prompt/menus/ModelSelector.js +27 -0
  106. package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
  107. package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
  108. package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
  109. package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
  110. package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
  111. package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
  112. package/lib/chat/prompt/menus/index.d.ts +15 -0
  113. package/lib/chat/prompt/menus/index.js +19 -0
  114. package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
  115. package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
  116. package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
  117. package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
  118. package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
  119. package/lib/chat/prompt/plugins/MentionChip.js +24 -0
  120. package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
  121. package/lib/chat/prompt/plugins/MentionNode.js +77 -0
  122. package/lib/chat/prompt/promptHistory.d.ts +52 -0
  123. package/lib/chat/prompt/promptHistory.js +123 -0
  124. package/lib/chat/prompt/stack.d.ts +81 -0
  125. package/lib/chat/prompt/stack.js +41 -0
  126. package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
  127. package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
  128. package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
  129. package/lib/chat/tools/A2AAgentDialog.js +265 -0
  130. package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
  131. package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
  132. package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
  133. package/lib/chat/tools/index.d.ts +1 -0
  134. package/lib/chat/tools/index.js +1 -0
  135. package/lib/chat/usage/ContextPie.d.ts +17 -0
  136. package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
  137. package/lib/chat/useViewportDrag.d.ts +11 -0
  138. package/lib/chat/useViewportDrag.js +61 -0
  139. package/lib/chat/viewModes.d.ts +51 -0
  140. package/lib/chat/viewModes.js +57 -0
  141. package/lib/client/AgentRuntimesClient.d.ts +10 -9
  142. package/lib/client/AgentRuntimesClient.js +1 -1
  143. package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
  144. package/lib/client/AgentsMixin.d.ts +12 -12
  145. package/lib/client/AgentsMixin.js +31 -31
  146. package/lib/client/IAgentRuntimesClient.d.ts +10 -10
  147. package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
  148. package/lib/client/SdkAgentRuntimesClient.js +10 -10
  149. package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
  150. package/lib/client/mixins/RuntimesMixin.js +54 -21
  151. package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
  152. package/lib/components/agents/AgentSummary.d.ts +13 -0
  153. package/lib/components/agents/AgentSummary.js +21 -4
  154. package/lib/components/cards/NotificationEventCard.d.ts +1 -1
  155. package/lib/components/cards/OutputCard.d.ts +1 -1
  156. package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
  157. package/lib/components/cards/ToolApprovalCard.js +1 -0
  158. package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
  159. package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
  160. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
  161. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
  162. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
  163. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
  164. package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +1 -0
  165. package/lib/components/code-sandboxes/CodeSandboxLauncher.js +42 -19
  166. package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
  167. package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
  168. package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
  169. package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
  170. package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
  171. package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
  172. package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
  173. package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
  174. package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
  175. package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
  176. package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
  177. package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
  178. package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
  179. package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
  180. package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
  181. package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
  182. package/lib/components/code-sandboxes/index.d.ts +1 -0
  183. package/lib/components/code-sandboxes/index.js +1 -0
  184. package/lib/components/context/SpaceSelect.d.ts +1 -1
  185. package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
  186. package/lib/components/icons/ArtifactIcon.d.ts +1 -0
  187. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  188. package/lib/components/progress/CreditsIndicator.d.ts +1 -0
  189. package/lib/components/progress/CreditsIndicator.js +0 -4
  190. package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
  191. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
  192. package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
  193. package/lib/components/snippets/SnippetDialog.d.ts +1 -0
  194. package/lib/components/snippets/SnippetDialog.js +0 -4
  195. package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
  196. package/lib/components/specs/SpecPayloadPreview.js +102 -0
  197. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  198. package/lib/context/ContextDistribution.d.ts +1 -1
  199. package/lib/context/ContextInspector.d.ts +2 -1
  200. package/lib/context/ContextPanel.d.ts +1 -1
  201. package/lib/context/ContextUsage.d.ts +1 -1
  202. package/lib/context/CostTracker.d.ts +1 -1
  203. package/lib/context/CostUsageChart.d.ts +1 -1
  204. package/lib/context/CostUsageChart.js +4 -4
  205. package/lib/context/MessageHistory.d.ts +3 -2
  206. package/lib/context/TokenUsageChart.d.ts +1 -1
  207. package/lib/context/TokenUsageChart.js +4 -4
  208. package/lib/examples/A2UiAgentExample.js +15 -6
  209. package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
  210. package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
  211. package/lib/examples/A2UiContactCardExample.d.ts +10 -0
  212. package/lib/examples/A2UiContactCardExample.js +23 -170
  213. package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
  214. package/lib/examples/A2UiJupyterOutputExample.js +792 -0
  215. package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
  216. package/lib/examples/A2UiRestaurantExample.js +24 -179
  217. package/lib/examples/A2UiViewerExample.d.ts +10 -0
  218. package/lib/examples/A2UiViewerExample.js +24 -378
  219. package/lib/examples/AgUiAgenticExample.js +2 -4
  220. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
  221. package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
  222. package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
  223. package/lib/examples/AgUiSharedStateExample.js +2 -4
  224. package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
  225. package/lib/examples/AgentA2AExample.d.ts +17 -0
  226. package/lib/examples/AgentA2AExample.js +56 -0
  227. package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
  228. package/lib/examples/AgentCheckpointsExample.js +72 -54
  229. package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
  230. package/lib/examples/AgentCodeSandboxExample.js +93 -303
  231. package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
  232. package/lib/examples/AgentCodeSandboxesExample.js +56 -162
  233. package/lib/examples/AgentCodemodeExample.d.ts +7 -2
  234. package/lib/examples/AgentCodemodeExample.js +60 -125
  235. package/lib/examples/AgentCompactionExample.js +19 -135
  236. package/lib/examples/AgentEvalsExample.js +34 -66
  237. package/lib/examples/AgentGuardrailsExample.js +64 -112
  238. package/lib/examples/AgentHooksExample.d.ts +11 -0
  239. package/lib/examples/AgentHooksExample.js +30 -67
  240. package/lib/examples/AgentInferenceProviderExample.js +8 -32
  241. package/lib/examples/AgentLoopExample.d.ts +4 -2
  242. package/lib/examples/AgentLoopExample.js +45 -93
  243. package/lib/examples/AgentMCPExample.js +30 -79
  244. package/lib/examples/AgentMemoryExample.js +21 -64
  245. package/lib/examples/AgentMonitoringExample.js +33 -94
  246. package/lib/examples/AgentNotificationsExample.js +56 -95
  247. package/lib/examples/AgentOtelExample.js +35 -88
  248. package/lib/examples/AgentOutputsExample.d.ts +2 -1
  249. package/lib/examples/AgentOutputsExample.js +16 -137
  250. package/lib/examples/AgentParametersExample.js +7 -17
  251. package/lib/examples/AgentSkillsExample.js +40 -154
  252. package/lib/examples/AgentSubagentsExample.d.ts +7 -6
  253. package/lib/examples/AgentSubagentsExample.js +80 -191
  254. package/lib/examples/AgentToolApprovalsExample.js +35 -91
  255. package/lib/examples/AgentTriggersExample.js +43 -59
  256. package/lib/examples/AgentspecsExample.js +4 -4
  257. package/lib/examples/CellExample.d.ts +1 -1
  258. package/lib/examples/ChatExample.d.ts +12 -5
  259. package/lib/examples/ChatExample.js +38 -13
  260. package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
  261. package/lib/examples/CopilotKitLexicalExample.js +4 -41
  262. package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
  263. package/lib/examples/CopilotKitNotebookExample.js +2 -14
  264. package/lib/examples/DecksAgent.d.ts +21 -0
  265. package/lib/examples/DecksAgent.js +23 -0
  266. package/lib/examples/DocumentPageAgent.d.ts +19 -0
  267. package/lib/examples/DocumentPageAgent.js +15 -0
  268. package/lib/examples/Lexical2Example.d.ts +2 -2
  269. package/lib/examples/Lexical2Example.js +17 -38
  270. package/lib/examples/LexicalAgentExample.d.ts +2 -1
  271. package/lib/examples/LexicalAgentExample.js +29 -102
  272. package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
  273. package/lib/examples/LexicalAgentSidebarExample.js +99 -131
  274. package/lib/examples/LoopShellExample.d.ts +38 -0
  275. package/lib/examples/LoopShellExample.js +68 -0
  276. package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
  277. package/lib/examples/LoopWorkspaceEmbed.js +73 -0
  278. package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
  279. package/lib/examples/LoopWorkspaceExample.js +151 -0
  280. package/lib/examples/NotebookAgentExample.d.ts +13 -0
  281. package/lib/examples/NotebookAgentExample.js +36 -86
  282. package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
  283. package/lib/examples/NotebookAgentSidebarExample.js +39 -83
  284. package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
  285. package/lib/examples/NotebookCollaborationExample.js +108 -20
  286. package/lib/examples/NotebookExample.d.ts +1 -1
  287. package/lib/examples/NotebookExample.js +20 -10
  288. package/lib/examples/NotebookPageAgent.d.ts +23 -0
  289. package/lib/examples/NotebookPageAgent.js +17 -0
  290. package/lib/examples/components/ExampleWrapper.d.ts +5 -0
  291. package/lib/examples/components/ExampleWrapper.js +36 -28
  292. package/lib/examples/components/LexicalEditor.d.ts +1 -1
  293. package/lib/examples/components/LexicalEditor.js +4 -24
  294. package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
  295. package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
  296. package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
  297. package/lib/examples/example-selector.js +26 -6
  298. package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
  299. package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
  300. package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
  301. package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
  302. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
  303. package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
  304. package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
  305. package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
  306. package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
  307. package/lib/examples/index.d.ts +4 -0
  308. package/lib/examples/index.js +6 -0
  309. package/lib/examples/lexical/editorConfig.d.ts +2 -75
  310. package/lib/examples/lexical/editorConfig.js +26 -48
  311. package/lib/examples/lexical/lexical-theme.css +65 -47
  312. package/lib/examples/main.js +450 -322
  313. package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
  314. package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
  315. package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
  316. package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
  317. package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
  318. package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
  319. package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
  320. package/lib/examples/scenes/A2UiViewerScene.js +395 -0
  321. package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
  322. package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
  323. package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
  324. package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
  325. package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
  326. package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
  327. package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
  328. package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
  329. package/lib/examples/utils/exampleSurfaces.js +38 -0
  330. package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
  331. package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
  332. package/lib/examples/utils/localUrl.d.ts +2 -0
  333. package/lib/examples/utils/localUrl.js +49 -0
  334. package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
  335. package/lib/examples/utils/notebookToolbarItems.js +129 -0
  336. package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
  337. package/lib/examples/utils/runtimeTargetStore.js +82 -1
  338. package/lib/examples/utils/themedProvider.d.ts +7 -0
  339. package/lib/examples/utils/themedProvider.js +57 -4
  340. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
  341. package/lib/examples/utils/waitForAgent.d.ts +23 -0
  342. package/lib/examples/utils/waitForAgent.js +24 -0
  343. package/lib/examples2/CellExample.d.ts +1 -1
  344. package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
  345. package/lib/examples2/NotebookExample.d.ts +1 -1
  346. package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
  347. package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
  348. package/lib/examples2/main.js +24 -4
  349. package/lib/extensions/A2UIExtension.d.ts +1 -1
  350. package/lib/hooks/index.d.ts +8 -5
  351. package/lib/hooks/index.js +20 -5
  352. package/lib/hooks/useAgentRuntimes.d.ts +49 -22
  353. package/lib/hooks/useAgentRuntimes.js +214 -90
  354. package/lib/hooks/useAgentsCatalog.js +32 -4
  355. package/lib/hooks/useBrowserAgent.d.ts +26 -0
  356. package/lib/hooks/useBrowserAgent.js +75 -0
  357. package/lib/hooks/useBrowserInference.d.ts +27 -0
  358. package/lib/hooks/useBrowserInference.js +67 -0
  359. package/lib/hooks/useCheckpoints.d.ts +8 -17
  360. package/lib/hooks/useCheckpoints.js +25 -59
  361. package/lib/hooks/useConfig.d.ts +1 -1
  362. package/lib/hooks/useConfig.js +5 -1
  363. package/lib/hooks/useContextSnapshot.d.ts +18 -7
  364. package/lib/hooks/useContextSnapshot.js +14 -10
  365. package/lib/hooks/useNotifications.d.ts +11 -11
  366. package/lib/hooks/useNotifications.js +1 -1
  367. package/lib/hooks/useProjects.d.ts +7 -19
  368. package/lib/hooks/useProjects.js +5 -5
  369. package/lib/hooks/useSkills.d.ts +0 -1
  370. package/lib/hooks/useSkills.js +6 -2
  371. package/lib/hooks/useToolApprovals.d.ts +8 -8
  372. package/lib/hooks/useToolApprovals.js +3 -3
  373. package/lib/identity/AgentIdentity.d.ts +9 -2
  374. package/lib/index.d.ts +1 -0
  375. package/lib/index.js +4 -0
  376. package/lib/jupyter/index.d.ts +2 -1
  377. package/lib/jupyter/index.js +2 -1
  378. package/lib/jupyter/serverExecution.d.ts +78 -0
  379. package/lib/jupyter/serverExecution.js +258 -0
  380. package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
  381. package/lib/jupyter/useResumeServerExecutions.js +64 -0
  382. package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
  383. package/lib/lexical/ChatInlinePlugin.js +0 -36
  384. package/lib/loop/core/focusRequests.d.ts +10 -0
  385. package/lib/loop/core/focusRequests.js +46 -0
  386. package/lib/loop/core/index.d.ts +894 -0
  387. package/lib/loop/core/index.js +264 -0
  388. package/lib/loop/core/promptStore.d.ts +44 -0
  389. package/lib/loop/core/promptStore.js +63 -0
  390. package/lib/loop/core/surfaceRequests.d.ts +33 -0
  391. package/lib/loop/core/surfaceRequests.js +29 -0
  392. package/lib/loop/core/toolbar.d.ts +28 -0
  393. package/lib/loop/core/toolbar.js +59 -0
  394. package/lib/loop/embed/LoopEmbed.d.ts +57 -0
  395. package/lib/loop/embed/LoopEmbed.js +118 -0
  396. package/lib/loop/extensions.d.ts +10 -0
  397. package/lib/loop/extensions.js +49 -0
  398. package/lib/loop/index.d.ts +68 -0
  399. package/lib/loop/index.js +87 -0
  400. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
  401. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
  402. package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
  403. package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
  404. package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
  405. package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
  406. package/lib/loop/plugins/a2ui/index.d.ts +3 -0
  407. package/lib/loop/plugins/a2ui/index.js +50 -0
  408. package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
  409. package/lib/loop/plugins/a2ui-scene/index.js +28 -0
  410. package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
  411. package/lib/loop/plugins/agent-a2a/index.js +26 -0
  412. package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
  413. package/lib/loop/plugins/agent-a2ui/index.js +42 -0
  414. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
  415. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
  416. package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
  417. package/lib/loop/plugins/agent-capacity/index.js +52 -0
  418. package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
  419. package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
  420. package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
  421. package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
  422. package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
  423. package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
  424. package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
  425. package/lib/loop/plugins/agent-codemode/index.js +41 -0
  426. package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
  427. package/lib/loop/plugins/agent-compaction/index.js +34 -0
  428. package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
  429. package/lib/loop/plugins/agent-evals/index.js +25 -0
  430. package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
  431. package/lib/loop/plugins/agent-guardrails/index.js +25 -0
  432. package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
  433. package/lib/loop/plugins/agent-hooks/index.js +28 -0
  434. package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
  435. package/lib/loop/plugins/agent-inference/index.js +29 -0
  436. package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
  437. package/lib/loop/plugins/agent-mcp/index.js +25 -0
  438. package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
  439. package/lib/loop/plugins/agent-memory/index.js +25 -0
  440. package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
  441. package/lib/loop/plugins/agent-monitoring/index.js +25 -0
  442. package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
  443. package/lib/loop/plugins/agent-notifications/index.js +25 -0
  444. package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
  445. package/lib/loop/plugins/agent-otel/index.js +25 -0
  446. package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
  447. package/lib/loop/plugins/agent-outputs/index.js +25 -0
  448. package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
  449. package/lib/loop/plugins/agent-parameters/index.js +25 -0
  450. package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
  451. package/lib/loop/plugins/agent-skills/index.js +25 -0
  452. package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
  453. package/lib/loop/plugins/agent-subagents/index.js +25 -0
  454. package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
  455. package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
  456. package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
  457. package/lib/loop/plugins/agent-triggers/index.js +26 -0
  458. package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
  459. package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
  460. package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
  461. package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
  462. package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
  463. package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
  464. package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
  465. package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
  466. package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
  467. package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
  468. package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
  469. package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
  470. package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
  471. package/lib/loop/plugins/agents/SandboxView.js +43 -0
  472. package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
  473. package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
  474. package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
  475. package/lib/loop/plugins/agents/agentIcons.js +88 -0
  476. package/lib/loop/plugins/agents/browserService.d.ts +50 -0
  477. package/lib/loop/plugins/agents/browserService.js +233 -0
  478. package/lib/loop/plugins/agents/index.d.ts +13 -0
  479. package/lib/loop/plugins/agents/index.js +17 -0
  480. package/lib/loop/plugins/agents/plugin.d.ts +91 -0
  481. package/lib/loop/plugins/agents/plugin.js +201 -0
  482. package/lib/loop/plugins/agents/service.d.ts +99 -0
  483. package/lib/loop/plugins/agents/service.js +167 -0
  484. package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
  485. package/lib/loop/plugins/agents/specSubagents.js +33 -0
  486. package/lib/loop/plugins/agents/switchable.d.ts +107 -0
  487. package/lib/loop/plugins/agents/switchable.js +405 -0
  488. package/lib/loop/plugins/agents/team.d.ts +87 -0
  489. package/lib/loop/plugins/agents/team.js +143 -0
  490. package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
  491. package/lib/loop/plugins/agents/useSandboxService.js +36 -0
  492. package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
  493. package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
  494. package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
  495. package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
  496. package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
  497. package/lib/loop/plugins/agentspecs/index.js +63 -0
  498. package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
  499. package/lib/loop/plugins/chat/ChatView.js +1670 -0
  500. package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
  501. package/lib/loop/plugins/chat/chatViewTools.js +92 -0
  502. package/lib/loop/plugins/chat/index.d.ts +111 -0
  503. package/lib/loop/plugins/chat/index.js +143 -0
  504. package/lib/loop/plugins/chat/turnState.d.ts +41 -0
  505. package/lib/loop/plugins/chat/turnState.js +90 -0
  506. package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
  507. package/lib/loop/plugins/chat-extras/index.js +51 -0
  508. package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
  509. package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
  510. package/lib/loop/plugins/chat-header/index.d.ts +3 -0
  511. package/lib/loop/plugins/chat-header/index.js +21 -0
  512. package/lib/loop/plugins/chat-view/index.d.ts +10 -0
  513. package/lib/loop/plugins/chat-view/index.js +29 -0
  514. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
  515. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
  516. package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
  517. package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
  518. package/lib/loop/plugins/commands/index.d.ts +20 -0
  519. package/lib/loop/plugins/commands/index.js +148 -0
  520. package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
  521. package/lib/loop/plugins/decks/DeckSurface.js +6 -0
  522. package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
  523. package/lib/loop/plugins/decks/DecksMenu.js +42 -0
  524. package/lib/loop/plugins/decks/index.d.ts +19 -0
  525. package/lib/loop/plugins/decks/index.js +133 -0
  526. package/lib/loop/plugins/decks/surface.d.ts +7 -0
  527. package/lib/loop/plugins/decks/surface.js +11 -0
  528. package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
  529. package/lib/loop/plugins/document/DocumentView.js +68 -0
  530. package/lib/loop/plugins/document/index.d.ts +3 -0
  531. package/lib/loop/plugins/document/index.js +86 -0
  532. package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
  533. package/lib/loop/plugins/document/openingDocument.js +122 -0
  534. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
  535. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
  536. package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
  537. package/lib/loop/plugins/document-toolbar/index.js +35 -0
  538. package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
  539. package/lib/loop/plugins/document-toolbar/names.js +10 -0
  540. package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
  541. package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
  542. package/lib/loop/plugins/document-view/index.d.ts +10 -0
  543. package/lib/loop/plugins/document-view/index.js +28 -0
  544. package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
  545. package/lib/loop/plugins/graph/GraphToggle.js +22 -0
  546. package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
  547. package/lib/loop/plugins/graph/GraphView.js +6 -0
  548. package/lib/loop/plugins/graph/index.d.ts +5 -0
  549. package/lib/loop/plugins/graph/index.js +80 -0
  550. package/lib/loop/plugins/graph/viewType.d.ts +10 -0
  551. package/lib/loop/plugins/graph/viewType.js +14 -0
  552. package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
  553. package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
  554. package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
  555. package/lib/loop/plugins/input-prompt/index.js +26 -0
  556. package/lib/loop/plugins/models/index.d.ts +3 -0
  557. package/lib/loop/plugins/models/index.js +49 -0
  558. package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
  559. package/lib/loop/plugins/notebook/NotebookView.js +189 -0
  560. package/lib/loop/plugins/notebook/index.d.ts +3 -0
  561. package/lib/loop/plugins/notebook/index.js +91 -0
  562. package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
  563. package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
  564. package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
  565. package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
  566. package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
  567. package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
  568. package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
  569. package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
  570. package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
  571. package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
  572. package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
  573. package/lib/loop/plugins/notebook-view/index.js +30 -0
  574. package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
  575. package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
  576. package/lib/loop/plugins/page-layout/index.d.ts +35 -0
  577. package/lib/loop/plugins/page-layout/index.js +80 -0
  578. package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
  579. package/lib/loop/plugins/plugins-panel/index.js +74 -0
  580. package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
  581. package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
  582. package/lib/loop/plugins/prompt/index.d.ts +11 -0
  583. package/lib/loop/plugins/prompt/index.js +73 -0
  584. package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
  585. package/lib/loop/plugins/shell/editorChoice.js +58 -0
  586. package/lib/loop/plugins/shell/index.d.ts +47 -0
  587. package/lib/loop/plugins/shell/index.js +142 -0
  588. package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
  589. package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
  590. package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
  591. package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
  592. package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
  593. package/lib/loop/plugins/subagent-activity/index.js +42 -0
  594. package/lib/loop/plugins/view-switch/index.d.ts +46 -0
  595. package/lib/loop/plugins/view-switch/index.js +68 -0
  596. package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
  597. package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
  598. package/lib/loop/plugins/window-frame/index.d.ts +6 -0
  599. package/lib/loop/plugins/window-frame/index.js +79 -0
  600. package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
  601. package/lib/loop/plugins/window-frame/slots.js +30 -0
  602. package/lib/loop/presets.d.ts +167 -0
  603. package/lib/loop/presets.js +139 -0
  604. package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
  605. package/lib/loop/shell/LoopWorkspace.js +231 -0
  606. package/lib/loop/shell/PluginToggles.d.ts +21 -0
  607. package/lib/loop/shell/PluginToggles.js +41 -0
  608. package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
  609. package/lib/loop/shell/ViewSwitcher.js +43 -0
  610. package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
  611. package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
  612. package/lib/loop/shell/index.d.ts +10 -0
  613. package/lib/loop/shell/index.js +14 -0
  614. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
  615. package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
  616. package/lib/loop-example-main.d.ts +1 -0
  617. package/lib/loop-example-main.js +42 -0
  618. package/lib/loop-main.d.ts +1 -0
  619. package/lib/loop-main.js +138 -0
  620. package/lib/mcp/McpServerManager.d.ts +1 -1
  621. package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
  622. package/lib/models/CodeSandboxVariant.d.ts +13 -5
  623. package/lib/models/CodeSandboxVariant.js +17 -5
  624. package/lib/models/Content.d.ts +26 -0
  625. package/lib/models/Environment.d.ts +561 -5
  626. package/lib/models/Environment.js +12 -1
  627. package/lib/models/EnvironmentDTO.d.ts +24 -6
  628. package/lib/models/EnvironmentDTO.js +13 -2
  629. package/lib/models/Exercise.d.ts +0 -2
  630. package/lib/models/Library.d.ts +0 -2
  631. package/lib/models/Notebook.d.ts +0 -2
  632. package/lib/models/ProjectDTO.d.ts +2 -2
  633. package/lib/models/ProjectDTO.js +4 -4
  634. package/lib/models/Runtime.d.ts +11 -11
  635. package/lib/models/RuntimeDTO.d.ts +16 -7
  636. package/lib/models/RuntimeDTO.js +9 -9
  637. package/lib/models/Space.d.ts +10 -0
  638. package/lib/models/Space.js +1 -1
  639. package/lib/models/SpaceDTO.d.ts +1 -1
  640. package/lib/models/SpaceItem.d.ts +1 -2
  641. package/lib/models/environments.generated.d.ts +113 -0
  642. package/lib/models/environments.generated.js +13 -0
  643. package/lib/models/index.d.ts +0 -1
  644. package/lib/models/index.js +0 -1
  645. package/lib/protocols/A2AAdapter.d.ts +39 -6
  646. package/lib/protocols/A2AAdapter.js +180 -11
  647. package/lib/protocols/ACPAdapter.js +40 -37
  648. package/lib/protocols/AGUIAdapter.d.ts +14 -0
  649. package/lib/protocols/AGUIAdapter.js +34 -9
  650. package/lib/protocols/BrowserAgentAdapter.d.ts +117 -0
  651. package/lib/protocols/BrowserAgentAdapter.js +310 -0
  652. package/lib/protocols/VercelAIAdapter.d.ts +10 -0
  653. package/lib/protocols/VercelAIAdapter.js +27 -7
  654. package/lib/protocols/index.d.ts +1 -0
  655. package/lib/protocols/index.js +1 -0
  656. package/lib/runtimes/actions.d.ts +3 -3
  657. package/lib/runtimes/actions.js +27 -14
  658. package/lib/runtimes/apis.d.ts +13 -4
  659. package/lib/runtimes/browser/agent.d.ts +54 -0
  660. package/lib/runtimes/browser/agent.js +63 -0
  661. package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
  662. package/lib/runtimes/browser/anonymousToken.js +300 -0
  663. package/lib/runtimes/browser/frontendTools.d.ts +61 -0
  664. package/lib/runtimes/browser/frontendTools.js +152 -0
  665. package/lib/runtimes/browser/index.d.ts +11 -0
  666. package/lib/runtimes/browser/index.js +20 -0
  667. package/lib/runtimes/browser/model.d.ts +52 -0
  668. package/lib/runtimes/browser/model.js +110 -0
  669. package/lib/runtimes/browser/protocol.d.ts +54 -0
  670. package/lib/runtimes/browser/protocol.js +35 -0
  671. package/lib/runtimes/browser/subagents.d.ts +131 -0
  672. package/lib/runtimes/browser/subagents.js +241 -0
  673. package/lib/runtimes/index.d.ts +3 -0
  674. package/lib/runtimes/index.js +3 -0
  675. package/lib/runtimes/lifecycle.d.ts +76 -0
  676. package/lib/runtimes/lifecycle.js +99 -0
  677. package/lib/runtimes/variants.d.ts +172 -0
  678. package/lib/runtimes/variants.js +187 -0
  679. package/lib/services/reconnectToRuntime.d.ts +2 -2
  680. package/lib/services/reconnectToRuntime.js +3 -3
  681. package/lib/services/sandboxServiceManagers.d.ts +2 -2
  682. package/lib/services/sandboxServiceManagers.js +11 -11
  683. package/lib/specs/agents/agents.d.ts +128 -112
  684. package/lib/specs/agents/agents.js +8024 -5052
  685. package/lib/specs/evals.js +9 -0
  686. package/lib/specs/frontendTools.d.ts +3 -0
  687. package/lib/specs/frontendTools.js +46 -3
  688. package/lib/specs/mcpServers.d.ts +1 -0
  689. package/lib/specs/mcpServers.js +25 -2
  690. package/lib/specs/models.d.ts +18 -0
  691. package/lib/specs/models.js +154 -0
  692. package/lib/specs/outputs.d.ts +2 -0
  693. package/lib/specs/outputs.js +22 -0
  694. package/lib/specs/personas.js +1 -1
  695. package/lib/specs/teams/teams.d.ts +2 -0
  696. package/lib/specs/teams/teams.js +628 -111
  697. package/lib/state/index.d.ts +1 -1
  698. package/lib/state/index.js +1 -1
  699. package/lib/state/substates/RuntimesState.d.ts +5 -5
  700. package/lib/state/substates/RuntimesState.js +14 -14
  701. package/lib/state/substates/index.d.ts +1 -1
  702. package/lib/state/substates/index.js +1 -1
  703. package/lib/stores/agentRuntimeStore.d.ts +43 -1
  704. package/lib/stores/agentRuntimeStore.js +100 -11
  705. package/lib/stores/index.d.ts +1 -1
  706. package/lib/stores/index.js +1 -1
  707. package/lib/stories/Button.d.ts +1 -1
  708. package/lib/stories/Button.stories.d.ts +1 -1
  709. package/lib/stories/Header.d.ts +1 -1
  710. package/lib/stories/Header.stories.d.ts +1 -1
  711. package/lib/test-setup.js +66 -0
  712. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
  713. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
  714. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
  715. package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
  716. package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
  717. package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
  718. package/lib/tools/adapters/commands/index.d.ts +1 -0
  719. package/lib/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
  720. package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
  721. package/lib/tools/index.d.ts +1 -0
  722. package/lib/tools/index.js +1 -0
  723. package/lib/types/a2a.d.ts +15 -1
  724. package/lib/types/agents-lifecycle.d.ts +11 -6
  725. package/lib/types/agents.d.ts +31 -6
  726. package/lib/types/agentspecs.d.ts +120 -4
  727. package/lib/types/chat.d.ts +251 -3
  728. package/lib/types/checkpoints.d.ts +20 -0
  729. package/lib/types/config.d.ts +13 -1
  730. package/lib/types/connection.d.ts +1 -1
  731. package/lib/types/evals.d.ts +2 -0
  732. package/lib/types/messages.d.ts +60 -0
  733. package/lib/types/models.d.ts +26 -0
  734. package/lib/types/notifications.d.ts +15 -6
  735. package/lib/types/protocol.d.ts +7 -2
  736. package/lib/types/stream.d.ts +48 -3
  737. package/lib/types/stream.js +5 -0
  738. package/lib/types/teams.d.ts +102 -4
  739. package/lib/types/tool-approvals.d.ts +1 -1
  740. package/lib/types/tools.d.ts +8 -2
  741. package/lib/utils/utils.js +7 -1
  742. package/package.json +376 -361
  743. package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
  744. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  745. package/scripts/codegen/compose.py +208 -0
  746. package/scripts/codegen/generate_agents.py +202 -31
  747. package/scripts/codegen/generate_evals.py +2 -0
  748. package/scripts/codegen/generate_frontend_tools.py +35 -6
  749. package/scripts/codegen/generate_models.py +40 -15
  750. package/scripts/codegen/generate_sandbox_agents.py +76 -62
  751. package/scripts/codegen/generate_teams.py +178 -4
  752. package/scripts/codegen/generate_tools.py +6 -4
  753. package/scripts/gen_workers.py +278 -110
  754. package/scripts/generate-environments-types.py +404 -0
  755. package/lib/chat/prompt/InputFooter.d.ts +0 -58
  756. package/lib/chat/prompt/InputFooter.js +0 -194
  757. package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
  758. package/lib/chat/prompt/InputPromptFooter.js +0 -15
  759. package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
  760. package/lib/chat/prompt/InputPromptHeader.js +0 -15
  761. package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
  762. package/lib/hooks/useRuntimes.d.ts +0 -5
  763. package/lib/hooks/useRuntimes.js +0 -34
  764. package/lib/jupyter/kernelsHandler.d.ts +0 -8
  765. package/lib/jupyter/kernelsHandler.js +0 -39
  766. package/lib/models/Dataset.d.ts +0 -16
  767. package/lib/utils/Cells.d.ts +0 -2
  768. package/lib/utils/Cells.js +0 -28
@@ -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
  "};",
@@ -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
@@ -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')}',",