@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,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension types for chat component.
|
|
3
|
+
* Extensions add pluggable UI and protocol capabilities.
|
|
4
|
+
*
|
|
5
|
+
* @module components/chat/types/extension
|
|
6
|
+
*/
|
|
7
|
+
import type { ReactNode } from 'react';
|
|
8
|
+
import type { ChatMessage } from './message';
|
|
9
|
+
import type { ToolRenderProps } from './tool';
|
|
10
|
+
import type { ProtocolEvent } from './protocol';
|
|
11
|
+
/**
|
|
12
|
+
* Extension type identifiers
|
|
13
|
+
*/
|
|
14
|
+
export type ExtensionType = 'a2ui' | 'mcp-ui' | 'tool-approval' | 'dev-console' | 'activity' | 'custom';
|
|
15
|
+
/**
|
|
16
|
+
* Extension lifecycle hooks
|
|
17
|
+
*/
|
|
18
|
+
export interface ExtensionLifecycle {
|
|
19
|
+
/** Called when extension is registered */
|
|
20
|
+
onRegister?: () => void;
|
|
21
|
+
/** Called when extension is unregistered */
|
|
22
|
+
onUnregister?: () => void;
|
|
23
|
+
/** Called when chat context changes */
|
|
24
|
+
onContextChange?: (context: unknown) => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Message renderer extension
|
|
28
|
+
* Used to render custom message types (A2UI, activity messages, etc.)
|
|
29
|
+
*/
|
|
30
|
+
export interface MessageRendererExtension {
|
|
31
|
+
type: 'message-renderer';
|
|
32
|
+
/** Unique extension name */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Check if this extension can render the message */
|
|
35
|
+
canRender: (message: ChatMessage) => boolean;
|
|
36
|
+
/** Render the message */
|
|
37
|
+
render: (props: {
|
|
38
|
+
message: ChatMessage;
|
|
39
|
+
isStreaming?: boolean;
|
|
40
|
+
}) => ReactNode;
|
|
41
|
+
/** Priority (higher = checked first) */
|
|
42
|
+
priority?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Activity renderer extension
|
|
46
|
+
* Used to render protocol-specific activity messages
|
|
47
|
+
*/
|
|
48
|
+
export interface ActivityRendererExtension {
|
|
49
|
+
type: 'activity-renderer';
|
|
50
|
+
/** Unique extension name */
|
|
51
|
+
name: string;
|
|
52
|
+
/** Activity types this extension handles */
|
|
53
|
+
activityTypes: string[];
|
|
54
|
+
/** Render the activity */
|
|
55
|
+
render: (props: {
|
|
56
|
+
activityType: string;
|
|
57
|
+
data: unknown;
|
|
58
|
+
message: ChatMessage;
|
|
59
|
+
}) => ReactNode;
|
|
60
|
+
/** Priority (higher = checked first) */
|
|
61
|
+
priority?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Tool UI extension
|
|
65
|
+
* Used to provide custom UI for tool calls (beyond tool's own render)
|
|
66
|
+
*/
|
|
67
|
+
export interface ToolUIExtension {
|
|
68
|
+
type: 'tool-ui';
|
|
69
|
+
/** Unique extension name */
|
|
70
|
+
name: string;
|
|
71
|
+
/** Tool names this extension handles (or '*' for all) */
|
|
72
|
+
toolNames: string[] | '*';
|
|
73
|
+
/** Render custom UI for tool */
|
|
74
|
+
render: (props: ToolRenderProps & {
|
|
75
|
+
toolName: string;
|
|
76
|
+
defaultRender: () => ReactNode;
|
|
77
|
+
}) => ReactNode;
|
|
78
|
+
/** Priority (higher = checked first) */
|
|
79
|
+
priority?: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Protocol event extension
|
|
83
|
+
* Used to handle custom protocol events
|
|
84
|
+
*/
|
|
85
|
+
export interface ProtocolEventExtension {
|
|
86
|
+
type: 'protocol-event';
|
|
87
|
+
/** Unique extension name */
|
|
88
|
+
name: string;
|
|
89
|
+
/** Event types this extension handles */
|
|
90
|
+
eventTypes: string[];
|
|
91
|
+
/** Handle the protocol event */
|
|
92
|
+
handle: (event: ProtocolEvent) => void;
|
|
93
|
+
/** Optionally render UI for the event */
|
|
94
|
+
render?: (event: ProtocolEvent) => ReactNode;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Panel extension
|
|
98
|
+
* Used to add custom panels (dev console, settings, etc.)
|
|
99
|
+
*/
|
|
100
|
+
export interface PanelExtension {
|
|
101
|
+
type: 'panel';
|
|
102
|
+
/** Unique extension name */
|
|
103
|
+
name: string;
|
|
104
|
+
/** Panel title */
|
|
105
|
+
title: string;
|
|
106
|
+
/** Panel icon (optional) */
|
|
107
|
+
icon?: ReactNode;
|
|
108
|
+
/** Panel position */
|
|
109
|
+
position: 'sidebar' | 'bottom' | 'floating';
|
|
110
|
+
/** Render the panel content */
|
|
111
|
+
render: () => ReactNode;
|
|
112
|
+
/** Whether panel is initially visible */
|
|
113
|
+
defaultVisible?: boolean;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Union type for all extensions
|
|
117
|
+
*/
|
|
118
|
+
export type ChatExtension = MessageRendererExtension | ActivityRendererExtension | ToolUIExtension | ProtocolEventExtension | PanelExtension;
|
|
119
|
+
/**
|
|
120
|
+
* Extension registration options
|
|
121
|
+
*/
|
|
122
|
+
export interface ExtensionRegistrationOptions {
|
|
123
|
+
/** Replace existing extension with same name */
|
|
124
|
+
replace?: boolean;
|
|
125
|
+
/** Enable/disable extension */
|
|
126
|
+
enabled?: boolean;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Extension registry entry
|
|
130
|
+
*/
|
|
131
|
+
export interface ExtensionRegistryEntry {
|
|
132
|
+
extension: ChatExtension;
|
|
133
|
+
enabled: boolean;
|
|
134
|
+
registeredAt: Date;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A2UI specific extension types
|
|
138
|
+
*/
|
|
139
|
+
export declare namespace A2UIExtension {
|
|
140
|
+
/** A2UI surface state */
|
|
141
|
+
interface Surface {
|
|
142
|
+
id: string;
|
|
143
|
+
root: string;
|
|
144
|
+
styles?: {
|
|
145
|
+
font?: string;
|
|
146
|
+
primaryColor?: string;
|
|
147
|
+
};
|
|
148
|
+
components: Map<string, Component>;
|
|
149
|
+
dataModel: Map<string, unknown>;
|
|
150
|
+
}
|
|
151
|
+
/** A2UI component definition */
|
|
152
|
+
interface Component {
|
|
153
|
+
id: string;
|
|
154
|
+
type: string;
|
|
155
|
+
props: Record<string, unknown>;
|
|
156
|
+
children?: string[];
|
|
157
|
+
}
|
|
158
|
+
/** A2UI message types */
|
|
159
|
+
type MessageType = 'beginRendering' | 'surfaceUpdate' | 'dataModelUpdate' | 'deleteSurface';
|
|
160
|
+
/** A2UI renderer theme */
|
|
161
|
+
interface Theme {
|
|
162
|
+
components?: Record<string, React.ComponentType<unknown>>;
|
|
163
|
+
styles?: Record<string, unknown>;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Type guard to check extension type
|
|
168
|
+
*/
|
|
169
|
+
export declare function isMessageRendererExtension(ext: ChatExtension): ext is MessageRendererExtension;
|
|
170
|
+
export declare function isActivityRendererExtension(ext: ChatExtension): ext is ActivityRendererExtension;
|
|
171
|
+
export declare function isToolUIExtension(ext: ChatExtension): ext is ToolUIExtension;
|
|
172
|
+
export declare function isProtocolEventExtension(ext: ChatExtension): ext is ProtocolEventExtension;
|
|
173
|
+
export declare function isPanelExtension(ext: ChatExtension): ext is PanelExtension;
|
|
174
|
+
/**
|
|
175
|
+
* Helper to create a message renderer extension
|
|
176
|
+
*/
|
|
177
|
+
export declare function createMessageRenderer(name: string, canRender: MessageRendererExtension['canRender'], render: MessageRendererExtension['render'], priority?: number): MessageRendererExtension;
|
|
178
|
+
/**
|
|
179
|
+
* Helper to create an activity renderer extension
|
|
180
|
+
*/
|
|
181
|
+
export declare function createActivityRenderer(name: string, activityTypes: string[], render: ActivityRendererExtension['render'], priority?: number): ActivityRendererExtension;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Type guard to check extension type
|
|
7
|
+
*/
|
|
8
|
+
export function isMessageRendererExtension(ext) {
|
|
9
|
+
return ext.type === 'message-renderer';
|
|
10
|
+
}
|
|
11
|
+
export function isActivityRendererExtension(ext) {
|
|
12
|
+
return ext.type === 'activity-renderer';
|
|
13
|
+
}
|
|
14
|
+
export function isToolUIExtension(ext) {
|
|
15
|
+
return ext.type === 'tool-ui';
|
|
16
|
+
}
|
|
17
|
+
export function isProtocolEventExtension(ext) {
|
|
18
|
+
return ext.type === 'protocol-event';
|
|
19
|
+
}
|
|
20
|
+
export function isPanelExtension(ext) {
|
|
21
|
+
return ext.type === 'panel';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Helper to create a message renderer extension
|
|
25
|
+
*/
|
|
26
|
+
export function createMessageRenderer(name, canRender, render, priority = 0) {
|
|
27
|
+
return {
|
|
28
|
+
type: 'message-renderer',
|
|
29
|
+
name,
|
|
30
|
+
canRender,
|
|
31
|
+
render,
|
|
32
|
+
priority,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Helper to create an activity renderer extension
|
|
37
|
+
*/
|
|
38
|
+
export function createActivityRenderer(name, activityTypes, render, priority = 0) {
|
|
39
|
+
return {
|
|
40
|
+
type: 'activity-renderer',
|
|
41
|
+
name,
|
|
42
|
+
activityTypes,
|
|
43
|
+
render,
|
|
44
|
+
priority,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core types for chat component.
|
|
3
|
+
*
|
|
4
|
+
* @module components/chat/types
|
|
5
|
+
*/
|
|
6
|
+
export * from './message';
|
|
7
|
+
export * from './tool';
|
|
8
|
+
export * from './inference';
|
|
9
|
+
export * from './protocol';
|
|
10
|
+
export * from './middleware';
|
|
11
|
+
export * from './extension';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Core types for chat component.
|
|
7
|
+
*
|
|
8
|
+
* @module components/chat/types
|
|
9
|
+
*/
|
|
10
|
+
// Re-export all types
|
|
11
|
+
export * from './message';
|
|
12
|
+
export * from './tool';
|
|
13
|
+
export * from './inference';
|
|
14
|
+
export * from './protocol';
|
|
15
|
+
export * from './middleware';
|
|
16
|
+
export * from './extension';
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inference provider types for chat component.
|
|
3
|
+
* Supports multiple backends: Datalayer, OpenAI, Anthropic, self-hosted.
|
|
4
|
+
*
|
|
5
|
+
* @module components/chat/types/inference
|
|
6
|
+
*/
|
|
7
|
+
import type { ChatMessage, ChatMessageDelta } from './message';
|
|
8
|
+
import type { ToolDefinition, ToolCallRequest, ToolExecutionResult } from './tool';
|
|
9
|
+
/**
|
|
10
|
+
* Inference provider configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface InferenceProviderConfig {
|
|
13
|
+
/** API key for authentication */
|
|
14
|
+
apiKey?: string;
|
|
15
|
+
/** Base URL for API requests */
|
|
16
|
+
baseUrl?: string;
|
|
17
|
+
/** Model to use for inference */
|
|
18
|
+
model?: string;
|
|
19
|
+
/** Request timeout in milliseconds */
|
|
20
|
+
timeout?: number;
|
|
21
|
+
/** Additional provider-specific options */
|
|
22
|
+
options?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Request options for sending messages
|
|
26
|
+
*/
|
|
27
|
+
export interface InferenceRequestOptions {
|
|
28
|
+
/** System prompt / instructions */
|
|
29
|
+
instructions?: string;
|
|
30
|
+
/** Temperature for response generation */
|
|
31
|
+
temperature?: number;
|
|
32
|
+
/** Maximum tokens to generate */
|
|
33
|
+
maxTokens?: number;
|
|
34
|
+
/** Tools available for the LLM */
|
|
35
|
+
tools?: ToolDefinition[];
|
|
36
|
+
/** Abort signal for cancellation */
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
/** Thread/conversation ID */
|
|
39
|
+
threadId?: string;
|
|
40
|
+
/** Agent name for multi-agent scenarios */
|
|
41
|
+
agentName?: string;
|
|
42
|
+
/** Additional metadata */
|
|
43
|
+
metadata?: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Response from inference provider
|
|
47
|
+
*/
|
|
48
|
+
export interface InferenceResponse {
|
|
49
|
+
/** Generated message */
|
|
50
|
+
message: ChatMessage;
|
|
51
|
+
/** Usage statistics */
|
|
52
|
+
usage?: {
|
|
53
|
+
promptTokens: number;
|
|
54
|
+
completionTokens: number;
|
|
55
|
+
totalTokens: number;
|
|
56
|
+
};
|
|
57
|
+
/** Finish reason */
|
|
58
|
+
finishReason?: 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'error';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Streaming event types
|
|
62
|
+
*/
|
|
63
|
+
export type StreamEventType = 'message-start' | 'content-delta' | 'tool-call-start' | 'tool-call-delta' | 'tool-call-end' | 'message-end' | 'error';
|
|
64
|
+
/**
|
|
65
|
+
* Streaming event
|
|
66
|
+
*/
|
|
67
|
+
export interface StreamEvent {
|
|
68
|
+
type: StreamEventType;
|
|
69
|
+
messageId?: string;
|
|
70
|
+
delta?: ChatMessageDelta;
|
|
71
|
+
toolCall?: ToolCallRequest;
|
|
72
|
+
error?: Error;
|
|
73
|
+
finishReason?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Callback for handling stream events
|
|
77
|
+
*/
|
|
78
|
+
export type StreamEventHandler = (event: StreamEvent) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Abstract inference provider interface
|
|
81
|
+
*/
|
|
82
|
+
export interface InferenceProvider {
|
|
83
|
+
/** Provider name for identification */
|
|
84
|
+
readonly name: string;
|
|
85
|
+
/**
|
|
86
|
+
* Send a message and get a response (non-streaming)
|
|
87
|
+
*/
|
|
88
|
+
sendMessage(messages: ChatMessage[], options?: InferenceRequestOptions): Promise<InferenceResponse>;
|
|
89
|
+
/**
|
|
90
|
+
* Send a message with streaming response
|
|
91
|
+
*/
|
|
92
|
+
streamMessage(messages: ChatMessage[], options?: InferenceRequestOptions, onEvent?: StreamEventHandler): Promise<InferenceResponse>;
|
|
93
|
+
/**
|
|
94
|
+
* Cancel an ongoing request
|
|
95
|
+
*/
|
|
96
|
+
cancelRequest(requestId?: string): void;
|
|
97
|
+
/**
|
|
98
|
+
* Execute a backend tool (for hybrid execution)
|
|
99
|
+
*/
|
|
100
|
+
executeBackendTool?(toolName: string, args: Record<string, unknown>, options?: InferenceRequestOptions): Promise<ToolExecutionResult>;
|
|
101
|
+
/**
|
|
102
|
+
* Check if provider is available/configured
|
|
103
|
+
*/
|
|
104
|
+
isAvailable(): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Get provider configuration
|
|
107
|
+
*/
|
|
108
|
+
getConfig(): InferenceProviderConfig;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Factory function type for creating inference providers
|
|
112
|
+
*/
|
|
113
|
+
export type InferenceProviderFactory = (config: InferenceProviderConfig) => InferenceProvider;
|
|
114
|
+
/**
|
|
115
|
+
* Provider type identifiers
|
|
116
|
+
*/
|
|
117
|
+
export type InferenceProviderType = 'datalayer' | 'openai' | 'anthropic' | 'self-hosted' | 'copilotkit';
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message types for chat component.
|
|
3
|
+
* Based on AG-UI protocol message format for interoperability.
|
|
4
|
+
*
|
|
5
|
+
* @module components/chat/types/message
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Message role enumeration
|
|
9
|
+
*/
|
|
10
|
+
export type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
|
|
11
|
+
/**
|
|
12
|
+
* Tool call status for tracking execution state
|
|
13
|
+
*/
|
|
14
|
+
export type ToolCallStatus = 'pending' | 'executing' | 'completed' | 'failed' | 'awaiting-approval';
|
|
15
|
+
/**
|
|
16
|
+
* Content part types for multi-modal messages
|
|
17
|
+
*/
|
|
18
|
+
export interface TextContentPart {
|
|
19
|
+
type: 'text';
|
|
20
|
+
text: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ImageContentPart {
|
|
23
|
+
type: 'image';
|
|
24
|
+
url: string;
|
|
25
|
+
alt?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ToolCallContentPart {
|
|
28
|
+
type: 'tool-call';
|
|
29
|
+
toolCallId: string;
|
|
30
|
+
toolName: string;
|
|
31
|
+
args: Record<string, unknown>;
|
|
32
|
+
status: ToolCallStatus;
|
|
33
|
+
result?: unknown;
|
|
34
|
+
}
|
|
35
|
+
export interface ToolResultContentPart {
|
|
36
|
+
type: 'tool-result';
|
|
37
|
+
toolCallId: string;
|
|
38
|
+
toolName: string;
|
|
39
|
+
result: unknown;
|
|
40
|
+
isError?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface ActivityContentPart {
|
|
43
|
+
type: 'activity';
|
|
44
|
+
activityType: string;
|
|
45
|
+
data: unknown;
|
|
46
|
+
}
|
|
47
|
+
export type ContentPart = TextContentPart | ImageContentPart | ToolCallContentPart | ToolResultContentPart | ActivityContentPart;
|
|
48
|
+
/**
|
|
49
|
+
* Core message interface
|
|
50
|
+
*/
|
|
51
|
+
export interface ChatMessage {
|
|
52
|
+
/** Unique message identifier */
|
|
53
|
+
id: string;
|
|
54
|
+
/** Message role */
|
|
55
|
+
role: MessageRole;
|
|
56
|
+
/** Message content - can be string or structured parts */
|
|
57
|
+
content: string | ContentPart[];
|
|
58
|
+
/** Timestamp when message was created */
|
|
59
|
+
createdAt: Date;
|
|
60
|
+
/** Optional agent name for multi-agent scenarios */
|
|
61
|
+
agentName?: string;
|
|
62
|
+
/** Optional metadata */
|
|
63
|
+
metadata?: Record<string, unknown>;
|
|
64
|
+
/** Tool calls for assistant messages */
|
|
65
|
+
toolCalls?: ToolCallContentPart[];
|
|
66
|
+
/** For activity messages (A2A, A2UI, etc.) */
|
|
67
|
+
activityType?: string;
|
|
68
|
+
activityData?: unknown;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Message input for sending new messages
|
|
72
|
+
*/
|
|
73
|
+
export interface ChatMessageInput {
|
|
74
|
+
role: MessageRole;
|
|
75
|
+
content: string | ContentPart[];
|
|
76
|
+
metadata?: Record<string, unknown>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Streaming message delta for incremental updates
|
|
80
|
+
*/
|
|
81
|
+
export interface ChatMessageDelta {
|
|
82
|
+
messageId: string;
|
|
83
|
+
delta: {
|
|
84
|
+
content?: string;
|
|
85
|
+
toolCalls?: Partial<ToolCallContentPart>[];
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Conversation thread metadata
|
|
90
|
+
*/
|
|
91
|
+
export interface ChatThread {
|
|
92
|
+
id: string;
|
|
93
|
+
title?: string;
|
|
94
|
+
createdAt: Date;
|
|
95
|
+
updatedAt: Date;
|
|
96
|
+
metadata?: Record<string, unknown>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Generate unique message ID
|
|
100
|
+
*/
|
|
101
|
+
export declare function generateMessageId(): string;
|
|
102
|
+
/**
|
|
103
|
+
* Create a new user message
|
|
104
|
+
*/
|
|
105
|
+
export declare function createUserMessage(content: string, metadata?: Record<string, unknown>): ChatMessage;
|
|
106
|
+
/**
|
|
107
|
+
* Create a new assistant message
|
|
108
|
+
*/
|
|
109
|
+
export declare function createAssistantMessage(content: string, options?: {
|
|
110
|
+
agentName?: string;
|
|
111
|
+
toolCalls?: ToolCallContentPart[];
|
|
112
|
+
metadata?: Record<string, unknown>;
|
|
113
|
+
}): ChatMessage;
|
|
114
|
+
/**
|
|
115
|
+
* Create an activity message (for A2A, A2UI protocols)
|
|
116
|
+
*/
|
|
117
|
+
export declare function createActivityMessage(activityType: string, activityData: unknown, metadata?: Record<string, unknown>): ChatMessage;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Generate unique message ID
|
|
7
|
+
*/
|
|
8
|
+
export function generateMessageId() {
|
|
9
|
+
return `msg_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a new user message
|
|
13
|
+
*/
|
|
14
|
+
export function createUserMessage(content, metadata) {
|
|
15
|
+
return {
|
|
16
|
+
id: generateMessageId(),
|
|
17
|
+
role: 'user',
|
|
18
|
+
content,
|
|
19
|
+
createdAt: new Date(),
|
|
20
|
+
metadata,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a new assistant message
|
|
25
|
+
*/
|
|
26
|
+
export function createAssistantMessage(content, options) {
|
|
27
|
+
return {
|
|
28
|
+
id: generateMessageId(),
|
|
29
|
+
role: 'assistant',
|
|
30
|
+
content,
|
|
31
|
+
createdAt: new Date(),
|
|
32
|
+
agentName: options?.agentName,
|
|
33
|
+
toolCalls: options?.toolCalls,
|
|
34
|
+
metadata: options?.metadata,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create an activity message (for A2A, A2UI protocols)
|
|
39
|
+
*/
|
|
40
|
+
export function createActivityMessage(activityType, activityData, metadata) {
|
|
41
|
+
return {
|
|
42
|
+
id: generateMessageId(),
|
|
43
|
+
role: 'assistant',
|
|
44
|
+
content: [{ type: 'activity', activityType, data: activityData }],
|
|
45
|
+
createdAt: new Date(),
|
|
46
|
+
activityType,
|
|
47
|
+
activityData,
|
|
48
|
+
metadata,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware types for chat component.
|
|
3
|
+
* Supports request/response interception and tool call middleware.
|
|
4
|
+
*
|
|
5
|
+
* @module components/chat/types/middleware
|
|
6
|
+
*/
|
|
7
|
+
import type { ChatMessage } from './message';
|
|
8
|
+
import type { ToolCallRequest, ToolExecutionResult } from './tool';
|
|
9
|
+
import type { InferenceRequestOptions, InferenceResponse } from './inference';
|
|
10
|
+
/**
|
|
11
|
+
* Context passed to middleware functions
|
|
12
|
+
*/
|
|
13
|
+
export interface MiddlewareContext {
|
|
14
|
+
/** Thread/conversation ID */
|
|
15
|
+
threadId?: string;
|
|
16
|
+
/** Run/request ID */
|
|
17
|
+
runId?: string;
|
|
18
|
+
/** Request URL */
|
|
19
|
+
url?: string;
|
|
20
|
+
/** Additional properties */
|
|
21
|
+
properties?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Middleware for intercepting requests before they're sent
|
|
25
|
+
*/
|
|
26
|
+
export interface BeforeRequestMiddleware {
|
|
27
|
+
name: string;
|
|
28
|
+
/**
|
|
29
|
+
* Called before a request is sent to the inference provider
|
|
30
|
+
* Can modify messages, options, or abort the request
|
|
31
|
+
*/
|
|
32
|
+
onBeforeRequest: (options: {
|
|
33
|
+
messages: ChatMessage[];
|
|
34
|
+
requestOptions: InferenceRequestOptions;
|
|
35
|
+
context: MiddlewareContext;
|
|
36
|
+
}) => Promise<{
|
|
37
|
+
messages: ChatMessage[];
|
|
38
|
+
requestOptions: InferenceRequestOptions;
|
|
39
|
+
abort?: boolean;
|
|
40
|
+
abortReason?: string;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Middleware for intercepting responses after they're received
|
|
45
|
+
*/
|
|
46
|
+
export interface AfterRequestMiddleware {
|
|
47
|
+
name: string;
|
|
48
|
+
/**
|
|
49
|
+
* Called after a response is received from the inference provider
|
|
50
|
+
* Can modify the response or perform side effects
|
|
51
|
+
*/
|
|
52
|
+
onAfterRequest: (options: {
|
|
53
|
+
inputMessages: ChatMessage[];
|
|
54
|
+
outputMessages: ChatMessage[];
|
|
55
|
+
response: InferenceResponse;
|
|
56
|
+
context: MiddlewareContext;
|
|
57
|
+
}) => Promise<{
|
|
58
|
+
outputMessages: ChatMessage[];
|
|
59
|
+
response: InferenceResponse;
|
|
60
|
+
}>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Middleware for intercepting tool calls
|
|
64
|
+
*/
|
|
65
|
+
export interface ToolCallMiddleware {
|
|
66
|
+
name: string;
|
|
67
|
+
/**
|
|
68
|
+
* Called before a tool is executed
|
|
69
|
+
* Can modify args, approve/reject, or skip execution
|
|
70
|
+
*/
|
|
71
|
+
onToolCall: (options: {
|
|
72
|
+
toolCall: ToolCallRequest;
|
|
73
|
+
context: MiddlewareContext;
|
|
74
|
+
}) => Promise<{
|
|
75
|
+
toolCall: ToolCallRequest;
|
|
76
|
+
/** If true, proceed with execution */
|
|
77
|
+
proceed: boolean;
|
|
78
|
+
/** If false, use this result instead of executing */
|
|
79
|
+
overrideResult?: ToolExecutionResult;
|
|
80
|
+
/** Reason for rejection/override */
|
|
81
|
+
reason?: string;
|
|
82
|
+
}>;
|
|
83
|
+
/**
|
|
84
|
+
* Called after a tool is executed (optional)
|
|
85
|
+
*/
|
|
86
|
+
onToolResult?: (options: {
|
|
87
|
+
toolCall: ToolCallRequest;
|
|
88
|
+
result: ToolExecutionResult;
|
|
89
|
+
context: MiddlewareContext;
|
|
90
|
+
}) => Promise<{
|
|
91
|
+
result: ToolExecutionResult;
|
|
92
|
+
}>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Error handling middleware
|
|
96
|
+
*/
|
|
97
|
+
export interface ErrorMiddleware {
|
|
98
|
+
name: string;
|
|
99
|
+
/**
|
|
100
|
+
* Called when an error occurs during request/response cycle
|
|
101
|
+
*/
|
|
102
|
+
onError: (options: {
|
|
103
|
+
error: Error;
|
|
104
|
+
phase: 'request' | 'response' | 'tool-execution' | 'stream';
|
|
105
|
+
context: MiddlewareContext;
|
|
106
|
+
}) => Promise<{
|
|
107
|
+
/** If true, error is handled and should not propagate */
|
|
108
|
+
handled: boolean;
|
|
109
|
+
/** Optional replacement error */
|
|
110
|
+
error?: Error;
|
|
111
|
+
/** Optional recovery message to show user */
|
|
112
|
+
recoveryMessage?: string;
|
|
113
|
+
}>;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Combined middleware definition
|
|
117
|
+
*/
|
|
118
|
+
export interface ChatMiddleware {
|
|
119
|
+
name: string;
|
|
120
|
+
priority?: number;
|
|
121
|
+
beforeRequest?: BeforeRequestMiddleware['onBeforeRequest'];
|
|
122
|
+
afterRequest?: AfterRequestMiddleware['onAfterRequest'];
|
|
123
|
+
onToolCall?: ToolCallMiddleware['onToolCall'];
|
|
124
|
+
onToolResult?: ToolCallMiddleware['onToolResult'];
|
|
125
|
+
onError?: ErrorMiddleware['onError'];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Middleware pipeline configuration
|
|
129
|
+
*/
|
|
130
|
+
export interface MiddlewarePipelineConfig {
|
|
131
|
+
/** Middlewares to use */
|
|
132
|
+
middlewares: ChatMiddleware[];
|
|
133
|
+
/** Whether to continue on middleware error */
|
|
134
|
+
continueOnError?: boolean;
|
|
135
|
+
/** Enable middleware logging */
|
|
136
|
+
debug?: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Built-in middleware names
|
|
140
|
+
*/
|
|
141
|
+
export type BuiltInMiddlewareName = 'auth' | 'logging' | 'rate-limit' | 'retry' | 'cache' | 'tool-approval' | 'analytics';
|
|
142
|
+
/**
|
|
143
|
+
* Helper to create a simple before-request middleware
|
|
144
|
+
*/
|
|
145
|
+
export declare function createBeforeRequestMiddleware(name: string, handler: BeforeRequestMiddleware['onBeforeRequest']): ChatMiddleware;
|
|
146
|
+
/**
|
|
147
|
+
* Helper to create a simple after-request middleware
|
|
148
|
+
*/
|
|
149
|
+
export declare function createAfterRequestMiddleware(name: string, handler: AfterRequestMiddleware['onAfterRequest']): ChatMiddleware;
|
|
150
|
+
/**
|
|
151
|
+
* Helper to create a tool call middleware
|
|
152
|
+
*/
|
|
153
|
+
export declare function createToolCallMiddleware(name: string, onToolCall: ToolCallMiddleware['onToolCall'], onToolResult?: ToolCallMiddleware['onToolResult']): ChatMiddleware;
|