@datalayer/agent-runtimes 1.0.29 → 1.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AgentDocument.js +5 -22
- package/lib/AgentNode.d.ts +1 -1
- package/lib/AgentNode.js +193 -23
- package/lib/AgentNotebook.js +1 -1
- package/lib/App.d.ts +1 -1
- package/lib/AppExamples2.d.ts +1 -1
- package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
- package/lib/agent-node/AgentNodeGallery.js +19 -15
- package/lib/agent-node/themeStore.js +7 -6
- package/lib/agents/AgentDetails.d.ts +8 -2
- package/lib/agents/AgentDetails.js +41 -11
- package/lib/agents/AgentRuntimeChat.d.ts +3 -3
- package/lib/agents/AgentRuntimeChat.js +15 -15
- package/lib/api/agents.d.ts +10 -10
- package/lib/api/agents.js +15 -15
- package/lib/api/checkpoints.d.ts +40 -0
- package/lib/api/checkpoints.js +75 -0
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/notifications.d.ts +21 -6
- package/lib/api/notifications.js +32 -14
- package/lib/api/runtimes/environments.d.ts +385 -4
- package/lib/api/runtimes/environments.js +610 -9
- package/lib/api/runtimes/runtimes.d.ts +19 -19
- package/lib/api/runtimes/runtimes.js +47 -46
- package/lib/api/spacer/notebooks.js +1 -1
- package/lib/chat/Chat.d.ts +16 -4
- package/lib/chat/Chat.js +18 -5
- package/lib/chat/ChatFloating.d.ts +13 -2
- package/lib/chat/ChatFloating.js +192 -117
- package/lib/chat/ChatInline.d.ts +15 -0
- package/lib/chat/ChatInline.js +0 -18
- package/lib/chat/ChatPopupStandalone.d.ts +1 -1
- package/lib/chat/ChatSidebar.d.ts +14 -2
- package/lib/chat/ChatSidebar.js +1 -1
- package/lib/chat/ChatStandalone.d.ts +1 -1
- package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
- package/lib/chat/EphemeralSurfaceControl.js +55 -0
- package/lib/chat/base/ChatAvailability.d.ts +34 -0
- package/lib/chat/base/ChatAvailability.js +18 -0
- package/lib/chat/base/ChatBase.d.ts +2 -1
- package/lib/chat/base/ChatBase.js +657 -28
- package/lib/chat/display/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +78 -12
- package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
- package/lib/chat/display/PoweredByTag.d.ts +1 -1
- package/lib/chat/display/groupSuggestions.d.ts +21 -0
- package/lib/chat/display/groupSuggestions.js +18 -0
- package/lib/chat/document/EphemeralDocument.d.ts +70 -6
- package/lib/chat/document/EphemeralDocument.js +154 -52
- package/lib/chat/header/ChatHeader.d.ts +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
- package/lib/chat/header/ChatHeaderBase.js +67 -96
- package/lib/chat/index.d.ts +4 -1
- package/lib/chat/index.js +8 -1
- package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +22 -1
- package/lib/chat/messages/ChatMessageList.js +370 -166
- package/lib/chat/messages/ChatMessages.d.ts +1 -1
- package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
- package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
- package/lib/chat/messages/TurnFooter.d.ts +42 -0
- package/lib/chat/messages/TurnFooter.js +75 -0
- package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
- package/lib/chat/messages/assistantMarkdown.js +56 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
- package/lib/chat/notebook/EphemeralNotebook.js +194 -61
- package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
- package/lib/chat/parts/MessagePart.d.ts +1 -1
- package/lib/chat/parts/ReasoningPart.d.ts +8 -1
- package/lib/chat/parts/TextPart.d.ts +1 -1
- package/lib/chat/parts/ToolPart.d.ts +8 -1
- package/lib/chat/prompt/FloatingCard.d.ts +26 -0
- package/lib/chat/prompt/FloatingCard.js +80 -0
- package/lib/chat/prompt/InputPrompt.d.ts +206 -53
- package/lib/chat/prompt/InputPrompt.js +161 -80
- package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
- package/lib/chat/prompt/InputPromptBase.js +225 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
- package/lib/chat/prompt/InputPromptLexical.js +227 -30
- package/lib/chat/prompt/InputPromptText.d.ts +10 -2
- package/lib/chat/prompt/InputPromptText.js +35 -3
- package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
- package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
- package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
- package/lib/chat/prompt/footer/index.d.ts +7 -0
- package/lib/chat/prompt/footer/index.js +11 -0
- package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
- package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
- package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
- package/lib/chat/prompt/header/InPromptHeader.js +14 -0
- package/lib/chat/prompt/header/index.d.ts +7 -0
- package/lib/chat/prompt/header/index.js +11 -0
- package/lib/chat/prompt/index.d.ts +8 -4
- package/lib/chat/prompt/index.js +15 -3
- package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
- package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
- package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
- package/lib/chat/prompt/menus/ModelSelector.js +27 -0
- package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
- package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
- package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
- package/lib/chat/prompt/menus/index.d.ts +15 -0
- package/lib/chat/prompt/menus/index.js +19 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
- package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
- package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
- package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
- package/lib/chat/prompt/plugins/MentionChip.js +24 -0
- package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
- package/lib/chat/prompt/plugins/MentionNode.js +77 -0
- package/lib/chat/prompt/promptHistory.d.ts +52 -0
- package/lib/chat/prompt/promptHistory.js +123 -0
- package/lib/chat/prompt/stack.d.ts +81 -0
- package/lib/chat/prompt/stack.js +41 -0
- package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
- package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
- package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
- package/lib/chat/tools/A2AAgentDialog.js +265 -0
- package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
- package/lib/chat/tools/index.d.ts +1 -0
- package/lib/chat/tools/index.js +1 -0
- package/lib/chat/usage/ContextPie.d.ts +17 -0
- package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
- package/lib/chat/useViewportDrag.d.ts +11 -0
- package/lib/chat/useViewportDrag.js +61 -0
- package/lib/chat/viewModes.d.ts +51 -0
- package/lib/chat/viewModes.js +57 -0
- package/lib/client/AgentRuntimesClient.d.ts +10 -9
- package/lib/client/AgentRuntimesClient.js +1 -1
- package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
- package/lib/client/AgentsMixin.d.ts +12 -12
- package/lib/client/AgentsMixin.js +31 -31
- package/lib/client/IAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.js +10 -10
- package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
- package/lib/client/mixins/RuntimesMixin.js +54 -21
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
- package/lib/components/agents/AgentSummary.d.ts +13 -0
- package/lib/components/agents/AgentSummary.js +21 -4
- package/lib/components/cards/NotificationEventCard.d.ts +1 -1
- package/lib/components/cards/OutputCard.d.ts +1 -1
- package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
- package/lib/components/cards/ToolApprovalCard.js +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
- package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +42 -19
- package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
- package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
- package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
- package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
- package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
- package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
- package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
- package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
- package/lib/components/code-sandboxes/index.d.ts +1 -0
- package/lib/components/code-sandboxes/index.js +1 -0
- package/lib/components/context/SpaceSelect.d.ts +1 -1
- package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
- package/lib/components/icons/ArtifactIcon.d.ts +1 -0
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.d.ts +1 -0
- package/lib/components/progress/CreditsIndicator.js +0 -4
- package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
- package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
- package/lib/components/snippets/SnippetDialog.d.ts +1 -0
- package/lib/components/snippets/SnippetDialog.js +0 -4
- package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
- package/lib/components/specs/SpecPayloadPreview.js +102 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/context/ContextDistribution.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +2 -1
- package/lib/context/ContextPanel.d.ts +1 -1
- package/lib/context/ContextUsage.d.ts +1 -1
- package/lib/context/CostTracker.d.ts +1 -1
- package/lib/context/CostUsageChart.d.ts +1 -1
- package/lib/context/CostUsageChart.js +4 -4
- package/lib/context/MessageHistory.d.ts +3 -2
- package/lib/context/TokenUsageChart.d.ts +1 -1
- package/lib/context/TokenUsageChart.js +4 -4
- package/lib/examples/A2UiAgentExample.js +15 -6
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
- package/lib/examples/A2UiContactCardExample.d.ts +10 -0
- package/lib/examples/A2UiContactCardExample.js +23 -170
- package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
- package/lib/examples/A2UiJupyterOutputExample.js +792 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
- package/lib/examples/A2UiRestaurantExample.js +24 -179
- package/lib/examples/A2UiViewerExample.d.ts +10 -0
- package/lib/examples/A2UiViewerExample.js +24 -378
- package/lib/examples/AgUiAgenticExample.js +2 -4
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
- package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
- package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
- package/lib/examples/AgUiSharedStateExample.js +2 -4
- package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
- package/lib/examples/AgentA2AExample.d.ts +17 -0
- package/lib/examples/AgentA2AExample.js +56 -0
- package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
- package/lib/examples/AgentCheckpointsExample.js +72 -54
- package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
- package/lib/examples/AgentCodeSandboxExample.js +93 -303
- package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
- package/lib/examples/AgentCodeSandboxesExample.js +56 -162
- package/lib/examples/AgentCodemodeExample.d.ts +7 -2
- package/lib/examples/AgentCodemodeExample.js +60 -125
- package/lib/examples/AgentCompactionExample.js +19 -135
- package/lib/examples/AgentEvalsExample.js +34 -66
- package/lib/examples/AgentGuardrailsExample.js +64 -112
- package/lib/examples/AgentHooksExample.d.ts +11 -0
- package/lib/examples/AgentHooksExample.js +30 -67
- package/lib/examples/AgentInferenceProviderExample.js +8 -32
- package/lib/examples/AgentLoopExample.d.ts +4 -2
- package/lib/examples/AgentLoopExample.js +45 -93
- package/lib/examples/AgentMCPExample.js +30 -79
- package/lib/examples/AgentMemoryExample.js +21 -64
- package/lib/examples/AgentMonitoringExample.js +33 -94
- package/lib/examples/AgentNotificationsExample.js +56 -95
- package/lib/examples/AgentOtelExample.js +35 -88
- package/lib/examples/AgentOutputsExample.d.ts +2 -1
- package/lib/examples/AgentOutputsExample.js +16 -137
- package/lib/examples/AgentParametersExample.js +7 -17
- package/lib/examples/AgentSkillsExample.js +40 -154
- package/lib/examples/AgentSubagentsExample.d.ts +7 -6
- package/lib/examples/AgentSubagentsExample.js +80 -191
- package/lib/examples/AgentToolApprovalsExample.js +35 -91
- package/lib/examples/AgentTriggersExample.js +43 -59
- package/lib/examples/AgentspecsExample.js +4 -4
- package/lib/examples/CellExample.d.ts +1 -1
- package/lib/examples/ChatExample.d.ts +12 -5
- package/lib/examples/ChatExample.js +38 -13
- package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
- package/lib/examples/CopilotKitLexicalExample.js +4 -41
- package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
- package/lib/examples/CopilotKitNotebookExample.js +2 -14
- package/lib/examples/DecksAgent.d.ts +21 -0
- package/lib/examples/DecksAgent.js +23 -0
- package/lib/examples/DocumentPageAgent.d.ts +19 -0
- package/lib/examples/DocumentPageAgent.js +15 -0
- package/lib/examples/Lexical2Example.d.ts +2 -2
- package/lib/examples/Lexical2Example.js +17 -38
- package/lib/examples/LexicalAgentExample.d.ts +2 -1
- package/lib/examples/LexicalAgentExample.js +29 -102
- package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
- package/lib/examples/LexicalAgentSidebarExample.js +99 -131
- package/lib/examples/LoopShellExample.d.ts +38 -0
- package/lib/examples/LoopShellExample.js +68 -0
- package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
- package/lib/examples/LoopWorkspaceEmbed.js +73 -0
- package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
- package/lib/examples/LoopWorkspaceExample.js +151 -0
- package/lib/examples/NotebookAgentExample.d.ts +13 -0
- package/lib/examples/NotebookAgentExample.js +36 -86
- package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
- package/lib/examples/NotebookAgentSidebarExample.js +39 -83
- package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
- package/lib/examples/NotebookCollaborationExample.js +108 -20
- package/lib/examples/NotebookExample.d.ts +1 -1
- package/lib/examples/NotebookExample.js +20 -10
- package/lib/examples/NotebookPageAgent.d.ts +23 -0
- package/lib/examples/NotebookPageAgent.js +17 -0
- package/lib/examples/components/ExampleWrapper.d.ts +5 -0
- package/lib/examples/components/ExampleWrapper.js +36 -28
- package/lib/examples/components/LexicalEditor.d.ts +1 -1
- package/lib/examples/components/LexicalEditor.js +4 -24
- package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
- package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
- package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
- package/lib/examples/example-selector.js +26 -6
- package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
- package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
- package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
- package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
- package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
- package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
- package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
- package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
- package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
- package/lib/examples/index.d.ts +4 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/lexical/editorConfig.d.ts +2 -75
- package/lib/examples/lexical/editorConfig.js +26 -48
- package/lib/examples/lexical/lexical-theme.css +65 -47
- package/lib/examples/main.js +450 -322
- package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
- package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
- package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
- package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiViewerScene.js +395 -0
- package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
- package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
- package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
- package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
- package/lib/examples/utils/exampleSurfaces.js +38 -0
- package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
- package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
- package/lib/examples/utils/localUrl.d.ts +2 -0
- package/lib/examples/utils/localUrl.js +49 -0
- package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
- package/lib/examples/utils/notebookToolbarItems.js +129 -0
- package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
- package/lib/examples/utils/runtimeTargetStore.js +82 -1
- package/lib/examples/utils/themedProvider.d.ts +7 -0
- package/lib/examples/utils/themedProvider.js +57 -4
- package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
- package/lib/examples/utils/waitForAgent.d.ts +23 -0
- package/lib/examples/utils/waitForAgent.js +24 -0
- package/lib/examples2/CellExample.d.ts +1 -1
- package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
- package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
- package/lib/examples2/main.js +24 -4
- package/lib/extensions/A2UIExtension.d.ts +1 -1
- package/lib/hooks/index.d.ts +8 -5
- package/lib/hooks/index.js +20 -5
- package/lib/hooks/useAgentRuntimes.d.ts +49 -22
- package/lib/hooks/useAgentRuntimes.js +214 -90
- package/lib/hooks/useAgentsCatalog.js +32 -4
- package/lib/hooks/useBrowserAgent.d.ts +26 -0
- package/lib/hooks/useBrowserAgent.js +75 -0
- package/lib/hooks/useBrowserInference.d.ts +27 -0
- package/lib/hooks/useBrowserInference.js +67 -0
- package/lib/hooks/useCheckpoints.d.ts +8 -17
- package/lib/hooks/useCheckpoints.js +25 -59
- package/lib/hooks/useConfig.d.ts +1 -1
- package/lib/hooks/useConfig.js +5 -1
- package/lib/hooks/useContextSnapshot.d.ts +18 -7
- package/lib/hooks/useContextSnapshot.js +14 -10
- package/lib/hooks/useNotifications.d.ts +11 -11
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/useProjects.d.ts +7 -19
- package/lib/hooks/useProjects.js +5 -5
- package/lib/hooks/useSkills.d.ts +0 -1
- package/lib/hooks/useSkills.js +6 -2
- package/lib/hooks/useToolApprovals.d.ts +8 -8
- package/lib/hooks/useToolApprovals.js +3 -3
- package/lib/identity/AgentIdentity.d.ts +9 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/jupyter/index.d.ts +2 -1
- package/lib/jupyter/index.js +2 -1
- package/lib/jupyter/serverExecution.d.ts +78 -0
- package/lib/jupyter/serverExecution.js +258 -0
- package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
- package/lib/jupyter/useResumeServerExecutions.js +64 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
- package/lib/lexical/ChatInlinePlugin.js +0 -36
- package/lib/loop/core/focusRequests.d.ts +10 -0
- package/lib/loop/core/focusRequests.js +46 -0
- package/lib/loop/core/index.d.ts +894 -0
- package/lib/loop/core/index.js +264 -0
- package/lib/loop/core/promptStore.d.ts +44 -0
- package/lib/loop/core/promptStore.js +63 -0
- package/lib/loop/core/surfaceRequests.d.ts +33 -0
- package/lib/loop/core/surfaceRequests.js +29 -0
- package/lib/loop/core/toolbar.d.ts +28 -0
- package/lib/loop/core/toolbar.js +59 -0
- package/lib/loop/embed/LoopEmbed.d.ts +57 -0
- package/lib/loop/embed/LoopEmbed.js +118 -0
- package/lib/loop/extensions.d.ts +10 -0
- package/lib/loop/extensions.js +49 -0
- package/lib/loop/index.d.ts +68 -0
- package/lib/loop/index.js +87 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
- package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
- package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
- package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
- package/lib/loop/plugins/a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/a2ui/index.js +50 -0
- package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
- package/lib/loop/plugins/a2ui-scene/index.js +28 -0
- package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2a/index.js +26 -0
- package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui/index.js +42 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
- package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
- package/lib/loop/plugins/agent-capacity/index.js +52 -0
- package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
- package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
- package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
- package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
- package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
- package/lib/loop/plugins/agent-codemode/index.js +41 -0
- package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
- package/lib/loop/plugins/agent-compaction/index.js +34 -0
- package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
- package/lib/loop/plugins/agent-evals/index.js +25 -0
- package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
- package/lib/loop/plugins/agent-guardrails/index.js +25 -0
- package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
- package/lib/loop/plugins/agent-hooks/index.js +28 -0
- package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
- package/lib/loop/plugins/agent-inference/index.js +29 -0
- package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
- package/lib/loop/plugins/agent-mcp/index.js +25 -0
- package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
- package/lib/loop/plugins/agent-memory/index.js +25 -0
- package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
- package/lib/loop/plugins/agent-monitoring/index.js +25 -0
- package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
- package/lib/loop/plugins/agent-notifications/index.js +25 -0
- package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
- package/lib/loop/plugins/agent-otel/index.js +25 -0
- package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
- package/lib/loop/plugins/agent-outputs/index.js +25 -0
- package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
- package/lib/loop/plugins/agent-parameters/index.js +25 -0
- package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
- package/lib/loop/plugins/agent-skills/index.js +25 -0
- package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
- package/lib/loop/plugins/agent-subagents/index.js +25 -0
- package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
- package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
- package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
- package/lib/loop/plugins/agent-triggers/index.js +26 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
- package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
- package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
- package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
- package/lib/loop/plugins/agents/SandboxView.js +43 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
- package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
- package/lib/loop/plugins/agents/agentIcons.js +88 -0
- package/lib/loop/plugins/agents/browserService.d.ts +50 -0
- package/lib/loop/plugins/agents/browserService.js +233 -0
- package/lib/loop/plugins/agents/index.d.ts +13 -0
- package/lib/loop/plugins/agents/index.js +17 -0
- package/lib/loop/plugins/agents/plugin.d.ts +91 -0
- package/lib/loop/plugins/agents/plugin.js +201 -0
- package/lib/loop/plugins/agents/service.d.ts +99 -0
- package/lib/loop/plugins/agents/service.js +167 -0
- package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
- package/lib/loop/plugins/agents/specSubagents.js +33 -0
- package/lib/loop/plugins/agents/switchable.d.ts +107 -0
- package/lib/loop/plugins/agents/switchable.js +405 -0
- package/lib/loop/plugins/agents/team.d.ts +87 -0
- package/lib/loop/plugins/agents/team.js +143 -0
- package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
- package/lib/loop/plugins/agents/useSandboxService.js +36 -0
- package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
- package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
- package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
- package/lib/loop/plugins/agentspecs/index.js +63 -0
- package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
- package/lib/loop/plugins/chat/ChatView.js +1670 -0
- package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
- package/lib/loop/plugins/chat/chatViewTools.js +92 -0
- package/lib/loop/plugins/chat/index.d.ts +111 -0
- package/lib/loop/plugins/chat/index.js +143 -0
- package/lib/loop/plugins/chat/turnState.d.ts +41 -0
- package/lib/loop/plugins/chat/turnState.js +90 -0
- package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
- package/lib/loop/plugins/chat-extras/index.js +51 -0
- package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
- package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
- package/lib/loop/plugins/chat-header/index.d.ts +3 -0
- package/lib/loop/plugins/chat-header/index.js +21 -0
- package/lib/loop/plugins/chat-view/index.d.ts +10 -0
- package/lib/loop/plugins/chat-view/index.js +29 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
- package/lib/loop/plugins/commands/index.d.ts +20 -0
- package/lib/loop/plugins/commands/index.js +148 -0
- package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
- package/lib/loop/plugins/decks/DeckSurface.js +6 -0
- package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
- package/lib/loop/plugins/decks/DecksMenu.js +42 -0
- package/lib/loop/plugins/decks/index.d.ts +19 -0
- package/lib/loop/plugins/decks/index.js +133 -0
- package/lib/loop/plugins/decks/surface.d.ts +7 -0
- package/lib/loop/plugins/decks/surface.js +11 -0
- package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
- package/lib/loop/plugins/document/DocumentView.js +68 -0
- package/lib/loop/plugins/document/index.d.ts +3 -0
- package/lib/loop/plugins/document/index.js +86 -0
- package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
- package/lib/loop/plugins/document/openingDocument.js +122 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
- package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/document-toolbar/index.js +35 -0
- package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
- package/lib/loop/plugins/document-toolbar/names.js +10 -0
- package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
- package/lib/loop/plugins/document-view/index.d.ts +10 -0
- package/lib/loop/plugins/document-view/index.js +28 -0
- package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
- package/lib/loop/plugins/graph/GraphToggle.js +22 -0
- package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
- package/lib/loop/plugins/graph/GraphView.js +6 -0
- package/lib/loop/plugins/graph/index.d.ts +5 -0
- package/lib/loop/plugins/graph/index.js +80 -0
- package/lib/loop/plugins/graph/viewType.d.ts +10 -0
- package/lib/loop/plugins/graph/viewType.js +14 -0
- package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
- package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
- package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
- package/lib/loop/plugins/input-prompt/index.js +26 -0
- package/lib/loop/plugins/models/index.d.ts +3 -0
- package/lib/loop/plugins/models/index.js +49 -0
- package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
- package/lib/loop/plugins/notebook/NotebookView.js +189 -0
- package/lib/loop/plugins/notebook/index.d.ts +3 -0
- package/lib/loop/plugins/notebook/index.js +91 -0
- package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
- package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
- package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
- package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
- package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
- package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
- package/lib/loop/plugins/notebook-view/index.js +30 -0
- package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
- package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
- package/lib/loop/plugins/page-layout/index.d.ts +35 -0
- package/lib/loop/plugins/page-layout/index.js +80 -0
- package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
- package/lib/loop/plugins/plugins-panel/index.js +74 -0
- package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
- package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
- package/lib/loop/plugins/prompt/index.d.ts +11 -0
- package/lib/loop/plugins/prompt/index.js +73 -0
- package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
- package/lib/loop/plugins/shell/editorChoice.js +58 -0
- package/lib/loop/plugins/shell/index.d.ts +47 -0
- package/lib/loop/plugins/shell/index.js +142 -0
- package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
- package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
- package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
- package/lib/loop/plugins/subagent-activity/index.js +42 -0
- package/lib/loop/plugins/view-switch/index.d.ts +46 -0
- package/lib/loop/plugins/view-switch/index.js +68 -0
- package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
- package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
- package/lib/loop/plugins/window-frame/index.d.ts +6 -0
- package/lib/loop/plugins/window-frame/index.js +79 -0
- package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
- package/lib/loop/plugins/window-frame/slots.js +30 -0
- package/lib/loop/presets.d.ts +167 -0
- package/lib/loop/presets.js +139 -0
- package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
- package/lib/loop/shell/LoopWorkspace.js +231 -0
- package/lib/loop/shell/PluginToggles.d.ts +21 -0
- package/lib/loop/shell/PluginToggles.js +41 -0
- package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
- package/lib/loop/shell/ViewSwitcher.js +43 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
- package/lib/loop/shell/index.d.ts +10 -0
- package/lib/loop/shell/index.js +14 -0
- package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
- package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
- package/lib/loop-example-main.d.ts +1 -0
- package/lib/loop-example-main.js +42 -0
- package/lib/loop-main.d.ts +1 -0
- package/lib/loop-main.js +138 -0
- package/lib/mcp/McpServerManager.d.ts +1 -1
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
- package/lib/models/CodeSandboxVariant.d.ts +13 -5
- package/lib/models/CodeSandboxVariant.js +17 -5
- package/lib/models/Content.d.ts +26 -0
- package/lib/models/Environment.d.ts +561 -5
- package/lib/models/Environment.js +12 -1
- package/lib/models/EnvironmentDTO.d.ts +24 -6
- package/lib/models/EnvironmentDTO.js +13 -2
- package/lib/models/Exercise.d.ts +0 -2
- package/lib/models/Library.d.ts +0 -2
- package/lib/models/Notebook.d.ts +0 -2
- package/lib/models/ProjectDTO.d.ts +2 -2
- package/lib/models/ProjectDTO.js +4 -4
- package/lib/models/Runtime.d.ts +11 -11
- package/lib/models/RuntimeDTO.d.ts +16 -7
- package/lib/models/RuntimeDTO.js +9 -9
- package/lib/models/Space.d.ts +10 -0
- package/lib/models/Space.js +1 -1
- package/lib/models/SpaceDTO.d.ts +1 -1
- package/lib/models/SpaceItem.d.ts +1 -2
- package/lib/models/environments.generated.d.ts +113 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +0 -1
- package/lib/models/index.js +0 -1
- package/lib/protocols/A2AAdapter.d.ts +39 -6
- package/lib/protocols/A2AAdapter.js +180 -11
- package/lib/protocols/ACPAdapter.js +40 -37
- package/lib/protocols/AGUIAdapter.d.ts +14 -0
- package/lib/protocols/AGUIAdapter.js +34 -9
- package/lib/protocols/BrowserAgentAdapter.d.ts +117 -0
- package/lib/protocols/BrowserAgentAdapter.js +310 -0
- package/lib/protocols/VercelAIAdapter.d.ts +10 -0
- package/lib/protocols/VercelAIAdapter.js +27 -7
- package/lib/protocols/index.d.ts +1 -0
- package/lib/protocols/index.js +1 -0
- package/lib/runtimes/actions.d.ts +3 -3
- package/lib/runtimes/actions.js +27 -14
- package/lib/runtimes/apis.d.ts +13 -4
- package/lib/runtimes/browser/agent.d.ts +54 -0
- package/lib/runtimes/browser/agent.js +63 -0
- package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
- package/lib/runtimes/browser/anonymousToken.js +300 -0
- package/lib/runtimes/browser/frontendTools.d.ts +61 -0
- package/lib/runtimes/browser/frontendTools.js +152 -0
- package/lib/runtimes/browser/index.d.ts +11 -0
- package/lib/runtimes/browser/index.js +20 -0
- package/lib/runtimes/browser/model.d.ts +52 -0
- package/lib/runtimes/browser/model.js +110 -0
- package/lib/runtimes/browser/protocol.d.ts +54 -0
- package/lib/runtimes/browser/protocol.js +35 -0
- package/lib/runtimes/browser/subagents.d.ts +131 -0
- package/lib/runtimes/browser/subagents.js +241 -0
- package/lib/runtimes/index.d.ts +3 -0
- package/lib/runtimes/index.js +3 -0
- package/lib/runtimes/lifecycle.d.ts +76 -0
- package/lib/runtimes/lifecycle.js +99 -0
- package/lib/runtimes/variants.d.ts +172 -0
- package/lib/runtimes/variants.js +187 -0
- package/lib/services/reconnectToRuntime.d.ts +2 -2
- package/lib/services/reconnectToRuntime.js +3 -3
- package/lib/services/sandboxServiceManagers.d.ts +2 -2
- package/lib/services/sandboxServiceManagers.js +11 -11
- package/lib/specs/agents/agents.d.ts +128 -112
- package/lib/specs/agents/agents.js +8024 -5052
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +3 -0
- package/lib/specs/frontendTools.js +46 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +25 -2
- package/lib/specs/models.d.ts +18 -0
- package/lib/specs/models.js +154 -0
- package/lib/specs/outputs.d.ts +2 -0
- package/lib/specs/outputs.js +22 -0
- package/lib/specs/personas.js +1 -1
- package/lib/specs/teams/teams.d.ts +2 -0
- package/lib/specs/teams/teams.js +628 -111
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -1
- package/lib/state/substates/RuntimesState.d.ts +5 -5
- package/lib/state/substates/RuntimesState.js +14 -14
- package/lib/state/substates/index.d.ts +1 -1
- package/lib/state/substates/index.js +1 -1
- package/lib/stores/agentRuntimeStore.d.ts +43 -1
- package/lib/stores/agentRuntimeStore.js +100 -11
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/stories/Button.d.ts +1 -1
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +1 -1
- package/lib/test-setup.js +66 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
- package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
- package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
- package/lib/tools/adapters/commands/index.d.ts +1 -0
- package/lib/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/types/a2a.d.ts +15 -1
- package/lib/types/agents-lifecycle.d.ts +11 -6
- package/lib/types/agents.d.ts +31 -6
- package/lib/types/agentspecs.d.ts +120 -4
- package/lib/types/chat.d.ts +251 -3
- package/lib/types/checkpoints.d.ts +20 -0
- package/lib/types/config.d.ts +13 -1
- package/lib/types/connection.d.ts +1 -1
- package/lib/types/evals.d.ts +2 -0
- package/lib/types/messages.d.ts +60 -0
- package/lib/types/models.d.ts +26 -0
- package/lib/types/notifications.d.ts +15 -6
- package/lib/types/protocol.d.ts +7 -2
- package/lib/types/stream.d.ts +48 -3
- package/lib/types/stream.js +5 -0
- package/lib/types/teams.d.ts +102 -4
- package/lib/types/tool-approvals.d.ts +1 -1
- package/lib/types/tools.d.ts +8 -2
- package/lib/utils/utils.js +7 -1
- package/package.json +376 -361
- package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/compose.py +208 -0
- package/scripts/codegen/generate_agents.py +202 -31
- package/scripts/codegen/generate_evals.py +2 -0
- package/scripts/codegen/generate_frontend_tools.py +35 -6
- package/scripts/codegen/generate_models.py +40 -15
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- package/scripts/codegen/generate_teams.py +178 -4
- package/scripts/codegen/generate_tools.py +6 -4
- package/scripts/gen_workers.py +278 -110
- package/scripts/generate-environments-types.py +404 -0
- package/lib/chat/prompt/InputFooter.d.ts +0 -58
- package/lib/chat/prompt/InputFooter.js +0 -194
- package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
- package/lib/chat/prompt/InputPromptFooter.js +0 -15
- package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
- package/lib/chat/prompt/InputPromptHeader.js +0 -15
- package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
- package/lib/hooks/useRuntimes.d.ts +0 -5
- package/lib/hooks/useRuntimes.js +0 -34
- package/lib/jupyter/kernelsHandler.d.ts +0 -8
- package/lib/jupyter/kernelsHandler.js +0 -39
- package/lib/models/Dataset.d.ts +0 -16
- package/lib/utils/Cells.d.ts +0 -2
- package/lib/utils/Cells.js +0 -28
|
@@ -19,7 +19,6 @@ import { Spinner, Text } from '@primer/react';
|
|
|
19
19
|
import { Box } from '@datalayer/primer-addons';
|
|
20
20
|
import { ThemedProvider } from './utils/themedProvider';
|
|
21
21
|
import { ChatFloating } from '../chat';
|
|
22
|
-
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
23
22
|
import { uniqueAgentId } from './utils/agentId';
|
|
24
23
|
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
25
24
|
/**
|
|
@@ -36,9 +35,8 @@ import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
|
36
35
|
const AGENT_NAME = 'ag-ui-agentic';
|
|
37
36
|
const AGENTSPEC_ID = 'example-agentic-chat';
|
|
38
37
|
const AgUiAgenticExample = () => {
|
|
39
|
-
const baseUrl = useExampleAgentRuntimesUrl();
|
|
40
38
|
const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
|
|
41
|
-
const { agentId, status, error, isReady } = useExampleAgentRuntime({
|
|
39
|
+
const { agentId, baseUrl, status, error, isReady } = useExampleAgentRuntime({
|
|
42
40
|
exampleId: 'AgUiAgenticExample',
|
|
43
41
|
agentName,
|
|
44
42
|
specId: AGENTSPEC_ID,
|
|
@@ -60,7 +58,7 @@ const AgUiAgenticExample = () => {
|
|
|
60
58
|
fontSize: 4,
|
|
61
59
|
fontWeight: 'bold',
|
|
62
60
|
marginBottom: 2,
|
|
63
|
-
}, children: "AG-UI
|
|
61
|
+
}, children: "AG-UI Agentic Example" }), _jsx(Text, { as: "p", sx: {
|
|
64
62
|
fontSize: 2,
|
|
65
63
|
color: 'fg.muted',
|
|
66
64
|
marginBottom: 4,
|
|
@@ -21,7 +21,6 @@ import { Box } from '@datalayer/primer-addons';
|
|
|
21
21
|
import { ThemedProvider, useThemeBrandColor } from './utils/themedProvider';
|
|
22
22
|
import { ChatFloating } from '../chat';
|
|
23
23
|
import { InlineWeatherCard } from './components/weather';
|
|
24
|
-
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
25
24
|
import { uniqueAgentId } from './utils/agentId';
|
|
26
25
|
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
27
26
|
import { useSpecRenderToolResult, specRendererClassName, } from './hooks/useSpecRenderToolResult';
|
|
@@ -55,9 +54,8 @@ const AGENT_NAME = 'ag-ui-backend-tools';
|
|
|
55
54
|
const AGENTSPEC_ID = 'example-backend-tool-rendering';
|
|
56
55
|
const AgUiBackendToolRenderingExample = () => {
|
|
57
56
|
const brandColor = useThemeBrandColor();
|
|
58
|
-
const baseUrl = useExampleAgentRuntimesUrl();
|
|
59
57
|
const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
|
|
60
|
-
const { agentId } = useExampleAgentRuntime({
|
|
58
|
+
const { agentId, baseUrl } = useExampleAgentRuntime({
|
|
61
59
|
exampleId: 'AgUiBackendToolRenderingExample',
|
|
62
60
|
agentName,
|
|
63
61
|
specId: AGENTSPEC_ID,
|
|
@@ -85,7 +83,7 @@ const AgUiBackendToolRenderingExample = () => {
|
|
|
85
83
|
fontSize: 4,
|
|
86
84
|
fontWeight: 'bold',
|
|
87
85
|
marginBottom: 2,
|
|
88
|
-
}, children: "AG-UI
|
|
86
|
+
}, children: "AG-UI Backend Tool Rendering (Inline)" }), _jsxs(Text, { as: "p", sx: {
|
|
89
87
|
fontSize: 2,
|
|
90
88
|
color: 'fg.muted',
|
|
91
89
|
marginBottom: 4,
|
|
@@ -105,7 +103,7 @@ const AgUiBackendToolRenderingExample = () => {
|
|
|
105
103
|
marginTop: 1,
|
|
106
104
|
fontSize: 1,
|
|
107
105
|
color: 'fg.muted',
|
|
108
|
-
}, children: [_jsx("li", { children: "\"What's the weather in New York?\"" }), _jsx("li", { children: "\"Weather in London and Paris\"" }), _jsx("li", { children: "\"Is it sunny in Sydney?\"" }), _jsx("li", { children: "\"How's the weather in Tokyo today?\"" })] })] })] })] }), backendToolRenderingEndpoint && (_jsx(ChatFloating, { kernelIndicatorPlacement: "right", protocol: "ag-ui", endpoint: backendToolRenderingEndpoint, title: "Weather Assistant", description: "Ask me about the weather anywhere in the world!", position: "bottom-right", brandColor: brandColor, onStateUpdate: handleStateUpdate, renderToolResult: renderToolResult, suggestions: [
|
|
106
|
+
}, children: [_jsx("li", { children: "\"What's the weather in New York?\"" }), _jsx("li", { children: "\"Weather in London and Paris\"" }), _jsx("li", { children: "\"Is it sunny in Sydney?\"" }), _jsx("li", { children: "\"How's the weather in Tokyo today?\"" })] })] })] })] }), backendToolRenderingEndpoint && (_jsx(ChatFloating, { kernelIndicatorPlacement: "right", protocol: "ag-ui", endpoint: backendToolRenderingEndpoint, title: "Weather Assistant", description: "Ask me about the weather anywhere in the world!", position: "bottom-right", brandColor: brandColor, defaultOpen: true, onStateUpdate: handleStateUpdate, renderToolResult: renderToolResult, suggestions: [
|
|
109
107
|
{
|
|
110
108
|
title: 'Paris weather',
|
|
111
109
|
message: "What's the weather like in Paris?",
|
|
@@ -22,7 +22,6 @@ import { Box } from '@datalayer/primer-addons';
|
|
|
22
22
|
import { ThemedProvider, useThemeBrandColor } from './utils/themedProvider';
|
|
23
23
|
import { ChatFloating } from '../chat';
|
|
24
24
|
import { InlineHaikuCard, HaikuDisplay, } from './components/haiku';
|
|
25
|
-
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
26
25
|
import { uniqueAgentId } from './utils/agentId';
|
|
27
26
|
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
28
27
|
import { useSpecRenderToolResult, specRendererClassName, } from './hooks/useSpecRenderToolResult';
|
|
@@ -65,9 +64,8 @@ const AGENT_NAME = 'ag-ui-haiku';
|
|
|
65
64
|
const AGENTSPEC_ID = 'example-haiku-generative-ui';
|
|
66
65
|
const AgUiHaikuGenUiExample = () => {
|
|
67
66
|
const brandColor = useThemeBrandColor();
|
|
68
|
-
const baseUrl = useExampleAgentRuntimesUrl();
|
|
69
67
|
const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
|
|
70
|
-
const { agentId } = useExampleAgentRuntime({
|
|
68
|
+
const { agentId, baseUrl } = useExampleAgentRuntime({
|
|
71
69
|
exampleId: 'AgUiHaikuGenUiExample',
|
|
72
70
|
agentName,
|
|
73
71
|
specId: AGENTSPEC_ID,
|
|
@@ -123,7 +121,7 @@ const AgUiHaikuGenUiExample = () => {
|
|
|
123
121
|
fontSize: 4,
|
|
124
122
|
fontWeight: 'bold',
|
|
125
123
|
marginBottom: 2,
|
|
126
|
-
}, children: "AG-UI
|
|
124
|
+
}, children: "AG-UI Haiku Generative UI" }), _jsx(Text, { as: "p", sx: {
|
|
127
125
|
fontSize: 2,
|
|
128
126
|
color: 'fg.muted',
|
|
129
127
|
marginBottom: 4,
|
|
@@ -20,7 +20,6 @@ import { Text, Checkbox, FormControl, Label, ProgressBar, Button, } from '@prime
|
|
|
20
20
|
import { Box } from '@datalayer/primer-addons';
|
|
21
21
|
import { ThemedProvider, useThemeBrandColor } from './utils/themedProvider';
|
|
22
22
|
import { ChatFloating } from '../chat';
|
|
23
|
-
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
24
23
|
import { uniqueAgentId } from './utils/agentId';
|
|
25
24
|
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
26
25
|
import { TasklistIcon, CheckCircleFillIcon, XCircleFillIcon, } from '@primer/octicons-react';
|
|
@@ -182,9 +181,8 @@ const AGENT_NAME = 'ag-ui-human-in-the-loop';
|
|
|
182
181
|
const AGENTSPEC_ID = 'example-human-in-the-loop';
|
|
183
182
|
const AgUiHumanInTheLoopExample = () => {
|
|
184
183
|
const brandColor = useThemeBrandColor();
|
|
185
|
-
const baseUrl = useExampleAgentRuntimesUrl();
|
|
186
184
|
const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
|
|
187
|
-
const { agentId } = useExampleAgentRuntime({
|
|
185
|
+
const { agentId, baseUrl } = useExampleAgentRuntime({
|
|
188
186
|
exampleId: 'AgUiHumanInTheLoopExample',
|
|
189
187
|
agentName,
|
|
190
188
|
specId: AGENTSPEC_ID,
|
|
@@ -205,7 +203,7 @@ const AgUiHumanInTheLoopExample = () => {
|
|
|
205
203
|
fontSize: 4,
|
|
206
204
|
fontWeight: 'bold',
|
|
207
205
|
marginBottom: 2,
|
|
208
|
-
}, children: "AG-UI
|
|
206
|
+
}, children: "AG-UI Human in the Loop Example" }), _jsx(Text, { as: "p", sx: {
|
|
209
207
|
fontSize: 2,
|
|
210
208
|
color: 'fg.muted',
|
|
211
209
|
marginBottom: 4,
|
|
@@ -17,7 +17,6 @@ import { Text, Button, TextInput, Label } from '@primer/react';
|
|
|
17
17
|
import { Box } from '@datalayer/primer-addons';
|
|
18
18
|
import { ThemedProvider, useThemeBrandColor } from './utils/themedProvider';
|
|
19
19
|
import { ChatFloating } from '../chat';
|
|
20
|
-
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
21
20
|
import { uniqueAgentId } from './utils/agentId';
|
|
22
21
|
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
23
22
|
import { PlusIcon, XIcon, BeakerIcon, ClockIcon, PersonIcon, } from '@primer/octicons-react';
|
|
@@ -108,9 +107,8 @@ const AGENT_NAME = 'ag-ui-shared-state';
|
|
|
108
107
|
const AGENTSPEC_ID = 'example-shared-state';
|
|
109
108
|
const AgUiSharedStateExample = () => {
|
|
110
109
|
const brandColor = useThemeBrandColor();
|
|
111
|
-
const baseUrl = useExampleAgentRuntimesUrl();
|
|
112
110
|
const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
|
|
113
|
-
const { agentId } = useExampleAgentRuntime({
|
|
111
|
+
const { agentId, baseUrl } = useExampleAgentRuntime({
|
|
114
112
|
exampleId: 'AgUiSharedStateExample',
|
|
115
113
|
agentName,
|
|
116
114
|
specId: AGENTSPEC_ID,
|
|
@@ -158,7 +156,7 @@ const AgUiSharedStateExample = () => {
|
|
|
158
156
|
fontSize: 4,
|
|
159
157
|
fontWeight: 'bold',
|
|
160
158
|
marginBottom: 2,
|
|
161
|
-
}, children: "AG-UI
|
|
159
|
+
}, children: "AG-UI Shared State Example" }), _jsx(Text, { as: "p", sx: {
|
|
162
160
|
fontSize: 2,
|
|
163
161
|
color: 'fg.muted',
|
|
164
162
|
}, children: "Build a recipe together with AI. Both you and the agent can edit the recipe." })] }), _jsx(Button, { variant: "danger", onClick: handleClear, children: "Clear Recipe" })] }), _jsxs(Box, { sx: {
|
|
@@ -17,7 +17,6 @@ import { Text, ProgressBar, Button } from '@primer/react';
|
|
|
17
17
|
import { Box } from '@datalayer/primer-addons';
|
|
18
18
|
import { ThemedProvider, useThemeBrandColor } from './utils/themedProvider';
|
|
19
19
|
import { ChatFloating } from '../chat';
|
|
20
|
-
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
21
20
|
import { uniqueAgentId } from './utils/agentId';
|
|
22
21
|
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
23
22
|
import { CheckCircleIcon, CircleIcon, DotFillIcon, CheckIcon, XIcon, } from '@primer/octicons-react';
|
|
@@ -175,9 +174,8 @@ const AGENT_NAME = 'ag-ui-generative-ui';
|
|
|
175
174
|
const AGENTSPEC_ID = 'example-agentic-generative-ui';
|
|
176
175
|
const AgUiToolsBasedGenUiExample = () => {
|
|
177
176
|
const brandColor = useThemeBrandColor();
|
|
178
|
-
const baseUrl = useExampleAgentRuntimesUrl();
|
|
179
177
|
const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
|
|
180
|
-
const { agentId } = useExampleAgentRuntime({
|
|
178
|
+
const { agentId, baseUrl } = useExampleAgentRuntime({
|
|
181
179
|
exampleId: 'AgUiToolsBasedGenUiExample',
|
|
182
180
|
agentName,
|
|
183
181
|
specId: AGENTSPEC_ID,
|
|
@@ -238,7 +236,7 @@ const AgUiToolsBasedGenUiExample = () => {
|
|
|
238
236
|
fontSize: 4,
|
|
239
237
|
fontWeight: 'bold',
|
|
240
238
|
marginBottom: 2,
|
|
241
|
-
}, children: "AG-UI
|
|
239
|
+
}, children: "AG-UI Tool-Based Generative UI Example" }), _jsx(Text, { as: "p", sx: {
|
|
242
240
|
fontSize: 2,
|
|
243
241
|
color: 'fg.muted',
|
|
244
242
|
marginBottom: 4,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentA2AExample
|
|
3
|
+
*
|
|
4
|
+
* Delegation to separate agents over the A2A protocol. The orchestrator runs
|
|
5
|
+
* on the local agent-runtimes server, created there by the Loop from the
|
|
6
|
+
* `example-a2a` blueprint; its researcher and writer are not subagents inside
|
|
7
|
+
* its process but agents of their own, launched on the first delegation —
|
|
8
|
+
* beside the orchestrator on the local server, or on Datalayer runtimes when
|
|
9
|
+
* the orchestrator itself runs in the cloud — and spoken to over A2A.
|
|
10
|
+
*
|
|
11
|
+
* - The chat boxes each remote run under its delegation tool card
|
|
12
|
+
* - The A2A sidebar lists the remote agents, where each runs, its card and
|
|
13
|
+
* task, and keeps the live run box in view
|
|
14
|
+
*/
|
|
15
|
+
import React from 'react';
|
|
16
|
+
declare const AgentA2AExample: React.FC;
|
|
17
|
+
export default AgentA2AExample;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
+
* Distributed under the terms of the Modified BSD License.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* AgentA2AExample
|
|
8
|
+
*
|
|
9
|
+
* Delegation to separate agents over the A2A protocol. The orchestrator runs
|
|
10
|
+
* on the local agent-runtimes server, created there by the Loop from the
|
|
11
|
+
* `example-a2a` blueprint; its researcher and writer are not subagents inside
|
|
12
|
+
* its process but agents of their own, launched on the first delegation —
|
|
13
|
+
* beside the orchestrator on the local server, or on Datalayer runtimes when
|
|
14
|
+
* the orchestrator itself runs in the cloud — and spoken to over A2A.
|
|
15
|
+
*
|
|
16
|
+
* - The chat boxes each remote run under its delegation tool card
|
|
17
|
+
* - The A2A sidebar lists the remote agents, where each runs, its card and
|
|
18
|
+
* task, and keeps the live run box in view
|
|
19
|
+
*/
|
|
20
|
+
/// <reference types="vite/client" />
|
|
21
|
+
import { useMemo } from 'react';
|
|
22
|
+
import { Heading, Label } from '@primer/react';
|
|
23
|
+
import { BroadcastIcon } from '@primer/octicons-react';
|
|
24
|
+
import { Box } from '@datalayer/primer-addons';
|
|
25
|
+
import { ThemedProvider } from './utils/themedProvider';
|
|
26
|
+
import { uniqueAgentId } from './utils/agentId';
|
|
27
|
+
import { resolveExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
28
|
+
import { LoopEmbed } from '../loop';
|
|
29
|
+
import { AgentA2APlugin } from '../loop/plugins/agent-a2a';
|
|
30
|
+
import { A2ASidebarPlugin } from '../loop/plugins/a2a-sidebar';
|
|
31
|
+
import { getAgentspecs } from '../specs/agents';
|
|
32
|
+
const AGENT_NAME = 'a2a-example-agent';
|
|
33
|
+
const AGENTSPEC_ID = 'example-a2a';
|
|
34
|
+
/** The agents the orchestrator reaches over A2A, from its spec. */
|
|
35
|
+
const remoteAgentCount = () => (getAgentspecs(AGENTSPEC_ID)?.subagents?.subagents ?? []).filter(subagent => subagent.a2a).length;
|
|
36
|
+
const AgentA2AExample = () => {
|
|
37
|
+
const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
|
|
38
|
+
const plugins = useMemo(() => [AgentA2APlugin, A2ASidebarPlugin], []);
|
|
39
|
+
const remoteAgents = remoteAgentCount();
|
|
40
|
+
return (_jsx(ThemedProvider, { children: _jsxs(Box, { sx: {
|
|
41
|
+
height: '100%',
|
|
42
|
+
display: 'flex',
|
|
43
|
+
flexDirection: 'column',
|
|
44
|
+
bg: 'canvas.default',
|
|
45
|
+
}, children: [_jsxs(Box, { sx: {
|
|
46
|
+
display: 'flex',
|
|
47
|
+
alignItems: 'center',
|
|
48
|
+
gap: 2,
|
|
49
|
+
px: 3,
|
|
50
|
+
py: 2,
|
|
51
|
+
borderBottom: '1px solid',
|
|
52
|
+
borderColor: 'border.default',
|
|
53
|
+
flexShrink: 0,
|
|
54
|
+
}, children: [_jsx(BroadcastIcon, { size: 16 }), _jsx(Heading, { as: "h3", sx: { fontSize: 2, flex: 1 }, children: "A2A Demo" }), _jsx(Label, { variant: "accent", children: "local" }), _jsxs(Label, { variant: "accent", children: [remoteAgents, " A2A agent", remoteAgents === 1 ? '' : 's'] })] }), _jsx(Box, { sx: { flex: 1, minHeight: 0 }, children: _jsx(LoopEmbed, { serverUrl: resolveExampleAgentRuntimesUrl('local'), target: "local", showAgentVariants: true, agentId: agentName, defaultEditor: "none", showHeader: true, plugins: plugins }) })] }) }));
|
|
55
|
+
};
|
|
56
|
+
export default AgentA2AExample;
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AgentCheckpointsExample
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* with pause/resume (checkpoint) and lifecycle controls.
|
|
4
|
+
* Checkpoints, at the two levels the runtime offers them.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
6
|
+
* On the Local target (and any sandbox), the capability is the agent's own
|
|
7
|
+
* conversation checkpoints: the `example-checkpoints` agent snapshots its
|
|
8
|
+
* conversation after every turn, saves a named checkpoint on request, lists
|
|
9
|
+
* them and rewinds to one — and the checkpoints sidebar shows them, saves one
|
|
10
|
+
* between turns and rewinds the chat.
|
|
12
11
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* On the Datalayer target the runtime itself is the thing checkpointed:
|
|
13
|
+
* the console below launches a cloud agent runtime and pauses and resumes it
|
|
14
|
+
* (light, or CRIU) with lifecycle controls.
|
|
16
15
|
*/
|
|
17
16
|
import React from 'react';
|
|
18
17
|
declare const AgentCheckpointsExample: React.FC;
|
|
@@ -6,34 +6,38 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
6
6
|
/**
|
|
7
7
|
* AgentCheckpointsExample
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* with pause/resume (checkpoint) and lifecycle controls.
|
|
9
|
+
* Checkpoints, at the two levels the runtime offers them.
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
11
|
+
* On the Local target (and any sandbox), the capability is the agent's own
|
|
12
|
+
* conversation checkpoints: the `example-checkpoints` agent snapshots its
|
|
13
|
+
* conversation after every turn, saves a named checkpoint on request, lists
|
|
14
|
+
* them and rewinds to one — and the checkpoints sidebar shows them, saves one
|
|
15
|
+
* between turns and rewinds the chat.
|
|
17
16
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* On the Datalayer target the runtime itself is the thing checkpointed:
|
|
18
|
+
* the console below launches a cloud agent runtime and pauses and resumes it
|
|
19
|
+
* (light, or CRIU) with lifecycle controls.
|
|
21
20
|
*/
|
|
22
21
|
/// <reference types="vite/client" />
|
|
23
22
|
import { useState, useCallback, useEffect, useRef, useMemo, } from 'react';
|
|
24
23
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
25
24
|
import { Text, Button, IconButton, Spinner, Label, Flash, Heading, Tooltip, } from '@primer/react';
|
|
26
|
-
import { AlertIcon, PlayIcon, SquareIcon, HistoryIcon, CheckCircleIcon, XCircleIcon, ClockIcon, TagIcon, GlobeIcon, ZapIcon, GraphIcon, AiModelIcon, PeopleIcon, SidebarCollapseIcon, SidebarExpandIcon, SyncIcon, AgentIcon, } from '@primer/octicons-react';
|
|
25
|
+
import { AlertIcon, PlayIcon, SquareIcon, HistoryIcon, CheckCircleIcon, XCircleIcon, ClockIcon, TagIcon, GlobeIcon, ZapIcon, GraphIcon, AiModelIcon, PeopleIcon, SidebarCollapseIcon, SidebarExpandIcon, SyncIcon, AgentIcon, VersionsIcon, } from '@primer/octicons-react';
|
|
27
26
|
import { Box } from '@datalayer/primer-addons';
|
|
28
27
|
import { AuthRequiredView, ErrorView } from './components';
|
|
29
28
|
import { ThemedProvider } from './utils/themedProvider';
|
|
30
29
|
import { useSimpleAuthStore } from '@datalayer/core/lib/views/otel';
|
|
31
|
-
import {
|
|
30
|
+
import { LoopEmbed } from '../loop';
|
|
31
|
+
import { AgentCheckpointsPlugin } from '../loop/plugins/agent-checkpoints';
|
|
32
|
+
import { CheckpointsSidebarPlugin } from '../loop/plugins/checkpoints-sidebar';
|
|
33
|
+
import { uniqueAgentId } from './utils/agentId';
|
|
34
|
+
import { resolveExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
35
|
+
import { useRuntimeTargetStore } from './utils/runtimeTargetStore';
|
|
32
36
|
import { useAgentsRuntimes, useAgentRuntimesQuery, useRefreshAgentRuntimes, } from '../hooks/useAgentRuntimes';
|
|
33
37
|
import { useExampleAgentRuntimes as useAgentRuntimes } from './hooks/useExampleAgentRuntimes';
|
|
34
38
|
import { useAgentLifecycle } from '../hooks/useCheckpoints';
|
|
35
|
-
import { useDeletePausedAgentRuntime } from '../hooks/useCheckpoints';
|
|
36
39
|
import { AGENT_STATUS_COLORS } from '../types/agents';
|
|
40
|
+
const LOOP_PLUGINS_AGENTCHE = [AgentCheckpointsPlugin];
|
|
37
41
|
const queryClient = new QueryClient();
|
|
38
42
|
// ─── Defaults ──────────────────────────────────────────────────────────────
|
|
39
43
|
const AGENTSPEC_ID = 'monitor-sales-kpis';
|
|
@@ -53,7 +57,7 @@ const AGENTSPEC = {
|
|
|
53
57
|
model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
|
|
54
58
|
protocol: 'vercel-ai',
|
|
55
59
|
memory: 'mem0',
|
|
56
|
-
sandbox_variant: 'jupyter',
|
|
60
|
+
sandbox_variant: 'jupyter-server',
|
|
57
61
|
environment_name: 'ai-agents-env',
|
|
58
62
|
tags: ['support', 'chatbot', 'sales', 'kpi', 'monitoring'],
|
|
59
63
|
trigger: {
|
|
@@ -107,10 +111,8 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
107
111
|
});
|
|
108
112
|
// Agent runtimes from the focused hook
|
|
109
113
|
const { data: agentRuntimes } = useAgentRuntimesQuery();
|
|
110
|
-
const {
|
|
114
|
+
const { stopRuntimeByName } = useAgentsRuntimes();
|
|
111
115
|
const refetchRuntimes = useRefreshAgentRuntimes();
|
|
112
|
-
const deletePausedRuntimeMutation = useDeletePausedAgentRuntime();
|
|
113
|
-
const deletePausedRuntimeByPod = deletePausedRuntimeMutation.mutateAsync;
|
|
114
116
|
const [isStarting, setIsStarting] = useState(false);
|
|
115
117
|
const [sidebarOpen, setSidebarOpen] = useState(true);
|
|
116
118
|
const [actionLoading, setActionLoading] = useState(false);
|
|
@@ -119,7 +121,7 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
119
121
|
const [resumeMode, setResumeMode] = useState('light');
|
|
120
122
|
const autoConnectAttemptRef = useRef(null);
|
|
121
123
|
const displayError = hookError || actionError;
|
|
122
|
-
const
|
|
124
|
+
const runtimeName = runtime?.runtimeName || '(launching…)';
|
|
123
125
|
const agentId = runtime?.agentId || AGENTSPEC_ID;
|
|
124
126
|
const agentBaseUrl = runtime?.agentBaseUrl || '';
|
|
125
127
|
const handleLaunch = useCallback(async () => {
|
|
@@ -156,11 +158,11 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
156
158
|
setActionLoading(false);
|
|
157
159
|
}
|
|
158
160
|
}, [pause, refreshCheckpoints, refreshAgents, terminate]);
|
|
159
|
-
const handleResume = useCallback(async (mode, checkpointId,
|
|
161
|
+
const handleResume = useCallback(async (mode, checkpointId, runtimeName) => {
|
|
160
162
|
setActionLoading(true);
|
|
161
163
|
setActionError(null);
|
|
162
164
|
try {
|
|
163
|
-
await resume(mode, checkpointId,
|
|
165
|
+
await resume(mode, checkpointId, runtimeName);
|
|
164
166
|
await Promise.all([refreshCheckpoints(), refreshAgents()]);
|
|
165
167
|
}
|
|
166
168
|
catch (e) {
|
|
@@ -172,11 +174,11 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
172
174
|
}, [resume, refreshCheckpoints, refreshAgents]);
|
|
173
175
|
// Refresh lists when a runtime connection is established.
|
|
174
176
|
useEffect(() => {
|
|
175
|
-
if (runtime?.
|
|
177
|
+
if (runtime?.runtimeName) {
|
|
176
178
|
refreshCheckpoints();
|
|
177
179
|
refreshAgents();
|
|
178
180
|
}
|
|
179
|
-
}, [runtime?.
|
|
181
|
+
}, [runtime?.runtimeName, refreshCheckpoints, refreshAgents]);
|
|
180
182
|
// Clear the manual override once a real runtimes fetch lands.
|
|
181
183
|
useEffect(() => {
|
|
182
184
|
if (runningAgentsOverride && agentRuntimes) {
|
|
@@ -188,7 +190,7 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
188
190
|
return runningAgentsOverride;
|
|
189
191
|
return (agentRuntimes || []).map(rt => ({
|
|
190
192
|
id: rt.id,
|
|
191
|
-
|
|
193
|
+
runtimeName: rt.runtime_name,
|
|
192
194
|
name: rt.name,
|
|
193
195
|
description: rt.environment.title || rt.environment.name,
|
|
194
196
|
status: rt.status,
|
|
@@ -212,12 +214,12 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
212
214
|
return;
|
|
213
215
|
}
|
|
214
216
|
// Prevent reconnect loops to the same runtime while status remains idle/disconnected.
|
|
215
|
-
if (autoConnectAttemptRef.current === candidate.
|
|
217
|
+
if (autoConnectAttemptRef.current === candidate.runtimeName) {
|
|
216
218
|
return;
|
|
217
219
|
}
|
|
218
|
-
autoConnectAttemptRef.current = candidate.
|
|
220
|
+
autoConnectAttemptRef.current = candidate.runtimeName;
|
|
219
221
|
connectToRuntime({
|
|
220
|
-
|
|
222
|
+
runtimeName: candidate.runtimeName,
|
|
221
223
|
environmentName: candidate.environmentName,
|
|
222
224
|
jupyterBaseUrl: candidate.jupyterBaseUrl,
|
|
223
225
|
});
|
|
@@ -239,34 +241,30 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
239
241
|
setActionLoading(true);
|
|
240
242
|
setActionError(null);
|
|
241
243
|
try {
|
|
242
|
-
const isCurrentRuntime = runtime?.
|
|
244
|
+
const isCurrentRuntime = runtime?.runtimeName === agent.runtimeName;
|
|
243
245
|
const isLastKnownRuntime = runningAgents.length === 1 &&
|
|
244
|
-
runningAgents[0].
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
await terminateRuntimeByPod(agent.podName);
|
|
250
|
-
}
|
|
251
|
-
// Ensure sidebar terminate resets to the home state like header terminate.
|
|
246
|
+
runningAgents[0].runtimeName === agent.runtimeName;
|
|
247
|
+
// One verb for both: stopping reaps the pod when there is one and the
|
|
248
|
+
// checkpoint records when there is not.
|
|
249
|
+
await stopRuntimeByName(agent.runtimeName);
|
|
250
|
+
// Ensure sidebar stop resets to the home state like the header's.
|
|
252
251
|
if (isCurrentRuntime || isLastKnownRuntime) {
|
|
253
252
|
await terminate();
|
|
254
253
|
}
|
|
255
254
|
await Promise.all([refreshAgents(), refreshCheckpoints()]);
|
|
256
255
|
}
|
|
257
256
|
catch (e) {
|
|
258
|
-
setActionError(e instanceof Error ? e.message : '
|
|
257
|
+
setActionError(e instanceof Error ? e.message : 'Stop failed');
|
|
259
258
|
}
|
|
260
259
|
finally {
|
|
261
260
|
setActionLoading(false);
|
|
262
261
|
}
|
|
263
262
|
}, [
|
|
264
|
-
|
|
265
|
-
terminateRuntimeByPod,
|
|
263
|
+
stopRuntimeByName,
|
|
266
264
|
refreshAgents,
|
|
267
265
|
refreshCheckpoints,
|
|
268
266
|
runningAgents,
|
|
269
|
-
runtime?.
|
|
267
|
+
runtime?.runtimeName,
|
|
270
268
|
terminate,
|
|
271
269
|
]);
|
|
272
270
|
const pausedAgents = runningAgents.filter(a => a.status === 'paused');
|
|
@@ -274,7 +272,7 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
274
272
|
const checkpointRuntimeIds = new Set(checkpoints
|
|
275
273
|
.map((ckpt) => ckpt.runtime_uid)
|
|
276
274
|
.filter((value) => Boolean(value)));
|
|
277
|
-
const pausedAgentsWithoutCheckpoint = pausedAgents.filter((a) => !checkpointRuntimeIds.has(a.
|
|
275
|
+
const pausedAgentsWithoutCheckpoint = pausedAgents.filter((a) => !checkpointRuntimeIds.has(a.runtimeName));
|
|
278
276
|
const showNoAgentRunningView = (runtimeStatus === 'idle' || runtimeStatus === 'disconnected') &&
|
|
279
277
|
!isStarting;
|
|
280
278
|
const showLaunchingView = runtimeStatus === 'launching' ||
|
|
@@ -298,7 +296,7 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
298
296
|
borderBottom: '1px solid',
|
|
299
297
|
borderColor: 'border.default',
|
|
300
298
|
flexShrink: 0,
|
|
301
|
-
}, children: [_jsx(Button, { size: "small", variant: "invisible", onClick: () => setSidebarOpen(prev => !prev), leadingVisual: sidebarOpen ? SidebarCollapseIcon : SidebarExpandIcon, "aria-label": sidebarOpen ? 'Collapse sidebar' : 'Expand sidebar' }), _jsxs(Heading, { as: "h3", sx: { fontSize: 2, flex: 1 }, children: ["Agent \u2014 ",
|
|
299
|
+
}, children: [_jsx(Button, { size: "small", variant: "invisible", onClick: () => setSidebarOpen(prev => !prev), leadingVisual: sidebarOpen ? SidebarCollapseIcon : SidebarExpandIcon, "aria-label": sidebarOpen ? 'Collapse sidebar' : 'Expand sidebar' }), _jsxs(Heading, { as: "h3", sx: { fontSize: 2, flex: 1 }, children: ["Agent \u2014 ", runtimeName] }), _jsx(Label, { variant: STATUS_COLORS[runtimeStatus], children: runtimeStatus }), (runtimeStatus === 'ready' ||
|
|
302
300
|
runtimeStatus === 'resumed' ||
|
|
303
301
|
runtimeStatus === 'resuming' ||
|
|
304
302
|
runtimeStatus === 'paused') && (_jsxs(_Fragment, { children: [_jsx(Button, { size: "small", leadingVisual: SquareIcon, onClick: () => handlePause('light'), disabled: actionLoading ||
|
|
@@ -386,7 +384,7 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
386
384
|
mt: 2,
|
|
387
385
|
display: 'flex',
|
|
388
386
|
justifyContent: 'flex-end',
|
|
389
|
-
}, children: _jsx(Button, { size: "small", variant: "primary", leadingVisual: PlayIcon, onClick: () => handleResume(resumeMode, undefined, a.
|
|
387
|
+
}, children: _jsx(Button, { size: "small", variant: "primary", leadingVisual: PlayIcon, onClick: () => handleResume(resumeMode, undefined, a.runtimeName), disabled: actionLoading, children: "Resume" }) })] }, `paused-${a.id}`))), checkpoints.length === 0 &&
|
|
390
388
|
pausedAgentsWithoutCheckpoint.length === 0 ? (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted', fontStyle: 'italic' }, children: "No checkpoints yet. Use Checkpoint (Light) or Checkpoint create one." })) : (checkpoints.map((ckpt) => (_jsxs(Box, { sx: {
|
|
391
389
|
p: 2,
|
|
392
390
|
mb: 1,
|
|
@@ -436,16 +434,7 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
436
434
|
gap: 3,
|
|
437
435
|
px: 3,
|
|
438
436
|
}, children: [_jsx(AgentIcon, { size: 48 }), _jsx(Heading, { as: "h2", sx: { fontSize: 3 }, children: "Checkpoint Agent" }), _jsxs(Text, { sx: { color: 'fg.muted', textAlign: 'center', maxWidth: 560 }, children: ["Launch a cloud agent runtime with pause/resume checkpointing. The agent will be deployed from the", ' ', _jsx("strong", { children: AGENTSPEC_ID }), " spec."] }), displayError && (_jsx(Flash, { variant: "danger", sx: { maxWidth: 560, width: '100%' }, children: displayError })), _jsx(Button, { variant: "primary", size: "large", leadingVisual: PlayIcon, onClick: handleLaunch, children: "Launch Agent" })] })) : (isReady || runtimeStatus === 'resumed') &&
|
|
439
|
-
runtimeStatus !== 'paused' ? (_jsx(
|
|
440
|
-
{
|
|
441
|
-
title: 'KPIs',
|
|
442
|
-
message: "Show me today's sales KPI dashboard",
|
|
443
|
-
},
|
|
444
|
-
{
|
|
445
|
-
title: 'Trends',
|
|
446
|
-
message: 'What are the current revenue trends?',
|
|
447
|
-
},
|
|
448
|
-
], submitOnSuggestionClick: true })) : (_jsx(Box, { sx: {
|
|
437
|
+
runtimeStatus !== 'paused' ? (_jsx(LoopEmbed, { serverUrl: agentBaseUrl, target: "local", agentId: agentId, defaultEditor: "none", showHeader: true, plugins: LOOP_PLUGINS_AGENTCHE })) : (_jsx(Box, { sx: {
|
|
449
438
|
display: 'flex',
|
|
450
439
|
flexDirection: 'column',
|
|
451
440
|
alignItems: 'center',
|
|
@@ -456,8 +445,8 @@ const AgentCheckpointsInner = ({ onLogout, }) => {
|
|
|
456
445
|
}, children: runtimeStatus === 'paused' ? (_jsx(Text, { sx: { fontSize: 2 }, children: "Agent is paused \u2014 click Resume to continue the conversation." })) : runtimeStatus === 'idle' ||
|
|
457
446
|
runtimeStatus === 'disconnected' ? (_jsx(Text, { sx: { fontSize: 2 }, children: "No active runtime connection. Launch an agent or select one in the sidebar." })) : runtimeStatus === 'error' ? (_jsxs(_Fragment, { children: [_jsx(AlertIcon, { size: 32 }), _jsx(Text, { sx: { fontSize: 2, color: 'danger.fg' }, children: "Agent failed to connect" }), displayError && (_jsx(Text, { sx: { fontSize: 1, color: 'fg.muted' }, children: displayError })), _jsx(Button, { variant: "primary", onClick: handleLaunch, children: "Retry Launch" })] })) : (_jsxs(_Fragment, { children: [_jsx(Spinner, { size: "medium" }), _jsxs(Text, { sx: { fontSize: 2 }, children: ["Connecting to agent\u2026 (status: ", runtimeStatus, ")"] })] })) })) })] })] }));
|
|
458
447
|
};
|
|
459
|
-
// ───
|
|
460
|
-
const
|
|
448
|
+
// ─── Runtime checkpoints: the cloud console, behind its auth gate ─────────
|
|
449
|
+
const RuntimeCheckpointsExample = () => {
|
|
461
450
|
const { token, clearAuth } = useSimpleAuthStore();
|
|
462
451
|
const hasSynced = useRef(false);
|
|
463
452
|
// Sync persisted token (from a previous session) to iamStore on mount
|
|
@@ -483,4 +472,33 @@ const AgentCheckpointsExample = () => {
|
|
|
483
472
|
}
|
|
484
473
|
return (_jsx(ThemedProvider, { children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(AgentCheckpointsInner, { onLogout: handleLogout }) }) }));
|
|
485
474
|
};
|
|
475
|
+
// ─── Conversation checkpoints: the Loop, the capacity and its sidebar ───────
|
|
476
|
+
const LOCAL_AGENT_NAME = 'checkpoints-example-agent';
|
|
477
|
+
const ConversationCheckpointsExample = () => {
|
|
478
|
+
const agentName = useMemo(() => uniqueAgentId(LOCAL_AGENT_NAME), []);
|
|
479
|
+
const plugins = useMemo(() => [AgentCheckpointsPlugin, CheckpointsSidebarPlugin], []);
|
|
480
|
+
return (_jsx(ThemedProvider, { children: _jsxs(Box, { sx: {
|
|
481
|
+
height: '100%',
|
|
482
|
+
display: 'flex',
|
|
483
|
+
flexDirection: 'column',
|
|
484
|
+
bg: 'canvas.default',
|
|
485
|
+
}, children: [_jsxs(Box, { sx: {
|
|
486
|
+
display: 'flex',
|
|
487
|
+
alignItems: 'center',
|
|
488
|
+
gap: 2,
|
|
489
|
+
px: 3,
|
|
490
|
+
py: 2,
|
|
491
|
+
borderBottom: '1px solid',
|
|
492
|
+
borderColor: 'border.default',
|
|
493
|
+
flexShrink: 0,
|
|
494
|
+
}, children: [_jsx(VersionsIcon, { size: 16 }), _jsx(Heading, { as: "h3", sx: { fontSize: 2, flex: 1 }, children: "Checkpoints Demo" }), _jsx(Label, { variant: "accent", children: "local" }), _jsx(Label, { variant: "accent", children: "conversation checkpoints" })] }), _jsx(Box, { sx: { flex: 1, minHeight: 0 }, children: _jsx(LoopEmbed, { serverUrl: resolveExampleAgentRuntimesUrl('local'), target: "local", showAgentVariants: true, agentId: agentName, editors: false, showHeader: true, plugins: plugins }) })] }) }));
|
|
495
|
+
};
|
|
496
|
+
// ─── The example: one capability, at the level the target offers it ─────────
|
|
497
|
+
const AgentCheckpointsExample = () => {
|
|
498
|
+
const target = useRuntimeTargetStore(state => state.target);
|
|
499
|
+
// Runtime checkpoints exist only where a runtime does — the Datalayer
|
|
500
|
+
// target. Everywhere else the agent's own conversation checkpoints are
|
|
501
|
+
// the capability on show.
|
|
502
|
+
return target === 'datalayer' ? (_jsx(RuntimeCheckpointsExample, {})) : (_jsx(ConversationCheckpointsExample, {}));
|
|
503
|
+
};
|
|
486
504
|
export default AgentCheckpointsExample;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AgentCodeSandboxExample
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `/configure/sandbox/ws` endpoint.
|
|
4
|
+
* The code sandbox: the agent runs Python through `execute_code` in a sandbox
|
|
5
|
+
* the server manages, and the page shows that sandbox.
|
|
7
6
|
*
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* - The Loop creates the `example-code-sandbox` agent on the Local target
|
|
8
|
+
* - A control above the chat switches this agent's sandbox variant (eval /
|
|
9
|
+
* jupyter) live, through `/agents/{id}/sandbox/ensure`
|
|
10
|
+
* - A sidebar follows the sandbox over `/configure/sandbox/ws`: its variant,
|
|
11
|
+
* whether it runs and executes, the raw messages, and an interrupt button
|
|
12
12
|
*
|
|
13
13
|
* @module examples/AgentCodeSandboxExample
|
|
14
14
|
*/
|