@assistant-ui/mcp-docs-server 0.1.38 → 0.2.0
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/.docs/organized/code-examples/waterfall.md +11 -12
- package/.docs/organized/code-examples/with-a2a.md +18 -13
- package/.docs/organized/code-examples/with-ag-ui.md +19 -14
- package/.docs/organized/code-examples/{with-ai-sdk-v6.md → with-ai-sdk-v7.md} +34 -23
- package/.docs/organized/code-examples/with-artifacts.md +473 -141
- package/.docs/organized/code-examples/with-assistant-transport.md +17 -10
- package/.docs/organized/code-examples/with-browser-extension.md +17 -10
- package/.docs/organized/code-examples/with-chain-of-thought.md +21 -14
- package/.docs/organized/code-examples/with-cloud-standalone.md +12 -11
- package/.docs/organized/code-examples/with-cloud.md +20 -15
- package/.docs/organized/code-examples/with-custom-thread-list.md +19 -12
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +22 -15
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +22 -15
- package/.docs/organized/code-examples/with-eve.md +18 -11
- package/.docs/organized/code-examples/with-expo.md +35 -52
- package/.docs/organized/code-examples/with-external-store.md +18 -13
- package/.docs/organized/code-examples/with-ffmpeg.md +20 -15
- package/.docs/organized/code-examples/with-generative-ui.md +22 -17
- package/.docs/organized/code-examples/with-google-adk.md +18 -11
- package/.docs/organized/code-examples/with-heat-graph.md +10 -11
- package/.docs/organized/code-examples/with-image-generation.md +19 -12
- package/.docs/organized/code-examples/with-interactables.md +21 -17
- package/.docs/organized/code-examples/with-langchain.md +19 -12
- package/.docs/organized/code-examples/with-langgraph.md +19 -12
- package/.docs/organized/code-examples/with-livekit.md +23 -16
- package/.docs/organized/code-examples/with-mcp.md +46 -28
- package/.docs/organized/code-examples/with-opencode.md +25 -23
- package/.docs/organized/code-examples/with-pi.md +54 -19
- package/.docs/organized/code-examples/with-react-hook-form.md +21 -16
- package/.docs/organized/code-examples/with-react-ink-web.md +9 -9
- package/.docs/organized/code-examples/with-react-ink.md +4 -4
- package/.docs/organized/code-examples/with-react-router.md +22 -17
- package/.docs/organized/code-examples/with-resumable-stream.md +21 -14
- package/.docs/organized/code-examples/with-store.md +10 -11
- package/.docs/organized/code-examples/with-tanstack.md +19 -13
- package/.docs/organized/code-examples/with-tap-runtime.md +18 -13
- package/.docs/organized/code-examples/with-virtualized-thread.md +19 -14
- package/.docs/raw/docs/(docs)/base-ui.mdx +39 -0
- package/.docs/raw/docs/(docs)/cli.mdx +19 -1
- package/.docs/raw/docs/(docs)/devtools.mdx +7 -2
- package/.docs/raw/docs/(docs)/installation.mdx +15 -1
- package/.docs/raw/docs/(docs)/rtl.mdx +2 -4
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/a2ui.mdx +40 -0
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/actions.mdx +56 -0
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/components.mdx +86 -0
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/index.mdx +22 -1
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/json-generative-ui.mdx +42 -0
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/rendering.mdx +53 -2
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/slack.mdx +81 -0
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/teams.mdx +86 -0
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/tokens.mdx +62 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +19 -420
- package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +4 -1
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +4 -1
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +25 -2
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +37 -0
- package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +1 -9
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +1 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +14 -31
- package/.docs/raw/docs/(reference)/api-reference/primitives/composition.mdx +1 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +3 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +2 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +0 -2
- package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +12 -9
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +4 -0
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +7 -1
- package/.docs/raw/docs/cloud/langgraph.mdx +4 -2
- package/.docs/raw/docs/copilots/model-context.mdx +1 -1
- package/.docs/raw/docs/copilots/motivation.mdx +1 -1
- package/.docs/raw/docs/guides/attachments.mdx +3 -3
- package/.docs/raw/docs/guides/branching.mdx +2 -2
- package/.docs/raw/docs/guides/chatgpt-subscription.mdx +108 -0
- package/.docs/raw/docs/guides/context-api.mdx +89 -111
- package/.docs/raw/docs/guides/dictation.mdx +185 -257
- package/.docs/raw/docs/guides/editing.mdx +5 -5
- package/.docs/raw/docs/guides/electron.mdx +369 -0
- package/.docs/raw/docs/guides/index.mdx +20 -0
- package/.docs/raw/docs/guides/mentions.mdx +31 -3
- package/.docs/raw/docs/guides/quoting.mdx +3 -3
- package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +2 -2
- package/.docs/raw/docs/guides/resumable-streams.mdx +12 -1
- package/.docs/raw/docs/guides/speech.mdx +47 -29
- package/.docs/raw/docs/guides/suggestions.mdx +70 -1
- package/.docs/raw/docs/guides/voice.mdx +197 -267
- package/.docs/raw/docs/ink/hooks.mdx +3 -3
- package/.docs/raw/docs/ink/primitives.mdx +49 -8
- package/.docs/raw/docs/integrations/auth/better-auth.mdx +2 -2
- package/.docs/raw/docs/integrations/auth/clerk.mdx +2 -2
- package/.docs/raw/docs/integrations/auth/next-auth.mdx +3 -3
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +10 -4
- package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +3 -3
- package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +1 -1
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +3 -3
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
- package/.docs/raw/docs/integrations/gateways/index.mdx +2 -2
- package/.docs/raw/docs/integrations/observability/helicone.mdx +1 -1
- package/.docs/raw/docs/integrations/observability/langfuse.mdx +1 -1
- package/.docs/raw/docs/integrations/observability/langsmith.mdx +2 -2
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +36 -9
- package/.docs/raw/docs/migrations/index.mdx +50 -0
- package/.docs/raw/docs/migrations/toolkit-tools.mdx +4 -2
- package/.docs/raw/docs/migrations/v0-15.mdx +156 -0
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +6 -1
- package/.docs/raw/docs/primitives/composer.mdx +17 -1
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +25 -0
- package/.docs/raw/docs/primitives/thread-list.mdx +2 -2
- package/.docs/raw/docs/react-native/hooks.mdx +3 -3
- package/.docs/raw/docs/react-native/index.mdx +2 -2
- package/.docs/raw/docs/react-native/primitives.mdx +62 -5
- package/.docs/raw/docs/runtimes/ag-ui/agent-state.mdx +124 -0
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +10 -1
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +14 -5
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +15 -15
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +8 -8
- package/.docs/raw/docs/runtimes/ai-sdk/{v6.mdx → v6-legacy.mdx} +11 -9
- package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +717 -0
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +1 -1
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +1 -1
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +10 -10
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +2 -2
- package/.docs/raw/docs/runtimes/custom/data-stream.mdx +10 -19
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +2 -2
- package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +5 -3
- package/.docs/raw/docs/runtimes/eve/overview.mdx +1 -1
- package/.docs/raw/docs/runtimes/langchain.mdx +2 -2
- package/.docs/raw/docs/runtimes/langgraph/agent-state.mdx +181 -0
- package/.docs/raw/docs/runtimes/langgraph/overview.mdx +1 -1
- package/.docs/raw/docs/runtimes/opencode/hooks.mdx +3 -1
- package/.docs/raw/docs/tools/a2ui.mdx +107 -0
- package/.docs/raw/docs/tools/backend.mdx +6 -3
- package/.docs/raw/docs/tools/defining-tools.mdx +7 -1
- package/.docs/raw/docs/tools/generative-ui.mdx +60 -2
- package/.docs/raw/docs/tools/interactables-legacy.mdx +4 -4
- package/.docs/raw/docs/tools/interactables.mdx +3 -3
- package/.docs/raw/docs/tools/mcp-apps.mdx +90 -13
- package/.docs/raw/docs/tools/mcp.mdx +100 -3
- package/.docs/raw/docs/tools/tool-ui.mdx +6 -4
- package/.docs/raw/docs/tools/user-managed-mcp.mdx +77 -9
- package/.docs/raw/docs/ui/accordion.mdx +16 -10
- package/.docs/raw/docs/ui/assistant-modal.mdx +8 -4
- package/.docs/raw/docs/ui/attachment.mdx +5 -1
- package/.docs/raw/docs/ui/badge.mdx +23 -12
- package/.docs/raw/docs/ui/follow-up-suggestions.mdx +4 -2
- package/.docs/raw/docs/ui/model-selector.mdx +33 -3
- package/.docs/raw/docs/ui/part-grouping.mdx +0 -4
- package/.docs/raw/docs/ui/reasoning.mdx +1 -1
- package/.docs/raw/docs/ui/select.mdx +22 -14
- package/.docs/raw/docs/ui/sources.mdx +1 -1
- package/.docs/raw/docs/ui/tabs.mdx +25 -14
- package/.docs/raw/docs/utilities/heat-graph.mdx +2 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -2
- package/dist/index.js.map +1 -1
- package/dist/prepare-docs/code-examples.d.ts.map +1 -1
- package/dist/prepare-docs/code-examples.js.map +1 -1
- package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
- package/dist/prepare-docs/prepare.d.ts +1 -1
- package/dist/prompts/xulux-playground.d.ts +12 -0
- package/dist/prompts/xulux-playground.d.ts.map +1 -0
- package/dist/prompts/xulux-playground.js +33 -0
- package/dist/prompts/xulux-playground.js.map +1 -0
- package/dist/stdio.d.ts +1 -1
- package/dist/tools/docs.d.ts +8 -14
- package/dist/tools/docs.d.ts.map +1 -1
- package/dist/tools/docs.js +26 -10
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/examples.d.ts +6 -12
- package/dist/tools/examples.d.ts.map +1 -1
- package/dist/tools/examples.js +11 -8
- package/dist/tools/examples.js.map +1 -1
- package/dist/tools/resources.d.ts +1 -2
- package/dist/tools/resources.d.ts.map +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/resources.js.map +1 -1
- package/dist/tools/search.d.ts +6 -15
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +2 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/tests/mcp-test-client.d.ts +15 -0
- package/dist/tools/tests/mcp-test-client.d.ts.map +1 -0
- package/dist/tools/tests/mcp-test-client.js +68 -0
- package/dist/tools/tests/mcp-test-client.js.map +1 -0
- package/dist/tools/tests/test-setup.d.ts.map +1 -1
- package/dist/tools/tests/test-setup.js +5 -1
- package/dist/tools/tests/test-setup.js.map +1 -1
- package/dist/tools/xulux-templates.d.ts +58 -0
- package/dist/tools/xulux-templates.d.ts.map +1 -0
- package/dist/tools/xulux-templates.js +82 -0
- package/dist/tools/xulux-templates.js.map +1 -0
- package/dist/utils/cache.d.ts +5 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +18 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/mcp-format.d.ts +1 -0
- package/dist/utils/mcp-format.d.ts.map +1 -1
- package/dist/utils/mcp-format.js +7 -4
- package/dist/utils/mcp-format.js.map +1 -1
- package/dist/utils/mdx.d.ts.map +1 -1
- package/dist/utils/paths.d.ts +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +3 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/search.d.ts.map +1 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js.map +1 -1
- package/dist/xulux/catalog-client.d.ts +14 -0
- package/dist/xulux/catalog-client.d.ts.map +1 -0
- package/dist/xulux/catalog-client.js +67 -0
- package/dist/xulux/catalog-client.js.map +1 -0
- package/dist/xulux/fallback-catalog.d.ts +7 -0
- package/dist/xulux/fallback-catalog.d.ts.map +1 -0
- package/dist/xulux/fallback-catalog.js +47 -0
- package/dist/xulux/fallback-catalog.js.map +1 -0
- package/dist/xulux/fetch-sandbox.d.ts +5 -0
- package/dist/xulux/fetch-sandbox.d.ts.map +1 -0
- package/dist/xulux/fetch-sandbox.js +40 -0
- package/dist/xulux/fetch-sandbox.js.map +1 -0
- package/dist/xulux/template-service.d.ts +84 -0
- package/dist/xulux/template-service.d.ts.map +1 -0
- package/dist/xulux/template-service.js +223 -0
- package/dist/xulux/template-service.js.map +1 -0
- package/dist/xulux/types.d.ts +55 -0
- package/dist/xulux/types.d.ts.map +1 -0
- package/dist/xulux/types.js +6 -0
- package/dist/xulux/types.js.map +1 -0
- package/package.json +7 -6
- package/src/index.ts +55 -2
- package/src/prompts/xulux-playground.ts +36 -0
- package/src/tools/docs.ts +27 -5
- package/src/tools/examples.ts +17 -12
- package/src/tools/resources.ts +1 -4
- package/src/tools/search.ts +2 -2
- package/src/tools/tests/completions.test.ts +40 -26
- package/src/tools/tests/docs.test.ts +20 -0
- package/src/tools/tests/examples.test.ts +5 -5
- package/src/tools/tests/integration.test.ts +3 -4
- package/src/tools/tests/listings-cache.test.ts +19 -0
- package/src/tools/tests/mcp-protocol.test.ts +173 -108
- package/src/tools/tests/mcp-test-client.ts +111 -0
- package/src/tools/tests/resources.test.ts +97 -66
- package/src/tools/tests/test-setup.ts +8 -0
- package/src/tools/tests/xulux-templates.test.ts +262 -0
- package/src/tools/xulux-templates.ts +141 -0
- package/src/utils/cache.ts +20 -0
- package/src/utils/mcp-format.ts +8 -6
- package/src/utils/paths.ts +4 -1
- package/src/utils/tests/cache.test.ts +51 -0
- package/src/utils/tests/mcp-format.test.ts +22 -0
- package/src/utils/tests/security.test.ts +1 -1
- package/src/xulux/catalog-client.ts +105 -0
- package/src/xulux/fallback-catalog.ts +63 -0
- package/src/xulux/fetch-sandbox.ts +56 -0
- package/src/xulux/template-service.ts +406 -0
- package/src/xulux/types.ts +60 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +0 -464
|
@@ -417,7 +417,6 @@ import { MarkdownText } from "@assistant-ui/react-ink-markdown";
|
|
|
417
417
|
|
|
418
418
|
// markdansi defaults width and color from process.stdout, which does not
|
|
419
419
|
// exist in the browser bundle; pass both explicitly so it never reads it.
|
|
420
|
-
// color is forwarded to markdansi but not yet declared on MarkdownTextProps.
|
|
421
420
|
const BrowserMarkdownText = ({ text }: { text: string }) => {
|
|
422
421
|
const { stdout } = useStdout();
|
|
423
422
|
return (
|
|
@@ -425,7 +424,7 @@ const BrowserMarkdownText = ({ text }: { text: string }) => {
|
|
|
425
424
|
text={text}
|
|
426
425
|
width={(stdout?.columns ?? 80) - 4}
|
|
427
426
|
hyperlinks={false}
|
|
428
|
-
|
|
427
|
+
color
|
|
429
428
|
/>
|
|
430
429
|
);
|
|
431
430
|
};
|
|
@@ -557,19 +556,20 @@ export default config;
|
|
|
557
556
|
"@assistant-ui/react-ink-markdown": "workspace:*",
|
|
558
557
|
"@wterm/dom": "^0.3.0",
|
|
559
558
|
"@wterm/react": "^0.3.0",
|
|
560
|
-
"ai": "^
|
|
561
|
-
"ink": "^7.1.
|
|
559
|
+
"ai": "^7.0.37",
|
|
560
|
+
"ink": "^7.1.1",
|
|
562
561
|
"ink-web": "^0.2.0",
|
|
563
|
-
"next": "^16.2.
|
|
564
|
-
"react": "^19.2.
|
|
565
|
-
"react-dom": "^19.2.
|
|
562
|
+
"next": "^16.2.11",
|
|
563
|
+
"react": "^19.2.8",
|
|
564
|
+
"react-dom": "^19.2.8",
|
|
566
565
|
"react-reconciler": "^0.33.0",
|
|
567
566
|
"scheduler": "^0.27.0"
|
|
568
567
|
},
|
|
569
568
|
"devDependencies": {
|
|
570
|
-
"@types/node": "^26.
|
|
569
|
+
"@types/node": "^26.1.1",
|
|
571
570
|
"@types/react": "^19.2.17",
|
|
572
|
-
"typescript": "
|
|
571
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
572
|
+
"typescript-7": "npm:typescript@^7.0.2"
|
|
573
573
|
}
|
|
574
574
|
}
|
|
575
575
|
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@assistant-ui/react-ink": "workspace:*",
|
|
18
18
|
"@assistant-ui/react-ink-markdown": "workspace:*",
|
|
19
|
-
"ink": "^7.1.
|
|
20
|
-
"react": "^19.2.
|
|
19
|
+
"ink": "^7.1.1",
|
|
20
|
+
"react": "^19.2.8"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/react": "^19.2.17",
|
|
24
24
|
"esbuild": "^0.28.1",
|
|
25
|
-
"tsx": "^4.
|
|
26
|
-
"typescript": "^
|
|
25
|
+
"tsx": "^4.23.1",
|
|
26
|
+
"typescript": "^7.0.2"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -773,30 +773,31 @@ export default function Home() {
|
|
|
773
773
|
"dependencies": {
|
|
774
774
|
"@assistant-ui/react": "workspace:*",
|
|
775
775
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
776
|
-
"@react-router/node": "^8.0
|
|
777
|
-
"@react-router/serve": "^8.0
|
|
776
|
+
"@react-router/node": "^8.3.0",
|
|
777
|
+
"@react-router/serve": "^8.3.0",
|
|
778
778
|
"class-variance-authority": "^0.7.1",
|
|
779
779
|
"clsx": "^2.1.1",
|
|
780
780
|
"eventsource-parser": "^3.1.0",
|
|
781
|
-
"isbot": "^5.1
|
|
782
|
-
"lucide-react": "^1.
|
|
783
|
-
"openai": "^6.
|
|
784
|
-
"react": "^19.2.
|
|
785
|
-
"react-dom": "^19.2.
|
|
786
|
-
"react-router": "^8.0
|
|
781
|
+
"isbot": "^5.2.1",
|
|
782
|
+
"lucide-react": "^1.26.0",
|
|
783
|
+
"openai": "^6.49.0",
|
|
784
|
+
"react": "^19.2.8",
|
|
785
|
+
"react-dom": "^19.2.8",
|
|
786
|
+
"react-router": "^8.3.0",
|
|
787
787
|
"remark-gfm": "^4.0.1",
|
|
788
788
|
"tailwind-merge": "^3.6.0"
|
|
789
789
|
},
|
|
790
790
|
"devDependencies": {
|
|
791
|
-
"@react-router/dev": "^8.0
|
|
792
|
-
"@tailwindcss/vite": "^4.3.
|
|
793
|
-
"@types/node": "^26.
|
|
791
|
+
"@react-router/dev": "^8.3.0",
|
|
792
|
+
"@tailwindcss/vite": "^4.3.3",
|
|
793
|
+
"@types/node": "^26.1.1",
|
|
794
794
|
"@types/react": "^19.2.17",
|
|
795
795
|
"@types/react-dom": "^19.2.3",
|
|
796
|
-
"tailwindcss": "^4.3.
|
|
796
|
+
"tailwindcss": "^4.3.3",
|
|
797
797
|
"tw-animate-css": "^1.4.0",
|
|
798
|
-
"typescript": "
|
|
799
|
-
"
|
|
798
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
799
|
+
"typescript-7": "npm:typescript@^7.0.2",
|
|
800
|
+
"vite": "^8.1.5",
|
|
800
801
|
"vite-tsconfig-paths": "^6.1.1"
|
|
801
802
|
}
|
|
802
803
|
}
|
|
@@ -880,14 +881,18 @@ npm run dev
|
|
|
880
881
|
"moduleResolution": "bundler",
|
|
881
882
|
"jsx": "react-jsx",
|
|
882
883
|
"rootDirs": [".", "./.react-router/types"],
|
|
883
|
-
"baseUrl": ".",
|
|
884
|
-
"ignoreDeprecations": "6.0",
|
|
885
884
|
"paths": {
|
|
886
885
|
"@/*": ["./app/*"],
|
|
887
886
|
"@/components/assistant-ui/*": [
|
|
888
887
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
889
888
|
],
|
|
890
|
-
"@/components/ui/*": [
|
|
889
|
+
"@/components/ui/*": [
|
|
890
|
+
"../../packages/ui/src/components/ui/base/*",
|
|
891
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
892
|
+
],
|
|
893
|
+
"@/components/ui/radix/*": [
|
|
894
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
895
|
+
],
|
|
891
896
|
"@/lib/utils": ["../../packages/ui/src/lib/utils"],
|
|
892
897
|
"@assistant-ui/ui/*": ["../../packages/ui/src/*"]
|
|
893
898
|
},
|
|
@@ -514,37 +514,38 @@ export default withAui(nextConfig);
|
|
|
514
514
|
"start": "next start"
|
|
515
515
|
},
|
|
516
516
|
"dependencies": {
|
|
517
|
-
"@ai-sdk/openai": "^
|
|
518
|
-
"@ai-sdk/react": "^
|
|
517
|
+
"@ai-sdk/openai": "^4.0.20",
|
|
518
|
+
"@ai-sdk/react": "^4.0.40",
|
|
519
519
|
"@assistant-ui/react": "workspace:*",
|
|
520
520
|
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
521
521
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
522
522
|
"@assistant-ui/store": "workspace:*",
|
|
523
523
|
"@assistant-ui/tap": "workspace:*",
|
|
524
524
|
"@assistant-ui/ui": "workspace:*",
|
|
525
|
-
"ai": "^
|
|
525
|
+
"ai": "^7.0.37",
|
|
526
526
|
"assistant-stream": "workspace:*",
|
|
527
527
|
"class-variance-authority": "^0.7.1",
|
|
528
528
|
"clsx": "^2.1.1",
|
|
529
|
-
"lucide-react": "^1.
|
|
530
|
-
"next": "^16.2.
|
|
531
|
-
"react": "^19.2.
|
|
532
|
-
"react-dom": "^19.2.
|
|
533
|
-
"redis": "^6.
|
|
529
|
+
"lucide-react": "^1.26.0",
|
|
530
|
+
"next": "^16.2.11",
|
|
531
|
+
"react": "^19.2.8",
|
|
532
|
+
"react-dom": "^19.2.8",
|
|
533
|
+
"redis": "^6.1.0",
|
|
534
534
|
"tailwind-merge": "^3.6.0",
|
|
535
535
|
"zod": "^4.4.3"
|
|
536
536
|
},
|
|
537
537
|
"devDependencies": {
|
|
538
538
|
"@assistant-ui/next": "workspace:*",
|
|
539
539
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
540
|
-
"@tailwindcss/postcss": "^4.3.
|
|
541
|
-
"@types/node": "^26.
|
|
540
|
+
"@tailwindcss/postcss": "^4.3.3",
|
|
541
|
+
"@types/node": "^26.1.1",
|
|
542
542
|
"@types/react": "^19.2.17",
|
|
543
543
|
"@types/react-dom": "^19.2.3",
|
|
544
|
-
"postcss": "^8.5.
|
|
545
|
-
"tailwindcss": "^4.3.
|
|
544
|
+
"postcss": "^8.5.23",
|
|
545
|
+
"tailwindcss": "^4.3.3",
|
|
546
546
|
"tw-animate-css": "^1.4.0",
|
|
547
|
-
"typescript": "
|
|
547
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
548
|
+
"typescript-7": "npm:typescript@^7.0.2"
|
|
548
549
|
}
|
|
549
550
|
}
|
|
550
551
|
|
|
@@ -648,7 +649,13 @@ docker run -d --name redis -p 6379:6379 redis:7-alpine
|
|
|
648
649
|
"@/components/assistant-ui/*": [
|
|
649
650
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
650
651
|
],
|
|
651
|
-
"@/components/ui/*": [
|
|
652
|
+
"@/components/ui/*": [
|
|
653
|
+
"../../packages/ui/src/components/ui/base/*",
|
|
654
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
655
|
+
],
|
|
656
|
+
"@/components/ui/radix/*": [
|
|
657
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
658
|
+
],
|
|
652
659
|
"@/lib/utils": ["../../packages/ui/src/lib/utils"],
|
|
653
660
|
"@assistant-ui/ui/*": ["../../packages/ui/src/*"]
|
|
654
661
|
}
|
|
@@ -472,9 +472,7 @@ export const FooList = ({
|
|
|
472
472
|
import { withAui } from "@assistant-ui/next";
|
|
473
473
|
import type { NextConfig } from "next";
|
|
474
474
|
|
|
475
|
-
const nextConfig: NextConfig = {
|
|
476
|
-
/* config options here */
|
|
477
|
-
};
|
|
475
|
+
const nextConfig: NextConfig = {/* config options here */};
|
|
478
476
|
|
|
479
477
|
export default withAui(nextConfig);
|
|
480
478
|
|
|
@@ -496,21 +494,22 @@ export default withAui(nextConfig);
|
|
|
496
494
|
"dependencies": {
|
|
497
495
|
"@assistant-ui/store": "workspace:*",
|
|
498
496
|
"@assistant-ui/tap": "workspace:*",
|
|
499
|
-
"next": "^16.2.
|
|
500
|
-
"react": "^19.2.
|
|
501
|
-
"react-dom": "^19.2.
|
|
497
|
+
"next": "^16.2.11",
|
|
498
|
+
"react": "^19.2.8",
|
|
499
|
+
"react-dom": "^19.2.8"
|
|
502
500
|
},
|
|
503
501
|
"devDependencies": {
|
|
504
502
|
"@assistant-ui/next": "workspace:*",
|
|
505
503
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
506
|
-
"@tailwindcss/postcss": "^4.3.
|
|
507
|
-
"@types/node": "^26.
|
|
504
|
+
"@tailwindcss/postcss": "^4.3.3",
|
|
505
|
+
"@types/node": "^26.1.1",
|
|
508
506
|
"@types/react": "^19.2.17",
|
|
509
507
|
"@types/react-dom": "^19.2.3",
|
|
510
|
-
"postcss": "^8.5.
|
|
511
|
-
"tailwindcss": "^4.3.
|
|
508
|
+
"postcss": "^8.5.23",
|
|
509
|
+
"tailwindcss": "^4.3.3",
|
|
512
510
|
"tw-animate-css": "^1.4.0",
|
|
513
|
-
"typescript": "
|
|
511
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
512
|
+
"typescript-7": "npm:typescript@^7.0.2"
|
|
514
513
|
}
|
|
515
514
|
}
|
|
516
515
|
|
|
@@ -64,29 +64,29 @@
|
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"@assistant-ui/react": "workspace:*",
|
|
66
66
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
67
|
-
"@tailwindcss/vite": "^4.3.
|
|
68
|
-
"@tanstack/react-router": "^1.170.
|
|
69
|
-
"@tanstack/react-start": "^1.168.
|
|
67
|
+
"@tailwindcss/vite": "^4.3.3",
|
|
68
|
+
"@tanstack/react-router": "^1.170.18",
|
|
69
|
+
"@tanstack/react-start": "^1.168.32",
|
|
70
70
|
"class-variance-authority": "^0.7.1",
|
|
71
71
|
"clsx": "^2.1.1",
|
|
72
|
-
"lucide-react": "^1.
|
|
72
|
+
"lucide-react": "^1.26.0",
|
|
73
73
|
"nitro": "^3.0.260311-beta",
|
|
74
|
-
"openai": "^6.
|
|
75
|
-
"react": "^19.2.
|
|
76
|
-
"react-dom": "^19.2.
|
|
74
|
+
"openai": "^6.49.0",
|
|
75
|
+
"react": "^19.2.8",
|
|
76
|
+
"react-dom": "^19.2.8",
|
|
77
77
|
"remark-gfm": "^4.0.1",
|
|
78
78
|
"tailwind-merge": "^3.6.0",
|
|
79
|
-
"tailwindcss": "^4.3.
|
|
79
|
+
"tailwindcss": "^4.3.3",
|
|
80
80
|
"vite-tsconfig-paths": "^6.1.1"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
84
|
-
"@types/node": "^26.
|
|
84
|
+
"@types/node": "^26.1.1",
|
|
85
85
|
"@types/react": "^19.2.17",
|
|
86
86
|
"@types/react-dom": "^19.2.3",
|
|
87
|
-
"@vitejs/plugin-react": "^6.0.
|
|
88
|
-
"typescript": "^
|
|
89
|
-
"vite": "^8.1.
|
|
87
|
+
"@vitejs/plugin-react": "^6.0.4",
|
|
88
|
+
"typescript": "^7.0.2",
|
|
89
|
+
"vite": "^8.1.5"
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -742,7 +742,13 @@ export const chatStream = createServerFn({ method: "POST" })
|
|
|
742
742
|
"@/components/assistant-ui/*": [
|
|
743
743
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
744
744
|
],
|
|
745
|
-
"@/components/ui/*": [
|
|
745
|
+
"@/components/ui/*": [
|
|
746
|
+
"../../packages/ui/src/components/ui/base/*",
|
|
747
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
748
|
+
],
|
|
749
|
+
"@/components/ui/radix/*": [
|
|
750
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
751
|
+
],
|
|
746
752
|
"@/lib/utils": ["../../packages/ui/src/lib/utils"],
|
|
747
753
|
"@assistant-ui/ui/*": ["../../packages/ui/src/*"]
|
|
748
754
|
}
|
|
@@ -575,9 +575,7 @@ export default function Home() {
|
|
|
575
575
|
import { withAui } from "@assistant-ui/next";
|
|
576
576
|
import type { NextConfig } from "next";
|
|
577
577
|
|
|
578
|
-
const nextConfig: NextConfig = {
|
|
579
|
-
/* config options here */
|
|
580
|
-
};
|
|
578
|
+
const nextConfig: NextConfig = {/* config options here */};
|
|
581
579
|
|
|
582
580
|
export default withAui(nextConfig);
|
|
583
581
|
|
|
@@ -602,23 +600,24 @@ export default withAui(nextConfig);
|
|
|
602
600
|
"@assistant-ui/ui": "workspace:*",
|
|
603
601
|
"class-variance-authority": "^0.7.1",
|
|
604
602
|
"clsx": "^2.1.1",
|
|
605
|
-
"lucide-react": "^1.
|
|
606
|
-
"next": "^16.2.
|
|
607
|
-
"react": "^19.2.
|
|
608
|
-
"react-dom": "^19.2.
|
|
603
|
+
"lucide-react": "^1.26.0",
|
|
604
|
+
"next": "^16.2.11",
|
|
605
|
+
"react": "^19.2.8",
|
|
606
|
+
"react-dom": "^19.2.8",
|
|
609
607
|
"tailwind-merge": "^3.6.0"
|
|
610
608
|
},
|
|
611
609
|
"devDependencies": {
|
|
612
610
|
"@assistant-ui/next": "workspace:*",
|
|
613
611
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
614
|
-
"@tailwindcss/postcss": "^4.3.
|
|
615
|
-
"@types/node": "^26.
|
|
612
|
+
"@tailwindcss/postcss": "^4.3.3",
|
|
613
|
+
"@types/node": "^26.1.1",
|
|
616
614
|
"@types/react": "^19.2.17",
|
|
617
615
|
"@types/react-dom": "^19.2.3",
|
|
618
|
-
"postcss": "^8.5.
|
|
619
|
-
"tailwindcss": "^4.3.
|
|
616
|
+
"postcss": "^8.5.23",
|
|
617
|
+
"tailwindcss": "^4.3.3",
|
|
620
618
|
"tw-animate-css": "^1.4.0",
|
|
621
|
-
"typescript": "
|
|
619
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
620
|
+
"typescript-7": "npm:typescript@^7.0.2"
|
|
622
621
|
}
|
|
623
622
|
}
|
|
624
623
|
|
|
@@ -787,7 +786,13 @@ You can extend this example to:
|
|
|
787
786
|
"@/components/assistant-ui/*": [
|
|
788
787
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
789
788
|
],
|
|
790
|
-
"@/components/ui/*": [
|
|
789
|
+
"@/components/ui/*": [
|
|
790
|
+
"../../packages/ui/src/components/ui/base/*",
|
|
791
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
792
|
+
],
|
|
793
|
+
"@/components/ui/radix/*": [
|
|
794
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
795
|
+
],
|
|
791
796
|
"@/lib/utils": ["../../packages/ui/src/lib/utils"],
|
|
792
797
|
"@assistant-ui/ui/*": ["../../packages/ui/src/*"],
|
|
793
798
|
"@assistant-ui/*": ["../../packages/*/src"],
|
|
@@ -574,9 +574,7 @@ export const VirtualizedThread: FC = () => {
|
|
|
574
574
|
import { withAui } from "@assistant-ui/next";
|
|
575
575
|
import type { NextConfig } from "next";
|
|
576
576
|
|
|
577
|
-
const nextConfig: NextConfig = {
|
|
578
|
-
/* config options here */
|
|
579
|
-
};
|
|
577
|
+
const nextConfig: NextConfig = {/* config options here */};
|
|
580
578
|
|
|
581
579
|
export default withAui(nextConfig);
|
|
582
580
|
|
|
@@ -599,26 +597,27 @@ export default withAui(nextConfig);
|
|
|
599
597
|
"@assistant-ui/react": "workspace:*",
|
|
600
598
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
601
599
|
"@assistant-ui/ui": "workspace:*",
|
|
602
|
-
"@tanstack/react-virtual": "^3.14.
|
|
600
|
+
"@tanstack/react-virtual": "^3.14.8",
|
|
603
601
|
"class-variance-authority": "^0.7.1",
|
|
604
602
|
"clsx": "^2.1.1",
|
|
605
|
-
"lucide-react": "^1.
|
|
606
|
-
"next": "^16.2.
|
|
607
|
-
"react": "^19.2.
|
|
608
|
-
"react-dom": "^19.2.
|
|
603
|
+
"lucide-react": "^1.26.0",
|
|
604
|
+
"next": "^16.2.11",
|
|
605
|
+
"react": "^19.2.8",
|
|
606
|
+
"react-dom": "^19.2.8",
|
|
609
607
|
"tailwind-merge": "^3.6.0"
|
|
610
608
|
},
|
|
611
609
|
"devDependencies": {
|
|
612
610
|
"@assistant-ui/next": "workspace:*",
|
|
613
611
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
614
|
-
"@tailwindcss/postcss": "^4.3.
|
|
615
|
-
"@types/node": "^26.
|
|
612
|
+
"@tailwindcss/postcss": "^4.3.3",
|
|
613
|
+
"@types/node": "^26.1.1",
|
|
616
614
|
"@types/react": "^19.2.17",
|
|
617
615
|
"@types/react-dom": "^19.2.3",
|
|
618
|
-
"postcss": "^8.5.
|
|
619
|
-
"tailwindcss": "^4.3.
|
|
616
|
+
"postcss": "^8.5.23",
|
|
617
|
+
"tailwindcss": "^4.3.3",
|
|
620
618
|
"tw-animate-css": "^1.4.0",
|
|
621
|
-
"typescript": "
|
|
619
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
620
|
+
"typescript-7": "npm:typescript@^7.0.2"
|
|
622
621
|
}
|
|
623
622
|
}
|
|
624
623
|
|
|
@@ -663,7 +662,13 @@ See the [thread virtualization guide](https://assistant-ui.com/docs/guides/virtu
|
|
|
663
662
|
"@/components/assistant-ui/*": [
|
|
664
663
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
665
664
|
],
|
|
666
|
-
"@/components/ui/*": [
|
|
665
|
+
"@/components/ui/*": [
|
|
666
|
+
"../../packages/ui/src/components/ui/base/*",
|
|
667
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
668
|
+
],
|
|
669
|
+
"@/components/ui/radix/*": [
|
|
670
|
+
"../../packages/ui/src/components/ui/radix/*"
|
|
671
|
+
],
|
|
667
672
|
"@/lib/utils": ["../../packages/ui/src/lib/utils"],
|
|
668
673
|
"@assistant-ui/ui/*": ["../../packages/ui/src/*"]
|
|
669
674
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Radix UI and Base UI
|
|
3
|
+
description: How the assistant-ui component registry serves Radix UI and Base UI flavored components for every shadcn style.
|
|
4
|
+
platforms: ["react"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
shadcn/ui ships every component for two headless libraries, Radix UI and Base UI. `npx shadcn init` defaults new projects to Base UI styles as of July 2026. Style names that start with `base-`, such as `base-nova`, select the Base UI flavor; every other style name selects Radix.
|
|
8
|
+
|
|
9
|
+
## Component registry
|
|
10
|
+
|
|
11
|
+
assistant-ui's component registry serves both flavors from the same host. Configure the style-aware URL in `components.json`:
|
|
12
|
+
|
|
13
|
+
```json title="components.json"
|
|
14
|
+
{
|
|
15
|
+
"registries": {
|
|
16
|
+
"@assistant-ui": "https://r.assistant-ui.com/styles/{style}/{name}.json"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The shadcn CLI fills `{style}` from your `components.json` `style` field. Styles whose name starts with `base-` receive Base UI flavored components; all other styles receive the Radix flavored ones. The plain `https://r.assistant-ui.com/{name}.json` form remains available as a Radix fallback.
|
|
22
|
+
|
|
23
|
+
## How compatibility works
|
|
24
|
+
|
|
25
|
+
assistant-ui's headless primitives, the components exported from `@assistant-ui/react`, accept both composition conventions: Radix's `asChild` prop and Base UI's `render` prop. Most registry components only compose these primitives, so a single implementation renders correctly under either flavor and the registry has no need for a separate variant.
|
|
26
|
+
|
|
27
|
+
Open-state styling and panel-height animation do not force a variant either: the kit styles state through custom variants that match both libraries' data attributes, and animates collapsibles through keyframes that read both libraries' height variables, so components like `reasoning`, `tool-group`, and `tool-fallback` serve one source to both flavors.
|
|
28
|
+
|
|
29
|
+
Components that reach past composition into library-specific surfaces (raw primitive imports, trigger composition, provider wiring, popup recomposition) ship a dedicated Base UI variant instead. The following components currently have one: `tooltip-icon-button`, `attachment`, `context-display`, `message-timing`, `mcp-config`, `threadlist-sidebar`, `assistant-modal`, `select`, `tabs`, `accordion`, `badge`, `model-selector`, and `direction`.
|
|
30
|
+
|
|
31
|
+
## Behavior notes
|
|
32
|
+
|
|
33
|
+
Under Base UI styles, the assistant modal composes the project's Base UI popover, so stacked layers (an attachment preview dialog, a tooltip, and the modal itself) close one layer per Escape key press, with focus restored to the element that opened the closed layer. Clicking outside the modal keeps it open, matching the Radix flavor's behavior.
|
|
34
|
+
|
|
35
|
+
## FAQ
|
|
36
|
+
|
|
37
|
+
- **Do I need to change anything on an existing Radix project?** No. The plain `https://r.assistant-ui.com/{name}.json` URL keeps resolving to Radix flavored components, so an existing setup needs no changes.
|
|
38
|
+
- **What happens if I switch styles later?** Re-add the components you use through the shadcn CLI. The style-aware URL resolves the correct flavor for the new style, and no other migration step is required.
|
|
39
|
+
- **Does `@assistant-ui/react` behave differently under Base UI?** No. The headless `@assistant-ui/react` package works identically in both worlds; only the registry components under `components/assistant-ui` differ by flavor.
|
|
@@ -66,19 +66,23 @@ Use `--example` to create a project from one of the monorepo examples with full
|
|
|
66
66
|
|
|
67
67
|
| Example | Description | Command |
|
|
68
68
|
|---------|-------------|---------|
|
|
69
|
-
| `with-ai-sdk-
|
|
69
|
+
| `with-ai-sdk-v7` | Vercel AI SDK v7 integration | `npx assistant-ui create my-app -e with-ai-sdk-v7` |
|
|
70
70
|
| `with-eve` | Eve agent integration | `npx assistant-ui create my-app -e with-eve` |
|
|
71
71
|
| `with-artifacts` | HTML artifact rendering with live preview | `npx assistant-ui create my-app -e with-artifacts` |
|
|
72
72
|
| `with-langgraph` | LangGraph agent with custom tools | `npx assistant-ui create my-app -e with-langgraph` |
|
|
73
|
+
| `with-google-adk` | Google ADK agent integration | `npx assistant-ui create my-app -e with-google-adk` |
|
|
73
74
|
| `with-cloud` | Assistant Cloud persistence | `npx assistant-ui create my-app -e with-cloud` |
|
|
74
75
|
| `with-ag-ui` | [AG-UI protocol](/docs/runtimes/ag-ui/overview) integration | `npx assistant-ui create my-app -e with-ag-ui` |
|
|
75
76
|
| `with-assistant-transport` | Custom backend via Assistant Transport | `npx assistant-ui create my-app -e with-assistant-transport` |
|
|
76
77
|
| `with-resumable-stream` | Resumable LLM stream that survives reload mid-response | `npx assistant-ui create my-app -e with-resumable-stream` |
|
|
77
78
|
| `with-chain-of-thought` | Chain-of-thought reasoning, tool calls, and source citations | `npx assistant-ui create my-app -e with-chain-of-thought` |
|
|
78
79
|
| `with-external-store` | External message store | `npx assistant-ui create my-app -e with-external-store` |
|
|
80
|
+
| `with-interactables` | AI-driven interactive UI components | `npx assistant-ui create my-app -e with-interactables` |
|
|
79
81
|
| `with-custom-thread-list` | Custom thread list UI | `npx assistant-ui create my-app -e with-custom-thread-list` |
|
|
80
82
|
| `with-react-hook-form` | React Hook Form integration | `npx assistant-ui create my-app -e with-react-hook-form` |
|
|
81
83
|
| `with-ffmpeg` | FFmpeg video processing tool | `npx assistant-ui create my-app -e with-ffmpeg` |
|
|
84
|
+
| `with-elevenlabs-conversational` | Realtime voice with ElevenLabs | `npx assistant-ui create my-app -e with-elevenlabs-conversational` |
|
|
85
|
+
| `with-livekit` | Realtime voice with LiveKit | `npx assistant-ui create my-app -e with-livekit` |
|
|
82
86
|
| `with-elevenlabs-scribe` | ElevenLabs voice transcription | `npx assistant-ui create my-app -e with-elevenlabs-scribe` |
|
|
83
87
|
| `with-expo` | Expo / React Native | `npx assistant-ui create my-app -e with-expo` |
|
|
84
88
|
| `with-react-ink` | Terminal UI chat | `npx assistant-ui create my-app -e with-react-ink` |
|
|
@@ -352,6 +356,7 @@ npx assistant-ui@latest info
|
|
|
352
356
|
```
|
|
353
357
|
|
|
354
358
|
This command collects and prints:
|
|
359
|
+
- The running `assistant-ui` CLI version
|
|
355
360
|
- OS, Node.js version, package manager, and framework
|
|
356
361
|
- All installed `@assistant-ui/*` and `assistant-*` package versions
|
|
357
362
|
- Key ecosystem dependency versions (React, Next.js, AI SDK, etc.)
|
|
@@ -361,6 +366,7 @@ This command collects and prints:
|
|
|
361
366
|
|
|
362
367
|
```
|
|
363
368
|
Environment:
|
|
369
|
+
assistant-ui CLI: 0.0.106
|
|
364
370
|
OS: macOS 15.3 (arm64)
|
|
365
371
|
Node.js: v22.14.0
|
|
366
372
|
Package Manager: pnpm 10.32.1
|
|
@@ -451,6 +457,18 @@ npx assistant-ui@latest update
|
|
|
451
457
|
|
|
452
458
|
The CLI pulls components from our public registry at [r.assistant-ui.com](https://r.assistant-ui.com).
|
|
453
459
|
|
|
460
|
+
Configure the style-aware URL in `components.json` so `@assistant-ui/*` installs match your shadcn style:
|
|
461
|
+
|
|
462
|
+
```json title="components.json"
|
|
463
|
+
{
|
|
464
|
+
"registries": {
|
|
465
|
+
"@assistant-ui": "https://r.assistant-ui.com/styles/{style}/{name}.json"
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
The `{style}` placeholder is filled from your `components.json` `style` field. Styles whose name starts with `base-` resolve to Base UI flavored components; every other style resolves to Radix. Existing Radix projects can keep `https://r.assistant-ui.com/{name}.json` as a fallback.
|
|
471
|
+
|
|
454
472
|
Each component includes:
|
|
455
473
|
- Full TypeScript source code
|
|
456
474
|
- All required dependencies
|
|
@@ -4,10 +4,13 @@ description: Inspect runtime state, context, and events in the browser.
|
|
|
4
4
|
platforms: ["react"]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
import { DevToolsSample, DevToolsModalSample } from "@/components/docs/samples/devtools";
|
|
7
8
|
|
|
8
9
|
The assistant-ui DevTools allows you to debug the assistant-ui state and context, and events without resorting to `console.log`. It's an easy way to see how data flows to the assistant-ui's runtime layer.
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
Try it below — the chat on top is a live assistant-ui app, and the panel underneath is the real DevTools inspecting it. Send a message, trigger a tool call, and switch between the Thread, Context, and Activity tabs.
|
|
12
|
+
|
|
13
|
+
<DevToolsSample />
|
|
11
14
|
|
|
12
15
|
## Setup
|
|
13
16
|
|
|
@@ -45,7 +48,9 @@ export function AssistantApp() {
|
|
|
45
48
|
|
|
46
49
|
That's it! In development builds you should now see the DevTools launcher in the lower-right corner of your site. The panel renders inline in an isolated shadow root, and the whole component is stripped from production builds.
|
|
47
50
|
|
|
48
|
-
|
|
51
|
+
Try it here — click the launcher in the lower-right corner of the frame, then use "Run a demo turn" to watch events stream into the open panel. In your app the window opens over a dimmed, click-to-close backdrop; the demo omits it so the app stays usable while the panel is open:
|
|
52
|
+
|
|
53
|
+
<DevToolsModalSample />
|
|
49
54
|
|
|
50
55
|
</Step>
|
|
51
56
|
</Steps>
|
|
@@ -61,6 +61,8 @@ Create a `.env` file with your API key:
|
|
|
61
61
|
OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
+
Developing locally with a ChatGPT Plus or Pro plan? You can skip the API key and run on your subscription instead; see [ChatGPT Subscription](/docs/guides/chatgpt-subscription).
|
|
65
|
+
|
|
64
66
|
</Step>
|
|
65
67
|
<Step>
|
|
66
68
|
|
|
@@ -77,6 +79,18 @@ npm run dev
|
|
|
77
79
|
|
|
78
80
|
If you prefer not to use the CLI, you can install components manually.
|
|
79
81
|
|
|
82
|
+
Add the assistant-ui registry to your `components.json` so the shadcn CLI resolves components for your style. Styles whose name starts with `base-` receive Base UI flavored components; all other styles receive the Radix flavored ones. `npx shadcn init` defaults to Base UI styles (for example `base-nova`), so new projects need this style-aware URL for components that compile against that stack.
|
|
83
|
+
|
|
84
|
+
```json title="components.json"
|
|
85
|
+
{
|
|
86
|
+
"registries": {
|
|
87
|
+
"@assistant-ui": "https://r.assistant-ui.com/styles/{style}/{name}.json"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Existing Radix projects can keep the plain form `https://r.assistant-ui.com/{name}.json` as a fallback (for example `npx shadcn@latest add https://r.assistant-ui.com/thread.json`).
|
|
93
|
+
|
|
80
94
|
<Steps>
|
|
81
95
|
<Step>
|
|
82
96
|
|
|
@@ -431,7 +445,7 @@ export default function MyApp() {
|
|
|
431
445
|
```
|
|
432
446
|
|
|
433
447
|
```tsx title="/app/page.tsx" tab="AssistantModal"
|
|
434
|
-
// run `npx shadcn@latest add
|
|
448
|
+
// run `npx shadcn@latest add @assistant-ui/assistant-modal`
|
|
435
449
|
|
|
436
450
|
import { AssistantRuntimeProvider } from "@assistant-ui/react";
|
|
437
451
|
import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/react-ai-sdk";
|
|
@@ -4,7 +4,7 @@ description: Use assistant-ui with right-to-left languages like Arabic, Hebrew,
|
|
|
4
4
|
platforms: ["react"]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Components shipped through `@assistant-ui/ui` (npm) and the shadcn registry (`npx shadcn@latest add
|
|
7
|
+
Components shipped through `@assistant-ui/ui` (npm) and the shadcn registry (`npx shadcn@latest add @assistant-ui/<name>`) use logical Tailwind classes (`ms-*`, `pe-*`, `text-start`, `end-*`, `border-s`, ...). They flip automatically under `dir="rtl"` and render byte-identically under `dir="ltr"` (the default) — there is nothing to opt out of.
|
|
8
8
|
|
|
9
9
|
If you scaffolded from one of our templates (e.g. `npx assistant-ui@latest create -t default`), the generated `components/` folder still uses physical classes (`ml-*`, `text-left`, ...). Run shadcn's built-in migration **once** to convert both the shadcn primitives and assistant-ui's wrappers:
|
|
10
10
|
|
|
@@ -24,9 +24,7 @@ After migrating, follow the setup below.
|
|
|
24
24
|
|
|
25
25
|
### 1. Install the `direction` component
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
npx shadcn@latest add https://r.assistant-ui.com/direction.json
|
|
29
|
-
```
|
|
27
|
+
<InstallCommand shadcn={["direction"]} />
|
|
30
28
|
|
|
31
29
|
This adds `components/ui/direction.tsx`, a thin re-export of Radix UI's `DirectionProvider` and `useDirection`. It ensures Radix popovers, dropdowns, and menus pick up the current direction.
|
|
32
30
|
|