@assistant-ui/mcp-docs-server 0.1.28 → 0.1.30

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 (56) hide show
  1. package/.docs/organized/code-examples/waterfall.md +18 -10
  2. package/.docs/organized/code-examples/with-a2a.md +12 -24
  3. package/.docs/organized/code-examples/with-ag-ui.md +14 -11
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +12 -12
  5. package/.docs/organized/code-examples/with-artifacts.md +14 -12
  6. package/.docs/organized/code-examples/with-assistant-transport.md +13 -14
  7. package/.docs/organized/code-examples/with-chain-of-thought.md +11 -11
  8. package/.docs/organized/code-examples/with-cloud-standalone.md +17 -14
  9. package/.docs/organized/code-examples/with-cloud.md +12 -13
  10. package/.docs/organized/code-examples/with-custom-thread-list.md +12 -12
  11. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +19 -14
  12. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +15 -15
  13. package/.docs/organized/code-examples/with-expo.md +27 -23
  14. package/.docs/organized/code-examples/with-external-store.md +11 -11
  15. package/.docs/organized/code-examples/with-ffmpeg.md +19 -14
  16. package/.docs/organized/code-examples/with-generative-ui.md +11 -11
  17. package/.docs/organized/code-examples/with-google-adk.md +10 -10
  18. package/.docs/organized/code-examples/with-heat-graph.md +8 -8
  19. package/.docs/organized/code-examples/with-interactables.md +12 -27
  20. package/.docs/organized/code-examples/with-langchain.md +437 -0
  21. package/.docs/organized/code-examples/with-langgraph.md +20 -20
  22. package/.docs/organized/code-examples/with-livekit.md +59 -18
  23. package/.docs/organized/code-examples/with-opencode.md +2392 -0
  24. package/.docs/organized/code-examples/with-parent-id-grouping.md +12 -12
  25. package/.docs/organized/code-examples/with-react-hook-form.md +223 -151
  26. package/.docs/organized/code-examples/with-react-ink.md +3 -3
  27. package/.docs/organized/code-examples/with-react-router.md +15 -15
  28. package/.docs/organized/code-examples/with-store.md +11 -8
  29. package/.docs/organized/code-examples/with-tanstack.md +14 -14
  30. package/.docs/organized/code-examples/with-tap-runtime.md +13 -9
  31. package/.docs/raw/docs/(docs)/guides/mentions.mdx +248 -109
  32. package/.docs/raw/docs/(docs)/guides/slash-commands.mdx +112 -92
  33. package/.docs/raw/docs/(docs)/guides/voice.mdx +10 -3
  34. package/.docs/raw/docs/(docs)/rtl.mdx +79 -0
  35. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +149 -40
  36. package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +2 -0
  37. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +4 -0
  38. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +1 -1
  39. package/.docs/raw/docs/primitives/composer.mdx +94 -62
  40. package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +57 -0
  41. package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +49 -3
  42. package/.docs/raw/docs/runtimes/custom/external-store.mdx +39 -1
  43. package/.docs/raw/docs/runtimes/custom/local.mdx +65 -18
  44. package/.docs/raw/docs/runtimes/google-adk/index.mdx +62 -0
  45. package/.docs/raw/docs/runtimes/langchain/comparison.mdx +60 -0
  46. package/.docs/raw/docs/runtimes/langchain/index.mdx +210 -0
  47. package/.docs/raw/docs/runtimes/langgraph/index.mdx +288 -60
  48. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +12 -4
  49. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +199 -0
  50. package/.docs/raw/docs/ui/directive-text.mdx +113 -0
  51. package/.docs/raw/docs/ui/reasoning.mdx +13 -9
  52. package/dist/utils/logger.js +1 -1
  53. package/dist/utils/logger.js.map +1 -1
  54. package/package.json +4 -4
  55. package/src/utils/logger.ts +1 -1
  56. package/.docs/raw/docs/ui/mention.mdx +0 -168
@@ -6,7 +6,7 @@
6
6
  import { openai } from "@ai-sdk/openai";
