@datalayer/agent-runtimes 1.0.1 → 1.0.3
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 +1 -1
- 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 +25 -16
- 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 +1287 -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 +319 -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 +169 -0
- package/lib/client/AgentsMixin.js +279 -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 +152 -0
- package/lib/components/OutputCard.d.ts +8 -0
- package/lib/components/OutputCard.js +80 -0
- package/lib/components/ToolApprovalCard.d.ts +33 -0
- package/lib/components/ToolApprovalCard.js +60 -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 +506 -0
- package/lib/examples/AgentCodemodeExample.d.ts +14 -0
- package/lib/examples/AgentCodemodeExample.js +262 -0
- package/lib/examples/AgentEvalsExample.d.ts +14 -0
- package/lib/examples/AgentEvalsExample.js +216 -0
- package/lib/examples/AgentGuardrailsExample.d.ts +14 -0
- package/lib/examples/AgentGuardrailsExample.js +218 -0
- package/lib/examples/AgentMemoryExample.d.ts +14 -0
- package/lib/examples/AgentMemoryExample.js +234 -0
- package/lib/examples/AgentMonitoringExample.d.ts +13 -0
- package/lib/examples/AgentMonitoringExample.js +311 -0
- package/lib/examples/AgentNotificationsExample.d.ts +14 -0
- package/lib/examples/AgentNotificationsExample.js +273 -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 +211 -0
- package/lib/examples/AgentSandboxExample.d.ts +17 -0
- package/lib/examples/AgentSandboxExample.js +496 -0
- package/lib/examples/AgentSkillsExample.d.ts +3 -0
- package/lib/examples/AgentSkillsExample.js +290 -0
- package/lib/examples/AgentToolApprovalsExample.d.ts +3 -0
- package/lib/examples/AgentToolApprovalsExample.js +672 -0
- package/lib/examples/AgentTriggersExample.d.ts +14 -0
- package/lib/examples/AgentTriggersExample.js +523 -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} +4 -4
- 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/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 +1 -0
- package/lib/examples/components/index.js +1 -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 +6 -0
- package/lib/examples/main.js +20 -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 +37 -12
- package/lib/hooks/index.js +37 -12
- 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/useAgentsCatalog.d.ts +25 -0
- package/lib/hooks/useAgentsCatalog.js +28 -0
- 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 +2 -3
- package/lib/{components → mcp}/McpServerManager.js +1 -1
- 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 +31 -7
- package/lib/protocols/VercelAIAdapter.js +682 -0
- package/lib/{components/chat/protocols → protocols}/index.d.ts +1 -2
- package/lib/{components/chat/protocols → protocols}/index.js +1 -1
- package/lib/specs/agents/agents.d.ts +54 -0
- package/lib/specs/agents/agents.js +2638 -0
- package/lib/specs/agents/index.js +14 -7
- package/lib/specs/envvars.d.ts +11 -19
- package/lib/specs/envvars.js +42 -21
- package/lib/specs/evals.d.ts +20 -0
- package/lib/specs/evals.js +133 -0
- package/lib/specs/events.d.ts +18 -0
- package/lib/specs/events.js +182 -0
- package/lib/specs/frontendTools.d.ts +14 -0
- package/lib/specs/frontendTools.js +53 -0
- package/lib/specs/guardrails.d.ts +22 -0
- package/lib/specs/guardrails.js +391 -0
- package/lib/specs/index.d.ts +15 -2
- package/lib/specs/index.js +15 -2
- package/lib/specs/mcpServers.d.ts +13 -10
- package/lib/specs/mcpServers.js +95 -25
- package/lib/specs/memory.d.ts +34 -0
- package/lib/specs/memory.js +99 -0
- package/lib/specs/models.d.ts +22 -35
- package/lib/specs/models.js +64 -44
- package/lib/specs/notifications.d.ts +17 -0
- package/lib/specs/notifications.js +187 -0
- package/lib/specs/outputs.d.ts +19 -0
- package/lib/specs/outputs.js +112 -0
- package/lib/specs/skills.d.ts +7 -16
- package/lib/specs/skills.js +89 -12
- package/lib/specs/teams/index.d.ts +17 -0
- package/lib/specs/teams/index.js +37 -0
- package/lib/specs/teams/teams.d.ts +27 -0
- package/lib/specs/teams/teams.js +1120 -0
- package/lib/specs/tools.d.ts +15 -0
- package/lib/specs/tools.js +83 -0
- package/lib/specs/triggers.d.ts +15 -0
- package/lib/specs/triggers.js +117 -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 +2 -2
- package/lib/{components/chat/store → stores}/conversationStore.js +3 -3
- 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} +60 -100
- 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} +59 -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__/generate_agents.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/generate_agents.py +464 -58
- package/scripts/codegen/generate_envvars.py +36 -35
- package/scripts/codegen/generate_evals.py +279 -0
- package/scripts/codegen/generate_events.py +312 -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 +326 -0
- package/scripts/codegen/generate_triggers.py +295 -0
- package/scripts/codegen/versioning.py +53 -0
- package/lib/components/chat/components/base/ChatBase.js +0 -2240
- 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/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 -151
- 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 -308
- 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 -282
- package/lib/specs/agents/datalayer-ai/index.d.ts +0 -1
- package/lib/specs/agents/datalayer-ai/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 -189
- /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/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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Catalog
|
|
3
|
+
*
|
|
4
|
+
* Predefined runtime tools that can be attached to agents.
|
|
5
|
+
*
|
|
6
|
+
* This file is AUTO-GENERATED from YAML specifications.
|
|
7
|
+
* DO NOT EDIT MANUALLY - run 'make specs' to regenerate.
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolSpec } from '../types';
|
|
10
|
+
export declare const RUNTIME_ECHO_TOOL_SPEC_0_0_1: ToolSpec;
|
|
11
|
+
export declare const RUNTIME_SEND_MAIL_TOOL_SPEC_0_0_1: ToolSpec;
|
|
12
|
+
export declare const RUNTIME_SENSITIVE_ECHO_TOOL_SPEC_0_0_1: ToolSpec;
|
|
13
|
+
export declare const TOOL_CATALOG: Record<string, ToolSpec>;
|
|
14
|
+
export declare function getToolSpecs(): ToolSpec[];
|
|
15
|
+
export declare function getToolSpec(toolId: string): ToolSpec | undefined;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Tool Definitions
|
|
7
|
+
// ============================================================================
|
|
8
|
+
export const RUNTIME_ECHO_TOOL_SPEC_0_0_1 = {
|
|
9
|
+
id: 'runtime-echo',
|
|
10
|
+
version: '0.0.1',
|
|
11
|
+
name: 'Runtime Echo',
|
|
12
|
+
description: 'Echo text back to the caller for quick runtime verification.',
|
|
13
|
+
tags: ['runtime', 'utility'],
|
|
14
|
+
enabled: true,
|
|
15
|
+
approval: 'auto',
|
|
16
|
+
requiresApproval: false,
|
|
17
|
+
runtime: {
|
|
18
|
+
language: 'python',
|
|
19
|
+
package: 'agent_runtimes.examples.tools',
|
|
20
|
+
method: 'runtime_echo',
|
|
21
|
+
},
|
|
22
|
+
icon: 'comment',
|
|
23
|
+
emoji: '💬',
|
|
24
|
+
};
|
|
25
|
+
export const RUNTIME_SEND_MAIL_TOOL_SPEC_0_0_1 = {
|
|
26
|
+
id: 'runtime-send-mail',
|
|
27
|
+
version: '0.0.1',
|
|
28
|
+
name: 'Runtime Send Mail (Fake)',
|
|
29
|
+
description: 'Fake mail sender for tool approval demos; returns a simulated send receipt.',
|
|
30
|
+
tags: ['runtime', 'approval', 'mail'],
|
|
31
|
+
enabled: true,
|
|
32
|
+
approval: 'manual',
|
|
33
|
+
requiresApproval: true,
|
|
34
|
+
runtime: {
|
|
35
|
+
language: 'python',
|
|
36
|
+
package: 'agent_runtimes.examples.tools',
|
|
37
|
+
method: 'runtime_send_mail',
|
|
38
|
+
},
|
|
39
|
+
icon: 'mail',
|
|
40
|
+
emoji: '📧',
|
|
41
|
+
};
|
|
42
|
+
export const RUNTIME_SENSITIVE_ECHO_TOOL_SPEC_0_0_1 = {
|
|
43
|
+
id: 'runtime-sensitive-echo',
|
|
44
|
+
version: '0.0.1',
|
|
45
|
+
name: 'Runtime Sensitive Echo',
|
|
46
|
+
description: 'Echo text with a manual approval checkpoint before execution.',
|
|
47
|
+
tags: ['runtime', 'approval'],
|
|
48
|
+
enabled: true,
|
|
49
|
+
approval: 'manual',
|
|
50
|
+
requiresApproval: true,
|
|
51
|
+
runtime: {
|
|
52
|
+
language: 'python',
|
|
53
|
+
package: 'agent_runtimes.examples.tools',
|
|
54
|
+
method: 'runtime_sensitive_echo',
|
|
55
|
+
},
|
|
56
|
+
icon: 'shield',
|
|
57
|
+
emoji: '🛡️',
|
|
58
|
+
};
|
|
59
|
+
// ============================================================================
|
|
60
|
+
// Tool Catalog
|
|
61
|
+
// ============================================================================
|
|
62
|
+
export const TOOL_CATALOG = {
|
|
63
|
+
'runtime-echo': RUNTIME_ECHO_TOOL_SPEC_0_0_1,
|
|
64
|
+
'runtime-send-mail': RUNTIME_SEND_MAIL_TOOL_SPEC_0_0_1,
|
|
65
|
+
'runtime-sensitive-echo': RUNTIME_SENSITIVE_ECHO_TOOL_SPEC_0_0_1,
|
|
66
|
+
};
|
|
67
|
+
export function getToolSpecs() {
|
|
68
|
+
return Object.values(TOOL_CATALOG);
|
|
69
|
+
}
|
|
70
|
+
function resolveToolId(toolId) {
|
|
71
|
+
if (toolId in TOOL_CATALOG)
|
|
72
|
+
return toolId;
|
|
73
|
+
const idx = toolId.lastIndexOf(':');
|
|
74
|
+
if (idx > 0) {
|
|
75
|
+
const base = toolId.slice(0, idx);
|
|
76
|
+
if (base in TOOL_CATALOG)
|
|
77
|
+
return base;
|
|
78
|
+
}
|
|
79
|
+
return toolId;
|
|
80
|
+
}
|
|
81
|
+
export function getToolSpec(toolId) {
|
|
82
|
+
return TOOL_CATALOG[resolveToolId(toolId)];
|
|
83
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trigger Catalog
|
|
3
|
+
*
|
|
4
|
+
* Predefined trigger type configurations.
|
|
5
|
+
*
|
|
6
|
+
* This file is AUTO-GENERATED from YAML specifications.
|
|
7
|
+
* DO NOT EDIT MANUALLY - run 'make specs' to regenerate.
|
|
8
|
+
*/
|
|
9
|
+
import type { TriggerSpec } from '../types';
|
|
10
|
+
export declare const EVENT_TRIGGER_SPEC_0_0_1: TriggerSpec;
|
|
11
|
+
export declare const ONCE_TRIGGER_SPEC_0_0_1: TriggerSpec;
|
|
12
|
+
export declare const SCHEDULE_TRIGGER_SPEC_0_0_1: TriggerSpec;
|
|
13
|
+
export declare const TRIGGER_CATALOG: Record<string, TriggerSpec>;
|
|
14
|
+
export declare function getTriggerSpecs(): TriggerSpec[];
|
|
15
|
+
export declare function getTriggerSpec(triggerId: string): TriggerSpec | undefined;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Trigger Definitions
|
|
7
|
+
// ============================================================================
|
|
8
|
+
export const EVENT_TRIGGER_SPEC_0_0_1 = {
|
|
9
|
+
id: 'event',
|
|
10
|
+
version: '0.0.1',
|
|
11
|
+
name: 'Event-Based',
|
|
12
|
+
description: 'Trigger on specific events such as a webhook call, API request, database change, file upload, or email arrival.',
|
|
13
|
+
type: 'event',
|
|
14
|
+
fields: [
|
|
15
|
+
{
|
|
16
|
+
name: 'event_source',
|
|
17
|
+
label: 'Event Source URL',
|
|
18
|
+
type: 'string',
|
|
19
|
+
required: false,
|
|
20
|
+
placeholder: 'https://helpdesk.example.com/webhooks',
|
|
21
|
+
help: 'Allowed event source URL (leave empty to allow any source)',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'event',
|
|
25
|
+
label: 'Event Name',
|
|
26
|
+
type: 'string',
|
|
27
|
+
required: false,
|
|
28
|
+
placeholder: 'email_received',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'description',
|
|
32
|
+
label: 'Description',
|
|
33
|
+
type: 'string',
|
|
34
|
+
required: false,
|
|
35
|
+
placeholder: "Description (e.g. 'Triggered on incoming email')",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'prompt',
|
|
39
|
+
label: 'Trigger Prompt',
|
|
40
|
+
type: 'string',
|
|
41
|
+
required: false,
|
|
42
|
+
placeholder: 'Handle the incoming event and execute the agent end-to-end.',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
export const ONCE_TRIGGER_SPEC_0_0_1 = {
|
|
47
|
+
id: 'once',
|
|
48
|
+
version: '0.0.1',
|
|
49
|
+
name: 'Run Once',
|
|
50
|
+
description: 'Execute agent immediately after deployment.',
|
|
51
|
+
type: 'once',
|
|
52
|
+
fields: [
|
|
53
|
+
{
|
|
54
|
+
name: 'prompt',
|
|
55
|
+
label: 'Trigger Prompt',
|
|
56
|
+
type: 'string',
|
|
57
|
+
required: false,
|
|
58
|
+
placeholder: 'Start when requested by a user and complete the agent once.',
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
export const SCHEDULE_TRIGGER_SPEC_0_0_1 = {
|
|
63
|
+
id: 'schedule',
|
|
64
|
+
version: '0.0.1',
|
|
65
|
+
name: 'Schedule',
|
|
66
|
+
description: 'Run on a recurring schedule using a cron expression (e.g. daily at 9 AM, every Monday, monthly on the 1st).',
|
|
67
|
+
type: 'schedule',
|
|
68
|
+
fields: [
|
|
69
|
+
{
|
|
70
|
+
name: 'cron',
|
|
71
|
+
label: 'Cron Expression',
|
|
72
|
+
type: 'string',
|
|
73
|
+
required: true,
|
|
74
|
+
placeholder: '0 9 * * * (every day at 9 AM)',
|
|
75
|
+
font: 'mono',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: 'description',
|
|
79
|
+
label: 'Description',
|
|
80
|
+
type: 'string',
|
|
81
|
+
required: false,
|
|
82
|
+
placeholder: "Description (e.g. 'Monthly sales report')",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'prompt',
|
|
86
|
+
label: 'Trigger Prompt',
|
|
87
|
+
type: 'string',
|
|
88
|
+
required: false,
|
|
89
|
+
placeholder: 'Run the scheduled agent and produce the configured deliverable.',
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
// ============================================================================
|
|
94
|
+
// Trigger Catalog
|
|
95
|
+
// ============================================================================
|
|
96
|
+
export const TRIGGER_CATALOG = {
|
|
97
|
+
event: EVENT_TRIGGER_SPEC_0_0_1,
|
|
98
|
+
once: ONCE_TRIGGER_SPEC_0_0_1,
|
|
99
|
+
schedule: SCHEDULE_TRIGGER_SPEC_0_0_1,
|
|
100
|
+
};
|
|
101
|
+
export function getTriggerSpecs() {
|
|
102
|
+
return Object.values(TRIGGER_CATALOG);
|
|
103
|
+
}
|
|
104
|
+
function resolveTriggerIdTs(triggerId) {
|
|
105
|
+
if (triggerId in TRIGGER_CATALOG)
|
|
106
|
+
return triggerId;
|
|
107
|
+
const idx = triggerId.lastIndexOf(':');
|
|
108
|
+
if (idx > 0) {
|
|
109
|
+
const base = triggerId.slice(0, idx);
|
|
110
|
+
if (base in TRIGGER_CATALOG)
|
|
111
|
+
return base;
|
|
112
|
+
}
|
|
113
|
+
return triggerId;
|
|
114
|
+
}
|
|
115
|
+
export function getTriggerSpec(triggerId) {
|
|
116
|
+
return TRIGGER_CATALOG[resolveTriggerIdTs(triggerId)];
|
|
117
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { ServiceManager } from '@jupyterlab/services';
|
|
2
|
+
import type { IRuntimeOptions } from '@datalayer/core/lib/stateful/runtimes/apis';
|
|
3
|
+
import type { AgentStatus, AgentConnection, AgentConfig, Protocol } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* A URL-addressable agent that has been previously connected.
|
|
6
|
+
* May originate from an agent runtime pod OR from the stable agents service.
|
|
7
|
+
*/
|
|
8
|
+
export interface AgentRegistryEntry {
|
|
9
|
+
/** Unique agent identifier */
|
|
10
|
+
id: string;
|
|
11
|
+
/** Display name */
|
|
12
|
+
name: string;
|
|
13
|
+
/** Agent description */
|
|
14
|
+
description: string;
|
|
15
|
+
/** Base URL for the agent */
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
/** Transport protocol used */
|
|
18
|
+
protocol: Protocol;
|
|
19
|
+
/** Current status */
|
|
20
|
+
status: AgentStatus;
|
|
21
|
+
/** Last error message if status is 'error' */
|
|
22
|
+
error?: string | null;
|
|
23
|
+
/** Timestamp of last update */
|
|
24
|
+
lastUpdated: number;
|
|
25
|
+
/** Document ID (for document-based agents) */
|
|
26
|
+
documentId?: string;
|
|
27
|
+
/** Runtime ID (for agent runtime pods) */
|
|
28
|
+
runtimeId?: string;
|
|
29
|
+
/** Author name (optional, for display) */
|
|
30
|
+
author?: string;
|
|
31
|
+
/** Avatar URL (optional, for display) */
|
|
32
|
+
avatarUrl?: string;
|
|
33
|
+
}
|
|
34
|
+
/** State for the currently-connected agent runtime pod. */
|
|
35
|
+
export interface agentsStoreState {
|
|
36
|
+
/** Current runtime connection (null if not connected) */
|
|
37
|
+
runtime: AgentConnection | null;
|
|
38
|
+
/** Current status */
|
|
39
|
+
status: AgentStatus;
|
|
40
|
+
/** Error message if any */
|
|
41
|
+
error: string | null;
|
|
42
|
+
/** Whether a launch is in progress */
|
|
43
|
+
isLaunching: boolean;
|
|
44
|
+
}
|
|
45
|
+
/** Actions for the agent runtime pod lifecycle. */
|
|
46
|
+
export interface agentsStoreActions {
|
|
47
|
+
/** Launch a new runtime pod */
|
|
48
|
+
launchAgent: (options: IRuntimeOptions) => Promise<AgentConnection>;
|
|
49
|
+
/** Connect to an existing runtime pod */
|
|
50
|
+
connectAgent: (connection: {
|
|
51
|
+
podName: string;
|
|
52
|
+
environmentName: string;
|
|
53
|
+
serviceManager?: ServiceManager.IManager;
|
|
54
|
+
jupyterBaseUrl?: string;
|
|
55
|
+
kernelId?: string;
|
|
56
|
+
}) => void;
|
|
57
|
+
/** Create an agent process on the connected runtime */
|
|
58
|
+
createAgent: (config?: AgentConfig) => Promise<Pick<AgentConnection, 'agentId' | 'endpoint' | 'isReady'>>;
|
|
59
|
+
/** Disconnect from the current runtime */
|
|
60
|
+
disconnect: () => void;
|
|
61
|
+
/** Clear any errors */
|
|
62
|
+
clearError: () => void;
|
|
63
|
+
/** Set error */
|
|
64
|
+
setError: (error: string) => void;
|
|
65
|
+
/** Reset store to initial state */
|
|
66
|
+
reset: () => void;
|
|
67
|
+
}
|
|
68
|
+
export type agentsStore = agentsStoreState & agentsStoreActions;
|
|
69
|
+
/** Persisted registry of URL-addressable agents. */
|
|
70
|
+
export type AgentRegistryState = {
|
|
71
|
+
/** Registered agents */
|
|
72
|
+
agents: readonly AgentRegistryEntry[];
|
|
73
|
+
/** Add or update an agent entry */
|
|
74
|
+
upsertAgent: (agent: Partial<AgentRegistryEntry> & {
|
|
75
|
+
id: string;
|
|
76
|
+
baseUrl: string;
|
|
77
|
+
protocol: Protocol;
|
|
78
|
+
}) => void;
|
|
79
|
+
/** Get agent by ID */
|
|
80
|
+
getAgentById: (id: string) => AgentRegistryEntry | undefined;
|
|
81
|
+
/** Get agent by baseUrl and transport */
|
|
82
|
+
getAgentByUrl: (baseUrl: string, protocol: Protocol) => AgentRegistryEntry | undefined;
|
|
83
|
+
/** Update agent status */
|
|
84
|
+
updateAgentStatus: (id: string, status: AgentStatus, error?: string | null) => void;
|
|
85
|
+
/** Toggle agent status between running/paused */
|
|
86
|
+
toggleAgentStatus: (id: string) => void;
|
|
87
|
+
/** Remove an agent entry */
|
|
88
|
+
deleteAgent: (id: string) => void;
|
|
89
|
+
/** Clear all agent entries */
|
|
90
|
+
clearAgents: () => void;
|
|
91
|
+
};
|
|
92
|
+
export type AgentState = AgentRegistryState & agentsStoreState & agentsStoreActions;
|
|
93
|
+
export declare const agentStore: Omit<import("zustand").StoreApi<AgentState>, "persist"> & {
|
|
94
|
+
persist: {
|
|
95
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<AgentState, unknown>>) => void;
|
|
96
|
+
clearStorage: () => void;
|
|
97
|
+
rehydrate: () => Promise<void> | void;
|
|
98
|
+
hasHydrated: () => boolean;
|
|
99
|
+
onHydrate: (fn: (state: AgentState) => void) => () => void;
|
|
100
|
+
onFinishHydration: (fn: (state: AgentState) => void) => () => void;
|
|
101
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<AgentState, unknown>>;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
export declare function useAgentStore(): AgentState;
|
|
105
|
+
export declare function useAgentStore<T>(selector: (state: AgentState) => T): T;
|
|
106
|
+
/** Currently-connected agent runtime pod connection. */
|
|
107
|
+
export declare const useAgentRuntime: () => AgentConnection | null;
|
|
108
|
+
/**
|
|
109
|
+
* @deprecated Use useAgentRuntime() — agent fields are merged onto the runtime connection.
|
|
110
|
+
*/
|
|
111
|
+
export declare const useAgentFromStore: () => {
|
|
112
|
+
agentId: string | undefined;
|
|
113
|
+
endpoint: string | undefined;
|
|
114
|
+
isReady: boolean | undefined;
|
|
115
|
+
} | null;
|
|
116
|
+
export declare const useAgentStatus: () => AgentStatus;
|
|
117
|
+
export declare const useAgentError: () => string | null;
|
|
118
|
+
export declare const useIsLaunching: () => boolean;
|
|
119
|
+
/** Get agent runtime store state outside React. */
|
|
120
|
+
export declare const getAgentState: () => AgentState;
|
|
121
|
+
/** Subscribe to agent runtime store outside React. */
|
|
122
|
+
export declare const subscribeToAgent: (listener: (state: AgentState, prevState: AgentState) => void) => () => void;
|
|
123
|
+
export default useAgentStore;
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Zustand store for agent runtime connection state.
|
|
7
|
+
*
|
|
8
|
+
* Manages two distinct concepts:
|
|
9
|
+
*
|
|
10
|
+
* 1. **Agent Runtime** — a single currently-connected pod (launch, connect,
|
|
11
|
+
* create agent, disconnect). Runtime pods are ephemeral; they have a
|
|
12
|
+
* `podName` and a lifecycle (idle → launching → ready → disconnected).
|
|
13
|
+
*
|
|
14
|
+
* 2. **Agents Registry** — a persisted registry of URL-addressable agents
|
|
15
|
+
* that were previously connected. Each entry has a `baseUrl` + transport
|
|
16
|
+
* pair and can be from any source (agent runtimes OR the stable agents
|
|
17
|
+
* service at `/api/v1/ai-agents/`).
|
|
18
|
+
*
|
|
19
|
+
* @module store/agentsStore
|
|
20
|
+
*/
|
|
21
|
+
import { createStore } from 'zustand/vanilla';
|
|
22
|
+
import { useStore } from 'zustand';
|
|
23
|
+
import { persist, createJSONStorage } from 'zustand/middleware';
|
|
24
|
+
// ─── Helper: build the transport-specific endpoint URL ────────────────────
|
|
25
|
+
function getTransportEndpoint(baseUrl, transport, agentId) {
|
|
26
|
+
switch (transport) {
|
|
27
|
+
case 'vercel-ai':
|
|
28
|
+
return `${baseUrl}/api/v1/vercel-ai/${agentId}`;
|
|
29
|
+
case 'a2a':
|
|
30
|
+
return `${baseUrl}/api/v1/a2a/agents/${agentId}/`;
|
|
31
|
+
case 'acp':
|
|
32
|
+
return `${baseUrl}/api/v1/acp/ws/${agentId}`;
|
|
33
|
+
case 'ag-ui':
|
|
34
|
+
default:
|
|
35
|
+
return `${baseUrl}/api/v1/ag-ui/${agentId}/`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// ─── Helper: register agent on the runtime ────────────────────────────────
|
|
39
|
+
async function createAgentOnRuntime(agentBaseUrl, agentId, config = {}) {
|
|
40
|
+
const transport = config.protocol || 'ag-ui';
|
|
41
|
+
const response = await fetch(`${agentBaseUrl}/api/v1/agents`, {
|
|
42
|
+
method: 'POST',
|
|
43
|
+
headers: { 'Content-Type': 'application/json' },
|
|
44
|
+
body: JSON.stringify({
|
|
45
|
+
name: config.name || agentId,
|
|
46
|
+
description: config.description || 'AI assistant',
|
|
47
|
+
agent_library: config.agentLibrary || 'pydantic-ai',
|
|
48
|
+
transport,
|
|
49
|
+
model: config.model || 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
|
|
50
|
+
system_prompt: config.systemPrompt || 'You are a helpful AI assistant.',
|
|
51
|
+
}),
|
|
52
|
+
});
|
|
53
|
+
if (response.ok || response.status === 400) {
|
|
54
|
+
// 400 means agent already exists, which is fine
|
|
55
|
+
const endpoint = getTransportEndpoint(agentBaseUrl, transport, agentId);
|
|
56
|
+
return { agentId, endpoint, isReady: true };
|
|
57
|
+
}
|
|
58
|
+
const errorData = await response.json().catch(() => ({}));
|
|
59
|
+
throw new Error(errorData.detail || `Failed to create agent: ${response.status}`);
|
|
60
|
+
}
|
|
61
|
+
// ─── Initial runtime state ────────────────────────────────────────────────
|
|
62
|
+
const initialRuntimeState = {
|
|
63
|
+
runtime: null,
|
|
64
|
+
status: 'idle',
|
|
65
|
+
error: null,
|
|
66
|
+
isLaunching: false,
|
|
67
|
+
};
|
|
68
|
+
// ─── Combined Zustand store ───────────────────────────────────────────────
|
|
69
|
+
export const agentStore = createStore()(persist((set, get) => ({
|
|
70
|
+
// ── Agent registry ────────────────────────────────────────────────
|
|
71
|
+
agents: [],
|
|
72
|
+
upsertAgent: agentData => {
|
|
73
|
+
set(state => {
|
|
74
|
+
const existingIndex = state.agents.findIndex(a => a.id === agentData.id);
|
|
75
|
+
const now = Date.now();
|
|
76
|
+
if (existingIndex >= 0) {
|
|
77
|
+
const updatedAgents = [...state.agents];
|
|
78
|
+
updatedAgents[existingIndex] = {
|
|
79
|
+
...updatedAgents[existingIndex],
|
|
80
|
+
...agentData,
|
|
81
|
+
lastUpdated: now,
|
|
82
|
+
};
|
|
83
|
+
return { agents: updatedAgents };
|
|
84
|
+
}
|
|
85
|
+
const newAgent = {
|
|
86
|
+
name: agentData.name || agentData.id,
|
|
87
|
+
description: agentData.description || '',
|
|
88
|
+
status: agentData.status || 'initializing',
|
|
89
|
+
lastUpdated: now,
|
|
90
|
+
...agentData,
|
|
91
|
+
};
|
|
92
|
+
return { agents: [...state.agents, newAgent] };
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
getAgentById: (id) => {
|
|
96
|
+
return get().agents.find(agent => agent.id === id);
|
|
97
|
+
},
|
|
98
|
+
getAgentByUrl: (baseUrl, protocol) => {
|
|
99
|
+
return get().agents.find(agent => agent.baseUrl === baseUrl && agent.protocol === protocol);
|
|
100
|
+
},
|
|
101
|
+
updateAgentStatus: (id, status, error = null) => {
|
|
102
|
+
set(state => {
|
|
103
|
+
const index = state.agents.findIndex(a => a.id === id);
|
|
104
|
+
if (index >= 0) {
|
|
105
|
+
const updatedAgents = [...state.agents];
|
|
106
|
+
updatedAgents[index] = {
|
|
107
|
+
...updatedAgents[index],
|
|
108
|
+
status,
|
|
109
|
+
error,
|
|
110
|
+
lastUpdated: Date.now(),
|
|
111
|
+
};
|
|
112
|
+
return { agents: updatedAgents };
|
|
113
|
+
}
|
|
114
|
+
return {};
|
|
115
|
+
});
|
|
116
|
+
},
|
|
117
|
+
toggleAgentStatus: (id) => {
|
|
118
|
+
set(state => {
|
|
119
|
+
const index = state.agents.findIndex(a => a.id === id);
|
|
120
|
+
if (index >= 0) {
|
|
121
|
+
const updatedAgents = [...state.agents];
|
|
122
|
+
const currentStatus = updatedAgents[index].status;
|
|
123
|
+
updatedAgents[index] = {
|
|
124
|
+
...updatedAgents[index],
|
|
125
|
+
status: currentStatus === 'running' ? 'paused' : 'running',
|
|
126
|
+
lastUpdated: Date.now(),
|
|
127
|
+
};
|
|
128
|
+
return { agents: updatedAgents };
|
|
129
|
+
}
|
|
130
|
+
return {};
|
|
131
|
+
});
|
|
132
|
+
},
|
|
133
|
+
deleteAgent: (id) => {
|
|
134
|
+
set(state => ({
|
|
135
|
+
agents: state.agents.filter(a => a.id !== id),
|
|
136
|
+
}));
|
|
137
|
+
},
|
|
138
|
+
clearAgents: () => {
|
|
139
|
+
set({ agents: [] });
|
|
140
|
+
},
|
|
141
|
+
// ── Agent runtime pod ───────────────────────────────────────────
|
|
142
|
+
...initialRuntimeState,
|
|
143
|
+
connectAgent: connection => {
|
|
144
|
+
const baseUrl = connection.jupyterBaseUrl ||
|
|
145
|
+
connection.serviceManager?.serverSettings.baseUrl;
|
|
146
|
+
if (!baseUrl) {
|
|
147
|
+
throw new Error('connectAgent requires either jupyterBaseUrl or serviceManager');
|
|
148
|
+
}
|
|
149
|
+
const agentBaseUrl = baseUrl.replace('/jupyter/server/', '/agent-runtimes/');
|
|
150
|
+
set({
|
|
151
|
+
runtime: {
|
|
152
|
+
podName: connection.podName,
|
|
153
|
+
environmentName: connection.environmentName,
|
|
154
|
+
jupyterBaseUrl: baseUrl,
|
|
155
|
+
agentBaseUrl,
|
|
156
|
+
serviceManager: connection.serviceManager,
|
|
157
|
+
status: 'ready',
|
|
158
|
+
kernelId: connection.kernelId,
|
|
159
|
+
},
|
|
160
|
+
status: 'ready',
|
|
161
|
+
error: null,
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
launchAgent: async (config) => {
|
|
165
|
+
set({ status: 'launching', error: null, isLaunching: true });
|
|
166
|
+
try {
|
|
167
|
+
const { createRuntime } = await import('@datalayer/core/lib/api');
|
|
168
|
+
const runtimePod = await createRuntime({
|
|
169
|
+
environmentName: config.environmentName,
|
|
170
|
+
creditsLimit: config.creditsLimit,
|
|
171
|
+
type: config.type || 'notebook',
|
|
172
|
+
givenName: config.givenName,
|
|
173
|
+
capabilities: config.capabilities,
|
|
174
|
+
snapshot: config.snapshot,
|
|
175
|
+
});
|
|
176
|
+
set({ status: 'connecting' });
|
|
177
|
+
const jupyterBaseUrl = runtimePod.ingress;
|
|
178
|
+
const agentBaseUrl = jupyterBaseUrl.replace('/jupyter/server/', '/agent-runtimes/');
|
|
179
|
+
const connection = {
|
|
180
|
+
podName: runtimePod.pod_name,
|
|
181
|
+
environmentName: runtimePod.environment_name,
|
|
182
|
+
jupyterBaseUrl,
|
|
183
|
+
agentBaseUrl,
|
|
184
|
+
status: 'ready',
|
|
185
|
+
};
|
|
186
|
+
set({ runtime: connection, status: 'ready', isLaunching: false });
|
|
187
|
+
return connection;
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to launch runtime';
|
|
191
|
+
set({ status: 'error', error: errorMessage, isLaunching: false });
|
|
192
|
+
throw err;
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
createAgent: async (config = {}) => {
|
|
196
|
+
const { runtime } = get();
|
|
197
|
+
if (!runtime) {
|
|
198
|
+
throw new Error('No runtime connected. Launch or connect to a runtime first.');
|
|
199
|
+
}
|
|
200
|
+
try {
|
|
201
|
+
const agentId = config.name || runtime.podName;
|
|
202
|
+
const agentConnection = await createAgentOnRuntime(runtime.agentBaseUrl, agentId, config);
|
|
203
|
+
set({
|
|
204
|
+
runtime: {
|
|
205
|
+
...runtime,
|
|
206
|
+
agentId: agentConnection.agentId,
|
|
207
|
+
endpoint: agentConnection.endpoint,
|
|
208
|
+
isReady: agentConnection.isReady,
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
return agentConnection;
|
|
212
|
+
}
|
|
213
|
+
catch (err) {
|
|
214
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to create agent';
|
|
215
|
+
set({ error: errorMessage });
|
|
216
|
+
throw err;
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
disconnect: () => {
|
|
220
|
+
set({ runtime: null, status: 'disconnected', error: null });
|
|
221
|
+
},
|
|
222
|
+
clearError: () => set({ error: null }),
|
|
223
|
+
setError: error => set({ error, status: 'error' }),
|
|
224
|
+
reset: () => set(initialRuntimeState),
|
|
225
|
+
}), {
|
|
226
|
+
name: 'agent-runtimes-storage',
|
|
227
|
+
storage: createJSONStorage(() => localStorage),
|
|
228
|
+
// Only persist the agent registry; runtime connection state is ephemeral.
|
|
229
|
+
partialize: state => ({
|
|
230
|
+
agents: state.agents.map(agent => ({
|
|
231
|
+
id: agent.id,
|
|
232
|
+
name: agent.name,
|
|
233
|
+
description: agent.description,
|
|
234
|
+
baseUrl: agent.baseUrl,
|
|
235
|
+
transport: agent.protocol,
|
|
236
|
+
status: agent.status,
|
|
237
|
+
lastUpdated: agent.lastUpdated,
|
|
238
|
+
documentId: agent.documentId,
|
|
239
|
+
runtimeId: agent.runtimeId,
|
|
240
|
+
})),
|
|
241
|
+
}),
|
|
242
|
+
}));
|
|
243
|
+
export function useAgentStore(selector) {
|
|
244
|
+
return useStore(agentStore, selector);
|
|
245
|
+
}
|
|
246
|
+
// Attach getState / subscribe for non-React consumers
|
|
247
|
+
useAgentStore.getState = agentStore.getState;
|
|
248
|
+
useAgentStore.subscribe = agentStore.subscribe;
|
|
249
|
+
// ─── Focused selector hooks ────────────────────────────────────────────────
|
|
250
|
+
/** Currently-connected agent runtime pod connection. */
|
|
251
|
+
export const useAgentRuntime = () => useAgentStore(state => state.runtime);
|
|
252
|
+
/**
|
|
253
|
+
* @deprecated Use useAgentRuntime() — agent fields are merged onto the runtime connection.
|
|
254
|
+
*/
|
|
255
|
+
export const useAgentFromStore = () => useAgentStore(state => state.runtime
|
|
256
|
+
? {
|
|
257
|
+
agentId: state.runtime.agentId,
|
|
258
|
+
endpoint: state.runtime.endpoint,
|
|
259
|
+
isReady: state.runtime.isReady,
|
|
260
|
+
}
|
|
261
|
+
: null);
|
|
262
|
+
export const useAgentStatus = () => useAgentStore(state => state.status);
|
|
263
|
+
export const useAgentError = () => useAgentStore(state => state.error);
|
|
264
|
+
export const useIsLaunching = () => useAgentStore(state => state.isLaunching);
|
|
265
|
+
// ─── Non-React access ──────────────────────────────────────────────────────
|
|
266
|
+
/** Get agent runtime store state outside React. */
|
|
267
|
+
export const getAgentState = () => agentStore.getState();
|
|
268
|
+
/** Subscribe to agent runtime store outside React. */
|
|
269
|
+
export const subscribeToAgent = agentStore.subscribe;
|
|
270
|
+
export default useAgentStore;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ChatMessage, ChatThread, ToolRegistryEntry, ToolDefinition, ChatExtension, ExtensionRegistryEntry, ChatMiddleware
|
|
1
|
+
import type { ChatMessage, ChatThread, ToolRegistryEntry, ToolDefinition, ChatExtension, ExtensionRegistryEntry, ChatMiddleware } from '../types';
|
|
2
|
+
import type { ToolCallStatus } from '../types/messages';
|
|
2
3
|
import type { InferenceProvider } from '../types/inference';
|
|
3
4
|
import type { ProtocolAdapter } from '../types/protocol';
|
|
4
5
|
import type { ToolExecutor } from '../tools/ToolExecutor';
|
|
@@ -11,7 +12,7 @@ export interface ChatConfig {
|
|
|
11
12
|
/** Default inference provider type */
|
|
12
13
|
defaultProvider?: 'datalayer' | 'openai' | 'anthropic' | 'self-hosted';
|
|
13
14
|
/** Default protocol type */
|
|
14
|
-
defaultProtocol?: 'ag-ui' | 'a2a' | 'acp' | 'mcp-ui';
|
|
15
|
+
defaultProtocol?: 'ag-ui' | 'vercel-ai' | 'a2a' | 'acp' | 'mcp-ui';
|
|
15
16
|
/** API base URL for inference */
|
|
16
17
|
apiBaseUrl?: string;
|
|
17
18
|
/** API key for inference */
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Provides centralized state for messages, tools, config, and instances.
|
|
8
8
|
* This is the primary state management - NO React Context/Provider needed.
|
|
9
9
|
*
|
|
10
|
-
* @module
|
|
10
|
+
* @module store/chatStore
|
|
11
11
|
*/
|
|
12
12
|
import { create } from 'zustand';
|
|
13
13
|
import { devtools, subscribeWithSelector } from 'zustand/middleware';
|
|
@@ -16,7 +16,7 @@ import { devtools, subscribeWithSelector } from 'zustand/middleware';
|
|
|
16
16
|
*/
|
|
17
17
|
export const defaultChatConfig = {
|
|
18
18
|
defaultProvider: 'datalayer',
|
|
19
|
-
defaultProtocol: '
|
|
19
|
+
defaultProtocol: 'vercel-ai',
|
|
20
20
|
enableStreaming: true,
|
|
21
21
|
requireToolApproval: false,
|
|
22
22
|
debug: false,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { ChatMessage } from '../types/
|
|
1
|
+
import type { ChatMessage } from '../types/messages';
|
|
2
2
|
/**
|
|
3
3
|
* Conversation data for a single runtime
|
|
4
4
|
*/
|
|
5
5
|
export interface ConversationData {
|
|
6
|
-
/**
|
|
6
|
+
/** Agent runtime ID */
|
|
7
7
|
runtimeId: string;
|
|
8
8
|
/** Messages in this conversation */
|
|
9
9
|
messages: ChatMessage[];
|