@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
@@ -1,8 +1,3 @@
1
- /**
2
- * A2A (Agent-to-Agent) protocol adapter using SSE transport.
3
- *
4
- * @module protocols/A2AAdapter
5
- */
6
1
  import type { ChatMessage } from '../types/messages';
7
2
  import type { ProtocolAdapterConfig, AgentCard } from '../types';
8
3
  import type { ToolDefinition, ToolExecutionResult } from '../types/tools';
@@ -11,7 +6,7 @@ import { BaseProtocolAdapter } from './BaseProtocolAdapter';
11
6
  * A2A specific configuration
12
7
  */
13
8
  export interface A2AAdapterConfig extends ProtocolAdapterConfig {
14
- /** Agent URL for .well-known/agent.json discovery */
9
+ /** Agent URL for .well-known/agent-card.json discovery */
15
10
  agentUrl?: string;
16
11
  /** Enable A2UI extension */
17
12
  enableA2UI?: boolean;
@@ -25,8 +20,29 @@ export declare class A2AAdapter extends BaseProtocolAdapter {
25
20
  readonly protocolTransport: "sse";
26
21
  private a2aConfig;
27
22
  private abortController;
23
+ /**
24
+ * Every in-flight request's abort controller, not just the newest.
25
+ *
26
+ * `abortController` is a single field that each request overwrites, and each
27
+ * request's `finally` used to clear it unconditionally — so a request that
28
+ * finished just after a newer one started would null the newer one's handle,
29
+ * and a subsequent stop had nothing left to abort. The stream carried on and
30
+ * the transcript went on typing itself after the reader had asked it not to.
31
+ */
32
+ private inFlight;
28
33
  private agentCard;
29
34
  private currentTaskId;
35
+ /**
36
+ * Whether the connected agent's card advertised the Datalayer
37
+ * orchestration extension (ORCHESTRATOR.md, O3-03). Set once, from
38
+ * `connect()`'s card fetch: neither side infers support from a
39
+ * successful message (the extension's own negotiation rule), so this is
40
+ * the one place that decides it, and every request either activates the
41
+ * extension by this or sends nothing extension-related at all — a worker
42
+ * that never advertised it sees a plain A2A client, unchanged from
43
+ * before this existed.
44
+ */
45
+ private orchestrationExtensionSupported;
30
46
  constructor(config: A2AAdapterConfig);
31
47
  /**
32
48
  * Connect and discover agent card
@@ -44,6 +60,14 @@ export declare class A2AAdapter extends BaseProtocolAdapter {
44
60
  * Get agent card
45
61
  */
46
62
  getAgentCard(): Promise<AgentCard | null>;
63
+ /**
64
+ * Whether the connected agent advertised the Datalayer orchestration
65
+ * extension. `false` until `connect()` has fetched a card, and `false`
66
+ * for any card that does not list it — including one that could not be
67
+ * fetched at all, so a worker with no card behaves exactly as it did
68
+ * before this existed.
69
+ */
70
+ get supportsOrchestrationExtension(): boolean;
47
71
  /**
48
72
  * Send a message through A2A protocol
49
73
  */
@@ -63,6 +87,15 @@ export declare class A2AAdapter extends BaseProtocolAdapter {
63
87
  accessToken: string;
64
88
  }>;
65
89
  }): Promise<void>;
90
+ /**
91
+ * Abort every in-flight stream without tearing the adapter down.
92
+ *
93
+ * This adapter had no such method, so pressing Stop reached only
94
+ * `terminateTask` — a request to the backend to cancel — and never closed
95
+ * the client's own stream. Whatever was already on the wire kept arriving
96
+ * and kept being rendered. `ChatBase` looks for this by name.
97
+ */
98
+ stopGeneration(): void;
66
99
  /**
67
100
  * Send tool result back
68
101
  */
@@ -2,8 +2,78 @@
2
2
  * Copyright (c) 2025-2026 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
