@assistant-ui/mcp-docs-server 0.1.6 → 0.1.8

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 (47) hide show
  1. package/.docs/organized/code-examples/with-ai-sdk-v5.md +15 -13
  2. package/.docs/organized/code-examples/with-cloud.md +19 -25
  3. package/.docs/organized/code-examples/with-external-store.md +9 -7
  4. package/.docs/organized/code-examples/with-ffmpeg.md +21 -21
  5. package/.docs/organized/code-examples/with-langgraph.md +72 -46
  6. package/.docs/organized/code-examples/with-parent-id-grouping.md +9 -7
  7. package/.docs/organized/code-examples/with-react-hook-form.md +19 -21
  8. package/.docs/raw/docs/api-reference/integrations/react-data-stream.mdx +194 -0
  9. package/.docs/raw/docs/api-reference/overview.mdx +7 -4
  10. package/.docs/raw/docs/api-reference/primitives/Composer.mdx +31 -0
  11. package/.docs/raw/docs/api-reference/primitives/Message.mdx +108 -3
  12. package/.docs/raw/docs/api-reference/primitives/Thread.mdx +59 -0
  13. package/.docs/raw/docs/api-reference/primitives/ThreadList.mdx +128 -0
  14. package/.docs/raw/docs/api-reference/primitives/ThreadListItem.mdx +160 -0
  15. package/.docs/raw/docs/api-reference/runtimes/AssistantRuntime.mdx +0 -11
  16. package/.docs/raw/docs/api-reference/runtimes/ComposerRuntime.mdx +3 -3
  17. package/.docs/raw/docs/copilots/assistant-frame.mdx +397 -0
  18. package/.docs/raw/docs/getting-started.mdx +53 -52
  19. package/.docs/raw/docs/guides/Attachments.mdx +7 -115
  20. package/.docs/raw/docs/guides/ToolUI.mdx +3 -3
  21. package/.docs/raw/docs/guides/Tools.mdx +152 -92
  22. package/.docs/raw/docs/guides/context-api.mdx +574 -0
  23. package/.docs/raw/docs/migrations/v0-12.mdx +125 -0
  24. package/.docs/raw/docs/runtimes/ai-sdk/use-chat.mdx +134 -55
  25. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +182 -0
  26. package/.docs/raw/docs/runtimes/custom/local.mdx +16 -3
  27. package/.docs/raw/docs/runtimes/data-stream.mdx +287 -0
  28. package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -1
  29. package/.docs/raw/docs/runtimes/langserve.mdx +9 -11
  30. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +5 -0
  31. package/.docs/raw/docs/ui/ThreadList.mdx +54 -16
  32. package/dist/{chunk-L4K23SWI.js → chunk-NVNFQ5ZO.js} +4 -1
  33. package/dist/index.js +1 -1
  34. package/dist/prepare-docs/prepare.js +1 -1
  35. package/dist/stdio.js +1 -1
  36. package/package.json +7 -7
  37. package/.docs/organized/code-examples/local-ollama.md +0 -1135
  38. package/.docs/organized/code-examples/search-agent-for-e-commerce.md +0 -1721
  39. package/.docs/organized/code-examples/with-ai-sdk.md +0 -1082
  40. package/.docs/organized/code-examples/with-openai-assistants.md +0 -1175
  41. package/.docs/raw/docs/concepts/architecture.mdx +0 -19
  42. package/.docs/raw/docs/concepts/runtime-layer.mdx +0 -163
  43. package/.docs/raw/docs/concepts/why.mdx +0 -9
  44. package/.docs/raw/docs/runtimes/ai-sdk/rsc.mdx +0 -226
  45. package/.docs/raw/docs/runtimes/ai-sdk/use-assistant-hook.mdx +0 -195
  46. package/.docs/raw/docs/runtimes/ai-sdk/use-chat-hook.mdx +0 -138
  47. package/.docs/raw/docs/runtimes/ai-sdk/use-chat-v5.mdx +0 -212
