@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.
- package/lib/AgentDocument.js +5 -22
- package/lib/AgentNode.d.ts +1 -1
- package/lib/AgentNode.js +193 -23
- package/lib/AgentNotebook.js +1 -1
- package/lib/App.d.ts +1 -1
- package/lib/AppExamples2.d.ts +1 -1
- package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
- package/lib/agent-node/AgentNodeGallery.js +19 -15
- package/lib/agent-node/themeStore.js +7 -6
- package/lib/agents/AgentDetails.d.ts +8 -2
- package/lib/agents/AgentDetails.js +41 -11
- package/lib/agents/AgentRuntimeChat.d.ts +3 -3
- package/lib/agents/AgentRuntimeChat.js +15 -15
- package/lib/api/agents.d.ts +10 -10
- package/lib/api/agents.js +15 -15
- package/lib/api/checkpoints.d.ts +40 -0
- package/lib/api/checkpoints.js +75 -0
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/notifications.d.ts +21 -6
- package/lib/api/notifications.js +32 -14
- package/lib/api/runtimes/environments.d.ts +406 -4
- package/lib/api/runtimes/environments.js +641 -9
- package/lib/api/runtimes/runtimes.d.ts +19 -19
- package/lib/api/runtimes/runtimes.js +47 -46
- package/lib/api/spacer/notebooks.js +1 -1
- package/lib/chat/Chat.d.ts +16 -4
- package/lib/chat/Chat.js +18 -5
- package/lib/chat/ChatFloating.d.ts +20 -2
- package/lib/chat/ChatFloating.js +196 -118
- package/lib/chat/ChatInline.d.ts +15 -0
- package/lib/chat/ChatInline.js +0 -18
- package/lib/chat/ChatPopupStandalone.d.ts +1 -1
- package/lib/chat/ChatSidebar.d.ts +14 -2
- package/lib/chat/ChatSidebar.js +1 -1
- package/lib/chat/ChatStandalone.d.ts +1 -1
- package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
- package/lib/chat/EphemeralSurfaceControl.js +55 -0
- package/lib/chat/base/ChatAvailability.d.ts +34 -0
- package/lib/chat/base/ChatAvailability.js +18 -0
- package/lib/chat/base/ChatBase.d.ts +2 -1
- package/lib/chat/base/ChatBase.js +657 -28
- package/lib/chat/display/ButtonGlow.d.ts +9 -0
- package/lib/chat/display/ButtonGlow.js +60 -0
- package/lib/chat/display/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +81 -12
- package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
- package/lib/chat/display/PoweredByTag.d.ts +1 -1
- package/lib/chat/display/groupSuggestions.d.ts +21 -0
- package/lib/chat/display/groupSuggestions.js +18 -0
- package/lib/chat/document/EphemeralDocument.d.ts +70 -6
- package/lib/chat/document/EphemeralDocument.js +154 -52
- package/lib/chat/header/ChatHeader.d.ts +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
- package/lib/chat/header/ChatHeaderBase.js +21 -102
- package/lib/chat/header/ChatViewModeToggle.d.ts +29 -0
- package/lib/chat/header/ChatViewModeToggle.js +55 -0
- package/lib/chat/index.d.ts +5 -1
- package/lib/chat/index.js +9 -1
- package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +22 -1
- package/lib/chat/messages/ChatMessageList.js +370 -166
- package/lib/chat/messages/ChatMessages.d.ts +1 -1
- package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
- package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
- package/lib/chat/messages/TurnFooter.d.ts +42 -0
- package/lib/chat/messages/TurnFooter.js +75 -0
- package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
- package/lib/chat/messages/assistantMarkdown.js +56 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
- package/lib/chat/notebook/EphemeralNotebook.js +194 -61
- package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
- package/lib/chat/parts/MessagePart.d.ts +1 -1
- package/lib/chat/parts/ReasoningPart.d.ts +8 -1
- package/lib/chat/parts/TextPart.d.ts +1 -1
- package/lib/chat/parts/ToolPart.d.ts +8 -1
- package/lib/chat/prompt/FloatingCard.d.ts +26 -0
- package/lib/chat/prompt/FloatingCard.js +80 -0
- package/lib/chat/prompt/InputPrompt.d.ts +206 -53
- package/lib/chat/prompt/InputPrompt.js +161 -80
- package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
- package/lib/chat/prompt/InputPromptBase.js +225 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
- package/lib/chat/prompt/InputPromptLexical.js +227 -30
- package/lib/chat/prompt/InputPromptText.d.ts +10 -2
- package/lib/chat/prompt/InputPromptText.js +35 -3
- package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
- package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
- package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
- package/lib/chat/prompt/footer/index.d.ts +7 -0
- package/lib/chat/prompt/footer/index.js +11 -0
- package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
- package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
- package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
- package/lib/chat/prompt/header/InPromptHeader.js +14 -0
- package/lib/chat/prompt/header/index.d.ts +7 -0
- package/lib/chat/prompt/header/index.js +11 -0
- package/lib/chat/prompt/index.d.ts +8 -4
- package/lib/chat/prompt/index.js +15 -3
- package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
- package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
- package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
- package/lib/chat/prompt/menus/ModelSelector.js +27 -0
- package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
- package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
- package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
- package/lib/chat/prompt/menus/index.d.ts +15 -0
- package/lib/chat/prompt/menus/index.js +19 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
- package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
- package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
- package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
- package/lib/chat/prompt/plugins/MentionChip.js +24 -0
- package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
- package/lib/chat/prompt/plugins/MentionNode.js +77 -0
- package/lib/chat/prompt/promptHistory.d.ts +52 -0
- package/lib/chat/prompt/promptHistory.js +123 -0
- package/lib/chat/prompt/stack.d.ts +81 -0
- package/lib/chat/prompt/stack.js +41 -0
- package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
- package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
- package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
- package/lib/chat/tools/A2AAgentDialog.js +265 -0
- package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
- package/lib/chat/tools/index.d.ts +1 -0
- package/lib/chat/tools/index.js +1 -0
- package/lib/chat/usage/ContextPie.d.ts +17 -0
- package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
- package/lib/chat/useViewportDrag.d.ts +11 -0
- package/lib/chat/useViewportDrag.js +61 -0
- package/lib/chat/viewModes.d.ts +51 -0
- package/lib/chat/viewModes.js +57 -0
- package/lib/client/AgentRuntimesClient.d.ts +10 -9
- package/lib/client/AgentRuntimesClient.js +1 -1
- package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
- package/lib/client/AgentsMixin.d.ts +12 -12
- package/lib/client/AgentsMixin.js +31 -31
- package/lib/client/IAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.js +10 -10
- package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
- package/lib/client/mixins/RuntimesMixin.js +54 -21
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
- package/lib/components/agents/AgentSummary.d.ts +13 -0
- package/lib/components/agents/AgentSummary.js +21 -4
- package/lib/components/cards/NotificationEventCard.d.ts +1 -1
- package/lib/components/cards/OutputCard.d.ts +1 -1
- package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
- package/lib/components/cards/ToolApprovalCard.js +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
- package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +9 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +95 -23
- package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
- package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
- package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
- package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
- package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
- package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
- package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
- package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +97 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +184 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
- package/lib/components/code-sandboxes/index.d.ts +1 -0
- package/lib/components/code-sandboxes/index.js +1 -0
- package/lib/components/context/SpaceSelect.d.ts +1 -1
- package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
- package/lib/components/icons/ArtifactIcon.d.ts +1 -0
- package/lib/components/icons/ArtifactIcon.js +2 -1
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.d.ts +1 -0
- package/lib/components/progress/CreditsIndicator.js +0 -4
- package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
- package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
- package/lib/components/snippets/SnippetDialog.d.ts +1 -0
- package/lib/components/snippets/SnippetDialog.js +0 -4
- package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
- package/lib/components/specs/SpecPayloadPreview.js +102 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/context/ContextDistribution.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +2 -1
- package/lib/context/ContextPanel.d.ts +1 -1
- package/lib/context/ContextUsage.d.ts +1 -1
- package/lib/context/CostTracker.d.ts +1 -1
- package/lib/context/CostUsageChart.d.ts +1 -1
- package/lib/context/CostUsageChart.js +4 -4
- package/lib/context/MessageHistory.d.ts +3 -2
- package/lib/context/TokenUsageChart.d.ts +1 -1
- package/lib/context/TokenUsageChart.js +4 -4
- package/lib/examples/A2UiAgentExample.js +15 -6
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
- package/lib/examples/A2UiContactCardExample.d.ts +10 -0
- package/lib/examples/A2UiContactCardExample.js +23 -170
- package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
- package/lib/examples/A2UiJupyterOutputExample.js +792 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
- package/lib/examples/A2UiRestaurantExample.js +24 -179
- package/lib/examples/A2UiViewerExample.d.ts +10 -0
- package/lib/examples/A2UiViewerExample.js +24 -378
- package/lib/examples/AgUiAgenticExample.js +2 -4
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
- package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
- package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
- package/lib/examples/AgUiSharedStateExample.js +2 -4
- package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
- package/lib/examples/AgentA2AExample.d.ts +17 -0
- package/lib/examples/AgentA2AExample.js +56 -0
- package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
- package/lib/examples/AgentCheckpointsExample.js +72 -54
- package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
- package/lib/examples/AgentCodeSandboxExample.js +93 -303
- package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
- package/lib/examples/AgentCodeSandboxesExample.js +56 -162
- package/lib/examples/AgentCodemodeExample.d.ts +7 -2
- package/lib/examples/AgentCodemodeExample.js +60 -125
- package/lib/examples/AgentCompactionExample.js +19 -135
- package/lib/examples/AgentEvalsExample.js +34 -66
- package/lib/examples/AgentGuardrailsExample.js +64 -112
- package/lib/examples/AgentHooksExample.d.ts +11 -0
- package/lib/examples/AgentHooksExample.js +30 -67
- package/lib/examples/AgentInferenceProviderExample.js +8 -32
- package/lib/examples/AgentLoopExample.d.ts +4 -2
- package/lib/examples/AgentLoopExample.js +45 -93
- package/lib/examples/AgentMCPExample.js +30 -79
- package/lib/examples/AgentMemoryExample.js +21 -64
- package/lib/examples/AgentMonitoringExample.js +33 -94
- package/lib/examples/AgentNotificationsExample.js +56 -95
- package/lib/examples/AgentOtelExample.js +35 -88
- package/lib/examples/AgentOutputsExample.d.ts +2 -1
- package/lib/examples/AgentOutputsExample.js +16 -137
- package/lib/examples/AgentParametersExample.js +7 -17
- package/lib/examples/AgentSkillsExample.js +40 -154
- package/lib/examples/AgentSubagentsExample.d.ts +7 -6
- package/lib/examples/AgentSubagentsExample.js +80 -191
- package/lib/examples/AgentToolApprovalsExample.js +35 -91
- package/lib/examples/AgentTriggersExample.js +43 -59
- package/lib/examples/AgentspecsExample.js +4 -4
- package/lib/examples/CellExample.d.ts +1 -1
- package/lib/examples/ChatExample.d.ts +12 -5
- package/lib/examples/ChatExample.js +38 -13
- package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
- package/lib/examples/CopilotKitLexicalExample.js +4 -41
- package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
- package/lib/examples/CopilotKitNotebookExample.js +2 -14
- package/lib/examples/DecksAgent.d.ts +21 -0
- package/lib/examples/DecksAgent.js +23 -0
- package/lib/examples/DocumentPageAgent.d.ts +19 -0
- package/lib/examples/DocumentPageAgent.js +15 -0
- package/lib/examples/Lexical2Example.d.ts +2 -2
- package/lib/examples/Lexical2Example.js +17 -38
- package/lib/examples/LexicalAgentExample.d.ts +2 -1
- package/lib/examples/LexicalAgentExample.js +29 -102
- package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
- package/lib/examples/LexicalAgentSidebarExample.js +99 -131
- package/lib/examples/LoopShellExample.d.ts +38 -0
- package/lib/examples/LoopShellExample.js +68 -0
- package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
- package/lib/examples/LoopWorkspaceEmbed.js +73 -0
- package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
- package/lib/examples/LoopWorkspaceExample.js +151 -0
- package/lib/examples/NotebookAgentExample.d.ts +13 -0
- package/lib/examples/NotebookAgentExample.js +36 -86
- package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
- package/lib/examples/NotebookAgentSidebarExample.js +39 -83
- package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
- package/lib/examples/NotebookCollaborationExample.js +108 -20
- package/lib/examples/NotebookExample.d.ts +1 -1
- package/lib/examples/NotebookExample.js +20 -10
- package/lib/examples/NotebookPageAgent.d.ts +23 -0
- package/lib/examples/NotebookPageAgent.js +17 -0
- package/lib/examples/components/ExampleWrapper.d.ts +5 -0
- package/lib/examples/components/ExampleWrapper.js +36 -28
- package/lib/examples/components/LexicalEditor.d.ts +1 -1
- package/lib/examples/components/LexicalEditor.js +4 -24
- package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
- package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
- package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
- package/lib/examples/example-selector.js +26 -6
- package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
- package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
- package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
- package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
- package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
- package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
- package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
- package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
- package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
- package/lib/examples/index.d.ts +4 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/lexical/editorConfig.d.ts +2 -75
- package/lib/examples/lexical/editorConfig.js +26 -48
- package/lib/examples/lexical/lexical-theme.css +65 -47
- package/lib/examples/main.js +450 -322
- package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
- package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
- package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
- package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiViewerScene.js +395 -0
- package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
- package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
- package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
- package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
- package/lib/examples/utils/exampleSurfaces.js +38 -0
- package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
- package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
- package/lib/examples/utils/localUrl.d.ts +2 -0
- package/lib/examples/utils/localUrl.js +49 -0
- package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
- package/lib/examples/utils/notebookToolbarItems.js +129 -0
- package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
- package/lib/examples/utils/runtimeTargetStore.js +82 -1
- package/lib/examples/utils/themedProvider.d.ts +7 -0
- package/lib/examples/utils/themedProvider.js +57 -4
- package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
- package/lib/examples/utils/waitForAgent.d.ts +23 -0
- package/lib/examples/utils/waitForAgent.js +24 -0
- package/lib/examples2/CellExample.d.ts +1 -1
- package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
- package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
- package/lib/examples2/main.js +24 -4
- package/lib/extensions/A2UIExtension.d.ts +1 -1
- package/lib/hooks/index.d.ts +8 -5
- package/lib/hooks/index.js +20 -5
- package/lib/hooks/useAgentRuntimes.d.ts +49 -22
- package/lib/hooks/useAgentRuntimes.js +214 -90
- package/lib/hooks/useAgentsCatalog.js +32 -4
- package/lib/hooks/useBrowserAgent.d.ts +26 -0
- package/lib/hooks/useBrowserAgent.js +75 -0
- package/lib/hooks/useBrowserInference.d.ts +27 -0
- package/lib/hooks/useBrowserInference.js +67 -0
- package/lib/hooks/useCheckpoints.d.ts +8 -17
- package/lib/hooks/useCheckpoints.js +25 -59
- package/lib/hooks/useConfig.d.ts +1 -1
- package/lib/hooks/useConfig.js +5 -1
- package/lib/hooks/useContextSnapshot.d.ts +18 -7
- package/lib/hooks/useContextSnapshot.js +14 -10
- package/lib/hooks/useNotifications.d.ts +11 -11
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/useProjects.d.ts +7 -19
- package/lib/hooks/useProjects.js +5 -5
- package/lib/hooks/useSkills.d.ts +0 -1
- package/lib/hooks/useSkills.js +6 -2
- package/lib/hooks/useToolApprovals.d.ts +8 -8
- package/lib/hooks/useToolApprovals.js +3 -3
- package/lib/identity/AgentIdentity.d.ts +9 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/jupyter/index.d.ts +2 -1
- package/lib/jupyter/index.js +2 -1
- package/lib/jupyter/serverExecution.d.ts +78 -0
- package/lib/jupyter/serverExecution.js +258 -0
- package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
- package/lib/jupyter/useResumeServerExecutions.js +64 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
- package/lib/lexical/ChatInlinePlugin.js +0 -36
- package/lib/loop/core/focusRequests.d.ts +10 -0
- package/lib/loop/core/focusRequests.js +46 -0
- package/lib/loop/core/index.d.ts +903 -0
- package/lib/loop/core/index.js +264 -0
- package/lib/loop/core/promptStore.d.ts +44 -0
- package/lib/loop/core/promptStore.js +63 -0
- package/lib/loop/core/surfaceRequests.d.ts +33 -0
- package/lib/loop/core/surfaceRequests.js +29 -0
- package/lib/loop/core/toolbar.d.ts +28 -0
- package/lib/loop/core/toolbar.js +59 -0
- package/lib/loop/embed/LoopEmbed.d.ts +57 -0
- package/lib/loop/embed/LoopEmbed.js +124 -0
- package/lib/loop/extensions.d.ts +10 -0
- package/lib/loop/extensions.js +49 -0
- package/lib/loop/index.d.ts +68 -0
- package/lib/loop/index.js +87 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
- package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
- package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
- package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
- package/lib/loop/plugins/a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/a2ui/index.js +50 -0
- package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
- package/lib/loop/plugins/a2ui-scene/index.js +28 -0
- package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2a/index.js +26 -0
- package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui/index.js +42 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
- package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
- package/lib/loop/plugins/agent-capacity/index.js +52 -0
- package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
- package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
- package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
- package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
- package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
- package/lib/loop/plugins/agent-codemode/index.js +41 -0
- package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
- package/lib/loop/plugins/agent-compaction/index.js +34 -0
- package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
- package/lib/loop/plugins/agent-evals/index.js +25 -0
- package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
- package/lib/loop/plugins/agent-guardrails/index.js +25 -0
- package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
- package/lib/loop/plugins/agent-hooks/index.js +28 -0
- package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
- package/lib/loop/plugins/agent-inference/index.js +29 -0
- package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
- package/lib/loop/plugins/agent-mcp/index.js +25 -0
- package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
- package/lib/loop/plugins/agent-memory/index.js +25 -0
- package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
- package/lib/loop/plugins/agent-monitoring/index.js +25 -0
- package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
- package/lib/loop/plugins/agent-notifications/index.js +25 -0
- package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
- package/lib/loop/plugins/agent-otel/index.js +25 -0
- package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
- package/lib/loop/plugins/agent-outputs/index.js +25 -0
- package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
- package/lib/loop/plugins/agent-parameters/index.js +25 -0
- package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
- package/lib/loop/plugins/agent-skills/index.js +25 -0
- package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
- package/lib/loop/plugins/agent-subagents/index.js +25 -0
- package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
- package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
- package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
- package/lib/loop/plugins/agent-triggers/index.js +26 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
- package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
- package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
- package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
- package/lib/loop/plugins/agents/SandboxView.js +43 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
- package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
- package/lib/loop/plugins/agents/agentIcons.js +88 -0
- package/lib/loop/plugins/agents/browserService.d.ts +50 -0
- package/lib/loop/plugins/agents/browserService.js +233 -0
- package/lib/loop/plugins/agents/index.d.ts +13 -0
- package/lib/loop/plugins/agents/index.js +17 -0
- package/lib/loop/plugins/agents/plugin.d.ts +91 -0
- package/lib/loop/plugins/agents/plugin.js +201 -0
- package/lib/loop/plugins/agents/service.d.ts +99 -0
- package/lib/loop/plugins/agents/service.js +167 -0
- package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
- package/lib/loop/plugins/agents/specSubagents.js +33 -0
- package/lib/loop/plugins/agents/switchable.d.ts +107 -0
- package/lib/loop/plugins/agents/switchable.js +405 -0
- package/lib/loop/plugins/agents/team.d.ts +87 -0
- package/lib/loop/plugins/agents/team.js +143 -0
- package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
- package/lib/loop/plugins/agents/useSandboxService.js +36 -0
- package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
- package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
- package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
- package/lib/loop/plugins/agentspecs/index.js +63 -0
- package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
- package/lib/loop/plugins/chat/ChatView.js +1679 -0
- package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
- package/lib/loop/plugins/chat/chatViewTools.js +92 -0
- package/lib/loop/plugins/chat/index.d.ts +111 -0
- package/lib/loop/plugins/chat/index.js +143 -0
- package/lib/loop/plugins/chat/turnState.d.ts +41 -0
- package/lib/loop/plugins/chat/turnState.js +90 -0
- package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
- package/lib/loop/plugins/chat-extras/index.js +51 -0
- package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
- package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
- package/lib/loop/plugins/chat-header/index.d.ts +3 -0
- package/lib/loop/plugins/chat-header/index.js +21 -0
- package/lib/loop/plugins/chat-view/index.d.ts +10 -0
- package/lib/loop/plugins/chat-view/index.js +29 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
- package/lib/loop/plugins/commands/index.d.ts +20 -0
- package/lib/loop/plugins/commands/index.js +148 -0
- package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
- package/lib/loop/plugins/decks/DeckSurface.js +6 -0
- package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
- package/lib/loop/plugins/decks/DecksMenu.js +42 -0
- package/lib/loop/plugins/decks/index.d.ts +19 -0
- package/lib/loop/plugins/decks/index.js +133 -0
- package/lib/loop/plugins/decks/surface.d.ts +7 -0
- package/lib/loop/plugins/decks/surface.js +11 -0
- package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
- package/lib/loop/plugins/document/DocumentView.js +68 -0
- package/lib/loop/plugins/document/index.d.ts +3 -0
- package/lib/loop/plugins/document/index.js +86 -0
- package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
- package/lib/loop/plugins/document/openingDocument.js +122 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
- package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/document-toolbar/index.js +35 -0
- package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
- package/lib/loop/plugins/document-toolbar/names.js +10 -0
- package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
- package/lib/loop/plugins/document-view/index.d.ts +10 -0
- package/lib/loop/plugins/document-view/index.js +28 -0
- package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
- package/lib/loop/plugins/graph/GraphToggle.js +22 -0
- package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
- package/lib/loop/plugins/graph/GraphView.js +6 -0
- package/lib/loop/plugins/graph/index.d.ts +5 -0
- package/lib/loop/plugins/graph/index.js +80 -0
- package/lib/loop/plugins/graph/viewType.d.ts +10 -0
- package/lib/loop/plugins/graph/viewType.js +14 -0
- package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
- package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
- package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
- package/lib/loop/plugins/input-prompt/index.js +26 -0
- package/lib/loop/plugins/models/index.d.ts +3 -0
- package/lib/loop/plugins/models/index.js +49 -0
- package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
- package/lib/loop/plugins/notebook/NotebookView.js +189 -0
- package/lib/loop/plugins/notebook/index.d.ts +3 -0
- package/lib/loop/plugins/notebook/index.js +91 -0
- package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
- package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
- package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
- package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
- package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
- package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
- package/lib/loop/plugins/notebook-view/index.js +30 -0
- package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
- package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
- package/lib/loop/plugins/page-layout/index.d.ts +71 -0
- package/lib/loop/plugins/page-layout/index.js +160 -0
- package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
- package/lib/loop/plugins/plugins-panel/index.js +74 -0
- package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
- package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
- package/lib/loop/plugins/prompt/index.d.ts +11 -0
- package/lib/loop/plugins/prompt/index.js +73 -0
- package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
- package/lib/loop/plugins/shell/editorChoice.js +58 -0
- package/lib/loop/plugins/shell/index.d.ts +47 -0
- package/lib/loop/plugins/shell/index.js +142 -0
- package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
- package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
- package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
- package/lib/loop/plugins/subagent-activity/index.js +42 -0
- package/lib/loop/plugins/view-switch/index.d.ts +46 -0
- package/lib/loop/plugins/view-switch/index.js +68 -0
- package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
- package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
- package/lib/loop/plugins/window-frame/index.d.ts +6 -0
- package/lib/loop/plugins/window-frame/index.js +79 -0
- package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
- package/lib/loop/plugins/window-frame/slots.js +30 -0
- package/lib/loop/presets.d.ts +181 -0
- package/lib/loop/presets.js +141 -0
- package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
- package/lib/loop/shell/LoopWorkspace.js +231 -0
- package/lib/loop/shell/PluginToggles.d.ts +21 -0
- package/lib/loop/shell/PluginToggles.js +41 -0
- package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
- package/lib/loop/shell/ViewSwitcher.js +43 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
- package/lib/loop/shell/index.d.ts +10 -0
- package/lib/loop/shell/index.js +14 -0
- package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
- package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
- package/lib/loop-example-main.d.ts +1 -0
- package/lib/loop-example-main.js +42 -0
- package/lib/loop-main.d.ts +1 -0
- package/lib/loop-main.js +138 -0
- package/lib/mcp/McpServerManager.d.ts +1 -1
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
- package/lib/models/CodeSandboxVariant.d.ts +13 -5
- package/lib/models/CodeSandboxVariant.js +17 -5
- package/lib/models/Content.d.ts +26 -0
- package/lib/models/Deck.d.ts +14 -0
- package/lib/models/Environment.d.ts +678 -5
- package/lib/models/Environment.js +12 -1
- package/lib/models/EnvironmentDTO.d.ts +24 -6
- package/lib/models/EnvironmentDTO.js +13 -2
- package/lib/models/Exercise.d.ts +0 -2
- package/lib/models/ItemType.d.ts +1 -1
- package/lib/models/Library.d.ts +0 -2
- package/lib/models/Notebook.d.ts +0 -2
- package/lib/models/ProjectDTO.d.ts +2 -2
- package/lib/models/ProjectDTO.js +4 -4
- package/lib/models/Runtime.d.ts +17 -11
- package/lib/models/RuntimeDTO.d.ts +16 -7
- package/lib/models/RuntimeDTO.js +9 -9
- package/lib/models/Space.d.ts +10 -0
- package/lib/models/Space.js +1 -1
- package/lib/models/SpaceDTO.d.ts +1 -1
- package/lib/models/SpaceItem.d.ts +2 -2
- package/lib/models/environments.generated.d.ts +141 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +1 -1
- package/lib/models/index.js +1 -1
- package/lib/protocols/A2AAdapter.d.ts +39 -6
- package/lib/protocols/A2AAdapter.js +180 -11
- package/lib/protocols/ACPAdapter.js +40 -37
- package/lib/protocols/AGUIAdapter.d.ts +14 -0
- package/lib/protocols/AGUIAdapter.js +34 -9
- package/lib/protocols/BrowserAgentAdapter.d.ts +125 -0
- package/lib/protocols/BrowserAgentAdapter.js +317 -0
- package/lib/protocols/VercelAIAdapter.d.ts +10 -0
- package/lib/protocols/VercelAIAdapter.js +27 -7
- package/lib/protocols/index.d.ts +1 -0
- package/lib/protocols/index.js +1 -0
- package/lib/runtimes/actions.d.ts +8 -3
- package/lib/runtimes/actions.js +46 -14
- package/lib/runtimes/apis.d.ts +13 -4
- package/lib/runtimes/browser/agent.d.ts +54 -0
- package/lib/runtimes/browser/agent.js +63 -0
- package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
- package/lib/runtimes/browser/anonymousToken.js +300 -0
- package/lib/runtimes/browser/frontendTools.d.ts +61 -0
- package/lib/runtimes/browser/frontendTools.js +152 -0
- package/lib/runtimes/browser/index.d.ts +11 -0
- package/lib/runtimes/browser/index.js +20 -0
- package/lib/runtimes/browser/model.d.ts +52 -0
- package/lib/runtimes/browser/model.js +110 -0
- package/lib/runtimes/browser/protocol.d.ts +54 -0
- package/lib/runtimes/browser/protocol.js +35 -0
- package/lib/runtimes/browser/subagents.d.ts +131 -0
- package/lib/runtimes/browser/subagents.js +241 -0
- package/lib/runtimes/index.d.ts +3 -0
- package/lib/runtimes/index.js +3 -0
- package/lib/runtimes/lifecycle.d.ts +76 -0
- package/lib/runtimes/lifecycle.js +99 -0
- package/lib/runtimes/variants.d.ts +172 -0
- package/lib/runtimes/variants.js +187 -0
- package/lib/services/reconnectToRuntime.d.ts +2 -2
- package/lib/services/reconnectToRuntime.js +3 -3
- package/lib/services/sandboxServiceManagers.d.ts +2 -2
- package/lib/services/sandboxServiceManagers.js +11 -11
- package/lib/specs/agents/agents.d.ts +129 -112
- package/lib/specs/agents/agents.js +8200 -5044
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +4 -0
- package/lib/specs/frontendTools.js +77 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +38 -15
- package/lib/specs/models.d.ts +18 -0
- package/lib/specs/models.js +154 -0
- package/lib/specs/outputs.d.ts +2 -0
- package/lib/specs/outputs.js +31 -0
- package/lib/specs/personas.js +1 -1
- package/lib/specs/skills.js +7 -7
- package/lib/specs/teams/teams.d.ts +2 -0
- package/lib/specs/teams/teams.js +628 -111
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -1
- package/lib/state/substates/RuntimesState.d.ts +5 -5
- package/lib/state/substates/RuntimesState.js +14 -14
- package/lib/state/substates/index.d.ts +1 -1
- package/lib/state/substates/index.js +1 -1
- package/lib/stores/agentRuntimeStore.d.ts +43 -1
- package/lib/stores/agentRuntimeStore.js +100 -11
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/stories/Button.d.ts +1 -1
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +1 -1
- package/lib/test-setup.js +66 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
- package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
- package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
- package/lib/tools/adapters/commands/index.d.ts +1 -0
- package/lib/tools/adapters/commands/index.js +5 -0
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/types/a2a.d.ts +15 -1
- package/lib/types/agents-lifecycle.d.ts +11 -6
- package/lib/types/agents.d.ts +31 -6
- package/lib/types/agentspecs.d.ts +120 -4
- package/lib/types/chat.d.ts +251 -3
- package/lib/types/checkpoints.d.ts +20 -0
- package/lib/types/config.d.ts +13 -1
- package/lib/types/connection.d.ts +1 -1
- package/lib/types/evals.d.ts +2 -0
- package/lib/types/messages.d.ts +60 -0
- package/lib/types/models.d.ts +26 -0
- package/lib/types/notifications.d.ts +15 -6
- package/lib/types/outputs.d.ts +2 -0
- package/lib/types/protocol.d.ts +7 -2
- package/lib/types/stream.d.ts +48 -3
- package/lib/types/stream.js +5 -0
- package/lib/types/teams.d.ts +102 -4
- package/lib/types/tool-approvals.d.ts +1 -1
- package/lib/types/tools.d.ts +8 -2
- package/lib/utils/utils.js +7 -1
- package/package.json +376 -361
- package/scripts/codegen/compose.py +208 -0
- package/scripts/codegen/generate_agents.py +202 -31
- package/scripts/codegen/generate_evals.py +2 -0
- package/scripts/codegen/generate_frontend_tools.py +35 -6
- package/scripts/codegen/generate_mcp_servers.py +2 -2
- package/scripts/codegen/generate_models.py +40 -15
- package/scripts/codegen/generate_outputs.py +2 -0
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- package/scripts/codegen/generate_skills.py +2 -2
- package/scripts/codegen/generate_teams.py +178 -4
- package/scripts/codegen/generate_tools.py +6 -4
- package/scripts/gen_workers.py +278 -110
- package/scripts/generate-environments-types.py +404 -0
- package/lib/chat/prompt/InputFooter.d.ts +0 -58
- package/lib/chat/prompt/InputFooter.js +0 -194
- package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
- package/lib/chat/prompt/InputPromptFooter.js +0 -15
- package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
- package/lib/chat/prompt/InputPromptHeader.js +0 -15
- package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
- package/lib/hooks/useRuntimes.d.ts +0 -5
- package/lib/hooks/useRuntimes.js +0 -34
- package/lib/jupyter/kernelsHandler.d.ts +0 -8
- package/lib/jupyter/kernelsHandler.js +0 -39
- package/lib/models/Dataset.d.ts +0 -16
- package/lib/utils/Cells.d.ts +0 -2
- package/lib/utils/Cells.js +0 -28
- /package/lib/models/{Dataset.js → Deck.js} +0 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The browser harness, behind the protocol interface every chat surface uses.
|
|
3
|
+
*
|
|
4
|
+
* The other adapters carry messages to somewhere else — AG-UI over SSE, Vercel
|
|
5
|
+
* AI over SSE, ACP over a socket. This one carries them nowhere: the loop turns
|
|
6
|
+
* in this page with the Vercel AI SDK, and the adapter exists so that fact
|
|
7
|
+
* stays invisible to `<Chat>`, `<ChatFloating>` and everything downstream of
|
|
8
|
+
* them. Suggestions, tool rendering, the panel, the history: all unchanged.
|
|
9
|
+
*
|
|
10
|
+
* That is the point of putting it here rather than writing a bespoke chat for
|
|
11
|
+
* in-browser agents. There is nothing chat-shaped about the browser harness —
|
|
12
|
+
* only a different answer to "where does the loop turn" — so it belongs at the
|
|
13
|
+
* one seam the package already has for that question.
|
|
14
|
+
*
|
|
15
|
+
* **Who executes the tools.** In every other adapter the runtime asks and the
|
|
16
|
+
* client answers: a `tool-call` arrives, `ChatBase` runs the frontend tool's
|
|
17
|
+
* handler and posts the result back with {@link sendToolResult}. Here the SDK
|
|
18
|
+
* owns the loop and calls the handler itself, so a host must NOT also pass
|
|
19
|
+
* `frontendTools` to the chat component — the tools go to this adapter, and the
|
|
20
|
+
* chat is left to render what happened. {@link sendToolResult} is therefore a
|
|
21
|
+
* no-op: by the time anyone could call it, the tool has already run.
|
|
22
|
+
*
|
|
23
|
+
* @module protocols/BrowserAgentAdapter
|
|
24
|
+
*/
|
|
25
|
+
import { type LanguageModel } from 'ai';
|
|
26
|
+
import type { ProtocolAdapterConfig } from '../types/protocol';
|
|
27
|
+
import type { ChatMessage } from '../types/messages';
|
|
28
|
+
import type { FrontendToolDefinition } from '../types/tools';
|
|
29
|
+
import type { AgentStreamSubagentPayload } from '../types/stream';
|
|
30
|
+
import { BaseProtocolAdapter } from './BaseProtocolAdapter';
|
|
31
|
+
import type { TeamContextSharing } from '../types/teams';
|
|
32
|
+
import { type BrowserSubagent, type BrowserModelOptions, type FrontendToolsToVercelAIOptions } from '../runtimes/browser';
|
|
33
|
+
/**
|
|
34
|
+
* What a browser agent needs that a remote one does not.
|
|
35
|
+
*
|
|
36
|
+
* These arrive through `ProtocolConfig.options`, which `createProtocolAdapter`
|
|
37
|
+
* spreads onto the adapter config. They are live objects — a tool set bound to
|
|
38
|
+
* this page's notebook — rather than the URLs and tokens the other adapters
|
|
39
|
+
* take, which is exactly the difference between running a loop and calling one.
|
|
40
|
+
*/
|
|
41
|
+
export interface BrowserAgentAdapterConfig extends ProtocolAdapterConfig, FrontendToolsToVercelAIOptions {
|
|
42
|
+
/** The agent's instructions. From the spec's `systemPrompt`. */
|
|
43
|
+
instructions?: string;
|
|
44
|
+
/** The tools the agent can call in this page. */
|
|
45
|
+
frontendTools?: FrontendToolDefinition[];
|
|
46
|
+
/** Where to reach a model, unless one is supplied outright. */
|
|
47
|
+
inference?: Omit<BrowserModelOptions, 'model'>;
|
|
48
|
+
/** The model id, as a spec spells it. */
|
|
49
|
+
model?: string;
|
|
50
|
+
/** A ready-made model, for a host that resolves models its own way. */
|
|
51
|
+
languageModel?: LanguageModel;
|
|
52
|
+
/** Turn ceiling for one request. */
|
|
53
|
+
maxSteps?: number;
|
|
54
|
+
/**
|
|
55
|
+
* Agents this one may hand work to.
|
|
56
|
+
*
|
|
57
|
+
* They join the frontend tools as tools of their own, which is how the SDK
|
|
58
|
+
* models delegation: a subagent is another agent the parent reaches by
|
|
59
|
+
* calling it.
|
|
60
|
+
*/
|
|
61
|
+
subagents?: BrowserSubagent[];
|
|
62
|
+
/** What a subagent is told about the conversation so far. */
|
|
63
|
+
sharing?: TeamContextSharing;
|
|
64
|
+
/** Told what a delegated run does, as it does it — see `subagentTools`. */
|
|
65
|
+
onSubagentEvent?: (event: AgentStreamSubagentPayload) => void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* An agent loop running in the page, speaking the protocol adapter interface.
|
|
69
|
+
*/
|
|
70
|
+
export declare class BrowserAgentAdapter extends BaseProtocolAdapter {
|
|
71
|
+
readonly protocol: "browser-vercel-ai";
|
|
72
|
+
readonly protocolTransport: "http";
|
|
73
|
+
private browserConfig;
|
|
74
|
+
private abortController;
|
|
75
|
+
private tools;
|
|
76
|
+
constructor(config: BrowserAgentAdapterConfig);
|
|
77
|
+
/**
|
|
78
|
+
* Nothing to dial.
|
|
79
|
+
*
|
|
80
|
+
* The interface asks for a connection because the other adapters have one.
|
|
81
|
+
* This reports connected because the loop is already here.
|
|
82
|
+
*/
|
|
83
|
+
connect(): Promise<void>;
|
|
84
|
+
disconnect(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Stop the run in flight, and stay connected.
|
|
87
|
+
*
|
|
88
|
+
* What the chat's stop button calls on an adapter that has it. The other
|
|
89
|
+
* adapters cut a network stream; this one cuts the model call turning in
|
|
90
|
+
* the page — and, through the signal every delegation reads, the
|
|
91
|
+
* subagents that call started. Without this the button stopped the
|
|
92
|
+
* chat's *display* of the run and nothing else: the parent kept calling
|
|
93
|
+
* the model and the children kept working.
|
|
94
|
+
*/
|
|
95
|
+
stopGeneration(): void;
|
|
96
|
+
supportsFeature(feature: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Already done.
|
|
99
|
+
*
|
|
100
|
+
* The SDK executed the tool before this adapter reported it, so there is no
|
|
101
|
+
* result to carry back and nothing to resume. Kept because the interface has
|
|
102
|
+
* it and a host should not have to know which adapter it is holding.
|
|
103
|
+
*/
|
|
104
|
+
sendToolResult(): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* The model this agent asks, resolved once per request.
|
|
107
|
+
*
|
|
108
|
+
* The chat's model menu sends its choice with each message, as it does to
|
|
109
|
+
* a server-side harness; here it names the model the inference service is
|
|
110
|
+
* asked for, over the one the agent was built with. A ready-made
|
|
111
|
+
* `languageModel` is the host's own choice and is not swapped out.
|
|
112
|
+
*/
|
|
113
|
+
private resolveModel;
|
|
114
|
+
/**
|
|
115
|
+
* Run one turn of the loop and report it as it happens.
|
|
116
|
+
*
|
|
117
|
+
* The SDK's `fullStream` is already the event stream this interface wants —
|
|
118
|
+
* text deltas, tool calls, tool results, a finish — so the body of this is a
|
|
119
|
+
* translation rather than a protocol implementation.
|
|
120
|
+
*/
|
|
121
|
+
sendMessage(message: ChatMessage, options?: {
|
|
122
|
+
messages?: ChatMessage[];
|
|
123
|
+
model?: string;
|
|
124
|
+
}): Promise<void>;
|
|
125
|
+
}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The browser harness, behind the protocol interface every chat surface uses.
|
|
7
|
+
*
|
|
8
|
+
* The other adapters carry messages to somewhere else — AG-UI over SSE, Vercel
|
|
9
|
+
* AI over SSE, ACP over a socket. This one carries them nowhere: the loop turns
|
|
10
|
+
* in this page with the Vercel AI SDK, and the adapter exists so that fact
|
|
11
|
+
* stays invisible to `<Chat>`, `<ChatFloating>` and everything downstream of
|
|
12
|
+
* them. Suggestions, tool rendering, the panel, the history: all unchanged.
|
|
13
|
+
*
|
|
14
|
+
* That is the point of putting it here rather than writing a bespoke chat for
|
|
15
|
+
* in-browser agents. There is nothing chat-shaped about the browser harness —
|
|
16
|
+
* only a different answer to "where does the loop turn" — so it belongs at the
|
|
17
|
+
* one seam the package already has for that question.
|
|
18
|
+
*
|
|
19
|
+
* **Who executes the tools.** In every other adapter the runtime asks and the
|
|
20
|
+
* client answers: a `tool-call` arrives, `ChatBase` runs the frontend tool's
|
|
21
|
+
* handler and posts the result back with {@link sendToolResult}. Here the SDK
|
|
22
|
+
* owns the loop and calls the handler itself, so a host must NOT also pass
|
|
23
|
+
* `frontendTools` to the chat component — the tools go to this adapter, and the
|
|
24
|
+
* chat is left to render what happened. {@link sendToolResult} is therefore a
|
|
25
|
+
* no-op: by the time anyone could call it, the tool has already run.
|
|
26
|
+
*
|
|
27
|
+
* @module protocols/BrowserAgentAdapter
|
|
28
|
+
*/
|
|
29
|
+
import { streamText, stepCountIs } from 'ai';
|
|
30
|
+
import { createAssistantMessage, generateMessageId } from '../types/messages';
|
|
31
|
+
import { BaseProtocolAdapter } from './BaseProtocolAdapter';
|
|
32
|
+
import { createBrowserModel, frontendToolsToVercelAI, subagentTools, DEFAULT_BROWSER_MAX_STEPS, } from '../runtimes/browser';
|
|
33
|
+
/** The text of a chat message, whatever shape it arrived in. */
|
|
34
|
+
function messageText(message) {
|
|
35
|
+
if (typeof message.content === 'string') {
|
|
36
|
+
return message.content;
|
|
37
|
+
}
|
|
38
|
+
return message.content
|
|
39
|
+
.map(part => typeof part === 'string'
|
|
40
|
+
? part
|
|
41
|
+
: (part.text ?? ''))
|
|
42
|
+
.join('');
|
|
43
|
+
}
|
|
44
|
+
/** The roles a model can be sent. Everything else is presentation. */
|
|
45
|
+
function isModelRole(role) {
|
|
46
|
+
return role === 'user' || role === 'assistant' || role === 'system';
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* An agent loop running in the page, speaking the protocol adapter interface.
|
|
50
|
+
*/
|
|
51
|
+
export class BrowserAgentAdapter extends BaseProtocolAdapter {
|
|
52
|
+
protocol = 'browser-vercel-ai';
|
|
53
|
+
protocolTransport = 'http';
|
|
54
|
+
browserConfig;
|
|
55
|
+
abortController = null;
|
|
56
|
+
tools;
|
|
57
|
+
constructor(config) {
|
|
58
|
+
super(config);
|
|
59
|
+
this.browserConfig = config;
|
|
60
|
+
const page = frontendToolsToVercelAI(config.frontendTools ?? [], {
|
|
61
|
+
onHitlRequired: config.onHitlRequired,
|
|
62
|
+
onStatusChange: config.onStatusChange,
|
|
63
|
+
});
|
|
64
|
+
// One set: to the model there is no difference between reaching into the
|
|
65
|
+
// page and reaching another agent — both are tools it may call, and the
|
|
66
|
+
// names are what it chooses between.
|
|
67
|
+
this.tools = {
|
|
68
|
+
...page,
|
|
69
|
+
...(config.subagents?.length && config.inference
|
|
70
|
+
? subagentTools({
|
|
71
|
+
subagents: config.subagents,
|
|
72
|
+
inference: config.inference,
|
|
73
|
+
model: config.model,
|
|
74
|
+
sharing: config.sharing,
|
|
75
|
+
// A member reached by delegation works in this page too, with
|
|
76
|
+
// the same tools as the one that delegated.
|
|
77
|
+
tools: page,
|
|
78
|
+
onEvent: config.onSubagentEvent,
|
|
79
|
+
// The run being stopped stops its delegations too.
|
|
80
|
+
signal: () => this.abortController?.signal,
|
|
81
|
+
})
|
|
82
|
+
: {}),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Nothing to dial.
|
|
87
|
+
*
|
|
88
|
+
* The interface asks for a connection because the other adapters have one.
|
|
89
|
+
* This reports connected because the loop is already here.
|
|
90
|
+
*/
|
|
91
|
+
async connect() {
|
|
92
|
+
this.setConnectionState('connected');
|
|
93
|
+
}
|
|
94
|
+
disconnect() {
|
|
95
|
+
this.abortController?.abort();
|
|
96
|
+
this.abortController = null;
|
|
97
|
+
this.setConnectionState('disconnected');
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Stop the run in flight, and stay connected.
|
|
101
|
+
*
|
|
102
|
+
* What the chat's stop button calls on an adapter that has it. The other
|
|
103
|
+
* adapters cut a network stream; this one cuts the model call turning in
|
|
104
|
+
* the page — and, through the signal every delegation reads, the
|
|
105
|
+
* subagents that call started. Without this the button stopped the
|
|
106
|
+
* chat's *display* of the run and nothing else: the parent kept calling
|
|
107
|
+
* the model and the children kept working.
|
|
108
|
+
*/
|
|
109
|
+
stopGeneration() {
|
|
110
|
+
this.abortController?.abort();
|
|
111
|
+
}
|
|
112
|
+
supportsFeature(feature) {
|
|
113
|
+
// Tools, yes — they are the whole point. Not the rest: there is no server
|
|
114
|
+
// to hold a thread, resume a run, or approve anything out of band.
|
|
115
|
+
return feature === 'tools';
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Already done.
|
|
119
|
+
*
|
|
120
|
+
* The SDK executed the tool before this adapter reported it, so there is no
|
|
121
|
+
* result to carry back and nothing to resume. Kept because the interface has
|
|
122
|
+
* it and a host should not have to know which adapter it is holding.
|
|
123
|
+
*/
|
|
124
|
+
async sendToolResult() { }
|
|
125
|
+
/**
|
|
126
|
+
* The model this agent asks, resolved once per request.
|
|
127
|
+
*
|
|
128
|
+
* The chat's model menu sends its choice with each message, as it does to
|
|
129
|
+
* a server-side harness; here it names the model the inference service is
|
|
130
|
+
* asked for, over the one the agent was built with. A ready-made
|
|
131
|
+
* `languageModel` is the host's own choice and is not swapped out.
|
|
132
|
+
*/
|
|
133
|
+
resolveModel(requested) {
|
|
134
|
+
const { languageModel, inference, model } = this.browserConfig;
|
|
135
|
+
if (languageModel) {
|
|
136
|
+
return languageModel;
|
|
137
|
+
}
|
|
138
|
+
if (!inference) {
|
|
139
|
+
throw new Error('A browser agent needs either a `languageModel` or an `inference` endpoint to reach one.');
|
|
140
|
+
}
|
|
141
|
+
return createBrowserModel({ ...inference, model: requested || model });
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Run one turn of the loop and report it as it happens.
|
|
145
|
+
*
|
|
146
|
+
* The SDK's `fullStream` is already the event stream this interface wants —
|
|
147
|
+
* text deltas, tool calls, tool results, a finish — so the body of this is a
|
|
148
|
+
* translation rather than a protocol implementation.
|
|
149
|
+
*/
|
|
150
|
+
async sendMessage(message, options) {
|
|
151
|
+
this.abortController?.abort();
|
|
152
|
+
const abortController = new AbortController();
|
|
153
|
+
this.abortController = abortController;
|
|
154
|
+
// The history the chat is showing, minus anything the model has no role
|
|
155
|
+
// for — tool-call entries and activity items are presentation.
|
|
156
|
+
const history = (options?.messages ?? [])
|
|
157
|
+
.filter(entry => isModelRole(entry.role))
|
|
158
|
+
.map(entry => ({
|
|
159
|
+
role: entry.role,
|
|
160
|
+
content: messageText(entry),
|
|
161
|
+
}))
|
|
162
|
+
.filter(entry => entry.content.length > 0);
|
|
163
|
+
const latest = messageText(message);
|
|
164
|
+
if (latest && history[history.length - 1]?.content !== latest) {
|
|
165
|
+
history.push({ role: 'user', content: latest });
|
|
166
|
+
}
|
|
167
|
+
/*
|
|
168
|
+
* One message per text block, and an id of our own for each.
|
|
169
|
+
*
|
|
170
|
+
* A tool-using turn is several blocks: the model says what it is about to
|
|
171
|
+
* do, calls a tool, then says what it found. The SDK marks each with
|
|
172
|
+
* `text-start`, and the chat keys on the message id — same id replaces in
|
|
173
|
+
* place, a new id appends. Accumulating a whole turn under one id folded
|
|
174
|
+
* everything said after a tool call back into the sentence before it.
|
|
175
|
+
*
|
|
176
|
+
* The id must not be the provider's, either. `text-start` carries a block
|
|
177
|
+
* id that is unique only *within* a response — commonly "0" — so reusing
|
|
178
|
+
* it across turns made the second turn's text replace the first turn's
|
|
179
|
+
* message, which the chat then showed above the question that prompted it.
|
|
180
|
+
* Ours are unique for the life of the page, which is the scope the chat's
|
|
181
|
+
* message list actually has.
|
|
182
|
+
*/
|
|
183
|
+
let messageId = null;
|
|
184
|
+
let text = '';
|
|
185
|
+
/** Begin a new assistant message. */
|
|
186
|
+
const startBlock = () => {
|
|
187
|
+
messageId = generateMessageId();
|
|
188
|
+
text = '';
|
|
189
|
+
};
|
|
190
|
+
/** Emit the assistant message as it stands, so the chat can stream it. */
|
|
191
|
+
const emitText = () => {
|
|
192
|
+
const assistant = createAssistantMessage(text);
|
|
193
|
+
assistant.id = messageId;
|
|
194
|
+
this.emit({ type: 'message', message: assistant, timestamp: new Date() });
|
|
195
|
+
};
|
|
196
|
+
try {
|
|
197
|
+
const result = streamText({
|
|
198
|
+
model: this.resolveModel(options?.model),
|
|
199
|
+
system: this.browserConfig.instructions,
|
|
200
|
+
messages: history,
|
|
201
|
+
tools: this.tools,
|
|
202
|
+
stopWhen: stepCountIs(this.browserConfig.maxSteps ?? DEFAULT_BROWSER_MAX_STEPS),
|
|
203
|
+
abortSignal: abortController.signal,
|
|
204
|
+
});
|
|
205
|
+
for await (const part of result.fullStream) {
|
|
206
|
+
if (abortController.signal.aborted) {
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
switch (part.type) {
|
|
210
|
+
case 'text-start':
|
|
211
|
+
// A new block: whatever follows belongs to a message of its own,
|
|
212
|
+
// after any tool the previous block called.
|
|
213
|
+
startBlock();
|
|
214
|
+
break;
|
|
215
|
+
case 'text-delta':
|
|
216
|
+
// Defensively: a provider that streams text without announcing a
|
|
217
|
+
// block still gets a message rather than losing its words.
|
|
218
|
+
if (messageId === null) {
|
|
219
|
+
startBlock();
|
|
220
|
+
}
|
|
221
|
+
text += part.text;
|
|
222
|
+
emitText();
|
|
223
|
+
break;
|
|
224
|
+
case 'tool-call':
|
|
225
|
+
this.emit({
|
|
226
|
+
type: 'tool-call',
|
|
227
|
+
toolCall: {
|
|
228
|
+
toolCallId: part.toolCallId,
|
|
229
|
+
toolName: part.toolName,
|
|
230
|
+
args: (part.input ?? {}),
|
|
231
|
+
// The SDK hands over a whole argument set in one part; unlike
|
|
232
|
+
// AG-UI, nothing more is coming.
|
|
233
|
+
argsComplete: true,
|
|
234
|
+
},
|
|
235
|
+
timestamp: new Date(),
|
|
236
|
+
});
|
|
237
|
+
break;
|
|
238
|
+
case 'tool-result':
|
|
239
|
+
this.emit({
|
|
240
|
+
type: 'tool-result',
|
|
241
|
+
toolResult: {
|
|
242
|
+
toolCallId: part.toolCallId,
|
|
243
|
+
success: true,
|
|
244
|
+
result: part.output,
|
|
245
|
+
},
|
|
246
|
+
timestamp: new Date(),
|
|
247
|
+
});
|
|
248
|
+
break;
|
|
249
|
+
case 'tool-error':
|
|
250
|
+
this.emit({
|
|
251
|
+
type: 'tool-result',
|
|
252
|
+
toolResult: {
|
|
253
|
+
toolCallId: part.toolCallId,
|
|
254
|
+
success: false,
|
|
255
|
+
error: part.error instanceof Error
|
|
256
|
+
? part.error.message
|
|
257
|
+
: String(part.error),
|
|
258
|
+
},
|
|
259
|
+
timestamp: new Date(),
|
|
260
|
+
});
|
|
261
|
+
break;
|
|
262
|
+
case 'error':
|
|
263
|
+
this.emit({
|
|
264
|
+
type: 'error',
|
|
265
|
+
error: part.error instanceof Error
|
|
266
|
+
? part.error
|
|
267
|
+
: new Error(String(part.error)),
|
|
268
|
+
timestamp: new Date(),
|
|
269
|
+
});
|
|
270
|
+
break;
|
|
271
|
+
case 'finish': {
|
|
272
|
+
/*
|
|
273
|
+
* Whatever the provider counted, summed when it did not total.
|
|
274
|
+
*
|
|
275
|
+
* The SDK's `totalUsage` fields are all optional, and a
|
|
276
|
+
* provider that reports the parts but not the sum used to leave
|
|
277
|
+
* `totalTokens` undefined — which is the one field the chat's
|
|
278
|
+
* local accounting keys on, so the usage bar read 0 for turns
|
|
279
|
+
* that were counted perfectly well.
|
|
280
|
+
*/
|
|
281
|
+
const counted = part.totalUsage;
|
|
282
|
+
const promptTokens = counted?.inputTokens ?? 0;
|
|
283
|
+
const completionTokens = counted?.outputTokens ?? 0;
|
|
284
|
+
const totalTokens = counted?.totalTokens ??
|
|
285
|
+
(promptTokens + completionTokens > 0
|
|
286
|
+
? promptTokens + completionTokens
|
|
287
|
+
: undefined);
|
|
288
|
+
this.emit({
|
|
289
|
+
type: 'done',
|
|
290
|
+
usage: { promptTokens, completionTokens, totalTokens },
|
|
291
|
+
timestamp: new Date(),
|
|
292
|
+
});
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
default:
|
|
296
|
+
break;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
if (abortController.signal.aborted) {
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
this.emit({
|
|
305
|
+
type: 'error',
|
|
306
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
307
|
+
timestamp: new Date(),
|
|
308
|
+
});
|
|
309
|
+
this.emit({ type: 'done', timestamp: new Date() });
|
|
310
|
+
}
|
|
311
|
+
finally {
|
|
312
|
+
if (this.abortController === abortController) {
|
|
313
|
+
this.abortController = null;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
@@ -36,6 +36,16 @@ export declare class VercelAIAdapter extends BaseProtocolAdapter {
|
|
|
36
36
|
readonly protocolTransport: "sse";
|
|
37
37
|
private vercelConfig;
|
|
38
38
|
private abortController;
|
|
39
|
+
/**
|
|
40
|
+
* Every in-flight request's abort controller, not just the newest.
|
|
41
|
+
*
|
|
42
|
+
* `abortController` is a single field that each request overwrites, and each
|
|
43
|
+
* request's `finally` used to clear it unconditionally — so a request that
|
|
44
|
+
* finished just after a newer one started would null the newer one's handle,
|
|
45
|
+
* and a subsequent stop had nothing left to abort. The stream carried on and
|
|
46
|
+
* the transcript went on typing itself after the reader had asked it not to.
|
|
47
|
+
*/
|
|
48
|
+
private inFlight;
|
|
39
49
|
private currentRequestId;
|
|
40
50
|
private pendingToolCalls;
|
|
41
51
|
private collectedToolResults;
|
|
@@ -14,6 +14,16 @@ export class VercelAIAdapter extends BaseProtocolAdapter {
|
|
|
14
14
|
protocolTransport = 'sse';
|
|
15
15
|
vercelConfig;
|
|
16
16
|
abortController = null;
|
|
17
|
+
/**
|
|
18
|
+
* Every in-flight request's abort controller, not just the newest.
|
|
19
|
+
*
|
|
20
|
+
* `abortController` is a single field that each request overwrites, and each
|
|
21
|
+
* request's `finally` used to clear it unconditionally — so a request that
|
|
22
|
+
* finished just after a newer one started would null the newer one's handle,
|
|
23
|
+
* and a subsequent stop had nothing left to abort. The stream carried on and
|
|
24
|
+
* the transcript went on typing itself after the reader had asked it not to.
|
|
25
|
+
*/
|
|
26
|
+
inFlight = new Set();
|
|
17
27
|
currentRequestId = null;
|
|
18
28
|
// Frontend tool continuation state (modelled after AGUIAdapter)
|
|
19
29
|
pendingToolCalls = new Map();
|
|
@@ -113,10 +123,14 @@ export class VercelAIAdapter extends BaseProtocolAdapter {
|
|
|
113
123
|
* Send a message using Vercel AI Data Stream Protocol
|
|
114
124
|
*/
|
|
115
125
|
async sendMessage(message, options) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
126
|
+
// A new send supersedes what came before it — all of it. Aborting only
|
|
127
|
+
// the field left any stream it had already lost track of still running.
|
|
128
|
+
this.stopGeneration();
|
|
129
|
+
// Held in a local too: by the time the `finally` runs, a later request may
|
|
130
|
+
// own the field, and this one must only retire its own controller.
|
|
131
|
+
const controller = new AbortController();
|
|
132
|
+
this.abortController = controller;
|
|
133
|
+
this.inFlight.add(controller);
|
|
120
134
|
// Generate request ID for tracking
|
|
121
135
|
const requestId = options?.threadId || generateMessageId();
|
|
122
136
|
this.currentRequestId = requestId;
|
|
@@ -238,7 +252,7 @@ export class VercelAIAdapter extends BaseProtocolAdapter {
|
|
|
238
252
|
method: 'POST',
|
|
239
253
|
headers,
|
|
240
254
|
body: JSON.stringify(requestBody),
|
|
241
|
-
signal:
|
|
255
|
+
signal: controller.signal,
|
|
242
256
|
mode: this.vercelConfig.fetchOptions?.mode,
|
|
243
257
|
credentials: this.vercelConfig.fetchOptions?.credentials,
|
|
244
258
|
});
|
|
@@ -258,7 +272,10 @@ export class VercelAIAdapter extends BaseProtocolAdapter {
|
|
|
258
272
|
}
|
|
259
273
|
}
|
|
260
274
|
finally {
|
|
261
|
-
this.
|
|
275
|
+
this.inFlight.delete(controller);
|
|
276
|
+
if (this.abortController === controller) {
|
|
277
|
+
this.abortController = null;
|
|
278
|
+
}
|
|
262
279
|
}
|
|
263
280
|
}
|
|
264
281
|
/**
|
|
@@ -797,7 +814,10 @@ export class VercelAIAdapter extends BaseProtocolAdapter {
|
|
|
797
814
|
* Stop generation
|
|
798
815
|
*/
|
|
799
816
|
stopGeneration() {
|
|
800
|
-
this.
|
|
817
|
+
for (const controller of this.inFlight) {
|
|
818
|
+
controller.abort();
|
|
819
|
+
}
|
|
820
|
+
this.inFlight.clear();
|
|
801
821
|
this.abortController = null;
|
|
802
822
|
}
|
|
803
823
|
}
|
package/lib/protocols/index.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export { BaseProtocolAdapter } from './BaseProtocolAdapter';
|
|
|
7
7
|
export { AGUIAdapter, type AGUIAdapterConfig } from './AGUIAdapter';
|
|
8
8
|
export { A2AAdapter, type A2AAdapterConfig } from './A2AAdapter';
|
|
9
9
|
export { VercelAIAdapter, type VercelAIAdapterConfig } from './VercelAIAdapter';
|
|
10
|
+
export { BrowserAgentAdapter, type BrowserAgentAdapterConfig, } from './BrowserAgentAdapter';
|
|
10
11
|
export { ACPAdapter, type ACPAdapterConfig, type ACPSession, type ACPAgent, type ACPPendingPermission, } from './ACPAdapter';
|
package/lib/protocols/index.js
CHANGED
|
@@ -11,4 +11,5 @@ export { BaseProtocolAdapter } from './BaseProtocolAdapter';
|
|
|
11
11
|
export { AGUIAdapter } from './AGUIAdapter';
|
|
12
12
|
export { A2AAdapter } from './A2AAdapter';
|
|
13
13
|
export { VercelAIAdapter } from './VercelAIAdapter';
|
|
14
|
+
export { BrowserAgentAdapter, } from './BrowserAgentAdapter';
|
|
14
15
|
export { ACPAdapter, } from './ACPAdapter';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IRuntimeOptions } from './apis';
|
|
2
|
-
import type { ICodeSandboxSnapshot, IDatalayerEnvironment,
|
|
2
|
+
import type { ICodeSandboxSnapshot, IDatalayerEnvironment, IRuntimeRecord } from '../models';
|
|
3
3
|
/**
|
|
4
4
|
* Get available Environments.
|
|
5
5
|
*/
|
|
@@ -7,11 +7,16 @@ export declare function getEnvironments(): Promise<IDatalayerEnvironment[]>;
|
|
|
7
7
|
/**
|
|
8
8
|
* Create a Runtime.
|
|
9
9
|
*/
|
|
10
|
-
export declare function createRuntime(options: IRuntimeOptions): Promise<
|
|
10
|
+
export declare function createRuntime(options: IRuntimeOptions): Promise<IRuntimeRecord>;
|
|
11
11
|
/**
|
|
12
12
|
* Get the Runtimes.
|
|
13
13
|
*/
|
|
14
|
-
export declare function getRuntimes(): Promise<
|
|
14
|
+
export declare function getRuntimes(): Promise<IRuntimeRecord[]>;
|
|
15
|
+
/**
|
|
16
|
+
* One runtime as the platform answers it now — why its pod waits included —
|
|
17
|
+
* or `null` when there is none by that uid (E2-19).
|
|
18
|
+
*/
|
|
19
|
+
export declare function getRuntimeRecord(id: string): Promise<IRuntimeRecord | null>;
|
|
15
20
|
/**
|
|
16
21
|
* Delete a Runtime
|
|
17
22
|
*/
|