@datalayer/agent-runtimes 1.0.28 → 1.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AgentDocument.js +5 -22
- package/lib/AgentNode.d.ts +1 -1
- package/lib/AgentNode.js +193 -23
- package/lib/AgentNotebook.js +1 -1
- package/lib/App.d.ts +1 -1
- package/lib/AppExamples2.d.ts +1 -1
- package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
- package/lib/agent-node/AgentNodeGallery.js +19 -15
- package/lib/agent-node/themeStore.js +7 -6
- package/lib/agents/AgentDetails.d.ts +8 -2
- package/lib/agents/AgentDetails.js +41 -11
- package/lib/agents/AgentRuntimeChat.d.ts +3 -3
- package/lib/agents/AgentRuntimeChat.js +15 -15
- package/lib/api/agents.d.ts +10 -10
- package/lib/api/agents.js +15 -15
- package/lib/api/checkpoints.d.ts +40 -0
- package/lib/api/checkpoints.js +75 -0
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +18 -5
- package/lib/api/notifications.d.ts +21 -6
- package/lib/api/notifications.js +32 -14
- package/lib/api/runtimes/environments.d.ts +385 -4
- package/lib/api/runtimes/environments.js +610 -9
- package/lib/api/runtimes/runtimes.d.ts +19 -19
- package/lib/api/runtimes/runtimes.js +47 -46
- package/lib/api/spacer/notebooks.js +1 -1
- package/lib/chat/Chat.d.ts +16 -4
- package/lib/chat/Chat.js +18 -5
- package/lib/chat/ChatFloating.d.ts +13 -2
- package/lib/chat/ChatFloating.js +192 -117
- package/lib/chat/ChatInline.d.ts +15 -0
- package/lib/chat/ChatInline.js +0 -18
- package/lib/chat/ChatPopupStandalone.d.ts +1 -1
- package/lib/chat/ChatSidebar.d.ts +14 -2
- package/lib/chat/ChatSidebar.js +1 -1
- package/lib/chat/ChatStandalone.d.ts +1 -1
- package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
- package/lib/chat/EphemeralSurfaceControl.js +55 -0
- package/lib/chat/base/ChatAvailability.d.ts +34 -0
- package/lib/chat/base/ChatAvailability.js +18 -0
- package/lib/chat/base/ChatBase.d.ts +2 -1
- package/lib/chat/base/ChatBase.js +657 -28
- package/lib/chat/display/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +78 -12
- package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
- package/lib/chat/display/PoweredByTag.d.ts +1 -1
- package/lib/chat/display/groupSuggestions.d.ts +21 -0
- package/lib/chat/display/groupSuggestions.js +18 -0
- package/lib/chat/document/EphemeralDocument.d.ts +70 -6
- package/lib/chat/document/EphemeralDocument.js +154 -52
- package/lib/chat/header/ChatHeader.d.ts +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
- package/lib/chat/header/ChatHeaderBase.js +67 -96
- package/lib/chat/index.d.ts +4 -1
- package/lib/chat/index.js +8 -1
- package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +22 -1
- package/lib/chat/messages/ChatMessageList.js +370 -166
- package/lib/chat/messages/ChatMessages.d.ts +1 -1
- package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
- package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
- package/lib/chat/messages/TurnFooter.d.ts +42 -0
- package/lib/chat/messages/TurnFooter.js +75 -0
- package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
- package/lib/chat/messages/assistantMarkdown.js +56 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
- package/lib/chat/notebook/EphemeralNotebook.js +194 -61
- package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
- package/lib/chat/parts/MessagePart.d.ts +1 -1
- package/lib/chat/parts/ReasoningPart.d.ts +8 -1
- package/lib/chat/parts/TextPart.d.ts +1 -1
- package/lib/chat/parts/ToolPart.d.ts +8 -1
- package/lib/chat/prompt/FloatingCard.d.ts +26 -0
- package/lib/chat/prompt/FloatingCard.js +80 -0
- package/lib/chat/prompt/InputPrompt.d.ts +206 -53
- package/lib/chat/prompt/InputPrompt.js +161 -80
- package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
- package/lib/chat/prompt/InputPromptBase.js +225 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
- package/lib/chat/prompt/InputPromptLexical.js +227 -30
- package/lib/chat/prompt/InputPromptText.d.ts +10 -2
- package/lib/chat/prompt/InputPromptText.js +35 -3
- package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
- package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
- package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
- package/lib/chat/prompt/footer/index.d.ts +7 -0
- package/lib/chat/prompt/footer/index.js +11 -0
- package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
- package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
- package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
- package/lib/chat/prompt/header/InPromptHeader.js +14 -0
- package/lib/chat/prompt/header/index.d.ts +7 -0
- package/lib/chat/prompt/header/index.js +11 -0
- package/lib/chat/prompt/index.d.ts +8 -4
- package/lib/chat/prompt/index.js +15 -3
- package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
- package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
- package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
- package/lib/chat/prompt/menus/ModelSelector.js +27 -0
- package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
- package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
- package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
- package/lib/chat/prompt/menus/index.d.ts +15 -0
- package/lib/chat/prompt/menus/index.js +19 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
- package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
- package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
- package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
- package/lib/chat/prompt/plugins/MentionChip.js +24 -0
- package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
- package/lib/chat/prompt/plugins/MentionNode.js +77 -0
- package/lib/chat/prompt/promptHistory.d.ts +52 -0
- package/lib/chat/prompt/promptHistory.js +123 -0
- package/lib/chat/prompt/stack.d.ts +81 -0
- package/lib/chat/prompt/stack.js +41 -0
- package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
- package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
- package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
- package/lib/chat/tools/A2AAgentDialog.js +265 -0
- package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
- package/lib/chat/tools/index.d.ts +1 -0
- package/lib/chat/tools/index.js +1 -0
- package/lib/chat/usage/ContextPie.d.ts +17 -0
- package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
- package/lib/chat/useViewportDrag.d.ts +11 -0
- package/lib/chat/useViewportDrag.js +61 -0
- package/lib/chat/viewModes.d.ts +51 -0
- package/lib/chat/viewModes.js +57 -0
- package/lib/client/AgentRuntimesClient.d.ts +10 -9
- package/lib/client/AgentRuntimesClient.js +1 -1
- package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
- package/lib/client/AgentsMixin.d.ts +12 -12
- package/lib/client/AgentsMixin.js +31 -31
- package/lib/client/IAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.js +10 -10
- package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
- package/lib/client/mixins/RuntimesMixin.js +54 -21
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
- package/lib/components/agents/AgentSummary.d.ts +13 -0
- package/lib/components/agents/AgentSummary.js +21 -4
- package/lib/components/cards/NotificationEventCard.d.ts +1 -1
- package/lib/components/cards/OutputCard.d.ts +1 -1
- package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
- package/lib/components/cards/ToolApprovalCard.js +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +76 -0
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +81 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +12 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +132 -25
- package/lib/components/code-sandboxes/CodeSandboxNames.js +75 -29
- package/lib/components/code-sandboxes/CodeSandboxPicker.d.ts +14 -1
- package/lib/components/code-sandboxes/CodeSandboxPicker.js +226 -45
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
- package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
- package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +16 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.js +69 -12
- package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
- package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
- package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
- package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.d.ts +29 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.js +90 -0
- package/lib/components/code-sandboxes/index.d.ts +3 -0
- package/lib/components/code-sandboxes/index.js +3 -0
- package/lib/components/context/SpaceSelect.d.ts +1 -1
- package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
- package/lib/components/icons/ArtifactIcon.d.ts +1 -0
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.d.ts +1 -0
- package/lib/components/progress/CreditsIndicator.js +0 -4
- package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
- package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
- package/lib/components/snippets/SnippetDialog.d.ts +1 -0
- package/lib/components/snippets/SnippetDialog.js +0 -4
- package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
- package/lib/components/specs/SpecPayloadPreview.js +102 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/context/ContextDistribution.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +2 -1
- package/lib/context/ContextPanel.d.ts +1 -1
- package/lib/context/ContextUsage.d.ts +1 -1
- package/lib/context/CostTracker.d.ts +1 -1
- package/lib/context/CostUsageChart.d.ts +1 -1
- package/lib/context/CostUsageChart.js +4 -4
- package/lib/context/MessageHistory.d.ts +3 -2
- package/lib/context/TokenUsageChart.d.ts +1 -1
- package/lib/context/TokenUsageChart.js +4 -4
- package/lib/examples/A2UiAgentExample.js +15 -6
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
- package/lib/examples/A2UiContactCardExample.d.ts +10 -0
- package/lib/examples/A2UiContactCardExample.js +23 -170
- package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
- package/lib/examples/A2UiJupyterOutputExample.js +792 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
- package/lib/examples/A2UiRestaurantExample.js +24 -179
- package/lib/examples/A2UiViewerExample.d.ts +10 -0
- package/lib/examples/A2UiViewerExample.js +24 -378
- package/lib/examples/AgUiAgenticExample.js +2 -4
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
- package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
- package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
- package/lib/examples/AgUiSharedStateExample.js +2 -4
- package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
- package/lib/examples/AgentA2AExample.d.ts +17 -0
- package/lib/examples/AgentA2AExample.js +56 -0
- package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
- package/lib/examples/AgentCheckpointsExample.js +72 -54
- package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
- package/lib/examples/AgentCodeSandboxExample.js +93 -303
- package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
- package/lib/examples/AgentCodeSandboxesExample.js +56 -162
- package/lib/examples/AgentCodemodeExample.d.ts +7 -2
- package/lib/examples/AgentCodemodeExample.js +60 -125
- package/lib/examples/AgentCompactionExample.js +19 -135
- package/lib/examples/AgentEvalsExample.js +34 -66
- package/lib/examples/AgentGuardrailsExample.js +64 -112
- package/lib/examples/AgentHooksExample.d.ts +11 -0
- package/lib/examples/AgentHooksExample.js +30 -67
- package/lib/examples/AgentInferenceProviderExample.js +8 -32
- package/lib/examples/AgentLoopExample.d.ts +4 -2
- package/lib/examples/AgentLoopExample.js +45 -93
- package/lib/examples/AgentMCPExample.js +30 -79
- package/lib/examples/AgentMemoryExample.js +21 -64
- package/lib/examples/AgentMonitoringExample.js +33 -94
- package/lib/examples/AgentNotificationsExample.js +56 -95
- package/lib/examples/AgentOtelExample.js +35 -88
- package/lib/examples/AgentOutputsExample.d.ts +2 -1
- package/lib/examples/AgentOutputsExample.js +16 -137
- package/lib/examples/AgentParametersExample.js +7 -17
- package/lib/examples/AgentSkillsExample.js +40 -154
- package/lib/examples/AgentSubagentsExample.d.ts +7 -6
- package/lib/examples/AgentSubagentsExample.js +80 -191
- package/lib/examples/AgentToolApprovalsExample.js +35 -91
- package/lib/examples/AgentTriggersExample.js +43 -59
- package/lib/examples/AgentspecsExample.js +7 -7
- package/lib/examples/CellExample.d.ts +1 -1
- package/lib/examples/ChatExample.d.ts +12 -5
- package/lib/examples/ChatExample.js +38 -13
- package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
- package/lib/examples/CopilotKitLexicalExample.js +4 -41
- package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
- package/lib/examples/CopilotKitNotebookExample.js +2 -14
- package/lib/examples/DecksAgent.d.ts +21 -0
- package/lib/examples/DecksAgent.js +23 -0
- package/lib/examples/DocumentPageAgent.d.ts +19 -0
- package/lib/examples/DocumentPageAgent.js +15 -0
- package/lib/examples/Lexical2Example.d.ts +2 -2
- package/lib/examples/Lexical2Example.js +17 -38
- package/lib/examples/LexicalAgentExample.d.ts +2 -1
- package/lib/examples/LexicalAgentExample.js +29 -102
- package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
- package/lib/examples/LexicalAgentSidebarExample.js +99 -131
- package/lib/examples/LoopShellExample.d.ts +38 -0
- package/lib/examples/LoopShellExample.js +68 -0
- package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
- package/lib/examples/LoopWorkspaceEmbed.js +73 -0
- package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
- package/lib/examples/LoopWorkspaceExample.js +151 -0
- package/lib/examples/NotebookAgentExample.d.ts +13 -0
- package/lib/examples/NotebookAgentExample.js +36 -86
- package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
- package/lib/examples/NotebookAgentSidebarExample.js +39 -83
- package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
- package/lib/examples/NotebookCollaborationExample.js +108 -20
- package/lib/examples/NotebookExample.d.ts +1 -1
- package/lib/examples/NotebookExample.js +20 -10
- package/lib/examples/NotebookPageAgent.d.ts +23 -0
- package/lib/examples/NotebookPageAgent.js +17 -0
- package/lib/examples/components/ExampleWrapper.d.ts +5 -0
- package/lib/examples/components/ExampleWrapper.js +36 -28
- package/lib/examples/components/LexicalEditor.d.ts +1 -1
- package/lib/examples/components/LexicalEditor.js +4 -24
- package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
- package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
- package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
- package/lib/examples/example-selector.js +26 -6
- package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
- package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
- package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
- package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
- package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
- package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
- package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
- package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
- package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
- package/lib/examples/index.d.ts +4 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/lexical/editorConfig.d.ts +2 -75
- package/lib/examples/lexical/editorConfig.js +26 -48
- package/lib/examples/lexical/lexical-theme.css +65 -47
- package/lib/examples/main.js +450 -322
- package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
- package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
- package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
- package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiViewerScene.js +395 -0
- package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
- package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
- package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
- package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
- package/lib/examples/utils/exampleSurfaces.js +38 -0
- package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
- package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
- package/lib/examples/utils/localUrl.d.ts +2 -0
- package/lib/examples/utils/localUrl.js +49 -0
- package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
- package/lib/examples/utils/notebookToolbarItems.js +129 -0
- package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
- package/lib/examples/utils/runtimeTargetStore.js +82 -1
- package/lib/examples/utils/themedProvider.d.ts +7 -0
- package/lib/examples/utils/themedProvider.js +57 -4
- package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
- package/lib/examples/utils/waitForAgent.d.ts +23 -0
- package/lib/examples/utils/waitForAgent.js +24 -0
- package/lib/examples2/CellExample.d.ts +1 -1
- package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
- package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
- package/lib/examples2/main.js +24 -4
- package/lib/extensions/A2UIExtension.d.ts +1 -1
- package/lib/hooks/index.d.ts +8 -5
- package/lib/hooks/index.js +20 -5
- package/lib/hooks/useAgentRuntimes.d.ts +49 -22
- package/lib/hooks/useAgentRuntimes.js +214 -90
- package/lib/hooks/useAgentsCatalog.js +32 -4
- package/lib/hooks/useBrowserAgent.d.ts +26 -0
- package/lib/hooks/useBrowserAgent.js +75 -0
- package/lib/hooks/useBrowserInference.d.ts +27 -0
- package/lib/hooks/useBrowserInference.js +67 -0
- package/lib/hooks/useCheckpoints.d.ts +8 -17
- package/lib/hooks/useCheckpoints.js +25 -59
- package/lib/hooks/useConfig.d.ts +1 -1
- package/lib/hooks/useConfig.js +5 -1
- package/lib/hooks/useContextSnapshot.d.ts +18 -7
- package/lib/hooks/useContextSnapshot.js +14 -10
- package/lib/hooks/useNotifications.d.ts +11 -11
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/useProjects.d.ts +7 -19
- package/lib/hooks/useProjects.js +5 -5
- package/lib/hooks/useSkills.d.ts +0 -1
- package/lib/hooks/useSkills.js +6 -2
- package/lib/hooks/useToolApprovals.d.ts +8 -8
- package/lib/hooks/useToolApprovals.js +3 -3
- package/lib/identity/AgentIdentity.d.ts +9 -2
- package/lib/identity/index.d.ts +1 -1
- package/lib/identity/index.js +1 -1
- package/lib/identity/types.d.ts +1 -1
- package/lib/identity/types.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/jupyter/index.d.ts +2 -1
- package/lib/jupyter/index.js +2 -1
- package/lib/jupyter/serverExecution.d.ts +78 -0
- package/lib/jupyter/serverExecution.js +258 -0
- package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
- package/lib/jupyter/useResumeServerExecutions.js +64 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
- package/lib/lexical/ChatInlinePlugin.js +0 -36
- package/lib/loop/core/focusRequests.d.ts +10 -0
- package/lib/loop/core/focusRequests.js +46 -0
- package/lib/loop/core/index.d.ts +894 -0
- package/lib/loop/core/index.js +264 -0
- package/lib/loop/core/promptStore.d.ts +44 -0
- package/lib/loop/core/promptStore.js +63 -0
- package/lib/loop/core/surfaceRequests.d.ts +33 -0
- package/lib/loop/core/surfaceRequests.js +29 -0
- package/lib/loop/core/toolbar.d.ts +28 -0
- package/lib/loop/core/toolbar.js +59 -0
- package/lib/loop/embed/LoopEmbed.d.ts +57 -0
- package/lib/loop/embed/LoopEmbed.js +118 -0
- package/lib/loop/extensions.d.ts +10 -0
- package/lib/loop/extensions.js +49 -0
- package/lib/loop/index.d.ts +68 -0
- package/lib/loop/index.js +87 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
- package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
- package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
- package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
- package/lib/loop/plugins/a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/a2ui/index.js +50 -0
- package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
- package/lib/loop/plugins/a2ui-scene/index.js +28 -0
- package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2a/index.js +26 -0
- package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui/index.js +42 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
- package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
- package/lib/loop/plugins/agent-capacity/index.js +52 -0
- package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
- package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
- package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
- package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
- package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
- package/lib/loop/plugins/agent-codemode/index.js +41 -0
- package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
- package/lib/loop/plugins/agent-compaction/index.js +34 -0
- package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
- package/lib/loop/plugins/agent-evals/index.js +25 -0
- package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
- package/lib/loop/plugins/agent-guardrails/index.js +25 -0
- package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
- package/lib/loop/plugins/agent-hooks/index.js +28 -0
- package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
- package/lib/loop/plugins/agent-inference/index.js +29 -0
- package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
- package/lib/loop/plugins/agent-mcp/index.js +25 -0
- package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
- package/lib/loop/plugins/agent-memory/index.js +25 -0
- package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
- package/lib/loop/plugins/agent-monitoring/index.js +25 -0
- package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
- package/lib/loop/plugins/agent-notifications/index.js +25 -0
- package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
- package/lib/loop/plugins/agent-otel/index.js +25 -0
- package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
- package/lib/loop/plugins/agent-outputs/index.js +25 -0
- package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
- package/lib/loop/plugins/agent-parameters/index.js +25 -0
- package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
- package/lib/loop/plugins/agent-skills/index.js +25 -0
- package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
- package/lib/loop/plugins/agent-subagents/index.js +25 -0
- package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
- package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
- package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
- package/lib/loop/plugins/agent-triggers/index.js +26 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
- package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
- package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
- package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
- package/lib/loop/plugins/agents/SandboxView.js +43 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
- package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
- package/lib/loop/plugins/agents/agentIcons.js +88 -0
- package/lib/loop/plugins/agents/browserService.d.ts +50 -0
- package/lib/loop/plugins/agents/browserService.js +233 -0
- package/lib/loop/plugins/agents/index.d.ts +13 -0
- package/lib/loop/plugins/agents/index.js +17 -0
- package/lib/loop/plugins/agents/plugin.d.ts +91 -0
- package/lib/loop/plugins/agents/plugin.js +201 -0
- package/lib/loop/plugins/agents/service.d.ts +99 -0
- package/lib/loop/plugins/agents/service.js +167 -0
- package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
- package/lib/loop/plugins/agents/specSubagents.js +33 -0
- package/lib/loop/plugins/agents/switchable.d.ts +107 -0
- package/lib/loop/plugins/agents/switchable.js +405 -0
- package/lib/loop/plugins/agents/team.d.ts +87 -0
- package/lib/loop/plugins/agents/team.js +143 -0
- package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
- package/lib/loop/plugins/agents/useSandboxService.js +36 -0
- package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
- package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
- package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
- package/lib/loop/plugins/agentspecs/index.js +63 -0
- package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
- package/lib/loop/plugins/chat/ChatView.js +1670 -0
- package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
- package/lib/loop/plugins/chat/chatViewTools.js +92 -0
- package/lib/loop/plugins/chat/index.d.ts +111 -0
- package/lib/loop/plugins/chat/index.js +143 -0
- package/lib/loop/plugins/chat/turnState.d.ts +41 -0
- package/lib/loop/plugins/chat/turnState.js +90 -0
- package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
- package/lib/loop/plugins/chat-extras/index.js +51 -0
- package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
- package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
- package/lib/loop/plugins/chat-header/index.d.ts +3 -0
- package/lib/loop/plugins/chat-header/index.js +21 -0
- package/lib/loop/plugins/chat-view/index.d.ts +10 -0
- package/lib/loop/plugins/chat-view/index.js +29 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
- package/lib/loop/plugins/commands/index.d.ts +20 -0
- package/lib/loop/plugins/commands/index.js +148 -0
- package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
- package/lib/loop/plugins/decks/DeckSurface.js +6 -0
- package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
- package/lib/loop/plugins/decks/DecksMenu.js +42 -0
- package/lib/loop/plugins/decks/index.d.ts +19 -0
- package/lib/loop/plugins/decks/index.js +133 -0
- package/lib/loop/plugins/decks/surface.d.ts +7 -0
- package/lib/loop/plugins/decks/surface.js +11 -0
- package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
- package/lib/loop/plugins/document/DocumentView.js +68 -0
- package/lib/loop/plugins/document/index.d.ts +3 -0
- package/lib/loop/plugins/document/index.js +86 -0
- package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
- package/lib/loop/plugins/document/openingDocument.js +122 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
- package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/document-toolbar/index.js +35 -0
- package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
- package/lib/loop/plugins/document-toolbar/names.js +10 -0
- package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
- package/lib/loop/plugins/document-view/index.d.ts +10 -0
- package/lib/loop/plugins/document-view/index.js +28 -0
- package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
- package/lib/loop/plugins/graph/GraphToggle.js +22 -0
- package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
- package/lib/loop/plugins/graph/GraphView.js +6 -0
- package/lib/loop/plugins/graph/index.d.ts +5 -0
- package/lib/loop/plugins/graph/index.js +80 -0
- package/lib/loop/plugins/graph/viewType.d.ts +10 -0
- package/lib/loop/plugins/graph/viewType.js +14 -0
- package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
- package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
- package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
- package/lib/loop/plugins/input-prompt/index.js +26 -0
- package/lib/loop/plugins/models/index.d.ts +3 -0
- package/lib/loop/plugins/models/index.js +49 -0
- package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
- package/lib/loop/plugins/notebook/NotebookView.js +189 -0
- package/lib/loop/plugins/notebook/index.d.ts +3 -0
- package/lib/loop/plugins/notebook/index.js +91 -0
- package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
- package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
- package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
- package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
- package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
- package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
- package/lib/loop/plugins/notebook-view/index.js +30 -0
- package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
- package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
- package/lib/loop/plugins/page-layout/index.d.ts +35 -0
- package/lib/loop/plugins/page-layout/index.js +80 -0
- package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
- package/lib/loop/plugins/plugins-panel/index.js +74 -0
- package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
- package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
- package/lib/loop/plugins/prompt/index.d.ts +11 -0
- package/lib/loop/plugins/prompt/index.js +73 -0
- package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
- package/lib/loop/plugins/shell/editorChoice.js +58 -0
- package/lib/loop/plugins/shell/index.d.ts +47 -0
- package/lib/loop/plugins/shell/index.js +142 -0
- package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
- package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
- package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
- package/lib/loop/plugins/subagent-activity/index.js +42 -0
- package/lib/loop/plugins/view-switch/index.d.ts +46 -0
- package/lib/loop/plugins/view-switch/index.js +68 -0
- package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
- package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
- package/lib/loop/plugins/window-frame/index.d.ts +6 -0
- package/lib/loop/plugins/window-frame/index.js +79 -0
- package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
- package/lib/loop/plugins/window-frame/slots.js +30 -0
- package/lib/loop/presets.d.ts +167 -0
- package/lib/loop/presets.js +139 -0
- package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
- package/lib/loop/shell/LoopWorkspace.js +231 -0
- package/lib/loop/shell/PluginToggles.d.ts +21 -0
- package/lib/loop/shell/PluginToggles.js +41 -0
- package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
- package/lib/loop/shell/ViewSwitcher.js +43 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
- package/lib/loop/shell/index.d.ts +10 -0
- package/lib/loop/shell/index.js +14 -0
- package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
- package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
- package/lib/loop-example-main.d.ts +1 -0
- package/lib/loop-example-main.js +42 -0
- package/lib/loop-main.d.ts +1 -0
- package/lib/loop-main.js +138 -0
- package/lib/mcp/McpServerManager.d.ts +1 -1
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
- package/lib/models/CodeSandboxVariant.d.ts +53 -0
- package/lib/models/CodeSandboxVariant.js +77 -0
- package/lib/models/Content.d.ts +26 -0
- package/lib/models/Environment.d.ts +561 -5
- package/lib/models/Environment.js +12 -1
- package/lib/models/EnvironmentDTO.d.ts +24 -6
- package/lib/models/EnvironmentDTO.js +13 -2
- package/lib/models/Exercise.d.ts +0 -2
- package/lib/models/Library.d.ts +0 -2
- package/lib/models/Notebook.d.ts +0 -2
- package/lib/models/ProjectDTO.d.ts +2 -2
- package/lib/models/ProjectDTO.js +4 -4
- package/lib/models/Runtime.d.ts +11 -11
- package/lib/models/RuntimeDTO.d.ts +16 -7
- package/lib/models/RuntimeDTO.js +9 -9
- package/lib/models/Space.d.ts +10 -0
- package/lib/models/Space.js +1 -1
- package/lib/models/SpaceDTO.d.ts +1 -1
- package/lib/models/SpaceItem.d.ts +1 -2
- package/lib/models/environments.generated.d.ts +113 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +1 -1
- package/lib/models/index.js +1 -1
- package/lib/protocols/A2AAdapter.d.ts +39 -6
- package/lib/protocols/A2AAdapter.js +180 -11
- package/lib/protocols/ACPAdapter.js +40 -37
- package/lib/protocols/AGUIAdapter.d.ts +14 -0
- package/lib/protocols/AGUIAdapter.js +34 -9
- package/lib/protocols/BrowserAgentAdapter.d.ts +117 -0
- package/lib/protocols/BrowserAgentAdapter.js +310 -0
- package/lib/protocols/VercelAIAdapter.d.ts +10 -0
- package/lib/protocols/VercelAIAdapter.js +27 -7
- package/lib/protocols/index.d.ts +1 -0
- package/lib/protocols/index.js +1 -0
- package/lib/runtimes/actions.d.ts +3 -3
- package/lib/runtimes/actions.js +41 -16
- package/lib/runtimes/apis.d.ts +13 -4
- package/lib/runtimes/browser/agent.d.ts +54 -0
- package/lib/runtimes/browser/agent.js +63 -0
- package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
- package/lib/runtimes/browser/anonymousToken.js +300 -0
- package/lib/runtimes/browser/frontendTools.d.ts +61 -0
- package/lib/runtimes/browser/frontendTools.js +152 -0
- package/lib/runtimes/browser/index.d.ts +11 -0
- package/lib/runtimes/browser/index.js +20 -0
- package/lib/runtimes/browser/model.d.ts +52 -0
- package/lib/runtimes/browser/model.js +110 -0
- package/lib/runtimes/browser/protocol.d.ts +54 -0
- package/lib/runtimes/browser/protocol.js +35 -0
- package/lib/runtimes/browser/subagents.d.ts +131 -0
- package/lib/runtimes/browser/subagents.js +241 -0
- package/lib/runtimes/index.d.ts +3 -0
- package/lib/runtimes/index.js +3 -0
- package/lib/runtimes/lifecycle.d.ts +76 -0
- package/lib/runtimes/lifecycle.js +99 -0
- package/lib/runtimes/variants.d.ts +172 -0
- package/lib/runtimes/variants.js +187 -0
- package/lib/services/reconnectToRuntime.d.ts +2 -2
- package/lib/services/reconnectToRuntime.js +3 -3
- package/lib/services/sandboxServiceManagers.d.ts +2 -2
- package/lib/services/sandboxServiceManagers.js +11 -11
- package/lib/specs/agents/agents.d.ts +128 -112
- package/lib/specs/agents/agents.js +8024 -5052
- package/lib/specs/envvars.d.ts +1 -1
- package/lib/specs/envvars.js +3 -3
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +3 -0
- package/lib/specs/frontendTools.js +46 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +27 -4
- package/lib/specs/models.d.ts +18 -0
- package/lib/specs/models.js +154 -0
- package/lib/specs/outputs.d.ts +2 -0
- package/lib/specs/outputs.js +22 -0
- package/lib/specs/personas.js +1 -1
- package/lib/specs/teams/teams.d.ts +2 -0
- package/lib/specs/teams/teams.js +628 -111
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -1
- package/lib/state/substates/RuntimesState.d.ts +5 -5
- package/lib/state/substates/RuntimesState.js +17 -14
- package/lib/state/substates/index.d.ts +1 -1
- package/lib/state/substates/index.js +1 -1
- package/lib/stores/agentRuntimeStore.d.ts +43 -1
- package/lib/stores/agentRuntimeStore.js +100 -11
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/stories/Button.d.ts +1 -1
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +1 -1
- package/lib/test-setup.js +66 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
- package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
- package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
- package/lib/tools/adapters/commands/index.d.ts +1 -0
- package/lib/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/types/a2a.d.ts +15 -1
- package/lib/types/agents-lifecycle.d.ts +11 -6
- package/lib/types/agents.d.ts +31 -6
- package/lib/types/agentspecs.d.ts +120 -4
- package/lib/types/chat.d.ts +251 -3
- package/lib/types/checkpoints.d.ts +20 -0
- package/lib/types/config.d.ts +13 -1
- package/lib/types/connection.d.ts +1 -1
- package/lib/types/evals.d.ts +2 -0
- package/lib/types/messages.d.ts +60 -0
- package/lib/types/models.d.ts +26 -0
- package/lib/types/notifications.d.ts +15 -6
- package/lib/types/protocol.d.ts +7 -2
- package/lib/types/stream.d.ts +48 -3
- package/lib/types/stream.js +5 -0
- package/lib/types/teams.d.ts +102 -4
- package/lib/types/tool-approvals.d.ts +1 -1
- package/lib/types/tools.d.ts +8 -2
- package/lib/utils/utils.js +7 -1
- package/package.json +376 -361
- package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/compose.py +208 -0
- package/scripts/codegen/generate_agents.py +202 -31
- package/scripts/codegen/generate_evals.py +2 -0
- package/scripts/codegen/generate_frontend_tools.py +35 -6
- package/scripts/codegen/generate_models.py +40 -15
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- package/scripts/codegen/generate_teams.py +178 -4
- package/scripts/codegen/generate_tools.py +6 -4
- package/scripts/gen_workers.py +279 -111
- package/scripts/generate-environments-types.py +404 -0
- package/lib/chat/prompt/InputFooter.d.ts +0 -58
- package/lib/chat/prompt/InputFooter.js +0 -194
- package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
- package/lib/chat/prompt/InputPromptFooter.js +0 -15
- package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
- package/lib/chat/prompt/InputPromptHeader.js +0 -15
- package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
- package/lib/hooks/useRuntimes.d.ts +0 -5
- package/lib/hooks/useRuntimes.js +0 -34
- package/lib/jupyter/kernelsHandler.d.ts +0 -8
- package/lib/jupyter/kernelsHandler.js +0 -39
- package/lib/models/Dataset.d.ts +0 -16
- package/lib/utils/Cells.d.ts +0 -2
- package/lib/utils/Cells.js +0 -28
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as _jsx } 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-plugins-panel` — the plugin list, as a plugin.
|
|
8
|
+
*
|
|
9
|
+
* It fills the sidebar slot like any other contribution, which is the joke and
|
|
10
|
+
* also the proof: the thing that switches plugins on and off is itself one, and
|
|
11
|
+
* can be left out of a host that does not want it.
|
|
12
|
+
*
|
|
13
|
+
* The list itself is no longer written here. `@datalayer/reactor-manager` is
|
|
14
|
+
* the same surface, generic — a filter, a row per plugin, a switch each — and
|
|
15
|
+
* the workspace had grown its own copy that answered the same questions
|
|
16
|
+
* slightly differently. This plugin is now the loop's placement of it: which
|
|
17
|
+
* slot it goes in, and which plugin may not be switched off.
|
|
18
|
+
*
|
|
19
|
+
* What went with the rewrite is the graph button. The panel used to draw it,
|
|
20
|
+
* which meant asking by name whether a graph view was mounted; the graph
|
|
21
|
+
* plugin contributes it to the manager's action slot now, so it appears and
|
|
22
|
+
* disappears with the thing it opens.
|
|
23
|
+
*
|
|
24
|
+
* @module loop/plugins/plugins-panel
|
|
25
|
+
*/
|
|
26
|
+
import { definePlugin } from '@datalayer/reactor';
|
|
27
|
+
import { GraphPlugin } from '@datalayer/reactor-graph';
|
|
28
|
+
import { PluginsManagerView } from '@datalayer/reactor-manager';
|
|
29
|
+
import { LoopSlots } from '../../core';
|
|
30
|
+
export const PLUGINS_PANEL_PLUGIN_NAME = '@datalayer/loop-plugin-plugins-panel';
|
|
31
|
+
/**
|
|
32
|
+
* How wide the panel is, and the aside around it.
|
|
33
|
+
*
|
|
34
|
+
* Declared here rather than in the shell so the two cannot disagree: the panel
|
|
35
|
+
* truncates its descriptions to the width it was given, and truncating to a
|
|
36
|
+
* width the container does not actually have is how text ends up cut short in
|
|
37
|
+
* the middle of empty space.
|
|
38
|
+
*/
|
|
39
|
+
export const SIDEBAR_WIDTH = 420;
|
|
40
|
+
/** The generic graph plugin, which the loop's own adapter wraps. */
|
|
41
|
+
const REACTOR_GRAPH_PLUGIN_NAME = GraphPlugin.name;
|
|
42
|
+
export const PluginsPanelPlugin = definePlugin({
|
|
43
|
+
name: PLUGINS_PANEL_PLUGIN_NAME,
|
|
44
|
+
displayName: 'Plugins panel',
|
|
45
|
+
description: 'Switch plugins on and off while the workspace runs.',
|
|
46
|
+
octicon: 'plug',
|
|
47
|
+
emoji: '\u{1F50C}',
|
|
48
|
+
build: () => ({
|
|
49
|
+
components: [
|
|
50
|
+
{
|
|
51
|
+
id: 'plugins-panel',
|
|
52
|
+
slot: LoopSlots.sidebar,
|
|
53
|
+
// Last in the sidebar: it is about the workspace rather than part of
|
|
54
|
+
// the work, so a plugin's own panel — the decks list, say — sits
|
|
55
|
+
// above it whatever order the plugins were listed in.
|
|
56
|
+
order: 900,
|
|
57
|
+
// Itself protected: switching the panel off would remove the only way
|
|
58
|
+
// to switch anything back on.
|
|
59
|
+
//
|
|
60
|
+
// The workspace is forwarded rather than used here — the manager
|
|
61
|
+
// passes whatever it is given to the plugins contributing actions, and
|
|
62
|
+
// the graph button is the one that needs it.
|
|
63
|
+
Component: ({ workspace }) => (_jsx(PluginsManagerView, { protectedPlugins: [PLUGINS_PANEL_PLUGIN_NAME],
|
|
64
|
+
// `@datalayer/loop-plugin-graph` is the switch that matters: it
|
|
65
|
+
// places the graph in this workspace and pulls the generic plugin
|
|
66
|
+
// in as a dependency. Listing both put two switches in front of
|
|
67
|
+
// one feature, with no way to tell which to use.
|
|
68
|
+
hiddenPlugins: [REACTOR_GRAPH_PLUGIN_NAME], width: SIDEBAR_WIDTH, workspace: workspace })),
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
}),
|
|
72
|
+
});
|
|
73
|
+
export { PluginsManagerView as PluginsPanel } from '@datalayer/reactor-manager';
|
|
74
|
+
export default PluginsPanelPlugin;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The + in the prompt's footer: start the conversation over.
|
|
3
|
+
*
|
|
4
|
+
* The chat header carries the same control, and a workspace that hides that
|
|
5
|
+
* header — the Loop Shell does — used to lose the only way to reset. This one
|
|
6
|
+
* lives with the composer, which is on screen in every placement.
|
|
7
|
+
*
|
|
8
|
+
* It presses the `/new` command rather than reaching into the chat, so the
|
|
9
|
+
* button and the slash command cannot drift: one intent, one path, and the
|
|
10
|
+
* command's own error shows when no conversation is on screen.
|
|
11
|
+
*
|
|
12
|
+
* @module loop/plugins/prompt/NewChatAction
|
|
13
|
+
*/
|
|
14
|
+
import type { JSX } from 'react';
|
|
15
|
+
import type { LoopWorkspaceContext } from '../../core';
|
|
16
|
+
export declare function NewChatAction({ workspace, }: {
|
|
17
|
+
workspace?: LoopWorkspaceContext;
|
|
18
|
+
}): JSX.Element | null;
|
|
19
|
+
export default NewChatAction;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { IconButton } from '@primer/react';
|
|
3
|
+
import { PlusIcon } from '@primer/octicons-react';
|
|
4
|
+
export function NewChatAction({ workspace, }) {
|
|
5
|
+
if (!workspace) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
return (_jsx(IconButton, { icon: PlusIcon, "aria-label": "New conversation", title: "New conversation", variant: "invisible", size: "small", onClick: () => void workspace.submit('/new') }));
|
|
9
|
+
}
|
|
10
|
+
export default NewChatAction;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NewChatAction } from './NewChatAction';
|
|
2
|
+
export declare const PROMPT_PLUGIN_NAME = "@datalayer/loop-plugin-prompt";
|
|
3
|
+
export declare const PromptPlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, {
|
|
4
|
+
components: {
|
|
5
|
+
id: string;
|
|
6
|
+
slot: "loop.promptAction";
|
|
7
|
+
Component: typeof NewChatAction;
|
|
8
|
+
}[];
|
|
9
|
+
}>;
|
|
10
|
+
export { focusPrompt, onPromptFocusRequest } from '../../core';
|
|
11
|
+
export default PromptPlugin;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* `@datalayer/loop-plugin-prompt` — the prompt as a first-class subject.
|
|
7
|
+
*
|
|
8
|
+
* The composer itself is the chat's, whatever the placement: docked under the
|
|
9
|
+
* workspace, in the chat column, or floating in a draggable card
|
|
10
|
+
* (`promptPlacement: 'floating'` on the chat, which is the real
|
|
11
|
+
* `InputPrompt` — lexical editor, slash commands, the tools/skills/model
|
|
12
|
+
* footer — wrapped in `FloatingCard`). This plugin deliberately ships no
|
|
13
|
+
* second input box: two composers for one conversation is one too many, and a
|
|
14
|
+
* reimplementation would be a composer that drifts.
|
|
15
|
+
*
|
|
16
|
+
* What it adds is around the composer: `/prompt` (Mod+Alt+P) puts the caret
|
|
17
|
+
* in it from anywhere, through the same ask-and-answer channel the editor
|
|
18
|
+
* commands use; `/new` (Mod+Alt+R) starts the conversation over, and the +
|
|
19
|
+
* this plugin puts in the prompt's footer bar presses exactly that command.
|
|
20
|
+
* `loopPlugins({ floatingPrompt: true })` mounts this plugin and asks the
|
|
21
|
+
* chat for the floating placement together.
|
|
22
|
+
*
|
|
23
|
+
* @module loop/plugins/prompt
|
|
24
|
+
*/
|
|
25
|
+
import { contribution, definePlugin } from '@datalayer/reactor';
|
|
26
|
+
import { LoopCommand, LoopSlots, focusPrompt } from '../../core';
|
|
27
|
+
import { NewChatAction } from './NewChatAction';
|
|
28
|
+
export const PROMPT_PLUGIN_NAME = '@datalayer/loop-plugin-prompt';
|
|
29
|
+
export const PromptPlugin = definePlugin({
|
|
30
|
+
name: PROMPT_PLUGIN_NAME,
|
|
31
|
+
displayName: 'Prompt',
|
|
32
|
+
description: 'Prompt commands: focus the composer, start over, and the +.',
|
|
33
|
+
octicon: 'paper-airplane',
|
|
34
|
+
emoji: '\u{1FAB6}',
|
|
35
|
+
contributes: [
|
|
36
|
+
contribution(LoopCommand, {
|
|
37
|
+
name: 'prompt',
|
|
38
|
+
description: 'Focus the prompt',
|
|
39
|
+
group: 'Session',
|
|
40
|
+
keybinding: 'Mod+Alt+P',
|
|
41
|
+
run: async () => {
|
|
42
|
+
if (!focusPrompt()) {
|
|
43
|
+
throw new Error('No prompt is on screen to focus.');
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
}, { id: 'prompt' }),
|
|
47
|
+
contribution(LoopCommand, {
|
|
48
|
+
name: 'new',
|
|
49
|
+
aliases: ['reset'],
|
|
50
|
+
description: 'Start the conversation over',
|
|
51
|
+
group: 'Session',
|
|
52
|
+
keybinding: 'Mod+Alt+R',
|
|
53
|
+
run: async ({ workspace }) => {
|
|
54
|
+
const reset = workspace.viewControls.newChat;
|
|
55
|
+
if (!reset) {
|
|
56
|
+
throw new Error('No conversation is on screen to start over.');
|
|
57
|
+
}
|
|
58
|
+
reset();
|
|
59
|
+
},
|
|
60
|
+
}, { id: 'new' }),
|
|
61
|
+
],
|
|
62
|
+
build: () => ({
|
|
63
|
+
components: [
|
|
64
|
+
{
|
|
65
|
+
id: 'new-chat',
|
|
66
|
+
slot: LoopSlots.promptAction,
|
|
67
|
+
Component: NewChatAction,
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
}),
|
|
71
|
+
});
|
|
72
|
+
export { focusPrompt, onPromptFocusRequest } from '../../core';
|
|
73
|
+
export default PromptPlugin;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The editor choice, in the loop's vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* The store itself lives in `@datalayer/reactor-shell` now — the loop's
|
|
5
|
+
* editor selector grew into the generic shell plugin, and this module is the
|
|
6
|
+
* thin dictionary between the two: `editor` here is `view` there. Kept so
|
|
7
|
+
* everything written against the loop's names (the `/editor` command, the
|
|
8
|
+
* tests, the barrel) reads unchanged.
|
|
9
|
+
*
|
|
10
|
+
* The one behavioural difference from the old local store is deliberate:
|
|
11
|
+
* `chooseEditor` no longer calls the chat's surface channel itself — the
|
|
12
|
+
* generic store announces every choice through the announcer the loop's
|
|
13
|
+
* shell plugin installs, which is wired to `requestSurface`. One path,
|
|
14
|
+
* whether the choice came from the selector, `/editor`, or the generic
|
|
15
|
+
* cycle command.
|
|
16
|
+
*
|
|
17
|
+
* @module loop/plugins/shell/editorChoice
|
|
18
|
+
*/
|
|
19
|
+
import { chooseView, nextView, seedViewChoice, setViewOptions, subscribeViewChoice } from '@datalayer/reactor-shell';
|
|
20
|
+
/** The choice that means "just the conversation". */
|
|
21
|
+
export declare const NONE_EDITOR = "none";
|
|
22
|
+
/** The current request and options, in loop names. */
|
|
23
|
+
export declare function getEditorChoice(): {
|
|
24
|
+
editorId: string;
|
|
25
|
+
options: readonly string[];
|
|
26
|
+
};
|
|
27
|
+
export declare const subscribeEditorChoice: typeof subscribeViewChoice;
|
|
28
|
+
export declare const setEditorOptions: typeof setViewOptions;
|
|
29
|
+
export declare const chooseEditor: typeof chooseView;
|
|
30
|
+
export declare const seedEditorChoice: typeof seedViewChoice;
|
|
31
|
+
export declare const nextEditor: typeof nextView;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The editor choice, in the loop's vocabulary.
|
|
7
|
+
*
|
|
8
|
+
* The store itself lives in `@datalayer/reactor-shell` now — the loop's
|
|
9
|
+
* editor selector grew into the generic shell plugin, and this module is the
|
|
10
|
+
* thin dictionary between the two: `editor` here is `view` there. Kept so
|
|
11
|
+
* everything written against the loop's names (the `/editor` command, the
|
|
12
|
+
* tests, the barrel) reads unchanged.
|
|
13
|
+
*
|
|
14
|
+
* The one behavioural difference from the old local store is deliberate:
|
|
15
|
+
* `chooseEditor` no longer calls the chat's surface channel itself — the
|
|
16
|
+
* generic store announces every choice through the announcer the loop's
|
|
17
|
+
* shell plugin installs, which is wired to `requestSurface`. One path,
|
|
18
|
+
* whether the choice came from the selector, `/editor`, or the generic
|
|
19
|
+
* cycle command.
|
|
20
|
+
*
|
|
21
|
+
* @module loop/plugins/shell/editorChoice
|
|
22
|
+
*/
|
|
23
|
+
import { NONE_VIEW, chooseView, getViewChoice, nextView, seedViewChoice, setViewAnnouncer, setViewOptions, subscribeViewChoice, } from '@datalayer/reactor-shell';
|
|
24
|
+
import { requestSurface } from '../../core/surfaceRequests';
|
|
25
|
+
/*
|
|
26
|
+
* Wired at import, not only at plugin start: the `/editor` command is a
|
|
27
|
+
* plain contribution that can be run without a reactor around it — the tests
|
|
28
|
+
* do, and so does anything driving commands headlessly — and a choice that
|
|
29
|
+
* silently announced to nobody would look exactly like the bug the surface
|
|
30
|
+
* channel exists to prevent. The loop shell plugin installs the same
|
|
31
|
+
* announcer again when it registers, which is idempotent by construction.
|
|
32
|
+
*/
|
|
33
|
+
setViewAnnouncer(requestSurface);
|
|
34
|
+
/** The choice that means "just the conversation". */
|
|
35
|
+
export const NONE_EDITOR = NONE_VIEW;
|
|
36
|
+
/*
|
|
37
|
+
* Cached per underlying state: `useSyncExternalStore` re-renders whenever
|
|
38
|
+
* the snapshot's identity changes, so a getter that builds a fresh object on
|
|
39
|
+
* every call is an infinite render loop waiting for its first subscriber —
|
|
40
|
+
* the view-switch icons found it. The store replaces its state object only
|
|
41
|
+
* on actual change, which makes it the perfect cache key.
|
|
42
|
+
*/
|
|
43
|
+
let mappedFor = null;
|
|
44
|
+
let mapped = null;
|
|
45
|
+
/** The current request and options, in loop names. */
|
|
46
|
+
export function getEditorChoice() {
|
|
47
|
+
const state = getViewChoice();
|
|
48
|
+
if (state !== mappedFor || !mapped) {
|
|
49
|
+
mappedFor = state;
|
|
50
|
+
mapped = { editorId: state.viewId, options: state.options };
|
|
51
|
+
}
|
|
52
|
+
return mapped;
|
|
53
|
+
}
|
|
54
|
+
export const subscribeEditorChoice = subscribeViewChoice;
|
|
55
|
+
export const setEditorOptions = setViewOptions;
|
|
56
|
+
export const chooseEditor = chooseView;
|
|
57
|
+
export const seedEditorChoice = seedViewChoice;
|
|
58
|
+
export const nextEditor = nextView;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@datalayer/loop-plugin-shell` — the loop's face of the generic shell.
|
|
3
|
+
*
|
|
4
|
+
* The machinery lives in `@datalayer/reactor-shell` now: the view choice
|
|
5
|
+
* store, the segmented selector that shows nothing until plugins contribute,
|
|
6
|
+
* the cycle command. This plugin is what makes it *the loop's*:
|
|
7
|
+
*
|
|
8
|
+
* - it points the generic plugin at {@link LoopEditorView} — the editor
|
|
9
|
+
* point the notebook and document fill — and declares the loop's points;
|
|
10
|
+
* - it teaches the selector to read a {@link ChatSurfaceContribution},
|
|
11
|
+
* gating against the live workspace the header slot passes;
|
|
12
|
+
* - it wires the announcer to `requestSurface`, so a choice reaches the chat
|
|
13
|
+
* through the same channel `/notebook` and `/document` use;
|
|
14
|
+
* - it keeps the `/editor` slash command, in the loop's own registry.
|
|
15
|
+
*
|
|
16
|
+
* @module loop/plugins/shell
|
|
17
|
+
*/
|
|
18
|
+
import type { JSX } from 'react';
|
|
19
|
+
export declare const SHELL_PLUGIN_NAME = "@datalayer/loop-plugin-shell";
|
|
20
|
+
export type ShellPluginConfig = {
|
|
21
|
+
/**
|
|
22
|
+
* The editor the selector starts on.
|
|
23
|
+
*
|
|
24
|
+
* A preference, not a demand, exactly like the chat's `defaultSurface` — a
|
|
25
|
+
* named editor whose plugin is not mounted leaves the selector on `'none'`.
|
|
26
|
+
* The two configs should agree; `loopPlugins` sets both from one option.
|
|
27
|
+
*/
|
|
28
|
+
defaultEditor: string;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the header carries the segmented control at all.
|
|
31
|
+
*
|
|
32
|
+
* The points are declared either way — extending the shell must not
|
|
33
|
+
* depend on whether its selector happens to be drawn.
|
|
34
|
+
*/
|
|
35
|
+
showSelector: boolean;
|
|
36
|
+
};
|
|
37
|
+
/** The generic selector, dressed for the loop's header. */
|
|
38
|
+
declare function EditorSelectorComponent(slotProps: Record<string, unknown>): JSX.Element | null;
|
|
39
|
+
export declare const ShellPlugin: import("@datalayer/reactor").ReactorPlugin<ShellPluginConfig, unknown, unknown>;
|
|
40
|
+
export { NONE_EDITOR, chooseEditor, getEditorChoice, nextEditor, seedEditorChoice, setEditorOptions, subscribeEditorChoice, } from './editorChoice';
|
|
41
|
+
/** The loop's selector, for a host that renders it somewhere of its own. */
|
|
42
|
+
export { EditorSelectorComponent as EditorSelector };
|
|
43
|
+
/** @deprecated The editors plugin grew into the shell plugin; same object. */
|
|
44
|
+
export declare const EditorsPlugin: import("@datalayer/reactor").ReactorPlugin<ShellPluginConfig, unknown, unknown>;
|
|
45
|
+
/** @deprecated See {@link SHELL_PLUGIN_NAME}. */
|
|
46
|
+
export declare const EDITORS_PLUGIN_NAME = "@datalayer/loop-plugin-shell";
|
|
47
|
+
export default ShellPlugin;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { configurePlugin, contribution, definePlugin, } from '@datalayer/reactor';
|
|
3
|
+
import { ShellPlugin as ReactorShellPlugin, ViewSelector, } from '@datalayer/reactor-shell';
|
|
4
|
+
import { LoopCommand, LoopEditorView, LoopSlots, LoopViewType, canOpenView, requestSurface, } from '../../core';
|
|
5
|
+
import { NONE_EDITOR, chooseEditor, getEditorChoice, nextEditor, seedEditorChoice, } from './editorChoice';
|
|
6
|
+
import { useEditorPreviews } from './useEditorPreviews';
|
|
7
|
+
export const SHELL_PLUGIN_NAME = '@datalayer/loop-plugin-shell';
|
|
8
|
+
/** How a loop editor contribution reads as the generic selector's view. */
|
|
9
|
+
function describeEditor(value, context) {
|
|
10
|
+
const surface = value;
|
|
11
|
+
const workspace = context
|
|
12
|
+
?.workspace;
|
|
13
|
+
const openable = workspace ? canOpenView(surface, workspace) : true;
|
|
14
|
+
return {
|
|
15
|
+
id: surface.surfaceId,
|
|
16
|
+
title: surface.title,
|
|
17
|
+
icon: surface.icon,
|
|
18
|
+
order: surface.order,
|
|
19
|
+
disabled: !openable,
|
|
20
|
+
disabledReason: openable
|
|
21
|
+
? undefined
|
|
22
|
+
: (workspace && surface.unavailableReason?.(workspace)) ||
|
|
23
|
+
'Not available right now',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** The generic selector, dressed for the loop's header. */
|
|
27
|
+
function EditorSelectorComponent(slotProps) {
|
|
28
|
+
const workspace = slotProps
|
|
29
|
+
.workspace;
|
|
30
|
+
/*
|
|
31
|
+
* Live figures for the labels — "Notebook (4)" — and the hover cards
|
|
32
|
+
* behind them. The editors are connected whether or not they are shown;
|
|
33
|
+
* the selector is where that stops being invisible.
|
|
34
|
+
*/
|
|
35
|
+
const previews = useEditorPreviews(workspace?.surfaceId ?? '');
|
|
36
|
+
const describe = (value, context) => {
|
|
37
|
+
const base = describeEditor(value, context);
|
|
38
|
+
const preview = previews[base.id];
|
|
39
|
+
return preview
|
|
40
|
+
? { ...base, badge: preview.badge, details: preview.details }
|
|
41
|
+
: base;
|
|
42
|
+
};
|
|
43
|
+
return (_jsx(ViewSelector, { point: LoopEditorView, describe: describe, context: slotProps,
|
|
44
|
+
// "Chat", not "None": with no editor beside it the conversation IS the
|
|
45
|
+
// view, and a control that names the common case after what it lacks
|
|
46
|
+
// reads as an error state.
|
|
47
|
+
noneLabel: "Chat", ariaLabel: "Editor" }));
|
|
48
|
+
}
|
|
49
|
+
export const ShellPlugin = definePlugin({
|
|
50
|
+
name: SHELL_PLUGIN_NAME,
|
|
51
|
+
// Named apart from the reactor's own `Shell` plugin, which sits beside it
|
|
52
|
+
// in the plugins panel: this is the Loop workspace's.
|
|
53
|
+
displayName: 'Loop shell',
|
|
54
|
+
description: 'The Loop workspace’s extension points, and the editor choice.',
|
|
55
|
+
octicon: 'columns',
|
|
56
|
+
emoji: '\u{1F4D1}',
|
|
57
|
+
config: {
|
|
58
|
+
defaultEditor: NONE_EDITOR,
|
|
59
|
+
showSelector: true,
|
|
60
|
+
},
|
|
61
|
+
/*
|
|
62
|
+
* The generic shell, configured for the loop. The selector is rendered by
|
|
63
|
+
* *this* plugin (below) rather than the generic one, because which slot it
|
|
64
|
+
* sits in and whether it shows are loop configuration; the generic
|
|
65
|
+
* keybinding is stood down so the loop's `/editor` keeps `Mod+Alt+E`
|
|
66
|
+
* without two commands fighting over one chord.
|
|
67
|
+
*/
|
|
68
|
+
dependencies: [
|
|
69
|
+
configurePlugin(ReactorShellPlugin, {
|
|
70
|
+
point: LoopEditorView,
|
|
71
|
+
describe: describeEditor,
|
|
72
|
+
showSelector: false,
|
|
73
|
+
announce: (viewId) => requestSurface(viewId),
|
|
74
|
+
commandId: 'loop.shell.cycleEditor',
|
|
75
|
+
// Named for what it cycles here: the palette said "Switch the view" and
|
|
76
|
+
// a person looking for the notebook did not recognise it.
|
|
77
|
+
commandName: 'Switch the editor',
|
|
78
|
+
commandDescription: 'Cycle through the editors beside the conversation, and none',
|
|
79
|
+
keybinding: '',
|
|
80
|
+
}),
|
|
81
|
+
],
|
|
82
|
+
// Declared, not merely used: the registry knows who contributed to a
|
|
83
|
+
// point, it cannot know who opened it — and these two are what makes this
|
|
84
|
+
// the plugin the others extend.
|
|
85
|
+
contributionPoints: [LoopViewType, LoopEditorView],
|
|
86
|
+
contributes: [
|
|
87
|
+
contribution(LoopCommand, {
|
|
88
|
+
name: 'editor',
|
|
89
|
+
aliases: ['editors'],
|
|
90
|
+
description: 'Switch the editor beside the conversation',
|
|
91
|
+
group: 'Open',
|
|
92
|
+
keybinding: 'Mod+Alt+E',
|
|
93
|
+
args: [
|
|
94
|
+
{
|
|
95
|
+
name: 'editor',
|
|
96
|
+
description: 'Which editor: none, or a surface id. Omit to cycle.',
|
|
97
|
+
required: false,
|
|
98
|
+
choices: () => [NONE_EDITOR, ...getEditorChoice().options],
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
run: async ({ argv }) => {
|
|
102
|
+
const asked = argv.trim();
|
|
103
|
+
const wanted = asked === '' ? nextEditor() : asked;
|
|
104
|
+
const known = [NONE_EDITOR, ...getEditorChoice().options];
|
|
105
|
+
if (!known.includes(wanted)) {
|
|
106
|
+
throw new Error(`No editor called '${wanted}'. There is: ${known.join(', ')}.`);
|
|
107
|
+
}
|
|
108
|
+
if (!chooseEditor(wanted)) {
|
|
109
|
+
throw new Error('No chat is on screen to host the editor.');
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
}, { id: 'editor' }),
|
|
113
|
+
],
|
|
114
|
+
build: ({ config }) => {
|
|
115
|
+
// The selector starts where the chat starts. Seeded, not requested: the
|
|
116
|
+
// chat's own `defaultSurface` is what actually opens the editor, and at
|
|
117
|
+
// build time there is no chat listening yet. The chat writes "no editor"
|
|
118
|
+
// as `''` or `'none'`; the selector's word for it is `'none'`.
|
|
119
|
+
seedEditorChoice(config.defaultEditor || NONE_EDITOR);
|
|
120
|
+
return {
|
|
121
|
+
components: config.showSelector
|
|
122
|
+
? [
|
|
123
|
+
{
|
|
124
|
+
id: 'editor-selector',
|
|
125
|
+
slot: LoopSlots.header,
|
|
126
|
+
// The component holds itself to the trailing edge of the header
|
|
127
|
+
// row with `marginLeft: 'auto'`, wherever the slot renders it.
|
|
128
|
+
Component: EditorSelectorComponent,
|
|
129
|
+
},
|
|
130
|
+
]
|
|
131
|
+
: [],
|
|
132
|
+
};
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
export { NONE_EDITOR, chooseEditor, getEditorChoice, nextEditor, seedEditorChoice, setEditorOptions, subscribeEditorChoice, } from './editorChoice';
|
|
136
|
+
/** The loop's selector, for a host that renders it somewhere of its own. */
|
|
137
|
+
export { EditorSelectorComponent as EditorSelector };
|
|
138
|
+
/** @deprecated The editors plugin grew into the shell plugin; same object. */
|
|
139
|
+
export const EditorsPlugin = ShellPlugin;
|
|
140
|
+
/** @deprecated See {@link SHELL_PLUGIN_NAME}. */
|
|
141
|
+
export const EDITORS_PLUGIN_NAME = SHELL_PLUGIN_NAME;
|
|
142
|
+
export default ShellPlugin;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the hidden editors hold, for the selector to show.
|
|
3
|
+
*
|
|
4
|
+
* The notebook and the document are mounted and connected whether or not
|
|
5
|
+
* they are on screen — the agent works in them from the `none` view. The
|
|
6
|
+
* selector is where that stops being invisible: each label carries a live
|
|
7
|
+
* count ("Notebook (4)"), and hovering opens a card listing the cells or
|
|
8
|
+
* blocks, one truncated source line each. A person watching the agent work
|
|
9
|
+
* sees the notebook filling up without ever leaving the conversation.
|
|
10
|
+
*
|
|
11
|
+
* The notebook is read synchronously from the live model and followed
|
|
12
|
+
* through its own signals; the document is read through the lexical store's
|
|
13
|
+
* async block reader, refreshed when the store reports change. The lexical
|
|
14
|
+
* module is imported lazily and only once the workspace actually offers a
|
|
15
|
+
* document — this file must not be the import that drags lexical into every
|
|
16
|
+
* bundle.
|
|
17
|
+
*
|
|
18
|
+
* @module loop/plugins/shell/useEditorPreviews
|
|
19
|
+
*/
|
|
20
|
+
import type { ReactNode } from 'react';
|
|
21
|
+
export type EditorPreview = {
|
|
22
|
+
badge: string;
|
|
23
|
+
details: ReactNode;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Live previews for the editor selector, keyed by surface id.
|
|
27
|
+
*
|
|
28
|
+
* Only the editors actually on offer are read — the store subscriptions and
|
|
29
|
+
* the lexical import cost nothing in a workspace without them.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useEditorPreviews(surfaceId: string): Record<string, EditorPreview | undefined>;
|
|
32
|
+
export default useEditorPreviews;
|