@datalayer/agent-runtimes 1.0.29 → 1.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AgentDocument.js +5 -22
- package/lib/AgentNode.d.ts +1 -1
- package/lib/AgentNode.js +193 -23
- package/lib/AgentNotebook.js +1 -1
- package/lib/App.d.ts +1 -1
- package/lib/AppExamples2.d.ts +1 -1
- package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
- package/lib/agent-node/AgentNodeGallery.js +19 -15
- package/lib/agent-node/themeStore.js +7 -6
- package/lib/agents/AgentDetails.d.ts +8 -2
- package/lib/agents/AgentDetails.js +41 -11
- package/lib/agents/AgentRuntimeChat.d.ts +3 -3
- package/lib/agents/AgentRuntimeChat.js +15 -15
- package/lib/api/agents.d.ts +10 -10
- package/lib/api/agents.js +15 -15
- package/lib/api/checkpoints.d.ts +40 -0
- package/lib/api/checkpoints.js +75 -0
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/notifications.d.ts +21 -6
- package/lib/api/notifications.js +32 -14
- package/lib/api/runtimes/environments.d.ts +406 -4
- package/lib/api/runtimes/environments.js +641 -9
- package/lib/api/runtimes/runtimes.d.ts +19 -19
- package/lib/api/runtimes/runtimes.js +47 -46
- package/lib/api/spacer/notebooks.js +1 -1
- package/lib/chat/Chat.d.ts +16 -4
- package/lib/chat/Chat.js +18 -5
- package/lib/chat/ChatFloating.d.ts +20 -2
- package/lib/chat/ChatFloating.js +196 -118
- package/lib/chat/ChatInline.d.ts +15 -0
- package/lib/chat/ChatInline.js +0 -18
- package/lib/chat/ChatPopupStandalone.d.ts +1 -1
- package/lib/chat/ChatSidebar.d.ts +14 -2
- package/lib/chat/ChatSidebar.js +1 -1
- package/lib/chat/ChatStandalone.d.ts +1 -1
- package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
- package/lib/chat/EphemeralSurfaceControl.js +55 -0
- package/lib/chat/base/ChatAvailability.d.ts +34 -0
- package/lib/chat/base/ChatAvailability.js +18 -0
- package/lib/chat/base/ChatBase.d.ts +2 -1
- package/lib/chat/base/ChatBase.js +657 -28
- package/lib/chat/display/ButtonGlow.d.ts +9 -0
- package/lib/chat/display/ButtonGlow.js +60 -0
- package/lib/chat/display/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +81 -12
- package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
- package/lib/chat/display/PoweredByTag.d.ts +1 -1
- package/lib/chat/display/groupSuggestions.d.ts +21 -0
- package/lib/chat/display/groupSuggestions.js +18 -0
- package/lib/chat/document/EphemeralDocument.d.ts +70 -6
- package/lib/chat/document/EphemeralDocument.js +154 -52
- package/lib/chat/header/ChatHeader.d.ts +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
- package/lib/chat/header/ChatHeaderBase.js +21 -102
- package/lib/chat/header/ChatViewModeToggle.d.ts +29 -0
- package/lib/chat/header/ChatViewModeToggle.js +55 -0
- package/lib/chat/index.d.ts +5 -1
- package/lib/chat/index.js +9 -1
- package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +22 -1
- package/lib/chat/messages/ChatMessageList.js +370 -166
- package/lib/chat/messages/ChatMessages.d.ts +1 -1
- package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
- package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
- package/lib/chat/messages/TurnFooter.d.ts +42 -0
- package/lib/chat/messages/TurnFooter.js +75 -0
- package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
- package/lib/chat/messages/assistantMarkdown.js +56 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
- package/lib/chat/notebook/EphemeralNotebook.js +194 -61
- package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
- package/lib/chat/parts/MessagePart.d.ts +1 -1
- package/lib/chat/parts/ReasoningPart.d.ts +8 -1
- package/lib/chat/parts/TextPart.d.ts +1 -1
- package/lib/chat/parts/ToolPart.d.ts +8 -1
- package/lib/chat/prompt/FloatingCard.d.ts +26 -0
- package/lib/chat/prompt/FloatingCard.js +80 -0
- package/lib/chat/prompt/InputPrompt.d.ts +206 -53
- package/lib/chat/prompt/InputPrompt.js +161 -80
- package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
- package/lib/chat/prompt/InputPromptBase.js +225 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
- package/lib/chat/prompt/InputPromptLexical.js +227 -30
- package/lib/chat/prompt/InputPromptText.d.ts +10 -2
- package/lib/chat/prompt/InputPromptText.js +35 -3
- package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
- package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
- package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
- package/lib/chat/prompt/footer/index.d.ts +7 -0
- package/lib/chat/prompt/footer/index.js +11 -0
- package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
- package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
- package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
- package/lib/chat/prompt/header/InPromptHeader.js +14 -0
- package/lib/chat/prompt/header/index.d.ts +7 -0
- package/lib/chat/prompt/header/index.js +11 -0
- package/lib/chat/prompt/index.d.ts +8 -4
- package/lib/chat/prompt/index.js +15 -3
- package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
- package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
- package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
- package/lib/chat/prompt/menus/ModelSelector.js +27 -0
- package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
- package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
- package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
- package/lib/chat/prompt/menus/index.d.ts +15 -0
- package/lib/chat/prompt/menus/index.js +19 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
- package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
- package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
- package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
- package/lib/chat/prompt/plugins/MentionChip.js +24 -0
- package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
- package/lib/chat/prompt/plugins/MentionNode.js +77 -0
- package/lib/chat/prompt/promptHistory.d.ts +52 -0
- package/lib/chat/prompt/promptHistory.js +123 -0
- package/lib/chat/prompt/stack.d.ts +81 -0
- package/lib/chat/prompt/stack.js +41 -0
- package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
- package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
- package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
- package/lib/chat/tools/A2AAgentDialog.js +265 -0
- package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
- package/lib/chat/tools/index.d.ts +1 -0
- package/lib/chat/tools/index.js +1 -0
- package/lib/chat/usage/ContextPie.d.ts +17 -0
- package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
- package/lib/chat/useViewportDrag.d.ts +11 -0
- package/lib/chat/useViewportDrag.js +61 -0
- package/lib/chat/viewModes.d.ts +51 -0
- package/lib/chat/viewModes.js +57 -0
- package/lib/client/AgentRuntimesClient.d.ts +10 -9
- package/lib/client/AgentRuntimesClient.js +1 -1
- package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
- package/lib/client/AgentsMixin.d.ts +12 -12
- package/lib/client/AgentsMixin.js +31 -31
- package/lib/client/IAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.js +10 -10
- package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
- package/lib/client/mixins/RuntimesMixin.js +54 -21
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
- package/lib/components/agents/AgentSummary.d.ts +13 -0
- package/lib/components/agents/AgentSummary.js +21 -4
- package/lib/components/cards/NotificationEventCard.d.ts +1 -1
- package/lib/components/cards/OutputCard.d.ts +1 -1
- package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
- package/lib/components/cards/ToolApprovalCard.js +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
- package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +9 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +95 -23
- package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
- package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
- package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
- package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
- package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
- package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
- package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
- package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +97 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +184 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
- package/lib/components/code-sandboxes/index.d.ts +1 -0
- package/lib/components/code-sandboxes/index.js +1 -0
- package/lib/components/context/SpaceSelect.d.ts +1 -1
- package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
- package/lib/components/icons/ArtifactIcon.d.ts +1 -0
- package/lib/components/icons/ArtifactIcon.js +2 -1
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.d.ts +1 -0
- package/lib/components/progress/CreditsIndicator.js +0 -4
- package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
- package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
- package/lib/components/snippets/SnippetDialog.d.ts +1 -0
- package/lib/components/snippets/SnippetDialog.js +0 -4
- package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
- package/lib/components/specs/SpecPayloadPreview.js +102 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/context/ContextDistribution.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +2 -1
- package/lib/context/ContextPanel.d.ts +1 -1
- package/lib/context/ContextUsage.d.ts +1 -1
- package/lib/context/CostTracker.d.ts +1 -1
- package/lib/context/CostUsageChart.d.ts +1 -1
- package/lib/context/CostUsageChart.js +4 -4
- package/lib/context/MessageHistory.d.ts +3 -2
- package/lib/context/TokenUsageChart.d.ts +1 -1
- package/lib/context/TokenUsageChart.js +4 -4
- package/lib/examples/A2UiAgentExample.js +15 -6
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
- package/lib/examples/A2UiContactCardExample.d.ts +10 -0
- package/lib/examples/A2UiContactCardExample.js +23 -170
- package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
- package/lib/examples/A2UiJupyterOutputExample.js +792 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
- package/lib/examples/A2UiRestaurantExample.js +24 -179
- package/lib/examples/A2UiViewerExample.d.ts +10 -0
- package/lib/examples/A2UiViewerExample.js +24 -378
- package/lib/examples/AgUiAgenticExample.js +2 -4
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
- package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
- package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
- package/lib/examples/AgUiSharedStateExample.js +2 -4
- package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
- package/lib/examples/AgentA2AExample.d.ts +17 -0
- package/lib/examples/AgentA2AExample.js +56 -0
- package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
- package/lib/examples/AgentCheckpointsExample.js +72 -54
- package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
- package/lib/examples/AgentCodeSandboxExample.js +93 -303
- package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
- package/lib/examples/AgentCodeSandboxesExample.js +56 -162
- package/lib/examples/AgentCodemodeExample.d.ts +7 -2
- package/lib/examples/AgentCodemodeExample.js +60 -125
- package/lib/examples/AgentCompactionExample.js +19 -135
- package/lib/examples/AgentEvalsExample.js +34 -66
- package/lib/examples/AgentGuardrailsExample.js +64 -112
- package/lib/examples/AgentHooksExample.d.ts +11 -0
- package/lib/examples/AgentHooksExample.js +30 -67
- package/lib/examples/AgentInferenceProviderExample.js +8 -32
- package/lib/examples/AgentLoopExample.d.ts +4 -2
- package/lib/examples/AgentLoopExample.js +45 -93
- package/lib/examples/AgentMCPExample.js +30 -79
- package/lib/examples/AgentMemoryExample.js +21 -64
- package/lib/examples/AgentMonitoringExample.js +33 -94
- package/lib/examples/AgentNotificationsExample.js +56 -95
- package/lib/examples/AgentOtelExample.js +35 -88
- package/lib/examples/AgentOutputsExample.d.ts +2 -1
- package/lib/examples/AgentOutputsExample.js +16 -137
- package/lib/examples/AgentParametersExample.js +7 -17
- package/lib/examples/AgentSkillsExample.js +40 -154
- package/lib/examples/AgentSubagentsExample.d.ts +7 -6
- package/lib/examples/AgentSubagentsExample.js +80 -191
- package/lib/examples/AgentToolApprovalsExample.js +35 -91
- package/lib/examples/AgentTriggersExample.js +43 -59
- package/lib/examples/AgentspecsExample.js +4 -4
- package/lib/examples/CellExample.d.ts +1 -1
- package/lib/examples/ChatExample.d.ts +12 -5
- package/lib/examples/ChatExample.js +38 -13
- package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
- package/lib/examples/CopilotKitLexicalExample.js +4 -41
- package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
- package/lib/examples/CopilotKitNotebookExample.js +2 -14
- package/lib/examples/DecksAgent.d.ts +21 -0
- package/lib/examples/DecksAgent.js +23 -0
- package/lib/examples/DocumentPageAgent.d.ts +19 -0
- package/lib/examples/DocumentPageAgent.js +15 -0
- package/lib/examples/Lexical2Example.d.ts +2 -2
- package/lib/examples/Lexical2Example.js +17 -38
- package/lib/examples/LexicalAgentExample.d.ts +2 -1
- package/lib/examples/LexicalAgentExample.js +29 -102
- package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
- package/lib/examples/LexicalAgentSidebarExample.js +99 -131
- package/lib/examples/LoopShellExample.d.ts +38 -0
- package/lib/examples/LoopShellExample.js +68 -0
- package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
- package/lib/examples/LoopWorkspaceEmbed.js +73 -0
- package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
- package/lib/examples/LoopWorkspaceExample.js +151 -0
- package/lib/examples/NotebookAgentExample.d.ts +13 -0
- package/lib/examples/NotebookAgentExample.js +36 -86
- package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
- package/lib/examples/NotebookAgentSidebarExample.js +39 -83
- package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
- package/lib/examples/NotebookCollaborationExample.js +108 -20
- package/lib/examples/NotebookExample.d.ts +1 -1
- package/lib/examples/NotebookExample.js +20 -10
- package/lib/examples/NotebookPageAgent.d.ts +23 -0
- package/lib/examples/NotebookPageAgent.js +17 -0
- package/lib/examples/components/ExampleWrapper.d.ts +5 -0
- package/lib/examples/components/ExampleWrapper.js +36 -28
- package/lib/examples/components/LexicalEditor.d.ts +1 -1
- package/lib/examples/components/LexicalEditor.js +4 -24
- package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
- package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
- package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
- package/lib/examples/example-selector.js +26 -6
- package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
- package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
- package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
- package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
- package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
- package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
- package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
- package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
- package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
- package/lib/examples/index.d.ts +4 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/lexical/editorConfig.d.ts +2 -75
- package/lib/examples/lexical/editorConfig.js +26 -48
- package/lib/examples/lexical/lexical-theme.css +65 -47
- package/lib/examples/main.js +450 -322
- package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
- package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
- package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
- package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiViewerScene.js +395 -0
- package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
- package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
- package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
- package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
- package/lib/examples/utils/exampleSurfaces.js +38 -0
- package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
- package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
- package/lib/examples/utils/localUrl.d.ts +2 -0
- package/lib/examples/utils/localUrl.js +49 -0
- package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
- package/lib/examples/utils/notebookToolbarItems.js +129 -0
- package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
- package/lib/examples/utils/runtimeTargetStore.js +82 -1
- package/lib/examples/utils/themedProvider.d.ts +7 -0
- package/lib/examples/utils/themedProvider.js +57 -4
- package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
- package/lib/examples/utils/waitForAgent.d.ts +23 -0
- package/lib/examples/utils/waitForAgent.js +24 -0
- package/lib/examples2/CellExample.d.ts +1 -1
- package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
- package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
- package/lib/examples2/main.js +24 -4
- package/lib/extensions/A2UIExtension.d.ts +1 -1
- package/lib/hooks/index.d.ts +8 -5
- package/lib/hooks/index.js +20 -5
- package/lib/hooks/useAgentRuntimes.d.ts +49 -22
- package/lib/hooks/useAgentRuntimes.js +214 -90
- package/lib/hooks/useAgentsCatalog.js +32 -4
- package/lib/hooks/useBrowserAgent.d.ts +26 -0
- package/lib/hooks/useBrowserAgent.js +75 -0
- package/lib/hooks/useBrowserInference.d.ts +27 -0
- package/lib/hooks/useBrowserInference.js +67 -0
- package/lib/hooks/useCheckpoints.d.ts +8 -17
- package/lib/hooks/useCheckpoints.js +25 -59
- package/lib/hooks/useConfig.d.ts +1 -1
- package/lib/hooks/useConfig.js +5 -1
- package/lib/hooks/useContextSnapshot.d.ts +18 -7
- package/lib/hooks/useContextSnapshot.js +14 -10
- package/lib/hooks/useNotifications.d.ts +11 -11
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/useProjects.d.ts +7 -19
- package/lib/hooks/useProjects.js +5 -5
- package/lib/hooks/useSkills.d.ts +0 -1
- package/lib/hooks/useSkills.js +6 -2
- package/lib/hooks/useToolApprovals.d.ts +8 -8
- package/lib/hooks/useToolApprovals.js +3 -3
- package/lib/identity/AgentIdentity.d.ts +9 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/jupyter/index.d.ts +2 -1
- package/lib/jupyter/index.js +2 -1
- package/lib/jupyter/serverExecution.d.ts +78 -0
- package/lib/jupyter/serverExecution.js +258 -0
- package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
- package/lib/jupyter/useResumeServerExecutions.js +64 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
- package/lib/lexical/ChatInlinePlugin.js +0 -36
- package/lib/loop/core/focusRequests.d.ts +10 -0
- package/lib/loop/core/focusRequests.js +46 -0
- package/lib/loop/core/index.d.ts +903 -0
- package/lib/loop/core/index.js +264 -0
- package/lib/loop/core/promptStore.d.ts +44 -0
- package/lib/loop/core/promptStore.js +63 -0
- package/lib/loop/core/surfaceRequests.d.ts +33 -0
- package/lib/loop/core/surfaceRequests.js +29 -0
- package/lib/loop/core/toolbar.d.ts +28 -0
- package/lib/loop/core/toolbar.js +59 -0
- package/lib/loop/embed/LoopEmbed.d.ts +57 -0
- package/lib/loop/embed/LoopEmbed.js +124 -0
- package/lib/loop/extensions.d.ts +10 -0
- package/lib/loop/extensions.js +49 -0
- package/lib/loop/index.d.ts +68 -0
- package/lib/loop/index.js +87 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
- package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
- package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
- package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
- package/lib/loop/plugins/a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/a2ui/index.js +50 -0
- package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
- package/lib/loop/plugins/a2ui-scene/index.js +28 -0
- package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2a/index.js +26 -0
- package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui/index.js +42 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
- package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
- package/lib/loop/plugins/agent-capacity/index.js +52 -0
- package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
- package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
- package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
- package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
- package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
- package/lib/loop/plugins/agent-codemode/index.js +41 -0
- package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
- package/lib/loop/plugins/agent-compaction/index.js +34 -0
- package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
- package/lib/loop/plugins/agent-evals/index.js +25 -0
- package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
- package/lib/loop/plugins/agent-guardrails/index.js +25 -0
- package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
- package/lib/loop/plugins/agent-hooks/index.js +28 -0
- package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
- package/lib/loop/plugins/agent-inference/index.js +29 -0
- package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
- package/lib/loop/plugins/agent-mcp/index.js +25 -0
- package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
- package/lib/loop/plugins/agent-memory/index.js +25 -0
- package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
- package/lib/loop/plugins/agent-monitoring/index.js +25 -0
- package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
- package/lib/loop/plugins/agent-notifications/index.js +25 -0
- package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
- package/lib/loop/plugins/agent-otel/index.js +25 -0
- package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
- package/lib/loop/plugins/agent-outputs/index.js +25 -0
- package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
- package/lib/loop/plugins/agent-parameters/index.js +25 -0
- package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
- package/lib/loop/plugins/agent-skills/index.js +25 -0
- package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
- package/lib/loop/plugins/agent-subagents/index.js +25 -0
- package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
- package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
- package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
- package/lib/loop/plugins/agent-triggers/index.js +26 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
- package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
- package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
- package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
- package/lib/loop/plugins/agents/SandboxView.js +43 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
- package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
- package/lib/loop/plugins/agents/agentIcons.js +88 -0
- package/lib/loop/plugins/agents/browserService.d.ts +50 -0
- package/lib/loop/plugins/agents/browserService.js +233 -0
- package/lib/loop/plugins/agents/index.d.ts +13 -0
- package/lib/loop/plugins/agents/index.js +17 -0
- package/lib/loop/plugins/agents/plugin.d.ts +91 -0
- package/lib/loop/plugins/agents/plugin.js +201 -0
- package/lib/loop/plugins/agents/service.d.ts +99 -0
- package/lib/loop/plugins/agents/service.js +167 -0
- package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
- package/lib/loop/plugins/agents/specSubagents.js +33 -0
- package/lib/loop/plugins/agents/switchable.d.ts +107 -0
- package/lib/loop/plugins/agents/switchable.js +405 -0
- package/lib/loop/plugins/agents/team.d.ts +87 -0
- package/lib/loop/plugins/agents/team.js +143 -0
- package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
- package/lib/loop/plugins/agents/useSandboxService.js +36 -0
- package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
- package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
- package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
- package/lib/loop/plugins/agentspecs/index.js +63 -0
- package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
- package/lib/loop/plugins/chat/ChatView.js +1679 -0
- package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
- package/lib/loop/plugins/chat/chatViewTools.js +92 -0
- package/lib/loop/plugins/chat/index.d.ts +111 -0
- package/lib/loop/plugins/chat/index.js +143 -0
- package/lib/loop/plugins/chat/turnState.d.ts +41 -0
- package/lib/loop/plugins/chat/turnState.js +90 -0
- package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
- package/lib/loop/plugins/chat-extras/index.js +51 -0
- package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
- package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
- package/lib/loop/plugins/chat-header/index.d.ts +3 -0
- package/lib/loop/plugins/chat-header/index.js +21 -0
- package/lib/loop/plugins/chat-view/index.d.ts +10 -0
- package/lib/loop/plugins/chat-view/index.js +29 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
- package/lib/loop/plugins/commands/index.d.ts +20 -0
- package/lib/loop/plugins/commands/index.js +148 -0
- package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
- package/lib/loop/plugins/decks/DeckSurface.js +6 -0
- package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
- package/lib/loop/plugins/decks/DecksMenu.js +42 -0
- package/lib/loop/plugins/decks/index.d.ts +19 -0
- package/lib/loop/plugins/decks/index.js +133 -0
- package/lib/loop/plugins/decks/surface.d.ts +7 -0
- package/lib/loop/plugins/decks/surface.js +11 -0
- package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
- package/lib/loop/plugins/document/DocumentView.js +68 -0
- package/lib/loop/plugins/document/index.d.ts +3 -0
- package/lib/loop/plugins/document/index.js +86 -0
- package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
- package/lib/loop/plugins/document/openingDocument.js +122 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
- package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/document-toolbar/index.js +35 -0
- package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
- package/lib/loop/plugins/document-toolbar/names.js +10 -0
- package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
- package/lib/loop/plugins/document-view/index.d.ts +10 -0
- package/lib/loop/plugins/document-view/index.js +28 -0
- package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
- package/lib/loop/plugins/graph/GraphToggle.js +22 -0
- package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
- package/lib/loop/plugins/graph/GraphView.js +6 -0
- package/lib/loop/plugins/graph/index.d.ts +5 -0
- package/lib/loop/plugins/graph/index.js +80 -0
- package/lib/loop/plugins/graph/viewType.d.ts +10 -0
- package/lib/loop/plugins/graph/viewType.js +14 -0
- package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
- package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
- package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
- package/lib/loop/plugins/input-prompt/index.js +26 -0
- package/lib/loop/plugins/models/index.d.ts +3 -0
- package/lib/loop/plugins/models/index.js +49 -0
- package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
- package/lib/loop/plugins/notebook/NotebookView.js +189 -0
- package/lib/loop/plugins/notebook/index.d.ts +3 -0
- package/lib/loop/plugins/notebook/index.js +91 -0
- package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
- package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
- package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
- package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
- package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
- package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
- package/lib/loop/plugins/notebook-view/index.js +30 -0
- package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
- package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
- package/lib/loop/plugins/page-layout/index.d.ts +71 -0
- package/lib/loop/plugins/page-layout/index.js +160 -0
- package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
- package/lib/loop/plugins/plugins-panel/index.js +74 -0
- package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
- package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
- package/lib/loop/plugins/prompt/index.d.ts +11 -0
- package/lib/loop/plugins/prompt/index.js +73 -0
- package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
- package/lib/loop/plugins/shell/editorChoice.js +58 -0
- package/lib/loop/plugins/shell/index.d.ts +47 -0
- package/lib/loop/plugins/shell/index.js +142 -0
- package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
- package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
- package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
- package/lib/loop/plugins/subagent-activity/index.js +42 -0
- package/lib/loop/plugins/view-switch/index.d.ts +46 -0
- package/lib/loop/plugins/view-switch/index.js +68 -0
- package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
- package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
- package/lib/loop/plugins/window-frame/index.d.ts +6 -0
- package/lib/loop/plugins/window-frame/index.js +79 -0
- package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
- package/lib/loop/plugins/window-frame/slots.js +30 -0
- package/lib/loop/presets.d.ts +181 -0
- package/lib/loop/presets.js +141 -0
- package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
- package/lib/loop/shell/LoopWorkspace.js +231 -0
- package/lib/loop/shell/PluginToggles.d.ts +21 -0
- package/lib/loop/shell/PluginToggles.js +41 -0
- package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
- package/lib/loop/shell/ViewSwitcher.js +43 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
- package/lib/loop/shell/index.d.ts +10 -0
- package/lib/loop/shell/index.js +14 -0
- package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
- package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
- package/lib/loop-example-main.d.ts +1 -0
- package/lib/loop-example-main.js +42 -0
- package/lib/loop-main.d.ts +1 -0
- package/lib/loop-main.js +138 -0
- package/lib/mcp/McpServerManager.d.ts +1 -1
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
- package/lib/models/CodeSandboxVariant.d.ts +13 -5
- package/lib/models/CodeSandboxVariant.js +17 -5
- package/lib/models/Content.d.ts +26 -0
- package/lib/models/Deck.d.ts +14 -0
- package/lib/models/Environment.d.ts +678 -5
- package/lib/models/Environment.js +12 -1
- package/lib/models/EnvironmentDTO.d.ts +24 -6
- package/lib/models/EnvironmentDTO.js +13 -2
- package/lib/models/Exercise.d.ts +0 -2
- package/lib/models/ItemType.d.ts +1 -1
- package/lib/models/Library.d.ts +0 -2
- package/lib/models/Notebook.d.ts +0 -2
- package/lib/models/ProjectDTO.d.ts +2 -2
- package/lib/models/ProjectDTO.js +4 -4
- package/lib/models/Runtime.d.ts +17 -11
- package/lib/models/RuntimeDTO.d.ts +16 -7
- package/lib/models/RuntimeDTO.js +9 -9
- package/lib/models/Space.d.ts +10 -0
- package/lib/models/Space.js +1 -1
- package/lib/models/SpaceDTO.d.ts +1 -1
- package/lib/models/SpaceItem.d.ts +2 -2
- package/lib/models/environments.generated.d.ts +141 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +1 -1
- package/lib/models/index.js +1 -1
- package/lib/protocols/A2AAdapter.d.ts +39 -6
- package/lib/protocols/A2AAdapter.js +180 -11
- package/lib/protocols/ACPAdapter.js +40 -37
- package/lib/protocols/AGUIAdapter.d.ts +14 -0
- package/lib/protocols/AGUIAdapter.js +34 -9
- package/lib/protocols/BrowserAgentAdapter.d.ts +125 -0
- package/lib/protocols/BrowserAgentAdapter.js +317 -0
- package/lib/protocols/VercelAIAdapter.d.ts +10 -0
- package/lib/protocols/VercelAIAdapter.js +27 -7
- package/lib/protocols/index.d.ts +1 -0
- package/lib/protocols/index.js +1 -0
- package/lib/runtimes/actions.d.ts +8 -3
- package/lib/runtimes/actions.js +46 -14
- package/lib/runtimes/apis.d.ts +13 -4
- package/lib/runtimes/browser/agent.d.ts +54 -0
- package/lib/runtimes/browser/agent.js +63 -0
- package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
- package/lib/runtimes/browser/anonymousToken.js +300 -0
- package/lib/runtimes/browser/frontendTools.d.ts +61 -0
- package/lib/runtimes/browser/frontendTools.js +152 -0
- package/lib/runtimes/browser/index.d.ts +11 -0
- package/lib/runtimes/browser/index.js +20 -0
- package/lib/runtimes/browser/model.d.ts +52 -0
- package/lib/runtimes/browser/model.js +110 -0
- package/lib/runtimes/browser/protocol.d.ts +54 -0
- package/lib/runtimes/browser/protocol.js +35 -0
- package/lib/runtimes/browser/subagents.d.ts +131 -0
- package/lib/runtimes/browser/subagents.js +241 -0
- package/lib/runtimes/index.d.ts +3 -0
- package/lib/runtimes/index.js +3 -0
- package/lib/runtimes/lifecycle.d.ts +76 -0
- package/lib/runtimes/lifecycle.js +99 -0
- package/lib/runtimes/variants.d.ts +172 -0
- package/lib/runtimes/variants.js +187 -0
- package/lib/services/reconnectToRuntime.d.ts +2 -2
- package/lib/services/reconnectToRuntime.js +3 -3
- package/lib/services/sandboxServiceManagers.d.ts +2 -2
- package/lib/services/sandboxServiceManagers.js +11 -11
- package/lib/specs/agents/agents.d.ts +129 -112
- package/lib/specs/agents/agents.js +8200 -5044
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +4 -0
- package/lib/specs/frontendTools.js +77 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +38 -15
- package/lib/specs/models.d.ts +18 -0
- package/lib/specs/models.js +154 -0
- package/lib/specs/outputs.d.ts +2 -0
- package/lib/specs/outputs.js +31 -0
- package/lib/specs/personas.js +1 -1
- package/lib/specs/skills.js +7 -7
- package/lib/specs/teams/teams.d.ts +2 -0
- package/lib/specs/teams/teams.js +628 -111
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -1
- package/lib/state/substates/RuntimesState.d.ts +5 -5
- package/lib/state/substates/RuntimesState.js +14 -14
- package/lib/state/substates/index.d.ts +1 -1
- package/lib/state/substates/index.js +1 -1
- package/lib/stores/agentRuntimeStore.d.ts +43 -1
- package/lib/stores/agentRuntimeStore.js +100 -11
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/stories/Button.d.ts +1 -1
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +1 -1
- package/lib/test-setup.js +66 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
- package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
- package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
- package/lib/tools/adapters/commands/index.d.ts +1 -0
- package/lib/tools/adapters/commands/index.js +5 -0
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/types/a2a.d.ts +15 -1
- package/lib/types/agents-lifecycle.d.ts +11 -6
- package/lib/types/agents.d.ts +31 -6
- package/lib/types/agentspecs.d.ts +120 -4
- package/lib/types/chat.d.ts +251 -3
- package/lib/types/checkpoints.d.ts +20 -0
- package/lib/types/config.d.ts +13 -1
- package/lib/types/connection.d.ts +1 -1
- package/lib/types/evals.d.ts +2 -0
- package/lib/types/messages.d.ts +60 -0
- package/lib/types/models.d.ts +26 -0
- package/lib/types/notifications.d.ts +15 -6
- package/lib/types/outputs.d.ts +2 -0
- package/lib/types/protocol.d.ts +7 -2
- package/lib/types/stream.d.ts +48 -3
- package/lib/types/stream.js +5 -0
- package/lib/types/teams.d.ts +102 -4
- package/lib/types/tool-approvals.d.ts +1 -1
- package/lib/types/tools.d.ts +8 -2
- package/lib/utils/utils.js +7 -1
- package/package.json +376 -361
- package/scripts/codegen/compose.py +208 -0
- package/scripts/codegen/generate_agents.py +202 -31
- package/scripts/codegen/generate_evals.py +2 -0
- package/scripts/codegen/generate_frontend_tools.py +35 -6
- package/scripts/codegen/generate_mcp_servers.py +2 -2
- package/scripts/codegen/generate_models.py +40 -15
- package/scripts/codegen/generate_outputs.py +2 -0
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- package/scripts/codegen/generate_skills.py +2 -2
- package/scripts/codegen/generate_teams.py +178 -4
- package/scripts/codegen/generate_tools.py +6 -4
- package/scripts/gen_workers.py +278 -110
- package/scripts/generate-environments-types.py +404 -0
- package/lib/chat/prompt/InputFooter.d.ts +0 -58
- package/lib/chat/prompt/InputFooter.js +0 -194
- package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
- package/lib/chat/prompt/InputPromptFooter.js +0 -15
- package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
- package/lib/chat/prompt/InputPromptHeader.js +0 -15
- package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
- package/lib/hooks/useRuntimes.d.ts +0 -5
- package/lib/hooks/useRuntimes.js +0 -34
- package/lib/jupyter/kernelsHandler.d.ts +0 -8
- package/lib/jupyter/kernelsHandler.js +0 -39
- package/lib/models/Dataset.d.ts +0 -16
- package/lib/utils/Cells.d.ts +0 -2
- package/lib/utils/Cells.js +0 -28
- /package/lib/models/{Dataset.js → Deck.js} +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } 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
|
+
* `@datalayer/loop-plugin-window-frame` — Loop in a window.
|
|
8
|
+
*
|
|
9
|
+
* The frame a page puts around an embedded Loop, and the two slots that make
|
|
10
|
+
* its title bar extensible. The plugin itself contributes only the window
|
|
11
|
+
* controls; everything else in the bar is somebody's contribution.
|
|
12
|
+
*
|
|
13
|
+
* Why a plugin and not just a component: the point of the frame is the slots,
|
|
14
|
+
* and a slot is only useful if something can be contributed to it without the
|
|
15
|
+
* host forwarding it. A page adds a button by mounting a plugin, exactly as it
|
|
16
|
+
* would add anything else to the workspace — and a plugin that ships a control
|
|
17
|
+
* takes the control with it when it is switched off.
|
|
18
|
+
*
|
|
19
|
+
* The frame is composed rather than injected: a plugin cannot wrap the shell,
|
|
20
|
+
* so the host renders `<WindowFrame>` around whatever it is framing. That is
|
|
21
|
+
* the one thing the host still does, and it is the one thing only the host
|
|
22
|
+
* knows — how much of its page to give away.
|
|
23
|
+
*
|
|
24
|
+
* ```tsx
|
|
25
|
+
* const reactor = buildLoopReactor([...loopPlugins(), WindowFramePlugin]);
|
|
26
|
+
*
|
|
27
|
+
* <WindowFrame title="Loop" height="60vh">
|
|
28
|
+
* <LoopWorkspace reactor={reactor} … />
|
|
29
|
+
* </WindowFrame>
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @module loop/plugins/window-frame
|
|
33
|
+
*/
|
|
34
|
+
import { definePlugin } from '@datalayer/reactor';
|
|
35
|
+
import { Box } from '@datalayer/primer-addons';
|
|
36
|
+
import { LoopSlots } from '../../core';
|
|
37
|
+
import { WorkspaceFullScreenAction } from '../../shell/WorkspaceFullScreenAction';
|
|
38
|
+
import { WINDOW_CONTROLS_SLOT } from './slots';
|
|
39
|
+
export { WindowFrame } from './WindowFrame';
|
|
40
|
+
export { WINDOW_ACTIONS_SLOT, WINDOW_CONTROLS_SLOT } from './slots';
|
|
41
|
+
export const WINDOW_FRAME_PLUGIN_NAME = '@datalayer/loop-plugin-window-frame';
|
|
42
|
+
/**
|
|
43
|
+
* The three dots.
|
|
44
|
+
*
|
|
45
|
+
* They say "this is an application" without imitating a particular one, which
|
|
46
|
+
* is why they are dots and not a close button that closes nothing. Contributed
|
|
47
|
+
* rather than drawn into the frame so a host with its own idea of window
|
|
48
|
+
* controls can switch this plugin off and fill the slot itself.
|
|
49
|
+
*/
|
|
50
|
+
function WindowControls() {
|
|
51
|
+
return (_jsx(_Fragment, { children: ['danger.emphasis', 'attention.emphasis', 'success.emphasis'].map(token => (_jsx(Box, { sx: { width: 10, height: 10, borderRadius: '50%', bg: token } }, token))) }));
|
|
52
|
+
}
|
|
53
|
+
export const WindowFramePlugin = definePlugin({
|
|
54
|
+
name: WINDOW_FRAME_PLUGIN_NAME,
|
|
55
|
+
displayName: 'Window frame',
|
|
56
|
+
description: 'Draws Loop as a window, and opens its title bar to controls and actions.',
|
|
57
|
+
octicon: 'browser',
|
|
58
|
+
emoji: '\u{1FA9F}',
|
|
59
|
+
build: () => ({
|
|
60
|
+
components: [
|
|
61
|
+
{
|
|
62
|
+
id: 'window-controls',
|
|
63
|
+
slot: WINDOW_CONTROLS_SLOT,
|
|
64
|
+
Component: WindowControls,
|
|
65
|
+
},
|
|
66
|
+
// Full screen is window chrome, so the window plugin is where it comes
|
|
67
|
+
// from: the workspace header gains the same control the chat header
|
|
68
|
+
// carries, which is what keeps it reachable for a shell that hides the
|
|
69
|
+
// chat's chrome. Registered after the editor selector, so it sits on
|
|
70
|
+
// the far trailing edge of the row.
|
|
71
|
+
{
|
|
72
|
+
id: 'full-screen',
|
|
73
|
+
slot: LoopSlots.header,
|
|
74
|
+
Component: WorkspaceFullScreenAction,
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
}),
|
|
78
|
+
});
|
|
79
|
+
export default WindowFramePlugin;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The window frame's slots, by name.
|
|
3
|
+
*
|
|
4
|
+
* In their own module so the frame component, the plugin and a host that fills
|
|
5
|
+
* them can each import the names without importing each other — the same
|
|
6
|
+
* reason the graph plugin keeps its view type apart.
|
|
7
|
+
*
|
|
8
|
+
* @module loop/plugins/window-frame/slots
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The leading edge of the title bar.
|
|
12
|
+
*
|
|
13
|
+
* The three dots are contributed here by the plugin itself, so a host that
|
|
14
|
+
* wants a different set of window controls can switch the plugin off and
|
|
15
|
+
* contribute its own rather than fight the ones it was given.
|
|
16
|
+
*/
|
|
17
|
+
export declare const WINDOW_CONTROLS_SLOT = "loop.window.controls";
|
|
18
|
+
/**
|
|
19
|
+
* The trailing edge of the title bar.
|
|
20
|
+
*
|
|
21
|
+
* Empty unless a host fills it. What belongs here is what the *page* offers
|
|
22
|
+
* about the workspace — a link to the section that explains it, a sign-in
|
|
23
|
+
* prompt — as opposed to what the workspace offers about the conversation,
|
|
24
|
+
* which is the chat's own header.
|
|
25
|
+
*/
|
|
26
|
+
export declare const WINDOW_ACTIONS_SLOT = "loop.window.actions";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The window frame's slots, by name.
|
|
7
|
+
*
|
|
8
|
+
* In their own module so the frame component, the plugin and a host that fills
|
|
9
|
+
* them can each import the names without importing each other — the same
|
|
10
|
+
* reason the graph plugin keeps its view type apart.
|
|
11
|
+
*
|
|
12
|
+
* @module loop/plugins/window-frame/slots
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The leading edge of the title bar.
|
|
16
|
+
*
|
|
17
|
+
* The three dots are contributed here by the plugin itself, so a host that
|
|
18
|
+
* wants a different set of window controls can switch the plugin off and
|
|
19
|
+
* contribute its own rather than fight the ones it was given.
|
|
20
|
+
*/
|
|
21
|
+
export const WINDOW_CONTROLS_SLOT = 'loop.window.controls';
|
|
22
|
+
/**
|
|
23
|
+
* The trailing edge of the title bar.
|
|
24
|
+
*
|
|
25
|
+
* Empty unless a host fills it. What belongs here is what the *page* offers
|
|
26
|
+
* about the workspace — a link to the section that explains it, a sign-in
|
|
27
|
+
* prompt — as opposed to what the workspace offers about the conversation,
|
|
28
|
+
* which is the chat's own header.
|
|
29
|
+
*/
|
|
30
|
+
export const WINDOW_ACTIONS_SLOT = 'loop.window.actions';
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The plugins a Loop workspace normally has.
|
|
3
|
+
*
|
|
4
|
+
* A host builds a workspace by choosing plugins, which is the point of the
|
|
5
|
+
* architecture and also a lot to get right before seeing anything. This is the
|
|
6
|
+
* set the examples app runs, as a function, so a third party can start from a
|
|
7
|
+
* working Loop and take things out rather than assemble one from nothing.
|
|
8
|
+
*
|
|
9
|
+
* It exists because the landing page was importing the *example* to get it.
|
|
10
|
+
* An example is written to be read: its props are demonstration switches, its
|
|
11
|
+
* wiring is whatever made the demo clearest, and nothing about it is a promise.
|
|
12
|
+
* A page that embeds Loop needs the plugins, not the demonstration — and the
|
|
13
|
+
* two drifting apart should not be able to break somebody's home page.
|
|
14
|
+
*
|
|
15
|
+
* ```tsx
|
|
16
|
+
* const reactor = buildLoopReactor(loopPlugins({ serverUrl, target: 'browser' }));
|
|
17
|
+
* <LoopWorkspace reactor={reactor} serverUrl={serverUrl} agentId={agentId} />
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @module loop/presets
|
|
21
|
+
*/
|
|
22
|
+
import { type PluginRef } from '@datalayer/reactor';
|
|
23
|
+
import { type AgentsConfig, type SandboxTarget } from './plugins/agents';
|
|
24
|
+
import { type ChatPluginConfig } from './plugins/chat';
|
|
25
|
+
import { type PageSize } from './plugins/page-layout';
|
|
26
|
+
export type LoopPresetOptions = {
|
|
27
|
+
/** Where the agent runtimes service is. */
|
|
28
|
+
serverUrl?: string;
|
|
29
|
+
/** Where code runs: in the page, on a local server, or on Datalayer. */
|
|
30
|
+
target?: SandboxTarget;
|
|
31
|
+
/**
|
|
32
|
+
* Which surface opens beside the chat.
|
|
33
|
+
*
|
|
34
|
+
* A surface id rather than a fixed union, because the surfaces are
|
|
35
|
+
* contributed: an editor plugin the preset has never heard of is still a
|
|
36
|
+
* valid answer, and `'none'` is how a host asks for the chat alone.
|
|
37
|
+
*/
|
|
38
|
+
defaultEditor?: ChatPluginConfig['defaultSurface'];
|
|
39
|
+
/** Whether the chat offers its surface switcher. */
|
|
40
|
+
showViewSelector?: boolean;
|
|
41
|
+
/** Whether the chat draws its own header. */
|
|
42
|
+
hideChatHeader?: boolean;
|
|
43
|
+
/** Where the prompt sits. Passed through to the chat plugin. */
|
|
44
|
+
promptPlacement?: ChatPluginConfig['promptPlacement'];
|
|
45
|
+
/**
|
|
46
|
+
* Whether the composer takes the caret when the workspace opens. True by
|
|
47
|
+
* default — the workspace is there to be typed into. A host that embeds the
|
|
48
|
+
* loop as one section of a longer page passes `false`, so that mounting it
|
|
49
|
+
* does not scroll the reader into the middle of the page.
|
|
50
|
+
*/
|
|
51
|
+
autoFocusPrompt?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Pixels to reserve at the top of the workspace when it goes full screen,
|
|
54
|
+
* for a host's own fixed header. Passed through to the chat plugin — see
|
|
55
|
+
* `ChatPluginConfig.fullScreenTopOffset` for what it changes and why
|
|
56
|
+
* setting it also keeps full screen off the browser's real API.
|
|
57
|
+
*/
|
|
58
|
+
fullScreenTopOffset?: number | string;
|
|
59
|
+
/** Whether a person may choose between agent variants. */
|
|
60
|
+
showAgentVariants?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Whether the header offers the team's member picker. True by default; a
|
|
63
|
+
* host that renders the choice itself passes `false`.
|
|
64
|
+
*/
|
|
65
|
+
teamPicker?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* The page layout: the editor on a centred sheet, like a document, with
|
|
68
|
+
* the composer docked above it at the sheet's own width and the
|
|
69
|
+
* conversation in a panel beside it. Mounts `LoopPageLayoutPlugin`, which
|
|
70
|
+
* hands the chat view's parts to primer-addons' page layout through the
|
|
71
|
+
* `LoopChatLayout` point.
|
|
72
|
+
*/
|
|
73
|
+
pageLayout?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Where the page layout hangs the current turn on the composer: `below`
|
|
76
|
+
* (the default), `above`, or `none`. Only read with `pageLayout`.
|
|
77
|
+
*/
|
|
78
|
+
pageLayoutTurnPanel?: 'below' | 'above' | 'none';
|
|
79
|
+
/**
|
|
80
|
+
* How the page layout stands the composer over the page: `docked` (the
|
|
81
|
+
* default) in a band above the canvas at the sheet's width, or `floating`
|
|
82
|
+
* as a draggable card over the top of the canvas.
|
|
83
|
+
*/
|
|
84
|
+
pageLayoutPrompt?: 'docked' | 'floating';
|
|
85
|
+
/**
|
|
86
|
+
* Which edge a floating composer starts at: `top` (the default) or
|
|
87
|
+
* `bottom`. It is dragged from there either way. Only read with
|
|
88
|
+
* `pageLayoutPrompt: 'floating'`.
|
|
89
|
+
*/
|
|
90
|
+
pageLayoutPromptAnchor?: 'top' | 'bottom';
|
|
91
|
+
/**
|
|
92
|
+
* The page layout's sheet: free (the default) at its reading width, or a
|
|
93
|
+
* paper — `{ format: 'letter' }`, `{ format: 'a4' }` — whose width it
|
|
94
|
+
* takes and whose height it is at least; a free `width` or `height` over
|
|
95
|
+
* either. Only read with `pageLayout`.
|
|
96
|
+
*/
|
|
97
|
+
pageLayoutSize?: PageSize;
|
|
98
|
+
/**
|
|
99
|
+
* What the turn panel draws under the reply: the full turn footer
|
|
100
|
+
* (counters, copy, dismiss — the default), `actions` only, or `none`.
|
|
101
|
+
*/
|
|
102
|
+
pageLayoutTurnPanelFooter?: 'full' | 'actions' | 'none';
|
|
103
|
+
/**
|
|
104
|
+
* The agent summary badge in the workspace header. On by default; a host
|
|
105
|
+
* whose page already introduces the agent switches it off.
|
|
106
|
+
*/
|
|
107
|
+
agentSummary?: boolean;
|
|
108
|
+
/** The team whose agents are offered. */
|
|
109
|
+
teamId?: string;
|
|
110
|
+
/** What a local agent is created from, when one is. */
|
|
111
|
+
localAgent?: AgentsConfig['localAgent'];
|
|
112
|
+
/**
|
|
113
|
+
* The agentspec the local agent is created from, by id.
|
|
114
|
+
*
|
|
115
|
+
* Shorthand for the `localAgent` payload every host was writing out by
|
|
116
|
+
* hand; `localAgent`, when both are given, wins — it is the longhand.
|
|
117
|
+
*/
|
|
118
|
+
localAgentSpec?: string;
|
|
119
|
+
/**
|
|
120
|
+
* The chat's composer in a floating, draggable card.
|
|
121
|
+
*
|
|
122
|
+
* Sets the chat's `promptPlacement` to `'floating'` — it is the same
|
|
123
|
+
* composer, card included — and mounts `PromptPlugin` for the `/prompt`
|
|
124
|
+
* command that focuses it: the two halves of one decision, taken together.
|
|
125
|
+
* Wins over `promptPlacement` when both are given.
|
|
126
|
+
*/
|
|
127
|
+
floatingPrompt?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Whether the notebook and document editors are mounted beside the chat.
|
|
130
|
+
*
|
|
131
|
+
* True by default. A host that wants the chat alone passes `false`: the
|
|
132
|
+
* two editor plugins, their toolbars and the surface strip all stay out,
|
|
133
|
+
* and the chat opens on no surface — rather than mounting editors and
|
|
134
|
+
* hiding the way to them, which leaves a workspace that still speaks of
|
|
135
|
+
* cells and documents.
|
|
136
|
+
*/
|
|
137
|
+
editors?: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* The editor choice in the workspace header rather than above the chat.
|
|
140
|
+
*
|
|
141
|
+
* Mounts `EditorsPlugin` and switches the chat's own surface strip off —
|
|
142
|
+
* again both halves of one decision: two controls offering the same choice
|
|
143
|
+
* would eventually disagree about what is open.
|
|
144
|
+
*/
|
|
145
|
+
editorSelector?: boolean;
|
|
146
|
+
/**
|
|
147
|
+
* The plugin graph, reachable from the sidebar.
|
|
148
|
+
*
|
|
149
|
+
* Left out rather than mounted-and-hidden: it pulls the generic
|
|
150
|
+
* `@datalayer/reactor-graph` in as a dependency, and mounting both to show
|
|
151
|
+
* neither would put two plugins in the sidebar that do nothing.
|
|
152
|
+
*/
|
|
153
|
+
graph?: boolean;
|
|
154
|
+
/** Ctrl-K over whatever the mounted plugins contribute. */
|
|
155
|
+
commandPalette?: boolean;
|
|
156
|
+
/** The sidebar that switches plugins on and off. */
|
|
157
|
+
pluginsPanel?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* The window chrome's slots.
|
|
160
|
+
*
|
|
161
|
+
* The frame itself is composed by the host — see `WindowFrame` — but the
|
|
162
|
+
* plugin is what opens its title bar to contributions, so a host that frames
|
|
163
|
+
* Loop wants this on.
|
|
164
|
+
*/
|
|
165
|
+
windowFrame?: boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Called once, the first time a person sends a message through the
|
|
168
|
+
* composer. Passed straight through to `InputPromptPlugin`'s own config —
|
|
169
|
+
* see `InputPromptPluginConfig.firstPromptHook` for what it is for and
|
|
170
|
+
* when it fires.
|
|
171
|
+
*/
|
|
172
|
+
firstPromptHook?: () => void;
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* The standard set, with the options a host usually varies.
|
|
176
|
+
*
|
|
177
|
+
* Defaults are the embeddable ones: code runs in the page, so nothing has to
|
|
178
|
+
* be installed or signed into, and the switches a demonstration wants are off.
|
|
179
|
+
*/
|
|
180
|
+
export declare function loopPlugins(options?: LoopPresetOptions): PluginRef[];
|
|
181
|
+
export default loopPlugins;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The plugins a Loop workspace normally has.
|
|
7
|
+
*
|
|
8
|
+
* A host builds a workspace by choosing plugins, which is the point of the
|
|
9
|
+
* architecture and also a lot to get right before seeing anything. This is the
|
|
10
|
+
* set the examples app runs, as a function, so a third party can start from a
|
|
11
|
+
* working Loop and take things out rather than assemble one from nothing.
|
|
12
|
+
*
|
|
13
|
+
* It exists because the landing page was importing the *example* to get it.
|
|
14
|
+
* An example is written to be read: its props are demonstration switches, its
|
|
15
|
+
* wiring is whatever made the demo clearest, and nothing about it is a promise.
|
|
16
|
+
* A page that embeds Loop needs the plugins, not the demonstration — and the
|
|
17
|
+
* two drifting apart should not be able to break somebody's home page.
|
|
18
|
+
*
|
|
19
|
+
* ```tsx
|
|
20
|
+
* const reactor = buildLoopReactor(loopPlugins({ serverUrl, target: 'browser' }));
|
|
21
|
+
* <LoopWorkspace reactor={reactor} serverUrl={serverUrl} agentId={agentId} />
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @module loop/presets
|
|
25
|
+
*/
|
|
26
|
+
import { configurePlugin } from '@datalayer/reactor';
|
|
27
|
+
import { ThemePlugin } from '@datalayer/primer-addons/lib/reactor';
|
|
28
|
+
import { SubagentActivityPlugin } from './plugins/subagent-activity';
|
|
29
|
+
import { A2uiPlugin } from './plugins/a2ui';
|
|
30
|
+
import { ShellPlugin } from './plugins/shell';
|
|
31
|
+
import { PromptPlugin } from './plugins/prompt';
|
|
32
|
+
import { AgentspecsPlugin } from './plugins/agentspecs';
|
|
33
|
+
import { AgentsPlugin, } from './plugins/agents';
|
|
34
|
+
import { ChatPlugin } from './plugins/chat';
|
|
35
|
+
import { ChatHeaderPlugin } from './plugins/chat-header';
|
|
36
|
+
import { ChatViewPlugin } from './plugins/chat-view';
|
|
37
|
+
import { DocumentViewPlugin } from './plugins/document-view';
|
|
38
|
+
import { InputPromptPlugin } from './plugins/input-prompt';
|
|
39
|
+
import { NotebookViewPlugin } from './plugins/notebook-view';
|
|
40
|
+
import { LoopCommandsPlugin } from './plugins/commands';
|
|
41
|
+
import { GraphViewPlugin } from './plugins/graph';
|
|
42
|
+
import { ModelsPlugin } from './plugins/models';
|
|
43
|
+
import { PluginsPanelPlugin } from './plugins/plugins-panel';
|
|
44
|
+
import { WindowFramePlugin } from './plugins/window-frame';
|
|
45
|
+
import { DocumentExtension, NotebookExtension } from './extensions';
|
|
46
|
+
import { LoopPageLayoutPlugin } from './plugins/page-layout';
|
|
47
|
+
/**
|
|
48
|
+
* The standard set, with the options a host usually varies.
|
|
49
|
+
*
|
|
50
|
+
* Defaults are the embeddable ones: code runs in the page, so nothing has to
|
|
51
|
+
* be installed or signed into, and the switches a demonstration wants are off.
|
|
52
|
+
*/
|
|
53
|
+
export function loopPlugins(options = {}) {
|
|
54
|
+
const { serverUrl, target = 'browser', defaultEditor = 'notebook', showViewSelector = true, hideChatHeader = false, promptPlacement, autoFocusPrompt = true, fullScreenTopOffset = 0, showAgentVariants = false, agentSummary = true, teamId, teamPicker = true, pageLayout = false, pageLayoutTurnPanel = 'below', pageLayoutPrompt = 'docked', pageLayoutPromptAnchor = 'top', pageLayoutSize, pageLayoutTurnPanelFooter = 'full', localAgent, localAgentSpec, floatingPrompt = false, editorSelector = false, editors = true, graph = false, commandPalette = false, pluginsPanel = false, windowFrame = false, firstPromptHook, } = options;
|
|
55
|
+
return [
|
|
56
|
+
// The chat owns the editor beside it, so which one opens is its
|
|
57
|
+
// configuration rather than the workspace's.
|
|
58
|
+
configurePlugin(ChatPlugin, {
|
|
59
|
+
defaultSurface: editors ? defaultEditor : 'none',
|
|
60
|
+
// The chat's strip stands down when the header selector offers the
|
|
61
|
+
// same choice; see `editorSelector` — and when there is no editor
|
|
62
|
+
// to choose.
|
|
63
|
+
showSurfaceSelector: editors && showViewSelector && !editorSelector,
|
|
64
|
+
hideHeader: hideChatHeader,
|
|
65
|
+
promptPlacement: floatingPrompt ? 'floating' : promptPlacement,
|
|
66
|
+
autoFocusPrompt,
|
|
67
|
+
fullScreenTopOffset,
|
|
68
|
+
}),
|
|
69
|
+
// The composer and the title bar are plugins of their own: the chat
|
|
70
|
+
// assembles their props, these render them. In the preset by default —
|
|
71
|
+
// a chat without a composer is a demonstration, not a chat — and each is
|
|
72
|
+
// still switched individually in the plugins panel.
|
|
73
|
+
configurePlugin(InputPromptPlugin, { firstPromptHook }),
|
|
74
|
+
ChatHeaderPlugin,
|
|
75
|
+
// One footer icon per view, in the composer where the writing hand
|
|
76
|
+
// already is. Each editor's icon withdraws while its editor is not
|
|
77
|
+
// contributed, so mounting these unconditionally costs an absent editor
|
|
78
|
+
// nothing.
|
|
79
|
+
ChatViewPlugin,
|
|
80
|
+
...(editors ? [NotebookViewPlugin, DocumentViewPlugin] : []),
|
|
81
|
+
configurePlugin(AgentsPlugin, {
|
|
82
|
+
serverUrl,
|
|
83
|
+
target,
|
|
84
|
+
showAgentVariants,
|
|
85
|
+
showAgentSummary: agentSummary,
|
|
86
|
+
teamId,
|
|
87
|
+
showTeamPicker: teamPicker,
|
|
88
|
+
localAgent: localAgent ??
|
|
89
|
+
(localAgentSpec
|
|
90
|
+
? {
|
|
91
|
+
createPayload: {
|
|
92
|
+
description: `Local agent from the ${localAgentSpec} spec`,
|
|
93
|
+
agent_library: 'pydantic-ai',
|
|
94
|
+
agent_spec_id: localAgentSpec,
|
|
95
|
+
enable_codemode: false,
|
|
96
|
+
},
|
|
97
|
+
}
|
|
98
|
+
: undefined),
|
|
99
|
+
}),
|
|
100
|
+
// Two extensions rather than four plugins: each delivers an editor and the
|
|
101
|
+
// toolbar that reports on it. Every member is still switched individually.
|
|
102
|
+
...(editors ? [NotebookExtension, DocumentExtension] : []),
|
|
103
|
+
A2uiPlugin,
|
|
104
|
+
AgentspecsPlugin,
|
|
105
|
+
ModelsPlugin,
|
|
106
|
+
// The Primer portal root, kept in the application's color mode, and the
|
|
107
|
+
// command that toggles it. Unconditional: every workspace portals
|
|
108
|
+
// something, and the palette's dependency alone would tie the theme to
|
|
109
|
+
// whether Ctrl-K happens to be mounted.
|
|
110
|
+
ThemePlugin,
|
|
111
|
+
// A delegation, visible: the subagent's icon pulses in the prompt's
|
|
112
|
+
// header while it works. Unconditional, because a parent that has handed
|
|
113
|
+
// work off is otherwise indistinguishable from one that has stopped.
|
|
114
|
+
SubagentActivityPlugin,
|
|
115
|
+
// The shell plugin is unconditional: it declares the points the others
|
|
116
|
+
// extend, and a workspace where extending works only if a selector
|
|
117
|
+
// happens to be on is a workspace with a trap in it. The selector itself
|
|
118
|
+
// stays behind the old switch.
|
|
119
|
+
configurePlugin(ShellPlugin, {
|
|
120
|
+
defaultEditor: editors ? defaultEditor : 'none',
|
|
121
|
+
showSelector: editors && editorSelector,
|
|
122
|
+
}),
|
|
123
|
+
...(floatingPrompt ? [PromptPlugin] : []),
|
|
124
|
+
...(pageLayout
|
|
125
|
+
? [
|
|
126
|
+
configurePlugin(LoopPageLayoutPlugin, {
|
|
127
|
+
turnPanel: pageLayoutTurnPanel,
|
|
128
|
+
turnPanelFooter: pageLayoutTurnPanelFooter,
|
|
129
|
+
prompt: pageLayoutPrompt,
|
|
130
|
+
promptAnchor: pageLayoutPromptAnchor,
|
|
131
|
+
pageSize: pageLayoutSize,
|
|
132
|
+
}),
|
|
133
|
+
]
|
|
134
|
+
: []),
|
|
135
|
+
...(graph ? [GraphViewPlugin] : []),
|
|
136
|
+
...(commandPalette ? [LoopCommandsPlugin] : []),
|
|
137
|
+
...(pluginsPanel ? [PluginsPanelPlugin] : []),
|
|
138
|
+
...(windowFrame ? [WindowFramePlugin] : []),
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
export default loopPlugins;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The workspace: one view, and slots for whatever a plugin wants beside it.
|
|
3
|
+
*
|
|
4
|
+
* The base is blank. It renders no prompt, no chat, no editor — those are all
|
|
5
|
+
* plugins, and a workspace mounted with none of them shows an empty frame,
|
|
6
|
+
* which is the honest picture of what the shell actually is. Even the prompt
|
|
7
|
+
* belongs to the chat plugin: it is the chat's input, and putting it in the
|
|
8
|
+
* shell made a workspace without a chat carry an input box wired to nothing.
|
|
9
|
+
*
|
|
10
|
+
* What the shell keeps is what only it can do: hold the view host, render the
|
|
11
|
+
* slots, and dispatch a typed message against every command every plugin
|
|
12
|
+
* contributed. That last one stays here — as `workspace.submit` — because no
|
|
13
|
+
* single plugin can see the others' commands.
|
|
14
|
+
*
|
|
15
|
+
* It mounts no providers of its own (no theme, no router, no query client): the
|
|
16
|
+
* entry point owns those and the workspace inherits them, which is what lets
|
|
17
|
+
* the same component run as a page, inside the Datalayer app, and later inside
|
|
18
|
+
* a JupyterLab panel.
|
|
19
|
+
*
|
|
20
|
+
* @module loop/shell/LoopWorkspace
|
|
21
|
+
*/
|
|
22
|
+
import type { JSX } from 'react';
|
|
23
|
+
import type { ReactNode } from 'react';
|
|
24
|
+
import { type PluginRef, type ReactorPlatform } from '@datalayer/reactor';
|
|
25
|
+
import { type LoopWorkspaceContext, type SandboxSnapshot } from '../core';
|
|
26
|
+
export type LoopWorkspaceProps = {
|
|
27
|
+
/** Server backing this session. */
|
|
28
|
+
serverUrl: string;
|
|
29
|
+
/** Agent bound to the session. */
|
|
30
|
+
agentId: string;
|
|
31
|
+
conversationId?: string;
|
|
32
|
+
model?: string;
|
|
33
|
+
sandbox?: SandboxSnapshot;
|
|
34
|
+
/** Plugins to mount. Ignored when `reactor` is given. */
|
|
35
|
+
extensions?: PluginRef[];
|
|
36
|
+
/** A prebuilt platform, for hosts that assemble their own. */
|
|
37
|
+
reactor?: ReactorPlatform;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the workspace registers and starts the platform.
|
|
40
|
+
*
|
|
41
|
+
* A host that renders its own reactor-aware UI *around* the workspace — a
|
|
42
|
+
* plugin checkbox list, say — has to register the platform before that UI
|
|
43
|
+
* renders, and therefore owns the lifecycle. Passing `false` stops the
|
|
44
|
+
* workspace from starting it a second time.
|
|
45
|
+
*/
|
|
46
|
+
manageReactor?: boolean;
|
|
47
|
+
/** View to open on. Defaults to the first that can be opened. */
|
|
48
|
+
initialViewType?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Where a prompt goes when no view answers it.
|
|
51
|
+
*
|
|
52
|
+
* A host embedding the workspace in something that already has a
|
|
53
|
+
* conversation — the Datalayer app — takes the message itself.
|
|
54
|
+
*/
|
|
55
|
+
onSend?: (message: string, workspace: LoopWorkspaceContext) => void;
|
|
56
|
+
/**
|
|
57
|
+
* How much room there is.
|
|
58
|
+
*
|
|
59
|
+
* `page` is the default: the shell owns the viewport. `panel` is a
|
|
60
|
+
* JupyterLab side panel — a column, not a page — where the switcher shows
|
|
61
|
+
* icons rather than labels and the header wraps instead of overflowing. The
|
|
62
|
+
* views are the same views; only the chrome around them gives way.
|
|
63
|
+
*/
|
|
64
|
+
layout?: 'page' | 'panel';
|
|
65
|
+
/**
|
|
66
|
+
* Whether the header offers a choice of view.
|
|
67
|
+
*
|
|
68
|
+
* True by default. False when the host has already decided what the
|
|
69
|
+
* workspace is for — an embed that exists to show one notebook does not
|
|
70
|
+
* want a tab strip inviting the reader somewhere else — and the workspace
|
|
71
|
+
* opens on `initialViewType` and stays there.
|
|
72
|
+
*/
|
|
73
|
+
showViewSelector?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Whether the workspace draws its header row.
|
|
76
|
+
*
|
|
77
|
+
* True by default. False removes the row entirely — the view switcher and
|
|
78
|
+
* every control a plugin contributed to it — for a host whose own page
|
|
79
|
+
* already frames the workspace and does not want a second bar of chrome
|
|
80
|
+
* inside it.
|
|
81
|
+
*
|
|
82
|
+
* The plugins stay switched on: this hides where their controls are
|
|
83
|
+
* rendered, not what they do. A plugin that contributes a header button and
|
|
84
|
+
* a service keeps the service, and the button is simply never mounted.
|
|
85
|
+
*/
|
|
86
|
+
showHeader?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Extra controls for the chat's own title bar.
|
|
89
|
+
*
|
|
90
|
+
* For a host with something to add beside the agent's name — a link back to
|
|
91
|
+
* its page, a close button — without writing a plugin to add it. Anything
|
|
92
|
+
* that belongs to a capability rather than to this embed should contribute
|
|
93
|
+
* to `LoopSlots.chatHeader` instead, and both end up in the same row.
|
|
94
|
+
*/
|
|
95
|
+
chatHeaderActions?: ReactNode;
|
|
96
|
+
/**
|
|
97
|
+
* The host's own controls for the workspace header row.
|
|
98
|
+
*
|
|
99
|
+
* The same bargain as `chatHeaderActions`, for the other header: a page
|
|
100
|
+
* embedding the workspace should not have to write a plugin to put its two
|
|
101
|
+
* menus in the row. Rendered before the plugins' contributions, so the
|
|
102
|
+
* host's additions read as part of the page; plugins reach the same row
|
|
103
|
+
* through `LoopSlots.header`.
|
|
104
|
+
*/
|
|
105
|
+
headerActions?: ReactNode;
|
|
106
|
+
};
|
|
107
|
+
/** Build the platform for a set of plugins. */
|
|
108
|
+
export declare function buildLoopReactor(extensions: PluginRef[]): ReactorPlatform;
|
|
109
|
+
export declare function LoopWorkspace(props: LoopWorkspaceProps): JSX.Element;
|