@assistant-ui/mcp-docs-server 0.2.0 → 0.2.1

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 (126) hide show
  1. package/.docs/organized/code-examples/waterfall.md +12 -13
  2. package/.docs/organized/code-examples/with-a2a.md +16 -11
  3. package/.docs/organized/code-examples/with-ag-ui.md +14 -12
  4. package/.docs/organized/code-examples/with-ai-sdk-v7.md +13 -12
  5. package/.docs/organized/code-examples/with-artifacts.md +13 -12
  6. package/.docs/organized/code-examples/with-assistant-transport.md +19 -27
  7. package/.docs/organized/code-examples/with-browser-extension.md +17 -10
  8. package/.docs/organized/code-examples/with-chain-of-thought.md +16 -14
  9. package/.docs/organized/code-examples/with-cloud-standalone.md +9 -10
  10. package/.docs/organized/code-examples/with-cloud.md +18 -13
  11. package/.docs/organized/code-examples/with-custom-thread-list.md +13 -12
  12. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +13 -13
  13. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +17 -15
  14. package/.docs/organized/code-examples/with-eve.md +65 -11
  15. package/.docs/organized/code-examples/with-expo.md +20 -19
  16. package/.docs/organized/code-examples/with-external-store.md +16 -11
  17. package/.docs/organized/code-examples/with-ffmpeg.md +20 -14
  18. package/.docs/organized/code-examples/with-generative-ui.md +16 -17
  19. package/.docs/organized/code-examples/with-google-adk.md +17 -12
  20. package/.docs/organized/code-examples/with-heat-graph.md +6 -7
  21. package/.docs/organized/code-examples/with-image-generation.md +9 -10
  22. package/.docs/organized/code-examples/with-interactables.md +13 -12
  23. package/.docs/organized/code-examples/with-langchain.md +7 -8
  24. package/.docs/organized/code-examples/with-langgraph.md +17 -11
  25. package/.docs/organized/code-examples/with-livekit.md +12 -12
  26. package/.docs/organized/code-examples/with-mcp.md +13 -14
  27. package/.docs/organized/code-examples/with-nuxt.md +2492 -0
  28. package/.docs/organized/code-examples/with-opencode.md +23 -14
  29. package/.docs/organized/code-examples/with-pi.md +59 -57
  30. package/.docs/organized/code-examples/with-react-hook-form.md +14 -13
  31. package/.docs/organized/code-examples/with-react-ink-web.md +7 -8
  32. package/.docs/organized/code-examples/with-react-ink.md +5 -5
  33. package/.docs/organized/code-examples/with-react-router.md +15 -9
  34. package/.docs/organized/code-examples/with-resumable-stream.md +11 -12
  35. package/.docs/organized/code-examples/with-store.md +27 -16
  36. package/.docs/organized/code-examples/with-tanstack.md +18 -12
  37. package/.docs/organized/code-examples/with-tap-runtime.md +15 -15
  38. package/.docs/organized/code-examples/with-virtualized-thread.md +8 -9
  39. package/.docs/organized/code-examples/with-vue.md +408 -0
  40. package/.docs/raw/docs/(docs)/cli.mdx +1 -1
  41. package/.docs/raw/docs/(docs)/index.mdx +9 -76
  42. package/.docs/raw/docs/(docs)/installation.mdx +4 -18
  43. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +24 -4
  44. package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +8 -0
  45. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +24 -1
  46. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +1 -1
  47. package/.docs/raw/docs/cloud/ai-sdk.mdx +2 -2
  48. package/.docs/raw/docs/copilots/model-context.mdx +4 -3
  49. package/.docs/raw/docs/copilots/motivation.mdx +4 -4
  50. package/.docs/raw/docs/guides/chain-of-thought.mdx +1 -1
  51. package/.docs/raw/docs/guides/electron.mdx +1 -1
  52. package/.docs/raw/docs/guides/resumable-streams.mdx +74 -3
  53. package/.docs/raw/docs/guides/suggestions.mdx +9 -9
  54. package/.docs/raw/docs/ink/hooks.mdx +9 -4
  55. package/.docs/raw/docs/ink/primitives.mdx +4 -3
  56. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +16 -0
  57. package/.docs/raw/docs/integrations/auth/better-auth.mdx +1 -1
  58. package/.docs/raw/docs/integrations/auth/clerk.mdx +1 -1
  59. package/.docs/raw/docs/integrations/auth/next-auth.mdx +1 -1
  60. package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +1 -1
  61. package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +2 -2
  62. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
  63. package/.docs/raw/docs/integrations/gateways/index.mdx +2 -2
  64. package/.docs/raw/docs/integrations/observability/helicone.mdx +2 -2
  65. package/.docs/raw/docs/integrations/observability/langfuse.mdx +1 -1
  66. package/.docs/raw/docs/integrations/observability/langsmith.mdx +2 -2
  67. package/.docs/raw/docs/migrations/toolkit-tools.mdx +15 -13
  68. package/.docs/raw/docs/migrations/v0-15.mdx +84 -4
  69. package/.docs/raw/docs/primitives/attachment.mdx +2 -2
  70. package/.docs/raw/docs/primitives/composer.mdx +2 -2
  71. package/.docs/raw/docs/primitives/message.mdx +33 -1
  72. package/.docs/raw/docs/primitives/suggestion.mdx +1 -1
  73. package/.docs/raw/docs/react-native/hooks.mdx +14 -4
  74. package/.docs/raw/docs/react-native/index.mdx +1 -1
  75. package/.docs/raw/docs/react-native/primitives.mdx +2 -2
  76. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +1 -1
  77. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +1 -1
  78. package/.docs/raw/docs/runtimes/ai-sdk/v6-legacy.mdx +9 -10
  79. package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +9 -10
  80. package/.docs/raw/docs/runtimes/concepts/threads.mdx +40 -1
  81. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +18 -0
  82. package/.docs/raw/docs/runtimes/custom/external-store.mdx +30 -1
  83. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +36 -9
  84. package/.docs/raw/docs/runtimes/eve/overview.mdx +51 -0
  85. package/.docs/raw/docs/runtimes/eve/quickstart.mdx +51 -2
  86. package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +9 -12
  87. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +1 -1
  88. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +7 -7
  89. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-3.mdx +4 -4
  90. package/.docs/raw/docs/runtimes/opencode/hooks.mdx +1 -0
  91. package/.docs/raw/docs/runtimes/opencode/overview.mdx +10 -0
  92. package/.docs/raw/docs/tools/backend.mdx +2 -2
  93. package/.docs/raw/docs/tools/defining-tools.mdx +9 -7
  94. package/.docs/raw/docs/tools/dynamic-tools.mdx +6 -4
  95. package/.docs/raw/docs/tools/interactables-legacy.mdx +24 -11
  96. package/.docs/raw/docs/tools/interactables.mdx +24 -13
  97. package/.docs/raw/docs/tools/mcp-apps.mdx +35 -6
  98. package/.docs/raw/docs/tools/mcp.mdx +9 -7
  99. package/.docs/raw/docs/tools/tool-ui.mdx +26 -22
  100. package/.docs/raw/docs/tools/user-managed-mcp.mdx +12 -7
  101. package/.docs/raw/docs/ui/file.mdx +6 -1
  102. package/.docs/raw/docs/ui/mcp-config.mdx +8 -3
  103. package/.docs/raw/docs/ui/model-selector.mdx +8 -8
  104. package/.docs/raw/docs/ui/part-grouping.mdx +1 -1
  105. package/.docs/raw/docs/ui/thread.mdx +24 -5
  106. package/.docs/raw/docs/utilities/react-o11y.mdx +7 -9
  107. package/dist/constants.js +2 -2
  108. package/dist/constants.js.map +1 -1
  109. package/dist/index.js.map +1 -1
  110. package/dist/prepare-docs/prepare.js.map +1 -1
  111. package/dist/tools/docs.js +4 -2
  112. package/dist/tools/docs.js.map +1 -1
  113. package/dist/tools/examples.js +2 -1
  114. package/dist/tools/examples.js.map +1 -1
  115. package/dist/tools/resources.js +2 -1
  116. package/dist/tools/resources.js.map +1 -1
  117. package/dist/tools/tests/test-setup.js +2 -1
  118. package/dist/tools/tests/test-setup.js.map +1 -1
  119. package/dist/tools/xulux-templates.js +4 -2
  120. package/dist/tools/xulux-templates.js.map +1 -1
  121. package/dist/utils/mdx.js +2 -1
  122. package/dist/utils/mdx.js.map +1 -1
  123. package/dist/xulux/catalog-client.js +1 -1
  124. package/dist/xulux/catalog-client.js.map +1 -1
  125. package/package.json +4 -4
  126. package/src/tools/tests/docs.test.ts +2 -2
