@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
|
@@ -20,34 +20,32 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
20
20
|
*
|
|
21
21
|
* @module chat/document/EphemeralDocument
|
|
22
22
|
*/
|
|
23
|
+
/*
|
|
24
|
+
* First, before anything lexical: `@lexical/code` pulls Prism *language
|
|
25
|
+
* components*, plain scripts that read the bare global `Prism` the moment
|
|
26
|
+
* they evaluate — and this module is what defines it. Imported lower down,
|
|
27
|
+
* the languages ran first and the whole editor died on "Prism is not
|
|
28
|
+
* defined" before it could draw anything.
|
|
29
|
+
*/
|
|
30
|
+
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
23
31
|
import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
|
|
24
|
-
import { $getRoot, $createParagraphNode, } from 'lexical';
|
|
25
|
-
import {
|
|
26
|
-
import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
|
|
32
|
+
import { $getRoot, $createParagraphNode, defineExtension, } from 'lexical';
|
|
33
|
+
import { LexicalExtensionComposer } from '@lexical/react/LexicalExtensionComposer';
|
|
27
34
|
import { ContentEditable } from '@lexical/react/LexicalContentEditable';
|
|
28
|
-
import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
|
|
29
35
|
import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
|
|
30
36
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
|
|
34
|
-
import { TRANSFORMERS } from '@lexical/markdown';
|
|
35
|
-
import { registerCodeHighlighting } from '@lexical/code';
|
|
36
|
-
import { ListPlugin } from '@lexical/react/LexicalListPlugin';
|
|
37
|
-
import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
|
|
38
|
-
import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
|
|
37
|
+
import { AutoFocusExtension, getExtensionDependencyFromEditor, } from '@lexical/extension';
|
|
38
|
+
import { HistoryExtension } from '@lexical/history';
|
|
39
39
|
import { ServerConnection, ServiceManager } from '@jupyterlab/services';
|
|
40
40
|
import { DatalayerThemeProvider, getThemeConfig, useSystemColorMode, useThemeStore, } from '@datalayer/primer-addons';
|
|
41
|
-
import { Box
|
|
41
|
+
import { Box } from '@primer/react';
|
|
42
42
|
import { JupyterReactTheme, Kernel, disposeServiceManager, } from '@datalayer/jupyter-react';
|
|
43
|
-
import { ComponentPickerMenuPlugin,
|
|
43
|
+
import { ComponentPickerMenuPlugin, JupyterLexicalExtension, JupyterInputOutputPlugin, DraggableBlockPlugin, TableCellResizerPlugin, TableActionMenuPlugin, TableHoverActionsV2Plugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ToolbarPlugin, ToolbarContext, CommentsProvider, DocumentSkeleton, commentTheme, } from '@datalayer/jupyter-lexical';
|
|
44
44
|
import { createWebsocketProvider, LoroCollaborationPlugin, } from '@datalayer/lexical-loro';
|
|
45
|
-
import { editorConfig } from '../../examples/lexical/editorConfig';
|
|
46
45
|
import { useLexicalTools } from '../../tools/adapters/agent-runtimes/lexicalHooks';
|
|
47
46
|
import { useAgentsRuntimes } from '../../hooks/useAgentRuntimes';
|
|
48
47
|
import { registerSandboxServiceManager } from '../../services/sandboxServiceManagers';
|
|
49
48
|
import { useProgressTask } from '../../hooks/useProgressTask';
|
|
50
|
-
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
51
49
|
import '@datalayer/jupyter-lexical/style/index.css';
|
|
52
50
|
/**
|
|
53
51
|
* Lexical plugin that loads the initial (restored) editor state exactly once.
|
|
@@ -89,10 +87,18 @@ function LoadContentPlugin({ content }) {
|
|
|
89
87
|
}, [content, editor]);
|
|
90
88
|
return null;
|
|
91
89
|
}
|
|
92
|
-
/**
|
|
93
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Undo history follows the collaboration mode.
|
|
92
|
+
*
|
|
93
|
+
* The history is the bundled `HistoryExtension`'s. Its `disabled` signal is
|
|
94
|
+
* flipped here rather than set in the root extension, so that a change of
|
|
95
|
+
* mode does not rebuild the editor and lose the document with it.
|
|
96
|
+
*/
|
|
97
|
+
function HistoryTogglePlugin({ disabled }) {
|
|
94
98
|
const [editor] = useLexicalComposerContext();
|
|
95
|
-
useEffect(() =>
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
getExtensionDependencyFromEditor(editor, HistoryExtension).output.disabled.value = disabled;
|
|
101
|
+
}, [editor, disabled]);
|
|
96
102
|
return null;
|
|
97
103
|
}
|
|
98
104
|
/**
|
|
@@ -108,7 +114,20 @@ function DocumentToolbar({ setIsLinkEditMode, extraItems, }) {
|
|
|
108
114
|
/**
|
|
109
115
|
* Renders an in-memory Lexical document backed by a sandbox kernel.
|
|
110
116
|
*/
|
|
111
|
-
|
|
117
|
+
/**
|
|
118
|
+
* The theme provider, or nothing.
|
|
119
|
+
*
|
|
120
|
+
* A host that already owns a theme root passes `inherit`; nested providers
|
|
121
|
+
* fight over `BaseStyles` and font tokens, and the inner one wins for the wrong
|
|
122
|
+
* reasons.
|
|
123
|
+
*/
|
|
124
|
+
function ThemeRoot({ inherit, colorMode, themeConfig, children, }) {
|
|
125
|
+
if (inherit) {
|
|
126
|
+
return _jsx(_Fragment, { children: children });
|
|
127
|
+
}
|
|
128
|
+
return (_jsx(DatalayerThemeProvider, { colorMode: colorMode, theme: themeConfig.primerTheme, themeStyles: themeConfig.themeStyles, children: children }));
|
|
129
|
+
}
|
|
130
|
+
export function EphemeralDocument({ documentId, runtimeName, runtimeOverride, serviceManager: providedServiceManager, kernelId, themeVariant, colorMode, content, onContentChange, onToolsReady, onKernelChange, collaboration, toolbarExtraItems, showToolbar = true, inheritTheme = false, autoFocus = true, }) {
|
|
112
131
|
// Real-time collaboration is active only when both a WebSocket endpoint and a
|
|
113
132
|
// room id are supplied. In that mode the shared Loro CRDT is the single source
|
|
114
133
|
// of truth: local content-seeding and undo history are disabled so the local
|
|
@@ -162,17 +181,18 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
162
181
|
url: overrideBaseUrl,
|
|
163
182
|
wsUrl: String(runtimeOverride?.wsUrl || '').trim() || undefined,
|
|
164
183
|
token: String(runtimeOverride?.token || '').trim(),
|
|
165
|
-
|
|
184
|
+
runtime_name: String(runtimeOverride?.runtimeName || '').trim() ||
|
|
185
|
+
'agent-node-proxy',
|
|
166
186
|
};
|
|
167
187
|
}
|
|
168
|
-
const
|
|
169
|
-
if (!
|
|
188
|
+
const preferredRuntime = String(runtimeName || '').trim();
|
|
189
|
+
if (!preferredRuntime) {
|
|
170
190
|
return undefined;
|
|
171
191
|
}
|
|
172
|
-
return runtimes.find(rt => String(rt?.
|
|
173
|
-
}, [runtimeOverride,
|
|
192
|
+
return runtimes.find(rt => String(rt?.runtime_name || '') === preferredRuntime);
|
|
193
|
+
}, [runtimeOverride, runtimeName, runtimes]);
|
|
174
194
|
const needsRuntimeLookup = Boolean(!runtimeOverride?.baseUrl &&
|
|
175
|
-
String(
|
|
195
|
+
String(runtimeName || '').trim() &&
|
|
176
196
|
!selectedRuntime);
|
|
177
197
|
useEffect(() => {
|
|
178
198
|
if (!needsRuntimeLookup) {
|
|
@@ -195,6 +215,41 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
195
215
|
let manager = null;
|
|
196
216
|
let unregisterManager = null;
|
|
197
217
|
const connectRuntime = async () => {
|
|
218
|
+
// Services handed over by the host — an in-page JupyterLite sandbox —
|
|
219
|
+
// are used as they are. There is no URL to connect to in that case, and
|
|
220
|
+
// the old code read "no url" as "nothing to do" and returned silently,
|
|
221
|
+
// which is why the editor came up blank with an empty console.
|
|
222
|
+
if (providedServiceManager) {
|
|
223
|
+
try {
|
|
224
|
+
await providedServiceManager.ready;
|
|
225
|
+
const connection = kernelId
|
|
226
|
+
? providedServiceManager.kernels.connectTo({
|
|
227
|
+
model: { id: kernelId, name: 'python' },
|
|
228
|
+
})
|
|
229
|
+
: await providedServiceManager.kernels.startNew();
|
|
230
|
+
if (!cancelled) {
|
|
231
|
+
setRuntimeServiceManager(providedServiceManager);
|
|
232
|
+
setDocumentKernel(new Kernel({
|
|
233
|
+
kernelName: connection.model.name,
|
|
234
|
+
kernelSpecName: connection.model.name,
|
|
235
|
+
kernelModel: connection.model,
|
|
236
|
+
kernelManager: providedServiceManager.kernels,
|
|
237
|
+
kernelspecsManager: providedServiceManager.kernelspecs,
|
|
238
|
+
sessionManager: providedServiceManager.sessions,
|
|
239
|
+
}));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch (reason) {
|
|
243
|
+
// Said out loud. A document that silently shows nothing is the
|
|
244
|
+
// hardest kind of failure to chase.
|
|
245
|
+
console.error('[agent-runtimes] The document could not reach the kernel of the sandbox it was given.', reason);
|
|
246
|
+
if (!cancelled) {
|
|
247
|
+
setRuntimeServiceManager(null);
|
|
248
|
+
setDocumentKernel(undefined);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
198
253
|
const baseUrl = String(selectedRuntime?.url || '').trim();
|
|
199
254
|
if (!baseUrl) {
|
|
200
255
|
if (!cancelled) {
|
|
@@ -216,7 +271,7 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
216
271
|
manager = new ServiceManager({ serverSettings });
|
|
217
272
|
// Central sandbox registry: runtime terminate/pause disposes this
|
|
218
273
|
// manager immediately so its pollers cannot hit the dead pod ingress.
|
|
219
|
-
unregisterManager = registerSandboxServiceManager(String(selectedRuntime?.
|
|
274
|
+
unregisterManager = registerSandboxServiceManager(String(selectedRuntime?.runtime_name || ''), manager);
|
|
220
275
|
await manager.ready;
|
|
221
276
|
const kernelConnection = await manager.kernels.startNew();
|
|
222
277
|
if (!cancelled) {
|
|
@@ -243,11 +298,19 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
243
298
|
return () => {
|
|
244
299
|
cancelled = true;
|
|
245
300
|
unregisterManager?.();
|
|
301
|
+
// Only what this component built. A manager the host passed in is still
|
|
302
|
+
// theirs, and disposing it would take the sandbox down with the view.
|
|
246
303
|
if (manager) {
|
|
247
304
|
disposeServiceManager(manager);
|
|
248
305
|
}
|
|
249
306
|
};
|
|
250
|
-
}, [
|
|
307
|
+
}, [
|
|
308
|
+
providedServiceManager,
|
|
309
|
+
kernelId,
|
|
310
|
+
selectedRuntime?.runtime_name,
|
|
311
|
+
selectedRuntime?.url,
|
|
312
|
+
selectedRuntime?.token,
|
|
313
|
+
]);
|
|
251
314
|
// Surface the document's live kernel connection to the parent so the chat
|
|
252
315
|
// header's kernel indicator reflects the real connected kernel instead of
|
|
253
316
|
// the "disconnected"/"no-kernel" placeholder while the document is active.
|
|
@@ -258,23 +321,31 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
258
321
|
};
|
|
259
322
|
}, [documentKernel, onKernelChange]);
|
|
260
323
|
const activeServiceManager = runtimeServiceManager;
|
|
261
|
-
|
|
262
|
-
|
|
324
|
+
// Starting covers the supplied-services path too. Without it the spinner
|
|
325
|
+
// appeared and vanished in the same frame — the only sign that anything was
|
|
326
|
+
// happening — and then the editor sat empty while the kernel connected.
|
|
327
|
+
const isRuntimeStarting = Boolean((String(runtimeName || '').trim() ||
|
|
328
|
+
String(runtimeOverride?.baseUrl || '').trim() ||
|
|
329
|
+
providedServiceManager) &&
|
|
263
330
|
!activeServiceManager);
|
|
264
331
|
useProgressTask(`ephemeral-document-start-${documentId}`, isRuntimeStarting);
|
|
265
|
-
//
|
|
266
|
-
//
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
332
|
+
// The root extension, once per documentId: the shared Jupyter Lexical
|
|
333
|
+
// document with the `commentTheme` the jupyter-lexical stylesheet styles,
|
|
334
|
+
// focus on mount unless the host asked otherwise, and no content — the
|
|
335
|
+
// document starts empty and is either restored or filled by the agent
|
|
336
|
+
// (LoadContentPlugin) or by the room.
|
|
337
|
+
const extension = useMemo(() => defineExtension({
|
|
338
|
+
name: '@datalayer/agent-runtimes/EphemeralDocument',
|
|
339
|
+
namespace: `ephemeral-document-${documentId}`,
|
|
340
|
+
theme: commentTheme,
|
|
341
|
+
dependencies: [
|
|
342
|
+
JupyterLexicalExtension,
|
|
343
|
+
...(autoFocus ? [AutoFocusExtension] : []),
|
|
344
|
+
],
|
|
345
|
+
onError(error) {
|
|
346
|
+
console.error('[EphemeralDocument]', error);
|
|
347
|
+
},
|
|
348
|
+
}), [documentId, autoFocus]);
|
|
278
349
|
const handleChange = useCallback((editorState) => {
|
|
279
350
|
if (!onContentChange) {
|
|
280
351
|
return;
|
|
@@ -288,6 +359,14 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
288
359
|
}, [onContentChange]);
|
|
289
360
|
const [floatingAnchorElem, setFloatingAnchorElem] = useState(null);
|
|
290
361
|
const [, setIsLinkEditMode] = useState(false);
|
|
362
|
+
// A collaborative document is not here until its room has sent the first
|
|
363
|
+
// snapshot: an editor drawn before that is an empty page for a document
|
|
364
|
+
// that exists. Remembered per room, so another room waits again; without a
|
|
365
|
+
// room the content is local and known at mount.
|
|
366
|
+
const roomId = isCollaborative ? collaboration?.roomId : undefined;
|
|
367
|
+
const [initializedRoom, setInitializedRoom] = useState();
|
|
368
|
+
const documentReady = roomId === undefined || initializedRoom === roomId;
|
|
369
|
+
const onRoomInitialization = useCallback((isInitialized) => setInitializedRoom(isInitialized ? roomId : undefined), [roomId]);
|
|
291
370
|
const onAnchorRef = (elem) => {
|
|
292
371
|
if (elem !== null) {
|
|
293
372
|
setFloatingAnchorElem(elem);
|
|
@@ -313,7 +392,7 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
313
392
|
position: 'relative',
|
|
314
393
|
overflow: 'hidden',
|
|
315
394
|
bg: 'canvas.default',
|
|
316
|
-
}, children: activeServiceManager ? (_jsx(
|
|
395
|
+
}, children: activeServiceManager ? (_jsx(ThemeRoot, { inherit: inheritTheme, colorMode: effectiveColorMode, themeConfig: themeConfig, children: _jsx(JupyterReactTheme, { colormode: resolvedMode, backgroundColor: themeBackground, children: _jsx(Box, { sx: {
|
|
317
396
|
position: 'absolute',
|
|
318
397
|
inset: 0,
|
|
319
398
|
display: 'flex',
|
|
@@ -322,6 +401,26 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
322
401
|
overflow: 'hidden',
|
|
323
402
|
overscrollBehaviorY: 'contain',
|
|
324
403
|
padding: 2,
|
|
404
|
+
backgroundColor: themeBackground,
|
|
405
|
+
/*
|
|
406
|
+
* The variable Lexical's own stylesheets paint from.
|
|
407
|
+
*
|
|
408
|
+
* `Editor.css`, `Rich.css` and `TableNode.css` all write
|
|
409
|
+
* `background: var(--bgColor-default, #fff)` — they are theme-
|
|
410
|
+
* aware by design, and go white only where that variable is
|
|
411
|
+
* undefined. In the lexical package's own examples it is
|
|
412
|
+
* defined, because `LexicalPrimerThemeProvider` wraps them in a
|
|
413
|
+
* `DatalayerThemeProvider`; here the host owns the theme and
|
|
414
|
+
* this subtree never inherited it.
|
|
415
|
+
*
|
|
416
|
+
* Defining it here fixes every one of those rules at once,
|
|
417
|
+
* including the ones nobody has hit yet. Chasing them class by
|
|
418
|
+
* class is what the block below used to do, and it lost: an
|
|
419
|
+
* emotion rule and `.editor-shell .editor-container` have the
|
|
420
|
+
* same specificity, so which one wins comes down to stylesheet
|
|
421
|
+
* order.
|
|
422
|
+
*/
|
|
423
|
+
'--bgColor-default': themeBackground,
|
|
325
424
|
'& .editor-shell': {
|
|
326
425
|
backgroundColor: themeBackground,
|
|
327
426
|
borderRadius: 2,
|
|
@@ -384,13 +483,16 @@ export function EphemeralDocument({ documentId, runtimePodName, runtimeOverride,
|
|
|
384
483
|
'& [role="toolbar"][aria-label="Editor toolbar"]': {
|
|
385
484
|
backgroundColor: themeBackground,
|
|
386
485
|
},
|
|
387
|
-
}, children: _jsx(LexicalConfigProvider, { lexicalId: documentId, serviceManager: activeServiceManager, children: _jsx(
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
486
|
+
}, children: _jsx(LexicalConfigProvider, { lexicalId: documentId, serviceManager: activeServiceManager, children: _jsx(LexicalExtensionComposer, { extension: extension, contentEditable: null, children: _jsx(CommentsProvider, { children: _jsx(ToolbarContext, { children: _jsxs("div", { className: "editor-shell", children: [showToolbar ? (_jsx(DocumentToolbar, { setIsLinkEditMode: setIsLinkEditMode, extraItems: toolbarExtraItems })) : null, _jsx("div", { className: "editor-container", children: _jsxs("div", { className: "editor-inner", children: [isCollaborative && collaboration ? (_jsx(LoroCollaborationPlugin, { id: collaboration.roomId, providerFactory: createWebsocketProvider, websocketUrl: collaboration.websocketUrl, shouldBootstrap: true, showCollaborators: true, username: collaborationName, cursorColor: collaborationColor, awarenessData: collaborationAwarenessData, onInitialization: onRoomInitialization })) : null, _jsx(LexicalStatePlugin, {}), documentReady ? (_jsx("div", { className: "editor-scroller", children: _jsx("div", { className: "editor", ref: onAnchorRef, children: _jsx(ContentEditable, { className: "editor-input", "aria-label": "Ephemeral document editor" }) }) })) : (_jsx(DocumentSkeleton, { maxWidth: "100%" })), !isCollaborative && (_jsx(OnChangePlugin, { onChange: handleChange })), _jsx(HistoryTogglePlugin, { disabled: isCollaborative }), !isCollaborative && (_jsx(LoadContentPlugin, { content: initialContent })), _jsx(TableCellResizerPlugin, {}), _jsx(TableActionMenuPlugin, {}), _jsx(TableHoverActionsV2Plugin, {}), _jsx(ComponentPickerMenuPlugin, { kernel: documentKernel }), _jsx(JupyterInputOutputPlugin, { kernel: documentKernel }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] }))] }) })] }) }) }) }) }) }) }) })) : isRuntimeStarting ? (
|
|
487
|
+
// The document's shape while its runtime starts, where the document
|
|
488
|
+
// will be — not a wheel, which says nothing about what is coming.
|
|
489
|
+
_jsx(ThemeRoot, { inherit: inheritTheme, colorMode: effectiveColorMode, themeConfig: themeConfig, children: _jsx(Box, { sx: {
|
|
490
|
+
position: 'absolute',
|
|
491
|
+
inset: 0,
|
|
492
|
+
display: 'flex',
|
|
493
|
+
flexDirection: 'column',
|
|
494
|
+
padding: 2,
|
|
495
|
+
backgroundColor: themeBackground,
|
|
496
|
+
}, children: _jsx(DocumentSkeleton, { label: "Starting the document", maxWidth: "100%" }) }) })) : null }));
|
|
395
497
|
}
|
|
396
498
|
export default EphemeralDocument;
|
|
@@ -38,5 +38,5 @@ export interface ChatHeaderProps {
|
|
|
38
38
|
* />
|
|
39
39
|
* ```
|
|
40
40
|
*/
|
|
41
|
-
export declare function ChatHeader({ title, description, connectionState, runtimeBusy, onReconnect, onDisconnect, onLogout, onCollapsePanel, }: ChatHeaderProps): import("react
|
|
41
|
+
export declare function ChatHeader({ title, description, connectionState, runtimeBusy, onReconnect, onDisconnect, onLogout, onCollapsePanel, }: ChatHeaderProps): import("react").JSX.Element;
|
|
42
42
|
export default ChatHeader;
|
|
@@ -18,6 +18,13 @@ export declare function toRuntimeExecutionState(runtimeStatus?: RuntimeStatus |
|
|
|
18
18
|
export interface ChatBaseHeaderProps {
|
|
19
19
|
title?: string;
|
|
20
20
|
subtitle?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Why the chat is off, shown beside the title.
|
|
23
|
+
*
|
|
24
|
+
* The header is where someone looks when a control does not respond, so the
|
|
25
|
+
* reason belongs here rather than in a tooltip they would have to find.
|
|
26
|
+
*/
|
|
27
|
+
disableReason?: string;
|
|
21
28
|
brandIcon?: ReactNode;
|
|
22
29
|
headerContent?: ReactNode;
|
|
23
30
|
headerActions?: ReactNode;
|
|
@@ -60,6 +67,8 @@ export interface ChatBaseHeaderProps {
|
|
|
60
67
|
chatViewMode?: ChatViewMode;
|
|
61
68
|
/** Callback when view mode changes */
|
|
62
69
|
onChatViewModeChange?: (mode: ChatViewMode) => void;
|
|
70
|
+
/** Modes shown greyed out: the sidebar, when the host has no mount point. */
|
|
71
|
+
disabledViewModes?: readonly ChatViewMode[];
|
|
63
72
|
/** Show the companion-surface segmented control (None / Notebook / Document). */
|
|
64
73
|
showEphemeralSurfaceControl?: boolean;
|
|
65
74
|
/** Whether the Notebook option is available in the surface control. */
|
|
@@ -71,5 +80,5 @@ export interface ChatBaseHeaderProps {
|
|
|
71
80
|
/** Callback fired when the user changes the companion-surface mode. */
|
|
72
81
|
onEphemeralSurfaceModeChange?: (mode: EphemeralSurfaceMode) => void;
|
|
73
82
|
}
|
|
74
|
-
export declare function ChatBaseHeader({ title, subtitle, brandIcon, headerContent, headerActions, showInformation, onInformationClick, padding, kernelIndicatorState, kernelIndicatorPlacement, runtimeStatus, kernel, kernelEnvironmentName, kernelCpu, kernelMemory, kernelGpu, headerButtons, messageCount, onNewChat, onClear, chatViewMode, onChatViewModeChange, showEphemeralSurfaceControl, enableEphemeralNotebookOption, enableEphemeralDocumentOption, ephemeralSurfaceMode, onEphemeralSurfaceModeChange, }: ChatBaseHeaderProps): import("react
|
|
83
|
+
export declare function ChatBaseHeader({ title, subtitle, disableReason, brandIcon, headerContent, headerActions, showInformation, onInformationClick, padding, kernelIndicatorState, kernelIndicatorPlacement, runtimeStatus, kernel, kernelEnvironmentName, kernelCpu, kernelMemory, kernelGpu, headerButtons, messageCount, onNewChat, onClear, chatViewMode, onChatViewModeChange, disabledViewModes, showEphemeralSurfaceControl, enableEphemeralNotebookOption, enableEphemeralDocumentOption, ephemeralSurfaceMode, onEphemeralSurfaceModeChange, }: ChatBaseHeaderProps): import("react").JSX.Element;
|
|
75
84
|
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Heading, IconButton,
|
|
2
|
+
import { Heading, IconButton, Label, Text, Truncate } from '@primer/react';
|
|
3
3
|
import { Box } from '@datalayer/primer-addons';
|
|
4
4
|
import { KernelIndicator } from '@datalayer/jupyter-react';
|
|
5
|
-
import { PlusIcon, TrashIcon, GearIcon,
|
|
5
|
+
import { PlusIcon, TrashIcon, GearIcon, InfoIcon, } from '@primer/octicons-react';
|
|
6
|
+
import { ChatViewModeToggle } from './ChatViewModeToggle';
|
|
6
7
|
import { AiAgentIcon } from '@datalayer/icons-react';
|
|
8
|
+
import { EphemeralSurfaceControl } from '../EphemeralSurfaceControl';
|
|
7
9
|
export function toRuntimeExecutionState(runtimeStatus) {
|
|
8
10
|
if (!runtimeStatus) {
|
|
9
11
|
return undefined;
|
|
@@ -29,9 +31,23 @@ export function toRuntimeExecutionState(runtimeStatus) {
|
|
|
29
31
|
// ---------------------------------------------------------------------------
|
|
30
32
|
// Component
|
|
31
33
|
// ---------------------------------------------------------------------------
|
|
32
|
-
export function ChatBaseHeader({ title, subtitle, brandIcon, headerContent, headerActions, showInformation, onInformationClick, padding, kernelIndicatorState, kernelIndicatorPlacement = 'left', runtimeStatus, kernel, kernelEnvironmentName, kernelCpu, kernelMemory, kernelGpu, headerButtons, messageCount, onNewChat, onClear, chatViewMode, onChatViewModeChange, showEphemeralSurfaceControl = false, enableEphemeralNotebookOption = false, enableEphemeralDocumentOption = false, ephemeralSurfaceMode = 'none', onEphemeralSurfaceModeChange, }) {
|
|
34
|
+
export function ChatBaseHeader({ title, subtitle, disableReason, brandIcon, headerContent, headerActions, showInformation, onInformationClick, padding, kernelIndicatorState, kernelIndicatorPlacement = 'left', runtimeStatus, kernel, kernelEnvironmentName, kernelCpu, kernelMemory, kernelGpu, headerButtons, messageCount, onNewChat, onClear, chatViewMode, onChatViewModeChange, disabledViewModes = [], showEphemeralSurfaceControl = false, enableEphemeralNotebookOption = false, enableEphemeralDocumentOption = false, ephemeralSurfaceMode = 'none', onEphemeralSurfaceModeChange, }) {
|
|
33
35
|
const effectiveIndicatorState = kernelIndicatorState ?? toRuntimeExecutionState(runtimeStatus);
|
|
34
|
-
|
|
36
|
+
/*
|
|
37
|
+
* No indicator where there is nothing to indicate.
|
|
38
|
+
*
|
|
39
|
+
* It used to fall back to `'undefined'` with no kernel and no state, which
|
|
40
|
+
* draws a full control — dot, label and a details overlay reading
|
|
41
|
+
* "State: undefined, Kernel: unknown-kernel, Server: unknown-url" down to
|
|
42
|
+
* the last field. A reader cannot tell that apart from a runtime that has
|
|
43
|
+
* genuinely gone wrong, so a host that simply never wired the indicator up
|
|
44
|
+
* was reporting a broken sandbox on every page.
|
|
45
|
+
*
|
|
46
|
+
* A host with something to say passes a `kernel`, a state, or a runtime
|
|
47
|
+
* status. Passing none of the three is not a state; it is silence, and the
|
|
48
|
+
* honest rendering of silence is nothing at all.
|
|
49
|
+
*/
|
|
50
|
+
const kernelIndicatorElement = kernel ? (_jsx(KernelIndicator, { kernel: kernel, environmentName: kernelEnvironmentName, cpu: kernelCpu, memory: kernelMemory, gpu: kernelGpu, position: "s", bordered: false })) : effectiveIndicatorState ? (_jsx(KernelIndicator, { state: effectiveIndicatorState, environmentName: kernelEnvironmentName, cpu: kernelCpu, memory: kernelMemory, gpu: kernelGpu, position: "s", bordered: false })) : null;
|
|
35
51
|
return (_jsx(Box, { sx: {
|
|
36
52
|
display: 'flex',
|
|
37
53
|
flexDirection: 'column',
|
|
@@ -64,102 +80,5 @@ export function ChatBaseHeader({ title, subtitle, brandIcon, headerContent, head
|
|
|
64
80
|
color: 'fg.muted',
|
|
65
81
|
minWidth: 0,
|
|
66
82
|
maxWidth: '100%',
|
|
67
|
-
}, children: _jsx(Truncate, { title: subtitle, maxWidth: "40ch", children: subtitle }) }))] })), headerContent, showInformation && (_jsx(IconButton, { icon: InfoIcon, "aria-label": "Information", variant: "invisible", size: "small", onClick: onInformationClick })), kernelIndicatorPlacement === 'center' && kernelIndicatorElement] }), _jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1, flexShrink: 0 }, children: [kernelIndicatorPlacement === 'right' && kernelIndicatorElement, headerButtons?.showNewChat && (_jsx(IconButton, { icon: PlusIcon, "aria-label": "New chat", variant: "invisible", size: "small", onClick: onNewChat })), headerButtons?.showClear && messageCount > 0 && (_jsx(IconButton, { icon: TrashIcon, "aria-label": "Clear messages", variant: "invisible", size: "small", onClick: onClear })), headerButtons?.showSettings && (_jsx(IconButton, { icon: GearIcon, "aria-label": "Settings", variant: "invisible", size: "small", onClick: headerButtons.onSettings })), showEphemeralSurfaceControl && (_jsx(
|
|
68
|
-
display: 'inline-flex',
|
|
69
|
-
alignItems: 'center',
|
|
70
|
-
bg: 'neutral.muted',
|
|
71
|
-
borderRadius: '6px',
|
|
72
|
-
p: '2px',
|
|
73
|
-
gap: '1px',
|
|
74
|
-
}, children: [
|
|
75
|
-
{
|
|
76
|
-
mode: 'none',
|
|
77
|
-
icon: CircleSlashIcon,
|
|
78
|
-
label: 'Chat only',
|
|
79
|
-
enabled: true,
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
mode: 'notebook',
|
|
83
|
-
icon: RowsIcon,
|
|
84
|
-
label: 'Notebook',
|
|
85
|
-
enabled: enableEphemeralNotebookOption,
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
mode: 'document',
|
|
89
|
-
icon: FileIcon,
|
|
90
|
-
label: 'Document',
|
|
91
|
-
enabled: enableEphemeralDocumentOption,
|
|
92
|
-
},
|
|
93
|
-
]
|
|
94
|
-
.filter(({ enabled }) => enabled)
|
|
95
|
-
.map(({ mode, icon: ModeIcon, label }) => (_jsx(Tooltip, { text: label, direction: "n", children: _jsx(Box, { as: "button", "aria-label": label, onClick: () => onEphemeralSurfaceModeChange?.(mode), sx: {
|
|
96
|
-
display: 'inline-flex',
|
|
97
|
-
alignItems: 'center',
|
|
98
|
-
justifyContent: 'center',
|
|
99
|
-
width: 26,
|
|
100
|
-
height: 24,
|
|
101
|
-
borderRadius: '4px',
|
|
102
|
-
border: 'none',
|
|
103
|
-
cursor: 'pointer',
|
|
104
|
-
bg: ephemeralSurfaceMode === mode
|
|
105
|
-
? 'canvas.default'
|
|
106
|
-
: 'transparent',
|
|
107
|
-
boxShadow: ephemeralSurfaceMode === mode
|
|
108
|
-
? 'shadow.small'
|
|
109
|
-
: 'none',
|
|
110
|
-
color: ephemeralSurfaceMode === mode
|
|
111
|
-
? 'fg.default'
|
|
112
|
-
: 'fg.muted',
|
|
113
|
-
transition: 'all 0.15s ease',
|
|
114
|
-
'&:hover': {
|
|
115
|
-
color: 'fg.default',
|
|
116
|
-
bg: ephemeralSurfaceMode === mode
|
|
117
|
-
? 'canvas.default'
|
|
118
|
-
: 'neutral.subtle',
|
|
119
|
-
},
|
|
120
|
-
}, children: _jsx(ModeIcon, { size: 14 }) }) }, mode))) })), chatViewMode && onChatViewModeChange && (_jsx(Box, { sx: {
|
|
121
|
-
display: 'inline-flex',
|
|
122
|
-
alignItems: 'center',
|
|
123
|
-
bg: 'neutral.muted',
|
|
124
|
-
borderRadius: '6px',
|
|
125
|
-
p: '2px',
|
|
126
|
-
gap: '1px',
|
|
127
|
-
}, children: [
|
|
128
|
-
{
|
|
129
|
-
mode: 'floating',
|
|
130
|
-
icon: CommentDiscussionIcon,
|
|
131
|
-
label: 'Full-height popup',
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
mode: 'floating-small',
|
|
135
|
-
icon: DeviceMobileIcon,
|
|
136
|
-
label: 'Floating popup',
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
mode: 'sidebar',
|
|
140
|
-
icon: SidebarExpandIcon,
|
|
141
|
-
label: 'Sidebar panel',
|
|
142
|
-
},
|
|
143
|
-
].map(({ mode, icon: ModeIcon, label }) => (_jsx(Tooltip, { text: label, direction: "n", children: _jsx(Box, { as: "button", "aria-label": label, onClick: () => onChatViewModeChange(mode), sx: {
|
|
144
|
-
display: 'inline-flex',
|
|
145
|
-
alignItems: 'center',
|
|
146
|
-
justifyContent: 'center',
|
|
147
|
-
width: 26,
|
|
148
|
-
height: 24,
|
|
149
|
-
borderRadius: '4px',
|
|
150
|
-
border: 'none',
|
|
151
|
-
cursor: 'pointer',
|
|
152
|
-
bg: chatViewMode === mode
|
|
153
|
-
? 'canvas.default'
|
|
154
|
-
: 'transparent',
|
|
155
|
-
boxShadow: chatViewMode === mode ? 'shadow.small' : 'none',
|
|
156
|
-
color: chatViewMode === mode ? 'fg.default' : 'fg.muted',
|
|
157
|
-
transition: 'all 0.15s ease',
|
|
158
|
-
'&:hover': {
|
|
159
|
-
color: 'fg.default',
|
|
160
|
-
bg: chatViewMode === mode
|
|
161
|
-
? 'canvas.default'
|
|
162
|
-
: 'neutral.subtle',
|
|
163
|
-
},
|
|
164
|
-
}, children: _jsx(ModeIcon, { size: 14 }) }) }, mode))) })), headerActions] })] }) }));
|
|
83
|
+
}, children: _jsx(Truncate, { title: subtitle, maxWidth: "40ch", children: subtitle }) }))] })), disableReason && (_jsx(Label, { variant: "attention", sx: { flexShrink: 0 }, children: disableReason })), headerContent, showInformation && (_jsx(IconButton, { icon: InfoIcon, "aria-label": "Information", variant: "invisible", size: "small", onClick: onInformationClick })), kernelIndicatorPlacement === 'center' && kernelIndicatorElement] }), _jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1, flexShrink: 0 }, children: [kernelIndicatorPlacement === 'right' && kernelIndicatorElement, headerButtons?.showNewChat && (_jsx(IconButton, { icon: PlusIcon, "aria-label": "New chat", variant: "invisible", size: "small", onClick: onNewChat })), headerButtons?.showClear && messageCount > 0 && (_jsx(IconButton, { icon: TrashIcon, "aria-label": "Clear messages", variant: "invisible", size: "small", onClick: onClear })), headerButtons?.showSettings && (_jsx(IconButton, { icon: GearIcon, "aria-label": "Settings", variant: "invisible", size: "small", onClick: headerButtons.onSettings })), showEphemeralSurfaceControl && (_jsx(EphemeralSurfaceControl, { mode: ephemeralSurfaceMode, onChange: onEphemeralSurfaceModeChange, enableNotebook: enableEphemeralNotebookOption, enableDocument: enableEphemeralDocumentOption })), chatViewMode && onChatViewModeChange && (_jsx(ChatViewModeToggle, { value: chatViewMode, onChange: onChatViewModeChange, disabledModes: disabledViewModes })), headerActions] })] }) }));
|
|
165
84
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The segmented toggle for how a chat is shown — the four modes of
|
|
3
|
+
* `CHAT_VIEW_MODES`, drawn as icons in a pill, the current one raised.
|
|
4
|
+
*
|
|
5
|
+
* It grew up in the chat header, and lives apart from it so the same
|
|
6
|
+
* control can stand elsewhere: a composer floating over a page as a
|
|
7
|
+
* draggable card carries it in its own footer, where the person deciding
|
|
8
|
+
* how the chat should sit has the chat under their hands. The rules — the
|
|
9
|
+
* order, the words, which modes are greyed out — stay in `viewModes.ts`;
|
|
10
|
+
* this is only their drawing.
|
|
11
|
+
*
|
|
12
|
+
* @module chat/header/ChatViewModeToggle
|
|
13
|
+
*/
|
|
14
|
+
import type { JSX } from 'react';
|
|
15
|
+
import { type Icon } from '@primer/octicons-react';
|
|
16
|
+
import type { ChatViewMode } from '../../types/chat';
|
|
17
|
+
/** The drawing of each mode. */
|
|
18
|
+
export declare const VIEW_MODE_ICONS: Record<ChatViewMode, Icon>;
|
|
19
|
+
export type ChatViewModeToggleProps = {
|
|
20
|
+
/** The mode the chat is in now. */
|
|
21
|
+
value?: ChatViewMode;
|
|
22
|
+
/** The mode the person picked. */
|
|
23
|
+
onChange: (mode: ChatViewMode) => void;
|
|
24
|
+
/** Modes shown greyed out: the sidebar, when the host has no mount point. */
|
|
25
|
+
disabledModes?: readonly ChatViewMode[];
|
|
26
|
+
/** Where the tooltips open. Above by default; below for a control at the top of its window. */
|
|
27
|
+
tooltipDirection?: 'n' | 's';
|
|
28
|
+
};
|
|
29
|
+
export declare function ChatViewModeToggle({ value, onChange, disabledModes, tooltipDirection, }: ChatViewModeToggleProps): JSX.Element;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Tooltip } from '@primer/react';
|
|
3
|
+
import { Box } from '@datalayer/primer-addons';
|
|
4
|
+
import { CommentDiscussionIcon, DeviceMobileIcon, GrabberIcon, SidebarExpandIcon, } from '@primer/octicons-react';
|
|
5
|
+
import { CHAT_VIEW_MODES, SIDEBAR_NEEDS_MOUNT_POINT } from '../viewModes';
|
|
6
|
+
/** The drawing of each mode. */
|
|
7
|
+
export const VIEW_MODE_ICONS = {
|
|
8
|
+
floating: CommentDiscussionIcon,
|
|
9
|
+
'floating-small': DeviceMobileIcon,
|
|
10
|
+
'floating-draggable': GrabberIcon,
|
|
11
|
+
sidebar: SidebarExpandIcon,
|
|
12
|
+
};
|
|
13
|
+
export function ChatViewModeToggle({ value, onChange, disabledModes = [], tooltipDirection = 'n', }) {
|
|
14
|
+
return (_jsx(Box, { role: "group", "aria-label": "Display mode", "data-chat-view-mode-toggle": "", sx: {
|
|
15
|
+
display: 'inline-flex',
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
bg: 'neutral.muted',
|
|
18
|
+
borderRadius: '6px',
|
|
19
|
+
p: '2px',
|
|
20
|
+
gap: '1px',
|
|
21
|
+
}, children: CHAT_VIEW_MODES.map(({ mode, label }) => {
|
|
22
|
+
const ModeIcon = VIEW_MODE_ICONS[mode];
|
|
23
|
+
const selected = value === mode;
|
|
24
|
+
/* Greyed rather than left out: the person sees the mode exists, and
|
|
25
|
+
that this page has no place for it. */
|
|
26
|
+
const disabled = disabledModes.includes(mode);
|
|
27
|
+
return (_jsx(Tooltip, { text: disabled && mode === 'sidebar'
|
|
28
|
+
? `${label} — ${SIDEBAR_NEEDS_MOUNT_POINT}`
|
|
29
|
+
: label, direction: tooltipDirection, children: _jsx(Box, { as: "button", type: "button", "aria-label": label, "aria-pressed": selected, "aria-disabled": disabled || undefined, onClick: () => {
|
|
30
|
+
if (!disabled) {
|
|
31
|
+
onChange(mode);
|
|
32
|
+
}
|
|
33
|
+
}, sx: {
|
|
34
|
+
display: 'inline-flex',
|
|
35
|
+
alignItems: 'center',
|
|
36
|
+
justifyContent: 'center',
|
|
37
|
+
width: 26,
|
|
38
|
+
height: 24,
|
|
39
|
+
borderRadius: '4px',
|
|
40
|
+
border: 'none',
|
|
41
|
+
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
42
|
+
opacity: disabled ? 0.45 : 1,
|
|
43
|
+
bg: selected ? 'canvas.default' : 'transparent',
|
|
44
|
+
boxShadow: selected ? 'shadow.small' : 'none',
|
|
45
|
+
color: selected ? 'fg.default' : 'fg.muted',
|
|
46
|
+
transition: 'all 0.15s ease',
|
|
47
|
+
'&:hover': disabled
|
|
48
|
+
? {}
|
|
49
|
+
: {
|
|
50
|
+
color: 'fg.default',
|
|
51
|
+
bg: selected ? 'canvas.default' : 'neutral.subtle',
|
|
52
|
+
},
|
|
53
|
+
}, children: _jsx(ModeIcon, { size: 14 }) }) }, mode));
|
|
54
|
+
}) }));
|
|
55
|
+
}
|
package/lib/chat/index.d.ts
CHANGED
|
@@ -49,14 +49,17 @@
|
|
|
49
49
|
* ```
|
|
50
50
|
*/
|
|
51
51
|
export { ChatMessages, type ChatMessagesProps } from './messages/ChatMessages';
|
|
52
|
+
export { ChatMessageList, type ChatMessageListProps, } from './messages/ChatMessageList';
|
|
53
|
+
export { NotebookToolSurfaces, notebookToolSurfacesRenderer, } from './messages/NotebookToolSurfaces';
|
|
52
54
|
export { ChatSidebar, type ChatSidebarProps } from './ChatSidebar';
|
|
53
55
|
export { ChatStandalone } from './ChatStandalone';
|
|
54
56
|
export { ChatBase } from './base/ChatBase';
|
|
55
|
-
export { InputPrompt, type InputPromptProps } from './prompt';
|
|
57
|
+
export { InputPrompt, type InputPromptProps, InputPromptBase, type InputPromptBaseProps, } from './prompt';
|
|
56
58
|
export { McpStatusIndicator, type McpStatusIndicatorProps, type McpServerStatus, type McpAggregateStatus, SandboxStatusIndicator, type SandboxStatusIndicatorProps, type SandboxAggregateStatus, type SandboxWsStatus, } from './indicators';
|
|
57
59
|
export { PoweredByTag, type PoweredByTagProps } from './display/PoweredByTag';
|
|
58
60
|
export { FloatingBrandButton, type FloatingBrandButtonProps, } from './display/FloatingBrandButton';
|
|
59
61
|
export { ChatHeader, type ChatHeaderProps } from './header/ChatHeader';
|
|
62
|
+
export { ChatViewModeToggle, VIEW_MODE_ICONS, type ChatViewModeToggleProps, } from './header/ChatViewModeToggle';
|
|
60
63
|
export { MessagePart, type MessagePartProps, TextPart, type TextPartProps, ReasoningPart, type ReasoningPartProps, ToolPart, type ToolPartProps, DynamicToolPart, type DynamicToolPartProps, } from './parts';
|
|
61
64
|
export { ToolCallDisplay, type ToolCallDisplayProps } from './tools';
|
|
62
65
|
export { ToolApprovalDialog, useToolApprovalDialog, type ToolApprovalDialogProps, } from './tools/ToolApprovalDialog';
|
|
@@ -65,3 +68,4 @@ export { Chat, type ChatProps } from './Chat';
|
|
|
65
68
|
export { ChatFloating, type ChatFloatingProps } from './ChatFloating';
|
|
66
69
|
export { ChatInline, type ChatInlineProps, type ChatInlineProtocolConfig, } from './ChatInline';
|
|
67
70
|
export { AgentRuntimeChat, type AgentRuntimeChatProps, } from '../agents/AgentRuntimeChat';
|
|
71
|
+
export * from './EphemeralSurfaceControl';
|