@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,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;
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The combinations that exist today.
|
|
7
|
+
*
|
|
8
|
+
* Enumerated rather than derived from the two axes, because not every pairing
|
|
9
|
+
* is real: there is no `browser-pydanticai`, and a type that admitted one would
|
|
10
|
+
* be describing a runtime nobody can start.
|
|
11
|
+
*/
|
|
12
|
+
export const AGENT_RUNTIME_VARIANTS = [
|
|
13
|
+
'browser-vercelai',
|
|
14
|
+
'local-pydanticai',
|
|
15
|
+
'cloud-pydanticai',
|
|
16
|
+
];
|
|
17
|
+
/** The variant used when a caller does not choose one. */
|
|
18
|
+
export const DEFAULT_AGENT_RUNTIME_VARIANT = 'cloud-pydanticai';
|
|
19
|
+
/**
|
|
20
|
+
* The harness as an agentspec spells it.
|
|
21
|
+
*
|
|
22
|
+
* A spec says `harness: pydantic-ai`; a variant says `pydanticai`. Same thing,
|
|
23
|
+
* two spellings forced by the separator, and this is the one place that knows
|
|
24
|
+
* it — rather than every caller doing its own `replace('-', '')`.
|
|
25
|
+
*/
|
|
26
|
+
export const SPEC_HARNESS_BY_HARNESS = {
|
|
27
|
+
pydanticai: 'pydantic-ai',
|
|
28
|
+
vercelai: 'vercel-ai',
|
|
29
|
+
};
|
|
30
|
+
/** The reverse, for reading an agentspec's declared harness. */
|
|
31
|
+
export const HARNESS_BY_SPEC_HARNESS = {
|
|
32
|
+
'pydantic-ai': 'pydanticai',
|
|
33
|
+
'vercel-ai': 'vercelai',
|
|
34
|
+
};
|
|
35
|
+
const VARIANT_BY_LEGACY_TARGET = {
|
|
36
|
+
'backend-services': 'cloud-pydanticai',
|
|
37
|
+
'local-agent-runtimes': 'local-pydanticai',
|
|
38
|
+
};
|
|
39
|
+
/** Whether a string is a variant this package knows how to start. */
|
|
40
|
+
export function isAgentRuntimeVariant(value) {
|
|
41
|
+
return (typeof value === 'string' &&
|
|
42
|
+
AGENT_RUNTIME_VARIANTS.includes(value));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The variant a caller meant, from a variant or one of the legacy target names.
|
|
46
|
+
*
|
|
47
|
+
* One funnel, so the rest of the package sees variants only and no branch has
|
|
48
|
+
* to remember that two vocabularies exist.
|
|
49
|
+
*/
|
|
50
|
+
export function toAgentRuntimeVariant(value, fallback = DEFAULT_AGENT_RUNTIME_VARIANT) {
|
|
51
|
+
if (!value) {
|
|
52
|
+
return fallback;
|
|
53
|
+
}
|
|
54
|
+
if (isAgentRuntimeVariant(value)) {
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
return VARIANT_BY_LEGACY_TARGET[value] ?? fallback;
|
|
58
|
+
}
|
|
59
|
+
/** Where this variant's loop runs. */
|
|
60
|
+
export function locationOf(variant) {
|
|
61
|
+
return variant.slice(0, variant.indexOf('-'));
|
|
62
|
+
}
|
|
63
|
+
/** What turns this variant's loop. */
|
|
64
|
+
export function harnessOf(variant) {
|
|
65
|
+
return variant.slice(variant.indexOf('-') + 1);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Whether the loop runs in the page.
|
|
69
|
+
*
|
|
70
|
+
* The question worth asking wherever a runtime would otherwise be reached for,
|
|
71
|
+
* because it is the one that changes what exists: a browser agent has no
|
|
72
|
+
* service behind it, so no runtime to create, no sandbox to execute in, no MCP
|
|
73
|
+
* servers to call, and no lifecycle to pause or resume.
|
|
74
|
+
*/
|
|
75
|
+
export function runsInBrowser(variant) {
|
|
76
|
+
return locationOf(variant) === 'browser';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Whether a runtime has to be created and reached over HTTP.
|
|
80
|
+
*
|
|
81
|
+
* True for every location except the browser, and the reason most of the
|
|
82
|
+
* lifecycle code can stay indifferent to which of the two remote locations it
|
|
83
|
+
* is talking to.
|
|
84
|
+
*/
|
|
85
|
+
export function needsRuntimeService(variant) {
|
|
86
|
+
return !runsInBrowser(variant);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The variant for a location.
|
|
90
|
+
*
|
|
91
|
+
* A location decides its own harness, because only one framework can run there
|
|
92
|
+
* — the browser has no server to turn a pydantic-ai loop, and the two remote
|
|
93
|
+
* locations have no page to turn a Vercel AI one. Naming both halves in a
|
|
94
|
+
* variant is still worth it: it is what makes `cloud-ax` a value rather than a
|
|
95
|
+
* rewrite. But given a location, the harness is not a separate choice.
|
|
96
|
+
*/
|
|
97
|
+
export function variantForLocation(location) {
|
|
98
|
+
return (AGENT_RUNTIME_VARIANTS.find(variant => locationOf(variant) === location) ??
|
|
99
|
+
DEFAULT_AGENT_RUNTIME_VARIANT);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Whether a variant can run an agent that declared this harness in its spec.
|
|
103
|
+
*
|
|
104
|
+
* An agentspec says which framework it *prefers* — `harness:` is where the
|
|
105
|
+
* agent normally runs, not a demand — and a variant says which framework a
|
|
106
|
+
* location can actually provide. Where they disagree the location wins, which
|
|
107
|
+
* is why the browser accepts any spec:
|
|
108
|
+
*
|
|
109
|
+
* harness: pydantic-ai + browser → runs, with the Vercel AI SDK
|
|
110
|
+
*
|
|
111
|
+
* The alternative was a second spec per agent, identical but for one field.
|
|
112
|
+
* That duplicated the prompt, the tools, the evals and everything else that
|
|
113
|
+
* has nothing to do with where a loop turns — and it made a spec's author
|
|
114
|
+
* responsible for a decision the host makes.
|
|
115
|
+
*
|
|
116
|
+
* The remote locations are stricter: a spec built for the browser harness
|
|
117
|
+
* assumes frontend tools and no server, so running it on a runtime would be
|
|
118
|
+
* running something else.
|
|
119
|
+
*/
|
|
120
|
+
export function variantSupportsSpecHarness(variant, specHarness) {
|
|
121
|
+
if (runsInBrowser(variant)) {
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
if (!specHarness) {
|
|
125
|
+
// A spec that says nothing wants the framework that has always run it.
|
|
126
|
+
return harnessOf(variant) === 'pydanticai';
|
|
127
|
+
}
|
|
128
|
+
return SPEC_HARNESS_BY_HARNESS[harnessOf(variant)] === specHarness;
|
|
129
|
+
}
|
|
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 function variantsForSpecHarness(specHarness) {
|
|
139
|
+
return AGENT_RUNTIME_VARIANTS.filter(variant => variantSupportsSpecHarness(variant, specHarness));
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* The legacy target name closest to a variant.
|
|
143
|
+
*
|
|
144
|
+
* For consumers still reading `runtimeCreationTarget`: a browser agent has no
|
|
145
|
+
* old name — there was no way to start one — so it reports as local, which is
|
|
146
|
+
* the truthful half of the answer (nothing remote is being reached).
|
|
147
|
+
*
|
|
148
|
+
* @deprecated Read the variant.
|
|
149
|
+
*/
|
|
150
|
+
export function legacyTargetOf(variant) {
|
|
151
|
+
return locationOf(variant) === 'cloud'
|
|
152
|
+
? 'backend-services'
|
|
153
|
+
: 'local-agent-runtimes';
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The harness a spec asks for, in the variant spelling.
|
|
157
|
+
*
|
|
158
|
+
* Defaulted rather than optional: every agent is run by something, and a spec
|
|
159
|
+
* that says nothing is run by the framework that has always run it. That
|
|
160
|
+
* default is what lets every spec written before this field stay correct.
|
|
161
|
+
*/
|
|
162
|
+
export function specHarnessOf(spec) {
|
|
163
|
+
return HARNESS_BY_SPEC_HARNESS[spec.harness ?? ''] ?? 'pydanticai';
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* The variants that could run this agent.
|
|
167
|
+
*
|
|
168
|
+
* What a host offers when someone picks where to run something: an agent built
|
|
169
|
+
* for the browser harness should not be offered a cloud runtime that cannot
|
|
170
|
+
* turn its loop, and a server-side agent should not be offered the page.
|
|
171
|
+
*/
|
|
172
|
+
export function variantsForSpec(spec) {
|
|
173
|
+
return variantsForSpecHarness(spec.harness);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The variant to start this agent with when the host has no preference.
|
|
177
|
+
*
|
|
178
|
+
* The package default when the spec can run there, and otherwise the first
|
|
179
|
+
* variant that can run it at all — so a `harness: vercel-ai` agent lands in
|
|
180
|
+
* the browser without every caller having to know that is where it belongs.
|
|
181
|
+
*/
|
|
182
|
+
export function defaultVariantForSpec(spec) {
|
|
183
|
+
if (variantSupportsSpecHarness(DEFAULT_AGENT_RUNTIME_VARIANT, spec.harness)) {
|
|
184
|
+
return DEFAULT_AGENT_RUNTIME_VARIANT;
|
|
185
|
+
}
|
|
186
|
+
return variantsForSpec(spec)[0] ?? DEFAULT_AGENT_RUNTIME_VARIANT;
|
|
187
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ServiceManager } from '@jupyterlab/services';
|
|
2
2
|
export interface RuntimeInfo {
|
|
3
3
|
runtimeId: string;
|
|
4
|
-
|
|
4
|
+
runtimeName: string;
|
|
5
5
|
ingress: string;
|
|
6
6
|
token: string;
|
|
7
7
|
environmentName?: string;
|
|
@@ -20,7 +20,7 @@ export interface RuntimeInfo {
|
|
|
20
20
|
* ```typescript
|
|
21
21
|
* const runtimeInfo = {
|
|
22
22
|
* runtimeId: 'abc123',
|
|
23
|
-
*
|
|
23
|
+
* runtimeName: 'jupyter-pod-xyz',
|
|
24
24
|
* ingress: 'https://jupyter.example.com',
|
|
25
25
|
* token: 'secret-token'
|
|
26
26
|
* };
|
|
@@ -17,7 +17,7 @@ import { ServerConnection, ServiceManager } from '@jupyterlab/services';
|
|
|
17
17
|
* ```typescript
|
|
18
18
|
* const runtimeInfo = {
|
|
19
19
|
* runtimeId: 'abc123',
|
|
20
|
-
*
|
|
20
|
+
* runtimeName: 'jupyter-pod-xyz',
|
|
21
21
|
* ingress: 'https://jupyter.example.com',
|
|
22
22
|
* token: 'secret-token'
|
|
23
23
|
* };
|
|
@@ -39,14 +39,14 @@ export const reconnectToRuntime = async (runtimeInfo) => {
|
|
|
39
39
|
environmentName: runtimeInfo.environmentName || 'unknown',
|
|
40
40
|
credits: 0,
|
|
41
41
|
reservationId: runtimeInfo.runtimeId,
|
|
42
|
-
|
|
42
|
+
runtimeName: runtimeInfo.runtimeName,
|
|
43
43
|
ingress: runtimeInfo.ingress,
|
|
44
44
|
token: runtimeInfo.token,
|
|
45
45
|
createdAt: new Date().toISOString(),
|
|
46
46
|
};
|
|
47
47
|
console.log('Reconnected to existing runtime:', {
|
|
48
48
|
runtimeId: runtimeInfo.runtimeId,
|
|
49
|
-
|
|
49
|
+
runtimeName: runtimeInfo.runtimeName,
|
|
50
50
|
ingress: runtimeInfo.ingress,
|
|
51
51
|
});
|
|
52
52
|
return serviceManager;
|
|
@@ -22,10 +22,10 @@ import type { ServiceManager } from '@jupyterlab/services';
|
|
|
22
22
|
* @returns An unregister function to call when the component disposes the
|
|
23
23
|
* manager itself (cleanup). Unregistering does NOT dispose the manager.
|
|
24
24
|
*/
|
|
25
|
-
export declare function registerSandboxServiceManager(
|
|
25
|
+
export declare function registerSandboxServiceManager(runtimeName: string, manager: ServiceManager.IManager): () => void;
|
|
26
26
|
/**
|
|
27
27
|
* Dispose (and unregister) every `ServiceManager` registered against a
|
|
28
28
|
* sandbox pod. Safe to call multiple times — `disposeServiceManager` is
|
|
29
29
|
* idempotent, and disposed managers are dropped from the registry.
|
|
30
30
|
*/
|
|
31
|
-
export declare function disposeSandboxServiceManagers(
|
|
31
|
+
export declare function disposeSandboxServiceManagers(runtimeName: string): void;
|
|
@@ -3,30 +3,30 @@
|
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
5
|
import { disposeServiceManager } from '@datalayer/jupyter-react';
|
|
6
|
-
const
|
|
6
|
+
const sandboxManagersByRuntime = new Map();
|
|
7
7
|
/**
|
|
8
8
|
* Register a `ServiceManager` connected to a sandbox pod.
|
|
9
9
|
*
|
|
10
10
|
* @returns An unregister function to call when the component disposes the
|
|
11
11
|
* manager itself (cleanup). Unregistering does NOT dispose the manager.
|
|
12
12
|
*/
|
|
13
|
-
export function registerSandboxServiceManager(
|
|
14
|
-
const normalized = String(
|
|
13
|
+
export function registerSandboxServiceManager(runtimeName, manager) {
|
|
14
|
+
const normalized = String(runtimeName || '').trim();
|
|
15
15
|
if (!normalized || !manager) {
|
|
16
16
|
return () => { };
|
|
17
17
|
}
|
|
18
|
-
let managers =
|
|
18
|
+
let managers = sandboxManagersByRuntime.get(normalized);
|
|
19
19
|
if (!managers) {
|
|
20
20
|
managers = new Set();
|
|
21
|
-
|
|
21
|
+
sandboxManagersByRuntime.set(normalized, managers);
|
|
22
22
|
}
|
|
23
23
|
managers.add(manager);
|
|
24
24
|
return () => {
|
|
25
|
-
const registered =
|
|
25
|
+
const registered = sandboxManagersByRuntime.get(normalized);
|
|
26
26
|
if (registered) {
|
|
27
27
|
registered.delete(manager);
|
|
28
28
|
if (registered.size === 0) {
|
|
29
|
-
|
|
29
|
+
sandboxManagersByRuntime.delete(normalized);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
};
|
|
@@ -36,16 +36,16 @@ export function registerSandboxServiceManager(podName, manager) {
|
|
|
36
36
|
* sandbox pod. Safe to call multiple times — `disposeServiceManager` is
|
|
37
37
|
* idempotent, and disposed managers are dropped from the registry.
|
|
38
38
|
*/
|
|
39
|
-
export function disposeSandboxServiceManagers(
|
|
40
|
-
const normalized = String(
|
|
39
|
+
export function disposeSandboxServiceManagers(runtimeName) {
|
|
40
|
+
const normalized = String(runtimeName || '').trim();
|
|
41
41
|
if (!normalized) {
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
|
-
const managers =
|
|
44
|
+
const managers = sandboxManagersByRuntime.get(normalized);
|
|
45
45
|
if (!managers) {
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
sandboxManagersByRuntime.delete(normalized);
|
|
49
49
|
managers.forEach(manager => {
|
|
50
50
|
try {
|
|
51
51
|
disposeServiceManager(manager);
|