@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.
- package/.docs/organized/code-examples/waterfall.md +18 -10
- package/.docs/organized/code-examples/with-a2a.md +12 -24
- package/.docs/organized/code-examples/with-ag-ui.md +14 -11
- package/.docs/organized/code-examples/with-ai-sdk-v6.md +12 -12
- package/.docs/organized/code-examples/with-artifacts.md +14 -12
- package/.docs/organized/code-examples/with-assistant-transport.md +13 -14
- package/.docs/organized/code-examples/with-chain-of-thought.md +11 -11
- package/.docs/organized/code-examples/with-cloud-standalone.md +17 -14
- package/.docs/organized/code-examples/with-cloud.md +12 -13
- package/.docs/organized/code-examples/with-custom-thread-list.md +12 -12
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +19 -14
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +15 -15
- package/.docs/organized/code-examples/with-expo.md +27 -23
- package/.docs/organized/code-examples/with-external-store.md +11 -11
- package/.docs/organized/code-examples/with-ffmpeg.md +19 -14
- package/.docs/organized/code-examples/with-generative-ui.md +11 -11
- package/.docs/organized/code-examples/with-google-adk.md +10 -10
- package/.docs/organized/code-examples/with-heat-graph.md +8 -8
- package/.docs/organized/code-examples/with-interactables.md +12 -27
- package/.docs/organized/code-examples/with-langchain.md +437 -0
- package/.docs/organized/code-examples/with-langgraph.md +20 -20
- package/.docs/organized/code-examples/with-livekit.md +59 -18
- package/.docs/organized/code-examples/with-opencode.md +2392 -0
- package/.docs/organized/code-examples/with-parent-id-grouping.md +12 -12
- package/.docs/organized/code-examples/with-react-hook-form.md +223 -151
- package/.docs/organized/code-examples/with-react-ink.md +3 -3
- package/.docs/organized/code-examples/with-react-router.md +15 -15
- package/.docs/organized/code-examples/with-store.md +11 -8
- package/.docs/organized/code-examples/with-tanstack.md +14 -14
- package/.docs/organized/code-examples/with-tap-runtime.md +13 -9
- package/.docs/raw/docs/(docs)/guides/mentions.mdx +248 -109
- package/.docs/raw/docs/(docs)/guides/slash-commands.mdx +112 -92
- package/.docs/raw/docs/(docs)/guides/voice.mdx +10 -3
- package/.docs/raw/docs/(docs)/rtl.mdx +79 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +149 -40
- package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +2 -0
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +4 -0
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +1 -1
- package/.docs/raw/docs/primitives/composer.mdx +94 -62
- package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +57 -0
- package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +49 -3
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +39 -1
- package/.docs/raw/docs/runtimes/custom/local.mdx +65 -18
- package/.docs/raw/docs/runtimes/google-adk/index.mdx +62 -0
- package/.docs/raw/docs/runtimes/langchain/comparison.mdx +60 -0
- package/.docs/raw/docs/runtimes/langchain/index.mdx +210 -0
- package/.docs/raw/docs/runtimes/langgraph/index.mdx +288 -60
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +12 -4
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +199 -0
- package/.docs/raw/docs/ui/directive-text.mdx +113 -0
- package/.docs/raw/docs/ui/reasoning.mdx +13 -9
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +4 -4
- package/src/utils/logger.ts +1 -1
- 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.
|
|
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.
|
|
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.
|
|
427
|
-
"next": "^16.2.
|
|
428
|
-
"react": "^19.2.
|
|
429
|
-
"react-dom": "^19.2.
|
|
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.
|
|
436
|
-
"@types/node": "^25.
|
|
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.
|
|
440
|
-
"tailwindcss": "^4.2.
|
|
439
|
+
"postcss": "^8.5.10",
|
|
440
|
+
"tailwindcss": "^4.2.4",
|
|
441
441
|
"tw-animate-css": "^1.4.0",
|
|
442
|
-
"typescript": "
|
|
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 {
|
|
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.
|
|
437
|
-
"@ai-sdk/react": "^3.0.
|
|
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
|
|
443
|
-
"@tailwindcss/postcss": "^4.2.
|
|
444
|
-
"ai": "^6.0.
|
|
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.
|
|
452
|
+
"lucide-react": "^1.8.0",
|
|
448
453
|
"motion": "^12.38.0",
|
|
449
|
-
"next": "^16.2.
|
|
450
|
-
"postcss": "^8.5.
|
|
451
|
-
"react": "^19.2.
|
|
452
|
-
"react-dom": "^19.2.
|
|
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.
|
|
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.
|
|
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": "
|
|
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
|
|
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.
|
|
566
|
-
"@ai-sdk/react": "^3.0.
|
|
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
|
|
572
|
-
"@tailwindcss/postcss": "^4.2.
|
|
573
|
-
"ai": "^6.0.
|
|
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.
|
|
576
|
+
"lucide-react": "^1.8.0",
|
|
577
577
|
"motion": "^12.38.0",
|
|
578
|
-
"next": "^16.2.
|
|
579
|
-
"postcss": "^8.5.
|
|
580
|
-
"react": "^19.2.
|
|
581
|
-
"react-dom": "^19.2.
|
|
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.
|
|
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.
|
|
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": "
|
|
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 {
|
|
1643
|
-
|
|
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,
|
|
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.
|
|
1944
|
-
"@ai-sdk/react": "^3.0.
|
|
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": "
|
|
1949
|
-
"@react-navigation/native": "
|
|
1950
|
-
"ai": "^6.0.
|
|
1951
|
-
"expo": "~55.0.
|
|
1952
|
-
"expo-constants": "~55.0.
|
|
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.
|
|
1955
|
-
"expo-linking": "~55.0.
|
|
1956
|
-
"expo-router": "~55.0.
|
|
1957
|
-
"expo-server": "~55.0.
|
|
1958
|
-
"expo-splash-screen": "~55.0.
|
|
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.
|
|
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.
|
|
1964
|
-
"react-native-gesture-handler": "
|
|
1965
|
-
"react-native-reanimated": "
|
|
1966
|
-
"react-native-safe-area-context": "
|
|
1967
|
-
"react-native-screens": "
|
|
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.
|
|
323
|
-
"next": "^16.2.
|
|
324
|
-
"react": "^19.2.
|
|
325
|
-
"react-dom": "^19.2.
|
|
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.
|
|
331
|
-
"@types/node": "^25.
|
|
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.
|
|
335
|
-
"tailwindcss": "^4.2.
|
|
334
|
+
"postcss": "^8.5.10",
|
|
335
|
+
"tailwindcss": "^4.2.4",
|
|
336
336
|
"tw-animate-css": "^1.4.0",
|
|
337
|
-
"typescript": "
|
|
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.
|
|
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.
|
|
692
|
+
"ai": "^6.0.168",
|
|
688
693
|
"class-variance-authority": "^0.7.1",
|
|
689
694
|
"clsx": "^2.1.1",
|
|
690
|
-
"lucide-react": "^1.
|
|
691
|
-
"next": "^16.2.
|
|
692
|
-
"react": "^19.2.
|
|
693
|
-
"react-dom": "^19.2.
|
|
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.
|
|
700
|
-
"@types/node": "^25.
|
|
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.
|
|
704
|
-
"tailwindcss": "^4.2.
|
|
708
|
+
"postcss": "^8.5.10",
|
|
709
|
+
"tailwindcss": "^4.2.4",
|
|
705
710
|
"tw-animate-css": "^1.4.0",
|
|
706
|
-
"typescript": "
|
|
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.
|
|
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.
|
|
794
|
+
"ai": "^6.0.168",
|
|
795
795
|
"class-variance-authority": "^0.7.1",
|
|
796
796
|
"clsx": "^2.1.1",
|
|
797
|
-
"lucide-react": "^1.
|
|
798
|
-
"next": "^16.2.
|
|
799
|
-
"react": "^19.2.
|
|
800
|
-
"react-dom": "^19.2.
|
|
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.
|
|
808
|
-
"@types/node": "^25.
|
|
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.
|
|
812
|
-
"tailwindcss": "^4.2.
|
|
811
|
+
"postcss": "^8.5.10",
|
|
812
|
+
"tailwindcss": "^4.2.4",
|
|
813
813
|
"tw-animate-css": "^1.4.0",
|
|
814
|
-
"typescript": "
|
|
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.
|
|
307
|
+
"@google/adk": "^1.0.0",
|
|
308
308
|
"class-variance-authority": "^0.7.1",
|
|
309
309
|
"clsx": "^2.1.1",
|
|
310
|
-
"lucide-react": "^1.
|
|
311
|
-
"next": "^16.2.
|
|
312
|
-
"react": "^19.2.
|
|
313
|
-
"react-dom": "^19.2.
|
|
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.
|
|
320
|
-
"@types/node": "^25.
|
|
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.
|
|
324
|
-
"tailwindcss": "^4.2.
|
|
323
|
+
"postcss": "^8.5.10",
|
|
324
|
+
"tailwindcss": "^4.2.4",
|
|
325
325
|
"tw-animate-css": "^1.4.0",
|
|
326
|
-
"typescript": "
|
|
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.
|
|
274
|
-
"react": "^19.2.
|
|
275
|
-
"react-dom": "^19.2.
|
|
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.
|
|
280
|
-
"@types/node": "^25.
|
|
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.
|
|
284
|
-
"tailwindcss": "^4.2.
|
|
285
|
-
"typescript": "
|
|
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.
|
|
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.
|
|
727
|
+
"ai": "^6.0.168",
|
|
743
728
|
"class-variance-authority": "^0.7.1",
|
|
744
729
|
"clsx": "^2.1.1",
|
|
745
|
-
"lucide-react": "^1.
|
|
746
|
-
"next": "^16.2.
|
|
747
|
-
"react": "^19.2.
|
|
748
|
-
"react-dom": "^19.2.
|
|
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.
|
|
755
|
-
"@types/node": "^25.
|
|
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.
|
|
759
|
-
"tailwindcss": "^4.2.
|
|
743
|
+
"postcss": "^8.5.10",
|
|
744
|
+
"tailwindcss": "^4.2.4",
|
|
760
745
|
"tw-animate-css": "^1.4.0",
|
|
761
|
-
"typescript": "
|
|
746
|
+
"typescript": "^6.0.3"
|
|
762
747
|
}
|
|
763
748
|
}
|
|
764
749
|
|