@datalayer/agent-runtimes 1.0.28 → 1.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AgentDocument.js +5 -22
- package/lib/AgentNode.d.ts +1 -1
- package/lib/AgentNode.js +193 -23
- package/lib/AgentNotebook.js +1 -1
- package/lib/App.d.ts +1 -1
- package/lib/AppExamples2.d.ts +1 -1
- package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
- package/lib/agent-node/AgentNodeGallery.js +19 -15
- package/lib/agent-node/themeStore.js +7 -6
- package/lib/agents/AgentDetails.d.ts +8 -2
- package/lib/agents/AgentDetails.js +41 -11
- package/lib/agents/AgentRuntimeChat.d.ts +3 -3
- package/lib/agents/AgentRuntimeChat.js +15 -15
- package/lib/api/agents.d.ts +10 -10
- package/lib/api/agents.js +15 -15
- package/lib/api/checkpoints.d.ts +40 -0
- package/lib/api/checkpoints.js +75 -0
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +18 -5
- package/lib/api/notifications.d.ts +21 -6
- package/lib/api/notifications.js +32 -14
- package/lib/api/runtimes/environments.d.ts +385 -4
- package/lib/api/runtimes/environments.js +610 -9
- package/lib/api/runtimes/runtimes.d.ts +19 -19
- package/lib/api/runtimes/runtimes.js +47 -46
- package/lib/api/spacer/notebooks.js +1 -1
- package/lib/chat/Chat.d.ts +16 -4
- package/lib/chat/Chat.js +18 -5
- package/lib/chat/ChatFloating.d.ts +13 -2
- package/lib/chat/ChatFloating.js +192 -117
- package/lib/chat/ChatInline.d.ts +15 -0
- package/lib/chat/ChatInline.js +0 -18
- package/lib/chat/ChatPopupStandalone.d.ts +1 -1
- package/lib/chat/ChatSidebar.d.ts +14 -2
- package/lib/chat/ChatSidebar.js +1 -1
- package/lib/chat/ChatStandalone.d.ts +1 -1
- package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
- package/lib/chat/EphemeralSurfaceControl.js +55 -0
- package/lib/chat/base/ChatAvailability.d.ts +34 -0
- package/lib/chat/base/ChatAvailability.js +18 -0
- package/lib/chat/base/ChatBase.d.ts +2 -1
- package/lib/chat/base/ChatBase.js +657 -28
- package/lib/chat/display/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +78 -12
- package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
- package/lib/chat/display/PoweredByTag.d.ts +1 -1
- package/lib/chat/display/groupSuggestions.d.ts +21 -0
- package/lib/chat/display/groupSuggestions.js +18 -0
- package/lib/chat/document/EphemeralDocument.d.ts +70 -6
- package/lib/chat/document/EphemeralDocument.js +154 -52
- package/lib/chat/header/ChatHeader.d.ts +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
- package/lib/chat/header/ChatHeaderBase.js +67 -96
- package/lib/chat/index.d.ts +4 -1
- package/lib/chat/index.js +8 -1
- package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +22 -1
- package/lib/chat/messages/ChatMessageList.js +370 -166
- package/lib/chat/messages/ChatMessages.d.ts +1 -1
- package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
- package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
- package/lib/chat/messages/TurnFooter.d.ts +42 -0
- package/lib/chat/messages/TurnFooter.js +75 -0
- package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
- package/lib/chat/messages/assistantMarkdown.js +56 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
- package/lib/chat/notebook/EphemeralNotebook.js +194 -61
- package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
- package/lib/chat/parts/MessagePart.d.ts +1 -1
- package/lib/chat/parts/ReasoningPart.d.ts +8 -1
- package/lib/chat/parts/TextPart.d.ts +1 -1
- package/lib/chat/parts/ToolPart.d.ts +8 -1
- package/lib/chat/prompt/FloatingCard.d.ts +26 -0
- package/lib/chat/prompt/FloatingCard.js +80 -0
- package/lib/chat/prompt/InputPrompt.d.ts +206 -53
- package/lib/chat/prompt/InputPrompt.js +161 -80
- package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
- package/lib/chat/prompt/InputPromptBase.js +225 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
- package/lib/chat/prompt/InputPromptLexical.js +227 -30
- package/lib/chat/prompt/InputPromptText.d.ts +10 -2
- package/lib/chat/prompt/InputPromptText.js +35 -3
- package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
- package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
- package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
- package/lib/chat/prompt/footer/index.d.ts +7 -0
- package/lib/chat/prompt/footer/index.js +11 -0
- package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
- package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
- package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
- package/lib/chat/prompt/header/InPromptHeader.js +14 -0
- package/lib/chat/prompt/header/index.d.ts +7 -0
- package/lib/chat/prompt/header/index.js +11 -0
- package/lib/chat/prompt/index.d.ts +8 -4
- package/lib/chat/prompt/index.js +15 -3
- package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
- package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
- package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
- package/lib/chat/prompt/menus/ModelSelector.js +27 -0
- package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
- package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
- package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
- package/lib/chat/prompt/menus/index.d.ts +15 -0
- package/lib/chat/prompt/menus/index.js +19 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
- package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
- package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
- package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
- package/lib/chat/prompt/plugins/MentionChip.js +24 -0
- package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
- package/lib/chat/prompt/plugins/MentionNode.js +77 -0
- package/lib/chat/prompt/promptHistory.d.ts +52 -0
- package/lib/chat/prompt/promptHistory.js +123 -0
- package/lib/chat/prompt/stack.d.ts +81 -0
- package/lib/chat/prompt/stack.js +41 -0
- package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
- package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
- package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
- package/lib/chat/tools/A2AAgentDialog.js +265 -0
- package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
- package/lib/chat/tools/index.d.ts +1 -0
- package/lib/chat/tools/index.js +1 -0
- package/lib/chat/usage/ContextPie.d.ts +17 -0
- package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
- package/lib/chat/useViewportDrag.d.ts +11 -0
- package/lib/chat/useViewportDrag.js +61 -0
- package/lib/chat/viewModes.d.ts +51 -0
- package/lib/chat/viewModes.js +57 -0
- package/lib/client/AgentRuntimesClient.d.ts +10 -9
- package/lib/client/AgentRuntimesClient.js +1 -1
- package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
- package/lib/client/AgentsMixin.d.ts +12 -12
- package/lib/client/AgentsMixin.js +31 -31
- package/lib/client/IAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.js +10 -10
- package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
- package/lib/client/mixins/RuntimesMixin.js +54 -21
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
- package/lib/components/agents/AgentSummary.d.ts +13 -0
- package/lib/components/agents/AgentSummary.js +21 -4
- package/lib/components/cards/NotificationEventCard.d.ts +1 -1
- package/lib/components/cards/OutputCard.d.ts +1 -1
- package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
- package/lib/components/cards/ToolApprovalCard.js +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +76 -0
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +81 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +12 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +132 -25
- package/lib/components/code-sandboxes/CodeSandboxNames.js +75 -29
- package/lib/components/code-sandboxes/CodeSandboxPicker.d.ts +14 -1
- package/lib/components/code-sandboxes/CodeSandboxPicker.js +226 -45
- 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 +16 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.js +69 -12
- package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
- package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
- package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
- package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.d.ts +29 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.js +90 -0
- package/lib/components/code-sandboxes/index.d.ts +3 -0
- package/lib/components/code-sandboxes/index.js +3 -0
- package/lib/components/context/SpaceSelect.d.ts +1 -1
- package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
- package/lib/components/icons/ArtifactIcon.d.ts +1 -0
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.d.ts +1 -0
- package/lib/components/progress/CreditsIndicator.js +0 -4
- package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
- package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
- package/lib/components/snippets/SnippetDialog.d.ts +1 -0
- package/lib/components/snippets/SnippetDialog.js +0 -4
- package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
- package/lib/components/specs/SpecPayloadPreview.js +102 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/context/ContextDistribution.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +2 -1
- package/lib/context/ContextPanel.d.ts +1 -1
- package/lib/context/ContextUsage.d.ts +1 -1
- package/lib/context/CostTracker.d.ts +1 -1
- package/lib/context/CostUsageChart.d.ts +1 -1
- package/lib/context/CostUsageChart.js +4 -4
- package/lib/context/MessageHistory.d.ts +3 -2
- package/lib/context/TokenUsageChart.d.ts +1 -1
- package/lib/context/TokenUsageChart.js +4 -4
- package/lib/examples/A2UiAgentExample.js +15 -6
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
- package/lib/examples/A2UiContactCardExample.d.ts +10 -0
- package/lib/examples/A2UiContactCardExample.js +23 -170
- package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
- package/lib/examples/A2UiJupyterOutputExample.js +792 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
- package/lib/examples/A2UiRestaurantExample.js +24 -179
- package/lib/examples/A2UiViewerExample.d.ts +10 -0
- package/lib/examples/A2UiViewerExample.js +24 -378
- package/lib/examples/AgUiAgenticExample.js +2 -4
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
- package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
- package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
- package/lib/examples/AgUiSharedStateExample.js +2 -4
- package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
- package/lib/examples/AgentA2AExample.d.ts +17 -0
- package/lib/examples/AgentA2AExample.js +56 -0
- package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
- package/lib/examples/AgentCheckpointsExample.js +72 -54
- package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
- package/lib/examples/AgentCodeSandboxExample.js +93 -303
- package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
- package/lib/examples/AgentCodeSandboxesExample.js +56 -162
- package/lib/examples/AgentCodemodeExample.d.ts +7 -2
- package/lib/examples/AgentCodemodeExample.js +60 -125
- package/lib/examples/AgentCompactionExample.js +19 -135
- package/lib/examples/AgentEvalsExample.js +34 -66
- package/lib/examples/AgentGuardrailsExample.js +64 -112
- package/lib/examples/AgentHooksExample.d.ts +11 -0
- package/lib/examples/AgentHooksExample.js +30 -67
- package/lib/examples/AgentInferenceProviderExample.js +8 -32
- package/lib/examples/AgentLoopExample.d.ts +4 -2
- package/lib/examples/AgentLoopExample.js +45 -93
- package/lib/examples/AgentMCPExample.js +30 -79
- package/lib/examples/AgentMemoryExample.js +21 -64
- package/lib/examples/AgentMonitoringExample.js +33 -94
- package/lib/examples/AgentNotificationsExample.js +56 -95
- package/lib/examples/AgentOtelExample.js +35 -88
- package/lib/examples/AgentOutputsExample.d.ts +2 -1
- package/lib/examples/AgentOutputsExample.js +16 -137
- package/lib/examples/AgentParametersExample.js +7 -17
- package/lib/examples/AgentSkillsExample.js +40 -154
- package/lib/examples/AgentSubagentsExample.d.ts +7 -6
- package/lib/examples/AgentSubagentsExample.js +80 -191
- package/lib/examples/AgentToolApprovalsExample.js +35 -91
- package/lib/examples/AgentTriggersExample.js +43 -59
- package/lib/examples/AgentspecsExample.js +7 -7
- 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/identity/index.d.ts +1 -1
- package/lib/identity/index.js +1 -1
- package/lib/identity/types.d.ts +1 -1
- package/lib/identity/types.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/jupyter/index.d.ts +2 -1
- package/lib/jupyter/index.js +2 -1
- package/lib/jupyter/serverExecution.d.ts +78 -0
- package/lib/jupyter/serverExecution.js +258 -0
- package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
- package/lib/jupyter/useResumeServerExecutions.js +64 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
- package/lib/lexical/ChatInlinePlugin.js +0 -36
- package/lib/loop/core/focusRequests.d.ts +10 -0
- package/lib/loop/core/focusRequests.js +46 -0
- package/lib/loop/core/index.d.ts +894 -0
- package/lib/loop/core/index.js +264 -0
- package/lib/loop/core/promptStore.d.ts +44 -0
- package/lib/loop/core/promptStore.js +63 -0
- package/lib/loop/core/surfaceRequests.d.ts +33 -0
- package/lib/loop/core/surfaceRequests.js +29 -0
- package/lib/loop/core/toolbar.d.ts +28 -0
- package/lib/loop/core/toolbar.js +59 -0
- package/lib/loop/embed/LoopEmbed.d.ts +57 -0
- package/lib/loop/embed/LoopEmbed.js +118 -0
- package/lib/loop/extensions.d.ts +10 -0
- package/lib/loop/extensions.js +49 -0
- package/lib/loop/index.d.ts +68 -0
- package/lib/loop/index.js +87 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
- package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
- package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
- package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
- package/lib/loop/plugins/a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/a2ui/index.js +50 -0
- package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
- package/lib/loop/plugins/a2ui-scene/index.js +28 -0
- package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2a/index.js +26 -0
- package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui/index.js +42 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
- package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
- package/lib/loop/plugins/agent-capacity/index.js +52 -0
- package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
- package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
- package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
- package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
- package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
- package/lib/loop/plugins/agent-codemode/index.js +41 -0
- package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
- package/lib/loop/plugins/agent-compaction/index.js +34 -0
- package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
- package/lib/loop/plugins/agent-evals/index.js +25 -0
- package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
- package/lib/loop/plugins/agent-guardrails/index.js +25 -0
- package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
- package/lib/loop/plugins/agent-hooks/index.js +28 -0
- package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
- package/lib/loop/plugins/agent-inference/index.js +29 -0
- package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
- package/lib/loop/plugins/agent-mcp/index.js +25 -0
- package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
- package/lib/loop/plugins/agent-memory/index.js +25 -0
- package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
- package/lib/loop/plugins/agent-monitoring/index.js +25 -0
- package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
- package/lib/loop/plugins/agent-notifications/index.js +25 -0
- package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
- package/lib/loop/plugins/agent-otel/index.js +25 -0
- package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
- package/lib/loop/plugins/agent-outputs/index.js +25 -0
- package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
- package/lib/loop/plugins/agent-parameters/index.js +25 -0
- package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
- package/lib/loop/plugins/agent-skills/index.js +25 -0
- package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
- package/lib/loop/plugins/agent-subagents/index.js +25 -0
- package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
- package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
- package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
- package/lib/loop/plugins/agent-triggers/index.js +26 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
- package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
- package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
- package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
- package/lib/loop/plugins/agents/SandboxView.js +43 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
- package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
- package/lib/loop/plugins/agents/agentIcons.js +88 -0
- package/lib/loop/plugins/agents/browserService.d.ts +50 -0
- package/lib/loop/plugins/agents/browserService.js +233 -0
- package/lib/loop/plugins/agents/index.d.ts +13 -0
- package/lib/loop/plugins/agents/index.js +17 -0
- package/lib/loop/plugins/agents/plugin.d.ts +91 -0
- package/lib/loop/plugins/agents/plugin.js +201 -0
- package/lib/loop/plugins/agents/service.d.ts +99 -0
- package/lib/loop/plugins/agents/service.js +167 -0
- package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
- package/lib/loop/plugins/agents/specSubagents.js +33 -0
- package/lib/loop/plugins/agents/switchable.d.ts +107 -0
- package/lib/loop/plugins/agents/switchable.js +405 -0
- package/lib/loop/plugins/agents/team.d.ts +87 -0
- package/lib/loop/plugins/agents/team.js +143 -0
- package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
- package/lib/loop/plugins/agents/useSandboxService.js +36 -0
- package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
- package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
- package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
- package/lib/loop/plugins/agentspecs/index.js +63 -0
- package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
- package/lib/loop/plugins/chat/ChatView.js +1670 -0
- package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
- package/lib/loop/plugins/chat/chatViewTools.js +92 -0
- package/lib/loop/plugins/chat/index.d.ts +111 -0
- package/lib/loop/plugins/chat/index.js +143 -0
- package/lib/loop/plugins/chat/turnState.d.ts +41 -0
- package/lib/loop/plugins/chat/turnState.js +90 -0
- package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
- package/lib/loop/plugins/chat-extras/index.js +51 -0
- package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
- package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
- package/lib/loop/plugins/chat-header/index.d.ts +3 -0
- package/lib/loop/plugins/chat-header/index.js +21 -0
- package/lib/loop/plugins/chat-view/index.d.ts +10 -0
- package/lib/loop/plugins/chat-view/index.js +29 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
- package/lib/loop/plugins/commands/index.d.ts +20 -0
- package/lib/loop/plugins/commands/index.js +148 -0
- package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
- package/lib/loop/plugins/decks/DeckSurface.js +6 -0
- package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
- package/lib/loop/plugins/decks/DecksMenu.js +42 -0
- package/lib/loop/plugins/decks/index.d.ts +19 -0
- package/lib/loop/plugins/decks/index.js +133 -0
- package/lib/loop/plugins/decks/surface.d.ts +7 -0
- package/lib/loop/plugins/decks/surface.js +11 -0
- package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
- package/lib/loop/plugins/document/DocumentView.js +68 -0
- package/lib/loop/plugins/document/index.d.ts +3 -0
- package/lib/loop/plugins/document/index.js +86 -0
- package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
- package/lib/loop/plugins/document/openingDocument.js +122 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
- package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/document-toolbar/index.js +35 -0
- package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
- package/lib/loop/plugins/document-toolbar/names.js +10 -0
- package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
- package/lib/loop/plugins/document-view/index.d.ts +10 -0
- package/lib/loop/plugins/document-view/index.js +28 -0
- package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
- package/lib/loop/plugins/graph/GraphToggle.js +22 -0
- package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
- package/lib/loop/plugins/graph/GraphView.js +6 -0
- package/lib/loop/plugins/graph/index.d.ts +5 -0
- package/lib/loop/plugins/graph/index.js +80 -0
- package/lib/loop/plugins/graph/viewType.d.ts +10 -0
- package/lib/loop/plugins/graph/viewType.js +14 -0
- package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
- package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
- package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
- package/lib/loop/plugins/input-prompt/index.js +26 -0
- package/lib/loop/plugins/models/index.d.ts +3 -0
- package/lib/loop/plugins/models/index.js +49 -0
- package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
- package/lib/loop/plugins/notebook/NotebookView.js +189 -0
- package/lib/loop/plugins/notebook/index.d.ts +3 -0
- package/lib/loop/plugins/notebook/index.js +91 -0
- package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
- package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
- package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
- package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
- package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
- package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
- package/lib/loop/plugins/notebook-view/index.js +30 -0
- package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
- package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
- package/lib/loop/plugins/page-layout/index.d.ts +35 -0
- package/lib/loop/plugins/page-layout/index.js +80 -0
- package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
- package/lib/loop/plugins/plugins-panel/index.js +74 -0
- package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
- package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
- package/lib/loop/plugins/prompt/index.d.ts +11 -0
- package/lib/loop/plugins/prompt/index.js +73 -0
- package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
- package/lib/loop/plugins/shell/editorChoice.js +58 -0
- package/lib/loop/plugins/shell/index.d.ts +47 -0
- package/lib/loop/plugins/shell/index.js +142 -0
- package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
- package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
- package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
- package/lib/loop/plugins/subagent-activity/index.js +42 -0
- package/lib/loop/plugins/view-switch/index.d.ts +46 -0
- package/lib/loop/plugins/view-switch/index.js +68 -0
- package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
- package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
- package/lib/loop/plugins/window-frame/index.d.ts +6 -0
- package/lib/loop/plugins/window-frame/index.js +79 -0
- package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
- package/lib/loop/plugins/window-frame/slots.js +30 -0
- package/lib/loop/presets.d.ts +167 -0
- package/lib/loop/presets.js +139 -0
- package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
- package/lib/loop/shell/LoopWorkspace.js +231 -0
- package/lib/loop/shell/PluginToggles.d.ts +21 -0
- package/lib/loop/shell/PluginToggles.js +41 -0
- package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
- package/lib/loop/shell/ViewSwitcher.js +43 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
- package/lib/loop/shell/index.d.ts +10 -0
- package/lib/loop/shell/index.js +14 -0
- package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
- package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
- package/lib/loop-example-main.d.ts +1 -0
- package/lib/loop-example-main.js +42 -0
- package/lib/loop-main.d.ts +1 -0
- package/lib/loop-main.js +138 -0
- package/lib/mcp/McpServerManager.d.ts +1 -1
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
- package/lib/models/CodeSandboxVariant.d.ts +53 -0
- package/lib/models/CodeSandboxVariant.js +77 -0
- package/lib/models/Content.d.ts +26 -0
- package/lib/models/Environment.d.ts +561 -5
- package/lib/models/Environment.js +12 -1
- package/lib/models/EnvironmentDTO.d.ts +24 -6
- package/lib/models/EnvironmentDTO.js +13 -2
- package/lib/models/Exercise.d.ts +0 -2
- package/lib/models/Library.d.ts +0 -2
- package/lib/models/Notebook.d.ts +0 -2
- package/lib/models/ProjectDTO.d.ts +2 -2
- package/lib/models/ProjectDTO.js +4 -4
- package/lib/models/Runtime.d.ts +11 -11
- package/lib/models/RuntimeDTO.d.ts +16 -7
- package/lib/models/RuntimeDTO.js +9 -9
- package/lib/models/Space.d.ts +10 -0
- package/lib/models/Space.js +1 -1
- package/lib/models/SpaceDTO.d.ts +1 -1
- package/lib/models/SpaceItem.d.ts +1 -2
- package/lib/models/environments.generated.d.ts +113 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +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 +117 -0
- package/lib/protocols/BrowserAgentAdapter.js +310 -0
- package/lib/protocols/VercelAIAdapter.d.ts +10 -0
- package/lib/protocols/VercelAIAdapter.js +27 -7
- package/lib/protocols/index.d.ts +1 -0
- package/lib/protocols/index.js +1 -0
- package/lib/runtimes/actions.d.ts +3 -3
- package/lib/runtimes/actions.js +41 -16
- package/lib/runtimes/apis.d.ts +13 -4
- package/lib/runtimes/browser/agent.d.ts +54 -0
- package/lib/runtimes/browser/agent.js +63 -0
- package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
- package/lib/runtimes/browser/anonymousToken.js +300 -0
- package/lib/runtimes/browser/frontendTools.d.ts +61 -0
- package/lib/runtimes/browser/frontendTools.js +152 -0
- package/lib/runtimes/browser/index.d.ts +11 -0
- package/lib/runtimes/browser/index.js +20 -0
- package/lib/runtimes/browser/model.d.ts +52 -0
- package/lib/runtimes/browser/model.js +110 -0
- package/lib/runtimes/browser/protocol.d.ts +54 -0
- package/lib/runtimes/browser/protocol.js +35 -0
- package/lib/runtimes/browser/subagents.d.ts +131 -0
- package/lib/runtimes/browser/subagents.js +241 -0
- package/lib/runtimes/index.d.ts +3 -0
- package/lib/runtimes/index.js +3 -0
- package/lib/runtimes/lifecycle.d.ts +76 -0
- package/lib/runtimes/lifecycle.js +99 -0
- package/lib/runtimes/variants.d.ts +172 -0
- package/lib/runtimes/variants.js +187 -0
- package/lib/services/reconnectToRuntime.d.ts +2 -2
- package/lib/services/reconnectToRuntime.js +3 -3
- package/lib/services/sandboxServiceManagers.d.ts +2 -2
- package/lib/services/sandboxServiceManagers.js +11 -11
- package/lib/specs/agents/agents.d.ts +128 -112
- package/lib/specs/agents/agents.js +8024 -5052
- package/lib/specs/envvars.d.ts +1 -1
- package/lib/specs/envvars.js +3 -3
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +3 -0
- package/lib/specs/frontendTools.js +46 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +27 -4
- package/lib/specs/models.d.ts +18 -0
- package/lib/specs/models.js +154 -0
- package/lib/specs/outputs.d.ts +2 -0
- package/lib/specs/outputs.js +22 -0
- package/lib/specs/personas.js +1 -1
- package/lib/specs/teams/teams.d.ts +2 -0
- package/lib/specs/teams/teams.js +628 -111
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -1
- package/lib/state/substates/RuntimesState.d.ts +5 -5
- package/lib/state/substates/RuntimesState.js +17 -14
- package/lib/state/substates/index.d.ts +1 -1
- package/lib/state/substates/index.js +1 -1
- package/lib/stores/agentRuntimeStore.d.ts +43 -1
- package/lib/stores/agentRuntimeStore.js +100 -11
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/stories/Button.d.ts +1 -1
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +1 -1
- package/lib/test-setup.js +66 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
- package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
- package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
- package/lib/tools/adapters/commands/index.d.ts +1 -0
- package/lib/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/types/a2a.d.ts +15 -1
- package/lib/types/agents-lifecycle.d.ts +11 -6
- package/lib/types/agents.d.ts +31 -6
- package/lib/types/agentspecs.d.ts +120 -4
- package/lib/types/chat.d.ts +251 -3
- package/lib/types/checkpoints.d.ts +20 -0
- package/lib/types/config.d.ts +13 -1
- package/lib/types/connection.d.ts +1 -1
- package/lib/types/evals.d.ts +2 -0
- package/lib/types/messages.d.ts +60 -0
- package/lib/types/models.d.ts +26 -0
- package/lib/types/notifications.d.ts +15 -6
- package/lib/types/protocol.d.ts +7 -2
- package/lib/types/stream.d.ts +48 -3
- package/lib/types/stream.js +5 -0
- package/lib/types/teams.d.ts +102 -4
- package/lib/types/tool-approvals.d.ts +1 -1
- package/lib/types/tools.d.ts +8 -2
- package/lib/utils/utils.js +7 -1
- package/package.json +376 -361
- package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/compose.py +208 -0
- package/scripts/codegen/generate_agents.py +202 -31
- package/scripts/codegen/generate_evals.py +2 -0
- package/scripts/codegen/generate_frontend_tools.py +35 -6
- package/scripts/codegen/generate_models.py +40 -15
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- package/scripts/codegen/generate_teams.py +178 -4
- package/scripts/codegen/generate_tools.py +6 -4
- package/scripts/gen_workers.py +279 -111
- 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/state/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './substates';
|
|
2
2
|
export * from '@datalayer/core/lib/state/storage';
|
|
3
3
|
export * from '@datalayer/core/lib/state/State';
|
|
4
|
-
export { coreStore, useCoreStore, iamStore, useIAMStore, RESERVATION_WARNING_TIME_MS, layoutStore, useLayoutStore, organizationStore, useOrganizationStore, surveysStore, useSurveysStore, teamStore, useTeamStore,
|
|
4
|
+
export { coreStore, useCoreStore, iamStore, useIAMStore, RESERVATION_WARNING_TIME_MS, layoutStore, useLayoutStore, organizationStore, useOrganizationStore, surveysStore, useSurveysStore, teamStore, useTeamStore, runStore, useRunStore, DATALAYER_IAM_TOKEN_KEY, DATALAYER_IAM_USER_KEY, } from '@datalayer/core/lib/state';
|
package/lib/state/index.js
CHANGED
|
@@ -7,4 +7,4 @@ export * from './substates';
|
|
|
7
7
|
// Re-export core state modules and stores that remain owned by core.
|
|
8
8
|
export * from '@datalayer/core/lib/state/storage';
|
|
9
9
|
export * from '@datalayer/core/lib/state/State';
|
|
10
|
-
export { coreStore, useCoreStore, iamStore, useIAMStore, RESERVATION_WARNING_TIME_MS, layoutStore, useLayoutStore, organizationStore, useOrganizationStore, surveysStore, useSurveysStore, teamStore, useTeamStore,
|
|
10
|
+
export { coreStore, useCoreStore, iamStore, useIAMStore, RESERVATION_WARNING_TIME_MS, layoutStore, useLayoutStore, organizationStore, useOrganizationStore, surveysStore, useSurveysStore, teamStore, useTeamStore, runStore, useRunStore, DATALAYER_IAM_TOKEN_KEY, DATALAYER_IAM_USER_KEY, } from '@datalayer/core/lib/state';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IMultiServiceManager } from '../../runtimes';
|
|
2
2
|
import type { IRuntimesConfiguration } from '@datalayer/core/lib/config';
|
|
3
|
-
import type {
|
|
3
|
+
import type { IRuntimeRecord, ICodeSandboxSnapshot, IRuntimeModel } from '../../models';
|
|
4
4
|
/**
|
|
5
5
|
* Datalayer Runtimes state.
|
|
6
6
|
*/
|
|
@@ -20,19 +20,19 @@ export type RuntimesState = {
|
|
|
20
20
|
/**
|
|
21
21
|
* Runtime pods.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
runtimes: IRuntimeRecord[];
|
|
24
24
|
/**
|
|
25
25
|
* Refresh the runtime pods.
|
|
26
26
|
*/
|
|
27
|
-
|
|
27
|
+
refreshRuntimes: () => Promise<void>;
|
|
28
28
|
/**
|
|
29
29
|
* Remove a runtime pod from the local state by its pod name.
|
|
30
30
|
*
|
|
31
31
|
* Used to prune a pod immediately after it is deleted, without waiting for
|
|
32
|
-
* the next `
|
|
32
|
+
* the next `refreshRuntimes()` poll tick. This lets the remote service
|
|
33
33
|
* managers dispose right away and stop polling the (now dead) pod ingress.
|
|
34
34
|
*/
|
|
35
|
-
|
|
35
|
+
removeRuntime: (runtimeName: string) => void;
|
|
36
36
|
/**
|
|
37
37
|
* Cached runtime models.
|
|
38
38
|
*/
|
|
@@ -30,28 +30,28 @@ export const runtimesStore = createStore((set, get) => {
|
|
|
30
30
|
/**
|
|
31
31
|
* Remote runtime pods.
|
|
32
32
|
*/
|
|
33
|
-
|
|
33
|
+
runtimes: [],
|
|
34
34
|
/**
|
|
35
35
|
* Refresh the runtime pods.
|
|
36
36
|
*/
|
|
37
|
-
|
|
37
|
+
refreshRuntimes: async () => {
|
|
38
38
|
const servers = await getRuntimes();
|
|
39
39
|
// Update the state with the Remote Kernels.
|
|
40
|
-
if (!JSONExt.deepEqual(get().
|
|
41
|
-
set({
|
|
40
|
+
if (!JSONExt.deepEqual(get().runtimes, servers)) {
|
|
41
|
+
set({ runtimes: [...servers] });
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
/**
|
|
45
45
|
* Remove a runtime pod by its pod name.
|
|
46
46
|
*/
|
|
47
|
-
|
|
48
|
-
if (!
|
|
47
|
+
removeRuntime: (runtimeName) => {
|
|
48
|
+
if (!runtimeName) {
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
|
-
const current = get().
|
|
52
|
-
const next = current.filter(pod => pod.
|
|
51
|
+
const current = get().runtimes;
|
|
52
|
+
const next = current.filter(pod => pod.runtime_name !== runtimeName);
|
|
53
53
|
if (next.length !== current.length) {
|
|
54
|
-
set({
|
|
54
|
+
set({ runtimes: next });
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
/**
|
|
@@ -65,7 +65,7 @@ export const runtimesStore = createStore((set, get) => {
|
|
|
65
65
|
const kernels = get().runtimeModels;
|
|
66
66
|
// Identity check: a runtime may not have a kernel `id` yet (it appears
|
|
67
67
|
// only once a kernel is attached), so fall back to the stable pod `uid`.
|
|
68
|
-
// See the IRuntimeModel /
|
|
68
|
+
// See the IRuntimeModel / IRuntimeRecord / Kernel.IModel docs in models/Runtime.ts.
|
|
69
69
|
const index = kernels.findIndex(m => (model.id && model.id === m.id) ||
|
|
70
70
|
(!!model.uid && model.uid === m.uid));
|
|
71
71
|
if (index < 0) {
|
|
@@ -77,7 +77,10 @@ export const runtimesStore = createStore((set, get) => {
|
|
|
77
77
|
*/
|
|
78
78
|
removeRuntimeModel: (id) => {
|
|
79
79
|
const kernels = [...get().runtimeModels];
|
|
80
|
-
|
|
80
|
+
// By the kernel it runs, or by the pod it is: a sandbox of an external
|
|
81
|
+
// provider has no kernel, so its pod name is the only name it answers
|
|
82
|
+
// to — matched on the kernel alone it was never removed from the list.
|
|
83
|
+
const index = kernels?.findIndex(model => (!!model.id && id === model.id) || id === model.runtime_name) ?? -1;
|
|
81
84
|
if (index >= 0) {
|
|
82
85
|
kernels.splice(index, 1);
|
|
83
86
|
set({ runtimeModels: kernels });
|
|
@@ -147,7 +150,7 @@ export const runtimesStore = createStore((set, get) => {
|
|
|
147
150
|
// Poll remote kernels
|
|
148
151
|
const kernelsPoll = new Poll({
|
|
149
152
|
auto: true,
|
|
150
|
-
factory: () => runtimesStore.getState().
|
|
153
|
+
factory: () => runtimesStore.getState().refreshRuntimes(),
|
|
151
154
|
frequency: {
|
|
152
155
|
interval: 61 * 1000,
|
|
153
156
|
backoff: true,
|
|
@@ -160,9 +163,9 @@ const kernelsPoll = new Poll({
|
|
|
160
163
|
});
|
|
161
164
|
// Force refresh at expiration date if next tick is after it.
|
|
162
165
|
runtimesStore.subscribe((state, prevState) => {
|
|
163
|
-
if (!JSONExt.deepEqual(state.
|
|
166
|
+
if (!JSONExt.deepEqual(state.runtimes, prevState.runtimes)) {
|
|
164
167
|
const now = Date.now();
|
|
165
|
-
const minExpiredAt = Math.min(...state.
|
|
168
|
+
const minExpiredAt = Math.min(...state.runtimes.map(kernel => kernel.expired_at ? parseFloat(kernel.expired_at) : Infinity)) * 1_000;
|
|
166
169
|
// Refresh 2 sec after the closest expiration time
|
|
167
170
|
// to let some times to the system to dispose the resources.
|
|
168
171
|
if (now + kernelsPoll.frequency.interval > minExpiredAt + 2_000) {
|
|
@@ -5,4 +5,4 @@ export * from './NbformatState';
|
|
|
5
5
|
export * from './RuntimesState';
|
|
6
6
|
export * from './JupyterLabState';
|
|
7
7
|
export * from './SpaceState';
|
|
8
|
-
export { coreStore, useCoreStore, iamStore, useIAMStore, layoutStore, useLayoutStore, organizationStore, useOrganizationStore, surveysStore, useSurveysStore, teamStore, useTeamStore,
|
|
8
|
+
export { coreStore, useCoreStore, iamStore, useIAMStore, layoutStore, useLayoutStore, organizationStore, useOrganizationStore, surveysStore, useSurveysStore, teamStore, useTeamStore, runStore, useRunStore, DATALAYER_IAM_TOKEN_KEY, DATALAYER_IAM_USER_KEY, } from '@datalayer/core/lib/state';
|
|
@@ -11,4 +11,4 @@ export * from './RuntimesState';
|
|
|
11
11
|
export * from './JupyterLabState';
|
|
12
12
|
export * from './SpaceState';
|
|
13
13
|
// Re-export the identity/plans/layout state that stays in core.
|
|
14
|
-
export { coreStore, useCoreStore, iamStore, useIAMStore, layoutStore, useLayoutStore, organizationStore, useOrganizationStore, surveysStore, useSurveysStore, teamStore, useTeamStore,
|
|
14
|
+
export { coreStore, useCoreStore, iamStore, useIAMStore, layoutStore, useLayoutStore, organizationStore, useOrganizationStore, surveysStore, useSurveysStore, teamStore, useTeamStore, runStore, useRunStore, DATALAYER_IAM_TOKEN_KEY, DATALAYER_IAM_USER_KEY, } from '@datalayer/core/lib/state';
|
|
@@ -7,6 +7,14 @@ import type { ContextSnapshotData } from '../types/context';
|
|
|
7
7
|
import type { McpToolsetsStatusResponse } from '../types/mcp';
|
|
8
8
|
import type { LoadedSkillInfo } from '../types/skills';
|
|
9
9
|
import type { EphemeralSurfaceMode } from '../types/chat';
|
|
10
|
+
/** A subagent run is over once its events carry an `end` or an `error`. */
|
|
11
|
+
export declare function isSubagentRunOver(events: readonly AgentStreamSubagentPayload[]): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The subagents with a run still going, by name and in the order their runs
|
|
14
|
+
* were opened — what a roster badges as running. A name appears once however
|
|
15
|
+
* many of its runs are open.
|
|
16
|
+
*/
|
|
17
|
+
export declare function runningSubagentNames(activity: Record<string, readonly AgentStreamSubagentPayload[]>): string[];
|
|
10
18
|
/**
|
|
11
19
|
* A URL-addressable agent that has been previously connected.
|
|
12
20
|
* May originate from an agent runtime pod OR from the stable agents service.
|
|
@@ -70,6 +78,22 @@ export interface AgentRuntimeStoreState {
|
|
|
70
78
|
mcpStatus: McpToolsetsStatusResponse | null;
|
|
71
79
|
codemodeStatus: CodemodeStatusData | null;
|
|
72
80
|
fullContext: Record<string, unknown> | null;
|
|
81
|
+
/**
|
|
82
|
+
* Bumped when the transcript changed on the server outside a run — a
|
|
83
|
+
* rewind to a checkpoint, a restore — so the chat reloads what it shows.
|
|
84
|
+
*/
|
|
85
|
+
historyVersion: number;
|
|
86
|
+
/**
|
|
87
|
+
* A decision on a held tool call made outside the chat — a host page's own
|
|
88
|
+
* approval banner. The chat picks it up and answers the run with it, the
|
|
89
|
+
* way its own card would; `seq` tells one request from the next.
|
|
90
|
+
*/
|
|
91
|
+
toolDecisionRequest: {
|
|
92
|
+
seq: number;
|
|
93
|
+
approvalId: string;
|
|
94
|
+
approved: boolean;
|
|
95
|
+
toolName?: string;
|
|
96
|
+
} | null;
|
|
73
97
|
monitoringCache: Record<string, MonitoringCacheEntry>;
|
|
74
98
|
loadedSkillsByAgentId: Record<string, LoadedSkillInfo[]>;
|
|
75
99
|
ephemeralNotebookModels: Record<string, INotebookContent>;
|
|
@@ -111,7 +135,7 @@ export interface AgentRuntimeStoreActions {
|
|
|
111
135
|
getEditorMode: (runtimeId: string) => EphemeralSurfaceMode | null;
|
|
112
136
|
launchAgent: (options: LaunchAgentOptions) => Promise<AgentConnection>;
|
|
113
137
|
connectAgent: (connection: {
|
|
114
|
-
|
|
138
|
+
runtimeName: string;
|
|
115
139
|
environmentName: string;
|
|
116
140
|
serviceManager?: ServiceManager.IManager;
|
|
117
141
|
jupyterBaseUrl?: string;
|
|
@@ -126,6 +150,16 @@ export interface AgentRuntimeStoreActions {
|
|
|
126
150
|
applySnapshot: (payload: AgentStreamSnapshotPayload) => void;
|
|
127
151
|
appendSubagentEvent: (event: AgentStreamSubagentPayload) => void;
|
|
128
152
|
clearSubagentActivity: () => void;
|
|
153
|
+
/** Mark every delegation still running as stopped, as the person just did. */
|
|
154
|
+
stopSubagentActivity: () => void;
|
|
155
|
+
/** Ask the chat to reload its transcript from the server's next snapshot. */
|
|
156
|
+
requestHistoryReload: () => void;
|
|
157
|
+
/** Decide a held tool call from outside the chat: approve or deny it. */
|
|
158
|
+
requestToolDecision: (decision: {
|
|
159
|
+
approvalId: string;
|
|
160
|
+
approved: boolean;
|
|
161
|
+
toolName?: string;
|
|
162
|
+
}) => void;
|
|
129
163
|
setCompaction: (payload: AgentStreamCompactionPayload | null) => void;
|
|
130
164
|
upsertApproval: (approval: AgentStreamToolApprovalPayload) => void;
|
|
131
165
|
removeApproval: (approvalId: string) => void;
|
|
@@ -250,6 +284,14 @@ export declare const useAgentRuntimeSubagentActivityByToolCall: (toolCallId?: st
|
|
|
250
284
|
* several are active the most recently started one wins.
|
|
251
285
|
*/
|
|
252
286
|
export declare const useAgentRuntimeActiveSubagentToolCallId: () => string | null;
|
|
287
|
+
/**
|
|
288
|
+
* Names of the subagents with a run still going, for a roster to badge.
|
|
289
|
+
* Compared element by element, so a store update that changes nothing about
|
|
290
|
+
* who is running does not re-render the roster.
|
|
291
|
+
*/
|
|
292
|
+
export declare const useAgentRuntimeRunningSubagentNames: () => string[];
|
|
293
|
+
/** Bumped each time the chat is asked to reload its transcript. */
|
|
294
|
+
export declare const useAgentRuntimeHistoryVersion: () => number;
|
|
253
295
|
/** Latest history-compaction activity for the connected agent. */
|
|
254
296
|
export declare const useAgentRuntimeCompaction: () => AgentStreamCompactionPayload | null;
|
|
255
297
|
export declare const getAgentRuntimeState: () => AgentRuntimeStore;
|
|
@@ -21,7 +21,28 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import { createStore } from 'zustand/vanilla';
|
|
23
23
|
import { useStore } from 'zustand';
|
|
24
|
+
import { useShallow } from 'zustand/react/shallow';
|
|
24
25
|
import { persist, createJSONStorage, subscribeWithSelector, } from 'zustand/middleware';
|
|
26
|
+
import { SUBAGENT_STOPPED } from '../types/stream';
|
|
27
|
+
/** A subagent run is over once its events carry an `end` or an `error`. */
|
|
28
|
+
export function isSubagentRunOver(events) {
|
|
29
|
+
return events.some(event => event.phase === 'end' || event.phase === 'error');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The subagents with a run still going, by name and in the order their runs
|
|
33
|
+
* were opened — what a roster badges as running. A name appears once however
|
|
34
|
+
* many of its runs are open.
|
|
35
|
+
*/
|
|
36
|
+
export function runningSubagentNames(activity) {
|
|
37
|
+
const names = [];
|
|
38
|
+
for (const events of Object.values(activity)) {
|
|
39
|
+
const name = events[0]?.subagentName;
|
|
40
|
+
if (!name || names.includes(name) || isSubagentRunOver(events))
|
|
41
|
+
continue;
|
|
42
|
+
names.push(name);
|
|
43
|
+
}
|
|
44
|
+
return names;
|
|
45
|
+
}
|
|
25
46
|
export function getMonitoringCacheKey(serviceName, agentId) {
|
|
26
47
|
return `${serviceName || '__unknown_service__'}::${agentId || '__unknown_agent__'}`;
|
|
27
48
|
}
|
|
@@ -41,7 +62,24 @@ function getTransportEndpoint(baseUrl, transport, agentId) {
|
|
|
41
62
|
return `${baseUrl}/api/v1/ag-ui/${agentId}/`;
|
|
42
63
|
}
|
|
43
64
|
}
|
|
65
|
+
function toAgentRuntimeBaseUrl(baseUrl) {
|
|
66
|
+
const normalized = baseUrl.replace(/\/$/, '');
|
|
67
|
+
if (normalized.includes('/api/agent-runtimes'))
|
|
68
|
+
return normalized;
|
|
69
|
+
if (normalized.includes('/api/jupyter-server')) {
|
|
70
|
+
return normalized.replace('/api/jupyter-server', '/api/agent-runtimes');
|
|
71
|
+
}
|
|
72
|
+
if (normalized.includes('/jupyter/server/')) {
|
|
73
|
+
return normalized.replace('/jupyter/server/', '/agent-runtimes/');
|
|
74
|
+
}
|
|
75
|
+
if (normalized.includes('/jupyter-server/')) {
|
|
76
|
+
return normalized.replace('/jupyter-server/', '/agent-runtimes/');
|
|
77
|
+
}
|
|
78
|
+
return normalized.replace('/jupyter/', '/agent-runtimes/');
|
|
79
|
+
}
|
|
44
80
|
async function createAgentOnRuntime(agentBaseUrl, agentId, config = {}) {
|
|
81
|
+
const { iamStore } = await import('@datalayer/core/lib/state');
|
|
82
|
+
const token = iamStore.getState().token || '';
|
|
45
83
|
if (!config.protocol && !config.agentSpecId) {
|
|
46
84
|
throw new Error('Agent protocol is required. Provide config.protocol from the selected spec/config.');
|
|
47
85
|
}
|
|
@@ -83,7 +121,10 @@ async function createAgentOnRuntime(agentBaseUrl, agentId, config = {}) {
|
|
|
83
121
|
}
|
|
84
122
|
const response = await fetch(`${agentBaseUrl}/api/v1/agents`, {
|
|
85
123
|
method: 'POST',
|
|
86
|
-
headers: {
|
|
124
|
+
headers: {
|
|
125
|
+
'Content-Type': 'application/json',
|
|
126
|
+
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
127
|
+
},
|
|
87
128
|
body: JSON.stringify(payload),
|
|
88
129
|
});
|
|
89
130
|
if (response.ok || response.status === 400 || response.status === 409) {
|
|
@@ -101,6 +142,8 @@ const initialRuntimeState = {
|
|
|
101
142
|
status: 'idle',
|
|
102
143
|
error: null,
|
|
103
144
|
isLaunching: false,
|
|
145
|
+
historyVersion: 0,
|
|
146
|
+
toolDecisionRequest: null,
|
|
104
147
|
};
|
|
105
148
|
const initialWsState = {
|
|
106
149
|
wsState: 'closed',
|
|
@@ -295,10 +338,10 @@ export const agentRuntimeStore = createStore()(subscribeWithSelector(persist((se
|
|
|
295
338
|
if (!baseUrl) {
|
|
296
339
|
throw new Error('connectAgent requires either jupyterBaseUrl or serviceManager');
|
|
297
340
|
}
|
|
298
|
-
const agentBaseUrl = baseUrl
|
|
341
|
+
const agentBaseUrl = toAgentRuntimeBaseUrl(baseUrl);
|
|
299
342
|
set({
|
|
300
343
|
runtime: {
|
|
301
|
-
|
|
344
|
+
runtimeName: connection.runtimeName,
|
|
302
345
|
environmentName: connection.environmentName,
|
|
303
346
|
jupyterBaseUrl: baseUrl,
|
|
304
347
|
agentBaseUrl,
|
|
@@ -321,7 +364,7 @@ export const agentRuntimeStore = createStore()(subscribeWithSelector(persist((se
|
|
|
321
364
|
});
|
|
322
365
|
}
|
|
323
366
|
const { runtimesUrl: _runtimesUrl, ...runtimeOptions } = config;
|
|
324
|
-
const
|
|
367
|
+
const runtimeRecord = await createRuntime({
|
|
325
368
|
environmentName: runtimeOptions.environmentName,
|
|
326
369
|
creditsLimit: runtimeOptions.creditsLimit,
|
|
327
370
|
type: runtimeOptions.type || 'notebook',
|
|
@@ -330,11 +373,11 @@ export const agentRuntimeStore = createStore()(subscribeWithSelector(persist((se
|
|
|
330
373
|
snapshot: runtimeOptions.snapshot,
|
|
331
374
|
});
|
|
332
375
|
set({ status: 'connecting' });
|
|
333
|
-
const jupyterBaseUrl =
|
|
334
|
-
const agentBaseUrl = jupyterBaseUrl
|
|
376
|
+
const jupyterBaseUrl = runtimeRecord.ingress;
|
|
377
|
+
const agentBaseUrl = toAgentRuntimeBaseUrl(jupyterBaseUrl);
|
|
335
378
|
const conn = {
|
|
336
|
-
|
|
337
|
-
environmentName:
|
|
379
|
+
runtimeName: runtimeRecord.runtime_name,
|
|
380
|
+
environmentName: runtimeRecord.environment.name,
|
|
338
381
|
jupyterBaseUrl,
|
|
339
382
|
agentBaseUrl,
|
|
340
383
|
status: 'ready',
|
|
@@ -354,7 +397,7 @@ export const agentRuntimeStore = createStore()(subscribeWithSelector(persist((se
|
|
|
354
397
|
throw new Error('No runtime connected. Launch or connect to a runtime first.');
|
|
355
398
|
}
|
|
356
399
|
try {
|
|
357
|
-
const agentId = config.name || runtime.
|
|
400
|
+
const agentId = config.name || runtime.runtimeName;
|
|
358
401
|
const agentConnection = await createAgentOnRuntime(runtime.agentBaseUrl, agentId, config);
|
|
359
402
|
set({
|
|
360
403
|
runtime: {
|
|
@@ -405,6 +448,12 @@ export const agentRuntimeStore = createStore()(subscribeWithSelector(persist((se
|
|
|
405
448
|
appendSubagentEvent: event => set(state => {
|
|
406
449
|
const key = event.toolCallId ?? event.subagentName;
|
|
407
450
|
const existing = state.subagentActivity[key] ?? [];
|
|
451
|
+
// A run the person stopped is over. The server's last words —
|
|
452
|
+
// a delta in flight, its own "Stopped." — arrive a moment later
|
|
453
|
+
// and would read as a second ending under the first.
|
|
454
|
+
if (existing.some(entry => entry.phase === 'error' && entry.error === SUBAGENT_STOPPED)) {
|
|
455
|
+
return {};
|
|
456
|
+
}
|
|
408
457
|
return {
|
|
409
458
|
subagentActivity: {
|
|
410
459
|
...state.subagentActivity,
|
|
@@ -413,6 +462,35 @@ export const agentRuntimeStore = createStore()(subscribeWithSelector(persist((se
|
|
|
413
462
|
};
|
|
414
463
|
}),
|
|
415
464
|
clearSubagentActivity: () => set({ subagentActivity: {} }),
|
|
465
|
+
stopSubagentActivity: () => set(state => {
|
|
466
|
+
let changed = false;
|
|
467
|
+
const next = {};
|
|
468
|
+
for (const [key, events] of Object.entries(state.subagentActivity)) {
|
|
469
|
+
if (events.length === 0 || isSubagentRunOver(events)) {
|
|
470
|
+
next[key] = events;
|
|
471
|
+
continue;
|
|
472
|
+
}
|
|
473
|
+
changed = true;
|
|
474
|
+
next[key] = [
|
|
475
|
+
...events,
|
|
476
|
+
{
|
|
477
|
+
subagentName: events[0].subagentName,
|
|
478
|
+
toolCallId: events[0].toolCallId ?? key,
|
|
479
|
+
phase: 'error',
|
|
480
|
+
error: SUBAGENT_STOPPED,
|
|
481
|
+
transport: events[0].transport,
|
|
482
|
+
},
|
|
483
|
+
];
|
|
484
|
+
}
|
|
485
|
+
return changed ? { subagentActivity: next } : {};
|
|
486
|
+
}),
|
|
487
|
+
requestHistoryReload: () => set(state => ({ historyVersion: state.historyVersion + 1 })),
|
|
488
|
+
requestToolDecision: decision => set(state => ({
|
|
489
|
+
toolDecisionRequest: {
|
|
490
|
+
seq: (state.toolDecisionRequest?.seq ?? 0) + 1,
|
|
491
|
+
...decision,
|
|
492
|
+
},
|
|
493
|
+
})),
|
|
416
494
|
setCompaction: payload => set({ compaction: payload }),
|
|
417
495
|
upsertApproval: approval => set(state => {
|
|
418
496
|
const filtered = state.approvals.filter(a => a.id !== approval.id);
|
|
@@ -700,6 +778,10 @@ export const agentRuntimeStore = createStore()(subscribeWithSelector(persist((se
|
|
|
700
778
|
ephemeralNotebookModels: state.ephemeralNotebookModels,
|
|
701
779
|
ephemeralDocumentModels: state.ephemeralDocumentModels,
|
|
702
780
|
editorModeByRuntime: state.editorModeByRuntime,
|
|
781
|
+
// And the delegations already streamed: they are part of the
|
|
782
|
+
// transcript — the boxes under the tool cards — not of the socket
|
|
783
|
+
// session, and a reconnect used to blank every one of them.
|
|
784
|
+
subagentActivity: state.subagentActivity,
|
|
703
785
|
}));
|
|
704
786
|
},
|
|
705
787
|
}), {
|
|
@@ -794,12 +876,19 @@ export const useAgentRuntimeActiveSubagentToolCallId = () => useAgentRuntimeStor
|
|
|
794
876
|
for (const [key, events] of Object.entries(s.subagentActivity)) {
|
|
795
877
|
if (events.length === 0)
|
|
796
878
|
continue;
|
|
797
|
-
|
|
798
|
-
if (!done)
|
|
879
|
+
if (!isSubagentRunOver(events))
|
|
799
880
|
activeKey = key;
|
|
800
881
|
}
|
|
801
882
|
return activeKey;
|
|
802
883
|
});
|
|
884
|
+
/**
|
|
885
|
+
* Names of the subagents with a run still going, for a roster to badge.
|
|
886
|
+
* Compared element by element, so a store update that changes nothing about
|
|
887
|
+
* who is running does not re-render the roster.
|
|
888
|
+
*/
|
|
889
|
+
export const useAgentRuntimeRunningSubagentNames = () => useAgentRuntimeStore(useShallow(s => runningSubagentNames(s.subagentActivity)));
|
|
890
|
+
/** Bumped each time the chat is asked to reload its transcript. */
|
|
891
|
+
export const useAgentRuntimeHistoryVersion = () => useAgentRuntimeStore(s => s.historyVersion);
|
|
803
892
|
/** Latest history-compaction activity for the connected agent. */
|
|
804
893
|
export const useAgentRuntimeCompaction = () => useAgentRuntimeStore(s => s.compaction);
|
|
805
894
|
// ---------------------------------------------------------------------------
|
package/lib/stores/index.d.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module store
|
|
5
5
|
*/
|
|
6
|
-
export { agentRuntimeStore, useAgentRuntimeStore, useAgentRuntimeConnection, useAgentRuntimeStatus, useAgentRuntimeError, useAgentRuntimeIsLaunching, useAgentRuntimeApprovals, useAgentRuntimePendingCount, useAgentRuntimeMcpStatus, useAgentRuntimeFullContext, useAgentRuntimeContextSnapshot, useAgentRuntimeCostUsage, useAgentRuntimeCodemodeStatus, useAgentRuntimeWsState, useAgentRuntimeLoadedSkills, useAgentRuntimeActiveSubagentToolCallId, useAgentRuntimeSubagentActivity, useAgentRuntimeSubagentActivityByToolCall, useAgentRuntimeCompaction, getAgentRuntimeState, subscribeToAgentRuntime, type AgentRegistryEntry, type AgentRuntimeWsState, type AgentRuntimeStoreState, type AgentRuntimeStoreActions, type AgentRuntimeStore, } from './agentRuntimeStore';
|
|
6
|
+
export { agentRuntimeStore, useAgentRuntimeStore, useAgentRuntimeConnection, useAgentRuntimeStatus, useAgentRuntimeError, useAgentRuntimeIsLaunching, useAgentRuntimeApprovals, useAgentRuntimePendingCount, useAgentRuntimeMcpStatus, useAgentRuntimeFullContext, useAgentRuntimeContextSnapshot, useAgentRuntimeCostUsage, useAgentRuntimeCodemodeStatus, useAgentRuntimeWsState, useAgentRuntimeLoadedSkills, useAgentRuntimeActiveSubagentToolCallId, useAgentRuntimeRunningSubagentNames, runningSubagentNames, isSubagentRunOver, useAgentRuntimeSubagentActivity, useAgentRuntimeSubagentActivityByToolCall, useAgentRuntimeCompaction, useAgentRuntimeHistoryVersion, getAgentRuntimeState, subscribeToAgentRuntime, type AgentRegistryEntry, type AgentRuntimeWsState, type AgentRuntimeStoreState, type AgentRuntimeStoreActions, type AgentRuntimeStore, } from './agentRuntimeStore';
|
|
7
7
|
export { useChatStore, useChatMessages, useChatLoading, useChatStreaming, useChatError, useChatTools, useChatOpen, useChatConfig, useChatReady, useChatInferenceProvider, useChatExtensionRegistry, defaultChatConfig, type ChatStore, type ChatState, type ChatActions, type ChatConfig, type ToolCallState, } from './chatStore';
|
|
8
8
|
export { useConversationStore, useConversationMessages, useNeedsFetch, useIsFetching, type ConversationStore, type ConversationData, } from './conversationStore';
|
package/lib/stores/index.js
CHANGED
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module store
|
|
9
9
|
*/
|
|
10
|
-
export { agentRuntimeStore, useAgentRuntimeStore, useAgentRuntimeConnection, useAgentRuntimeStatus, useAgentRuntimeError, useAgentRuntimeIsLaunching, useAgentRuntimeApprovals, useAgentRuntimePendingCount, useAgentRuntimeMcpStatus, useAgentRuntimeFullContext, useAgentRuntimeContextSnapshot, useAgentRuntimeCostUsage, useAgentRuntimeCodemodeStatus, useAgentRuntimeWsState, useAgentRuntimeLoadedSkills, useAgentRuntimeActiveSubagentToolCallId, useAgentRuntimeSubagentActivity, useAgentRuntimeSubagentActivityByToolCall, useAgentRuntimeCompaction, getAgentRuntimeState, subscribeToAgentRuntime, } from './agentRuntimeStore';
|
|
10
|
+
export { agentRuntimeStore, useAgentRuntimeStore, useAgentRuntimeConnection, useAgentRuntimeStatus, useAgentRuntimeError, useAgentRuntimeIsLaunching, useAgentRuntimeApprovals, useAgentRuntimePendingCount, useAgentRuntimeMcpStatus, useAgentRuntimeFullContext, useAgentRuntimeContextSnapshot, useAgentRuntimeCostUsage, useAgentRuntimeCodemodeStatus, useAgentRuntimeWsState, useAgentRuntimeLoadedSkills, useAgentRuntimeActiveSubagentToolCallId, useAgentRuntimeRunningSubagentNames, runningSubagentNames, isSubagentRunOver, useAgentRuntimeSubagentActivity, useAgentRuntimeSubagentActivityByToolCall, useAgentRuntimeCompaction, useAgentRuntimeHistoryVersion, getAgentRuntimeState, subscribeToAgentRuntime, } from './agentRuntimeStore';
|
|
11
11
|
export { useChatStore, useChatMessages, useChatLoading, useChatStreaming, useChatError, useChatTools, useChatOpen, useChatConfig, useChatReady, useChatInferenceProvider, useChatExtensionRegistry, defaultChatConfig, } from './chatStore';
|
|
12
12
|
export { useConversationStore, useConversationMessages, useNeedsFetch, useIsFetching, } from './conversationStore';
|
package/lib/stories/Button.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export interface ButtonProps {
|
|
|
12
12
|
onClick?: () => void;
|
|
13
13
|
}
|
|
14
14
|
/** Primary UI component for user interaction */
|
|
15
|
-
export declare const Button: ({ primary, size, backgroundColor, label, ...props }: ButtonProps) => import("react
|
|
15
|
+
export declare const Button: ({ primary, size, backgroundColor, label, ...props }: ButtonProps) => import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { StoryObj } from '@storybook/react-vite';
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: ({ primary, size, backgroundColor, label, ...props }: import("./Button").ButtonProps) => import("react
|
|
4
|
+
component: ({ primary, size, backgroundColor, label, ...props }: import("./Button").ButtonProps) => import("react").JSX.Element;
|
|
5
5
|
parameters: {
|
|
6
6
|
layout: string;
|
|
7
7
|
};
|
package/lib/stories/Header.d.ts
CHANGED
|
@@ -8,5 +8,5 @@ export interface HeaderProps {
|
|
|
8
8
|
onLogout?: () => void;
|
|
9
9
|
onCreateAccount?: () => void;
|
|
10
10
|
}
|
|
11
|
-
export declare const Header: ({ user, onLogin, onLogout, onCreateAccount, }: HeaderProps) => import("react
|
|
11
|
+
export declare const Header: ({ user, onLogin, onLogout, onCreateAccount, }: HeaderProps) => import("react").JSX.Element;
|
|
12
12
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { StoryObj } from '@storybook/react-vite';
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: ({ user, onLogin, onLogout, onCreateAccount, }: import("./Header").HeaderProps) => import("react
|
|
4
|
+
component: ({ user, onLogin, onLogout, onCreateAccount, }: import("./Header").HeaderProps) => import("react").JSX.Element;
|
|
5
5
|
tags: string[];
|
|
6
6
|
parameters: {
|
|
7
7
|
layout: string;
|
package/lib/test-setup.js
CHANGED
|
@@ -10,6 +10,39 @@ global.__webpack_public_path__ = '';
|
|
|
10
10
|
// Native FormData and fetch should work in Node.js 20+
|
|
11
11
|
// Define other globals that might be needed
|
|
12
12
|
global.global = globalThis;
|
|
13
|
+
/*
|
|
14
|
+
* Primer announces through `@primer/live-region-element`, whose `<live-region>`
|
|
15
|
+
* custom element it expects the document to define.
|
|
16
|
+
*
|
|
17
|
+
* jsdom defines no custom elements, and the package's Node build — the one
|
|
18
|
+
* Vitest loads, because Primer is externalised and Node takes the `node` export
|
|
19
|
+
* condition — assumes the element is already there. Primer therefore finds a
|
|
20
|
+
* plain `HTMLElement`, `announceFromElement` is undefined, and every
|
|
21
|
+
* announcement throws. Tests that assert a clean console then fail on an error
|
|
22
|
+
* raised nowhere near what they are testing.
|
|
23
|
+
*
|
|
24
|
+
* Nothing here has a screen reader, so the element only has to exist and do
|
|
25
|
+
* nothing. Defined rather than mocked so Primer's own code path runs unchanged.
|
|
26
|
+
*/
|
|
27
|
+
if (typeof customElements !== 'undefined' &&
|
|
28
|
+
!customElements.get('live-region')) {
|
|
29
|
+
class LiveRegionStub extends HTMLElement {
|
|
30
|
+
// Both announce methods hand back a handle Primer keeps and cancels when
|
|
31
|
+
// the announcement is superseded, so returning nothing moves the failure
|
|
32
|
+
// rather than removing it.
|
|
33
|
+
announce() {
|
|
34
|
+
return { cancel() { } };
|
|
35
|
+
}
|
|
36
|
+
announceFromElement() {
|
|
37
|
+
return { cancel() { } };
|
|
38
|
+
}
|
|
39
|
+
clear() { }
|
|
40
|
+
getMessage() {
|
|
41
|
+
return '';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
customElements.define('live-region', LiveRegionStub);
|
|
45
|
+
}
|
|
13
46
|
// Mock DragEvent and other DOM APIs not available in jsdom
|
|
14
47
|
class MockDragEvent extends Event {
|
|
15
48
|
dataTransfer = null;
|
|
@@ -52,6 +85,20 @@ Object.defineProperty(window, 'matchMedia', {
|
|
|
52
85
|
// Mock Simple-related modules to prevent import errors
|
|
53
86
|
import { vi } from 'vitest';
|
|
54
87
|
vi.mock('@datalayer/jupyter-react', () => ({
|
|
88
|
+
createLiteServiceManager: async () => ({
|
|
89
|
+
sessions: {
|
|
90
|
+
startNew: async () => ({
|
|
91
|
+
kernel: {
|
|
92
|
+
id: 'test-kernel',
|
|
93
|
+
requestExecute: () => ({ done: Promise.resolve(), onIOPub: null }),
|
|
94
|
+
shutdown: async () => { },
|
|
95
|
+
},
|
|
96
|
+
}),
|
|
97
|
+
},
|
|
98
|
+
}),
|
|
99
|
+
jupyterReactStore: {
|
|
100
|
+
getState: () => ({ setServiceManager: () => { } }),
|
|
101
|
+
},
|
|
55
102
|
useJupyter: () => ({
|
|
56
103
|
defaultKernel: null,
|
|
57
104
|
serviceManager: null,
|
|
@@ -75,6 +122,25 @@ vi.mock('@datalayer/jupyter-react', () => ({
|
|
|
75
122
|
CONNECTED: 'connected',
|
|
76
123
|
DISCONNECTED: 'disconnected',
|
|
77
124
|
},
|
|
125
|
+
// Reads JupyterLab's page config off the document. `AgentNotebook` and
|
|
126
|
+
// `AgentDocument` call it at module scope, so the mock has to answer even
|
|
127
|
+
// for a test that never renders either.
|
|
128
|
+
loadJupyterConfig: () => ({}),
|
|
129
|
+
/*
|
|
130
|
+
* What turns a tool definition into something callable.
|
|
131
|
+
*
|
|
132
|
+
* `createAgentRuntimesTool` builds one per tool, so any test that asks the
|
|
133
|
+
* adapters for a tool list constructs it — and a missing export here is not
|
|
134
|
+
* a mock returning nothing, it is a TypeError at construction. The real one
|
|
135
|
+
* calls the operation and formats the result; this does the first half and
|
|
136
|
+
* returns the result as it comes, which is what a test asserting on tool
|
|
137
|
+
* behaviour rather than on wire format wants.
|
|
138
|
+
*/
|
|
139
|
+
OperationRunner: class OperationRunner {
|
|
140
|
+
async execute(operation, params, context) {
|
|
141
|
+
return operation.execute(params, context);
|
|
142
|
+
}
|
|
143
|
+
},
|
|
78
144
|
}));
|
|
79
145
|
vi.mock('@jupyter/web-components', () => ({}));
|
|
80
146
|
vi.mock('@jupyter/ydoc', () => ({
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React hooks for agent-runtimes lexical tool registration.
|
|
3
|
+
* Provides: useLexicalTools hook for ChatFloating integration.
|
|
4
|
+
*
|
|
5
|
+
* @module tools/adapters/agent-runtimes/lexicalHooks
|
|
6
|
+
*/
|
|
7
|
+
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
1
8
|
import type { ToolExecutionContext } from '@datalayer/jupyter-react';
|
|
2
9
|
import type { FrontendToolDefinition } from '../../../types/tools';
|
|
3
10
|
/**
|
|
@@ -30,5 +37,13 @@ import type { FrontendToolDefinition } from '../../../types/tools';
|
|
|
30
37
|
* />
|
|
31
38
|
* ```
|
|
32
39
|
*/
|
|
40
|
+
/**
|
|
41
|
+
* The document's frontend tools, built without React.
|
|
42
|
+
*
|
|
43
|
+
* The plain twin of `useLexicalTools`, for the document plugin contributing
|
|
44
|
+
* to the chat's `LoopFrontendTool` point. The executor reads the lexical
|
|
45
|
+
* store's live state through its methods; no reactivity needed.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createLexicalTools(documentId: string, contextOverrides?: Partial<Omit<ToolExecutionContext, 'executor' | 'documentId'>>): FrontendToolDefinition[];
|
|
33
48
|
export declare function useLexicalTools(documentId: string, contextOverrides?: Partial<Omit<ToolExecutionContext, 'executor' | 'documentId'>>): FrontendToolDefinition[];
|
|
34
49
|
export type { FrontendToolDefinition };
|