+ /**
6
+ * A2A (Agent-to-Agent) protocol adapter using SSE transport.
7
+ *
8
+ * @module protocols/A2AAdapter
9
+ */
10
+ import { ORCHESTRATION_EXTENSION_URI, ENVELOPE_KEY as DATALAYER_META_KEY, readUsageMeta, } from '@datalayer/agent-teams';
5
11
  import { generateMessageId, createAssistantMessage } from '../types/messages';
6
12
  import { BaseProtocolAdapter } from './BaseProtocolAdapter';
13
+ /**
14
+ * The header fasta2a-based workers (`agent-runtimes`'s own, and any other
15
+ * built on it) actually read to activate an extension for one request —
16
+ * confirmed from `fasta2a.extensions`, not assumed: comma-separated URIs,
17
+ * answered on the same header naming which of them the agent knows.
18
+ * Neither this codebase's own `configuration.requestedExtensions` (read by
19
+ * nothing server-side) nor the A2A SDK's `Message.extensions` field is what
20
+ * a `fasta2a` worker's `activated_extensions()` looks at — this header is.
21
+ */
22
+ const A2A_EXTENSIONS_HEADER = 'A2A-Extensions';
23
+ const TERMINAL_TASK_STATES = new Set([
24
+ 'completed',
25
+ 'failed',
26
+ 'canceled',
27
+ 'rejected',
28
+ ]);
29
+ /**
30
+ * `fasta2a` wraps every `message/send` result and every `message/stream`
31
+ * event in a named key — `{ task: Task }`, `{ statusUpdate: ... }`,
32
+ * `{ artifactUpdate: ... }`, `{ message: Message }` — instead of the bare,
33
+ * `kind`-discriminated object
34
+ * (`Task.kind: 'task'`, `TaskStatusUpdateEvent.kind: 'status-update'`, ...)
35
+ * the current A2A specification requires and this file was written
36
+ * against. Confirmed directly, not assumed: `fasta2a.schema.SendMessageResult`
37
+ * and `StreamResponse` are TypedDicts with those named optional fields, and
38
+ * neither `Task` nor `TaskStatusUpdateEvent` in that schema carries a
39
+ * `kind` field at all. `agent_runtimes`' own A2A route is the same
40
+ * `FastA2A`, so every production Datalayer A2A worker serves this shape —
41
+ * a spec-conformant client (this file, or a genuine `a2a-sdk`-based one)
42
+ * could not render a single reply without this normalizer.
43
+ *
44
+ * A worker built to the current spec (its `result` already carries
45
+ * `kind`) passes through unchanged — this only steps in for the shape
46
+ * `fasta2a` actually sends.
47
+ *
48
+ * `fasta2a`'s `TaskStatusUpdateEvent` also has no `final` field, which the
49
+ * spec has and this file's status-update handling gates on; inferred here
50
+ * from the status being one of the terminal states, since nothing else in
51
+ * the payload says so.
52
+ */
53
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
+ function normalizeA2AResult(result) {
55
+ if (!result || typeof result !== 'object' || result.kind) {
56
+ return result;
57
+ }
58
+ if (result.task) {
59
+ return { ...result.task, kind: 'task' };
60
+ }
61
+ if (result.statusUpdate) {
62
+ const update = result.statusUpdate;
63
+ return {
64
+ ...update,
65
+ kind: 'status-update',
66
+ final: update.final ?? TERMINAL_TASK_STATES.has(update.status?.state),
67
+ };
68
+ }
69
+ if (result.artifactUpdate) {
70
+ return { ...result.artifactUpdate, kind: 'artifact-update' };
71
+ }
72
+ if (result.message) {
73
+ return { ...result.message, kind: 'message' };
74
+ }
75
+ return result;
76
+ }
7
77
  /**
8
78
  * A2A protocol adapter
9
79
  * Uses JSON-RPC 2.0 with SSE streaming for responses
@@ -13,8 +83,29 @@ export class A2AAdapter extends BaseProtocolAdapter {
13
83
  protocolTransport = 'sse';
14
84
  a2aConfig;
15
85
  abortController = null;
86
+ /**
87
+ * Every in-flight request's abort controller, not just the newest.
88
+ *
89
+ * `abortController` is a single field that each request overwrites, and each
90
+ * request's `finally` used to clear it unconditionally — so a request that
91
+ * finished just after a newer one started would null the newer one's handle,
92
+ * and a subsequent stop had nothing left to abort. The stream carried on and
93
+ * the transcript went on typing itself after the reader had asked it not to.
94
+ */
95
+ inFlight = new Set();
16
96
  agentCard = null;
