@datalayer/agent-runtimes 0.0.2
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/LICENSE +32 -0
- package/README.md +56 -0
- package/lib/App.css +47 -0
- package/lib/App.d.ts +3 -0
- package/lib/App.js +18 -0
- package/lib/components/chat/components/AgentDetails.d.ts +19 -0
- package/lib/components/chat/components/AgentDetails.js +170 -0
- package/lib/components/chat/components/Chat.d.ts +105 -0
- package/lib/components/chat/components/Chat.js +275 -0
- package/lib/components/chat/components/ChatFloating.d.ts +146 -0
- package/lib/components/chat/components/ChatFloating.js +381 -0
- package/lib/components/chat/components/ChatInline.d.ts +42 -0
- package/lib/components/chat/components/ChatInline.js +327 -0
- package/lib/components/chat/components/ChatPopupStandalone.d.ts +110 -0
- package/lib/components/chat/components/ChatPopupStandalone.js +422 -0
- package/lib/components/chat/components/ChatSidebar.d.ts +78 -0
- package/lib/components/chat/components/ChatSidebar.js +224 -0
- package/lib/components/chat/components/ChatStandalone.d.ts +105 -0
- package/lib/components/chat/components/ChatStandalone.js +320 -0
- package/lib/components/chat/components/base/ChatBase.d.ts +285 -0
- package/lib/components/chat/components/base/ChatBase.js +1192 -0
- package/lib/components/chat/components/display/ToolCallDisplay.d.ts +26 -0
- package/lib/components/chat/components/display/ToolCallDisplay.js +225 -0
- package/lib/components/chat/components/display/index.d.ts +6 -0
- package/lib/components/chat/components/display/index.js +10 -0
- package/lib/components/chat/components/elements/ChatHeader.d.ts +43 -0
- package/lib/components/chat/components/elements/ChatHeader.js +67 -0
- package/lib/components/chat/components/elements/ChatInputPrompt.d.ts +26 -0
- package/lib/components/chat/components/elements/ChatInputPrompt.js +145 -0
- package/lib/components/chat/components/elements/ChatMessages.d.ts +36 -0
- package/lib/components/chat/components/elements/ChatMessages.js +195 -0
- package/lib/components/chat/components/elements/FloatingBrandButton.d.ts +34 -0
- package/lib/components/chat/components/elements/FloatingBrandButton.js +88 -0
- package/lib/components/chat/components/elements/MessagePart.d.ts +50 -0
- package/lib/components/chat/components/elements/MessagePart.js +48 -0
- package/lib/components/chat/components/elements/PoweredByTag.d.ts +26 -0
- package/lib/components/chat/components/elements/PoweredByTag.js +33 -0
- package/lib/components/chat/components/elements/ToolApprovalDialog.d.ts +42 -0
- package/lib/components/chat/components/elements/ToolApprovalDialog.js +96 -0
- package/lib/components/chat/components/index.d.ts +21 -0
- package/lib/components/chat/components/index.js +34 -0
- package/lib/components/chat/components/parts/DynamicToolPart.d.ts +20 -0
- package/lib/components/chat/components/parts/DynamicToolPart.js +13 -0
- package/lib/components/chat/components/parts/ReasoningPart.d.ts +17 -0
- package/lib/components/chat/components/parts/ReasoningPart.js +69 -0
- package/lib/components/chat/components/parts/TextPart.d.ts +28 -0
- package/lib/components/chat/components/parts/TextPart.js +103 -0
- package/lib/components/chat/components/parts/ToolPart.d.ts +17 -0
- package/lib/components/chat/components/parts/ToolPart.js +163 -0
- package/lib/components/chat/components/parts/index.d.ts +9 -0
- package/lib/components/chat/components/parts/index.js +13 -0
- package/lib/components/chat/extensions/A2UIExtension.d.ts +87 -0
- package/lib/components/chat/extensions/A2UIExtension.js +312 -0
- package/lib/components/chat/extensions/ExtensionRegistry.d.ts +66 -0
- package/lib/components/chat/extensions/ExtensionRegistry.js +128 -0
- package/lib/components/chat/extensions/MCPUIExtension.d.ts +77 -0
- package/lib/components/chat/extensions/MCPUIExtension.js +212 -0
- package/lib/components/chat/extensions/index.d.ts +9 -0
- package/lib/components/chat/extensions/index.js +12 -0
- package/lib/components/chat/handler.d.ts +20 -0
- package/lib/components/chat/handler.js +56 -0
- package/lib/components/chat/index.d.ts +61 -0
- package/lib/components/chat/index.js +76 -0
- package/lib/components/chat/inference/BaseInferenceProvider.d.ts +57 -0
- package/lib/components/chat/inference/BaseInferenceProvider.js +69 -0
- package/lib/components/chat/inference/DatalayerInferenceProvider.d.ts +83 -0
- package/lib/components/chat/inference/DatalayerInferenceProvider.js +305 -0
- package/lib/components/chat/inference/SelfHostedInferenceProvider.d.ts +54 -0
- package/lib/components/chat/inference/SelfHostedInferenceProvider.js +246 -0
- package/lib/components/chat/inference/index.d.ts +9 -0
- package/lib/components/chat/inference/index.js +12 -0
- package/lib/components/chat/middleware/MiddlewarePipeline.d.ts +118 -0
- package/lib/components/chat/middleware/MiddlewarePipeline.js +255 -0
- package/lib/components/chat/middleware/index.d.ts +7 -0
- package/lib/components/chat/middleware/index.js +10 -0
- package/lib/components/chat/protocols/A2AAdapter.d.ts +79 -0
- package/lib/components/chat/protocols/A2AAdapter.js +388 -0
- package/lib/components/chat/protocols/ACPAdapter.d.ts +161 -0
- package/lib/components/chat/protocols/ACPAdapter.js +504 -0
- package/lib/components/chat/protocols/AGUIAdapter.d.ts +82 -0
- package/lib/components/chat/protocols/AGUIAdapter.js +518 -0
- package/lib/components/chat/protocols/BaseProtocolAdapter.d.ts +75 -0
- package/lib/components/chat/protocols/BaseProtocolAdapter.js +119 -0
- package/lib/components/chat/protocols/VercelAIAdapter.d.ts +77 -0
- package/lib/components/chat/protocols/VercelAIAdapter.js +252 -0
- package/lib/components/chat/protocols/index.d.ts +11 -0
- package/lib/components/chat/protocols/index.js +14 -0
- package/lib/components/chat/store/chatStore.d.ts +158 -0
- package/lib/components/chat/store/chatStore.js +313 -0
- package/lib/components/chat/store/index.d.ts +6 -0
- package/lib/components/chat/store/index.js +10 -0
- package/lib/components/chat/tools/ToolExecutor.d.ts +49 -0
- package/lib/components/chat/tools/ToolExecutor.js +151 -0
- package/lib/components/chat/tools/index.d.ts +8 -0
- package/lib/components/chat/tools/index.js +11 -0
- package/lib/components/chat/types/extension.d.ts +181 -0
- package/lib/components/chat/types/extension.js +46 -0
- package/lib/components/chat/types/index.d.ts +11 -0
- package/lib/components/chat/types/index.js +16 -0
- package/lib/components/chat/types/inference.d.ts +117 -0
- package/lib/components/chat/types/inference.js +5 -0
- package/lib/components/chat/types/message.d.ts +117 -0
- package/lib/components/chat/types/message.js +50 -0
- package/lib/components/chat/types/middleware.d.ts +153 -0
- package/lib/components/chat/types/middleware.js +32 -0
- package/lib/components/chat/types/protocol.d.ts +209 -0
- package/lib/components/chat/types/protocol.js +5 -0
- package/lib/components/chat/types/tool.d.ts +140 -0
- package/lib/components/chat/types/tool.js +23 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +6 -0
- package/lib/components/sparklines/Sparklines.d.ts +16 -0
- package/lib/components/sparklines/Sparklines.js +65 -0
- package/lib/components/sparklines/SparklinesLine.d.ts +8 -0
- package/lib/components/sparklines/SparklinesLine.js +37 -0
- package/lib/components/sparklines/dataProcessing.d.ts +25 -0
- package/lib/components/sparklines/dataProcessing.js +35 -0
- package/lib/components/sparklines/index.d.ts +4 -0
- package/lib/components/sparklines/index.js +7 -0
- package/lib/components/sparklines/types.d.ts +36 -0
- package/lib/components/sparklines/types.js +5 -0
- package/lib/components/ui/accordion.d.ts +7 -0
- package/lib/components/ui/accordion.js +22 -0
- package/lib/components/ui/alert-dialog.d.ts +14 -0
- package/lib/components/ui/alert-dialog.js +43 -0
- package/lib/components/ui/alert.d.ts +9 -0
- package/lib/components/ui/alert.js +24 -0
- package/lib/components/ui/aspect-ratio.d.ts +3 -0
- package/lib/components/ui/aspect-ratio.js +11 -0
- package/lib/components/ui/avatar.d.ts +6 -0
- package/lib/components/ui/avatar.js +18 -0
- package/lib/components/ui/badge.d.ts +9 -0
- package/lib/components/ui/badge.js +22 -0
- package/lib/components/ui/breadcrumb.d.ts +11 -0
- package/lib/components/ui/breadcrumb.js +27 -0
- package/lib/components/ui/button-group.d.ts +11 -0
- package/lib/components/ui/button-group.js +31 -0
- package/lib/components/ui/button.d.ts +13 -0
- package/lib/components/ui/button.js +39 -0
- package/lib/components/ui/calendar.d.ts +8 -0
- package/lib/components/ui/calendar.js +80 -0
- package/lib/components/ui/card.d.ts +9 -0
- package/lib/components/ui/card.js +24 -0
- package/lib/components/ui/carousel.d.ts +19 -0
- package/lib/components/ui/carousel.js +95 -0
- package/lib/components/ui/chart.d.ts +53 -0
- package/lib/components/ui/chart.js +136 -0
- package/lib/components/ui/checkbox.d.ts +4 -0
- package/lib/components/ui/checkbox.js +13 -0
- package/lib/components/ui/collapsible.d.ts +5 -0
- package/lib/components/ui/collapsible.js +17 -0
- package/lib/components/ui/command.d.ts +18 -0
- package/lib/components/ui/command.js +38 -0
- package/lib/components/ui/context-menu.d.ts +25 -0
- package/lib/components/ui/context-menu.js +55 -0
- package/lib/components/ui/dialog.d.ts +15 -0
- package/lib/components/ui/dialog.js +40 -0
- package/lib/components/ui/drawer.d.ts +13 -0
- package/lib/components/ui/drawer.js +39 -0
- package/lib/components/ui/dropdown-menu.d.ts +25 -0
- package/lib/components/ui/dropdown-menu.js +55 -0
- package/lib/components/ui/empty.d.ts +11 -0
- package/lib/components/ui/empty.js +37 -0
- package/lib/components/ui/field.d.ts +24 -0
- package/lib/components/ui/field.js +80 -0
- package/lib/components/ui/form.d.ts +24 -0
- package/lib/components/ui/form.js +63 -0
- package/lib/components/ui/hover-card.d.ts +6 -0
- package/lib/components/ui/hover-card.js +18 -0
- package/lib/components/ui/input-group.d.ts +19 -0
- package/lib/components/ui/input-group.js +69 -0
- package/lib/components/ui/input-otp.d.ts +11 -0
- package/lib/components/ui/input-otp.js +25 -0
- package/lib/components/ui/input.d.ts +3 -0
- package/lib/components/ui/input.js +6 -0
- package/lib/components/ui/item.d.ts +23 -0
- package/lib/components/ui/item.js +66 -0
- package/lib/components/ui/kbd.d.ts +3 -0
- package/lib/components/ui/kbd.js +13 -0
- package/lib/components/ui/label.d.ts +4 -0
- package/lib/components/ui/label.js +12 -0
- package/lib/components/ui/menubar.d.ts +26 -0
- package/lib/components/ui/menubar.js +58 -0
- package/lib/components/ui/navigation-menu.d.ts +14 -0
- package/lib/components/ui/navigation-menu.js +31 -0
- package/lib/components/ui/pagination.d.ts +13 -0
- package/lib/components/ui/pagination.js +29 -0
- package/lib/components/ui/popover.d.ts +7 -0
- package/lib/components/ui/popover.js +21 -0
- package/lib/components/ui/progress.d.ts +4 -0
- package/lib/components/ui/progress.js +12 -0
- package/lib/components/ui/radio-group.d.ts +5 -0
- package/lib/components/ui/radio-group.js +16 -0
- package/lib/components/ui/resizable.d.ts +8 -0
- package/lib/components/ui/resizable.js +19 -0
- package/lib/components/ui/scroll-area.d.ts +5 -0
- package/lib/components/ui/scroll-area.js +17 -0
- package/lib/components/ui/select.d.ts +15 -0
- package/lib/components/ui/select.js +42 -0
- package/lib/components/ui/separator.d.ts +4 -0
- package/lib/components/ui/separator.js +12 -0
- package/lib/components/ui/sheet.d.ts +13 -0
- package/lib/components/ui/sheet.js +44 -0
- package/lib/components/ui/sidebar.d.ts +69 -0
- package/lib/components/ui/sidebar.js +216 -0
- package/lib/components/ui/skeleton.d.ts +2 -0
- package/lib/components/ui/skeleton.js +10 -0
- package/lib/components/ui/slider.d.ts +4 -0
- package/lib/components/ui/slider.js +18 -0
- package/lib/components/ui/sonner.d.ts +3 -0
- package/lib/components/ui/sonner.js +25 -0
- package/lib/components/ui/spinner.d.ts +2 -0
- package/lib/components/ui/spinner.js +11 -0
- package/lib/components/ui/switch.d.ts +4 -0
- package/lib/components/ui/switch.js +12 -0
- package/lib/components/ui/table.d.ts +10 -0
- package/lib/components/ui/table.js +32 -0
- package/lib/components/ui/tabs.d.ts +7 -0
- package/lib/components/ui/tabs.js +21 -0
- package/lib/components/ui/textarea.d.ts +3 -0
- package/lib/components/ui/textarea.js +6 -0
- package/lib/components/ui/toast.d.ts +15 -0
- package/lib/components/ui/toast.js +38 -0
- package/lib/components/ui/toaster.d.ts +1 -0
- package/lib/components/ui/toaster.js +14 -0
- package/lib/components/ui/toggle-group.d.ts +9 -0
- package/lib/components/ui/toggle-group.js +26 -0
- package/lib/components/ui/toggle.d.ts +9 -0
- package/lib/components/ui/toggle.js +30 -0
- package/lib/components/ui/tooltip.d.ts +7 -0
- package/lib/components/ui/tooltip.js +21 -0
- package/lib/components/vercel-ai-elements/artifact.d.ts +23 -0
- package/lib/components/vercel-ai-elements/artifact.js +24 -0
- package/lib/components/vercel-ai-elements/code-block.d.ts +17 -0
- package/lib/components/vercel-ai-elements/code-block.js +94 -0
- package/lib/components/vercel-ai-elements/conversation.d.ts +15 -0
- package/lib/components/vercel-ai-elements/conversation.js +21 -0
- package/lib/components/vercel-ai-elements/loader.d.ts +5 -0
- package/lib/components/vercel-ai-elements/loader.js +8 -0
- package/lib/components/vercel-ai-elements/message.d.ts +46 -0
- package/lib/components/vercel-ai-elements/message.js +109 -0
- package/lib/components/vercel-ai-elements/model-selector.d.ts +35 -0
- package/lib/components/vercel-ai-elements/model-selector.js +22 -0
- package/lib/components/vercel-ai-elements/prompt-input.d.ts +195 -0
- package/lib/components/vercel-ai-elements/prompt-input.js +589 -0
- package/lib/components/vercel-ai-elements/reasoning.d.ts +26 -0
- package/lib/components/vercel-ai-elements/reasoning.js +80 -0
- package/lib/components/vercel-ai-elements/shimmer.d.ts +9 -0
- package/lib/components/vercel-ai-elements/shimmer.js +22 -0
- package/lib/components/vercel-ai-elements/sources.d.ts +12 -0
- package/lib/components/vercel-ai-elements/sources.js +13 -0
- package/lib/components/vercel-ai-elements/suggestion.d.ts +10 -0
- package/lib/components/vercel-ai-elements/suggestion.js +16 -0
- package/lib/components/vercel-ai-elements/tool.d.ts +23 -0
- package/lib/components/vercel-ai-elements/tool.js +52 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +25 -0
- package/lib/examples/A2UiRestaurantExample.js +305 -0
- package/lib/examples/AgUiAgenticExample.d.ts +25 -0
- package/lib/examples/AgUiAgenticExample.js +63 -0
- package/lib/examples/AgUiBackendToolRenderingExample.d.ts +30 -0
- package/lib/examples/AgUiBackendToolRenderingExample.js +103 -0
- package/lib/examples/AgUiHaikuGenUIExample.d.ts +44 -0
- package/lib/examples/AgUiHaikuGenUIExample.js +151 -0
- package/lib/examples/AgUiHumanInTheLoopExample.d.ts +26 -0
- package/lib/examples/AgUiHumanInTheLoopExample.js +220 -0
- package/lib/examples/AgUiSharedStateExample.d.ts +25 -0
- package/lib/examples/AgUiSharedStateExample.js +181 -0
- package/lib/examples/AgUiToolsBasedGenUIExample.d.ts +25 -0
- package/lib/examples/AgUiToolsBasedGenUIExample.js +257 -0
- package/lib/examples/AgentRuntimeCustomExample.d.ts +9 -0
- package/lib/examples/AgentRuntimeCustomExample.js +68 -0
- package/lib/examples/AgentRuntimeLexical2Example.d.ts +42 -0
- package/lib/examples/AgentRuntimeLexical2Example.js +236 -0
- package/lib/examples/AgentRuntimeLexicalExample.d.ts +36 -0
- package/lib/examples/AgentRuntimeLexicalExample.js +260 -0
- package/lib/examples/AgentRuntimeLexicalSidebarExample.d.ts +41 -0
- package/lib/examples/AgentRuntimeLexicalSidebarExample.js +166 -0
- package/lib/examples/AgentRuntimeNotebookExample.d.ts +9 -0
- package/lib/examples/AgentRuntimeNotebookExample.js +148 -0
- package/lib/examples/AgentRuntimeNotebookSidebarExample.d.ts +13 -0
- package/lib/examples/AgentRuntimeNotebookSidebarExample.js +121 -0
- package/lib/examples/AgentRuntimeStandaloneExample.d.ts +21 -0
- package/lib/examples/AgentRuntimeStandaloneExample.js +158 -0
- package/lib/examples/AgentSpaceFormExample.d.ts +22 -0
- package/lib/examples/AgentSpaceFormExample.js +296 -0
- package/lib/examples/AgentSpaceHomeExample.d.ts +8 -0
- package/lib/examples/AgentSpaceHomeExample.js +171 -0
- package/lib/examples/CopilotKitLexicalExample.d.ts +38 -0
- package/lib/examples/CopilotKitLexicalExample.js +161 -0
- package/lib/examples/CopilotKitNotebookExample.d.ts +11 -0
- package/lib/examples/CopilotKitNotebookExample.js +70 -0
- package/lib/examples/DatalayerNotebookExample.d.ts +16 -0
- package/lib/examples/DatalayerNotebookExample.js +99 -0
- package/lib/examples/JupyterCellExample.d.ts +6 -0
- package/lib/examples/JupyterCellExample.js +19 -0
- package/lib/examples/JupyterNotebookExample.d.ts +6 -0
- package/lib/examples/JupyterNotebookExample.js +21 -0
- package/lib/examples/ag-ui/haiku/HaikuDisplay.d.ts +18 -0
- package/lib/examples/ag-ui/haiku/HaikuDisplay.js +110 -0
- package/lib/examples/ag-ui/haiku/InlineHaikuCard.d.ts +39 -0
- package/lib/examples/ag-ui/haiku/InlineHaikuCard.js +117 -0
- package/lib/examples/ag-ui/haiku/index.d.ts +11 -0
- package/lib/examples/ag-ui/haiku/index.js +15 -0
- package/lib/examples/ag-ui/index.d.ts +10 -0
- package/lib/examples/ag-ui/index.js +16 -0
- package/lib/examples/ag-ui/weather/InlineWeatherCard.d.ts +43 -0
- package/lib/examples/ag-ui/weather/InlineWeatherCard.js +180 -0
- package/lib/examples/ag-ui/weather/index.d.ts +9 -0
- package/lib/examples/ag-ui/weather/index.js +13 -0
- package/lib/examples/components/AgentConfiguration.d.ts +50 -0
- package/lib/examples/components/AgentConfiguration.js +115 -0
- package/lib/examples/components/AgentsDataTable.d.ts +13 -0
- package/lib/examples/components/AgentsDataTable.js +74 -0
- package/lib/examples/components/FooterMetrics.d.ts +12 -0
- package/lib/examples/components/FooterMetrics.js +17 -0
- package/lib/examples/components/Header.d.ts +27 -0
- package/lib/examples/components/Header.js +294 -0
- package/lib/examples/components/HeaderControls.d.ts +11 -0
- package/lib/examples/components/HeaderControls.js +24 -0
- package/lib/examples/components/LexicalEditor.d.ts +27 -0
- package/lib/examples/components/LexicalEditor.js +118 -0
- package/lib/examples/components/MainContent.d.ts +19 -0
- package/lib/examples/components/MainContent.js +68 -0
- package/lib/examples/components/MockFileBrowser.d.ts +12 -0
- package/lib/examples/components/MockFileBrowser.js +131 -0
- package/lib/examples/components/Rating.d.ts +14 -0
- package/lib/examples/components/Rating.js +12 -0
- package/lib/examples/components/SessionTabs.d.ts +21 -0
- package/lib/examples/components/SessionTabs.js +11 -0
- package/lib/examples/components/TimeTravel.d.ts +15 -0
- package/lib/examples/components/TimeTravel.js +23 -0
- package/lib/examples/components/index.d.ts +11 -0
- package/lib/examples/components/index.js +14 -0
- package/lib/examples/example-selector.d.ts +22 -0
- package/lib/examples/example-selector.js +62 -0
- package/lib/examples/index.d.ts +21 -0
- package/lib/examples/index.js +25 -0
- package/lib/examples/lexical/editorConfig.d.ts +76 -0
- package/lib/examples/lexical/editorConfig.js +55 -0
- package/lib/examples/lexical/lexical-theme.css +436 -0
- package/lib/examples/lexical/theme.d.ts +61 -0
- package/lib/examples/lexical/theme.js +72 -0
- package/lib/examples/main.d.ts +2 -0
- package/lib/examples/main.js +334 -0
- package/lib/examples/stores/agents/earthquake-detector.ipynb.json +111 -0
- package/lib/examples/stores/agents/earthquake-detector.json +13 -0
- package/lib/examples/stores/agents/earthquake-detector.lexical.json +2988 -0
- package/lib/examples/stores/agents/sales-forecaster.ipynb.json +111 -0
- package/lib/examples/stores/agents/sales-forecaster.json +13 -0
- package/lib/examples/stores/agents/sales-forecaster.lexical.json +2988 -0
- package/lib/examples/stores/agents/social-post-generator.ipynb.json +111 -0
- package/lib/examples/stores/agents/social-post-generator.json +13 -0
- package/lib/examples/stores/agents/social-post-generator.lexical.json +2988 -0
- package/lib/examples/stores/agents/stock-market.ipynb.json +56 -0
- package/lib/examples/stores/agents/stock-market.json +13 -0
- package/lib/examples/stores/agents/stock-market.lexical.json +1026 -0
- package/lib/examples/stores/examplesStore.d.ts +26 -0
- package/lib/examples/stores/examplesStore.js +60 -0
- package/lib/examples/stores/notebooks/Empty.ipynb.json +33 -0
- package/lib/examples/stores/notebooks/IPyWidgetsExample.ipynb.json +101 -0
- package/lib/examples/stores/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
- package/lib/examples/stores/notebooks/Lite.ipynb.json +128 -0
- package/lib/examples/stores/notebooks/Matplotlib.ipynb.json +137 -0
- package/lib/examples/stores/notebooks/NotebookExample1.ipynb.json +126 -0
- package/lib/examples/stores/notebooks/NotebookExample2.ipynb.json +48 -0
- package/lib/examples/stores/notebooks/NotebookOutputs.ipynb.json +49 -0
- package/lib/examples/stores/notebooks/NotebookToCExample.ipynb.json +102 -0
- package/lib/examples/stores/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
- package/lib/examples/stores/notebooks/OutputIPyWidgetsExample.js +153 -0
- package/lib/examples/stores/notebooks/PyGWalker.ipynb.json +55 -0
- package/lib/examples/vercel-ai-elements/VercelAiElementsShowcase.d.ts +12 -0
- package/lib/examples/vercel-ai-elements/VercelAiElementsShowcase.js +69 -0
- package/lib/examples/vercel-ai-elements/components/ArtifactShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/ArtifactShowcase.js +85 -0
- package/lib/examples/vercel-ai-elements/components/CodeBlockShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/CodeBlockShowcase.js +62 -0
- package/lib/examples/vercel-ai-elements/components/ConversationShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/ConversationShowcase.js +51 -0
- package/lib/examples/vercel-ai-elements/components/LoaderShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/LoaderShowcase.js +9 -0
- package/lib/examples/vercel-ai-elements/components/MessageShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/MessageShowcase.js +56 -0
- package/lib/examples/vercel-ai-elements/components/ModelSelectorShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/ModelSelectorShowcase.js +50 -0
- package/lib/examples/vercel-ai-elements/components/PromptInputShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/PromptInputShowcase.js +16 -0
- package/lib/examples/vercel-ai-elements/components/ReasoningShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/ReasoningShowcase.js +72 -0
- package/lib/examples/vercel-ai-elements/components/ShimmerShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/ShimmerShowcase.js +9 -0
- package/lib/examples/vercel-ai-elements/components/SourcesShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/SourcesShowcase.js +43 -0
- package/lib/examples/vercel-ai-elements/components/SuggestionShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/SuggestionShowcase.js +31 -0
- package/lib/examples/vercel-ai-elements/components/ToolShowcase.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/components/ToolShowcase.js +54 -0
- package/lib/examples/vercel-ai-elements/index.d.ts +13 -0
- package/lib/examples/vercel-ai-elements/index.js +17 -0
- package/lib/examples/vercel-ai-elements/main.d.ts +1 -0
- package/lib/examples/vercel-ai-elements/main.js +9 -0
- package/lib/examples/vercel-ai-elements/showcase.css +128 -0
- package/lib/hooks/index.d.ts +68 -0
- package/lib/hooks/index.js +81 -0
- package/lib/hooks/useA2A.d.ts +75 -0
- package/lib/hooks/useA2A.js +368 -0
- package/lib/hooks/useAGUI.d.ts +63 -0
- package/lib/hooks/useAGUI.js +162 -0
- package/lib/hooks/useAcp.d.ts +121 -0
- package/lib/hooks/useAcp.js +459 -0
- package/lib/hooks/useAgents.d.ts +13 -0
- package/lib/hooks/useAgents.js +71 -0
- package/lib/hooks/useChat.d.ts +62 -0
- package/lib/hooks/useChat.js +363 -0
- package/lib/hooks/useKeyboardShortcuts.d.ts +47 -0
- package/lib/hooks/useKeyboardShortcuts.js +153 -0
- package/lib/hooks/useMobile.d.ts +1 -0
- package/lib/hooks/useMobile.js +19 -0
- package/lib/hooks/useNotebookAIAgent.d.ts +8 -0
- package/lib/hooks/useNotebookAIAgent.js +56 -0
- package/lib/hooks/useToast.d.ts +44 -0
- package/lib/hooks/useToast.js +128 -0
- package/lib/hooks/useTools.d.ts +107 -0
- package/lib/hooks/useTools.js +130 -0
- package/lib/hooks/useVercelChat.d.ts +45 -0
- package/lib/hooks/useVercelChat.js +62 -0
- package/lib/index.css +73 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +5 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +21 -0
- package/lib/lexical/ChatInlinePlugin.js +379 -0
- package/lib/lexical/index.d.ts +6 -0
- package/lib/lexical/index.js +10 -0
- package/lib/lib/utils.d.ts +2 -0
- package/lib/lib/utils.js +9 -0
- package/lib/main.d.ts +1 -0
- package/lib/main.js +12 -0
- package/lib/models/AIAgent.d.ts +17 -0
- package/lib/models/AIAgent.js +5 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.js +5 -0
- package/lib/renderers/a2ui/components/A2UIRenderer.d.ts +7 -0
- package/lib/renderers/a2ui/components/A2UIRenderer.js +102 -0
- package/lib/renderers/a2ui/components/SurfaceRenderer.d.ts +7 -0
- package/lib/renderers/a2ui/components/SurfaceRenderer.js +101 -0
- package/lib/renderers/a2ui/components/content/AudioPlayer.d.ts +9 -0
- package/lib/renderers/a2ui/components/content/AudioPlayer.js +38 -0
- package/lib/renderers/a2ui/components/content/Divider.d.ts +9 -0
- package/lib/renderers/a2ui/components/content/Divider.js +35 -0
- package/lib/renderers/a2ui/components/content/Icon.d.ts +9 -0
- package/lib/renderers/a2ui/components/content/Icon.js +110 -0
- package/lib/renderers/a2ui/components/content/Image.d.ts +9 -0
- package/lib/renderers/a2ui/components/content/Image.js +61 -0
- package/lib/renderers/a2ui/components/content/Text.d.ts +9 -0
- package/lib/renderers/a2ui/components/content/Text.js +64 -0
- package/lib/renderers/a2ui/components/content/Video.d.ts +9 -0
- package/lib/renderers/a2ui/components/content/Video.js +37 -0
- package/lib/renderers/a2ui/components/content/index.d.ts +6 -0
- package/lib/renderers/a2ui/components/content/index.js +25 -0
- package/lib/renderers/a2ui/components/index.d.ts +5 -0
- package/lib/renderers/a2ui/components/index.js +24 -0
- package/lib/renderers/a2ui/components/interactive/Button.d.ts +11 -0
- package/lib/renderers/a2ui/components/interactive/Button.js +71 -0
- package/lib/renderers/a2ui/components/interactive/CheckBox.d.ts +9 -0
- package/lib/renderers/a2ui/components/interactive/CheckBox.js +48 -0
- package/lib/renderers/a2ui/components/interactive/DateTimeInput.d.ts +9 -0
- package/lib/renderers/a2ui/components/interactive/DateTimeInput.js +62 -0
- package/lib/renderers/a2ui/components/interactive/MultipleChoice.d.ts +9 -0
- package/lib/renderers/a2ui/components/interactive/MultipleChoice.js +73 -0
- package/lib/renderers/a2ui/components/interactive/Slider.d.ts +9 -0
- package/lib/renderers/a2ui/components/interactive/Slider.js +53 -0
- package/lib/renderers/a2ui/components/interactive/TextField.d.ts +9 -0
- package/lib/renderers/a2ui/components/interactive/TextField.js +72 -0
- package/lib/renderers/a2ui/components/interactive/index.d.ts +6 -0
- package/lib/renderers/a2ui/components/interactive/index.js +25 -0
- package/lib/renderers/a2ui/components/layout/Card.d.ts +11 -0
- package/lib/renderers/a2ui/components/layout/Card.js +30 -0
- package/lib/renderers/a2ui/components/layout/Column.d.ts +11 -0
- package/lib/renderers/a2ui/components/layout/Column.js +65 -0
- package/lib/renderers/a2ui/components/layout/List.d.ts +11 -0
- package/lib/renderers/a2ui/components/layout/List.js +55 -0
- package/lib/renderers/a2ui/components/layout/Modal.d.ts +11 -0
- package/lib/renderers/a2ui/components/layout/Modal.js +58 -0
- package/lib/renderers/a2ui/components/layout/Row.d.ts +11 -0
- package/lib/renderers/a2ui/components/layout/Row.js +65 -0
- package/lib/renderers/a2ui/components/layout/Tabs.d.ts +11 -0
- package/lib/renderers/a2ui/components/layout/Tabs.js +48 -0
- package/lib/renderers/a2ui/components/layout/index.d.ts +6 -0
- package/lib/renderers/a2ui/components/layout/index.js +25 -0
- package/lib/renderers/a2ui/context/A2UIContext.d.ts +17 -0
- package/lib/renderers/a2ui/context/A2UIContext.js +54 -0
- package/lib/renderers/a2ui/context/ThemeContext.d.ts +20 -0
- package/lib/renderers/a2ui/context/ThemeContext.js +333 -0
- package/lib/renderers/a2ui/hooks/useA2UI.d.ts +36 -0
- package/lib/renderers/a2ui/hooks/useA2UI.js +62 -0
- package/lib/renderers/a2ui/hooks/useDataBinding.d.ts +8 -0
- package/lib/renderers/a2ui/hooks/useDataBinding.js +83 -0
- package/lib/renderers/a2ui/index.d.ts +9 -0
- package/lib/renderers/a2ui/index.js +28 -0
- package/lib/renderers/a2ui/lib/utils.d.ts +11 -0
- package/lib/renderers/a2ui/lib/utils.js +38 -0
- package/lib/renderers/a2ui/types/index.d.ts +17 -0
- package/lib/renderers/a2ui/types/index.js +5 -0
- package/lib/renderers/index.d.ts +1 -0
- package/lib/renderers/index.js +5 -0
- package/lib/state/index.d.ts +1 -0
- package/lib/state/index.js +5 -0
- package/lib/state/substates/AIAgentState.d.ts +11 -0
- package/lib/state/substates/AIAgentState.js +42 -0
- package/lib/state/substates/index.d.ts +1 -0
- package/lib/state/substates/index.js +5 -0
- package/lib/stories/Button.d.ts +15 -0
- package/lib/stories/Button.js +13 -0
- package/lib/stories/Button.stories.d.ts +23 -0
- package/lib/stories/Button.stories.js +48 -0
- package/lib/stories/Cell.stories.d.ts +12 -0
- package/lib/stories/Cell.stories.js +123 -0
- package/lib/stories/Header.d.ts +12 -0
- package/lib/stories/Header.js +8 -0
- package/lib/stories/Header.stories.d.ts +18 -0
- package/lib/stories/Header.stories.js +30 -0
- package/lib/stories/Page.d.ts +3 -0
- package/lib/stories/Page.js +12 -0
- package/lib/stories/Page.stories.d.ts +12 -0
- package/lib/stories/Page.stories.js +28 -0
- package/lib/stories/assets/accessibility.png +0 -0
- package/lib/stories/assets/accessibility.svg +1 -0
- package/lib/stories/assets/addon-library.png +0 -0
- package/lib/stories/assets/assets.png +0 -0
- package/lib/stories/assets/context.png +0 -0
- package/lib/stories/assets/discord.svg +1 -0
- package/lib/stories/assets/docs.png +0 -0
- package/lib/stories/assets/figma-plugin.png +0 -0
- package/lib/stories/assets/github.svg +1 -0
- package/lib/stories/assets/share.png +0 -0
- package/lib/stories/assets/styling.png +0 -0
- package/lib/stories/assets/testing.png +0 -0
- package/lib/stories/assets/theming.png +0 -0
- package/lib/stories/assets/tutorials.svg +1 -0
- package/lib/stories/assets/youtube.svg +1 -0
- package/lib/stories/button.css +35 -0
- package/lib/stories/header.css +37 -0
- package/lib/stories/page.css +73 -0
- package/lib/test-setup.d.ts +1 -0
- package/lib/test-setup.js +80 -0
- package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.d.ts +40 -0
- package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.js +110 -0
- package/lib/tools/adapters/agent-runtimes/index.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/index.js +13 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +24 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +50 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +24 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +51 -0
- package/lib/tools/adapters/copilotkit/CopilotKitToolAdapter.d.ts +73 -0
- package/lib/tools/adapters/copilotkit/CopilotKitToolAdapter.js +244 -0
- package/lib/tools/adapters/copilotkit/index.d.ts +10 -0
- package/lib/tools/adapters/copilotkit/index.js +14 -0
- package/lib/tools/adapters/copilotkit/lexicalHooks.d.ts +27 -0
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +59 -0
- package/lib/tools/adapters/copilotkit/notebookHooks.d.ts +27 -0
- package/lib/tools/adapters/copilotkit/notebookHooks.js +58 -0
- package/lib/tools/adapters/index.d.ts +1 -0
- package/lib/tools/adapters/index.js +5 -0
- package/lib/tools/index.d.ts +6 -0
- package/lib/tools/index.js +18 -0
- package/lib/types.d.ts +5 -0
- package/lib/types.js +5 -0
- package/package.json +327 -0
- package/style/animation/Animation.module.css +174 -0
- package/style/base.css +204 -0
- package/style/index.css +6 -0
- package/style/showcase-vercel-ai.css +137 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
+
* Distributed under the terms of the Modified BSD License.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* MCP-UI extension for chat component.
|
|
8
|
+
* Renders MCP UI protocol messages and resources.
|
|
9
|
+
*
|
|
10
|
+
* @module components/chat/extensions/MCPUIExtension
|
|
11
|
+
*/
|
|
12
|
+
import React from 'react';
|
|
13
|
+
/**
|
|
14
|
+
* Create MCP-UI activity renderer
|
|
15
|
+
*/
|
|
16
|
+
export function createMCPUIRenderer(customRenderers) {
|
|
17
|
+
// Track resources per session
|
|
18
|
+
const contexts = new Map();
|
|
19
|
+
const getContext = (sessionId) => {
|
|
20
|
+
if (!contexts.has(sessionId)) {
|
|
21
|
+
contexts.set(sessionId, {
|
|
22
|
+
resources: new Map(),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return contexts.get(sessionId);
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
name: 'mcp-ui-renderer',
|
|
29
|
+
type: 'activity-renderer',
|
|
30
|
+
activityTypes: ['mcp-ui'],
|
|
31
|
+
render: ({ activityType: _activityType, data, message: _message }) => {
|
|
32
|
+
// Use default session for now
|
|
33
|
+
const sessionId = 'default';
|
|
34
|
+
const mcpContext = getContext(sessionId);
|
|
35
|
+
const mcpData = data;
|
|
36
|
+
// Handle resource list
|
|
37
|
+
if (mcpData.resourceList) {
|
|
38
|
+
for (const resource of mcpData.resourceList.resources) {
|
|
39
|
+
mcpContext.resources.set(resource.uri, resource);
|
|
40
|
+
}
|
|
41
|
+
return (_jsx("div", { className: "mcp-ui-resource-list", children: mcpData.resourceList.resources.map((resource, index) => (_jsx(ResourceItem, { resource: resource }, resource.uri || index))) }));
|
|
42
|
+
}
|
|
43
|
+
// Handle resource content
|
|
44
|
+
if (mcpData.resourceContent) {
|
|
45
|
+
const { uri, content } = mcpData.resourceContent;
|
|
46
|
+
mcpContext.resources.set(uri, content);
|
|
47
|
+
// Check for custom renderer
|
|
48
|
+
if (customRenderers && content.mimeType) {
|
|
49
|
+
const CustomRenderer = customRenderers[content.mimeType];
|
|
50
|
+
if (CustomRenderer) {
|
|
51
|
+
return _jsx(CustomRenderer, { resource: content });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return _jsx(ResourceContent, { resource: content });
|
|
55
|
+
}
|
|
56
|
+
// Handle UI element
|
|
57
|
+
if (mcpData.uiElement) {
|
|
58
|
+
return _jsx(UIElement, { element: mcpData.uiElement });
|
|
59
|
+
}
|
|
60
|
+
// Fallback: render raw data
|
|
61
|
+
return _jsx("pre", { className: "mcp-ui-raw", children: JSON.stringify(data, null, 2) });
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Resource item component
|
|
67
|
+
*/
|
|
68
|
+
const ResourceItem = ({ resource }) => {
|
|
69
|
+
return (_jsxs("div", { style: {
|
|
70
|
+
padding: '8px 12px',
|
|
71
|
+
margin: '4px 0',
|
|
72
|
+
backgroundColor: 'var(--color-canvas-subtle)',
|
|
73
|
+
borderRadius: '6px',
|
|
74
|
+
border: '1px solid var(--color-border-default)',
|
|
75
|
+
}, children: [_jsx("div", { style: { fontWeight: 500, marginBottom: '4px' }, children: resource.name || resource.uri }), resource.description && (_jsx("div", { style: { fontSize: '12px', color: 'var(--color-fg-muted)' }, children: resource.description })), resource.mimeType && (_jsx("div", { style: {
|
|
76
|
+
fontSize: '11px',
|
|
77
|
+
color: 'var(--color-fg-subtle)',
|
|
78
|
+
marginTop: '4px',
|
|
79
|
+
}, children: resource.mimeType }))] }));
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Resource content component
|
|
83
|
+
*/
|
|
84
|
+
const ResourceContent = ({ resource, }) => {
|
|
85
|
+
const mimeType = resource.mimeType || 'text/plain';
|
|
86
|
+
// Handle text content
|
|
87
|
+
if (resource.text ||
|
|
88
|
+
(mimeType.startsWith('text/') && typeof resource.content === 'string')) {
|
|
89
|
+
const text = resource.text || resource.content;
|
|
90
|
+
if (mimeType === 'text/html') {
|
|
91
|
+
return (_jsx("div", { className: "mcp-ui-html", dangerouslySetInnerHTML: { __html: text }, style: {
|
|
92
|
+
padding: '12px',
|
|
93
|
+
backgroundColor: 'var(--color-canvas-subtle)',
|
|
94
|
+
borderRadius: '6px',
|
|
95
|
+
} }));
|
|
96
|
+
}
|
|
97
|
+
if (mimeType === 'text/markdown') {
|
|
98
|
+
// For markdown, we'd ideally use a markdown renderer
|
|
99
|
+
// For now, just show as preformatted text
|
|
100
|
+
return (_jsx("pre", { style: {
|
|
101
|
+
padding: '12px',
|
|
102
|
+
backgroundColor: 'var(--color-canvas-subtle)',
|
|
103
|
+
borderRadius: '6px',
|
|
104
|
+
overflow: 'auto',
|
|
105
|
+
whiteSpace: 'pre-wrap',
|
|
106
|
+
}, children: text }));
|
|
107
|
+
}
|
|
108
|
+
// Plain text or code
|
|
109
|
+
return (_jsx("pre", { style: {
|
|
110
|
+
padding: '12px',
|
|
111
|
+
backgroundColor: 'var(--color-canvas-subtle)',
|
|
112
|
+
borderRadius: '6px',
|
|
113
|
+
overflow: 'auto',
|
|
114
|
+
whiteSpace: 'pre-wrap',
|
|
115
|
+
fontFamily: 'monospace',
|
|
116
|
+
}, children: text }));
|
|
117
|
+
}
|
|
118
|
+
// Handle blob content (base64 encoded)
|
|
119
|
+
if (resource.blob) {
|
|
120
|
+
if (mimeType.startsWith('image/')) {
|
|
121
|
+
return (_jsx("img", { src: `data:${mimeType};base64,${resource.blob}`, alt: resource.name || 'MCP Resource', style: { maxWidth: '100%', borderRadius: '6px' } }));
|
|
122
|
+
}
|
|
123
|
+
// For other blob types, show download link
|
|
124
|
+
return (_jsxs("a", { href: `data:${mimeType};base64,${resource.blob}`, download: resource.name || 'resource', style: {
|
|
125
|
+
display: 'inline-block',
|
|
126
|
+
padding: '8px 16px',
|
|
127
|
+
backgroundColor: 'var(--color-accent-emphasis)',
|
|
128
|
+
color: 'var(--color-fg-on-emphasis)',
|
|
129
|
+
borderRadius: '6px',
|
|
130
|
+
textDecoration: 'none',
|
|
131
|
+
}, children: ["Download ", resource.name || 'resource'] }));
|
|
132
|
+
}
|
|
133
|
+
// Handle JSON content
|
|
134
|
+
if (mimeType === 'application/json' || typeof resource.content === 'object') {
|
|
135
|
+
return (_jsx("pre", { style: {
|
|
136
|
+
padding: '12px',
|
|
137
|
+
backgroundColor: 'var(--color-canvas-subtle)',
|
|
138
|
+
borderRadius: '6px',
|
|
139
|
+
overflow: 'auto',
|
|
140
|
+
fontFamily: 'monospace',
|
|
141
|
+
}, children: JSON.stringify(resource.content, null, 2) }));
|
|
142
|
+
}
|
|
143
|
+
// Fallback
|
|
144
|
+
return (_jsxs("div", { style: {
|
|
145
|
+
padding: '12px',
|
|
146
|
+
backgroundColor: 'var(--color-canvas-subtle)',
|
|
147
|
+
borderRadius: '6px',
|
|
148
|
+
color: 'var(--color-fg-muted)',
|
|
149
|
+
}, children: ["Resource: ", resource.uri] }));
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* UI Element component for rendering MCP UI elements
|
|
153
|
+
*/
|
|
154
|
+
const UIElement = ({ element, }) => {
|
|
155
|
+
if (!element)
|
|
156
|
+
return null;
|
|
157
|
+
const { type, props = {}, children } = element;
|
|
158
|
+
// Map MCP UI element types to HTML elements
|
|
159
|
+
const elementMap = {
|
|
160
|
+
container: 'div',
|
|
161
|
+
text: 'span',
|
|
162
|
+
button: 'button',
|
|
163
|
+
input: 'input',
|
|
164
|
+
form: 'form',
|
|
165
|
+
list: 'ul',
|
|
166
|
+
listItem: 'li',
|
|
167
|
+
heading: 'h3',
|
|
168
|
+
paragraph: 'p',
|
|
169
|
+
link: 'a',
|
|
170
|
+
image: 'img',
|
|
171
|
+
code: 'code',
|
|
172
|
+
pre: 'pre',
|
|
173
|
+
};
|
|
174
|
+
const htmlTag = elementMap[type] || 'div';
|
|
175
|
+
return React.createElement(htmlTag, {
|
|
176
|
+
...props,
|
|
177
|
+
style: {
|
|
178
|
+
...(props.style || {}),
|
|
179
|
+
},
|
|
180
|
+
}, children?.map((child, index) => (_jsx(UIElement, { element: child.uiElement }, index))));
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* MCP-UI Extension implementation class
|
|
184
|
+
*/
|
|
185
|
+
export class MCPUIExtensionImpl {
|
|
186
|
+
renderer;
|
|
187
|
+
customRenderers;
|
|
188
|
+
constructor(customRenderers) {
|
|
189
|
+
this.customRenderers = customRenderers || {};
|
|
190
|
+
this.renderer = createMCPUIRenderer(this.customRenderers);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get the activity renderer extension
|
|
194
|
+
*/
|
|
195
|
+
getRenderer() {
|
|
196
|
+
return this.renderer;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Register a custom renderer for a MIME type
|
|
200
|
+
*/
|
|
201
|
+
registerMimeTypeRenderer(mimeType, renderer) {
|
|
202
|
+
this.customRenderers[mimeType] = renderer;
|
|
203
|
+
// Recreate renderer with updated custom renderers
|
|
204
|
+
this.renderer = createMCPUIRenderer(this.customRenderers);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Cleanup extension state
|
|
208
|
+
*/
|
|
209
|
+
cleanup() {
|
|
210
|
+
// Context cleanup handled by renderer garbage collection
|
|
211
|
+
}
|
|
212
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension exports for chat component.
|
|
3
|
+
*
|
|
4
|
+
* @module components/chat/extensions
|
|
5
|
+
*/
|
|
6
|
+
export { ExtensionRegistry, createMessageRenderer, createActivityRenderer, } from './ExtensionRegistry';
|
|
7
|
+
export { createA2UIRenderer, A2UIExtensionImpl, type A2UIMessage, } from './A2UIExtension';
|
|
8
|
+
export { createMCPUIRenderer, MCPUIExtensionImpl, type MCPUIMessage, type MCPUIResource, } from './MCPUIExtension';
|
|
9
|
+
export type { ChatExtension, ExtensionType, MessageRendererExtension, ActivityRendererExtension, ToolUIExtension, ProtocolEventExtension, PanelExtension, A2UIExtension, } from '../types/extension';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extension exports for chat component.
|
|
7
|
+
*
|
|
8
|
+
* @module components/chat/extensions
|
|
9
|
+
*/
|
|
10
|
+
export { ExtensionRegistry, createMessageRenderer, createActivityRenderer, } from './ExtensionRegistry';
|
|
11
|
+
export { createA2UIRenderer, A2UIExtensionImpl, } from './A2UIExtension';
|
|
12
|
+
export { createMCPUIRenderer, MCPUIExtensionImpl, } from './MCPUIExtension';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call the API extension
|
|
3
|
+
*
|
|
4
|
+
* @param endPoint - API REST end point for the extension
|
|
5
|
+
* @param init - Initial values for the request
|
|
6
|
+
* @returns The response body interpreted as JSON
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // GET request
|
|
11
|
+
* const config = await requestAPI<Config>('config');
|
|
12
|
+
*
|
|
13
|
+
* // POST request
|
|
14
|
+
* const result = await requestAPI<Result>('chat', {
|
|
15
|
+
* method: 'POST',
|
|
16
|
+
* body: JSON.stringify({ message: 'Hello' }),
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function requestAPI<T>(endPoint?: string, init?: RequestInit): Promise<T>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Simple API request handler.
|
|
7
|
+
* Helper function to make API requests to the Simple server.
|
|
8
|
+
*
|
|
9
|
+
* @module components/chat/handler
|
|
10
|
+
*/
|
|
11
|
+
import { URLExt } from '@jupyterlab/coreutils';
|
|
12
|
+
import { ServerConnection } from '@jupyterlab/services';
|
|
13
|
+
/**
|
|
14
|
+
* Call the API extension
|
|
15
|
+
*
|
|
16
|
+
* @param endPoint - API REST end point for the extension
|
|
17
|
+
* @param init - Initial values for the request
|
|
18
|
+
* @returns The response body interpreted as JSON
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* // GET request
|
|
23
|
+
* const config = await requestAPI<Config>('config');
|
|
24
|
+
*
|
|
25
|
+
* // POST request
|
|
26
|
+
* const result = await requestAPI<Result>('chat', {
|
|
27
|
+
* method: 'POST',
|
|
28
|
+
* body: JSON.stringify({ message: 'Hello' }),
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export async function requestAPI(endPoint = '', init = {}) {
|
|
33
|
+
// Make request to Simple API
|
|
34
|
+
const settings = ServerConnection.makeSettings();
|
|
35
|
+
const requestUrl = URLExt.join(settings.baseUrl, 'agent_runtimes', endPoint);
|
|
36
|
+
let response;
|
|
37
|
+
try {
|
|
38
|
+
response = await ServerConnection.makeRequest(requestUrl, init, settings);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
throw new ServerConnection.NetworkError(error);
|
|
42
|
+
}
|
|
43
|
+
let data = await response.text();
|
|
44
|
+
if (data.length > 0) {
|
|
45
|
+
try {
|
|
46
|
+
data = JSON.parse(data);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Not a JSON response body
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (!response.ok) {
|
|
53
|
+
throw new ServerConnection.ResponseError(response, data.message || data);
|
|
54
|
+
}
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat - Next generation chat component for agent-runtimes.
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Multiple transport support: AG-UI, A2A, ACP
|
|
6
|
+
* - Hybrid tool execution (frontend/backend)
|
|
7
|
+
* - Human-in-the-loop (HITL) tool approval
|
|
8
|
+
* - Middleware pipeline for extensibility
|
|
9
|
+
* - Extension registry for custom renderers
|
|
10
|
+
* - Primer React UI components
|
|
11
|
+
* - Zustand state management (NO provider required!)
|
|
12
|
+
*
|
|
13
|
+
* @module components/chat
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* import {
|
|
18
|
+
* useChatStore,
|
|
19
|
+
* ChatSidebar,
|
|
20
|
+
* useFrontendTool,
|
|
21
|
+
* DatalayerInferenceProvider,
|
|
22
|
+
* } from './chat';
|
|
23
|
+
*
|
|
24
|
+
* // Setup inference provider (once at app init)
|
|
25
|
+
* const provider = new DatalayerInferenceProvider({
|
|
26
|
+
* apiKey: 'your-api-key',
|
|
27
|
+
* baseUrl: 'https://api.datalayer.io',
|
|
28
|
+
* });
|
|
29
|
+
* useChatStore.getState().setInferenceProvider(provider);
|
|
30
|
+
*
|
|
31
|
+
* function App() {
|
|
32
|
+
* return (
|
|
33
|
+
* <>
|
|
34
|
+
* <ToolRegistrar />
|
|
35
|
+
* <ChatSidebar title="Assistant" />
|
|
36
|
+
* </>
|
|
37
|
+
* );
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* function ToolRegistrar() {
|
|
41
|
+
* useFrontendTool({
|
|
42
|
+
* name: 'greet',
|
|
43
|
+
* description: 'Greet a user',
|
|
44
|
+
* parameters: [{ name: 'name', type: 'string', required: true }],
|
|
45
|
+
* handler: async ({ name }) => ({ greeting: `Hello, ${name}!` }),
|
|
46
|
+
* });
|
|
47
|
+
* return null;
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export * from './types';
|
|
52
|
+
export { useChatStore, useChatMessages, useChatLoading, useChatStreaming, useChatError, useChatTools, useChatOpen, useChatConfig, useChatReady, useChatInferenceProvider, useChatExtensionRegistry, defaultChatConfig, type ChatStore, type ChatConfig, } from './store';
|
|
53
|
+
export { useChat, useFrontendTool, useBackendTool, ActionRegistrar, type UseChatReturn, type UseFrontendToolFn, } from '../../hooks';
|
|
54
|
+
export { BaseInferenceProvider, DatalayerInferenceProvider, SelfHostedInferenceProvider, type DatalayerInferenceConfig, type SelfHostedInferenceConfig, } from './inference';
|
|
55
|
+
export { BaseProtocolAdapter, AGUIAdapter, A2AAdapter, ACPAdapter, type AGUIAdapterConfig, type A2AAdapterConfig, type ACPAdapterConfig, type ACPSession, type ACPAgent, type ACPPendingPermission, } from './protocols';
|
|
56
|
+
export { ToolExecutor, type ToolExecutionContext } from './tools';
|
|
57
|
+
export { MiddlewarePipeline, createMiddleware, loggingMiddleware, createHITLMiddleware, type RequestContext, type ResponseContext, } from './middleware';
|
|
58
|
+
export { ExtensionRegistry, createMessageRenderer, createActivityRenderer, createA2UIRenderer, A2UIExtensionImpl, type A2UIMessage, } from './extensions';
|
|
59
|
+
export { ChatMessages, ChatInputPrompt, ChatSidebar, ChatStandalone, ChatBase, ToolApprovalDialog, useToolApprovalDialog, PoweredByTag, FloatingBrandButton, ChatHeader, MessagePart, TextPart, ReasoningPart, ToolPart, DynamicToolPart, ToolCallDisplay, Chat, ChatFloating, type ChatMessagesProps, type ChatInputPromptProps, type ChatSidebarProps, type ChatStandaloneProps, type MessageHandler, type ChatBaseProps, type ProtocolConfig, type ToolApprovalDialogProps, type PoweredByTagProps, type FloatingBrandButtonProps, type ChatFloatingProps, type ToolCallRenderContext, type ToolCallStatus, type RenderToolResult, type RespondCallback, type Suggestion, type ChatHeaderProps, type ConnectionState, type MessagePartProps, type TextPartProps, type ReasoningPartProps, type ToolPartProps, type DynamicToolPartProps, type ToolCallDisplayProps, type ChatProps, type Transport, type Extension, } from './components';
|
|
60
|
+
export { requestAPI } from './handler';
|
|
61
|
+
export { useKeyboardShortcuts, useChatKeyboardShortcuts, getShortcutDisplay, type KeyboardShortcut, type UseKeyboardShortcutsOptions, } from '../../hooks';
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Chat - Next generation chat component for agent-runtimes.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Multiple transport support: AG-UI, A2A, ACP
|
|
10
|
+
* - Hybrid tool execution (frontend/backend)
|
|
11
|
+
* - Human-in-the-loop (HITL) tool approval
|
|
12
|
+
* - Middleware pipeline for extensibility
|
|
13
|
+
* - Extension registry for custom renderers
|
|
14
|
+
* - Primer React UI components
|
|
15
|
+
* - Zustand state management (NO provider required!)
|
|
16
|
+
*
|
|
17
|
+
* @module components/chat
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* import {
|
|
22
|
+
* useChatStore,
|
|
23
|
+
* ChatSidebar,
|
|
24
|
+
* useFrontendTool,
|
|
25
|
+
* DatalayerInferenceProvider,
|
|
26
|
+
* } from './chat';
|
|
27
|
+
*
|
|
28
|
+
* // Setup inference provider (once at app init)
|
|
29
|
+
* const provider = new DatalayerInferenceProvider({
|
|
30
|
+
* apiKey: 'your-api-key',
|
|
31
|
+
* baseUrl: 'https://api.datalayer.io',
|
|
32
|
+
* });
|
|
33
|
+
* useChatStore.getState().setInferenceProvider(provider);
|
|
34
|
+
*
|
|
35
|
+
* function App() {
|
|
36
|
+
* return (
|
|
37
|
+
* <>
|
|
38
|
+
* <ToolRegistrar />
|
|
39
|
+
* <ChatSidebar title="Assistant" />
|
|
40
|
+
* </>
|
|
41
|
+
* );
|
|
42
|
+
* }
|
|
43
|
+
*
|
|
44
|
+
* function ToolRegistrar() {
|
|
45
|
+
* useFrontendTool({
|
|
46
|
+
* name: 'greet',
|
|
47
|
+
* description: 'Greet a user',
|
|
48
|
+
* parameters: [{ name: 'name', type: 'string', required: true }],
|
|
49
|
+
* handler: async ({ name }) => ({ greeting: `Hello, ${name}!` }),
|
|
50
|
+
* });
|
|
51
|
+
* return null;
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
// Types
|
|
56
|
+
export * from './types';
|
|
57
|
+
// Store (primary state management - no provider needed!)
|
|
58
|
+
export { useChatStore, useChatMessages, useChatLoading, useChatStreaming, useChatError, useChatTools, useChatOpen, useChatConfig, useChatReady, useChatInferenceProvider, useChatExtensionRegistry, defaultChatConfig, } from './store';
|
|
59
|
+
// Hooks (re-exported from main hooks folder)
|
|
60
|
+
export { useChat, useFrontendTool, useBackendTool, ActionRegistrar, } from '../../hooks';
|
|
61
|
+
// Inference Providers
|
|
62
|
+
export { BaseInferenceProvider, DatalayerInferenceProvider, SelfHostedInferenceProvider, } from './inference';
|
|
63
|
+
// Protocol Adapters
|
|
64
|
+
export { BaseProtocolAdapter, AGUIAdapter, A2AAdapter, ACPAdapter, } from './protocols';
|
|
65
|
+
// Tools
|
|
66
|
+
export { ToolExecutor } from './tools';
|
|
67
|
+
// Middleware
|
|
68
|
+
export { MiddlewarePipeline, createMiddleware, loggingMiddleware, createHITLMiddleware, } from './middleware';
|
|
69
|
+
// Extensions
|
|
70
|
+
export { ExtensionRegistry, createMessageRenderer, createActivityRenderer, createA2UIRenderer, A2UIExtensionImpl, } from './extensions';
|
|
71
|
+
// Components
|
|
72
|
+
export { ChatMessages, ChatInputPrompt, ChatSidebar, ChatStandalone, ChatBase, ToolApprovalDialog, useToolApprovalDialog, PoweredByTag, FloatingBrandButton, ChatHeader, MessagePart, TextPart, ReasoningPart, ToolPart, DynamicToolPart, ToolCallDisplay, Chat, ChatFloating, } from './components';
|
|
73
|
+
// Simple API request handler (merged from chat)
|
|
74
|
+
export { requestAPI } from './handler';
|
|
75
|
+
// Keyboard shortcuts (re-exported from main hooks folder)
|
|
76
|
+
export { useKeyboardShortcuts, useChatKeyboardShortcuts, getShortcutDisplay, } from '../../hooks';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base inference provider class with common functionality.
|
|
3
|
+
*
|
|
4
|
+
* @module components/chat/inference/BaseInferenceProvider
|
|
5
|
+
*/
|
|
6
|
+
import type { InferenceProvider, InferenceProviderConfig, InferenceRequestOptions, InferenceResponse, StreamEventHandler } from '../types';
|
|
7
|
+
import type { ChatMessage } from '../types/message';
|
|
8
|
+
import type { ToolExecutionResult } from '../types/tool';
|
|
9
|
+
/**
|
|
10
|
+
* Abstract base class for inference providers
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class BaseInferenceProvider implements InferenceProvider {
|
|
13
|
+
protected config: InferenceProviderConfig;
|
|
14
|
+
protected abortController: AbortController | null;
|
|
15
|
+
abstract readonly name: string;
|
|
16
|
+
constructor(config: InferenceProviderConfig);
|
|
17
|
+
/**
|
|
18
|
+
* Send a message and get a response (non-streaming)
|
|
19
|
+
*/
|
|
20
|
+
abstract sendMessage(messages: ChatMessage[], options?: InferenceRequestOptions): Promise<InferenceResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* Send a message with streaming response
|
|
23
|
+
*/
|
|
24
|
+
abstract streamMessage(messages: ChatMessage[], options?: InferenceRequestOptions, onEvent?: StreamEventHandler): Promise<InferenceResponse>;
|
|
25
|
+
/**
|
|
26
|
+
* Cancel an ongoing request
|
|
27
|
+
*/
|
|
28
|
+
cancelRequest(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Execute a backend tool (optional, for hybrid execution)
|
|
31
|
+
*/
|
|
32
|
+
executeBackendTool(_toolName: string, _args: Record<string, unknown>, _options?: InferenceRequestOptions): Promise<ToolExecutionResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Check if provider is available/configured
|
|
35
|
+
*/
|
|
36
|
+
isAvailable(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Get provider configuration
|
|
39
|
+
*/
|
|
40
|
+
getConfig(): InferenceProviderConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Create abort controller for request
|
|
43
|
+
*/
|
|
44
|
+
protected createAbortController(signal?: AbortSignal): AbortController;
|
|
45
|
+
/**
|
|
46
|
+
* Build headers for API requests
|
|
47
|
+
*/
|
|
48
|
+
protected buildHeaders(additionalHeaders?: Record<string, string>): Record<string, string>;
|
|
49
|
+
/**
|
|
50
|
+
* Convert internal messages to provider-specific format
|
|
51
|
+
*/
|
|
52
|
+
protected abstract convertMessages(messages: ChatMessage[]): unknown[];
|
|
53
|
+
/**
|
|
54
|
+
* Parse provider response to internal format
|
|
55
|
+
*/
|
|
56
|
+
protected abstract parseResponse(response: unknown): InferenceResponse;
|
|
57
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Abstract base class for inference providers
|
|
7
|
+
*/
|
|
8
|
+
export class BaseInferenceProvider {
|
|
9
|
+
config;
|
|
10
|
+
abortController = null;
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Cancel an ongoing request
|
|
16
|
+
*/
|
|
17
|
+
cancelRequest() {
|
|
18
|
+
if (this.abortController) {
|
|
19
|
+
this.abortController.abort();
|
|
20
|
+
this.abortController = null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Execute a backend tool (optional, for hybrid execution)
|
|
25
|
+
*/
|
|
26
|
+
async executeBackendTool(_toolName, _args, _options) {
|
|
27
|
+
return {
|
|
28
|
+
success: false,
|
|
29
|
+
error: `Backend tool execution not supported by ${this.name} provider`,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if provider is available/configured
|
|
34
|
+
*/
|
|
35
|
+
isAvailable() {
|
|
36
|
+
return !!this.config.apiKey || !!this.config.baseUrl;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get provider configuration
|
|
40
|
+
*/
|
|
41
|
+
getConfig() {
|
|
42
|
+
return { ...this.config };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create abort controller for request
|
|
46
|
+
*/
|
|
47
|
+
createAbortController(signal) {
|
|
48
|
+
this.abortController = new AbortController();
|
|
49
|
+
// Link to external signal if provided
|
|
50
|
+
if (signal) {
|
|
51
|
+
signal.addEventListener('abort', () => {
|
|
52
|
+
this.abortController?.abort();
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return this.abortController;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build headers for API requests
|
|
59
|
+
*/
|
|
60
|
+
buildHeaders(additionalHeaders) {
|
|
61
|
+
const headers = {
|
|
62
|
+
'Content-Type': 'application/json',
|
|
63
|
+
};
|
|
64
|
+
if (this.config.apiKey) {
|
|
65
|
+
headers['Authorization'] = `Bearer ${this.config.apiKey}`;
|
|
66
|
+
}
|
|
67
|
+
return { ...headers, ...additionalHeaders };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Datalayer inference provider implementation.
|
|
3
|
+
* Uses Datalayer's API for LLM inference.
|
|
4
|
+
*
|
|
5
|
+
* @module components/chat/inference/DatalayerInferenceProvider
|
|
6
|
+
*/
|
|
7
|
+
import type { InferenceProviderConfig, InferenceRequestOptions, InferenceResponse, StreamEventHandler } from '../types';
|
|
8
|
+
import type { ChatMessage } from '../types/message';
|
|
9
|
+
import type { ToolExecutionResult } from '../types/tool';
|
|
10
|
+
import { BaseInferenceProvider } from './BaseInferenceProvider';
|
|
11
|
+
/**
|
|
12
|
+
* Finish reason type for inference responses
|
|
13
|
+
*/
|
|
14
|
+
export type FinishReason = 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'error';
|
|
15
|
+
/**
|
|
16
|
+
* Datalayer-specific configuration
|
|
17
|
+
*/
|
|
18
|
+
export interface DatalayerInferenceConfig extends InferenceProviderConfig {
|
|
19
|
+
/** Datalayer API key */
|
|
20
|
+
apiKey: string;
|
|
21
|
+
/** Base URL for Datalayer API */
|
|
22
|
+
baseUrl?: string;
|
|
23
|
+
/** Model to use */
|
|
24
|
+
model?: string;
|
|
25
|
+
/** Agent ID for agent-specific inference */
|
|
26
|
+
agentId?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Datalayer inference provider
|
|
30
|
+
*/
|
|
31
|
+
export declare class DatalayerInferenceProvider extends BaseInferenceProvider {
|
|
32
|
+
readonly name = "datalayer";
|
|
33
|
+
private datalayerConfig;
|
|
34
|
+
constructor(config: DatalayerInferenceConfig);
|
|
35
|
+
/**
|
|
36
|
+
* Send a message and get a response (non-streaming)
|
|
37
|
+
*/
|
|
38
|
+
sendMessage(messages: ChatMessage[], options?: InferenceRequestOptions): Promise<InferenceResponse>;
|
|
39
|
+
/**
|
|
40
|
+
* Send a message with streaming response
|
|
41
|
+
*/
|
|
42
|
+
streamMessage(messages: ChatMessage[], options?: InferenceRequestOptions, onEvent?: StreamEventHandler): Promise<InferenceResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* Execute a backend tool
|
|
45
|
+
*/
|
|
46
|
+
executeBackendTool(toolName: string, args: Record<string, unknown>, options?: InferenceRequestOptions): Promise<ToolExecutionResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Check if provider is available
|
|
49
|
+
*/
|
|
50
|
+
isAvailable(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Convert internal messages to OpenAI-compatible format
|
|
53
|
+
*/
|
|
54
|
+
protected convertMessages(messages: ChatMessage[]): unknown[];
|
|
55
|
+
/**
|
|
56
|
+
* Convert tool definitions to OpenAI format
|
|
57
|
+
*/
|
|
58
|
+
private convertTools;
|
|
59
|
+
/**
|
|
60
|
+
* Parse API response to internal format
|
|
61
|
+
*/
|
|
62
|
+
protected parseResponse(data: {
|
|
63
|
+
choices?: Array<{
|
|
64
|
+
message?: {
|
|
65
|
+
role?: string;
|
|
66
|
+
content?: string;
|
|
67
|
+
tool_calls?: Array<{
|
|
68
|
+
id: string;
|
|
69
|
+
function: {
|
|
70
|
+
name: string;
|
|
71
|
+
arguments: string;
|
|
72
|
+
};
|
|
73
|
+
}>;
|
|
74
|
+
};
|
|
75
|
+
finish_reason?: string;
|
|
76
|
+
}>;
|
|
77
|
+
usage?: {
|
|
78
|
+
prompt_tokens?: number;
|
|
79
|
+
completion_tokens?: number;
|
|
80
|
+
total_tokens?: number;
|
|
81
|
+
};
|
|
82
|
+
}): InferenceResponse;
|
|
83
|
+
}
|