@assistant-ui/mcp-docs-server 0.1.32 → 0.1.34
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 +20 -22
- package/.docs/organized/code-examples/with-a2a.md +24 -24
- package/.docs/organized/code-examples/with-ag-ui.md +30 -25
- package/.docs/organized/code-examples/with-ai-sdk-v6.md +11 -9
- package/.docs/organized/code-examples/with-artifacts.md +49 -37
- package/.docs/organized/code-examples/with-assistant-transport.md +63 -51
- package/.docs/organized/code-examples/with-browser-extension.md +22 -10
- package/.docs/organized/code-examples/with-chain-of-thought.md +406 -87
- package/.docs/organized/code-examples/with-cloud-standalone.md +25 -24
- package/.docs/organized/code-examples/with-cloud.md +11 -9
- package/.docs/organized/code-examples/with-custom-thread-list.md +14 -12
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +23 -21
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +14 -13
- package/.docs/organized/code-examples/with-expo.md +44 -29
- package/.docs/organized/code-examples/with-external-store.md +9 -7
- package/.docs/organized/code-examples/with-ffmpeg.md +322 -285
- package/.docs/organized/code-examples/with-generative-ui.md +1066 -256
- package/.docs/organized/code-examples/with-google-adk.md +10 -8
- package/.docs/organized/code-examples/with-heat-graph.md +13 -11
- package/.docs/organized/code-examples/with-image-generation.md +19 -17
- package/.docs/organized/code-examples/with-interactables.md +317 -239
- package/.docs/organized/code-examples/with-langchain.md +14 -12
- package/.docs/organized/code-examples/with-langgraph.md +91 -83
- package/.docs/organized/code-examples/with-livekit.md +24 -22
- package/.docs/organized/code-examples/with-mcp.md +18 -12
- package/.docs/organized/code-examples/with-opencode.md +66 -66
- package/.docs/organized/code-examples/with-react-hook-form.md +19 -17
- package/.docs/organized/code-examples/with-react-ink.md +297 -102
- package/.docs/organized/code-examples/with-react-router.md +17 -15
- package/.docs/organized/code-examples/with-resumable-stream.md +15 -14
- package/.docs/organized/code-examples/with-store.md +78 -76
- package/.docs/organized/code-examples/with-tanstack.md +13 -14
- package/.docs/organized/code-examples/with-tap-runtime.md +26 -24
- package/.docs/raw/docs/(docs)/architecture.mdx +94 -42
- package/.docs/raw/docs/(docs)/cli.mdx +1 -2
- package/.docs/raw/docs/(docs)/installation.mdx +1 -1
- package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +5 -1
- package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +15 -15
- package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +14 -1
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/index.mdx +18 -0
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/rendering.mdx +33 -0
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/spec.mdx +45 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +41 -41
- package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +19 -1
- package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +122 -122
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +43 -2
- package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +6 -0
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +4 -6
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +30 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +20 -3
- package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +8 -8
- package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +52 -4
- package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +100 -10
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +7 -59
- package/.docs/raw/docs/cloud/ai-sdk.mdx +0 -2
- package/.docs/raw/docs/{(docs)/copilots → copilots}/model-context.mdx +34 -26
- package/.docs/raw/docs/{(docs)/copilots → copilots}/motivation.mdx +32 -26
- package/.docs/raw/docs/guides/chain-of-thought.mdx +7 -9
- package/.docs/raw/docs/guides/context-api.mdx +2 -1
- package/.docs/raw/docs/guides/index.mdx +3 -12
- package/.docs/raw/docs/guides/mentions.mdx +4 -4
- package/.docs/raw/docs/guides/slash-commands.mdx +1 -1
- package/.docs/raw/docs/guides/suggestions.mdx +1 -1
- package/.docs/raw/docs/ink/adapters.mdx +23 -1
- package/.docs/raw/docs/ink/hooks.mdx +101 -85
- package/.docs/raw/docs/ink/migration.mdx +1 -1
- package/.docs/raw/docs/ink/primitives.mdx +2 -2
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +1 -1
- package/.docs/raw/docs/integrations/index.mdx +2 -2
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +17 -2
- package/.docs/raw/docs/migrations/toolkit-tools.mdx +232 -0
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +10 -16
- package/.docs/raw/docs/primitives/message.mdx +9 -10
- package/.docs/raw/docs/react-native/hooks.mdx +62 -79
- package/.docs/raw/docs/react-native/migration.mdx +1 -1
- package/.docs/raw/docs/react-native/primitives.mdx +2 -2
- package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +3 -0
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +41 -0
- package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +122 -1
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +46 -4
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +7 -1
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +54 -12
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +62 -4
- package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +30 -7
- package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +108 -38
- package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +2 -2
- package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +14 -1
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +64 -50
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-3.mdx +98 -86
- package/.docs/raw/docs/tools/backend.mdx +144 -0
- package/.docs/raw/docs/tools/defining-tools.mdx +538 -0
- package/.docs/raw/docs/tools/dynamic-tools.mdx +110 -0
- package/.docs/raw/docs/tools/generative-ui.mdx +214 -0
- package/.docs/raw/docs/tools/index.mdx +71 -0
- package/.docs/raw/docs/{guides → tools}/interactables.mdx +1 -1
- package/.docs/raw/docs/{integrations/tools → tools}/mcp.mdx +145 -50
- package/.docs/raw/docs/{guides → tools}/multi-agent.mdx +15 -17
- package/.docs/raw/docs/tools/tool-ui.mdx +967 -0
- package/.docs/raw/docs/{integrations/tools/react-mcp.mdx → tools/user-managed-mcp.mdx} +7 -7
- package/.docs/raw/docs/ui/directive-text.mdx +3 -3
- package/.docs/raw/docs/ui/mcp-config.mdx +4 -4
- package/.docs/raw/docs/ui/mermaid.mdx +16 -9
- package/.docs/raw/docs/ui/part-grouping.mdx +84 -50
- package/.docs/raw/docs/ui/reasoning.mdx +4 -5
- package/.docs/raw/docs/ui/tool-fallback.mdx +16 -0
- package/.docs/raw/docs/ui/tool-group.mdx +5 -6
- package/.docs/raw/docs/utilities/heat-graph.mdx +1 -1
- package/.docs/raw/docs/utilities/react-o11y.mdx +2 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- 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/copy-raw.js.map +1 -1
- package/dist/prepare-docs/prepare.js.map +1 -1
- package/dist/stdio.js.map +1 -1
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/examples.js.map +1 -1
- package/dist/tools/tests/test-setup.js.map +1 -1
- package/dist/utils/mdx.js.map +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/package.json +5 -5
- package/.docs/organized/code-examples/with-parent-id-grouping.md +0 -596
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +0 -151
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +0 -230
- package/.docs/raw/docs/guides/generative-ui.mdx +0 -142
- package/.docs/raw/docs/guides/tool-ui.mdx +0 -858
- package/.docs/raw/docs/guides/tools.mdx +0 -736
- /package/.docs/raw/docs/{(docs)/copilots → copilots}/assistant-frame.mdx +0 -0
- /package/.docs/raw/docs/{(docs)/copilots → copilots}/make-assistant-visible.mdx +0 -0
- /package/.docs/raw/docs/{(docs)/copilots → copilots}/use-assistant-instructions.mdx +0 -0
- /package/.docs/raw/docs/{guides → tools}/mcp-apps.mdx +0 -0
|
@@ -307,22 +307,21 @@ export function Composer({
|
|
|
307
307
|
|
|
308
308
|
return (
|
|
309
309
|
<form onSubmit={handleSubmit} className="p-4 pt-2">
|
|
310
|
-
<div className="flex items-end gap-2 rounded-2xl border
|
|
310
|
+
<div className="bg-background flex items-end gap-2 rounded-2xl border px-3 py-2 shadow-sm">
|
|
311
311
|
<textarea
|
|
312
312
|
value={value}
|
|
313
313
|
onChange={(e) => onChange(e.target.value)}
|
|
314
314
|
onKeyDown={handleKeyDown}
|
|
315
315
|
placeholder="Send a message..."
|
|
316
|
-
className="max-h-32 min-h-8 flex-1 resize-none bg-transparent py-1 text-sm leading-normal outline-none
|
|
316
|
+
className="placeholder:text-muted-foreground max-h-32 min-h-8 flex-1 resize-none bg-transparent py-1 text-sm leading-normal outline-none"
|
|
317
317
|
rows={1}
|
|
318
|
-
// biome-ignore lint/a11y/noAutofocus: chat input should autofocus
|
|
319
318
|
autoFocus
|
|
320
319
|
/>
|
|
321
320
|
{isRunning ? (
|
|
322
321
|
<button
|
|
323
322
|
type="button"
|
|
324
323
|
onClick={onCancel}
|
|
325
|
-
className="flex size-8 shrink-0 items-center justify-center rounded-full
|
|
324
|
+
className="bg-destructive text-destructive-foreground hover:bg-destructive/90 flex size-8 shrink-0 items-center justify-center rounded-full transition-colors"
|
|
326
325
|
aria-label="Stop generating"
|
|
327
326
|
>
|
|
328
327
|
<Square className="size-3 fill-current" />
|
|
@@ -368,7 +367,7 @@ export function Message({ message }: MessageProps) {
|
|
|
368
367
|
<div className={cn("flex", isUser ? "justify-end" : "justify-start")}>
|
|
369
368
|
<div
|
|
370
369
|
className={cn(
|
|
371
|
-
"max-w-[80%]
|
|
370
|
+
"max-w-[80%] rounded-2xl px-4 py-2.5 text-sm break-words whitespace-pre-wrap",
|
|
372
371
|
isUser
|
|
373
372
|
? "bg-primary text-primary-foreground"
|
|
374
373
|
: "bg-muted text-foreground",
|
|
@@ -404,8 +403,8 @@ type ThreadProps = {
|
|
|
404
403
|
function ThreadWelcome() {
|
|
405
404
|
return (
|
|
406
405
|
<div className="flex flex-1 flex-col items-center justify-center text-center">
|
|
407
|
-
<h2 className="font-semibold
|
|
408
|
-
<p className="
|
|
406
|
+
<h2 className="text-lg font-semibold">How can I help you today?</h2>
|
|
407
|
+
<p className="text-muted-foreground mt-1 text-sm">
|
|
409
408
|
Send a message to start a conversation.
|
|
410
409
|
</p>
|
|
411
410
|
</div>
|
|
@@ -415,9 +414,9 @@ function ThreadWelcome() {
|
|
|
415
414
|
function LoadingIndicator() {
|
|
416
415
|
return (
|
|
417
416
|
<div className="flex items-center gap-1.5 py-2">
|
|
418
|
-
<span className="size-1.5 animate-bounce rounded-full
|
|
419
|
-
<span className="size-1.5 animate-bounce rounded-full
|
|
420
|
-
<span className="size-1.5 animate-bounce rounded-full
|
|
417
|
+
<span className="bg-muted-foreground/60 size-1.5 animate-bounce rounded-full [animation-delay:-0.3s]" />
|
|
418
|
+
<span className="bg-muted-foreground/60 size-1.5 animate-bounce rounded-full [animation-delay:-0.15s]" />
|
|
419
|
+
<span className="bg-muted-foreground/60 size-1.5 animate-bounce rounded-full" />
|
|
421
420
|
</div>
|
|
422
421
|
);
|
|
423
422
|
}
|
|
@@ -469,12 +468,12 @@ export function ThreadList({
|
|
|
469
468
|
isLoading,
|
|
470
469
|
}: ThreadListProps) {
|
|
471
470
|
return (
|
|
472
|
-
<div className="flex h-full w-64 shrink-0 flex-col border-r
|
|
471
|
+
<div className="bg-sidebar flex h-full w-64 shrink-0 flex-col border-r">
|
|
473
472
|
<div className="p-3">
|
|
474
473
|
<button
|
|
475
474
|
type="button"
|
|
476
475
|
onClick={() => onSelect(null)}
|
|
477
|
-
className="flex w-full items-center justify-center gap-2 rounded-lg border
|
|
476
|
+
className="border-sidebar-border bg-sidebar text-sidebar-foreground hover:bg-sidebar-accent flex w-full items-center justify-center gap-2 rounded-lg border px-4 py-2 text-sm font-medium transition-colors"
|
|
478
477
|
>
|
|
479
478
|
<Plus className="size-4" />
|
|
480
479
|
New Chat
|
|
@@ -483,11 +482,11 @@ export function ThreadList({
|
|
|
483
482
|
|
|
484
483
|
<div className="flex-1 overflow-y-auto px-2 pb-2">
|
|
485
484
|
{isLoading && threads.length === 0 ? (
|
|
486
|
-
<div className="flex items-center justify-center py-8 text-
|
|
485
|
+
<div className="text-muted-foreground flex items-center justify-center py-8 text-sm">
|
|
487
486
|
Loading...
|
|
488
487
|
</div>
|
|
489
488
|
) : threads.length === 0 ? (
|
|
490
|
-
<div className="flex flex-col items-center justify-center gap-2 py-8 text-center text-
|
|
489
|
+
<div className="text-muted-foreground flex flex-col items-center justify-center gap-2 py-8 text-center text-sm">
|
|
491
490
|
<MessageSquare className="size-6 opacity-40" />
|
|
492
491
|
<p>No conversations yet</p>
|
|
493
492
|
</div>
|
|
@@ -517,7 +516,7 @@ export function ThreadList({
|
|
|
517
516
|
className="shrink-0 opacity-0 transition-opacity group-hover:opacity-100"
|
|
518
517
|
aria-label="Delete thread"
|
|
519
518
|
>
|
|
520
|
-
<Trash2 className="
|
|
519
|
+
<Trash2 className="text-muted-foreground hover:text-destructive size-3.5" />
|
|
521
520
|
</button>
|
|
522
521
|
</button>
|
|
523
522
|
))}
|
|
@@ -545,12 +544,13 @@ export function cn(...inputs: ClassValue[]) {
|
|
|
545
544
|
## next.config.js
|
|
546
545
|
|
|
547
546
|
```javascript
|
|
547
|
+
import { withAui } from "@assistant-ui/next";
|
|
548
548
|
/** @type {import('next').NextConfig} */
|
|
549
549
|
const nextConfig = {
|
|
550
550
|
transpilePackages: ["assistant-cloud"],
|
|
551
551
|
};
|
|
552
552
|
|
|
553
|
-
export default nextConfig;
|
|
553
|
+
export default withAui(nextConfig);
|
|
554
554
|
|
|
555
555
|
```
|
|
556
556
|
|
|
@@ -568,22 +568,23 @@ export default nextConfig;
|
|
|
568
568
|
"start": "next start"
|
|
569
569
|
},
|
|
570
570
|
"dependencies": {
|
|
571
|
-
"@ai-sdk/openai": "^3.0.
|
|
571
|
+
"@ai-sdk/openai": "^3.0.68",
|
|
572
572
|
"@assistant-ui/cloud-ai-sdk": "workspace:*",
|
|
573
|
-
"ai": "^6.0.
|
|
573
|
+
"ai": "^6.0.197",
|
|
574
574
|
"class-variance-authority": "^0.7.1",
|
|
575
575
|
"clsx": "^2.1.1",
|
|
576
|
-
"lucide-react": "^1.
|
|
577
|
-
"next": "^16.2.
|
|
578
|
-
"react": "^19.2.
|
|
579
|
-
"react-dom": "^19.2.
|
|
576
|
+
"lucide-react": "^1.17.0",
|
|
577
|
+
"next": "^16.2.7",
|
|
578
|
+
"react": "^19.2.7",
|
|
579
|
+
"react-dom": "^19.2.7",
|
|
580
580
|
"tailwind-merge": "^3.6.0"
|
|
581
581
|
},
|
|
582
582
|
"devDependencies": {
|
|
583
|
+
"@assistant-ui/next": "workspace:*",
|
|
583
584
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
584
585
|
"@tailwindcss/postcss": "^4.3.0",
|
|
585
|
-
"@types/node": "^25.9.
|
|
586
|
-
"@types/react": "^19.2.
|
|
586
|
+
"@types/node": "^25.9.2",
|
|
587
|
+
"@types/react": "^19.2.17",
|
|
587
588
|
"@types/react-dom": "^19.2.3",
|
|
588
589
|
"postcss": "^8.5.15",
|
|
589
590
|
"tailwindcss": "^4.3.0",
|
|
@@ -303,13 +303,14 @@ export default function Home() {
|
|
|
303
303
|
## next.config.ts
|
|
304
304
|
|
|
305
305
|
```typescript
|
|
306
|
+
import { withAui } from "@assistant-ui/next";
|
|
306
307
|
import type { NextConfig } from "next";
|
|
307
308
|
|
|
308
309
|
const nextConfig: NextConfig = {
|
|
309
310
|
/* config options here */
|
|
310
311
|
};
|
|
311
312
|
|
|
312
|
-
export default nextConfig;
|
|
313
|
+
export default withAui(nextConfig);
|
|
313
314
|
|
|
314
315
|
```
|
|
315
316
|
|
|
@@ -327,25 +328,26 @@ export default nextConfig;
|
|
|
327
328
|
"start": "next start"
|
|
328
329
|
},
|
|
329
330
|
"dependencies": {
|
|
330
|
-
"@ai-sdk/openai": "^3.0.
|
|
331
|
+
"@ai-sdk/openai": "^3.0.68",
|
|
331
332
|
"@assistant-ui/react": "workspace:*",
|
|
332
333
|
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
333
334
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
334
335
|
"@assistant-ui/ui": "workspace:*",
|
|
335
|
-
"ai": "^6.0.
|
|
336
|
+
"ai": "^6.0.197",
|
|
336
337
|
"class-variance-authority": "^0.7.1",
|
|
337
338
|
"clsx": "^2.1.1",
|
|
338
|
-
"lucide-react": "^1.
|
|
339
|
-
"next": "^16.2.
|
|
340
|
-
"react": "^19.2.
|
|
341
|
-
"react-dom": "^19.2.
|
|
339
|
+
"lucide-react": "^1.17.0",
|
|
340
|
+
"next": "^16.2.7",
|
|
341
|
+
"react": "^19.2.7",
|
|
342
|
+
"react-dom": "^19.2.7",
|
|
342
343
|
"tailwind-merge": "^3.6.0"
|
|
343
344
|
},
|
|
344
345
|
"devDependencies": {
|
|
346
|
+
"@assistant-ui/next": "workspace:*",
|
|
345
347
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
346
348
|
"@tailwindcss/postcss": "^4.3.0",
|
|
347
|
-
"@types/node": "^25.9.
|
|
348
|
-
"@types/react": "^19.2.
|
|
349
|
+
"@types/node": "^25.9.2",
|
|
350
|
+
"@types/react": "^19.2.17",
|
|
349
351
|
"@types/react-dom": "^19.2.3",
|
|
350
352
|
"postcss": "^8.5.15",
|
|
351
353
|
"tailwindcss": "^4.3.0",
|
|
@@ -352,19 +352,19 @@ import {
|
|
|
352
352
|
function ThreadList() {
|
|
353
353
|
return (
|
|
354
354
|
<ThreadListPrimitive.Root className="flex flex-col gap-1 overflow-y-auto">
|
|
355
|
-
<ThreadListPrimitive.New className="flex h-9 items-center gap-2 rounded-lg border px-3 text-sm
|
|
355
|
+
<ThreadListPrimitive.New className="hover:bg-muted flex h-9 items-center gap-2 rounded-lg border px-3 text-sm">
|
|
356
356
|
New Thread
|
|
357
357
|
</ThreadListPrimitive.New>
|
|
358
358
|
<ThreadListPrimitive.Items>
|
|
359
359
|
{() => (
|
|
360
|
-
<ThreadListItemPrimitive.Root className="flex h-9 items-center rounded-lg
|
|
360
|
+
<ThreadListItemPrimitive.Root className="hover:bg-muted data-active:bg-muted flex h-9 items-center rounded-lg">
|
|
361
361
|
<ThreadListItemPrimitive.Trigger className="flex-1 truncate px-3 text-start text-sm">
|
|
362
362
|
<ThreadListItemPrimitive.Title fallback="New Chat" />
|
|
363
363
|
</ThreadListItemPrimitive.Trigger>
|
|
364
364
|
</ThreadListItemPrimitive.Root>
|
|
365
365
|
)}
|
|
366
366
|
</ThreadListPrimitive.Items>
|
|
367
|
-
<ThreadListPrimitive.LoadMore className="mt-1 h-9 rounded-lg border px-3 text-sm
|
|
367
|
+
<ThreadListPrimitive.LoadMore className="hover:bg-muted mt-1 h-9 rounded-lg border px-3 text-sm disabled:opacity-50">
|
|
368
368
|
Load more
|
|
369
369
|
</ThreadListPrimitive.LoadMore>
|
|
370
370
|
</ThreadListPrimitive.Root>
|
|
@@ -437,11 +437,12 @@ export default function Home() {
|
|
|
437
437
|
## next.config.ts
|
|
438
438
|
|
|
439
439
|
```typescript
|
|
440
|
+
import { withAui } from "@assistant-ui/next";
|
|
440
441
|
import type { NextConfig } from "next";
|
|
441
442
|
|
|
442
443
|
const nextConfig: NextConfig = {};
|
|
443
444
|
|
|
444
|
-
export default nextConfig;
|
|
445
|
+
export default withAui(nextConfig);
|
|
445
446
|
|
|
446
447
|
```
|
|
447
448
|
|
|
@@ -459,27 +460,28 @@ export default nextConfig;
|
|
|
459
460
|
"start": "next start"
|
|
460
461
|
},
|
|
461
462
|
"dependencies": {
|
|
462
|
-
"@ai-sdk/openai": "^3.0.
|
|
463
|
+
"@ai-sdk/openai": "^3.0.68",
|
|
463
464
|
"@assistant-ui/react": "workspace:*",
|
|
464
465
|
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
465
466
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
466
467
|
"@assistant-ui/ui": "workspace:*",
|
|
467
|
-
"ai": "^6.0.
|
|
468
|
+
"ai": "^6.0.197",
|
|
468
469
|
"assistant-stream": "workspace:*",
|
|
469
470
|
"class-variance-authority": "^0.7.1",
|
|
470
471
|
"clsx": "^2.1.1",
|
|
471
|
-
"lucide-react": "^1.
|
|
472
|
-
"next": "^16.2.
|
|
473
|
-
"react": "^19.2.
|
|
474
|
-
"react-dom": "^19.2.
|
|
472
|
+
"lucide-react": "^1.17.0",
|
|
473
|
+
"next": "^16.2.7",
|
|
474
|
+
"react": "^19.2.7",
|
|
475
|
+
"react-dom": "^19.2.7",
|
|
475
476
|
"tailwind-merge": "^3.6.0",
|
|
476
477
|
"zod": "^4.4.3"
|
|
477
478
|
},
|
|
478
479
|
"devDependencies": {
|
|
480
|
+
"@assistant-ui/next": "workspace:*",
|
|
479
481
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
480
482
|
"@tailwindcss/postcss": "^4.3.0",
|
|
481
|
-
"@types/node": "^25.9.
|
|
482
|
-
"@types/react": "^19.2.
|
|
483
|
+
"@types/node": "^25.9.2",
|
|
484
|
+
"@types/react": "^19.2.17",
|
|
483
485
|
"@types/react-dom": "^19.2.3",
|
|
484
486
|
"postcss": "^8.5.15",
|
|
485
487
|
"tailwindcss": "^4.3.0",
|
|
@@ -177,7 +177,7 @@ import type { FC } from "react";
|
|
|
177
177
|
export const VoiceThread: FC = () => {
|
|
178
178
|
return (
|
|
179
179
|
<ThreadPrimitive.Root
|
|
180
|
-
className="aui-root aui-thread-root flex h-full flex-col
|
|
180
|
+
className="aui-root aui-thread-root bg-background flex h-full flex-col"
|
|
181
181
|
style={{ ["--thread-max-width" as string]: "44rem" }}
|
|
182
182
|
>
|
|
183
183
|
<ThreadPrimitive.Viewport className="aui-thread-viewport relative flex flex-1 flex-col overflow-y-scroll scroll-smooth px-4 pt-4">
|
|
@@ -189,7 +189,7 @@ export const VoiceThread: FC = () => {
|
|
|
189
189
|
{() => <ThreadMessage />}
|
|
190
190
|
</ThreadPrimitive.Messages>
|
|
191
191
|
|
|
192
|
-
<ThreadPrimitive.ViewportFooter className="sticky bottom-0 mx-auto mt-auto flex w-full max-w-(--thread-max-width) flex-col items-center
|
|
192
|
+
<ThreadPrimitive.ViewportFooter className="bg-background sticky bottom-0 mx-auto mt-auto flex w-full max-w-(--thread-max-width) flex-col items-center pt-4 pb-6">
|
|
193
193
|
<ThreadScrollToBottom />
|
|
194
194
|
<VoiceControlCenter />
|
|
195
195
|
</ThreadPrimitive.ViewportFooter>
|
|
@@ -201,7 +201,7 @@ export const VoiceThread: FC = () => {
|
|
|
201
201
|
const VoiceWelcome: FC = () => {
|
|
202
202
|
return (
|
|
203
203
|
<div className="aui-thread-welcome-root mx-auto my-auto flex w-full max-w-(--thread-max-width) grow flex-col items-center justify-center gap-2">
|
|
204
|
-
<p className="fade-in slide-in-from-bottom-1 animate-in fill-mode-both font-semibold
|
|
204
|
+
<p className="fade-in slide-in-from-bottom-1 animate-in fill-mode-both text-2xl font-semibold duration-200">
|
|
205
205
|
Voice Conversation
|
|
206
206
|
</p>
|
|
207
207
|
<p className="fade-in slide-in-from-bottom-1 animate-in fill-mode-both text-muted-foreground delay-75 duration-200">
|
|
@@ -217,7 +217,7 @@ const ThreadScrollToBottom: FC = () => {
|
|
|
217
217
|
<TooltipIconButton
|
|
218
218
|
tooltip="Scroll to bottom"
|
|
219
219
|
variant="outline"
|
|
220
|
-
className="absolute -top-12 z-10 self-center rounded-full p-4 disabled:invisible
|
|
220
|
+
className="dark:border-border dark:bg-background dark:hover:bg-accent absolute -top-12 z-10 self-center rounded-full p-4 disabled:invisible"
|
|
221
221
|
>
|
|
222
222
|
<ArrowDownIcon />
|
|
223
223
|
</TooltipIconButton>
|
|
@@ -268,7 +268,7 @@ const VoiceWaveform: FC = () => {
|
|
|
268
268
|
return (
|
|
269
269
|
<span
|
|
270
270
|
key={i}
|
|
271
|
-
className="aui-voice-waveform-bar h-full w-[3px] origin-center rounded-full
|
|
271
|
+
className="aui-voice-waveform-bar bg-foreground/50 h-full w-[3px] origin-center rounded-full transition-transform duration-100"
|
|
272
272
|
style={{ transform: `scaleY(${scale})` }}
|
|
273
273
|
/>
|
|
274
274
|
);
|
|
@@ -286,10 +286,10 @@ const ThreadMessage: FC = () => {
|
|
|
286
286
|
const AssistantMessage: FC = () => {
|
|
287
287
|
return (
|
|
288
288
|
<MessagePrimitive.Root
|
|
289
|
-
className="aui-assistant-message-root fade-in slide-in-from-bottom-1 relative mx-auto w-full max-w-(--thread-max-width)
|
|
289
|
+
className="aui-assistant-message-root fade-in slide-in-from-bottom-1 animate-in relative mx-auto w-full max-w-(--thread-max-width) py-3 duration-150"
|
|
290
290
|
data-role="assistant"
|
|
291
291
|
>
|
|
292
|
-
<div className="aui-assistant-message-content
|
|
292
|
+
<div className="aui-assistant-message-content text-foreground px-2 leading-relaxed wrap-break-word">
|
|
293
293
|
<MessagePrimitive.Parts>
|
|
294
294
|
{({ part }) => {
|
|
295
295
|
if (part.type === "text") return <MarkdownText />;
|
|
@@ -304,10 +304,10 @@ const AssistantMessage: FC = () => {
|
|
|
304
304
|
const UserMessage: FC = () => {
|
|
305
305
|
return (
|
|
306
306
|
<MessagePrimitive.Root
|
|
307
|
-
className="aui-user-message-root fade-in slide-in-from-bottom-1 mx-auto flex w-full max-w-(--thread-max-width)
|
|
307
|
+
className="aui-user-message-root fade-in slide-in-from-bottom-1 animate-in mx-auto flex w-full max-w-(--thread-max-width) justify-end px-2 py-3 duration-150"
|
|
308
308
|
data-role="user"
|
|
309
309
|
>
|
|
310
|
-
<div className="aui-user-message-content
|
|
310
|
+
<div className="aui-user-message-content bg-muted text-foreground rounded-2xl px-4 py-2.5 wrap-break-word">
|
|
311
311
|
<MessagePrimitive.Parts />
|
|
312
312
|
</div>
|
|
313
313
|
</MessagePrimitive.Root>
|
|
@@ -420,12 +420,13 @@ export class ElevenLabsVoiceAdapter implements RealtimeVoiceAdapter {
|
|
|
420
420
|
## next.config.js
|
|
421
421
|
|
|
422
422
|
```javascript
|
|
423
|
+
import { withAui } from "@assistant-ui/next";
|
|
423
424
|
/** @type {import('next').NextConfig} */
|
|
424
425
|
const nextConfig = {
|
|
425
426
|
transpilePackages: ["@assistant-ui/react", "@assistant-ui/react-ai-sdk"],
|
|
426
427
|
};
|
|
427
428
|
|
|
428
|
-
export default nextConfig;
|
|
429
|
+
export default withAui(nextConfig);
|
|
429
430
|
|
|
430
431
|
```
|
|
431
432
|
|
|
@@ -438,31 +439,32 @@ export default nextConfig;
|
|
|
438
439
|
"version": "0.0.0",
|
|
439
440
|
"type": "module",
|
|
440
441
|
"dependencies": {
|
|
441
|
-
"@ai-sdk/openai": "^3.0.
|
|
442
|
-
"@ai-sdk/react": "^3.0.
|
|
442
|
+
"@ai-sdk/openai": "^3.0.68",
|
|
443
|
+
"@ai-sdk/react": "^3.0.199",
|
|
443
444
|
"@assistant-ui/react": "workspace:^",
|
|
444
445
|
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
445
446
|
"@assistant-ui/react-markdown": "workspace:^",
|
|
446
447
|
"@assistant-ui/ui": "workspace:*",
|
|
447
|
-
"@elevenlabs/client": "^1.
|
|
448
|
+
"@elevenlabs/client": "^1.9.0",
|
|
448
449
|
"@tailwindcss/postcss": "^4.3.0",
|
|
449
|
-
"ai": "^6.0.
|
|
450
|
+
"ai": "^6.0.197",
|
|
450
451
|
"class-variance-authority": "^0.7.1",
|
|
451
452
|
"clsx": "^2.1.1",
|
|
452
|
-
"lucide-react": "^1.
|
|
453
|
-
"motion": "^12.
|
|
454
|
-
"next": "^16.2.
|
|
453
|
+
"lucide-react": "^1.17.0",
|
|
454
|
+
"motion": "^12.40.0",
|
|
455
|
+
"next": "^16.2.7",
|
|
455
456
|
"postcss": "^8.5.15",
|
|
456
|
-
"react": "^19.2.
|
|
457
|
-
"react-dom": "^19.2.
|
|
457
|
+
"react": "^19.2.7",
|
|
458
|
+
"react-dom": "^19.2.7",
|
|
458
459
|
"tailwind-merge": "^3.6.0",
|
|
459
460
|
"tailwindcss": "^4.3.0",
|
|
460
461
|
"zod": "^4.4.3"
|
|
461
462
|
},
|
|
462
463
|
"devDependencies": {
|
|
464
|
+
"@assistant-ui/next": "workspace:*",
|
|
463
465
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
464
|
-
"@types/node": "^25.9.
|
|
465
|
-
"@types/react": "^19.2.
|
|
466
|
+
"@types/node": "^25.9.2",
|
|
467
|
+
"@types/react": "^19.2.17",
|
|
466
468
|
"@types/react-dom": "^19.2.3",
|
|
467
469
|
"tw-animate-css": "^1.4.0",
|
|
468
470
|
"typescript": "^6.0.3"
|
|
@@ -199,7 +199,6 @@ export async function POST() {
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
-
|
|
203
202
|
```
|
|
204
203
|
|
|
205
204
|
## app/layout.tsx
|
|
@@ -544,12 +543,13 @@ export class ElevenLabsScribeAdapter implements DictationAdapter {
|
|
|
544
543
|
## next.config.js
|
|
545
544
|
|
|
546
545
|
```javascript
|
|
546
|
+
import { withAui } from "@assistant-ui/next";
|
|
547
547
|
/** @type {import('next').NextConfig} */
|
|
548
548
|
const nextConfig = {
|
|
549
549
|
transpilePackages: ["@assistant-ui/react", "@assistant-ui/react-ai-sdk"],
|
|
550
550
|
};
|
|
551
551
|
|
|
552
|
-
export default nextConfig;
|
|
552
|
+
export default withAui(nextConfig);
|
|
553
553
|
|
|
554
554
|
```
|
|
555
555
|
|
|
@@ -562,31 +562,32 @@ export default nextConfig;
|
|
|
562
562
|
"version": "0.0.0",
|
|
563
563
|
"type": "module",
|
|
564
564
|
"dependencies": {
|
|
565
|
-
"@ai-sdk/openai": "^3.0.
|
|
566
|
-
"@ai-sdk/react": "^3.0.
|
|
565
|
+
"@ai-sdk/openai": "^3.0.68",
|
|
566
|
+
"@ai-sdk/react": "^3.0.199",
|
|
567
567
|
"@assistant-ui/react": "workspace:^",
|
|
568
568
|
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
569
569
|
"@assistant-ui/react-markdown": "workspace:^",
|
|
570
570
|
"@assistant-ui/ui": "workspace:*",
|
|
571
|
-
"@elevenlabs/client": "^1.
|
|
571
|
+
"@elevenlabs/client": "^1.9.0",
|
|
572
572
|
"@tailwindcss/postcss": "^4.3.0",
|
|
573
|
-
"ai": "^6.0.
|
|
573
|
+
"ai": "^6.0.197",
|
|
574
574
|
"class-variance-authority": "^0.7.1",
|
|
575
575
|
"clsx": "^2.1.1",
|
|
576
|
-
"lucide-react": "^1.
|
|
577
|
-
"motion": "^12.
|
|
578
|
-
"next": "^16.2.
|
|
576
|
+
"lucide-react": "^1.17.0",
|
|
577
|
+
"motion": "^12.40.0",
|
|
578
|
+
"next": "^16.2.7",
|
|
579
579
|
"postcss": "^8.5.15",
|
|
580
|
-
"react": "^19.2.
|
|
581
|
-
"react-dom": "^19.2.
|
|
580
|
+
"react": "^19.2.7",
|
|
581
|
+
"react-dom": "^19.2.7",
|
|
582
582
|
"tailwind-merge": "^3.6.0",
|
|
583
583
|
"tailwindcss": "^4.3.0",
|
|
584
584
|
"zod": "^4.4.3"
|
|
585
585
|
},
|
|
586
586
|
"devDependencies": {
|
|
587
|
+
"@assistant-ui/next": "workspace:*",
|
|
587
588
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
588
|
-
"@types/node": "^25.9.
|
|
589
|
-
"@types/react": "^19.2.
|
|
589
|
+
"@types/node": "^25.9.2",
|
|
590
|
+
"@types/react": "^19.2.17",
|
|
590
591
|
"@types/react-dom": "^19.2.3",
|
|
591
592
|
"tw-animate-css": "^1.4.0",
|
|
592
593
|
"typescript": "^6.0.3"
|