17
97
  currentTaskId = null;
98
+ /**
99
+ * Whether the connected agent's card advertised the Datalayer
100
+ * orchestration extension (ORCHESTRATOR.md, O3-03). Set once, from
101
+ * `connect()`'s card fetch: neither side infers support from a
102
+ * successful message (the extension's own negotiation rule), so this is
103
+ * the one place that decides it, and every request either activates the
104
+ * extension by this or sends nothing extension-related at all — a worker
105
+ * that never advertised it sees a plain A2A client, unchanged from
106
+ * before this existed.
107
+ */
108
+ orchestrationExtensionSupported = false;
18
109
  constructor(config) {
19
110
  super(config);
20
111
  this.a2aConfig = {
@@ -28,9 +119,18 @@ export class A2AAdapter extends BaseProtocolAdapter {
28
119
  async connect() {
29
120
  this.setConnectionState('connecting');
30
121
  try {
31
- // Fetch agent card from .well-known endpoint
122
+ // Fetch agent card from .well-known endpoint. The current A2A
123
+ // specification's path is `agent-card.json` — `fasta2a`'s FastA2A
124
+ // (and a2a-sdk's own A2ACardResolver default) serves only that,
125
+ // confirmed by reading FastA2A's own route registration; the plain
126
+ // `agent.json` this fetched before was an earlier draft's path, and
127
+ // fetching it here 404s against every real worker, silently, since
128
+ // a missing card is caught below and connect() still "succeeds" —
129
+ // found live, against agent_teams.a2a.reference_worker
130
+ // (ORCHESTRATOR.md O3-04), not assumed: `supportsOrchestrationExtension`
131
+ // stayed false against a worker whose card plainly advertised it.
32
132
  const agentUrl = this.a2aConfig.agentUrl || this.a2aConfig.baseUrl;
33
- const wellKnownUrl = new URL('/.well-known/agent.json', agentUrl).toString();
133
+ const wellKnownUrl = new URL('/.well-known/agent-card.json', agentUrl).toString();
34
134
  const response = await fetch(wellKnownUrl, {
35
135
  method: 'GET',
36
136
  headers: this.buildHeaders(),
@@ -38,6 +138,8 @@ export class A2AAdapter extends BaseProtocolAdapter {
38
138
  });
39
139
  if (response.ok) {
40
140
  this.agentCard = await response.json();
141
+ this.orchestrationExtensionSupported =
142
+ this.agentCard?.capabilities?.extensions?.some(extension => extension.uri === ORCHESTRATION_EXTENSION_URI) ?? false;
41
143
  }
42
144
  this.setConnectionState('connected');
43
145
  }
@@ -51,10 +153,8 @@ export class A2AAdapter extends BaseProtocolAdapter {
51
153
  * Disconnect and terminate any ongoing agent execution
52
154
  */
53
155
  disconnect() {
54
- if (this.abortController) {
55
- this.abortController.abort();
56
- this.abortController = null;
57
- }
156
+ // Every open stream, not merely the newest.
157
+ this.stopGeneration();
58
158
  // Send terminate request to backend if we have a task ID
59
159
  if (this.currentTaskId) {
60
160
  this.terminateTask(this.currentTaskId).catch(err => {
@@ -99,11 +199,23 @@ export class A2AAdapter extends BaseProtocolAdapter {
99
199
  async getAgentCard() {
100
200
  return this.agentCard;
101
201
  }
202
+ /**
203
+ * Whether the connected agent advertised the Datalayer orchestration
204
+ * extension. `false` until `connect()` has fetched a card, and `false`
205
+ * for any card that does not list it — including one that could not be
206
+ * fetched at all, so a worker with no card behaves exactly as it did
207
+ * before this existed.
208
+ */
209
+ get supportsOrchestrationExtension() {
210
+ return this.orchestrationExtensionSupported;
211
+ }
102
212
  /**
103
213
  * Send a message through A2A protocol
104
214
  */
105
215
  async sendMessage(message, options) {
106
- this.abortController = new AbortController();
216
+ const controller = new AbortController();
217
+ this.abortController = controller;
218
+ this.inFlight.add(controller);
107
219
  const taskId = options?.threadId || this.currentTaskId || generateMessageId();
108
220
  this.currentTaskId = taskId;
109
221
  // Build A2A message parts (A2A uses 'kind' discriminator, not 'type')
@@ -166,9 +278,15 @@ export class A2AAdapter extends BaseProtocolAdapter {
166
278
  method: 'POST',
167
279
  headers: this.buildHeaders({
168
280
  Accept: 'text/event-stream, application/json',
281
+ // Activates the extension for this one request, only once the
282
+ // worker's own card advertised it — degrading to a plain A2A
283
+ // request (no header at all) otherwise.
284
+ ...(this.orchestrationExtensionSupported && {
285
+ [A2A_EXTENSIONS_HEADER]: ORCHESTRATION_EXTENSION_URI,
286
+ }),
169
287
  }),
170
288
  body: JSON.stringify(jsonRpcRequest),
171
- signal: this.abortController.signal,
289
+ signal: controller.signal,
172
290
  });
173
291
  if (!response.ok) {
174
292
  throw new Error(`A2A request failed: ${response.status} ${response.statusText}`);
@@ -198,8 +316,26 @@ export class A2AAdapter extends BaseProtocolAdapter {
198
316
  throw error;
199
317
  }
200
318
  finally {
201
- this.abortController = null;
319
+ this.inFlight.delete(controller);
320
+ if (this.abortController === controller) {
321
+ this.abortController = null;
322
+ }
323
+ }
324
+ }
325
+ /**
326
+ * Abort every in-flight stream without tearing the adapter down.
327
+ *
328
+ * This adapter had no such method, so pressing Stop reached only
329
+ * `terminateTask` — a request to the backend to cancel — and never closed
330
+ * the client's own stream. Whatever was already on the wire kept arriving
331
+ * and kept being rendered. `ChatBase` looks for this by name.
332
+ */
333
+ stopGeneration() {
334
+ for (const controller of this.inFlight) {
335
+ controller.abort();
202
336
  }
337
+ this.inFlight.clear();
338
+ this.abortController = null;
203
339
  }
204
340
  /**
205
341
  * Send tool result back
@@ -269,7 +405,7 @@ export class A2AAdapter extends BaseProtocolAdapter {
269
405
  console.log('[A2AAdapter] Received event:', JSON.stringify(event, null, 2));
270
406
  // Handle JSON-RPC response
271
407
  if (event.result) {
272
- this.handleTaskUpdate(event.result);
408
+ this.handleTaskUpdate(normalizeA2AResult(event.result));
273
409
  }
274
410
  else if (event.error) {
275
411
  this.emit({
@@ -298,9 +434,42 @@ export class A2AAdapter extends BaseProtocolAdapter {
298
434
  console.log('[A2AAdapter] Status update:', state, 'final:', task.final);
299
435
  if (task.final &&
300
436
  (state === 'completed' || state === 'failed' || state === 'canceled')) {
437
+ // Only read the envelope once the worker actually named the
438
+ // extension active — a plain worker's status carries no
439
+ // `datalayer` key, and this stays `undefined` for it exactly as
440
+ // it did before the extension existed.
441
+ const datalayerMeta = this.orchestrationExtensionSupported
442
+ ? task.status?.message?.metadata?.[DATALAYER_META_KEY]
443
+ : undefined;
444
+ const datalayerUsage = datalayerMeta
445
+ ? readUsageMeta(task.status.message.metadata)
446
+ : undefined;
301
447
  this.emit({
302
448
  type: 'state-update',
303
- data: { state, final: true },
449
+ data: {
450
+ state,
451
+ final: true,
452
+ ...(datalayerMeta?.paused && {
453
+ datalayerPaused: datalayerMeta.paused,
454
+ }),
455
+ ...(datalayerMeta?.error && {
456
+ datalayerError: datalayerMeta.error,
457
+ }),
458
+ ...(datalayerUsage && { datalayerUsage }),
459
+ },
460
+ // Best-effort mapping onto the cross-protocol shape; a worker
461
+ // that priced the run also sets `datalayerUsage.cost`, which
462
+ // has no field here and is not dropped — it is still on `data`.
463
+ ...(datalayerUsage && {
464
+ usage: {
465
+ promptTokens: datalayerUsage.inputTokens ?? 0,
466
+ completionTokens: datalayerUsage.outputTokens ?? 0,
467
+ ...(datalayerUsage.inputTokens !== undefined &&
468
+ datalayerUsage.outputTokens !== undefined && {
469
+ totalTokens: datalayerUsage.inputTokens + datalayerUsage.outputTokens,
470
+ }),
471
+ },
472
+ }),
304
473
  timestamp: new Date(),
305
474
  });
306
475
  }
@@ -183,17 +183,16 @@ export class ACPAdapter extends BaseProtocolAdapter {
183
183
  console.warn('[ACPAdapter] Cannot terminate: No session ID');
184
184
  return;
185
185
  }
186
- // Send session/cancel JSON-RPC request
187
- const requestId = `cancel-${Date.now()}`;
188
- const cancelRequest = {
186
+ // A notification, as the ACP schema makes session/cancel: no id and no
187
+ // answer. The running prompt answers with stopReason "cancelled".
188
+ const cancelNotification = {
189
189
  jsonrpc: '2.0',
190
190
  method: 'session/cancel',
191
191
  params: {
192
192
  sessionId: targetSessionId,
193
193
  },
194
- id: requestId,
195
194
  };
196
- this.ws.send(JSON.stringify(cancelRequest));
195
+ this.ws.send(JSON.stringify(cancelNotification));
197
196
  console.debug('[ACPAdapter] Sent session/cancel for:', targetSessionId);
198
197
  }
199
198
  catch (err) {
@@ -237,7 +236,7 @@ export class ACPAdapter extends BaseProtocolAdapter {
237
236
  }
238
237
  await this.sendRequest(AGENT_METHODS.session_prompt, {
239
238
  sessionId: this.session.sessionId,
240
- content: [{ type: 'text', text: content }],
239
+ prompt: [{ type: 'text', text: content }],
241
240
  // Include metadata with model and identities
242
241
  ...(Object.keys(metadata).length > 0 && { metadata }),
243
242
  });
@@ -413,12 +412,22 @@ export class ACPAdapter extends BaseProtocolAdapter {
413
412
  * Handle session update notifications
414
413
  */
415
414
  handleSessionUpdate(params) {
416
- const updateType = params.sessionUpdate;
417
- // Handle streaming text chunks
418
- if (updateType === 'agent_message_chunk' && params.chunk) {
419
- const chunk = params.chunk;
420
- // Filter out debug StreamEvent strings
421
- if (!chunk.startsWith('StreamEvent(')) {
415
+ // As the ACP schema spells it: the update nested under `update`, its text
416
+ // in a content block. A failed turn is the prompt's JSON-RPC error, not an
417
+ // update.
418
+ const update = params.update;
419
+ if (!update) {
420
+ return;
421
+ }
422
+ const updateType = update.sessionUpdate;
423
+ const textOf = (content) => content &&
424
+ typeof content === 'object' &&
425
+ content.type === 'text'
426
+ ? String(content.text ?? '')
427
+ : '';
428
+ if (updateType === 'agent_message_chunk') {
429
+ const chunk = textOf(update.content);
430
+ if (chunk) {
422
431
  this.streamingContent += chunk;
423
432
  // Use stable message ID for streaming updates
424
433
  const streamingMessage = createAssistantMessage(this.streamingContent);
@@ -432,47 +441,41 @@ export class ACPAdapter extends BaseProtocolAdapter {
432
441
  });
433
442
  }
434
443
  }
435
- // Handle tool calls
436
444
  if (updateType === 'tool_call') {
445
+ const call = update;
437
446
  this.emit({
438
447
  type: 'tool-call',
439
448
  toolCall: {
440
- toolCallId: params.toolCallId || generateMessageId(),
441
- toolName: params.title || '',
442
- args: params.rawInput || {},
449
+ toolCallId: call.toolCallId || generateMessageId(),
450
+ toolName: call.title || '',
451
+ args: call.rawInput || {},
443
452
  },
444
453
  timestamp: new Date(),
445
454
  });
446
455
  }
447
- // Handle tool results
448
456
  if (updateType === 'tool_call_update') {
457
+ const progress = update;
449
458
  this.emit({
450
459
  type: 'tool-result',
451
460
  toolResult: {
452
- success: true,
453
- result: params.rawOutput,
454
- },
455
- timestamp: new Date(),
456
- });
457
- }
458
- // Handle thought chunks (could be displayed differently)
459
- if (updateType === 'agent_thought_chunk' && params.chunk) {
460
- this.emit({
461
- type: 'activity',
462
- activity: {
463
- type: 'thought',
464
- data: params.chunk,
461
+ success: progress.status !== 'failed',
462
+ result: progress.rawOutput,
465
463
  },
466
464
  timestamp: new Date(),
467
465
  });
468
466
  }
469
- // Handle error events - emit as error, not as message
470
- if (params.error) {
471
- this.emit({
472
- type: 'error',
473
- error: new Error(params.error),
474
- timestamp: new Date(),
475
- });
467
+ if (updateType === 'agent_thought_chunk') {
468
+ const thought = textOf(update.content);
469
+ if (thought) {
470
+ this.emit({
471
+ type: 'activity',
472
+ activity: {
473
+ type: 'thought',
474
+ data: thought,
475
+ },
476
+ timestamp: new Date(),
477
+ });
478
+ }
476
479
  }
477
480
  }
478
481
  /**
@@ -23,6 +23,20 @@ export declare class AGUIAdapter extends BaseProtocolAdapter {
23
23
  readonly protocolTransport: "sse";
24
24
  private aguiConfig;
25
25
  private abortController;
26
+ /**
27
+ * Every in-flight request's abort controller, not just the newest.
28
+ *
29
+ * A turn is rarely one request. Each tool result starts a continuation
30
+ * through `sendMessage`, and that overwrites `abortController` — so the
31
+ * moment two streams overlap, the earlier one's controller is no longer
32
+ * reachable and `stopGeneration` cannot abort it. It aborted whichever
33
+ * request happened to be last and left the others pouring tokens into a
34
+ * transcript the reader had already asked to stop, which is worst in
35
+ * exactly the tool-heavy sessions where stopping matters most.
36
+ *
37
+ * A set, because the fix has to hold however many are open.
38
+ */
39
+ private inFlight;
26
40
  private currentThreadId;
27
41
  private pendingToolCalls;
28
42
  private collectedToolResults;
@@ -13,6 +13,20 @@ export class AGUIAdapter extends BaseProtocolAdapter {
13
13
  protocolTransport = 'sse';
14
14
  aguiConfig;
15
15
  abortController = null;
16
+ /**
17
+ * Every in-flight request's abort controller, not just the newest.
18
+ *
19
+ * A turn is rarely one request. Each tool result starts a continuation
20
+ * through `sendMessage`, and that overwrites `abortController` — so the
21
+ * moment two streams overlap, the earlier one's controller is no longer
22
+ * reachable and `stopGeneration` cannot abort it. It aborted whichever
23
+ * request happened to be last and left the others pouring tokens into a
24
+ * transcript the reader had already asked to stop, which is worst in
25
+ * exactly the tool-heavy sessions where stopping matters most.
26
+ *
27
+ * A set, because the fix has to hold however many are open.
28
+ */
29
+ inFlight = new Set();
16
30
  currentThreadId = null;
17
31
  // Track in-progress tool calls to accumulate args and emit results
18
32
  pendingToolCalls = new Map();
@@ -66,11 +80,8 @@ export class AGUIAdapter extends BaseProtocolAdapter {
66
80
  * Disconnect and terminate any ongoing agent execution
67
81
  */
68
82
  disconnect() {
69
- // Abort any ongoing fetch request
70
- if (this.abortController) {
71
- this.abortController.abort();
72
- this.abortController = null;
73
- }
83
+ // Abort every ongoing fetch request, not merely the newest.
84
+ this.stopGeneration();
74
85
  // Send terminate request to backend if we have a thread ID
75
86
  if (this.currentThreadId) {
76
87
  this.terminateAgent(this.currentThreadId).catch(err => {
@@ -112,7 +123,12 @@ export class AGUIAdapter extends BaseProtocolAdapter {
112
123
  * @param options - Options including full message history
113
124
  */
114
125
  async sendMessage(message, options) {
115
- this.abortController = new AbortController();
126
+ // Held in a local as well as the field: by the time the `finally` below
127
+ // runs, a continuation may already have replaced the field, and this
128
+ // request must only ever retire its own controller.
129
+ const controller = new AbortController();
130
+ this.abortController = controller;
131
+ this.inFlight.add(controller);
116
132
  const threadId = options?.threadId || this.currentThreadId || generateMessageId();
117
133
  this.currentThreadId = threadId;
118
134
  // Use full message history if provided, otherwise just the new message
@@ -195,7 +211,7 @@ export class AGUIAdapter extends BaseProtocolAdapter {
195
211
  Accept: 'text/event-stream',
196
212
  }),
197
213
  body: JSON.stringify(runAgentInput),
198
- signal: this.abortController.signal,
214
+ signal: controller.signal,
199
215
  });
200
216
  if (!response.ok) {
201
217
  throw new Error(`AG-UI request failed: ${response.status} ${response.statusText}`);
@@ -215,7 +231,13 @@ export class AGUIAdapter extends BaseProtocolAdapter {
215
231
  throw error;
216
232
  }
217
233
  finally {
218
- this.abortController = null;
234
+ // This request's own controller, captured before any continuation could
235
+ // have replaced the field — clearing the field itself would drop a
236
+ // newer, still-running request's handle on the floor.
237
+ this.inFlight.delete(controller);
238
+ if (this.abortController === controller) {
239
+ this.abortController = null;
240
+ }
219
241
  }
220
242
  }
221
243
  /**
@@ -352,7 +374,10 @@ export class AGUIAdapter extends BaseProtocolAdapter {
352
374
  * the adapter connection.
353
375
  */
354
376
  stopGeneration() {
355
- this.abortController?.abort();
377
+ for (const controller of this.inFlight) {
378
+ controller.abort();
379
+ }
380
+ this.inFlight.clear();
356
381
  this.abortController = null;
357
382
  }
358
383
  /**