@datalayer/agent-runtimes 1.0.28 → 1.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) 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 +18 -5
  20. package/lib/api/notifications.d.ts +21 -6
  21. package/lib/api/notifications.js +32 -14
  22. package/lib/api/runtimes/environments.d.ts +385 -4
  23. package/lib/api/runtimes/environments.js +610 -9
  24. package/lib/api/runtimes/runtimes.d.ts +19 -19
  25. package/lib/api/runtimes/runtimes.js +47 -46
  26. package/lib/api/spacer/notebooks.js +1 -1
  27. package/lib/chat/Chat.d.ts +16 -4
  28. package/lib/chat/Chat.js +18 -5
  29. package/lib/chat/ChatFloating.d.ts +13 -2
  30. package/lib/chat/ChatFloating.js +192 -117
  31. package/lib/chat/ChatInline.d.ts +15 -0
  32. package/lib/chat/ChatInline.js +0 -18
  33. package/lib/chat/ChatPopupStandalone.d.ts +1 -1
  34. package/lib/chat/ChatSidebar.d.ts +14 -2
  35. package/lib/chat/ChatSidebar.js +1 -1
  36. package/lib/chat/ChatStandalone.d.ts +1 -1
  37. package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
  38. package/lib/chat/EphemeralSurfaceControl.js +55 -0
  39. package/lib/chat/base/ChatAvailability.d.ts +34 -0
  40. package/lib/chat/base/ChatAvailability.js +18 -0
  41. package/lib/chat/base/ChatBase.d.ts +2 -1
  42. package/lib/chat/base/ChatBase.js +657 -28
  43. package/lib/chat/display/EmptyState.d.ts +15 -1
  44. package/lib/chat/display/EmptyState.js +78 -12
  45. package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
  46. package/lib/chat/display/PoweredByTag.d.ts +1 -1
  47. package/lib/chat/display/groupSuggestions.d.ts +21 -0
  48. package/lib/chat/display/groupSuggestions.js +18 -0
  49. package/lib/chat/document/EphemeralDocument.d.ts +70 -6
  50. package/lib/chat/document/EphemeralDocument.js +154 -52
  51. package/lib/chat/header/ChatHeader.d.ts +1 -1
  52. package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
  53. package/lib/chat/header/ChatHeaderBase.js +67 -96
  54. package/lib/chat/index.d.ts +4 -1
  55. package/lib/chat/index.js +8 -1
  56. package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
  57. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
  58. package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
  59. package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
  60. package/lib/chat/messages/ChatMessageList.d.ts +22 -1
  61. package/lib/chat/messages/ChatMessageList.js +370 -166
  62. package/lib/chat/messages/ChatMessages.d.ts +1 -1
  63. package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
  64. package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
  65. package/lib/chat/messages/TurnFooter.d.ts +42 -0
  66. package/lib/chat/messages/TurnFooter.js +75 -0
  67. package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
  68. package/lib/chat/messages/assistantMarkdown.js +56 -0
  69. package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
  70. package/lib/chat/notebook/EphemeralNotebook.js +194 -61
  71. package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
  72. package/lib/chat/parts/MessagePart.d.ts +1 -1
  73. package/lib/chat/parts/ReasoningPart.d.ts +8 -1
  74. package/lib/chat/parts/TextPart.d.ts +1 -1
  75. package/lib/chat/parts/ToolPart.d.ts +8 -1
  76. package/lib/chat/prompt/FloatingCard.d.ts +26 -0
  77. package/lib/chat/prompt/FloatingCard.js +80 -0
  78. package/lib/chat/prompt/InputPrompt.d.ts +206 -53
  79. package/lib/chat/prompt/InputPrompt.js +161 -80
  80. package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
  81. package/lib/chat/prompt/InputPromptBase.js +225 -0
  82. package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
  83. package/lib/chat/prompt/InputPromptLexical.js +227 -30
  84. package/lib/chat/prompt/InputPromptText.d.ts +10 -2
  85. package/lib/chat/prompt/InputPromptText.js +35 -3
  86. package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
  87. package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
  88. package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
  89. package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
  90. package/lib/chat/prompt/footer/index.d.ts +7 -0
  91. package/lib/chat/prompt/footer/index.js +11 -0
  92. package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
  93. package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
  94. package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
  95. package/lib/chat/prompt/header/InPromptHeader.js +14 -0
  96. package/lib/chat/prompt/header/index.d.ts +7 -0
  97. package/lib/chat/prompt/header/index.js +11 -0
  98. package/lib/chat/prompt/index.d.ts +8 -4
  99. package/lib/chat/prompt/index.js +15 -3
  100. package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
  101. package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
  102. package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
  103. package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
  104. package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
  105. package/lib/chat/prompt/menus/ModelSelector.js +27 -0
  106. package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
  107. package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
  108. package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
  109. package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
  110. package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
  111. package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
  112. package/lib/chat/prompt/menus/index.d.ts +15 -0
  113. package/lib/chat/prompt/menus/index.js +19 -0
  114. package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
  115. package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
  116. package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
  117. package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
  118. package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
  119. package/lib/chat/prompt/plugins/MentionChip.js +24 -0
  120. package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
  121. package/lib/chat/prompt/plugins/MentionNode.js +77 -0
  122. package/lib/chat/prompt/promptHistory.d.ts +52 -0
  123. package/lib/chat/prompt/promptHistory.js +123 -0
  124. package/lib/chat/prompt/stack.d.ts +81 -0
  125. package/lib/chat/prompt/stack.js +41 -0
  126. package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
  127. package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
  128. package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
  129. package/lib/chat/tools/A2AAgentDialog.js +265 -0
  130. package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
  131. package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
  132. package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
  133. package/lib/chat/tools/index.d.ts +1 -0
  134. package/lib/chat/tools/index.js +1 -0
  135. package/lib/chat/usage/ContextPie.d.ts +17 -0
  136. package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
  137. package/lib/chat/useViewportDrag.d.ts +11 -0
  138. package/lib/chat/useViewportDrag.js +61 -0
  139. package/lib/chat/viewModes.d.ts +51 -0
  140. package/lib/chat/viewModes.js +57 -0
  141. package/lib/client/AgentRuntimesClient.d.ts +10 -9
  142. package/lib/client/AgentRuntimesClient.js +1 -1
  143. package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
  144. package/lib/client/AgentsMixin.d.ts +12 -12
  145. package/lib/client/AgentsMixin.js +31 -31
  146. package/lib/client/IAgentRuntimesClient.d.ts +10 -10
  147. package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
  148. package/lib/client/SdkAgentRuntimesClient.js +10 -10
  149. package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
  150. package/lib/client/mixins/RuntimesMixin.js +54 -21
  151. package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
  152. package/lib/components/agents/AgentSummary.d.ts +13 -0
  153. package/lib/components/agents/AgentSummary.js +21 -4
  154. package/lib/components/cards/NotificationEventCard.d.ts +1 -1
  155. package/lib/components/cards/OutputCard.d.ts +1 -1
  156. package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
  157. package/lib/components/cards/ToolApprovalCard.js +1 -0
  158. package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
  159. package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
  160. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
  161. package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
  162. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +76 -0
  163. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +81 -0
  164. package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +12 -0
  165. package/lib/components/code-sandboxes/CodeSandboxLauncher.js +132 -25
  166. package/lib/components/code-sandboxes/CodeSandboxNames.js +75 -29
  167. package/lib/components/code-sandboxes/CodeSandboxPicker.d.ts +14 -1
  168. package/lib/components/code-sandboxes/CodeSandboxPicker.js +226 -45
  169. package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
  170. package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
  171. package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
  172. package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
  173. package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
  174. package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +16 -1
  175. package/lib/components/code-sandboxes/CodeSandboxUtils.js +69 -12
  176. package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
  177. package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
  178. package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
  179. package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
  180. package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
  181. package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
  182. package/lib/components/code-sandboxes/codeSandboxProviders.d.ts +29 -0
  183. package/lib/components/code-sandboxes/codeSandboxProviders.js +90 -0
  184. package/lib/components/code-sandboxes/index.d.ts +3 -0
  185. package/lib/components/code-sandboxes/index.js +3 -0
  186. package/lib/components/context/SpaceSelect.d.ts +1 -1
  187. package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
  188. package/lib/components/icons/ArtifactIcon.d.ts +1 -0
  189. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  190. package/lib/components/progress/CreditsIndicator.d.ts +1 -0
  191. package/lib/components/progress/CreditsIndicator.js +0 -4
  192. package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
  193. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
  194. package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
  195. package/lib/components/snippets/SnippetDialog.d.ts +1 -0
  196. package/lib/components/snippets/SnippetDialog.js +0 -4
  197. package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
  198. package/lib/components/specs/SpecPayloadPreview.js +102 -0
  199. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  200. package/lib/context/ContextDistribution.d.ts +1 -1
  201. package/lib/context/ContextInspector.d.ts +2 -1
  202. package/lib/context/ContextPanel.d.ts +1 -1
  203. package/lib/context/ContextUsage.d.ts +1 -1
  204. package/lib/context/CostTracker.d.ts +1 -1
  205. package/lib/context/CostUsageChart.d.ts +1 -1
  206. package/lib/context/CostUsageChart.js +4 -4
  207. package/lib/context/MessageHistory.d.ts +3 -2
  208. package/lib/context/TokenUsageChart.d.ts +1 -1
  209. package/lib/context/TokenUsageChart.js +4 -4
  210. package/lib/examples/A2UiAgentExample.js +15 -6
  211. package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
  212. package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
  213. package/lib/examples/A2UiContactCardExample.d.ts +10 -0
  214. package/lib/examples/A2UiContactCardExample.js +23 -170
  215. package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
  216. package/lib/examples/A2UiJupyterOutputExample.js +792 -0
  217. package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
  218. package/lib/examples/A2UiRestaurantExample.js +24 -179
  219. package/lib/examples/A2UiViewerExample.d.ts +10 -0
  220. package/lib/examples/A2UiViewerExample.js +24 -378
  221. package/lib/examples/AgUiAgenticExample.js +2 -4
  222. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
  223. package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
  224. package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
  225. package/lib/examples/AgUiSharedStateExample.js +2 -4
  226. package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
  227. package/lib/examples/AgentA2AExample.d.ts +17 -0
  228. package/lib/examples/AgentA2AExample.js +56 -0
  229. package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
  230. package/lib/examples/AgentCheckpointsExample.js +72 -54
  231. package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
  232. package/lib/examples/AgentCodeSandboxExample.js +93 -303
  233. package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
  234. package/lib/examples/AgentCodeSandboxesExample.js +56 -162
  235. package/lib/examples/AgentCodemodeExample.d.ts +7 -2
  236. package/lib/examples/AgentCodemodeExample.js +60 -125
  237. package/lib/examples/AgentCompactionExample.js +19 -135
  238. package/lib/examples/AgentEvalsExample.js +34 -66
  239. package/lib/examples/AgentGuardrailsExample.js +64 -112
  240. package/lib/examples/AgentHooksExample.d.ts +11 -0
  241. package/lib/examples/AgentHooksExample.js +30 -67
  242. package/lib/examples/AgentInferenceProviderExample.js +8 -32
  243. package/lib/examples/AgentLoopExample.d.ts +4 -2
  244. package/lib/examples/AgentLoopExample.js +45 -93
  245. package/lib/examples/AgentMCPExample.js +30 -79
  246. package/lib/examples/AgentMemoryExample.js +21 -64
  247. package/lib/examples/AgentMonitoringExample.js +33 -94
  248. package/lib/examples/AgentNotificationsExample.js +56 -95
  249. package/lib/examples/AgentOtelExample.js +35 -88
  250. package/lib/examples/AgentOutputsExample.d.ts +2 -1
  251. package/lib/examples/AgentOutputsExample.js +16 -137
  252. package/lib/examples/AgentParametersExample.js +7 -17
  253. package/lib/examples/AgentSkillsExample.js +40 -154
  254. package/lib/examples/AgentSubagentsExample.d.ts +7 -6
  255. package/lib/examples/AgentSubagentsExample.js +80 -191
  256. package/lib/examples/AgentToolApprovalsExample.js +35 -91
  257. package/lib/examples/AgentTriggersExample.js +43 -59
  258. package/lib/examples/AgentspecsExample.js +7 -7
  259. package/lib/examples/CellExample.d.ts +1 -1
  260. package/lib/examples/ChatExample.d.ts +12 -5
  261. package/lib/examples/ChatExample.js +38 -13
  262. package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
  263. package/lib/examples/CopilotKitLexicalExample.js +4 -41
  264. package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
  265. package/lib/examples/CopilotKitNotebookExample.js +2 -14
  266. package/lib/examples/DecksAgent.d.ts +21 -0
  267. package/lib/examples/DecksAgent.js +23 -0
  268. package/lib/examples/DocumentPageAgent.d.ts +19 -0
  269. package/lib/examples/DocumentPageAgent.js +15 -0
  270. package/lib/examples/Lexical2Example.d.ts +2 -2
  271. package/lib/examples/Lexical2Example.js +17 -38
  272. package/lib/examples/LexicalAgentExample.d.ts +2 -1
  273. package/lib/examples/LexicalAgentExample.js +29 -102
  274. package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
  275. package/lib/examples/LexicalAgentSidebarExample.js +99 -131
  276. package/lib/examples/LoopShellExample.d.ts +38 -0
  277. package/lib/examples/LoopShellExample.js +68 -0
  278. package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
  279. package/lib/examples/LoopWorkspaceEmbed.js +73 -0
  280. package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
  281. package/lib/examples/LoopWorkspaceExample.js +151 -0
  282. package/lib/examples/NotebookAgentExample.d.ts +13 -0
  283. package/lib/examples/NotebookAgentExample.js +36 -86
  284. package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
  285. package/lib/examples/NotebookAgentSidebarExample.js +39 -83
  286. package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
  287. package/lib/examples/NotebookCollaborationExample.js +108 -20
  288. package/lib/examples/NotebookExample.d.ts +1 -1
  289. package/lib/examples/NotebookExample.js +20 -10
  290. package/lib/examples/NotebookPageAgent.d.ts +23 -0
  291. package/lib/examples/NotebookPageAgent.js +17 -0
  292. package/lib/examples/components/ExampleWrapper.d.ts +5 -0
  293. package/lib/examples/components/ExampleWrapper.js +36 -28
  294. package/lib/examples/components/LexicalEditor.d.ts +1 -1
  295. package/lib/examples/components/LexicalEditor.js +4 -24
  296. package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
  297. package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
  298. package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
  299. package/lib/examples/example-selector.js +26 -6
  300. package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
  301. package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
  302. package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
  303. package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
  304. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
  305. package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
  306. package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
  307. package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
  308. package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
  309. package/lib/examples/index.d.ts +4 -0
  310. package/lib/examples/index.js +6 -0
  311. package/lib/examples/lexical/editorConfig.d.ts +2 -75
  312. package/lib/examples/lexical/editorConfig.js +26 -48
  313. package/lib/examples/lexical/lexical-theme.css +65 -47
  314. package/lib/examples/main.js +450 -322
  315. package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
  316. package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
  317. package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
  318. package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
  319. package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
  320. package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
  321. package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
  322. package/lib/examples/scenes/A2UiViewerScene.js +395 -0
  323. package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
  324. package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
  325. package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
  326. package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
  327. package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
  328. package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
  329. package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
  330. package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
  331. package/lib/examples/utils/exampleSurfaces.js +38 -0
  332. package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
  333. package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
  334. package/lib/examples/utils/localUrl.d.ts +2 -0
  335. package/lib/examples/utils/localUrl.js +49 -0
  336. package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
  337. package/lib/examples/utils/notebookToolbarItems.js +129 -0
  338. package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
  339. package/lib/examples/utils/runtimeTargetStore.js +82 -1
  340. package/lib/examples/utils/themedProvider.d.ts +7 -0
  341. package/lib/examples/utils/themedProvider.js +57 -4
  342. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
  343. package/lib/examples/utils/waitForAgent.d.ts +23 -0
  344. package/lib/examples/utils/waitForAgent.js +24 -0
  345. package/lib/examples2/CellExample.d.ts +1 -1
  346. package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
  347. package/lib/examples2/NotebookExample.d.ts +1 -1
  348. package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
  349. package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
  350. package/lib/examples2/main.js +24 -4
  351. package/lib/extensions/A2UIExtension.d.ts +1 -1
  352. package/lib/hooks/index.d.ts +8 -5
  353. package/lib/hooks/index.js +20 -5
  354. package/lib/hooks/useAgentRuntimes.d.ts +49 -22
  355. package/lib/hooks/useAgentRuntimes.js +214 -90
  356. package/lib/hooks/useAgentsCatalog.js +32 -4
  357. package/lib/hooks/useBrowserAgent.d.ts +26 -0
  358. package/lib/hooks/useBrowserAgent.js +75 -0
  359. package/lib/hooks/useBrowserInference.d.ts +27 -0
  360. package/lib/hooks/useBrowserInference.js +67 -0
  361. package/lib/hooks/useCheckpoints.d.ts +8 -17
  362. package/lib/hooks/useCheckpoints.js +25 -59
  363. package/lib/hooks/useConfig.d.ts +1 -1
  364. package/lib/hooks/useConfig.js +5 -1
  365. package/lib/hooks/useContextSnapshot.d.ts +18 -7
  366. package/lib/hooks/useContextSnapshot.js +14 -10
  367. package/lib/hooks/useNotifications.d.ts +11 -11
  368. package/lib/hooks/useNotifications.js +1 -1
  369. package/lib/hooks/useProjects.d.ts +7 -19
  370. package/lib/hooks/useProjects.js +5 -5
  371. package/lib/hooks/useSkills.d.ts +0 -1
  372. package/lib/hooks/useSkills.js +6 -2
  373. package/lib/hooks/useToolApprovals.d.ts +8 -8
  374. package/lib/hooks/useToolApprovals.js +3 -3
  375. package/lib/identity/AgentIdentity.d.ts +9 -2
  376. package/lib/identity/index.d.ts +1 -1
  377. package/lib/identity/index.js +1 -1
  378. package/lib/identity/types.d.ts +1 -1
  379. package/lib/identity/types.js +1 -1
  380. package/lib/index.d.ts +1 -0
  381. package/lib/index.js +4 -0
  382. package/lib/jupyter/index.d.ts +2 -1
  383. package/lib/jupyter/index.js +2 -1
  384. package/lib/jupyter/serverExecution.d.ts +78 -0
  385. package/lib/jupyter/serverExecution.js +258 -0
  386. package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
  387. package/lib/jupyter/useResumeServerExecutions.js +64 -0
  388. package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
  389. package/lib/lexical/ChatInlinePlugin.js +0 -36
  390. package/lib/loop/core/focusRequests.d.ts +10 -0
  391. package/lib/loop/core/focusRequests.js +46 -0
  392. package/lib/loop/core/index.d.ts +894 -0
  393. package/lib/loop/core/index.js +264 -0
  394. package/lib/loop/core/promptStore.d.ts +44 -0
  395. package/lib/loop/core/promptStore.js +63 -0
  396. package/lib/loop/core/surfaceRequests.d.ts +33 -0
  397. package/lib/loop/core/surfaceRequests.js +29 -0
  398. package/lib/loop/core/toolbar.d.ts +28 -0
  399. package/lib/loop/core/toolbar.js +59 -0
  400. package/lib/loop/embed/LoopEmbed.d.ts +57 -0
  401. package/lib/loop/embed/LoopEmbed.js +118 -0
  402. package/lib/loop/extensions.d.ts +10 -0
  403. package/lib/loop/extensions.js +49 -0
  404. package/lib/loop/index.d.ts +68 -0
  405. package/lib/loop/index.js +87 -0
  406. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
  407. package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
  408. package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
  409. package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
  410. package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
  411. package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
  412. package/lib/loop/plugins/a2ui/index.d.ts +3 -0
  413. package/lib/loop/plugins/a2ui/index.js +50 -0
  414. package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
  415. package/lib/loop/plugins/a2ui-scene/index.js +28 -0
  416. package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
  417. package/lib/loop/plugins/agent-a2a/index.js +26 -0
  418. package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
  419. package/lib/loop/plugins/agent-a2ui/index.js +42 -0
  420. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
  421. package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
  422. package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
  423. package/lib/loop/plugins/agent-capacity/index.js +52 -0
  424. package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
  425. package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
  426. package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
  427. package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
  428. package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
  429. package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
  430. package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
  431. package/lib/loop/plugins/agent-codemode/index.js +41 -0
  432. package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
  433. package/lib/loop/plugins/agent-compaction/index.js +34 -0
  434. package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
  435. package/lib/loop/plugins/agent-evals/index.js +25 -0
  436. package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
  437. package/lib/loop/plugins/agent-guardrails/index.js +25 -0
  438. package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
  439. package/lib/loop/plugins/agent-hooks/index.js +28 -0
  440. package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
  441. package/lib/loop/plugins/agent-inference/index.js +29 -0
  442. package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
  443. package/lib/loop/plugins/agent-mcp/index.js +25 -0
  444. package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
  445. package/lib/loop/plugins/agent-memory/index.js +25 -0
  446. package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
  447. package/lib/loop/plugins/agent-monitoring/index.js +25 -0
  448. package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
  449. package/lib/loop/plugins/agent-notifications/index.js +25 -0
  450. package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
  451. package/lib/loop/plugins/agent-otel/index.js +25 -0
  452. package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
  453. package/lib/loop/plugins/agent-outputs/index.js +25 -0
  454. package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
  455. package/lib/loop/plugins/agent-parameters/index.js +25 -0
  456. package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
  457. package/lib/loop/plugins/agent-skills/index.js +25 -0
  458. package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
  459. package/lib/loop/plugins/agent-subagents/index.js +25 -0
  460. package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
  461. package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
  462. package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
  463. package/lib/loop/plugins/agent-triggers/index.js +26 -0
  464. package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
  465. package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
  466. package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
  467. package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
  468. package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
  469. package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
  470. package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
  471. package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
  472. package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
  473. package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
  474. package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
  475. package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
  476. package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
  477. package/lib/loop/plugins/agents/SandboxView.js +43 -0
  478. package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
  479. package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
  480. package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
  481. package/lib/loop/plugins/agents/agentIcons.js +88 -0
  482. package/lib/loop/plugins/agents/browserService.d.ts +50 -0
  483. package/lib/loop/plugins/agents/browserService.js +233 -0
  484. package/lib/loop/plugins/agents/index.d.ts +13 -0
  485. package/lib/loop/plugins/agents/index.js +17 -0
  486. package/lib/loop/plugins/agents/plugin.d.ts +91 -0
  487. package/lib/loop/plugins/agents/plugin.js +201 -0
  488. package/lib/loop/plugins/agents/service.d.ts +99 -0
  489. package/lib/loop/plugins/agents/service.js +167 -0
  490. package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
  491. package/lib/loop/plugins/agents/specSubagents.js +33 -0
  492. package/lib/loop/plugins/agents/switchable.d.ts +107 -0
  493. package/lib/loop/plugins/agents/switchable.js +405 -0
  494. package/lib/loop/plugins/agents/team.d.ts +87 -0
  495. package/lib/loop/plugins/agents/team.js +143 -0
  496. package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
  497. package/lib/loop/plugins/agents/useSandboxService.js +36 -0
  498. package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
  499. package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
  500. package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
  501. package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
  502. package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
  503. package/lib/loop/plugins/agentspecs/index.js +63 -0
  504. package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
  505. package/lib/loop/plugins/chat/ChatView.js +1670 -0
  506. package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
  507. package/lib/loop/plugins/chat/chatViewTools.js +92 -0
  508. package/lib/loop/plugins/chat/index.d.ts +111 -0
  509. package/lib/loop/plugins/chat/index.js +143 -0
  510. package/lib/loop/plugins/chat/turnState.d.ts +41 -0
  511. package/lib/loop/plugins/chat/turnState.js +90 -0
  512. package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
  513. package/lib/loop/plugins/chat-extras/index.js +51 -0
  514. package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
  515. package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
  516. package/lib/loop/plugins/chat-header/index.d.ts +3 -0
  517. package/lib/loop/plugins/chat-header/index.js +21 -0
  518. package/lib/loop/plugins/chat-view/index.d.ts +10 -0
  519. package/lib/loop/plugins/chat-view/index.js +29 -0
  520. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
  521. package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
  522. package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
  523. package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
  524. package/lib/loop/plugins/commands/index.d.ts +20 -0
  525. package/lib/loop/plugins/commands/index.js +148 -0
  526. package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
  527. package/lib/loop/plugins/decks/DeckSurface.js +6 -0
  528. package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
  529. package/lib/loop/plugins/decks/DecksMenu.js +42 -0
  530. package/lib/loop/plugins/decks/index.d.ts +19 -0
  531. package/lib/loop/plugins/decks/index.js +133 -0
  532. package/lib/loop/plugins/decks/surface.d.ts +7 -0
  533. package/lib/loop/plugins/decks/surface.js +11 -0
  534. package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
  535. package/lib/loop/plugins/document/DocumentView.js +68 -0
  536. package/lib/loop/plugins/document/index.d.ts +3 -0
  537. package/lib/loop/plugins/document/index.js +86 -0
  538. package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
  539. package/lib/loop/plugins/document/openingDocument.js +122 -0
  540. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
  541. package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
  542. package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
  543. package/lib/loop/plugins/document-toolbar/index.js +35 -0
  544. package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
  545. package/lib/loop/plugins/document-toolbar/names.js +10 -0
  546. package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
  547. package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
  548. package/lib/loop/plugins/document-view/index.d.ts +10 -0
  549. package/lib/loop/plugins/document-view/index.js +28 -0
  550. package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
  551. package/lib/loop/plugins/graph/GraphToggle.js +22 -0
  552. package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
  553. package/lib/loop/plugins/graph/GraphView.js +6 -0
  554. package/lib/loop/plugins/graph/index.d.ts +5 -0
  555. package/lib/loop/plugins/graph/index.js +80 -0
  556. package/lib/loop/plugins/graph/viewType.d.ts +10 -0
  557. package/lib/loop/plugins/graph/viewType.js +14 -0
  558. package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
  559. package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
  560. package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
  561. package/lib/loop/plugins/input-prompt/index.js +26 -0
  562. package/lib/loop/plugins/models/index.d.ts +3 -0
  563. package/lib/loop/plugins/models/index.js +49 -0
  564. package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
  565. package/lib/loop/plugins/notebook/NotebookView.js +189 -0
  566. package/lib/loop/plugins/notebook/index.d.ts +3 -0
  567. package/lib/loop/plugins/notebook/index.js +91 -0
  568. package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
  569. package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
  570. package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
  571. package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
  572. package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
  573. package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
  574. package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
  575. package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
  576. package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
  577. package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
  578. package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
  579. package/lib/loop/plugins/notebook-view/index.js +30 -0
  580. package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
  581. package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
  582. package/lib/loop/plugins/page-layout/index.d.ts +35 -0
  583. package/lib/loop/plugins/page-layout/index.js +80 -0
  584. package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
  585. package/lib/loop/plugins/plugins-panel/index.js +74 -0
  586. package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
  587. package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
  588. package/lib/loop/plugins/prompt/index.d.ts +11 -0
  589. package/lib/loop/plugins/prompt/index.js +73 -0
  590. package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
  591. package/lib/loop/plugins/shell/editorChoice.js +58 -0
  592. package/lib/loop/plugins/shell/index.d.ts +47 -0
  593. package/lib/loop/plugins/shell/index.js +142 -0
  594. package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
  595. package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
  596. package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
  597. package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
  598. package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
  599. package/lib/loop/plugins/subagent-activity/index.js +42 -0
  600. package/lib/loop/plugins/view-switch/index.d.ts +46 -0
  601. package/lib/loop/plugins/view-switch/index.js +68 -0
  602. package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
  603. package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
  604. package/lib/loop/plugins/window-frame/index.d.ts +6 -0
  605. package/lib/loop/plugins/window-frame/index.js +79 -0
  606. package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
  607. package/lib/loop/plugins/window-frame/slots.js +30 -0
  608. package/lib/loop/presets.d.ts +167 -0
  609. package/lib/loop/presets.js +139 -0
  610. package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
  611. package/lib/loop/shell/LoopWorkspace.js +231 -0
  612. package/lib/loop/shell/PluginToggles.d.ts +21 -0
  613. package/lib/loop/shell/PluginToggles.js +41 -0
  614. package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
  615. package/lib/loop/shell/ViewSwitcher.js +43 -0
  616. package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
  617. package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
  618. package/lib/loop/shell/index.d.ts +10 -0
  619. package/lib/loop/shell/index.js +14 -0
  620. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
  621. package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
  622. package/lib/loop-example-main.d.ts +1 -0
  623. package/lib/loop-example-main.js +42 -0
  624. package/lib/loop-main.d.ts +1 -0
  625. package/lib/loop-main.js +138 -0
  626. package/lib/mcp/McpServerManager.d.ts +1 -1
  627. package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
  628. package/lib/models/CodeSandboxVariant.d.ts +53 -0
  629. package/lib/models/CodeSandboxVariant.js +77 -0
  630. package/lib/models/Content.d.ts +26 -0
  631. package/lib/models/Environment.d.ts +561 -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/Library.d.ts +0 -2
  637. package/lib/models/Notebook.d.ts +0 -2
  638. package/lib/models/ProjectDTO.d.ts +2 -2
  639. package/lib/models/ProjectDTO.js +4 -4
  640. package/lib/models/Runtime.d.ts +11 -11
  641. package/lib/models/RuntimeDTO.d.ts +16 -7
  642. package/lib/models/RuntimeDTO.js +9 -9
  643. package/lib/models/Space.d.ts +10 -0
  644. package/lib/models/Space.js +1 -1
  645. package/lib/models/SpaceDTO.d.ts +1 -1
  646. package/lib/models/SpaceItem.d.ts +1 -2
  647. package/lib/models/environments.generated.d.ts +113 -0
  648. package/lib/models/environments.generated.js +13 -0
  649. package/lib/models/index.d.ts +1 -1
  650. package/lib/models/index.js +1 -1
  651. package/lib/protocols/A2AAdapter.d.ts +39 -6
  652. package/lib/protocols/A2AAdapter.js +180 -11
  653. package/lib/protocols/ACPAdapter.js +40 -37
  654. package/lib/protocols/AGUIAdapter.d.ts +14 -0
  655. package/lib/protocols/AGUIAdapter.js +34 -9
  656. package/lib/protocols/BrowserAgentAdapter.d.ts +117 -0
  657. package/lib/protocols/BrowserAgentAdapter.js +310 -0
  658. package/lib/protocols/VercelAIAdapter.d.ts +10 -0
  659. package/lib/protocols/VercelAIAdapter.js +27 -7
  660. package/lib/protocols/index.d.ts +1 -0
  661. package/lib/protocols/index.js +1 -0
  662. package/lib/runtimes/actions.d.ts +3 -3
  663. package/lib/runtimes/actions.js +41 -16
  664. package/lib/runtimes/apis.d.ts +13 -4
  665. package/lib/runtimes/browser/agent.d.ts +54 -0
  666. package/lib/runtimes/browser/agent.js +63 -0
  667. package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
  668. package/lib/runtimes/browser/anonymousToken.js +300 -0
  669. package/lib/runtimes/browser/frontendTools.d.ts +61 -0
  670. package/lib/runtimes/browser/frontendTools.js +152 -0
  671. package/lib/runtimes/browser/index.d.ts +11 -0
  672. package/lib/runtimes/browser/index.js +20 -0
  673. package/lib/runtimes/browser/model.d.ts +52 -0
  674. package/lib/runtimes/browser/model.js +110 -0
  675. package/lib/runtimes/browser/protocol.d.ts +54 -0
  676. package/lib/runtimes/browser/protocol.js +35 -0
  677. package/lib/runtimes/browser/subagents.d.ts +131 -0
  678. package/lib/runtimes/browser/subagents.js +241 -0
  679. package/lib/runtimes/index.d.ts +3 -0
  680. package/lib/runtimes/index.js +3 -0
  681. package/lib/runtimes/lifecycle.d.ts +76 -0
  682. package/lib/runtimes/lifecycle.js +99 -0
  683. package/lib/runtimes/variants.d.ts +172 -0
  684. package/lib/runtimes/variants.js +187 -0
  685. package/lib/services/reconnectToRuntime.d.ts +2 -2
  686. package/lib/services/reconnectToRuntime.js +3 -3
  687. package/lib/services/sandboxServiceManagers.d.ts +2 -2
  688. package/lib/services/sandboxServiceManagers.js +11 -11
  689. package/lib/specs/agents/agents.d.ts +128 -112
  690. package/lib/specs/agents/agents.js +8024 -5052
  691. package/lib/specs/envvars.d.ts +1 -1
  692. package/lib/specs/envvars.js +3 -3
  693. package/lib/specs/evals.js +9 -0
  694. package/lib/specs/frontendTools.d.ts +3 -0
  695. package/lib/specs/frontendTools.js +46 -3
  696. package/lib/specs/mcpServers.d.ts +1 -0
  697. package/lib/specs/mcpServers.js +27 -4
  698. package/lib/specs/models.d.ts +18 -0
  699. package/lib/specs/models.js +154 -0
  700. package/lib/specs/outputs.d.ts +2 -0
  701. package/lib/specs/outputs.js +22 -0
  702. package/lib/specs/personas.js +1 -1
  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 +17 -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/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
  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/protocol.d.ts +7 -2
  744. package/lib/types/stream.d.ts +48 -3
  745. package/lib/types/stream.js +5 -0
  746. package/lib/types/teams.d.ts +102 -4
  747. package/lib/types/tool-approvals.d.ts +1 -1
  748. package/lib/types/tools.d.ts +8 -2
  749. package/lib/utils/utils.js +7 -1
  750. package/package.json +376 -361
  751. package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
  752. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  753. package/scripts/codegen/compose.py +208 -0
  754. package/scripts/codegen/generate_agents.py +202 -31
  755. package/scripts/codegen/generate_evals.py +2 -0
  756. package/scripts/codegen/generate_frontend_tools.py +35 -6
  757. package/scripts/codegen/generate_models.py +40 -15
  758. package/scripts/codegen/generate_sandbox_agents.py +76 -62
  759. package/scripts/codegen/generate_teams.py +178 -4
  760. package/scripts/codegen/generate_tools.py +6 -4
  761. package/scripts/gen_workers.py +279 -111
  762. package/scripts/generate-environments-types.py +404 -0
  763. package/lib/chat/prompt/InputFooter.d.ts +0 -58
  764. package/lib/chat/prompt/InputFooter.js +0 -194
  765. package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
  766. package/lib/chat/prompt/InputPromptFooter.js +0 -15
  767. package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
  768. package/lib/chat/prompt/InputPromptHeader.js +0 -15
  769. package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
  770. package/lib/hooks/useRuntimes.d.ts +0 -5
  771. package/lib/hooks/useRuntimes.js +0 -34
  772. package/lib/jupyter/kernelsHandler.d.ts +0 -8
  773. package/lib/jupyter/kernelsHandler.js +0 -39
  774. package/lib/models/Dataset.d.ts +0 -16
  775. package/lib/utils/Cells.d.ts +0 -2
  776. package/lib/utils/Cells.js +0 -28
