@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
@@ -6,24 +6,14 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
6
6
  import '@datalayer/jupyter-react/lib/css/PrismCss';
7
7
  import { useCallback, useEffect, useRef, useState } from 'react';
8
8
  import { $getRoot, $createParagraphNode } from 'lexical';
9
- import { LexicalComposer } from '@lexical/react/LexicalComposer';
10
- import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
9
+ import { LexicalExtensionComposer } from '@lexical/react/LexicalExtensionComposer';
11
10
  import { ContentEditable } from '@lexical/react/LexicalContentEditable';
12
- import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
13
11
  import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
14
12
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
15
- import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';
16
- import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';
17
- import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
18
- import { TRANSFORMERS } from '@lexical/markdown';
19
- import { registerCodeHighlighting } from '@lexical/code';
20
- import { ListPlugin } from '@lexical/react/LexicalListPlugin';
21
- import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
22
- import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
23
13
  import { Box } from '@datalayer/primer-addons';
24
14
  import { JupyterReactTheme, useJupyter } from '@datalayer/jupyter-react';
25
- import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, AutoLinkPlugin, AutoEmbedPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, } from '@datalayer/jupyter-lexical';
26
- import { editorConfig } from '../lexical/editorConfig';
15
+ import { ComponentPickerMenuPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, } from '@datalayer/jupyter-lexical';
16
+ import { editorExtension } from '../lexical/editorConfig';
27
17
  import '@datalayer/jupyter-lexical/style/index.css';
28
18
  import '../lexical/lexical-theme.css';
29
19
  const LEXICAL_ID = 'agent-runtime-lexical-editor';
@@ -64,16 +54,6 @@ function LoadContentPlugin({ content }) {
64
54
  }, [content, editor]);
65
55
  return null;
66
56
  }
67
- /**
68
- * Lexical plugin for Simple code syntax highlighting.
69
- */
70
- function CodeHighlightPlugin() {
71
- const [editor] = useLexicalComposerContext();
72
- useEffect(() => {
73
- return registerCodeHighlighting(editor);
74
- }, [editor]);
75
- return null;
76
- }
77
57
  /**
78
58
  * Wrapper component for kernel-dependent Simple plugins.
79
59
  */
@@ -104,5 +84,5 @@ export const LexicalEditor = ({ content = INITIAL_CONTENT, serviceManager, extra
104
84
  padding: 3,
105
85
  backgroundColor: 'canvas.default',
106
86
  minHeight: '600px',
107
- }, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsx(LexicalComposer, { initialConfig: editorConfig, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(RichTextPlugin, { contentEditable: _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), ErrorBoundary: LexicalErrorBoundary }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), _jsx(LoadContentPlugin, { content: content }), _jsx(CodeHighlightPlugin, {}), _jsx(ImagesPlugin, { captionsEnabled: false }), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(JupyterReactTheme, { useBaseStyles: false, children: _jsx(SimpleKernelPluginsInner, {}) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode, extraItems: extraItems }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] })), children] }) }) }) }));
87
+ }, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsx(LexicalExtensionComposer, { extension: editorExtension, contentEditable: null, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(LoadContentPlugin, { content: content }), _jsx(JupyterReactTheme, { useBaseStyles: false, children: _jsx(SimpleKernelPluginsInner, {}) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode, extraItems: extraItems }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] })), children] }) }) }) }));
108
88
  };