7
7
  import {
8
8
  streamText,
9
- UIMessage,
9
+ type UIMessage,
10
10
  convertToModelMessages,
11
11
  tool,
12
12
  stepCountIs,
@@ -414,32 +414,32 @@ export default nextConfig;
414
414
  "start": "next start"
415
415
  },
416
416
  "dependencies": {
417
- "@ai-sdk/openai": "^3.0.51",
417
+ "@ai-sdk/openai": "^3.0.53",
418
418
  "@assistant-ui/react": "workspace:*",
419
419
  "@assistant-ui/react-ai-sdk": "workspace:*",
420
420
  "@assistant-ui/react-markdown": "workspace:*",
421
421
  "@assistant-ui/ui": "workspace:*",
422
- "ai": "^6.0.148",
422
+ "ai": "^6.0.168",
423
423
  "assistant-stream": "workspace:*",
424
424
  "class-variance-authority": "^0.7.1",
425
425
  "clsx": "^2.1.1",
426
- "lucide-react": "^1.7.0",
427
- "next": "^16.2.2",
428
- "react": "^19.2.4",
429
- "react-dom": "^19.2.4",
426
+ "lucide-react": "^1.8.0",
427
+ "next": "^16.2.4",
428
+ "react": "^19.2.5",
429
+ "react-dom": "^19.2.5",
430
430
  "tailwind-merge": "^3.5.0",
431
431
  "zod": "^4.3.6"
432
432
  },
433
433
  "devDependencies": {
434
434
  "@assistant-ui/x-buildutils": "workspace:*",
435
- "@tailwindcss/postcss": "^4.2.2",
436
- "@types/node": "^25.5.2",
435
+ "@tailwindcss/postcss": "^4.2.4",
436
+ "@types/node": "^25.6.0",
437
437
  "@types/react": "^19.2.14",
438
438
  "@types/react-dom": "^19.2.3",
439
- "postcss": "^8.5.8",
440
- "tailwindcss": "^4.2.2",
439
+ "postcss": "^8.5.10",
440
+ "tailwindcss": "^4.2.4",
441
441
  "tw-animate-css": "^1.4.0",
442
- "typescript": "5.9.3"
442
+ "typescript": "^6.0.3"
443
443
  }
444
444
  }
445
445
 
@@ -4,7 +4,12 @@
4
4
 
