@datalayer/agent-runtimes 1.0.29 → 1.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AgentDocument.js +5 -22
- package/lib/AgentNode.d.ts +1 -1
- package/lib/AgentNode.js +193 -23
- package/lib/AgentNotebook.js +1 -1
- package/lib/App.d.ts +1 -1
- package/lib/AppExamples2.d.ts +1 -1
- package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
- package/lib/agent-node/AgentNodeGallery.js +19 -15
- package/lib/agent-node/themeStore.js +7 -6
- package/lib/agents/AgentDetails.d.ts +8 -2
- package/lib/agents/AgentDetails.js +41 -11
- package/lib/agents/AgentRuntimeChat.d.ts +3 -3
- package/lib/agents/AgentRuntimeChat.js +15 -15
- package/lib/api/agents.d.ts +10 -10
- package/lib/api/agents.js +15 -15
- package/lib/api/checkpoints.d.ts +40 -0
- package/lib/api/checkpoints.js +75 -0
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/notifications.d.ts +21 -6
- package/lib/api/notifications.js +32 -14
- package/lib/api/runtimes/environments.d.ts +385 -4
- package/lib/api/runtimes/environments.js +610 -9
- package/lib/api/runtimes/runtimes.d.ts +19 -19
- package/lib/api/runtimes/runtimes.js +47 -46
- package/lib/api/spacer/notebooks.js +1 -1
- package/lib/chat/Chat.d.ts +16 -4
- package/lib/chat/Chat.js +18 -5
- package/lib/chat/ChatFloating.d.ts +13 -2
- package/lib/chat/ChatFloating.js +192 -117
- package/lib/chat/ChatInline.d.ts +15 -0
- package/lib/chat/ChatInline.js +0 -18
- package/lib/chat/ChatPopupStandalone.d.ts +1 -1
- package/lib/chat/ChatSidebar.d.ts +14 -2
- package/lib/chat/ChatSidebar.js +1 -1
- package/lib/chat/ChatStandalone.d.ts +1 -1
- package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
- package/lib/chat/EphemeralSurfaceControl.js +55 -0
- package/lib/chat/base/ChatAvailability.d.ts +34 -0
- package/lib/chat/base/ChatAvailability.js +18 -0
- package/lib/chat/base/ChatBase.d.ts +2 -1
- package/lib/chat/base/ChatBase.js +657 -28
- package/lib/chat/display/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +78 -12
- package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
- package/lib/chat/display/PoweredByTag.d.ts +1 -1
- package/lib/chat/display/groupSuggestions.d.ts +21 -0
- package/lib/chat/display/groupSuggestions.js +18 -0
- package/lib/chat/document/EphemeralDocument.d.ts +70 -6
- package/lib/chat/document/EphemeralDocument.js +154 -52
- package/lib/chat/header/ChatHeader.d.ts +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
- package/lib/chat/header/ChatHeaderBase.js +67 -96
- package/lib/chat/index.d.ts +4 -1
- package/lib/chat/index.js +8 -1
- package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +22 -1
- package/lib/chat/messages/ChatMessageList.js +370 -166
- package/lib/chat/messages/ChatMessages.d.ts +1 -1
- package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
- package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
- package/lib/chat/messages/TurnFooter.d.ts +42 -0
- package/lib/chat/messages/TurnFooter.js +75 -0
- package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
- package/lib/chat/messages/assistantMarkdown.js +56 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
- package/lib/chat/notebook/EphemeralNotebook.js +194 -61
- package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
- package/lib/chat/parts/MessagePart.d.ts +1 -1
- package/lib/chat/parts/ReasoningPart.d.ts +8 -1
- package/lib/chat/parts/TextPart.d.ts +1 -1
- package/lib/chat/parts/ToolPart.d.ts +8 -1
- package/lib/chat/prompt/FloatingCard.d.ts +26 -0
- package/lib/chat/prompt/FloatingCard.js +80 -0
- package/lib/chat/prompt/InputPrompt.d.ts +206 -53
- package/lib/chat/prompt/InputPrompt.js +161 -80
- package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
- package/lib/chat/prompt/InputPromptBase.js +225 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
- package/lib/chat/prompt/InputPromptLexical.js +227 -30
- package/lib/chat/prompt/InputPromptText.d.ts +10 -2
- package/lib/chat/prompt/InputPromptText.js +35 -3
- package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
- package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
- package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
- package/lib/chat/prompt/footer/index.d.ts +7 -0
- package/lib/chat/prompt/footer/index.js +11 -0
- package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
- package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
- package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
- package/lib/chat/prompt/header/InPromptHeader.js +14 -0
- package/lib/chat/prompt/header/index.d.ts +7 -0
- package/lib/chat/prompt/header/index.js +11 -0
- package/lib/chat/prompt/index.d.ts +8 -4
- package/lib/chat/prompt/index.js +15 -3
- package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
- package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
- package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
- package/lib/chat/prompt/menus/ModelSelector.js +27 -0
- package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
- package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
- package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
- package/lib/chat/prompt/menus/index.d.ts +15 -0
- package/lib/chat/prompt/menus/index.js +19 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
- package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
- package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
- package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
- package/lib/chat/prompt/plugins/MentionChip.js +24 -0
- package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
- package/lib/chat/prompt/plugins/MentionNode.js +77 -0
- package/lib/chat/prompt/promptHistory.d.ts +52 -0
- package/lib/chat/prompt/promptHistory.js +123 -0
- package/lib/chat/prompt/stack.d.ts +81 -0
- package/lib/chat/prompt/stack.js +41 -0
- package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
- package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
- package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
- package/lib/chat/tools/A2AAgentDialog.js +265 -0
- package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
- package/lib/chat/tools/index.d.ts +1 -0
- package/lib/chat/tools/index.js +1 -0
- package/lib/chat/usage/ContextPie.d.ts +17 -0
- package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
- package/lib/chat/useViewportDrag.d.ts +11 -0
- package/lib/chat/useViewportDrag.js +61 -0
- package/lib/chat/viewModes.d.ts +51 -0
- package/lib/chat/viewModes.js +57 -0
- package/lib/client/AgentRuntimesClient.d.ts +10 -9
- package/lib/client/AgentRuntimesClient.js +1 -1
- package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
- package/lib/client/AgentsMixin.d.ts +12 -12
- package/lib/client/AgentsMixin.js +31 -31
- package/lib/client/IAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.js +10 -10
- package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
- package/lib/client/mixins/RuntimesMixin.js +54 -21
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
- package/lib/components/agents/AgentSummary.d.ts +13 -0
- package/lib/components/agents/AgentSummary.js +21 -4
- package/lib/components/cards/NotificationEventCard.d.ts +1 -1
- package/lib/components/cards/OutputCard.d.ts +1 -1
- package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
- package/lib/components/cards/ToolApprovalCard.js +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
- package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +42 -19
- package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
- package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
- package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
- package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
- package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
- package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
- package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
- package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +86 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +147 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
- package/lib/components/code-sandboxes/index.d.ts +1 -0
- package/lib/components/code-sandboxes/index.js +1 -0
- package/lib/components/context/SpaceSelect.d.ts +1 -1
- package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
- package/lib/components/icons/ArtifactIcon.d.ts +1 -0
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.d.ts +1 -0
- package/lib/components/progress/CreditsIndicator.js +0 -4
- package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
- package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
- package/lib/components/snippets/SnippetDialog.d.ts +1 -0
- package/lib/components/snippets/SnippetDialog.js +0 -4
- package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
- package/lib/components/specs/SpecPayloadPreview.js +102 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/context/ContextDistribution.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +2 -1
- package/lib/context/ContextPanel.d.ts +1 -1
- package/lib/context/ContextUsage.d.ts +1 -1
- package/lib/context/CostTracker.d.ts +1 -1
- package/lib/context/CostUsageChart.d.ts +1 -1
- package/lib/context/CostUsageChart.js +4 -4
- package/lib/context/MessageHistory.d.ts +3 -2
- package/lib/context/TokenUsageChart.d.ts +1 -1
- package/lib/context/TokenUsageChart.js +4 -4
- package/lib/examples/A2UiAgentExample.js +15 -6
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
- package/lib/examples/A2UiContactCardExample.d.ts +10 -0
- package/lib/examples/A2UiContactCardExample.js +23 -170
- package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
- package/lib/examples/A2UiJupyterOutputExample.js +792 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
- package/lib/examples/A2UiRestaurantExample.js +24 -179
- package/lib/examples/A2UiViewerExample.d.ts +10 -0
- package/lib/examples/A2UiViewerExample.js +24 -378
- package/lib/examples/AgUiAgenticExample.js +2 -4
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
- package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
- package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
- package/lib/examples/AgUiSharedStateExample.js +2 -4
- package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
- package/lib/examples/AgentA2AExample.d.ts +17 -0
- package/lib/examples/AgentA2AExample.js +56 -0
- package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
- package/lib/examples/AgentCheckpointsExample.js +72 -54
- package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
- package/lib/examples/AgentCodeSandboxExample.js +93 -303
- package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
- package/lib/examples/AgentCodeSandboxesExample.js +56 -162
- package/lib/examples/AgentCodemodeExample.d.ts +7 -2
- package/lib/examples/AgentCodemodeExample.js +60 -125
- package/lib/examples/AgentCompactionExample.js +19 -135
- package/lib/examples/AgentEvalsExample.js +34 -66
- package/lib/examples/AgentGuardrailsExample.js +64 -112
- package/lib/examples/AgentHooksExample.d.ts +11 -0
- package/lib/examples/AgentHooksExample.js +30 -67
- package/lib/examples/AgentInferenceProviderExample.js +8 -32
- package/lib/examples/AgentLoopExample.d.ts +4 -2
- package/lib/examples/AgentLoopExample.js +45 -93
- package/lib/examples/AgentMCPExample.js +30 -79
- package/lib/examples/AgentMemoryExample.js +21 -64
- package/lib/examples/AgentMonitoringExample.js +33 -94
- package/lib/examples/AgentNotificationsExample.js +56 -95
- package/lib/examples/AgentOtelExample.js +35 -88
- package/lib/examples/AgentOutputsExample.d.ts +2 -1
- package/lib/examples/AgentOutputsExample.js +16 -137
- package/lib/examples/AgentParametersExample.js +7 -17
- package/lib/examples/AgentSkillsExample.js +40 -154
- package/lib/examples/AgentSubagentsExample.d.ts +7 -6
- package/lib/examples/AgentSubagentsExample.js +80 -191
- package/lib/examples/AgentToolApprovalsExample.js +35 -91
- package/lib/examples/AgentTriggersExample.js +43 -59
- package/lib/examples/AgentspecsExample.js +4 -4
- package/lib/examples/CellExample.d.ts +1 -1
- package/lib/examples/ChatExample.d.ts +12 -5
- package/lib/examples/ChatExample.js +38 -13
- package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
- package/lib/examples/CopilotKitLexicalExample.js +4 -41
- package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
- package/lib/examples/CopilotKitNotebookExample.js +2 -14
- package/lib/examples/DecksAgent.d.ts +21 -0
- package/lib/examples/DecksAgent.js +23 -0
- package/lib/examples/DocumentPageAgent.d.ts +19 -0
- package/lib/examples/DocumentPageAgent.js +15 -0
- package/lib/examples/Lexical2Example.d.ts +2 -2
- package/lib/examples/Lexical2Example.js +17 -38
- package/lib/examples/LexicalAgentExample.d.ts +2 -1
- package/lib/examples/LexicalAgentExample.js +29 -102
- package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
- package/lib/examples/LexicalAgentSidebarExample.js +99 -131
- package/lib/examples/LoopShellExample.d.ts +38 -0
- package/lib/examples/LoopShellExample.js +68 -0
- package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
- package/lib/examples/LoopWorkspaceEmbed.js +73 -0
- package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
- package/lib/examples/LoopWorkspaceExample.js +151 -0
- package/lib/examples/NotebookAgentExample.d.ts +13 -0
- package/lib/examples/NotebookAgentExample.js +36 -86
- package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
- package/lib/examples/NotebookAgentSidebarExample.js +39 -83
- package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
- package/lib/examples/NotebookCollaborationExample.js +108 -20
- package/lib/examples/NotebookExample.d.ts +1 -1
- package/lib/examples/NotebookExample.js +20 -10
- package/lib/examples/NotebookPageAgent.d.ts +23 -0
- package/lib/examples/NotebookPageAgent.js +17 -0
- package/lib/examples/components/ExampleWrapper.d.ts +5 -0
- package/lib/examples/components/ExampleWrapper.js +36 -28
- package/lib/examples/components/LexicalEditor.d.ts +1 -1
- package/lib/examples/components/LexicalEditor.js +4 -24
- package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
- package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
- package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
- package/lib/examples/example-selector.js +26 -6
- package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
- package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
- package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
- package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
- package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
- package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
- package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
- package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
- package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
- package/lib/examples/index.d.ts +4 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/lexical/editorConfig.d.ts +2 -75
- package/lib/examples/lexical/editorConfig.js +26 -48
- package/lib/examples/lexical/lexical-theme.css +65 -47
- package/lib/examples/main.js +450 -322
- package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
- package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
- package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
- package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiViewerScene.js +395 -0
- package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
- package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
- package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
- package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
- package/lib/examples/utils/exampleSurfaces.js +38 -0
- package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
- package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
- package/lib/examples/utils/localUrl.d.ts +2 -0
- package/lib/examples/utils/localUrl.js +49 -0
- package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
- package/lib/examples/utils/notebookToolbarItems.js +129 -0
- package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
- package/lib/examples/utils/runtimeTargetStore.js +82 -1
- package/lib/examples/utils/themedProvider.d.ts +7 -0
- package/lib/examples/utils/themedProvider.js +57 -4
- package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
- package/lib/examples/utils/waitForAgent.d.ts +23 -0
- package/lib/examples/utils/waitForAgent.js +24 -0
- package/lib/examples2/CellExample.d.ts +1 -1
- package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
- package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
- package/lib/examples2/main.js +24 -4
- package/lib/extensions/A2UIExtension.d.ts +1 -1
- package/lib/hooks/index.d.ts +8 -5
- package/lib/hooks/index.js +20 -5
- package/lib/hooks/useAgentRuntimes.d.ts +49 -22
- package/lib/hooks/useAgentRuntimes.js +214 -90
- package/lib/hooks/useAgentsCatalog.js +32 -4
- package/lib/hooks/useBrowserAgent.d.ts +26 -0
- package/lib/hooks/useBrowserAgent.js +75 -0
- package/lib/hooks/useBrowserInference.d.ts +27 -0
- package/lib/hooks/useBrowserInference.js +67 -0
- package/lib/hooks/useCheckpoints.d.ts +8 -17
- package/lib/hooks/useCheckpoints.js +25 -59
- package/lib/hooks/useConfig.d.ts +1 -1
- package/lib/hooks/useConfig.js +5 -1
- package/lib/hooks/useContextSnapshot.d.ts +18 -7
- package/lib/hooks/useContextSnapshot.js +14 -10
- package/lib/hooks/useNotifications.d.ts +11 -11
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/useProjects.d.ts +7 -19
- package/lib/hooks/useProjects.js +5 -5
- package/lib/hooks/useSkills.d.ts +0 -1
- package/lib/hooks/useSkills.js +6 -2
- package/lib/hooks/useToolApprovals.d.ts +8 -8
- package/lib/hooks/useToolApprovals.js +3 -3
- package/lib/identity/AgentIdentity.d.ts +9 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/jupyter/index.d.ts +2 -1
- package/lib/jupyter/index.js +2 -1
- package/lib/jupyter/serverExecution.d.ts +78 -0
- package/lib/jupyter/serverExecution.js +258 -0
- package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
- package/lib/jupyter/useResumeServerExecutions.js +64 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
- package/lib/lexical/ChatInlinePlugin.js +0 -36
- package/lib/loop/core/focusRequests.d.ts +10 -0
- package/lib/loop/core/focusRequests.js +46 -0
- package/lib/loop/core/index.d.ts +894 -0
- package/lib/loop/core/index.js +264 -0
- package/lib/loop/core/promptStore.d.ts +44 -0
- package/lib/loop/core/promptStore.js +63 -0
- package/lib/loop/core/surfaceRequests.d.ts +33 -0
- package/lib/loop/core/surfaceRequests.js +29 -0
- package/lib/loop/core/toolbar.d.ts +28 -0
- package/lib/loop/core/toolbar.js +59 -0
- package/lib/loop/embed/LoopEmbed.d.ts +57 -0
- package/lib/loop/embed/LoopEmbed.js +118 -0
- package/lib/loop/extensions.d.ts +10 -0
- package/lib/loop/extensions.js +49 -0
- package/lib/loop/index.d.ts +68 -0
- package/lib/loop/index.js +87 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
- package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
- package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
- package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
- package/lib/loop/plugins/a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/a2ui/index.js +50 -0
- package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
- package/lib/loop/plugins/a2ui-scene/index.js +28 -0
- package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2a/index.js +26 -0
- package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui/index.js +42 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
- package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
- package/lib/loop/plugins/agent-capacity/index.js +52 -0
- package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
- package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
- package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
- package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
- package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
- package/lib/loop/plugins/agent-codemode/index.js +41 -0
- package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
- package/lib/loop/plugins/agent-compaction/index.js +34 -0
- package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
- package/lib/loop/plugins/agent-evals/index.js +25 -0
- package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
- package/lib/loop/plugins/agent-guardrails/index.js +25 -0
- package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
- package/lib/loop/plugins/agent-hooks/index.js +28 -0
- package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
- package/lib/loop/plugins/agent-inference/index.js +29 -0
- package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
- package/lib/loop/plugins/agent-mcp/index.js +25 -0
- package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
- package/lib/loop/plugins/agent-memory/index.js +25 -0
- package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
- package/lib/loop/plugins/agent-monitoring/index.js +25 -0
- package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
- package/lib/loop/plugins/agent-notifications/index.js +25 -0
- package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
- package/lib/loop/plugins/agent-otel/index.js +25 -0
- package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
- package/lib/loop/plugins/agent-outputs/index.js +25 -0
- package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
- package/lib/loop/plugins/agent-parameters/index.js +25 -0
- package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
- package/lib/loop/plugins/agent-skills/index.js +25 -0
- package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
- package/lib/loop/plugins/agent-subagents/index.js +25 -0
- package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
- package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
- package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
- package/lib/loop/plugins/agent-triggers/index.js +26 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
- package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
- package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
- package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
- package/lib/loop/plugins/agents/SandboxView.js +43 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
- package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
- package/lib/loop/plugins/agents/agentIcons.js +88 -0
- package/lib/loop/plugins/agents/browserService.d.ts +50 -0
- package/lib/loop/plugins/agents/browserService.js +233 -0
- package/lib/loop/plugins/agents/index.d.ts +13 -0
- package/lib/loop/plugins/agents/index.js +17 -0
- package/lib/loop/plugins/agents/plugin.d.ts +91 -0
- package/lib/loop/plugins/agents/plugin.js +201 -0
- package/lib/loop/plugins/agents/service.d.ts +99 -0
- package/lib/loop/plugins/agents/service.js +167 -0
- package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
- package/lib/loop/plugins/agents/specSubagents.js +33 -0
- package/lib/loop/plugins/agents/switchable.d.ts +107 -0
- package/lib/loop/plugins/agents/switchable.js +405 -0
- package/lib/loop/plugins/agents/team.d.ts +87 -0
- package/lib/loop/plugins/agents/team.js +143 -0
- package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
- package/lib/loop/plugins/agents/useSandboxService.js +36 -0
- package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
- package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
- package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
- package/lib/loop/plugins/agentspecs/index.js +63 -0
- package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
- package/lib/loop/plugins/chat/ChatView.js +1670 -0
- package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
- package/lib/loop/plugins/chat/chatViewTools.js +92 -0
- package/lib/loop/plugins/chat/index.d.ts +111 -0
- package/lib/loop/plugins/chat/index.js +143 -0
- package/lib/loop/plugins/chat/turnState.d.ts +41 -0
- package/lib/loop/plugins/chat/turnState.js +90 -0
- package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
- package/lib/loop/plugins/chat-extras/index.js +51 -0
- package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
- package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
- package/lib/loop/plugins/chat-header/index.d.ts +3 -0
- package/lib/loop/plugins/chat-header/index.js +21 -0
- package/lib/loop/plugins/chat-view/index.d.ts +10 -0
- package/lib/loop/plugins/chat-view/index.js +29 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
- package/lib/loop/plugins/commands/index.d.ts +20 -0
- package/lib/loop/plugins/commands/index.js +148 -0
- package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
- package/lib/loop/plugins/decks/DeckSurface.js +6 -0
- package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
- package/lib/loop/plugins/decks/DecksMenu.js +42 -0
- package/lib/loop/plugins/decks/index.d.ts +19 -0
- package/lib/loop/plugins/decks/index.js +133 -0
- package/lib/loop/plugins/decks/surface.d.ts +7 -0
- package/lib/loop/plugins/decks/surface.js +11 -0
- package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
- package/lib/loop/plugins/document/DocumentView.js +68 -0
- package/lib/loop/plugins/document/index.d.ts +3 -0
- package/lib/loop/plugins/document/index.js +86 -0
- package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
- package/lib/loop/plugins/document/openingDocument.js +122 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
- package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/document-toolbar/index.js +35 -0
- package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
- package/lib/loop/plugins/document-toolbar/names.js +10 -0
- package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
- package/lib/loop/plugins/document-view/index.d.ts +10 -0
- package/lib/loop/plugins/document-view/index.js +28 -0
- package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
- package/lib/loop/plugins/graph/GraphToggle.js +22 -0
- package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
- package/lib/loop/plugins/graph/GraphView.js +6 -0
- package/lib/loop/plugins/graph/index.d.ts +5 -0
- package/lib/loop/plugins/graph/index.js +80 -0
- package/lib/loop/plugins/graph/viewType.d.ts +10 -0
- package/lib/loop/plugins/graph/viewType.js +14 -0
- package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
- package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
- package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
- package/lib/loop/plugins/input-prompt/index.js +26 -0
- package/lib/loop/plugins/models/index.d.ts +3 -0
- package/lib/loop/plugins/models/index.js +49 -0
- package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
- package/lib/loop/plugins/notebook/NotebookView.js +189 -0
- package/lib/loop/plugins/notebook/index.d.ts +3 -0
- package/lib/loop/plugins/notebook/index.js +91 -0
- package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
- package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
- package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
- package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
- package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
- package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
- package/lib/loop/plugins/notebook-view/index.js +30 -0
- package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
- package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
- package/lib/loop/plugins/page-layout/index.d.ts +35 -0
- package/lib/loop/plugins/page-layout/index.js +80 -0
- package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
- package/lib/loop/plugins/plugins-panel/index.js +74 -0
- package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
- package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
- package/lib/loop/plugins/prompt/index.d.ts +11 -0
- package/lib/loop/plugins/prompt/index.js +73 -0
- package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
- package/lib/loop/plugins/shell/editorChoice.js +58 -0
- package/lib/loop/plugins/shell/index.d.ts +47 -0
- package/lib/loop/plugins/shell/index.js +142 -0
- package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
- package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
- package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
- package/lib/loop/plugins/subagent-activity/index.js +42 -0
- package/lib/loop/plugins/view-switch/index.d.ts +46 -0
- package/lib/loop/plugins/view-switch/index.js +68 -0
- package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
- package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
- package/lib/loop/plugins/window-frame/index.d.ts +6 -0
- package/lib/loop/plugins/window-frame/index.js +79 -0
- package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
- package/lib/loop/plugins/window-frame/slots.js +30 -0
- package/lib/loop/presets.d.ts +167 -0
- package/lib/loop/presets.js +139 -0
- package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
- package/lib/loop/shell/LoopWorkspace.js +231 -0
- package/lib/loop/shell/PluginToggles.d.ts +21 -0
- package/lib/loop/shell/PluginToggles.js +41 -0
- package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
- package/lib/loop/shell/ViewSwitcher.js +43 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
- package/lib/loop/shell/index.d.ts +10 -0
- package/lib/loop/shell/index.js +14 -0
- package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
- package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
- package/lib/loop-example-main.d.ts +1 -0
- package/lib/loop-example-main.js +42 -0
- package/lib/loop-main.d.ts +1 -0
- package/lib/loop-main.js +138 -0
- package/lib/mcp/McpServerManager.d.ts +1 -1
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
- package/lib/models/CodeSandboxVariant.d.ts +13 -5
- package/lib/models/CodeSandboxVariant.js +17 -5
- package/lib/models/Content.d.ts +26 -0
- package/lib/models/Environment.d.ts +561 -5
- package/lib/models/Environment.js +12 -1
- package/lib/models/EnvironmentDTO.d.ts +24 -6
- package/lib/models/EnvironmentDTO.js +13 -2
- package/lib/models/Exercise.d.ts +0 -2
- package/lib/models/Library.d.ts +0 -2
- package/lib/models/Notebook.d.ts +0 -2
- package/lib/models/ProjectDTO.d.ts +2 -2
- package/lib/models/ProjectDTO.js +4 -4
- package/lib/models/Runtime.d.ts +11 -11
- package/lib/models/RuntimeDTO.d.ts +16 -7
- package/lib/models/RuntimeDTO.js +9 -9
- package/lib/models/Space.d.ts +10 -0
- package/lib/models/Space.js +1 -1
- package/lib/models/SpaceDTO.d.ts +1 -1
- package/lib/models/SpaceItem.d.ts +1 -2
- package/lib/models/environments.generated.d.ts +113 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +0 -1
- package/lib/models/index.js +0 -1
- package/lib/protocols/A2AAdapter.d.ts +39 -6
- package/lib/protocols/A2AAdapter.js +180 -11
- package/lib/protocols/ACPAdapter.js +40 -37
- package/lib/protocols/AGUIAdapter.d.ts +14 -0
- package/lib/protocols/AGUIAdapter.js +34 -9
- package/lib/protocols/BrowserAgentAdapter.d.ts +117 -0
- package/lib/protocols/BrowserAgentAdapter.js +310 -0
- package/lib/protocols/VercelAIAdapter.d.ts +10 -0
- package/lib/protocols/VercelAIAdapter.js +27 -7
- package/lib/protocols/index.d.ts +1 -0
- package/lib/protocols/index.js +1 -0
- package/lib/runtimes/actions.d.ts +3 -3
- package/lib/runtimes/actions.js +27 -14
- package/lib/runtimes/apis.d.ts +13 -4
- package/lib/runtimes/browser/agent.d.ts +54 -0
- package/lib/runtimes/browser/agent.js +63 -0
- package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
- package/lib/runtimes/browser/anonymousToken.js +300 -0
- package/lib/runtimes/browser/frontendTools.d.ts +61 -0
- package/lib/runtimes/browser/frontendTools.js +152 -0
- package/lib/runtimes/browser/index.d.ts +11 -0
- package/lib/runtimes/browser/index.js +20 -0
- package/lib/runtimes/browser/model.d.ts +52 -0
- package/lib/runtimes/browser/model.js +110 -0
- package/lib/runtimes/browser/protocol.d.ts +54 -0
- package/lib/runtimes/browser/protocol.js +35 -0
- package/lib/runtimes/browser/subagents.d.ts +131 -0
- package/lib/runtimes/browser/subagents.js +241 -0
- package/lib/runtimes/index.d.ts +3 -0
- package/lib/runtimes/index.js +3 -0
- package/lib/runtimes/lifecycle.d.ts +76 -0
- package/lib/runtimes/lifecycle.js +99 -0
- package/lib/runtimes/variants.d.ts +172 -0
- package/lib/runtimes/variants.js +187 -0
- package/lib/services/reconnectToRuntime.d.ts +2 -2
- package/lib/services/reconnectToRuntime.js +3 -3
- package/lib/services/sandboxServiceManagers.d.ts +2 -2
- package/lib/services/sandboxServiceManagers.js +11 -11
- package/lib/specs/agents/agents.d.ts +128 -112
- package/lib/specs/agents/agents.js +8024 -5052
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +3 -0
- package/lib/specs/frontendTools.js +46 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +25 -2
- package/lib/specs/models.d.ts +18 -0
- package/lib/specs/models.js +154 -0
- package/lib/specs/outputs.d.ts +2 -0
- package/lib/specs/outputs.js +22 -0
- package/lib/specs/personas.js +1 -1
- package/lib/specs/teams/teams.d.ts +2 -0
- package/lib/specs/teams/teams.js +628 -111
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -1
- package/lib/state/substates/RuntimesState.d.ts +5 -5
- package/lib/state/substates/RuntimesState.js +14 -14
- package/lib/state/substates/index.d.ts +1 -1
- package/lib/state/substates/index.js +1 -1
- package/lib/stores/agentRuntimeStore.d.ts +43 -1
- package/lib/stores/agentRuntimeStore.js +100 -11
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/stories/Button.d.ts +1 -1
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +1 -1
- package/lib/test-setup.js +66 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
- package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
- package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
- package/lib/tools/adapters/commands/index.d.ts +1 -0
- package/lib/{models/Dataset.js → tools/adapters/commands/index.js} +1 -1
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/types/a2a.d.ts +15 -1
- package/lib/types/agents-lifecycle.d.ts +11 -6
- package/lib/types/agents.d.ts +31 -6
- package/lib/types/agentspecs.d.ts +120 -4
- package/lib/types/chat.d.ts +251 -3
- package/lib/types/checkpoints.d.ts +20 -0
- package/lib/types/config.d.ts +13 -1
- package/lib/types/connection.d.ts +1 -1
- package/lib/types/evals.d.ts +2 -0
- package/lib/types/messages.d.ts +60 -0
- package/lib/types/models.d.ts +26 -0
- package/lib/types/notifications.d.ts +15 -6
- package/lib/types/protocol.d.ts +7 -2
- package/lib/types/stream.d.ts +48 -3
- package/lib/types/stream.js +5 -0
- package/lib/types/teams.d.ts +102 -4
- package/lib/types/tool-approvals.d.ts +1 -1
- package/lib/types/tools.d.ts +8 -2
- package/lib/utils/utils.js +7 -1
- package/package.json +376 -361
- package/scripts/codegen/__pycache__/compose.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/compose.py +208 -0
- package/scripts/codegen/generate_agents.py +202 -31
- package/scripts/codegen/generate_evals.py +2 -0
- package/scripts/codegen/generate_frontend_tools.py +35 -6
- package/scripts/codegen/generate_models.py +40 -15
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- package/scripts/codegen/generate_teams.py +178 -4
- package/scripts/codegen/generate_tools.py +6 -4
- package/scripts/gen_workers.py +278 -110
- package/scripts/generate-environments-types.py +404 -0
- package/lib/chat/prompt/InputFooter.d.ts +0 -58
- package/lib/chat/prompt/InputFooter.js +0 -194
- package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
- package/lib/chat/prompt/InputPromptFooter.js +0 -15
- package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
- package/lib/chat/prompt/InputPromptHeader.js +0 -15
- package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
- package/lib/hooks/useRuntimes.d.ts +0 -5
- package/lib/hooks/useRuntimes.js +0 -34
- package/lib/jupyter/kernelsHandler.d.ts +0 -8
- package/lib/jupyter/kernelsHandler.js +0 -39
- package/lib/models/Dataset.d.ts +0 -16
- package/lib/utils/Cells.d.ts +0 -2
- package/lib/utils/Cells.js +0 -28
|
@@ -4,7 +4,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
4
4
|
* Distributed under the terms of the Modified BSD License.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Lexical Example - Next generation chat with Lexical editor.
|
|
8
8
|
*
|
|
9
9
|
* This example demonstrates using the chat component with:
|
|
10
10
|
* - Lexical editor integration
|
|
@@ -18,67 +18,48 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
18
18
|
* @module examples/LexicalAgentSidebarExample
|
|
19
19
|
*/
|
|
20
20
|
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
21
|
-
import { useCallback,
|
|
22
|
-
import {
|
|
23
|
-
import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
|
|
21
|
+
import { useCallback, useState } from 'react';
|
|
22
|
+
import { LexicalExtensionComposer } from '@lexical/react/LexicalExtensionComposer';
|
|
24
23
|
import { ContentEditable } from '@lexical/react/LexicalContentEditable';
|
|
25
|
-
import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
|
|
26
24
|
import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
|
|
27
|
-
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
28
|
-
import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';
|
|
29
|
-
import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';
|
|
30
|
-
import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin';
|
|
31
|
-
import { TRANSFORMERS } from '@lexical/markdown';
|
|
32
|
-
import { registerCodeHighlighting } from '@lexical/code';
|
|
33
|
-
import { ListPlugin } from '@lexical/react/LexicalListPlugin';
|
|
34
|
-
import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
|
|
35
|
-
import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
|
|
36
25
|
import { Box } from '@datalayer/primer-addons';
|
|
37
26
|
import { useJupyter } from '@datalayer/jupyter-react';
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
27
|
+
import { ThemedProvider } from './utils/themedProvider';
|
|
28
|
+
import { useExampleThemeStore } from './utils/themeStore';
|
|
29
|
+
import { ComponentPickerMenuPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, LexicalConfigProvider, LexicalPrimerThemeProvider, LexicalStatePlugin, TableCellResizerPlugin, } from '@datalayer/jupyter-lexical';
|
|
40
30
|
import { ChatSidebar } from '../chat';
|
|
41
31
|
import { ChatInlinePlugin } from '../lexical/ChatInlinePlugin';
|
|
42
32
|
import { useChatInlineToolbarItems } from '../lexical/useChatInlineToolbarItems';
|
|
43
33
|
import { useLexicalTools } from '../tools/adapters/agent-runtimes/lexicalHooks';
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
47
|
-
import { DEFAULT_MODEL } from '../specs';
|
|
34
|
+
import { editorExtension } from './lexical/editorConfig';
|
|
35
|
+
import { useExampleJupyterAgent } from './hooks/useExampleJupyterAgent';
|
|
48
36
|
import '@datalayer/jupyter-lexical/style/index.css';
|
|
49
37
|
import './lexical/lexical-theme.css';
|
|
50
38
|
// Fixed lexical document ID
|
|
51
39
|
const LEXICAL_ID = 'chat-lexical-example';
|
|
52
40
|
// Default configuration
|
|
53
41
|
const DEFAULT_AGENT_ID = import.meta.env.VITE_AGENT_ID || 'lexical-sidebar-agent-runtime-example';
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (envUrl) {
|
|
57
|
-
return envUrl;
|
|
58
|
-
}
|
|
59
|
-
const baseUrl = serviceManager?.serverSettings?.baseUrl?.replace(/\/$/, '');
|
|
60
|
-
if (!baseUrl) {
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
63
|
-
if (baseUrl.includes('token=')) {
|
|
64
|
-
return baseUrl;
|
|
65
|
-
}
|
|
66
|
-
const token = serviceManager?.serverSettings?.token;
|
|
67
|
-
if (!token) {
|
|
68
|
-
return baseUrl;
|
|
69
|
-
}
|
|
70
|
-
const separator = baseUrl.includes('?') ? '&' : '?';
|
|
71
|
-
return `${baseUrl}${separator}token=${encodeURIComponent(token)}`;
|
|
72
|
-
}
|
|
42
|
+
/** The agentspec this example's agent is built from. */
|
|
43
|
+
const AGENTSPEC_ID = 'example-document-agent-sidebar';
|
|
73
44
|
/**
|
|
74
|
-
*
|
|
45
|
+
* The plugins that need a kernel, and the kernel they need.
|
|
46
|
+
*
|
|
47
|
+
* `ComponentPickerMenuPlugin` and `JupyterInputOutputPlugin` both take a
|
|
48
|
+
* `kernel` prop, and both were mounted here without one — so a Jupyter cell in
|
|
49
|
+
* the document had nothing to run on and said "No runtime connected" however
|
|
50
|
+
* healthy the sandbox was. `LexicalAgentExample` had this right all along;
|
|
51
|
+
* this is the same component.
|
|
52
|
+
*
|
|
53
|
+
* The service manager is passed explicitly rather than left ambient. A bare
|
|
54
|
+
* `useJupyter()` builds its own from the page config, which is the cloud —
|
|
55
|
+
* see the note on `AgentRuntimeLexicalAgentSidebarExample`.
|
|
75
56
|
*/
|
|
76
|
-
function
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
return
|
|
57
|
+
function DocumentKernelPlugins({ serviceManager, }) {
|
|
58
|
+
const { defaultKernel } = useJupyter({
|
|
59
|
+
serviceManager,
|
|
60
|
+
startDefaultKernel: !!serviceManager,
|
|
61
|
+
});
|
|
62
|
+
return (_jsxs(_Fragment, { children: [_jsx(ComponentPickerMenuPlugin, { kernel: defaultKernel }), _jsx(JupyterInputOutputPlugin, { kernel: defaultKernel })] }));
|
|
82
63
|
}
|
|
83
64
|
function LexicalEditor({ serviceManager, endpoint }) {
|
|
84
65
|
const [floatingAnchorElem, setFloatingAnchorElem] = useState(null);
|
|
@@ -94,79 +75,54 @@ function LexicalEditor({ serviceManager, endpoint }) {
|
|
|
94
75
|
const onChange = useCallback((_editorState) => {
|
|
95
76
|
// Could persist state here
|
|
96
77
|
}, []);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
78
|
+
/*
|
|
79
|
+
* The editor's own theme scope.
|
|
80
|
+
*
|
|
81
|
+
* `LexicalPrimerThemeProvider` is what the platform's document editor uses,
|
|
82
|
+
* and it carries the two halves this example was missing: the resolved
|
|
83
|
+
* `colormode` and canvas background handed to `JupyterReactTheme`, so the
|
|
84
|
+
* `--jp-*` variables the editor's stylesheet reads follow the picker; and a
|
|
85
|
+
* `ThemeContext`, which is where `ExcalidrawModal` and `ExcalidrawImage`
|
|
86
|
+
* read light-or-dark from. Without it a drawing rendered light on a dark
|
|
87
|
+
* document, and the editor surface kept Primer's stock palette.
|
|
88
|
+
*
|
|
89
|
+
* Only the editor is wrapped. `JupyterReactTheme` nests a Primer theme of
|
|
90
|
+
* its own, and putting the header, the chat sidebar and the error panel
|
|
91
|
+
* inside it is what made them read `canvas.default` from the stock light
|
|
92
|
+
* palette — the same trap `NotebookAgentSidebarExample` documents.
|
|
93
|
+
*/
|
|
94
|
+
return (_jsx(LexicalPrimerThemeProvider, { useStore: useExampleThemeStore, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsxs(LexicalExtensionComposer, { extension: editorExtension, contentEditable: null, children: [_jsx(LexicalStatePlugin, {}), _jsxs(Box, { sx: { position: 'relative', width: '100%' }, children: [_jsx("div", { ref: onRef, children: _jsx(ContentEditable, { placeholder: _jsx("div", { style: {
|
|
95
|
+
position: 'absolute',
|
|
96
|
+
top: '24px',
|
|
97
|
+
left: '24px',
|
|
98
|
+
color: 'var(--fgColor-muted)',
|
|
99
|
+
pointerEvents: 'none',
|
|
100
|
+
}, children: "Start typing or use the chat to create content..." }), "aria-placeholder": "Start typing or use the chat to create content...", className: "lexical-editor-content", "aria-label": "Lexical Editor", style: { padding: '24px', outline: 'none' } }) }), _jsx(OnChangePlugin, { onChange: onChange }), _jsx(TableCellResizerPlugin, {}), _jsx(DocumentKernelPlugins, { serviceManager: serviceManager }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode, extraItems: toolbarItems }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] })), _jsx(ChatInlinePlugin, { protocol: {
|
|
101
|
+
type: 'vercel-ai',
|
|
102
|
+
endpoint,
|
|
103
|
+
}, isOpen: isAiOpen, onClose: closeAi, pendingPrompt: pendingPrompt, onPendingPromptConsumed: clearPendingPrompt })] })] }) }) }));
|
|
118
104
|
}
|
|
119
105
|
export function ChatLexicalAgentExampleInner({ serviceManager, }) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const
|
|
123
|
-
const
|
|
124
|
-
const { agentId, isReady, status, error, createAgent } = useExampleAgentRuntime({
|
|
106
|
+
// The tools. Which of the chat and the harness runs them depends on
|
|
107
|
+
// where the loop turns, and the hook decides that.
|
|
108
|
+
const tools = useLexicalTools(LEXICAL_ID);
|
|
109
|
+
const { agentReady, protocol: protocolConfig, chatFrontendTools, error, unavailableReason, } = useExampleJupyterAgent({
|
|
125
110
|
exampleId: 'LexicalAgentSidebarExample',
|
|
126
111
|
agentName: DEFAULT_AGENT_ID,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
model: DEFAULT_MODEL,
|
|
133
|
-
systemPrompt: 'You are a helpful AI assistant that helps users work with lexical documents. For document operations, always use the lexical frontend tools so actions happen in the live document UI. Use executeCode only for temporary inspection code that should not modify persisted document content.',
|
|
134
|
-
enableCodemode: false,
|
|
135
|
-
sandboxVariant: 'jupyter',
|
|
136
|
-
jupyterSandbox: jupyterSandboxUrl,
|
|
137
|
-
},
|
|
112
|
+
specId: AGENTSPEC_ID,
|
|
113
|
+
description: 'Demo agent for lexical sidebar example',
|
|
114
|
+
systemPrompt: 'You are a helpful AI assistant that helps users work with lexical documents. For document operations, always use the lexical frontend tools so actions happen in the live document UI. Diagrams are documents too: this editor mounts the Excalidraw plugin, so draw with the excalidraw* tools rather than describing a picture in prose or writing it as ASCII art — excalidrawInsertNode to make one, excalidrawListDrawings then excalidrawReadScene to find and read an existing one before changing it. Use executeCodeInDocument only for temporary inspection code that should not modify persisted document content.',
|
|
115
|
+
serviceManager,
|
|
116
|
+
frontendTools: tools,
|
|
138
117
|
});
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
name: DEFAULT_AGENT_ID,
|
|
146
|
-
description: 'Demo agent for lexical sidebar example',
|
|
147
|
-
protocol: 'vercel-ai',
|
|
148
|
-
model: DEFAULT_MODEL,
|
|
149
|
-
systemPrompt: 'You are a helpful AI assistant that helps users work with lexical documents. For document operations, always use the lexical frontend tools so actions happen in the live document UI. Use executeCode only for temporary inspection code that should not modify persisted document content.',
|
|
150
|
-
enableCodemode: false,
|
|
151
|
-
sandboxVariant: 'jupyter',
|
|
152
|
-
jupyterSandbox: jupyterSandboxUrl,
|
|
153
|
-
}).catch(() => {
|
|
154
|
-
setCreateRequested(false);
|
|
155
|
-
});
|
|
156
|
-
}, [jupyterSandboxUrl, createRequested, agentId, createAgent]);
|
|
157
|
-
const effectiveReady = isReady || status === 'ready';
|
|
118
|
+
// One failed attempt is reported, not retried — see
|
|
119
|
+
// `useExampleJupyterAgent`.
|
|
120
|
+
const chatError = error || unavailableReason;
|
|
121
|
+
// The example's own agent, not merely the runtime: on the cloud target the
|
|
122
|
+
// runtime is ready before this agent has been registered on it.
|
|
123
|
+
const effectiveReady = agentReady;
|
|
158
124
|
// Get lexical tools for ChatSidebar
|
|
159
|
-
const tools = useLexicalTools(LEXICAL_ID);
|
|
160
125
|
// Build Vercel AI protocol config
|
|
161
|
-
const protocolConfig = useMemo(() => {
|
|
162
|
-
return {
|
|
163
|
-
type: 'vercel-ai',
|
|
164
|
-
endpoint: vercelAiEndpoint,
|
|
165
|
-
agentId: DEFAULT_AGENT_ID,
|
|
166
|
-
enableConfigQuery: true,
|
|
167
|
-
configEndpoint: `${baseUrl}/api/v1/configure`,
|
|
168
|
-
};
|
|
169
|
-
}, [baseUrl, vercelAiEndpoint]);
|
|
170
126
|
return (_jsxs(_Fragment, { children: [_jsxs(Box, { sx: {
|
|
171
127
|
height: 'calc(100vh - 70px)',
|
|
172
128
|
width: '100vw',
|
|
@@ -182,34 +138,39 @@ export function ChatLexicalAgentExampleInner({ serviceManager, }) {
|
|
|
182
138
|
borderBottom: '1px solid',
|
|
183
139
|
borderColor: 'border.default',
|
|
184
140
|
bg: 'canvas.default',
|
|
185
|
-
}, children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "Agent
|
|
141
|
+
}, children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "Lexical Agent Sidebar Example" }), _jsx("p", { style: { margin: '8px 0 0', color: 'var(--fgColor-muted)' }, children: "Next generation chat with Lexical editor integration" })] }), _jsx(Box, { sx: {
|
|
186
142
|
flex: 1,
|
|
143
|
+
minHeight: 0,
|
|
187
144
|
display: 'flex',
|
|
188
|
-
|
|
145
|
+
flexDirection: 'column',
|
|
146
|
+
overflow: 'auto',
|
|
189
147
|
bg: 'canvas.default',
|
|
190
|
-
}, children: _jsx(LexicalEditor, { serviceManager: serviceManager, endpoint:
|
|
148
|
+
}, children: _jsx(LexicalEditor, { serviceManager: serviceManager, endpoint: protocolConfig.endpoint }) })] }), effectiveReady && (_jsx(ChatSidebar, { kernelIndicatorPlacement: "right", title: "AI Assistant", protocol: protocolConfig, position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
|
|
191
149
|
protocol: protocolConfig,
|
|
192
|
-
frontendTools:
|
|
150
|
+
frontendTools: chatFrontendTools,
|
|
193
151
|
useStore: true,
|
|
152
|
+
// Two of these exercise the drawing tools the mounted
|
|
153
|
+
// `ExcalidrawPlugin` contributes, because a suggestion is how
|
|
154
|
+
// anyone finds out a tool exists.
|
|
194
155
|
suggestions: [
|
|
195
156
|
{
|
|
196
157
|
title: '✍️ Help me write',
|
|
197
158
|
message: 'Can you help me write a document?',
|
|
198
159
|
},
|
|
199
160
|
{
|
|
200
|
-
title: '
|
|
201
|
-
message: '
|
|
161
|
+
title: '📊 Draw a diagram',
|
|
162
|
+
message: 'Draw a flowchart of a three-stage data pipeline — ingest, transform, publish — with labelled arrows between the stages.',
|
|
202
163
|
},
|
|
203
164
|
{
|
|
204
|
-
title: '
|
|
205
|
-
message: '
|
|
165
|
+
title: '🎨 Edit the drawing',
|
|
166
|
+
message: 'Read the drawing in this document and add a box for a validation step between ingest and transform, wired into the existing arrows.',
|
|
206
167
|
},
|
|
207
168
|
{
|
|
208
|
-
title: '
|
|
209
|
-
message: 'Can you
|
|
169
|
+
title: '📝 Summarize text',
|
|
170
|
+
message: 'Can you summarize the content in the editor?',
|
|
210
171
|
},
|
|
211
172
|
],
|
|
212
|
-
} }))] }),
|
|
173
|
+
} }))] }), chatError && (_jsxs(Box, { sx: {
|
|
213
174
|
position: 'fixed',
|
|
214
175
|
bottom: 20,
|
|
215
176
|
right: 20,
|
|
@@ -218,16 +179,23 @@ export function ChatLexicalAgentExampleInner({ serviceManager, }) {
|
|
|
218
179
|
color: 'danger.fg',
|
|
219
180
|
borderRadius: 2,
|
|
220
181
|
maxWidth: 300,
|
|
221
|
-
}, children: [_jsx("strong", { children: "Error:" }), " ",
|
|
182
|
+
}, children: [_jsx("strong", { children: "Error:" }), " ", chatError] }))] }));
|
|
222
183
|
}
|
|
223
184
|
/**
|
|
224
|
-
*
|
|
185
|
+
* The example, in the app's theme, on the shell's runtime.
|
|
186
|
+
*
|
|
187
|
+
* The service manager comes from the shell, as it does in every other
|
|
188
|
+
* example. Reading it from an ambient `useJupyter()` instead — which is what
|
|
189
|
+
* this example used to do — did not merely risk showing a document on a
|
|
190
|
+
* different runtime than the picker says: with no `<Jupyter>` provider above
|
|
191
|
+
* it there was nothing ambient to read, so the hook fell back to
|
|
192
|
+
* `DEFAULT_JUPYTER_SERVER_URL` (`prod1.datalayer.run/api/jupyter-server`).
|
|
193
|
+
* That URL is what the example then handed the agent runtime as its sandbox,
|
|
194
|
+
* and validating it is what came back as "Failed to connect to Jupyter
|
|
195
|
+
* sandbox: Jupyter server returned HTTP 404" — a server that was running all
|
|
196
|
+
* along, just not the one being asked.
|
|
225
197
|
*/
|
|
226
|
-
export function AgentRuntimeLexicalAgentSidebarExample() {
|
|
227
|
-
return (_jsx(
|
|
228
|
-
}
|
|
229
|
-
function SimpleWrapper() {
|
|
230
|
-
const { serviceManager } = useJupyter();
|
|
231
|
-
return _jsx(ChatLexicalAgentExampleInner, { serviceManager: serviceManager });
|
|
198
|
+
export function AgentRuntimeLexicalAgentSidebarExample({ serviceManager, }) {
|
|
199
|
+
return (_jsx(ThemedProvider, { children: _jsx(ChatLexicalAgentExampleInner, { serviceManager: serviceManager }) }));
|
|
232
200
|
}
|
|
233
201
|
export default AgentRuntimeLexicalAgentSidebarExample;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Loop Shell: the workspace with almost everything taken away.
|
|
3
|
+
*
|
|
4
|
+
* Where `LoopWorkspaceExample` shows everything Loop can mount, this shows how
|
|
5
|
+
* little it needs: a blank shell, a floating prompt that can be dragged out of
|
|
6
|
+
* the way, and one control in the top-right corner choosing the editor —
|
|
7
|
+
* `None` by default, the notebook and the document on offer. Everything on
|
|
8
|
+
* screen is a plugin; the example itself only picks them.
|
|
9
|
+
*
|
|
10
|
+
* The code runs in the browser sandbox — the in-page kernel reached through
|
|
11
|
+
* the Jupyter service manager — so the page needs no server and no account.
|
|
12
|
+
* The agents are the `jupyter` team the landing page runs — Analyst,
|
|
13
|
+
* Reviewer, Writer, Decks, Tutor and Compactor — with the Analyst at the
|
|
14
|
+
* front door; `@` in the composer reaches the others, and the team picker in
|
|
15
|
+
* the header switches to one. The decks plugin is mounted so the Decks member
|
|
16
|
+
* has its tools and a deck can open beside the conversation, like the
|
|
17
|
+
* notebook and the document.
|
|
18
|
+
*
|
|
19
|
+
* @module examples/LoopShellExample
|
|
20
|
+
*/
|
|
21
|
+
import type { JSX } from 'react';
|
|
22
|
+
export type LoopShellExampleProps = {
|
|
23
|
+
/** Server backing the session. Defaults to this page's origin. */
|
|
24
|
+
serverUrl?: string;
|
|
25
|
+
/** Agent bound to the session; the team's front door by default. */
|
|
26
|
+
agentId?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Which editor the shell opens on.
|
|
29
|
+
*
|
|
30
|
+
* `'none'` is the point of this example: the conversation is the canvas,
|
|
31
|
+
* and the selector in the top-right corner is how an editor arrives.
|
|
32
|
+
*/
|
|
33
|
+
defaultEditor?: 'none' | 'notebook' | 'document' | 'deck';
|
|
34
|
+
/** Render without wrapping the shell in a theme provider. */
|
|
35
|
+
inheritTheme?: boolean;
|
|
36
|
+
};
|
|
37
|
+
export declare function LoopShellExample({ serverUrl, agentId, defaultEditor, inheritTheme, }: LoopShellExampleProps): JSX.Element;
|
|
38
|
+
export default LoopShellExample;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { Box } from '@primer/react';
|
|
4
|
+
import { QueryClientProvider } from '@tanstack/react-query';
|
|
5
|
+
import { useReactor } from '@datalayer/reactor/react';
|
|
6
|
+
import { registerDecks } from '@datalayer/decks';
|
|
7
|
+
import { exampleDecks } from '@datalayer/decks/examples';
|
|
8
|
+
import { buildLoopReactor, LoopWorkspace } from '../loop/shell';
|
|
9
|
+
import { DeckViewPlugin, LoopDecksPlugin } from '../loop/plugins/decks';
|
|
10
|
+
import { loopPlugins } from '../loop/presets';
|
|
11
|
+
import { internalQueryClient } from '../utils';
|
|
12
|
+
import { resolveExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
13
|
+
import { ThemedProvider } from './utils/themedProvider';
|
|
14
|
+
/** The team the landing page runs, and this example with it. */
|
|
15
|
+
const TEAM_ID = 'jupyter';
|
|
16
|
+
/** Its front door: the member a prompt reaches unless `@` says otherwise. */
|
|
17
|
+
const FRONT_DOOR = 'jupyter-data-analyst';
|
|
18
|
+
// The package's example decks, so the Decks member has something to open and
|
|
19
|
+
// change before it has made one. Once, at module load.
|
|
20
|
+
registerDecks(exampleDecks);
|
|
21
|
+
export function LoopShellExample({ serverUrl = resolveExampleAgentRuntimesUrl('local'), agentId = FRONT_DOOR, defaultEditor = 'none', inheritTheme = false, }) {
|
|
22
|
+
// Built once: rebuilding would restart every plugin on each render.
|
|
23
|
+
const reactor = useMemo(() => buildLoopReactor([
|
|
24
|
+
...loopPlugins({
|
|
25
|
+
serverUrl,
|
|
26
|
+
// The browser sandbox: the in-page kernel behind the Jupyter
|
|
27
|
+
// service manager, so nothing has to be installed or signed into.
|
|
28
|
+
target: 'browser',
|
|
29
|
+
showAgentVariants: false,
|
|
30
|
+
defaultEditor,
|
|
31
|
+
// The two plugins this example exists to show: the draggable
|
|
32
|
+
// prompt floating over the shell, and the editor choice in the
|
|
33
|
+
// header. Each switches the chat's own copy of itself off.
|
|
34
|
+
floatingPrompt: true,
|
|
35
|
+
editorSelector: true,
|
|
36
|
+
// Naked: the page names the example, and a title bar inside an
|
|
37
|
+
// otherwise blank shell would be the only chrome in sight.
|
|
38
|
+
hideChatHeader: true,
|
|
39
|
+
// First-class commands still deserve their keystrokes.
|
|
40
|
+
commandPalette: true,
|
|
41
|
+
// The landing page's team, front door and all: what `@` offers
|
|
42
|
+
// in the composer and what the header's picker switches between.
|
|
43
|
+
teamId: TEAM_ID,
|
|
44
|
+
localAgentSpec: FRONT_DOOR,
|
|
45
|
+
}),
|
|
46
|
+
// The deck beside the chat — an editor in the selector, a footer
|
|
47
|
+
// icon, a menu in the composer — and the tools the Decks member
|
|
48
|
+
// reads and writes decks with. Without these the fourth member
|
|
49
|
+
// would be a name with nothing behind it.
|
|
50
|
+
LoopDecksPlugin,
|
|
51
|
+
DeckViewPlugin,
|
|
52
|
+
]), [serverUrl, defaultEditor]);
|
|
53
|
+
// Registered here rather than inside the workspace, because this component
|
|
54
|
+
// built it; the workspace is told not to manage it a second time.
|
|
55
|
+
useReactor(reactor);
|
|
56
|
+
const shell = (_jsx(QueryClientProvider, { client: internalQueryClient, children: _jsx(Box, { sx: { height: '100%', minHeight: 0 }, children: _jsx(LoopWorkspace, { serverUrl: serverUrl, agentId: agentId, reactor: reactor, manageReactor: false,
|
|
57
|
+
// The header stays for the one thing living in it — the editor
|
|
58
|
+
// selector on its trailing edge — but offers no view switcher:
|
|
59
|
+
// a blank shell with one control is the example.
|
|
60
|
+
showViewSelector: false }) }) }));
|
|
61
|
+
if (inheritTheme) {
|
|
62
|
+
return shell;
|
|
63
|
+
}
|
|
64
|
+
// The one theme provider in the tree; see LoopWorkspaceExample for why the
|
|
65
|
+
// editors need it even when the chrome looks right without it.
|
|
66
|
+
return _jsx(ThemedProvider, { children: shell });
|
|
67
|
+
}
|
|
68
|
+
export default LoopShellExample;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The LOOP workspace, ready to drop into somebody else's page.
|
|
3
|
+
*
|
|
4
|
+
* `LoopWorkspaceExample` is the workspace; this is everything a host has to do
|
|
5
|
+
* around it, done once here instead of once per host:
|
|
6
|
+
*
|
|
7
|
+
* - **Loaded lazily, fetched eagerly.** The workspace pulls in a notebook
|
|
8
|
+
* editor and a Python runtime measured in megabytes, so it must not be in
|
|
9
|
+
* the bundle a page needs before it can paint. Downloading it only when it
|
|
10
|
+
* first renders turns that saving into a wait, so the chunk is requested as
|
|
11
|
+
* soon as this module evaluates and is usually there before anyone scrolls
|
|
12
|
+
* to it.
|
|
13
|
+
* - **Fenced off.** An old browser, a blocked worker, a network that dropped
|
|
14
|
+
* the Python payload: none of those should cost the host the rest of its
|
|
15
|
+
* page, so a failure inside the workspace stops here.
|
|
16
|
+
* - **Honest while it waits**, and honest when it cannot start.
|
|
17
|
+
*
|
|
18
|
+
* The landing page had all three, written against a package it embeds — which
|
|
19
|
+
* is the wrong side of the boundary for them to live on: a change to how the
|
|
20
|
+
* workspace boots would have had to be made in a repository that only
|
|
21
|
+
* *renders* it. What a host keeps is the frame it puts around the thing and
|
|
22
|
+
* where a failure should send its readers.
|
|
23
|
+
*
|
|
24
|
+
* @module examples/LoopWorkspaceEmbed
|
|
25
|
+
*/
|
|
26
|
+
import type { JSX } from 'react';
|
|
27
|
+
import { type ReactNode } from 'react';
|
|
28
|
+
import type { LoopWorkspaceExampleProps } from './LoopWorkspaceExample';
|
|
29
|
+
/** Ask for the workspace's code before anything renders it. */
|
|
30
|
+
export declare function preloadLoopWorkspace(): void;
|
|
31
|
+
export type LoopWorkspaceEmbedProps = LoopWorkspaceExampleProps & {
|
|
32
|
+
/**
|
|
33
|
+
* What to show in place of the workspace when it cannot run.
|
|
34
|
+
*
|
|
35
|
+
* The default says what happened and nothing else. A host with somewhere
|
|
36
|
+
* useful to send a reader — a gallery, a sign-up — should say so here: this
|
|
37
|
+
* package does not know what else that page has to offer.
|
|
38
|
+
*/
|
|
39
|
+
fallback?: ReactNode;
|
|
40
|
+
/** What to show while the workspace is on its way. */
|
|
41
|
+
loading?: ReactNode;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The workspace, framed by whoever is embedding it.
|
|
45
|
+
*
|
|
46
|
+
* Fills its container: give it a height. Every other prop is the example's own
|
|
47
|
+
* — see {@link LoopWorkspaceExampleProps}.
|
|
48
|
+
*/
|
|
49
|
+
export declare function LoopWorkspaceEmbed({ fallback, loading, ...workspace }: LoopWorkspaceEmbedProps): JSX.Element;
|
|
50
|
+
export default LoopWorkspaceEmbed;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Component, Suspense } from 'react';
|
|
3
|
+
import { Spinner, Text } from '@primer/react';
|
|
4
|
+
import { Box } from '@datalayer/primer-addons';
|
|
5
|
+
import { lazyWithPreload } from '@datalayer/core/lib/utils';
|
|
6
|
+
/**
|
|
7
|
+
* The workspace itself, split out of the host's bundle.
|
|
8
|
+
*
|
|
9
|
+
* The real one — plugins, views, chat, sandbox and all, exactly as the
|
|
10
|
+
* examples app runs it. Reaching for it rather than rebuilding a smaller one
|
|
11
|
+
* for embedding is the whole point: a second implementation drifts from the
|
|
12
|
+
* first by the following release.
|
|
13
|
+
*/
|
|
14
|
+
const LazyLoopWorkspace = lazyWithPreload(async () => {
|
|
15
|
+
const module = await import('./LoopWorkspaceExample');
|
|
16
|
+
return { default: module.LoopWorkspaceExample };
|
|
17
|
+
});
|
|
18
|
+
// Requested now, rendered later. See the note at the top of the file.
|
|
19
|
+
LazyLoopWorkspace.preload();
|
|
20
|
+
/** Ask for the workspace's code before anything renders it. */
|
|
21
|
+
export function preloadLoopWorkspace() {
|
|
22
|
+
void LazyLoopWorkspace.preload();
|
|
23
|
+
}
|
|
24
|
+
/** Rendered while the editor and its runtime are arriving. */
|
|
25
|
+
function WorkspaceLoading() {
|
|
26
|
+
return (_jsxs(Box, { sx: {
|
|
27
|
+
height: '100%',
|
|
28
|
+
display: 'flex',
|
|
29
|
+
flexDirection: 'column',
|
|
30
|
+
alignItems: 'center',
|
|
31
|
+
justifyContent: 'center',
|
|
32
|
+
gap: 3,
|
|
33
|
+
}, children: [_jsx(Spinner, {}), _jsx(Text, { sx: { color: 'fg.muted', fontSize: 1 }, children: "Starting the workspace\u2026" })] }));
|
|
34
|
+
}
|
|
35
|
+
/** Said when the workspace will not start, and the host offered nothing better. */
|
|
36
|
+
function WorkspaceUnavailable() {
|
|
37
|
+
return (_jsxs(Box, { sx: {
|
|
38
|
+
height: '100%',
|
|
39
|
+
display: 'flex',
|
|
40
|
+
flexDirection: 'column',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
justifyContent: 'center',
|
|
43
|
+
gap: 2,
|
|
44
|
+
px: 4,
|
|
45
|
+
textAlign: 'center',
|
|
46
|
+
}, children: [_jsx(Text, { sx: { fontSize: 2, fontWeight: 'semibold' }, children: "The live workspace could not start in this browser." }), _jsx(Text, { sx: { color: 'fg.muted', fontSize: 1, maxWidth: 420 }, children: "It needs a modern browser that can run Python in a worker." })] }));
|
|
47
|
+
}
|
|
48
|
+
/** Keeps a failing workspace from taking its host's page with it. */
|
|
49
|
+
class WorkspaceBoundary extends Component {
|
|
50
|
+
state = { failed: false };
|
|
51
|
+
static getDerivedStateFromError() {
|
|
52
|
+
return { failed: true };
|
|
53
|
+
}
|
|
54
|
+
componentDidCatch(error) {
|
|
55
|
+
// Worth a console line for whoever is debugging it; not worth a banner on
|
|
56
|
+
// somebody's landing page.
|
|
57
|
+
console.warn('The embedded agent workspace could not start.', error);
|
|
58
|
+
}
|
|
59
|
+
render() {
|
|
60
|
+
return this.state.failed ? this.props.fallback : this.props.children;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The workspace, framed by whoever is embedding it.
|
|
65
|
+
*
|
|
66
|
+
* Fills its container: give it a height. Every other prop is the example's own
|
|
67
|
+
* — see {@link LoopWorkspaceExampleProps}.
|
|
68
|
+
*/
|
|
69
|
+
export function LoopWorkspaceEmbed({ fallback, loading, ...workspace }) {
|
|
70
|
+
const waiting = loading ?? _jsx(WorkspaceLoading, {});
|
|
71
|
+
return (_jsx(WorkspaceBoundary, { fallback: fallback ?? _jsx(WorkspaceUnavailable, {}), children: _jsx(Suspense, { fallback: waiting, children: _jsx(LazyLoopWorkspace, { ...workspace }) }) }));
|
|
72
|
+
}
|
|
73
|
+
export default LoopWorkspaceEmbed;
|