@@ -0,0 +1,872 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } 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
+ * Scene extracted from the A2UiComponentsGalleryExample page: the same canned A2UI
8
+ * messages, rendered as a Loop workspace view. The page itself now mounts
9
+ * a reactor application with this scene as a plugin.
10
+ */
11
+ import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
12
+ import { Box } from '@datalayer/primer-addons';
13
+ import { Button, SegmentedControl, Text } from '@primer/react';
14
+ import { A2UI_RENDER_SCOPE_SX, A2uiSurfaceComposed, } from '../../components/a2ui';
15
+ import { basicCatalog } from '@a2ui/react/v0_9';
16
+ import { A2uiMarkdownProvider } from '../utils/a2uiMarkdownProvider';
17
+ import { createSceneMessages, useA2uiProcessor } from '../utils/a2ui';
18
+ import { useExampleAgentRuntimesUrl } from '../utils/useExampleAgentRuntimesUrl';
19
+ const extractA2uiMessages = (parts) => {
20
+ const messages = [];
21
+ parts.forEach(part => {
22
+ const node = part.root ?? part;
23
+ if (node.kind !== 'data' || !node.data) {
24
+ return;
25
+ }
26
+ const payload = node.data;
27
+ if (payload.version !== 'v0.9') {
28
+ return;
29
+ }
30
+ const createSurface = payload.createSurface;
31
+ if (createSurface && createSurface.catalogId !== basicCatalog.id) {
32
+ createSurface.catalogId = basicCatalog.id;
33
+ }
34
+ messages.push(payload);
35
+ });
36
+ return messages;
37
+ };
38
+ const SCENES = [
39
+ {
40
+ id: 'typography',
41
+ label: 'Typography',
42
+ description: 'Text, Icon, Row, and Button components bound to data-model values.',
43
+ messages: createSceneMessages({
44
+ surfaceId: 'gallery-typography',
45
+ components: [
46
+ { id: 'root', component: 'Card', child: 'main' },
47
+ {
48
+ id: 'main',
49
+ component: 'Column',
50
+ children: ['title', 'subtitle', 'meta-row', 'cta-label', 'cta'],
51
+ },
52
+ {
53
+ id: 'title',
54
+ component: 'Text',
55
+ variant: 'h2',
56
+ text: { path: '/title' },
57
+ },
58
+ { id: 'subtitle', component: 'Text', text: { path: '/subtitle' } },
59
+ {
60
+ id: 'meta-row',
61
+ component: 'Row',
62
+ align: 'center',
63
+ children: ['meta-icon', 'meta-text'],
64
+ },
65
+ { id: 'meta-icon', component: 'Icon', name: 'star' },
66
+ {
67
+ id: 'meta-text',
68
+ component: 'Text',
69
+ variant: 'caption',
70
+ text: { path: '/meta' },
71
+ },
72
+ { id: 'cta-label', component: 'Text', text: 'Trigger Action' },
73
+ {
74
+ id: 'cta',
75
+ component: 'Button',
76
+ child: 'cta-label',
77
+ variant: 'primary',
78
+ action: {
79
+ event: {
80
+ name: 'gallery_typography_cta',
81
+ context: { section: 'typography', title: { path: '/title' } },
82
+ },
83
+ },
84
+ },
85
+ ],
86
+ value: {
87
+ title: 'A2UI Gallery',
88
+ subtitle: 'Protocol-native renderer with typed schemas and dynamic bindings.',
89
+ meta: 'createSurface · updateComponents · updateDataModel',
90
+ },
91
+ }),
92
+ },
93
+ {
94
+ id: 'contact-card',
95
+ label: 'Contact',
96
+ description: 'Card layout with icons and data-bound profile information.',
97
+ messages: createSceneMessages({
98
+ surfaceId: 'gallery-contact-card',
99
+ components: [
100
+ { id: 'root', component: 'Card', child: 'main-column' },
101
+ {
102
+ id: 'main-column',
103
+ component: 'Column',
104
+ align: 'center',
105
+ children: [
106
+ 'avatar-image',
107
+ 'name',
108
+ 'title',
109
+ 'divider',
110
+ 'contact-info',
111
+ ],
112
+ },
113
+ {
114
+ id: 'avatar-image',
115
+ component: 'Image',
116
+ url: { path: '/avatar' },
117
+ fit: 'cover',
118
+ variant: 'avatar',
119
+ },
120
+ {
121
+ id: 'name',
122
+ component: 'Text',
123
+ variant: 'h2',
124
+ text: { path: '/name' },
125
+ },
126
+ { id: 'title', component: 'Text', text: { path: '/title' } },
127
+ { id: 'divider', component: 'Divider' },
128
+ {
129
+ id: 'contact-info',
130
+ component: 'Column',
131
+ children: ['phone-row', 'email-row', 'location-row'],
132
+ },
133
+ {
134
+ id: 'phone-row',
135
+ component: 'Row',
136
+ align: 'center',
137
+ children: ['phone-icon', 'phone-text'],
138
+ },
139
+ { id: 'phone-icon', component: 'Icon', name: 'phone' },
140
+ { id: 'phone-text', component: 'Text', text: { path: '/phone' } },
141
+ {
142
+ id: 'email-row',
143
+ component: 'Row',
144
+ align: 'center',
145
+ children: ['email-icon', 'email-text'],
146
+ },
147
+ { id: 'email-icon', component: 'Icon', name: 'mail' },
148
+ { id: 'email-text', component: 'Text', text: { path: '/email' } },
149
+ {
150
+ id: 'location-row',
151
+ component: 'Row',
152
+ align: 'center',
153
+ children: ['location-icon', 'location-text'],
154
+ },
155
+ { id: 'location-icon', component: 'Icon', name: 'locationOn' },
156
+ { id: 'location-text', component: 'Text', text: { path: '/location' } },
157
+ ],
158
+ value: {
159
+ avatar: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=100&h=100&fit=crop',
160
+ name: 'David Park',
161
+ title: 'Engineering Manager',
162
+ phone: '+1 (555) 234-5678',
163
+ email: 'david.park@company.com',
164
+ location: 'San Francisco, CA',
165
+ },
166
+ }),
167
+ },
168
+ {
169
+ id: 'controls',
170
+ label: 'Controls',
171
+ description: 'Interactive inputs: TextField, ChoicePicker, CheckBox, Slider, DateTimeInput.',
172
+ messages: createSceneMessages({
173
+ surfaceId: 'gallery-controls',
174
+ components: [
175
+ { id: 'root', component: 'Card', child: 'controls-column' },
176
+ {
177
+ id: 'controls-column',
178
+ component: 'Column',
179
+ children: [
180
+ 'title',
181
+ 'name-field',
182
+ 'plan-picker',
183
+ 'alerts-checkbox',
184
+ 'volume-slider',
185
+ 'when-field',
186
+ 'submit-label',
187
+ 'submit',
188
+ ],
189
+ },
190
+ {
191
+ id: 'title',
192
+ component: 'Text',
193
+ variant: 'h3',
194
+ text: 'Interactive Inputs',
195
+ },
196
+ {
197
+ id: 'name-field',
198
+ component: 'TextField',
199
+ label: 'Name',
200
+ value: { path: '/name' },
201
+ },
202
+ {
203
+ id: 'plan-picker',
204
+ component: 'ChoicePicker',
205
+ label: 'Plan',
206
+ value: { path: '/plan' },
207
+ options: [
208
+ { label: 'Starter', value: 'starter' },
209
+ { label: 'Pro', value: 'pro' },
210
+ { label: 'Enterprise', value: 'enterprise' },
211
+ ],
212
+ },
213
+ {
214
+ id: 'alerts-checkbox',
215
+ component: 'CheckBox',
216
+ label: 'Enable alerts',
217
+ value: { path: '/alerts' },
218
+ },
219
+ {
220
+ id: 'volume-slider',
221
+ component: 'Slider',
222
+ label: 'Volume',
223
+ value: { path: '/volume' },
224
+ min: 0,
225
+ max: 100,
226
+ },
227
+ {
228
+ id: 'when-field',
229
+ component: 'DateTimeInput',
230
+ label: 'Reminder time',
231
+ value: { path: '/when' },
232
+ },
233
+ { id: 'submit-label', component: 'Text', text: 'Submit' },
234
+ {
235
+ id: 'submit',
236
+ component: 'Button',
237
+ variant: 'primary',
238
+ child: 'submit-label',
239
+ action: {
240
+ event: {
241
+ name: 'submit_controls',
242
+ context: {
243
+ name: { path: '/name' },
244
+ plan: { path: '/plan' },
245
+ alerts: { path: '/alerts' },
246
+ volume: { path: '/volume' },
247
+ when: { path: '/when' },
248
+ },
249
+ },
250
+ },
251
+ },
252
+ ],
253
+ value: {
254
+ name: 'Morgan',
255
+ plan: 'pro',
256
+ alerts: true,
257
+ volume: 64,
258
+ when: '2026-05-01T18:30:00Z',
259
+ },
260
+ }),
261
+ },
262
+ {
263
+ id: 'tabs-modal',
264
+ label: 'Tabs + Modal',
265
+ description: 'Tabs with nested content and a modal trigger using event actions.',
266
+ messages: createSceneMessages({
267
+ surfaceId: 'gallery-tabs-modal',
268
+ components: [
269
+ { id: 'root', component: 'Column', children: ['tabs', 'modal'] },
270
+ {
271
+ id: 'tabs',
272
+ component: 'Tabs',
273
+ tabs: [
274
+ { title: 'Overview', child: 'tab-overview' },
275
+ { title: 'Details', child: 'tab-details' },
276
+ ],
277
+ },
278
+ {
279
+ id: 'tab-overview',
280
+ component: 'Card',
281
+ child: 'tab-overview-text',
282
+ },
283
+ {
284
+ id: 'tab-overview-text',
285
+ component: 'Text',
286
+ text: 'Overview tab uses static component composition.',
287
+ },
288
+ {
289
+ id: 'tab-details',
290
+ component: 'Card',
291
+ child: 'tab-details-text',
292
+ },
293
+ {
294
+ id: 'tab-details-text',
295
+ component: 'Text',
296
+ text: 'Details tab includes modal interaction below.',
297
+ },
298
+ { id: 'modal-trigger-label', component: 'Text', text: 'Open Modal' },
299
+ {
300
+ id: 'modal-content-text',
301
+ component: 'Text',
302
+ text: 'This content is rendered inside a modal.',
303
+ },
304
+ {
305
+ id: 'modal-content',
306
+ component: 'Card',
307
+ child: 'modal-content-text',
308
+ },
309
+ {
310
+ id: 'modal-trigger',
311
+ component: 'Button',
312
+ child: 'modal-trigger-label',
313
+ action: { event: { name: 'open_modal' } },
314
+ },
315
+ {
316
+ id: 'modal',
317
+ component: 'Modal',
318
+ trigger: 'modal-trigger',
319
+ content: 'modal-content',
320
+ },
321
+ ],
322
+ }),
323
+ },
324
+ {
325
+ id: 'restaurant-card',
326
+ label: 'Restaurant',
327
+ description: 'Restaurant card layout with image, rating, ETA, and action.',
328
+ messages: createSceneMessages({
329
+ surfaceId: 'gallery-restaurant-card',
330
+ components: [
331
+ { id: 'root', component: 'Card', child: 'main' },
332
+ {
333
+ id: 'main',
334
+ component: 'Column',
335
+ children: [
336
+ 'hero',
337
+ 'title-row',
338
+ 'meta',
339
+ 'stats-row',
340
+ 'cta-label',
341
+ 'cta',
342
+ ],
343
+ },
344
+ {
345
+ id: 'hero',
346
+ component: 'Image',
347
+ url: { path: '/image' },
348
+ fit: 'cover',
349
+ variant: 'largeFeature',
350
+ },
351
+ {
352
+ id: 'title-row',
353
+ component: 'Row',
354
+ justify: 'spaceBetween',
355
+ children: ['title', 'price'],
356
+ },
357
+ {
358
+ id: 'title',
359
+ component: 'Text',
360
+ variant: 'h3',
361
+ text: { path: '/title' },
362
+ },
363
+ { id: 'price', component: 'Text', text: { path: '/price' } },
364
+ {
365
+ id: 'meta',
366
+ component: 'Text',
367
+ variant: 'caption',
368
+ text: { path: '/meta' },
369
+ },
370
+ {
371
+ id: 'stats-row',
372
+ component: 'Row',
373
+ justify: 'spaceBetween',
374
+ children: ['rating', 'eta', 'distance'],
375
+ },
376
+ {
377
+ id: 'rating',
378
+ component: 'Text',
379
+ variant: 'caption',
380
+ text: { path: '/rating' },
381
+ },
382
+ {
383
+ id: 'eta',
384
+ component: 'Text',
385
+ variant: 'caption',
386
+ text: { path: '/eta' },
387
+ },
388
+ {
389
+ id: 'distance',
390
+ component: 'Text',
391
+ variant: 'caption',
392
+ text: { path: '/distance' },
393
+ },
394
+ { id: 'cta-label', component: 'Text', text: 'Reserve Table' },
395
+ {
396
+ id: 'cta',
397
+ component: 'Button',
398
+ variant: 'primary',
399
+ child: 'cta-label',
400
+ action: {
401
+ event: {
402
+ name: 'reserve_restaurant',
403
+ context: {
404
+ restaurantId: { path: '/id' },
405
+ restaurantName: { path: '/title' },
406
+ },
407
+ },
408
+ },
409
+ },
410
+ ],
411
+ value: {
412
+ id: 'rest_italian_001',
413
+ image: 'https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?w=640&h=360&fit=crop',
414
+ title: 'The Italian Kitchen',
415
+ price: '$$$',
416
+ meta: 'Italian • Pasta • Wine Bar',
417
+ rating: '⭐ 4.8 (2,847 reviews)',
418
+ eta: '25-35 min',
419
+ distance: '0.8 mi',
420
+ },
421
+ }),
422
+ },
423
+ {
424
+ id: 'list',
425
+ label: 'Data List',
426
+ description: 'List component rendering a data-bound template with per-item actions.',
427
+ messages: createSceneMessages({
428
+ surfaceId: 'gallery-list',
429
+ components: [
430
+ { id: 'root', component: 'Column', children: ['heading', 'items'] },
431
+ {
432
+ id: 'heading',
433
+ component: 'Text',
434
+ variant: 'h2',
435
+ text: { path: '/title' },
436
+ },
437
+ {
438
+ id: 'items',
439
+ component: 'List',
440
+ direction: 'vertical',
441
+ children: { componentId: 'item-template', path: '/items' },
442
+ },
443
+ { id: 'item-template', component: 'Card', child: 'item-row' },
444
+ {
445
+ id: 'item-row',
446
+ component: 'Row',
447
+ align: 'center',
448
+ children: ['item-image', 'item-details', 'item-cta'],
449
+ },
450
+ {
451
+ id: 'item-image',
452
+ component: 'Image',
453
+ url: { path: 'image' },
454
+ fit: 'cover',
455
+ variant: 'smallFeature',
456
+ weight: 1,
457
+ },
458
+ {
459
+ id: 'item-details',
460
+ component: 'Column',
461
+ weight: 3,
462
+ children: ['item-name', 'item-meta'],
463
+ },
464
+ {
465
+ id: 'item-name',
466
+ component: 'Text',
467
+ variant: 'h3',
468
+ text: { path: 'name' },
469
+ },
470
+ {
471
+ id: 'item-meta',
472
+ component: 'Text',
473
+ variant: 'caption',
474
+ text: { path: 'meta' },
475
+ },
476
+ {
477
+ id: 'item-cta',
478
+ component: 'Button',
479
+ variant: 'primary',
480
+ child: 'item-cta-label',
481
+ action: {
482
+ event: {
483
+ name: 'select_item',
484
+ context: { id: { path: 'id' }, name: { path: 'name' } },
485
+ },
486
+ },
487
+ },
488
+ { id: 'item-cta-label', component: 'Text', text: 'Select' },
489
+ ],
490
+ value: {
491
+ title: 'Featured Restaurants',
492
+ items: [
493
+ {
494
+ id: 'rest_001',
495
+ name: "Xi'an Famous Foods",
496
+ meta: '★★★★☆ · Hand-pulled noodles',
497
+ image: 'https://images.unsplash.com/photo-1569718212165-3a8278d5f624?w=200&h=200&fit=crop',
498
+ },
499
+ {
500
+ id: 'rest_002',
501
+ name: 'Han Dynasty',
502
+ meta: '★★★★☆ · Authentic Szechuan',
503
+ image: 'https://images.unsplash.com/photo-1525755662778-989d0524087e?w=200&h=200&fit=crop',
504
+ },
505
+ {
506
+ id: 'rest_003',
507
+ name: 'RedFarm',
508
+ meta: '★★★★☆ · Farm-to-table Chinese',
509
+ image: 'https://images.unsplash.com/photo-1563245372-f21724e3856d?w=200&h=200&fit=crop',
510
+ },
511
+ ],
512
+ },
513
+ }),
514
+ },
515
+ {
516
+ id: 'media',
517
+ label: 'Media',
518
+ description: 'Video and AudioPlayer components from the basic catalog.',
519
+ messages: createSceneMessages({
520
+ surfaceId: 'gallery-media',
521
+ components: [
522
+ { id: 'root', component: 'Card', child: 'media-column' },
523
+ {
524
+ id: 'media-column',
525
+ component: 'Column',
526
+ children: ['media-title', 'video', 'audio-title', 'audio'],
527
+ },
528
+ {
529
+ id: 'media-title',
530
+ component: 'Text',
531
+ variant: 'h3',
532
+ text: 'Media Components',
533
+ },
534
+ { id: 'video', component: 'Video', url: { path: '/videoUrl' } },
535
+ {
536
+ id: 'audio-title',
537
+ component: 'Text',
538
+ variant: 'caption',
539
+ text: { path: '/audioLabel' },
540
+ },
541
+ {
542
+ id: 'audio',
543
+ component: 'AudioPlayer',
544
+ url: { path: '/audioUrl' },
545
+ description: { path: '/audioLabel' },
546
+ },
547
+ ],
548
+ value: {
549
+ videoUrl: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
550
+ audioLabel: 'Sample audio track',
551
+ audioUrl: 'https://commondatastorage.googleapis.com/codeskulptor-demos/DDR_assets/Kangaroo_MusiQue_-_The_Neverwritten_Role_Playing_Game.mp3',
552
+ },
553
+ }),
554
+ },
555
+ {
556
+ id: 'validation',
557
+ label: 'Form Validation',
558
+ description: 'Live client-side validation via local function evaluation (email, regex, and/or/required) with two-way data binding.',
559
+ messages: createSceneMessages({
560
+ surfaceId: 'gallery-validation',
561
+ components: [
562
+ { id: 'root', component: 'Card', child: 'main-column' },
563
+ {
564
+ id: 'main-column',
565
+ component: 'Column',
566
+ align: 'stretch',
567
+ children: [
568
+ 'welcome-text',
569
+ 'email-field',
570
+ 'phone-field',
571
+ 'zip-field',
572
+ 'terms-checkbox',
573
+ 'submit-btn',
574
+ ],
575
+ },
576
+ {
577
+ id: 'welcome-text',
578
+ component: 'Text',
579
+ variant: 'h3',
580
+ text: {
581
+ call: 'formatString',
582
+ args: {
583
+ value: "Hello! Today is ${formatDate(value: ${/now}, format: 'EEEE, MMMM d')}.",
584
+ },
585
+ returnType: 'string',
586
+ },
587
+ },
588
+ {
589
+ id: 'email-field',
590
+ component: 'TextField',
591
+ label: 'Email Address',
592
+ value: { path: '/formData/email' },
593
+ checks: [
594
+ {
595
+ condition: {
596
+ call: 'email',
597
+ args: { value: { path: '/formData/email' } },
598
+ },
599
+ message: 'Invalid email format',
600
+ },
601
+ ],
602
+ },
603
+ {
604
+ id: 'phone-field',
605
+ component: 'TextField',
606
+ label: 'Phone Number',
607
+ value: { path: '/formData/phone' },
608
+ checks: [
609
+ {
610
+ condition: {
611
+ call: 'regex',
612
+ args: {
613
+ value: { path: '/formData/phone' },
614
+ pattern: '^\\+?[0-9]{10,15}$',
615
+ },
616
+ },
617
+ message: 'Invalid phone format',
618
+ },
619
+ ],
620
+ },
621
+ {
622
+ id: 'zip-field',
623
+ component: 'TextField',
624
+ label: 'Zip Code',
625
+ value: { path: '/formData/zip' },
626
+ checks: [
627
+ {
628
+ condition: {
629
+ call: 'regex',
630
+ args: {
631
+ value: { path: '/formData/zip' },
632
+ pattern: '^[0-9]{5}$',
633
+ },
634
+ },
635
+ message: 'Must be exactly 5 digits',
636
+ },
637
+ ],
638
+ },
639
+ {
640
+ id: 'terms-checkbox',
641
+ component: 'CheckBox',
642
+ label: 'I agree to the terms and conditions',
643
+ value: { path: '/formData/agree' },
644
+ },
645
+ {
646
+ id: 'submit-btn-text',
647
+ component: 'Text',
648
+ text: 'Submit Registration',
649
+ },
650
+ {
651
+ id: 'submit-btn',
652
+ component: 'Button',
653
+ variant: 'primary',
654
+ child: 'submit-btn-text',
655
+ checks: [
656
+ {
657
+ condition: {
658
+ call: 'and',
659
+ args: {
660
+ values: [
661
+ { path: '/formData/agree' },
662
+ {
663
+ call: 'or',
664
+ args: {
665
+ values: [
666
+ {
667
+ call: 'required',
668
+ args: { value: { path: '/formData/email' } },
669
+ },
670
+ {
671
+ call: 'required',
672
+ args: { value: { path: '/formData/phone' } },
673
+ },
674
+ ],
675
+ },
676
+ },
677
+ {
678
+ call: 'required',
679
+ args: { value: { path: '/formData/zip' } },
680
+ },
681
+ ],
682
+ },
683
+ },
684
+ message: 'You must agree to terms AND provide either Email or Phone, plus a Zip code.',
685
+ },
686
+ ],
687
+ action: {
688
+ event: {
689
+ name: 'gallery_register',
690
+ context: { data: { path: '/formData' } },
691
+ },
692
+ },
693
+ },
694
+ ],
695
+ value: {
696
+ now: '2025-12-15T12:00:00Z',
697
+ formData: {
698
+ email: '',
699
+ phone: '',
700
+ zip: '',
701
+ agree: false,
702
+ },
703
+ },
704
+ }),
705
+ },
706
+ ];
707
+ function GalleryContent({ onAction, }) {
708
+ const baseUrl = useExampleAgentRuntimesUrl();
709
+ const supportEndpoint = `${baseUrl}/api/v1/a2ui/support-assistant/`;
710
+ const supportHealthEndpoint = `${baseUrl}/api/v1/a2ui/support-assistant/health`;
711
+ const [selectedScene, setSelectedScene] = useState(SCENES[0].id);
712
+ const [backendLoading, setBackendLoading] = useState(false);
713
+ const [backendSummary, setBackendSummary] = useState('');
714
+ const [backendError, setBackendError] = useState(null);
715
+ const [backendHealth, setBackendHealth] = useState('unknown');
716
+ const [backendMode, setBackendMode] = useState(false);
717
+ const backendModeRef = useRef(false);
718
+ const sendSupportPayloadRef = useRef(null);
719
+ const handleAction = useCallback((action) => {
720
+ onAction(action);
721
+ if (!backendModeRef.current || !sendSupportPayloadRef.current) {
722
+ return;
723
+ }
724
+ void sendSupportPayloadRef.current({
725
+ action: action.name,
726
+ context: action.context,
727
+ });
728
+ }, [onAction]);
729
+ const { surfaces, processMessages, resetSurfaces, themeStyle } = useA2uiProcessor(handleAction);
730
+ const sendSupportPayload = useCallback(async (payload) => {
731
+ setBackendLoading(true);
732
+ setBackendError(null);
733
+ try {
734
+ const response = await fetch(supportEndpoint, {
735
+ method: 'POST',
736
+ headers: { 'Content-Type': 'application/json' },
737
+ body: JSON.stringify(payload),
738
+ });
739
+ if (!response.ok) {
740
+ const data = (await response.json());
741
+ throw new Error(data.detail || 'Support endpoint request failed');
742
+ }
743
+ const parts = (await response.json());
744
+ const messages = extractA2uiMessages(parts);
745
+ if (messages.length === 0) {
746
+ throw new Error('Python backend did not return A2UI messages');
747
+ }
748
+ resetSurfaces();
749
+ processMessages(messages);
750
+ setBackendMode(true);
751
+ const serverText = parts
752
+ .map(part => {
753
+ const node = part.root ?? part;
754
+ return node.kind === 'text' ? node.text : undefined;
755
+ })
756
+ .filter(Boolean)
757
+ .join(' ');
758
+ setBackendSummary(serverText ||
759
+ 'Python backend surface loaded from /api/v1/a2ui/support-assistant/.');
760
+ }
761
+ catch (err) {
762
+ setBackendError(err instanceof Error ? err.message : 'Unknown backend error');
763
+ }
764
+ finally {
765
+ setBackendLoading(false);
766
+ }
767
+ }, [processMessages, resetSurfaces, supportEndpoint]);
768
+ useEffect(() => {
769
+ backendModeRef.current = backendMode;
770
+ }, [backendMode]);
771
+ useEffect(() => {
772
+ sendSupportPayloadRef.current = sendSupportPayload;
773
+ }, [sendSupportPayload]);
774
+ useEffect(() => {
775
+ let cancelled = false;
776
+ const probe = async () => {
777
+ try {
778
+ const response = await fetch(supportHealthEndpoint);
779
+ if (!response.ok) {
780
+ throw new Error('Health check failed');
781
+ }
782
+ const data = (await response.json());
783
+ if (!cancelled) {
784
+ setBackendHealth(data.status === 'healthy' ? 'healthy' : 'unhealthy');
785
+ }
786
+ }
787
+ catch {
788
+ if (!cancelled) {
789
+ setBackendHealth('unhealthy');
790
+ }
791
+ }
792
+ };
793
+ void probe();
794
+ return () => {
795
+ cancelled = true;
796
+ };
797
+ }, [supportHealthEndpoint]);
798
+ const currentScene = useMemo(() => SCENES.find(scene => scene.id === selectedScene) ?? SCENES[0], [selectedScene]);
799
+ const showScene = useCallback((scene) => {
800
+ resetSurfaces();
801
+ processMessages(scene.messages);
802
+ setBackendMode(false);
803
+ setBackendSummary('');
804
+ setBackendError(null);
805
+ }, [processMessages, resetSurfaces]);
806
+ const showAllScenes = useCallback(() => {
807
+ resetSurfaces();
808
+ SCENES.forEach(scene => {
809
+ processMessages(scene.messages);
810
+ });
811
+ setBackendMode(false);
812
+ setBackendSummary('');
813
+ setBackendError(null);
814
+ }, [processMessages, resetSurfaces]);
815
+ useEffect(() => {
816
+ showScene(currentScene);
817
+ }, [currentScene, showScene]);
818
+ return (_jsxs(Box, { sx: { display: 'flex', flexDirection: 'column', gap: 3, p: 3 }, children: [_jsxs(Box, { sx: {
819
+ width: '100%',
820
+ border: '1px solid',
821
+ borderColor: 'border.default',
822
+ borderRadius: 2,
823
+ p: 3,
824
+ backgroundColor: 'canvas.default',
825
+ display: 'flex',
826
+ flexDirection: 'column',
827
+ gap: 3,
828
+ }, children: [_jsx(Text, { sx: { fontSize: 2, fontWeight: 'bold' }, children: "Scenes" }), _jsx(SegmentedControl, { "aria-label": "A2UI gallery scene picker", fullWidth: true, children: SCENES.map(scene => (_jsx(SegmentedControl.Button, { selected: scene.id === selectedScene, onClick: () => setSelectedScene(scene.id), children: scene.label }, scene.id))) }), _jsx(Text, { sx: { color: 'fg.muted', fontSize: 1 }, children: currentScene.description }), _jsxs(Box, { sx: { display: 'flex', gap: 2, flexWrap: 'wrap' }, children: [_jsx(Button, { size: "small", variant: "primary", onClick: () => showScene(currentScene), children: "Reload" }), _jsx(Button, { size: "small", variant: "default", onClick: showAllScenes, children: "Show All" }), _jsx(Button, { size: "small", variant: "invisible", onClick: resetSurfaces, children: "Clear" }), _jsx(Button, { size: "small", variant: "default", onClick: () => void sendSupportPayload({
829
+ query: 'Production deploy is failing with auth errors. Help me triage.',
830
+ }), disabled: backendLoading, children: backendLoading
831
+ ? 'Loading Python Backend…'
832
+ : 'Load Python Backend Agent' })] }), _jsxs(Text, { sx: { color: 'fg.muted', fontSize: 1 }, children: ["Python endpoint status: ", backendHealth] }), backendSummary && (_jsx(Text, { sx: { color: 'fg.muted', fontSize: 1 }, children: backendSummary })), backendError && (_jsx(Text, { sx: { color: 'danger.fg', fontSize: 1 }, children: backendError }))] }), _jsx(Box, { style: themeStyle, sx: {
833
+ ...A2UI_RENDER_SCOPE_SX,
834
+ width: '100%',
835
+ minWidth: 0,
836
+ display: 'flex',
837
+ flexDirection: 'column',
838
+ gap: 4,
839
+ }, children: surfaces.map(surface => (_jsx(Box, { sx: { width: '100%' }, children: _jsx(A2uiSurfaceComposed, { surface: surface }) }, surface.id))) })] }));
840
+ }
841
+ const A2UiComponentsGalleryScene = () => {
842
+ const [lastAction, setLastAction] = useState(null);
843
+ const handleAction = useCallback((action) => {
844
+ console.warn('A2UI Gallery Action:', action);
845
+ setLastAction(action);
846
+ }, []);
847
+ return (_jsx(_Fragment, { children: _jsx(A2uiMarkdownProvider, { children: _jsxs(Box, { sx: {
848
+ height: '100%',
849
+ overflow: 'auto',
850
+ display: 'flex',
851
+ flexDirection: 'column',
852
+ }, children: [_jsxs(Box, { sx: {
853
+ px: 3,
854
+ py: 3,
855
+ borderBottom: '1px solid',
856
+ borderColor: 'border.default',
857
+ backgroundColor: 'canvas.default',
858
+ }, children: [_jsx(Text, { as: "h1", sx: { fontSize: 3, fontWeight: 'bold' }, children: "\uD83C\uDFA8 A2UI Components Gallery" }), _jsx(Text, { sx: { color: 'fg.muted' }, children: "Showcases the A2UI basic catalog rendered live via MessageProcessor and A2uiSurface." })] }), _jsx(GalleryContent, { onAction: handleAction }), _jsx(Box, { sx: {
859
+ borderTop: '1px solid',
860
+ borderColor: 'border.default',
861
+ p: 3,
862
+ fontFamily: 'mono',
863
+ fontSize: 0,
864
+ backgroundColor: 'canvas.default',
865
+ whiteSpace: 'pre-wrap',
866
+ maxHeight: 220,
867
+ overflow: 'auto',
868
+ }, children: lastAction
869
+ ? JSON.stringify(lastAction, null, 2)
870
+ : 'No action triggered yet.' })] }) }) }));
871
+ };
872
+ export default A2UiComponentsGalleryScene;