5
5
  ```typescript
6
6
  import { openai } from "@ai-sdk/openai";
7
- import { streamText, UIMessage, convertToModelMessages, stepCountIs } from "ai";
7
+ import {
8
+ streamText,
9
+ type UIMessage,
10
+ convertToModelMessages,
11
+ stepCountIs,
12
+ } from "ai";
8
13
 
9
14
  export const maxDuration = 30;
10
15
 
@@ -433,34 +438,34 @@ export default nextConfig;
433
438
  "version": "0.0.0",
434
439
  "type": "module",
435
440
  "dependencies": {
436
- "@ai-sdk/openai": "^3.0.51",
437
- "@ai-sdk/react": "^3.0.150",
441
+ "@ai-sdk/openai": "^3.0.53",
442
+ "@ai-sdk/react": "^3.0.170",
438
443
  "@assistant-ui/react": "workspace:^",
439
444
  "@assistant-ui/react-ai-sdk": "workspace:*",
440
445
  "@assistant-ui/react-markdown": "workspace:^",
441
446
  "@assistant-ui/ui": "workspace:*",
442
- "@elevenlabs/client": "^1.1.2",
443
- "@tailwindcss/postcss": "^4.2.2",
444
- "ai": "^6.0.148",
447
+ "@elevenlabs/client": "^1.2.1",
448
+ "@tailwindcss/postcss": "^4.2.4",
449
+ "ai": "^6.0.168",
445
450
  "class-variance-authority": "^0.7.1",
446
451
  "clsx": "^2.1.1",
447
- "lucide-react": "^1.7.0",
452
+ "lucide-react": "^1.8.0",
448
453
  "motion": "^12.38.0",
449
- "next": "^16.2.2",
450
- "postcss": "^8.5.8",
451
- "react": "^19.2.4",
452
- "react-dom": "^19.2.4",
454
+ "next": "^16.2.4",
455
+ "postcss": "^8.5.10",
456
+ "react": "^19.2.5",
457
+ "react-dom": "^19.2.5",
453
458
  "tailwind-merge": "^3.5.0",
454
- "tailwindcss": "^4.2.2",
459
+ "tailwindcss": "^4.2.4",
455
460
  "zod": "^4.3.6"
456
461
  },
457
462
  "devDependencies": {
458
463
  "@assistant-ui/x-buildutils": "workspace:*",
459
- "@types/node": "^25.5.2",
464
+ "@types/node": "^25.6.0",
460
465
  "@types/react": "^19.2.14",
461
466
  "@types/react-dom": "^19.2.3",
462
467
  "tw-animate-css": "^1.4.0",
463
- "typescript": "5.9.3"
468
+ "typescript": "^6.0.3"
464
469
  },
465
470
  "scripts": {
466
471
  "dev": "next dev",
@@ -6,7 +6,7 @@
6
6
  import { openai } from "@ai-sdk/openai";
7
7
  import {
8
8
  streamText,
9
- UIMessage,
9
+ type UIMessage,
10
10
  convertToModelMessages,
11
11
  tool,
12
12
  stepCountIs,
@@ -57,7 +57,7 @@ export async function POST() {
57
57
  {
58
58
  method: "POST",
59
59
  headers: {
60
- "xi-api-key": process.env["ELEVENLABS_API_KEY"]!,
60
+ "xi-api-key": process.env.ELEVENLABS_API_KEY!,
61
61
  },
62
62
  },
63
63
  );
@@ -562,34 +562,34 @@ export default nextConfig;
562
562
  "version": "0.0.0",
563
563
  "type": "module",
564
564
  "dependencies": {
565
- "@ai-sdk/openai": "^3.0.51",
566
- "@ai-sdk/react": "^3.0.150",
565
+ "@ai-sdk/openai": "^3.0.53",
566
+ "@ai-sdk/react": "^3.0.170",
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.1.2",
572
- "@tailwindcss/postcss": "^4.2.2",
573
- "ai": "^6.0.148",
571
+ "@elevenlabs/client": "^1.2.1",
572
+ "@tailwindcss/postcss": "^4.2.4",
573
+ "ai": "^6.0.168",
574
574
  "class-variance-authority": "^0.7.1",
575
575
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.7.0",
576
+ "lucide-react": "^1.8.0",
577
577
  "motion": "^12.38.0",
578
- "next": "^16.2.2",
579
- "postcss": "^8.5.8",
580
- "react": "^19.2.4",
581
- "react-dom": "^19.2.4",
578
+ "next": "^16.2.4",
579
+ "postcss": "^8.5.10",
580
+ "react": "^19.2.5",
581
+ "react-dom": "^19.2.5",
582
582
  "tailwind-merge": "^3.5.0",
583
- "tailwindcss": "^4.2.2",
583
+ "tailwindcss": "^4.2.4",
584
584
  "zod": "^4.3.6"
585
585
  },
586
586
  "devDependencies": {
587
587
  "@assistant-ui/x-buildutils": "workspace:*",
588
- "@types/node": "^25.5.2",
588
+ "@types/node": "^25.6.0",
589
589
  "@types/react": "^19.2.14",
590
590
  "@types/react-dom": "^19.2.3",
591
591
  "tw-animate-css": "^1.4.0",
592
- "typescript": "5.9.3"
592
+ "typescript": "^6.0.3"
593
593
  },
594
594
  "scripts": {
595
595
  "dev": "next dev",
@@ -1639,8 +1639,12 @@ const styles = StyleSheet.create({
1639
1639
  ## components/ui/icon-symbol.ios.tsx
1640
1640
 
1641
1641
  ```tsx
1642
- import { SymbolView, SymbolViewProps, SymbolWeight } from "expo-symbols";
1643
- import { StyleProp, ViewStyle } from "react-native";
1642
+ import {
1643
+ SymbolView,
1644
+ type SymbolViewProps,
1645
+ type SymbolWeight,
1646
+ } from "expo-symbols";
1647
+ import type { StyleProp, ViewStyle } from "react-native";
1644
1648
 
