@datalayer/agent-runtimes 1.0.29 → 1.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AgentDocument.js +5 -22
- package/lib/AgentNode.d.ts +1 -1
- package/lib/AgentNode.js +193 -23
- package/lib/AgentNotebook.js +1 -1
- package/lib/App.d.ts +1 -1
- package/lib/AppExamples2.d.ts +1 -1
- package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
- package/lib/agent-node/AgentNodeGallery.js +19 -15
- package/lib/agent-node/themeStore.js +7 -6
- package/lib/agents/AgentDetails.d.ts +8 -2
- package/lib/agents/AgentDetails.js +41 -11
- package/lib/agents/AgentRuntimeChat.d.ts +3 -3
- package/lib/agents/AgentRuntimeChat.js +15 -15
- package/lib/api/agents.d.ts +10 -10
- package/lib/api/agents.js +15 -15
- package/lib/api/checkpoints.d.ts +40 -0
- package/lib/api/checkpoints.js +75 -0
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/notifications.d.ts +21 -6
- package/lib/api/notifications.js +32 -14
- package/lib/api/runtimes/environments.d.ts +406 -4
- package/lib/api/runtimes/environments.js +641 -9
- package/lib/api/runtimes/runtimes.d.ts +19 -19
- package/lib/api/runtimes/runtimes.js +47 -46
- package/lib/api/spacer/notebooks.js +1 -1
- package/lib/chat/Chat.d.ts +16 -4
- package/lib/chat/Chat.js +18 -5
- package/lib/chat/ChatFloating.d.ts +20 -2
- package/lib/chat/ChatFloating.js +196 -118
- package/lib/chat/ChatInline.d.ts +15 -0
- package/lib/chat/ChatInline.js +0 -18
- package/lib/chat/ChatPopupStandalone.d.ts +1 -1
- package/lib/chat/ChatSidebar.d.ts +14 -2
- package/lib/chat/ChatSidebar.js +1 -1
- package/lib/chat/ChatStandalone.d.ts +1 -1
- package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
- package/lib/chat/EphemeralSurfaceControl.js +55 -0
- package/lib/chat/base/ChatAvailability.d.ts +34 -0
- package/lib/chat/base/ChatAvailability.js +18 -0
- package/lib/chat/base/ChatBase.d.ts +2 -1
- package/lib/chat/base/ChatBase.js +657 -28
- package/lib/chat/display/ButtonGlow.d.ts +9 -0
- package/lib/chat/display/ButtonGlow.js +60 -0
- package/lib/chat/display/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +81 -12
- package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
- package/lib/chat/display/PoweredByTag.d.ts +1 -1
- package/lib/chat/display/groupSuggestions.d.ts +21 -0
- package/lib/chat/display/groupSuggestions.js +18 -0
- package/lib/chat/document/EphemeralDocument.d.ts +70 -6
- package/lib/chat/document/EphemeralDocument.js +154 -52
- package/lib/chat/header/ChatHeader.d.ts +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
- package/lib/chat/header/ChatHeaderBase.js +21 -102
- package/lib/chat/header/ChatViewModeToggle.d.ts +29 -0
- package/lib/chat/header/ChatViewModeToggle.js +55 -0
- package/lib/chat/index.d.ts +5 -1
- package/lib/chat/index.js +9 -1
- package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +22 -1
- package/lib/chat/messages/ChatMessageList.js +370 -166
- package/lib/chat/messages/ChatMessages.d.ts +1 -1
- package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
- package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
- package/lib/chat/messages/TurnFooter.d.ts +42 -0
- package/lib/chat/messages/TurnFooter.js +75 -0
- package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
- package/lib/chat/messages/assistantMarkdown.js +56 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
- package/lib/chat/notebook/EphemeralNotebook.js +194 -61
- package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
- package/lib/chat/parts/MessagePart.d.ts +1 -1
- package/lib/chat/parts/ReasoningPart.d.ts +8 -1
- package/lib/chat/parts/TextPart.d.ts +1 -1
- package/lib/chat/parts/ToolPart.d.ts +8 -1
- package/lib/chat/prompt/FloatingCard.d.ts +26 -0
- package/lib/chat/prompt/FloatingCard.js +80 -0
- package/lib/chat/prompt/InputPrompt.d.ts +206 -53
- package/lib/chat/prompt/InputPrompt.js +161 -80
- package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
- package/lib/chat/prompt/InputPromptBase.js +225 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
- package/lib/chat/prompt/InputPromptLexical.js +227 -30
- package/lib/chat/prompt/InputPromptText.d.ts +10 -2
- package/lib/chat/prompt/InputPromptText.js +35 -3
- package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
- package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
- package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
- package/lib/chat/prompt/footer/index.d.ts +7 -0
- package/lib/chat/prompt/footer/index.js +11 -0
- package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
- package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
- package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
- package/lib/chat/prompt/header/InPromptHeader.js +14 -0
- package/lib/chat/prompt/header/index.d.ts +7 -0
- package/lib/chat/prompt/header/index.js +11 -0
- package/lib/chat/prompt/index.d.ts +8 -4
- package/lib/chat/prompt/index.js +15 -3
- package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
- package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
- package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
- package/lib/chat/prompt/menus/ModelSelector.js +27 -0
- package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
- package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
- package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
- package/lib/chat/prompt/menus/index.d.ts +15 -0
- package/lib/chat/prompt/menus/index.js +19 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
- package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
- package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
- package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
- package/lib/chat/prompt/plugins/MentionChip.js +24 -0
- package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
- package/lib/chat/prompt/plugins/MentionNode.js +77 -0
- package/lib/chat/prompt/promptHistory.d.ts +52 -0
- package/lib/chat/prompt/promptHistory.js +123 -0
- package/lib/chat/prompt/stack.d.ts +81 -0
- package/lib/chat/prompt/stack.js +41 -0
- package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
- package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
- package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
- package/lib/chat/tools/A2AAgentDialog.js +265 -0
- package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
- package/lib/chat/tools/index.d.ts +1 -0
- package/lib/chat/tools/index.js +1 -0
- package/lib/chat/usage/ContextPie.d.ts +17 -0
- package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
- package/lib/chat/useViewportDrag.d.ts +11 -0
- package/lib/chat/useViewportDrag.js +61 -0
- package/lib/chat/viewModes.d.ts +51 -0
- package/lib/chat/viewModes.js +57 -0
- package/lib/client/AgentRuntimesClient.d.ts +10 -9
- package/lib/client/AgentRuntimesClient.js +1 -1
- package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
- package/lib/client/AgentsMixin.d.ts +12 -12
- package/lib/client/AgentsMixin.js +31 -31
- package/lib/client/IAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.js +10 -10
- package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
- package/lib/client/mixins/RuntimesMixin.js +54 -21
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
- package/lib/components/agents/AgentSummary.d.ts +13 -0
- package/lib/components/agents/AgentSummary.js +21 -4
- package/lib/components/cards/NotificationEventCard.d.ts +1 -1
- package/lib/components/cards/OutputCard.d.ts +1 -1
- package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
- package/lib/components/cards/ToolApprovalCard.js +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
- package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +9 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +95 -23
- package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
- package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
- package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
- package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
- package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
- package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
- package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
- package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +97 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +184 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
- package/lib/components/code-sandboxes/index.d.ts +1 -0
- package/lib/components/code-sandboxes/index.js +1 -0
- package/lib/components/context/SpaceSelect.d.ts +1 -1
- package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
- package/lib/components/icons/ArtifactIcon.d.ts +1 -0
- package/lib/components/icons/ArtifactIcon.js +2 -1
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.d.ts +1 -0
- package/lib/components/progress/CreditsIndicator.js +0 -4
- package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
- package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
- package/lib/components/snippets/SnippetDialog.d.ts +1 -0
- package/lib/components/snippets/SnippetDialog.js +0 -4
- package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
- package/lib/components/specs/SpecPayloadPreview.js +102 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/context/ContextDistribution.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +2 -1
- package/lib/context/ContextPanel.d.ts +1 -1
- package/lib/context/ContextUsage.d.ts +1 -1
- package/lib/context/CostTracker.d.ts +1 -1
- package/lib/context/CostUsageChart.d.ts +1 -1
- package/lib/context/CostUsageChart.js +4 -4
- package/lib/context/MessageHistory.d.ts +3 -2
- package/lib/context/TokenUsageChart.d.ts +1 -1
- package/lib/context/TokenUsageChart.js +4 -4
- package/lib/examples/A2UiAgentExample.js +15 -6
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
- package/lib/examples/A2UiContactCardExample.d.ts +10 -0
- package/lib/examples/A2UiContactCardExample.js +23 -170
- package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
- package/lib/examples/A2UiJupyterOutputExample.js +792 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
- package/lib/examples/A2UiRestaurantExample.js +24 -179
- package/lib/examples/A2UiViewerExample.d.ts +10 -0
- package/lib/examples/A2UiViewerExample.js +24 -378
- package/lib/examples/AgUiAgenticExample.js +2 -4
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
- package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
- package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
- package/lib/examples/AgUiSharedStateExample.js +2 -4
- package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
- package/lib/examples/AgentA2AExample.d.ts +17 -0
- package/lib/examples/AgentA2AExample.js +56 -0
- package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
- package/lib/examples/AgentCheckpointsExample.js +72 -54
- package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
- package/lib/examples/AgentCodeSandboxExample.js +93 -303
- package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
- package/lib/examples/AgentCodeSandboxesExample.js +56 -162
- package/lib/examples/AgentCodemodeExample.d.ts +7 -2
- package/lib/examples/AgentCodemodeExample.js +60 -125
- package/lib/examples/AgentCompactionExample.js +19 -135
- package/lib/examples/AgentEvalsExample.js +34 -66
- package/lib/examples/AgentGuardrailsExample.js +64 -112
- package/lib/examples/AgentHooksExample.d.ts +11 -0
- package/lib/examples/AgentHooksExample.js +30 -67
- package/lib/examples/AgentInferenceProviderExample.js +8 -32
- package/lib/examples/AgentLoopExample.d.ts +4 -2
- package/lib/examples/AgentLoopExample.js +45 -93
- package/lib/examples/AgentMCPExample.js +30 -79
- package/lib/examples/AgentMemoryExample.js +21 -64
- package/lib/examples/AgentMonitoringExample.js +33 -94
- package/lib/examples/AgentNotificationsExample.js +56 -95
- package/lib/examples/AgentOtelExample.js +35 -88
- package/lib/examples/AgentOutputsExample.d.ts +2 -1
- package/lib/examples/AgentOutputsExample.js +16 -137
- package/lib/examples/AgentParametersExample.js +7 -17
- package/lib/examples/AgentSkillsExample.js +40 -154
- package/lib/examples/AgentSubagentsExample.d.ts +7 -6
- package/lib/examples/AgentSubagentsExample.js +80 -191
- package/lib/examples/AgentToolApprovalsExample.js +35 -91
- package/lib/examples/AgentTriggersExample.js +43 -59
- package/lib/examples/AgentspecsExample.js +4 -4
- package/lib/examples/CellExample.d.ts +1 -1
- package/lib/examples/ChatExample.d.ts +12 -5
- package/lib/examples/ChatExample.js +38 -13
- package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
- package/lib/examples/CopilotKitLexicalExample.js +4 -41
- package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
- package/lib/examples/CopilotKitNotebookExample.js +2 -14
- package/lib/examples/DecksAgent.d.ts +21 -0
- package/lib/examples/DecksAgent.js +23 -0
- package/lib/examples/DocumentPageAgent.d.ts +19 -0
- package/lib/examples/DocumentPageAgent.js +15 -0
- package/lib/examples/Lexical2Example.d.ts +2 -2
- package/lib/examples/Lexical2Example.js +17 -38
- package/lib/examples/LexicalAgentExample.d.ts +2 -1
- package/lib/examples/LexicalAgentExample.js +29 -102
- package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
- package/lib/examples/LexicalAgentSidebarExample.js +99 -131
- package/lib/examples/LoopShellExample.d.ts +38 -0
- package/lib/examples/LoopShellExample.js +68 -0
- package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
- package/lib/examples/LoopWorkspaceEmbed.js +73 -0
- package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
- package/lib/examples/LoopWorkspaceExample.js +151 -0
- package/lib/examples/NotebookAgentExample.d.ts +13 -0
- package/lib/examples/NotebookAgentExample.js +36 -86
- package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
- package/lib/examples/NotebookAgentSidebarExample.js +39 -83
- package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
- package/lib/examples/NotebookCollaborationExample.js +108 -20
- package/lib/examples/NotebookExample.d.ts +1 -1
- package/lib/examples/NotebookExample.js +20 -10
- package/lib/examples/NotebookPageAgent.d.ts +23 -0
- package/lib/examples/NotebookPageAgent.js +17 -0
- package/lib/examples/components/ExampleWrapper.d.ts +5 -0
- package/lib/examples/components/ExampleWrapper.js +36 -28
- package/lib/examples/components/LexicalEditor.d.ts +1 -1
- package/lib/examples/components/LexicalEditor.js +4 -24
- package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
- package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
- package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
- package/lib/examples/example-selector.js +26 -6
- package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
- package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
- package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
- package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
- package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
- package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
- package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
- package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
- package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
- package/lib/examples/index.d.ts +4 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/lexical/editorConfig.d.ts +2 -75
- package/lib/examples/lexical/editorConfig.js +26 -48
- package/lib/examples/lexical/lexical-theme.css +65 -47
- package/lib/examples/main.js +450 -322
- package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
- package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
- package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
- package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiViewerScene.js +395 -0
- package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
- package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
- package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
- package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
- package/lib/examples/utils/exampleSurfaces.js +38 -0
- package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
- package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
- package/lib/examples/utils/localUrl.d.ts +2 -0
- package/lib/examples/utils/localUrl.js +49 -0
- package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
- package/lib/examples/utils/notebookToolbarItems.js +129 -0
- package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
- package/lib/examples/utils/runtimeTargetStore.js +82 -1
- package/lib/examples/utils/themedProvider.d.ts +7 -0
- package/lib/examples/utils/themedProvider.js +57 -4
- package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
- package/lib/examples/utils/waitForAgent.d.ts +23 -0
- package/lib/examples/utils/waitForAgent.js +24 -0
- package/lib/examples2/CellExample.d.ts +1 -1
- package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
- package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
- package/lib/examples2/main.js +24 -4
- package/lib/extensions/A2UIExtension.d.ts +1 -1
- package/lib/hooks/index.d.ts +8 -5
- package/lib/hooks/index.js +20 -5
- package/lib/hooks/useAgentRuntimes.d.ts +49 -22
- package/lib/hooks/useAgentRuntimes.js +214 -90
- package/lib/hooks/useAgentsCatalog.js +32 -4
- package/lib/hooks/useBrowserAgent.d.ts +26 -0
- package/lib/hooks/useBrowserAgent.js +75 -0
- package/lib/hooks/useBrowserInference.d.ts +27 -0
- package/lib/hooks/useBrowserInference.js +67 -0
- package/lib/hooks/useCheckpoints.d.ts +8 -17
- package/lib/hooks/useCheckpoints.js +25 -59
- package/lib/hooks/useConfig.d.ts +1 -1
- package/lib/hooks/useConfig.js +5 -1
- package/lib/hooks/useContextSnapshot.d.ts +18 -7
- package/lib/hooks/useContextSnapshot.js +14 -10
- package/lib/hooks/useNotifications.d.ts +11 -11
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/useProjects.d.ts +7 -19
- package/lib/hooks/useProjects.js +5 -5
- package/lib/hooks/useSkills.d.ts +0 -1
- package/lib/hooks/useSkills.js +6 -2
- package/lib/hooks/useToolApprovals.d.ts +8 -8
- package/lib/hooks/useToolApprovals.js +3 -3
- package/lib/identity/AgentIdentity.d.ts +9 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/jupyter/index.d.ts +2 -1
- package/lib/jupyter/index.js +2 -1
- package/lib/jupyter/serverExecution.d.ts +78 -0
- package/lib/jupyter/serverExecution.js +258 -0
- package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
- package/lib/jupyter/useResumeServerExecutions.js +64 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
- package/lib/lexical/ChatInlinePlugin.js +0 -36
- package/lib/loop/core/focusRequests.d.ts +10 -0
- package/lib/loop/core/focusRequests.js +46 -0
- package/lib/loop/core/index.d.ts +903 -0
- package/lib/loop/core/index.js +264 -0
- package/lib/loop/core/promptStore.d.ts +44 -0
- package/lib/loop/core/promptStore.js +63 -0
- package/lib/loop/core/surfaceRequests.d.ts +33 -0
- package/lib/loop/core/surfaceRequests.js +29 -0
- package/lib/loop/core/toolbar.d.ts +28 -0
- package/lib/loop/core/toolbar.js +59 -0
- package/lib/loop/embed/LoopEmbed.d.ts +57 -0
- package/lib/loop/embed/LoopEmbed.js +124 -0
- package/lib/loop/extensions.d.ts +10 -0
- package/lib/loop/extensions.js +49 -0
- package/lib/loop/index.d.ts +68 -0
- package/lib/loop/index.js +87 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
- package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
- package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
- package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
- package/lib/loop/plugins/a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/a2ui/index.js +50 -0
- package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
- package/lib/loop/plugins/a2ui-scene/index.js +28 -0
- package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2a/index.js +26 -0
- package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui/index.js +42 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
- package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
- package/lib/loop/plugins/agent-capacity/index.js +52 -0
- package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
- package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
- package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
- package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
- package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
- package/lib/loop/plugins/agent-codemode/index.js +41 -0
- package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
- package/lib/loop/plugins/agent-compaction/index.js +34 -0
- package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
- package/lib/loop/plugins/agent-evals/index.js +25 -0
- package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
- package/lib/loop/plugins/agent-guardrails/index.js +25 -0
- package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
- package/lib/loop/plugins/agent-hooks/index.js +28 -0
- package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
- package/lib/loop/plugins/agent-inference/index.js +29 -0
- package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
- package/lib/loop/plugins/agent-mcp/index.js +25 -0
- package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
- package/lib/loop/plugins/agent-memory/index.js +25 -0
- package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
- package/lib/loop/plugins/agent-monitoring/index.js +25 -0
- package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
- package/lib/loop/plugins/agent-notifications/index.js +25 -0
- package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
- package/lib/loop/plugins/agent-otel/index.js +25 -0
- package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
- package/lib/loop/plugins/agent-outputs/index.js +25 -0
- package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
- package/lib/loop/plugins/agent-parameters/index.js +25 -0
- package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
- package/lib/loop/plugins/agent-skills/index.js +25 -0
- package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
- package/lib/loop/plugins/agent-subagents/index.js +25 -0
- package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
- package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
- package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
- package/lib/loop/plugins/agent-triggers/index.js +26 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
- package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
- package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
- package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
- package/lib/loop/plugins/agents/SandboxView.js +43 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
- package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
- package/lib/loop/plugins/agents/agentIcons.js +88 -0
- package/lib/loop/plugins/agents/browserService.d.ts +50 -0
- package/lib/loop/plugins/agents/browserService.js +233 -0
- package/lib/loop/plugins/agents/index.d.ts +13 -0
- package/lib/loop/plugins/agents/index.js +17 -0
- package/lib/loop/plugins/agents/plugin.d.ts +91 -0
- package/lib/loop/plugins/agents/plugin.js +201 -0
- package/lib/loop/plugins/agents/service.d.ts +99 -0
- package/lib/loop/plugins/agents/service.js +167 -0
- package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
- package/lib/loop/plugins/agents/specSubagents.js +33 -0
- package/lib/loop/plugins/agents/switchable.d.ts +107 -0
- package/lib/loop/plugins/agents/switchable.js +405 -0
- package/lib/loop/plugins/agents/team.d.ts +87 -0
- package/lib/loop/plugins/agents/team.js +143 -0
- package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
- package/lib/loop/plugins/agents/useSandboxService.js +36 -0
- package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
- package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
- package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
- package/lib/loop/plugins/agentspecs/index.js +63 -0
- package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
- package/lib/loop/plugins/chat/ChatView.js +1679 -0
- package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
- package/lib/loop/plugins/chat/chatViewTools.js +92 -0
- package/lib/loop/plugins/chat/index.d.ts +111 -0
- package/lib/loop/plugins/chat/index.js +143 -0
- package/lib/loop/plugins/chat/turnState.d.ts +41 -0
- package/lib/loop/plugins/chat/turnState.js +90 -0
- package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
- package/lib/loop/plugins/chat-extras/index.js +51 -0
- package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
- package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
- package/lib/loop/plugins/chat-header/index.d.ts +3 -0
- package/lib/loop/plugins/chat-header/index.js +21 -0
- package/lib/loop/plugins/chat-view/index.d.ts +10 -0
- package/lib/loop/plugins/chat-view/index.js +29 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
- package/lib/loop/plugins/commands/index.d.ts +20 -0
- package/lib/loop/plugins/commands/index.js +148 -0
- package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
- package/lib/loop/plugins/decks/DeckSurface.js +6 -0
- package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
- package/lib/loop/plugins/decks/DecksMenu.js +42 -0
- package/lib/loop/plugins/decks/index.d.ts +19 -0
- package/lib/loop/plugins/decks/index.js +133 -0
- package/lib/loop/plugins/decks/surface.d.ts +7 -0
- package/lib/loop/plugins/decks/surface.js +11 -0
- package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
- package/lib/loop/plugins/document/DocumentView.js +68 -0
- package/lib/loop/plugins/document/index.d.ts +3 -0
- package/lib/loop/plugins/document/index.js +86 -0
- package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
- package/lib/loop/plugins/document/openingDocument.js +122 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
- package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/document-toolbar/index.js +35 -0
- package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
- package/lib/loop/plugins/document-toolbar/names.js +10 -0
- package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
- package/lib/loop/plugins/document-view/index.d.ts +10 -0
- package/lib/loop/plugins/document-view/index.js +28 -0
- package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
- package/lib/loop/plugins/graph/GraphToggle.js +22 -0
- package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
- package/lib/loop/plugins/graph/GraphView.js +6 -0
- package/lib/loop/plugins/graph/index.d.ts +5 -0
- package/lib/loop/plugins/graph/index.js +80 -0
- package/lib/loop/plugins/graph/viewType.d.ts +10 -0
- package/lib/loop/plugins/graph/viewType.js +14 -0
- package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
- package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
- package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
- package/lib/loop/plugins/input-prompt/index.js +26 -0
- package/lib/loop/plugins/models/index.d.ts +3 -0
- package/lib/loop/plugins/models/index.js +49 -0
- package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
- package/lib/loop/plugins/notebook/NotebookView.js +189 -0
- package/lib/loop/plugins/notebook/index.d.ts +3 -0
- package/lib/loop/plugins/notebook/index.js +91 -0
- package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
- package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
- package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
- package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
- package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
- package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
- package/lib/loop/plugins/notebook-view/index.js +30 -0
- package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
- package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
- package/lib/loop/plugins/page-layout/index.d.ts +71 -0
- package/lib/loop/plugins/page-layout/index.js +160 -0
- package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
- package/lib/loop/plugins/plugins-panel/index.js +74 -0
- package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
- package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
- package/lib/loop/plugins/prompt/index.d.ts +11 -0
- package/lib/loop/plugins/prompt/index.js +73 -0
- package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
- package/lib/loop/plugins/shell/editorChoice.js +58 -0
- package/lib/loop/plugins/shell/index.d.ts +47 -0
- package/lib/loop/plugins/shell/index.js +142 -0
- package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
- package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
- package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
- package/lib/loop/plugins/subagent-activity/index.js +42 -0
- package/lib/loop/plugins/view-switch/index.d.ts +46 -0
- package/lib/loop/plugins/view-switch/index.js +68 -0
- package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
- package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
- package/lib/loop/plugins/window-frame/index.d.ts +6 -0
- package/lib/loop/plugins/window-frame/index.js +79 -0
- package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
- package/lib/loop/plugins/window-frame/slots.js +30 -0
- package/lib/loop/presets.d.ts +181 -0
- package/lib/loop/presets.js +141 -0
- package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
- package/lib/loop/shell/LoopWorkspace.js +231 -0
- package/lib/loop/shell/PluginToggles.d.ts +21 -0
- package/lib/loop/shell/PluginToggles.js +41 -0
- package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
- package/lib/loop/shell/ViewSwitcher.js +43 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
- package/lib/loop/shell/index.d.ts +10 -0
- package/lib/loop/shell/index.js +14 -0
- package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
- package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
- package/lib/loop-example-main.d.ts +1 -0
- package/lib/loop-example-main.js +42 -0
- package/lib/loop-main.d.ts +1 -0
- package/lib/loop-main.js +138 -0
- package/lib/mcp/McpServerManager.d.ts +1 -1
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
- package/lib/models/CodeSandboxVariant.d.ts +13 -5
- package/lib/models/CodeSandboxVariant.js +17 -5
- package/lib/models/Content.d.ts +26 -0
- package/lib/models/Deck.d.ts +14 -0
- package/lib/models/Environment.d.ts +678 -5
- package/lib/models/Environment.js +12 -1
- package/lib/models/EnvironmentDTO.d.ts +24 -6
- package/lib/models/EnvironmentDTO.js +13 -2
- package/lib/models/Exercise.d.ts +0 -2
- package/lib/models/ItemType.d.ts +1 -1
- package/lib/models/Library.d.ts +0 -2
- package/lib/models/Notebook.d.ts +0 -2
- package/lib/models/ProjectDTO.d.ts +2 -2
- package/lib/models/ProjectDTO.js +4 -4
- package/lib/models/Runtime.d.ts +17 -11
- package/lib/models/RuntimeDTO.d.ts +16 -7
- package/lib/models/RuntimeDTO.js +9 -9
- package/lib/models/Space.d.ts +10 -0
- package/lib/models/Space.js +1 -1
- package/lib/models/SpaceDTO.d.ts +1 -1
- package/lib/models/SpaceItem.d.ts +2 -2
- package/lib/models/environments.generated.d.ts +141 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +1 -1
- package/lib/models/index.js +1 -1
- package/lib/protocols/A2AAdapter.d.ts +39 -6
- package/lib/protocols/A2AAdapter.js +180 -11
- package/lib/protocols/ACPAdapter.js +40 -37
- package/lib/protocols/AGUIAdapter.d.ts +14 -0
- package/lib/protocols/AGUIAdapter.js +34 -9
- package/lib/protocols/BrowserAgentAdapter.d.ts +125 -0
- package/lib/protocols/BrowserAgentAdapter.js +317 -0
- package/lib/protocols/VercelAIAdapter.d.ts +10 -0
- package/lib/protocols/VercelAIAdapter.js +27 -7
- package/lib/protocols/index.d.ts +1 -0
- package/lib/protocols/index.js +1 -0
- package/lib/runtimes/actions.d.ts +8 -3
- package/lib/runtimes/actions.js +46 -14
- package/lib/runtimes/apis.d.ts +13 -4
- package/lib/runtimes/browser/agent.d.ts +54 -0
- package/lib/runtimes/browser/agent.js +63 -0
- package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
- package/lib/runtimes/browser/anonymousToken.js +300 -0
- package/lib/runtimes/browser/frontendTools.d.ts +61 -0
- package/lib/runtimes/browser/frontendTools.js +152 -0
- package/lib/runtimes/browser/index.d.ts +11 -0
- package/lib/runtimes/browser/index.js +20 -0
- package/lib/runtimes/browser/model.d.ts +52 -0
- package/lib/runtimes/browser/model.js +110 -0
- package/lib/runtimes/browser/protocol.d.ts +54 -0
- package/lib/runtimes/browser/protocol.js +35 -0
- package/lib/runtimes/browser/subagents.d.ts +131 -0
- package/lib/runtimes/browser/subagents.js +241 -0
- package/lib/runtimes/index.d.ts +3 -0
- package/lib/runtimes/index.js +3 -0
- package/lib/runtimes/lifecycle.d.ts +76 -0
- package/lib/runtimes/lifecycle.js +99 -0
- package/lib/runtimes/variants.d.ts +172 -0
- package/lib/runtimes/variants.js +187 -0
- package/lib/services/reconnectToRuntime.d.ts +2 -2
- package/lib/services/reconnectToRuntime.js +3 -3
- package/lib/services/sandboxServiceManagers.d.ts +2 -2
- package/lib/services/sandboxServiceManagers.js +11 -11
- package/lib/specs/agents/agents.d.ts +129 -112
- package/lib/specs/agents/agents.js +8200 -5044
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +4 -0
- package/lib/specs/frontendTools.js +77 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +38 -15
- package/lib/specs/models.d.ts +18 -0
- package/lib/specs/models.js +154 -0
- package/lib/specs/outputs.d.ts +2 -0
- package/lib/specs/outputs.js +31 -0
- package/lib/specs/personas.js +1 -1
- package/lib/specs/skills.js +7 -7
- package/lib/specs/teams/teams.d.ts +2 -0
- package/lib/specs/teams/teams.js +628 -111
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -1
- package/lib/state/substates/RuntimesState.d.ts +5 -5
- package/lib/state/substates/RuntimesState.js +14 -14
- package/lib/state/substates/index.d.ts +1 -1
- package/lib/state/substates/index.js +1 -1
- package/lib/stores/agentRuntimeStore.d.ts +43 -1
- package/lib/stores/agentRuntimeStore.js +100 -11
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/stories/Button.d.ts +1 -1
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +1 -1
- package/lib/test-setup.js +66 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
- package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
- package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
- package/lib/tools/adapters/commands/index.d.ts +1 -0
- package/lib/tools/adapters/commands/index.js +5 -0
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/types/a2a.d.ts +15 -1
- package/lib/types/agents-lifecycle.d.ts +11 -6
- package/lib/types/agents.d.ts +31 -6
- package/lib/types/agentspecs.d.ts +120 -4
- package/lib/types/chat.d.ts +251 -3
- package/lib/types/checkpoints.d.ts +20 -0
- package/lib/types/config.d.ts +13 -1
- package/lib/types/connection.d.ts +1 -1
- package/lib/types/evals.d.ts +2 -0
- package/lib/types/messages.d.ts +60 -0
- package/lib/types/models.d.ts +26 -0
- package/lib/types/notifications.d.ts +15 -6
- package/lib/types/outputs.d.ts +2 -0
- package/lib/types/protocol.d.ts +7 -2
- package/lib/types/stream.d.ts +48 -3
- package/lib/types/stream.js +5 -0
- package/lib/types/teams.d.ts +102 -4
- package/lib/types/tool-approvals.d.ts +1 -1
- package/lib/types/tools.d.ts +8 -2
- package/lib/utils/utils.js +7 -1
- package/package.json +376 -361
- package/scripts/codegen/compose.py +208 -0
- package/scripts/codegen/generate_agents.py +202 -31
- package/scripts/codegen/generate_evals.py +2 -0
- package/scripts/codegen/generate_frontend_tools.py +35 -6
- package/scripts/codegen/generate_mcp_servers.py +2 -2
- package/scripts/codegen/generate_models.py +40 -15
- package/scripts/codegen/generate_outputs.py +2 -0
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- package/scripts/codegen/generate_skills.py +2 -2
- package/scripts/codegen/generate_teams.py +178 -4
- package/scripts/codegen/generate_tools.py +6 -4
- package/scripts/gen_workers.py +278 -110
- package/scripts/generate-environments-types.py +404 -0
- package/lib/chat/prompt/InputFooter.d.ts +0 -58
- package/lib/chat/prompt/InputFooter.js +0 -194
- package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
- package/lib/chat/prompt/InputPromptFooter.js +0 -15
- package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
- package/lib/chat/prompt/InputPromptHeader.js +0 -15
- package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
- package/lib/hooks/useRuntimes.d.ts +0 -5
- package/lib/hooks/useRuntimes.js +0 -34
- package/lib/jupyter/kernelsHandler.d.ts +0 -8
- package/lib/jupyter/kernelsHandler.js +0 -39
- package/lib/models/Dataset.d.ts +0 -16
- package/lib/utils/Cells.d.ts +0 -2
- package/lib/utils/Cells.js +0 -28
- /package/lib/models/{Dataset.js → Deck.js} +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type UseChatHelpers, type UIMessage } from '@ai-sdk/react';
|
|
2
|
+
import { type CreateBrowserAgentOptions } from '../runtimes/browser';
|
|
3
|
+
export type UseBrowserAgentOptions = CreateBrowserAgentOptions & {
|
|
4
|
+
/**
|
|
5
|
+
* Chat id, so two agents on one page keep separate histories.
|
|
6
|
+
*
|
|
7
|
+
* Defaults to the spec id, which is right whenever a page runs one agent.
|
|
8
|
+
*/
|
|
9
|
+
chatId?: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* A chat backed by an agent loop running in this page.
|
|
13
|
+
*
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const frontendTools = useNotebookTools(notebookId);
|
|
16
|
+
* const { messages, sendMessage, status } = useBrowserAgent({
|
|
17
|
+
* spec: JUPYTER_NOTEBOOK_COMPACTOR_AGENTSPEC_0_0_1,
|
|
18
|
+
* frontendTools,
|
|
19
|
+
* inference: { inferenceUrl, token },
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* The tools are the same array the AG-UI path takes, and they behave the same
|
|
24
|
+
* way — see {@link frontendToolsToVercelAI}.
|
|
25
|
+
*/
|
|
26
|
+
export declare function useBrowserAgent(options: UseBrowserAgentOptions): UseChatHelpers<UIMessage>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) 2023-2026 Datalayer, Inc.
|
|
7
|
+
*
|
|
8
|
+
* MIT License
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Run an agent in the browser.
|
|
12
|
+
*
|
|
13
|
+
* The counterpart to {@link useVercelAI}, and the difference between them is
|
|
14
|
+
* the whole of the harness split. `useVercelAI` speaks the AI SDK *protocol*
|
|
15
|
+
* to a runtime that turns the loop somewhere else; this turns the loop here,
|
|
16
|
+
* with the AI SDK itself, and reaches a server only to ask a model a question.
|
|
17
|
+
*
|
|
18
|
+
* Both return the same `useChat` helpers, so every chat component, message
|
|
19
|
+
* renderer and tool part downstream is shared. The branch is one transport:
|
|
20
|
+
*
|
|
21
|
+
* ```
|
|
22
|
+
* useVercelAI → DefaultChatTransport → POST /api/v1/vercel-ai/chat
|
|
23
|
+
* useBrowserAgent → DirectChatTransport → the loop, in this page
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @module hooks/useBrowserAgent
|
|
27
|
+
*/
|
|
28
|
+
import { useMemo } from 'react';
|
|
29
|
+
import { useChat } from '@ai-sdk/react';
|
|
30
|
+
import { DirectChatTransport } from 'ai';
|
|
31
|
+
import { createBrowserAgent, } from '../runtimes/browser';
|
|
32
|
+
/**
|
|
33
|
+
* A chat backed by an agent loop running in this page.
|
|
34
|
+
*
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const frontendTools = useNotebookTools(notebookId);
|
|
37
|
+
* const { messages, sendMessage, status } = useBrowserAgent({
|
|
38
|
+
* spec: JUPYTER_NOTEBOOK_COMPACTOR_AGENTSPEC_0_0_1,
|
|
39
|
+
* frontendTools,
|
|
40
|
+
* inference: { inferenceUrl, token },
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* The tools are the same array the AG-UI path takes, and they behave the same
|
|
45
|
+
* way — see {@link frontendToolsToVercelAI}.
|
|
46
|
+
*/
|
|
47
|
+
export function useBrowserAgent(options) {
|
|
48
|
+
const { chatId, spec, frontendTools, inference, model, maxSteps, onHitlRequired, onStatusChange, } = options;
|
|
49
|
+
// Rebuilt only when something the loop is made of changes. A new agent
|
|
50
|
+
// identity would reset the transport mid-conversation, so the dependencies
|
|
51
|
+
// are the primitives rather than the option object a caller re-creates on
|
|
52
|
+
// every render.
|
|
53
|
+
const agent = useMemo(() => createBrowserAgent({
|
|
54
|
+
spec,
|
|
55
|
+
frontendTools,
|
|
56
|
+
inference,
|
|
57
|
+
model,
|
|
58
|
+
maxSteps,
|
|
59
|
+
onHitlRequired,
|
|
60
|
+
onStatusChange,
|
|
61
|
+
}), [
|
|
62
|
+
spec,
|
|
63
|
+
frontendTools,
|
|
64
|
+
inference,
|
|
65
|
+
model,
|
|
66
|
+
maxSteps,
|
|
67
|
+
onHitlRequired,
|
|
68
|
+
onStatusChange,
|
|
69
|
+
]);
|
|
70
|
+
const transport = useMemo(() => new DirectChatTransport({ agent }), [agent]);
|
|
71
|
+
return useChat({
|
|
72
|
+
id: chatId ?? `browser-agent-${spec.id}`,
|
|
73
|
+
transport,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type AnonymousSession, type BrowserModelOptions } from '../runtimes/browser';
|
|
2
|
+
export type BrowserInference = {
|
|
3
|
+
/** Where to reach the inference service, and with whose token. */
|
|
4
|
+
inference: Omit<BrowserModelOptions, 'model'>;
|
|
5
|
+
/** Whether the agent would be refused for want of a sign-in. */
|
|
6
|
+
needsSignIn: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* The visitor's trial key, when they are on one.
|
|
9
|
+
*
|
|
10
|
+
* `status: 'idle'` for a signed-in member, which is the answer a caller
|
|
11
|
+
* wants for "is this person on a clock?" — nobody is. Passed on so the
|
|
12
|
+
* workspace can draw the time left and say what happens when it runs out.
|
|
13
|
+
*/
|
|
14
|
+
anonymous: AnonymousSession;
|
|
15
|
+
/** Where the inference service is, for whoever needs to name it. */
|
|
16
|
+
inferenceUrl: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The inference endpoint for an in-page agent.
|
|
20
|
+
*
|
|
21
|
+
* @param enabled Whether an in-page agent is actually going to ask for
|
|
22
|
+
* inference. False for a workspace on a server-backed agent, which
|
|
23
|
+
* authenticates itself: minting a visitor's one trial key for an agent that
|
|
24
|
+
* will never spend it starts a clock nobody is watching.
|
|
25
|
+
*/
|
|
26
|
+
export declare function useBrowserInference(enabled?: boolean): BrowserInference;
|
|
27
|
+
export default useBrowserInference;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) 2023-2026 Datalayer, Inc.
|
|
7
|
+
*
|
|
8
|
+
* MIT License
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Where an in-page agent asks its model, and as whom.
|
|
12
|
+
*
|
|
13
|
+
* A browser agent needs no runtime, but it does need an account: a page cannot
|
|
14
|
+
* hold an AWS credential, so the model is reached through the Datalayer
|
|
15
|
+
* inference service, which holds them, routes to Bedrock, and admits signed-in
|
|
16
|
+
* members only.
|
|
17
|
+
*
|
|
18
|
+
* Its own hook because two callers need the identical answer — the examples
|
|
19
|
+
* shell and the LOOP workspace — and neither should be reading stores to work
|
|
20
|
+
* out a host.
|
|
21
|
+
*
|
|
22
|
+
* @module hooks/useBrowserInference
|
|
23
|
+
*/
|
|
24
|
+
import { useMemo } from 'react';
|
|
25
|
+
import { useCoreStore, useIAMStore } from '../state';
|
|
26
|
+
import { browserModelRequiresSignIn, useAnonymousInferenceSession, } from '../runtimes/browser';
|
|
27
|
+
/** The inference plane used when the host provides no configuration. */
|
|
28
|
+
const DEFAULT_INFERENCE_URL = 'https://r1.datalayer.run';
|
|
29
|
+
/**
|
|
30
|
+
* The inference endpoint for an in-page agent.
|
|
31
|
+
*
|
|
32
|
+
* @param enabled Whether an in-page agent is actually going to ask for
|
|
33
|
+
* inference. False for a workspace on a server-backed agent, which
|
|
34
|
+
* authenticates itself: minting a visitor's one trial key for an agent that
|
|
35
|
+
* will never spend it starts a clock nobody is watching.
|
|
36
|
+
*/
|
|
37
|
+
export function useBrowserInference(enabled = true) {
|
|
38
|
+
const { configuration } = useCoreStore();
|
|
39
|
+
const memberToken = useIAMStore(state => state.token);
|
|
40
|
+
const inferenceUrl = configuration?.aiInferenceUrl || DEFAULT_INFERENCE_URL;
|
|
41
|
+
/*
|
|
42
|
+
* A visitor with no account still gets to try the thing.
|
|
43
|
+
*
|
|
44
|
+
* The service admits members only, so an anonymous page was refused with a
|
|
45
|
+
* flat 401 and the agent looked broken rather than gated. It mints the
|
|
46
|
+
* short-lived token the service offers for exactly this — worth a minute of
|
|
47
|
+
* inference and nothing else. One of them, not a rolling supply: the trial
|
|
48
|
+
* ends, and the workspace says so rather than quietly renewing it. A
|
|
49
|
+
* member's own token is strictly better, so this only runs when there is
|
|
50
|
+
* not one.
|
|
51
|
+
*/
|
|
52
|
+
const anonymous = useAnonymousInferenceSession(inferenceUrl, enabled && !memberToken);
|
|
53
|
+
const token = memberToken || anonymous.token;
|
|
54
|
+
const inference = useMemo(() => ({
|
|
55
|
+
inferenceUrl,
|
|
56
|
+
// The signed-in person's token, forwarded so the completion is made as
|
|
57
|
+
// them and metered to them — or the anonymous one, which names nobody.
|
|
58
|
+
token: token || undefined,
|
|
59
|
+
}), [inferenceUrl, token]);
|
|
60
|
+
return {
|
|
61
|
+
inference,
|
|
62
|
+
needsSignIn: browserModelRequiresSignIn(inference),
|
|
63
|
+
anonymous,
|
|
64
|
+
inferenceUrl,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export default useBrowserInference;
|
|
@@ -19,20 +19,20 @@ export type CheckpointData = {
|
|
|
19
19
|
end_date?: string;
|
|
20
20
|
};
|
|
21
21
|
export type PauseAgentParams = {
|
|
22
|
-
|
|
22
|
+
runtimeName: string;
|
|
23
23
|
mode?: CheckpointMode;
|
|
24
24
|
agentSpecId?: string;
|
|
25
25
|
agentSpec?: Record<string, any>;
|
|
26
26
|
messages?: string[];
|
|
27
27
|
};
|
|
28
28
|
export type ResumeAgentParams = {
|
|
29
|
-
|
|
29
|
+
runtimeName: string;
|
|
30
30
|
agentSpecId?: string;
|
|
31
31
|
mode?: CheckpointMode;
|
|
32
32
|
checkpointId?: string;
|
|
33
33
|
};
|
|
34
34
|
export type CheckpointAgentParams = {
|
|
35
|
-
|
|
35
|
+
runtimeName: string;
|
|
36
36
|
name?: string;
|
|
37
37
|
mode?: CheckpointMode;
|
|
38
38
|
agentSpecId?: string;
|
|
@@ -40,7 +40,7 @@ export type CheckpointAgentParams = {
|
|
|
40
40
|
messages?: string[];
|
|
41
41
|
};
|
|
42
42
|
export type TerminateAgentParams = {
|
|
43
|
-
|
|
43
|
+
runtimeName: string;
|
|
44
44
|
};
|
|
45
45
|
/**
|
|
46
46
|
* Fetch all runtime checkpoints for the current user.
|
|
@@ -48,20 +48,11 @@ export type TerminateAgentParams = {
|
|
|
48
48
|
* Calls ``GET /api/runtimes/v1/runtime-checkpoints`` and returns
|
|
49
49
|
* the list of checkpoint records in visible states.
|
|
50
50
|
*/
|
|
51
|
-
export declare function useCheckpointsQuery(): import("@tanstack/react-query").UseQueryResult<
|
|
51
|
+
export declare function useCheckpointsQuery(): import("@tanstack/react-query").UseQueryResult<CheckpointData[], Error>;
|
|
52
52
|
/**
|
|
53
53
|
* Hook to refresh the checkpoints list.
|
|
54
54
|
*/
|
|
55
55
|
export declare function useRefreshCheckpoints(): () => void;
|
|
56
|
-
/**
|
|
57
|
-
* Hook to delete a paused agent runtime.
|
|
58
|
-
*
|
|
59
|
-
* Paused agents have no K8s pod — their state lives entirely in Solr
|
|
60
|
-
* checkpoint records. This calls the dedicated
|
|
61
|
-
* ``DELETE /runtimes/{podName}/paused`` endpoint which removes those
|
|
62
|
-
* Solr records.
|
|
63
|
-
*/
|
|
64
|
-
export declare function useDeletePausedAgentRuntime(): import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
|
|
65
56
|
/**
|
|
66
57
|
* Hook to resume a paused agent runtime via checkpoint restore.
|
|
67
58
|
*/
|
|
@@ -109,7 +100,7 @@ export interface AgentLifecycleOptions {
|
|
|
109
100
|
runtime: AgentConnection | null;
|
|
110
101
|
/** Callback to connect to a new runtime pod */
|
|
111
102
|
connectToRuntime: (opts: {
|
|
112
|
-
|
|
103
|
+
runtimeName: string;
|
|
113
104
|
environmentName: string;
|
|
114
105
|
jupyterBaseUrl?: string;
|
|
115
106
|
}) => void;
|
|
@@ -130,7 +121,7 @@ export interface AgentLifecycleReturn {
|
|
|
130
121
|
/** Pause the agent (checkpoint-mode aware) */
|
|
131
122
|
pause: (mode?: CheckpointMode, messages?: string[]) => Promise<void>;
|
|
132
123
|
/** Resume a paused agent (checkpoint restore) */
|
|
133
|
-
resume: (mode?: CheckpointMode, checkpointId?: string,
|
|
124
|
+
resume: (mode?: CheckpointMode, checkpointId?: string, runtimeName?: string) => Promise<void>;
|
|
134
125
|
/** Terminate the agent (delete runtime) */
|
|
135
126
|
terminate: () => Promise<void>;
|
|
136
127
|
/** Create a named checkpoint (pause → wait → stay paused) */
|
|
@@ -163,7 +154,7 @@ export declare function useAgentLifecycle(options: AgentLifecycleOptions): Agent
|
|
|
163
154
|
* for pause, resume, and checkpoint lifecycle.
|
|
164
155
|
*/
|
|
165
156
|
export declare function useCheckpoints(): {
|
|
166
|
-
checkpointsQuery: import("@tanstack/react-query").UseQueryResult<
|
|
157
|
+
checkpointsQuery: import("@tanstack/react-query").UseQueryResult<CheckpointData[], Error>;
|
|
167
158
|
refresh: () => void;
|
|
168
159
|
pauseAgent: import("@tanstack/react-query").UseMutationResult<import("../api/runtimes/runtimes").PauseResumeResponse, Error, PauseAgentParams, unknown>;
|
|
169
160
|
resumeAgent: import("@tanstack/react-query").UseMutationResult<import("../api/runtimes/runtimes").PauseResumeResponse, Error, ResumeAgentParams, unknown>;
|
|
@@ -14,8 +14,9 @@ import { useMemo, useState, useCallback } from 'react';
|
|
|
14
14
|
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
15
15
|
import { useIAMStore } from '@datalayer/core/lib/state';
|
|
16
16
|
import { useCoreStore, useDatalayer } from '@datalayer/core';
|
|
17
|
-
import { agentQueryKeys, AGENT_QUERY_OPTIONS,
|
|
17
|
+
import { agentQueryKeys, AGENT_QUERY_OPTIONS, clearRuntimeDeleted, } from './useAgentRuntimes';
|
|
18
18
|
import { disposeSandboxServiceManagers } from '../services/sandboxServiceManagers';
|
|
19
|
+
import { runtimeCheckpointsUrl, runtimeResumeUrl } from '../runtimes/lifecycle';
|
|
19
20
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
20
21
|
// Query hooks
|
|
21
22
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
@@ -33,7 +34,7 @@ export function useCheckpointsQuery() {
|
|
|
33
34
|
queryKey: agentQueryKeys.checkpoints.lists(),
|
|
34
35
|
queryFn: async () => {
|
|
35
36
|
const resp = await requestDatalayer({
|
|
36
|
-
url:
|
|
37
|
+
url: runtimeCheckpointsUrl(configuration.runtimesUrl),
|
|
37
38
|
method: 'GET',
|
|
38
39
|
});
|
|
39
40
|
if (resp.success && resp.checkpoints) {
|
|
@@ -57,41 +58,6 @@ export function useRefreshCheckpoints() {
|
|
|
57
58
|
});
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Hook to delete a paused agent runtime.
|
|
62
|
-
*
|
|
63
|
-
* Paused agents have no K8s pod — their state lives entirely in Solr
|
|
64
|
-
* checkpoint records. This calls the dedicated
|
|
65
|
-
* ``DELETE /runtimes/{podName}/paused`` endpoint which removes those
|
|
66
|
-
* Solr records.
|
|
67
|
-
*/
|
|
68
|
-
export function useDeletePausedAgentRuntime() {
|
|
69
|
-
const { configuration } = useCoreStore();
|
|
70
|
-
const { requestDatalayer } = useDatalayer({ notifyOnError: false });
|
|
71
|
-
const queryClient = useQueryClient();
|
|
72
|
-
return useMutation({
|
|
73
|
-
mutationFn: async (podName) => {
|
|
74
|
-
return requestDatalayer({
|
|
75
|
-
url: `${configuration.runtimesUrl}/api/runtimes/v1/runtimes/${podName}/paused`,
|
|
76
|
-
method: 'DELETE',
|
|
77
|
-
});
|
|
78
|
-
},
|
|
79
|
-
onSuccess: (_data, podName) => {
|
|
80
|
-
queryClient.cancelQueries({
|
|
81
|
-
queryKey: agentQueryKeys.agentRuntimes.detail(podName),
|
|
82
|
-
});
|
|
83
|
-
queryClient.removeQueries({
|
|
84
|
-
queryKey: agentQueryKeys.agentRuntimes.detail(podName),
|
|
85
|
-
});
|
|
86
|
-
queryClient.invalidateQueries({
|
|
87
|
-
queryKey: agentQueryKeys.agentRuntimes.lists(),
|
|
88
|
-
});
|
|
89
|
-
queryClient.invalidateQueries({
|
|
90
|
-
queryKey: agentQueryKeys.checkpoints.all(),
|
|
91
|
-
});
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
61
|
/**
|
|
96
62
|
* Hook to resume a paused agent runtime via checkpoint restore.
|
|
97
63
|
*/
|
|
@@ -100,16 +66,16 @@ export function useResumePausedAgentRuntime() {
|
|
|
100
66
|
const { requestDatalayer } = useDatalayer({ notifyOnError: false });
|
|
101
67
|
const queryClient = useQueryClient();
|
|
102
68
|
return useMutation({
|
|
103
|
-
mutationFn: async (
|
|
69
|
+
mutationFn: async (runtimeName) => {
|
|
104
70
|
return requestDatalayer({
|
|
105
|
-
url:
|
|
71
|
+
url: runtimeResumeUrl(configuration.runtimesUrl, runtimeName),
|
|
106
72
|
method: 'POST',
|
|
107
73
|
});
|
|
108
74
|
},
|
|
109
|
-
onSuccess: (_data,
|
|
75
|
+
onSuccess: (_data, runtimeName) => {
|
|
110
76
|
// The pod can come back under the same name — drop any delete tombstone
|
|
111
77
|
// so the runtimes queries do not filter the resumed runtime out.
|
|
112
|
-
|
|
78
|
+
clearRuntimeDeleted(runtimeName);
|
|
113
79
|
queryClient.invalidateQueries({
|
|
114
80
|
queryKey: agentQueryKeys.agentRuntimes.all(),
|
|
115
81
|
});
|
|
@@ -138,7 +104,7 @@ export function usePauseAgent() {
|
|
|
138
104
|
const runtimesUrl = coreStore.getState().configuration?.runtimesUrl || '';
|
|
139
105
|
const { pauseRuntime } = await import('../api/runtimes/runtimes');
|
|
140
106
|
const mode = params.mode || 'light';
|
|
141
|
-
const resp = await pauseRuntime(token, params.
|
|
107
|
+
const resp = await pauseRuntime(token, params.runtimeName, runtimesUrl, {
|
|
142
108
|
agent_spec_id: params.agentSpecId,
|
|
143
109
|
checkpoint_mode: mode,
|
|
144
110
|
...(params.messages && mode === 'light'
|
|
@@ -148,7 +114,7 @@ export function usePauseAgent() {
|
|
|
148
114
|
});
|
|
149
115
|
if (resp.checkpoint_id) {
|
|
150
116
|
const { waitForCheckpointStatus } = await import('../api/runtimes/checkpoints');
|
|
151
|
-
const ckpt = await waitForCheckpointStatus(token, params.
|
|
117
|
+
const ckpt = await waitForCheckpointStatus(token, params.runtimeName, resp.checkpoint_id, ['paused', 'failed'], runtimesUrl);
|
|
152
118
|
if (ckpt.status === 'failed') {
|
|
153
119
|
throw new Error(`Checkpoint ${resp.checkpoint_id} failed during ${mode.toUpperCase()} pause`);
|
|
154
120
|
}
|
|
@@ -158,7 +124,7 @@ export function usePauseAgent() {
|
|
|
158
124
|
onSuccess: (_data, params) => {
|
|
159
125
|
// Pausing tears the pod down: dispose every ServiceManager any surface
|
|
160
126
|
// opened against the sandbox so their pollers stop immediately.
|
|
161
|
-
disposeSandboxServiceManagers(params.
|
|
127
|
+
disposeSandboxServiceManagers(params.runtimeName);
|
|
162
128
|
queryClient.invalidateQueries({
|
|
163
129
|
queryKey: agentQueryKeys.agentRuntimes.all(),
|
|
164
130
|
});
|
|
@@ -182,7 +148,7 @@ export function useResumeAgent() {
|
|
|
182
148
|
const token = iamStore.getState().token || '';
|
|
183
149
|
const runtimesUrl = coreStore.getState().configuration?.runtimesUrl || '';
|
|
184
150
|
const { resumeRuntime } = await import('../api/runtimes/runtimes');
|
|
185
|
-
return resumeRuntime(token, params.
|
|
151
|
+
return resumeRuntime(token, params.runtimeName, runtimesUrl, {
|
|
186
152
|
agent_spec_id: params.agentSpecId,
|
|
187
153
|
...(params.mode ? { checkpoint_mode: params.mode } : {}),
|
|
188
154
|
...(params.checkpointId ? { checkpoint_id: params.checkpointId } : {}),
|
|
@@ -191,7 +157,7 @@ export function useResumeAgent() {
|
|
|
191
157
|
onSuccess: (_data, params) => {
|
|
192
158
|
// The pod can come back under the same name — drop any delete tombstone
|
|
193
159
|
// so the runtimes queries do not filter the resumed runtime out.
|
|
194
|
-
|
|
160
|
+
clearRuntimeDeleted(params.runtimeName);
|
|
195
161
|
queryClient.invalidateQueries({
|
|
196
162
|
queryKey: agentQueryKeys.agentRuntimes.all(),
|
|
197
163
|
});
|
|
@@ -217,7 +183,7 @@ export function useCheckpointAgent() {
|
|
|
217
183
|
const { pauseRuntime } = await import('../api/runtimes/runtimes');
|
|
218
184
|
const { waitForCheckpointStatus } = await import('../api/runtimes/checkpoints');
|
|
219
185
|
const mode = params.mode || 'criu';
|
|
220
|
-
const pauseResp = await pauseRuntime(token, params.
|
|
186
|
+
const pauseResp = await pauseRuntime(token, params.runtimeName, runtimesUrl, {
|
|
221
187
|
name: params.name || `checkpoint-${Date.now()}`,
|
|
222
188
|
description: `${mode.toUpperCase()} checkpoint for ${params.agentSpecId}`,
|
|
223
189
|
checkpoint_mode: mode,
|
|
@@ -231,7 +197,7 @@ export function useCheckpointAgent() {
|
|
|
231
197
|
if (!checkpointId) {
|
|
232
198
|
throw new Error('Pause did not return a checkpoint_id');
|
|
233
199
|
}
|
|
234
|
-
const ckpt = await waitForCheckpointStatus(token, params.
|
|
200
|
+
const ckpt = await waitForCheckpointStatus(token, params.runtimeName, checkpointId, ['paused', 'failed'], runtimesUrl);
|
|
235
201
|
if (ckpt.status === 'failed') {
|
|
236
202
|
throw new Error(`Checkpoint ${checkpointId} failed during ${mode.toUpperCase()} pause`);
|
|
237
203
|
}
|
|
@@ -261,7 +227,7 @@ export function useTerminateAgent() {
|
|
|
261
227
|
const token = iamStore.getState().token || '';
|
|
262
228
|
const runtimesUrl = coreStore.getState().configuration?.runtimesUrl || '';
|
|
263
229
|
const { deleteRuntime } = await import('../api/runtimes/runtimes');
|
|
264
|
-
return deleteRuntime(token, params.
|
|
230
|
+
return deleteRuntime(token, params.runtimeName, runtimesUrl);
|
|
265
231
|
},
|
|
266
232
|
onSuccess: () => {
|
|
267
233
|
queryClient.invalidateQueries({
|
|
@@ -304,7 +270,7 @@ export function useAgentLifecycle(options) {
|
|
|
304
270
|
}
|
|
305
271
|
try {
|
|
306
272
|
await pauseAgentMutation.mutateAsync({
|
|
307
|
-
|
|
273
|
+
runtimeName: runtime.runtimeName,
|
|
308
274
|
mode,
|
|
309
275
|
agentSpecId,
|
|
310
276
|
agentSpec,
|
|
@@ -318,19 +284,19 @@ export function useAgentLifecycle(options) {
|
|
|
318
284
|
}
|
|
319
285
|
}, [runtime, lifecycleStatus, agentSpecId, agentSpec, pauseAgentMutation]);
|
|
320
286
|
// ─── Resume ─────────────────────────────────────────────────────────
|
|
321
|
-
const resume = useCallback(async (mode = 'criu', checkpointId,
|
|
287
|
+
const resume = useCallback(async (mode = 'criu', checkpointId, runtimeName) => {
|
|
322
288
|
setLifecycleStatus('resuming');
|
|
323
289
|
setLifecycleError(null);
|
|
324
290
|
try {
|
|
325
291
|
const checkpoints = checkpointsQuery.data || [];
|
|
326
|
-
const
|
|
327
|
-
runtime?.
|
|
292
|
+
const targetRuntimeName = runtimeName ||
|
|
293
|
+
runtime?.runtimeName ||
|
|
328
294
|
(checkpointId
|
|
329
295
|
? checkpoints.find((c) => c.id === checkpointId)?.runtime_uid
|
|
330
296
|
: undefined);
|
|
331
|
-
if (
|
|
297
|
+
if (targetRuntimeName) {
|
|
332
298
|
await resumeAgentMutation.mutateAsync({
|
|
333
|
-
|
|
299
|
+
runtimeName: targetRuntimeName,
|
|
334
300
|
agentSpecId,
|
|
335
301
|
mode,
|
|
336
302
|
checkpointId,
|
|
@@ -360,9 +326,9 @@ export function useAgentLifecycle(options) {
|
|
|
360
326
|
const bTs = Number(b.started_at || 0);
|
|
361
327
|
return bTs - aTs;
|
|
362
328
|
})[0];
|
|
363
|
-
if (latestRuntime?.
|
|
329
|
+
if (latestRuntime?.runtime_name && latestRuntime?.ingress) {
|
|
364
330
|
connectToRuntime({
|
|
365
|
-
|
|
331
|
+
runtimeName: latestRuntime.runtime_name,
|
|
366
332
|
environmentName: latestRuntime.environment.name,
|
|
367
333
|
jupyterBaseUrl: latestRuntime.ingress,
|
|
368
334
|
});
|
|
@@ -400,7 +366,7 @@ export function useAgentLifecycle(options) {
|
|
|
400
366
|
}
|
|
401
367
|
try {
|
|
402
368
|
await checkpointAgentMutation.mutateAsync({
|
|
403
|
-
|
|
369
|
+
runtimeName: runtime.runtimeName,
|
|
404
370
|
name,
|
|
405
371
|
mode,
|
|
406
372
|
agentSpecId,
|
|
@@ -423,7 +389,7 @@ export function useAgentLifecycle(options) {
|
|
|
423
389
|
}
|
|
424
390
|
try {
|
|
425
391
|
await terminateAgentMutation.mutateAsync({
|
|
426
|
-
|
|
392
|
+
runtimeName: runtime.runtimeName,
|
|
427
393
|
});
|
|
428
394
|
disconnect();
|
|
429
395
|
setLifecycleStatus('idle');
|
package/lib/hooks/useConfig.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { RemoteConfig } from '../types/config';
|
|
|
3
3
|
* Hook to safely use query when QueryClient is available.
|
|
4
4
|
* Returns a mock result if no QueryClientProvider is present.
|
|
5
5
|
*/
|
|
6
|
-
export declare function useConfig(enabled: boolean, configEndpoint?: string, authToken?: string, agentId?: string): import("@tanstack/query-core").QueryObserverRefetchErrorResult<
|
|
6
|
+
export declare function useConfig(enabled: boolean, configEndpoint?: string, authToken?: string, agentId?: string): import("@tanstack/query-core").QueryObserverRefetchErrorResult<RemoteConfig, Error> | import("@tanstack/query-core").QueryObserverSuccessResult<RemoteConfig, Error> | import("@tanstack/query-core").QueryObserverLoadingErrorResult<RemoteConfig, Error> | import("@tanstack/query-core").QueryObserverPendingResult<RemoteConfig, Error> | import("@tanstack/query-core").QueryObserverPlaceholderResult<RemoteConfig, Error> | {
|
|
7
7
|
data: undefined;
|
|
8
8
|
isLoading: boolean;
|
|
9
9
|
isError: boolean;
|
package/lib/hooks/useConfig.js
CHANGED
|
@@ -46,7 +46,11 @@ export function useConfig(enabled, configEndpoint, authToken, agentId) {
|
|
|
46
46
|
// Otherwise use Jupyter requestAPI.
|
|
47
47
|
return requestAPI('configure');
|
|
48
48
|
},
|
|
49
|
-
queryKey: [
|
|
49
|
+
queryKey: [
|
|
50
|
+
'models',
|
|
51
|
+
configEndpoint || 'jupyter-server',
|
|
52
|
+
agentId || 'global',
|
|
53
|
+
],
|
|
50
54
|
enabled,
|
|
51
55
|
retry: 1,
|
|
52
56
|
});
|
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
import type { ContextSnapshotData } from '../types/context';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* What the agent's context window is holding.
|
|
3
|
+
*
|
|
4
|
+
* The REST endpoint this used to poll was removed, and the snapshot moved to
|
|
5
|
+
* the WebSocket stream — but the hook was left returning `undefined` with a
|
|
6
|
+
* note that a replacement would be wired in later. It never was, so the
|
|
7
|
+
* token-usage bar and its context ring stayed hidden for *every* agent, on
|
|
8
|
+
* every target, however the host configured them. The data had been arriving
|
|
9
|
+
* the whole time; nothing was reading it.
|
|
10
|
+
*
|
|
11
|
+
* It arrives on `agent.snapshot` and the runtime store already keeps it. This
|
|
12
|
+
* reads that.
|
|
4
13
|
*
|
|
5
|
-
* The
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
14
|
+
* The arguments are the ones the REST version took. They are unused and kept
|
|
15
|
+
* so the call sites that pass an endpoint and a token still compile — what
|
|
16
|
+
* they described (where to ask, and as whom) is settled by the socket now.
|
|
17
|
+
*
|
|
18
|
+
* @module hooks/useContextSnapshot
|
|
10
19
|
*/
|
|
20
|
+
import type { ContextSnapshotData } from '../types/context';
|
|
11
21
|
export declare function useContextSnapshot(_enabled: boolean, _configEndpoint?: string, _agentId?: string, _authToken?: string): {
|
|
12
22
|
data: ContextSnapshotData | undefined;
|
|
13
23
|
isLoading: boolean;
|
|
14
24
|
isError: boolean;
|
|
15
25
|
error: null;
|
|
16
26
|
};
|
|
27
|
+
export default useContextSnapshot;
|
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
* Hook that previously polled agent context-snapshot from the backend.
|
|
7
|
-
*
|
|
8
|
-
* The REST endpoint has been removed — context snapshot data is now
|
|
9
|
-
* delivered via the WebSocket stream (`agent.snapshot` messages).
|
|
10
|
-
* This hook is kept as a no-op so existing call-sites compile without
|
|
11
|
-
* changes; the token-usage bar simply stays hidden until a WS-based
|
|
12
|
-
* replacement is wired in.
|
|
13
|
-
*/
|
|
5
|
+
import { useAgentRuntimeContextSnapshot } from '../stores';
|
|
14
6
|
export function useContextSnapshot(_enabled, _configEndpoint, _agentId, _authToken) {
|
|
15
|
-
|
|
7
|
+
const snapshot = useAgentRuntimeContextSnapshot();
|
|
8
|
+
/*
|
|
9
|
+
* Never "loading". There is no request to be in flight — the socket either
|
|
10
|
+
* has reported a snapshot or has not — and a caller that showed a spinner
|
|
11
|
+
* for this would show it for as long as the agent stayed quiet.
|
|
12
|
+
*/
|
|
13
|
+
return {
|
|
14
|
+
data: snapshot ?? undefined,
|
|
15
|
+
isLoading: false,
|
|
16
|
+
isError: false,
|
|
17
|
+
error: null,
|
|
18
|
+
};
|
|
16
19
|
}
|
|
20
|
+
export default useContextSnapshot;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { NotificationFilters, ListAgentEventsParams, CreateAgentEventRequest, UpdateAgentEventRequest } from '../types';
|
|
2
|
-
export declare function useFilteredNotifications(filters?: NotificationFilters): import("@tanstack/react-query").UseQueryResult<
|
|
3
|
-
export declare function useUnreadNotificationCount(): import("@tanstack/react-query").UseQueryResult<
|
|
2
|
+
export declare function useFilteredNotifications(filters?: NotificationFilters): import("@tanstack/react-query").UseQueryResult<import("../types").AgentNotification[], Error>;
|
|
3
|
+
export declare function useUnreadNotificationCount(): import("@tanstack/react-query").UseQueryResult<{
|
|
4
4
|
count: number;
|
|
5
|
-
}
|
|
5
|
+
}, Error>;
|
|
6
6
|
export declare function useMarkNotificationRead(): import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
|
|
7
7
|
export declare function useMarkAllNotificationsRead(): import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
|
|
8
8
|
/**
|
|
9
9
|
* List events across all agents for the authenticated user.
|
|
10
10
|
*/
|
|
11
|
-
export declare function useAllAgentEvents(params?: Omit<ListAgentEventsParams, 'agent_id'>, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<
|
|
12
|
-
export declare function useAgentEvents(agentId: string, params?: Omit<ListAgentEventsParams, 'agent_id'>, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<
|
|
13
|
-
export declare function useAgentEvent(agentId: string, eventId?: string): import("@tanstack/react-query").UseQueryResult<
|
|
11
|
+
export declare function useAllAgentEvents(params?: Omit<ListAgentEventsParams, 'agent_id'>, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<import("../types").ListAgentEventsResponse, Error>;
|
|
12
|
+
export declare function useAgentEvents(agentId: string, params?: Omit<ListAgentEventsParams, 'agent_id'>, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<import("../types").ListAgentEventsResponse, Error>;
|
|
13
|
+
export declare function useAgentEvent(agentId: string, eventId?: string): import("@tanstack/react-query").UseQueryResult<import("../types").GetAgentEventResponse, Error>;
|
|
14
14
|
export declare function useCreateAgentEvent(): import("@tanstack/react-query").UseMutationResult<{
|
|
15
15
|
success: boolean;
|
|
16
16
|
event: import("../types").AgentEvent;
|
|
@@ -34,14 +34,14 @@ export declare function useMarkEventUnread(agentId: string): import("@tanstack/r
|
|
|
34
34
|
eventAgentId?: string;
|
|
35
35
|
}, unknown>;
|
|
36
36
|
export declare function useNotifications(agentId: string, filters?: NotificationFilters, eventParams?: Omit<ListAgentEventsParams, 'agent_id'>, eventId?: string): {
|
|
37
|
-
notificationsQuery: import("@tanstack/react-query").UseQueryResult<
|
|
38
|
-
unreadCountQuery: import("@tanstack/react-query").UseQueryResult<
|
|
37
|
+
notificationsQuery: import("@tanstack/react-query").UseQueryResult<import("../types").AgentNotification[], Error>;
|
|
38
|
+
unreadCountQuery: import("@tanstack/react-query").UseQueryResult<{
|
|
39
39
|
count: number;
|
|
40
|
-
}
|
|
40
|
+
}, Error>;
|
|
41
41
|
markRead: import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
|
|
42
42
|
markAllRead: import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
|
|
43
|
-
eventsQuery: import("@tanstack/react-query").UseQueryResult<
|
|
44
|
-
eventQuery: import("@tanstack/react-query").UseQueryResult<
|
|
43
|
+
eventsQuery: import("@tanstack/react-query").UseQueryResult<import("../types").ListAgentEventsResponse, Error>;
|
|
44
|
+
eventQuery: import("@tanstack/react-query").UseQueryResult<import("../types").GetAgentEventResponse, Error>;
|
|
45
45
|
createEvent: import("@tanstack/react-query").UseMutationResult<{
|
|
46
46
|
success: boolean;
|
|
47
47
|
event: import("../types").AgentEvent;
|
|
@@ -58,7 +58,7 @@ export function useMarkAllNotificationsRead() {
|
|
|
58
58
|
const baseUrl = useBaseUrl();
|
|
59
59
|
const queryClient = useQueryClient();
|
|
60
60
|
return useMutation({
|
|
61
|
-
mutationFn: () => notifications.markAllRead(token, baseUrl),
|
|
61
|
+
mutationFn: () => notifications.markAllRead(token, undefined, baseUrl),
|
|
62
62
|
onSuccess: () => {
|
|
63
63
|
queryClient.invalidateQueries({ queryKey: ['agent-notifications'] });
|
|
64
64
|
},
|