@assistant-ui/mcp-docs-server 0.1.34 → 0.1.36

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.
Files changed (127) hide show
  1. package/.docs/organized/code-examples/waterfall.md +4 -4
  2. package/.docs/organized/code-examples/with-a2a.md +5 -5
  3. package/.docs/organized/code-examples/with-ag-ui.md +6 -6
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +7 -7
  5. package/.docs/organized/code-examples/with-artifacts.md +7 -7
  6. package/.docs/organized/code-examples/with-assistant-transport.md +73 -57
  7. package/.docs/organized/code-examples/with-browser-extension.md +7 -7
  8. package/.docs/organized/code-examples/with-chain-of-thought.md +44 -93
  9. package/.docs/organized/code-examples/with-cloud-standalone.md +7 -7
  10. package/.docs/organized/code-examples/with-cloud.md +7 -7
  11. package/.docs/organized/code-examples/with-custom-thread-list.md +7 -7
  12. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +9 -9
  13. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +9 -9
  14. package/.docs/organized/code-examples/with-eve.md +343 -0
  15. package/.docs/organized/code-examples/with-expo.md +943 -940
  16. package/.docs/organized/code-examples/with-external-store.md +5 -5
  17. package/.docs/organized/code-examples/with-ffmpeg.md +8 -11
  18. package/.docs/organized/code-examples/with-generative-ui.md +33 -309
  19. package/.docs/organized/code-examples/with-google-adk.md +5 -5
  20. package/.docs/organized/code-examples/with-heat-graph.md +4 -4
  21. package/.docs/organized/code-examples/with-image-generation.md +7 -7
  22. package/.docs/organized/code-examples/with-interactables.md +169 -341
  23. package/.docs/organized/code-examples/with-langchain.md +7 -7
  24. package/.docs/organized/code-examples/with-langgraph.md +23 -160
  25. package/.docs/organized/code-examples/with-livekit.md +10 -10
  26. package/.docs/organized/code-examples/with-mcp.md +7 -7
  27. package/.docs/organized/code-examples/with-opencode.md +106 -580
  28. package/.docs/organized/code-examples/with-pi.md +2046 -0
  29. package/.docs/organized/code-examples/with-react-hook-form.md +16 -9
  30. package/.docs/organized/code-examples/with-react-ink-web.md +691 -0
  31. package/.docs/organized/code-examples/with-react-ink.md +29 -17
  32. package/.docs/organized/code-examples/with-react-router.md +12 -12
  33. package/.docs/organized/code-examples/with-resumable-stream.md +8 -8
  34. package/.docs/organized/code-examples/with-store.md +14 -10
  35. package/.docs/organized/code-examples/with-tanstack.md +21 -7
  36. package/.docs/organized/code-examples/with-tap-runtime.md +5 -5
  37. package/.docs/organized/code-examples/with-virtualized-thread.md +676 -0
  38. package/.docs/raw/docs/(docs)/architecture.mdx +13 -12
  39. package/.docs/raw/docs/(docs)/cli.mdx +4 -2
  40. package/.docs/raw/docs/(docs)/devtools.mdx +25 -2
  41. package/.docs/raw/docs/(docs)/index.mdx +5 -2
  42. package/.docs/raw/docs/(docs)/installation.mdx +5 -2
  43. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +16 -16
  44. package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +73 -42
  45. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +3 -20
  46. package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +234 -123
  47. package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +51 -0
  48. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +4 -1
  49. package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +70 -38
  50. package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +1 -1
  51. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +30 -0
  52. package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +7 -0
  53. package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +26 -0
  54. package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +15 -0
  55. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +103 -0
  56. package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +16 -0
  57. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +56 -0
  58. package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +12 -0
  59. package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +12 -0
  60. package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +14 -0
  61. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +57 -1
  62. package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +6 -0
  63. package/.docs/raw/docs/(reference)/api-reference/tools/interactables-legacy.mdx +55 -0
  64. package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +151 -0
  65. package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +17 -38
  66. package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +22 -0
  67. package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +20 -27
  68. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +40 -25
  69. package/.docs/raw/docs/guides/chain-of-thought.mdx +1 -1
  70. package/.docs/raw/docs/guides/headless-composer-input.mdx +113 -0
  71. package/.docs/raw/docs/guides/index.mdx +3 -0
  72. package/.docs/raw/docs/guides/input-history.mdx +55 -0
  73. package/.docs/raw/docs/guides/latex.mdx +28 -22
  74. package/.docs/raw/docs/guides/mentions.mdx +32 -7
  75. package/.docs/raw/docs/guides/slash-commands.mdx +3 -6
  76. package/.docs/raw/docs/guides/speech.mdx +5 -7
  77. package/.docs/raw/docs/guides/virtualization.mdx +133 -0
  78. package/.docs/raw/docs/guides/voice.mdx +3 -2
  79. package/.docs/raw/docs/ink/hooks.mdx +2 -2
  80. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +4 -12
  81. package/.docs/raw/docs/integrations/auth/better-auth.mdx +7 -10
  82. package/.docs/raw/docs/integrations/auth/clerk.mdx +3 -9
  83. package/.docs/raw/docs/integrations/auth/next-auth.mdx +3 -8
  84. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +8 -5
  85. package/.docs/raw/docs/integrations/index.mdx +5 -12
  86. package/.docs/raw/docs/integrations/observability/helicone.mdx +3 -4
  87. package/.docs/raw/docs/integrations/observability/langfuse.mdx +3 -5
  88. package/.docs/raw/docs/integrations/observability/langsmith.mdx +3 -2
  89. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +4 -3
  90. package/.docs/raw/docs/primitives/composer.mdx +8 -0
  91. package/.docs/raw/docs/primitives/thread.mdx +24 -0
  92. package/.docs/raw/docs/react-native/hooks.mdx +1 -1
  93. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +22 -3
  94. package/.docs/raw/docs/runtimes/concepts/stability.mdx +1 -1
  95. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +1 -1
  96. package/.docs/raw/docs/runtimes/custom/external-store.mdx +54 -0
  97. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +108 -4
  98. package/.docs/raw/docs/runtimes/eve/overview.mdx +100 -0
  99. package/.docs/raw/docs/runtimes/eve/quickstart.mdx +143 -0
  100. package/.docs/raw/docs/runtimes/langchain.mdx +386 -18
  101. package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +1 -1
  102. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +1 -1
  103. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +12 -6
  104. package/.docs/raw/docs/tools/defining-tools.mdx +4 -0
  105. package/.docs/raw/docs/tools/interactables-legacy.mdx +410 -0
  106. package/.docs/raw/docs/tools/interactables.mdx +892 -223
  107. package/.docs/raw/docs/tools/mcp.mdx +4 -4
  108. package/.docs/raw/docs/tools/multi-agent.mdx +5 -0
  109. package/.docs/raw/docs/tools/tool-ui.mdx +37 -1
  110. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +2 -0
  111. package/.docs/raw/docs/ui/dot-matrix.mdx +133 -0
  112. package/.docs/raw/docs/ui/file.mdx +1 -1
  113. package/.docs/raw/docs/ui/model-selector.mdx +219 -52
  114. package/.docs/raw/docs/ui/number-roll.mdx +154 -0
  115. package/.docs/raw/docs/ui/part-grouping.mdx +38 -0
  116. package/.docs/raw/docs/ui/reasoning.mdx +3 -3
  117. package/.docs/raw/docs/ui/streamdown.mdx +2 -0
  118. package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -1
  119. package/.docs/raw/docs/ui/thread.mdx +52 -0
  120. package/.docs/raw/docs/ui/tool-fallback.mdx +2 -2
  121. package/.docs/raw/docs/utilities/react-o11y.mdx +92 -6
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +18 -2
  124. package/dist/index.js.map +1 -1
  125. package/package.json +4 -4
  126. package/src/index.ts +14 -6
  127. package/src/tools/tests/mcp-protocol.test.ts +9 -0
