@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
@@ -0,0 +1,124 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * Loop, ready to drop into somebody else's page.
8
+ *
9
+ * The supported way to embed the workspace: a plugin set from `loopPlugins`, a
10
+ * query client, an optional theme, and the shell. Everything a host has to do
11
+ * around Loop, done once here instead of once per host.
12
+ *
13
+ * It exists because the landing page was embedding the *example*. An example is
14
+ * written to be read — its props are demonstration switches, its wiring is
15
+ * whatever made the demo clearest, and none of it is a promise. A page that
16
+ * embeds Loop needs a supported surface, and the two drifting apart should not
17
+ * be able to break somebody's home page.
18
+ *
19
+ * What a host still owns is the frame it puts around this and how much of the
20
+ * page to give it. `WindowFrame` is there for the first; the second is a
21
+ * `height` on whatever wraps this.
22
+ *
23
+ * @module loop/embed/LoopEmbed
24
+ */
25
+ import { useMemo, useRef } from 'react';
26
+ import { QueryClientProvider } from '@tanstack/react-query';
27
+ import { useReactor } from '@datalayer/reactor/react';
28
+ import { Box } from '@datalayer/primer-addons';
29
+ import { internalQueryClient } from '../../utils';
30
+ import { buildLoopReactor, LoopWorkspace } from '../shell';
31
+ import { loopPlugins } from '../presets';
32
+ import { WindowFrame } from '../plugins/window-frame';
33
+ export function LoopEmbed({ agentId = '', showHeader = false, chatHeaderActions, headerActions, frameTitle, frameHeight, plugins = [], ...preset }) {
34
+ /*
35
+ * The latest `firstPromptHook`, kept in a ref rather than closed over
36
+ * directly.
37
+ *
38
+ * The reactor below is built once — see the comment on it — and a host's
39
+ * hook is exactly the kind of prop that is *not* stable across renders (it
40
+ * usually closes over the page's own state). Closing over it directly
41
+ * would either freeze the plugin config at whichever value happened to be
42
+ * current on the one render that built the reactor, or force this into the
43
+ * dependency array and restart every plugin whenever the host re-renders
44
+ * with a fresh inline function. The ref sidesteps both: the wrapper handed
45
+ * to `loopPlugins` below never changes identity, and it always reaches
46
+ * whatever the host most recently passed.
47
+ */
48
+ const firstPromptHookRef = useRef(preset.firstPromptHook);
49
+ firstPromptHookRef.current = preset.firstPromptHook;
50
+ // Built once: rebuilding would restart every plugin on each render.
51
+ const reactor = useMemo(() => buildLoopReactor([
52
+ ...loopPlugins({
53
+ ...preset,
54
+ // A framed embed wants the title bar's slots open; a host that
55
+ // asked for a frame should not also have to remember the plugin.
56
+ windowFrame: preset.windowFrame || frameTitle !== undefined,
57
+ firstPromptHook: () => firstPromptHookRef.current?.(),
58
+ }),
59
+ ...plugins,
60
+ ]),
61
+ // `preset.firstPromptHook` is deliberately absent — see the ref above.
62
+ // eslint-disable-next-line react-hooks/exhaustive-deps
63
+ [
64
+ preset.serverUrl,
65
+ preset.target,
66
+ preset.defaultEditor,
67
+ preset.showViewSelector,
68
+ preset.hideChatHeader,
69
+ preset.promptPlacement,
70
+ preset.autoFocusPrompt,
71
+ preset.fullScreenTopOffset,
72
+ preset.showAgentVariants,
73
+ preset.agentSummary,
74
+ preset.teamId,
75
+ preset.teamPicker,
76
+ preset.pageLayout,
77
+ preset.pageLayoutTurnPanel,
78
+ preset.pageLayoutTurnPanelFooter,
79
+ preset.pageLayoutPrompt,
80
+ preset.pageLayoutPromptAnchor,
81
+ // By its fields: a host that writes the size inline hands over a new
82
+ // object every render, and the reactor must not be rebuilt for that.
83
+ preset.pageLayoutSize?.format,
84
+ preset.pageLayoutSize?.width,
85
+ preset.pageLayoutSize?.height,
86
+ preset.localAgentSpec,
87
+ preset.floatingPrompt,
88
+ preset.editorSelector,
89
+ preset.editors,
90
+ preset.graph,
91
+ preset.commandPalette,
92
+ preset.pluginsPanel,
93
+ preset.windowFrame,
94
+ frameTitle !== undefined,
95
+ plugins,
96
+ ]);
97
+ /*
98
+ * No theme provider here, deliberately.
99
+ *
100
+ * The views read Primer's CSS custom properties — the document editor reads
101
+ * them as variables, because that is how Lexical's stylesheets are written —
102
+ * so *something* above this has to define them. But a provider mounted here
103
+ * writes into the shared primer-addons store, which is the store the host
104
+ * page reads from: an embedded Loop would overwrite the reader's theme the
105
+ * moment it finished loading. Installing a global from inside a component
106
+ * somebody dropped into their page is not this component's business.
107
+ *
108
+ * A host provides `DatalayerThemeProvider` (or `ThemedProvider`) once, which
109
+ * every Datalayer application already does.
110
+ */
111
+ /*
112
+ * Started here, because this is what built it.
113
+ *
114
+ * `LoopWorkspace` starts the platform only when it is managing it, and it is
115
+ * told not to below — the reactor is this component's, and a shell that
116
+ * stopped it on unmount would be stopping somebody else's. Registering
117
+ * without starting leaves every plugin inactive, so nothing contributes a
118
+ * view and the workspace draws "No view is available yet".
119
+ */
120
+ useReactor(reactor);
121
+ const shell = (_jsx(LoopWorkspace, { serverUrl: preset.serverUrl ?? '', agentId: agentId, reactor: reactor, manageReactor: false, showViewSelector: preset.showViewSelector, showHeader: showHeader, chatHeaderActions: chatHeaderActions, headerActions: headerActions }));
122
+ return (_jsx(QueryClientProvider, { client: internalQueryClient, children: frameTitle !== undefined ? (_jsx(WindowFrame, { title: frameTitle, height: frameHeight, children: shell })) : (_jsx(Box, { sx: { height: '100%', minHeight: 0 }, children: shell })) }));
123
+ }
124
+ export default LoopEmbed;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The notebook capability: the editor, and the toolbar that reports on it.
3
+ *
4
+ * The sandbox plugin is deliberately absent even though the editor depends on
5
+ * it. It arrives as a dependency, and a package should not claim to deliver
6
+ * something it merely relies on — the whole workspace runs on that sandbox.
7
+ */
8
+ export declare const NotebookExtension: import("@datalayer/reactor").ReactorExtension;
9
+ /** The document capability: the same arrangement, for prose. */
10
+ export declare const DocumentExtension: import("@datalayer/reactor").ReactorExtension;
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * The Loop plugins, grouped the way they are installed.
7
+ *
8
+ * Splitting the editors from their toolbars bought a real thing — a toolbar
9
+ * can be switched off, and the chat can fill one without the editor knowing —
10
+ * but it also doubled the length of the plugin list, and a list of peers is a
11
+ * worse way to read a system than a list of capabilities.
12
+ *
13
+ * An extension fixes exactly that and nothing else: it groups, and it has no
14
+ * lifecycle of its own. Each member is still enabled and disabled on its own,
15
+ * still appears on the graph as itself, and still contributes as itself. The
16
+ * grouping is only how a reader is told "these arrived together, and this is
17
+ * what you would uninstall to lose the capability".
18
+ *
19
+ * @module loop/extensions
20
+ */
21
+ import { defineExtension } from '@datalayer/reactor';
22
+ import { DocumentPlugin } from './plugins/document';
23
+ import { DocumentToolbarPlugin } from './plugins/document-toolbar';
24
+ import { NotebookPlugin } from './plugins/notebook';
25
+ import { NotebookToolbarPlugin } from './plugins/notebook-toolbar';
26
+ /**
27
+ * The notebook capability: the editor, and the toolbar that reports on it.
28
+ *
29
+ * The sandbox plugin is deliberately absent even though the editor depends on
30
+ * it. It arrives as a dependency, and a package should not claim to deliver
31
+ * something it merely relies on — the whole workspace runs on that sandbox.
32
+ */
33
+ export const NotebookExtension = defineExtension({
34
+ name: '@datalayer/loop-extension-notebook',
35
+ displayName: 'Notebooks',
36
+ description: 'A notebook beside the chat, and the toolbar that reports on it.',
37
+ octicon: 'rows',
38
+ emoji: '\u{1F4D3}',
39
+ plugins: [NotebookPlugin, NotebookToolbarPlugin],
40
+ });
41
+ /** The document capability: the same arrangement, for prose. */
42
+ export const DocumentExtension = defineExtension({
43
+ name: '@datalayer/loop-extension-document',
44
+ displayName: 'Documents',
45
+ description: 'A rich-text document beside the chat, and the toolbar that reports on it.',
46
+ octicon: 'file',
47
+ emoji: '\u{1F4C4}',
48
+ plugins: [DocumentPlugin, DocumentToolbarPlugin],
49
+ });
@@ -0,0 +1,68 @@
1
+ /**
2
+ * The LOOP workspace: contracts, shell, and the plugins that come with it.
3
+ *
4
+ * A host embeds the workspace through this surface — never by deep import — so
5
+ * what is public is a decision rather than an accident of file layout (§3.5).
6
+ *
7
+ * @module loop
8
+ */
9
+ export { LoopCommand, LoopDocumentToolbar, LoopMention, LoopNotebookToolbar, LoopSlots, LoopViewType, canOpenView, createPromptChannel, parseCommand, type CommandArgSpec, type CommandContribution, type CommandResult, type EditorToolbarContext, type EditorToolbarContribution, type LoopCommandContext, type LoopViewProps, type LoopWorkspaceContext, type MentionCandidate, type MentionContribution, type PromptChannel, type SandboxSnapshot, type SandboxState, type ViewControls, type ViewTypeContribution, useLoopPromptStore, suggestLoopPrompt, focusPrompt, onPromptFocusRequest, type LoopPromptState, type SuggestedPrompt, } from './core';
10
+ export { useEditorToolbar } from './core/toolbar';
11
+ export { LoopWorkspace, PluginToggles, ViewSwitcher, WorkspaceFullScreenAction, buildLoopReactor, useWorkspaceFullScreen, type LoopWorkspaceProps, type PluginTogglesProps, type ViewSwitcherProps, } from './shell';
12
+ export { A2uiPlugin, A2UI_PLUGIN_NAME } from './plugins/a2ui';
13
+ export { AgentspecsPlugin, AGENTSPECS_PLUGIN_NAME } from './plugins/agentspecs';
14
+ export { ChatPlugin, CHAT_PLUGIN_NAME, type ChatPluginConfig, } from './plugins/chat';
15
+ export { ChatHeaderPlugin, CHAT_HEADER_PLUGIN_NAME, } from './plugins/chat-header';
16
+ export { InputPromptPlugin, INPUT_PROMPT_PLUGIN_NAME, type InputPromptPluginConfig, } from './plugins/input-prompt';
17
+ export { createChatExtrasPlugin, CHAT_EXTRAS_PLUGIN_NAME, type ChatExtrasHandle, } from './plugins/chat-extras';
18
+ export { LoopChatExtras, LoopChatLayout, LoopChatTurn, LoopOpeningDocument, LoopOpeningNotebook, LoopPromptPanel, type ChatLayoutContribution, type ChatLayoutParts, type ChatTurnContribution, type ChatTurnSnapshot, type ChatTurnStatus, type LoopChatExtrasValue, type OpeningDocumentContribution, type OpeningNotebookContribution, type PromptPanelContribution, } from './core';
19
+ export { LoopPageLayoutPlugin, LOOP_PAGE_LAYOUT_PLUGIN_NAME, openConversationPanel, pageLayoutSheet, pageLayoutPanelOpen, type LoopPageLayoutConfig, } from './plugins/page-layout';
20
+ export { useOptionalTeamSelection } from './plugins/agents/useTeamSelection';
21
+ export type { TeamMember, TeamSelection } from './plugins/agents/team';
22
+ export { ChatViewPlugin, CHAT_VIEW_PLUGIN_NAME } from './plugins/chat-view';
23
+ export { NotebookViewPlugin, NOTEBOOK_VIEW_PLUGIN_NAME, } from './plugins/notebook-view';
24
+ export { DocumentViewPlugin, DOCUMENT_VIEW_PLUGIN_NAME, } from './plugins/document-view';
25
+ export { defineViewPlugin, type ViewPluginOptions, } from './plugins/view-switch';
26
+ export { defineAgentCapacityPlugin, type AgentCapacityOptions, } from './plugins/agent-capacity';
27
+ export { AgentCheckpointsPlugin, AGENT_CHECKPOINTS_PLUGIN_NAME, } from './plugins/agent-checkpoints';
28
+ export { AgentCodeSandboxPlugin, AGENT_CODE_SANDBOX_PLUGIN_NAME, } from './plugins/agent-code-sandbox';
29
+ export { AgentCodemodePlugin, AgentNoCodemodePlugin, AGENT_CODEMODE_PLUGIN_NAME, AGENT_NO_CODEMODE_PLUGIN_NAME, } from './plugins/agent-codemode';
30
+ export { AgentCompactionPlugin, AGENT_COMPACTION_PLUGIN_NAME, } from './plugins/agent-compaction';
31
+ export { AgentEvalsPlugin, AGENT_EVALS_PLUGIN_NAME, } from './plugins/agent-evals';
32
+ export { AgentGuardrailsPlugin, AGENT_GUARDRAILS_PLUGIN_NAME, } from './plugins/agent-guardrails';
33
+ export { AgentHooksPlugin, AGENT_HOOKS_PLUGIN_NAME, } from './plugins/agent-hooks';
34
+ export { AgentInferencePlugin, AGENT_INFERENCE_PLUGIN_NAME, } from './plugins/agent-inference';
35
+ export { AgentMcpPlugin, AGENT_MCP_PLUGIN_NAME } from './plugins/agent-mcp';
36
+ export { AgentMemoryPlugin, AGENT_MEMORY_PLUGIN_NAME, } from './plugins/agent-memory';
37
+ export { AgentMonitoringPlugin, AGENT_MONITORING_PLUGIN_NAME, } from './plugins/agent-monitoring';
38
+ export { AgentNotificationsPlugin, AGENT_NOTIFICATIONS_PLUGIN_NAME, } from './plugins/agent-notifications';
39
+ export { AgentOtelPlugin, AGENT_OTEL_PLUGIN_NAME } from './plugins/agent-otel';
40
+ export { AgentOutputsPlugin, AGENT_OUTPUTS_PLUGIN_NAME, } from './plugins/agent-outputs';
41
+ export { AgentParametersPlugin, AGENT_PARAMETERS_PLUGIN_NAME, } from './plugins/agent-parameters';
42
+ export { AgentSkillsPlugin, AGENT_SKILLS_PLUGIN_NAME, } from './plugins/agent-skills';
43
+ export { AgentSubagentsPlugin, AGENT_SUBAGENTS_PLUGIN_NAME, } from './plugins/agent-subagents';
44
+ export { AgentA2APlugin, AGENT_A2A_PLUGIN_NAME } from './plugins/agent-a2a';
45
+ export { CheckpointsSidebarPlugin, CHECKPOINTS_SIDEBAR_PLUGIN_NAME, CheckpointsSidebar, } from './plugins/checkpoints-sidebar';
46
+ export { A2ASidebarPlugin, A2ASidebar, A2A_SIDEBAR_PLUGIN_NAME, describeRemoteAgents, remoteStatusOf, type A2ARemoteAgentView, type A2ARemoteStatus, } from './plugins/a2a-sidebar';
47
+ export { AgentToolApprovalsPlugin, AGENT_TOOL_APPROVALS_PLUGIN_NAME, } from './plugins/agent-tool-approvals';
48
+ export { AgentTriggersPlugin, AGENT_TRIGGERS_PLUGIN_NAME, } from './plugins/agent-triggers';
49
+ export { SANDBOX_CAPACITIES, SandboxCapacityPlugins, } from './plugins/agent-code-sandboxes';
50
+ export { AgentA2uiPlugin, AGENT_A2UI_PLUGIN_NAME } from './plugins/agent-a2ui';
51
+ export { AgentA2uiJupyterOutputPlugin, AGENT_A2UI_JUPYTER_OUTPUT_PLUGIN_NAME, } from './plugins/agent-a2ui-jupyter-output';
52
+ export { defineA2uiScenePlugin, type A2uiSceneOptions, } from './plugins/a2ui-scene';
53
+ export { GraphViewPlugin, GRAPH_PLUGIN_NAME, GRAPH_VIEW_TYPE, } from './plugins/graph';
54
+ export { PluginsPanelPlugin, PLUGINS_PANEL_PLUGIN_NAME, PluginsPanel, } from './plugins/plugins-panel';
55
+ export { AGENTS_PLUGIN_NAME, AgentsPlugin, SandboxSelector, browserSource, createBrowserSandboxService, createServerSandboxService, createSwitchableSandboxService, suppliedSource, useOptionalSandboxService, useSandboxService, type AgentsConfig, type AgentsOutput, type SandboxExecution, type SandboxService, type SandboxTarget, type ServiceManagerSource, type SwitchableSandboxService, } from './plugins/agents';
56
+ export { DocumentPlugin, DOCUMENT_PLUGIN_NAME } from './plugins/document';
57
+ export { DocumentToolbarPlugin, DOCUMENT_TOOLBAR_PLUGIN_NAME, } from './plugins/document-toolbar';
58
+ export { ShellPlugin, EditorSelector, SHELL_PLUGIN_NAME, NONE_EDITOR, chooseEditor, EditorsPlugin, EDITORS_PLUGIN_NAME, type ShellPluginConfig, } from './plugins/shell';
59
+ export { ModelsPlugin, MODELS_PLUGIN_NAME } from './plugins/models';
60
+ export { NotebookPlugin, NOTEBOOK_PLUGIN_NAME } from './plugins/notebook';
61
+ export { NotebookToolbarPlugin, NOTEBOOK_TOOLBAR_PLUGIN_NAME, } from './plugins/notebook-toolbar';
62
+ export { WindowFrame, WindowFramePlugin, WINDOW_ACTIONS_SLOT, WINDOW_CONTROLS_SLOT, WINDOW_FRAME_PLUGIN_NAME, type WindowFrameProps, } from './plugins/window-frame';
63
+ export { LoopCommandsPlugin, COMMANDS_PLUGIN_NAME } from './plugins/commands';
64
+ export { PromptPlugin, PROMPT_PLUGIN_NAME } from './plugins/prompt';
65
+ export { LoopEmbed, type LoopEmbedProps } from './embed/LoopEmbed';
66
+ export { SubagentActivityPlugin, SubagentPulse, SUBAGENT_ACTIVITY_PLUGIN_NAME, } from './plugins/subagent-activity';
67
+ export { loopPlugins, type LoopPresetOptions } from './presets';
68
+ export { DocumentExtension, NotebookExtension } from './extensions';
@@ -0,0 +1,87 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * The LOOP workspace: contracts, shell, and the plugins that come with it.
7
+ *
8
+ * A host embeds the workspace through this surface — never by deep import — so
9
+ * what is public is a decision rather than an accident of file layout (§3.5).
10
+ *
11
+ * @module loop
12
+ */
13
+ // The contracts. A plugin depends on these and on the reactor, never on the shell.
14
+ export { LoopCommand, LoopDocumentToolbar, LoopMention, LoopNotebookToolbar, LoopSlots, LoopViewType, canOpenView, createPromptChannel, parseCommand, useLoopPromptStore, suggestLoopPrompt, focusPrompt, onPromptFocusRequest, } from './core';
15
+ export { useEditorToolbar } from './core/toolbar';
16
+ // The shell.
17
+ export { LoopWorkspace, PluginToggles, ViewSwitcher, WorkspaceFullScreenAction, buildLoopReactor, useWorkspaceFullScreen, } from './shell';
18
+ // The plugins that ship with it.
19
+ export { A2uiPlugin, A2UI_PLUGIN_NAME } from './plugins/a2ui';
20
+ export { AgentspecsPlugin, AGENTSPECS_PLUGIN_NAME } from './plugins/agentspecs';
21
+ export { ChatPlugin, CHAT_PLUGIN_NAME, } from './plugins/chat';
22
+ export { ChatHeaderPlugin, CHAT_HEADER_PLUGIN_NAME, } from './plugins/chat-header';
23
+ export { InputPromptPlugin, INPUT_PROMPT_PLUGIN_NAME, } from './plugins/input-prompt';
24
+ export { createChatExtrasPlugin, CHAT_EXTRAS_PLUGIN_NAME, } from './plugins/chat-extras';
25
+ // The live channels a host feeds the workspace through, and what it can
26
+ // read back: the chat extras, the opening notebook, and who the team is
27
+ // talking to. A page composing panels around a `LoopEmbed` needs all three.
28
+ export { LoopChatExtras, LoopChatLayout, LoopChatTurn, LoopOpeningDocument, LoopOpeningNotebook, LoopPromptPanel, } from './core';
29
+ export { LoopPageLayoutPlugin, LOOP_PAGE_LAYOUT_PLUGIN_NAME, openConversationPanel, pageLayoutSheet, pageLayoutPanelOpen, } from './plugins/page-layout';
30
+ export { useOptionalTeamSelection } from './plugins/agents/useTeamSelection';
31
+ export { ChatViewPlugin, CHAT_VIEW_PLUGIN_NAME } from './plugins/chat-view';
32
+ export { NotebookViewPlugin, NOTEBOOK_VIEW_PLUGIN_NAME, } from './plugins/notebook-view';
33
+ export { DocumentViewPlugin, DOCUMENT_VIEW_PLUGIN_NAME, } from './plugins/document-view';
34
+ export { defineViewPlugin, } from './plugins/view-switch';
35
+ export { defineAgentCapacityPlugin, } from './plugins/agent-capacity';
36
+ // The agent-capacity plugins: one folder per capacity, one line each.
37
+ export { AgentCheckpointsPlugin, AGENT_CHECKPOINTS_PLUGIN_NAME, } from './plugins/agent-checkpoints';
38
+ export { AgentCodeSandboxPlugin, AGENT_CODE_SANDBOX_PLUGIN_NAME, } from './plugins/agent-code-sandbox';
39
+ export { AgentCodemodePlugin, AgentNoCodemodePlugin, AGENT_CODEMODE_PLUGIN_NAME, AGENT_NO_CODEMODE_PLUGIN_NAME, } from './plugins/agent-codemode';
40
+ export { AgentCompactionPlugin, AGENT_COMPACTION_PLUGIN_NAME, } from './plugins/agent-compaction';
41
+ export { AgentEvalsPlugin, AGENT_EVALS_PLUGIN_NAME, } from './plugins/agent-evals';
42
+ export { AgentGuardrailsPlugin, AGENT_GUARDRAILS_PLUGIN_NAME, } from './plugins/agent-guardrails';
43
+ export { AgentHooksPlugin, AGENT_HOOKS_PLUGIN_NAME, } from './plugins/agent-hooks';
44
+ export { AgentInferencePlugin, AGENT_INFERENCE_PLUGIN_NAME, } from './plugins/agent-inference';
45
+ export { AgentMcpPlugin, AGENT_MCP_PLUGIN_NAME } from './plugins/agent-mcp';
46
+ export { AgentMemoryPlugin, AGENT_MEMORY_PLUGIN_NAME, } from './plugins/agent-memory';
47
+ export { AgentMonitoringPlugin, AGENT_MONITORING_PLUGIN_NAME, } from './plugins/agent-monitoring';
48
+ export { AgentNotificationsPlugin, AGENT_NOTIFICATIONS_PLUGIN_NAME, } from './plugins/agent-notifications';
49
+ export { AgentOtelPlugin, AGENT_OTEL_PLUGIN_NAME } from './plugins/agent-otel';
50
+ export { AgentOutputsPlugin, AGENT_OUTPUTS_PLUGIN_NAME, } from './plugins/agent-outputs';
51
+ export { AgentParametersPlugin, AGENT_PARAMETERS_PLUGIN_NAME, } from './plugins/agent-parameters';
52
+ export { AgentSkillsPlugin, AGENT_SKILLS_PLUGIN_NAME, } from './plugins/agent-skills';
53
+ export { AgentSubagentsPlugin, AGENT_SUBAGENTS_PLUGIN_NAME, } from './plugins/agent-subagents';
54
+ export { AgentA2APlugin, AGENT_A2A_PLUGIN_NAME } from './plugins/agent-a2a';
55
+ export { CheckpointsSidebarPlugin, CHECKPOINTS_SIDEBAR_PLUGIN_NAME, CheckpointsSidebar, } from './plugins/checkpoints-sidebar';
56
+ export { A2ASidebarPlugin, A2ASidebar, A2A_SIDEBAR_PLUGIN_NAME, describeRemoteAgents, remoteStatusOf, } from './plugins/a2a-sidebar';
57
+ export { AgentToolApprovalsPlugin, AGENT_TOOL_APPROVALS_PLUGIN_NAME, } from './plugins/agent-tool-approvals';
58
+ export { AgentTriggersPlugin, AGENT_TRIGGERS_PLUGIN_NAME, } from './plugins/agent-triggers';
59
+ export { SANDBOX_CAPACITIES, SandboxCapacityPlugins, } from './plugins/agent-code-sandboxes';
60
+ export { AgentA2uiPlugin, AGENT_A2UI_PLUGIN_NAME } from './plugins/agent-a2ui';
61
+ export { AgentA2uiJupyterOutputPlugin, AGENT_A2UI_JUPYTER_OUTPUT_PLUGIN_NAME, } from './plugins/agent-a2ui-jupyter-output';
62
+ export { defineA2uiScenePlugin, } from './plugins/a2ui-scene';
63
+ export { GraphViewPlugin, GRAPH_PLUGIN_NAME, GRAPH_VIEW_TYPE, } from './plugins/graph';
64
+ export { PluginsPanelPlugin, PLUGINS_PANEL_PLUGIN_NAME, PluginsPanel, } from './plugins/plugins-panel';
65
+ export { AGENTS_PLUGIN_NAME, AgentsPlugin, SandboxSelector, browserSource, createBrowserSandboxService, createServerSandboxService, createSwitchableSandboxService, suppliedSource, useOptionalSandboxService, useSandboxService, } from './plugins/agents';
66
+ export { DocumentPlugin, DOCUMENT_PLUGIN_NAME } from './plugins/document';
67
+ export { DocumentToolbarPlugin, DOCUMENT_TOOLBAR_PLUGIN_NAME, } from './plugins/document-toolbar';
68
+ export { ShellPlugin, EditorSelector, SHELL_PLUGIN_NAME, NONE_EDITOR, chooseEditor,
69
+ // The names this plugin outgrew, kept so nothing breaks in the same step.
70
+ EditorsPlugin, EDITORS_PLUGIN_NAME, } from './plugins/shell';
71
+ export { ModelsPlugin, MODELS_PLUGIN_NAME } from './plugins/models';
72
+ export { NotebookPlugin, NOTEBOOK_PLUGIN_NAME } from './plugins/notebook';
73
+ export { NotebookToolbarPlugin, NOTEBOOK_TOOLBAR_PLUGIN_NAME, } from './plugins/notebook-toolbar';
74
+ // The window a page puts around Loop, and the slots that make its title bar
75
+ // extensible.
76
+ export { WindowFrame, WindowFramePlugin, WINDOW_ACTIONS_SLOT, WINDOW_CONTROLS_SLOT, WINDOW_FRAME_PLUGIN_NAME, } from './plugins/window-frame';
77
+ export { LoopCommandsPlugin, COMMANDS_PLUGIN_NAME } from './plugins/commands';
78
+ export { PromptPlugin, PROMPT_PLUGIN_NAME } from './plugins/prompt';
79
+ // Loop, ready to drop into somebody else's page.
80
+ export { LoopEmbed } from './embed/LoopEmbed';
81
+ export { SubagentActivityPlugin, SubagentPulse, SUBAGENT_ACTIVITY_PLUGIN_NAME, } from './plugins/subagent-activity';
82
+ // The set a workspace normally has, so a host starts from a working Loop
83
+ // rather than assembling one — and never from the example.
84
+ export { loopPlugins } from './presets';
85
+ // The extensions that group them, for hosts that would rather install a
86
+ // capability than assemble one.
87
+ export { DocumentExtension, NotebookExtension } from './extensions';
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The A2A sidebar: the agents the chat's agent reaches over A2A, what each
3
+ * is doing, and the run under way — the same boxed live run the chat shows
4
+ * under the delegation's tool card, kept in view here while the chat scrolls.
5
+ *
6
+ * What it knows comes from two places. The agentspec behind the workspace's
7
+ * agent blueprint declares the subagents with an `a2a` target; the runtime
8
+ * store holds the `agent.subagent` events, and the ones marked
9
+ * `transport: 'a2a'` say where each agent was launched, its card, its task
10
+ * and how far it has got.
11
+ *
12
+ * @module loop/plugins/a2a-sidebar/A2ASidebar
13
+ */
14
+ import React from 'react';
15
+ import { type LoopWorkspaceContext } from '../../core';
16
+ import { type AgentStreamSubagentPayload } from '../../../types/stream';
17
+ import type { SubAgentspecConfig } from '../../../types/agentspecs';
18
+ /** Fixed height (px) of the live run box. */
19
+ export declare const A2A_ACTIVE_PANEL_HEIGHT = 280;
20
+ export type A2ARemoteStatus = 'idle' | 'launching' | 'working' | 'done' | 'stopped' | 'failed';
21
+ /** One A2A agent as the sidebar shows it. */
22
+ export interface A2ARemoteAgentView {
23
+ name: string;
24
+ description?: string;
25
+ /** The agentspec it is launched from, as `<id>:<version>`. */
26
+ ref?: string;
27
+ /** `local`, `cloud`, `remote`, or the `auto` not yet decided. */
28
+ launch?: string;
29
+ url?: string;
30
+ taskId?: string | null;
31
+ card?: AgentStreamSubagentPayload['agentCard'];
32
+ runtimeUid?: string;
33
+ status: A2ARemoteStatus;
34
+ }
35
+ type Activity = Record<string, readonly AgentStreamSubagentPayload[]>;
36
+ /** Where a remote run stands, from its events. */
37
+ export declare function remoteStatusOf(events: readonly AgentStreamSubagentPayload[] | undefined): A2ARemoteStatus;
38
+ /**
39
+ * The A2A agents to show: the ones the spec declares, each with what its
40
+ * latest run said about it, plus any the events name that the spec did not.
41
+ */
42
+ export declare function describeRemoteAgents(declared: readonly SubAgentspecConfig[], activity: Activity): A2ARemoteAgentView[];
43
+ export interface A2ASidebarProps {
44
+ /** Forwarded by the shell; unused, the sidebar reads the stores. */
45
+ workspace?: LoopWorkspaceContext;
46
+ }
47
+ export declare function A2ASidebar(_props: A2ASidebarProps): React.ReactElement;
48
+ export default A2ASidebar;
@@ -0,0 +1,190 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * The A2A sidebar: the agents the chat's agent reaches over A2A, what each
8
+ * is doing, and the run under way — the same boxed live run the chat shows
9
+ * under the delegation's tool card, kept in view here while the chat scrolls.
10
+ *
11
+ * What it knows comes from two places. The agentspec behind the workspace's
12
+ * agent blueprint declares the subagents with an `a2a` target; the runtime
13
+ * store holds the `agent.subagent` events, and the ones marked
14
+ * `transport: 'a2a'` say where each agent was launched, its card, its task
15
+ * and how far it has got.
16
+ *
17
+ * @module loop/plugins/a2a-sidebar/A2ASidebar
18
+ */
19
+ import { useMemo, useState } from 'react';
20
+ import { Heading, Label, Link, Text, Timeline } from '@primer/react';
21
+ import { AlertIcon, BroadcastIcon, CheckCircleIcon, CloudIcon, DependabotIcon, DeviceDesktopIcon, } from '@primer/octicons-react';
22
+ import { Box } from '@datalayer/primer-addons';
23
+ import { useContributions } from '@datalayer/reactor/react';
24
+ import { LoopAgentBlueprint } from '../../core';
25
+ import { getAgentspecs } from '../../../specs/agents';
26
+ import { SubagentChatPanel } from '../../../chat/messages/ChatMessageList';
27
+ import { A2AAgentDialog } from '../../../chat/tools/A2AAgentDialog';
28
+ import { useAgentRuntimeActiveSubagentToolCallId, useAgentRuntimeStore, } from '../../../stores/agentRuntimeStore';
29
+ import { SUBAGENT_STOPPED, } from '../../../types/stream';
30
+ /** Fixed height (px) of the live run box. */
31
+ export const A2A_ACTIVE_PANEL_HEIGHT = 280;
32
+ /** Where a remote run stands, from its events. */
33
+ export function remoteStatusOf(events) {
34
+ if (!events || events.length === 0)
35
+ return 'idle';
36
+ if (events.some(event => event.phase === 'error')) {
37
+ return events.some(event => event.phase === 'error' && event.error === SUBAGENT_STOPPED)
38
+ ? 'stopped'
39
+ : 'failed';
40
+ }
41
+ if (events.some(event => event.phase === 'end'))
42
+ return 'done';
43
+ let state;
44
+ for (const event of events) {
45
+ if (event.phase === 'status' && event.state)
46
+ state = event.state;
47
+ }
48
+ return state === 'launching' ? 'launching' : 'working';
49
+ }
50
+ /**
51
+ * The A2A agents to show: the ones the spec declares, each with what its
52
+ * latest run said about it, plus any the events name that the spec did not.
53
+ */
54
+ export function describeRemoteAgents(declared, activity) {
55
+ const views = declared
56
+ .filter(subagent => subagent.a2a)
57
+ .map(subagent => ({
58
+ name: subagent.name,
59
+ description: subagent.description,
60
+ ref: subagent.ref,
61
+ launch: subagent.a2a?.launch ?? 'auto',
62
+ url: subagent.a2a?.url,
63
+ status: 'idle',
64
+ }));
65
+ // Runs are keyed by tool call; the ones over A2A, in the order they were
66
+ // opened, so the last run seen for a name is the latest.
67
+ for (const events of Object.values(activity)) {
68
+ const first = events[0];
69
+ if (!first || !events.some(event => event.transport === 'a2a'))
70
+ continue;
71
+ let view = views.find(entry => entry.name === first.subagentName);
72
+ if (!view) {
73
+ view = { name: first.subagentName, status: 'idle' };
74
+ views.push(view);
75
+ }
76
+ view.status = remoteStatusOf(events);
77
+ for (const event of events) {
78
+ if (event.url)
79
+ view.url = event.url;
80
+ if (event.launch && event.launch !== 'auto')
81
+ view.launch = event.launch;
82
+ if (event.taskId)
83
+ view.taskId = event.taskId;
84
+ if (event.agentCard)
85
+ view.card = event.agentCard;
86
+ if (event.runtimeUid)
87
+ view.runtimeUid = event.runtimeUid;
88
+ }
89
+ }
90
+ return views;
91
+ }
92
+ const STATUS_LABEL = {
93
+ idle: { text: 'idle', variant: 'secondary' },
94
+ launching: { text: 'launching', variant: 'accent' },
95
+ working: { text: 'working', variant: 'accent' },
96
+ done: { text: 'done', variant: 'success' },
97
+ stopped: { text: 'stopped', variant: 'attention' },
98
+ failed: { text: 'failed', variant: 'danger' },
99
+ };
100
+ function StatusBadge({ status, }) {
101
+ switch (status) {
102
+ case 'done':
103
+ return (_jsx(Box, { sx: { color: 'success.fg', display: 'flex' }, children: _jsx(CheckCircleIcon, {}) }));
104
+ case 'stopped':
105
+ return (_jsx(Box, { sx: { color: 'attention.fg', display: 'flex' }, children: _jsx(AlertIcon, {}) }));
106
+ case 'failed':
107
+ return (_jsx(Box, { sx: { color: 'danger.fg', display: 'flex' }, children: _jsx(AlertIcon, {}) }));
108
+ case 'launching':
109
+ case 'working':
110
+ return (_jsx(Box, { sx: { color: 'accent.fg', display: 'flex' }, children: _jsx(DependabotIcon, {}) }));
111
+ default:
112
+ return _jsx(BroadcastIcon, {});
113
+ }
114
+ }
115
+ function LaunchChip({ launch, }) {
116
+ if (!launch)
117
+ return null;
118
+ const Icon = launch === 'cloud'
119
+ ? CloudIcon
120
+ : launch === 'local'
121
+ ? DeviceDesktopIcon
122
+ : BroadcastIcon;
123
+ return (_jsxs(Box, { sx: {
124
+ display: 'inline-flex',
125
+ alignItems: 'center',
126
+ gap: 1,
127
+ fontSize: 0,
128
+ color: 'fg.muted',
129
+ }, children: [_jsx(Icon, { size: 12 }), _jsx(Text, { sx: { fontSize: 0 }, children: launch })] }));
130
+ }
131
+ function SectionHeading({ children }) {
132
+ return (_jsx(Heading, { as: "h4", sx: { fontSize: 1, mb: 2 }, children: children }));
133
+ }
134
+ export function A2ASidebar(_props) {
135
+ const blueprints = useContributions(LoopAgentBlueprint);
136
+ const specId = blueprints[0]?.value.specId;
137
+ const declared = useMemo(() => (specId ? (getAgentspecs(specId)?.subagents?.subagents ?? []) : []), [specId]);
138
+ const activity = useAgentRuntimeStore(state => state.subagentActivity);
139
+ const agents = useMemo(() => describeRemoteAgents(declared, activity), [declared, activity]);
140
+ const activeKey = useAgentRuntimeActiveSubagentToolCallId();
141
+ // The agent whose details are open over the workspace, if any.
142
+ const [shown, setShown] = useState(null);
143
+ const activeOverA2A = activeKey !== null &&
144
+ (activity[activeKey] ?? []).some(event => event.transport === 'a2a');
145
+ return (_jsxs(Box, { "data-a2a-sidebar": true, sx: { display: 'flex', flexDirection: 'column', gap: 4 }, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 2 }, children: [_jsx(BroadcastIcon, { size: 16 }), _jsx(Heading, { as: "h3", sx: { fontSize: 2, m: 0, flex: 1 }, children: "A2A agents" }), _jsx(Label, { variant: "accent", children: agents.length })] }), _jsxs(Box, { children: [_jsx(SectionHeading, { children: "Running now" }), activeKey && activeOverA2A ? (_jsx(SubagentChatPanel, { toolCallId: activeKey, height: A2A_ACTIVE_PANEL_HEIGHT })) : (_jsx(Box, { "data-a2a-sidebar-idle": true, sx: {
146
+ height: A2A_ACTIVE_PANEL_HEIGHT,
147
+ display: 'flex',
148
+ alignItems: 'center',
149
+ justifyContent: 'center',
150
+ border: '1px solid',
151
+ borderColor: 'border.muted',
152
+ borderRadius: 2,
153
+ bg: 'canvas.default',
154
+ }, children: _jsx(Text, { sx: { fontSize: 0, color: 'fg.muted', m: 0 }, children: "No A2A agent running" }) }))] }), _jsxs(Box, { children: [_jsx(SectionHeading, { children: "Remote agents" }), agents.length === 0 ? (_jsx(Text, { as: "p", sx: { fontSize: 0, color: 'fg.muted', m: 0 }, children: "This agent declares no A2A agents." })) : (_jsx(Timeline, { children: agents.map(agent => {
155
+ const status = STATUS_LABEL[agent.status];
156
+ return (_jsxs(Timeline.Item, { "data-a2a-agent": agent.name, children: [_jsx(Timeline.Badge, { children: _jsx(StatusBadge, { status: agent.status }) }), _jsxs(Timeline.Body, { children: [_jsxs(Box, { sx: {
157
+ display: 'flex',
158
+ alignItems: 'center',
159
+ gap: 2,
160
+ mb: 1,
161
+ flexWrap: 'wrap',
162
+ }, children: [_jsx(Text, { sx: { fontWeight: 'bold', fontSize: 1 }, children: agent.name }), _jsx(Label, { variant: status.variant, size: "small", children: status.text }), _jsx(LaunchChip, { launch: agent.launch })] }), agent.description ? (_jsx(Text, { as: "p", sx: { fontSize: 0, color: 'fg.muted', mt: 0, mb: 1 }, children: agent.description })) : null, _jsxs(Box, { sx: {
163
+ display: 'flex',
164
+ flexDirection: 'column',
165
+ gap: '2px',
166
+ fontSize: 0,
167
+ color: 'fg.muted',
168
+ }, children: [agent.card?.name ? (_jsxs(Text, { sx: { fontSize: 0 }, children: ["Card: ", agent.card.name, agent.card.version ? ` v${agent.card.version}` : ''] })) : agent.ref ? (_jsx(Text, { sx: { fontSize: 0, fontFamily: 'mono' }, children: agent.ref })) : null, agent.url ? (_jsx(Link, { as: "button", type: "button", "data-a2a-card-button": agent.name, onClick: () => setShown(agent), sx: {
169
+ fontSize: 0,
170
+ fontFamily: 'mono',
171
+ overflow: 'hidden',
172
+ textOverflow: 'ellipsis',
173
+ whiteSpace: 'nowrap',
174
+ display: 'block',
175
+ maxWidth: '100%',
176
+ textAlign: 'left',
177
+ }, title: `${agent.url} — open the agent's details`, children: agent.url })) : null, agent.taskId ? (_jsxs(Text, { sx: { fontSize: 0, fontFamily: 'mono' }, children: ["task ", agent.taskId] })) : null, agent.runtimeUid ? (_jsxs(Text, { sx: { fontSize: 0, fontFamily: 'mono' }, children: ["runtime ", agent.runtimeUid] })) : null] })] })] }, agent.name));
178
+ }) }))] }), shown ? (_jsx(A2AAgentDialog, { details: {
179
+ name: shown.name,
180
+ url: shown.url,
181
+ launch: shown.launch,
182
+ state: shown.status,
183
+ taskId: shown.taskId,
184
+ runtimeUid: shown.runtimeUid,
185
+ card: shown.card,
186
+ ref: shown.ref,
187
+ description: shown.description,
188
+ }, onClose: () => setShown(null) })) : null, _jsxs(Box, { children: [_jsx(SectionHeading, { children: "How it works" }), _jsxs(Text, { as: "p", sx: { fontSize: 0, color: 'fg.muted', mb: 2 }, children: ["The orchestrator delegates with ", _jsx("code", { children: "delegate_task" }), ", as with in-process subagents \u2014 but each of these agents is a separate agent spoken to over the A2A protocol. On the first delegation it is launched from its agentspec: beside the orchestrator on the local server, or on a Datalayer runtime when the orchestrator runs in the cloud."] }), _jsxs(Text, { as: "p", sx: { fontSize: 0, color: 'fg.muted', mb: 0 }, children: ["The remote run streams back over ", _jsx("code", { children: "message/stream" }), ": its text, its tool calls and results, and the task's states, shown here and in the chat as the run goes."] })] })] }));
189
+ }
190
+ export default A2ASidebar;
@@ -0,0 +1,5 @@
1
+ import type { ReactorReactOutput } from '@datalayer/reactor/react';
2
+ export declare const A2A_SIDEBAR_PLUGIN_NAME = "@datalayer/loop-plugin-a2a-sidebar";
3
+ export declare const A2ASidebarPlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, ReactorReactOutput>;
4
+ export { A2ASidebar, describeRemoteAgents, remoteStatusOf, type A2ARemoteAgentView, type A2ARemoteStatus, } from './A2ASidebar';
5
+ export default A2ASidebarPlugin;
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2025-2026 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /**
7
+ * `@datalayer/loop-plugin-a2a-sidebar` — the agents reached over A2A, at the
8
+ * side of the workspace.
9
+ *
10
+ * The chat boxes a delegated run under its tool card; this keeps the same box
11
+ * in view while the chat scrolls, and lists every A2A agent the chat's agent
12
+ * can reach with where it runs, its card, and what it is doing.
13
+ *
14
+ * @module loop/plugins/a2a-sidebar
15
+ */
16
+ import { definePlugin } from '@datalayer/reactor';
17
+ import { LoopSlots } from '../../core';
18
+ import { A2ASidebar } from './A2ASidebar';
19
+ export const A2A_SIDEBAR_PLUGIN_NAME = '@datalayer/loop-plugin-a2a-sidebar';
20
+ export const A2ASidebarPlugin = definePlugin({
21
+ name: A2A_SIDEBAR_PLUGIN_NAME,
22
+ displayName: 'A2A sidebar',
23
+ description: 'The agents reached over A2A, and the run under way.',
24
+ octicon: 'broadcast',
25
+ emoji: '\u{1F4E1}',
26
+ build: () => ({
27
+ components: [
28
+ {
29
+ id: 'a2a-sidebar',
30
+ slot: LoopSlots.sidebar,
31
+ // Part of the work, so above the plugins panel (900).
32
+ order: 100,
33
+ Component: ({ workspace }) => (_jsx(A2ASidebar, { workspace: workspace })),
34
+ },
35
+ ],
36
+ }),
37
+ });
38
+ export { A2ASidebar, describeRemoteAgents, remoteStatusOf, } from './A2ASidebar';
39
+ export default A2ASidebarPlugin;