@@ -828,6 +828,7 @@ export const ToolFallback: ToolCallMessagePartComponent = ({
828
828
  "use client";
829
829
 
830
830
  import { ComponentPropsWithoutRef, forwardRef } from "react";
831
+ import { Slottable } from "@radix-ui/react-slot";
831
832
 
832
833
  import {
833
834
  Tooltip,
@@ -856,7 +857,7 @@ export const TooltipIconButton = forwardRef<
856
857
  className={cn("size-6 p-1", className)}
857
858
  ref={ref}
858
859
  >
859
- {children}
860
+ <Slottable>{children}</Slottable>
860
861
  <span className="sr-only">{tooltip}</span>
861
862
  </Button>
862
863
  </TooltipTrigger>
@@ -1034,34 +1035,34 @@ export default nextConfig;
1034
1035
  "version": "0.0.0",
1035
1036
  "type": "module",
1036
1037
  "dependencies": {
1037
- "@ai-sdk/openai": "^2.0.0",
1038
- "@ai-sdk/react": "^2.0.0",
1038
+ "@ai-sdk/openai": "^2.0.15",
1039
+ "@ai-sdk/react": "^2.0.15",
1039
1040
  "@assistant-ui/react": "workspace:^",
1040
1041
  "@assistant-ui/react-ai-sdk": "workspace:*",
1041
1042
  "@assistant-ui/react-markdown": "workspace:^",
1042
1043
  "@radix-ui/react-slot": "^1.2.3",
1043
- "@radix-ui/react-tooltip": "^1.2.7",
1044
- "@tailwindcss/postcss": "^4.1.11",
1045
- "ai": "^5.0.0",
1044
+ "@radix-ui/react-tooltip": "^1.2.8",
1045
+ "@tailwindcss/postcss": "^4.1.12",
1046
+ "ai": "^5.0.15",
1046
1047
  "class-variance-authority": "^0.7.1",
1047
1048
  "clsx": "^2.1.1",
1048
- "lucide-react": "^0.535.0",
1049
- "next": "15.4.5",
1049
+ "lucide-react": "^0.539.0",
1050
+ "next": "15.4.6",
1050
1051
  "postcss": "^8.5.6",
1051
1052
  "react": "19.1.1",
1052
1053
  "react-dom": "19.1.1",
1053
1054
  "remark-gfm": "^4.0.1",
1054
1055
  "tailwind-merge": "^3.3.1",
1055
- "tailwindcss": "^4.1.11",
1056
- "zod": "^4.0.14"
1056
+ "tailwindcss": "^4.1.12",
1057
+ "zod": "^4.0.17"
1057
1058
  },
1058
1059
  "devDependencies": {
1059
1060
  "@assistant-ui/x-buildutils": "workspace:*",
1060
- "@types/node": "^24.1.0",
1061
- "@types/react": "^19.1.9",
1061
+ "@types/node": "^24.3.0",
1062
+ "@types/react": "^19.1.10",
1062
1063
  "@types/react-dom": "^19.1.7",
1063
1064
  "eslint": "^9",
1064
- "eslint-config-next": "15.4.5",
1065
+ "eslint-config-next": "15.4.6",
1065
1066
  "tw-animate-css": "^1.3.6",
1066
1067
  "typescript": "^5.9.2"
1067
1068
  },
@@ -1175,6 +1176,7 @@ The API route at `/api/chat` uses the new `streamText` function from AI SDK v5 t
1175
1176
  "@/*": ["./*"],
1176
1177
  "@assistant-ui/*": ["../../packages/*/src"],
1177
1178
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
1179
+ "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
1178
1180
  "assistant-stream": ["../../packages/assistant-stream/src"],
1179
1181
  "assistant-stream/*": ["../../packages/assistant-stream/src/*"]
1180
1182
  }
@@ -4,9 +4,9 @@
4
4
 
5
5
  ```typescript
6
6
  import { openai } from "@ai-sdk/openai";
7
- import { jsonSchema, streamText } from "ai";
7
+ import { frontendTools } from "@assistant-ui/react-ai-sdk";
8
+ import { convertToModelMessages, streamText } from "ai";
8
9
 
9
- export const runtime = "edge";
10
10
  export const maxDuration = 30;
11
11
 
12
12
  export async function POST(req: Request) {
@@ -14,22 +14,15 @@ export async function POST(req: Request) {
14
14
 
15
15
  const result = streamText({
16
16
  model: openai("gpt-4o"),
17
- messages,
17
+ messages: convertToModelMessages(messages),
18
18
  // forward system prompt and tools from the frontend
19
19
  system,
20
- tools:
21
- tools &&
22
- Object.fromEntries(
23
- Object.entries<{ parameters: unknown }>(tools).map(([name, tool]) => [
24
- name,
25
- {
26
- parameters: jsonSchema(tool.parameters!),
27
- },
28
- ]),
29
- ),
20
+ tools: {
21
+ ...frontendTools(tools),
22
+ },
30
23
  });
31
24
 
32
- return result.toDataStreamResponse();
25
+ return result.toUIMessageStreamResponse();
33
26
  }
34
27
 
35
28
  ```
@@ -210,7 +203,7 @@ export default function RootLayout({
210
203
  "use client";
211
204
 
212
205
  import { AssistantCloud, AssistantRuntimeProvider } from "@assistant-ui/react";
213
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk-v4";
206
+ import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
214
207
 
215
208
  const cloud = new AssistantCloud({
216
209
  baseUrl: process.env["NEXT_PUBLIC_ASSISTANT_BASE_URL"]!,
@@ -224,7 +217,6 @@ export function MyRuntimeProvider({
224
217
  }>) {
225
218
  const runtime = useChatRuntime({
226
219
  cloud,
227
- api: "/api/chat",
228
220
  });
229
221
 
230
222
  return (
@@ -878,6 +870,7 @@ const CircleStopIcon = () => {
878
870
  "use client";
879
871
 
880
872
  import { ComponentPropsWithoutRef, forwardRef } from "react";
873
+ import { Slottable } from "@radix-ui/react-slot";
881
874
 
882
875
  import {
883
876
  Tooltip,
@@ -906,7 +899,7 @@ export const TooltipIconButton = forwardRef<
906
899
  className={cn("size-6 p-1", className)}
907
900
  ref={ref}
908
901
  >
909
- {children}
902
+ <Slottable>{children}</Slottable>
910
903
  <span className="sr-only">{tooltip}</span>
911
904
  </Button>
912
905
  </TooltipTrigger>
@@ -1097,19 +1090,19 @@ export default nextConfig;
1097
1090
  "lint": "next lint"
1098
1091
  },
1099
1092
  "dependencies": {
1100
- "@ai-sdk/openai": "^1.3.22",
1093
+ "@ai-sdk/openai": "^2.0.15",
1101
1094
  "@assistant-ui/react": "workspace:*",
1102
- "@assistant-ui/react-ai-sdk-v4": "workspace:*",
1095
+ "@assistant-ui/react-ai-sdk": "workspace:*",
1103
1096
  "@assistant-ui/react-markdown": "workspace:*",
1104
1097
  "@radix-ui/react-slot": "^1.2.3",
1105
- "@radix-ui/react-tooltip": "^1.2.7",
1106
- "ai": "^4.3.16",
1098
+ "@radix-ui/react-tooltip": "^1.2.8",
1099
+ "ai": "^5.0.15",
1107
1100
  "class-variance-authority": "^0.7.1",
1108
1101
  "clsx": "^2.1.1",
1109
1102
  "jsonwebtoken": "^9.0.2",
1110
- "lucide-react": "^0.535.0",
1103
+ "lucide-react": "^0.539.0",
1111
1104
  "nanoid": "5.1.5",
1112
- "next": "15.4.5",
1105
+ "next": "15.4.6",
1113
1106
  "react": "19.1.1",
1114
1107
  "react-dom": "19.1.1",
1115
1108
  "remark-gfm": "^4.0.1",
@@ -1123,9 +1116,9 @@ export default nextConfig;
1123
1116
  "@types/react": "^19",
1124
1117
  "@types/react-dom": "^19",
1125
1118
  "eslint": "^9",
1126
- "eslint-config-next": "15.4.5",
1119
+ "eslint-config-next": "15.4.6",
1127
1120
  "postcss": "^8",
1128
- "tailwindcss": "^4.1.11",
1121
+ "tailwindcss": "^4.1.12",
1129
1122
  "typescript": "^5"
1130
1123
  }
1131
1124
  }
@@ -1153,6 +1146,7 @@ export default nextConfig;
1153
1146
  "@/*": ["./*"],
1154
1147
  "@assistant-ui/*": ["../../packages/*/src"],
1155
1148
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
1149
+ "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
1156
1150
  "assistant-stream": ["../../packages/assistant-stream/src"],
1157
1151
  "assistant-stream/*": ["../../packages/assistant-stream/src/*"]
1158
1152
  }
@@ -782,6 +782,7 @@ const CircleStopIcon = () => {
782
782
  "use client";
783
783
 
784
784
  import { ComponentPropsWithoutRef, forwardRef } from "react";
785
+ import { Slottable } from "@radix-ui/react-slot";
785
786
 
786
787
  import {
787
788
  Tooltip,
@@ -810,7 +811,7 @@ export const TooltipIconButton = forwardRef<
810
811
  className={cn("size-6 p-1", className)}
811
812
  ref={ref}
812
813
  >
813
- {children}
814
+ <Slottable>{children}</Slottable>
814
815
  <span className="sr-only">{tooltip}</span>
815
816
  </Button>
816
817
  </TooltipTrigger>
@@ -1001,15 +1002,15 @@ export default nextConfig;
1001
1002
  "lint": "next lint"
1002
1003
  },
1003
1004
  "dependencies": {
1004
- "@ai-sdk/openai": "^1.3.22",
1005
+ "@ai-sdk/openai": "^2.0.15",
1005
1006
  "@assistant-ui/react": "workspace:*",
1006
1007
  "@assistant-ui/react-markdown": "workspace:*",
1007
1008
  "@radix-ui/react-slot": "^1.2.3",
1008
- "@radix-ui/react-tooltip": "^1.2.7",
1009
+ "@radix-ui/react-tooltip": "^1.2.8",
1009
1010
  "class-variance-authority": "^0.7.1",
1010
1011
  "clsx": "^2.1.1",
1011
- "lucide-react": "^0.535.0",
1012
- "next": "15.4.5",
1012
+ "lucide-react": "^0.539.0",
1013
+ "next": "15.4.6",
1013
1014
  "react": "19.1.1",
1014
1015
  "react-dom": "19.1.1",
1015
1016
  "remark-gfm": "^4.0.1",
@@ -1022,9 +1023,9 @@ export default nextConfig;
1022
1023
  "@types/react": "^19",
1023
1024
  "@types/react-dom": "^19",
1024
1025
  "eslint": "^9",
1025
- "eslint-config-next": "15.4.5",
1026
+ "eslint-config-next": "15.4.6",
1026
1027
  "postcss": "^8",
1027
- "tailwindcss": "^4.1.11",
1028
+ "tailwindcss": "^4.1.12",
1028
1029
  "typescript": "^5"
1029
1030
  }
1030
1031
  }
@@ -1052,6 +1053,7 @@ export default nextConfig;
1052
1053
  "@/*": ["./*"],
1053
1054
  "@assistant-ui/*": ["../../packages/*/src"],
1054
1055
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
1056
+ "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
1055
1057
  "assistant-stream": ["../../packages/assistant-stream/src"],
1056
1058
  "assistant-stream/*": ["../../packages/assistant-stream/src/*"]
1057
1059
  }
@@ -4,10 +4,9 @@
4
4
 
5
5
  ```typescript
6
6
  import { openai } from "@ai-sdk/openai";
7
- import { frontendTools } from "@assistant-ui/react-ai-sdk-v4";
8
- import { streamText } from "ai";
7
+ import { frontendTools } from "@assistant-ui/react-ai-sdk";
8
+ import { convertToModelMessages, streamText } from "ai";
9
9
 
10
- export const runtime = "edge";
11
10
  export const maxDuration = 30;
12
11
 
13
12
  export async function POST(req: Request) {
@@ -15,8 +14,7 @@ export async function POST(req: Request) {
15
14
 
16
15
  const result = streamText({
17
16
  model: openai("gpt-4o"),
18
- messages,
19
- toolCallStreaming: true,
17
+ messages: convertToModelMessages(messages),
20
18
  system,
21
19
  tools: {
22
20
  ...frontendTools(tools),
@@ -24,7 +22,7 @@ export async function POST(req: Request) {
24
22
  },
25
23
  });
26
24
 
27
- return result.toDataStreamResponse();
25
+ return result.toUIMessageStreamResponse();
28
26
  }
29
27
 
30
28
  ```
@@ -192,8 +190,9 @@ export default function RootLayout({
192
190
 
193
191
  import { AssistantRuntimeProvider } from "@assistant-ui/react";
194
192
  import { AttachmentAdapter } from "@assistant-ui/react";
195
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk-v4";
193
+ import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
196
194
  import { INTERNAL } from "@assistant-ui/react";
195
+ import { lastAssistantMessageIsCompleteWithToolCalls } from "ai";
197
196
 
198
197
  const { generateId } = INTERNAL;
199
198
 
@@ -232,8 +231,7 @@ export function MyRuntimeProvider({
232
231
  children: React.ReactNode;
233
232
  }>) {
234
233
  const runtime = useChatRuntime({
235
- api: "/api/chat",
236
- maxSteps: 4,
234
+ sendAutomaticallyWhen: lastAssistantMessageIsCompleteWithToolCalls,
237
235
  adapters: {
238
236
  attachments: attachmentAdapter,
239
237
  },
@@ -993,6 +991,7 @@ const CircleStopIcon = () => {
993
991
  "use client";
994
992
 
995
993
  import { ComponentPropsWithoutRef, forwardRef } from "react";
994
+ import { Slottable } from "@radix-ui/react-slot";
996
995
 
997
996
  import {
998
997
  Tooltip,
@@ -1021,7 +1020,7 @@ export const TooltipIconButton = forwardRef<
1021
1020
  className={cn("size-6 p-1", className)}
1022
1021
  ref={ref}
1023
1022
  >
1024
- {children}
1023
+ <Slottable>{children}</Slottable>
1025
1024
  <span className="sr-only">{tooltip}</span>
1026
1025
  </Button>
1027
1026
  </TooltipTrigger>
@@ -1225,9 +1224,9 @@ export default nextConfig;
1225
1224
  "lint": "next lint"
1226
1225
  },
1227
1226
  "dependencies": {
1228
- "@ai-sdk/openai": "^1.3.22",
1227
+ "@ai-sdk/openai": "^2.0.15",
1229
1228
  "@assistant-ui/react": "workspace:*",
1230
- "@assistant-ui/react-ai-sdk-v4": "workspace:*",
1229
+ "@assistant-ui/react-ai-sdk": "workspace:*",
1231
1230
  "@assistant-ui/react-hook-form": "workspace:*",
1232
1231
  "@assistant-ui/react-markdown": "workspace:*",
1233
1232
  "@ffmpeg/ffmpeg": "^0.12.15",
@@ -1237,23 +1236,23 @@ export default nextConfig;
1237
1236
  "@radix-ui/react-icons": "^1.3.2",
1238
1237
  "@radix-ui/react-label": "^2.1.7",
1239
1238
  "@radix-ui/react-slot": "^1.2.3",
1240
- "@radix-ui/react-tabs": "^1.1.12",
1241
- "@radix-ui/react-tooltip": "^1.2.7",
1239
+ "@radix-ui/react-tabs": "^1.1.13",
1240
+ "@radix-ui/react-tooltip": "^1.2.8",
1242
1241
  "@react-hook/media-query": "^1.1.1",
1243
- "ai": "^4.3.16",
1242
+ "ai": "^5.0.15",
1244
1243
  "class-variance-authority": "^0.7.1",
1245
1244
  "clsx": "^2.1.1",
1246
1245
  "json-schema-to-zod": "^2.6.1",
1247
- "lucide-react": "^0.535.0",
1248
- "next": "15.4.5",
1246
+ "lucide-react": "^0.539.0",
1247
+ "next": "15.4.6",
1249
1248
  "react": "19.1.1",
1250
1249
  "react-dom": "19.1.1",
1251
- "react-hook-form": "^7.61.1",
1250
+ "react-hook-form": "^7.62.0",
1252
1251
  "react-resizable-panels": "^3.0.4",
1253
1252
  "remark-gfm": "^4.0.1",
1254
1253
  "tailwind-merge": "^3.3.1",
1255
1254
  "tw-animate-css": "^1.3.6",
1256
- "zod": "^4.0.14",
1255
+ "zod": "^4.0.17",
1257
1256
  "zustand": "^5.0.7"
1258
1257
  },
1259
1258
  "devDependencies": {
@@ -1262,9 +1261,9 @@ export default nextConfig;
1262
1261
  "@types/react": "^19",
1263
1262
  "@types/react-dom": "^19",
1264
1263
  "eslint": "^9",
1265
- "eslint-config-next": "15.4.5",
1264
+ "eslint-config-next": "15.4.6",
1266
1265
  "postcss": "^8",
1267
- "tailwindcss": "^4.1.11",
1266
+ "tailwindcss": "^4.1.12",
1268
1267
  "typescript": "^5.9.2"
1269
1268
  }
1270
1269
  }
@@ -1292,6 +1291,7 @@ export default nextConfig;
1292
1291
  "@/*": ["./*"],
1293
1292
  "@assistant-ui/*": ["../../packages/*/src"],
1294
1293
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
1294
+ "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
1295
1295
  "assistant-stream": ["../../packages/assistant-stream/src"],
1296
1296
  "assistant-stream/*": ["../../packages/assistant-stream/src/*"]
1297
1297
  }
@@ -5,8 +5,6 @@
5
5
  ```typescript
6
6
  import { NextRequest, NextResponse } from "next/server";
7
7
 
8
- export const runtime = "edge";
9
-
10
8
  function getCorsHeaders() {
11
9
  return {
12
10
  "Access-Control-Allow-Origin": "*",
@@ -1018,11 +1016,11 @@ const CircleStopIcon = () => {
1018
1016
  "use client";
1019
1017
 
1020
1018
  import { ComponentPropsWithoutRef, forwardRef } from "react";
1019
+ import { Slottable } from "@radix-ui/react-slot";
1021
1020
 
1022
1021
  import {
1023
1022
  Tooltip,
1024
1023
  TooltipContent,
1025
- TooltipProvider,
1026
1024
  TooltipTrigger,
1027
1025
  } from "@/components/ui/tooltip";
1028
1026
  import { Button } from "@/components/ui/button";
@@ -1038,23 +1036,21 @@ export const TooltipIconButton = forwardRef<
1038
1036
  TooltipIconButtonProps
1039
1037
  >(({ children, tooltip, side = "bottom", className, ...rest }, ref) => {
1040
1038
  return (
1041
- <TooltipProvider>
1042
- <Tooltip>
1043
- <TooltipTrigger asChild>
1044
- <Button
1045
- variant="ghost"
1046
- size="icon"
1047
- {...rest}
1048
- className={cn("size-6 p-1", className)}
1049
- ref={ref}
1050
- >
1051
- {children}
1052
- <span className="sr-only">{tooltip}</span>
1053
- </Button>
1054
- </TooltipTrigger>
1055
- <TooltipContent side={side}>{tooltip}</TooltipContent>
1056
- </Tooltip>
1057
- </TooltipProvider>
1039
+ <Tooltip>
1040
+ <TooltipTrigger asChild>
1041
+ <Button
1042
+ variant="ghost"
1043
+ size="icon"
1044
+ {...rest}
1045
+ className={cn("size-6 p-1", className)}
1046
+ ref={ref}
1047
+ >
1048
+ <Slottable>{children}</Slottable>
1049
+ <span className="sr-only">{tooltip}</span>
1050
+ </Button>
1051
+ </TooltipTrigger>
1052
+ <TooltipContent side={side}>{tooltip}</TooltipContent>
1053
+ </Tooltip>
1058
1054
  );
1059
1055
  });
1060
1056
 
@@ -1562,29 +1558,58 @@ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
1562
1558
 
1563
1559
  import { cn } from "@/lib/utils";
1564
1560
 
1565
- const TooltipProvider = TooltipPrimitive.Provider;
1561
+ function TooltipProvider({
1562
+ delayDuration = 0,
1563
+ ...props
1564
+ }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {
1565
+ return (
1566
+ <TooltipPrimitive.Provider
1567
+ data-slot="tooltip-provider"
1568
+ delayDuration={delayDuration}
1569
+ {...props}
1570
+ />
1571
+ );
1572
+ }
1566
1573
 
1567
- const Tooltip = TooltipPrimitive.Root;
1574
+ function Tooltip({
1575
+ ...props
1576
+ }: React.ComponentProps<typeof TooltipPrimitive.Root>) {
1577
+ return (
1578
+ <TooltipProvider>
1579
+ <TooltipPrimitive.Root data-slot="tooltip" {...props} />
1580
+ </TooltipProvider>
1581
+ );
1582
+ }
1568
1583
 
1569
- const TooltipTrigger = TooltipPrimitive.Trigger;
1584
+ function TooltipTrigger({
1585
+ ...props
1586
+ }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
1587
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />;
1588
+ }
1570
1589
 
1571
- const TooltipContent = React.forwardRef<
1572
- React.ElementRef<typeof TooltipPrimitive.Content>,
1573
- React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
1574
- >(({ className, sideOffset = 4, ...props }, ref) => (
1575
- <TooltipPrimitive.Portal>
1576
- <TooltipPrimitive.Content
1577
- ref={ref}
1578
- sideOffset={sideOffset}
1579
- className={cn(
1580
- "bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 origin-[--radix-tooltip-content-transform-origin] overflow-hidden rounded-md px-3 py-1.5 text-xs",
1581
- className,
1582
- )}
1583
- {...props}
1584
- />
1585
- </TooltipPrimitive.Portal>
1586
- ));
1587
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
1590
+ function TooltipContent({
1591
+ className,
1592
+ sideOffset = 0,
1593
+ children,
1594
+ ...props
1595
+ }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
1596
+ return (
1597
+ <TooltipPrimitive.Portal>
1598
+ <TooltipPrimitive.Content
1599
+ data-slot="tooltip-content"
1600
+ sideOffset={sideOffset}
1601
+ className={cn(
1602
+ "bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-tooltip-content-transform-origin) z-50 w-fit text-balance rounded-md px-3 py-1.5 text-xs",
1603
+ className,
1604
+ )}
1605
+ {...props}
1606
+ >
1607
+ {children}
1608
+ <TooltipPrimitive.Arrow className="bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" />
1609
+ </TooltipPrimitive.Content>
1610
+ </TooltipPrimitive.Portal>
1611
+ );
1612
+ }
1588
1613
 
1589
1614
  export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
1590
1615
 
@@ -1727,16 +1752,16 @@ export default nextConfig;
1727
1752
  "@assistant-ui/react": "workspace:*",
1728
1753
  "@assistant-ui/react-langgraph": "workspace:*",
1729
1754
  "@assistant-ui/react-markdown": "workspace:*",
1730
- "@langchain/langgraph-sdk": "^0.0.105",
1755
+ "@langchain/langgraph-sdk": "^0.0.107",
1731
1756
  "@radix-ui/react-slot": "^1.2.3",
1732
- "@radix-ui/react-tooltip": "^1.2.7",
1757
+ "@radix-ui/react-tooltip": "^1.2.8",
1733
1758
  "class-variance-authority": "^0.7.1",
1734
1759
  "clsx": "^2.1.1",
1735
1760
  "js-cookie": "^3.0.5",
1736
1761
  "jsonwebtoken": "^9.0.2",
1737
- "lucide-react": "^0.535.0",
1762
+ "lucide-react": "^0.539.0",
1738
1763
  "nanoid": "5.1.5",
1739
- "next": "15.4.5",
1764
+ "next": "15.4.6",
1740
1765
  "react": "19.1.1",
1741
1766
  "react-dom": "19.1.1",
1742
1767
  "remark-gfm": "^4.0.1",
@@ -1751,9 +1776,9 @@ export default nextConfig;
1751
1776
  "@types/react": "^19",
1752
1777
  "@types/react-dom": "^19",
1753
1778
  "eslint": "^9",
1754
- "eslint-config-next": "15.4.5",
1779
+ "eslint-config-next": "15.4.6",
1755
1780
  "postcss": "^8",
1756
- "tailwindcss": "^4.1.11",
1781
+ "tailwindcss": "^4.1.12",
1757
1782
  "typescript": "^5.9.2"
1758
1783
  }
1759
1784
  }
@@ -1808,6 +1833,7 @@ npm run dev
1808
1833
  "@/*": ["./*"],
1809
1834
  "@assistant-ui/*": ["../../packages/*/src"],
1810
1835
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
1836
+ "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
1811
1837
  "assistant-stream": ["../../packages/assistant-stream/src"],
1812
1838
  "assistant-stream/*": ["../../packages/assistant-stream/src/*"]
1813
1839
  }
@@ -1028,6 +1028,7 @@ const CircleStopIcon = () => {
1028
1028
  "use client";
1029
1029
 
1030
1030
  import { ComponentPropsWithoutRef, forwardRef } from "react";
1031
+ import { Slottable } from "@radix-ui/react-slot";
1031
1032
 
1032
1033
  import {
1033
1034
  Tooltip,
@@ -1056,7 +1057,7 @@ export const TooltipIconButton = forwardRef<
1056
1057
  className={cn("size-6 p-1", className)}
1057
1058
  ref={ref}
1058
1059
  >
1059
- {children}
1060
+ <Slottable>{children}</Slottable>
1060
1061
  <span className="sr-only">{tooltip}</span>
1061
1062
  </Button>
1062
1063
  </TooltipTrigger>
@@ -1247,15 +1248,15 @@ export default nextConfig;
1247
1248
  "lint": "next lint"
1248
1249
  },
1249
1250
  "dependencies": {
1250
- "@ai-sdk/openai": "^1.3.22",
1251
+ "@ai-sdk/openai": "^2.0.15",
1251
1252
  "@assistant-ui/react": "workspace:*",
1252
1253
  "@assistant-ui/react-markdown": "workspace:*",
1253
1254
  "@radix-ui/react-slot": "^1.2.3",
1254
- "@radix-ui/react-tooltip": "^1.2.7",
1255
+ "@radix-ui/react-tooltip": "^1.2.8",
1255
1256
  "class-variance-authority": "^0.7.1",
1256
1257
  "clsx": "^2.1.1",
1257
- "lucide-react": "^0.535.0",
1258
- "next": "15.4.5",
1258
+ "lucide-react": "^0.539.0",
1259
+ "next": "15.4.6",
1259
1260
  "react": "19.1.1",
1260
1261
  "react-dom": "19.1.1",
1261
1262
  "remark-gfm": "^4.0.1",
@@ -1268,9 +1269,9 @@ export default nextConfig;
1268
1269
  "@types/react": "^19",
1269
1270
  "@types/react-dom": "^19",
1270
1271
  "eslint": "^9",
1271
- "eslint-config-next": "15.4.5",
1272
+ "eslint-config-next": "15.4.6",
1272
1273
  "postcss": "^8",
1273
- "tailwindcss": "^4.1.11",
1274
+ "tailwindcss": "^4.1.12",
1274
1275
  "typescript": "^5"
1275
1276
  }
1276
1277
  }
@@ -1365,6 +1366,7 @@ This pattern is useful for:
1365
1366
  "@/*": ["./*"],
1366
1367
  "@assistant-ui/*": ["../../packages/*/src"],
1367
1368
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
1369
+ "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
1368
1370
  "assistant-stream": ["../../packages/assistant-stream/src"],
1369
1371
  "assistant-stream/*": ["../../packages/assistant-stream/src/*"]
1370
1372
  }