@@ -235,10 +235,16 @@ export function MyRuntimeProvider({
235
235
 
236
236
  import { Thread } from "@/components/assistant-ui/thread";
237
237
  import { ThreadList } from "@/components/assistant-ui/thread-list";
238
- import { useAui, AuiProvider, Suggestions } from "@assistant-ui/react";
238
+ import {
239
+ useAui,
240
+ AuiProvider,
241
+ AuiConfig,
242
+ Suggestions,
243
+ } from "@assistant-ui/react";
239
244
 
240
245
  function ThreadWithSuggestions() {
241
- const aui = useAui({
246
+ const aui = useAui();
247
+ const config = AuiConfig({
242
248
  suggestions: Suggestions([
243
249
  {
244
250
  title: "Start a conversation",
@@ -253,7 +259,7 @@ function ThreadWithSuggestions() {
253
259
  ]),
254
260
  });
255
261
  return (
256
- <AuiProvider value={aui}>
262
+ <AuiProvider extends={aui} config={config}>
257
263
  <Thread />
258
264
  </AuiProvider>
259
265
  );
@@ -326,16 +332,16 @@ export default withAui(nextConfig);
326
332
  "start": "next start"
327
333
  },
328
334
  "dependencies": {
329
- "@ai-sdk/openai": "^4.0.20",
335
+ "@ai-sdk/openai": "^4.0.34",
330
336
  "@assistant-ui/react": "workspace:*",
331
337
  "@assistant-ui/react-ai-sdk": "workspace:*",
332
338
  "@assistant-ui/react-markdown": "workspace:*",
333
339
  "@assistant-ui/ui": "workspace:*",
334
- "ai": "^7.0.37",
340
+ "ai": "^7.0.56",
335
341
  "class-variance-authority": "^0.7.1",
336
342
  "clsx": "^2.1.1",
337
- "lucide-react": "^1.26.0",
338
- "next": "^16.2.11",
343
+ "lucide-react": "^1.29.0",
344
+ "next": "^16.3.0",
339
345
  "react": "^19.2.8",
340
346
  "react-dom": "^19.2.8",
341
347
  "tailwind-merge": "^3.6.0"
@@ -344,14 +350,13 @@ export default withAui(nextConfig);
344
350
  "@assistant-ui/next": "workspace:*",
345
351
  "@assistant-ui/x-buildutils": "workspace:*",
346
352
  "@tailwindcss/postcss": "^4.3.3",
347
- "@types/node": "^26.1.1",
348
- "@types/react": "^19.2.17",
349
- "@types/react-dom": "^19.2.3",
350
- "postcss": "^8.5.23",
353
+ "@types/node": "^26.1.2",
354
+ "@types/react": "^19.2.18",
355
+ "@types/react-dom": "^19.2.4",
356
+ "postcss": "^8.5.26",
351
357
  "tailwindcss": "^4.3.3",
352
358
  "tw-animate-css": "^1.4.0",
353
- "typescript": "npm:@typescript/typescript6@^6.0.2",
354
- "typescript-7": "npm:typescript@^7.0.2"
359
+ "typescript": "^7.0.2"
355
360
  }
356
361
  }
357
362
 
@@ -342,6 +342,7 @@ export function MyRuntimeProvider({
342
342
 
343
343
  import { Thread } from "@/components/assistant-ui/thread";
344
344
  import {
345
+ AuiConfig,
345
346
  AuiProvider,
346
347
  Suggestions,
347
348
  ThreadListItemPrimitive,
@@ -372,7 +373,8 @@ function ThreadList() {
372
373
  }
373
374
 
374
375
  function ThreadWithSuggestions() {
375
- const aui = useAui({
376
+ const aui = useAui();
377
+ const config = AuiConfig({
376
378
  suggestions: Suggestions([
377
379
  {
378
380
  title: "Start a new topic",
@@ -387,7 +389,7 @@ function ThreadWithSuggestions() {
387
389
  ]),
388
390
  });
389
391
  return (
390
- <AuiProvider value={aui}>
392
+ <AuiProvider extends={aui} config={config}>
391
393
  <Thread />
392
394
  </AuiProvider>
393
395
  );
@@ -460,17 +462,17 @@ export default withAui(nextConfig);
460
462
  "start": "next start"
461
463
  },
462
464
  "dependencies": {
463
- "@ai-sdk/openai": "^4.0.20",
465
+ "@ai-sdk/openai": "^4.0.34",
464
466
  "@assistant-ui/react": "workspace:*",
465
467
  "@assistant-ui/react-ai-sdk": "workspace:*",
466
468
  "@assistant-ui/react-markdown": "workspace:*",
467
469
  "@assistant-ui/ui": "workspace:*",
468
- "ai": "^7.0.37",
470
+ "ai": "^7.0.56",
469
471
  "assistant-stream": "workspace:*",
470
472
  "class-variance-authority": "^0.7.1",
471
473
  "clsx": "^2.1.1",
472
- "lucide-react": "^1.26.0",
473
- "next": "^16.2.11",
474
+ "lucide-react": "^1.29.0",
475
+ "next": "^16.3.0",
474
476
  "react": "^19.2.8",
475
477
  "react-dom": "^19.2.8",
476
478
  "tailwind-merge": "^3.6.0",
@@ -480,14 +482,13 @@ export default withAui(nextConfig);
480
482
  "@assistant-ui/next": "workspace:*",
481
483
  "@assistant-ui/x-buildutils": "workspace:*",
482
484
  "@tailwindcss/postcss": "^4.3.3",
483
- "@types/node": "^26.1.1",
484
- "@types/react": "^19.2.17",
485
- "@types/react-dom": "^19.2.3",
486
- "postcss": "^8.5.23",
485
+ "@types/node": "^26.1.2",
486
+ "@types/react": "^19.2.18",
487
+ "@types/react-dom": "^19.2.4",
488
+ "postcss": "^8.5.26",
487
489
  "tailwindcss": "^4.3.3",
488
490
  "tw-animate-css": "^1.4.0",
489
- "typescript": "npm:@typescript/typescript6@^6.0.2",
490
- "typescript-7": "npm:typescript@^7.0.2"
491
+ "typescript": "^7.0.2"
491
492
  }
492
493
  }
493
494
 
@@ -439,21 +439,21 @@ export default withAui(nextConfig);
439
439
  "version": "0.0.0",
440
440
  "type": "module",
441
441
  "dependencies": {
442
- "@ai-sdk/openai": "^4.0.20",
443
- "@ai-sdk/react": "^4.0.40",
442
+ "@ai-sdk/openai": "^4.0.34",
443
+ "@ai-sdk/react": "^4.0.59",
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.15.2",
448
+ "@elevenlabs/client": "^1.17.0",
449
449
  "@tailwindcss/postcss": "^4.3.3",
450
- "ai": "^7.0.37",
450
+ "ai": "^7.0.56",
451
451
  "class-variance-authority": "^0.7.1",
452
452
  "clsx": "^2.1.1",
453
- "lucide-react": "^1.26.0",
454
- "motion": "^12.42.2",
455
- "next": "^16.2.11",
456
- "postcss": "^8.5.23",
453
+ "lucide-react": "^1.29.0",
454
+ "motion": "^13.0.0",
455
+ "next": "^16.3.0",
456
+ "postcss": "^8.5.26",
457
457
  "react": "^19.2.8",
458
458
  "react-dom": "^19.2.8",
459
459
  "tailwind-merge": "^3.6.0",
@@ -463,12 +463,11 @@ export default withAui(nextConfig);
463
463
  "devDependencies": {
464
464
  "@assistant-ui/next": "workspace:*",
465
465
  "@assistant-ui/x-buildutils": "workspace:*",
466
- "@types/node": "^26.1.1",
467
- "@types/react": "^19.2.17",
468
- "@types/react-dom": "^19.2.3",
466
+ "@types/node": "^26.1.2",
467
+ "@types/react": "^19.2.18",
468
+ "@types/react-dom": "^19.2.4",
469
469
  "tw-animate-css": "^1.4.0",
470
- "typescript": "npm:@typescript/typescript6@^6.0.2",
471
- "typescript-7": "npm:typescript@^7.0.2"
470
+ "typescript": "^7.0.2"
472
471
  },
473
472
  "scripts": {
474
473
  "dev": "next dev",
@@ -510,6 +509,7 @@ export default withAui(nextConfig);
510
509
  ],
511
510
  "@/lib/utils": ["../../packages/ui/src/lib/utils"],
512
511
  "@assistant-ui/ui/*": ["../../packages/ui/src/*"],
512
+ "@assistant-ui/store/client": ["../../packages/store/src/client"],
513
513
  "@assistant-ui/*": ["../../packages/*/src"],
514
514
  "@assistant-ui/core/*": ["../../packages/core/src/*"],
515
515
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
@@ -237,13 +237,15 @@ import {
237
237
  AssistantRuntimeProvider,
238
238
  useAui,
239
239
  AuiProvider,
240
+ AuiConfig,
240
241
  Suggestions,
241
242
  } from "@assistant-ui/react";
242
243
  import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
243
244
  import { ElevenLabsScribeAdapter } from "@/lib/elevenlabs-scribe-adapter";
244
245
 
245
246
  function ThreadWithSuggestions() {
246
- const aui = useAui({
247
+ const aui = useAui();
248
+ const config = AuiConfig({
247
249
  suggestions: Suggestions([
248
250
  {
249
251
  title: "Try dictating a message",
@@ -258,7 +260,7 @@ function ThreadWithSuggestions() {
258
260
  ]),
259
261
  });
260
262
  return (
261
- <AuiProvider value={aui}>
263
+ <AuiProvider extends={aui} config={config}>
262
264
  <Thread />
263
265
  </AuiProvider>
264
266
  );
@@ -562,21 +564,21 @@ export default withAui(nextConfig);
562
564
  "version": "0.0.0",
563
565
  "type": "module",
564
566
  "dependencies": {
565
- "@ai-sdk/openai": "^4.0.20",
566
- "@ai-sdk/react": "^4.0.40",
567
+ "@ai-sdk/openai": "^4.0.34",
568
+ "@ai-sdk/react": "^4.0.59",
567
569
  "@assistant-ui/react": "workspace:^",
568
570
  "@assistant-ui/react-ai-sdk": "workspace:*",
569
571
  "@assistant-ui/react-markdown": "workspace:^",
570
572
  "@assistant-ui/ui": "workspace:*",
571
- "@elevenlabs/client": "^1.15.2",
573
+ "@elevenlabs/client": "^1.17.0",
572
574
  "@tailwindcss/postcss": "^4.3.3",
573
- "ai": "^7.0.37",
575
+ "ai": "^7.0.56",
574
576
  "class-variance-authority": "^0.7.1",
575
577
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.26.0",
577
- "motion": "^12.42.2",
578
- "next": "^16.2.11",
579
- "postcss": "^8.5.23",
578
+ "lucide-react": "^1.29.0",
579
+ "motion": "^13.0.0",
580
+ "next": "^16.3.0",
581
+ "postcss": "^8.5.26",
580
582
  "react": "^19.2.8",
581
583
  "react-dom": "^19.2.8",
582
584
  "tailwind-merge": "^3.6.0",
@@ -586,12 +588,11 @@ export default withAui(nextConfig);
586
588
  "devDependencies": {
587
589
  "@assistant-ui/next": "workspace:*",
588
590
  "@assistant-ui/x-buildutils": "workspace:*",
589
- "@types/node": "^26.1.1",
590
- "@types/react": "^19.2.17",
591
- "@types/react-dom": "^19.2.3",
591
+ "@types/node": "^26.1.2",
592
+ "@types/react": "^19.2.18",
593
+ "@types/react-dom": "^19.2.4",
592
594
  "tw-animate-css": "^1.4.0",
593
- "typescript": "npm:@typescript/typescript6@^6.0.2",
594
- "typescript-7": "npm:typescript@^7.0.2"
595
+ "typescript": "^7.0.2"
595
596
  },
596
597
  "scripts": {
597
598
  "dev": "next dev",
@@ -678,6 +679,7 @@ npm run dev
678
679
  ],
679
680
  "@/lib/utils": ["../../packages/ui/src/lib/utils"],
680
681
  "@assistant-ui/ui/*": ["../../packages/ui/src/*"],
682
+ "@assistant-ui/store/client": ["../../packages/store/src/client"],
681
683
  "@assistant-ui/*": ["../../packages/*/src"],
682
684
  "@assistant-ui/core/*": ["../../packages/core/src/*"],
683
685
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
@@ -179,16 +179,17 @@ export default function RootLayout({
179
179
  "use client";
180
180
 
181
181
  import { Thread } from "@/components/assistant-ui/thread";
182
+ import { EveAuthorization } from "@/components/eve-authorization";
182
183
  import {
183
184
  AssistantRuntimeProvider,
185
+ AuiConfig,
184
186
  Suggestions,
185
- useAui,
186
187
  } from "@assistant-ui/react";
187
188
  import { useEveAgentRuntime } from "@assistant-ui/eve";
188
189
 
189
190
  export default function Home() {
190
191
  const runtime = useEveAgentRuntime();
191
- const aui = useAui({
192
+ const config = AuiConfig({
192
193
  suggestions: Suggestions([
193
194
  {
194
195
  title: "Explain Eve",
@@ -206,7 +207,8 @@ export default function Home() {
206
207
  });
207
208
 
208
209
  return (
209
- <AssistantRuntimeProvider runtime={runtime} aui={aui}>
210
+ <AssistantRuntimeProvider runtime={runtime} config={config}>
211
+ <EveAuthorization />
210
212
  <div className="h-full">
211
213
  <Thread />
212
214
  </div>
@@ -246,6 +248,59 @@ export default function Home() {
246
248
 
247
249
  ```
248
250
 
251
+ ## components/eve-authorization.tsx
252
+
253
+ ```tsx
254
+ "use client";
255
+
256
+ import type { EveAuthorizationData } from "@assistant-ui/eve";
257
+ import { makeAssistantDataUI } from "@assistant-ui/react";
258
+
259
+ export const EveAuthorization = makeAssistantDataUI<EveAuthorizationData>({
260
+ name: "authorization",
261
+ render: ({ data }) => {
262
+ const label = data.displayName ?? data.name;
263
+
264
+ if (data.state !== "required") {
265
+ // Eve inherits `description` from the pending part, so a settled
266
+ // authorization still reads as a sign-in prompt.
267
+ const suffix = data.reason ? ` (${data.reason})` : "";
268
+ return (
269
+ <div className="text-muted-foreground my-2 text-sm">
270
+ {data.outcome === "authorized"
271
+ ? `${label} connected.`
272
+ : `${label} authorization ${data.outcome ?? "completed"}${suffix}.`}
273
+ </div>
274
+ );
275
+ }
276
+
277
+ return (
278
+ <div className="my-2 flex flex-col items-start gap-2 rounded-lg border p-4">
279
+ <p className="text-sm">
280
+ {data.instructions ?? `Sign in to ${label} to continue.`}
281
+ </p>
282
+ {data.userCode && (
283
+ <code className="bg-muted rounded px-2 py-1 font-mono text-sm">
284
+ {data.userCode}
285
+ </code>
286
+ )}
287
+ {data.url && (
288
+ <a
289
+ className="text-sm underline"
290
+ href={data.url}
291
+ target="_blank"
292
+ rel="noreferrer"
293
+ >
294
+ Continue to sign in
295
+ </a>
296
+ )}
297
+ </div>
298
+ );
299
+ },
300
+ });
301
+
302
+ ```
303
+
249
304
  ## next.config.ts
250
305
 
251
306
  ```typescript
@@ -282,8 +337,8 @@ export default withEve(withAui(nextConfig));
282
337
  "class-variance-authority": "^0.7.1",
283
338
  "clsx": "^2.1.1",
284
339
  "eve": "^0.27.6",
285
- "lucide-react": "^1.26.0",
286
- "next": "^16.2.11",
340
+ "lucide-react": "^1.29.0",
341
+ "next": "^16.3.0",
287
342
  "react": "^19.2.8",
288
343
  "react-dom": "^19.2.8",
289
344
  "tailwind-merge": "^3.6.0"
@@ -292,14 +347,13 @@ export default withEve(withAui(nextConfig));
292
347
  "@assistant-ui/next": "workspace:*",
293
348
  "@assistant-ui/x-buildutils": "workspace:*",
294
349
  "@tailwindcss/postcss": "^4.3.3",
295
- "@types/node": "^26.1.1",
296
- "@types/react": "^19.2.17",
297
- "@types/react-dom": "^19.2.3",
298
- "postcss": "^8.5.23",
350
+ "@types/node": "^26.1.2",
351
+ "@types/react": "^19.2.18",
352
+ "@types/react-dom": "^19.2.4",
353
+ "postcss": "^8.5.26",
299
354
  "tailwindcss": "^4.3.3",
300
355
  "tw-animate-css": "^1.4.0",
301
- "typescript": "npm:@typescript/typescript6@^6.0.2",
302
- "typescript-7": "npm:typescript@^7.0.2"
356
+ "typescript": "^7.0.2"
303
357
  }
304
358
  }
305
359
 
@@ -97,6 +97,7 @@ import { GestureHandlerRootView } from "react-native-gesture-handler";
97
97
 
98
98
  import {
99
99
  AssistantRuntimeProvider,
100
+ AuiConfig,
100
101
  useAui,
101
102
  Tools,
102
103
  } from "@assistant-ui/react-native";
@@ -170,7 +171,7 @@ export default function RootLayout() {
170
171
  Platform.OS === "ios" ? {} : MaterialIcons.font,
171
172
  );
172
173
  const runtime = useAppRuntime();
173
- const aui = useAui({
174
+ const config = AuiConfig({
174
175
  tools: Tools({ toolkit }),
175
176
  });
176
177
 
@@ -178,7 +179,7 @@ export default function RootLayout() {
178
179
 
179
180
  return (
180
181
  <GestureHandlerRootView style={{ flex: 1 }}>
181
- <AssistantRuntimeProvider runtime={runtime} aui={aui}>
182
+ <AssistantRuntimeProvider runtime={runtime} config={config}>
182
183
  <DrawerLayout />
183
184
  </AssistantRuntimeProvider>
184
185
  </GestureHandlerRootView>
@@ -1935,43 +1936,43 @@ module.exports = withAui(config);
1935
1936
  "export:web": "expo export --platform web && node scripts/flatten-assets.mjs"
1936
1937
  },
1937
1938
  "dependencies": {
1938
- "@ai-sdk/openai": "^4.0.20",
1939
- "@ai-sdk/react": "^4.0.40",
1939
+ "@ai-sdk/openai": "^4.0.34",
1940
+ "@ai-sdk/react": "^4.0.59",
1940
1941
  "@assistant-ui/react-ai-sdk": "workspace:*",
1941
1942
  "@assistant-ui/react-native": "workspace:*",
1942
1943
  "@expo/vector-icons": "^15.1.1",
1943
1944
  "@react-navigation/drawer": "7.9.4",
1944
1945
  "@react-navigation/native": "7.1.33",
1945
- "ai": "^7.0.37",
1946
- "expo": "~57.0.8",
1946
+ "ai": "^7.0.56",
1947
+ "expo": "~57.0.11",
1947
1948
  "expo-clipboard": "~57.0.1",
1948
- "expo-constants": "~57.0.7",
1949
+ "expo-constants": "~57.0.9",
1949
1950
  "expo-font": "~57.0.1",
1950
1951
  "expo-haptics": "~57.0.1",
1951
- "expo-image": "~57.0.1",
1952
- "expo-image-picker": "~57.0.6",
1953
- "expo-linking": "~57.0.4",
1954
- "expo-router": "~57.0.8",
1952
+ "expo-image": "~57.0.2",
1953
+ "expo-image-picker": "~57.0.8",
1954
+ "expo-linking": "~57.0.5",
1955
+ "expo-router": "~57.0.11",
1955
1956
  "expo-server": "~57.0.1",
1956
1957
  "expo-splash-screen": "~57.0.5",
1957
1958
  "expo-status-bar": "~57.0.1",
1958
- "expo-symbols": "^57.0.1",
1959
- "expo-system-ui": "~57.0.1",
1959
+ "expo-symbols": "^57.0.2",
1960
+ "expo-system-ui": "~57.0.2",
1960
1961
  "react": "19.2.3",
1961
1962
  "react-dom": "19.2.3",
1962
- "react-native": "0.86.0",
1963
- "react-native-gesture-handler": "~3.1.0",
1964
- "react-native-reanimated": "4.5.0",
1965
- "react-native-safe-area-context": "~5.8.0",
1963
+ "react-native": "0.86.2",
1964
+ "react-native-gesture-handler": "~2.32.0",
1965
+ "react-native-reanimated": "4.5.1",
1966
+ "react-native-safe-area-context": "~5.7.0",
1966
1967
  "react-native-screens": "4.26.2",
1967
1968
  "react-native-web": "~0.21.2",
1968
- "react-native-worklets": "0.10.0",
1969
+ "react-native-worklets": "0.10.1",
1969
1970
  "zod": "^4.4.3"
1970
1971
  },
1971
1972
  "devDependencies": {
1972
1973
  "@assistant-ui/metro": "workspace:*",
1973
1974
  "@babel/core": "^7.29.7",
1974
- "@types/react": "~19.2.17",
1975
+ "@types/react": "~19.2.18",
1975
1976
  "typescript": "npm:@typescript/typescript6@^6.0.2",
1976
1977
  "typescript-7": "npm:typescript@~7.0.2"
1977
1978
  },
@@ -223,10 +223,16 @@ export function MyRuntimeProvider({
223
223
  "use client";
224
224
 
225
225
  import { Thread } from "@/components/assistant-ui/thread";
226
- import { useAui, AuiProvider, Suggestions } from "@assistant-ui/react";
226
+ import {
227
+ useAui,
228
+ AuiProvider,
229
+ AuiConfig,
230
+ Suggestions,
231
+ } from "@assistant-ui/react";
227
232
 
228
233
  function ThreadWithSuggestions() {
229
- const aui = useAui({
234
+ const aui = useAui();
235
+ const config = AuiConfig({
230
236
  suggestions: Suggestions([
231
237
  {
232
238
  title: "Send a test message",
@@ -241,7 +247,7 @@ function ThreadWithSuggestions() {
241
247
  ]),
242
248
  });
243
249
  return (
244
- <AuiProvider value={aui}>
250
+ <AuiProvider extends={aui} config={config}>
245
251
  <Thread />
246
252
  </AuiProvider>
247
253
  );
@@ -318,8 +324,8 @@ export default withAui(nextConfig);
318
324
  "@assistant-ui/ui": "workspace:*",
319
325
  "class-variance-authority": "^0.7.1",
320
326
  "clsx": "^2.1.1",
321
- "lucide-react": "^1.26.0",
322
- "next": "^16.2.11",
327
+ "lucide-react": "^1.29.0",
328
+ "next": "^16.3.0",
323
329
  "react": "^19.2.8",
324
330
  "react-dom": "^19.2.8",
325
331
  "tailwind-merge": "^3.6.0"
@@ -328,14 +334,13 @@ export default withAui(nextConfig);
328
334
  "@assistant-ui/next": "workspace:*",
329
335
  "@assistant-ui/x-buildutils": "workspace:*",
330
336
  "@tailwindcss/postcss": "^4.3.3",
331
- "@types/node": "^26.1.1",
332
- "@types/react": "^19.2.17",
333
- "@types/react-dom": "^19.2.3",
334
- "postcss": "^8.5.23",
337
+ "@types/node": "^26.1.2",
338
+ "@types/react": "^19.2.18",
339
+ "@types/react-dom": "^19.2.4",
340
+ "postcss": "^8.5.26",
335
341
  "tailwindcss": "^4.3.3",
336
342
  "tw-animate-css": "^1.4.0",
337
- "typescript": "npm:@typescript/typescript6@^6.0.2",
338
- "typescript-7": "npm:typescript@^7.0.2"
343
+ "typescript": "^7.0.2"
339
344
  }
340
345
  }
341
346
 
@@ -267,6 +267,7 @@ import {
267
267
  useAui,
268
268
  useAuiState,
269
269
  AuiProvider,
270
+ AuiConfig,
270
271
  Suggestions,
271
272
  Tools,
272
273
  } from "@assistant-ui/react";
@@ -316,11 +317,16 @@ const FfmpegToolsProvider: FC<{ file: File; children: ReactNode }> = ({
316
317
 
317
318
  const toolkit = useFfmpegToolkit(file, ffmpegRef);
318
319
 
319
- const aui = useAui({
320
+ const aui = useAui();
321
+ const config = AuiConfig({
320
322
  tools: Tools({ toolkit }),
321
323
  });
322
324
 
323
- return <AuiProvider value={aui}>{children}</AuiProvider>;
325
+ return (
326
+ <AuiProvider extends={aui} config={config}>
327
+ {children}
328
+ </AuiProvider>
329
+ );
324
330
  };
325
331
 
326
332
  export default function Home() {
@@ -332,7 +338,8 @@ export default function Home() {
332
338
  setLastFile(lastAttachment.file!);
333
339
  }, [attachments]);
334
340
 
335
- const aui = useAui({
341
+ const aui = useAui();
342
+ const config = AuiConfig({
336
343
  suggestions: Suggestions([
337
344
  {
338
345
  title: "Convert video to GIF",
@@ -349,7 +356,7 @@ export default function Home() {
349
356
 
350
357
  return (
351
358
  <div className="flex h-full flex-col">
352
- <AuiProvider value={aui}>
359
+ <AuiProvider extends={aui} config={config}>
353
360
  {lastFile ? (
354
361
  <FfmpegToolsProvider file={lastFile}>
355
362
  <Thread />
@@ -713,18 +720,18 @@ export default withAui(nextConfig);
713
720
  "start": "next start"
714
721
  },
715
722
  "dependencies": {
716
- "@ai-sdk/openai": "^4.0.20",
723
+ "@ai-sdk/openai": "^4.0.34",
717
724
  "@assistant-ui/react": "workspace:*",
718
725
  "@assistant-ui/react-ai-sdk": "workspace:*",
719
726
  "@assistant-ui/react-markdown": "workspace:*",
720
727
  "@assistant-ui/ui": "workspace:*",
721
728
  "@ffmpeg/ffmpeg": "^0.12.15",
722
729
  "@ffmpeg/util": "^0.12.2",
723
- "ai": "^7.0.37",
730
+ "ai": "^7.0.56",
724
731
  "class-variance-authority": "^0.7.1",
725
732
  "clsx": "^2.1.1",
726
- "lucide-react": "^1.26.0",
727
- "next": "^16.2.11",
733
+ "lucide-react": "^1.29.0",
734
+ "next": "^16.3.0",
728
735
  "react": "^19.2.8",
729
736
  "react-dom": "^19.2.8",
730
737
  "tailwind-merge": "^3.6.0",
@@ -734,14 +741,13 @@ export default withAui(nextConfig);
734
741
  "@assistant-ui/next": "workspace:*",
735
742
  "@assistant-ui/x-buildutils": "workspace:*",
736
743
  "@tailwindcss/postcss": "^4.3.3",
737
- "@types/node": "^26.1.1",
738
- "@types/react": "^19.2.17",
739
- "@types/react-dom": "^19.2.3",
740
- "postcss": "^8.5.23",
744
+ "@types/node": "^26.1.2",
745
+ "@types/react": "^19.2.18",
746
+ "@types/react-dom": "^19.2.4",
747
+ "postcss": "^8.5.26",
741
748
  "tailwindcss": "^4.3.3",
742
749
  "tw-animate-css": "^1.4.0",
743
- "typescript": "npm:@typescript/typescript6@^6.0.2",
744
- "typescript-7": "npm:typescript@^7.0.2"
750
+ "typescript": "^7.0.2"
745
751
  }
746
752
  }
747
753