@@ -460,17 +460,17 @@ export default withAui(nextConfig);
460
460
  "start": "next start"
461
461
  },
462
462
  "dependencies": {
463
- "@ai-sdk/openai": "^3.0.68",
463
+ "@ai-sdk/openai": "^3.0.73",
464
464
  "@assistant-ui/react": "workspace:*",
465
465
  "@assistant-ui/react-ai-sdk": "workspace:*",
466
466
  "@assistant-ui/react-markdown": "workspace:*",
467
467
  "@assistant-ui/ui": "workspace:*",
468
- "ai": "^6.0.197",
468
+ "ai": "^6.0.208",
469
469
  "assistant-stream": "workspace:*",
470
470
  "class-variance-authority": "^0.7.1",
471
471
  "clsx": "^2.1.1",
472
- "lucide-react": "^1.17.0",
473
- "next": "^16.2.7",
472
+ "lucide-react": "^1.21.0",
473
+ "next": "^16.2.9",
474
474
  "react": "^19.2.7",
475
475
  "react-dom": "^19.2.7",
476
476
  "tailwind-merge": "^3.6.0",
@@ -479,12 +479,12 @@ export default withAui(nextConfig);
479
479
  "devDependencies": {
480
480
  "@assistant-ui/next": "workspace:*",
481
481
  "@assistant-ui/x-buildutils": "workspace:*",
482
- "@tailwindcss/postcss": "^4.3.0",
483
- "@types/node": "^25.9.2",
482
+ "@tailwindcss/postcss": "^4.3.1",
483
+ "@types/node": "^26.0.0",
484
484
  "@types/react": "^19.2.17",
485
485
  "@types/react-dom": "^19.2.3",
486
486
  "postcss": "^8.5.15",
487
- "tailwindcss": "^4.3.0",
487
+ "tailwindcss": "^4.3.1",
488
488
  "tw-animate-css": "^1.4.0",
489
489
  "typescript": "^6.0.3"
490
490
  }
@@ -439,31 +439,31 @@ export default withAui(nextConfig);
439
439
  "version": "0.0.0",
440
440
  "type": "module",
441
441
  "dependencies": {
442
- "@ai-sdk/openai": "^3.0.68",
443
- "@ai-sdk/react": "^3.0.199",
442
+ "@ai-sdk/openai": "^3.0.73",
443
+ "@ai-sdk/react": "^3.0.210",
444
444
  "@assistant-ui/react": "workspace:^",
445
445
  "@assistant-ui/react-ai-sdk": "workspace:*",
446
446
  "@assistant-ui/react-markdown": "workspace:^",
447
447
  "@assistant-ui/ui": "workspace:*",
448
- "@elevenlabs/client": "^1.9.0",
449
- "@tailwindcss/postcss": "^4.3.0",
450
- "ai": "^6.0.197",
448
+ "@elevenlabs/client": "^1.12.0",
449
+ "@tailwindcss/postcss": "^4.3.1",
450
+ "ai": "^6.0.208",
451
451
  "class-variance-authority": "^0.7.1",
452
452
  "clsx": "^2.1.1",
453
- "lucide-react": "^1.17.0",
453
+ "lucide-react": "^1.21.0",
454
454
  "motion": "^12.40.0",
455
- "next": "^16.2.7",
455
+ "next": "^16.2.9",
456
456
  "postcss": "^8.5.15",
457
457
  "react": "^19.2.7",
458
458
  "react-dom": "^19.2.7",
459
459
  "tailwind-merge": "^3.6.0",
460
- "tailwindcss": "^4.3.0",
460
+ "tailwindcss": "^4.3.1",
461
461
  "zod": "^4.4.3"
462
462
  },
463
463
  "devDependencies": {
464
464
  "@assistant-ui/next": "workspace:*",
465
465
  "@assistant-ui/x-buildutils": "workspace:*",
466
- "@types/node": "^25.9.2",
466
+ "@types/node": "^26.0.0",
467
467
  "@types/react": "^19.2.17",
468
468
  "@types/react-dom": "^19.2.3",
469
469
  "tw-animate-css": "^1.4.0",
@@ -562,31 +562,31 @@ export default withAui(nextConfig);
562
562
  "version": "0.0.0",
563
563
  "type": "module",
564
564
  "dependencies": {
565
- "@ai-sdk/openai": "^3.0.68",
566
- "@ai-sdk/react": "^3.0.199",
565
+ "@ai-sdk/openai": "^3.0.73",
566
+ "@ai-sdk/react": "^3.0.210",
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.9.0",
572
- "@tailwindcss/postcss": "^4.3.0",
573
- "ai": "^6.0.197",
571
+ "@elevenlabs/client": "^1.12.0",
572
+ "@tailwindcss/postcss": "^4.3.1",
573
+ "ai": "^6.0.208",
574
574
  "class-variance-authority": "^0.7.1",
575
575
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.17.0",
576
+ "lucide-react": "^1.21.0",
577
577
  "motion": "^12.40.0",
578
- "next": "^16.2.7",
578
+ "next": "^16.2.9",
579
579
  "postcss": "^8.5.15",
580
580
  "react": "^19.2.7",
581
581
  "react-dom": "^19.2.7",
582
582
  "tailwind-merge": "^3.6.0",
583
- "tailwindcss": "^4.3.0",
583
+ "tailwindcss": "^4.3.1",
584
584
  "zod": "^4.4.3"
585
585
  },
586
586
  "devDependencies": {
587
587
  "@assistant-ui/next": "workspace:*",
588
588
  "@assistant-ui/x-buildutils": "workspace:*",
589
- "@types/node": "^25.9.2",
589
+ "@types/node": "^26.0.0",
590
590
  "@types/react": "^19.2.17",
591
591
  "@types/react-dom": "^19.2.3",
592
592
  "tw-animate-css": "^1.4.0",
@@ -0,0 +1,343 @@
1
+ # Example: with-eve
2
+
3
+ ## agent/agent.ts
4
+
5
+ ```typescript
6
+ import { defineAgent } from "eve";
7
+
8
+ export default defineAgent({
9
+ model: "anthropic/claude-sonnet-4.6",
10
+ });
11
+
12
+ ```
13
+
14
+ ## agent/instructions.md
15
+
16
+ ```markdown
17
+ You are a concise product engineer helping someone explore an Eve-powered assistant-ui app.
18
+
19
+ Prefer concrete answers. When asked about this project, explain that the Next.js app uses `withEve()` from `eve/next` to mount the Eve HTTP channel on the same origin, and the React page uses `useEveAgentRuntime()` from `@assistant-ui/eve` to adapt Eve's `useEveAgent()` state into an assistant-ui runtime.
20
+
21
+ ```
22
+
23
+ ## app/globals.css
24
+
25
+ ```css
26
+ @import "tailwindcss";
27
+ @import "tw-animate-css";
28
+
29
+ @source "../../../packages/ui/src";
30
+
31
+ @custom-variant dark (&:is(.dark *));
32
+
33
+ @theme inline {
34
+ --radius-sm: calc(var(--radius) - 4px);
35
+ --radius-md: calc(var(--radius) - 2px);
36
+ --radius-lg: var(--radius);
37
+ --radius-xl: calc(var(--radius) + 4px);
38
+ --color-background: var(--background);
39
+ --color-foreground: var(--foreground);
40
+ --color-card: var(--card);
41
+ --color-card-foreground: var(--card-foreground);
42
+ --color-popover: var(--popover);
43
+ --color-popover-foreground: var(--popover-foreground);
44
+ --color-primary: var(--primary);
45
+ --color-primary-foreground: var(--primary-foreground);
46
+ --color-secondary: var(--secondary);
47
+ --color-secondary-foreground: var(--secondary-foreground);
48
+ --color-muted: var(--muted);
49
+ --color-muted-foreground: var(--muted-foreground);
50
+ --color-accent: var(--accent);
51
+ --color-accent-foreground: var(--accent-foreground);
52
+ --color-destructive: var(--destructive);
53
+ --color-border: var(--border);
54
+ --color-input: var(--input);
55
+ --color-ring: var(--ring);
56
+ --color-chart-1: var(--chart-1);
57
+ --color-chart-2: var(--chart-2);
58
+ --color-chart-3: var(--chart-3);
59
+ --color-chart-4: var(--chart-4);
60
+ --color-chart-5: var(--chart-5);
61
+ --color-sidebar: var(--sidebar);
62
+ --color-sidebar-foreground: var(--sidebar-foreground);
63
+ --color-sidebar-primary: var(--sidebar-primary);
64
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
65
+ --color-sidebar-accent: var(--sidebar-accent);
66
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
67
+ --color-sidebar-border: var(--sidebar-border);
68
+ --color-sidebar-ring: var(--sidebar-ring);
69
+ }
70
+
71
+ :root {
72
+ --radius: 0.625rem;
73
+ --background: oklch(1 0 0);
74
+ --foreground: oklch(0.141 0.005 285.823);
75
+ --card: oklch(1 0 0);
76
+ --card-foreground: oklch(0.141 0.005 285.823);
77
+ --popover: oklch(1 0 0);
78
+ --popover-foreground: oklch(0.141 0.005 285.823);
79
+ --primary: oklch(0.21 0.006 285.885);
80
+ --primary-foreground: oklch(0.985 0 0);
81
+ --secondary: oklch(0.967 0.001 286.375);
82
+ --secondary-foreground: oklch(0.21 0.006 285.885);
83
+ --muted: oklch(0.967 0.001 286.375);
84
+ --muted-foreground: oklch(0.552 0.016 285.938);
85
+ --accent: oklch(0.967 0.001 286.375);
86
+ --accent-foreground: oklch(0.21 0.006 285.885);
87
+ --destructive: oklch(0.577 0.245 27.325);
88
+ --border: oklch(0.92 0.004 286.32);
89
+ --input: oklch(0.92 0.004 286.32);
90
+ --ring: oklch(0.705 0.015 286.067);
91
+ --chart-1: oklch(0.646 0.222 41.116);
92
+ --chart-2: oklch(0.6 0.118 184.704);
93
+ --chart-3: oklch(0.398 0.07 227.392);
94
+ --chart-4: oklch(0.828 0.189 84.429);
95
+ --chart-5: oklch(0.769 0.188 70.08);
96
+ --sidebar: oklch(0.985 0 0);
97
+ --sidebar-foreground: oklch(0.141 0.005 285.823);
98
+ --sidebar-primary: oklch(0.21 0.006 285.885);
99
+ --sidebar-primary-foreground: oklch(0.985 0 0);
100
+ --sidebar-accent: oklch(0.967 0.001 286.375);
101
+ --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
102
+ --sidebar-border: oklch(0.92 0.004 286.32);
103
+ --sidebar-ring: oklch(0.705 0.015 286.067);
104
+ }
105
+
106
+ .dark {
107
+ --background: oklch(0.141 0.005 285.823);
108
+ --foreground: oklch(0.985 0 0);
109
+ --card: oklch(0.21 0.006 285.885);
110
+ --card-foreground: oklch(0.985 0 0);
111
+ --popover: oklch(0.21 0.006 285.885);
112
+ --popover-foreground: oklch(0.985 0 0);
113
+ --primary: oklch(0.92 0.004 286.32);
114
+ --primary-foreground: oklch(0.21 0.006 285.885);
115
+ --secondary: oklch(0.274 0.006 286.033);
116
+ --secondary-foreground: oklch(0.985 0 0);
117
+ --muted: oklch(0.274 0.006 286.033);
118
+ --muted-foreground: oklch(0.705 0.015 286.067);
119
+ --accent: oklch(0.274 0.006 286.033);
120
+ --accent-foreground: oklch(0.985 0 0);
121
+ --destructive: oklch(0.704 0.191 22.216);
122
+ --border: oklch(1 0 0 / 10%);
123
+ --input: oklch(1 0 0 / 15%);
124
+ --ring: oklch(0.552 0.016 285.938);
125
+ --chart-1: oklch(0.488 0.243 264.376);
126
+ --chart-2: oklch(0.696 0.17 162.48);
127
+ --chart-3: oklch(0.769 0.188 70.08);
128
+ --chart-4: oklch(0.627 0.265 303.9);
129
+ --chart-5: oklch(0.645 0.246 16.439);
130
+ --sidebar: oklch(0.21 0.006 285.885);
131
+ --sidebar-foreground: oklch(0.985 0 0);
132
+ --sidebar-primary: oklch(0.488 0.243 264.376);
133
+ --sidebar-primary-foreground: oklch(0.985 0 0);
134
+ --sidebar-accent: oklch(0.274 0.006 286.033);
135
+ --sidebar-accent-foreground: oklch(0.985 0 0);
136
+ --sidebar-border: oklch(1 0 0 / 10%);
137
+ --sidebar-ring: oklch(0.552 0.016 285.938);
138
+ }
139
+
140
+ @layer base {
141
+ * {
142
+ @apply border-border outline-ring/50;
143
+ }
144
+ body {
145
+ @apply bg-background text-foreground;
146
+ }
147
+ }
148
+
149
+ ```
150
+
151
+ ## app/layout.tsx
152
+
153
+ ```tsx
154
+ import type { Metadata } from "next";
155
+ import "./globals.css";
156
+
157
+ export const metadata: Metadata = {
158
+ title: "Eve Example",
159
+ description: "Example using @assistant-ui/eve with the eve/next plugin",
160
+ };
161
+
162
+ export default function RootLayout({
163
+ children,
164
+ }: Readonly<{
165
+ children: React.ReactNode;
166
+ }>) {
167
+ return (
168
+ <html lang="en">
169
+ <body className="h-dvh">{children}</body>
170
+ </html>
171
+ );
172
+ }
173
+
174
+ ```
175
+
176
+ ## app/page.tsx
177
+
178
+ ```tsx
179
+ "use client";
180
+
181
+ import { Thread } from "@/components/assistant-ui/thread";
182
+ import {
183
+ AssistantRuntimeProvider,
184
+ Suggestions,
185
+ useAui,
186
+ } from "@assistant-ui/react";
187
+ import { useEveAgentRuntime } from "@assistant-ui/eve";
188
+
189
+ export default function Home() {
190
+ const runtime = useEveAgentRuntime();
191
+ const aui = useAui({
192
+ suggestions: Suggestions([
193
+ {
194
+ title: "Explain Eve",
195
+ label: "and the Next.js plugin",
196
+ prompt:
197
+ "Explain how an Eve agent is mounted into this Next.js app in two short paragraphs.",
198
+ },
199
+ {
200
+ title: "Draft an agent",
201
+ label: "for product support",
202
+ prompt:
203
+ "Draft a concise set of instructions for an Eve agent that helps with product support.",
204
+ },
205
+ ]),
206
+ });
207
+
208
+ return (
209
+ <AssistantRuntimeProvider runtime={runtime} aui={aui}>
210
+ <div className="h-full">
211
+ <Thread />
212
+ </div>
213
+ </AssistantRuntimeProvider>
214
+ );
215
+ }
216
+
217
+ ```
218
+
219
+ ## components.json
220
+
221
+ ```json
222
+ {
223
+ "$schema": "https://ui.shadcn.com/schema.json",
224
+ "style": "new-york",
225
+ "rsc": true,
226
+ "tsx": true,
227
+ "tailwind": {
228
+ "config": "",
229
+ "css": "app/globals.css",
230
+ "baseColor": "zinc",
231
+ "cssVariables": true,
232
+ "prefix": ""
233
+ },
234
+ "aliases": {
235
+ "components": "@/components",
236
+ "utils": "@/lib/utils",
237
+ "ui": "@/components/ui",
238
+ "lib": "@/lib",
239
+ "hooks": "@/hooks"
240
+ },
241
+ "iconLibrary": "lucide",
242
+ "registries": {
243
+ "@assistant-ui": "https://r.assistant-ui.com/{name}.json"
244
+ }
245
+ }
246
+
247
+ ```
248
+
249
+ ## next.config.ts
250
+
251
+ ```typescript
252
+ import { withAui } from "@assistant-ui/next";
253
+ import type { NextConfig } from "next";
254
+ import { withEve } from "eve/next";
255
+
256
+ const nextConfig: NextConfig = {
257
+ transpilePackages: ["@assistant-ui/eve", "@assistant-ui/react"],
258
+ };
259
+
260
+ export default withEve(withAui(nextConfig));
261
+
262
+ ```
263
+
264
+ ## package.json
265
+
266
+ ```json
267
+ {
268
+ "name": "with-eve",
269
+ "version": "0.0.0",
270
+ "private": true,
271
+ "type": "module",
272
+ "scripts": {
273
+ "dev": "next dev",
274
+ "build": "next build",
275
+ "start": "next start"
276
+ },
277
+ "dependencies": {
278
+ "@assistant-ui/eve": "workspace:*",
279
+ "@assistant-ui/react": "workspace:*",
280
+ "@assistant-ui/react-markdown": "workspace:*",
281
+ "@assistant-ui/ui": "workspace:*",
282
+ "class-variance-authority": "^0.7.1",
283
+ "clsx": "^2.1.1",
284
+ "eve": "^0.12.0",
285
+ "lucide-react": "^1.21.0",
286
+ "next": "^16.2.9",
287
+ "react": "^19.2.7",
288
+ "react-dom": "^19.2.7",
289
+ "tailwind-merge": "^3.6.0"
290
+ },
291
+ "devDependencies": {
292
+ "@assistant-ui/next": "workspace:*",
293
+ "@assistant-ui/x-buildutils": "workspace:*",
294
+ "@tailwindcss/postcss": "^4.3.1",
295
+ "@types/node": "^26.0.0",
296
+ "@types/react": "^19.2.17",
297
+ "@types/react-dom": "^19.2.3",
298
+ "postcss": "^8.5.15",
299
+ "tailwindcss": "^4.3.1",
300
+ "tw-animate-css": "^1.4.0",
301
+ "typescript": "^6.0.3"
302
+ }
303
+ }
304
+
305
+ ```
306
+
307
+ ## README.md
308
+
309
+ ```markdown
310
+ # assistant-ui + Eve
311
+
312
+ This example mounts an Eve agent into a Next.js app with `withEve()` from `eve/next`, then adapts Eve's React hook into assistant-ui with `useEveAgentRuntime()`.
313
+
314
+ ```bash
315
+ pnpm --filter with-eve dev
316
+ ```
317
+
318
+ The Eve channel is served on the same origin as the Next app, so the browser UI does not need a separate agent URL.
319
+
320
+ ```
321
+
322
+ ## tsconfig.json
323
+
324
+ ```json
325
+ {
326
+ "extends": "@assistant-ui/x-buildutils/ts/next",
327
+ "compilerOptions": {
328
+ "paths": {
329
+ "@/*": ["./*"],
330
+ "@/components/assistant-ui/*": [
331
+ "../../packages/ui/src/components/assistant-ui/*"
332
+ ],
333
+ "@/components/ui/*": ["../../packages/ui/src/components/ui/*"],
334
+ "@/lib/utils": ["../../packages/ui/src/lib/utils"],
335
+ "@assistant-ui/ui/*": ["../../packages/ui/src/*"]
336
+ }
337
+ },
338
+ "include": ["**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
339
+ "exclude": ["node_modules"]
340
+ }
341
+
342
+ ```
343
+