@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
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } 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 { useIsMounted } from 'usehooks-ts';
|
|
8
4
|
import { Button, FormControl, Spinner, Text, TextInput, ToggleSwitch, } from '@primer/react';
|
|
@@ -14,6 +10,8 @@ import { NO_RUNTIME_AVAILABLE_LABEL } from '@datalayer/core/lib/i18n';
|
|
|
14
10
|
import { isCodeSandboxProviderAvailable } from './codeSandboxProviders';
|
|
15
11
|
import { CodeSandboxVariant, codeSandboxVariantOf, codeSandboxVariantTitle, } from '../../models/CodeSandboxVariant';
|
|
16
12
|
import { CodeSandboxEnvironmentSelect, } from './CodeSandboxEnvironmentSelect';
|
|
13
|
+
import { codeSandboxEnvironmentOptions, codeSandboxEnvironmentVersion, firstLaunchableCodeSandboxEnvironment, libraryEnvironmentOf, } from './codeSandboxEnvironments';
|
|
14
|
+
import { getEnvironmentPublication } from '../../api/runtimes/environments';
|
|
17
15
|
import { getCodeSandboxGivenName, listCodeSandboxGivenNames, nextCodeSandboxGivenName, setCodeSandboxGivenName, } from './CodeSandboxNames';
|
|
18
16
|
import { iamStore, runtimesStore, useCoreStore, useIAMStore, } from '../../state/substates';
|
|
19
17
|
import { createRuntime as createRuntimeRecord } from '../../runtimes/actions';
|
|
@@ -45,7 +43,7 @@ const NOT_AVAILABLE_RETRIES = 5;
|
|
|
45
43
|
* The launcher of a new code sandbox.
|
|
46
44
|
*/
|
|
47
45
|
export function CodeSandboxLauncher(props) {
|
|
48
|
-
const { dialogTitle, kernelSnapshot, manager, onSubmit, markdownParser, sanitizer, upgradeSubscription, usageRoute = '/plans', submitLabel, startRuntime = true, } = props;
|
|
46
|
+
const { dialogTitle, kernelSnapshot, manager, onSubmit, markdownParser, sanitizer, upgradeSubscription, usageRoute = '/plans', submitLabel, startRuntime = true, libraryVersionUid, } = props;
|
|
49
47
|
const hasExample = startRuntime === 'with-example';
|
|
50
48
|
const shouldStartRuntime = startRuntime !== 'defer';
|
|
51
49
|
const user = iamStore.getState().user;
|
|
@@ -59,7 +57,45 @@ export function CodeSandboxLauncher(props) {
|
|
|
59
57
|
* below.
|
|
60
58
|
*/
|
|
61
59
|
const jupyterAvailable = isCodeSandboxProviderAvailable('local', runtimesStore.getState().multiServiceManager);
|
|
62
|
-
const
|
|
60
|
+
const listed = manager.environments.get();
|
|
61
|
+
/*
|
|
62
|
+
* A publication somebody else owns, which no listing of the viewer's holds
|
|
63
|
+
* (D-12, E2-19): read by its version uid, offered under *Library* beside
|
|
64
|
+
* the rest, priced by the rate the publication carries, and selected below,
|
|
65
|
+
* since it is what the reader came here to launch.
|
|
66
|
+
*/
|
|
67
|
+
const [libraryEntry, setLibraryEntry] = useState();
|
|
68
|
+
const [libraryRefusal, setLibraryRefusal] = useState('');
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
if (!libraryVersionUid) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
let current = true;
|
|
74
|
+
getEnvironmentPublication(iamStore.getState().token ?? '', libraryVersionUid, {}, runtimesStore.getState().runtimesUrl)
|
|
75
|
+
.then(publication => {
|
|
76
|
+
if (!current) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const entry = libraryEnvironmentOf(publication);
|
|
80
|
+
if (entry) {
|
|
81
|
+
setLibraryEntry(entry);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
setLibraryRefusal('This environment is no longer published, so it cannot be launched from the Library.');
|
|
85
|
+
}
|
|
86
|
+
})
|
|
87
|
+
.catch(() => {
|
|
88
|
+
if (current) {
|
|
89
|
+
setLibraryRefusal('This published environment could not be read, so it cannot be launched from here.');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
return () => {
|
|
93
|
+
current = false;
|
|
94
|
+
};
|
|
95
|
+
}, [libraryVersionUid]);
|
|
96
|
+
const environments = useMemo(() => libraryEntry && !listed.some(entry => entry.name === libraryEntry.name)
|
|
97
|
+
? [...listed, libraryEntry]
|
|
98
|
+
: listed, [listed, libraryEntry]);
|
|
63
99
|
/*
|
|
64
100
|
* The sandboxes of this Jupyter Server, offered beside those of the platform.
|
|
65
101
|
*
|
|
@@ -91,27 +127,31 @@ export function CodeSandboxLauncher(props) {
|
|
|
91
127
|
}));
|
|
92
128
|
}, [jupyterAvailable]);
|
|
93
129
|
const LOCAL_PREFIX = 'local:';
|
|
130
|
+
/** Who is looking, which is what tells your environments from your organizations'. */
|
|
131
|
+
const viewer = useMemo(() => ({ uid: user?.uid, handle: user?.handle }), [user]);
|
|
94
132
|
/*
|
|
95
133
|
* The choices of the dropdown: what the platform and the external
|
|
96
134
|
* providers offer, then the kernelspecs of this Jupyter Server. Each says
|
|
97
135
|
* whose machine it is — two entries called "GPU" are told apart by nothing
|
|
98
136
|
* else.
|
|
137
|
+
*
|
|
138
|
+
* The environments come through `codeSandboxEnvironments`, so they read
|
|
139
|
+
* here exactly as they read in the picker: grouped as yours, your
|
|
140
|
+
* organizations' and the platform's, with the version and size class each
|
|
141
|
+
* runs, and disabled where there is nothing built to launch (E1-19).
|
|
99
142
|
*/
|
|
100
143
|
const environmentOptions = useMemo(() => [
|
|
101
|
-
...environments
|
|
102
|
-
key: spec.name,
|
|
103
|
-
title: spec.title || spec.name,
|
|
104
|
-
name: spec.name,
|
|
144
|
+
...codeSandboxEnvironmentOptions(environments, viewer, spec => ({
|
|
105
145
|
providerTitle: codeSandboxVariantTitle(codeSandboxVariantOf(spec?.owner)),
|
|
106
|
-
burningRate: spec.burning_rate,
|
|
107
146
|
})),
|
|
108
147
|
...localSpecs.map(spec => ({
|
|
109
148
|
key: `${LOCAL_PREFIX}${spec.name}`,
|
|
110
149
|
title: spec.title || spec.name,
|
|
111
150
|
name: spec.name,
|
|
112
151
|
providerTitle: codeSandboxVariantTitle(CodeSandboxVariant.JupyterServer),
|
|
152
|
+
group: 'This Jupyter Server',
|
|
113
153
|
})),
|
|
114
|
-
], [environments, localSpecs]);
|
|
154
|
+
], [environments, localSpecs, viewer]);
|
|
115
155
|
const localSpecOf = (value) => value.startsWith(LOCAL_PREFIX)
|
|
116
156
|
? localSpecs.find(spec => spec.name === value.slice(LOCAL_PREFIX.length))
|
|
117
157
|
: undefined;
|
|
@@ -128,7 +168,12 @@ export function CodeSandboxLauncher(props) {
|
|
|
128
168
|
}
|
|
129
169
|
const jupyterReactStore = useJupyterReactStore();
|
|
130
170
|
const jupyterLabAdapter = jupyterReactStore.jupyterLabAdapter;
|
|
131
|
-
const [selection, setSelection] = useState(
|
|
171
|
+
const [selection, setSelection] = useState(
|
|
172
|
+
// Never an environment that cannot be launched — one whose variant was
|
|
173
|
+
// never built — or the dialog would open on a choice it must refuse.
|
|
174
|
+
(kernelSnapshot?.environment ||
|
|
175
|
+
firstLaunchableCodeSandboxEnvironment(environments)?.name) ??
|
|
176
|
+
'');
|
|
132
177
|
/*
|
|
133
178
|
* Something is always selected.
|
|
134
179
|
*
|
|
@@ -159,10 +204,21 @@ export function CodeSandboxLauncher(props) {
|
|
|
159
204
|
...listCodeSandboxGivenNames(),
|
|
160
205
|
], [manager]);
|
|
161
206
|
const givenNameFor = useCallback((spec) => nextCodeSandboxGivenName(spec?.runtime?.givenNameTemplate || spec?.title || '', takenGivenNames()), [takenGivenNames]);
|
|
162
|
-
const [runtimeName, setRuntimeName] = useState(() => givenNameFor(environments
|
|
207
|
+
const [runtimeName, setRuntimeName] = useState(() => givenNameFor(firstLaunchableCodeSandboxEnvironment(environments)));
|
|
163
208
|
// Whether the runtim name has been changed by the user or not
|
|
164
209
|
const [hasCustomRuntimeName, setHasCustomRuntimeName] = useState(false);
|
|
165
|
-
|
|
210
|
+
// The publication the reader came to launch, selected once it is read.
|
|
211
|
+
useEffect(() => {
|
|
212
|
+
if (!libraryEntry) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
setSelection(libraryEntry.name);
|
|
216
|
+
if (!hasCustomRuntimeName) {
|
|
217
|
+
setRuntimeName(givenNameFor(libraryEntry));
|
|
218
|
+
}
|
|
219
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
220
|
+
}, [libraryEntry]);
|
|
221
|
+
const [homeFolder, setHomeFolder] = useState(false);
|
|
166
222
|
const [openExample, setOpenExample] = useState(false);
|
|
167
223
|
const [waitingForRuntime, setWaitingForRuntime] = useState(false);
|
|
168
224
|
const [error, setError] = useState();
|
|
@@ -231,6 +287,17 @@ export function CodeSandboxLauncher(props) {
|
|
|
231
287
|
setError(undefined);
|
|
232
288
|
setWaitingForRuntime(shouldStartRuntime);
|
|
233
289
|
const spec = environments.find(s => s.name === selection);
|
|
290
|
+
/*
|
|
291
|
+
* The version the dropdown showed is the version that launches.
|
|
292
|
+
*
|
|
293
|
+
* A user environment's entry says "v3", and sending that pins it: a
|
|
294
|
+
* promotion made while this dialog was open cannot change what the
|
|
295
|
+
* person accepted. A platform environment has no version, and the
|
|
296
|
+
* request is then the one it has always been (PLAN_ENV.md, E1-19).
|
|
297
|
+
*/
|
|
298
|
+
const environmentVersion = spec
|
|
299
|
+
? codeSandboxEnvironmentVersion(spec)
|
|
300
|
+
: undefined;
|
|
234
301
|
const desc = {
|
|
235
302
|
name: selection,
|
|
236
303
|
language: spec?.language ?? '',
|
|
@@ -242,8 +309,8 @@ export function CodeSandboxLauncher(props) {
|
|
|
242
309
|
if (startRuntime === 'defer') {
|
|
243
310
|
desc.params['creditsLimit'] = creditsLimit;
|
|
244
311
|
}
|
|
245
|
-
if (
|
|
246
|
-
desc.params['capabilities'] = ['
|
|
312
|
+
if (homeFolder) {
|
|
313
|
+
desc.params['capabilities'] = ['home-folder'];
|
|
247
314
|
}
|
|
248
315
|
let success = true;
|
|
249
316
|
const provider = codeSandboxVariantOf(spec?.owner);
|
|
@@ -259,6 +326,7 @@ export function CodeSandboxLauncher(props) {
|
|
|
259
326
|
try {
|
|
260
327
|
await createRuntimeRecord({
|
|
261
328
|
environmentName: selection,
|
|
329
|
+
environmentVersion,
|
|
262
330
|
type: 'notebook',
|
|
263
331
|
givenName: runtimeName,
|
|
264
332
|
creditsLimit,
|
|
@@ -276,7 +344,6 @@ export function CodeSandboxLauncher(props) {
|
|
|
276
344
|
}
|
|
277
345
|
}
|
|
278
346
|
else if (shouldStartRuntime) {
|
|
279
|
-
success = false;
|
|
280
347
|
let availableTrial = 1;
|
|
281
348
|
let retryDelay = NOT_AVAILABLE_INIT_RETRY;
|
|
282
349
|
// Should return success status.
|
|
@@ -284,10 +351,11 @@ export function CodeSandboxLauncher(props) {
|
|
|
284
351
|
try {
|
|
285
352
|
const connection = await manager.runtimesManager.startNew({
|
|
286
353
|
environmentName: selection,
|
|
354
|
+
environmentVersion,
|
|
287
355
|
type: 'notebook',
|
|
288
356
|
givenName: runtimeName,
|
|
289
357
|
creditsLimit: creditsLimit,
|
|
290
|
-
capabilities:
|
|
358
|
+
capabilities: homeFolder ? ['home-folder'] : undefined,
|
|
291
359
|
snapshot: kernelSnapshot?.id,
|
|
292
360
|
}, {
|
|
293
361
|
username: user?.handle,
|
|
@@ -368,7 +436,7 @@ export function CodeSandboxLauncher(props) {
|
|
|
368
436
|
startRuntime,
|
|
369
437
|
runtimeName,
|
|
370
438
|
onSubmit,
|
|
371
|
-
|
|
439
|
+
homeFolder,
|
|
372
440
|
openExample,
|
|
373
441
|
jupyterLabAdapter,
|
|
374
442
|
timeLimit,
|
|
@@ -418,7 +486,7 @@ export function CodeSandboxLauncher(props) {
|
|
|
418
486
|
event.preventDefault();
|
|
419
487
|
handleSubmitRuntime();
|
|
420
488
|
}
|
|
421
|
-
}, children: [_jsxs(FormControl, { disabled: !!kernelSnapshot?.environment || environments.length === 0, children: [_jsx(FormControl.Label, { children: "Environment" }), _jsx(CodeSandboxEnvironmentSelect, { disabled: !!kernelSnapshot?.environment || environments.length === 0, options: environmentOptions, selectedKey: selection, onSelect: handleSelectionChange }), _jsx(FormControl.Caption, { children: _jsx(_Fragment, { children: markdownParser ? (_jsx(Box, { sx: { img: { maxWidth: '100%' } }, children: _jsx(Markdown, { text: description, markdownParser: markdownParser, sanitizer: sanitizer }) })) : sanitizer ? (
|
|
489
|
+
}, children: [libraryRefusal ? (_jsx(Text, { as: "p", sx: { color: 'attention.fg' }, "data-testid": "library-refusal", children: libraryRefusal })) : null, _jsxs(FormControl, { disabled: !!kernelSnapshot?.environment || environments.length === 0, children: [_jsx(FormControl.Label, { children: "Environment" }), _jsx(CodeSandboxEnvironmentSelect, { disabled: !!kernelSnapshot?.environment || environments.length === 0, options: environmentOptions, selectedKey: selection, onSelect: handleSelectionChange }), _jsx(FormControl.Caption, { children: _jsx(_Fragment, { children: markdownParser ? (_jsx(Box, { sx: { img: { maxWidth: '100%' } }, children: _jsx(Markdown, { text: description, markdownParser: markdownParser, sanitizer: sanitizer }) })) : sanitizer ? (
|
|
422
490
|
// The description of an environment carries markup. With no
|
|
423
491
|
// parser to render it, the sanitizer of the application is
|
|
424
492
|
// enough to show it as what it is rather than as its tags.
|
|
@@ -433,11 +501,15 @@ export function CodeSandboxLauncher(props) {
|
|
|
433
501
|
, {
|
|
434
502
|
// A sandbox of this server costs nothing and starts at once: it has
|
|
435
503
|
// no time to reserve and no storage of the platform to mount.
|
|
436
|
-
withReservation: !!startRuntime && !isLocalSelection,
|
|
504
|
+
withReservation: !!startRuntime && !isLocalSelection, withHomeFolder: !isLocalSelection, burningRate: burningRate, timeLimit: timeLimit, onTimeChange: setTimeLimit, max: effectiveMaxMinutes,
|
|
505
|
+
// Nothing to reserve or store until an environment is chosen.
|
|
506
|
+
disabled: outOfCredits || !selection, storageDisabled: !selection, error: outOfCredits ? 'You must add credits to your account.' : undefined, addCredits: navigate
|
|
437
507
|
? () => {
|
|
438
508
|
navigate(usageRoute);
|
|
439
509
|
}
|
|
440
|
-
: undefined,
|
|
510
|
+
: undefined, homeFolder: homeFolder, onHomeFolderToggle: () => setHomeFolder(current => !current) }), _jsxs(FormControl, { sx: { paddingTop: '10px' }, children: [_jsx(FormControl.Label, { children: "Given Name" }), _jsx(TextInput, { name: "name", value: runtimeName, onChange: handleKernelNameChange,
|
|
511
|
+
// A sandbox is named only once there is one to name.
|
|
512
|
+
disabled: !selection, block: true })] }), hasExample &&
|
|
441
513
|
jupyterLabAdapter?.jupyterLab &&
|
|
442
514
|
!configuration.whiteLabel && (_jsxs(FormControl, { sx: { paddingTop: '10px' }, children: [_jsx(FormControl.Label, { id: "open-example-label", children: "Open example notebook" }), _jsx(ToggleSwitch, { disabled: !environments.find(spec => spec.name === selection)?.example, checked: openExample, size: "small", onClick: handleSwitchClick, "aria-labelledby": "open-example-label" })] })), error && (_jsx(FlashClosable, { variant: flashLevel, actions: navigate && upgradeSubscription && flashLevel === 'warning' ? (_jsx(Button, { onClick: handleUpgrade, title: 'Upgrade your subscription.', children: "Upgrade" })) : undefined, children: error }))] }) }));
|
|
443
515
|
}
|
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
7
|
-
* Distributed under the terms of the Modified BSD License.
|
|
8
|
-
*/
|
|
9
5
|
/**
|
|
10
6
|
* The given name of a code sandbox of a Jupyter Server or of the browser.
|
|
11
7
|
*
|
|
@@ -155,8 +151,13 @@ export function pruneCodeSandboxGivenNames(runningKernelIds) {
|
|
|
155
151
|
*/
|
|
156
152
|
function asGivenName(base) {
|
|
157
153
|
const stripped = (base ?? '')
|
|
158
|
-
|
|
159
|
-
|
|
154
|
+
/*
|
|
155
|
+
* Pictographs, their skin tones, their joiners and their selectors.
|
|
156
|
+
* Split into three alternatives rather than one class: a class whose next
|
|
157
|
+
* range starts on a combining mark (the variation selectors) reads to
|
|
158
|
+
* `no-misleading-character-class` as a base character followed by a mark.
|
|
159
|
+
*/
|
|
160
|
+
.replace(/[\u{1F000}-\u{1FAFF}\u{2190}-\u{2BFF}]|[\u{FE00}-\u{FE0F}]|\u{200D}/gu, ' ')
|
|
160
161
|
.replace(/\s+/g, ' ')
|
|
161
162
|
.trim();
|
|
162
163
|
return stripped || 'Code Sandbox';
|
|
@@ -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.
|