@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
@@ -11,6 +11,19 @@ import type { Protocol, ProtocolConfig } from './protocol';
11
11
  import type { McpServerSelection } from './inference';
12
12
  import type { MCPServerTool } from './mcp';
13
13
  import type { AgentRuntimeConfig } from './config';
14
+ import type { ContextSnapshotData } from './context';
15
+ import type { InputPromptVariant } from '../chat/prompt/InputPromptBase';
16
+ import type { MentionableAgent } from '../chat/prompt/plugins/AgentMentionPlugin';
17
+ import type { Icon } from '@primer/octicons-react';
18
+ /** One agent a chat may address, as its controls need it. */
19
+ export interface FooterAgent {
20
+ id: string;
21
+ name: string;
22
+ description?: string;
23
+ emoji?: string;
24
+ /** The octicon its agentspec asked for, resolved by whoever built the list. */
25
+ icon?: Icon;
26
+ }
14
27
  import type { SandboxWsStatus } from './sandbox';
15
28
  import type { FrontendToolDefinition } from './tools';
16
29
  import type { PoweredByTagProps } from '../chat/display/PoweredByTag';
@@ -50,9 +63,10 @@ export interface ToolCallCompleteContext {
50
63
  * View mode for the chat component.
51
64
  * - 'floating': Full-height floating panel (pinned to the right edge with offset)
52
65
  * - 'floating-small': Standard floating popup
53
- * - 'sidebar': Docked sidebar panel
66
+ * - 'floating-draggable': The popup with a handle, movable anywhere in the viewport
67
+ * - 'sidebar': Docked sidebar panel — offered only where the host has a mount point for it
54
68
  */
55
- export type ChatViewMode = 'floating' | 'floating-small' | 'sidebar';
69
+ export type ChatViewMode = 'floating' | 'floating-small' | 'floating-draggable' | 'sidebar';
56
70
  /**
57
71
  * Companion "ephemeral surface" shown next to the chat.
58
72
  * - 'none': chat only, no companion surface
@@ -87,6 +101,23 @@ export interface ToolCallRenderContext {
87
101
  status: DisplayToolCallStatus;
88
102
  /** Error message if status is 'error' */
89
103
  error?: string;
104
+ /**
105
+ * What the chat would have drawn for this tool call by itself.
106
+ *
107
+ * Supplying `renderToolResult` replaces the default row outright, and
108
+ * returning nothing from it draws nothing at all — so a caller who only
109
+ * wanted to *add* something under one tool had to either reimplement the
110
+ * row or lose it, and lose every other tool's row along with it.
111
+ *
112
+ * Render it to compose:
113
+ *
114
+ * ```tsx
115
+ * renderToolResult={({ name, defaultUI }) =>
116
+ * name === 'my_tool' ? <>{defaultUI}<MyPanel /></> : defaultUI
117
+ * }
118
+ * ```
119
+ */
120
+ defaultUI?: ReactNode;
90
121
  /**
91
122
  * Callback to send response back to the agent (human-in-the-loop).
92
123
  * Only available when status is 'executing'.
@@ -133,6 +164,15 @@ export interface Suggestion {
133
164
  title: string;
134
165
  /** Message to send when clicked */
135
166
  message: string;
167
+ /**
168
+ * A heading this opener is offered under, where a surface draws headings.
169
+ *
170
+ * Ungrouped openers come first, as one row; each group follows as a block
171
+ * of its own with its name on it. A team's openers are the first kind and
172
+ * the addressed member's own are the second, so a person sees what the
173
+ * team can be asked and, under it, what this member in particular can.
174
+ */
175
+ group?: string;
136
176
  }
137
177
  /**
138
178
  * Avatar configuration
@@ -182,6 +222,24 @@ export interface EmptyStateConfig {
182
222
  subtitle?: string;
183
223
  /** Custom empty state renderer */
184
224
  render?: () => ReactNode;