@@ -14,5 +14,5 @@ export interface HaikuDisplayProps {
14
14
  * Displays a carousel of haiku cards with navigation controls.
15
15
  * Shows the most recent haiku first with ability to browse older ones.
16
16
  */
17
- export declare function HaikuDisplay({ haikus, title, }: HaikuDisplayProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function HaikuDisplay({ haikus, title, }: HaikuDisplayProps): import("react").JSX.Element;
18
18
  export default HaikuDisplay;
@@ -35,5 +35,5 @@ export interface InlineHaikuCardProps {
35
35
  * - English translation (below)
36
36
  * - Decorative corner accents
37
37
  */
38
- export declare function InlineHaikuCard({ haiku, status, error, size, }: InlineHaikuCardProps): import("react/jsx-runtime").JSX.Element;
38
+ export declare function InlineHaikuCard({ haiku, status, error, size, }: InlineHaikuCardProps): import("react").JSX.Element;
39
39
  export default InlineHaikuCard;
@@ -39,5 +39,5 @@ export interface InlineWeatherCardProps {
39
39
  * - Temperature in both Celsius and Fahrenheit
40
40
  * - Humidity, wind speed, and feels like temperature
41
41
  */
42
- export declare function InlineWeatherCard({ location, result, status, error, }: InlineWeatherCardProps): import("react/jsx-runtime").JSX.Element;
42
+ export declare function InlineWeatherCard({ location, result, status, error, }: InlineWeatherCardProps): import("react").JSX.Element;
43
43
  export default InlineWeatherCard;
@@ -6,11 +6,15 @@
6
6
  const DISPLAY_NAME_EXCEPTIONS = [
7
7
  [/\bAg Ui\b/g, 'AG-UI'],
8
8
  [/\bA2 Ui\b/g, 'A2UI'],
9
+ [/\bA2 A\b/g, 'A2A'],
9
10
  [/\bCopilot Kit\b/g, 'CopilotKit'],
10
11
  [/\bGen Ui\b/g, 'Gen UI'],
11
12
  [/\bM C P\b/g, 'MCP'],
12
13
  [/\bOtel\b/g, 'OTEL'],
13
- [/\bAgent Specs\b/g, 'Agent Specifications'],
14
+ [/\bAgentspecs\b/g, 'Agent Specifications'],
15
+ // The document editor is Lexical underneath; the examples are about the
16
+ // document.
17
+ [/\bLexical\b/g, 'Document'],
14
18
  ];
15
19
  function humanizeExampleName(name) {
16
20
  let result = name
@@ -31,10 +35,12 @@ function inferTags(id) {
31
35
  tags.add('ag-ui');
32
36
  if (id.startsWith('A2Ui'))
33
37
  tags.add('a2ui');
38
+ if (id.startsWith('AgentA2A'))
39
+ tags.add('a2a');
34
40
  if (id.includes('Notebook'))
35
41
  tags.add('notebook');
36
- if (id.includes('Lexical'))
37
- tags.add('lexical');
42
+ if (id.includes('Lexical') || id.includes('Document'))
43
+ tags.add('document');
38
44
  if (id.includes('Chat'))
39
45
  tags.add('chat');
40
46
  if (id.includes('Sandbox'))
@@ -68,6 +74,7 @@ export const EXAMPLE_ENTRIES = [
68
74
  makeEntry('A2UiContactCardExample', () => import('./A2UiContactCardExample'), 'A2UI example rendering contact card interactions.'),
69
75
  makeEntry('A2UiRestaurantExample', () => import('./A2UiRestaurantExample'), 'A2UI restaurant flow example.'),
70
76
  makeEntry('A2UiViewerExample', () => import('./A2UiViewerExample'), 'A2UI viewer integration example.'),
77
+ makeEntry('A2UiJupyterOutputExample', () => import('./A2UiJupyterOutputExample'), 'One Jupyter execution shown twice: raw kernel outputs, and the A2UI surface the server converter makes of them.'),
71
78
  makeEntry('A2UiAgentExample', () => import('./A2UiAgentExample'), 'A2UI Agent with built-in chat component and Python A2UI extension surface.'),
72
79
  makeEntry('AgUiAgenticExample', () => import('./AgUiAgenticExample'), 'AG-UI agentic workflow example.'),
73
80
  makeEntry('AgUiBackendToolRenderingExample', () => import('./AgUiBackendToolRenderingExample'), 'AG-UI backend tool rendering example.'),
@@ -76,11 +83,14 @@ export const EXAMPLE_ENTRIES = [
76
83
  makeEntry('AgUiSharedStateExample', () => import('./AgUiSharedStateExample'), 'AG-UI shared state synchronization example.'),
77
84
  makeEntry('AgUiToolsBasedGenUiExample', () => import('./AgUiToolsBasedGenUiExample'), 'AG-UI tool-based generative UI example.'),
78
85
  makeEntry('AgentspecsExample', () => import('./AgentspecsExample'), 'Configure and run agents from specs and transports.'),
86
+ makeEntry('NotebookPageAgent', () => import('./NotebookPageAgent'), 'A notebook as a page: floating prompt on top, a team of agents working in it.'),
87
+ makeEntry('DocumentPageAgent', () => import('./DocumentPageAgent'), 'A document as a page: floating prompt on top, an agent writing in it.'),
88
+ makeEntry('DecksAgent', () => import('./DecksAgent'), 'A deck beside the chat: the decks plugin in a Loop, and an agent that writes presentations as data.'),
79
89
  makeEntry('CellExample', () => import('./CellExample'), 'Simple cell example.'),
80
90
  makeEntry('ChatCustomExample', () => import('./ChatCustomExample'), 'Custom chat experience composition example.'),
81
91
  makeEntry('ChatExample', () => import('./ChatExample'), 'Baseline chat integration example.'),
82
92
  makeEntry('ChatStandaloneExample', () => import('./ChatStandaloneExample'), 'Standalone chat component usage example.'),
83
- makeEntry('CopilotKitLexicalExample', () => import('./CopilotKitLexicalExample'), 'CopilotKit integration with Lexical editor.'),
93
+ makeEntry('CopilotKitLexicalExample', () => import('./CopilotKitLexicalExample'), 'CopilotKit integration with the document editor.'),
84
94
  makeEntry('CopilotKitNotebookExample', () => import('./CopilotKitNotebookExample'), 'CopilotKit integration with notebook workflows.'),
85
95
  makeEntry('AgentCheckpointsExample', () => import('./AgentCheckpointsExample'), 'Checkpoint and resume lifecycle for agents.'),
86
96
  makeEntry('AgentCompactionExample', () => import('./AgentCompactionExample'), 'Set a context token budget and watch history compaction summarize older messages, with live from/to token and timing details.', ['example', 'agent', 'compaction', 'context', 'tokens']),
@@ -90,6 +100,15 @@ export const EXAMPLE_ENTRIES = [
90
100
  makeEntry('AgentGuardrailsExample', () => import('./AgentGuardrailsExample'), 'Guardrails and safety checks for agent runs.'),
91
101
  makeEntry('AgentHooksExample', () => import('./AgentHooksExample'), 'Pre-hooks and post-hooks lifecycle execution example.'),
92
102
  makeEntry('AgentInferenceProviderExample', () => import('./AgentInferenceProviderExample'), 'Switch local and datalayer inference providers with live low-level provider events.', ['example', 'agent', 'inference', 'provider', 'runtime']),
103
+ makeEntry('LoopWorkspaceExample', () => import('./LoopWorkspaceExample'), 'The LOOP workspace: a blank shell, with the chat, the editors and the plugin list all contributed as plugins.',
104
+ // `owns-sandbox-control`: this example brings its own sandbox switch, so
105
+ // the shell hides the one in its header rather than showing two controls
106
+ // for one sandbox — and a second one that would not agree with the first.
107
+ ['example', 'loop', 'workspace', 'sandbox', 'owns-sandbox-control']),
108
+ makeEntry('LoopShellExample', () => import('./LoopShellExample'), 'The Loop shell at its most naked: a blank canvas, a floating draggable prompt, and an editor selector in the corner — none, notebook or document.',
109
+ // `owns-sandbox-control`: the shell is pinned to the browser sandbox, so
110
+ // the page's selector would offer three targets it cannot move to.
111
+ ['example', 'loop', 'shell', 'prompt', 'editors', 'owns-sandbox-control']),
93
112
  makeEntry('AgentLoopExample', () => import('./AgentLoopExample'), 'Define and launch an agent execution loop (observe/think/act/evaluate) over a live notebook, driven by generic loop specs.', ['example', 'agent', 'loop', 'notebook', 'agentspecs']),
94
113
  makeEntry('AgentToolApprovalsExample', () => import('./AgentToolApprovalsExample'), 'Tool approval workflows and manual decisions.'),
95
114
  makeEntry('AgentMemoryExample', () => import('./AgentMemoryExample'), 'Memory-aware conversation and retrieval example.'),
@@ -99,12 +118,13 @@ export const EXAMPLE_ENTRIES = [
99
118
  makeEntry('AgentCodeSandboxExample', () => import('./AgentCodeSandboxExample'), 'Sandbox execution variants and context controls.'),
100
119
  makeEntry('AgentMonitoringExample', () => import('./AgentMonitoringExample'), 'Runtime monitoring and live metrics example.'),
101
120
  makeEntry('AgentSubagentsExample', () => import('./AgentSubagentsExample'), 'Multi-agent delegation with the in-repo subagents capability.'),
121
+ makeEntry('AgentA2AExample', () => import('./AgentA2AExample'), 'Delegation to separate agents over the A2A protocol, launched locally or on Datalayer runtimes.'),
102
122
  makeEntry('AgentNotificationsExample', () => import('./AgentNotificationsExample'), 'Notifications and event routing example.'),
103
123
  makeEntry('AgentOutputsExample', () => import('./AgentOutputsExample'), 'Structured outputs and rendering patterns.'),
104
124
  makeEntry('AgentParametersExample', () => import('./AgentParametersExample'), 'Launch-time parameterized agent creation with JSON schema.'),
105
125
  makeEntry('AgentTriggersExample', () => import('./AgentTriggersExample'), 'Scheduled and one-shot trigger flows.'),
106
- makeEntry('LexicalAgentExample', () => import('./LexicalAgentExample'), 'Lexical document integration example.'),
107
- makeEntry('LexicalAgentSidebarExample', () => import('./LexicalAgentSidebarExample'), 'Lexical with sidebar orchestration example.'),
126
+ makeEntry('LexicalAgentExample', () => import('./LexicalAgentExample'), 'Document agent integration example.'),
127
+ makeEntry('LexicalAgentSidebarExample', () => import('./LexicalAgentSidebarExample'), 'Document agent with sidebar orchestration example.'),
108
128
  makeEntry('NotebookAgentExample', () => import('./NotebookAgentExample'), 'Notebook orchestration and runtime example.'),
109
129
  makeEntry('NotebookAgentSidebarExample', () => import('./NotebookAgentSidebarExample'), 'Notebook plus sidebar controls example.'),
110
130
  makeEntry('NotebookExample', () => import('./NotebookExample'), 'Minimal notebook integration example.'),
@@ -0,0 +1,41 @@
1
+ import type { AgentConfig } from '../../types/config';
2
+ export interface UseCreateAgentOnceOptions {
3
+ /** Whether there is anything to attempt. */
4
+ enabled: boolean;
5
+ /**
6
+ * Whether *this* agent already exists, which makes the attempt moot.
7
+ *
8
+ * A boolean rather than an id, because the caller is the only one who can
9
+ * answer it. The runtime state is a shared singleton that the shell writes
10
+ * to as well: on the cloud target it launches a runtime and registers an
11
+ * agent of its own before an example mounts. Skipping on "some agent id is
12
+ * set" therefore skipped creating the example's agent because somebody
13
+ * else's was already there — and every message then came back "No agent
14
+ * registered for this ID".
15
+ */
16
+ alreadyCreated?: boolean;
17
+ createAgent: (config: AgentConfig) => Promise<AgentCreated>;
18
+ config: AgentConfig;
19
+ }
20
+ /** What creating an agent gives back. */
21
+ export type AgentCreated = {
22
+ agentId?: string;
23
+ endpoint?: string;
24
+ isReady?: boolean;
25
+ };
26
+ export interface UseCreateAgentOnceResult {
27
+ /** Whether the single attempt has been made. */
28
+ attempted: boolean;
29
+ /**
30
+ * The agent this hook created, once the call has returned.
31
+ *
32
+ * The trustworthy signal that the agent exists: it is the answer to our own
33
+ * request, rather than a read of state anything else can overwrite.
34
+ */
35
+ created?: AgentCreated;
36
+ /** Why it failed, when it did. Reported, never retried. */
37
+ error?: string;
38
+ }
39
+ /** Create an agent at most once. */
40
+ export declare function useCreateAgentOnce(options: UseCreateAgentOnceOptions): UseCreateAgentOnceResult;
41
+ export default useCreateAgentOnce;
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Ask for something once, and stop.
7
+ *
8
+ * Its own module because "attempt exactly once, and if it fails say why rather
9
+ * than try again" is a policy, and it was the missing one. Five examples each
10
+ * ended their creation attempt with `.catch(() => setCreateRequested(false))`
11
+ * while the effect making the attempt listed `createRequested` among its
12
+ * dependencies — so a failure re-armed the effect. With an unreachable sandbox
13
+ * the examples app posted `/api/v1/agents` as fast as the server could return
14
+ * 503, and the page looked like it was reloading without end.
15
+ *
16
+ * A `useState` guard cleared in a `.catch` is not a guard; it is a retry loop
17
+ * with extra steps.
18
+ *
19
+ * @module examples/hooks/useCreateAgentOnce
20
+ */
21
+ import { useEffect, useRef, useState } from 'react';
22
+ /** Create an agent at most once. */
23
+ export function useCreateAgentOnce(options) {
24
+ const { enabled, alreadyCreated, createAgent, config } = options;
25
+ const [attempted, setAttempted] = useState(false);
26
+ const [created, setCreated] = useState();
27
+ const [error, setError] = useState();
28
+ // A ref, not state: the effect must not depend on a value its own failure
29
+ // path writes, or the failure re-arms it.
30
+ const attemptedRef = useRef(false);
31
+ // Read at attempt time rather than depended upon, so a caller that rebuilds
32
+ // its config object on every render cannot provoke a second attempt.
33
+ const configRef = useRef(config);
34
+ configRef.current = config;
35
+ useEffect(() => {
36
+ if (attemptedRef.current || alreadyCreated || !enabled) {
37
+ return;
38
+ }
39
+ attemptedRef.current = true;
40
+ setAttempted(true);
41
+ void createAgent(configRef.current)
42
+ .then(setCreated)
43
+ .catch((reason) => {
44
+ // Recorded, never retried: `attemptedRef` is not cleared here, which
45
+ // is the whole of the fix.
46
+ setError(reason instanceof Error ? reason.message : String(reason));
47
+ });
48
+ }, [alreadyCreated, createAgent, enabled]);
49
+ return { attempted, created, error };
50
+ }
51
+ export default useCreateAgentOnce;
@@ -0,0 +1,35 @@
1
+ import type { ProtocolConfig } from '../../types/protocol';
2
+ import type { FrontendToolDefinition } from '../../types/tools';
3
+ /** Why a browser agent is unusable when it is. */
4
+ export declare const BROWSER_SIGN_IN_REASON: string;
5
+ export interface UseExampleAgentProtocolOptions {
6
+ /** Whether the loop turns in this page. */
7
+ inBrowser: boolean;
8
+ /** The agent's name, which is also its id on a runtime. */
9
+ agentName: string;
10
+ /** The agent's instructions, for the in-page harness to run with. */
11
+ systemPrompt?: string;
12
+ /** The model id, as a spec spells it. */
13
+ model?: string;
14
+ /** The tools the agent may call in this page, if any. */
15
+ frontendTools?: FrontendToolDefinition[];
16
+ /** Base URL of the agent's runtime, for the remote case. */
17
+ remoteBaseUrl?: string;
18
+ }
19
+ export interface UseExampleAgentProtocolResult {
20
+ protocol: ProtocolConfig;
21
+ /**
22
+ * The tools to pass the chat component — which is not always the tools.
23
+ *
24
+ * Against a runtime the chat runs frontend tools itself: a `tool-call`
25
+ * arrives over the wire and it answers with the result. In the browser the
26
+ * SDK owns the loop and calls the handlers directly, so handing them to the
27
+ * chat as well would run every tool twice.
28
+ */
29
+ chatFrontendTools?: FrontendToolDefinition[];
30
+ /** Whether the in-page agent is unusable for want of a sign-in. */
31
+ needsSignIn: boolean;
32
+ }
33
+ /** The protocol config for this example, and who should run its tools. */
34
+ export declare function useExampleAgentProtocol(options: UseExampleAgentProtocolOptions): UseExampleAgentProtocolResult;
35
+ export default useExampleAgentProtocol;
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * What to give a chat, chosen by where the loop turns.
7
+ *
8
+ * Extracted from `useExampleJupyterAgent` when it turned out that the choice
9
+ * has nothing to do with notebooks. `ChatExample` has no sandbox, no tools and
10
+ * no surface — it is a conversation and nothing else — and it still has to
11
+ * make the same decision the moment someone selects Browser in the runtime
12
+ * control.
13
+ *
14
+ * Remotely the chat speaks the Vercel AI wire protocol to an agent's endpoint.
15
+ * In the browser it speaks to the in-page harness, and carries the prompt and
16
+ * the tools rather than a URL.
17
+ *
18
+ * @module examples/hooks/useExampleAgentProtocol
19
+ */
20
+ import { useMemo } from 'react';
21
+ import { browserProtocolConfig } from '../../runtimes/browser';
22
+ import { useBrowserInference } from '../../hooks/useBrowserInference';
23
+ /** Why a browser agent is unusable when it is. */
24
+ export const BROWSER_SIGN_IN_REASON = 'Sign in to use this agent. The loop runs in your browser and needs no ' +
25
+ 'runtime, but the model it asks is reached through the Datalayer inference ' +
26
+ 'service, which answers to signed-in members only.';
27
+ /** The protocol config for this example, and who should run its tools. */
28
+ export function useExampleAgentProtocol(options) {
29
+ const { inBrowser, agentName, systemPrompt, model, frontendTools, remoteBaseUrl, } = options;
30
+ /* Only an in-page agent spends the visitor's trial key. A server-backed one
31
+ authenticates itself, and starting a clock against a conversation that
32
+ will never use it is a countdown on nothing. */
33
+ const { inference, needsSignIn } = useBrowserInference(inBrowser);
34
+ const protocol = useMemo(() => inBrowser
35
+ ? browserProtocolConfig({
36
+ agentId: agentName,
37
+ instructions: systemPrompt,
38
+ model,
39
+ frontendTools,
40
+ inference,
41
+ })
42
+ : {
43
+ type: 'vercel-ai',
44
+ endpoint: `${remoteBaseUrl}/api/v1/vercel-ai/${agentName}`,
45
+ agentId: agentName,
46
+ enableConfigQuery: true,
47
+ configEndpoint: `${remoteBaseUrl}/api/v1/configure`,
48
+ }, [
49
+ agentName,
50
+ frontendTools,
51
+ inBrowser,
52
+ inference,
53
+ model,
54
+ remoteBaseUrl,
55
+ systemPrompt,
56
+ ]);
57
+ return {
58
+ protocol,
59
+ chatFrontendTools: inBrowser ? undefined : frontendTools,
60
+ needsSignIn: inBrowser && needsSignIn,
61
+ };
62
+ }
63
+ export default useExampleAgentProtocol;
@@ -1,35 +1,35 @@
1
+ import type { UseAgentReturn } from '../../hooks/useAgentRuntimes';
1
2
  import type { AgentConfig } from '../../types/config';
2
- interface UseExampleAgentRuntimeOptions {
3
+ import { type ExampleRuntimeTarget } from '../utils/runtimeTargetStore';
4
+ export interface UseExampleAgentRuntimeOptions {
3
5
  exampleId: string;
4
6
  agentName: string;
5
7
  specId?: string;
6
- environmentName?: string;
7
8
  autoStart?: boolean;
8
9
  autoCreateAgent?: boolean;
9
10
  agentConfig?: AgentConfig;
10
11
  }
11
- interface UseExampleAgentRuntimeResult {
12
- location: 'local' | 'cloud';
12
+ export interface UseExampleAgentRuntimeResult extends UseAgentReturn {
13
+ location: ExampleRuntimeTarget;
13
14
  baseUrl: string;
14
15
  agentId?: string;
15
16
  agentBaseUrl?: string;
16
- status: string;
17
- isReady: boolean;
18
- error: string | null;
19
- createAgent: (config?: AgentConfig) => Promise<{
20
- agentId?: string;
21
- endpoint?: string;
22
- isReady?: boolean;
23
- }>;
17
+ /** Whether an agent runs on the current target at all. */
18
+ hasAgent: boolean;
24
19
  /**
25
- * Tear down the agent launched by this hook: delete it on the server and
26
- * wipe in-process agent state so a fresh runtime can be launched.
20
+ * What to spread onto a `ChatBase` so it shows itself switched off, with the
21
+ * reason, wherever there is no agent to talk to.
22
+ *
23
+ * Computed here so no example has to know which targets have agents — the
24
+ * question is about the target, and the target is the shell's business.
27
25
  */
28
- teardown: () => Promise<void>;
26
+ chatGate: {
27
+ disabled: boolean;
28
+ disableReason?: string;
29
+ };
29
30
  }
30
31
  /**
31
32
  * Connects examples to agent runtimes through shared hooks and supports
32
33
  * both local and cloud execution modes.
33
34
  */
34
35
  export declare function useExampleAgentRuntime(options: UseExampleAgentRuntimeOptions): UseExampleAgentRuntimeResult;
35
- export {};
@@ -3,44 +3,38 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import { useEffect, useMemo } from 'react';
6
- import { useAgentRuntimes } from '../../hooks/useAgentRuntimes';
7
- import { useExampleAgentRuntimesUrl } from '../utils/useExampleAgentRuntimesUrl';
8
- import { useRuntimeTargetStore } from '../utils/runtimeTargetStore';
6
+ import { runtimeTargetCapabilities, useRuntimeTargetStore, } from '../utils/runtimeTargetStore';
9
7
  import { agentSummaryStore } from '../utils/agentSummaryStore';
8
+ import { useExampleAgentRuntimes } from './useExampleAgentRuntimes';
9
+ import { harnessOf, SPEC_HARNESS_BY_HARNESS } from '../../runtimes/variants';
10
10
  /**
11
11
  * Connects examples to agent runtimes through shared hooks and supports
12
12
  * both local and cloud execution modes.
13
13
  */
14
14
  export function useExampleAgentRuntime(options) {
15
- const { exampleId, agentName, specId, environmentName = 'local-agent-runtimes', autoStart = true, autoCreateAgent = true, agentConfig, } = options;
15
+ const { exampleId, agentName, specId, autoStart = true, autoCreateAgent = true, agentConfig, } = options;
16
16
  const location = useRuntimeTargetStore(state => state.target);
17
- const baseUrl = useExampleAgentRuntimesUrl();
18
- const isCloud = location === 'cloud';
17
+ const capabilities = runtimeTargetCapabilities(location);
18
+ const isCloud = location === 'datalayer';
19
19
  const combinedConfig = useMemo(() => ({
20
20
  name: agentName,
21
21
  agentSpecId: specId,
22
22
  ...agentConfig,
23
23
  }), [agentName, specId, agentConfig]);
24
- const { runtime, status, isReady, error, connectToRuntime, createAgent, teardown, } = useAgentRuntimes({
25
- agentSpecId: isCloud ? specId : undefined,
24
+ const result = useExampleAgentRuntimes({
25
+ agentSpecId: specId,
26
26
  autoCreateAgent,
27
- autoStart: isCloud ? autoStart : false,
28
- runtimeCreationTarget: isCloud
29
- ? 'backend-services'
30
- : 'local-agent-runtimes',
31
- runtimeCreationBaseUrl: isCloud ? undefined : baseUrl,
27
+ autoStart,
32
28
  agentConfig: combinedConfig,
33
29
  });
34
- useEffect(() => {
35
- if (isCloud) {
36
- return;
37
- }
38
- connectToRuntime({
39
- podName: agentName,
40
- environmentName,
41
- jupyterBaseUrl: baseUrl,
42
- });
43
- }, [isCloud, connectToRuntime, agentName, environmentName, baseUrl]);
30
+ const { runtime, status, isReady, error, variant } = result;
31
+ // The harness reported is the one actually turning the loop, read off the
32
+ // variant rather than off the spec: a spec states what it needs, and this
33
+ // says what it got.
34
+ const harness = SPEC_HARNESS_BY_HARNESS[harnessOf(variant)];
35
+ const baseUrl = isCloud
36
+ ? runtime?.agentBaseUrl || result.runtimeCreationBaseUrl
37
+ : result.runtimeCreationBaseUrl;
44
38
  useEffect(() => {
45
39
  // Agent status and code sandbox status are both reported by the
46
40
  // agent-runtimes API server. For local runs that server is `baseUrl`
@@ -55,6 +49,8 @@ export function useExampleAgentRuntime(options) {
55
49
  agentName,
56
50
  agentId: runtime?.agentId,
57
51
  specId,
52
+ harness,
53
+ variant,
58
54
  location,
59
55
  baseUrl: agentApiBaseUrl,
60
56
  sandboxBaseUrl: runtime?.agentBaseUrl,
@@ -71,6 +67,8 @@ export function useExampleAgentRuntime(options) {
71
67
  runtime?.agentId,
72
68
  runtime?.agentBaseUrl,
73
69
  specId,
70
+ harness,
71
+ variant,
74
72
  location,
75
73
  baseUrl,
76
74
  isCloud,
@@ -79,14 +77,17 @@ export function useExampleAgentRuntime(options) {
79
77
  error,
80
78
  ]);
81
79
  return {
80
+ ...result,
82
81
  location,
83
82
  baseUrl,
84
83
  agentId: runtime?.agentId,
85
84
  agentBaseUrl: runtime?.agentBaseUrl,
85
+ hasAgent: capabilities.hasAgent,
86
+ chatGate: capabilities.hasAgent
87
+ ? { disabled: false }
88
+ : { disabled: true, disableReason: capabilities.noAgentReason },
86
89
  status,
87
90
  isReady,
88
91
  error,
89
- createAgent,
90
- teardown,
91
92
  };
92
93
  }
@@ -3,80 +3,64 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import { useAgentRuntimes, } from '../../hooks/useAgentRuntimes';
6
- import { useEffect, useMemo, useRef } from 'react';
7
- import { useRuntimeTargetStore } from '../utils/runtimeTargetStore';
6
+ import { useMemo } from 'react';
7
+ import { runtimeTargetCapabilities, useRuntimeTargetStore, } from '../utils/runtimeTargetStore';
8
8
  import { useExampleAgentRuntimesUrl } from '../utils/useExampleAgentRuntimesUrl';
9
+ import { locationOf, toAgentRuntimeVariant, variantForLocation, } from '../../runtimes/variants';
9
10
  /**
10
11
  * High-level examples hook that applies the shared Local/Cloud runtime target
11
12
  * defaults while preserving explicit overrides from individual examples.
12
13
  */
13
14
  export function useExampleAgentRuntimes(options) {
14
15
  const runtimeTarget = useRuntimeTargetStore(state => state.target);
16
+ const capabilities = runtimeTargetCapabilities(runtimeTarget);
15
17
  const localRuntimeBaseUrl = useExampleAgentRuntimesUrl();
16
- const runtimeCreationTarget = options.runtimeCreationTarget ??
17
- (runtimeTarget === 'cloud' ? 'backend-services' : 'local-agent-runtimes');
18
+ // The examples' four targets collapse to two runtimes: only `datalayer` is
19
+ // the cloud one. `variant` is what the hook speaks now, so the summary and
20
+ // the chat can name what is actually running rather than infer it.
21
+ const variant = toAgentRuntimeVariant(options.variant ??
22
+ options.runtimeCreationTarget ??
23
+ (runtimeTarget === 'browser'
24
+ ? // The browser turns its own loop, whatever a spec's `harness` says:
25
+ // there is no server here to run anything else.
26
+ variantForLocation('browser')
27
+ : runtimeTarget === 'datalayer'
28
+ ? 'backend-services'
29
+ : 'local-agent-runtimes'));
30
+ const isLocal = locationOf(variant) === 'local';
18
31
  const runtimeCreationBaseUrl = options.runtimeCreationBaseUrl ??
19
- (runtimeCreationTarget === 'local-agent-runtimes'
20
- ? localRuntimeBaseUrl
21
- : undefined);
22
- const autoStart = options.autoStart ?? runtimeCreationTarget === 'backend-services';
23
- const result = useAgentRuntimes({
24
- ...options,
25
- runtimeCreationTarget,
26
- runtimeCreationBaseUrl,
27
- autoStart,
28
- });
29
- const bootstrapAttemptKeyRef = useRef(null);
30
- const fallbackPodName = useMemo(() => {
31
- const configuredName = typeof options.agentConfig?.name === 'string'
32
- ? options.agentConfig.name.trim()
33
- : '';
34
- if (configuredName) {
35
- return configuredName;
36
- }
37
- const configuredSpecId = typeof options.agentSpecId === 'string' ? options.agentSpecId.trim() : '';
38
- if (configuredSpecId) {
39
- return configuredSpecId;
40
- }
41
- return 'example-agent-runtime';
32
+ (isLocal ? localRuntimeBaseUrl : undefined);
33
+ // Two of the four targets are a sandbox and nothing else. Launching an agent
34
+ // there would call a service that is not running, so the hook simply does
35
+ // not — and `useExampleAgentRuntime` reports why, for the chat to show.
36
+ const autoStart = capabilities.hasAgent
37
+ ? (options.autoStart ?? !isLocal)
38
+ : false;
39
+ const fallbackRuntimeName = useMemo(() => {
40
+ const configuredName = options.agentConfig?.name?.trim();
41
+ return (configuredName || options.agentSpecId?.trim() || 'example-agent-runtime');
42
42
  }, [options.agentConfig?.name, options.agentSpecId]);
43
- useEffect(() => {
44
- if (result.runtime || result.isLaunching) {
45
- return;
46
- }
47
- const bootstrapKey = `${runtimeTarget}:${runtimeCreationTarget}:${fallbackPodName}`;
48
- if (bootstrapAttemptKeyRef.current === bootstrapKey) {
49
- return;
50
- }
51
- if (runtimeCreationTarget === 'local-agent-runtimes') {
52
- bootstrapAttemptKeyRef.current = bootstrapKey;
53
- result.connectToRuntime({
54
- podName: fallbackPodName,
55
- environmentName: 'local-agent-runtimes',
56
- jupyterBaseUrl: runtimeCreationBaseUrl,
57
- });
58
- return;
43
+ const runtimeConnection = useMemo(() => isLocal
44
+ ? {
45
+ runtimeName: fallbackRuntimeName,
46
+ environmentName: 'local-agent-runtimes',
47
+ jupyterBaseUrl: runtimeCreationBaseUrl,
59
48
  }
60
- if (runtimeCreationTarget === 'backend-services' &&
61
- !autoStart &&
62
- options.agentSpecId) {
63
- bootstrapAttemptKeyRef.current = bootstrapKey;
64
- void result.launchRuntime().catch(() => {
65
- bootstrapAttemptKeyRef.current = null;
66
- });
49
+ : undefined, [fallbackRuntimeName, runtimeCreationBaseUrl, isLocal]);
50
+ const agentConfig = useMemo(() => isLocal && options.agentSpecId
51
+ ? {
52
+ ...options.agentConfig,
53
+ agentSpecId: options.agentConfig?.agentSpecId ?? options.agentSpecId,
67
54
  }
68
- }, [
69
- runtimeTarget,
70
- runtimeCreationTarget,
55
+ : options.agentConfig, [options.agentConfig, options.agentSpecId, isLocal]);
56
+ return useAgentRuntimes({
57
+ ...options,
58
+ agentConfig,
59
+ variant,
71
60
  runtimeCreationBaseUrl,
72
- fallbackPodName,
73
61
  autoStart,
74
- options.agentSpecId,
75
- result.runtime,
76
- result.isLaunching,
77
- result.connectToRuntime,
78
- result.launchRuntime,
79
- ]);
80
- return result;
62
+ autoCreateAgent: capabilities.hasAgent ? options.autoCreateAgent : false,
63
+ runtimeConnection: options.runtimeConnection ?? runtimeConnection,
64
+ });
81
65
  }
82
66
  export default useExampleAgentRuntimes;