@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
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
-
* Distributed under the terms of the Modified BSD License.
|
|
5
|
-
*/
|
|
6
2
|
import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
|
|
7
3
|
import { nullTranslator } from '@jupyterlab/translation';
|
|
8
4
|
//import { kernelIcon } from '@jupyterlab/ui-components';
|
|
@@ -34,14 +30,30 @@ const RUNTIME_DISPLAY_NAME_MAX_LENGTH = 25;
|
|
|
34
30
|
* "Assign a new Code Sandbox" and never among the ones already running.
|
|
35
31
|
*/
|
|
36
32
|
function isRunningSandbox(desc) {
|
|
37
|
-
return !!desc.kernelId || !!desc.
|
|
33
|
+
return !!desc.kernelId || !!desc.runtimeName;
|
|
38
34
|
}
|
|
39
35
|
/** How a sandbox is identified among the choices; see `dropdownDescs`. */
|
|
40
36
|
function codeSandboxDescKey(desc) {
|
|
41
|
-
// The pod stands in for the kernel of a sandbox that
|
|
42
|
-
//
|
|
43
|
-
// environment answer to one key
|
|
44
|
-
return `${desc.location}:${desc.kernelId ?? desc.
|
|
37
|
+
// The runtime uid, then the pod, stands in for the kernel of a sandbox that
|
|
38
|
+
// does not have one yet. Without that identity all Daytona sandboxes of the
|
|
39
|
+
// same environment answer to one key.
|
|
40
|
+
return `${desc.location}:${desc.kernelId ?? desc.id ?? desc.runtimeName ?? desc.name}`;
|
|
41
|
+
}
|
|
42
|
+
/** The identifier shown beside a running sandbox. */
|
|
43
|
+
function codeSandboxDisplayId(desc) {
|
|
44
|
+
return desc.kernelId ?? desc.id ?? desc.runtimeName;
|
|
45
|
+
}
|
|
46
|
+
/** Whether two descriptions refer to the same choice. */
|
|
47
|
+
function isSameCodeSandbox(left, right) {
|
|
48
|
+
if (!right) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
if (left.runtimeName && right.runtimeName) {
|
|
52
|
+
return left.runtimeName === right.runtimeName;
|
|
53
|
+
}
|
|
54
|
+
const sameLocation = left.location === right.location ||
|
|
55
|
+
(isRuntimeRemote(left.location) && isRuntimeRemote(right.location));
|
|
56
|
+
return sameLocation && codeSandboxDescKey(left) === codeSandboxDescKey(right);
|
|
45
57
|
}
|
|
46
58
|
/**
|
|
47
59
|
* The picker of a code sandbox: what runs already, and what could run.
|
|
@@ -108,10 +120,15 @@ export function CodeSandboxPicker(props) {
|
|
|
108
120
|
descs.filter(isRunningSandbox),
|
|
109
121
|
])
|
|
110
122
|
.filter(([, descs]) => descs.length > 0), [groupedRuntimeDescs]);
|
|
111
|
-
const environmentOnlyOptions = useMemo(() => dropdownOptions
|
|
123
|
+
const environmentOnlyOptions = useMemo(() => dropdownOptions
|
|
124
|
+
.filter(option => {
|
|
112
125
|
const desc = dropdownDescs.get(option.key);
|
|
113
126
|
return !desc || !isRunningSandbox(desc);
|
|
114
|
-
})
|
|
127
|
+
})
|
|
128
|
+
// The running sandboxes are the radio column beside this; the dropdown
|
|
129
|
+
// then lists only environments to start, so it needs no group heading
|
|
130
|
+
// of its own ("Assign a new Code Sandbox" already labels the control).
|
|
131
|
+
.map(option => ({ ...option, group: undefined })), [dropdownDescs, dropdownOptions]);
|
|
115
132
|
const radioSections = (entries) => (_jsx(RadioGroup, { name: "kernel-options", "aria-labelledby": "kernel-options", children: entries.map(([group, runtimeDescs]) => (_jsxs(Box, { children: [_jsx(Box, { as: "h4", sx: {
|
|
116
133
|
/*
|
|
117
134
|
* The type of a form label, not of a heading.
|
|
@@ -132,22 +149,20 @@ export function CodeSandboxPicker(props) {
|
|
|
132
149
|
fontSize: 'var(--text-body-size-medium, 0.875rem)',
|
|
133
150
|
fontWeight: 'var(--base-text-weight-semibold, 600)',
|
|
134
151
|
}, children: group }), runtimeDescs.map(k => {
|
|
152
|
+
const choiceKey = codeSandboxDescKey(k);
|
|
153
|
+
const displayId = codeSandboxDisplayId(k);
|
|
135
154
|
return (
|
|
136
155
|
// A kernel identifies a runtime that already runs; an
|
|
137
156
|
// environment to start one in has none, and is named
|
|
138
157
|
// by where it runs and what it runs.
|
|
139
|
-
_jsxs(Box, { title: k.name, children: [_jsxs(FormControl, { children: [_jsx(Radio, { value:
|
|
158
|
+
_jsxs(Box, { title: k.name, children: [_jsxs(FormControl, { children: [_jsx(Radio, { value: choiceKey, onChange: () => {
|
|
140
159
|
setRuntimeDesc(k);
|
|
141
|
-
}, checked: (k.
|
|
142
|
-
(isRuntimeRemote(k.location) &&
|
|
143
|
-
isRuntimeRemote(runtimeDesc?.location ?? 'local'))) &&
|
|
144
|
-
(k.kernelId ?? k.name) ===
|
|
145
|
-
(runtimeDesc?.kernelId ?? runtimeDesc?.name) }), _jsx(FormControl.Label, { children: _jsxs(Box, { display: "flex", sx: { alignItems: 'baseline' }, children: [_jsx(Box, { children: k.displayName }), k.kernelId && (_jsx(Text, { sx: {
|
|
160
|
+
}, checked: isSameCodeSandbox(k, runtimeDesc) }), _jsx(FormControl.Label, { children: _jsxs(Box, { display: "flex", sx: { alignItems: 'baseline' }, children: [_jsx(Box, { children: k.displayName }), displayId && (_jsx(Text, { sx: {
|
|
146
161
|
ml: 2,
|
|
147
162
|
fontSize: 0,
|
|
148
163
|
color: 'fg.muted',
|
|
149
|
-
fontFamily: 'mono'
|
|
150
|
-
}, title:
|
|
164
|
+
fontFamily: 'mono',
|
|
165
|
+
}, title: displayId, children: displayId.slice(0, 8) })), k.kernelId && k.location === 'remote' && (_jsx(Box, { ml: 3, mt: 1, children: _jsx(CreditsIndicator, { kernelId: k.kernelId, serviceManager: multiServiceManager.remote }, "credits-indicator") }))] }) }), _jsx(FormControl.Caption, { children: _jsxs(LabelGroup, { sx: { marginTop: 1 }, children: [_jsx(Label, { variant: "secondary", children: k.name }), k.provider && (_jsx(Label, { variant: "accent", sx: { marginLeft: 1 }, children: codeSandboxVariantTitle(k.provider) })), _jsx(Label, { variant: "secondary", sx: { marginLeft: 1 }, children: k.location }), k.burningRate && (_jsxs(Label, { variant: "sponsors", sx: { marginLeft: 1 }, children: [k.burningRate, " credits/second"] })), k.gpu && (_jsx(Label, { variant: "success", sx: { marginLeft: 1 }, children: "GPU" }))] }) })] }), _jsx(ActionList.Divider, {})] }, choiceKey));
|
|
151
166
|
})] }, group))) }));
|
|
152
167
|
const trans = useMemo(() => (translator ?? nullTranslator).load('jupyterlab'), [translator]);
|
|
153
168
|
const [defaultSet, setDefaultSet] = useState(false);
|
|
@@ -220,17 +235,36 @@ export function CodeSandboxPicker(props) {
|
|
|
220
235
|
}
|
|
221
236
|
if (sessionContext && groupedRuntimeDescs) {
|
|
222
237
|
const kernelId = sessionContext.session?.kernel?.id;
|
|
223
|
-
|
|
238
|
+
/*
|
|
239
|
+
* An external sandbox is bound by its POD, not a kernel of this platform.
|
|
240
|
+
*
|
|
241
|
+
* Its descriptor carries the pod and — until a kernel of the platform is
|
|
242
|
+
* ever attached — an empty kernel id, and the session it binds stands on
|
|
243
|
+
* the pod as its `location`. Matching only on the kernel id therefore
|
|
244
|
+
* missed it: the picker fell back to the local kernel the notebook never
|
|
245
|
+
* ran on, opening on "Python 3" while the toolbar rightly showed the
|
|
246
|
+
* sandbox. So the current sandbox is matched on the pod as well, and the
|
|
247
|
+
* remote descriptors — which arrive late — are waited for before the
|
|
248
|
+
* choice is allowed to settle on anything else.
|
|
249
|
+
*/
|
|
250
|
+
const location = sessionContext.location;
|
|
251
|
+
const remoteBound = !!location && isRuntimeRemote(location);
|
|
252
|
+
const matchesCurrent = (desc) => (!!kernelId && desc.kernelId === kernelId) ||
|
|
253
|
+
(!!desc.runtimeName && !!location && desc.runtimeName === location);
|
|
254
|
+
if (kernelId || remoteBound) {
|
|
255
|
+
if (remoteBound && !remoteModelsReady) {
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
224
258
|
let matched = false;
|
|
225
|
-
Object.
|
|
259
|
+
Object.values(groupedRuntimeDescs).forEach(runtimeDescs => {
|
|
226
260
|
runtimeDescs.forEach(runtimeDesc => {
|
|
227
|
-
if (runtimeDesc
|
|
261
|
+
if (matchesCurrent(runtimeDesc)) {
|
|
228
262
|
matched = true;
|
|
229
263
|
setRuntimeDesc(runtimeDesc);
|
|
230
264
|
}
|
|
231
265
|
});
|
|
232
266
|
});
|
|
233
|
-
if (!matched) {
|
|
267
|
+
if (!matched && kernelId) {
|
|
234
268
|
if (!remoteModelsReady) {
|
|
235
269
|
return;
|
|
236
270
|
}
|
|
@@ -244,8 +278,8 @@ export function CodeSandboxPicker(props) {
|
|
|
244
278
|
kernelId,
|
|
245
279
|
language: spec.language,
|
|
246
280
|
displayName: sessionContext.kernelDisplayName,
|
|
247
|
-
location:
|
|
248
|
-
|
|
281
|
+
location: location ?? 'local',
|
|
282
|
+
runtimeName: remoteBound ? location : undefined,
|
|
249
283
|
});
|
|
250
284
|
}
|
|
251
285
|
}
|
|
@@ -300,7 +334,7 @@ export function CodeSandboxPicker(props) {
|
|
|
300
334
|
*/
|
|
301
335
|
const [givenName, setGivenName] = useState('');
|
|
302
336
|
const givenNameFor = useRef(undefined);
|
|
303
|
-
const [
|
|
337
|
+
const [homeFolder, setHomeFolder] = useState(false);
|
|
304
338
|
const asksForNewSandbox = withNewSandboxControls || !!onTransferChange;
|
|
305
339
|
useEffect(() => {
|
|
306
340
|
if (asksForNewSandbox) {
|
|
@@ -312,7 +346,12 @@ export function CodeSandboxPicker(props) {
|
|
|
312
346
|
.get()
|
|
313
347
|
.find(env => env.name === runtimeDesc?.name)?.burning_rate;
|
|
314
348
|
const allowance = useNewCodeSandboxAllowance(resolvedBurningRate);
|
|
315
|
-
|
|
349
|
+
// New means an environment to start, not a sandbox already running. An
|
|
350
|
+
// external sandbox runs with a pod but no kernel of its own, so keying
|
|
351
|
+
// "new" on the kernel alone misread it as new — and a new remote sandbox
|
|
352
|
+
// the account cannot yet price is answered with nothing, which is why
|
|
353
|
+
// assigning an existing Daytona did nothing.
|
|
354
|
+
const isNewSandbox = !!runtimeDesc && !isRunningSandbox(runtimeDesc);
|
|
316
355
|
// Offer a name for what was just picked, and leave it alone afterwards: the
|
|
317
356
|
// key is the thing picked, so re-picking the same one keeps what was typed.
|
|
318
357
|
const pickedKey = isNewSandbox
|
|
@@ -375,28 +414,40 @@ export function CodeSandboxPicker(props) {
|
|
|
375
414
|
? `${runtimeDesc.location}-${runtimeDesc.name}`
|
|
376
415
|
: runtimeDesc.name,
|
|
377
416
|
id: runtimeDesc.kernelId,
|
|
417
|
+
// The pod names a sandbox that has no kernel of its own — an
|
|
418
|
+
// external one — so the session can bind it through the proxy.
|
|
419
|
+
runtime_name: runtimeDesc.runtimeName,
|
|
378
420
|
// The name the sandbox is given, carried with the choice.
|
|
379
421
|
//
|
|
380
422
|
// Everything else about the pick travelled in this object and the
|
|
381
423
|
// name did not, so whoever created the sandbox had nothing to name
|
|
382
424
|
// it with and fell back to the kernelspec: the launcher honoured
|
|
383
425
|
// what was typed, the picker silently dropped it.
|
|
426
|
+
//
|
|
427
|
+
// Two readers, two fields: a sandbox of a server is named from
|
|
428
|
+
// `displayName`, a runtime of the platform is started with
|
|
429
|
+
// `givenName`. A new remote sandbox — a Daytona among them — read
|
|
430
|
+
// the second, which nothing filled, and came up "Code Sandbox".
|
|
431
|
+
// Both carry the name now: what the user typed, or the title of the
|
|
432
|
+
// environment it runs.
|
|
384
433
|
displayName: runtimeDesc.displayName,
|
|
434
|
+
givenName: givenName || runtimeDesc.displayName,
|
|
385
435
|
creditsLimit,
|
|
386
|
-
capabilities:
|
|
436
|
+
capabilities: homeFolder ? ['home-folder'] : undefined,
|
|
387
437
|
}
|
|
388
438
|
: null,
|
|
389
439
|
selectedVariables,
|
|
390
440
|
});
|
|
391
441
|
}, [
|
|
392
442
|
allowance,
|
|
443
|
+
givenName,
|
|
393
444
|
isNewSandbox,
|
|
394
445
|
onTransferChange,
|
|
395
446
|
resolvedBurningRate,
|
|
396
447
|
runtimeDesc,
|
|
397
448
|
selectedVariables,
|
|
398
449
|
timeLimit,
|
|
399
|
-
|
|
450
|
+
homeFolder,
|
|
400
451
|
]);
|
|
401
452
|
// For cell using submenu instead of group would be nice unfortunately the feature
|
|
402
453
|
// is not yet implemented in the component there has been a not-great demo story.
|
|
@@ -410,8 +461,9 @@ export function CodeSandboxPicker(props) {
|
|
|
410
461
|
icon: () => (_jsx("span", { className: "dla-Cell-runtime-icon", children: _jsx(CpuIcon, {}) })), "aria-label": trans.__('Assign a Runtime to the Cell.'), title: trans.__('Assign a Runtime to the Cell.'), size: "small", variant: "invisible" }) })) : (_jsxs(ActionMenu.Button, { variant: "default", disabled: disabled || groupedRuntimeDescs === null, children: [_jsx(Text, { fontWeight: 'bold', children: trans.__('Runtime:') }), ' ' + (runtimeDesc?.displayName ?? trans.__('No Runtime'))] })), _jsx(ActionMenu.Overlay, { ...overlayProps, width: "medium", sx: { overflowY: 'auto' }, side: variant === 'cell' ? 'outside-left' : 'outside-right', children: _jsxs(ActionList, { selectionVariant: "single", children: [variant === 'cell' && (_jsxs(ActionList.Item, { selected: runtimeDesc === undefined, onSelect: () => {
|
|
411
462
|
setRuntimeDesc(undefined);
|
|
412
463
|
}, children: [preference?.location && (_jsx(ActionList.LeadingVisual, { children: preference.location === 'local' ? (_jsx(LaptopSimpleIcon, {})) : preference.location === 'browser' ? (_jsx(BrowserIcon, {})) : (_jsx(CloudUploadIcon, {})) })), trans.__('Assign the Notebook Runtime')] }, 'null')), !!preActions && preActions, Object.entries(groupedRuntimeDescs ?? {}).map(([group, runtimeDescs]) => (_jsxs(ActionList.Group, { children: [_jsx(ActionList.GroupHeading, { children: group }), runtimeDescs.map(candidateRuntimeDesc => {
|
|
413
|
-
const
|
|
414
|
-
|
|
464
|
+
const choiceKey = codeSandboxDescKey(candidateRuntimeDesc);
|
|
465
|
+
const annotation = candidateRuntimeDesc.runtimeName
|
|
466
|
+
? ` - ${candidateRuntimeDesc.runtimeName}`
|
|
415
467
|
: candidateRuntimeDesc.kernelId
|
|
416
468
|
? ` - ${candidateRuntimeDesc.kernelId}`
|
|
417
469
|
: '';
|
|
@@ -420,16 +472,10 @@ export function CodeSandboxPicker(props) {
|
|
|
420
472
|
RUNTIME_DISPLAY_NAME_MAX_LENGTH
|
|
421
473
|
? candidateRuntimeDesc.displayName.slice(0, RUNTIME_DISPLAY_NAME_MAX_LENGTH) + '…'
|
|
422
474
|
: (candidateRuntimeDesc.displayName ?? '');
|
|
423
|
-
return (_jsxs(ActionList.Item, { title: fullDisplayName, selected: (candidateRuntimeDesc
|
|
424
|
-
runtimeDesc?.location ||
|
|
425
|
-
(isRuntimeRemote(candidateRuntimeDesc.location) &&
|
|
426
|
-
isRuntimeRemote(runtimeDesc?.location ?? 'local'))) &&
|
|
427
|
-
(candidateRuntimeDesc.kernelId ??
|
|
428
|
-
candidateRuntimeDesc.name) ===
|
|
429
|
-
(runtimeDesc?.kernelId ?? runtimeDesc?.name), onSelect: () => {
|
|
475
|
+
return (_jsxs(ActionList.Item, { title: fullDisplayName, selected: isSameCodeSandbox(candidateRuntimeDesc, runtimeDesc), onSelect: () => {
|
|
430
476
|
setRuntimeDesc(candidateRuntimeDesc);
|
|
431
477
|
}, children: [_jsx(ActionList.LeadingVisual, { children: candidateRuntimeDesc.location === 'local' ? (_jsx(LaptopSimpleIcon, {})) : candidateRuntimeDesc.location === 'browser' ? (_jsx(BrowserIcon, {})) : (_jsx(CloudUploadIcon, {})) }), displayName + annotation.slice(0, 10), _jsxs(ActionList.TrailingVisual, { children: [candidateRuntimeDesc.name && (_jsx(Label, { size: "small", variant: "secondary", children: candidateRuntimeDesc.name })), ' ', candidateRuntimeDesc
|
|
432
|
-
.provider && (_jsx(Label, { size: "small", variant: "accent", children: codeSandboxVariantTitle(candidateRuntimeDesc.provider) }))] })] },
|
|
478
|
+
.provider && (_jsx(Label, { size: "small", variant: "accent", children: codeSandboxVariantTitle(candidateRuntimeDesc.provider) }))] })] }, choiceKey));
|
|
433
479
|
})] }, group))), !!postActions && (_jsxs(_Fragment, { children: [_jsx(ActionList.Divider, {}), postActions] }))] }) })] })) : display === 'dropdown' ? (
|
|
434
480
|
/*
|
|
435
481
|
* Section for the dropdown display.
|
|
@@ -439,11 +485,12 @@ export function CodeSandboxPicker(props) {
|
|
|
439
485
|
* nine rows of radio buttons before anything else on the dialog can
|
|
440
486
|
* be read; closed, it is one line.
|
|
441
487
|
*/
|
|
442
|
-
_jsxs(_Fragment, { children: [defaultSet &&
|
|
488
|
+
_jsxs(_Fragment, { children: [defaultSet &&
|
|
489
|
+
sandboxLayout === 'separated' &&
|
|
443
490
|
runningEntries.length > 0 &&
|
|
444
491
|
radioSections(runningEntries), defaultSet && (
|
|
445
492
|
// Room below: the controls of a new sandbox follow, and the
|
|
446
|
-
// toggle of the
|
|
493
|
+
// toggle of the home folder sat against the dropdown.
|
|
447
494
|
_jsxs(FormControl, { sx: { marginBottom: 4 }, children: [_jsx(FormControl.Label, { children: sandboxLayout === 'separated'
|
|
448
495
|
? 'Assign a new Code Sandbox'
|
|
449
496
|
: 'Environment' }), _jsx(CodeSandboxEnvironmentSelect, { disabled: disabled, options: sandboxLayout === 'separated'
|
|
@@ -476,6 +523,6 @@ export function CodeSandboxPicker(props) {
|
|
|
476
523
|
// the name travels with it, rather than beside it.
|
|
477
524
|
setRuntimeDesc({ ...runtimeDesc, displayName: value });
|
|
478
525
|
}
|
|
479
|
-
},
|
|
526
|
+
}, homeFolder: homeFolder, onHomeFolderToggle: () => setHomeFolder(current => !current) })), variables.available && (_jsx(CodeSandboxVariables, { selectedVariables: variables.selected, setSelectVariable: variables.setSelected, transferVariables: variables.transfer, setTransferVariable: variables.setTransfer, kernelVariables: variables.variables, translator: translator }))] }));
|
|
480
527
|
}
|
|
481
528
|
export default CodeSandboxPicker;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
-
* Distributed under the terms of the Modified BSD License.
|
|
5
|
-
*/
|
|
6
2
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
7
3
|
import { nullTranslator } from '@jupyterlab/translation';
|
|
8
4
|
import { ActionList } from '@primer/react';
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
-
* Distributed under the terms of the Modified BSD License.
|
|
5
|
-
*/
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
2
|
import { FormControl, IconButton, Text, TextInput } from '@primer/react';
|
|
7
3
|
import { Box } from '@datalayer/primer-addons';
|
|
8
|
-
import {
|
|
4
|
+
import { CreditCardIcon } from '@primer/octicons-react';
|
|
9
5
|
import { Slider } from '@datalayer/primer-addons';
|
|
10
6
|
/**
|
|
11
7
|
* Maximal time reservable for a runtime in minutes.
|
|
@@ -45,5 +41,7 @@ export function CodeSandboxReservationControl(props) {
|
|
|
45
41
|
gridTemplateColumns: 'max-content 1fr max-content max-content',
|
|
46
42
|
gridGap: 'var(--stack-gap-condensed)',
|
|
47
43
|
width: '100%',
|
|
48
|
-
}, children: [_jsx(Slider, { step: 1, min: 1, max: max, value: displayedTime, onChange: handleTimeChange, disabled: disabled, label: "", displayValue: false }), _jsx(TextInput, { type: "number", step: "1", min: "1", max: max, disabled: disabled, value: displayedTime.toFixed(2), onChange: handleTimeChange }), (max === 0 || max > Number.EPSILON) && (_jsxs(_Fragment, { children: [
|
|
44
|
+
}, children: [_jsx(Slider, { step: 1, min: 1, max: max, value: displayedTime, onChange: handleTimeChange, disabled: disabled, label: "", displayValue: false }), _jsx(TextInput, { type: "number", step: "1", min: "1", max: max, disabled: disabled, value: displayedTime.toFixed(2), onChange: handleTimeChange }), (max === 0 || max > Number.EPSILON) && (_jsxs(_Fragment, { children: [_jsx(Text, { children: max < requestedMax
|
|
45
|
+
? `out of ${max} minutes`
|
|
46
|
+
: `out of ${max} available minutes` }), addCredits && (_jsx(IconButton, { icon: CreditCardIcon, "aria-label": "Check your Plan", variant: "invisible", onClick: () => addCredits() }))] }))] }), _jsxs(FormControl.Caption, { children: ["Maximum execution time that can be consumed by the runtime. It must be less than", ' ', (MAXIMAL_CODE_SANDBOX_TIME_RESERVATION_MINUTES / 60).toFixed(0), " hours.", burningRate && (_jsxs(_Fragment, { children: [_jsx("br", {}), `With the current value, the runtime execution will consume at most ${(time * burningRate * 60).toFixed(2)} credits.`] }))] }), error && (_jsx(FormControl.Validation, { variant: "error", children: error }))] })) : (_jsx(_Fragment, {}));
|
|
49
47
|
}
|
|
@@ -11,6 +11,11 @@ export interface CodeSandboxTransfer {
|
|
|
11
11
|
runtime: Partial<Omit<IRuntimeOptions, 'kernelType'> & {
|
|
12
12
|
id: string;
|
|
13
13
|
displayName: string;
|
|
14
|
+
/**
|
|
15
|
+
* The pod of an external sandbox (Daytona, E2B), which has no kernel of
|
|
16
|
+
* its own — the session binds it through the runtimes proxy by this.
|
|
17
|
+
*/
|
|
18
|
+
runtime_name: string;
|
|
14
19
|
}> | null;
|
|
15
20
|
/**
|
|
16
21
|
* List of selected variables
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { SessionContext } from '@jupyterlab/apputils';
|
|
2
2
|
import { ITranslator } from '@jupyterlab/translation';
|
|
3
3
|
import { IMultiServiceManager } from '../../runtimes';
|
|
4
|
-
import { IRuntimeDesc } from '../../models';
|
|
4
|
+
import { IRuntimeDesc, type IDatalayerEnvironment } from '../../models';
|
|
5
5
|
import { CodeSandboxVariant } from '../../models/CodeSandboxVariant';
|
|
6
6
|
export type IDatalayerCodeSandboxDesc = IRuntimeDesc & {
|
|
7
7
|
gpu?: string;
|
|
8
8
|
/** The provider the environment belongs to — see `CodeSandboxVariant`. */
|
|
9
9
|
provider?: CodeSandboxVariant;
|
|
10
|
+
/**
|
|
11
|
+
* The listing entry a NEW sandbox would be started from, carried whole.
|
|
12
|
+
*
|
|
13
|
+
* What the picker has to say about an environment — whose it is, which
|
|
14
|
+
* version it launches, the class that prices it, whether anything was built
|
|
15
|
+
* for this variant — is decided by the rules in `codeSandboxEnvironments`,
|
|
16
|
+
* and they read the entry. Copying a field at a time here is how the
|
|
17
|
+
* launcher and the picker came to disagree about the same environment
|
|
18
|
+
* (PLAN_ENV.md, E1-19). Absent on a sandbox that already runs and on a
|
|
19
|
+
* kernelspec of a server or of the browser.
|
|
20
|
+
*/
|
|
21
|
+
environment?: IDatalayerEnvironment;
|
|
10
22
|
};
|
|
11
23
|
/**
|
|
12
24
|
* Create the grouped runtime descriptions.
|
|
@@ -90,18 +90,23 @@ export function getGroupedCodeSandboxDescs(multiServiceManager, kernelId, transl
|
|
|
90
90
|
* picker, which is the one place a notebook can be pointed at them.
|
|
91
91
|
* What they always have is the pod that stands for them.
|
|
92
92
|
*/
|
|
93
|
-
.filter(k => (k.id || k.
|
|
93
|
+
.filter(k => (k.id || k.runtime_name) && !listedAsSession.includes(k.id))
|
|
94
94
|
.map(runtime => {
|
|
95
95
|
const environment = multiServiceManager
|
|
96
96
|
.remote.environments.get()
|
|
97
97
|
.find(env => env.name === runtime.environment.name);
|
|
98
98
|
return {
|
|
99
|
+
// Keep the control-plane identity as well as the Jupyter kernel
|
|
100
|
+
// identity. External sandboxes may not have a kernel until they
|
|
101
|
+
// are attached, but their runtime uid is already unique.
|
|
102
|
+
id: runtime.uid,
|
|
99
103
|
// Empty for an external sandbox: it has none, and saying so is
|
|
100
104
|
// what keeps the picker from trying to connect to one.
|
|
101
105
|
kernelId: runtime.id || undefined,
|
|
102
106
|
name: environment.name,
|
|
103
107
|
language: environment.language,
|
|
104
|
-
provider: codeSandboxVariantOf(environment?.owner ??
|
|
108
|
+
provider: codeSandboxVariantOf(environment?.owner ??
|
|
109
|
+
runtime.environment?.owner),
|
|
105
110
|
displayName:
|
|
106
111
|
// The name it was GIVEN first: the title of the environment is
|
|
107
112
|
// what it runs, and every sandbox of that environment answers
|
|
@@ -109,7 +114,7 @@ export function getGroupedCodeSandboxDescs(multiServiceManager, kernelId, transl
|
|
|
109
114
|
// can be told apart here.
|
|
110
115
|
runtime.given_name || environment.title || environment.name,
|
|
111
116
|
location: 'remote',
|
|
112
|
-
|
|
117
|
+
runtimeName: runtime.runtime_name,
|
|
113
118
|
gpu: environment.resources?.['nvidia.com/gpu'],
|
|
114
119
|
};
|
|
115
120
|
}))
|
|
@@ -133,7 +138,7 @@ export function getGroupedCodeSandboxDescs(multiServiceManager, kernelId, transl
|
|
|
133
138
|
const distinctRunning = runningSessions.filter(desc => {
|
|
134
139
|
// A kernel-less sandbox is named by its pod; without it every external
|
|
135
140
|
// sandbox of one environment collapsed into a single entry.
|
|
136
|
-
const key = `${desc.location}:${desc.kernelId ?? desc.
|
|
141
|
+
const key = `${desc.location}:${desc.kernelId ?? desc.runtimeName ?? desc.name}`;
|
|
137
142
|
if (seen.has(key)) {
|
|
138
143
|
return false;
|
|
139
144
|
}
|
|
@@ -187,6 +192,7 @@ export function getGroupedCodeSandboxDescs(multiServiceManager, kernelId, transl
|
|
|
187
192
|
gpu: spec.resources?.['nvidia.com/gpu'],
|
|
188
193
|
burningRate: spec.burning_rate,
|
|
189
194
|
provider: codeSandboxVariantOf(spec?.owner),
|
|
195
|
+
environment: spec,
|
|
190
196
|
}))
|
|
191
197
|
.filter(filterKernels));
|
|
192
198
|
environments.push(...Object.values(multiServiceManager.browser?.kernelspecs.specs?.kernelspecs ?? {})
|
|
@@ -1,18 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
/**
|
|
2
|
+
* What launching a NEW code sandbox asks of the user, in one place.
|
|
3
|
+
*
|
|
4
|
+
* The launcher dialog and the picker both offer to start a sandbox, and both
|
|
5
|
+
* used to carry their own copy of the same questions — how long to reserve,
|
|
6
|
+
* whether to mount the home folder — and of the same arithmetic over the
|
|
7
|
+
* credits of the account. This module is the single copy: the hook computes
|
|
8
|
+
* what the account allows, the component renders the two controls, and the
|
|
9
|
+
* helper turns a time limit into the credits reservation.
|
|
10
|
+
*
|
|
11
|
+
* @module components/code-sandboxes/NewCodeSandboxControls
|
|
12
|
+
*/
|
|
13
|
+
import type { JSX } from 'react';
|
|
14
|
+
import { type INewCodeSandboxAllowance } from './codeSandboxAllowance';
|
|
15
|
+
export type { INewCodeSandboxAllowance };
|
|
13
16
|
/**
|
|
14
17
|
* The credits arithmetic both the launcher and the picker ask.
|
|
15
18
|
*
|
|
19
|
+
* The arithmetic itself lives in `codeSandboxAllowance`, free of React and of
|
|
20
|
+
* this module's Primer imports, so it can be read and tested on its own.
|
|
21
|
+
*
|
|
16
22
|
* @param burningRate Credits per second of the chosen environment
|
|
17
23
|
*/
|
|
18
24
|
export declare function useNewCodeSandboxAllowance(burningRate: number | undefined): INewCodeSandboxAllowance;
|
|
@@ -31,8 +37,8 @@ export interface INewCodeSandboxControlsProps {
|
|
|
31
37
|
error?: string;
|
|
32
38
|
/** Offered next to the error when credits can be added from here. */
|
|
33
39
|
addCredits?: () => void;
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
homeFolder: boolean;
|
|
41
|
+
onHomeFolderToggle: () => void;
|
|
36
42
|
storageDisabled?: boolean;
|
|
37
43
|
/**
|
|
38
44
|
* The name the sandbox is given, when the caller asks for that question.
|
|
@@ -50,7 +56,7 @@ export interface INewCodeSandboxControlsProps {
|
|
|
50
56
|
* this machine: it reserves no time and mounts no storage of the platform,
|
|
51
57
|
* so neither question applies to it.
|
|
52
58
|
*/
|
|
53
|
-
|
|
59
|
+
withHomeFolder?: boolean;
|
|
54
60
|
}
|
|
55
61
|
/**
|
|
56
62
|
* The two questions of a new sandbox: the time reservation, and the storage.
|
|
@@ -1,60 +1,28 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Distributed under the terms of the Modified BSD License.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* What launching a NEW code sandbox asks of the user, in one place.
|
|
8
|
-
*
|
|
9
|
-
* The launcher dialog and the picker both offer to start a sandbox, and both
|
|
10
|
-
* used to carry their own copy of the same questions — how long to reserve,
|
|
11
|
-
* whether to mount the user storage — and of the same arithmetic over the
|
|
12
|
-
* credits of the account. This module is the single copy: the hook computes
|
|
13
|
-
* what the account allows, the component renders the two controls, and the
|
|
14
|
-
* helper turns a time limit into the credits reservation.
|
|
15
|
-
*
|
|
16
|
-
* @module components/code-sandboxes/NewCodeSandboxControls
|
|
17
|
-
*/
|
|
18
|
-
import { FormControl, IconButton, TextInput, ToggleSwitch, Tooltip, } from '@primer/react';
|
|
19
|
-
import { AlertIcon } from '@primer/octicons-react';
|
|
2
|
+
import { FormControl, Link, TextInput, ToggleSwitch } from '@primer/react';
|
|
3
|
+
import { InfoIcon } from '@primer/octicons-react';
|
|
20
4
|
import { useCoreStore, useIAMStore } from '../../state/substates';
|
|
21
5
|
import { CodeSandboxReservationControl, MAXIMAL_CODE_SANDBOX_TIME_RESERVATION_MINUTES, } from './CodeSandboxReservationControl';
|
|
6
|
+
import { codeSandboxAllowance, } from './codeSandboxAllowance';
|
|
22
7
|
/**
|
|
23
8
|
* The credits arithmetic both the launcher and the picker ask.
|
|
24
9
|
*
|
|
10
|
+
* The arithmetic itself lives in `codeSandboxAllowance`, free of React and of
|
|
11
|
+
* this module's Primer imports, so it can be read and tested on its own.
|
|
12
|
+
*
|
|
25
13
|
* @param burningRate Credits per second of the chosen environment
|
|
26
14
|
*/
|
|
27
15
|
export function useNewCodeSandboxAllowance(burningRate) {
|
|
28
16
|
const { credits, user } = useIAMStore();
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
user?.subscription?.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
currentRuns < includedRuns;
|
|
39
|
-
const hasKnownCredits = typeof credits?.available === 'number';
|
|
40
|
-
const maxFromCredits = burningRate
|
|
41
|
-
? Math.floor((credits?.available ?? 0) / burningRate / 60.0)
|
|
42
|
-
: undefined;
|
|
43
|
-
const effectiveMaxMinutes = hasKnownCredits && hasKnownRunAllowance && !hasRemainingRuns
|
|
44
|
-
? Math.max(1, maxFromCredits ?? 0)
|
|
45
|
-
: Math.max(10, maxFromCredits && maxFromCredits > 0 ? maxFromCredits : 0);
|
|
46
|
-
const outOfCredits = hasKnownCredits &&
|
|
47
|
-
hasKnownRunAllowance &&
|
|
48
|
-
!hasRemainingRuns &&
|
|
49
|
-
((credits?.available ?? 0) <= 0 || (maxFromCredits ?? 0) < Number.EPSILON);
|
|
50
|
-
return {
|
|
51
|
-
maxFromCredits,
|
|
52
|
-
effectiveMaxMinutes,
|
|
53
|
-
outOfCredits,
|
|
54
|
-
hasKnownCredits,
|
|
55
|
-
hasKnownRunAllowance,
|
|
56
|
-
hasRemainingRuns,
|
|
57
|
-
};
|
|
17
|
+
return codeSandboxAllowance({
|
|
18
|
+
available: credits?.available,
|
|
19
|
+
includedRuns: user?.subscription?.usage?.included_runs ??
|
|
20
|
+
user?.subscription?.included_runs,
|
|
21
|
+
currentRuns: user?.subscription?.usage?.current_runs ??
|
|
22
|
+
user?.subscription?.current_runs ??
|
|
23
|
+
user?.subscription?.used_runs,
|
|
24
|
+
burningRate,
|
|
25
|
+
});
|
|
58
26
|
}
|
|
59
27
|
/** The credits a time reservation stands for. */
|
|
60
28
|
export function creditsLimitFor(timeLimitMinutes, burningRate) {
|
|
@@ -67,10 +35,19 @@ export function creditsLimitFor(timeLimitMinutes, burningRate) {
|
|
|
67
35
|
* The storage is withheld on white-label deployments, as it always was.
|
|
68
36
|
*/
|
|
69
37
|
export function NewCodeSandboxControls(props) {
|
|
70
|
-
const { addCredits, burningRate, withReservation = true, disabled, error, givenName, max, onGivenNameChange, onTimeChange,
|
|
38
|
+
const { addCredits, burningRate, withReservation = true, disabled, error, givenName, max, onGivenNameChange, onTimeChange, onHomeFolderToggle, storageDisabled, timeLimit, homeFolder, withHomeFolder = true, } = props;
|
|
71
39
|
const { configuration } = useCoreStore();
|
|
72
|
-
return (_jsxs(_Fragment, { children: [withReservation && (_jsx(CodeSandboxReservationControl, { addCredits: addCredits, disabled: disabled, label: 'Time reservation', max: max, time: timeLimit, burningRate: burningRate, onTimeChange: onTimeChange, error: error })),
|
|
40
|
+
return (_jsxs(_Fragment, { children: [withReservation && (_jsx(CodeSandboxReservationControl, { addCredits: addCredits, disabled: disabled, label: 'Time reservation', max: max, time: timeLimit, burningRate: burningRate, onTimeChange: onTimeChange, error: error })), withHomeFolder && !configuration.whiteLabel && (_jsxs(FormControl, { disabled: storageDisabled, layout: "horizontal", children: [_jsxs(FormControl.Label, { id: "new-sandbox-home-folder-label", children: ["Mount Home Folder", _jsxs(Link, { href: "/docs/contents/home-folder", target: "_blank", rel: "noopener noreferrer",
|
|
41
|
+
// The label is a <label> for the toggle; a click on the link
|
|
42
|
+
// must open the doc, not flip the switch.
|
|
43
|
+
onClick: event => event.stopPropagation(), muted: true, sx: {
|
|
44
|
+
marginLeft: 2,
|
|
45
|
+
fontWeight: 'normal',
|
|
46
|
+
display: 'inline-flex',
|
|
47
|
+
alignItems: 'center',
|
|
48
|
+
gap: 1,
|
|
49
|
+
}, children: [_jsx(InfoIcon, { size: 14 }), "Read more on Home Content"] })] }), _jsx(ToggleSwitch, { disabled: storageDisabled, checked: homeFolder, size: "small", onClick: event => {
|
|
73
50
|
event.preventDefault();
|
|
74
|
-
|
|
75
|
-
}, "aria-labelledby": "new-sandbox-
|
|
51
|
+
onHomeFolderToggle();
|
|
52
|
+
}, "aria-labelledby": "new-sandbox-home-folder-label" })] })), onGivenNameChange && (_jsxs(FormControl, { disabled: disabled, children: [_jsx(FormControl.Label, { children: "Given Name" }), _jsx(TextInput, { block: true, name: "given-name", value: givenName ?? '', onChange: event => onGivenNameChange(event.target.value) }), _jsx(FormControl.Caption, { children: "What this sandbox is called, wherever it is listed." })] }))] }));
|
|
76
53
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long a new Code Sandbox may be reserved for, and whether it may start.
|
|
3
|
+
*
|
|
4
|
+
* Separated from the control that renders it so it can be read and tested as
|
|
5
|
+
* what it is: arithmetic over a balance, a plan's run allowance and the
|
|
6
|
+
* burning rate of an environment. The launcher and the picker both ask it,
|
|
7
|
+
* and must get the same answer.
|
|
8
|
+
*/
|
|
9
|
+
/** What the account allows for a new sandbox of a given burning rate. */
|
|
10
|
+
export interface INewCodeSandboxAllowance {
|
|
11
|
+
/** Minutes the available credits pay for; undefined without a usable rate. */
|
|
12
|
+
maxFromCredits?: number;
|
|
13
|
+
/** The ceiling offered by the reservation control. */
|
|
14
|
+
effectiveMaxMinutes: number;
|
|
15
|
+
/** Whether a paid start is impossible: no runs left and no credits. */
|
|
16
|
+
outOfCredits: boolean;
|
|
17
|
+
hasKnownCredits: boolean;
|
|
18
|
+
hasKnownRunAllowance: boolean;
|
|
19
|
+
hasRemainingRuns: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** What a reservation is offered before any credits are known. */
|
|
22
|
+
export declare const DEFAULT_MINUTES_FLOOR = 10;
|
|
23
|
+
export interface ICodeSandboxAllowanceInput {
|
|
24
|
+
/** Credits the account can still commit. */
|
|
25
|
+
available?: number;
|
|
26
|
+
/** Runs the plan includes, when it counts runs. */
|
|
27
|
+
includedRuns?: number;
|
|
28
|
+
/** Runs already taken from that allowance. */
|
|
29
|
+
currentRuns?: number;
|
|
30
|
+
/** Credits per second of the chosen environment. */
|
|
31
|
+
burningRate?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function codeSandboxAllowance({ available, includedRuns, currentRuns, burningRate, }: ICodeSandboxAllowanceInput): INewCodeSandboxAllowance;
|