@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
|
@@ -24,17 +24,19 @@ import { AuthRequiredView, ErrorView } from './components';
|
|
|
24
24
|
import { ThemedProvider } from './utils/themedProvider';
|
|
25
25
|
import { uniqueAgentId } from './utils/agentId';
|
|
26
26
|
import { useSimpleAuthStore } from '@datalayer/core/lib/views/otel';
|
|
27
|
-
import {
|
|
27
|
+
import { LoopEmbed } from '../loop';
|
|
28
|
+
import { AgentTriggersPlugin } from '../loop/plugins/agent-triggers';
|
|
28
29
|
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
30
|
+
import { waitForAgent } from './utils/waitForAgent';
|
|
29
31
|
import { useConnectedIdentities } from '../identity';
|
|
30
32
|
import { ToolApprovalBanner, ToolApprovalDialog, } from '../chat/tools';
|
|
31
33
|
import { useAgentEvents, useDeleteAgentEvent, useMarkEventRead, useMarkEventUnread, useAIAgentsWebSocket, } from '../hooks';
|
|
32
|
-
import { VercelAIAdapter } from '../protocols';
|
|
34
|
+
import { AGUIAdapter, VercelAIAdapter } from '../protocols';
|
|
33
35
|
import { createUserMessage } from '../types/messages';
|
|
36
|
+
const LOOP_PLUGINS_AGENTTRI = [AgentTriggersPlugin];
|
|
34
37
|
const queryClient = new QueryClient();
|
|
35
38
|
// ─── Constants ─────────────────────────────────────────────────────────────
|
|
36
39
|
const AGENT_NAME = 'trigger-example-agent';
|
|
37
|
-
const AGENTSPEC_ID = 'example-one-trigger';
|
|
38
40
|
const APPROVAL_AGENT_NAME = 'trigger-approval-agent';
|
|
39
41
|
const APPROVAL_AGENTSPEC_ID = 'example-tool-approvals';
|
|
40
42
|
const ONCE_TRIGGER_PROMPT = "List the user's top 3 public and top 3 private GitHub repositories, ranked by recent activity, and provide a brief summary of each. Execute exactly two tool calls: run_skill_script(skill_name='github', script_name='list_repos', kwargs={visibility:'public', sort:'updated', limit:3, format:'json'}) and run_skill_script(skill_name='github', script_name='list_repos', kwargs={visibility:'private', sort:'updated', limit:3, format:'json'}). Do not call list_skills/load_skill/read_skill_resource. Do not retry. If a tool call fails, report failure_reason/error/stderr exactly as returned.";
|
|
@@ -60,6 +62,7 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
60
62
|
const [agentId, setAgentId] = useState(agentName);
|
|
61
63
|
const agentBaseUrl = useExampleAgentRuntimesUrl();
|
|
62
64
|
const chatAuthToken = token === null ? undefined : token;
|
|
65
|
+
void chatAuthToken;
|
|
63
66
|
// Cron state
|
|
64
67
|
const [cronExpr, setCronExpr] = useState(DEFAULT_CRON);
|
|
65
68
|
const [editCron, setEditCron] = useState(DEFAULT_CRON);
|
|
@@ -110,6 +113,8 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
110
113
|
const [activeApproval, setActiveApproval] = useState(null);
|
|
111
114
|
// Approval sidebar messages
|
|
112
115
|
const [approvalSidebarMessages, setApprovalSidebarMessages] = useState([]);
|
|
116
|
+
// The approval agent's live stream, kept open while a tool waits: that
|
|
117
|
+
// agent speaks Vercel AI, whose adapter knows the deferred tool call.
|
|
113
118
|
const approvalStreamRef = useRef(null);
|
|
114
119
|
// Events hooks
|
|
115
120
|
const eventsQuery = useAgentEvents(agentId);
|
|
@@ -221,56 +226,22 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
221
226
|
}), [token]);
|
|
222
227
|
// ── Create agent on demand (no startup on initial page load) ────────────
|
|
223
228
|
const createAgent = useCallback(async () => {
|
|
224
|
-
setRuntimeStatus('launching');
|
|
225
|
-
setIsReady(false);
|
|
226
229
|
setHookError(null);
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
});
|
|
238
|
-
let resolvedAgentId = agentName;
|
|
239
|
-
if (response.ok) {
|
|
240
|
-
const data = await response.json();
|
|
241
|
-
resolvedAgentId = data?.id || agentName;
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
const contentType = response.headers.get('content-type') || '';
|
|
245
|
-
let detail = '';
|
|
246
|
-
if (contentType.includes('application/json')) {
|
|
247
|
-
const data = await response.json().catch(() => null);
|
|
248
|
-
detail =
|
|
249
|
-
(typeof data?.detail === 'string' && data.detail) ||
|
|
250
|
-
(typeof data?.message === 'string' && data.message) ||
|
|
251
|
-
'';
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
detail = await response.text();
|
|
255
|
-
}
|
|
256
|
-
if (response.status === 409 || /already exists/i.test(detail || '')) {
|
|
257
|
-
// Agent already running — reuse it
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
throw new Error(detail || `Failed to create agent: ${response.status}`);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
setAgentId(resolvedAgentId);
|
|
264
|
-
setIsReady(true);
|
|
265
|
-
setRuntimeStatus('ready');
|
|
266
|
-
return true;
|
|
267
|
-
}
|
|
268
|
-
catch (error) {
|
|
269
|
-
setHookError(error instanceof Error ? error.message : 'Agent failed to start');
|
|
230
|
+
// Mounting the Loop is what creates the agent: it builds it from the
|
|
231
|
+
// triggers capacity plugin's blueprint — so the page is "ready" at once,
|
|
232
|
+
// and only waits for the server to have the agent before it fires
|
|
233
|
+
// triggers at it.
|
|
234
|
+
setAgentId(agentName);
|
|
235
|
+
setIsReady(true);
|
|
236
|
+
setRuntimeStatus('ready');
|
|
237
|
+
const found = await waitForAgent(agentBaseUrl, agentName);
|
|
238
|
+
if (!found) {
|
|
239
|
+
setHookError(`The agent '${agentName}' did not appear on ${agentBaseUrl}.`);
|
|
270
240
|
setRuntimeStatus('error');
|
|
271
241
|
return false;
|
|
272
242
|
}
|
|
273
|
-
|
|
243
|
+
return true;
|
|
244
|
+
}, [agentBaseUrl, agentName]);
|
|
274
245
|
const ensureRuntimeReady = useCallback(async () => {
|
|
275
246
|
if (isReady) {
|
|
276
247
|
return true;
|
|
@@ -294,18 +265,30 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
294
265
|
});
|
|
295
266
|
}, []);
|
|
296
267
|
const streamRunMessages = useCallback(async (targetAgentId, prompt, setMessages, setError, options) => {
|
|
297
|
-
|
|
268
|
+
// Two agents, two doors: the trigger agent is the Loop's and speaks
|
|
269
|
+
// AG-UI; the approval agent the page makes itself speaks Vercel AI,
|
|
270
|
+
// whose adapter can carry a deferred tool call through an approval.
|
|
271
|
+
const viaVercel = targetAgentId === approvalAgentName;
|
|
272
|
+
const endpoint = viaVercel
|
|
273
|
+
? `${agentBaseUrl}/api/v1/vercel-ai/${encodeURIComponent(targetAgentId)}`
|
|
274
|
+
: `${agentBaseUrl}/api/v1/ag-ui/${encodeURIComponent(targetAgentId)}/`;
|
|
298
275
|
if (options?.keepAliveForApproval && approvalStreamRef.current) {
|
|
299
276
|
approvalStreamRef.current.unsubscribe();
|
|
300
277
|
approvalStreamRef.current.adapter.disconnect();
|
|
301
278
|
approvalStreamRef.current = null;
|
|
302
279
|
}
|
|
303
|
-
const adapter =
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
280
|
+
const adapter = viaVercel
|
|
281
|
+
? new VercelAIAdapter({
|
|
282
|
+
protocol: 'vercel-ai',
|
|
283
|
+
baseUrl: endpoint,
|
|
284
|
+
agentId: targetAgentId,
|
|
285
|
+
headers: token ? { Authorization: `Bearer ${token}` } : undefined,
|
|
286
|
+
})
|
|
287
|
+
: new AGUIAdapter({
|
|
288
|
+
protocol: 'ag-ui',
|
|
289
|
+
baseUrl: endpoint,
|
|
290
|
+
agentId: targetAgentId,
|
|
291
|
+
});
|
|
309
292
|
let latestAssistantText = null;
|
|
310
293
|
let pendingApproval = false;
|
|
311
294
|
const unsubscribe = adapter.subscribe(event => {
|
|
@@ -363,7 +346,8 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
363
346
|
throw error;
|
|
364
347
|
}
|
|
365
348
|
finally {
|
|
366
|
-
if (options?.keepAliveForApproval
|
|
349
|
+
if (options?.keepAliveForApproval &&
|
|
350
|
+
adapter instanceof VercelAIAdapter) {
|
|
367
351
|
approvalStreamRef.current = { adapter, unsubscribe };
|
|
368
352
|
}
|
|
369
353
|
else {
|
|
@@ -814,7 +798,7 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
814
798
|
if (runtimeStatus === 'error' || hookError) {
|
|
815
799
|
return _jsx(ErrorView, { error: hookError, onLogout: onLogout });
|
|
816
800
|
}
|
|
817
|
-
const triggerRunCurl = `curl -
|
|
801
|
+
const triggerRunCurl = `curl -X POST '${agentBaseUrl}/api/v1/agents/${agentId}/trigger/run' -H 'Content-Type: application/json'${token ? " -H 'Authorization: Bearer <TOKEN>'" : ''} --data '{"source":"once"}'`;
|
|
818
802
|
const isAgentLaunching = isLaunchingOnce || isLaunchingApproval;
|
|
819
803
|
return (_jsx("fieldset", { disabled: isAgentLaunching, style: {
|
|
820
804
|
border: 0,
|
|
@@ -855,7 +839,7 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
855
839
|
setActiveApproval(null);
|
|
856
840
|
}
|
|
857
841
|
}
|
|
858
|
-
}, onClose: () => setActiveApproval(null) }), approvalError && (_jsx(Box, { sx: { px: 3, py: 1 }, children: _jsx(Text, { sx: { color: 'danger.fg', fontSize: 0 }, children: approvalError }) })), _jsxs(Box, { sx: { flex: 1, minHeight: 0, display: 'flex' }, children: [_jsx(Box, { sx: { flex: 1, minWidth: 0 }, children: isReady ? (_jsx(
|
|
842
|
+
}, onClose: () => setActiveApproval(null) }), approvalError && (_jsx(Box, { sx: { px: 3, py: 1 }, children: _jsx(Text, { sx: { color: 'danger.fg', fontSize: 0 }, children: approvalError }) })), _jsxs(Box, { sx: { flex: 1, minHeight: 0, display: 'flex' }, children: [_jsx(Box, { sx: { flex: 1, minWidth: 0 }, children: isReady ? (_jsx(LoopEmbed, { serverUrl: agentBaseUrl, target: "local", showAgentVariants: true, agentId: agentId, editors: false, showHeader: true, plugins: LOOP_PLUGINS_AGENTTRI })) : (_jsx(Box, { sx: {
|
|
859
843
|
height: '100%',
|
|
860
844
|
display: 'flex',
|
|
861
845
|
alignItems: 'center',
|
|
@@ -51,7 +51,7 @@ function useJupyterSandboxStatus(baseUrl, isConfigured, enableCodemode, useJupyt
|
|
|
51
51
|
return undefined;
|
|
52
52
|
}
|
|
53
53
|
// Check if Jupyter variant is selected but not connected
|
|
54
|
-
if (sandbox.variant === 'jupyter' && !sandbox.jupyter_connected) {
|
|
54
|
+
if (sandbox.variant === 'jupyter-server' && !sandbox.jupyter_connected) {
|
|
55
55
|
return {
|
|
56
56
|
message: sandbox.jupyter_error
|
|
57
57
|
? `Jupyter Sandbox Error: ${sandbox.jupyter_error}`
|
|
@@ -301,7 +301,7 @@ githubClientId, kaggleToken, }) => {
|
|
|
301
301
|
const localAgentRuntimesBaseUrl = useExampleAgentRuntimesUrl();
|
|
302
302
|
const cloudCatalogBaseUrl = useMemo(() => {
|
|
303
303
|
const configured = normalizeHttpUrl(configuration?.runtimesUrl);
|
|
304
|
-
const resolvedCloudBaseUrl = normalizeHttpUrl(resolveExampleAgentRuntimesUrl('
|
|
304
|
+
const resolvedCloudBaseUrl = normalizeHttpUrl(resolveExampleAgentRuntimesUrl('datalayer'));
|
|
305
305
|
if (configured && !isLocalhostUrl(configured)) {
|
|
306
306
|
return configured;
|
|
307
307
|
}
|
|
@@ -627,7 +627,7 @@ githubClientId, kaggleToken, }) => {
|
|
|
627
627
|
codemodeConfig?.allow_direct_tool_calls));
|
|
628
628
|
setEnableToolReranker(Boolean(codemodeConfig?.enableToolReranker ??
|
|
629
629
|
codemodeConfig?.enable_tool_reranker));
|
|
630
|
-
setUseJupyterSandbox(spec.sandboxVariant === 'jupyter');
|
|
630
|
+
setUseJupyterSandbox(spec.sandboxVariant === 'jupyter-server');
|
|
631
631
|
}, []);
|
|
632
632
|
const mergedSpecForLaunch = useMemo(() => {
|
|
633
633
|
const normalizedProtocol = transport === 'vercel-ai-jupyter' ? 'vercel-ai' : transport;
|
|
@@ -831,7 +831,7 @@ githubClientId, kaggleToken, }) => {
|
|
|
831
831
|
if (deleteResponse.ok) {
|
|
832
832
|
return await tryCreate();
|
|
833
833
|
}
|
|
834
|
-
throw new Error(`Failed to delete existing agent '${agentName}' before retry: ${deleteResponse.status}
|
|
834
|
+
throw new Error(`Failed to delete existing agent '${agentName}' before retry: ${deleteResponse.status}`, { cause: error });
|
|
835
835
|
}
|
|
836
836
|
throw error;
|
|
837
837
|
}
|
|
@@ -2,5 +2,5 @@ import { ServiceManager } from '@jupyterlab/services';
|
|
|
2
2
|
type IJupyterCellExampleProps = {
|
|
3
3
|
serviceManager?: ServiceManager.IManager;
|
|
4
4
|
};
|
|
5
|
-
export declare const CellExample: (props: IJupyterCellExampleProps) => import("react
|
|
5
|
+
export declare const CellExample: (props: IJupyterCellExampleProps) => import("react").JSX.Element;
|
|
6
6
|
export default CellExample;
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AgentRuntimeChatExample
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* REST API, then renders a full-page Chat interface.
|
|
4
|
+
* The unified Chat component, with whatever agent the selected runtime target
|
|
5
|
+
* can give it.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* Against a runtime that means creating one from the `example-simple` spec
|
|
8
|
+
* over the REST API and talking to its endpoint. In the browser it means the
|
|
9
|
+
* in-page harness: the spec asks for `pydantic-ai`, but a page has no server
|
|
10
|
+
* to turn that loop, so the location decides and the Vercel AI SDK runs it
|
|
11
|
+
* here instead.
|
|
12
|
+
*
|
|
13
|
+
* This example is the plainest case of that split — no sandbox, no tools, no
|
|
14
|
+
* surface, just a conversation — which is why the choice lives in
|
|
15
|
+
* `useExampleAgentProtocol` rather than in the notebook-shaped hook it started
|
|
16
|
+
* out in.
|
|
10
17
|
*
|
|
11
18
|
* Backend: POST /api/v1/agents → /api/v1/ag-ui/{agentId}/
|
|
12
19
|
*/
|
|
@@ -6,12 +6,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
6
6
|
/**
|
|
7
7
|
* AgentRuntimeChatExample
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* REST API, then renders a full-page Chat interface.
|
|
9
|
+
* The unified Chat component, with whatever agent the selected runtime target
|
|
10
|
+
* can give it.
|
|
12
11
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Against a runtime that means creating one from the `example-simple` spec
|
|
13
|
+
* over the REST API and talking to its endpoint. In the browser it means the
|
|
14
|
+
* in-page harness: the spec asks for `pydantic-ai`, but a page has no server
|
|
15
|
+
* to turn that loop, so the location decides and the Vercel AI SDK runs it
|
|
16
|
+
* here instead.
|
|
17
|
+
*
|
|
18
|
+
* This example is the plainest case of that split — no sandbox, no tools, no
|
|
19
|
+
* surface, just a conversation — which is why the choice lives in
|
|
20
|
+
* `useExampleAgentProtocol` rather than in the notebook-shaped hook it started
|
|
21
|
+
* out in.
|
|
15
22
|
*
|
|
16
23
|
* Backend: POST /api/v1/agents → /api/v1/ag-ui/{agentId}/
|
|
17
24
|
*/
|
|
@@ -20,17 +27,19 @@ import { Text, Spinner } from '@primer/react';
|
|
|
20
27
|
import { Box, setupPrimerPortals } from '@datalayer/primer-addons';
|
|
21
28
|
import { ThemedProvider } from './utils/themedProvider';
|
|
22
29
|
import { uniqueAgentId } from './utils/agentId';
|
|
23
|
-
import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
24
30
|
import { useExampleAgentRuntime } from './hooks/useExampleAgentRuntime';
|
|
31
|
+
import { BROWSER_SIGN_IN_REASON, useExampleAgentProtocol, } from './hooks/useExampleAgentProtocol';
|
|
32
|
+
import { runsInBrowser } from '../runtimes/variants';
|
|
33
|
+
import { EXAMPLE_SIMPLE_AGENTSPEC_0_0_1 } from '../specs/agents/agents';
|
|
25
34
|
import { ErrorView } from './components';
|
|
26
35
|
import { Chat } from '../chat';
|
|
27
36
|
setupPrimerPortals();
|
|
28
37
|
const AGENTSPEC_ID = 'example-simple';
|
|
29
38
|
const AGENT_NAME = 'simple';
|
|
39
|
+
const SPEC = EXAMPLE_SIMPLE_AGENTSPEC_0_0_1;
|
|
30
40
|
const AgentRuntimeChatExample = () => {
|
|
31
|
-
const baseUrl = useExampleAgentRuntimesUrl();
|
|
32
41
|
const agentName = useMemo(() => uniqueAgentId(AGENT_NAME), []);
|
|
33
|
-
const { agentId, error, status, isReady } = useExampleAgentRuntime({
|
|
42
|
+
const { agentId, baseUrl, error, status, isReady, variant } = useExampleAgentRuntime({
|
|
34
43
|
exampleId: 'ChatExample',
|
|
35
44
|
agentName,
|
|
36
45
|
specId: AGENTSPEC_ID,
|
|
@@ -39,7 +48,16 @@ const AgentRuntimeChatExample = () => {
|
|
|
39
48
|
agentSpecId: AGENTSPEC_ID,
|
|
40
49
|
},
|
|
41
50
|
});
|
|
42
|
-
const
|
|
51
|
+
const inBrowser = runsInBrowser(variant);
|
|
52
|
+
const { protocol, needsSignIn } = useExampleAgentProtocol({
|
|
53
|
+
inBrowser,
|
|
54
|
+
agentName,
|
|
55
|
+
systemPrompt: SPEC.systemPrompt,
|
|
56
|
+
model: SPEC.model,
|
|
57
|
+
remoteBaseUrl: baseUrl,
|
|
58
|
+
});
|
|
59
|
+
// There is nothing to create in the browser, so nothing to wait for either.
|
|
60
|
+
const isCreating = !inBrowser && !isReady && status !== 'error';
|
|
43
61
|
// Loading state while agent is being created
|
|
44
62
|
if (isCreating) {
|
|
45
63
|
return (_jsx(ThemedProvider, { children: _jsxs(Box, { sx: {
|
|
@@ -52,12 +70,19 @@ const AgentRuntimeChatExample = () => {
|
|
|
52
70
|
bg: 'canvas.default',
|
|
53
71
|
}, children: [_jsx(Spinner, { size: "large" }), _jsxs(Text, { sx: { color: 'fg.muted' }, children: ["Creating agent from ", AGENTSPEC_ID, "..."] })] }) }));
|
|
54
72
|
}
|
|
55
|
-
// Error state
|
|
56
|
-
|
|
57
|
-
|
|
73
|
+
// Error state. In the browser there is no agent id to have — the loop is
|
|
74
|
+
// here — so the only thing that can be missing is the sign-in the inference
|
|
75
|
+
// service requires.
|
|
76
|
+
const failure = inBrowser
|
|
77
|
+
? needsSignIn
|
|
78
|
+
? BROWSER_SIGN_IN_REASON
|
|
79
|
+
: error
|
|
80
|
+
: error || (!agentId ? 'No agent ID returned' : undefined);
|
|
81
|
+
if (failure) {
|
|
82
|
+
return (_jsx(ThemedProvider, { children: _jsx(ErrorView, { error: "Failed to start agent", detail: failure }) }));
|
|
58
83
|
}
|
|
59
84
|
// Agent is ready — render the Chat component
|
|
60
|
-
return (_jsx(Chat, { protocol:
|
|
85
|
+
return (_jsx(Chat, { protocol: inBrowser ? protocol : 'ag-ui', baseUrl: baseUrl, agentId: agentName, title: "Simple Agent", placeholder: "Send a message...", description: "Chat with a simple AI assistant", showHeader: true, kernelIndicatorPlacement: "right", showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, showTokenUsage: true, showInformation: true, autoFocus: true, height: "100vh", runtimeId: agentName, historyEndpoint: inBrowser ? undefined : `${baseUrl}/api/v1/history`, suggestions: [
|
|
61
86
|
{
|
|
62
87
|
title: 'Hello',
|
|
63
88
|
message: 'Hello, what can you do?',
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @module examples/CopilotKitLexicalExample
|
|
13
13
|
*/
|
|
14
|
+
import type { JSX } from 'react';
|
|
14
15
|
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
15
16
|
import type { ServiceManager } from '@jupyterlab/services';
|
|
16
17
|
import '@datalayer/jupyter-lexical/style/index.css';
|
|
@@ -1,47 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
-
* Distributed under the terms of the Modified BSD License.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* CopilotKit Lexical Example with CopilotKit Integration.
|
|
8
|
-
*
|
|
9
|
-
* To run this example, create a .env file in the core directory with:
|
|
10
|
-
* - VITE_DATALAYER_API_KEY: Get from https://datalayer.ai/settings/iam/tokens
|
|
11
|
-
* - VITE_COPILOT_KIT_API_KEY: Get from https://cloud.copilotkit.ai/dashboard
|
|
12
|
-
*
|
|
13
|
-
* You also will need to connect copilotkit to some sort of LLM Add LLM Provider API Key.
|
|
14
|
-
*
|
|
15
|
-
* https://docs.copilotkit.ai/reference/hooks/useFrontendTool
|
|
16
|
-
*
|
|
17
|
-
* @module examples/CopilotKitLexicalExample
|
|
18
|
-
*/
|
|
19
2
|
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
20
3
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
21
4
|
import { $getRoot, $createParagraphNode } from 'lexical';
|
|
22
|
-
import {
|
|
23
|
-
import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
|
|
5
|
+
import { LexicalExtensionComposer } from '@lexical/react/LexicalExtensionComposer';
|
|
24
6
|
import { ContentEditable } from '@lexical/react/LexicalContentEditable';
|
|
25
|
-
import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
|
|
26
7
|
import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
|
|
27
8
|
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
9
|
import { CopilotKit, useFrontendTool } from '@copilotkit/react-core';
|
|
37
10
|
import { CopilotSidebar } from '@copilotkit/react-ui';
|
|
38
11
|
import { Box } from '@datalayer/primer-addons';
|
|
39
12
|
import { useJupyter } from '@datalayer/jupyter-react';
|
|
40
13
|
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
41
|
-
import { ComponentPickerMenuPlugin,
|
|
14
|
+
import { ComponentPickerMenuPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, TableCellResizerPlugin, } from '@datalayer/jupyter-lexical';
|
|
42
15
|
import { useLexicalToolActions } from '../tools/adapters/copilotkit/lexicalHooks';
|
|
43
16
|
import { ActionRegistrar } from '../tools/adapters/copilotkit/CopilotKitToolAdapter';
|
|
44
|
-
import {
|
|
17
|
+
import { editorExtension } from './lexical/editorConfig';
|
|
45
18
|
import '@datalayer/jupyter-lexical/style/index.css';
|
|
46
19
|
import '@copilotkit/react-ui/styles.css';
|
|
47
20
|
import './lexical/lexical-theme.css';
|
|
@@ -86,16 +59,6 @@ function LoadContentPlugin({ content }) {
|
|
|
86
59
|
}, [content, editor]);
|
|
87
60
|
return null;
|
|
88
61
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Lexical plugin for Simple code syntax highlighting.
|
|
91
|
-
*/
|
|
92
|
-
function CodeHighlightPlugin() {
|
|
93
|
-
const [editor] = useLexicalComposerContext();
|
|
94
|
-
useEffect(() => {
|
|
95
|
-
return registerCodeHighlighting(editor);
|
|
96
|
-
}, [editor]);
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
62
|
/**
|
|
100
63
|
* Wrapper component for kernel-dependent Simple plugins.
|
|
101
64
|
*/
|
|
@@ -137,7 +100,7 @@ const LexicalUI = React.memo(function LexicalUI({ content = INITIAL_CONTENT, ser
|
|
|
137
100
|
padding: 3,
|
|
138
101
|
backgroundColor: 'canvas.default',
|
|
139
102
|
minHeight: '600px',
|
|
140
|
-
}, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsx(
|
|
103
|
+
}, children: _jsx(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: _jsx(LexicalExtensionComposer, { extension: editorExtension, contentEditable: null, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(TableCellResizerPlugin, {}), _jsx(LoadContentPlugin, { content: content }), _jsx(ThemedJupyterProvider, { children: _jsx(SimpleKernelPluginsInner, {}) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] }))] }) }) }) })] }) }));
|
|
141
104
|
});
|
|
142
105
|
function LexicalWithTools({ content, serviceManager, }) {
|
|
143
106
|
// Get all actions for this lexical document
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CopilotKit Notebook Example with CopilotKit Integration
|
|
3
|
+
*
|
|
4
|
+
* To run this example, create a .env file in the core directory with:
|
|
5
|
+
* - VITE_DATALAYER_API_KEY: Get from https://datalayer.ai/settings/iam/tokens
|
|
6
|
+
* - VITE_COPILOT_KIT_API_KEY: Get from https://cloud.copilotkit.ai/dashboard
|
|
7
|
+
*
|
|
8
|
+
* You also will need to connect copilotkit to some sort of LLM Add LLM Provider API Key
|
|
9
|
+
*/
|
|
10
|
+
import type { JSX } from 'react';
|
|
1
11
|
import { ServiceManager } from '@jupyterlab/services';
|
|
2
12
|
import '@copilotkit/react-ui/styles.css';
|
|
3
13
|
/**
|
|
@@ -1,17 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
-
* Distributed under the terms of the Modified BSD License.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* CopilotKit Notebook Example with CopilotKit Integration
|
|
8
|
-
*
|
|
9
|
-
* To run this example, create a .env file in the core directory with:
|
|
10
|
-
* - VITE_DATALAYER_API_KEY: Get from https://datalayer.ai/settings/iam/tokens
|
|
11
|
-
* - VITE_COPILOT_KIT_API_KEY: Get from https://cloud.copilotkit.ai/dashboard
|
|
12
|
-
*
|
|
13
|
-
* You also will need to connect copilotkit to some sort of LLM Add LLM Provider API Key
|
|
14
|
-
*/
|
|
15
2
|
import React from 'react';
|
|
16
3
|
import { Box } from '@datalayer/primer-addons';
|
|
17
4
|
import { Notebook } from '@datalayer/jupyter-react';
|
|
@@ -25,6 +12,7 @@ import { useNotebookToolActions } from '../tools/adapters/copilotkit/notebookHoo
|
|
|
25
12
|
import { ActionRegistrar } from '../tools/adapters/copilotkit/CopilotKitToolAdapter';
|
|
26
13
|
// Import Matplotlib notebook
|
|
27
14
|
import MatplotlibNotebook from './utils/notebooks/Matplotlib.ipynb.json';
|
|
15
|
+
import { ExampleNotebookToolbar } from './utils/notebookToolbarItems';
|
|
28
16
|
// Fixed notebook ID
|
|
29
17
|
const NOTEBOOK_ID = 'agui-notebook-example';
|
|
30
18
|
// Use the imported Matplotlib notebook
|
|
@@ -50,7 +38,7 @@ const NotebookUI = React.memo(function NotebookUI({ serviceManager, }) {
|
|
|
50
38
|
borderRadius: 8,
|
|
51
39
|
padding: 24,
|
|
52
40
|
backgroundColor: 'var(--bgColor-default)',
|
|
53
|
-
}, children: serviceManager ? (_jsx(ThemedJupyterProvider, { children: _jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, serviceManager: serviceManager, height: "600px", cellSidebarMargin: 120, startDefaultKernel: true }) })) : (_jsx(Box, { style: { padding: 24 }, children: _jsx("p", { children: "Loading service manager..." }) })) })] }) }));
|
|
41
|
+
}, children: serviceManager ? (_jsx(ThemedJupyterProvider, { children: _jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, Toolbar: ExampleNotebookToolbar, serviceManager: serviceManager, height: "600px", cellSidebarMargin: 120, startDefaultKernel: true }) })) : (_jsx(Box, { style: { padding: 24 }, children: _jsx("p", { children: "Loading service manager..." }) })) })] }) }));
|
|
54
42
|
});
|
|
55
43
|
/**
|
|
56
44
|
* Component to register actions with CopilotKit.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A deck beside the chat, written by an agent.
|
|
3
|
+
*
|
|
4
|
+
* What this shows is a *plugin* joining a Loop: `@datalayer/decks` is a
|
|
5
|
+
* Reactor plugin with a Python half of its own, and here it is mounted into
|
|
6
|
+
* an agent workspace — its list in the sidebar, its view as an editor beside
|
|
7
|
+
* the conversation, its commands in the palette and in a menu on the
|
|
8
|
+
* composer, and its tools in the agent's hands. `worker-decks` writes a deck
|
|
9
|
+
* as data, saves it, opens it, and steps through it while you talk.
|
|
10
|
+
*
|
|
11
|
+
* Everything runs in the browser: the agent on the Vercel AI harness, the
|
|
12
|
+
* decks in the page's catalog. Point the plugin at a `datalayer-decks`
|
|
13
|
+
* server (`backendUrl`) and the same decks are saved there.
|
|
14
|
+
*
|
|
15
|
+
* The sidebar is the plugins panel — switch the decks plugin off and the
|
|
16
|
+
* Deck view, the menu and the tools all leave together — with the plugin
|
|
17
|
+
* graph a click away, as in the reactor's music example.
|
|
18
|
+
*/
|
|
19
|
+
import React from 'react';
|
|
20
|
+
declare const DecksAgent: React.FC;
|
|
21
|
+
export default DecksAgent;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box } from '@datalayer/primer-addons';
|
|
3
|
+
import { ThemedProvider } from './utils/themedProvider';
|
|
4
|
+
import { registerDecks } from '@datalayer/decks';
|
|
5
|
+
import { exampleDecks } from '@datalayer/decks/examples';
|
|
6
|
+
import { LoopEmbed } from '../loop';
|
|
7
|
+
import { DeckViewPlugin, LoopDecksPlugin } from '../loop/plugins/decks';
|
|
8
|
+
// The package's example decks, so the catalog has something to open and the
|
|
9
|
+
// agent's suggestions point at decks that exist. Once, at module load.
|
|
10
|
+
registerDecks(exampleDecks);
|
|
11
|
+
// Module-level, so the embed builds its reactor once rather than on every
|
|
12
|
+
// render of this component.
|
|
13
|
+
const DECK_PLUGINS = [LoopDecksPlugin, DeckViewPlugin];
|
|
14
|
+
const DecksAgent = () => (_jsx(ThemedProvider, { children: _jsx(Box, { sx: { height: '100vh', minHeight: 0 }, children: _jsx(LoopEmbed, { target: "browser", agentId: "worker-decks",
|
|
15
|
+
/* The deck open beside the chat from the first frame. */
|
|
16
|
+
defaultEditor: "deck",
|
|
17
|
+
/* The header carries the editor choice — deck, notebook, document, or
|
|
18
|
+
the conversation alone. */
|
|
19
|
+
showHeader: true, editorSelector: true, commandPalette: true,
|
|
20
|
+
/* The plugins panel in the sidebar, and the plugin graph behind its
|
|
21
|
+
button. */
|
|
22
|
+
pluginsPanel: true, graph: true, agentSummary: false, plugins: DECK_PLUGINS }) }) }));
|
|
23
|
+
export default DecksAgent;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A document as a page, with an agent writing in it.
|
|
3
|
+
*
|
|
4
|
+
* The same page layout as `NotebookPageAgent`, opened on the document
|
|
5
|
+
* editor instead of the notebook: a sheet at reading width, the composer
|
|
6
|
+
* docked above it at that same width, the conversation in a side panel. Ask for a
|
|
7
|
+
* paragraph, a heading, a code block that runs — the agent writes it into
|
|
8
|
+
* the document on the page, with the document's own tools, and the result
|
|
9
|
+
* is a document a reader can keep editing by hand.
|
|
10
|
+
*
|
|
11
|
+
* Reactor plugins only: `pageLayout` mounts the layout plugin, the Loop
|
|
12
|
+
* Shell's agent drives the document tools, and the loop turns in the
|
|
13
|
+
* browser.
|
|
14
|
+
*
|
|
15
|
+
* @module examples/DocumentPageAgent
|
|
16
|
+
*/
|
|
17
|
+
import React from 'react';
|
|
18
|
+
declare const DocumentPageAgent: React.FC;
|
|
19
|
+
export default DocumentPageAgent;
|
|
@@ -0,0 +1,15 @@
|
|
|
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 DocumentPageAgent = () => (_jsx(ThemedProvider, { children: _jsx(Box, { sx: { height: '100vh', minHeight: 0 }, children: _jsx(LoopEmbed, { target: "browser",
|
|
6
|
+
/* The Loop Shell's agent: it drives the document tools — insert a
|
|
7
|
+
block, run a code block, read the document — as readily as the
|
|
8
|
+
notebook's, and its openers work on either. */
|
|
9
|
+
agentId: "loop-shell", localAgentSpec: "loop-shell", teamId: "",
|
|
10
|
+
/* The document, open on the page. */
|
|
11
|
+
defaultEditor: "document", pageLayout: true,
|
|
12
|
+
/* The composer as a draggable card over the top of the page rather
|
|
13
|
+
than the docked band. */
|
|
14
|
+
pageLayoutPrompt: "floating", showHeader: true, editorSelector: true, commandPalette: true, agentSummary: false }) }) }));
|
|
15
|
+
export default DocumentPageAgent;
|
|
@@ -23,9 +23,9 @@ import './lexical/lexical-theme.css';
|
|
|
23
23
|
interface ChatLexicalExampleProps {
|
|
24
24
|
serviceManager?: ServiceManager.IManager;
|
|
25
25
|
}
|
|
26
|
-
export declare function ChatLexicalExampleInner({ serviceManager, }: ChatLexicalExampleProps): import("react
|
|
26
|
+
export declare function ChatLexicalExampleInner({ serviceManager, }: ChatLexicalExampleProps): import("react").JSX.Element;
|
|
27
27
|
/**
|
|
28
28
|
* Main example component with Simple wrapper
|
|
29
29
|
*/
|
|
30
|
-
export declare function AgentRuntimePopupLexicalExample(): import("react
|
|
30
|
+
export declare function AgentRuntimePopupLexicalExample(): import("react").JSX.Element;
|
|
31
31
|
export default AgentRuntimePopupLexicalExample;
|