225
+ /**
226
+ * The empty state in levels, each with its own openers.
227
+ *
228
+ * A workspace running a team introduces two things, not one: the team —
229
+ * its name, what it is for, what it can be asked — and, under it, the
230
+ * member being addressed with what that member in particular offers. Each
231
+ * level is a section; the openers whose `group` is the section's are drawn
232
+ * under it. Given, this replaces `icon`, `title` and `subtitle`.
233
+ */
234
+ sections?: EmptyStateSection[];
235
+ }
236
+ /** One level of an empty state: a heading, and the openers grouped under it. */
237
+ export interface EmptyStateSection {
238
+ /** The `group` of the suggestions this section draws. */
239
+ group: string;
240
+ icon?: ReactNode;
241
+ title: string;
242
+ subtitle?: string;
185
243
  }
186
244
  /**
187
245
  * Model configuration
@@ -191,6 +249,15 @@ export interface ModelConfig {
191
249
  name: string;
192
250
  builtinTools?: string[];
193
251
  isAvailable?: boolean;
252
+ /**
253
+ * Why this model cannot be picked, when it cannot.
254
+ *
255
+ * The menu used to say "Missing API key" under every unavailable row, which
256
+ * is right for a provider whose key is not set and wrong for a model this
257
+ * deployment is not entitled to — that one sends the reader off to find a
258
+ * key that would change nothing.
259
+ */
260
+ unavailableReason?: string;
194
261
  }
195
262
  /**
196
263
  * MCP Server configuration from backend
@@ -252,6 +319,49 @@ export interface ChatCommonProps {
252
319
  showInput?: boolean;
253
320
  /** Keep input visible but disabled */
254
321
  disableInputPrompt?: boolean;
322
+ /**
323
+ * Which editor the prompt uses — `'text'` (default) or `'lexical'`.
324
+ *
325
+ * There is one prompt component; this picks the editor inside it. Lexical
326
+ * is the one with the `@` menu, so a chat offering agents to address needs
327
+ * it.
328
+ */
329
+ promptVariant?: InputPromptVariant;
330
+ /** Agents the prompt may address by typing `@`. Lexical only. */
331
+ mentionableAgents?: MentionableAgent[];
332
+ /**
333
+ * Whether the prompt offers a chooser for who answers.
334
+ *
335
+ * True by default, and shown for a single agent as much as for several: the
336
+ * control is a label before it is a switch, and in a chat with one agent
337
+ * nothing else on screen says which one.
338
+ */
339
+ showAgentsMenu?: boolean;
340
+ /** Who may answer. Defaults to the agent this chat is talking to. */
341
+ agents?: FooterAgent[];
342
+ /** Who is answering now. */
343
+ selectedAgentId?: string;
344
+ /** Address somebody else. */
345
+ onSelectAgent?: (agentId: string) => void;
346
+ /**
347
+ * Whether the chat can be used at all.
348
+ *
349
+ * Different from `launching`, which says "not yet": this says "not here".
350
+ * A sandbox with no agent behind it — code running in the browser, or an
351
+ * anonymous Jupyter server — has nothing to chat with, and the honest answer
352
+ * is to show the chat as it will look and say why it is off, rather than
353
+ * hide it and leave the person wondering where it went.
354
+ *
355
+ * The input and the selectors go dead; the header stays readable.
356
+ */
357
+ disabled?: boolean;
358
+ /**
359
+ * Why the chat is off, in the person's terms — "No agent in browser mode".
360
+ *
361
+ * Shown in the header beside the title, because that is where someone looks
362
+ * when a control does not respond. Ignored unless `disabled` is true.
363
+ */
364
+ disableReason?: string;
255
365
  /**
256
366
  * Whether the underlying agent runtime is still launching. When true, the
257
367
  * chat shell is rendered with the input and controls disabled and a spinner
@@ -316,6 +426,13 @@ export interface ChatCommonProps {
316
426
  * @default true
317
427
  */
318
428
  showTokenUsage?: boolean;
429
+ /**
430
+ * Whether the usage bar draws its context ring.
431
+ *
432
+ * False by default: the ring earns its place where a person is likely to
433
+ * fill a context window, not in every chat that reports usage.
434
+ */
435
+ showContextRing?: boolean;
319
436
  /** Indicate tools are accessed via Codemode meta-tools */
320
437
  codemodeEnabled?: boolean;
321
438
  /**
@@ -448,6 +565,11 @@ export interface ChatCommonProps {
448
565
  chatViewMode?: ChatViewMode;
449
566
  /** Callback when user switches chat view mode */
