@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
|
@@ -19,7 +19,7 @@ export type ProjectData = {
|
|
|
19
19
|
/** Whether the project is public */
|
|
20
20
|
isPublic: boolean;
|
|
21
21
|
/** Attached agent (runtime) pod name, if any */
|
|
22
|
-
|
|
22
|
+
attachedAgentRuntimeName?: string;
|
|
23
23
|
/** Attached agentspec ID (e.g. 'data-acquisition'), if any */
|
|
24
24
|
attachedAgentSpecId?: string;
|
|
25
25
|
};
|
|
@@ -64,7 +64,6 @@ export declare function useProjects(): {
|
|
|
64
64
|
isEnabled: boolean;
|
|
65
65
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
66
66
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
67
|
-
promise: Promise<any>;
|
|
68
67
|
data: ProjectData[];
|
|
69
68
|
} | {
|
|
70
69
|
error: null;
|
|
@@ -91,7 +90,6 @@ export declare function useProjects(): {
|
|
|
91
90
|
isEnabled: boolean;
|
|
92
91
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
93
92
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
94
|
-
promise: Promise<any>;
|
|
95
93
|
data: ProjectData[];
|
|
96
94
|
} | {
|
|
97
95
|
error: Error;
|
|
@@ -118,7 +116,6 @@ export declare function useProjects(): {
|
|
|
118
116
|
isEnabled: boolean;
|
|
119
117
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
120
118
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
121
|
-
promise: Promise<any>;
|
|
122
119
|
data: ProjectData[];
|
|
123
120
|
} | {
|
|
124
121
|
error: null;
|
|
@@ -145,7 +142,6 @@ export declare function useProjects(): {
|
|
|
145
142
|
isEnabled: boolean;
|
|
146
143
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
147
144
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
148
|
-
promise: Promise<any>;
|
|
149
145
|
data: ProjectData[];
|
|
150
146
|
} | {
|
|
151
147
|
error: null;
|
|
@@ -172,7 +168,6 @@ export declare function useProjects(): {
|
|
|
172
168
|
isEnabled: boolean;
|
|
173
169
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
174
170
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
175
|
-
promise: Promise<any>;
|
|
176
171
|
data: ProjectData[];
|
|
177
172
|
} | {
|
|
178
173
|
isError: false;
|
|
@@ -199,7 +194,6 @@ export declare function useProjects(): {
|
|
|
199
194
|
isEnabled: boolean;
|
|
200
195
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
201
196
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
202
|
-
promise: Promise<any>;
|
|
203
197
|
data: ProjectData[];
|
|
204
198
|
};
|
|
205
199
|
/**
|
|
@@ -230,7 +224,6 @@ export declare function useProject(uid: string | undefined): {
|
|
|
230
224
|
isEnabled: boolean;
|
|
231
225
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
232
226
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
233
|
-
promise: Promise<any>;
|
|
234
227
|
data: ProjectData | undefined;
|
|
235
228
|
} | {
|
|
236
229
|
error: null;
|
|
@@ -257,7 +250,6 @@ export declare function useProject(uid: string | undefined): {
|
|
|
257
250
|
isEnabled: boolean;
|
|
258
251
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
259
252
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
260
|
-
promise: Promise<any>;
|
|
261
253
|
data: ProjectData | undefined;
|
|
262
254
|
} | {
|
|
263
255
|
error: Error;
|
|
@@ -284,7 +276,6 @@ export declare function useProject(uid: string | undefined): {
|
|
|
284
276
|
isEnabled: boolean;
|
|
285
277
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
286
278
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
287
|
-
promise: Promise<any>;
|
|
288
279
|
data: ProjectData | undefined;
|
|
289
280
|
} | {
|
|
290
281
|
error: null;
|
|
@@ -311,7 +302,6 @@ export declare function useProject(uid: string | undefined): {
|
|
|
311
302
|
isEnabled: boolean;
|
|
312
303
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
313
304
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
314
|
-
promise: Promise<any>;
|
|
315
305
|
data: ProjectData | undefined;
|
|
316
306
|
} | {
|
|
317
307
|
error: null;
|
|
@@ -338,7 +328,6 @@ export declare function useProject(uid: string | undefined): {
|
|
|
338
328
|
isEnabled: boolean;
|
|
339
329
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
340
330
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
341
|
-
promise: Promise<any>;
|
|
342
331
|
data: ProjectData | undefined;
|
|
343
332
|
} | {
|
|
344
333
|
isError: false;
|
|
@@ -365,7 +354,6 @@ export declare function useProject(uid: string | undefined): {
|
|
|
365
354
|
isEnabled: boolean;
|
|
366
355
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<any, Error>>;
|
|
367
356
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
368
|
-
promise: Promise<any>;
|
|
369
357
|
data: ProjectData | undefined;
|
|
370
358
|
};
|
|
371
359
|
/**
|
|
@@ -527,7 +515,7 @@ export declare function useCreateProject(): {
|
|
|
527
515
|
* Uses the spacer PUT endpoint via useUpdateSpace.
|
|
528
516
|
*/
|
|
529
517
|
export declare function useUpdateProject(): {
|
|
530
|
-
assignAgent: (project: ProjectData,
|
|
518
|
+
assignAgent: (project: ProjectData, agentRuntimeName: string, agentSpecId?: string) => Promise<any>;
|
|
531
519
|
unassignAgent: (project: ProjectData) => Promise<any>;
|
|
532
520
|
renameProject: (project: ProjectData, newName: string) => Promise<any>;
|
|
533
521
|
data: undefined;
|
|
@@ -547,7 +535,7 @@ export declare function useUpdateProject(): {
|
|
|
547
535
|
submittedAt: number;
|
|
548
536
|
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<any, Error, Partial<any> & Record<string, unknown>, unknown>;
|
|
549
537
|
} | {
|
|
550
|
-
assignAgent: (project: ProjectData,
|
|
538
|
+
assignAgent: (project: ProjectData, agentRuntimeName: string, agentSpecId?: string) => Promise<any>;
|
|
551
539
|
unassignAgent: (project: ProjectData) => Promise<any>;
|
|
552
540
|
renameProject: (project: ProjectData, newName: string) => Promise<any>;
|
|
553
541
|
data: undefined;
|
|
@@ -567,7 +555,7 @@ export declare function useUpdateProject(): {
|
|
|
567
555
|
submittedAt: number;
|
|
568
556
|
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<any, Error, Partial<any> & Record<string, unknown>, unknown>;
|
|
569
557
|
} | {
|
|
570
|
-
assignAgent: (project: ProjectData,
|
|
558
|
+
assignAgent: (project: ProjectData, agentRuntimeName: string, agentSpecId?: string) => Promise<any>;
|
|
571
559
|
unassignAgent: (project: ProjectData) => Promise<any>;
|
|
572
560
|
renameProject: (project: ProjectData, newName: string) => Promise<any>;
|
|
573
561
|
data: undefined;
|
|
@@ -587,7 +575,7 @@ export declare function useUpdateProject(): {
|
|
|
587
575
|
submittedAt: number;
|
|
588
576
|
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<any, Error, Partial<any> & Record<string, unknown>, unknown>;
|
|
589
577
|
} | {
|
|
590
|
-
assignAgent: (project: ProjectData,
|
|
578
|
+
assignAgent: (project: ProjectData, agentRuntimeName: string, agentSpecId?: string) => Promise<any>;
|
|
591
579
|
unassignAgent: (project: ProjectData) => Promise<any>;
|
|
592
580
|
renameProject: (project: ProjectData, newName: string) => Promise<any>;
|
|
593
581
|
data: any;
|
|
@@ -622,7 +610,7 @@ export type { ProjectDefaultItems } from '../models/ProjectDTO';
|
|
|
622
610
|
* This calls the spacer `GET /spaces/:uid/default-items` endpoint which
|
|
623
611
|
* returns the UID of the first notebook and first document in the space.
|
|
624
612
|
*/
|
|
625
|
-
export declare function useProjectDefaultItems(projectUid: string | undefined): import("@tanstack/react-query").UseQueryResult<
|
|
613
|
+
export declare function useProjectDefaultItems(projectUid: string | undefined): import("@tanstack/react-query").UseQueryResult<{
|
|
626
614
|
defaultNotebookUid: string | null;
|
|
627
615
|
defaultDocumentUid: string | null;
|
|
628
|
-
}
|
|
616
|
+
}, Error>;
|
package/lib/hooks/useProjects.js
CHANGED
|
@@ -63,7 +63,7 @@ export function useProjects() {
|
|
|
63
63
|
description: space.description ?? space.description_t ?? '',
|
|
64
64
|
createdAt: space.created_at ? new Date(space.created_at) : new Date(),
|
|
65
65
|
isPublic: space.public ?? space.public_b ?? false,
|
|
66
|
-
|
|
66
|
+
attachedAgentRuntimeName: space.attached_agent_runtime_name_s || undefined,
|
|
67
67
|
attachedAgentSpecId: space.attached_agent_spec_id_s || undefined,
|
|
68
68
|
}));
|
|
69
69
|
}, [allSpaces]);
|
|
@@ -89,7 +89,7 @@ export function useProject(uid) {
|
|
|
89
89
|
description: s.description ?? s.description_t ?? '',
|
|
90
90
|
createdAt: s.created_at ? new Date(s.created_at) : new Date(),
|
|
91
91
|
isPublic: s.public ?? s.public_b ?? false,
|
|
92
|
-
|
|
92
|
+
attachedAgentRuntimeName: s.attached_agent_runtime_name_s || undefined,
|
|
93
93
|
attachedAgentSpecId: s.attached_agent_spec_id_s || undefined,
|
|
94
94
|
};
|
|
95
95
|
}, [space]);
|
|
@@ -130,12 +130,12 @@ export function useUpdateProject() {
|
|
|
130
130
|
const { useUpdateSpace } = useCache();
|
|
131
131
|
const updateSpaceMutation = useUpdateSpace();
|
|
132
132
|
/** Assign an agent runtime to the project */
|
|
133
|
-
const assignAgent = useCallback(async (project,
|
|
133
|
+
const assignAgent = useCallback(async (project, agentRuntimeName, agentSpecId) => {
|
|
134
134
|
return updateSpaceMutation.mutateAsync({
|
|
135
135
|
id: project.id,
|
|
136
136
|
name: project.name,
|
|
137
137
|
description: project.description,
|
|
138
|
-
|
|
138
|
+
attached_agent_runtime_name_s: agentRuntimeName,
|
|
139
139
|
attached_agent_spec_id_s: agentSpecId || '',
|
|
140
140
|
});
|
|
141
141
|
}, [updateSpaceMutation]);
|
|
@@ -153,7 +153,7 @@ export function useUpdateProject() {
|
|
|
153
153
|
id: project.id,
|
|
154
154
|
name: project.name,
|
|
155
155
|
description: project.description,
|
|
156
|
-
|
|
156
|
+
attached_agent_runtime_name_s: '',
|
|
157
157
|
attached_agent_spec_id_s: '',
|
|
158
158
|
});
|
|
159
159
|
}, [updateSpaceMutation]);
|
package/lib/hooks/useSkills.d.ts
CHANGED
package/lib/hooks/useSkills.js
CHANGED
|
@@ -96,6 +96,10 @@ export function useSkillActions(agentId) {
|
|
|
96
96
|
return { enableSkill, disableSkill, approveSkill, unapproveSkill };
|
|
97
97
|
}
|
|
98
98
|
// ---------------------------------------------------------------------------
|
|
99
|
-
// Loaded skills
|
|
99
|
+
// Loaded skills
|
|
100
100
|
// ---------------------------------------------------------------------------
|
|
101
|
-
|
|
101
|
+
//
|
|
102
|
+
// Not re-exported here any more. It is a store selector, not a hook this
|
|
103
|
+
// module defines, and forwarding it made `hooks/index.ts` the third link in a
|
|
104
|
+
// re-export chain that webpack could not follow. Import it from `../stores`,
|
|
105
|
+
// or as `useAgentLoadedSkills` from `../hooks`.
|
|
@@ -8,8 +8,8 @@ export type ApprovalRecord = {
|
|
|
8
8
|
id: string;
|
|
9
9
|
agent_id: string;
|
|
10
10
|
agentId: string;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
runtime_name: string;
|
|
12
|
+
runtimeName: string;
|
|
13
13
|
tool_name: string;
|
|
14
14
|
toolName: string;
|
|
15
15
|
tool_call_id?: string;
|
|
@@ -52,10 +52,10 @@ interface DecisionMutationResult extends MutationResult {
|
|
|
52
52
|
/** Live socket state so callers can tailor offline messaging. */
|
|
53
53
|
connectionState: WSConnectionState;
|
|
54
54
|
}
|
|
55
|
-
export declare function useToolApprovalsQuery(filters?: ToolApprovalFilters): import("@tanstack/react-query").UseQueryResult<
|
|
56
|
-
export declare function usePendingApprovalCount(): import("@tanstack/react-query").UseQueryResult<
|
|
55
|
+
export declare function useToolApprovalsQuery(filters?: ToolApprovalFilters): import("@tanstack/react-query").UseQueryResult<ApprovalsQueryData, Error>;
|
|
56
|
+
export declare function usePendingApprovalCount(): import("@tanstack/react-query").UseQueryResult<{
|
|
57
57
|
count: number;
|
|
58
|
-
}
|
|
58
|
+
}, Error>;
|
|
59
59
|
export declare function useApproveToolRequest(): DecisionMutationResult;
|
|
60
60
|
export declare function useRejectToolRequest(): DecisionMutationResult;
|
|
61
61
|
export declare function useMarkToolApprovalRead(): MutationResult;
|
|
@@ -69,10 +69,10 @@ export declare function useMarkToolApprovalUnread(): MutationResult;
|
|
|
69
69
|
*/
|
|
70
70
|
export declare function useDeleteToolApproval(): MutationResult;
|
|
71
71
|
export declare function useToolApprovals(filters?: ToolApprovalFilters): {
|
|
72
|
-
approvalsQuery: import("@tanstack/react-query").UseQueryResult<
|
|
73
|
-
pendingCountQuery: import("@tanstack/react-query").UseQueryResult<
|
|
72
|
+
approvalsQuery: import("@tanstack/react-query").UseQueryResult<ApprovalsQueryData, Error>;
|
|
73
|
+
pendingCountQuery: import("@tanstack/react-query").UseQueryResult<{
|
|
74
74
|
count: number;
|
|
75
|
-
}
|
|
75
|
+
}, Error>;
|
|
76
76
|
approve: DecisionMutationResult;
|
|
77
77
|
reject: DecisionMutationResult;
|
|
78
78
|
markRead: MutationResult;
|
|
@@ -35,7 +35,7 @@ function normalizeApproval(raw) {
|
|
|
35
35
|
if (!id)
|
|
36
36
|
return null;
|
|
37
37
|
const agent = str(rec.agent_id ?? rec.agentId);
|
|
38
|
-
const pod = str(rec.
|
|
38
|
+
const pod = str(rec.runtime_name ?? rec.runtimeName);
|
|
39
39
|
const tool = str(rec.tool_name ?? rec.toolName ?? 'unknown');
|
|
40
40
|
const toolCall = rec.tool_call_id ?? rec.toolCallId;
|
|
41
41
|
const args = rec.tool_args ??
|
|
@@ -58,8 +58,8 @@ function normalizeApproval(raw) {
|
|
|
58
58
|
id,
|
|
59
59
|
agent_id: agent,
|
|
60
60
|
agentId: agent,
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
runtime_name: pod,
|
|
62
|
+
runtimeName: pod,
|
|
63
63
|
tool_name: tool,
|
|
64
64
|
toolName: tool,
|
|
65
65
|
tool_call_id: typeof toolCall === 'string' ? toolCall : undefined,
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentIdentity component - Shows connected identity providers with token status.
|
|
3
|
+
* Displays expiration details and allows reconnection if token expired.
|
|
4
|
+
*
|
|
5
|
+
* @module components/identity/AgentIdentity
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
1
8
|
import type { OAuthProvider, OAuthProviderConfig, Identity } from './types';
|
|
2
9
|
/**
|
|
3
10
|
* Token status information
|
|
@@ -47,7 +54,7 @@ export interface IdentityCardProps {
|
|
|
47
54
|
/**
|
|
48
55
|
* Single identity card with status and actions
|
|
49
56
|
*/
|
|
50
|
-
export declare function IdentityCard({ identity, providerConfig, showExpirationDetails, allowReconnect, onConnect: _onConnect, onDisconnect, onError, }: IdentityCardProps):
|
|
57
|
+
export declare function IdentityCard({ identity, providerConfig, showExpirationDetails, allowReconnect, onConnect: _onConnect, onDisconnect, onError, }: IdentityCardProps): React.JSX.Element;
|
|
51
58
|
/**
|
|
52
59
|
* Props for AgentIdentity component
|
|
53
60
|
*/
|
|
@@ -88,5 +95,5 @@ export interface AgentIdentityProps {
|
|
|
88
95
|
* - Allows reconnection if token expired
|
|
89
96
|
* - Reusable across AgentDetails, AgentConfiguration, etc.
|
|
90
97
|
*/
|
|
91
|
-
export declare function AgentIdentity({ providers, title, showHeader, showDescription, description, showExpirationDetails, allowReconnect, onConnect, onDisconnect, onError, }: AgentIdentityProps):
|
|
98
|
+
export declare function AgentIdentity({ providers, title, showHeader, showDescription, description, showExpirationDetails, allowReconnect, onConnect, onDisconnect, onError, }: AgentIdentityProps): React.JSX.Element | null;
|
|
92
99
|
export default AgentIdentity;
|
package/lib/index.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export * from './stores';
|
|
|
7
7
|
export * from './identity';
|
|
8
8
|
export * from './config';
|
|
9
9
|
export * from './specs';
|
|
10
|
+
export * from './loop';
|
|
10
11
|
export type { AgentRuntimeData, Agentspec, BenchmarkSpec, ChatCommonProps, TeamSpec, GuardrailSpec, EvalSpec, TriggerSpec, OutputSpec, NotificationChannelSpec, MCPServer, SkillSpec, SkillInfo, SkillStatus, EnvvarSpec, ToolCallStartContext, ToolCallCompleteContext, } from './types';
|
package/lib/index.js
CHANGED
|
@@ -11,3 +11,7 @@ export * from './stores';
|
|
|
11
11
|
export * from './identity';
|
|
12
12
|
export * from './config';
|
|
13
13
|
export * from './specs';
|
|
14
|
+
// The LOOP workspace and its plugins, for hosts that embed it: the Datalayer
|
|
15
|
+
// application at /loop, and later the JupyterLab panel. Exported through one
|
|
16
|
+
// surface rather than by deep import (§3.5).
|
|
17
|
+
export * from './loop';
|
package/lib/jupyter/index.d.ts
CHANGED
package/lib/jupyter/index.js
CHANGED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cells that keep running when the page goes away, for the editors of Datalayer.
|
|
3
|
+
*
|
|
4
|
+
* A cell run over the kernel websocket belongs to the page that sent it: close
|
|
5
|
+
* or refresh that page mid-run and the kernel goes on, but every output from
|
|
6
|
+
* that moment on is written to nobody. `jupyter-server-nbmodel` answers this
|
|
7
|
+
* on the server — a cell posted to its REST endpoint runs there, its outputs
|
|
8
|
+
* are kept there, and any page may read them back — and ships a JupyterLab
|
|
9
|
+
* executor and restorer for it. Neither reaches the editors here:
|
|
10
|
+
*
|
|
11
|
+
* - the executor is built once, on the settings of THE Jupyter server of the
|
|
12
|
+
* application. The SaaS has none (it is serverless); the kernel of a
|
|
13
|
+
* notebook lives on a sandbox pod the browser talks to directly, and the
|
|
14
|
+
* REST endpoint it must post to is the pod's;
|
|
15
|
+
* - the restorer walks the notebook tracker of JupyterLab, which never sees a
|
|
16
|
+
* React notebook.
|
|
17
|
+
*
|
|
18
|
+
* So this module does both, per notebook, against the server the notebook's
|
|
19
|
+
* kernel actually runs on: {@link serverExecutorFor} finds out whether that
|
|
20
|
+
* server has the extension and hands back an executor bound to it, and
|
|
21
|
+
* {@link resumeServerExecutions} picks up, after a reload, whatever a
|
|
22
|
+
* previous page left running — from the request recorded in the cell's
|
|
23
|
+
* metadata when there is one, and from the server's own list of active
|
|
24
|
+
* requests when there is not (the metadata is written a moment after the
|
|
25
|
+
* request is accepted, and a refresh can land in between).
|
|
26
|
+
*
|
|
27
|
+
* Both editors that need it — the notebook of a space and the ephemeral
|
|
28
|
+
* notebook beside an agent — keep their cells across a refresh (the one in
|
|
29
|
+
* the collaboration room of the spacer, the other in the persisted model), so
|
|
30
|
+
* the cells are there to resume into.
|
|
31
|
+
*
|
|
32
|
+
* @module jupyter/serverExecution
|
|
33
|
+
*/
|
|
34
|
+
import type { ISessionContext } from '@jupyterlab/apputils';
|
|
35
|
+
import type { INotebookCellExecutor } from '@jupyterlab/notebook';
|
|
36
|
+
import { ServerConnection } from '@jupyterlab/services';
|
|
37
|
+
/**
|
|
38
|
+
* Whether the server at these settings runs cells on the server.
|
|
39
|
+
*
|
|
40
|
+
* Asked once per server and remembered, including the answer "no": the
|
|
41
|
+
* question is asked on the way to running a cell, and a cell must not wait
|
|
42
|
+
* on a round trip every time. A server that could not be reached is not
|
|
43
|
+
* remembered, so a sandbox still starting is asked again next time.
|
|
44
|
+
*/
|
|
45
|
+
export declare function hasServerExecution(settings: ServerConnection.ISettings): Promise<boolean>;
|
|
46
|
+
/**
|
|
47
|
+
* The executor to run a cell of this session through, if its server has one.
|
|
48
|
+
*
|
|
49
|
+
* Bound to the server of the session's KERNEL — the sandbox pod — which is
|
|
50
|
+
* where the REST endpoint lives and where the request is then kept; the
|
|
51
|
+
* executor of the lab extension is bound to the application's own server,
|
|
52
|
+
* which is not that one and, on the SaaS, is not at all.
|
|
53
|
+
*
|
|
54
|
+
* `null` when the session has no kernel yet, or its server does not run
|
|
55
|
+
* cells: the caller then executes over the kernel connection as before.
|
|
56
|
+
*/
|
|
57
|
+
export declare function serverExecutorFor(sessionContext: ISessionContext | undefined): Promise<INotebookCellExecutor | null>;
|
|
58
|
+
/** A notebook widget, as much of it as the sweep reads. */
|
|
59
|
+
export interface ISweepableNotebook {
|
|
60
|
+
content: {
|
|
61
|
+
widgets: readonly unknown[];
|
|
62
|
+
};
|
|
63
|
+
sessionContext?: ISessionContext;
|
|
64
|
+
isDisposed?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Resume, once, the server executions of the cells of this notebook.
|
|
68
|
+
*
|
|
69
|
+
* @param panel The notebook panel of the editor
|
|
70
|
+
* @param settings The server the executions were posted to — the one of the
|
|
71
|
+
* notebook's kernel
|
|
72
|
+
* @returns how many requests were taken up in this pass
|
|
73
|
+
*/
|
|
74
|
+
export declare function resumeServerExecutions(panel: ISweepableNotebook): Promise<number>;
|
|
75
|
+
/**
|
|
76
|
+
* Forget what was asked and resumed — for tests, which build servers anew.
|
|
77
|
+
*/
|
|
78
|
+
export declare function resetServerExecutionState(): void;
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { CodeCell } from '@jupyterlab/cells';
|
|
6
|
+
import { URLExt } from '@jupyterlab/coreutils';
|
|
7
|
+
import { ServerConnection } from '@jupyterlab/services';
|
|
8
|
+
import { getServerExecutionMetadata, isClientOwnedExecution, setServerExecutionMetadata, } from '@datalayer/jupyter-server-nbmodel/lib/executionMetadata';
|
|
9
|
+
import { NotebookCellServerExecutor, resumeCellServerExecution, } from '@datalayer/jupyter-server-nbmodel/lib/executor';
|
|
10
|
+
/**
|
|
11
|
+
* The route `jupyter-server-nbmodel` answers on.
|
|
12
|
+
*
|
|
13
|
+
* It reports the executions the server holds for a kernel, and it answers
|
|
14
|
+
* for any identifier — the nil one included, so no kernel has to exist to
|
|
15
|
+
* learn whether the extension is installed. A server without it says 404.
|
|
16
|
+
*/
|
|
17
|
+
const NBMODEL_PROBE = 'api/kernels/00000000-0000-0000-0000-000000000000/execute';
|
|
18
|
+
/** What a server said when asked, by the address it was asked at. */
|
|
19
|
+
const installed = new Map();
|
|
20
|
+
/**
|
|
21
|
+
* Whether the server at these settings runs cells on the server.
|
|
22
|
+
*
|
|
23
|
+
* Asked once per server and remembered, including the answer "no": the
|
|
24
|
+
* question is asked on the way to running a cell, and a cell must not wait
|
|
25
|
+
* on a round trip every time. A server that could not be reached is not
|
|
26
|
+
* remembered, so a sandbox still starting is asked again next time.
|
|
27
|
+
*/
|
|
28
|
+
export function hasServerExecution(settings) {
|
|
29
|
+
const key = settings.baseUrl;
|
|
30
|
+
const known = installed.get(key);
|
|
31
|
+
if (known) {
|
|
32
|
+
return known;
|
|
33
|
+
}
|
|
34
|
+
const asked = ServerConnection.makeRequest(URLExt.join(settings.baseUrl, NBMODEL_PROBE), { method: 'GET' }, settings)
|
|
35
|
+
.then(response => response.ok)
|
|
36
|
+
.catch(reason => {
|
|
37
|
+
installed.delete(key);
|
|
38
|
+
console.warn(`[agent-runtimes] Could not ask ${settings.baseUrl} whether it runs cells on the server.`, reason);
|
|
39
|
+
return false;
|
|
40
|
+
});
|
|
41
|
+
installed.set(key, asked);
|
|
42
|
+
return asked;
|
|
43
|
+
}
|
|
44
|
+
/** The executors built so far, one per server and credential. */
|
|
45
|
+
const executors = new Map();
|
|
46
|
+
/**
|
|
47
|
+
* The executor to run a cell of this session through, if its server has one.
|
|
48
|
+
*
|
|
49
|
+
* Bound to the server of the session's KERNEL — the sandbox pod — which is
|
|
50
|
+
* where the REST endpoint lives and where the request is then kept; the
|
|
51
|
+
* executor of the lab extension is bound to the application's own server,
|
|
52
|
+
* which is not that one and, on the SaaS, is not at all.
|
|
53
|
+
*
|
|
54
|
+
* `null` when the session has no kernel yet, or its server does not run
|
|
55
|
+
* cells: the caller then executes over the kernel connection as before.
|
|
56
|
+
*/
|
|
57
|
+
export async function serverExecutorFor(sessionContext) {
|
|
58
|
+
const settings = sessionContext?.session?.kernel?.serverSettings;
|
|
59
|
+
if (!settings?.baseUrl) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
if (!(await hasServerExecution(settings))) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
// The token is part of the key: a sandbox restarted with a new one must
|
|
66
|
+
// not be posted to with the old.
|
|
67
|
+
const key = `${settings.baseUrl}#${settings.token}`;
|
|
68
|
+
let executor = executors.get(key);
|
|
69
|
+
if (!executor) {
|
|
70
|
+
executor = new NotebookCellServerExecutor({ serverSettings: settings });
|
|
71
|
+
executors.set(key, executor);
|
|
72
|
+
}
|
|
73
|
+
return executor;
|
|
74
|
+
}
|
|
75
|
+
/** The requests already picked up, so two sweeps never poll one twice. */
|
|
76
|
+
const resumed = new Set();
|
|
77
|
+
/**
|
|
78
|
+
* The absolute address of a recorded request, on the server that holds it.
|
|
79
|
+
*
|
|
80
|
+
* The server names the request by a path relative to its own base, and that
|
|
81
|
+
* is what the cell remembers; joined here to the base of the server being
|
|
82
|
+
* asked. An address recorded in full is kept when it already names that
|
|
83
|
+
* server, and reduced to its path otherwise — a pod reached through an
|
|
84
|
+
* ingress, or the same pod under another hostname, still holds the request
|
|
85
|
+
* at the same path.
|
|
86
|
+
*/
|
|
87
|
+
function requestUrlOn(recorded, settings) {
|
|
88
|
+
if (recorded.startsWith(settings.baseUrl)) {
|
|
89
|
+
return recorded;
|
|
90
|
+
}
|
|
91
|
+
const path = recorded.startsWith('http')
|
|
92
|
+
? new URL(recorded).pathname
|
|
93
|
+
: recorded;
|
|
94
|
+
return URLExt.join(settings.baseUrl, path);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Resume, into this cell, a request a previous page left running.
|
|
98
|
+
*
|
|
99
|
+
* @returns whether a request was taken up
|
|
100
|
+
*/
|
|
101
|
+
function resumeCell(cell, settings) {
|
|
102
|
+
// A request this page started is polled by the executor that started it;
|
|
103
|
+
// polling it here as well would race it for the same result.
|
|
104
|
+
if (isClientOwnedExecution(cell)) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
const execution = getServerExecutionMetadata(cell);
|
|
108
|
+
if (!execution || resumed.has(execution.requestId)) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
/*
|
|
112
|
+
* A cell that is still here when the answers arrive.
|
|
113
|
+
*
|
|
114
|
+
* The notebook rebuilds its cells when its sandbox binds — the services
|
|
115
|
+
* change under it and the model is made again — so a widget picked up a
|
|
116
|
+
* moment earlier is disposed by the time the first response lands, and
|
|
117
|
+
* writing to it throws on a model that is null.
|
|
118
|
+
*/
|
|
119
|
+
if (cell.isDisposed || !cell.model) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
resumed.add(execution.requestId);
|
|
123
|
+
const requestUrl = requestUrlOn(execution.requestUrl, settings);
|
|
124
|
+
console.info('[agent-runtimes] Resuming a server execution', {
|
|
125
|
+
cellId: cell.model.sharedModel.getId(),
|
|
126
|
+
requestId: execution.requestId,
|
|
127
|
+
requestUrl,
|
|
128
|
+
});
|
|
129
|
+
void resumeCellServerExecution(cell, requestUrl, settings).catch(reason => {
|
|
130
|
+
if (cell.isDisposed) {
|
|
131
|
+
// The cell went away under the poll — the notebook was rebuilt. Let a
|
|
132
|
+
// later sweep pick the request up with the new widget.
|
|
133
|
+
resumed.delete(execution.requestId);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
/*
|
|
137
|
+
* Kept in `resumed`, not released.
|
|
138
|
+
*
|
|
139
|
+
* Releasing it on failure meant the next sweep tried again a second
|
|
140
|
+
* later, and the one after that: a request the server does not have
|
|
141
|
+
* produced a failing call every second for as long as the sweep ran. A
|
|
142
|
+
* request is attempted once.
|
|
143
|
+
*/
|
|
144
|
+
console.warn(`[agent-runtimes] Failed to resume the execution ${execution.requestId}.`, reason);
|
|
145
|
+
});
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
/** The servers already asked for their active executions, by kernel. */
|
|
149
|
+
const discovered = new Set();
|
|
150
|
+
/**
|
|
151
|
+
* Ask the server which of this kernel's executions are still running, and
|
|
152
|
+
* give the cells that started them their request back.
|
|
153
|
+
*
|
|
154
|
+
* The metadata a cell carries is written once the server has accepted the
|
|
155
|
+
* request — a page refreshed in that instant, or whose persisted model
|
|
156
|
+
* missed the write, has a running cell with nothing to resume from. The
|
|
157
|
+
* server knows: it lists its active requests with the cell each was for.
|
|
158
|
+
*/
|
|
159
|
+
async function discoverActiveExecutions(cells, kernel, settings) {
|
|
160
|
+
const key = `${settings.baseUrl}#${kernel.id}`;
|
|
161
|
+
if (discovered.has(key)) {
|
|
162
|
+
return 0;
|
|
163
|
+
}
|
|
164
|
+
const response = await ServerConnection.makeRequest(URLExt.join(settings.baseUrl, `api/kernels/${kernel.id}/execute`), { method: 'GET' }, settings);
|
|
165
|
+
if (response.status === 404) {
|
|
166
|
+
// This server does not offer server-side execution at all — a JupyterLite
|
|
167
|
+
// kernel in the page, or a plain Jupyter server without the agent-runtimes
|
|
168
|
+
// extension. That is a permanent answer, not a hiccup, so it is recorded
|
|
169
|
+
// like a successful discovery: asking again on every sweep would fill the
|
|
170
|
+
// console with a failure that is really just a feature this server lacks.
|
|
171
|
+
discovered.add(key);
|
|
172
|
+
return 0;
|
|
173
|
+
}
|
|
174
|
+
if (!response.ok) {
|
|
175
|
+
// Not marked discovered: a server briefly unreachable, or one still
|
|
176
|
+
// starting, is asked again by the next sweep rather than never.
|
|
177
|
+
//
|
|
178
|
+
// `ResponseError.create` reads the body to build its message, and throws a
|
|
179
|
+
// `SyntaxError` of its own when there is no body — which replaces the
|
|
180
|
+
// status the caller needed with a parse error from the error path. The
|
|
181
|
+
// status is the useful part, so it survives either way.
|
|
182
|
+
throw await ServerConnection.ResponseError.create(response).catch(() => new Error(`Invalid response: ${response.status} ${response.statusText}`.trim()));
|
|
183
|
+
}
|
|
184
|
+
discovered.add(key);
|
|
185
|
+
const payload = (await response.json());
|
|
186
|
+
let restored = 0;
|
|
187
|
+
for (const execution of payload.requests ?? []) {
|
|
188
|
+
if (!execution.cell_id || resumed.has(execution.request_id)) {
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
const cell = cells.find(candidate => candidate.model?.sharedModel.getId() === execution.cell_id);
|
|
192
|
+
if (!cell || cell.isDisposed || getServerExecutionMetadata(cell)) {
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
setServerExecutionMetadata(cell, {
|
|
196
|
+
kernelId: execution.kernel_id,
|
|
197
|
+
requestId: execution.request_id,
|
|
198
|
+
requestUrl: execution.request_url,
|
|
199
|
+
});
|
|
200
|
+
restored += 1;
|
|
201
|
+
}
|
|
202
|
+
return restored;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Resume, once, the server executions of the cells of this notebook.
|
|
206
|
+
*
|
|
207
|
+
* @param panel The notebook panel of the editor
|
|
208
|
+
* @param settings The server the executions were posted to — the one of the
|
|
209
|
+
* notebook's kernel
|
|
210
|
+
* @returns how many requests were taken up in this pass
|
|
211
|
+
*/
|
|
212
|
+
export async function resumeServerExecutions(panel) {
|
|
213
|
+
if (panel.isDisposed) {
|
|
214
|
+
return 0;
|
|
215
|
+
}
|
|
216
|
+
/*
|
|
217
|
+
* The kernel is the gate, and its server is the address.
|
|
218
|
+
*
|
|
219
|
+
* A request lives on the server of the kernel that runs it — the sandbox
|
|
220
|
+
* pod — and is read back from there. An editor that has not bound its
|
|
221
|
+
* sandbox yet stands on a placeholder service manager pointing at the
|
|
222
|
+
* application's own origin; a sweep that polled THAT would ask the wrong
|
|
223
|
+
* server, get a 404, and — because a request is attempted once — never
|
|
224
|
+
* ask the right one. So nothing is swept until the kernel is here, and
|
|
225
|
+
* everything is asked of the kernel's own server.
|
|
226
|
+
*/
|
|
227
|
+
const kernel = panel.sessionContext?.session?.kernel;
|
|
228
|
+
const settings = kernel?.serverSettings;
|
|
229
|
+
if (!kernel || !settings) {
|
|
230
|
+
return 0;
|
|
231
|
+
}
|
|
232
|
+
const cells = panel.content.widgets.filter((widget) => widget instanceof CodeCell);
|
|
233
|
+
if (cells.length === 0) {
|
|
234
|
+
return 0;
|
|
235
|
+
}
|
|
236
|
+
try {
|
|
237
|
+
await discoverActiveExecutions(cells, kernel, settings);
|
|
238
|
+
}
|
|
239
|
+
catch (reason) {
|
|
240
|
+
console.warn('[agent-runtimes] Failed to discover the active executions of the kernel.', reason);
|
|
241
|
+
}
|
|
242
|
+
let taken = 0;
|
|
243
|
+
for (const cell of cells) {
|
|
244
|
+
if (resumeCell(cell, settings)) {
|
|
245
|
+
taken += 1;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return taken;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Forget what was asked and resumed — for tests, which build servers anew.
|
|
252
|
+
*/
|
|
253
|
+
export function resetServerExecutionState() {
|
|
254
|
+
installed.clear();
|
|
255
|
+
executors.clear();
|
|
256
|
+
resumed.clear();
|
|
257
|
+
discovered.clear();
|
|
258
|
+
}
|