@datalayer/agent-runtimes 1.0.29 → 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.
- 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 +385 -4
- package/lib/api/runtimes/environments.js +610 -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 +13 -2
- package/lib/chat/ChatFloating.js +192 -117
- 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/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +78 -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 +67 -96
- package/lib/chat/index.d.ts +4 -1
- package/lib/chat/index.js +8 -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 +1 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +42 -19
- 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 +86 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -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/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 +894 -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 +118 -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 +1670 -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 +35 -0
- package/lib/loop/plugins/page-layout/index.js +80 -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 +167 -0
- package/lib/loop/presets.js +139 -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/Environment.d.ts +561 -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/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 +11 -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 +1 -2
- package/lib/models/environments.generated.d.ts +113 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +0 -1
- package/lib/models/index.js +0 -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 +117 -0
- package/lib/protocols/BrowserAgentAdapter.js +310 -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 +3 -3
- package/lib/runtimes/actions.js +27 -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 +128 -112
- package/lib/specs/agents/agents.js +8024 -5052
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +3 -0
- package/lib/specs/frontendTools.js +46 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +25 -2
- 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 +22 -0
- package/lib/specs/personas.js +1 -1
- 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/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
- 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/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/__pycache__/compose.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- 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_models.py +40 -15
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- 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
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) 2023-2026 Datalayer, Inc.
|
|
7
|
+
*
|
|
8
|
+
* MIT License
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Delegation, for an agent whose loop runs in the page.
|
|
12
|
+
*
|
|
13
|
+
* The server-side harness already has this: `subagents/capability.py`
|
|
14
|
+
* contributes a `delegate_task` tool to a pydantic-ai agent, runs the named
|
|
15
|
+
* subagent in a child run, and hands its final output back to the parent. This
|
|
16
|
+
* is the same idea in the browser, and deliberately built the way the Vercel AI
|
|
17
|
+
* SDK documents rather than reinvented:
|
|
18
|
+
*
|
|
19
|
+
* - a subagent is a {@link ToolLoopAgent}, the same class the parent is;
|
|
20
|
+
* - the parent reaches it through an ordinary `tool()` whose `execute` calls
|
|
21
|
+
* `generate()` and returns the text;
|
|
22
|
+
* - what the parent's model sees is trimmed with `toModelOutput`.
|
|
23
|
+
*
|
|
24
|
+
* The one thing that is ours is *which conversation the child is given*. The
|
|
25
|
+
* SDK isolates by default and shows you how to pass `messages` instead; a
|
|
26
|
+
* teamspec says which of those a team wants, so the choice is read from the
|
|
27
|
+
* spec rather than decided here.
|
|
28
|
+
*
|
|
29
|
+
* One SDK constraint worth knowing: a subagent tool cannot take part in
|
|
30
|
+
* approval flows. A subagent that must be approved has to be a plain tool.
|
|
31
|
+
*
|
|
32
|
+
* @module runtimes/browser/subagents
|
|
33
|
+
*/
|
|
34
|
+
import { ToolLoopAgent, stepCountIs, tool, jsonSchema, } from 'ai';
|
|
35
|
+
import { SUBAGENT_STOPPED, } from '../../types/stream';
|
|
36
|
+
import { createBrowserModel } from './model';
|
|
37
|
+
/** How many turns a delegated task may take before it is stopped. */
|
|
38
|
+
export const DEFAULT_SUBAGENT_MAX_STEPS = 12;
|
|
39
|
+
/** The input every delegation tool takes. */
|
|
40
|
+
const TASK_SCHEMA = {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
task: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
description: 'What to do, stated so that it can be carried out without the rest of this conversation.',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
required: ['task'],
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* The tools a parent needs in order to delegate.
|
|
52
|
+
*
|
|
53
|
+
* One per subagent, named after it, so the model reaches for `Compactor`
|
|
54
|
+
* rather than for `delegate_task('Compactor', …)`. A name the model can read
|
|
55
|
+
* is a name it picks correctly more often, and the description is what it
|
|
56
|
+
* chooses on.
|
|
57
|
+
*/
|
|
58
|
+
export function subagentTools(options) {
|
|
59
|
+
const { subagents, inference, model, sharing = 'shared', maxSteps = DEFAULT_SUBAGENT_MAX_STEPS, tools: shared, onEvent, signal: runSignal, } = options;
|
|
60
|
+
const tools = {};
|
|
61
|
+
for (const subagent of subagents) {
|
|
62
|
+
tools[subagent.name] = tool({
|
|
63
|
+
description: subagent.description,
|
|
64
|
+
inputSchema: jsonSchema(TASK_SCHEMA),
|
|
65
|
+
execute: async (input, executionOptions) => {
|
|
66
|
+
const { task } = (input ?? {});
|
|
67
|
+
if (!task?.trim()) {
|
|
68
|
+
return { error: 'A delegated task needs to say what to do.' };
|
|
69
|
+
}
|
|
70
|
+
// Keyed by the parent's tool call, as the server keys its events:
|
|
71
|
+
// one delegation, one timeline, whichever side ran it. A run ends
|
|
72
|
+
// once: a stream that reports an error and then rejects would
|
|
73
|
+
// otherwise say so twice.
|
|
74
|
+
const toolCallId = executionOptions?.toolCallId ?? null;
|
|
75
|
+
let ended = false;
|
|
76
|
+
const emit = (event) => {
|
|
77
|
+
if (event.phase === 'end' || event.phase === 'error') {
|
|
78
|
+
if (ended) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
ended = true;
|
|
82
|
+
}
|
|
83
|
+
onEvent?.({ subagentName: subagent.name, toolCallId, ...event });
|
|
84
|
+
};
|
|
85
|
+
const child = new ToolLoopAgent({
|
|
86
|
+
id: subagent.name,
|
|
87
|
+
model: createBrowserModel({
|
|
88
|
+
...inference,
|
|
89
|
+
model: subagent.model ?? model,
|
|
90
|
+
}),
|
|
91
|
+
instructions: subagent.instructions,
|
|
92
|
+
tools: subagent.tools ?? shared ?? {},
|
|
93
|
+
stopWhen: stepCountIs(maxSteps),
|
|
94
|
+
});
|
|
95
|
+
// Stopped when either the run or this tool call is: the two signals
|
|
96
|
+
// are one to the child.
|
|
97
|
+
const signal = anySignal([
|
|
98
|
+
executionOptions?.abortSignal,
|
|
99
|
+
runSignal?.(),
|
|
100
|
+
]);
|
|
101
|
+
emit({ phase: 'start', task });
|
|
102
|
+
try {
|
|
103
|
+
// `messages` for a shared conversation, `prompt` for an isolated
|
|
104
|
+
// one — the same two shapes the SDK documents, chosen by the team.
|
|
105
|
+
const history = sharing === 'shared'
|
|
106
|
+
? (executionOptions?.messages ?? [])
|
|
107
|
+
: [];
|
|
108
|
+
// Streamed rather than generated, so the run can be watched: each
|
|
109
|
+
// part becomes an event as it arrives, and the text is what the
|
|
110
|
+
// parent is handed at the end.
|
|
111
|
+
const result = await child.stream({
|
|
112
|
+
messages: [...history, { role: 'user', content: task }],
|
|
113
|
+
abortSignal: signal,
|
|
114
|
+
});
|
|
115
|
+
const streamed = await relaySubagentRun(result.fullStream, emit, signal);
|
|
116
|
+
if (signal?.aborted) {
|
|
117
|
+
emit({ phase: 'error', error: STOPPED });
|
|
118
|
+
return { agent: subagent.name, error: STOPPED };
|
|
119
|
+
}
|
|
120
|
+
const output = streamed || (await result.text);
|
|
121
|
+
emit({ phase: 'end', output });
|
|
122
|
+
return { agent: subagent.name, result: output };
|
|
123
|
+
}
|
|
124
|
+
catch (reason) {
|
|
125
|
+
// Returned rather than thrown: a failed delegation is a step the
|
|
126
|
+
// parent can recover from — try another member, or tell the person
|
|
127
|
+
// — and a throw would abort the whole run instead.
|
|
128
|
+
// A stop is said as a stop, not as whatever the aborted fetch threw.
|
|
129
|
+
const error = signal?.aborted
|
|
130
|
+
? STOPPED
|
|
131
|
+
: reason instanceof Error
|
|
132
|
+
? reason.message
|
|
133
|
+
: String(reason);
|
|
134
|
+
emit({ phase: 'error', error });
|
|
135
|
+
return { agent: subagent.name, error };
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
// What the parent's model reads. The person can see the whole delegated
|
|
139
|
+
// run in the transcript; the parent only needs its conclusion, and
|
|
140
|
+
// paying for the rest in context is how a delegation model runs out of
|
|
141
|
+
// room three hand-offs in.
|
|
142
|
+
toModelOutput: ({ output }) => {
|
|
143
|
+
const value = output;
|
|
144
|
+
return {
|
|
145
|
+
type: 'text',
|
|
146
|
+
value: value?.error
|
|
147
|
+
? `${subagent.name} could not finish: ${value.error}`
|
|
148
|
+
: (value?.result ?? 'Done.'),
|
|
149
|
+
};
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return tools;
|
|
154
|
+
}
|
|
155
|
+
/** What a delegation says when the person stopped it. */
|
|
156
|
+
export const STOPPED = SUBAGENT_STOPPED;
|
|
157
|
+
/** One signal for several, or the one there is. */
|
|
158
|
+
function anySignal(signals) {
|
|
159
|
+
const present = signals.filter((entry) => Boolean(entry));
|
|
160
|
+
if (present.length <= 1) {
|
|
161
|
+
return present[0];
|
|
162
|
+
}
|
|
163
|
+
if (typeof AbortSignal.any === 'function') {
|
|
164
|
+
return AbortSignal.any(present);
|
|
165
|
+
}
|
|
166
|
+
// Older runtimes: a controller that follows whichever fires first.
|
|
167
|
+
const controller = new AbortController();
|
|
168
|
+
for (const entry of present) {
|
|
169
|
+
if (entry.aborted) {
|
|
170
|
+
controller.abort(entry.reason);
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
entry.addEventListener('abort', () => controller.abort(entry.reason), {
|
|
174
|
+
once: true,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return controller.signal;
|
|
178
|
+
}
|
|
179
|
+
/** A tool's result as a line the timeline can show. */
|
|
180
|
+
function preview(value) {
|
|
181
|
+
const text = typeof value === 'string' ? value : JSON.stringify(value);
|
|
182
|
+
return text.length > 400 ? `${text.slice(0, 400)}…` : text;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Turn a delegated run's stream into subagent events, and return its text.
|
|
186
|
+
*
|
|
187
|
+
* Text and reasoning deltas, tool calls and their results, and errors — the
|
|
188
|
+
* phases the server-side harness reports — each emitted as the part arrives.
|
|
189
|
+
* Everything else the SDK streams (step and finish markers, sources, files)
|
|
190
|
+
* is not a phase and passes in silence.
|
|
191
|
+
*/
|
|
192
|
+
export async function relaySubagentRun(stream, emit, signal) {
|
|
193
|
+
let text = '';
|
|
194
|
+
for await (const part of stream) {
|
|
195
|
+
// Stopped: whatever is still in the pipe is not worth relaying.
|
|
196
|
+
if (signal?.aborted) {
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
switch (part.type) {
|
|
200
|
+
case 'text-delta':
|
|
201
|
+
text += part.text ?? '';
|
|
202
|
+
emit({ phase: 'text', text: part.text ?? '' });
|
|
203
|
+
break;
|
|
204
|
+
case 'reasoning-delta':
|
|
205
|
+
emit({ phase: 'thinking', text: part.text ?? '' });
|
|
206
|
+
break;
|
|
207
|
+
case 'tool-call':
|
|
208
|
+
emit({
|
|
209
|
+
phase: 'tool_call',
|
|
210
|
+
toolName: part.toolName,
|
|
211
|
+
toolArgs: (part.input ?? {}),
|
|
212
|
+
});
|
|
213
|
+
break;
|
|
214
|
+
case 'tool-result':
|
|
215
|
+
emit({
|
|
216
|
+
phase: 'tool_result',
|
|
217
|
+
toolName: part.toolName,
|
|
218
|
+
result: preview(part.output),
|
|
219
|
+
});
|
|
220
|
+
break;
|
|
221
|
+
case 'tool-error':
|
|
222
|
+
emit({
|
|
223
|
+
phase: 'tool_result',
|
|
224
|
+
toolName: part.toolName,
|
|
225
|
+
result: preview(part.error),
|
|
226
|
+
});
|
|
227
|
+
break;
|
|
228
|
+
case 'error':
|
|
229
|
+
emit({
|
|
230
|
+
phase: 'error',
|
|
231
|
+
error: part.error instanceof Error
|
|
232
|
+
? part.error.message
|
|
233
|
+
: String(part.error),
|
|
234
|
+
});
|
|
235
|
+
break;
|
|
236
|
+
default:
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return text;
|
|
241
|
+
}
|
package/lib/runtimes/index.d.ts
CHANGED
package/lib/runtimes/index.js
CHANGED
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
5
|
export * from './actions';
|
|
6
|
+
export * from './lifecycle';
|
|
6
7
|
export * from './apis';
|
|
7
8
|
export * from './settings';
|
|
8
9
|
export * from './snapshots';
|
|
9
10
|
export * from './utils';
|
|
11
|
+
export * from './variants';
|
|
12
|
+
export * from './browser';
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The converged sandbox lifecycle, in TypeScript.
|
|
3
|
+
*
|
|
4
|
+
* The Python side states this vocabulary in `code_sandboxes.lifecycle` and the
|
|
5
|
+
* Runtimes client is written to it. This is the same statement for callers that
|
|
6
|
+
* reach the API from a browser: one place that knows how a runtime URL is
|
|
7
|
+
* spelled, so a hook, a mixin and a page cannot drift from each other the way
|
|
8
|
+
* they did when each built its own string.
|
|
9
|
+
*
|
|
10
|
+
* Transport stays with the caller — `requestDatalayerAPI`, `requestDatalayer`
|
|
11
|
+
* and a bare `fetch` all have their reasons. Only the URLs and the verbs are
|
|
12
|
+
* shared, because those are what has to agree.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* A verb a caller may use, and the REST spelling it corresponds to.
|
|
16
|
+
*
|
|
17
|
+
* Mirrors `LIFECYCLE_OPERATIONS` in `code_sandboxes.lifecycle` — if one of them
|
|
18
|
+
* changes, so does the other, and the tests on both sides say so.
|
|
19
|
+
*/
|
|
20
|
+
export declare const LIFECYCLE_OPERATIONS: {
|
|
21
|
+
readonly create: "POST /runtimes";
|
|
22
|
+
readonly start: "POST /runtimes (implied) — begin a created sandbox";
|
|
23
|
+
readonly stop: "DELETE /runtimes/{runtime_name}";
|
|
24
|
+
readonly pause: "POST /runtimes/{runtime_name}/pause";
|
|
25
|
+
readonly resume: "POST /runtimes/{runtime_name}/resume";
|
|
26
|
+
readonly list: "GET /runtimes";
|
|
27
|
+
readonly get: "GET /runtimes/{runtime_name}";
|
|
28
|
+
readonly update: "PUT /runtimes/{runtime_name}";
|
|
29
|
+
readonly snapshot: "POST /sandbox-snapshots";
|
|
30
|
+
readonly execute: "run code in the sandbox";
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* The name of a lifecycle verb.
|
|
34
|
+
*/
|
|
35
|
+
export type LifecycleOperation = keyof typeof LIFECYCLE_OPERATIONS;
|
|
36
|
+
/**
|
|
37
|
+
* The Runtimes API prefix, below whichever host serves it.
|
|
38
|
+
*/
|
|
39
|
+
export declare const RUNTIMES_API_PREFIX = "api/runtimes/v1";
|
|
40
|
+
/**
|
|
41
|
+
* Every runtime — the collection.
|
|
42
|
+
*
|
|
43
|
+
* `create` posts here and `list` gets here.
|
|
44
|
+
*/
|
|
45
|
+
export declare function runtimesUrl(baseUrl: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* One runtime, by pod name.
|
|
48
|
+
*
|
|
49
|
+
* `get` reads it, `update` puts to it, and `stop` deletes it — whether the
|
|
50
|
+
* runtime is running or paused, which is why there is no second path for the
|
|
51
|
+
* paused case.
|
|
52
|
+
*/
|
|
53
|
+
export declare function runtimeUrl(baseUrl: string, runtimeName: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Suspend one runtime, keeping its state.
|
|
56
|
+
*/
|
|
57
|
+
export declare function runtimePauseUrl(baseUrl: string, runtimeName: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Bring one paused runtime back.
|
|
60
|
+
*/
|
|
61
|
+
export declare function runtimeResumeUrl(baseUrl: string, runtimeName: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* The snapshots collection.
|
|
64
|
+
*
|
|
65
|
+
* A snapshot outlives the runtime it came from, which is why it is its own
|
|
66
|
+
* resource rather than a sub-path of the pod.
|
|
67
|
+
*/
|
|
68
|
+
export declare function sandboxSnapshotsUrl(baseUrl: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* One snapshot, by UID.
|
|
71
|
+
*/
|
|
72
|
+
export declare function sandboxSnapshotUrl(baseUrl: string, id: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* The checkpoint records behind pause and resume.
|
|
75
|
+
*/
|
|
76
|
+
export declare function runtimeCheckpointsUrl(baseUrl: string): string;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The converged sandbox lifecycle, in TypeScript.
|
|
7
|
+
*
|
|
8
|
+
* The Python side states this vocabulary in `code_sandboxes.lifecycle` and the
|
|
9
|
+
* Runtimes client is written to it. This is the same statement for callers that
|
|
10
|
+
* reach the API from a browser: one place that knows how a runtime URL is
|
|
11
|
+
* spelled, so a hook, a mixin and a page cannot drift from each other the way
|
|
12
|
+
* they did when each built its own string.
|
|
13
|
+
*
|
|
14
|
+
* Transport stays with the caller — `requestDatalayerAPI`, `requestDatalayer`
|
|
15
|
+
* and a bare `fetch` all have their reasons. Only the URLs and the verbs are
|
|
16
|
+
* shared, because those are what has to agree.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* A verb a caller may use, and the REST spelling it corresponds to.
|
|
20
|
+
*
|
|
21
|
+
* Mirrors `LIFECYCLE_OPERATIONS` in `code_sandboxes.lifecycle` — if one of them
|
|
22
|
+
* changes, so does the other, and the tests on both sides say so.
|
|
23
|
+
*/
|
|
24
|
+
export const LIFECYCLE_OPERATIONS = {
|
|
25
|
+
create: 'POST /runtimes',
|
|
26
|
+
start: 'POST /runtimes (implied) — begin a created sandbox',
|
|
27
|
+
stop: 'DELETE /runtimes/{runtime_name}',
|
|
28
|
+
pause: 'POST /runtimes/{runtime_name}/pause',
|
|
29
|
+
resume: 'POST /runtimes/{runtime_name}/resume',
|
|
30
|
+
list: 'GET /runtimes',
|
|
31
|
+
get: 'GET /runtimes/{runtime_name}',
|
|
32
|
+
update: 'PUT /runtimes/{runtime_name}',
|
|
33
|
+
snapshot: 'POST /sandbox-snapshots',
|
|
34
|
+
execute: 'run code in the sandbox',
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* The Runtimes API prefix, below whichever host serves it.
|
|
38
|
+
*/
|
|
39
|
+
export const RUNTIMES_API_PREFIX = 'api/runtimes/v1';
|
|
40
|
+
/**
|
|
41
|
+
* Join a base URL to a path without doubling or dropping the slash between.
|
|
42
|
+
*
|
|
43
|
+
* `URLExt.join` would do this, but the callers of this module include ones with
|
|
44
|
+
* no JupyterLab dependency, and a runtime URL is not worth one.
|
|
45
|
+
*/
|
|
46
|
+
function join(base, path) {
|
|
47
|
+
return `${base.replace(/\/+$/, '')}/${path.replace(/^\/+/, '')}`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Every runtime — the collection.
|
|
51
|
+
*
|
|
52
|
+
* `create` posts here and `list` gets here.
|
|
53
|
+
*/
|
|
54
|
+
export function runtimesUrl(baseUrl) {
|
|
55
|
+
return join(baseUrl, `${RUNTIMES_API_PREFIX}/runtimes`);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* One runtime, by pod name.
|
|
59
|
+
*
|
|
60
|
+
* `get` reads it, `update` puts to it, and `stop` deletes it — whether the
|
|
61
|
+
* runtime is running or paused, which is why there is no second path for the
|
|
62
|
+
* paused case.
|
|
63
|
+
*/
|
|
64
|
+
export function runtimeUrl(baseUrl, runtimeName) {
|
|
65
|
+
return `${runtimesUrl(baseUrl)}/${runtimeName}`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Suspend one runtime, keeping its state.
|
|
69
|
+
*/
|
|
70
|
+
export function runtimePauseUrl(baseUrl, runtimeName) {
|
|
71
|
+
return `${runtimeUrl(baseUrl, runtimeName)}/pause`;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Bring one paused runtime back.
|
|
75
|
+
*/
|
|
76
|
+
export function runtimeResumeUrl(baseUrl, runtimeName) {
|
|
77
|
+
return `${runtimeUrl(baseUrl, runtimeName)}/resume`;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The snapshots collection.
|
|
81
|
+
*
|
|
82
|
+
* A snapshot outlives the runtime it came from, which is why it is its own
|
|
83
|
+
* resource rather than a sub-path of the pod.
|
|
84
|
+
*/
|
|
85
|
+
export function sandboxSnapshotsUrl(baseUrl) {
|
|
86
|
+
return join(baseUrl, `${RUNTIMES_API_PREFIX}/sandbox-snapshots`);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* One snapshot, by UID.
|
|
90
|
+
*/
|
|
91
|
+
export function sandboxSnapshotUrl(baseUrl, id) {
|
|
92
|
+
return `${sandboxSnapshotsUrl(baseUrl)}/${id}`;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The checkpoint records behind pause and resume.
|
|
96
|
+
*/
|
|
97
|
+
export function runtimeCheckpointsUrl(baseUrl) {
|
|
98
|
+
return join(baseUrl, `${RUNTIMES_API_PREFIX}/runtime-checkpoints`);
|
|
99
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent runtime variants: where an agent's loop runs, and what runs it.
|
|
3
|
+
*
|
|
4
|
+
* There have always been two ways to start an agent — a local agent-runtimes
|
|
5
|
+
* server and a cloud one — and they were named after the service each talked
|
|
6
|
+
* to (`local-agent-runtimes`, `backend-services`). That naming held while both
|
|
7
|
+
* ran the same framework. A browser agent breaks it: it talks to no service at
|
|
8
|
+
* all, and it runs a different framework.
|
|
9
|
+
*
|
|
10
|
+
* So a variant names the two things that actually vary, in that order:
|
|
11
|
+
*
|
|
12
|
+
* <location>-<harness> browser-vercelai
|
|
13
|
+
* local-pydanticai
|
|
14
|
+
* cloud-pydanticai
|
|
15
|
+
*
|
|
16
|
+
* The point of splitting them is that most code cares about exactly one half.
|
|
17
|
+
* Anything about *reaching* a runtime — a URL, a lifecycle, a sandbox — is a
|
|
18
|
+
* question of location. Anything about *turning the loop* — the SDK, the tool
|
|
19
|
+
* protocol, the streaming format — is a question of harness. Code that branches
|
|
20
|
+
* on the whole variant string has to be edited every time either axis gains a
|
|
21
|
+
* value; code that asks {@link locationOf} or {@link harnessOf} does not.
|
|
22
|
+
*
|
|
23
|
+
* That is what makes the next ones cheap. `cloud-ax` is a new harness against
|
|
24
|
+
* an existing location, so only harness-specific code changes; `browser-ax` is
|
|
25
|
+
* a combination of two things that already exist.
|
|
26
|
+
*
|
|
27
|
+
* @module runtimes/variants
|
|
28
|
+
*/
|
|
29
|
+
import type { Agentspec } from '../types/agentspecs';
|
|
30
|
+
/** Where the agent's loop runs. */
|
|
31
|
+
export type AgentLocation = 'browser' | 'local' | 'cloud';
|
|
32
|
+
/**
|
|
33
|
+
* What turns the loop.
|
|
34
|
+
*
|
|
35
|
+
* Spelled without the hyphen the frameworks use in their own names, because
|
|
36
|
+
* the hyphen is already doing a job here: it separates location from harness.
|
|
37
|
+
* {@link SPEC_HARNESS_BY_HARNESS} maps back to the spelling an agentspec uses.
|
|
38
|
+
*/
|
|
39
|
+
export type AgentHarness = 'pydanticai' | 'vercelai';
|
|
40
|
+
/**
|
|
41
|
+
* The combinations that exist today.
|
|
42
|
+
*
|
|
43
|
+
* Enumerated rather than derived from the two axes, because not every pairing
|
|
44
|
+
* is real: there is no `browser-pydanticai`, and a type that admitted one would
|
|
45
|
+
* be describing a runtime nobody can start.
|
|
46
|
+
*/
|
|
47
|
+
export declare const AGENT_RUNTIME_VARIANTS: readonly ["browser-vercelai", "local-pydanticai", "cloud-pydanticai"];
|
|
48
|
+
export type AgentRuntimeVariant = (typeof AGENT_RUNTIME_VARIANTS)[number];
|
|
49
|
+
/** The variant used when a caller does not choose one. */
|
|
50
|
+
export declare const DEFAULT_AGENT_RUNTIME_VARIANT: AgentRuntimeVariant;
|
|
51
|
+
/**
|
|
52
|
+
* The harness as an agentspec spells it.
|
|
53
|
+
*
|
|
54
|
+
* A spec says `harness: pydantic-ai`; a variant says `pydanticai`. Same thing,
|
|
55
|
+
* two spellings forced by the separator, and this is the one place that knows
|
|
56
|
+
* it — rather than every caller doing its own `replace('-', '')`.
|
|
57
|
+
*/
|
|
58
|
+
export declare const SPEC_HARNESS_BY_HARNESS: Record<AgentHarness, string>;
|
|
59
|
+
/** The reverse, for reading an agentspec's declared harness. */
|
|
60
|
+
export declare const HARNESS_BY_SPEC_HARNESS: Record<string, AgentHarness>;
|
|
61
|
+
/**
|
|
62
|
+
* The names the two original ways to start an agent went by.
|
|
63
|
+
*
|
|
64
|
+
* Kept working rather than removed: they are exported API and appear in
|
|
65
|
+
* applications this package does not own. New code should pass a variant.
|
|
66
|
+
*
|
|
67
|
+
* @deprecated Use {@link AgentRuntimeVariant}.
|
|
68
|
+
*/
|
|
69
|
+
export type RuntimeCreationTarget = 'backend-services' | 'local-agent-runtimes';
|
|
70
|
+
/** Whether a string is a variant this package knows how to start. */
|
|
71
|
+
export declare function isAgentRuntimeVariant(value: unknown): value is AgentRuntimeVariant;
|
|
72
|
+
/**
|
|
73
|
+
* The variant a caller meant, from a variant or one of the legacy target names.
|
|
74
|
+
*
|
|
75
|
+
* One funnel, so the rest of the package sees variants only and no branch has
|
|
76
|
+
* to remember that two vocabularies exist.
|
|
77
|
+
*/
|
|
78
|
+
export declare function toAgentRuntimeVariant(value: AgentRuntimeVariant | RuntimeCreationTarget | undefined | null, fallback?: AgentRuntimeVariant): AgentRuntimeVariant;
|
|
79
|
+
/** Where this variant's loop runs. */
|
|
80
|
+
export declare function locationOf(variant: AgentRuntimeVariant): AgentLocation;
|
|
81
|
+
/** What turns this variant's loop. */
|
|
82
|
+
export declare function harnessOf(variant: AgentRuntimeVariant): AgentHarness;
|
|
83
|
+
/**
|
|
84
|
+
* Whether the loop runs in the page.
|
|
85
|
+
*
|
|
86
|
+
* The question worth asking wherever a runtime would otherwise be reached for,
|
|
87
|
+
* because it is the one that changes what exists: a browser agent has no
|
|
88
|
+
* service behind it, so no runtime to create, no sandbox to execute in, no MCP
|
|
89
|
+
* servers to call, and no lifecycle to pause or resume.
|
|
90
|
+
*/
|
|
91
|
+
export declare function runsInBrowser(variant: AgentRuntimeVariant): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Whether a runtime has to be created and reached over HTTP.
|
|
94
|
+
*
|
|
95
|
+
* True for every location except the browser, and the reason most of the
|
|
96
|
+
* lifecycle code can stay indifferent to which of the two remote locations it
|
|
97
|
+
* is talking to.
|
|
98
|
+
*/
|
|
99
|
+
export declare function needsRuntimeService(variant: AgentRuntimeVariant): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* The variant for a location.
|
|
102
|
+
*
|
|
103
|
+
* A location decides its own harness, because only one framework can run there
|
|
104
|
+
* — the browser has no server to turn a pydantic-ai loop, and the two remote
|
|
105
|
+
* locations have no page to turn a Vercel AI one. Naming both halves in a
|
|
106
|
+
* variant is still worth it: it is what makes `cloud-ax` a value rather than a
|
|
107
|
+
* rewrite. But given a location, the harness is not a separate choice.
|
|
108
|
+
*/
|
|
109
|
+
export declare function variantForLocation(location: AgentLocation): AgentRuntimeVariant;
|
|
110
|
+
/**
|
|
111
|
+
* Whether a variant can run an agent that declared this harness in its spec.
|
|
112
|
+
*
|
|
113
|
+
* An agentspec says which framework it *prefers* — `harness:` is where the
|
|
114
|
+
* agent normally runs, not a demand — and a variant says which framework a
|
|
115
|
+
* location can actually provide. Where they disagree the location wins, which
|
|
116
|
+
* is why the browser accepts any spec:
|
|
117
|
+
*
|
|
118
|
+
* harness: pydantic-ai + browser → runs, with the Vercel AI SDK
|
|
119
|
+
*
|
|
120
|
+
* The alternative was a second spec per agent, identical but for one field.
|
|
121
|
+
* That duplicated the prompt, the tools, the evals and everything else that
|
|
122
|
+
* has nothing to do with where a loop turns — and it made a spec's author
|
|
123
|
+
* responsible for a decision the host makes.
|
|
124
|
+
*
|
|
125
|
+
* The remote locations are stricter: a spec built for the browser harness
|
|
126
|
+
* assumes frontend tools and no server, so running it on a runtime would be
|
|
127
|
+
* running something else.
|
|
128
|
+
*/
|
|
129
|
+
export declare function variantSupportsSpecHarness(variant: AgentRuntimeVariant, specHarness: string | undefined | null): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* The variants that could run an agent with this declared harness.
|
|
132
|
+
*
|
|
133
|
+
* What a host offers a person choosing where to run something. The browser is
|
|
134
|
+
* always among them — it can run anything, because it overrides the harness —
|
|
135
|
+
* while an agent built for the browser is not offered a remote runtime that
|
|
136
|
+
* would be running something else.
|
|
137
|
+
*/
|
|
138
|
+
export declare function variantsForSpecHarness(specHarness: string | undefined | null): AgentRuntimeVariant[];
|
|
139
|
+
/**
|
|
140
|
+
* The legacy target name closest to a variant.
|
|
141
|
+
*
|
|
142
|
+
* For consumers still reading `runtimeCreationTarget`: a browser agent has no
|
|
143
|
+
* old name — there was no way to start one — so it reports as local, which is
|
|
144
|
+
* the truthful half of the answer (nothing remote is being reached).
|
|
145
|
+
*
|
|
146
|
+
* @deprecated Read the variant.
|
|
147
|
+
*/
|
|
148
|
+
export declare function legacyTargetOf(variant: AgentRuntimeVariant): RuntimeCreationTarget;
|
|
149
|
+
/**
|
|
150
|
+
* The harness a spec asks for, in the variant spelling.
|
|
151
|
+
*
|
|
152
|
+
* Defaulted rather than optional: every agent is run by something, and a spec
|
|
153
|
+
* that says nothing is run by the framework that has always run it. That
|
|
154
|
+
* default is what lets every spec written before this field stay correct.
|
|
155
|
+
*/
|
|
156
|
+
export declare function specHarnessOf(spec: Pick<Agentspec, 'harness'>): AgentHarness;
|
|
157
|
+
/**
|
|
158
|
+
* The variants that could run this agent.
|
|
159
|
+
*
|
|
160
|
+
* What a host offers when someone picks where to run something: an agent built
|
|
161
|
+
* for the browser harness should not be offered a cloud runtime that cannot
|
|
162
|
+
* turn its loop, and a server-side agent should not be offered the page.
|
|
163
|
+
*/
|
|
164
|
+
export declare function variantsForSpec(spec: Pick<Agentspec, 'harness'>): AgentRuntimeVariant[];
|
|
165
|
+
/**
|
|
166
|
+
* The variant to start this agent with when the host has no preference.
|
|
167
|
+
*
|
|
168
|
+
* The package default when the spec can run there, and otherwise the first
|
|
169
|
+
* variant that can run it at all — so a `harness: vercel-ai` agent lands in
|
|
170
|
+
* the browser without every caller having to know that is where it belongs.
|
|
171
|
+
*/
|
|
172
|
+
export declare function defaultVariantForSpec(spec: Pick<Agentspec, 'harness'>): AgentRuntimeVariant;
|