@datalayer/agent-runtimes 1.0.2 → 1.0.4
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/README.md +14 -132
- package/lib/Agent.js +2 -2
- package/lib/AgentLexical.d.ts +1 -12
- package/lib/AgentLexical.js +3 -14
- package/lib/AgentNotebook.js +3 -3
- package/lib/App.js +2 -2
- package/lib/{components/chat/components → agents}/AgentDetails.d.ts +13 -2
- package/lib/{components/chat/components → agents}/AgentDetails.js +6 -12
- package/lib/api/agents.d.ts +47 -0
- package/lib/api/agents.js +106 -0
- package/lib/api/context.d.ts +17 -0
- package/lib/api/context.js +45 -0
- package/lib/api/evals.d.ts +27 -0
- package/lib/api/evals.js +63 -0
- package/lib/api/events.d.ts +17 -0
- package/lib/api/events.js +93 -0
- package/lib/{components/chat → api}/handler.js +1 -1
- package/lib/api/index.d.ts +15 -0
- package/lib/api/index.js +20 -0
- package/lib/api/notifications.d.ts +39 -0
- package/lib/api/notifications.js +103 -0
- package/lib/api/output.d.ts +28 -0
- package/lib/api/output.js +64 -0
- package/lib/api/tool-approvals.d.ts +62 -0
- package/lib/api/tool-approvals.js +145 -0
- package/lib/{components/chat/components → chat}/Chat.d.ts +26 -15
- package/lib/{components/chat/components → chat}/Chat.js +16 -16
- package/lib/{components/chat/components → chat}/ChatFloating.d.ts +17 -9
- package/lib/{components/chat/components → chat}/ChatFloating.js +17 -9
- package/lib/{components/chat/components → chat}/ChatInline.d.ts +2 -2
- package/lib/{components/chat/components → chat}/ChatInline.js +8 -6
- package/lib/{components/chat/components → chat}/ChatPopupStandalone.d.ts +3 -4
- package/lib/{components/chat/components → chat}/ChatPopupStandalone.js +6 -6
- package/lib/{components/chat/components → chat}/ChatSidebar.d.ts +14 -5
- package/lib/{components/chat/components → chat}/ChatSidebar.js +48 -26
- package/lib/{components/chat/components → chat}/ChatStandalone.d.ts +3 -4
- package/lib/{components/chat/components → chat}/ChatStandalone.js +5 -5
- package/lib/chat/base/ChatBase.d.ts +6 -0
- package/lib/chat/base/ChatBase.js +1338 -0
- package/lib/chat/display/EmptyState.d.ts +27 -0
- package/lib/chat/display/EmptyState.js +41 -0
- package/lib/{components/chat/components/elements → chat/display}/FloatingBrandButton.d.ts +1 -1
- package/lib/{components/chat/components/elements → chat/display}/FloatingBrandButton.js +1 -1
- package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.d.ts +1 -1
- package/lib/{components/chat/components/elements → chat/header}/ChatHeader.d.ts +1 -4
- package/lib/{components/chat/components/elements → chat/header}/ChatHeader.js +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +38 -0
- package/lib/chat/header/ChatHeaderBase.js +83 -0
- package/lib/chat/index.d.ts +66 -0
- package/lib/chat/index.js +74 -0
- package/lib/chat/indicators/McpStatusIndicator.d.ts +9 -0
- package/lib/chat/indicators/McpStatusIndicator.js +128 -0
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +10 -0
- package/lib/chat/indicators/SandboxStatusIndicator.js +175 -0
- package/lib/chat/indicators/index.d.ts +17 -0
- package/lib/chat/indicators/index.js +19 -0
- package/lib/chat/messages/ChatMessageList.d.ts +49 -0
- package/lib/chat/messages/ChatMessageList.js +332 -0
- package/lib/{components/chat/components/elements → chat/messages}/ChatMessages.d.ts +2 -2
- package/lib/{components/chat/components/elements → chat/messages}/ChatMessages.js +6 -4
- package/lib/{components/chat/components → chat}/parts/DynamicToolPart.d.ts +1 -1
- package/lib/{components/chat/components/elements → chat/parts}/MessagePart.d.ts +1 -1
- package/lib/{components/chat/components/elements → chat/parts}/MessagePart.js +4 -4
- package/lib/{components/chat/components → chat}/parts/ReasoningPart.js +1 -1
- package/lib/{components/chat/components → chat}/parts/TextPart.d.ts +1 -1
- package/lib/{components/chat/components → chat}/parts/ToolPart.js +1 -1
- package/lib/{components/chat/components → chat}/parts/index.d.ts +2 -1
- package/lib/{components/chat/components → chat}/parts/index.js +2 -1
- package/lib/chat/prompt/InputFooter.d.ts +43 -0
- package/lib/chat/prompt/InputFooter.js +135 -0
- package/lib/chat/prompt/InputPrompt.d.ts +60 -0
- package/lib/chat/prompt/InputPrompt.js +83 -0
- package/lib/chat/prompt/InputPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/InputPromptFooter.js +15 -0
- package/lib/chat/prompt/InputPromptHeader.d.ts +15 -0
- package/lib/chat/prompt/InputPromptHeader.js +15 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +16 -0
- package/lib/chat/prompt/InputPromptLexical.js +122 -0
- package/lib/chat/prompt/InputPromptText.d.ts +24 -0
- package/lib/chat/prompt/InputPromptText.js +66 -0
- package/lib/chat/prompt/index.d.ts +11 -0
- package/lib/chat/prompt/index.js +15 -0
- package/lib/{components/chat/components → chat}/styles/streamdownStyles.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalBanner.d.ts +31 -0
- package/lib/chat/tools/ToolApprovalBanner.js +62 -0
- package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.js +1 -1
- package/lib/{components/chat/components/display → chat/tools}/ToolCallDisplay.d.ts +13 -4
- package/lib/{components/chat/components/display → chat/tools}/ToolCallDisplay.js +18 -8
- package/lib/chat/tools/index.d.ts +8 -0
- package/lib/{components/chat/components/display → chat/tools}/index.js +3 -1
- package/lib/chat/usage/TokenUsageBar.d.ts +8 -0
- package/lib/chat/usage/TokenUsageBar.js +213 -0
- package/lib/client/AgentsMixin.d.ts +216 -0
- package/lib/client/AgentsMixin.js +388 -0
- package/lib/client/index.d.ts +6 -0
- package/lib/client/index.js +10 -0
- package/lib/components/NotificationEventCard.d.ts +8 -0
- package/lib/components/NotificationEventCard.js +177 -0
- package/lib/components/OutputCard.d.ts +8 -0
- package/lib/components/OutputCard.js +94 -0
- package/lib/components/ToolApprovalCard.d.ts +33 -0
- package/lib/components/ToolApprovalCard.js +78 -0
- package/lib/components/index.d.ts +3 -7
- package/lib/components/index.js +3 -4
- package/lib/{components → config}/AgentConfiguration.d.ts +43 -21
- package/lib/{components → config}/AgentConfiguration.js +48 -28
- package/lib/config/index.d.ts +2 -0
- package/lib/config/index.js +1 -0
- package/lib/{components/chat/components → context}/ContextInspector.js +38 -8
- package/lib/{components/chat/components → context}/ContextPanel.js +27 -6
- package/lib/context/CostTracker.d.ts +37 -0
- package/lib/context/CostTracker.js +124 -0
- package/lib/context/TokenUsageChart.d.ts +10 -0
- package/lib/context/TokenUsageChart.js +288 -0
- package/lib/examples/A2UiComponentGalleryExample.d.ts +20 -0
- package/lib/examples/A2UiComponentGalleryExample.js +568 -0
- package/lib/examples/A2UiContactCardExample.d.ts +21 -0
- package/lib/examples/A2UiContactCardExample.js +432 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +11 -3
- package/lib/examples/A2UiRestaurantExample.js +63 -98
- package/lib/examples/A2UiViewerExample.d.ts +21 -0
- package/lib/examples/A2UiViewerExample.js +563 -0
- package/lib/examples/AgUiAgenticExample.js +3 -3
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -3
- package/lib/examples/{AgUiHaikuGenUIExample.d.ts → AgUiHaikuGenUiExample.d.ts} +4 -4
- package/lib/examples/{AgUiHaikuGenUIExample.js → AgUiHaikuGenUiExample.js} +7 -7
- package/lib/examples/AgUiHumanInTheLoopExample.js +3 -3
- package/lib/examples/AgUiSharedStateExample.js +3 -3
- package/lib/examples/{AgUiToolsBasedGenUIExample.d.ts → AgUiToolsBasedGenUiExample.d.ts} +4 -4
- package/lib/examples/{AgUiToolsBasedGenUIExample.js → AgUiToolsBasedGenUiExample.js} +7 -7
- package/lib/examples/AgentCheckpointsExample.d.ts +19 -0
- package/lib/examples/AgentCheckpointsExample.js +500 -0
- package/lib/examples/AgentCodemodeExample.d.ts +14 -0
- package/lib/examples/AgentCodemodeExample.js +256 -0
- package/lib/examples/AgentEvalsExample.d.ts +14 -0
- package/lib/examples/AgentEvalsExample.js +210 -0
- package/lib/examples/AgentGuardrailsExample.d.ts +14 -0
- package/lib/examples/AgentGuardrailsExample.js +212 -0
- package/lib/examples/AgentMemoryExample.d.ts +14 -0
- package/lib/examples/AgentMemoryExample.js +228 -0
- package/lib/examples/AgentMonitoringExample.d.ts +13 -0
- package/lib/examples/AgentMonitoringExample.js +305 -0
- package/lib/examples/AgentNotificationsExample.d.ts +14 -0
- package/lib/examples/AgentNotificationsExample.js +267 -0
- package/lib/examples/AgentOtelExample.d.ts +25 -0
- package/lib/examples/AgentOtelExample.js +281 -0
- package/lib/examples/AgentOutputsExample.d.ts +14 -0
- package/lib/examples/AgentOutputsExample.js +205 -0
- package/lib/examples/AgentSandboxExample.d.ts +17 -0
- package/lib/examples/AgentSandboxExample.js +490 -0
- package/lib/examples/AgentSkillsExample.d.ts +3 -0
- package/lib/examples/AgentSkillsExample.js +284 -0
- package/lib/examples/AgentToolApprovalsExample.d.ts +3 -0
- package/lib/examples/AgentToolApprovalsExample.js +737 -0
- package/lib/examples/AgentTriggersExample.d.ts +14 -0
- package/lib/examples/AgentTriggersExample.js +1090 -0
- package/lib/examples/{AgentRuntimeFormExample.d.ts → AgentspecExample.d.ts} +3 -4
- package/lib/examples/{AgentRuntimeFormExample.js → AgentspecExample.js} +92 -34
- package/lib/examples/{JupyterCellExample.js → CellSimpleExample.js} +1 -1
- package/lib/examples/{AgentRuntimeCustomExample.js → ChatCustomExample.js} +3 -3
- package/lib/examples/{AgentRuntimeChatExample.js → ChatExample.js} +6 -14
- package/lib/examples/{AgentRuntimeStandaloneExample.js → ChatStandaloneExample.js} +2 -2
- package/lib/examples/CopilotKitLexicalExample.d.ts +3 -14
- package/lib/examples/CopilotKitLexicalExample.js +4 -15
- package/lib/examples/CopilotKitNotebookExample.js +4 -6
- package/lib/examples/DatalayerNotebookExample.js +2 -2
- package/lib/examples/{AgentRuntimeLexical2Example.d.ts → Lexical2Example.d.ts} +2 -13
- package/lib/examples/{AgentRuntimeLexical2Example.js → Lexical2Example.js} +8 -17
- package/lib/examples/{AgentRuntimeLexicalExample.d.ts → LexicalExample.d.ts} +1 -12
- package/lib/examples/{AgentRuntimeLexicalExample.js → LexicalExample.js} +28 -27
- package/lib/examples/{AgentRuntimeLexicalSidebarExample.d.ts → LexicalSidebarExample.d.ts} +2 -13
- package/lib/examples/{AgentRuntimeLexicalSidebarExample.js → LexicalSidebarExample.js} +6 -18
- package/lib/examples/{AgentRuntimeNotebookExample.js → NotebookExample.js} +14 -10
- package/lib/examples/{AgentRuntimeNotebookSidebarExample.js → NotebookSidebarExample.js} +5 -8
- package/lib/examples/{JupyterNotebookExample.js → NotebookSimpleExample.js} +2 -2
- package/lib/examples/ag-ui/weather/InlineWeatherCard.js +1 -1
- package/lib/examples/components/ErrorView.d.ts +14 -0
- package/lib/examples/components/ErrorView.js +20 -0
- package/lib/examples/components/ExampleWrapper.d.ts +12 -0
- package/lib/examples/components/ExampleWrapper.js +16 -0
- package/lib/examples/components/Header.d.ts +2 -2
- package/lib/examples/components/HeaderControls.js +1 -1
- package/lib/examples/components/LexicalEditor.d.ts +1 -12
- package/lib/examples/components/LexicalEditor.js +1 -12
- package/lib/examples/components/MainContent.d.ts +4 -11
- package/lib/examples/components/MainContent.js +6 -60
- package/lib/examples/components/index.d.ts +3 -0
- package/lib/examples/components/index.js +2 -0
- package/lib/examples/example-selector.d.ts +1 -1
- package/lib/examples/example-selector.js +35 -22
- package/lib/examples/index.d.ts +26 -13
- package/lib/examples/index.js +26 -12
- package/lib/examples/main.d.ts +7 -0
- package/lib/examples/main.js +21 -43
- package/lib/examples/utils/examplesStore.d.ts +4 -0
- package/lib/examples/{stores → utils}/examplesStore.js +1 -1
- package/lib/examples/utils/notebooks/Empty.ipynb.json +33 -0
- package/lib/examples/utils/notebooks/NotebookExample2.ipynb.json +48 -0
- package/lib/examples/utils/themeStore.d.ts +8 -0
- package/lib/examples/utils/themeStore.js +14 -0
- package/lib/extensions/A2UIExtension.d.ts +65 -0
- package/lib/extensions/A2UIExtension.js +202 -0
- package/lib/{components/chat/extensions → extensions}/ExtensionRegistry.d.ts +2 -3
- package/lib/{components/chat/extensions → extensions}/ExtensionRegistry.js +0 -2
- package/lib/{components/chat/extensions → extensions}/MCPUIExtension.d.ts +2 -2
- package/lib/{components/chat/extensions → extensions}/MCPUIExtension.js +1 -1
- package/lib/extensions/index.d.ts +9 -0
- package/lib/{components/chat/extensions → extensions}/index.js +2 -2
- package/lib/hooks/index.d.ts +33 -16
- package/lib/hooks/index.js +33 -16
- package/lib/hooks/useAIAgentsWebSocket.d.ts +29 -0
- package/lib/hooks/useAIAgentsWebSocket.js +136 -0
- package/lib/hooks/{useAGUI.d.ts → useAgUi.d.ts} +2 -2
- package/lib/hooks/{useAGUI.js → useAgUi.js} +2 -2
- package/lib/hooks/useAgents.d.ts +150 -11
- package/lib/hooks/useAgents.js +623 -61
- package/lib/hooks/{useAgentStore.d.ts → useAgentsCatalog.d.ts} +3 -8
- package/lib/hooks/{useAgentStore.js → useAgentsCatalog.js} +9 -3
- package/lib/hooks/useAgentsRegistry.d.ts +10 -0
- package/lib/hooks/useAgentsRegistry.js +20 -0
- package/lib/hooks/useAgentsService.d.ts +22 -0
- package/lib/hooks/useAgentsService.js +146 -0
- package/lib/hooks/useChat.d.ts +2 -2
- package/lib/hooks/useChat.js +14 -8
- package/lib/hooks/useCheckpoints.d.ts +176 -0
- package/lib/hooks/useCheckpoints.js +466 -0
- package/lib/hooks/useConfig.d.ts +11 -0
- package/lib/hooks/useConfig.js +46 -0
- package/lib/hooks/useContextSnapshot.d.ts +11 -0
- package/lib/hooks/useContextSnapshot.js +44 -0
- package/lib/hooks/useMonitoring.d.ts +24 -0
- package/lib/hooks/useMonitoring.js +111 -0
- package/lib/hooks/useNotifications.d.ts +67 -0
- package/lib/hooks/useNotifications.js +208 -0
- package/lib/hooks/useSandbox.d.ts +12 -0
- package/lib/hooks/useSandbox.js +49 -0
- package/lib/hooks/useSkills.d.ts +13 -0
- package/lib/hooks/useSkills.js +46 -0
- package/lib/hooks/useToolApprovals.d.ts +45 -0
- package/lib/hooks/useToolApprovals.js +126 -0
- package/lib/hooks/useTools.d.ts +4 -4
- package/lib/hooks/useTools.js +2 -2
- package/lib/hooks/{useVercelChat.d.ts → useVercelAI.d.ts} +3 -3
- package/lib/hooks/{useVercelChat.js → useVercelAI.js} +2 -2
- package/lib/{components/chat/components → identity}/AgentIdentity.d.ts +1 -1
- package/lib/{components/chat/components → identity}/AgentIdentity.js +4 -3
- package/lib/identity/index.d.ts +1 -0
- package/lib/identity/index.js +2 -0
- package/lib/index.d.ts +4 -3
- package/lib/index.js +3 -2
- package/lib/{components/chat/inference → inference}/BaseInferenceProvider.d.ts +3 -3
- package/lib/{components/chat/inference → inference}/DatalayerInferenceProvider.d.ts +3 -3
- package/lib/{components/chat/inference → inference}/DatalayerInferenceProvider.js +1 -1
- package/lib/{components/chat/inference → inference}/SelfHostedInferenceProvider.d.ts +2 -2
- package/lib/{components/chat/inference → inference}/SelfHostedInferenceProvider.js +1 -1
- package/lib/{components/chat/inference → inference}/index.d.ts +1 -1
- package/lib/{components/chat/inference → inference}/index.js +1 -1
- package/lib/lexical/ChatInlinePlugin.d.ts +1 -1
- package/lib/lexical/ChatInlinePlugin.js +1 -1
- package/lib/{components → mcp}/McpServerManager.d.ts +1 -2
- package/lib/mcp/index.d.ts +1 -0
- package/lib/{specs/agents/codeai → mcp}/index.js +1 -1
- package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.d.ts +3 -3
- package/lib/{components/chat/middleware → middleware}/index.d.ts +1 -1
- package/lib/{components/chat/middleware → middleware}/index.js +1 -1
- package/lib/{components/chat/protocols → protocols}/A2AAdapter.d.ts +6 -6
- package/lib/{components/chat/protocols → protocols}/A2AAdapter.js +3 -3
- package/lib/{components/chat/protocols → protocols}/ACPAdapter.d.ts +6 -6
- package/lib/{components/chat/protocols → protocols}/ACPAdapter.js +4 -4
- package/lib/{components/chat/protocols → protocols}/AGUIAdapter.d.ts +14 -6
- package/lib/{components/chat/protocols → protocols}/AGUIAdapter.js +72 -10
- package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.d.ts +6 -6
- package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.js +1 -1
- package/lib/{components/chat/protocols → protocols}/VercelAIAdapter.d.ts +33 -7
- package/lib/protocols/VercelAIAdapter.js +748 -0
- package/lib/{components/chat/protocols → protocols}/index.d.ts +1 -2
- package/lib/{components/chat/protocols → protocols}/index.js +1 -1
- package/lib/shims/json5.d.ts +4 -0
- package/lib/shims/json5.js +8 -0
- package/lib/specs/agents/agents.d.ts +54 -0
- package/lib/specs/agents/agents.js +1489 -0
- package/lib/specs/agents/index.js +15 -12
- package/lib/specs/envvars.d.ts +11 -19
- package/lib/specs/envvars.js +52 -38
- package/lib/specs/evals.d.ts +20 -0
- package/lib/specs/evals.js +133 -0
- package/lib/specs/events.d.ts +26 -0
- package/lib/specs/events.js +140 -0
- package/lib/specs/frontendTools.d.ts +14 -0
- package/lib/specs/frontendTools.js +53 -0
- package/lib/specs/guardrails.d.ts +29 -0
- package/lib/specs/guardrails.js +310 -0
- package/lib/specs/index.d.ts +15 -2
- package/lib/specs/index.js +15 -2
- package/lib/specs/mcpServers.d.ts +13 -11
- package/lib/specs/mcpServers.js +75 -50
- package/lib/specs/memory.d.ts +36 -0
- package/lib/specs/memory.js +112 -0
- package/lib/specs/models.d.ts +21 -34
- package/lib/specs/models.js +66 -66
- package/lib/specs/notifications.d.ts +17 -0
- package/lib/specs/notifications.js +103 -0
- package/lib/specs/outputs.d.ts +19 -0
- package/lib/specs/outputs.js +106 -0
- package/lib/specs/skills.d.ts +7 -16
- package/lib/specs/skills.js +95 -18
- package/lib/specs/teams/index.d.ts +17 -0
- package/lib/specs/teams/index.js +35 -0
- package/lib/specs/teams/teams.d.ts +27 -0
- package/lib/specs/teams/teams.js +1000 -0
- package/lib/specs/tools.d.ts +15 -0
- package/lib/specs/tools.js +86 -0
- package/lib/specs/triggers.d.ts +15 -0
- package/lib/specs/triggers.js +67 -0
- package/lib/stores/agentsStore.d.ts +123 -0
- package/lib/stores/agentsStore.js +270 -0
- package/lib/{components/chat/store → stores}/chatStore.d.ts +3 -2
- package/lib/{components/chat/store → stores}/chatStore.js +2 -2
- package/lib/{components/chat/store → stores}/conversationStore.d.ts +1 -1
- package/lib/{components/chat/store → stores}/conversationStore.js +1 -1
- package/lib/{components/chat/store → stores}/index.d.ts +3 -2
- package/lib/{components/chat/store → stores}/index.js +3 -2
- package/lib/{components/chat/tools → tools}/ToolExecutor.d.ts +2 -2
- package/lib/{components/chat/tools → tools}/ToolExecutor.js +1 -1
- package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.d.ts +1 -1
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +14 -10
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +31 -21
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +1 -1
- package/lib/tools/index.d.ts +3 -0
- package/lib/tools/index.js +3 -7
- package/lib/types/a2a.d.ts +39 -0
- package/lib/types/acp.d.ts +21 -0
- package/lib/types/ag-ui.d.ts +25 -0
- package/lib/types/agents-lifecycle.d.ts +36 -0
- package/lib/types/agents.d.ts +80 -0
- package/lib/types/agents.js +22 -0
- package/lib/types/agentspecs.d.ts +90 -0
- package/lib/{components/chat/components/base/ChatBase.d.ts → types/chat.d.ts} +59 -99
- package/lib/types/checkpoints.d.ts +32 -0
- package/lib/types/checkpoints.js +5 -0
- package/lib/types/config.d.ts +67 -0
- package/lib/{runtime/types.js → types/config.js} +2 -2
- package/lib/types/connection.d.ts +31 -0
- package/lib/types/connection.js +5 -0
- package/lib/types/context.d.ts +67 -0
- package/lib/types/context.js +5 -0
- package/lib/types/cost.d.ts +42 -0
- package/lib/types/cost.js +5 -0
- package/lib/types/envvars.d.ts +21 -0
- package/lib/types/envvars.js +5 -0
- package/lib/types/evals.d.ts +66 -0
- package/lib/types/evals.js +5 -0
- package/lib/types/events.d.ts +49 -0
- package/lib/types/events.js +5 -0
- package/lib/types/eventspecs.d.ts +39 -0
- package/lib/types/eventspecs.js +5 -0
- package/lib/types/examples.d.ts +31 -0
- package/lib/types/examples.js +5 -0
- package/lib/{components/chat/types → types}/execution.d.ts +10 -1
- package/lib/{components/chat/types/extension.d.ts → types/extensions.d.ts} +3 -3
- package/lib/types/guardrails.d.ts +106 -0
- package/lib/types/guardrails.js +5 -0
- package/lib/types/index.d.ts +36 -2
- package/lib/types/index.js +35 -2
- package/lib/{components/chat/types → types}/inference.d.ts +3 -3
- package/lib/types/inference.js +5 -0
- package/lib/types/mcp.d.ts +117 -0
- package/lib/types/mcp.js +27 -0
- package/lib/types/memory.d.ts +23 -0
- package/lib/types/memory.js +5 -0
- package/lib/{components/chat/types/message.d.ts → types/messages.d.ts} +20 -1
- package/lib/{components/chat/types → types}/middleware.d.ts +3 -3
- package/lib/types/models.d.ts +63 -0
- package/lib/types/models.js +5 -0
- package/lib/types/notifications.d.ts +85 -0
- package/lib/types/notifications.js +5 -0
- package/lib/types/outputs.d.ts +51 -0
- package/lib/types/outputs.js +5 -0
- package/lib/{components/chat/types → types}/protocol.d.ts +37 -99
- package/lib/types/protocol.js +5 -0
- package/lib/types/sandbox.d.ts +27 -0
- package/lib/types/sandbox.js +24 -0
- package/lib/types/skills.d.ts +74 -0
- package/lib/types/skills.js +5 -0
- package/lib/types/teams.d.ts +133 -0
- package/lib/types/teams.js +5 -0
- package/lib/types/tool-approvals.d.ts +39 -0
- package/lib/types/tool-approvals.js +5 -0
- package/lib/{components/chat/types/tool.d.ts → types/tools.d.ts} +61 -4
- package/lib/types/triggers.d.ts +48 -0
- package/lib/types/triggers.js +5 -0
- package/lib/types/usage.d.ts +36 -0
- package/lib/types/usage.js +5 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +5 -0
- package/lib/utils/utils.d.ts +60 -0
- package/lib/utils/utils.js +205 -0
- package/package.json +13 -14
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/generate_agents.py +377 -61
- package/scripts/codegen/generate_envvars.py +36 -35
- package/scripts/codegen/generate_evals.py +279 -0
- package/scripts/codegen/generate_events.py +320 -0
- package/scripts/codegen/generate_frontend_tools.py +266 -0
- package/scripts/codegen/generate_guardrails.py +475 -0
- package/scripts/codegen/generate_mcp_servers.py +36 -9
- package/scripts/codegen/generate_memory.py +468 -0
- package/scripts/codegen/generate_models.py +22 -46
- package/scripts/codegen/generate_notifications.py +309 -0
- package/scripts/codegen/generate_outputs.py +267 -0
- package/scripts/codegen/generate_skills.py +108 -51
- package/scripts/codegen/generate_teams.py +922 -0
- package/scripts/codegen/generate_tools.py +346 -0
- package/scripts/codegen/generate_triggers.py +295 -0
- package/scripts/codegen/versioning.py +53 -0
- package/style/primer-primitives.css +1 -6
- package/lib/components/chat/components/base/ChatBase.js +0 -2242
- package/lib/components/chat/components/base/InputPrompt.d.ts +0 -42
- package/lib/components/chat/components/base/InputPrompt.js +0 -131
- package/lib/components/chat/components/display/index.d.ts +0 -6
- package/lib/components/chat/components/index.d.ts +0 -26
- package/lib/components/chat/components/index.js +0 -39
- package/lib/components/chat/extensions/A2UIExtension.d.ts +0 -87
- package/lib/components/chat/extensions/A2UIExtension.js +0 -312
- package/lib/components/chat/extensions/index.d.ts +0 -10
- package/lib/components/chat/index.d.ts +0 -61
- package/lib/components/chat/index.js +0 -76
- package/lib/components/chat/protocols/VercelAIAdapter.js +0 -315
- package/lib/components/chat/tools/index.d.ts +0 -8
- package/lib/components/chat/tools/index.js +0 -11
- package/lib/components/chat/types/index.d.ts +0 -12
- package/lib/components/chat/types/index.js +0 -17
- package/lib/components/sparklines/Sparklines.d.ts +0 -16
- package/lib/components/sparklines/Sparklines.js +0 -65
- package/lib/components/sparklines/SparklinesLine.d.ts +0 -8
- package/lib/components/sparklines/SparklinesLine.js +0 -37
- package/lib/components/sparklines/dataProcessing.d.ts +0 -25
- package/lib/components/sparklines/dataProcessing.js +0 -35
- package/lib/components/sparklines/index.d.ts +0 -4
- package/lib/components/sparklines/index.js +0 -7
- package/lib/components/sparklines/types.d.ts +0 -36
- package/lib/examples/stores/examplesStore.d.ts +0 -5
- package/lib/examples/stores/notebooks/Empty.ipynb.json +0 -33
- package/lib/examples/stores/notebooks/NotebookExample2.ipynb.json +0 -48
- package/lib/examples/stores/themeStore.d.ts +0 -33
- package/lib/examples/stores/themeStore.js +0 -38
- package/lib/hooks/useAgentRuntimes.d.ts +0 -350
- package/lib/hooks/useAgentRuntimes.js +0 -78
- package/lib/hooks/useKeyboardShortcuts.d.ts +0 -47
- package/lib/hooks/useKeyboardShortcuts.js +0 -153
- package/lib/hooks/useMobile.d.ts +0 -1
- package/lib/hooks/useMobile.js +0 -19
- package/lib/hooks/useNotebookAIAgent.d.ts +0 -8
- package/lib/hooks/useNotebookAIAgent.js +0 -73
- package/lib/renderers/a2ui/components/A2UIRenderer.d.ts +0 -7
- package/lib/renderers/a2ui/components/A2UIRenderer.js +0 -102
- package/lib/renderers/a2ui/components/SurfaceRenderer.d.ts +0 -7
- package/lib/renderers/a2ui/components/SurfaceRenderer.js +0 -101
- package/lib/renderers/a2ui/components/content/AudioPlayer.d.ts +0 -9
- package/lib/renderers/a2ui/components/content/AudioPlayer.js +0 -38
- package/lib/renderers/a2ui/components/content/Divider.d.ts +0 -9
- package/lib/renderers/a2ui/components/content/Divider.js +0 -35
- package/lib/renderers/a2ui/components/content/Icon.d.ts +0 -9
- package/lib/renderers/a2ui/components/content/Icon.js +0 -110
- package/lib/renderers/a2ui/components/content/Image.d.ts +0 -9
- package/lib/renderers/a2ui/components/content/Image.js +0 -61
- package/lib/renderers/a2ui/components/content/Text.d.ts +0 -9
- package/lib/renderers/a2ui/components/content/Text.js +0 -64
- package/lib/renderers/a2ui/components/content/Video.d.ts +0 -9
- package/lib/renderers/a2ui/components/content/Video.js +0 -37
- package/lib/renderers/a2ui/components/content/index.d.ts +0 -6
- package/lib/renderers/a2ui/components/content/index.js +0 -25
- package/lib/renderers/a2ui/components/index.d.ts +0 -5
- package/lib/renderers/a2ui/components/index.js +0 -24
- package/lib/renderers/a2ui/components/interactive/Button.d.ts +0 -11
- package/lib/renderers/a2ui/components/interactive/Button.js +0 -71
- package/lib/renderers/a2ui/components/interactive/CheckBox.d.ts +0 -9
- package/lib/renderers/a2ui/components/interactive/CheckBox.js +0 -48
- package/lib/renderers/a2ui/components/interactive/DateTimeInput.d.ts +0 -9
- package/lib/renderers/a2ui/components/interactive/DateTimeInput.js +0 -62
- package/lib/renderers/a2ui/components/interactive/MultipleChoice.d.ts +0 -9
- package/lib/renderers/a2ui/components/interactive/MultipleChoice.js +0 -73
- package/lib/renderers/a2ui/components/interactive/Slider.d.ts +0 -9
- package/lib/renderers/a2ui/components/interactive/Slider.js +0 -53
- package/lib/renderers/a2ui/components/interactive/TextField.d.ts +0 -9
- package/lib/renderers/a2ui/components/interactive/TextField.js +0 -72
- package/lib/renderers/a2ui/components/interactive/index.d.ts +0 -6
- package/lib/renderers/a2ui/components/interactive/index.js +0 -25
- package/lib/renderers/a2ui/components/layout/Card.d.ts +0 -11
- package/lib/renderers/a2ui/components/layout/Card.js +0 -30
- package/lib/renderers/a2ui/components/layout/Column.d.ts +0 -11
- package/lib/renderers/a2ui/components/layout/Column.js +0 -65
- package/lib/renderers/a2ui/components/layout/List.d.ts +0 -11
- package/lib/renderers/a2ui/components/layout/List.js +0 -55
- package/lib/renderers/a2ui/components/layout/Modal.d.ts +0 -11
- package/lib/renderers/a2ui/components/layout/Modal.js +0 -58
- package/lib/renderers/a2ui/components/layout/Row.d.ts +0 -11
- package/lib/renderers/a2ui/components/layout/Row.js +0 -65
- package/lib/renderers/a2ui/components/layout/Tabs.d.ts +0 -11
- package/lib/renderers/a2ui/components/layout/Tabs.js +0 -48
- package/lib/renderers/a2ui/components/layout/index.d.ts +0 -6
- package/lib/renderers/a2ui/components/layout/index.js +0 -25
- package/lib/renderers/a2ui/context/A2UIContext.d.ts +0 -17
- package/lib/renderers/a2ui/context/A2UIContext.js +0 -54
- package/lib/renderers/a2ui/context/ThemeContext.d.ts +0 -20
- package/lib/renderers/a2ui/context/ThemeContext.js +0 -333
- package/lib/renderers/a2ui/hooks/useA2UI.d.ts +0 -36
- package/lib/renderers/a2ui/hooks/useA2UI.js +0 -62
- package/lib/renderers/a2ui/hooks/useDataBinding.d.ts +0 -8
- package/lib/renderers/a2ui/hooks/useDataBinding.js +0 -83
- package/lib/renderers/a2ui/index.d.ts +0 -9
- package/lib/renderers/a2ui/index.js +0 -28
- package/lib/renderers/a2ui/lib/utils.d.ts +0 -11
- package/lib/renderers/a2ui/lib/utils.js +0 -38
- package/lib/renderers/a2ui/types/index.d.ts +0 -17
- package/lib/runtime/index.d.ts +0 -38
- package/lib/runtime/index.js +0 -40
- package/lib/runtime/runtimeStore.d.ts +0 -76
- package/lib/runtime/runtimeStore.js +0 -184
- package/lib/runtime/types.d.ts +0 -84
- package/lib/runtime/useAgentConnection.d.ts +0 -45
- package/lib/runtime/useAgentConnection.js +0 -112
- package/lib/runtime/useAgentRuntime.d.ts +0 -93
- package/lib/runtime/useAgentRuntime.js +0 -125
- package/lib/specs/agents/codeai/agents.d.ts +0 -28
- package/lib/specs/agents/codeai/agents.js +0 -179
- package/lib/specs/agents/codeai/index.d.ts +0 -1
- package/lib/specs/agents/codemode-paper/agents.d.ts +0 -31
- package/lib/specs/agents/codemode-paper/agents.js +0 -378
- package/lib/specs/agents/codemode-paper/index.d.ts +0 -1
- package/lib/specs/agents/codemode-paper/index.js +0 -5
- package/lib/specs/agents/datalayer-ai/agents.d.ts +0 -31
- package/lib/specs/agents/datalayer-ai/agents.js +0 -352
- package/lib/specs/agents/datalayer-ai/index.d.ts +0 -1
- package/lib/specs/agents/datalayer-ai/index.js +0 -5
- package/lib/specs/agents/mocks/agents.d.ts +0 -43
- package/lib/specs/agents/mocks/agents.js +0 -2293
- package/lib/specs/agents/mocks/index.d.ts +0 -1
- package/lib/specs/agents/mocks/index.js +0 -5
- package/lib/state/index.d.ts +0 -1
- package/lib/state/index.js +0 -5
- package/lib/state/substates/AIAgentState.d.ts +0 -80
- package/lib/state/substates/AIAgentState.js +0 -108
- package/lib/state/substates/index.d.ts +0 -1
- package/lib/state/substates/index.js +0 -5
- package/lib/types/AIAgent.d.ts +0 -17
- package/lib/types/Types.d.ts +0 -217
- /package/lib/{components/chat → api}/handler.d.ts +0 -0
- /package/lib/{renderers/index.d.ts → api/utils.d.ts} +0 -0
- /package/lib/{renderers/index.js → api/utils.js} +0 -0
- /package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.js +0 -0
- /package/lib/{components/chat/components → chat}/parts/DynamicToolPart.js +0 -0
- /package/lib/{components/chat/components → chat}/parts/ReasoningPart.d.ts +0 -0
- /package/lib/{components/chat/components → chat}/parts/TextPart.js +0 -0
- /package/lib/{components/chat/components → chat}/parts/ToolPart.d.ts +0 -0
- /package/lib/{components/chat/components → chat}/styles/streamdownStyles.js +0 -0
- /package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.d.ts +0 -0
- /package/lib/{components/chat/components → context}/ContextDistribution.d.ts +0 -0
- /package/lib/{components/chat/components → context}/ContextDistribution.js +0 -0
- /package/lib/{components/chat/components → context}/ContextInspector.d.ts +0 -0
- /package/lib/{components/chat/components → context}/ContextPanel.d.ts +0 -0
- /package/lib/{components/chat/components → context}/ContextUsage.d.ts +0 -0
- /package/lib/{components/chat/components → context}/ContextUsage.js +0 -0
- /package/lib/examples/{JupyterCellExample.d.ts → CellSimpleExample.d.ts} +0 -0
- /package/lib/examples/{AgentRuntimeCustomExample.d.ts → ChatCustomExample.d.ts} +0 -0
- /package/lib/examples/{AgentRuntimeChatExample.d.ts → ChatExample.d.ts} +0 -0
- /package/lib/examples/{AgentRuntimeStandaloneExample.d.ts → ChatStandaloneExample.d.ts} +0 -0
- /package/lib/examples/{AgentRuntimeNotebookExample.d.ts → NotebookExample.d.ts} +0 -0
- /package/lib/examples/{AgentRuntimeNotebookSidebarExample.d.ts → NotebookSidebarExample.d.ts} +0 -0
- /package/lib/examples/{JupyterNotebookExample.d.ts → NotebookSimpleExample.d.ts} +0 -0
- /package/lib/examples/{stores → utils}/agents/earthquake-detector.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/agents/earthquake-detector.json +0 -0
- /package/lib/examples/{stores → utils}/agents/earthquake-detector.lexical.json +0 -0
- /package/lib/examples/{stores → utils}/agents/sales-forecaster.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/agents/sales-forecaster.json +0 -0
- /package/lib/examples/{stores → utils}/agents/sales-forecaster.lexical.json +0 -0
- /package/lib/examples/{stores → utils}/agents/social-post-generator.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/agents/social-post-generator.json +0 -0
- /package/lib/examples/{stores → utils}/agents/social-post-generator.lexical.json +0 -0
- /package/lib/examples/{stores → utils}/agents/stock-market.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/agents/stock-market.json +0 -0
- /package/lib/examples/{stores → utils}/agents/stock-market.lexical.json +0 -0
- /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExample.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/notebooks/Lite.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/notebooks/Matplotlib.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/notebooks/NotebookExample1.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/notebooks/NotebookOutputs.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/notebooks/NotebookToCExample.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.d.ts +0 -0
- /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.js +0 -0
- /package/lib/examples/{stores → utils}/notebooks/PyGWalker.ipynb.json +0 -0
- /package/lib/examples/{stores → utils}/themedProvider.d.ts +0 -0
- /package/lib/examples/{stores → utils}/themedProvider.js +0 -0
- /package/lib/{components/chat/inference → inference}/BaseInferenceProvider.js +0 -0
- /package/lib/{components → mcp}/McpServerManager.js +0 -0
- /package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.js +0 -0
- /package/lib/{components/chat/types/inference.js → types/a2a.js} +0 -0
- /package/lib/{components/chat/types/protocol.js → types/acp.js} +0 -0
- /package/lib/{components/sparklines/types.js → types/ag-ui.js} +0 -0
- /package/lib/{renderers/a2ui/types/index.js → types/agents-lifecycle.js} +0 -0
- /package/lib/types/{AIAgent.js → agentspecs.js} +0 -0
- /package/lib/types/{Types.js → chat.js} +0 -0
- /package/lib/{components/chat/types → types}/execution.js +0 -0
- /package/lib/{components/chat/types/extension.js → types/extensions.js} +0 -0
- /package/lib/{components/chat/types/message.js → types/messages.js} +0 -0
- /package/lib/{components/chat/types → types}/middleware.js +0 -0
- /package/lib/{components/chat/types/tool.js → types/tools.js} +0 -0
|
@@ -15,18 +15,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
15
15
|
*
|
|
16
16
|
* @module examples/AgentRuntimeLexicalExample
|
|
17
17
|
*/
|
|
18
|
-
import '
|
|
19
|
-
import 'prismjs/components/prism-clike';
|
|
20
|
-
import 'prismjs/components/prism-javascript';
|
|
21
|
-
import 'prismjs/components/prism-markup';
|
|
22
|
-
import 'prismjs/components/prism-markdown';
|
|
23
|
-
import 'prismjs/components/prism-c';
|
|
24
|
-
import 'prismjs/components/prism-css';
|
|
25
|
-
import 'prismjs/components/prism-objectivec';
|
|
26
|
-
import 'prismjs/components/prism-sql';
|
|
27
|
-
import 'prismjs/components/prism-python';
|
|
28
|
-
import 'prismjs/components/prism-rust';
|
|
29
|
-
import 'prismjs/components/prism-swift';
|
|
18
|
+
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
30
19
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
31
20
|
import { $getRoot, $createParagraphNode } from 'lexical';
|
|
32
21
|
import { LexicalComposer } from '@lexical/react/LexicalComposer';
|
|
@@ -45,14 +34,15 @@ import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
|
|
|
45
34
|
import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
|
|
46
35
|
import { Box } from '@datalayer/primer-addons';
|
|
47
36
|
import { useJupyter } from '@datalayer/jupyter-react';
|
|
48
|
-
import { ThemedJupyterProvider } from './
|
|
37
|
+
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
49
38
|
import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, ExcalidrawPlugin, CollapsiblePlugin, AutoLinkPlugin, AutoEmbedPlugin, LexicalConfigProvider, LexicalStatePlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, TableCellResizerPlugin, TablePlugin, } from '@datalayer/jupyter-lexical';
|
|
50
39
|
// Agent-runtimes imports
|
|
51
|
-
import { ChatFloating } from '../
|
|
40
|
+
import { ChatFloating } from '../chat';
|
|
52
41
|
import { ChatInlinePlugin } from '../lexical/ChatInlinePlugin';
|
|
53
42
|
import { useChatInlineToolbarItems } from '../lexical/useChatInlineToolbarItems';
|
|
54
43
|
import { useLexicalTools } from '../tools/adapters/agent-runtimes/lexicalHooks';
|
|
55
44
|
import { editorConfig } from './lexical/editorConfig';
|
|
45
|
+
import { DEFAULT_MODEL } from '../specs';
|
|
56
46
|
import '@datalayer/jupyter-lexical/style/index.css';
|
|
57
47
|
import './lexical/lexical-theme.css';
|
|
58
48
|
// Fixed lexical document ID
|
|
@@ -60,8 +50,8 @@ const LEXICAL_ID = 'agui-lexical-example';
|
|
|
60
50
|
// Base URL for agent-runtimes server
|
|
61
51
|
const BASE_URL = 'http://localhost:8765';
|
|
62
52
|
const AGENT_ID = 'lexical-agent-runtime-example';
|
|
63
|
-
//
|
|
64
|
-
const
|
|
53
|
+
// Vercel AI endpoint for lexical operations
|
|
54
|
+
const VERCEL_AI_ENDPOINT = `${BASE_URL}/api/v1/vercel-ai/${AGENT_ID}`;
|
|
65
55
|
/**
|
|
66
56
|
* Hook to ensure the demo-agent exists on the server.
|
|
67
57
|
* Creates it if it doesn't exist.
|
|
@@ -83,8 +73,8 @@ function useEnsureAgent(agentId, baseUrl) {
|
|
|
83
73
|
name: agentId,
|
|
84
74
|
description: 'Demo agent for lexical example',
|
|
85
75
|
agent_library: 'pydantic-ai',
|
|
86
|
-
transport: '
|
|
87
|
-
model:
|
|
76
|
+
transport: 'vercel-ai',
|
|
77
|
+
model: DEFAULT_MODEL,
|
|
88
78
|
system_prompt: 'You are a helpful AI assistant that helps users work with documents. You can help with writing, editing, and formatting content.',
|
|
89
79
|
}),
|
|
90
80
|
});
|
|
@@ -169,9 +159,14 @@ function CodeHighlightPlugin() {
|
|
|
169
159
|
}
|
|
170
160
|
/**
|
|
171
161
|
* Wrapper component for kernel-dependent Simple plugins.
|
|
162
|
+
* Accepts a serviceManager so it can initialise a Jupyter kernel
|
|
163
|
+
* (mirrors how the Notebook component bootstraps its runtime).
|
|
172
164
|
*/
|
|
173
|
-
function SimpleKernelPluginsInner() {
|
|
174
|
-
const { defaultKernel } = useJupyter(
|
|
165
|
+
function SimpleKernelPluginsInner({ serviceManager, }) {
|
|
166
|
+
const { defaultKernel } = useJupyter({
|
|
167
|
+
serviceManager,
|
|
168
|
+
startDefaultKernel: !!serviceManager,
|
|
169
|
+
});
|
|
175
170
|
return (_jsxs(_Fragment, { children: [_jsx(ComponentPickerMenuPlugin, { kernel: defaultKernel }), _jsx(JupyterInputOutputPlugin, { kernel: defaultKernel })] }));
|
|
176
171
|
}
|
|
177
172
|
/**
|
|
@@ -216,9 +211,9 @@ const LexicalUI = React.memo(function LexicalUI({ content = INITIAL_CONTENT, ser
|
|
|
216
211
|
padding: 3,
|
|
217
212
|
backgroundColor: 'canvas.default',
|
|
218
213
|
minHeight: '600px',
|
|
219
|
-
}, children: _jsxs(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: [_jsx(LexicalToolsPlugin, { onToolsReady: onToolsReady }), _jsx(LexicalComposer, { initialConfig: editorConfig, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(RichTextPlugin, { contentEditable: _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), ErrorBoundary: LexicalErrorBoundary }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), _jsx(LoadContentPlugin, { content: content }), _jsx(CodeHighlightPlugin, {}), _jsx(ImagesPlugin, { captionsEnabled: false }), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(ExcalidrawPlugin, {}), _jsx(CollapsiblePlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(TablePlugin, {}), _jsx(TableCellResizerPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(ThemedJupyterProvider, { children: _jsx(SimpleKernelPluginsInner, {}) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode, extraItems: toolbarItems }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] })), _jsx(ChatInlinePlugin, { protocol: {
|
|
220
|
-
type: '
|
|
221
|
-
endpoint:
|
|
214
|
+
}, children: _jsxs(LexicalConfigProvider, { lexicalId: LEXICAL_ID, serviceManager: serviceManager, children: [_jsx(LexicalToolsPlugin, { onToolsReady: onToolsReady }), _jsx(LexicalComposer, { initialConfig: editorConfig, children: _jsxs("div", { className: "lexical-editor-inner", ref: onRef, children: [_jsx(LexicalStatePlugin, {}), _jsx(RichTextPlugin, { contentEditable: _jsx(ContentEditable, { className: "lexical-editor-content", "aria-label": "Lexical Editor" }), ErrorBoundary: LexicalErrorBoundary }), _jsx(OnChangePlugin, { onChange: handleChange }), _jsx(HistoryPlugin, {}), _jsx(AutoFocusPlugin, {}), _jsx(ListPlugin, {}), _jsx(CheckListPlugin, {}), _jsx(LinkPlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 7 }), _jsx(MarkdownShortcutPlugin, { transformers: TRANSFORMERS }), _jsx(LoadContentPlugin, { content: content }), _jsx(CodeHighlightPlugin, {}), _jsx(ImagesPlugin, { captionsEnabled: false }), _jsx(HorizontalRulePlugin, {}), _jsx(EquationsPlugin, {}), _jsx(YouTubePlugin, {}), _jsx(ExcalidrawPlugin, {}), _jsx(CollapsiblePlugin, {}), _jsx(AutoEmbedPlugin, {}), _jsx(TablePlugin, {}), _jsx(TableCellResizerPlugin, {}), _jsx(JupyterCellPlugin, {}), _jsx(ThemedJupyterProvider, { children: _jsx(SimpleKernelPluginsInner, { serviceManager: serviceManager }) }), floatingAnchorElem && (_jsxs(_Fragment, { children: [_jsx(DraggableBlockPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem, setIsLinkEditMode: setIsLinkEditMode, extraItems: toolbarItems }), _jsx(CodeActionMenuPlugin, { anchorElem: floatingAnchorElem })] })), _jsx(ChatInlinePlugin, { protocol: {
|
|
215
|
+
type: 'vercel-ai',
|
|
216
|
+
endpoint: VERCEL_AI_ENDPOINT,
|
|
222
217
|
}, isOpen: isAiOpen, onClose: closeAi, pendingPrompt: pendingPrompt, onPendingPromptConsumed: clearPendingPrompt })] }) })] }) })] }));
|
|
223
218
|
});
|
|
224
219
|
function LexicalWithChat({ content, serviceManager, }) {
|
|
@@ -226,12 +221,14 @@ function LexicalWithChat({ content, serviceManager, }) {
|
|
|
226
221
|
const { isReady, error } = useEnsureAgent(AGENT_ID, BASE_URL);
|
|
227
222
|
// State to hold tools - populated by LexicalToolsPlugin inside the context
|
|
228
223
|
const [tools, setTools] = useState([]);
|
|
229
|
-
const [toolsKey, setToolsKey] = useState(0);
|
|
230
224
|
// Stable callback for receiving tools from LexicalToolsPlugin
|
|
225
|
+
// NOTE: Do NOT use a key={...} on ChatFloating to force re-render on tool changes.
|
|
226
|
+
// Changing the key remounts the entire chat component, resetting all state (including isLoading),
|
|
227
|
+
// which causes the run/pause button to flip to "send" mid-conversation.
|
|
228
|
+
// React will naturally pass updated frontendTools prop without remounting.
|
|
231
229
|
const handleToolsReady = useCallback((newTools) => {
|
|
232
230
|
console.log('[LexicalWithChat] 🔄 Tools received, updating state');
|
|
233
231
|
setTools(newTools);
|
|
234
|
-
setToolsKey(prev => prev + 1); // Force ChatFloating to see new tools
|
|
235
232
|
}, []);
|
|
236
233
|
return (_jsxs(Box, { sx: {
|
|
237
234
|
height: '100vh',
|
|
@@ -247,7 +244,7 @@ function LexicalWithChat({ content, serviceManager, }) {
|
|
|
247
244
|
color: 'danger.fg',
|
|
248
245
|
borderRadius: 2,
|
|
249
246
|
maxWidth: 300,
|
|
250
|
-
}, children: [_jsx("strong", { children: "Error:" }), " ", error] })), isReady && (_jsx(ChatFloating, { endpoint:
|
|
247
|
+
}, children: [_jsx("strong", { children: "Error:" }), " ", error] })), isReady && (_jsx(ChatFloating, { protocol: "vercel-ai", endpoint: VERCEL_AI_ENDPOINT, title: "Lexical AI Agent Runtime", description: "Hi! I can help you edit documents. Try: 'Insert a heading', 'Add a code block', or 'Create a list'", defaultOpen: true, defaultViewMode: "panel", position: "bottom-right", frontendTools: tools, useStore: false, showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, suggestions: [
|
|
251
248
|
{
|
|
252
249
|
title: 'Insert heading',
|
|
253
250
|
message: 'Insert a heading that says "Welcome"',
|
|
@@ -260,7 +257,11 @@ function LexicalWithChat({ content, serviceManager, }) {
|
|
|
260
257
|
title: 'Create list',
|
|
261
258
|
message: 'Create a bullet list with three items about Jupyter',
|
|
262
259
|
},
|
|
263
|
-
|
|
260
|
+
{
|
|
261
|
+
title: 'Analyze Titanic',
|
|
262
|
+
message: 'Analyze the Titanic dataset and provide insights about the passengers and survival rates',
|
|
263
|
+
},
|
|
264
|
+
] }))] }));
|
|
264
265
|
}
|
|
265
266
|
function AgentRuntimeLexicalExample({ content, serviceManager, }) {
|
|
266
267
|
return _jsx(LexicalWithChat, { content: content, serviceManager: serviceManager });
|
|
@@ -8,22 +8,11 @@
|
|
|
8
8
|
* - Middleware and extensions
|
|
9
9
|
*
|
|
10
10
|
* To run this example, create a .env file with:
|
|
11
|
-
* -
|
|
11
|
+
* - VITE_DATALAYER_API_KEY: Get from https://datalayer.app/settings/iam/tokens
|
|
12
12
|
*
|
|
13
13
|
* @module examples/ChatLexicalExample
|
|
14
14
|
*/
|
|
15
|
-
import '
|
|
16
|
-
import 'prismjs/components/prism-clike';
|
|
17
|
-
import 'prismjs/components/prism-javascript';
|
|
18
|
-
import 'prismjs/components/prism-markup';
|
|
19
|
-
import 'prismjs/components/prism-markdown';
|
|
20
|
-
import 'prismjs/components/prism-c';
|
|
21
|
-
import 'prismjs/components/prism-css';
|
|
22
|
-
import 'prismjs/components/prism-objectivec';
|
|
23
|
-
import 'prismjs/components/prism-sql';
|
|
24
|
-
import 'prismjs/components/prism-python';
|
|
25
|
-
import 'prismjs/components/prism-rust';
|
|
26
|
-
import 'prismjs/components/prism-swift';
|
|
15
|
+
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
27
16
|
import type { ServiceManager } from '@jupyterlab/services';
|
|
28
17
|
import '@datalayer/jupyter-lexical/style/index.css';
|
|
29
18
|
import './lexical/lexical-theme.css';
|
|
@@ -13,22 +13,11 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
13
13
|
* - Middleware and extensions
|
|
14
14
|
*
|
|
15
15
|
* To run this example, create a .env file with:
|
|
16
|
-
* -
|
|
16
|
+
* - VITE_DATALAYER_API_KEY: Get from https://datalayer.app/settings/iam/tokens
|
|
17
17
|
*
|
|
18
18
|
* @module examples/ChatLexicalExample
|
|
19
19
|
*/
|
|
20
|
-
import '
|
|
21
|
-
import 'prismjs/components/prism-clike';
|
|
22
|
-
import 'prismjs/components/prism-javascript';
|
|
23
|
-
import 'prismjs/components/prism-markup';
|
|
24
|
-
import 'prismjs/components/prism-markdown';
|
|
25
|
-
import 'prismjs/components/prism-c';
|
|
26
|
-
import 'prismjs/components/prism-css';
|
|
27
|
-
import 'prismjs/components/prism-objectivec';
|
|
28
|
-
import 'prismjs/components/prism-sql';
|
|
29
|
-
import 'prismjs/components/prism-python';
|
|
30
|
-
import 'prismjs/components/prism-rust';
|
|
31
|
-
import 'prismjs/components/prism-swift';
|
|
20
|
+
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
32
21
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
33
22
|
import { LexicalComposer } from '@lexical/react/LexicalComposer';
|
|
34
23
|
import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
|
|
@@ -46,10 +35,9 @@ import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin';
|
|
|
46
35
|
import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
|
|
47
36
|
import { Box } from '@datalayer/primer-addons';
|
|
48
37
|
import { useJupyter } from '@datalayer/jupyter-react';
|
|
49
|
-
import { ThemedJupyterProvider } from './
|
|
38
|
+
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
50
39
|
import { ComponentPickerMenuPlugin, JupyterCellPlugin, JupyterInputOutputPlugin, DraggableBlockPlugin, ImagesPlugin, HorizontalRulePlugin, EquationsPlugin, YouTubePlugin, ExcalidrawPlugin, CollapsiblePlugin, AutoLinkPlugin, AutoEmbedPlugin, FloatingTextFormatToolbarPlugin, CodeActionMenuPlugin, ListMaxIndentLevelPlugin, LexicalConfigProvider, LexicalStatePlugin, TableCellResizerPlugin, TablePlugin, } from '@datalayer/jupyter-lexical';
|
|
51
|
-
|
|
52
|
-
import { ChatSidebar, } from '../components/chat';
|
|
40
|
+
import { ChatSidebar } from '../chat';
|
|
53
41
|
import { ChatInlinePlugin } from '../lexical/ChatInlinePlugin';
|
|
54
42
|
import { useChatInlineToolbarItems } from '../lexical/useChatInlineToolbarItems';
|
|
55
43
|
import { useLexicalTools } from '../tools/adapters/agent-runtimes/lexicalHooks';
|
|
@@ -119,7 +107,7 @@ export function ChatLexicalExampleInner({ serviceManager, }) {
|
|
|
119
107
|
};
|
|
120
108
|
}, []);
|
|
121
109
|
return (_jsx(_Fragment, { children: _jsxs(Box, { sx: {
|
|
122
|
-
height: '100vh',
|
|
110
|
+
height: 'calc(100vh - 70px)',
|
|
123
111
|
width: '100vw',
|
|
124
112
|
display: 'flex',
|
|
125
113
|
overflow: 'hidden',
|
|
@@ -138,7 +126,7 @@ export function ChatLexicalExampleInner({ serviceManager, }) {
|
|
|
138
126
|
display: 'flex',
|
|
139
127
|
overflow: 'hidden',
|
|
140
128
|
bg: 'canvas.default',
|
|
141
|
-
}, children: _jsx(LexicalEditor, { serviceManager: serviceManager }) })] }), _jsx(ChatSidebar, { title: "AI Assistant", position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
|
|
129
|
+
}, children: _jsx(LexicalEditor, { serviceManager: serviceManager }) })] }), _jsx(ChatSidebar, { title: "AI Assistant", protocol: protocolConfig, position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
|
|
142
130
|
protocol: protocolConfig,
|
|
143
131
|
frontendTools: tools,
|
|
144
132
|
useStore: true,
|
|
@@ -13,17 +13,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
13
|
* 1. Start the agent-runtimes server: `npm run start:server`
|
|
14
14
|
* 2. Start the frontend: `npm run dev`
|
|
15
15
|
*
|
|
16
|
-
* @module examples/
|
|
16
|
+
* @module examples/NotebookExample
|
|
17
17
|
*/
|
|
18
18
|
import React, { useEffect, useState } from 'react';
|
|
19
19
|
import { Box } from '@datalayer/primer-addons';
|
|
20
20
|
import { Notebook } from '@datalayer/jupyter-react';
|
|
21
|
-
import { ThemedJupyterProvider } from './
|
|
21
|
+
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
22
22
|
// Agent-runtimes imports
|
|
23
|
-
import { ChatFloating } from '../
|
|
23
|
+
import { ChatFloating } from '../chat';
|
|
24
24
|
import { useNotebookTools } from '../tools/adapters/agent-runtimes/notebookHooks';
|
|
25
25
|
// Import Matplotlib notebook
|
|
26
|
-
import MatplotlibNotebook from './
|
|
26
|
+
import MatplotlibNotebook from './utils/notebooks/Matplotlib.ipynb.json';
|
|
27
27
|
import { DEFAULT_MODEL } from '../specs';
|
|
28
28
|
// Fixed notebook ID
|
|
29
29
|
const NOTEBOOK_ID = 'agui-notebook-example';
|
|
@@ -32,8 +32,8 @@ const NOTEBOOK_CONTENT = MatplotlibNotebook;
|
|
|
32
32
|
// Base URL for agent-runtimes server
|
|
33
33
|
const BASE_URL = 'http://localhost:8765';
|
|
34
34
|
const AGENT_ID = 'notebook-agent-runtime-example';
|
|
35
|
-
//
|
|
36
|
-
const
|
|
35
|
+
// Vercel AI endpoint
|
|
36
|
+
const VERCEL_AI_ENDPOINT = `${BASE_URL}/api/v1/vercel-ai/${AGENT_ID}`;
|
|
37
37
|
/**
|
|
38
38
|
* Hook to ensure the demo-agent exists on the server.
|
|
39
39
|
* Creates it if it doesn't exist.
|
|
@@ -55,7 +55,7 @@ function useEnsureAgent(agentId, baseUrl) {
|
|
|
55
55
|
name: agentId,
|
|
56
56
|
description: 'Demo agent for notebook example',
|
|
57
57
|
agent_library: 'pydantic-ai',
|
|
58
|
-
transport: '
|
|
58
|
+
transport: 'vercel-ai',
|
|
59
59
|
model: DEFAULT_MODEL,
|
|
60
60
|
system_prompt: 'You are a helpful AI assistant that helps users work with Jupyter notebooks. You can help with code, explanations, and data analysis.',
|
|
61
61
|
}),
|
|
@@ -102,13 +102,13 @@ const NotebookUI = React.memo(function NotebookUI({ serviceManager, }) {
|
|
|
102
102
|
paddingBottom: 3,
|
|
103
103
|
borderBottom: '1px solid',
|
|
104
104
|
borderColor: 'border.default',
|
|
105
|
-
}, children: [_jsx(Box, { as: "h1", children: "Agent Runtime Notebook Example" }), _jsx("p", { children: "Platform-agnostic tool usage with agent-runtimes integration. Use the AI copilot to manipulate the notebook." })] }), _jsx(Box, { sx: {
|
|
105
|
+
}, children: [_jsx(Box, { as: "h1", sx: { margin: 0 }, children: "Agent Runtime Notebook Example" }), _jsx("p", { children: "Platform-agnostic tool usage with agent-runtimes integration. Use the AI copilot to manipulate the notebook." })] }), _jsx(Box, { sx: {
|
|
106
106
|
border: '1px solid',
|
|
107
107
|
borderColor: 'border.default',
|
|
108
108
|
borderRadius: 2,
|
|
109
109
|
padding: 3,
|
|
110
110
|
backgroundColor: 'canvas.default',
|
|
111
|
-
}, children: serviceManager ? (_jsx(ThemedJupyterProvider, { children: _jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, serviceManager: serviceManager, height: "
|
|
111
|
+
}, children: serviceManager ? (_jsx(ThemedJupyterProvider, { children: _jsx(Notebook, { nbformat: NOTEBOOK_CONTENT, id: NOTEBOOK_ID, serviceManager: serviceManager, height: "calc(100vh - 300px)", cellSidebarMargin: 120, startDefaultKernel: true }) })) : (_jsx(Box, { sx: { padding: 3 }, children: _jsx("p", { children: "Loading service manager..." }) })) })] }));
|
|
112
112
|
});
|
|
113
113
|
function NotebookWithChat({ serviceManager, }) {
|
|
114
114
|
// Ensure the agent exists before rendering chat
|
|
@@ -129,7 +129,7 @@ function NotebookWithChat({ serviceManager, }) {
|
|
|
129
129
|
color: 'danger.fg',
|
|
130
130
|
borderRadius: 2,
|
|
131
131
|
maxWidth: 300,
|
|
132
|
-
}, children: [_jsx("strong", { children: "Error:" }), " ", error] })), isReady && (_jsx(ChatFloating, { endpoint:
|
|
132
|
+
}, children: [_jsx("strong", { children: "Error:" }), " ", error] })), isReady && (_jsx(ChatFloating, { protocol: "vercel-ai", endpoint: VERCEL_AI_ENDPOINT, title: "Notebook AI Agent Runtime", description: "Hi! I can help you edit notebook cells. Try: 'Add a new code cell', 'Run cell 1', or 'Delete the last cell'", defaultOpen: true, defaultViewMode: "panel", position: "bottom-right", frontendTools: frontendTools, useStore: false, showModelSelector: true, showToolsMenu: true, showSkillsMenu: true, suggestions: [
|
|
133
133
|
{
|
|
134
134
|
title: 'Add a cell',
|
|
135
135
|
message: 'Insert a random cell to the notebook',
|
|
@@ -142,6 +142,10 @@ function NotebookWithChat({ serviceManager, }) {
|
|
|
142
142
|
title: 'Show cells',
|
|
143
143
|
message: 'Show the notebook cells content and compute the number of cells',
|
|
144
144
|
},
|
|
145
|
+
{
|
|
146
|
+
title: 'Analyze Titanic',
|
|
147
|
+
message: 'Analyze the Titanic dataset and provide insights about the passengers and survival rates',
|
|
148
|
+
},
|
|
145
149
|
] }))] }));
|
|
146
150
|
}
|
|
147
151
|
function AgentRuntimeNotebookExample({ serviceManager, }) {
|
|
@@ -21,13 +21,10 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
21
21
|
import { useMemo } from 'react';
|
|
22
22
|
import { Box } from '@datalayer/primer-addons';
|
|
23
23
|
import { Notebook, useJupyter } from '@datalayer/jupyter-react';
|
|
24
|
-
import { ThemedJupyterProvider } from './stores/themedProvider';
|
|
25
|
-
// Import Chat components
|
|
26
|
-
import { ChatSidebar, } from '../components/chat';
|
|
27
|
-
// Import agent-runtimes notebook tools
|
|
28
24
|
import { useNotebookTools } from '../tools/adapters/agent-runtimes/notebookHooks';
|
|
29
|
-
|
|
30
|
-
import
|
|
25
|
+
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
26
|
+
import { ChatSidebar } from '../chat';
|
|
27
|
+
import MatplotlibNotebook from './utils/notebooks/Matplotlib.ipynb.json';
|
|
31
28
|
// Fixed notebook ID
|
|
32
29
|
const NOTEBOOK_ID = 'chat-notebook-example';
|
|
33
30
|
// Use the imported Matplotlib notebook
|
|
@@ -59,7 +56,7 @@ export function AgentRuntimeNotebookExampleInner({ serviceManager, }) {
|
|
|
59
56
|
};
|
|
60
57
|
}, []);
|
|
61
58
|
return (_jsx(_Fragment, { children: _jsxs(Box, { sx: {
|
|
62
|
-
height: '100vh',
|
|
59
|
+
height: 'calc(100vh - 70px)',
|
|
63
60
|
width: '100vw',
|
|
64
61
|
display: 'flex',
|
|
65
62
|
overflow: 'hidden',
|
|
@@ -85,7 +82,7 @@ export function AgentRuntimeNotebookExampleInner({ serviceManager, }) {
|
|
|
85
82
|
borderColor: 'border.default',
|
|
86
83
|
borderRadius: 2,
|
|
87
84
|
overflow: 'hidden',
|
|
88
|
-
}, children: _jsx(NotebookUI, { serviceManager: serviceManager }) }) })] }), _jsx(ChatSidebar, { title: "AI Assistant", position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
|
|
85
|
+
}, children: _jsx(NotebookUI, { serviceManager: serviceManager }) }) })] }), _jsx(ChatSidebar, { title: "AI Assistant", protocol: protocolConfig, position: "right", width: 400, showNewChatButton: true, showClearButton: true, showSettingsButton: true, defaultOpen: true, panelProps: {
|
|
89
86
|
protocol: protocolConfig,
|
|
90
87
|
frontendTools: tools,
|
|
91
88
|
useStore: true,
|
|
@@ -11,8 +11,8 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
11
11
|
import { useMemo } from 'react';
|
|
12
12
|
import { Box } from '@datalayer/primer-addons';
|
|
13
13
|
import { Notebook, NotebookToolbar, CellSidebarExtension, CellSidebarButton, } from '@datalayer/jupyter-react';
|
|
14
|
-
import { ThemedJupyterProvider } from './
|
|
15
|
-
import nbformatExample from './
|
|
14
|
+
import { ThemedJupyterProvider } from './utils/themedProvider';
|
|
15
|
+
import nbformatExample from './utils/notebooks/NotebookExample1.ipynb.json';
|
|
16
16
|
const NOTEBOOK_ID = 'notebook-example-1';
|
|
17
17
|
export const JupyterNotebookExample = (props) => {
|
|
18
18
|
const { serviceManager } = props;
|
|
@@ -9,7 +9,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
9
9
|
* Inspired by the AG-UI Dojo implementation, this component renders weather
|
|
10
10
|
* data with dynamic theming based on weather conditions.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module chat/InlineWeatherCard
|
|
13
13
|
*/
|
|
14
14
|
import { Spinner } from '@primer/react';
|
|
15
15
|
/**
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type ErrorViewProps = {
|
|
3
|
+
/** Primary error message. Falls back to "Agent failed to start". */
|
|
4
|
+
error?: string | null;
|
|
5
|
+
/** Optional secondary detail line shown below the primary message. */
|
|
6
|
+
detail?: string | null;
|
|
7
|
+
/** Called when the user clicks "Sign out". Button only appears for 401 errors. */
|
|
8
|
+
onLogout?: () => void;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Full-screen error view used by examples when agent creation fails.
|
|
12
|
+
* Automatically shows a "Sign out" button when the error contains "401".
|
|
13
|
+
*/
|
|
14
|
+
export declare const ErrorView: React.FC<ErrorViewProps>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text, Button } from '@primer/react';
|
|
3
|
+
import { AlertIcon, SignOutIcon } from '@primer/octicons-react';
|
|
4
|
+
import { Box } from '@datalayer/primer-addons';
|
|
5
|
+
/**
|
|
6
|
+
* Full-screen error view used by examples when agent creation fails.
|
|
7
|
+
* Automatically shows a "Sign out" button when the error contains "401".
|
|
8
|
+
*/
|
|
9
|
+
export const ErrorView = ({ error, detail, onLogout, }) => {
|
|
10
|
+
const message = error || 'Agent failed to start';
|
|
11
|
+
const is401 = String(message).includes('401') || String(detail || '').includes('401');
|
|
12
|
+
return (_jsxs(Box, { sx: {
|
|
13
|
+
display: 'flex',
|
|
14
|
+
flexDirection: 'column',
|
|
15
|
+
alignItems: 'center',
|
|
16
|
+
justifyContent: 'center',
|
|
17
|
+
height: '100vh',
|
|
18
|
+
gap: 3,
|
|
19
|
+
}, children: [_jsx(AlertIcon, { size: 48 }), _jsx(Text, { sx: { color: 'danger.fg', fontSize: 2 }, children: message }), detail && _jsx(Text, { sx: { color: 'fg.muted' }, children: detail }), is401 && onLogout && (_jsx(Button, { variant: "danger", leadingVisual: SignOutIcon, onClick: onLogout, children: "Sign out" }))] }));
|
|
20
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ExampleWrapper
|
|
4
|
+
*
|
|
5
|
+
* Wraps every example in a fixed-height container that accounts for
|
|
6
|
+
* the 60 px header bar. Examples inside can use `100vh` or `100%`
|
|
7
|
+
* freely — the wrapper clips and scrolls as needed.
|
|
8
|
+
*/
|
|
9
|
+
export declare const ExampleWrapper: React.FC<{
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}>;
|
|
12
|
+
export default ExampleWrapper;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box } from '@datalayer/primer-addons';
|
|
3
|
+
/**
|
|
4
|
+
* ExampleWrapper
|
|
5
|
+
*
|
|
6
|
+
* Wraps every example in a fixed-height container that accounts for
|
|
7
|
+
* the 60 px header bar. Examples inside can use `100vh` or `100%`
|
|
8
|
+
* freely — the wrapper clips and scrolls as needed.
|
|
9
|
+
*/
|
|
10
|
+
export const ExampleWrapper = ({ children, }) => (_jsx(Box, { sx: {
|
|
11
|
+
height: 'calc(100vh - 60px)',
|
|
12
|
+
width: '100%',
|
|
13
|
+
overflow: 'auto',
|
|
14
|
+
position: 'relative',
|
|
15
|
+
}, children: children }));
|
|
16
|
+
export default ExampleWrapper;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ExampleAgentStatus } from '../../types';
|
|
3
3
|
export interface HeaderProps {
|
|
4
4
|
activeSession: string;
|
|
5
5
|
agentName?: string;
|
|
6
6
|
agentDescription?: string;
|
|
7
|
-
agentStatus?:
|
|
7
|
+
agentStatus?: ExampleAgentStatus;
|
|
8
8
|
showContextTree: boolean;
|
|
9
9
|
isNewAgent?: boolean;
|
|
10
10
|
isConfigured?: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Box } from '@datalayer/primer-addons';
|
|
3
|
-
import { Sparklines, SparklinesLine } from '
|
|
3
|
+
import { Sparklines, SparklinesLine, } from '@datalayer/core/lib/components/sparklines';
|
|
4
4
|
/**
|
|
5
5
|
* Header Controls Component
|
|
6
6
|
*
|
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import 'prismjs/components/prism-clike';
|
|
3
|
-
import 'prismjs/components/prism-javascript';
|
|
4
|
-
import 'prismjs/components/prism-markup';
|
|
5
|
-
import 'prismjs/components/prism-markdown';
|
|
6
|
-
import 'prismjs/components/prism-c';
|
|
7
|
-
import 'prismjs/components/prism-css';
|
|
8
|
-
import 'prismjs/components/prism-objectivec';
|
|
9
|
-
import 'prismjs/components/prism-sql';
|
|
10
|
-
import 'prismjs/components/prism-python';
|
|
11
|
-
import 'prismjs/components/prism-rust';
|
|
12
|
-
import 'prismjs/components/prism-swift';
|
|
1
|
+
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
13
2
|
import React from 'react';
|
|
14
3
|
import type { ServiceManager } from '@jupyterlab/services';
|
|
15
4
|
import type { ToolbarItem } from '@datalayer/primer-addons';
|
|
@@ -3,18 +3,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
3
3
|
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
4
|
* Distributed under the terms of the Modified BSD License.
|
|
5
5
|
*/
|
|
6
|
-
import '
|
|
7
|
-
import 'prismjs/components/prism-clike';
|
|
8
|
-
import 'prismjs/components/prism-javascript';
|
|
9
|
-
import 'prismjs/components/prism-markup';
|
|
10
|
-
import 'prismjs/components/prism-markdown';
|
|
11
|
-
import 'prismjs/components/prism-c';
|
|
12
|
-
import 'prismjs/components/prism-css';
|
|
13
|
-
import 'prismjs/components/prism-objectivec';
|
|
14
|
-
import 'prismjs/components/prism-sql';
|
|
15
|
-
import 'prismjs/components/prism-python';
|
|
16
|
-
import 'prismjs/components/prism-rust';
|
|
17
|
-
import 'prismjs/components/prism-swift';
|
|
6
|
+
import '@datalayer/jupyter-react/lib/css/PrismCss';
|
|
18
7
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
19
8
|
import { $getRoot, $createParagraphNode } from 'lexical';
|
|
20
9
|
import { LexicalComposer } from '@lexical/react/LexicalComposer';
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
import { type McpServerSelection } from '../../components/McpServerManager';
|
|
2
|
+
import { McpServerSelection } from '../../types';
|
|
4
3
|
export interface MainContentProps {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
onTimeTravelChange: (value: number) => void;
|
|
8
|
-
richEditor: boolean;
|
|
9
|
-
notebookFile?: string;
|
|
10
|
-
lexicalFile?: string;
|
|
11
|
-
isNewAgent?: boolean;
|
|
12
|
-
serviceManager?: ServiceManager.IManager;
|
|
4
|
+
/** Whether to show the welcome message */
|
|
5
|
+
showWelcomeMessage?: boolean;
|
|
13
6
|
/** Base URL for MCP API */
|
|
14
7
|
baseUrl?: string;
|
|
15
8
|
/** Agent ID for updating the running agent */
|
|
@@ -28,7 +21,7 @@ export interface MainContentProps {
|
|
|
28
21
|
/**
|
|
29
22
|
* Main Content Component
|
|
30
23
|
*
|
|
31
|
-
* Displays the main content area with
|
|
24
|
+
* Displays the main content area with a welcome message.
|
|
32
25
|
* When an agent is running (isConfigured=true), also shows the MCP Server Manager for runtime management.
|
|
33
26
|
*/
|
|
34
27
|
export declare const MainContent: React.FC<MainContentProps>;
|
|
@@ -1,68 +1,14 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
-
* Distributed under the terms of the Modified BSD License.
|
|
5
|
-
*/
|
|
6
|
-
import React from 'react';
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
2
|
import { Text } from '@primer/react';
|
|
8
3
|
import { Box } from '@datalayer/primer-addons';
|
|
9
|
-
import {
|
|
10
|
-
import { TimeTravel } from './TimeTravel';
|
|
11
|
-
import { LexicalEditor } from './LexicalEditor';
|
|
12
|
-
import { McpServerManager, } from '../../components/McpServerManager';
|
|
13
|
-
import matplotlib from '../stores/notebooks/NotebookExample2.ipynb.json';
|
|
14
|
-
import emptyNotebook from '../stores/notebooks/Empty.ipynb.json';
|
|
4
|
+
import { McpServerManager } from '../../mcp/McpServerManager';
|
|
15
5
|
/**
|
|
16
6
|
* Main Content Component
|
|
17
7
|
*
|
|
18
|
-
* Displays the main content area with
|
|
8
|
+
* Displays the main content area with a welcome message.
|
|
19
9
|
* When an agent is running (isConfigured=true), also shows the MCP Server Manager for runtime management.
|
|
20
10
|
*/
|
|
21
|
-
export const MainContent = ({
|
|
22
|
-
// Use the provided notebook or fall back to matplotlib demo
|
|
23
|
-
const [notebookData, setNotebookData] = React.useState(matplotlib);
|
|
24
|
-
const [lexicalContent, setLexicalContent] = React.useState(undefined);
|
|
25
|
-
React.useEffect(() => {
|
|
26
|
-
if (isNewAgent) {
|
|
27
|
-
// Use empty notebook for new agent
|
|
28
|
-
setNotebookData(emptyNotebook);
|
|
29
|
-
setLexicalContent(undefined);
|
|
30
|
-
}
|
|
31
|
-
else if (notebookFile) {
|
|
32
|
-
// Dynamically import the notebook based on the file name
|
|
33
|
-
import(
|
|
34
|
-
/* webpackIgnore: true */ /* @vite-ignore */ `../stores/agents/${notebookFile}`)
|
|
35
|
-
.then(module => {
|
|
36
|
-
setNotebookData(module.default);
|
|
37
|
-
})
|
|
38
|
-
.catch(() => {
|
|
39
|
-
// If the file doesn't exist, use matplotlib as fallback
|
|
40
|
-
setNotebookData(matplotlib);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
setNotebookData(matplotlib);
|
|
45
|
-
}
|
|
46
|
-
}, [notebookFile, isNewAgent]);
|
|
47
|
-
React.useEffect(() => {
|
|
48
|
-
if (lexicalFile && !isNewAgent) {
|
|
49
|
-
// Dynamically import the lexical file based on the file name
|
|
50
|
-
import(
|
|
51
|
-
/* webpackIgnore: true */ /* @vite-ignore */ `../stores/agents/${lexicalFile}`)
|
|
52
|
-
.then(module => {
|
|
53
|
-
// Convert the JSON to a string if needed
|
|
54
|
-
setLexicalContent(typeof module.default === 'string'
|
|
55
|
-
? module.default
|
|
56
|
-
: JSON.stringify(module.default));
|
|
57
|
-
})
|
|
58
|
-
.catch(() => {
|
|
59
|
-
setLexicalContent(undefined);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
setLexicalContent(undefined);
|
|
64
|
-
}
|
|
65
|
-
}, [lexicalFile, isNewAgent]);
|
|
11
|
+
export const MainContent = ({ showWelcomeMessage = true, baseUrl, agentId, enableCodemode, selectedMcpServers, onSelectedMcpServersChange, onMcpServersChange, isConfigured, }) => {
|
|
66
12
|
return (_jsxs(Box, { sx: { height: '100%', overflow: 'auto', padding: 3 }, children: [isConfigured && baseUrl && (_jsx(Box, { sx: {
|
|
67
13
|
mb: 4,
|
|
68
14
|
p: 3,
|
|
@@ -70,10 +16,10 @@ export const MainContent = ({ showNotebook, timeTravel, onTimeTravelChange, rich
|
|
|
70
16
|
borderRadius: 2,
|
|
71
17
|
border: '1px solid',
|
|
72
18
|
borderColor: 'border.default',
|
|
73
|
-
}, children: _jsx(McpServerManager, { baseUrl: baseUrl, agentId: agentId, enableCodemode: enableCodemode, selectedServers: selectedMcpServers, onSelectedServersChange: onSelectedMcpServersChange, onServersChange: onMcpServersChange, disabled: false }) })),
|
|
19
|
+
}, children: _jsx(McpServerManager, { baseUrl: baseUrl, agentId: agentId, enableCodemode: enableCodemode, selectedServers: selectedMcpServers, onSelectedServersChange: onSelectedMcpServersChange, onServersChange: onMcpServersChange, disabled: false }) })), showWelcomeMessage && (_jsx(Box, { sx: {
|
|
74
20
|
display: 'flex',
|
|
75
21
|
alignItems: 'center',
|
|
76
22
|
justifyContent: 'center',
|
|
77
23
|
height: '100%',
|
|
78
|
-
}, children: _jsx(Text, { sx: { color: 'fg.muted' }, children: "
|
|
24
|
+
}, children: _jsx(Text, { sx: { color: 'fg.muted', fontSize: 1 }, children: "Configure your agent and start a conversation using the chat panel." }) }))] }));
|
|
79
25
|
};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { ErrorView } from './ErrorView';
|
|
2
|
+
export type { ErrorViewProps } from './ErrorView';
|
|
1
3
|
export { MockFileBrowser } from './MockFileBrowser';
|
|
2
4
|
export type { MockFileBrowserProps } from './MockFileBrowser';
|
|
3
5
|
export { MainContent } from './MainContent';
|
|
@@ -14,3 +16,4 @@ export { TimeTravel } from './TimeTravel';
|
|
|
14
16
|
export type { TimeTravelProps } from './TimeTravel';
|
|
15
17
|
export { LexicalEditor } from './LexicalEditor';
|
|
16
18
|
export type { LexicalEditorProps } from './LexicalEditor';
|
|
19
|
+
export { ExampleWrapper } from './ExampleWrapper';
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
5
|
// Example/layout components
|
|
6
|
+
export { ErrorView } from './ErrorView';
|
|
6
7
|
export { MockFileBrowser } from './MockFileBrowser';
|
|
7
8
|
export { MainContent } from './MainContent';
|
|
8
9
|
export { SessionTabs } from './SessionTabs';
|
|
@@ -11,3 +12,4 @@ export { HeaderControls } from './HeaderControls';
|
|
|
11
12
|
export { FooterMetrics } from './FooterMetrics';
|
|
12
13
|
export { TimeTravel } from './TimeTravel';
|
|
13
14
|
export { LexicalEditor } from './LexicalEditor';
|
|
15
|
+
export { ExampleWrapper } from './ExampleWrapper';
|