450
567
  onChatViewModeChange?: (mode: ChatViewMode) => void;
568
+ /**
569
+ * Modes the toggle shows but does not let anyone pick — the sidebar, on a
570
+ * page that has no mount point for one. See `chat/viewModes`.
571
+ */
572
+ disabledViewModes?: readonly ChatViewMode[];
451
573
  /** External context snapshot data for the token usage bar */
452
574
  contextSnapshot?: import('./context').ContextSnapshotData;
453
575
  /** External MCP toolsets status data */
@@ -515,6 +637,39 @@ export interface ChatCommonProps {
515
637
  * ChatBase props
516
638
  */
517
639
  export interface ChatBaseProps {
640
+ /**
641
+ * Hands an imperative send function to the host, once the chat is able to
642
+ * send.
643
+ *
644
+ * `pendingPrompt` deliberately sends a given text only once, which makes it
645
+ * unusable as a live input channel: a user asking the same question twice
646
+ * would be ignored the second time. A host that owns the input box — the LOOP
647
+ * workspace, whose prompt is the shell — needs a channel with no such memory.
648
+ *
649
+ * Called again with `null` when the chat can no longer send.
650
+ */
651
+ onSendReady?: (controls: {
652
+ send: (message: string) => void;
653
+ stop: () => void;
654
+ /** Start the conversation over — what the header's + does. */
655
+ newChat: () => void;
656
+ } | null) => void;
657
+ /**
658
+ * Reports whether the chat is streaming a reply, so a host that owns the
659
+ * input box can show the spinner and the stop button where the user is
660
+ * actually looking.
661
+ */
662
+ onLoadingChange?: (isLoading: boolean) => void;
663
+ /**
664
+ * What the context window is holding, as this chat last accounted for it.
665
+ *
666
+ * For a host that draws its own prompt and therefore its own usage bar. The
667
+ * chat is the one thing that sees every source — a snapshot pushed over the
668
+ * socket by a server-side runtime, and the totals an in-page harness reports
669
+ * as it finishes a turn — so it hands on the answer rather than making every
670
+ * host reassemble it.
671
+ */
672
+ onContextSnapshot?: (usage: ContextSnapshotData | undefined) => void;
518
673
  /** Chat title */
519
674
  title?: string;
520
675
  /** Chat subtitle (rendered under the title in the header) */
@@ -528,6 +683,13 @@ export interface ChatBaseProps {
528
683
  * @default true
529
684
  */
530
685
  showTokenUsage?: boolean;
686
+ /**
687
+ * Whether the usage bar draws its context ring.
688
+ *
689
+ * False by default: the ring earns its place where a person is likely to
690
+ * fill a context window, not in every chat that reports usage.
691
+ */
692
+ showContextRing?: boolean;
531
693
  /**
532
694
  * External context snapshot data for the token usage bar.
533
695
  * When provided, this overrides the built-in useContextSnapshot hook
@@ -561,6 +723,39 @@ export interface ChatBaseProps {
561
723
  showInput?: boolean;
562
724
  /** Keep input visible but disabled */
563
725
  disableInputPrompt?: boolean;
726
+ /**
727
+ * Which editor the prompt uses — `'text'` (default) or `'lexical'`.
728
+ *
729
+ * There is one prompt component; this picks the editor inside it. Lexical
730
+ * is the one with the `@` menu, so a chat offering agents to address needs
731
+ * it.
732
+ */
733
+ promptVariant?: InputPromptVariant;
734
+ /** Agents the prompt may address by typing `@`. Lexical only. */
735
+ mentionableAgents?: MentionableAgent[];
736
+ /**
737
+ * Whether the prompt offers a chooser for who answers.
738
+ *
739
+ * True by default, and shown for a single agent as much as for several: the
740
+ * control is a label before it is a switch, and in a chat with one agent
741
+ * nothing else on screen says which one.
742
+ */
743
+ showAgentsMenu?: boolean;
744
+ /** Who may answer. Defaults to the agent this chat is talking to. */
745
+ agents?: FooterAgent[];
746
+ /** Who is answering now. */
747
+ selectedAgentId?: string;
748
+ /** Address somebody else. */
749
+ onSelectAgent?: (agentId: string) => void;
750
+ /**
751
+ * Whether the chat can be used at all — see `ChatCommonProps.disabled`.
752
+ *
753
+ * `launching` says "not yet"; this says "not here". A sandbox with no agent
754
+ * behind it has nothing to chat with.
755
+ */
756
+ disabled?: boolean;
757
+ /** Why the chat is off, shown in the header. Ignored unless `disabled`. */
758
+ disableReason?: string;
564
759
  /**
565
760
  * Whether the underlying agent runtime is still launching. When true, the
566
761
  * chat shell renders with input and controls disabled and a spinner overlay.
@@ -643,13 +838,19 @@ export interface ChatBaseProps {
643
838
  /**
644
839
  * Current chat view mode.
645
840
  * When provided, a segmented view-mode toggle is rendered in the header
646
- * with icons for each mode: floating (popup), floating-small (compact), sidebar (docked).
841
+ * with icons for each mode: floating (popup), floating-small (compact),
842
+ * floating-draggable (movable popup), sidebar (docked).
647
843
  */
648
844
  chatViewMode?: ChatViewMode;
649
845
  /**
650
846
  * Callback when the user clicks a different view mode in the header toggle.
651
847
  */
652
848
  onChatViewModeChange?: (mode: ChatViewMode) => void;
849
+ /**
850
+ * Modes the toggle shows but does not let anyone pick — the sidebar, on a
851
+ * page that has no mount point for one. See `chat/viewModes`.
852
+ */
853
+ disabledViewModes?: readonly ChatViewMode[];
653
854
  /**
654
855
  * Use Zustand store for state management.
655
856
  * When true, uses the shared store. When false with protocol, uses protocol mode.
@@ -711,6 +912,35 @@ export interface ChatBaseProps {
711
912
  emptyState?: EmptyStateConfig;
712
913
  /** Tool result renderer for tool calls */
713
914
  renderToolResult?: RenderToolResult;
915
+ /**
916
+ * Draw the chat's title bar from these fully assembled props.
917
+ *
918
+ * Called instead of the built-in `ChatBaseHeader` whenever `showHeader` is
919
+ * true — with everything the built-in would have received: title, kernel
920
+ * indicator, runtime status, the actions row. The loop's chat-header
921
+ * plugin hangs off this: the bar then arrives as a plugin without this
922
+ * component giving up any of what only it knows.
923
+ */
924
+ renderHeader?: (props: import('../chat/header/ChatHeaderBase').ChatBaseHeaderProps) => ReactNode;
925
+ /**
926
+ * Whether each turn closes with its accounting row.
927
+ *
928
+ * True by default: a quiet `ctx · turn ▲▼` line after every exchange —
929
+ * live while the turn streams, frozen with copy/remove actions once it is
930
+ * over. False for a host that wants the transcript bare.
931
+ */
932
+ showTurnFooter?: boolean;
933
+ /**
934
+ * Show notebook tool results as read-only surfaces in the transcript,
935
+ * addressed to this notebook document id.
936
+ *
937
+ * For a chat whose agent works a notebook the reader cannot see. A cell
938
+ * that was inserted, updated or run appears under its tool row — source
939
+ * first, then its outputs streaming from the live model; `executeCodeInNotebook`
940
+ * shows only what came back. Ignored when `renderToolResult` is given:
941
+ * a host that writes its own renderer owns the whole surface.
942
+ */
943
+ notebookToolSurfacesId?: string;
714
944
  /** Custom footer content (rendered above input) */
715
945
  footerContent?: ReactNode;
716
946
  /**
@@ -747,6 +977,24 @@ export interface ChatBaseProps {
747
977
  onClear?: () => void;
748
978
  /** Callback when messages change (for tracking message count) */
749
979
  onMessagesChange?: (messages: ChatMessage[]) => void;
980
+ /**
981
+ * Called on *every* change to the conversation, streaming included.
982
+ *
983
+ * `onMessagesChange` fires when the number of messages changes, which is
984
+ * right for counting and wrong for following a reply as it arrives — the
985
+ * assistant's message exists from its first token and only grows. This is
986
+ * the streaming-aware sibling: same messages, every change.
987
+ */
988
+ onItemsChange?: (messages: ChatMessage[]) => void;
989
+ /**
990
+ * Every change to the transcript, tool calls included, streaming included.
991
+ *
992
+ * `onItemsChange` reports the messages; this reports everything the
993
+ * transcript holds — the tool calls the agent is making, with their status
994
+ * — for a caller that wants to say what the agent is *doing*, not only what
995
+ * it has said.
996
+ */
997
+ onDisplayItemsChange?: (items: Array<ChatMessage | ToolCallMessage>) => void;
750
998
  /** Auto-focus the input on mount */
751
999
  autoFocus?: boolean;
752
1000
  /**
@@ -30,3 +30,23 @@ export interface ConversationCheckpoint {
30
30
  /** Additional metadata */
31
31
  metadata: Record<string, unknown>;
32
32
  }
33
+ /** When an agent takes a conversation checkpoint on its own. */
34
+ export type ConversationCheckpointFrequency = 'every_turn' | 'every_tool' | 'manual_only';
35
+ /**
36
+ * An agent's conversation checkpoints as the local server reports them:
37
+ * whether it checkpoints at all, how, where the conversation stands, and
38
+ * the checkpoints it has, newest first.
39
+ */
40
+ export interface ConversationCheckpointsState {
41
+ agentId: string;
42
+ /** False for an agent whose spec asked for no checkpoints. */
43
+ enabled: boolean;
44
+ frequency?: ConversationCheckpointFrequency;
45
+ /** Rolling window: the oldest checkpoint goes when this is exceeded. */
46
+ maxCheckpoints?: number;
47
+ /** `in_memory` or `file`. */
48
+ store?: string;
49
+ /** Turns the agent has run so far. */
50
+ turn: number;
51
+ checkpoints: ConversationCheckpoint[];
52
+ }
@@ -3,6 +3,7 @@ import { MCPServerConfig, ModelConfig } from './chat';
3
3
  import type { Protocol } from './protocol';
4
4
  import type { AgentValidationConfig } from './execution';
5
5
  import { BuiltinTool } from './models';
6
+ import type { AgentSuggestion } from './agentspecs';
6
7
  /**
7
8
  * Default agent configuration values.
8
9
  */
@@ -48,8 +49,19 @@ export interface RemoteConfig {
48
49
  defaultModel?: string;
49
50
  builtinTools: BuiltinTool[];
50
51
  mcpServers?: MCPServerConfig[];
51
- suggestions?: string[];
52
+ /**
53
+ * What the server offers as openers.
54
+ *
55
+ * Either shape: a running agent may be older than the catalogue it was built
56
+ * from, and a string is a suggestion with no marks.
57
+ */
58
+ suggestions?: (string | AgentSuggestion)[];
52
59
  welcomeMessage?: string;
60
+ /**
61
+ * What has been sent to this agent so far, oldest first — the runtime's
62
+ * memory of it, for the composer's arrow keys to walk back through.
63
+ */
64
+ promptHistory?: string[];
53
65
  }
54
66
  /**
55
67
  * Configuration for connecting to an agent runtime.
@@ -9,7 +9,7 @@ export type ConnectionState = 'connected' | 'connecting' | 'disconnected' | 'err
9
9
  */
10
10
  export interface AgentConnection {
11
11
  /** Runtime pod name (unique identifier). */
12
- podName: string;
12
+ runtimeName: string;
13
13
  /** Environment name. */
14
14
  environmentName: string;
15
15
  /** Base URL for the Jupyter server. */
@@ -16,6 +16,8 @@ export interface EvalSpec {
16
16
  evaluator_type: 'case' | 'report';
17
17
  /** Pydantic evaluator class name */
18
18
  pydantic_class: string;
19
+ /** Whether the platform can run this evaluator today; shown, never offered, when false. */
20
+ executable: boolean;
19
21
  /** Primary output shape */
20
22
  output_kind: 'boolean' | 'boolean_with_reason' | 'score' | 'score_and_assertion' | 'report_table' | 'report_curve';
21
23
  /** Cost tier for running this evaluator */
@@ -45,6 +45,30 @@ export interface ActivityContentPart {
45
45
  data: unknown;
46
46
  }
47
47
  export type ContentPart = TextContentPart | ImageContentPart | ToolCallContentPart | ToolResultContentPart | ActivityContentPart;
48
+ /**
49
+ * Who said a message, when a chat holds more than one non-user voice — a
50
+ * team's supervisor and its members, not just "the assistant".
51
+ *
52
+ * Attaching one to a message is what tells `ChatMessageList` to draw a named,
53
+ * coloured header instead of the single generic assistant look; a message
54
+ * with no `speaker` renders exactly as it always has.
55
+ */
56
+ export interface MessageSpeaker {
57
+ /** Stable id, e.g. an agent id — not shown, but keeps two same-named speakers apart. */
58
+ id: string;
59
+ name: string;
60
+ /** A short label under the name, e.g. "supervisor" or a capability. */
61
+ role?: string;
62
+ /**
63
+ * The Primer colour family this speaker is drawn in — `'accent'`,
64
+ * `'success'`, `'attention'`, `'severe'`, `'sponsors'`, `'neutral'`, or any
65
+ * other family `sx` resolves as `<tone>.emphasis` / `.subtle` / `.muted` /
66
+ * `.fg`. Omitted or `'neutral'` falls back to the chat's neutral tones.
67
+ */
68
+ tone?: string;
69
+ /** Up to two letters shown in the avatar in place of the default icon. */
70
+ initials?: string;
71
+ }
48
72
  /**
49
73
  * Core message interface
50
74
  */
@@ -59,6 +83,42 @@ export interface ChatMessage {
59
83
  createdAt: Date;
60
84
  /** Optional agent name for multi-agent scenarios */
61
85
  agentName?: string;
86
+ /**
87
+ * Who said this message, when the chat has more than one voice. See
88
+ * {@link MessageSpeaker}.
89
+ */
90
+ speaker?: MessageSpeaker;
91
+ /**
92
+ * Who this message is addressed to — one agent hanging another its brief,
93
+ * or a person steering an agent already at work. Shown in the header as
94
+ * "<speaker> asks/steers <directedTo>"; ignored without `speaker`.
95
+ */
96
+ directedTo?: MessageSpeaker;
97
+ /**
98
+ * `true` for a person's instruction to an agent already working, `false`
99
+ * (or omitted) for a delegation. Only meaningful with `directedTo`, where
100
+ * it chooses "steers" over "asks".
101
+ */
102
+ steer?: boolean;
103
+ /**
104
+ * Short labels for tools this message's turn called, shown as small chips
105
+ * above the text — lighter than a full tool-call card, for a turn already
106
+ * known to have finished rather than one awaiting approval.
107
+ */
108
+ toolChips?: string[];
109
+ /**
110
+ * Still being written: the speaker is working and this message is not its
111
+ * settled content yet. With no text yet, `ChatMessageList` shows a typing
112
+ * indicator in its place.
113
+ */
114
+ live?: boolean;
115
+ /**
116
+ * Renders this message as a distinct aside — centred, pill-shaped, no
117
+ * avatar or side — rather than as a speech bubble. For a wait, a failure or
118
+ * a stop: something that happened to a part of the conversation, not
119
+ * something a speaker said.
120
+ */
121
+ note?: 'waiting' | 'failed' | 'stopped';
62
122
  /** Optional metadata */
63
123
  metadata?: Record<string, unknown>;
64
124
  /** Tool calls for assistant messages */
@@ -15,6 +15,15 @@ export interface AIModel {
15
15
  provider: string;
16
16
  /** Whether this is the default model */
17
17
  default: boolean;
18
+ /**
19
+ * Whether this model is offered to a person choosing one.
20
+ *
21
+ * The catalogue is what the platform knows how to talk to; this says what
22
+ * is worth offering today. Without the distinction a picker lists every
23
+ * model ever added, most of them superseded, and choosing becomes a chore
24
+ * rather than a help.
25
+ */
26
+ available: boolean;
18
27
  /** Required environment variable names */
19
28
  requiredEnvVars: string[];
20
29
  /**
@@ -22,6 +31,21 @@ export interface AIModel {
22
31
  * (maps to pydantic-ai output_tokens_limit).
23
32
  */
24
33
  tokensLimit?: number;
34
+ /**
35
+ * Whether the model runs on the user's own machine (Ollama, LM Studio,
36
+ * vLLM, llama.cpp). A local model needs no API key, and choosing one moves
37
+ * execution to a local sandbox so the code stays where the tokens do.
38
+ */
39
+ local?: boolean;
40
+ /** OpenAI-compatible base URL, for local and self-hosted endpoints. */
41
+ baseUrl?: string;
42
+ /** Environment variable holding an API key, when the endpoint wants one. */
43
+ apiKeyEnv?: string;
44
+ /**
45
+ * What the model can be trusted with: 'tools', 'codemode', 'vision',
46
+ * 'thinking'. Empty means unstated rather than incapable.
47
+ */
48
+ capabilities?: string[];
25
49
  }
26
50
  /**
27
51
  * Configuration for an AI model runtime (as returned by the server).
@@ -57,6 +81,8 @@ export interface FrontendConfig {
57
81
  builtinTools: BuiltinTool[];
58
82
  /** Configured MCP servers */
59
83
  mcpServers: MCPServer[];
84
+ /** What has been sent to the agent so far, oldest first. */
85
+ promptHistory?: string[];
60
86
  }
61
87
  /**
62
88
  * Model configuration for an agent spec.
@@ -39,12 +39,21 @@ export interface NotificationChannelSpec {
39
39
  /**
40
40
  * Notification configuration for an agent spec.
41
41
  */
42
+ /**
43
+ * One channel in an agentspec's `notifications` section: a target string,
44
+ * an on/off flag, or the two spelled out.
45
+ */
46
+ export type AgentNotificationChannelConfig = string | boolean | {
47
+ enabled?: boolean;
48
+ target?: string | null;
49
+ };
42
50
  export interface AgentNotificationConfig {
43
- email?: string;
44
- slack?: string;
45
- teams?: string;
46
- webhook?: string;
47
- [key: string]: string | number | boolean | undefined;
51
+ 'in-app'?: AgentNotificationChannelConfig;
52
+ email?: AgentNotificationChannelConfig;
53
+ slack?: AgentNotificationChannelConfig;
54
+ teams?: AgentNotificationChannelConfig;
55
+ webhook?: AgentNotificationChannelConfig;
56
+ [key: string]: AgentNotificationChannelConfig | number | undefined;
48
57
  }
49
58
  export interface AgentNotification {
50
59
  /** Unique notification ID */
@@ -52,7 +61,7 @@ export interface AgentNotification {
52
61
  /** Agent that generated the notification */
53
62
  agentId: string;
54
63
  /** Pod running the agent */
55
- podName: string;
64
+ runtimeName: string;
56
65
  /** Notification severity */
57
66
  level: NotificationLevel;
58
67
  /** Notification title */
@@ -12,6 +12,8 @@ export interface OutputSpec {
12
12
  description: string;
13
13
  /** Icon identifier */
14
14
  icon: string;
15
+ /** Whether the platform offers this output today; off unless the spec says so */
16
+ enabled: boolean;
15
17
  /** Whether this format supports templates */
16
18
  supports_template: boolean;
17
19
  /** Whether this format supports storage paths */
@@ -8,9 +8,14 @@ import { AgentCard } from './a2a';
8
8
  import type { ChatMessage } from './messages';
9
9
  import type { ToolDefinition, ToolCallRequest, ToolExecutionResult } from './tools';
10
10
  /**
11
- * Supported protocol (communication protocols with agent backends)
11
+ * Supported protocol (communication protocols with agent backends).
12
+ *
13
+ * `browser-vercel-ai` is the odd one: there is no backend and no wire. It runs
14
+ * the loop in the page with the Vercel AI SDK and reports it through the same
15
+ * interface, so a chat component does not have to know the difference. See
16
+ * {@link ../protocols/BrowserAgentAdapter}.
12
17
  */
13
- export type Protocol = 'ag-ui' | 'a2a' | 'acp' | 'vercel-ai' | 'vercel-ai-jupyter';
18
+ export type Protocol = 'ag-ui' | 'a2a' | 'acp' | 'vercel-ai' | 'vercel-ai-jupyter' | 'browser-vercel-ai';
14
19
  /**
15
20
  * Protocol connection state
16
21
  */