@assistant-ui/mcp-docs-server 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/code-examples/waterfall.md +2 -2
- package/.docs/organized/code-examples/with-a2a.md +4 -3
- package/.docs/organized/code-examples/with-ag-ui.md +5 -4
- package/.docs/organized/code-examples/with-ai-sdk-v7.md +12 -11
- package/.docs/organized/code-examples/with-artifacts.md +10 -9
- package/.docs/organized/code-examples/with-assistant-transport.md +4 -3
- package/.docs/organized/code-examples/with-browser-extension.md +3 -3
- package/.docs/organized/code-examples/with-chain-of-thought.md +14 -12
- package/.docs/organized/code-examples/with-cloud-standalone.md +5 -5
- package/.docs/organized/code-examples/with-cloud.md +9 -8
- package/.docs/organized/code-examples/with-custom-thread-list.md +8 -7
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +12 -11
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +12 -11
- package/.docs/organized/code-examples/with-eve.md +5 -4
- package/.docs/organized/code-examples/with-expo.md +214 -31
- package/.docs/organized/code-examples/with-external-store.md +4 -3
- package/.docs/organized/code-examples/with-ffmpeg.md +9 -8
- package/.docs/organized/code-examples/with-generative-ui.md +13 -15
- package/.docs/organized/code-examples/with-google-adk.md +4 -3
- package/.docs/organized/code-examples/with-heat-graph.md +2 -2
- package/.docs/organized/code-examples/with-image-generation.md +7 -6
- package/.docs/organized/code-examples/with-interactables.md +9 -8
- package/.docs/organized/code-examples/with-langchain.md +6 -5
- package/.docs/organized/code-examples/with-langgraph.md +6 -5
- package/.docs/organized/code-examples/with-livekit.md +13 -12
- package/.docs/organized/code-examples/with-mcp.md +11 -9
- package/.docs/organized/code-examples/with-nuxt.md +502 -502
- package/.docs/organized/code-examples/with-opencode.md +3 -3
- package/.docs/organized/code-examples/with-openui.md +14 -13
- package/.docs/organized/code-examples/with-pi.md +5 -4
- package/.docs/organized/code-examples/with-react-hook-form.md +13 -10
- package/.docs/organized/code-examples/with-react-ink-web.md +64 -14
- package/.docs/organized/code-examples/with-react-ink.md +3 -2
- package/.docs/organized/code-examples/with-react-router.md +6 -5
- package/.docs/organized/code-examples/with-resumable-stream.md +10 -9
- package/.docs/organized/code-examples/with-store.md +2 -2
- package/.docs/organized/code-examples/with-svelte.md +3 -3
- package/.docs/organized/code-examples/with-sveltekit.md +9 -9
- package/.docs/organized/code-examples/with-tanstack.md +8 -7
- package/.docs/organized/code-examples/with-tap-runtime.md +4 -3
- package/.docs/organized/code-examples/with-virtualized-thread.md +5 -4
- package/.docs/organized/code-examples/with-vue.md +2 -2
- package/.docs/raw/docs/{(docs) → (getting-started)}/devtools.mdx +1 -1
- package/.docs/raw/docs/{(docs) → (getting-started)}/index.mdx +4 -2
- package/.docs/raw/docs/{(docs) → (getting-started)}/installation.mdx +24 -24
- package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +6 -0
- package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +1 -1
- package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +6 -1
- package/.docs/raw/docs/(reference)/api-reference/integrations/{react-ai-sdk.mdx → ai-sdk.mdx} +19 -19
- package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +22 -1
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +3 -3
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +2 -2
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +20 -2
- package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +1 -1
- package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +1 -1
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +3 -0
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +10 -10
- package/.docs/raw/docs/cloud/ai-sdk.mdx +2 -0
- package/.docs/raw/docs/copilots/assistant-frame.mdx +19 -8
- package/.docs/raw/docs/guides/attachments.mdx +2 -2
- package/.docs/raw/docs/guides/branching.mdx +1 -1
- package/.docs/raw/docs/guides/chatgpt-subscription.mdx +1 -1
- package/.docs/raw/docs/guides/dictation.mdx +1 -1
- package/.docs/raw/docs/guides/electron.mdx +1 -1
- package/.docs/raw/docs/guides/latex.mdx +1 -1
- package/.docs/raw/docs/guides/message-timing.mdx +11 -5
- package/.docs/raw/docs/guides/quoting.mdx +1 -1
- package/.docs/raw/docs/guides/resumable-streams.mdx +3 -3
- package/.docs/raw/docs/guides/speech.mdx +1 -1
- package/.docs/raw/docs/guides/suggestions.mdx +2 -2
- package/.docs/raw/docs/guides/voice.mdx +1 -1
- package/.docs/raw/docs/ink/hooks.mdx +1 -1
- package/.docs/raw/docs/ink/index.mdx +3 -2
- package/.docs/raw/docs/ink/migration.mdx +1 -1
- package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +3 -3
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +3 -3
- package/.docs/raw/docs/integrations/frameworks/{cloudflare-agents/overview.mdx → cloudflare-agents.mdx} +4 -3
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +1 -1
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
- package/.docs/raw/docs/integrations/index.mdx +2 -2
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +3 -3
- package/.docs/raw/docs/migrations/toolkit-tools.mdx +2 -2
- package/.docs/raw/docs/primitives/action-bar.mdx +1 -1
- package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -1
- package/.docs/raw/docs/primitives/attachment.mdx +1 -1
- package/.docs/raw/docs/primitives/branch-picker.mdx +1 -1
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +3 -3
- package/.docs/raw/docs/primitives/composer.mdx +1 -1
- package/.docs/raw/docs/primitives/error.mdx +1 -1
- package/.docs/raw/docs/primitives/message.mdx +1 -1
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -1
- package/.docs/raw/docs/primitives/suggestion.mdx +1 -1
- package/.docs/raw/docs/primitives/thread-list.mdx +1 -1
- package/.docs/raw/docs/primitives/thread.mdx +1 -1
- package/.docs/raw/docs/react-native/adapters.mdx +1 -1
- package/.docs/raw/docs/react-native/index.mdx +2 -2
- package/.docs/raw/docs/react-native/migration.mdx +2 -2
- package/.docs/raw/docs/react-native/primitives.mdx +142 -5
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +13 -1
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +3 -3
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +4 -4
- package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +31 -16
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +3 -3
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +3 -3
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +5 -5
- package/.docs/raw/docs/runtimes/langchain.mdx +1 -1
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +1 -1
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +1 -1
- package/.docs/raw/docs/tools/backend.mdx +4 -4
- package/.docs/raw/docs/tools/defining-tools.mdx +2 -2
- package/.docs/raw/docs/tools/generative-ui.mdx +2 -2
- package/.docs/raw/docs/tools/interactables.mdx +3 -3
- package/.docs/raw/docs/tools/mcp-apps.mdx +18 -1
- package/.docs/raw/docs/tools/mcp.mdx +2 -2
- package/.docs/raw/docs/tools/openui.mdx +2 -2
- package/.docs/raw/docs/tools/tool-ui.mdx +17 -5
- package/.docs/raw/docs/tools/user-managed-mcp.mdx +2 -2
- package/.docs/raw/docs/ui/assistant-modal.mdx +3 -3
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -1
- package/.docs/raw/docs/ui/attachment.mdx +30 -10
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +36 -1
- package/.docs/raw/docs/ui/context-display.mdx +1 -1
- package/.docs/raw/docs/ui/directive-text.mdx +1 -1
- package/.docs/raw/docs/ui/file.mdx +1 -1
- package/.docs/raw/docs/ui/follow-up-suggestions.mdx +1 -1
- package/.docs/raw/docs/ui/image.mdx +1 -1
- package/.docs/raw/docs/ui/markdown.mdx +40 -1
- package/.docs/raw/docs/ui/mermaid.mdx +1 -1
- package/.docs/raw/docs/ui/message-timing.mdx +1 -1
- package/.docs/raw/docs/ui/model-selector.mdx +4 -4
- package/.docs/raw/docs/ui/part-grouping.mdx +1 -1
- package/.docs/raw/docs/ui/quote.mdx +3 -3
- package/.docs/raw/docs/ui/reasoning.mdx +31 -3
- package/.docs/raw/docs/ui/scrollbar.mdx +1 -1
- package/.docs/raw/docs/ui/sources.mdx +10 -1
- package/.docs/raw/docs/ui/streamdown.mdx +2 -2
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -1
- package/.docs/raw/docs/ui/thread-list.mdx +40 -1
- package/.docs/raw/docs/ui/thread.mdx +49 -2
- package/.docs/raw/docs/ui/tool-fallback.mdx +23 -9
- package/.docs/raw/docs/ui/tool-group.mdx +1 -1
- package/.docs/raw/docs/ui/voice.mdx +1 -1
- package/.docs/raw/docs/utilities/react-o11y.mdx +2 -2
- package/dist/xulux/catalog-client.d.ts.map +1 -1
- package/dist/xulux/catalog-client.js +51 -6
- package/dist/xulux/catalog-client.js.map +1 -1
- package/dist/xulux/types.d.ts +7 -7
- package/dist/xulux/types.d.ts.map +1 -1
- package/dist/xulux/types.js.map +1 -1
- package/package.json +3 -3
- package/src/tools/tests/docs.test.ts +10 -7
- package/src/tools/tests/path-traversal.test.ts +5 -2
- package/src/tools/tests/xulux-templates.test.ts +63 -0
- package/src/xulux/catalog-client.ts +68 -23
- package/src/xulux/types.ts +17 -13
- package/.docs/raw/docs/ui/accordion.mdx +0 -266
- package/.docs/raw/docs/ui/badge.mdx +0 -150
- package/.docs/raw/docs/ui/diff-viewer.mdx +0 -280
- package/.docs/raw/docs/ui/dot-matrix.mdx +0 -133
- package/.docs/raw/docs/ui/number-roll.mdx +0 -154
- package/.docs/raw/docs/ui/select.mdx +0 -254
- package/.docs/raw/docs/ui/tabs.mdx +0 -271
- /package/.docs/raw/docs/{(docs) → (getting-started)}/architecture.mdx +0 -0
- /package/.docs/raw/docs/{(docs) → (getting-started)}/base-ui.mdx +0 -0
- /package/.docs/raw/docs/{(docs) → (getting-started)}/cli.mdx +0 -0
- /package/.docs/raw/docs/{(docs) → (getting-started)}/llm.mdx +0 -0
- /package/.docs/raw/docs/{(docs) → (getting-started)}/rtl.mdx +0 -0
|
@@ -1902,8 +1902,8 @@ export default withAui(nextConfig);
|
|
|
1902
1902
|
"@pierre/diffs": "^1.3.5",
|
|
1903
1903
|
"class-variance-authority": "^0.7.1",
|
|
1904
1904
|
"clsx": "^2.1.1",
|
|
1905
|
-
"lucide-react": "^1.
|
|
1906
|
-
"next": "^16.3.
|
|
1905
|
+
"lucide-react": "^1.33.0",
|
|
1906
|
+
"next": "^16.3.2",
|
|
1907
1907
|
"react": "^19.2.8",
|
|
1908
1908
|
"react-dom": "^19.2.8",
|
|
1909
1909
|
"tailwind-merge": "^3.6.0",
|
|
@@ -1915,7 +1915,7 @@ export default withAui(nextConfig);
|
|
|
1915
1915
|
"@tailwindcss/postcss": "^4.3.3",
|
|
1916
1916
|
"@types/node": "^26.2.0",
|
|
1917
1917
|
"@types/react": "^19.2.18",
|
|
1918
|
-
"@types/react-dom": "^19.2.
|
|
1918
|
+
"@types/react-dom": "^19.2.5",
|
|
1919
1919
|
"postcss": "^8.5.26",
|
|
1920
1920
|
"tailwindcss": "^4.3.3",
|
|
1921
1921
|
"tw-animate-css": "^1.4.0",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
6
|
import { openai } from "@ai-sdk/openai";
|
|
7
|
-
import { frontendTools } from "@assistant-ui/
|
|
7
|
+
import { frontendTools } from "@assistant-ui/ai-sdk";
|
|
8
8
|
import {
|
|
9
9
|
type JSONSchema7,
|
|
10
10
|
streamText,
|
|
@@ -209,7 +209,7 @@ import {
|
|
|
209
209
|
Suggestions,
|
|
210
210
|
Tools,
|
|
211
211
|
} from "@assistant-ui/react";
|
|
212
|
-
import { useChatRuntime } from "@assistant-ui/
|
|
212
|
+
import { useChatRuntime } from "@assistant-ui/ai-sdk";
|
|
213
213
|
import { OpenUIInstructions, openuiIntegration } from "@openuidev/assistant-ui";
|
|
214
214
|
import { shouldContinueAfterOpenUIPrompt } from "@openuidev/assistant-ui/ai-sdk";
|
|
215
215
|
|
|
@@ -295,7 +295,7 @@ export default function Home() {
|
|
|
295
295
|
```javascript
|
|
296
296
|
/** @type {import('next').NextConfig} */
|
|
297
297
|
const nextConfig = {
|
|
298
|
-
transpilePackages: ["@assistant-ui/react", "@assistant-ui/
|
|
298
|
+
transpilePackages: ["@assistant-ui/react", "@assistant-ui/ai-sdk"],
|
|
299
299
|
};
|
|
300
300
|
|
|
301
301
|
export default nextConfig;
|
|
@@ -316,32 +316,32 @@ export default nextConfig;
|
|
|
316
316
|
"start": "next start"
|
|
317
317
|
},
|
|
318
318
|
"dependencies": {
|
|
319
|
-
"@ai-sdk/openai": "^4.0.
|
|
319
|
+
"@ai-sdk/openai": "^4.0.46",
|
|
320
|
+
"@assistant-ui/ai-sdk": "workspace:*",
|
|
320
321
|
"@assistant-ui/react": "workspace:*",
|
|
321
|
-
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
322
322
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
323
323
|
"@assistant-ui/ui": "workspace:*",
|
|
324
324
|
"@openuidev/assistant-ui": "^0.0.3",
|
|
325
|
-
"@openuidev/react-headless": "^0.9.
|
|
326
|
-
"@openuidev/react-lang": "^0.2.
|
|
327
|
-
"@openuidev/react-ui": "^0.13.
|
|
328
|
-
"ai": "^7.0.
|
|
325
|
+
"@openuidev/react-headless": "^0.9.11",
|
|
326
|
+
"@openuidev/react-lang": "^0.2.14",
|
|
327
|
+
"@openuidev/react-ui": "^0.13.8",
|
|
328
|
+
"ai": "^7.0.77",
|
|
329
329
|
"class-variance-authority": "^0.7.1",
|
|
330
330
|
"clsx": "^2.1.1",
|
|
331
|
-
"lucide-react": "^1.
|
|
332
|
-
"next": "^16.3.
|
|
331
|
+
"lucide-react": "^1.33.0",
|
|
332
|
+
"next": "^16.3.2",
|
|
333
333
|
"react": "^19.2.8",
|
|
334
334
|
"react-dom": "^19.2.8",
|
|
335
335
|
"tailwind-merge": "^3.6.0",
|
|
336
336
|
"zod": "^4.4.3",
|
|
337
|
-
"zustand": "^
|
|
337
|
+
"zustand": "^5.0.15"
|
|
338
338
|
},
|
|
339
339
|
"devDependencies": {
|
|
340
340
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
341
341
|
"@tailwindcss/postcss": "^4.3.3",
|
|
342
342
|
"@types/node": "^26.2.0",
|
|
343
343
|
"@types/react": "^19.2.18",
|
|
344
|
-
"@types/react-dom": "^19.2.
|
|
344
|
+
"@types/react-dom": "^19.2.5",
|
|
345
345
|
"postcss": "^8.5.26",
|
|
346
346
|
"tailwindcss": "^4.3.3",
|
|
347
347
|
"tw-animate-css": "^1.4.0",
|
|
@@ -430,6 +430,7 @@ pnpm -C examples/with-openui dev
|
|
|
430
430
|
"@/components/assistant-ui/*": [
|
|
431
431
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
432
432
|
],
|
|
433
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
433
434
|
"@/components/ui/*": [
|
|
434
435
|
"../../packages/ui/src/components/ui/base/*",
|
|
435
436
|
"../../packages/ui/src/components/ui/radix/*"
|
|
@@ -1961,11 +1961,11 @@ export default withAui(nextConfig);
|
|
|
1961
1961
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
1962
1962
|
"@assistant-ui/react-pi": "workspace:*",
|
|
1963
1963
|
"@assistant-ui/ui": "workspace:*",
|
|
1964
|
-
"@earendil-works/pi-coding-agent": "^0.84.
|
|
1964
|
+
"@earendil-works/pi-coding-agent": "^0.84.2",
|
|
1965
1965
|
"class-variance-authority": "^0.7.1",
|
|
1966
1966
|
"clsx": "^2.1.1",
|
|
1967
|
-
"lucide-react": "^1.
|
|
1968
|
-
"next": "^16.3.
|
|
1967
|
+
"lucide-react": "^1.33.0",
|
|
1968
|
+
"next": "^16.3.2",
|
|
1969
1969
|
"radix-ui": "^1.6.7",
|
|
1970
1970
|
"react": "^19.2.8",
|
|
1971
1971
|
"react-dom": "^19.2.8",
|
|
@@ -1977,7 +1977,7 @@ export default withAui(nextConfig);
|
|
|
1977
1977
|
"@tailwindcss/postcss": "^4.3.3",
|
|
1978
1978
|
"@types/node": "^26.2.0",
|
|
1979
1979
|
"@types/react": "^19.2.18",
|
|
1980
|
-
"@types/react-dom": "^19.2.
|
|
1980
|
+
"@types/react-dom": "^19.2.5",
|
|
1981
1981
|
"postcss": "^8.5.26",
|
|
1982
1982
|
"tailwindcss": "^4.3.3",
|
|
1983
1983
|
"tw-animate-css": "^1.4.0",
|
|
@@ -2064,6 +2064,7 @@ Point it at a scratch directory.
|
|
|
2064
2064
|
"@/components/assistant-ui/*": [
|
|
2065
2065
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
2066
2066
|
],
|
|
2067
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
2067
2068
|
"@/components/ui/*": [
|
|
2068
2069
|
"../../packages/ui/src/components/ui/base/*",
|
|
2069
2070
|
"../../packages/ui/src/components/ui/radix/*"
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
6
|
import { createOpenAI } from "@ai-sdk/openai";
|
|
7
|
-
import { frontendTools } from "@assistant-ui/
|
|
7
|
+
import { frontendTools } from "@assistant-ui/ai-sdk";
|
|
8
8
|
import { convertToModelMessages, streamText } from "ai";
|
|
9
9
|
|
|
10
10
|
export const maxDuration = 30;
|
|
@@ -212,7 +212,7 @@ export default function RootLayout({
|
|
|
212
212
|
"use client";
|
|
213
213
|
|
|
214
214
|
import { AssistantRuntimeProvider } from "@assistant-ui/react";
|
|
215
|
-
import { useChatRuntime } from "@assistant-ui/
|
|
215
|
+
import { useChatRuntime } from "@assistant-ui/ai-sdk";
|
|
216
216
|
|
|
217
217
|
export function MyRuntimeProvider({
|
|
218
218
|
children,
|
|
@@ -617,21 +617,23 @@ export default withAui(nextConfig);
|
|
|
617
617
|
"start": "next start"
|
|
618
618
|
},
|
|
619
619
|
"dependencies": {
|
|
620
|
-
"@ai-sdk/openai": "^4.0.
|
|
620
|
+
"@ai-sdk/openai": "^4.0.46",
|
|
621
|
+
"@assistant-ui/ai-sdk": "workspace:*",
|
|
621
622
|
"@assistant-ui/react": "workspace:*",
|
|
622
|
-
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
623
623
|
"@assistant-ui/react-hook-form": "workspace:*",
|
|
624
624
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
625
625
|
"@assistant-ui/ui": "workspace:*",
|
|
626
|
-
"
|
|
626
|
+
"@hookform/resolvers": "^5.9.1",
|
|
627
|
+
"ai": "^7.0.77",
|
|
627
628
|
"class-variance-authority": "^0.7.1",
|
|
628
629
|
"clsx": "^2.1.1",
|
|
629
|
-
"lucide-react": "^1.
|
|
630
|
-
"next": "^16.3.
|
|
630
|
+
"lucide-react": "^1.33.0",
|
|
631
|
+
"next": "^16.3.2",
|
|
631
632
|
"react": "^19.2.8",
|
|
632
633
|
"react-dom": "^19.2.8",
|
|
633
|
-
"react-hook-form": "^7.
|
|
634
|
-
"tailwind-merge": "^3.6.0"
|
|
634
|
+
"react-hook-form": "^7.86.0",
|
|
635
|
+
"tailwind-merge": "^3.6.0",
|
|
636
|
+
"zod": "^4.4.3"
|
|
635
637
|
},
|
|
636
638
|
"devDependencies": {
|
|
637
639
|
"@assistant-ui/next": "workspace:*",
|
|
@@ -639,7 +641,7 @@ export default withAui(nextConfig);
|
|
|
639
641
|
"@tailwindcss/postcss": "^4.3.3",
|
|
640
642
|
"@types/node": "^26.2.0",
|
|
641
643
|
"@types/react": "^19.2.18",
|
|
642
|
-
"@types/react-dom": "^19.2.
|
|
644
|
+
"@types/react-dom": "^19.2.5",
|
|
643
645
|
"postcss": "^8.5.26",
|
|
644
646
|
"tailwindcss": "^4.3.3",
|
|
645
647
|
"tw-animate-css": "^1.4.0",
|
|
@@ -705,6 +707,7 @@ npm run dev
|
|
|
705
707
|
"@/components/assistant-ui/*": [
|
|
706
708
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
707
709
|
],
|
|
710
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
708
711
|
"@/components/ui/*": [
|
|
709
712
|
"../../packages/ui/src/components/ui/base/*",
|
|
710
713
|
"../../packages/ui/src/components/ui/radix/*"
|
|
@@ -65,10 +65,7 @@ import {
|
|
|
65
65
|
StatusBarPrimitive,
|
|
66
66
|
useAui,
|
|
67
67
|
} from "@assistant-ui/react-ink";
|
|
68
|
-
import {
|
|
69
|
-
useChatRuntime,
|
|
70
|
-
AssistantChatTransport,
|
|
71
|
-
} from "@assistant-ui/react-ai-sdk";
|
|
68
|
+
import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/ai-sdk";
|
|
72
69
|
import { lastAssistantMessageIsCompleteWithToolCalls } from "ai";
|
|
73
70
|
import { Thread } from "./thread";
|
|
74
71
|
|
|
@@ -79,10 +76,62 @@ const CHAT_API =
|
|
|
79
76
|
: "https://www.assistant-ui.com/api/chat");
|
|
80
77
|
|
|
81
78
|
const MODEL_NAME = "assistant-ui";
|
|
79
|
+
const ANONYMOUS_SESSION_HEADER = "x-assistant-ui-anonymous-session";
|
|
80
|
+
|
|
81
|
+
// Mirrors examples/with-expo/hooks/anonymous-session-fetch.ts; keep in sync.
|
|
82
|
+
function createAnonymousSessionFetch(chatApi: string): typeof fetch {
|
|
83
|
+
let tokenPromise: Promise<string | null> | null = null;
|
|
84
|
+
|
|
85
|
+
const getToken = () => {
|
|
86
|
+
tokenPromise ??= (async () => {
|
|
87
|
+
const endpoint = new URL(chatApi, window.location.origin);
|
|
88
|
+
endpoint.pathname = "/api/anonymous-session";
|
|
89
|
+
endpoint.search = "";
|
|
90
|
+
const response = await fetch(endpoint, { credentials: "same-origin" });
|
|
91
|
+
if (!response.ok) {
|
|
92
|
+
throw new Error("Unable to start an anonymous session");
|
|
93
|
+
}
|
|
94
|
+
if (response.status === 204) return null;
|
|
95
|
+
const payload = (await response.json()) as { token?: unknown };
|
|
96
|
+
if (typeof payload.token !== "string" || !payload.token) {
|
|
97
|
+
throw new Error("Anonymous session token is missing");
|
|
98
|
+
}
|
|
99
|
+
return payload.token;
|
|
100
|
+
})().catch(() => {
|
|
101
|
+
tokenPromise = null;
|
|
102
|
+
return null;
|
|
103
|
+
});
|
|
104
|
+
return tokenPromise;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
return async (input, init) => {
|
|
108
|
+
const requestTemplate =
|
|
109
|
+
input instanceof Request ? new Request(input, init) : null;
|
|
110
|
+
|
|
111
|
+
const send = async () => {
|
|
112
|
+
const headers = new Headers(requestTemplate?.headers ?? init?.headers);
|
|
113
|
+
const token = await getToken();
|
|
114
|
+
if (token) headers.set(ANONYMOUS_SESSION_HEADER, token);
|
|
115
|
+
if (requestTemplate) {
|
|
116
|
+
return fetch(requestTemplate.clone(), { headers });
|
|
117
|
+
}
|
|
118
|
+
return fetch(input, { ...init, headers });
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const response = await send();
|
|
122
|
+
if (response.status !== 401) return response;
|
|
123
|
+
tokenPromise = null;
|
|
124
|
+
return send();
|
|
125
|
+
};
|
|
126
|
+
}
|
|
82
127
|
|
|
83
128
|
export const InkApp = () => {
|
|
84
129
|
const transport = useMemo(
|
|
85
|
-
() =>
|
|
130
|
+
() =>
|
|
131
|
+
new AssistantChatTransport({
|
|
132
|
+
api: CHAT_API,
|
|
133
|
+
fetch: createAnonymousSessionFetch(CHAT_API),
|
|
134
|
+
}),
|
|
86
135
|
[],
|
|
87
136
|
);
|
|
88
137
|
const runtime = useChatRuntime({
|
|
@@ -406,6 +455,7 @@ export default function InkTerminal() {
|
|
|
406
455
|
// Mirrors examples/with-react-ink/src/components/thread.tsx; keep in sync.
|
|
407
456
|
import { Box, Text, useStdout } from "ink";
|
|
408
457
|
import {
|
|
458
|
+
AuiIf,
|
|
409
459
|
ThreadPrimitive,
|
|
410
460
|
ComposerPrimitive,
|
|
411
461
|
MessagePrimitive,
|
|
@@ -477,7 +527,7 @@ const Loading = () => (
|
|
|
477
527
|
export const Thread = () => {
|
|
478
528
|
return (
|
|
479
529
|
<ThreadPrimitive.Root>
|
|
480
|
-
<
|
|
530
|
+
<AuiIf condition={(s) => s.thread.isEmpty}>
|
|
481
531
|
<Box flexDirection="column" marginBottom={1}>
|
|
482
532
|
<Text>
|
|
483
533
|
A real LLM streaming into a real Ink render loop in your browser.
|
|
@@ -486,7 +536,7 @@ export const Thread = () => {
|
|
|
486
536
|
{' try: "what is assistant-ui?" or "how do I render markdown?"'}
|
|
487
537
|
</Text>
|
|
488
538
|
</Box>
|
|
489
|
-
</
|
|
539
|
+
</AuiIf>
|
|
490
540
|
|
|
491
541
|
<ThreadPrimitive.Messages>
|
|
492
542
|
{({ message }) =>
|
|
@@ -551,15 +601,15 @@ export default config;
|
|
|
551
601
|
"start": "next start"
|
|
552
602
|
},
|
|
553
603
|
"dependencies": {
|
|
554
|
-
"@assistant-ui/
|
|
604
|
+
"@assistant-ui/ai-sdk": "workspace:*",
|
|
555
605
|
"@assistant-ui/react-ink": "workspace:*",
|
|
556
606
|
"@assistant-ui/react-ink-markdown": "workspace:*",
|
|
557
|
-
"@wterm/dom": "^0.3.
|
|
558
|
-
"@wterm/react": "^0.3.
|
|
559
|
-
"ai": "^7.0.
|
|
607
|
+
"@wterm/dom": "^0.3.4",
|
|
608
|
+
"@wterm/react": "^0.3.4",
|
|
609
|
+
"ai": "^7.0.77",
|
|
560
610
|
"ink": "^7.1.1",
|
|
561
611
|
"ink-web": "^0.2.0",
|
|
562
|
-
"next": "^16.3.
|
|
612
|
+
"next": "^16.3.2",
|
|
563
613
|
"react": "^19.2.8",
|
|
564
614
|
"react-dom": "^19.2.8",
|
|
565
615
|
"react-reconciler": "^0.33.0",
|
|
@@ -607,7 +657,7 @@ The terminal opens on [localhost:8081](http://localhost:8081), and the docs app
|
|
|
607
657
|
|
|
608
658
|
Ink has no official web target, so this app renders the real `@assistant-ui/react-ink` component tree through [ink-web](https://github.com/cjroth/ink-web)'s browser build of Ink, bridged to a [wterm](https://github.com/vercel-labs/wterm) terminal. wterm renders to the DOM, so text selection, copy, find, and screen readers work natively.
|
|
609
659
|
|
|
610
|
-
Chat requests go to the assistant-ui docs site's `/api/chat`, the same pattern as the React Native demo at [assistant-ui-expo.vercel.app](https://assistant-ui-expo.vercel.app).
|
|
660
|
+
Chat requests go to the assistant-ui docs site's `/api/chat`, the same pattern as the React Native demo at [assistant-ui-expo.vercel.app](https://assistant-ui-expo.vercel.app). The app obtains a signed anonymous session when the backend supports it and holds no API keys; custom backends without the session route continue to receive normal chat requests.
|
|
611
661
|
|
|
612
662
|
## Learn more
|
|
613
663
|
|
|
@@ -670,7 +720,7 @@ export default supportsHyperlinks;
|
|
|
670
720
|
{
|
|
671
721
|
"$schema": "https://openapi.vercel.sh/vercel.json",
|
|
672
722
|
"ignoreCommand": "bash ../../scripts/vercel-ignore-changeset-release.sh",
|
|
673
|
-
"buildCommand": "cd ../.. && pnpm turbo build --filter=@assistant-ui/react-ink --filter=@assistant-ui/react-ink-markdown --filter=@assistant-ui/
|
|
723
|
+
"buildCommand": "cd ../.. && pnpm turbo build --filter=@assistant-ui/react-ink --filter=@assistant-ui/react-ink-markdown --filter=@assistant-ui/ai-sdk && cd examples/with-react-ink-web && pnpm run build",
|
|
674
724
|
"outputDirectory": "out",
|
|
675
725
|
"framework": null,
|
|
676
726
|
"headers": [
|
|
@@ -86,6 +86,7 @@ export const App = () => {
|
|
|
86
86
|
```tsx
|
|
87
87
|
import { Box, Text } from "ink";
|
|
88
88
|
import {
|
|
89
|
+
AuiIf,
|
|
89
90
|
ThreadPrimitive,
|
|
90
91
|
ComposerPrimitive,
|
|
91
92
|
MessagePrimitive,
|
|
@@ -143,7 +144,7 @@ const Loading = () => (
|
|
|
143
144
|
export const Thread = () => {
|
|
144
145
|
return (
|
|
145
146
|
<ThreadPrimitive.Root>
|
|
146
|
-
<
|
|
147
|
+
<AuiIf condition={(s) => s.thread.isEmpty}>
|
|
147
148
|
<Box flexDirection="column" marginBottom={1}>
|
|
148
149
|
<Text>
|
|
149
150
|
Working in this project. <Text color="yellow">fetchUser()</Text> is
|
|
@@ -151,7 +152,7 @@ export const Thread = () => {
|
|
|
151
152
|
</Text>
|
|
152
153
|
<Text dimColor>{' try: "make fetchUser retry on failure"'}</Text>
|
|
153
154
|
</Box>
|
|
154
|
-
</
|
|
155
|
+
</AuiIf>
|
|
155
156
|
|
|
156
157
|
<ThreadPrimitive.Messages>
|
|
157
158
|
{({ message }) =>
|
|
@@ -783,10 +783,10 @@ export default function Home() {
|
|
|
783
783
|
"@react-router/serve": "^8.3.0",
|
|
784
784
|
"class-variance-authority": "^0.7.1",
|
|
785
785
|
"clsx": "^2.1.1",
|
|
786
|
-
"eventsource-parser": "^4.
|
|
786
|
+
"eventsource-parser": "^4.1.0",
|
|
787
787
|
"isbot": "^5.2.1",
|
|
788
|
-
"lucide-react": "^1.
|
|
789
|
-
"openai": "^7.
|
|
788
|
+
"lucide-react": "^1.33.0",
|
|
789
|
+
"openai": "^7.5.0",
|
|
790
790
|
"react": "^19.2.8",
|
|
791
791
|
"react-dom": "^19.2.8",
|
|
792
792
|
"react-router": "^8.3.0",
|
|
@@ -798,12 +798,12 @@ export default function Home() {
|
|
|
798
798
|
"@tailwindcss/vite": "^4.3.3",
|
|
799
799
|
"@types/node": "^26.2.0",
|
|
800
800
|
"@types/react": "^19.2.18",
|
|
801
|
-
"@types/react-dom": "^19.2.
|
|
801
|
+
"@types/react-dom": "^19.2.5",
|
|
802
802
|
"tailwindcss": "^4.3.3",
|
|
803
803
|
"tw-animate-css": "^1.4.0",
|
|
804
804
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
805
805
|
"typescript-7": "npm:typescript@^7.0.2",
|
|
806
|
-
"vite": "^8.2.
|
|
806
|
+
"vite": "^8.2.2",
|
|
807
807
|
"vite-tsconfig-paths": "^6.1.1"
|
|
808
808
|
}
|
|
809
809
|
}
|
|
@@ -892,6 +892,7 @@ npm run dev
|
|
|
892
892
|
"@/components/assistant-ui/*": [
|
|
893
893
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
894
894
|
],
|
|
895
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
895
896
|
"@/components/ui/*": [
|
|
896
897
|
"../../packages/ui/src/components/ui/base/*",
|
|
897
898
|
"../../packages/ui/src/components/ui/radix/*"
|
|
@@ -374,7 +374,7 @@ import {
|
|
|
374
374
|
AssistantChatTransport,
|
|
375
375
|
createResumableSessionStorage,
|
|
376
376
|
useChatRuntime,
|
|
377
|
-
} from "@assistant-ui/
|
|
377
|
+
} from "@assistant-ui/ai-sdk";
|
|
378
378
|
import { Thread } from "@/components/assistant-ui/thread";
|
|
379
379
|
|
|
380
380
|
const storage = createResumableSessionStorage();
|
|
@@ -514,20 +514,20 @@ export default withAui(nextConfig);
|
|
|
514
514
|
"start": "next start"
|
|
515
515
|
},
|
|
516
516
|
"dependencies": {
|
|
517
|
-
"@ai-sdk/openai": "^4.0.
|
|
518
|
-
"@ai-sdk/react": "^4.0.
|
|
517
|
+
"@ai-sdk/openai": "^4.0.46",
|
|
518
|
+
"@ai-sdk/react": "^4.0.80",
|
|
519
|
+
"@assistant-ui/ai-sdk": "workspace:*",
|
|
519
520
|
"@assistant-ui/react": "workspace:*",
|
|
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": "^7.0.
|
|
525
|
+
"ai": "^7.0.77",
|
|
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.3.
|
|
529
|
+
"lucide-react": "^1.33.0",
|
|
530
|
+
"next": "^16.3.2",
|
|
531
531
|
"react": "^19.2.8",
|
|
532
532
|
"react-dom": "^19.2.8",
|
|
533
533
|
"redis": "^6.2.1",
|
|
@@ -540,7 +540,7 @@ export default withAui(nextConfig);
|
|
|
540
540
|
"@tailwindcss/postcss": "^4.3.3",
|
|
541
541
|
"@types/node": "^26.2.0",
|
|
542
542
|
"@types/react": "^19.2.18",
|
|
543
|
-
"@types/react-dom": "^19.2.
|
|
543
|
+
"@types/react-dom": "^19.2.5",
|
|
544
544
|
"postcss": "^8.5.26",
|
|
545
545
|
"tailwindcss": "^4.3.3",
|
|
546
546
|
"tw-animate-css": "^1.4.0",
|
|
@@ -579,7 +579,7 @@ Open [http://localhost:3000](http://localhost:3000), send a prompt, then reload
|
|
|
579
579
|
|
|
580
580
|
## Client integration
|
|
581
581
|
|
|
582
|
-
The browser side is wired through two helpers from `@assistant-ui/
|
|
582
|
+
The browser side is wired through two helpers from `@assistant-ui/ai-sdk`:
|
|
583
583
|
|
|
584
584
|
- `createResumableSessionStorage()` returns a small `sessionStorage`-backed storage object for the pending stream id. Pass `{ key }` to namespace per route. Use `localStorage` instead if you want a stream that survives full browser restarts (and accept the cross-tab race that comes with it).
|
|
585
585
|
- `AssistantChatTransport` accepts a `resumable` option. When set, the transport captures the `x-resumable-stream-id` response header, watches the SSE body for the `finish` event so the stored id is cleared on natural completion (cancellation leaves it intact), and redirects `chat.resumeStream()` reconnects to the configured `resumeApi`.
|
|
@@ -648,6 +648,7 @@ docker run -d --name redis -p 6379:6379 redis:7-alpine
|
|
|
648
648
|
"@/components/assistant-ui/*": [
|
|
649
649
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
650
650
|
],
|
|
651
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
651
652
|
"@/components/ui/*": [
|
|
652
653
|
"../../packages/ui/src/components/ui/base/*",
|
|
653
654
|
"../../packages/ui/src/components/ui/radix/*"
|
|
@@ -501,7 +501,7 @@ export default withAui(nextConfig);
|
|
|
501
501
|
"dependencies": {
|
|
502
502
|
"@assistant-ui/store": "workspace:*",
|
|
503
503
|
"@assistant-ui/tap": "workspace:*",
|
|
504
|
-
"next": "^16.3.
|
|
504
|
+
"next": "^16.3.2",
|
|
505
505
|
"react": "^19.2.8",
|
|
506
506
|
"react-dom": "^19.2.8"
|
|
507
507
|
},
|
|
@@ -511,7 +511,7 @@ export default withAui(nextConfig);
|
|
|
511
511
|
"@tailwindcss/postcss": "^4.3.3",
|
|
512
512
|
"@types/node": "^26.2.0",
|
|
513
513
|
"@types/react": "^19.2.18",
|
|
514
|
-
"@types/react-dom": "^19.2.
|
|
514
|
+
"@types/react-dom": "^19.2.5",
|
|
515
515
|
"postcss": "^8.5.26",
|
|
516
516
|
"tailwindcss": "^4.3.3",
|
|
517
517
|
"tw-animate-css": "^1.4.0",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"@assistant-ui/store": "workspace:*",
|
|
19
19
|
"@assistant-ui/svelte": "workspace:*",
|
|
20
20
|
"@assistant-ui/tap": "workspace:*",
|
|
21
|
-
"@lucide/svelte": "^1.
|
|
22
|
-
"svelte": "^5.56.
|
|
21
|
+
"@lucide/svelte": "^1.33.0",
|
|
22
|
+
"svelte": "^5.56.10"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@types/react": "^19.2.18",
|
|
28
28
|
"tailwindcss": "^4.3.3",
|
|
29
29
|
"typescript": "^7.0.2",
|
|
30
|
-
"vite": "^8.2.
|
|
30
|
+
"vite": "^8.2.2"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -525,7 +525,7 @@ export { default as component } from "../../../../src/routes/+layout.svelte";
|
|
|
525
525
|
## .svelte-kit/generated/client/nodes/1.js
|
|
526
526
|
|
|
527
527
|
```javascript
|
|
528
|
-
export { default as component } from "../../../../../../node_modules/.pnpm/@sveltejs+kit@2.70.
|
|
528
|
+
export { default as component } from "../../../../../../node_modules/.pnpm/@sveltejs+kit@2.70.3_@opentelemetry+api@1.9.1_@sveltejs+vite-plugin-svelte@7.3.0_svelte_26c48ee4bd9841fd149819be187666ea/node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte";
|
|
529
529
|
```
|
|
530
530
|
|
|
531
531
|
## .svelte-kit/generated/client/nodes/2.js
|
|
@@ -550,7 +550,7 @@ import root from '../root.js';
|
|
|
550
550
|
import { set_building, set_prerendering } from '$app/env/internal';
|
|
551
551
|
import { set_assets } from '$app/paths/internal/server';
|
|
552
552
|
import { set_manifest, set_read_implementation } from '__sveltekit/server';
|
|
553
|
-
import { set_private_env, set_public_env } from '../../../../../node_modules/.pnpm/@sveltejs+kit@2.70.
|
|
553
|
+
import { set_private_env, set_public_env } from '../../../../../node_modules/.pnpm/@sveltejs+kit@2.70.3_@opentelemetry+api@1.9.1_@sveltejs+vite-plugin-svelte@7.3.0_svelte_26c48ee4bd9841fd149819be187666ea/node_modules/@sveltejs/kit/src/runtime/shared-server.js';
|
|
554
554
|
import error from '../shared/error-template.js';
|
|
555
555
|
|
|
556
556
|
export const options = {
|
|
@@ -573,7 +573,7 @@ export const options = {
|
|
|
573
573
|
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>assistant-ui × SvelteKit</title>\n " + head + "\n </head>\n <body>\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
|
|
574
574
|
error
|
|
575
575
|
},
|
|
576
|
-
version_hash: "
|
|
576
|
+
version_hash: "13eazmc"
|
|
577
577
|
};
|
|
578
578
|
|
|
579
579
|
export async function get_hooks() {
|
|
@@ -793,26 +793,26 @@ export type RequestEvent = Kit.RequestEvent<RouteParams, RouteId>;
|
|
|
793
793
|
"preview": "vite preview"
|
|
794
794
|
},
|
|
795
795
|
"dependencies": {
|
|
796
|
-
"@ai-sdk/openai": "^4.0.
|
|
796
|
+
"@ai-sdk/openai": "^4.0.46",
|
|
797
797
|
"@assistant-ui/ai-sdk": "workspace:*",
|
|
798
798
|
"@assistant-ui/core": "workspace:*",
|
|
799
799
|
"@assistant-ui/store": "workspace:*",
|
|
800
800
|
"@assistant-ui/svelte": "workspace:*",
|
|
801
801
|
"@assistant-ui/tap": "workspace:*",
|
|
802
|
-
"@lucide/svelte": "^1.
|
|
803
|
-
"ai": "^7.0.
|
|
802
|
+
"@lucide/svelte": "^1.33.0",
|
|
803
|
+
"ai": "^7.0.77",
|
|
804
804
|
"react": "^19.2.8",
|
|
805
|
-
"svelte": "^5.56.
|
|
805
|
+
"svelte": "^5.56.10"
|
|
806
806
|
},
|
|
807
807
|
"devDependencies": {
|
|
808
808
|
"@sveltejs/adapter-auto": "^7.0.1",
|
|
809
|
-
"@sveltejs/kit": "^2.70.
|
|
809
|
+
"@sveltejs/kit": "^2.70.3",
|
|
810
810
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|
|
811
811
|
"@tailwindcss/vite": "^4.3.3",
|
|
812
812
|
"@types/react": "^19.2.18",
|
|
813
813
|
"tailwindcss": "^4.3.3",
|
|
814
814
|
"typescript": "^7.0.2",
|
|
815
|
-
"vite": "^8.2.
|
|
815
|
+
"vite": "^8.2.2"
|
|
816
816
|
}
|
|
817
817
|
}
|
|
818
818
|
|
|
@@ -65,13 +65,13 @@
|
|
|
65
65
|
"@assistant-ui/react": "workspace:*",
|
|
66
66
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
67
67
|
"@tailwindcss/vite": "^4.3.3",
|
|
68
|
-
"@tanstack/react-router": "^1.170.
|
|
69
|
-
"@tanstack/react-start": "^1.168.
|
|
68
|
+
"@tanstack/react-router": "^1.170.32",
|
|
69
|
+
"@tanstack/react-start": "^1.168.49",
|
|
70
70
|
"class-variance-authority": "^0.7.1",
|
|
71
71
|
"clsx": "^2.1.1",
|
|
72
|
-
"lucide-react": "^1.
|
|
72
|
+
"lucide-react": "^1.33.0",
|
|
73
73
|
"nitro": "^3.0.260311-beta",
|
|
74
|
-
"openai": "^7.
|
|
74
|
+
"openai": "^7.5.0",
|
|
75
75
|
"react": "^19.2.8",
|
|
76
76
|
"react-dom": "^19.2.8",
|
|
77
77
|
"remark-gfm": "^4.0.1",
|
|
@@ -83,10 +83,10 @@
|
|
|
83
83
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
84
84
|
"@types/node": "^26.2.0",
|
|
85
85
|
"@types/react": "^19.2.18",
|
|
86
|
-
"@types/react-dom": "^19.2.
|
|
87
|
-
"@vitejs/plugin-react": "^6.0
|
|
86
|
+
"@types/react-dom": "^19.2.5",
|
|
87
|
+
"@vitejs/plugin-react": "^6.1.0",
|
|
88
88
|
"typescript": "^7.0.2",
|
|
89
|
-
"vite": "^8.2.
|
|
89
|
+
"vite": "^8.2.2"
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -748,6 +748,7 @@ export const chatStream = createServerFn({ method: "POST" })
|
|
|
748
748
|
"@/components/assistant-ui/*": [
|
|
749
749
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
750
750
|
],
|
|
751
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
751
752
|
"@/components/ui/*": [
|
|
752
753
|
"../../packages/ui/src/components/ui/base/*",
|
|
753
754
|
"../../packages/ui/src/components/ui/radix/*"
|
|
@@ -600,8 +600,8 @@ export default withAui(nextConfig);
|
|
|
600
600
|
"@assistant-ui/ui": "workspace:*",
|
|
601
601
|
"class-variance-authority": "^0.7.1",
|
|
602
602
|
"clsx": "^2.1.1",
|
|
603
|
-
"lucide-react": "^1.
|
|
604
|
-
"next": "^16.3.
|
|
603
|
+
"lucide-react": "^1.33.0",
|
|
604
|
+
"next": "^16.3.2",
|
|
605
605
|
"react": "^19.2.8",
|
|
606
606
|
"react-dom": "^19.2.8",
|
|
607
607
|
"tailwind-merge": "^3.6.0"
|
|
@@ -612,7 +612,7 @@ export default withAui(nextConfig);
|
|
|
612
612
|
"@tailwindcss/postcss": "^4.3.3",
|
|
613
613
|
"@types/node": "^26.2.0",
|
|
614
614
|
"@types/react": "^19.2.18",
|
|
615
|
-
"@types/react-dom": "^19.2.
|
|
615
|
+
"@types/react-dom": "^19.2.5",
|
|
616
616
|
"postcss": "^8.5.26",
|
|
617
617
|
"tailwindcss": "^4.3.3",
|
|
618
618
|
"tw-animate-css": "^1.4.0",
|
|
@@ -785,6 +785,7 @@ You can extend this example to:
|
|
|
785
785
|
"@/components/assistant-ui/*": [
|
|
786
786
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
787
787
|
],
|
|
788
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
788
789
|
"@/components/ui/*": [
|
|
789
790
|
"../../packages/ui/src/components/ui/base/*",
|
|
790
791
|
"../../packages/ui/src/components/ui/radix/*"
|