@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, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
4
4
|
* Distributed under the terms of the Modified BSD License.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
* Agent
|
|
7
|
+
* Notebook Agent Sidebar Example - Chat with Jupyter Notebook.
|
|
8
8
|
*
|
|
9
9
|
* This example demonstrates using the chat component with:
|
|
10
10
|
* - Jupyter Notebook integration
|
|
@@ -19,41 +19,20 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
19
19
|
*
|
|
20
20
|
* @module examples/NotebookAgentSidebarExample
|
|
21
21
|
*/
|
|
22
|
-
import { useEffect, useMemo, useState } from 'react';
|
|
23
22
|
import { Box } from '@datalayer/primer-addons';
|
|
24
|
-
import { Notebook
|
|
23
|
+
import { Notebook } from '@datalayer/jupyter-react';
|
|
25
24
|
import { useNotebookTools } from '../tools/adapters/agent-runtimes/notebookHooks';
|
|
26
|
-
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
25
|
+
import { ThemedJupyterProvider, ThemedProvider } from './utils/themedProvider';
|
|
27
26
|
import { ChatSidebar } from '../chat';
|
|
28
|
-
import {
|
|
29
|
-
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
30
|
-
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
27
|
+
import { useExampleJupyterAgent } from './hooks/useExampleJupyterAgent';
|
|
31
28
|
import MatplotlibNotebook from './utils/notebooks/Matplotlib.ipynb.json';
|
|
29
|
+
import { ExampleNotebookToolbar } from './utils/notebookToolbarItems';
|
|
32
30
|
// Fixed notebook ID
|
|
33
31
|
const NOTEBOOK_ID = 'chat-notebook-example';
|
|
34
32
|
// Use the imported Matplotlib notebook
|
|
35
33
|
const NOTEBOOK_CONTENT = MatplotlibNotebook;
|
|
36
34
|
// Default configuration
|
|
37
35
|
const DEFAULT_AGENT_ID = import.meta.env.VITE_AGENT_ID || 'notebook-sidebar-agent-runtime-example';
|
|
38
|
-
function getJupyterSandboxUrl(serviceManager) {
|
|
39
|
-
const envUrl = import.meta.env.VITE_JUPYTER_SANDBOX_URL;
|
|
40
|
-
if (envUrl) {
|
|
41
|
-
return envUrl;
|
|
42
|
-
}
|
|
43
|
-
const baseUrl = serviceManager?.serverSettings?.baseUrl?.replace(/\/$/, '');
|
|
44
|
-
if (!baseUrl) {
|
|
45
|
-
return undefined;
|
|
46
|
-
}
|
|
47
|
-
if (baseUrl.includes('token=')) {
|
|
48
|
-
return baseUrl;
|
|
49
|
-
}
|
|
50
|
-
const token = serviceManager?.serverSettings?.token;
|
|
51
|
-
if (!token) {
|
|
52
|
-
return baseUrl;
|
|
53
|
-
}
|
|
54
|
-
const separator = baseUrl.includes('?') ? '&' : '?';
|
|
55
|
-
return `${baseUrl}${separator}token=${encodeURIComponent(token)}`;
|
|
56
|
-
}
|
|
57
36
|
function NotebookUI({ serviceManager }) {
|
|
58
37
|
if (!serviceManager) {
|
|
59
38
|
return (_jsx(Box, { sx: {
|
|
@@ -64,59 +43,34 @@ function NotebookUI({ serviceManager }) {
|
|
|
64
43
|
color: 'fg.muted',
|
|
65
44
|
}, children: "Loading Simple services..." }));
|
|
66
45
|
}
|
|
67
|
-
return (
|
|
46
|
+
return (
|
|
47
|
+
// Only the notebook is wrapped. `JupyterReactTheme` nests a Primer theme
|
|
48
|
+
// of its own, so wrapping the example in it made every surface around the
|
|
49
|
+
// notebook — header, sidebar, error panel — read `canvas.default` from
|
|
50
|
+
// Primer's stock light palette rather than from the chosen theme, which is
|
|
51
|
+
// what showed as a white background.
|
|
52
|
+
_jsx(ThemedJupyterProvider, { fullHeight: true, children: _jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, Toolbar: ExampleNotebookToolbar, serviceManager: serviceManager, height: "100%", cellSidebarMargin: 120, startDefaultKernel: true }) }));
|
|
68
53
|
}
|
|
69
54
|
export function AgentRuntimeNotebookExampleInner({ serviceManager, }) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
const
|
|
74
|
-
const { agentId, isReady, status, error, createAgent } = useExampleAgentRuntime({
|
|
55
|
+
// The tools. Which of the chat and the harness runs them depends on
|
|
56
|
+
// where the loop turns, and the hook decides that.
|
|
57
|
+
const tools = useNotebookTools(NOTEBOOK_ID);
|
|
58
|
+
const { agentReady, protocol: protocolConfig, chatFrontendTools, error, unavailableReason, } = useExampleJupyterAgent({
|
|
75
59
|
exampleId: 'NotebookAgentSidebarExample',
|
|
76
60
|
agentName: DEFAULT_AGENT_ID,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
protocol: 'vercel-ai',
|
|
82
|
-
model: DEFAULT_MODEL,
|
|
83
|
-
systemPrompt: 'You are a helpful AI assistant that helps users work with Jupyter notebooks. For notebook operations, always use the notebook frontend tools (runCell, readAllCells, readCell, insertCell, updateCell, deleteCells) so actions happen in the live notebook UI. Use executeCode only for temporary inspection code that should not modify notebook cells.',
|
|
84
|
-
enableCodemode: false,
|
|
85
|
-
sandboxVariant: 'jupyter',
|
|
86
|
-
jupyterSandbox: jupyterSandboxUrl,
|
|
87
|
-
},
|
|
61
|
+
description: 'Demo agent for notebook sidebar example',
|
|
62
|
+
systemPrompt: 'You are a helpful AI assistant that helps users work with Jupyter notebooks. For notebook operations, always use the notebook frontend tools (runCell, readAllCells, readCell, insertCell, updateCell, deleteCells) so actions happen in the live notebook UI. Use executeCodeInNotebook only for temporary inspection code that should not modify notebook cells.',
|
|
63
|
+
serviceManager,
|
|
64
|
+
frontendTools: tools,
|
|
88
65
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
name: DEFAULT_AGENT_ID,
|
|
96
|
-
description: 'Demo agent for notebook sidebar example',
|
|
97
|
-
protocol: 'vercel-ai',
|
|
98
|
-
model: DEFAULT_MODEL,
|
|
99
|
-
systemPrompt: 'You are a helpful AI assistant that helps users work with Jupyter notebooks. For notebook operations, always use the notebook frontend tools (runCell, readAllCells, readCell, insertCell, updateCell, deleteCells) so actions happen in the live notebook UI. Use executeCode only for temporary inspection code that should not modify notebook cells.',
|
|
100
|
-
enableCodemode: false,
|
|
101
|
-
sandboxVariant: 'jupyter',
|
|
102
|
-
jupyterSandbox: jupyterSandboxUrl,
|
|
103
|
-
}).catch(() => {
|
|
104
|
-
setCreateRequested(false);
|
|
105
|
-
});
|
|
106
|
-
}, [jupyterSandboxUrl, createRequested, agentId, createAgent]);
|
|
107
|
-
const effectiveReady = isReady || status === 'ready';
|
|
66
|
+
// One failed attempt is reported, not retried — see
|
|
67
|
+
// `useExampleJupyterAgent`.
|
|
68
|
+
const chatError = error || unavailableReason;
|
|
69
|
+
// The example's own agent, not merely the runtime: on the cloud target the
|
|
70
|
+
// runtime is ready before this agent has been registered on it.
|
|
71
|
+
const effectiveReady = agentReady;
|
|
108
72
|
// Get notebook tools for ChatSidebar
|
|
109
|
-
const tools = useNotebookTools(NOTEBOOK_ID);
|
|
110
73
|
// Build Vercel AI protocol config
|
|
111
|
-
const protocolConfig = useMemo(() => {
|
|
112
|
-
return {
|
|
113
|
-
type: 'vercel-ai',
|
|
114
|
-
endpoint: vercelAiEndpoint,
|
|
115
|
-
agentId: DEFAULT_AGENT_ID,
|
|
116
|
-
enableConfigQuery: true,
|
|
117
|
-
configEndpoint: `${baseUrl}/api/v1/configure`,
|
|
118
|
-
};
|
|
119
|
-
}, [baseUrl, vercelAiEndpoint]);
|
|
120
74
|
return (_jsx(_Fragment, { children: _jsxs(Box, { sx: {
|
|
121
75
|
height: 'calc(100vh - 70px)',
|
|
122
76
|
width: '100vw',
|
|
@@ -132,7 +86,7 @@ export function AgentRuntimeNotebookExampleInner({ serviceManager, }) {
|
|
|
132
86
|
borderBottom: '1px solid',
|
|
133
87
|
borderColor: 'border.default',
|
|
134
88
|
bg: 'canvas.default',
|
|
135
|
-
}, children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "
|
|
89
|
+
}, children: [_jsx("h1", { style: { margin: 0, fontSize: '1.5rem' }, children: "Notebook Chat Sidebar Example" }), _jsx("p", { style: { margin: '8px 0 0', color: 'var(--fgColor-muted)' }, children: "Chat with Jupyter Notebook integration" })] }), _jsx(Box, { sx: {
|
|
136
90
|
flex: 1,
|
|
137
91
|
display: 'flex',
|
|
138
92
|
overflow: 'hidden',
|
|
@@ -146,7 +100,7 @@ export function AgentRuntimeNotebookExampleInner({ serviceManager, }) {
|
|
|
146
100
|
overflow: 'hidden',
|
|
147
101
|
}, children: _jsx(NotebookUI, { serviceManager: serviceManager }) }) })] }), effectiveReady && (_jsx(ChatSidebar, { title: "AI Assistant", protocol: protocolConfig, position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
|
|
148
102
|
protocol: protocolConfig,
|
|
149
|
-
frontendTools:
|
|
103
|
+
frontendTools: chatFrontendTools,
|
|
150
104
|
useStore: false,
|
|
151
105
|
showModelSelector: true,
|
|
152
106
|
showToolsMenu: true,
|
|
@@ -169,7 +123,7 @@ export function AgentRuntimeNotebookExampleInner({ serviceManager, }) {
|
|
|
169
123
|
message: 'Can you suggest improvements for the code?',
|
|
170
124
|
},
|
|
171
125
|
],
|
|
172
|
-
} })),
|
|
126
|
+
} })), chatError && (_jsxs(Box, { sx: {
|
|
173
127
|
position: 'fixed',
|
|
174
128
|
bottom: 20,
|
|
175
129
|
right: 20,
|
|
@@ -179,16 +133,18 @@ export function AgentRuntimeNotebookExampleInner({ serviceManager, }) {
|
|
|
179
133
|
borderRadius: 2,
|
|
180
134
|
maxWidth: 320,
|
|
181
135
|
zIndex: 999,
|
|
182
|
-
}, children: [_jsx("strong", { children: "Error:" }), " ",
|
|
136
|
+
}, children: [_jsx("strong", { children: "Error:" }), " ", chatError] }))] }) }));
|
|
183
137
|
}
|
|
184
138
|
/**
|
|
185
|
-
*
|
|
139
|
+
* The example, in the app's theme.
|
|
140
|
+
*
|
|
141
|
+
* The service manager comes from the shell, as it does in every other example:
|
|
142
|
+
* the shell owns which of the four runtime targets is selected, and reading it
|
|
143
|
+
* from an ambient Jupyter provider instead — which is what this example used
|
|
144
|
+
* to do — meant it could be showing a notebook on a different runtime than the
|
|
145
|
+
* one the picker says.
|
|
186
146
|
*/
|
|
187
|
-
export function AgentRuntimeNotebookAgentSidebarExample() {
|
|
188
|
-
return (_jsx(
|
|
189
|
-
}
|
|
190
|
-
function SimpleWrapper() {
|
|
191
|
-
const { serviceManager } = useJupyter();
|
|
192
|
-
return _jsx(AgentRuntimeNotebookExampleInner, { serviceManager: serviceManager });
|
|
147
|
+
export function AgentRuntimeNotebookAgentSidebarExample({ serviceManager, }) {
|
|
148
|
+
return (_jsx(ThemedProvider, { children: _jsx(AgentRuntimeNotebookExampleInner, { serviceManager: serviceManager }) }));
|
|
193
149
|
}
|
|
194
150
|
export default AgentRuntimeNotebookAgentSidebarExample;
|
|
@@ -12,5 +12,5 @@ import { ServiceManager } from '@jupyterlab/services';
|
|
|
12
12
|
type INotebookCollaborationExampleProps = {
|
|
13
13
|
serviceManager?: ServiceManager.IManager;
|
|
14
14
|
};
|
|
15
|
-
declare const NotebookCollaborationExample: (props: INotebookCollaborationExampleProps) => import("react
|
|
15
|
+
declare const NotebookCollaborationExample: (props: INotebookCollaborationExampleProps) => import("react").JSX.Element;
|
|
16
16
|
export default NotebookCollaborationExample;
|
|
@@ -7,13 +7,16 @@ import { createDatalayerServiceManager } from '../services/DatalayerServiceManag
|
|
|
7
7
|
import { useState, useEffect, useMemo } from 'react';
|
|
8
8
|
import { Checkbox, FormControl, Heading } from '@primer/react';
|
|
9
9
|
import { Box } from '@datalayer/primer-addons';
|
|
10
|
-
import { loadJupyterConfig, Notebook } from '@datalayer/jupyter-react';
|
|
10
|
+
import { loadJupyterConfig, Notebook, JupyterCollaborationProvider, } from '@datalayer/jupyter-react';
|
|
11
11
|
import { DatalayerCollaborationProvider } from '../collaboration';
|
|
12
12
|
import { useCoreStore } from '../state';
|
|
13
13
|
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
14
|
+
import { useRuntimeTargetStore } from './utils/runtimeTargetStore';
|
|
14
15
|
import nbformatExample from './utils/notebooks/NotebookExample1.ipynb.json';
|
|
16
|
+
import { ExampleNotebookToolbar } from './utils/notebookToolbarItems';
|
|
15
17
|
// This corresponds to the notebook ID in the URL when you open an existing notbook in your library
|
|
16
18
|
const NOTEBOOK_ID = '01JZQRQ35GG871QQCZW9TB1A8J';
|
|
19
|
+
const ROOM_PATH = 'notebook-collaboration-example.ipynb';
|
|
17
20
|
const NotebookCollaborationExample = (props) => {
|
|
18
21
|
// Load config on component mount
|
|
19
22
|
loadJupyterConfig();
|
|
@@ -21,7 +24,70 @@ const NotebookCollaborationExample = (props) => {
|
|
|
21
24
|
const [enableCollaboration, setEnableCollaboration] = useState(false);
|
|
22
25
|
const [readonly] = useState(false);
|
|
23
26
|
const [serviceManager, setServiceManager] = useState(props.serviceManager);
|
|
27
|
+
const [collaborationReady, setCollaborationReady] = useState(false);
|
|
28
|
+
const [collaborationError, setCollaborationError] = useState(null);
|
|
24
29
|
const { configuration } = useCoreStore();
|
|
30
|
+
const runtimeTarget = useRuntimeTargetStore(state => state.target);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
let cancelled = false;
|
|
33
|
+
const prepare = async () => {
|
|
34
|
+
if (!enableCollaboration || !serviceManager) {
|
|
35
|
+
setCollaborationReady(false);
|
|
36
|
+
setCollaborationError(null);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
setCollaborationReady(false);
|
|
40
|
+
setCollaborationError(null);
|
|
41
|
+
if (runtimeTarget === 'datalayer') {
|
|
42
|
+
setCollaborationReady(true);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
await serviceManager.ready;
|
|
47
|
+
try {
|
|
48
|
+
await serviceManager.contents.get(ROOM_PATH, { content: false });
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
if (error.response?.status !==
|
|
52
|
+
404)
|
|
53
|
+
throw error;
|
|
54
|
+
try {
|
|
55
|
+
await serviceManager.contents.save(ROOM_PATH, {
|
|
56
|
+
type: 'notebook',
|
|
57
|
+
format: 'json',
|
|
58
|
+
content: nbformat,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch (saveError) {
|
|
62
|
+
// Some Jupyter backends create the file but return a response that
|
|
63
|
+
// the contents client cannot decode. Verify before reporting it.
|
|
64
|
+
try {
|
|
65
|
+
await serviceManager.contents.get(ROOM_PATH, { content: false });
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
throw saveError;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Do not open the collaboration websocket until the room file is
|
|
73
|
+
// observable through the same service manager.
|
|
74
|
+
await serviceManager.contents.get(ROOM_PATH, { content: false });
|
|
75
|
+
if (!cancelled)
|
|
76
|
+
setCollaborationReady(true);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.error('Failed to prepare collaboration room:', error);
|
|
80
|
+
if (!cancelled) {
|
|
81
|
+
setCollaborationReady(false);
|
|
82
|
+
setCollaborationError(String(error));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
void prepare();
|
|
87
|
+
return () => {
|
|
88
|
+
cancelled = true;
|
|
89
|
+
};
|
|
90
|
+
}, [enableCollaboration, nbformat, runtimeTarget, serviceManager]);
|
|
25
91
|
useEffect(() => {
|
|
26
92
|
// Create DatalayerServiceManager if not provided
|
|
27
93
|
const createManager = async () => {
|
|
@@ -49,25 +115,47 @@ const NotebookCollaborationExample = (props) => {
|
|
|
49
115
|
};
|
|
50
116
|
createManager();
|
|
51
117
|
}, [props.serviceManager, configuration]);
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
118
|
+
// Each Notebook owns its own shared model, so each pane needs a separate
|
|
119
|
+
// provider. Both providers point at the same real library document.
|
|
120
|
+
const collaborationProviders = useMemo(() => {
|
|
121
|
+
if (!enableCollaboration || !collaborationReady) {
|
|
122
|
+
return [undefined, undefined];
|
|
123
|
+
}
|
|
124
|
+
if (runtimeTarget === 'local') {
|
|
125
|
+
const config = {
|
|
126
|
+
path: ROOM_PATH,
|
|
127
|
+
serverSettings: serviceManager?.serverSettings,
|
|
128
|
+
};
|
|
129
|
+
return [
|
|
130
|
+
new JupyterCollaborationProvider(config),
|
|
131
|
+
new JupyterCollaborationProvider(config),
|
|
132
|
+
];
|
|
56
133
|
}
|
|
57
134
|
const spacerUrl = configuration?.spacerUrl;
|
|
58
135
|
const token = configuration?.token;
|
|
59
|
-
if (!spacerUrl || !token)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
136
|
+
if (!spacerUrl || !token)
|
|
137
|
+
return [undefined, undefined];
|
|
138
|
+
return [
|
|
139
|
+
new DatalayerCollaborationProvider({ spacerUrl, token }),
|
|
140
|
+
new DatalayerCollaborationProvider({ spacerUrl, token }),
|
|
141
|
+
];
|
|
142
|
+
}, [
|
|
143
|
+
enableCollaboration,
|
|
144
|
+
collaborationReady,
|
|
145
|
+
runtimeTarget,
|
|
146
|
+
configuration?.spacerUrl,
|
|
147
|
+
configuration?.token,
|
|
148
|
+
]);
|
|
149
|
+
const [collaborationProvider1, collaborationProvider2] = collaborationProviders;
|
|
150
|
+
// Close websocket connections when collaboration is disabled or the example
|
|
151
|
+
// is unmounted. This also prevents stale providers from keeping a notebook
|
|
152
|
+
// in its loading state after toggling the checkbox.
|
|
153
|
+
useEffect(() => {
|
|
154
|
+
return () => {
|
|
155
|
+
collaborationProviders.forEach(provider => provider?.dispose());
|
|
156
|
+
};
|
|
157
|
+
}, [collaborationProviders]);
|
|
158
|
+
return (_jsx(ThemedJupyterProvider, { children: _jsxs(Box, { p: 3, children: [_jsx(Heading, { as: "h2", sx: { mb: 3 }, children: "Notebook Collaboration Example" }), _jsxs(Box, { sx: { mb: 3 }, children: [_jsxs(FormControl, { children: [_jsx(Checkbox, { checked: enableCollaboration, onChange: e => setEnableCollaboration(e.target.checked) }), _jsx(FormControl.Label, { children: "Enable Datalayer Collaboration" })] }), enableCollaboration && runtimeTarget !== 'datalayer' && (_jsx(Box, { sx: { mt: 1, color: 'fg.muted', fontSize: 0 }, children: "Real-time Datalayer collaboration requires the cloud runtime target. Local mode does not expose a collaboration room." }))] }), (!configuration?.spacerUrl || !configuration?.token) && (_jsx(Box, { sx: { mb: 2, p: 2, bg: 'danger.subtle' }, children: "Warning: Datalayer configuration is missing. Please configure spacerUrl and token to use DatalayerServiceManager and collaboration features." })), !serviceManager && (_jsx(Box, { sx: { mb: 2, p: 2, bg: 'attention.subtle' }, children: "Note: DatalayerServiceManager is not available. Notebook functionality will be limited." })), collaborationError && (_jsxs(Box, { sx: { mb: 2, p: 2, bg: 'danger.subtle' }, children: ["Collaboration could not start: ", collaborationError] })), enableCollaboration && collaborationReady ? (_jsxs(Box, { sx: {
|
|
71
159
|
display: 'flex',
|
|
72
160
|
gap: 2,
|
|
73
161
|
flexDirection: 'row',
|
|
@@ -82,7 +170,7 @@ const NotebookCollaborationExample = (props) => {
|
|
|
82
170
|
borderBottom: '1px solid',
|
|
83
171
|
borderColor: 'border.default',
|
|
84
172
|
fontWeight: 'bold',
|
|
85
|
-
}, children: "Collaborator 1" }), serviceManager ? (_jsx(Notebook, { id:
|
|
173
|
+
}, children: "Collaborator 1" }), serviceManager ? (_jsx(Notebook, { id: NOTEBOOK_ID, Toolbar: ExampleNotebookToolbar, path: ROOM_PATH, height: "calc(100vh - 280px)", nbformat: nbformat, readonly: readonly, serviceManager: serviceManager, startDefaultKernel: true, collaborationProvider: collaborationProvider1 })) : (_jsx(Box, { sx: { p: 4, textAlign: 'center' }, children: "Loading ServiceManager..." }))] }), _jsxs(Box, { sx: {
|
|
86
174
|
flex: 1,
|
|
87
175
|
border: '1px solid',
|
|
88
176
|
borderColor: 'border.default',
|
|
@@ -93,10 +181,10 @@ const NotebookCollaborationExample = (props) => {
|
|
|
93
181
|
borderBottom: '1px solid',
|
|
94
182
|
borderColor: 'border.default',
|
|
95
183
|
fontWeight: 'bold',
|
|
96
|
-
}, children: "Collaborator 2" }), serviceManager ? (_jsx(Notebook, { id:
|
|
184
|
+
}, children: "Collaborator 2" }), serviceManager ? (_jsx(Notebook, { id: NOTEBOOK_ID, Toolbar: ExampleNotebookToolbar, path: ROOM_PATH, height: "calc(100vh - 280px)", nbformat: nbformat, readonly: readonly, serviceManager: serviceManager, startDefaultKernel: false, collaborationProvider: collaborationProvider2 })) : (_jsx(Box, { sx: { p: 4, textAlign: 'center' }, children: "Loading ServiceManager..." }))] })] })) : (_jsx(Box, { sx: {
|
|
97
185
|
border: '1px solid',
|
|
98
186
|
borderColor: 'border.default',
|
|
99
187
|
borderRadius: 2,
|
|
100
|
-
}, children: serviceManager ? (_jsx(Notebook, { id: NOTEBOOK_ID, height: "calc(100vh - 200px)", nbformat: nbformat, readonly: readonly, serviceManager: serviceManager, startDefaultKernel: true, collaborationProvider:
|
|
188
|
+
}, children: serviceManager ? (_jsx(Notebook, { id: NOTEBOOK_ID, Toolbar: ExampleNotebookToolbar, height: "calc(100vh - 200px)", nbformat: nbformat, readonly: readonly, serviceManager: serviceManager, startDefaultKernel: true, collaborationProvider: collaborationProvider1 })) : (_jsx(Box, { sx: { p: 4, textAlign: 'center' }, children: "Loading ServiceManager..." })) })), _jsxs(Box, { sx: { mt: 2, fontSize: 1, color: 'fg.subtle' }, children: [_jsx(Box, { as: "p", sx: { m: 0, mb: 2 }, children: "This example demonstrates how to use Datalayer services with Notebook:" }), _jsxs(Box, { as: "ul", sx: { m: 0, pl: 3, '& li': { mb: 1 } }, children: [_jsxs("li", { children: [_jsx("strong", { children: "DatalayerServiceManager:" }), " Connects to Datalayer infrastructure for kernel management"] }), _jsxs("li", { children: [_jsx("strong", { children: "DatalayerCollaborationProvider:" }), " Enables real-time collaboration"] }), _jsx("li", { children: "Both require Datalayer credentials (spacerUrl and token)" }), _jsx("li", { children: "Pass them directly to the base Notebook component" }), _jsx("li", { children: "No wrapper components needed - just create the services and pass them as props" }), _jsx("li", { children: "This shows the explicit, composable pattern for Datalayer integration" })] })] })] }) }));
|
|
101
189
|
};
|
|
102
190
|
export default NotebookCollaborationExample;
|
|
@@ -2,5 +2,5 @@ import { ServiceManager } from '@jupyterlab/services';
|
|
|
2
2
|
type IJupyterNotebookExampleProps = {
|
|
3
3
|
serviceManager?: ServiceManager.IManager;
|
|
4
4
|
};
|
|
5
|
-
export declare const JupyterNotebookExample: (props: IJupyterNotebookExampleProps) => import("react
|
|
5
|
+
export declare const JupyterNotebookExample: (props: IJupyterNotebookExampleProps) => import("react").JSX.Element;
|
|
6
6
|
export default JupyterNotebookExample;
|
|
@@ -3,23 +3,33 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
4
|
* Distributed under the terms of the Modified BSD License.
|
|
5
5
|
*/
|
|
6
|
-
/*
|
|
7
|
-
* Copyright (c) 2021-2023 Datalayer, Inc.
|
|
8
|
-
*
|
|
9
|
-
* MIT License
|
|
10
|
-
*/
|
|
11
6
|
import { useMemo } from 'react';
|
|
12
7
|
import { Box } from '@datalayer/primer-addons';
|
|
13
|
-
import { Notebook,
|
|
8
|
+
import { Notebook, CellSidebarExtension, CellSidebarButton, } from '@datalayer/jupyter-react';
|
|
14
9
|
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
15
10
|
import nbformatExample from './utils/notebooks/NotebookExample1.ipynb.json';
|
|
11
|
+
import { ExampleNotebookToolbar } from './utils/notebookToolbarItems';
|
|
16
12
|
const NOTEBOOK_ID = 'notebook-example-1';
|
|
17
13
|
export const JupyterNotebookExample = (props) => {
|
|
18
14
|
const { serviceManager } = props;
|
|
19
15
|
const extensions = useMemo(() => [new CellSidebarExtension({ factory: CellSidebarButton })], []);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
return (_jsxs(Box, { sx: {
|
|
17
|
+
flex: 1,
|
|
18
|
+
display: 'flex',
|
|
19
|
+
flexDirection: 'column',
|
|
20
|
+
overflow: 'auto',
|
|
21
|
+
padding: 3,
|
|
22
|
+
}, children: [_jsxs(Box, { sx: {
|
|
23
|
+
marginBottom: 3,
|
|
24
|
+
paddingBottom: 3,
|
|
25
|
+
borderBottom: '1px solid',
|
|
26
|
+
borderColor: 'border.default',
|
|
27
|
+
}, children: [_jsx(Box, { as: "h1", sx: { margin: 0 }, children: "Notebook Example" }), _jsx("p", { children: "A notebook on the selected sandbox, with the kernel indicator in its toolbar." })] }), _jsx(Box, { sx: {
|
|
28
|
+
border: '1px solid',
|
|
29
|
+
borderColor: 'border.default',
|
|
30
|
+
borderRadius: 2,
|
|
31
|
+
padding: 3,
|
|
32
|
+
backgroundColor: 'canvas.default',
|
|
33
|
+
}, children: serviceManager ? (_jsx(ThemedJupyterProvider, { children: _jsx(Notebook, { id: NOTEBOOK_ID, nbformat: nbformatExample, serviceManager: serviceManager, startDefaultKernel: true, extensions: extensions, Toolbar: ExampleNotebookToolbar, height: "calc(100vh - 300px)", cellSidebarMargin: 120 }) })) : (_jsx(Box, { sx: { padding: 3 }, children: _jsx("p", { children: "Loading service manager..." }) })) })] }));
|
|
24
34
|
};
|
|
25
35
|
export default JupyterNotebookExample;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A notebook as a page, with a team of agents working in it.
|
|
3
|
+
*
|
|
4
|
+
* The page layout: the notebook on a centred sheet over a quiet canvas, like
|
|
5
|
+
* a document application; the composer docked directly above the sheet and
|
|
6
|
+
* exactly as wide, as its command line; the conversation in a panel at the
|
|
7
|
+
* side, opened from the header when it is wanted. Ask the Analyst for an analysis and the cells
|
|
8
|
+
* appear on the page; ask the Reviewer to check it and the verdict lands
|
|
9
|
+
* beside them.
|
|
10
|
+
*
|
|
11
|
+
* Reactor plugins only. `pageLayout` mounts `LoopPageLayoutPlugin`, which
|
|
12
|
+
* hands the chat view's parts to primer-addons' page layout through the
|
|
13
|
+
* `LoopChatLayout` point; the
|
|
14
|
+
* `jupyter` team brings the Analyst, the Reviewer, the Writer and
|
|
15
|
+
* the rest of the notebook's agents;
|
|
16
|
+
* the loop turns in the browser, so nothing has to be installed or signed
|
|
17
|
+
* into.
|
|
18
|
+
*
|
|
19
|
+
* @module examples/NotebookPageAgent
|
|
20
|
+
*/
|
|
21
|
+
import React from 'react';
|
|
22
|
+
declare const NotebookPageAgent: React.FC;
|
|
23
|
+
export default NotebookPageAgent;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box } from '@datalayer/primer-addons';
|
|
3
|
+
import { ThemedProvider } from './utils/themedProvider';
|
|
4
|
+
import { LoopEmbed } from '../loop';
|
|
5
|
+
const NotebookPageAgent = () => (_jsx(ThemedProvider, { children: _jsx(Box, { sx: { height: '100vh', minHeight: 0 }, children: _jsx(LoopEmbed, { target: "browser",
|
|
6
|
+
/* The Analyst is the team's front door; the team puts the other
|
|
7
|
+
members one click away in the composer's agents menu. */
|
|
8
|
+
agentId: "jupyter-data-analyst", teamId: "jupyter",
|
|
9
|
+
/* The notebook, open on the page. */
|
|
10
|
+
defaultEditor: "notebook", pageLayout: true,
|
|
11
|
+
/* The composer as a draggable card over the top of the page rather
|
|
12
|
+
than the docked band. */
|
|
13
|
+
pageLayoutPrompt: "floating",
|
|
14
|
+
/* The header carries the editor choice — notebook, document, or the
|
|
15
|
+
conversation alone — and the page layout's conversation toggle. */
|
|
16
|
+
showHeader: true, editorSelector: true, commandPalette: true, agentSummary: false }) }) }));
|
|
17
|
+
export default NotebookPageAgent;
|
|
@@ -11,6 +11,11 @@ import React from 'react';
|
|
|
11
11
|
* Also clears the shared chat + conversation stores synchronously as the
|
|
12
12
|
* new example mounts, so switching examples never leaks messages from the
|
|
13
13
|
* previously-mounted chat.
|
|
14
|
+
*
|
|
15
|
+
* And it declares, for every chat an example renders, whether there is an agent
|
|
16
|
+
* to talk to. Two of the four runtime targets are a sandbox and nothing else,
|
|
17
|
+
* and saying so once here is why no example has to know which: the chat shows
|
|
18
|
+
* itself switched off, with the reason in its header, wherever it is mounted.
|
|
14
19
|
*/
|
|
15
20
|
export declare const ExampleWrapper: React.FC<{
|
|
16
21
|
children: React.ReactNode;
|
|
@@ -6,6 +6,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
6
|
import { useLayoutEffect } from 'react';
|
|
7
7
|
import { Box } from '@datalayer/primer-addons';
|
|
8
8
|
import { useChatStore, useConversationStore } from '../../stores';
|
|
9
|
+
import { ChatAvailabilityProvider } from '../../chat/base/ChatAvailability';
|
|
10
|
+
import { useRuntimeTarget } from '../utils/runtimeTargetStore';
|
|
9
11
|
/**
|
|
10
12
|
* ExampleWrapper
|
|
11
13
|
*
|
|
@@ -18,40 +20,46 @@ import { useChatStore, useConversationStore } from '../../stores';
|
|
|
18
20
|
* Also clears the shared chat + conversation stores synchronously as the
|
|
19
21
|
* new example mounts, so switching examples never leaks messages from the
|
|
20
22
|
* previously-mounted chat.
|
|
23
|
+
*
|
|
24
|
+
* And it declares, for every chat an example renders, whether there is an agent
|
|
25
|
+
* to talk to. Two of the four runtime targets are a sandbox and nothing else,
|
|
26
|
+
* and saying so once here is why no example has to know which: the chat shows
|
|
27
|
+
* itself switched off, with the reason in its header, wherever it is mounted.
|
|
21
28
|
*/
|
|
22
29
|
export const ExampleWrapper = ({ children, }) => {
|
|
30
|
+
const { hasAgent, noAgentReason } = useRuntimeTarget();
|
|
23
31
|
useLayoutEffect(() => {
|
|
24
32
|
useChatStore.getState().reset();
|
|
25
33
|
useConversationStore.getState().clearAll();
|
|
26
34
|
}, []);
|
|
27
|
-
return (_jsx(Box, { sx: {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
width: '100%',
|
|
31
|
-
minHeight: 0,
|
|
32
|
-
overflow: 'hidden',
|
|
33
|
-
display: 'flex',
|
|
34
|
-
flexDirection: 'column',
|
|
35
|
-
fontFamily: 'var(--fontStack-sansSerif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif)',
|
|
36
|
-
lineHeight: 1.5,
|
|
37
|
-
'& h1, & h2, & h3, & h4, & h5, & h6, & p, & li, & span, & label, & button, & input, & textarea, & select': {
|
|
38
|
-
fontFamily: 'inherit',
|
|
39
|
-
},
|
|
40
|
-
// Generic constraint: every example's root child fills the wrapper
|
|
41
|
-
// exactly and cannot exceed it. This neutralises stray `100vh`/
|
|
42
|
-
// `calc(100vh - Npx)` heights inside individual examples so the
|
|
43
|
-
// chat footer (or any bottom UI) always remains in the viewport.
|
|
44
|
-
'& > *': {
|
|
45
|
-
flex: '1 1 0',
|
|
46
|
-
minHeight: 0,
|
|
47
|
-
maxHeight: '100%',
|
|
35
|
+
return (_jsx(ChatAvailabilityProvider, { disabled: !hasAgent, disableReason: hasAgent ? undefined : noAgentReason, children: _jsx(Box, { sx: {
|
|
36
|
+
position: 'relative',
|
|
37
|
+
height: '100%',
|
|
48
38
|
width: '100%',
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
39
|
+
minHeight: 0,
|
|
40
|
+
overflow: 'hidden',
|
|
41
|
+
display: 'flex',
|
|
42
|
+
flexDirection: 'column',
|
|
43
|
+
fontFamily: 'var(--fontStack-sansSerif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif)',
|
|
44
|
+
lineHeight: 1.5,
|
|
45
|
+
'& h1, & h2, & h3, & h4, & h5, & h6, & p, & li, & span, & label, & button, & input, & textarea, & select': {
|
|
46
|
+
fontFamily: 'inherit',
|
|
47
|
+
},
|
|
48
|
+
// Generic constraint: every example's root child fills the wrapper
|
|
49
|
+
// exactly and cannot exceed it. This neutralises stray `100vh`/
|
|
50
|
+
// `calc(100vh - Npx)` heights inside individual examples so the
|
|
51
|
+
// chat footer (or any bottom UI) always remains in the viewport.
|
|
52
|
+
'& > *': {
|
|
53
|
+
flex: '1 1 0',
|
|
54
|
+
minHeight: 0,
|
|
55
|
+
maxHeight: '100%',
|
|
56
|
+
width: '100%',
|
|
57
|
+
// Default scroll behaviour for plain content pages. Examples
|
|
58
|
+
// that manage their own internal scrollers can override this
|
|
59
|
+
// by setting `overflow: 'hidden'` (or another value) on their
|
|
60
|
+
// root element \u2014 the child rule wins on specificity.
|
|
61
|
+
overflow: 'auto',
|
|
62
|
+
},
|
|
63
|
+
}, children: children }) }));
|
|
56
64
|
};
|
|
57
65
|
export default ExampleWrapper;
|
|
@@ -9,7 +9,7 @@ export interface LexicalEditorProps {
|
|
|
9
9
|
serviceManager?: ServiceManager.IManager;
|
|
10
10
|
/** Optional extra toolbar items (e.g. AI actions from useChatInlineToolbarItems) */
|
|
11
11
|
extraItems?: ToolbarItem[];
|
|
12
|
-
/** Optional additional children to render inside the
|
|
12
|
+
/** Optional additional children to render inside the composer */
|
|
13
13
|
children?: React.ReactNode;
|
|
14
14
|
}
|
|
15
15
|
/**
|