1645
1649
  export function IconSymbol({
1646
1650
  name,
@@ -1680,9 +1684,9 @@ export function IconSymbol({
1680
1684
  // Fallback for using MaterialIcons on Android and web.
1681
1685
 
1682
1686
  import MaterialIcons from "@expo/vector-icons/MaterialIcons";
1683
- import { SymbolWeight, SymbolViewProps } from "expo-symbols";
1684
- import { ComponentProps } from "react";
1685
- import { OpaqueColorValue, type StyleProp, type TextStyle } from "react-native";
1687
+ import type { SymbolWeight, SymbolViewProps } from "expo-symbols";
1688
+ import type { ComponentProps } from "react";
1689
+ import type { OpaqueColorValue, StyleProp, TextStyle } from "react-native";
1686
1690
 
1687
1691
  type IconMapping = Record<
1688
1692
  SymbolViewProps["name"],
@@ -1940,31 +1944,31 @@ module.exports = config;
1940
1944
  "export:web": "expo export --platform web && node scripts/flatten-assets.mjs"
1941
1945
  },
1942
1946
  "dependencies": {
1943
- "@ai-sdk/openai": "^3.0.51",
1944
- "@ai-sdk/react": "^3.0.150",
1947
+ "@ai-sdk/openai": "^3.0.53",
1948
+ "@ai-sdk/react": "^3.0.170",
1945
1949
  "@assistant-ui/react-ai-sdk": "workspace:*",
1946
1950
  "@assistant-ui/react-native": "workspace:*",
1947
1951
  "@expo/vector-icons": "^15.1.1",
1948
- "@react-navigation/drawer": "^7.9.8",
1949
- "@react-navigation/native": "^7.2.2",
1950
- "ai": "^6.0.148",
1951
- "expo": "~55.0.11",
1952
- "expo-constants": "~55.0.11",
1952
+ "@react-navigation/drawer": "7.9.4",
1953
+ "@react-navigation/native": "7.1.33",
1954
+ "ai": "^6.0.168",
1955
+ "expo": "~55.0.17",
1956
+ "expo-constants": "~55.0.15",
1953
1957
  "expo-font": "~55.0.6",
1954
- "expo-image-picker": "~55.0.16",
1955
- "expo-linking": "~55.0.11",
1956
- "expo-router": "~55.0.10",
1957
- "expo-server": "~55.0.7",
1958
- "expo-splash-screen": "~55.0.15",
1958
+ "expo-image-picker": "~55.0.19",
1959
+ "expo-linking": "~55.0.14",
1960
+ "expo-router": "~55.0.13",
1961
+ "expo-server": "~55.0.8",
1962
+ "expo-splash-screen": "~55.0.19",
1959
1963
  "expo-status-bar": "~55.0.5",
1960
- "expo-system-ui": "~55.0.13",
1964
+ "expo-system-ui": "~55.0.16",
1961
1965
  "react": "19.2.0",
1962
1966
  "react-dom": "19.2.0",
1963
- "react-native": "0.83.2",
1964
- "react-native-gesture-handler": "~2.31.0",
1965
- "react-native-reanimated": "~4.3.0",
1966
- "react-native-safe-area-context": "~5.7.0",
1967
- "react-native-screens": "~4.24.0",
1967
+ "react-native": "0.83.4",
1968
+ "react-native-gesture-handler": "2.30.1",
1969
+ "react-native-reanimated": "4.2.1",
1970
+ "react-native-safe-area-context": "5.6.2",
1971
+ "react-native-screens": "4.23.0",
1968
1972
  "react-native-web": "~0.21.2",
1969
1973
  "react-native-worklets": "0.7.2",
1970
1974
  "zod": "^4.3.6"
@@ -162,8 +162,8 @@ export default function RootLayout({
162
162
  ```tsx
163
163
  "use client";
164
164
 
165
- import { ThreadMessageLike } from "@assistant-ui/react";
166
- import { AppendMessage } from "@assistant-ui/react";
165
+ import type { ThreadMessageLike } from "@assistant-ui/react";
166
+ import type { AppendMessage } from "@assistant-ui/react";
167
167
  import {
168
168
  AssistantRuntimeProvider,
169
169
  useExternalStoreRuntime,
@@ -319,22 +319,22 @@ export default nextConfig;
319
319
  "@assistant-ui/ui": "workspace:*",
320
320
  "class-variance-authority": "^0.7.1",
321
321
  "clsx": "^2.1.1",
322
- "lucide-react": "^1.7.0",
323
- "next": "^16.2.2",
324
- "react": "^19.2.4",
325
- "react-dom": "^19.2.4",
322
+ "lucide-react": "^1.8.0",
323
+ "next": "^16.2.4",
324
+ "react": "^19.2.5",
325
+ "react-dom": "^19.2.5",
326
326
  "tailwind-merge": "^3.5.0"
327
327
  },
328
328
  "devDependencies": {
329
329
  "@assistant-ui/x-buildutils": "workspace:*",
330
- "@tailwindcss/postcss": "^4.2.2",
331
- "@types/node": "^25.5.2",
330
+ "@tailwindcss/postcss": "^4.2.4",
331
+ "@types/node": "^25.6.0",
332
332
  "@types/react": "^19.2.14",
333
333
  "@types/react-dom": "^19.2.3",
334
- "postcss": "^8.5.8",
335
- "tailwindcss": "^4.2.2",
334
+ "postcss": "^8.5.10",
335
+ "tailwindcss": "^4.2.4",
336
336
  "tw-animate-css": "^1.4.0",
337
- "typescript": "5.9.3"
337
+ "typescript": "^6.0.3"
338
338
  }
339
339
  }
340
340
 
@@ -189,7 +189,7 @@ export default function RootLayout({
189
189
  "use client";
190
190
 
191
191
  import { AssistantRuntimeProvider } from "@assistant-ui/react";
192
- import { AttachmentAdapter } from "@assistant-ui/react";
192
+ import type { AttachmentAdapter } from "@assistant-ui/react";
193
193
  import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
194
194
  import { INTERNAL } from "@assistant-ui/react";
195
195
  import { lastAssistantMessageIsCompleteWithToolCalls } from "ai";
@@ -250,7 +250,7 @@ export function MyRuntimeProvider({
250
250
 
251
251
  ```tsx
252
252
  import dynamic from "next/dynamic";
253
- import { FC, PropsWithChildren } from "react";
253
+ import type { FC, PropsWithChildren } from "react";
254
254
 
255
255
  const NoSSRWrapper: FC<PropsWithChildren> = (props) => <>{props.children}</>;
256
256
 
@@ -276,7 +276,7 @@ import {
276
276
  import { z } from "zod";
277
277
  import { FFmpeg } from "@ffmpeg/ffmpeg";
278
278
  import { toBlobURL } from "@ffmpeg/util";
279
- import { FC, useCallback, useEffect, useRef, useState } from "react";
279
+ import { type FC, useCallback, useEffect, useRef, useState } from "react";
280
280
  import {
281
281
  CircleCheckIcon,
282
282
  DownloadIcon,
@@ -489,8 +489,10 @@ const FfmpegTool: FC<{ file: File }> = ({ file }) => {
489
489
  args: { fileName, mimeType },
490
490
  result,
491
491
  }) {
492
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
492
493
  const [blobUrl, setBlobUrl] = useState<string | null>(null);
493
494
 
495
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
494
496
  const readFile = useCallback(async () => {
495
497
  const ffmpeg = ffmpegRef.current;
496
498
  const data = (await ffmpeg.readFile(
@@ -499,6 +501,7 @@ const FfmpegTool: FC<{ file: File }> = ({ file }) => {
499
501
  return URL.createObjectURL(new Blob([data.buffer], { type: mimeType }));
500
502
  }, [fileName, mimeType]);
501
503
 
504
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
502
505
  useEffect(() => {
503
506
  if (!result?.success) return;
504
507
  let revoked = false;
@@ -551,6 +554,7 @@ const FfmpegTool: FC<{ file: File }> = ({ file }) => {
551
554
  return (
552
555
  <div className="mb-2 flex flex-col gap-3 rounded-lg border px-5 py-4">
553
556
  {blobUrl && isImage && (
557
+ // biome-ignore lint/performance/noImgElement: blob URL display
554
558
  <img
555
559
  src={blobUrl}
556
560
  alt={fileName}
@@ -570,6 +574,7 @@ const FfmpegTool: FC<{ file: File }> = ({ file }) => {
570
574
  </div>
571
575
  )}
572
576
  <button
577
+ type="button"
573
578
  onClick={handleDownload}
574
579
  className="flex w-fit items-center gap-2 rounded-md border bg-background px-4 py-2 text-sm hover:bg-accent"
575
580
  >
@@ -677,33 +682,33 @@ export default nextConfig;
677
682
  "start": "next start"
678
683
  },
679
684
  "dependencies": {
680
- "@ai-sdk/openai": "^3.0.51",
685
+ "@ai-sdk/openai": "^3.0.53",
681
686
  "@assistant-ui/react": "workspace:*",
682
687
  "@assistant-ui/react-ai-sdk": "workspace:*",
683
688
  "@assistant-ui/react-markdown": "workspace:*",
684
689
  "@assistant-ui/ui": "workspace:*",
685
690
  "@ffmpeg/ffmpeg": "^0.12.15",
686
691
  "@ffmpeg/util": "^0.12.2",
687
- "ai": "^6.0.148",
692
+ "ai": "^6.0.168",
688
693
  "class-variance-authority": "^0.7.1",
689
694
  "clsx": "^2.1.1",
690
- "lucide-react": "^1.7.0",
691
- "next": "^16.2.2",
692
- "react": "^19.2.4",
693
- "react-dom": "^19.2.4",
695
+ "lucide-react": "^1.8.0",
696
+ "next": "^16.2.4",
697
+ "react": "^19.2.5",
698
+ "react-dom": "^19.2.5",
694
699
  "tailwind-merge": "^3.5.0",
695
700
  "zod": "^4.3.6"
696
701
  },
697
702
  "devDependencies": {
698
703
  "@assistant-ui/x-buildutils": "workspace:*",
699
- "@tailwindcss/postcss": "^4.2.2",
700
- "@types/node": "^25.5.2",
704
+ "@tailwindcss/postcss": "^4.2.4",
705
+ "@types/node": "^25.6.0",
701
706
  "@types/react": "^19.2.14",
702
707
  "@types/react-dom": "^19.2.3",
703
- "postcss": "^8.5.8",
704
- "tailwindcss": "^4.2.2",
708
+ "postcss": "^8.5.10",
709
+ "tailwindcss": "^4.2.4",
705
710
  "tw-animate-css": "^1.4.0",
706
- "typescript": "5.9.3"
711
+ "typescript": "^6.0.3"
707
712
  }
708
713
  }
709
714
 
@@ -787,31 +787,31 @@ export default nextConfig;
787
787
  "start": "next start"
788
788
  },
789
789
  "dependencies": {
790
- "@ai-sdk/openai": "^3.0.51",
790
+ "@ai-sdk/openai": "^3.0.53",
791
791
  "@assistant-ui/react": "workspace:*",
792
792
  "@assistant-ui/react-ai-sdk": "workspace:*",
793
793
  "@assistant-ui/ui": "workspace:*",
794
- "ai": "^6.0.148",
794
+ "ai": "^6.0.168",
795
795
  "class-variance-authority": "^0.7.1",
796
796
  "clsx": "^2.1.1",
797
- "lucide-react": "^1.7.0",
798
- "next": "^16.2.2",
799
- "react": "^19.2.4",
800
- "react-dom": "^19.2.4",
797
+ "lucide-react": "^1.8.0",
798
+ "next": "^16.2.4",
799
+ "react": "^19.2.5",
800
+ "react-dom": "^19.2.5",
801
801
  "recharts": "^3.8.1",
802
802
  "tailwind-merge": "^3.5.0",
803
803
  "zod": "^4.3.6"
804
804
  },
805
805
  "devDependencies": {
806
806
  "@assistant-ui/x-buildutils": "workspace:*",
807
- "@tailwindcss/postcss": "^4.2.2",
808
- "@types/node": "^25.5.2",
807
+ "@tailwindcss/postcss": "^4.2.4",
808
+ "@types/node": "^25.6.0",
809
809
  "@types/react": "^19.2.14",
810
810
  "@types/react-dom": "^19.2.3",
811
- "postcss": "^8.5.8",
812
- "tailwindcss": "^4.2.2",
811
+ "postcss": "^8.5.10",
812
+ "tailwindcss": "^4.2.4",
813
813
  "tw-animate-css": "^1.4.0",
814
- "typescript": "5.9.3"
814
+ "typescript": "^6.0.3"
815
815
  }
816
816
  }
817
817
 
@@ -304,26 +304,26 @@ export default nextConfig;
304
304
  "@assistant-ui/react-google-adk": "workspace:*",
305
305
  "@assistant-ui/react-markdown": "workspace:*",
306
306
  "@assistant-ui/ui": "workspace:*",
307
- "@google/adk": "^0.6.1",
307
+ "@google/adk": "^1.0.0",
308
308
  "class-variance-authority": "^0.7.1",
309
309
  "clsx": "^2.1.1",
310
- "lucide-react": "^1.7.0",
311
- "next": "^16.2.2",
312
- "react": "^19.2.4",
313
- "react-dom": "^19.2.4",
310
+ "lucide-react": "^1.8.0",
311
+ "next": "^16.2.4",
312
+ "react": "^19.2.5",
313
+ "react-dom": "^19.2.5",
314
314
  "tailwind-merge": "^3.5.0",
315
315
  "zod": "^4.3.6"
316
316
  },
317
317
  "devDependencies": {
318
318
  "@assistant-ui/x-buildutils": "workspace:*",
319
- "@tailwindcss/postcss": "^4.2.2",
320
- "@types/node": "^25.5.2",
319
+ "@tailwindcss/postcss": "^4.2.4",
320
+ "@types/node": "^25.6.0",
321
321
  "@types/react": "^19.2.14",
322
322
  "@types/react-dom": "^19.2.3",
323
- "postcss": "^8.5.8",
324
- "tailwindcss": "^4.2.2",
323
+ "postcss": "^8.5.10",
324
+ "tailwindcss": "^4.2.4",
325
325
  "tw-animate-css": "^1.4.0",
326
- "typescript": "5.9.3"
326
+ "typescript": "^6.0.3"
327
327
  }
328
328
  }
329
329
 
@@ -270,19 +270,19 @@ export default nextConfig;
270
270
  },
271
271
  "dependencies": {
272
272
  "heat-graph": "workspace:*",
273
- "next": "^16.2.2",
274
- "react": "^19.2.4",
275
- "react-dom": "^19.2.4"
273
+ "next": "^16.2.4",
274
+ "react": "^19.2.5",
275
+ "react-dom": "^19.2.5"
276
276
  },
277
277
  "devDependencies": {
278
278
  "@assistant-ui/x-buildutils": "workspace:*",
279
- "@tailwindcss/postcss": "^4.2.2",
280
- "@types/node": "^25.5.2",
279
+ "@tailwindcss/postcss": "^4.2.4",
280
+ "@types/node": "^25.6.0",
281
281
  "@types/react": "^19.2.14",
282
282
  "@types/react-dom": "^19.2.3",
283
- "postcss": "^8.5.8",
284
- "tailwindcss": "^4.2.2",
285
- "typescript": "5.9.3"
283
+ "postcss": "^8.5.10",
284
+ "tailwindcss": "^4.2.4",
285
+ "typescript": "^6.0.3"
286
286
  }
287
287
  }
288
288
 
@@ -238,10 +238,6 @@ import {
238
238
  PlusIcon,
239
239
  } from "lucide-react";
240
240
 
241
- // ===========================================================================
242
- // 1. Task Board — single-instance interactable + custom tool
243
- // ===========================================================================
244
-
245
241
  type Task = { id: string; title: string; done: boolean };
246
242
  type TaskBoardState = { tasks: Task[] };
247
243
 
@@ -392,10 +388,6 @@ function TaskBoard() {
392
388
  );
393
389
  }
394
390
 
395
- // ===========================================================================
396
- // 2. Sticky Notes — multi-instance interactable + selection + partial updates
397
- // ===========================================================================
398
-
399
391
  type NoteState = { title: string; content: string; color: string };
400
392
 
401
393
  const noteSchema = z.object({
@@ -428,9 +420,6 @@ function NoteCard({
428
420
  onSelect: (id: string) => void;
429
421
  onRemove: (id: string) => void;
430
422
  }) {
431
- // Multi-instance: each NoteCard has a unique `id`, all share name "note"
432
- // Partial updates: AI can send { color: "blue" } without resending title/content
433
- // Selection: clicking a note calls setSelected(true)
434
423
  useAssistantInteractable("note", {
435
424
  id: noteId,
436
425
  description:
@@ -452,6 +441,7 @@ function NoteCard({
452
441
  };
453
442
 
454
443
  return (
444
+ // biome-ignore lint/a11y/useSemanticElements: styled interactive card
455
445
  <div
456
446
  role="button"
457
447
  tabIndex={0}
@@ -517,7 +507,6 @@ function NotesPanel() {
517
507
  const setSelectedIdRef = useRef(setSelectedId);
518
508
  setSelectedIdRef.current = setSelectedId;
519
509
 
520
- // Tool to add/remove notes (manages the list, not the note content)
521
510
  useAssistantTool({
522
511
  toolName: "manage_notes",
523
512
  description:
@@ -603,10 +592,6 @@ function NotesPanel() {
603
592
  );
604
593
  }
605
594
 
606
- // ===========================================================================
607
- // App
608
- // ===========================================================================
609
-
610
595
  const STORAGE_KEY = "interactables-example";
611
596
 
612
597
  function useInteractablePersistence(aui: ReturnType<typeof useAui>) {
@@ -735,30 +720,30 @@ export default nextConfig;
735
720
  "start": "next start"
736
721
  },
737
722
  "dependencies": {
738
- "@ai-sdk/openai": "^3.0.51",
723
+ "@ai-sdk/openai": "^3.0.53",
739
724
  "@assistant-ui/react": "workspace:*",
740
725
  "@assistant-ui/react-ai-sdk": "workspace:*",
741
726
  "@assistant-ui/ui": "workspace:*",
742
- "ai": "^6.0.148",
727
+ "ai": "^6.0.168",
743
728
  "class-variance-authority": "^0.7.1",
744
729
  "clsx": "^2.1.1",
745
- "lucide-react": "^1.7.0",
746
- "next": "^16.2.2",
747
- "react": "^19.2.4",
748
- "react-dom": "^19.2.4",
730
+ "lucide-react": "^1.8.0",
731
+ "next": "^16.2.4",
732
+ "react": "^19.2.5",
733
+ "react-dom": "^19.2.5",
749
734
  "tailwind-merge": "^3.5.0",
750
735
  "zod": "^4.3.6"
751
736
  },
752
737
  "devDependencies": {
753
738
  "@assistant-ui/x-buildutils": "workspace:*",
754
- "@tailwindcss/postcss": "^4.2.2",
755
- "@types/node": "^25.5.2",
739
+ "@tailwindcss/postcss": "^4.2.4",
740
+ "@types/node": "^25.6.0",
756
741
  "@types/react": "^19.2.14",
757
742
  "@types/react-dom": "^19.2.3",
758
- "postcss": "^8.5.8",
759
- "tailwindcss": "^4.2.2",
743
+ "postcss": "^8.5.10",
744
+ "tailwindcss": "^4.2.4",
760
745
  "tw-animate-css": "^1.4.0",
761
- "typescript": "5.9.3"
746
+ "typescript": "^6.0.3"
762
747
  }
763
748
  }
764
749