@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
|
@@ -19,10 +19,10 @@ export function RuntimesMixin(Base) {
|
|
|
19
19
|
// ========================================================================
|
|
20
20
|
// Helper Functions
|
|
21
21
|
// ========================================================================
|
|
22
|
-
|
|
23
|
-
return typeof
|
|
24
|
-
?
|
|
25
|
-
:
|
|
22
|
+
_extractRuntimeName(runtimeNameOrInstance) {
|
|
23
|
+
return typeof runtimeNameOrInstance === 'string'
|
|
24
|
+
? runtimeNameOrInstance
|
|
25
|
+
: runtimeNameOrInstance.runtimeName;
|
|
26
26
|
}
|
|
27
27
|
_extractSnapshotId(snapshotIdOrInstance) {
|
|
28
28
|
return typeof snapshotIdOrInstance === 'string'
|
|
@@ -49,13 +49,29 @@ export function RuntimesMixin(Base) {
|
|
|
49
49
|
// ========================================================================
|
|
50
50
|
/**
|
|
51
51
|
* Create a new computational runtime.
|
|
52
|
-
*
|
|
52
|
+
*
|
|
53
|
+
* Asked either with an options object — which is the only way to pin a
|
|
54
|
+
* version of a user environment (E1-19) — or with the positional arguments
|
|
55
|
+
* every caller used before there were versions.
|
|
56
|
+
*
|
|
57
|
+
* @param environmentNameOrOptions - The environment's name, or the options
|
|
53
58
|
* @param type - Type of runtime
|
|
54
59
|
* @param givenName - User-friendly name for the runtime
|
|
55
|
-
* @param
|
|
60
|
+
* @param minutesLimit - How long to reserve, in minutes
|
|
61
|
+
* @param fromSnapshotId - Snapshot to restore
|
|
56
62
|
* @returns Created runtime
|
|
57
63
|
*/
|
|
58
|
-
async createRuntime(
|
|
64
|
+
async createRuntime(environmentNameOrOptions, type, givenName, minutesLimit, fromSnapshotId) {
|
|
65
|
+
const options = typeof environmentNameOrOptions === 'string'
|
|
66
|
+
? {
|
|
67
|
+
environmentName: environmentNameOrOptions,
|
|
68
|
+
type,
|
|
69
|
+
givenName,
|
|
70
|
+
minutesLimit,
|
|
71
|
+
fromSnapshotId,
|
|
72
|
+
}
|
|
73
|
+
: environmentNameOrOptions;
|
|
74
|
+
const { environmentName, environmentVersion } = options;
|
|
59
75
|
if (!this.environments) {
|
|
60
76
|
await this.listEnvironments();
|
|
61
77
|
}
|
|
@@ -67,15 +83,32 @@ export function RuntimesMixin(Base) {
|
|
|
67
83
|
else {
|
|
68
84
|
const token = this.getToken();
|
|
69
85
|
const runtimesUrl = this.getRuntimesUrl();
|
|
70
|
-
|
|
86
|
+
/*
|
|
87
|
+
* What a second costs is READ FROM THE LISTING, never written here:
|
|
88
|
+
* a platform entry carries its pool's rate, a user environment the
|
|
89
|
+
* rate of the size class its promoted version names (D-4, E1-19). A
|
|
90
|
+
* class nothing prices is refused rather than reserved at zero,
|
|
91
|
+
* which would ask for a runtime the platform will not start.
|
|
92
|
+
*/
|
|
93
|
+
if (env.sizeClass && !env.burningRate) {
|
|
94
|
+
throw new Error(`Environment "${environmentName}" runs on the size class "${env.sizeClass}", ` +
|
|
95
|
+
'which has no burning rate: it cannot be priced, so no runtime is created.');
|
|
96
|
+
}
|
|
97
|
+
const creditsLimit = this.calculateCreditsFromMinutes(options.minutesLimit, env.burningRate);
|
|
71
98
|
const data = {
|
|
72
99
|
environment: {
|
|
73
100
|
name: environmentName,
|
|
101
|
+
// Additive: without it this is the request runtimes have always
|
|
102
|
+
// been created with, and the platform resolves the promoted
|
|
103
|
+
// version itself (§7.6, E1-11).
|
|
104
|
+
...(environmentVersion !== undefined && environmentVersion !== ''
|
|
105
|
+
? { version: environmentVersion }
|
|
106
|
+
: {}),
|
|
74
107
|
},
|
|
75
|
-
type,
|
|
76
|
-
given_name: givenName,
|
|
108
|
+
type: options.type ?? 'notebook',
|
|
109
|
+
given_name: options.givenName,
|
|
77
110
|
credits_limit: creditsLimit,
|
|
78
|
-
from: fromSnapshotId,
|
|
111
|
+
from: options.fromSnapshotId,
|
|
79
112
|
};
|
|
80
113
|
const response = await runtimes.createRuntime(token, data, runtimesUrl);
|
|
81
114
|
return new RuntimeDTO(response.runtime, this);
|
|
@@ -97,23 +130,23 @@ export function RuntimesMixin(Base) {
|
|
|
97
130
|
}
|
|
98
131
|
/**
|
|
99
132
|
* Get details for a specific runtime by pod name.
|
|
100
|
-
* @param
|
|
133
|
+
* @param runtimeName - Runtime pod name
|
|
101
134
|
* @returns Runtime details
|
|
102
135
|
*/
|
|
103
|
-
async getRuntime(
|
|
136
|
+
async getRuntime(runtimeName) {
|
|
104
137
|
const token = this.getToken();
|
|
105
138
|
const runtimesUrl = this.getRuntimesUrl();
|
|
106
|
-
const runtimeData = await runtimes.getRuntime(token,
|
|
139
|
+
const runtimeData = await runtimes.getRuntime(token, runtimeName, runtimesUrl);
|
|
107
140
|
return new RuntimeDTO(runtimeData, this);
|
|
108
141
|
}
|
|
109
142
|
/**
|
|
110
143
|
* Delete a runtime permanently.
|
|
111
|
-
* @param
|
|
144
|
+
* @param runtimeName - Runtime pod name
|
|
112
145
|
*/
|
|
113
|
-
async deleteRuntime(
|
|
146
|
+
async deleteRuntime(runtimeName) {
|
|
114
147
|
const token = this.getToken();
|
|
115
148
|
const runtimesUrl = this.getRuntimesUrl();
|
|
116
|
-
await runtimes.deleteRuntime(token,
|
|
149
|
+
await runtimes.deleteRuntime(token, runtimeName, runtimesUrl);
|
|
117
150
|
}
|
|
118
151
|
/**
|
|
119
152
|
* List persisted memories for the authenticated caller.
|
|
@@ -147,7 +180,7 @@ export function RuntimesMixin(Base) {
|
|
|
147
180
|
// List all runtimes
|
|
148
181
|
const response = await runtimes.listRuntimes(token, runtimesUrl);
|
|
149
182
|
// Delete all runtimes in parallel
|
|
150
|
-
const deletePromises = response.runtimes.map(runtime => runtimes.deleteRuntime(token, runtime.
|
|
183
|
+
const deletePromises = response.runtimes.map(runtime => runtimes.deleteRuntime(token, runtime.runtime_name, runtimesUrl));
|
|
151
184
|
return Promise.allSettled(deletePromises);
|
|
152
185
|
}
|
|
153
186
|
// ========================================================================
|
|
@@ -155,17 +188,17 @@ export function RuntimesMixin(Base) {
|
|
|
155
188
|
// ========================================================================
|
|
156
189
|
/**
|
|
157
190
|
* Create a snapshot of a runtime.
|
|
158
|
-
* @param
|
|
191
|
+
* @param runtimeName - Pod name of the runtime to snapshot
|
|
159
192
|
* @param name - Name for the snapshot
|
|
160
193
|
* @param description - Description of the snapshot
|
|
161
194
|
* @param stop - Whether to stop the runtime after creating snapshot (defaults to false)
|
|
162
195
|
* @returns Created snapshot
|
|
163
196
|
*/
|
|
164
|
-
async createSnapshot(
|
|
197
|
+
async createSnapshot(runtimeName, name, description, stop = false) {
|
|
165
198
|
const token = this.getToken();
|
|
166
199
|
const runtimesUrl = this.getRuntimesUrl();
|
|
167
200
|
const data = {
|
|
168
|
-
|
|
201
|
+
runtime_name: runtimeName,
|
|
169
202
|
name,
|
|
170
203
|
description,
|
|
171
204
|
stop,
|
|
@@ -10,4 +10,4 @@ export interface A2uiSurfaceComposedProps {
|
|
|
10
10
|
* basic semantic classes so application-level styles can consistently target
|
|
11
11
|
* rendered A2UI HTML.
|
|
12
12
|
*/
|
|
13
|
-
export declare function A2uiSurfaceComposed({ surface }: A2uiSurfaceComposedProps): import("react
|
|
13
|
+
export declare function A2uiSurfaceComposed({ surface }: A2uiSurfaceComposedProps): import("react").JSX.Element;
|
|
@@ -3,6 +3,19 @@ export interface AgentSummaryData {
|
|
|
3
3
|
agentName: string;
|
|
4
4
|
location: string;
|
|
5
5
|
specId?: string;
|
|
6
|
+
/**
|
|
7
|
+
* The framework turning this agent's loop, as its spec declares it —
|
|
8
|
+
* `pydantic-ai` server-side, `vercel-ai` in the page.
|
|
9
|
+
*/
|
|
10
|
+
harness?: string;
|
|
11
|
+
/**
|
|
12
|
+
* The runtime variant the host chose: `<location>-<harness>`.
|
|
13
|
+
*
|
|
14
|
+
* Shown next to the harness rather than instead of it, because they answer
|
|
15
|
+
* different questions and can disagree: the harness is what the spec asked
|
|
16
|
+
* for, the variant is what it actually got.
|
|
17
|
+
*/
|
|
18
|
+
variant?: string;
|
|
6
19
|
status?: string;
|
|
7
20
|
baseUrl?: string;
|
|
8
21
|
sandboxBaseUrl?: string;
|
|
@@ -36,11 +36,24 @@ const toSandboxStatusUrl = (value) => {
|
|
|
36
36
|
return normalized.endsWith('/api') ? normalized : `${normalized}/api`;
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
+
/** How wide the details card is; the side it opens on is chosen to fit it. */
|
|
40
|
+
const OVERLAY_WIDTH = 360;
|
|
39
41
|
/**
|
|
40
42
|
* Compact agent summary badge with a hover overlay for details.
|
|
41
43
|
*/
|
|
42
44
|
export const AgentSummary = ({ summary, title = 'Active Agent', }) => {
|
|
43
45
|
const [isHovering, setIsHovering] = useState(false);
|
|
46
|
+
/*
|
|
47
|
+
* Which way the details card opens.
|
|
48
|
+
*
|
|
49
|
+
* It used to be pinned `right: 0` — growing leftward from the badge — which
|
|
50
|
+
* was right for a badge at the trailing edge of a header and wrong for this
|
|
51
|
+
* one, which sits in the leading cluster: 360px of card left the viewport
|
|
52
|
+
* entirely. Measured when the hover opens, because the badge does not know
|
|
53
|
+
* which header it is in.
|
|
54
|
+
*/
|
|
55
|
+
const [opensLeftward, setOpensLeftward] = useState(false);
|
|
56
|
+
const badgeRef = useRef(null);
|
|
44
57
|
const closeTimerRef = useRef(null);
|
|
45
58
|
const clearCloseTimer = () => {
|
|
46
59
|
if (closeTimerRef.current !== null) {
|
|
@@ -50,6 +63,10 @@ export const AgentSummary = ({ summary, title = 'Active Agent', }) => {
|
|
|
50
63
|
};
|
|
51
64
|
const handleMouseEnter = () => {
|
|
52
65
|
clearCloseTimer();
|
|
66
|
+
const badge = badgeRef.current?.getBoundingClientRect();
|
|
67
|
+
// Grow rightward while there is room for the card, leftward only when
|
|
68
|
+
// the right edge would cut it off instead.
|
|
69
|
+
setOpensLeftward(Boolean(badge && badge.left + OVERLAY_WIDTH > window.innerWidth));
|
|
53
70
|
setIsHovering(true);
|
|
54
71
|
};
|
|
55
72
|
const handleMouseLeave = () => {
|
|
@@ -91,7 +108,7 @@ export const AgentSummary = ({ summary, title = 'Active Agent', }) => {
|
|
|
91
108
|
const shortAgentName = strip(summary.agentName, MAX_AGENT_NAME_LENGTH);
|
|
92
109
|
const badgeLabel = `${summary.agentName} · ${summary.location}`;
|
|
93
110
|
const badgeLabelShort = `${shortAgentName} · ${summary.location}`;
|
|
94
|
-
return (_jsxs(Box, { sx: { position: 'relative' }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: [_jsxs(Box, { as: "button", type: "button", title: badgeLabel, sx: {
|
|
111
|
+
return (_jsxs(Box, { ref: badgeRef, sx: { position: 'relative' }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: [_jsxs(Box, { as: "button", type: "button", title: badgeLabel, sx: {
|
|
95
112
|
px: 2,
|
|
96
113
|
py: '6px',
|
|
97
114
|
maxWidth: 280,
|
|
@@ -115,8 +132,8 @@ export const AgentSummary = ({ summary, title = 'Active Agent', }) => {
|
|
|
115
132
|
}, children: badgeLabelShort })] }), isHovering && (_jsxs(Box, { sx: {
|
|
116
133
|
position: 'absolute',
|
|
117
134
|
top: 'calc(100% + 8px)',
|
|
118
|
-
right: 0,
|
|
119
|
-
width:
|
|
135
|
+
...(opensLeftward ? { right: 0 } : { left: 0 }),
|
|
136
|
+
width: OVERLAY_WIDTH,
|
|
120
137
|
p: 2,
|
|
121
138
|
border: '1px solid',
|
|
122
139
|
borderColor: 'border.default',
|
|
@@ -126,7 +143,7 @@ export const AgentSummary = ({ summary, title = 'Active Agent', }) => {
|
|
|
126
143
|
zIndex: 120,
|
|
127
144
|
fontSize: 0,
|
|
128
145
|
color: 'fg.default',
|
|
129
|
-
}, children: [_jsx(Box, { sx: { mb: 1, fontWeight: 600 }, children: title }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Name: ", summary.agentName] }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Location: ", summary.location] }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Spec: ", summary.specId || '—'] }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Status: ", isCreating ? 'creating' : summary.status || '—'] }), _jsxs(Box, { sx: { color: 'fg.muted', wordBreak: 'break-all' }, children: ["Agent base URL: ", summary.baseUrl || '—'] }), _jsxs(Box, { sx: { color: 'fg.muted', wordBreak: 'break-all' }, children: ["Code sandbox base URL:", ' ', summary.sandboxBaseUrl ? (_jsx(Box, { as: "a", href: summary.sandboxBaseUrl, target: "_blank", rel: "noopener noreferrer", sx: { color: 'accent.fg', textDecoration: 'underline' }, children: summary.sandboxBaseUrl })) : ('—')] }), _jsxs(Box, { sx: {
|
|
146
|
+
}, children: [_jsx(Box, { sx: { mb: 1, fontWeight: 600 }, children: title }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Name: ", summary.agentName] }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Location: ", summary.location] }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Spec: ", summary.specId || '—'] }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Harness: ", summary.harness || '—'] }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Variant: ", summary.variant || '—'] }), _jsxs(Box, { sx: { color: 'fg.muted' }, children: ["Status: ", isCreating ? 'creating' : summary.status || '—'] }), _jsxs(Box, { sx: { color: 'fg.muted', wordBreak: 'break-all' }, children: ["Agent base URL: ", summary.baseUrl || '—'] }), _jsxs(Box, { sx: { color: 'fg.muted', wordBreak: 'break-all' }, children: ["Code sandbox base URL:", ' ', summary.sandboxBaseUrl ? (_jsx(Box, { as: "a", href: summary.sandboxBaseUrl, target: "_blank", rel: "noopener noreferrer", sx: { color: 'accent.fg', textDecoration: 'underline' }, children: summary.sandboxBaseUrl })) : ('—')] }), _jsxs(Box, { sx: {
|
|
130
147
|
color: 'fg.muted',
|
|
131
148
|
wordBreak: 'break-all',
|
|
132
149
|
display: 'flex',
|
|
@@ -4,5 +4,5 @@ export interface NotificationEventCardProps {
|
|
|
4
4
|
onDelete: (event: any) => void;
|
|
5
5
|
onOpenAgent?: (agentId: string) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare function NotificationEventCard({ event, onToggleRead, onDelete, onOpenAgent, }: NotificationEventCardProps): import("react
|
|
7
|
+
export declare function NotificationEventCard({ event, onToggleRead, onDelete, onOpenAgent, }: NotificationEventCardProps): import("react").JSX.Element;
|
|
8
8
|
export default NotificationEventCard;
|
|
@@ -4,5 +4,5 @@ export interface OutputCardProps {
|
|
|
4
4
|
onDelete: (event: any) => void;
|
|
5
5
|
onOpenAgent?: (agentId: string) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare function OutputCard({ event, onToggleRead, onDelete, onOpenAgent, }: OutputCardProps): import("react
|
|
7
|
+
export declare function OutputCard({ event, onToggleRead, onDelete, onOpenAgent, }: OutputCardProps): import("react").JSX.Element;
|
|
8
8
|
export default OutputCard;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type ApprovalStatus = 'pending' | 'approved' | 'approved_with_changes' | 'rejected';
|
|
1
|
+
export type ApprovalStatus = 'pending' | 'approved' | 'approved_with_changes' | 'rejected' | 'expired';
|
|
2
2
|
type RiskLevel = 'low' | 'medium' | 'high';
|
|
3
3
|
export declare const TOOL_APPROVAL_STATUS_CONFIG: Record<ApprovalStatus, {
|
|
4
4
|
label: string;
|
|
@@ -29,5 +29,5 @@ export interface ToolApprovalCardProps {
|
|
|
29
29
|
onToggleRead?: (id: string, read: boolean) => void;
|
|
30
30
|
onDelete?: (id: string) => void;
|
|
31
31
|
}
|
|
32
|
-
export declare function ToolApprovalCard({ approval, onApprove, onReject, onToggleRead, onDelete, }: ToolApprovalCardProps): import("react
|
|
32
|
+
export declare function ToolApprovalCard({ approval, onApprove, onReject, onToggleRead, onDelete, }: ToolApprovalCardProps): import("react").JSX.Element;
|
|
33
33
|
export default ToolApprovalCard;
|
|
@@ -13,6 +13,7 @@ export const TOOL_APPROVAL_STATUS_CONFIG = {
|
|
|
13
13
|
approved: { label: 'Approved', variant: 'success' },
|
|
14
14
|
approved_with_changes: { label: 'Approved with Changes', variant: 'accent' },
|
|
15
15
|
rejected: { label: 'Rejected', variant: 'danger' },
|
|
16
|
+
expired: { label: 'Expired', variant: 'secondary' },
|
|
16
17
|
};
|
|
17
18
|
const RISK_CONFIG = {
|
|
18
19
|
low: { label: 'Low Risk', variant: 'success' },
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { 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, useRef, useState } from 'react';
|
|
7
3
|
import { nullTranslator } from '@jupyterlab/translation';
|
|
8
4
|
import { JSONExt } from '@lumino/coreutils';
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx } 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 { Dialog } from '@primer/react/experimental';
|
|
8
4
|
import { nullTranslator } from '@jupyterlab/translation';
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one dropdown for choosing where code runs.
|
|
3
|
+
*
|
|
4
|
+
* The launcher asks it of a new sandbox and the picker asks it of an editor
|
|
5
|
+
* that needs one; both are the same question, and were drawn twice — a menu
|
|
6
|
+
* here, a column of radio buttons there. This is that control, once: the
|
|
7
|
+
* chosen entry reads on the trigger exactly as the entries read in the list,
|
|
8
|
+
* name to the left and labels to the right, so the closed control and the
|
|
9
|
+
* open one show the same thing.
|
|
10
|
+
*
|
|
11
|
+
* An `ActionMenu` rather than a `<select>`: what tells two entries apart is
|
|
12
|
+
* their labels — the environment name, the provider, the credits it burns —
|
|
13
|
+
* and no `<option>` can carry those.
|
|
14
|
+
*
|
|
15
|
+
* @module components/code-sandboxes/CodeSandboxEnvironmentSelect
|
|
16
|
+
*/
|
|
17
|
+
import type { JSX } from 'react';
|
|
1
18
|
/** One choice of the dropdown. */
|
|
2
19
|
export type ICodeSandboxEnvironmentOption = {
|
|
3
20
|
/** Identity of the choice, as the host knows it. */
|
|
@@ -16,6 +33,24 @@ export type ICodeSandboxEnvironmentOption = {
|
|
|
16
33
|
gpu?: string | boolean;
|
|
17
34
|
/** The heading this choice is listed under, when the list is grouped. */
|
|
18
35
|
group?: string;
|
|
36
|
+
/**
|
|
37
|
+
* The version this choice launches, written as it reads — `v3`. Only an
|
|
38
|
+
* environment somebody built has one (PLAN_ENV.md, E1-19).
|
|
39
|
+
*/
|
|
40
|
+
version?: string;
|
|
41
|
+
/** The size class it runs on, which is what prices it (D-4). */
|
|
42
|
+
sizeClass?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the choice cannot be launched: a version whose Datalayer artifact
|
|
45
|
+
* was never built, or one nothing prices. Shown, rather than withheld, so
|
|
46
|
+
* the environment somebody is looking for is where they expect it.
|
|
47
|
+
*/
|
|
48
|
+
disabled?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Where to go to build the missing artifact: the version's own page. Offered
|
|
51
|
+
* beside a disabled choice whose only trouble is that nobody built it yet.
|
|
52
|
+
*/
|
|
53
|
+
buildHref?: string;
|
|
19
54
|
};
|
|
20
55
|
export type ICodeSandboxEnvironmentSelectProps = {
|
|
21
56
|
/** The choices, in the order they should read. */
|
|
@@ -1,25 +1,5 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
|
-
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
-
* Distributed under the terms of the Modified BSD License.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* The one dropdown for choosing where code runs.
|
|
8
|
-
*
|
|
9
|
-
* The launcher asks it of a new sandbox and the picker asks it of an editor
|
|
10
|
-
* that needs one; both are the same question, and were drawn twice — a menu
|
|
11
|
-
* here, a column of radio buttons there. This is that control, once: the
|
|
12
|
-
* chosen entry reads on the trigger exactly as the entries read in the list,
|
|
13
|
-
* name to the left and labels to the right, so the closed control and the
|
|
14
|
-
* open one show the same thing.
|
|
15
|
-
*
|
|
16
|
-
* An `ActionMenu` rather than a `<select>`: what tells two entries apart is
|
|
17
|
-
* their labels — the environment name, the provider, the credits it burns —
|
|
18
|
-
* and no `<option>` can carry those.
|
|
19
|
-
*
|
|
20
|
-
* @module components/code-sandboxes/CodeSandboxEnvironmentSelect
|
|
21
|
-
*/
|
|
22
|
-
import { ActionList, ActionMenu, Box, Label, Text } from '@primer/react';
|
|
2
|
+
import { ActionList, ActionMenu, Box, Label, Link, Text } from '@primer/react';
|
|
23
3
|
/**
|
|
24
4
|
* The labels of an option, on one line: cost, name, provider, where.
|
|
25
5
|
*
|
|
@@ -34,7 +14,7 @@ function OptionLabels(props) {
|
|
|
34
14
|
alignItems: 'center',
|
|
35
15
|
gap: 1,
|
|
36
16
|
whiteSpace: 'nowrap',
|
|
37
|
-
}, children: [option.burningRate ? (_jsxs(Label, { size: "small", variant: "sponsors", children: [option.burningRate, " credits/second"] })) : null, option.gpu ? (_jsx(Label, { size: "small", variant: "success", children: "GPU" })) : null, option.name ? _jsx(Label, { size: "small", children: option.name }) : null, option.providerTitle ? (_jsx(Label, { size: "small", variant: "accent", children: option.providerTitle })) : null, option.location ? (_jsx(Label, { size: "small", variant: "secondary", children: option.location })) : null] }));
|
|
17
|
+
}, children: [option.burningRate ? (_jsxs(Label, { size: "small", variant: "sponsors", children: [option.burningRate, " credits/second"] })) : null, option.gpu ? (_jsx(Label, { size: "small", variant: "success", children: "GPU" })) : null, option.version ? (_jsx(Label, { size: "small", variant: "secondary", children: option.version })) : null, option.sizeClass ? (_jsx(Label, { size: "small", variant: "secondary", children: option.sizeClass })) : null, option.name ? _jsx(Label, { size: "small", children: option.name }) : null, option.providerTitle ? (_jsx(Label, { size: "small", variant: "accent", children: option.providerTitle })) : null, option.location ? (_jsx(Label, { size: "small", variant: "secondary", children: option.location })) : null] }));
|
|
38
18
|
}
|
|
39
19
|
export function CodeSandboxEnvironmentSelect(props) {
|
|
40
20
|
const { disabled, onSelect, options, overlayWidth = 'xlarge', placeholder = 'Select an environment', selectedKey, } = props;
|
|
@@ -48,15 +28,33 @@ export function CodeSandboxEnvironmentSelect(props) {
|
|
|
48
28
|
* of local specifications. A stable partition: within each half the order
|
|
49
29
|
* given by the caller is kept.
|
|
50
30
|
*/
|
|
51
|
-
const
|
|
52
|
-
...
|
|
53
|
-
...
|
|
31
|
+
const priceFirst = (subset) => [
|
|
32
|
+
...subset.filter(option => option.burningRate),
|
|
33
|
+
...subset.filter(option => !option.burningRate),
|
|
54
34
|
];
|
|
55
|
-
const grouped =
|
|
35
|
+
const grouped = options.some(option => option.group);
|
|
36
|
+
/*
|
|
37
|
+
* Within a group when there are groups. A grouped list has already been put
|
|
38
|
+
* in the order its headings should read — what is yours, your organizations',
|
|
39
|
+
* then the platform's (E1-19) — and partitioning across the whole list would
|
|
40
|
+
* undo that: one unpriced environment of your own, which is exactly what an
|
|
41
|
+
* environment awaiting its first build is, would move your heading below the
|
|
42
|
+
* platform's.
|
|
43
|
+
*/
|
|
44
|
+
const ordered = grouped ? options : priceFirst(options);
|
|
56
45
|
const groups = grouped
|
|
57
|
-
? Array.from(new Set(
|
|
46
|
+
? Array.from(new Set(options.map(option => option.group ?? '')))
|
|
58
47
|
: [];
|
|
59
|
-
const rows = (subset) => subset.map(option => (_jsxs(ActionList.Item, { selected: option.key === selectedKey,
|
|
48
|
+
const rows = (subset) => subset.map(option => (_jsxs(ActionList.Item, { selected: option.key === selectedKey, disabled: option.disabled, onSelect: () => {
|
|
49
|
+
// A choice that cannot be launched is shown, not chosen: selecting
|
|
50
|
+
// it would start a sandbox the platform refuses.
|
|
51
|
+
if (!option.disabled) {
|
|
52
|
+
onSelect(option.key);
|
|
53
|
+
}
|
|
54
|
+
}, children: [option.title, _jsx(ActionList.TrailingVisual, { children: _jsx(OptionLabels, { option: option }) }), option.disabled && option.buildHref ? (
|
|
55
|
+
// What to do about it, where it is noticed: the version's page is
|
|
56
|
+
// where a build for this variant is started (E1-21).
|
|
57
|
+
_jsx(ActionList.Description, { variant: "block", children: _jsx(Link, { href: option.buildHref, onClick: event => event.stopPropagation(), sx: { pointerEvents: 'auto' }, children: "Build for this variant" }) })) : null] }, option.key)));
|
|
60
58
|
return (_jsxs(ActionMenu, { children: [_jsx(ActionMenu.Button, { block: true, disabled: disabled || ordered.length === 0,
|
|
61
59
|
// The button centers its text by default; the trigger must read like
|
|
62
60
|
// the rows below it — name left, labels right.
|
|
@@ -77,7 +75,7 @@ export function CodeSandboxEnvironmentSelect(props) {
|
|
|
77
75
|
justifyContent: 'space-between',
|
|
78
76
|
gap: 2,
|
|
79
77
|
}, children: [_jsx(Text, { children: selected.title }), _jsx(OptionLabels, { option: selected })] })) : (placeholder) }), _jsx(ActionMenu.Overlay, { width: overlayWidth, children: _jsx(ActionList, { selectionVariant: "single", children: grouped
|
|
80
|
-
? groups.map(group => (_jsxs(ActionList.Group, { children: [group ? (_jsx(ActionList.GroupHeading, { children: group })) : null, rows(ordered.filter(option => (option.group ?? '') === group))] }, group || 'ungrouped')))
|
|
78
|
+
? groups.map(group => (_jsxs(ActionList.Group, { children: [group ? (_jsx(ActionList.GroupHeading, { children: group })) : null, rows(priceFirst(ordered.filter(option => (option.group ?? '') === group)))] }, group || 'ungrouped')))
|
|
81
79
|
: rows(ordered) }) })] }));
|
|
82
80
|
}
|
|
83
81
|
export default CodeSandboxEnvironmentSelect;
|
|
@@ -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,7 @@ 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, } from './codeSandboxEnvironments';
|
|
17
14
|
import { getCodeSandboxGivenName, listCodeSandboxGivenNames, nextCodeSandboxGivenName, setCodeSandboxGivenName, } from './CodeSandboxNames';
|
|
18
15
|
import { iamStore, runtimesStore, useCoreStore, useIAMStore, } from '../../state/substates';
|
|
19
16
|
import { createRuntime as createRuntimeRecord } from '../../runtimes/actions';
|
|
@@ -91,27 +88,31 @@ export function CodeSandboxLauncher(props) {
|
|
|
91
88
|
}));
|
|
92
89
|
}, [jupyterAvailable]);
|
|
93
90
|
const LOCAL_PREFIX = 'local:';
|
|
91
|
+
/** Who is looking, which is what tells your environments from your organizations'. */
|
|
92
|
+
const viewer = useMemo(() => ({ uid: user?.uid, handle: user?.handle }), [user]);
|
|
94
93
|
/*
|
|
95
94
|
* The choices of the dropdown: what the platform and the external
|
|
96
95
|
* providers offer, then the kernelspecs of this Jupyter Server. Each says
|
|
97
96
|
* whose machine it is — two entries called "GPU" are told apart by nothing
|
|
98
97
|
* else.
|
|
98
|
+
*
|
|
99
|
+
* The environments come through `codeSandboxEnvironments`, so they read
|
|
100
|
+
* here exactly as they read in the picker: grouped as yours, your
|
|
101
|
+
* organizations' and the platform's, with the version and size class each
|
|
102
|
+
* runs, and disabled where there is nothing built to launch (E1-19).
|
|
99
103
|
*/
|
|
100
104
|
const environmentOptions = useMemo(() => [
|
|
101
|
-
...environments
|
|
102
|
-
key: spec.name,
|
|
103
|
-
title: spec.title || spec.name,
|
|
104
|
-
name: spec.name,
|
|
105
|
+
...codeSandboxEnvironmentOptions(environments, viewer, spec => ({
|
|
105
106
|
providerTitle: codeSandboxVariantTitle(codeSandboxVariantOf(spec?.owner)),
|
|
106
|
-
burningRate: spec.burning_rate,
|
|
107
107
|
})),
|
|
108
108
|
...localSpecs.map(spec => ({
|
|
109
109
|
key: `${LOCAL_PREFIX}${spec.name}`,
|
|
110
110
|
title: spec.title || spec.name,
|
|
111
111
|
name: spec.name,
|
|
112
112
|
providerTitle: codeSandboxVariantTitle(CodeSandboxVariant.JupyterServer),
|
|
113
|
+
group: 'This Jupyter Server',
|
|
113
114
|
})),
|
|
114
|
-
], [environments, localSpecs]);
|
|
115
|
+
], [environments, localSpecs, viewer]);
|
|
115
116
|
const localSpecOf = (value) => value.startsWith(LOCAL_PREFIX)
|
|
116
117
|
? localSpecs.find(spec => spec.name === value.slice(LOCAL_PREFIX.length))
|
|
117
118
|
: undefined;
|
|
@@ -128,7 +129,12 @@ export function CodeSandboxLauncher(props) {
|
|
|
128
129
|
}
|
|
129
130
|
const jupyterReactStore = useJupyterReactStore();
|
|
130
131
|
const jupyterLabAdapter = jupyterReactStore.jupyterLabAdapter;
|
|
131
|
-
const [selection, setSelection] = useState(
|
|
132
|
+
const [selection, setSelection] = useState(
|
|
133
|
+
// Never an environment that cannot be launched — one whose variant was
|
|
134
|
+
// never built — or the dialog would open on a choice it must refuse.
|
|
135
|
+
(kernelSnapshot?.environment ||
|
|
136
|
+
firstLaunchableCodeSandboxEnvironment(environments)?.name) ??
|
|
137
|
+
'');
|
|
132
138
|
/*
|
|
133
139
|
* Something is always selected.
|
|
134
140
|
*
|
|
@@ -159,10 +165,10 @@ export function CodeSandboxLauncher(props) {
|
|
|
159
165
|
...listCodeSandboxGivenNames(),
|
|
160
166
|
], [manager]);
|
|
161
167
|
const givenNameFor = useCallback((spec) => nextCodeSandboxGivenName(spec?.runtime?.givenNameTemplate || spec?.title || '', takenGivenNames()), [takenGivenNames]);
|
|
162
|
-
const [runtimeName, setRuntimeName] = useState(() => givenNameFor(environments
|
|
168
|
+
const [runtimeName, setRuntimeName] = useState(() => givenNameFor(firstLaunchableCodeSandboxEnvironment(environments)));
|
|
163
169
|
// Whether the runtim name has been changed by the user or not
|
|
164
170
|
const [hasCustomRuntimeName, setHasCustomRuntimeName] = useState(false);
|
|
165
|
-
const [
|
|
171
|
+
const [homeFolder, setHomeFolder] = useState(false);
|
|
166
172
|
const [openExample, setOpenExample] = useState(false);
|
|
167
173
|
const [waitingForRuntime, setWaitingForRuntime] = useState(false);
|
|
168
174
|
const [error, setError] = useState();
|
|
@@ -231,6 +237,17 @@ export function CodeSandboxLauncher(props) {
|
|
|
231
237
|
setError(undefined);
|
|
232
238
|
setWaitingForRuntime(shouldStartRuntime);
|
|
233
239
|
const spec = environments.find(s => s.name === selection);
|
|
240
|
+
/*
|
|
241
|
+
* The version the dropdown showed is the version that launches.
|
|
242
|
+
*
|
|
243
|
+
* A user environment's entry says "v3", and sending that pins it: a
|
|
244
|
+
* promotion made while this dialog was open cannot change what the
|
|
245
|
+
* person accepted. A platform environment has no version, and the
|
|
246
|
+
* request is then the one it has always been (PLAN_ENV.md, E1-19).
|
|
247
|
+
*/
|
|
248
|
+
const environmentVersion = spec
|
|
249
|
+
? codeSandboxEnvironmentVersion(spec)
|
|
250
|
+
: undefined;
|
|
234
251
|
const desc = {
|
|
235
252
|
name: selection,
|
|
236
253
|
language: spec?.language ?? '',
|
|
@@ -242,8 +259,8 @@ export function CodeSandboxLauncher(props) {
|
|
|
242
259
|
if (startRuntime === 'defer') {
|
|
243
260
|
desc.params['creditsLimit'] = creditsLimit;
|
|
244
261
|
}
|
|
245
|
-
if (
|
|
246
|
-
desc.params['capabilities'] = ['
|
|
262
|
+
if (homeFolder) {
|
|
263
|
+
desc.params['capabilities'] = ['home-folder'];
|
|
247
264
|
}
|
|
248
265
|
let success = true;
|
|
249
266
|
const provider = codeSandboxVariantOf(spec?.owner);
|
|
@@ -259,6 +276,7 @@ export function CodeSandboxLauncher(props) {
|
|
|
259
276
|
try {
|
|
260
277
|
await createRuntimeRecord({
|
|
261
278
|
environmentName: selection,
|
|
279
|
+
environmentVersion,
|
|
262
280
|
type: 'notebook',
|
|
263
281
|
givenName: runtimeName,
|
|
264
282
|
creditsLimit,
|
|
@@ -284,10 +302,11 @@ export function CodeSandboxLauncher(props) {
|
|
|
284
302
|
try {
|
|
285
303
|
const connection = await manager.runtimesManager.startNew({
|
|
286
304
|
environmentName: selection,
|
|
305
|
+
environmentVersion,
|
|
287
306
|
type: 'notebook',
|
|
288
307
|
givenName: runtimeName,
|
|
289
308
|
creditsLimit: creditsLimit,
|
|
290
|
-
capabilities:
|
|
309
|
+
capabilities: homeFolder ? ['home-folder'] : undefined,
|
|
291
310
|
snapshot: kernelSnapshot?.id,
|
|
292
311
|
}, {
|
|
293
312
|
username: user?.handle,
|
|
@@ -368,7 +387,7 @@ export function CodeSandboxLauncher(props) {
|
|
|
368
387
|
startRuntime,
|
|
369
388
|
runtimeName,
|
|
370
389
|
onSubmit,
|
|
371
|
-
|
|
390
|
+
homeFolder,
|
|
372
391
|
openExample,
|
|
373
392
|
jupyterLabAdapter,
|
|
374
393
|
timeLimit,
|
|
@@ -433,11 +452,15 @@ export function CodeSandboxLauncher(props) {
|
|
|
433
452
|
, {
|
|
434
453
|
// A sandbox of this server costs nothing and starts at once: it has
|
|
435
454
|
// no time to reserve and no storage of the platform to mount.
|
|
436
|
-
withReservation: !!startRuntime && !isLocalSelection,
|
|
455
|
+
withReservation: !!startRuntime && !isLocalSelection, withHomeFolder: !isLocalSelection, burningRate: burningRate, timeLimit: timeLimit, onTimeChange: setTimeLimit, max: effectiveMaxMinutes,
|
|
456
|
+
// Nothing to reserve or store until an environment is chosen.
|
|
457
|
+
disabled: outOfCredits || !selection, storageDisabled: !selection, error: outOfCredits ? 'You must add credits to your account.' : undefined, addCredits: navigate
|
|
437
458
|
? () => {
|
|
438
459
|
navigate(usageRoute);
|
|
439
460
|
}
|
|
440
|
-
: undefined,
|
|
461
|
+
: 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,
|
|
462
|
+
// A sandbox is named only once there is one to name.
|
|
463
|
+
disabled: !selection, block: true })] }), hasExample &&
|
|
441
464
|
jupyterLabAdapter?.jupyterLab &&
|
|
442
465
|
!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
466
|
}
|
|
@@ -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';
|