@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
|
@@ -1,64 +1,217 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The prompt, with everything under it.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* The component is wrapped in a rounded container with a subtle border,
|
|
10
|
-
* giving it a more integrated visual appearance.
|
|
4
|
+
* Wraps the editor and adds the row beneath: the agent, tools, skills and
|
|
5
|
+
* model menus, and the context-window bar. The menus themselves live in
|
|
6
|
+
* `./menus` — they were private sub-components here, which made one module
|
|
7
|
+
* carry four unrelated overlays.
|
|
11
8
|
*
|
|
12
9
|
* @module chat/prompt/InputPrompt
|
|
13
10
|
*/
|
|
14
11
|
import type { ReactNode } from 'react';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
import type { KernelMessage } from '@jupyterlab/services';
|
|
13
|
+
import type { BuiltinTool, ContextSnapshotData, MCPServerConfig, McpToolsetsStatusResponse, ModelConfig, SkillInfo } from '../../types';
|
|
14
|
+
import { type InputPromptVariant } from './InputPromptBase';
|
|
15
|
+
import type { PromptSuggestion } from './menus/SuggestionsMenu';
|
|
16
|
+
import type { MentionableAgent } from './plugins/AgentMentionPlugin';
|
|
17
|
+
/** One agent the footer may offer. */
|
|
18
|
+
import type { FooterAgent } from '../../types/chat';
|
|
19
|
+
export type { FooterAgent };
|
|
20
|
+
/** Where the prompt stands: in the flow, or in a draggable card over it. */
|
|
21
|
+
export type InputPromptPlacement = 'docked' | 'floating';
|
|
20
22
|
export interface InputPromptProps {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
input: string;
|
|
24
|
+
setInput: (value: string) => void;
|
|
25
|
+
isLoading: boolean;
|
|
26
|
+
kernelStatus?: KernelMessage.Status;
|
|
27
|
+
connectionConfirmed: boolean;
|
|
24
28
|
placeholder?: string;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
autoFocus
|
|
35
|
-
/** Trigger value change to refocus input */
|
|
29
|
+
/**
|
|
30
|
+
* Openers to type out in the placeholder, one after another, on a loop.
|
|
31
|
+
*
|
|
32
|
+
* Forwarded to the prompt itself — see `InputPromptBase`. The chat's own
|
|
33
|
+
* suggestions, usually: the empty state offers them until the first message
|
|
34
|
+
* and then stops, while the box they would be typed into is there the whole
|
|
35
|
+
* time.
|
|
36
|
+
*/
|
|
37
|
+
typingSuggestions?: string[];
|
|
38
|
+
autoFocus: boolean;
|
|
36
39
|
focusTrigger?: number;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
40
|
+
padding: number;
|
|
41
|
+
/**
|
|
42
|
+
* The host's own controls, at the trailing edge of the footer bar.
|
|
43
|
+
*
|
|
44
|
+
* The bar under the input carries the session's menus — agent, tools,
|
|
45
|
+
* skills, model — and this is the opening for whatever the host wants
|
|
46
|
+
* beside them: an icon with an action, a badge, a shortcut. The menus stay
|
|
47
|
+
* at the leading edge; extras hold the trailing one, so additions read as
|
|
48
|
+
* additions rather than reshuffling the controls people know.
|
|
49
|
+
*/
|
|
50
|
+
footerExtras?: ReactNode;
|
|
51
|
+
/**
|
|
52
|
+
* Panels inside the prompt's card, above and below the composer itself.
|
|
53
|
+
*
|
|
54
|
+
* Inside rather than beside, so a floating prompt carries them: the loop's
|
|
55
|
+
* page layout hangs the current turn under the composer this way, and it
|
|
56
|
+
* travels with the card when the card is dragged.
|
|
57
|
+
*/
|
|
58
|
+
leadingPanel?: ReactNode;
|
|
59
|
+
trailingPanel?: ReactNode;
|
|
60
|
+
/**
|
|
61
|
+
* Where the prompt stands.
|
|
62
|
+
*
|
|
63
|
+
* `'docked'` (the default) renders it in the flow, claiming its strip of
|
|
64
|
+
* the layout. `'floating'` wraps the same prompt — editor, header, usage
|
|
65
|
+
* band, the tools/skills/model footer — in a draggable `FloatingCard`:
|
|
66
|
+
* absolutely positioned against the nearest positioned ancestor,
|
|
67
|
+
* bottom-centre until picked up by its handle. For a host whose page is
|
|
68
|
+
* mostly canvas, where a docked composer would claim a permanent strip
|
|
69
|
+
* of it. Dragging is the floating placement's own feature; nothing else
|
|
70
|
+
* need be wired for it.
|
|
71
|
+
*/
|
|
72
|
+
placement?: InputPromptPlacement;
|
|
73
|
+
/**
|
|
74
|
+
* Which edge a floating prompt starts on: `bottom` (the default) or
|
|
75
|
+
* `top`, for a layout whose composer is the command line over a page.
|
|
76
|
+
* Ignored when docked.
|
|
77
|
+
*/
|
|
78
|
+
floatingAnchor?: 'bottom' | 'top';
|
|
79
|
+
/** @deprecated Use `placement="floating"`; `true` maps to exactly that. */
|
|
80
|
+
draggable?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Where to mount the prompt, docked or floating.
|
|
83
|
+
*
|
|
84
|
+
* When given, the prompt renders into this element through a portal
|
|
85
|
+
* instead of in place — for a host that composes the prompt in one part
|
|
86
|
+
* of its tree but wants it standing in another (a workspace overlay, a
|
|
87
|
+
* header-owned dock). The floating card measures its drag bounds against
|
|
88
|
+
* the nearest *positioned* ancestor of this element, so give it one.
|
|
89
|
+
*/
|
|
90
|
+
container?: Element | null;
|
|
91
|
+
/**
|
|
92
|
+
* Called with the message when it is sent.
|
|
93
|
+
*
|
|
94
|
+
* The argument is handed straight through from `InputPromptBase`, which has
|
|
95
|
+
* always passed it — the type here simply said `() => void` and hid that, so
|
|
96
|
+
* a caller wanting the text had to read the source to learn it was there.
|
|
97
|
+
* Declaring it costs callers that ignore it nothing.
|
|
98
|
+
*/
|
|
99
|
+
onSend: (message: string) => void;
|
|
100
|
+
onStop: () => void;
|
|
101
|
+
disableInputPrompt?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Which editor the prompt uses.
|
|
104
|
+
*
|
|
105
|
+
* Forwarded to `InputPrompt`, which is the one prompt component either way —
|
|
106
|
+
* this toolbar is chrome around it, not a second implementation. Without the
|
|
107
|
+
* pass-through the toolbar could only ever be the plain textarea, so a host
|
|
108
|
+
* wanting the `@` menu had to stop using the toolbar to get it.
|
|
109
|
+
*/
|
|
110
|
+
promptVariant?: InputPromptVariant;
|
|
111
|
+
/** Agents the prompt may address by typing `@`. Lexical only. */
|
|
112
|
+
mentionableAgents?: MentionableAgent[];
|
|
113
|
+
/**
|
|
114
|
+
* What was sent to this agent before this page loaded, oldest first.
|
|
115
|
+
*
|
|
116
|
+
* The runtime's own memory of it, read with the rest of the initial state;
|
|
117
|
+
* the arrow keys walk back through it, and through whatever is sent here
|
|
118
|
+
* afterwards.
|
|
119
|
+
*/
|
|
120
|
+
promptHistory?: readonly string[];
|
|
121
|
+
/** Rendered inside the prompt, above where the typing goes. */
|
|
54
122
|
headerContent?: ReactNode;
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
123
|
+
/**
|
|
124
|
+
* Whether the agent chooser is offered.
|
|
125
|
+
*
|
|
126
|
+
* Beside the tools, the skills and the model rather than in a bar at the top
|
|
127
|
+
* of the workspace: all four decide what the *next message* does, and a
|
|
128
|
+
* person setting them up is composing, not configuring.
|
|
129
|
+
*/
|
|
130
|
+
showAgentsMenu?: boolean;
|
|
131
|
+
/** Everyone this conversation may be addressed to. */
|
|
132
|
+
agents?: FooterAgent[];
|
|
133
|
+
/** Who is being addressed now. */
|
|
134
|
+
selectedAgentId?: string;
|
|
135
|
+
/** Address somebody else. */
|
|
136
|
+
onSelectAgent?: (agentId: string) => void;
|
|
137
|
+
/**
|
|
138
|
+
* Whether the agent chip is also drawn inside the prompt.
|
|
139
|
+
*
|
|
140
|
+
* True by default: the chip says who is answering while a person is
|
|
141
|
+
* writing, which the footer's menu says too but further from the eye.
|
|
142
|
+
*
|
|
143
|
+
* False for a host that would rather have one place for every control than
|
|
144
|
+
* two — the footer keeps the chooser either way, so nothing is lost but the
|
|
145
|
+
* duplication.
|
|
146
|
+
*/
|
|
147
|
+
showInlineAgentsMenu?: boolean;
|
|
148
|
+
showTokenUsage: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Whether the usage bar draws its context ring.
|
|
151
|
+
*
|
|
152
|
+
* False by default — see `TokenUsageBar`. The numbers appear either way;
|
|
153
|
+
* this is the pie beside them.
|
|
154
|
+
*/
|
|
155
|
+
showContextRing?: boolean;
|
|
156
|
+
agentUsage?: ContextSnapshotData;
|
|
157
|
+
showModelSelector: boolean;
|
|
158
|
+
showToolsMenu: boolean;
|
|
159
|
+
showSkillsMenu: boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Whether the footer offers the agent's suggestions.
|
|
162
|
+
*
|
|
163
|
+
* True by default: beside agents, tools, skills and model, a menu of the
|
|
164
|
+
* openers the agent's spec (or its team) offers. Picking one puts the text
|
|
165
|
+
* in the box — it does not send. The list is `suggestions`, or, when a
|
|
166
|
+
* host gave only `typingSuggestions`, those.
|
|
167
|
+
*/
|
|
168
|
+
showSuggestionsMenu?: boolean;
|
|
169
|
+
/** The openers behind that menu: what the item shows, and what lands. */
|
|
170
|
+
suggestions?: PromptSuggestion[];
|
|
171
|
+
codemodeEnabled: boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Optional callback invoked when the user toggles codemode from the Tools
|
|
174
|
+
* menu. When omitted the toggle renders as read-only.
|
|
175
|
+
*/
|
|
176
|
+
onToggleCodemode?: (enabled: boolean) => void | Promise<void>;
|
|
177
|
+
isA2AProtocol: boolean;
|
|
178
|
+
hasConfigData: boolean;
|
|
179
|
+
hasSkillsData: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Whether the config request is still in flight.
|
|
182
|
+
*
|
|
183
|
+
* Separate from `hasConfigData` because "not here yet" and "not coming" want
|
|
184
|
+
* different words, and only the caller can tell them apart. Without it the
|
|
185
|
+
* bar said "Loading controls..." for ever whenever a request failed or the
|
|
186
|
+
* agent had no config endpoint to ask.
|
|
187
|
+
*/
|
|
188
|
+
configLoading?: boolean;
|
|
189
|
+
models?: ModelConfig[];
|
|
190
|
+
selectedModel?: string;
|
|
191
|
+
onModelSelect?: (modelId: string) => void;
|
|
192
|
+
availableTools?: BuiltinTool[];
|
|
193
|
+
/** MCP servers to render (already filtered by selection) */
|
|
194
|
+
mcpServers?: MCPServerConfig[];
|
|
195
|
+
enabledMcpTools?: Map<string, Set<string>>;
|
|
196
|
+
enabledMcpToolCount?: number;
|
|
197
|
+
onToggleMcpTool?: (serverId: string, toolName: string) => void;
|
|
198
|
+
onToggleAllMcpServerTools?: (serverId: string, toolNames: string[], enable: boolean) => void;
|
|
199
|
+
/** Approved MCP tools per server (default: all tools approved) */
|
|
200
|
+
approvedMcpTools?: Map<string, Set<string>>;
|
|
201
|
+
onToggleMcpToolApproval?: (serverId: string, toolName: string) => void;
|
|
202
|
+
skills?: SkillInfo[];
|
|
203
|
+
skillsLoading?: boolean;
|
|
204
|
+
enabledSkills?: Set<string>;
|
|
205
|
+
onToggleSkill?: (skillId: string) => void;
|
|
206
|
+
onToggleAllSkills?: (skillIds: string[], enable: boolean) => void;
|
|
207
|
+
/** Approved skills set (default: all skills approved) */
|
|
208
|
+
approvedSkills?: Set<string>;
|
|
209
|
+
onToggleSkillApproval?: (skillId: string) => void;
|
|
210
|
+
/** API base URL passed to MCP indicator */
|
|
211
|
+
apiBase?: string;
|
|
212
|
+
/** Auth token passed to MCP indicator */
|
|
213
|
+
authToken?: string;
|
|
214
|
+
/** Pre-fetched MCP status from WebSocket — bypasses REST polling */
|
|
215
|
+
mcpStatusData?: McpToolsetsStatusResponse | null;
|
|
59
216
|
}
|
|
60
|
-
|
|
61
|
-
* InputPrompt — Integrated chat input with header, input area, and footer.
|
|
62
|
-
*/
|
|
63
|
-
export declare function InputPrompt({ variant, placeholder, isLoading, isKernelBusy, onSend, onStop, autoFocus, focusTrigger, showBorderTop, showBackground, padding, disabled, readOnly, sx, value: controlledValue, onChange: controlledOnChange, headerContent, footerContent, footerRightContent, }: InputPromptProps): import("react/jsx-runtime").JSX.Element;
|
|
64
|
-
export default InputPrompt;
|
|
217
|
+
export declare function InputPrompt({ input, setInput, isLoading, kernelStatus, connectionConfirmed, placeholder, typingSuggestions, autoFocus, focusTrigger, padding, placement, floatingAnchor, draggable, container, footerExtras, leadingPanel, trailingPanel, onSend, onStop, disableInputPrompt, promptVariant, mentionableAgents, promptHistory, headerContent, showAgentsMenu, showInlineAgentsMenu, agents, selectedAgentId, onSelectAgent, showTokenUsage, showContextRing, agentUsage, showModelSelector, showToolsMenu, showSkillsMenu, showSuggestionsMenu, suggestions, codemodeEnabled, onToggleCodemode, isA2AProtocol, hasConfigData, hasSkillsData, configLoading, models, selectedModel, onModelSelect, availableTools, mcpServers, enabledMcpTools, enabledMcpToolCount, onToggleMcpTool, onToggleAllMcpServerTools, approvedMcpTools, onToggleMcpToolApproval, skills, skillsLoading, enabledSkills, onToggleSkill, onToggleAllSkills, approvedSkills, onToggleSkillApproval, apiBase, authToken, mcpStatusData, }: InputPromptProps): import("react").JSX.Element;
|
|
@@ -1,83 +1,164 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Suspense, lazy, useState } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
3
4
|
import { Box } from '@datalayer/primer-addons';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
import { Text } from '@primer/react';
|
|
6
|
+
import { InputPromptBase } from './InputPromptBase';
|
|
7
|
+
import { FloatingCard } from './FloatingCard';
|
|
8
|
+
import { BelowPromptHeader } from './header';
|
|
9
|
+
import { BelowPromptFooter } from './footer';
|
|
10
|
+
import { AgentsMenu, InlineAgentsMenu, ToolsMenu, SkillsMenu, ModelSelector, SuggestionsMenu, } from './menus';
|
|
11
|
+
import { McpStatusIndicator } from '../indicators/McpStatusIndicator';
|
|
12
|
+
import { SkillsStatusIndicator } from '../indicators/SkillsStatusIndicator';
|
|
13
|
+
/*
|
|
14
|
+
* The context-window pie, fetched when there is usage to draw.
|
|
15
|
+
*
|
|
16
|
+
* It renders with ECharts — about 350 KiB compressed — and this composer is
|
|
17
|
+
* part of every embedded workspace, so a static import put ECharts in the
|
|
18
|
+
* first download of any page with a chat, whether or not it ever showed a
|
|
19
|
+
* figure. Usage arrives after the first turn at the earliest, and a host that
|
|
20
|
+
* hides the counters never draws it.
|
|
10
21
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
22
|
+
const ContextPie = lazy(() => import('../usage/ContextPie').then(module => ({
|
|
23
|
+
default: module.ContextPie,
|
|
24
|
+
})));
|
|
25
|
+
/* Shared, so a defaulted prop is the same object on every render: a fresh
|
|
26
|
+
`new Map()` per render is a new dependency for anything memoising on it. */
|
|
27
|
+
const EMPTY_TOOL_MAP = new Map();
|
|
28
|
+
const EMPTY_ID_SET = new Set();
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Component
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
export function InputPrompt({ input, setInput, isLoading, kernelStatus, connectionConfirmed, placeholder, typingSuggestions, autoFocus, focusTrigger, padding, placement, floatingAnchor = 'bottom', draggable = false, container, footerExtras, leadingPanel, trailingPanel, onSend, onStop, disableInputPrompt = false, promptVariant, mentionableAgents, promptHistory, headerContent, showAgentsMenu = false, showInlineAgentsMenu = true, agents = [], selectedAgentId, onSelectAgent, showTokenUsage, showContextRing = false, agentUsage, showModelSelector, showToolsMenu, showSkillsMenu, showSuggestionsMenu = true, suggestions, codemodeEnabled, onToggleCodemode, isA2AProtocol, hasConfigData, hasSkillsData, configLoading = false, models = [], selectedModel = '', onModelSelect = () => { }, availableTools = [], mcpServers = [], enabledMcpTools = EMPTY_TOOL_MAP, enabledMcpToolCount = 0, onToggleMcpTool = () => { }, onToggleAllMcpServerTools = () => { }, approvedMcpTools = EMPTY_TOOL_MAP, onToggleMcpToolApproval = () => { }, skills = [], skillsLoading = false, enabledSkills = EMPTY_ID_SET, onToggleSkill = () => { }, onToggleAllSkills = () => { }, approvedSkills = EMPTY_ID_SET, onToggleSkillApproval = () => { }, apiBase, authToken, mcpStatusData, }) {
|
|
33
|
+
const isKernelBusy = kernelStatus === 'busy';
|
|
34
|
+
/*
|
|
35
|
+
* Each menu is offered when it is switched on *and* has something behind it.
|
|
36
|
+
*
|
|
37
|
+
* The bar used to ask one question — has any request come back — and answer
|
|
38
|
+
* for all four menus at once. So a chat with a model list and no config
|
|
39
|
+
* endpoint showed "Loading controls..." over a model menu that was ready,
|
|
40
|
+
* and went on showing it, because the request it was waiting for was never
|
|
41
|
+
* going to arrive.
|
|
42
|
+
*/
|
|
43
|
+
/*
|
|
44
|
+
* Offered for one agent as much as for several.
|
|
45
|
+
*
|
|
46
|
+
* `> 1` treated the control as a *switch* — useless with nothing to switch
|
|
47
|
+
* to — but it is also a label: it says who is answering, which is worth
|
|
48
|
+
* knowing in a chat with exactly one agent and no other place that says so.
|
|
49
|
+
* The menu then simply has one row, already selected.
|
|
50
|
+
*/
|
|
51
|
+
/*
|
|
52
|
+
* Offered because the host asked for them, not because they have contents.
|
|
53
|
+
*
|
|
54
|
+
* Each of these used to require something behind it — a model in the list, a
|
|
55
|
+
* config request answered, a skill loaded — so a chat that had asked for all
|
|
56
|
+
* four showed however many happened to be populated, and the row's shape
|
|
57
|
+
* changed as answers arrived. Worse, "no skills" and "skills not reported"
|
|
58
|
+
* looked identical: both were an absent menu.
|
|
59
|
+
*
|
|
60
|
+
* A menu that opens onto nothing says nothing is there, which is an answer.
|
|
61
|
+
* An absent menu is not.
|
|
62
|
+
*/
|
|
63
|
+
const agentsOffered = showAgentsMenu && agents.length > 0;
|
|
64
|
+
/* The same control, drawn in the prompt as well as under it. */
|
|
65
|
+
const inlineAgents = agentsOffered && showInlineAgentsMenu;
|
|
66
|
+
const modelsOffered = showModelSelector;
|
|
67
|
+
const toolsOffered = showToolsMenu;
|
|
68
|
+
const skillsOffered = showSkillsMenu;
|
|
69
|
+
/*
|
|
70
|
+
* The suggestions control: the openers as a menu, when there are any.
|
|
71
|
+
*
|
|
72
|
+
* `suggestions` when the host gave them; otherwise the typing openers,
|
|
73
|
+
* which are the same sentences in the placeholder's clothes. Picking one
|
|
74
|
+
* writes the box and bumps a local focus nonce, so the caret lands where
|
|
75
|
+
* the words did without the host having to wire anything.
|
|
76
|
+
*/
|
|
77
|
+
const suggestionItems = suggestions ??
|
|
78
|
+
(typingSuggestions ?? []).map(text => ({ title: text, message: text }));
|
|
79
|
+
const suggestionsOffered = showSuggestionsMenu && suggestionItems.length > 0;
|
|
80
|
+
const [pickedFocus, setPickedFocus] = useState(0);
|
|
81
|
+
const anyOffered = agentsOffered || modelsOffered || toolsOffered || skillsOffered;
|
|
82
|
+
const extrasOffered = Boolean(footerExtras);
|
|
83
|
+
/* Still coming, as opposed to never coming. Only a menu that was asked for
|
|
84
|
+
and is genuinely waiting justifies the word "loading". */
|
|
85
|
+
const stillLoading = (showToolsMenu && !hasConfigData && configLoading) ||
|
|
86
|
+
(showSkillsMenu && !hasSkillsData && skillsLoading);
|
|
87
|
+
// No bar at all when there is nothing to put in it and nothing on its way:
|
|
88
|
+
// an empty bordered strip is worse than no strip.
|
|
89
|
+
const showSelectorsBar = anyOffered || stillLoading || extrasOffered;
|
|
90
|
+
/*
|
|
91
|
+
* The agents are in hand the moment the bar renders — they come from the
|
|
92
|
+
* team the workspace was opened with, not from a query — so a bar that
|
|
93
|
+
* carries them has content whether or not the tool and skill requests have
|
|
94
|
+
* come back yet. Without this a workspace with only an agent chooser sat on
|
|
95
|
+
* "Loading controls..." for ever.
|
|
96
|
+
*/
|
|
97
|
+
/*
|
|
98
|
+
* Shown as soon as the agent accounts for itself, not once it has spent
|
|
99
|
+
* something.
|
|
100
|
+
*
|
|
101
|
+
* `totalTokens > 0` kept the bar hidden until after the first answer, so it
|
|
102
|
+
* arrived mid-conversation and pushed the prompt down with it — and the
|
|
103
|
+
* counts beside the ring could never read zero, which is the one state that
|
|
104
|
+
* says "connected, nothing sent yet". Both harnesses now report a snapshot
|
|
105
|
+
* from the start; this shows it.
|
|
106
|
+
*/
|
|
107
|
+
const hasContext = Boolean(agentUsage && !agentUsage.error);
|
|
108
|
+
const body = (_jsxs(Box, { children: [leadingPanel, _jsx(InputPromptBase, { variant: promptVariant, mentionableAgents: mentionableAgents, promptHistory: promptHistory,
|
|
109
|
+
/*
|
|
110
|
+
Whatever the host puts inside the prompt, and the agent chip beside
|
|
111
|
+
it. Both, rather than either: a host contributing its own controls
|
|
112
|
+
should not lose the one control that says who is being addressed.
|
|
113
|
+
*/
|
|
114
|
+
headerContent: inlineAgents || headerContent ? (_jsxs(_Fragment, { children: [inlineAgents ? (_jsx(InlineAgentsMenu, { agents: agents, selectedAgentId: selectedAgentId, onSelectAgent: onSelectAgent })) : null, headerContent] })) : undefined, placeholder: placeholder || 'Type a message...', typingSuggestions: typingSuggestions, isLoading: isLoading, isKernelBusy: isKernelBusy, disabled: disableInputPrompt, readOnly: !connectionConfirmed, onSend: onSend, onStop: onStop, autoFocus: autoFocus, focusTrigger: (focusTrigger ?? 0) + pickedFocus, padding: padding, value: input, onChange: setInput, footerRightContent: _jsxs(_Fragment, { children: [_jsx(McpStatusIndicator, { apiBase: apiBase, authToken: authToken, data: mcpStatusData }), _jsx(SkillsStatusIndicator, { skillsCount: skills.length, enabledCount: enabledSkills.size, loading: skillsLoading })] }) }), _jsx(BelowPromptHeader, { disabled: disableInputPrompt, stacks: showTokenUsage
|
|
115
|
+
? [
|
|
116
|
+
{
|
|
117
|
+
id: 'context-usage',
|
|
118
|
+
// `ContextPie` is the band: it brings its own padding and
|
|
119
|
+
// background and expects the full width. As a flex item it
|
|
120
|
+
// shrank to its content and left a pale stripe beside it.
|
|
121
|
+
layout: 'block',
|
|
122
|
+
/*
|
|
123
|
+
No band when there is nothing to put in it.
|
|
124
|
+
|
|
125
|
+
The 8px was there to stop the layout jumping when usage
|
|
126
|
+
arrived late. For an agent that never reports any — an
|
|
127
|
+
in-page one with no server keeping the account — it is a
|
|
128
|
+
permanent white stripe between the prompt and its footer,
|
|
129
|
+
reserved for a thing that is not coming.
|
|
130
|
+
*/
|
|
131
|
+
minHeight: hasContext && agentUsage ? 28 : 0,
|
|
132
|
+
px: 0,
|
|
133
|
+
py: 0,
|
|
134
|
+
content: hasContext && agentUsage ? (_jsx(Suspense, { fallback: null, children: _jsx(ContextPie, { agentUsage: agentUsage, padding: padding, showContextRing: showContextRing }) })) : null,
|
|
135
|
+
},
|
|
136
|
+
]
|
|
137
|
+
: [] }), _jsx(BelowPromptFooter, { disabled: disableInputPrompt, stacks: showSelectorsBar
|
|
138
|
+
? [
|
|
139
|
+
{
|
|
140
|
+
id: 'session-controls',
|
|
141
|
+
px: padding,
|
|
142
|
+
py: 0.5,
|
|
143
|
+
minHeight: 36,
|
|
144
|
+
bordered: true,
|
|
145
|
+
subtle: true,
|
|
146
|
+
content: (_jsx(_Fragment, { children: anyOffered || extrasOffered || suggestionsOffered ? (_jsxs(_Fragment, { children: [agentsOffered && (_jsx(AgentsMenu, { agents: agents, selectedAgentId: selectedAgentId, onSelectAgent: onSelectAgent })), toolsOffered && (_jsx(ToolsMenu, { codemodeEnabled: codemodeEnabled, onToggleCodemode: onToggleCodemode, mcpServers: mcpServers, enabledMcpTools: enabledMcpTools, enabledMcpToolCount: enabledMcpToolCount, onToggleMcpTool: onToggleMcpTool, onToggleAllMcpServerTools: onToggleAllMcpServerTools, approvedMcpTools: approvedMcpTools, onToggleMcpToolApproval: onToggleMcpToolApproval, availableTools: availableTools })), skillsOffered && (_jsx(SkillsMenu, { skills: skills, skillsLoading: skillsLoading, enabledSkills: enabledSkills, onToggleSkill: onToggleSkill, onToggleAllSkills: onToggleAllSkills, approvedSkills: approvedSkills, onToggleSkillApproval: onToggleSkillApproval })), modelsOffered && (_jsx(ModelSelector, { models: models, selectedModel: selectedModel, onModelSelect: onModelSelect, isA2AProtocol: isA2AProtocol })), suggestionsOffered && (_jsx(SuggestionsMenu, { suggestions: suggestionItems, onPick: text => {
|
|
147
|
+
setInput(text);
|
|
148
|
+
setPickedFocus(n => n + 1);
|
|
149
|
+
} })), extrasOffered && (_jsx(Box, { sx: {
|
|
150
|
+
marginLeft: 'auto',
|
|
151
|
+
display: 'inline-flex',
|
|
152
|
+
alignItems: 'center',
|
|
153
|
+
gap: 1,
|
|
154
|
+
}, children: footerExtras }))] })) : (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: "Loading controls..." })) })),
|
|
155
|
+
},
|
|
156
|
+
]
|
|
157
|
+
: [] }), trailingPanel] }));
|
|
158
|
+
// The same prompt either way: the placement only decides where it stands
|
|
159
|
+
// (`draggable` is the old spelling of `'floating'`), and the container
|
|
160
|
+
// only decides which subtree it stands in.
|
|
161
|
+
const floating = (placement ?? (draggable ? 'floating' : 'docked')) === 'floating';
|
|
162
|
+
const framed = floating ? (_jsx(FloatingCard, { anchor: floatingAnchor, children: body })) : (body);
|
|
163
|
+
return container ? createPortal(framed, container) : framed;
|
|
82
164
|
}
|
|
83
|
-
export default InputPrompt;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InputPromptBase — the editor, its header and its footer component.
|
|
3
|
+
*
|
|
4
|
+
* Layout (top → bottom):
|
|
5
|
+
* 1. Header – slot for dropdowns / indicators
|
|
6
|
+
* 2. Input – "text" (textarea) or "lexical" (plain-text Lexical editor)
|
|
7
|
+
* 3. Footer – left slot for controls, submit / stop buttons on the right
|
|
8
|
+
*
|
|
9
|
+
* The component is wrapped in a rounded container with a subtle border,
|
|
10
|
+
* giving it a more integrated visual appearance.
|
|
11
|
+
*
|
|
12
|
+
* It also keeps the prompt history the arrow keys walk: seeded from the
|
|
13
|
+
* runtime, extended by what is sent from here.
|
|
14
|
+
*
|
|
15
|
+
* @module chat/prompt/InputPromptBase
|
|
16
|
+
*/
|
|
17
|
+
import type { ReactNode } from 'react';
|
|
18
|
+
import type { PromptStack } from './stack';
|
|
19
|
+
import type { MentionableAgent } from './plugins/AgentMentionPlugin';
|
|
20
|
+
/** Input variant type. */
|
|
21
|
+
export type InputPromptVariant = 'text' | 'lexical';
|
|
22
|
+
/**
|
|
23
|
+
* Props for the InputPrompt component.
|
|
24
|
+
*/
|
|
25
|
+
export interface InputPromptBaseProps {
|
|
26
|
+
/**
|
|
27
|
+
* Which editor the prompt uses — `'lexical'` (default) or `'text'`.
|
|
28
|
+
*
|
|
29
|
+
* Lexical is the one with the `@` menu and the mention chips, and a host had
|
|
30
|
+
* to opt into it by name to get either — so every prompt that had not been
|
|
31
|
+
* told about the feature silently did without it. `'text'` remains for a
|
|
32
|
+
* host that wants a plain textarea and nothing else.
|
|
33
|
+
*/
|
|
34
|
+
variant?: InputPromptVariant;
|
|
35
|
+
/** Placeholder text */
|
|
36
|
+
placeholder?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Suggestions to type out in the placeholder, one after another, on a loop.
|
|
39
|
+
*
|
|
40
|
+
* The chat's own openers, usually. An empty composer asks "what can I ask
|
|
41
|
+
* this thing?" and the empty state answers it only until the first message
|
|
42
|
+
* is sent; typing the answers into the box keeps answering it afterwards.
|
|
43
|
+
*
|
|
44
|
+
* The placeholder only — never the value. It stops while the prompt has
|
|
45
|
+
* focus and for a reader who has asked for reduced motion. Absent or empty
|
|
46
|
+
* leaves `placeholder` standing still.
|
|
47
|
+
*/
|
|
48
|
+
typingSuggestions?: string[];
|
|
49
|
+
/** Whether the agent is loading / streaming */
|
|
50
|
+
isLoading?: boolean;
|
|
51
|
+
/** Whether the connected kernel is currently busy */
|
|
52
|
+
isKernelBusy?: boolean;
|
|
53
|
+
/** Callback when a message is submitted */
|
|
54
|
+
onSend: (message: string) => void;
|
|
55
|
+
/** Callback when the stop button is clicked */
|
|
56
|
+
onStop?: () => void;
|
|
57
|
+
/** Auto-focus the input on mount */
|
|
58
|
+
autoFocus?: boolean;
|
|
59
|
+
/** Trigger value change to refocus input */
|
|
60
|
+
focusTrigger?: number;
|
|
61
|
+
/** Whether to show a border on top of the outer wrapper */
|
|
62
|
+
showBorderTop?: boolean;
|
|
63
|
+
/** Whether to use a subtle background */
|
|
64
|
+
showBackground?: boolean;
|
|
65
|
+
/** Custom outer padding (default: 3) */
|
|
66
|
+
padding?: number;
|
|
67
|
+
/** Whether the prompt is disabled */
|
|
68
|
+
disabled?: boolean;
|
|
69
|
+
/** Whether the prompt is read-only */
|
|
70
|
+
readOnly?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Agents this prompt may address by typing `@`.
|
|
73
|
+
*
|
|
74
|
+
* Lexical only: the plain textarea has nowhere to draw a menu, and a
|
|
75
|
+
* suggestion a person cannot see is worse than none.
|
|
76
|
+
*/
|
|
77
|
+
mentionableAgents?: MentionableAgent[];
|
|
78
|
+
/**
|
|
79
|
+
* What was sent to this agent before this composer mounted, oldest first.
|
|
80
|
+
*
|
|
81
|
+
* Seeds the history the arrow keys walk: up shows the previous prompt, down
|
|
82
|
+
* the next, and past the newest whatever was being typed. Whatever is sent
|
|
83
|
+
* from here joins the list as it goes.
|
|
84
|
+
*/
|
|
85
|
+
promptHistory?: readonly string[];
|
|
86
|
+
/** Additional sx props for the outer container */
|
|
87
|
+
sx?: Record<string, unknown>;
|
|
88
|
+
/** Controlled input value (external state) */
|
|
89
|
+
value?: string;
|
|
90
|
+
/** Controlled input onChange (external state) */
|
|
91
|
+
onChange?: (value: string) => void;
|
|
92
|
+
/** Content rendered in the header slot */
|
|
93
|
+
headerContent?: ReactNode;
|
|
94
|
+
/**
|
|
95
|
+
* Extra bands above the input, inside the box.
|
|
96
|
+
*
|
|
97
|
+
* `headerContent` is the single-band shorthand; this is how a host adds a
|
|
98
|
+
* second without the prompt knowing what is in it.
|
|
99
|
+
*/
|
|
100
|
+
headerStacks?: readonly PromptStack[];
|
|
101
|
+
/** Content rendered on the left side of the footer */
|
|
102
|
+
footerContent?: ReactNode;
|
|
103
|
+
/** Extra bands between the input and the control band. */
|
|
104
|
+
footerStacks?: readonly PromptStack[];
|
|
105
|
+
/** Content rendered on the right side of the footer, next to send/stop */
|
|
106
|
+
footerRightContent?: ReactNode;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* InputPromptBase — the editor, its header and its footer with header, input area, and footer.
|
|
110
|
+
*/
|
|
111
|
+
export declare function InputPromptBase({ variant, placeholder, typingSuggestions, isLoading, isKernelBusy, onSend, onStop, autoFocus, focusTrigger, showBorderTop, showBackground, padding, disabled, readOnly, mentionableAgents, promptHistory, sx, value: controlledValue, onChange: controlledOnChange, headerContent, headerStacks, footerContent, footerStacks, footerRightContent, }: InputPromptBaseProps): import("react").JSX.Element;
|
|
112
|
+
export default InputPromptBase;
|