@assistant-ui/mcp-docs-server 0.1.10 → 0.1.12

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 (26) hide show
  1. package/.docs/organized/code-examples/with-ai-sdk-v5.md +23 -23
  2. package/.docs/organized/code-examples/with-assistant-transport.md +26 -26
  3. package/.docs/organized/code-examples/with-cloud.md +19 -19
  4. package/.docs/organized/code-examples/with-external-store.md +16 -16
  5. package/.docs/organized/code-examples/with-ffmpeg.md +20 -20
  6. package/.docs/organized/code-examples/with-langgraph.md +20 -20
  7. package/.docs/organized/code-examples/with-parent-id-grouping.md +16 -16
  8. package/.docs/organized/code-examples/with-react-hook-form.md +25 -25
  9. package/.docs/raw/docs/cloud/persistence/langgraph.mdx +22 -2
  10. package/.docs/raw/docs/getting-started.mdx +544 -153
  11. package/.docs/raw/docs/guides/Attachments.mdx +21 -0
  12. package/.docs/raw/docs/runtimes/ai-sdk/use-chat.mdx +2 -2
  13. package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +218 -0
  14. package/.docs/raw/docs/runtimes/custom/external-store.mdx +31 -24
  15. package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +8 -3
  16. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +1 -1
  17. package/.docs/raw/docs/ui/AssistantModal.mdx +21 -0
  18. package/.docs/raw/docs/ui/AssistantSidebar.mdx +21 -0
  19. package/.docs/raw/docs/ui/Attachment.mdx +21 -0
  20. package/.docs/raw/docs/ui/Markdown.mdx +22 -1
  21. package/.docs/raw/docs/ui/Mermaid.mdx +22 -1
  22. package/.docs/raw/docs/ui/SyntaxHighlighting.mdx +43 -2
  23. package/.docs/raw/docs/ui/Thread.mdx +9 -3
  24. package/.docs/raw/docs/ui/ThreadList.mdx +48 -2
  25. package/.docs/raw/docs/ui/ToolFallback.mdx +21 -0
  26. package/package.json +6 -6
@@ -552,7 +552,7 @@ const defaultComponents = memoizeMarkdownComponents({
552
552
  h2: ({ className, ...props }) => (
553
553
  <h2
554
554
  className={cn(
555
- "mb-4 mt-8 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
555
+ "mt-8 mb-4 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
556
556
  className,
557
557
  )}
558
558
  {...props}
@@ -561,7 +561,7 @@ const defaultComponents = memoizeMarkdownComponents({
561
561
  h3: ({ className, ...props }) => (
562
562
  <h3
563
563
  className={cn(
564
- "mb-4 mt-6 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
564
+ "mt-6 mb-4 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
565
565
  className,
566
566
  )}
567
567
  {...props}
@@ -570,7 +570,7 @@ const defaultComponents = memoizeMarkdownComponents({
570
570
  h4: ({ className, ...props }) => (
571
571
  <h4
572
572
  className={cn(
573
- "mb-4 mt-6 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
573
+ "mt-6 mb-4 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
574
574
  className,
575
575
  )}
576
576
  {...props}
@@ -593,7 +593,7 @@ const defaultComponents = memoizeMarkdownComponents({
593
593
  ),
594
594
  p: ({ className, ...props }) => (
595
595
  <p
596
- className={cn("mb-5 mt-5 leading-7 first:mt-0 last:mb-0", className)}
596
+ className={cn("mt-5 mb-5 leading-7 first:mt-0 last:mb-0", className)}
597
597
  {...props}
598
598
  />
599
599
  ),
@@ -790,7 +790,7 @@ const ThreadWelcomeSuggestions: FC = () => {
790
790
  method="replace"
791
791
  autoSend
792
792
  >
793
- <span className="line-clamp-2 text-ellipsis text-sm font-semibold">
793
+ <span className="line-clamp-2 text-sm font-semibold text-ellipsis">
794
794
  What is the weather in Tokyo?
795
795
  </span>
796
796
  </ThreadPrimitive.Suggestion>
@@ -800,7 +800,7 @@ const ThreadWelcomeSuggestions: FC = () => {
800
800
  method="replace"
801
801
  autoSend
802
802
  >
803
- <span className="line-clamp-2 text-ellipsis text-sm font-semibold">
803
+ <span className="line-clamp-2 text-sm font-semibold text-ellipsis">
804
804
  What is assistant-ui?
805
805
  </span>
806
806
  </ThreadPrimitive.Suggestion>
@@ -856,7 +856,7 @@ const UserMessage: FC = () => {
856
856
  <MessagePrimitive.Root className="grid w-full max-w-[var(--thread-max-width)] auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] gap-y-2 py-4 [&:where(>*)]:col-start-2">
857
857
  <UserActionBar />
858
858
 
859
- <div className="bg-muted text-foreground col-start-2 row-start-2 max-w-[calc(var(--thread-max-width)*0.8)] break-words rounded-3xl px-5 py-2.5">
859
+ <div className="bg-muted text-foreground col-start-2 row-start-2 max-w-[calc(var(--thread-max-width)*0.8)] rounded-3xl px-5 py-2.5 break-words">
860
860
  <MessagePrimitive.Parts />
861
861
  </div>
862
862
 
@@ -870,7 +870,7 @@ const UserActionBar: FC = () => {
870
870
  <ActionBarPrimitive.Root
871
871
  hideWhenRunning
872
872
  autohide="not-last"
873
- className="col-start-1 row-start-2 mr-3 mt-2.5 flex flex-col items-end"
873
+ className="col-start-1 row-start-2 mt-2.5 mr-3 flex flex-col items-end"
874
874
  >
875
875
  <ActionBarPrimitive.Edit asChild>
876
876
  <TooltipIconButton tooltip="Edit">
@@ -901,13 +901,13 @@ const EditComposer: FC = () => {
901
901
  const AssistantMessage: FC = () => {
902
902
  return (
903
903
  <MessagePrimitive.Root className="relative grid w-full max-w-[var(--thread-max-width)] grid-cols-[auto_auto_1fr] grid-rows-[auto_1fr] py-4">
904
- <div className="text-foreground col-span-2 col-start-2 row-start-1 my-1.5 max-w-[calc(var(--thread-max-width)*0.8)] break-words leading-7">
904
+ <div className="text-foreground col-span-2 col-start-2 row-start-1 my-1.5 max-w-[calc(var(--thread-max-width)*0.8)] leading-7 break-words">
905
905
  <MessagePrimitive.Parts components={{ Text: MarkdownText }} />
906
906
  </div>
907
907
 
908
908
  <AssistantActionBar />
909
909
 
910
- <BranchPicker className="col-start-2 row-start-2 -ml-2 mr-2" />
910
+ <BranchPicker className="col-start-2 row-start-2 mr-2 -ml-2" />
911
911
  </MessagePrimitive.Root>
912
912
  );
913
913
  };
@@ -1151,7 +1151,7 @@ function TooltipContent({
1151
1151
  data-slot="tooltip-content"
1152
1152
  sideOffset={sideOffset}
1153
1153
  className={cn(
1154
- "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 w-fit origin-[--radix-tooltip-content-transform-origin] text-balance rounded-md px-3 py-1.5 text-xs",
1154
+ "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 w-fit origin-[--radix-tooltip-content-transform-origin] rounded-md px-3 py-1.5 text-xs text-balance",
1155
1155
  className,
1156
1156
  )}
1157
1157
  {...props}
@@ -1191,7 +1191,7 @@ export function cn(...inputs: ClassValue[]) {
1191
1191
  ```typescript
1192
1192
  /// <reference types="next" />
1193
1193
  /// <reference types="next/image-types/global" />
1194
- /// <reference path="./.next/types/routes.d.ts" />
1194
+ import "./.next/types/routes.d.ts";
1195
1195
 
1196
1196
  // NOTE: This file should not be edited
1197
1197
  // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
@@ -1225,7 +1225,7 @@ export default nextConfig;
1225
1225
  "lint": "eslint ."
1226
1226
  },
1227
1227
  "dependencies": {
1228
- "@ai-sdk/openai": "^2.0.42",
1228
+ "@ai-sdk/openai": "^2.0.53",
1229
1229
  "@assistant-ui/react": "workspace:*",
1230
1230
  "@assistant-ui/react-ai-sdk": "workspace:*",
1231
1231
  "@assistant-ui/react-hook-form": "workspace:*",
@@ -1240,20 +1240,20 @@ export default nextConfig;
1240
1240
  "@radix-ui/react-tabs": "^1.1.13",
1241
1241
  "@radix-ui/react-tooltip": "^1.2.8",
1242
1242
  "@react-hook/media-query": "^1.1.1",
1243
- "ai": "^5.0.59",
1243
+ "ai": "^5.0.76",
1244
1244
  "class-variance-authority": "^0.7.1",
1245
1245
  "clsx": "^2.1.1",
1246
1246
  "json-schema-to-zod": "^2.6.1",
1247
- "lucide-react": "^0.544.0",
1248
- "next": "15.5.4",
1247
+ "lucide-react": "^0.546.0",
1248
+ "next": "16.0.0",
1249
1249
  "react": "19.2.0",
1250
1250
  "react-dom": "19.2.0",
1251
- "react-hook-form": "^7.63.0",
1251
+ "react-hook-form": "^7.65.0",
1252
1252
  "react-resizable-panels": "^3.0.6",
1253
1253
  "remark-gfm": "^4.0.1",
1254
1254
  "tailwind-merge": "^3.3.1",
1255
1255
  "tw-animate-css": "^1.4.0",
1256
- "zod": "^4.1.11",
1256
+ "zod": "^4.1.12",
1257
1257
  "zustand": "^5.0.8"
1258
1258
  },
1259
1259
  "devDependencies": {
@@ -1262,9 +1262,9 @@ export default nextConfig;
1262
1262
  "@types/react": "^19",
1263
1263
  "@types/react-dom": "^19",
1264
1264
  "eslint": "^9",
1265
- "eslint-config-next": "15.5.4",
1265
+ "eslint-config-next": "16.0.0",
1266
1266
  "postcss": "^8",
1267
- "tailwindcss": "^4.1.14",
1267
+ "tailwindcss": "^4.1.15",
1268
1268
  "typescript": "^5.9.3"
1269
1269
  }
1270
1270
  }
@@ -417,7 +417,7 @@ const defaultComponents = memoizeMarkdownComponents({
417
417
  h2: ({ className, ...props }) => (
418
418
  <h2
419
419
  className={cn(
420
- "mb-4 mt-8 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
420
+ "mt-8 mb-4 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
421
421
  className,
422
422
  )}
423
423
  {...props}
@@ -426,7 +426,7 @@ const defaultComponents = memoizeMarkdownComponents({
426
426
  h3: ({ className, ...props }) => (
427
427
  <h3
428
428
  className={cn(
429
- "mb-4 mt-6 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
429
+ "mt-6 mb-4 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
430
430
  className,
431
431
  )}
432
432
  {...props}
@@ -435,7 +435,7 @@ const defaultComponents = memoizeMarkdownComponents({
435
435
  h4: ({ className, ...props }) => (
436
436
  <h4
437
437
  className={cn(
438
- "mb-4 mt-6 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
438
+ "mt-6 mb-4 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
439
439
  className,
440
440
  )}
441
441
  {...props}
@@ -458,7 +458,7 @@ const defaultComponents = memoizeMarkdownComponents({
458
458
  ),
459
459
  p: ({ className, ...props }) => (
460
460
  <p
461
- className={cn("mb-5 mt-5 leading-7 first:mt-0 last:mb-0", className)}
461
+ className={cn("mt-5 mb-5 leading-7 first:mt-0 last:mb-0", className)}
462
462
  {...props}
463
463
  />
464
464
  ),
@@ -602,7 +602,7 @@ const ThreadListItems: FC = () => {
602
602
 
603
603
  const ThreadListItem: FC = () => {
604
604
  return (
605
- <ThreadListItemPrimitive.Root className="data-[active]:bg-muted hover:bg-muted focus-visible:bg-muted focus-visible:ring-ring flex items-center gap-2 rounded-lg transition-all focus-visible:outline-none focus-visible:ring-2">
605
+ <ThreadListItemPrimitive.Root className="data-[active]:bg-muted hover:bg-muted focus-visible:bg-muted focus-visible:ring-ring flex items-center gap-2 rounded-lg transition-all focus-visible:ring-2 focus-visible:outline-none">
606
606
  <ThreadListItemPrimitive.Trigger className="flex-grow px-3 py-2 text-start">
607
607
  <ThreadListItemTitle />
608
608
  </ThreadListItemPrimitive.Trigger>
@@ -623,7 +623,7 @@ const ThreadListItemArchive: FC = () => {
623
623
  return (
624
624
  <ThreadListItemPrimitive.Archive asChild>
625
625
  <TooltipIconButton
626
- className="hover:text-primary text-foreground ml-auto mr-3 size-4 p-0"
626
+ className="hover:text-primary text-foreground mr-3 ml-auto size-4 p-0"
627
627
  variant="ghost"
628
628
  tooltip="Archive thread"
629
629
  >
@@ -730,7 +730,7 @@ const ThreadWelcomeSuggestions: FC = () => {
730
730
  method="replace"
731
731
  autoSend
732
732
  >
733
- <span className="line-clamp-2 text-ellipsis text-sm font-semibold">
733
+ <span className="line-clamp-2 text-sm font-semibold text-ellipsis">
734
734
  What is the weather in Tokyo?
735
735
  </span>
736
736
  </ThreadPrimitive.Suggestion>
@@ -740,7 +740,7 @@ const ThreadWelcomeSuggestions: FC = () => {
740
740
  method="replace"
741
741
  autoSend
742
742
  >
743
- <span className="line-clamp-2 text-ellipsis text-sm font-semibold">
743
+ <span className="line-clamp-2 text-sm font-semibold text-ellipsis">
744
744
  What is assistant-ui?
745
745
  </span>
746
746
  </ThreadPrimitive.Suggestion>
@@ -796,7 +796,7 @@ const UserMessage: FC = () => {
796
796
  <MessagePrimitive.Root className="grid w-full max-w-[var(--thread-max-width)] auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] gap-y-2 py-4 [&:where(>*)]:col-start-2">
797
797
  <UserActionBar />
798
798
 
799
- <div className="bg-muted text-foreground col-start-2 row-start-2 max-w-[calc(var(--thread-max-width)*0.8)] break-words rounded-3xl px-5 py-2.5">
799
+ <div className="bg-muted text-foreground col-start-2 row-start-2 max-w-[calc(var(--thread-max-width)*0.8)] rounded-3xl px-5 py-2.5 break-words">
800
800
  <MessagePrimitive.Parts />
801
801
  </div>
802
802
 
@@ -810,7 +810,7 @@ const UserActionBar: FC = () => {
810
810
  <ActionBarPrimitive.Root
811
811
  hideWhenRunning
812
812
  autohide="not-last"
813
- className="col-start-1 row-start-2 mr-3 mt-2.5 flex flex-col items-end"
813
+ className="col-start-1 row-start-2 mt-2.5 mr-3 flex flex-col items-end"
814
814
  >
815
815
  <ActionBarPrimitive.Edit asChild>
816
816
  <TooltipIconButton tooltip="Edit">
@@ -841,13 +841,13 @@ const EditComposer: FC = () => {
841
841
  const AssistantMessage: FC = () => {
842
842
  return (
843
843
  <MessagePrimitive.Root className="relative grid w-full max-w-[var(--thread-max-width)] grid-cols-[auto_auto_1fr] grid-rows-[auto_1fr] py-4">
844
- <div className="text-foreground col-span-2 col-start-2 row-start-1 my-1.5 max-w-[calc(var(--thread-max-width)*0.8)] break-words leading-7">
844
+ <div className="text-foreground col-span-2 col-start-2 row-start-1 my-1.5 max-w-[calc(var(--thread-max-width)*0.8)] leading-7 break-words">
845
845
  <MessagePrimitive.Parts components={{ Text: MarkdownText }} />
846
846
  </div>
847
847
 
848
848
  <AssistantActionBar />
849
849
 
850
- <BranchPicker className="col-start-2 row-start-2 -ml-2 mr-2" />
850
+ <BranchPicker className="col-start-2 row-start-2 mr-2 -ml-2" />
851
851
  </MessagePrimitive.Root>
852
852
  );
853
853
  };
@@ -1414,7 +1414,7 @@ const CardTitle = React.forwardRef<
1414
1414
  >(({ className, ...props }, ref) => (
1415
1415
  <div
1416
1416
  ref={ref}
1417
- className={cn("font-semibold leading-none tracking-tight", className)}
1417
+ className={cn("leading-none font-semibold tracking-tight", className)}
1418
1418
  {...props}
1419
1419
  />
1420
1420
  ));
@@ -1514,7 +1514,7 @@ function TooltipContent({
1514
1514
  data-slot="tooltip-content"
1515
1515
  sideOffset={sideOffset}
1516
1516
  className={cn(
1517
- "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",
1517
+ "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 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
1518
1518
  className,
1519
1519
  )}
1520
1520
  {...props}
@@ -1631,7 +1631,7 @@ export function cn(...inputs: ClassValue[]) {
1631
1631
  ```typescript
1632
1632
  /// <reference types="next" />
1633
1633
  /// <reference types="next/image-types/global" />
1634
- /// <reference path="./.next/types/routes.d.ts" />
1634
+ import "./.next/types/routes.d.ts";
1635
1635
 
1636
1636
  // NOTE: This file should not be edited
1637
1637
  // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
@@ -1675,16 +1675,16 @@ export default nextConfig;
1675
1675
  "@assistant-ui/react": "workspace:*",
1676
1676
  "@assistant-ui/react-langgraph": "workspace:*",
1677
1677
  "@assistant-ui/react-markdown": "workspace:*",
1678
- "@langchain/langgraph-sdk": "^0.1.9",
1678
+ "@langchain/langgraph-sdk": "^1.0.0",
1679
1679
  "@radix-ui/react-slot": "^1.2.3",
1680
1680
  "@radix-ui/react-tooltip": "^1.2.8",
1681
1681
  "class-variance-authority": "^0.7.1",
1682
1682
  "clsx": "^2.1.1",
1683
1683
  "js-cookie": "^3.0.5",
1684
1684
  "jsonwebtoken": "^9.0.2",
1685
- "lucide-react": "^0.544.0",
1685
+ "lucide-react": "^0.546.0",
1686
1686
  "nanoid": "5.1.6",
1687
- "next": "15.5.4",
1687
+ "next": "16.0.0",
1688
1688
  "react": "19.2.0",
1689
1689
  "react-dom": "19.2.0",
1690
1690
  "remark-gfm": "^4.0.1",
@@ -1699,9 +1699,9 @@ export default nextConfig;
1699
1699
  "@types/react": "^19",
1700
1700
  "@types/react-dom": "^19",
1701
1701
  "eslint": "^9",
1702
- "eslint-config-next": "15.5.4",
1702
+ "eslint-config-next": "16.0.0",
1703
1703
  "postcss": "^8",
1704
- "tailwindcss": "^4.1.14",
1704
+ "tailwindcss": "^4.1.15",
1705
1705
  "typescript": "^5.9.3"
1706
1706
  }
1707
1707
  }
@@ -503,7 +503,7 @@ const defaultComponents = memoizeMarkdownComponents({
503
503
  h2: ({ className, ...props }) => (
504
504
  <h2
505
505
  className={cn(
506
- "mb-4 mt-8 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
506
+ "mt-8 mb-4 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
507
507
  className,
508
508
  )}
509
509
  {...props}
@@ -512,7 +512,7 @@ const defaultComponents = memoizeMarkdownComponents({
512
512
  h3: ({ className, ...props }) => (
513
513
  <h3
514
514
  className={cn(
515
- "mb-4 mt-6 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
515
+ "mt-6 mb-4 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
516
516
  className,
517
517
  )}
518
518
  {...props}
@@ -521,7 +521,7 @@ const defaultComponents = memoizeMarkdownComponents({
521
521
  h4: ({ className, ...props }) => (
522
522
  <h4
523
523
  className={cn(
524
- "mb-4 mt-6 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
524
+ "mt-6 mb-4 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
525
525
  className,
526
526
  )}
527
527
  {...props}
@@ -544,7 +544,7 @@ const defaultComponents = memoizeMarkdownComponents({
544
544
  ),
545
545
  p: ({ className, ...props }) => (
546
546
  <p
547
- className={cn("mb-5 mt-5 leading-7 first:mt-0 last:mb-0", className)}
547
+ className={cn("mt-5 mb-5 leading-7 first:mt-0 last:mb-0", className)}
548
548
  {...props}
549
549
  />
550
550
  ),
@@ -748,7 +748,7 @@ const ThreadWelcomeSuggestions: FC = () => {
748
748
  method="replace"
749
749
  autoSend
750
750
  >
751
- <span className="line-clamp-2 text-ellipsis text-sm font-semibold">
751
+ <span className="line-clamp-2 text-sm font-semibold text-ellipsis">
752
752
  Tell me more about this
753
753
  </span>
754
754
  </ThreadPrimitive.Suggestion>
@@ -758,7 +758,7 @@ const ThreadWelcomeSuggestions: FC = () => {
758
758
  method="replace"
759
759
  autoSend
760
760
  >
761
- <span className="line-clamp-2 text-ellipsis text-sm font-semibold">
761
+ <span className="line-clamp-2 text-sm font-semibold text-ellipsis">
762
762
  What are the latest updates?
763
763
  </span>
764
764
  </ThreadPrimitive.Suggestion>
@@ -814,7 +814,7 @@ const UserMessage: FC = () => {
814
814
  <MessagePrimitive.Root className="grid w-full max-w-[var(--thread-max-width)] auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] gap-y-2 py-4 [&:where(>*)]:col-start-2">
815
815
  <UserActionBar />
816
816
 
817
- <div className="bg-muted text-foreground col-start-2 row-start-2 max-w-[calc(var(--thread-max-width)*0.8)] break-words rounded-3xl px-5 py-2.5">
817
+ <div className="bg-muted text-foreground col-start-2 row-start-2 max-w-[calc(var(--thread-max-width)*0.8)] rounded-3xl px-5 py-2.5 break-words">
818
818
  <MessagePrimitive.Parts />
819
819
  </div>
820
820
 
@@ -828,7 +828,7 @@ const UserActionBar: FC = () => {
828
828
  <ActionBarPrimitive.Root
829
829
  hideWhenRunning
830
830
  autohide="not-last"
831
- className="col-start-1 row-start-2 mr-3 mt-2.5 flex flex-col items-end"
831
+ className="col-start-1 row-start-2 mt-2.5 mr-3 flex flex-col items-end"
832
832
  >
833
833
  <ActionBarPrimitive.Edit asChild>
834
834
  <TooltipIconButton tooltip="Edit">
@@ -904,7 +904,7 @@ const ParentIdGroup: FC<
904
904
  const AssistantMessage: FC = () => {
905
905
  return (
906
906
  <MessagePrimitive.Root className="relative grid w-full max-w-[var(--thread-max-width)] grid-cols-[auto_auto_1fr] grid-rows-[auto_1fr] py-4">
907
- <div className="text-foreground col-span-2 col-start-2 row-start-1 my-1.5 max-w-[calc(var(--thread-max-width)*0.8)] break-words leading-7">
907
+ <div className="text-foreground col-span-2 col-start-2 row-start-1 my-1.5 max-w-[calc(var(--thread-max-width)*0.8)] leading-7 break-words">
908
908
  <MessagePrimitive.Unstable_PartsGroupedByParentId
909
909
  components={{
910
910
  Text: MarkdownText,
@@ -944,7 +944,7 @@ const AssistantMessage: FC = () => {
944
944
 
945
945
  <AssistantActionBar />
946
946
 
947
- <BranchPicker className="col-start-2 row-start-2 -ml-2 mr-2" />
947
+ <BranchPicker className="col-start-2 row-start-2 mr-2 -ml-2" />
948
948
  </MessagePrimitive.Root>
949
949
  );
950
950
  };
@@ -1186,7 +1186,7 @@ function TooltipContent({
1186
1186
  data-slot="tooltip-content"
1187
1187
  sideOffset={sideOffset}
1188
1188
  className={cn(
1189
- "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 w-fit origin-[--radix-tooltip-content-transform-origin] text-balance rounded-md px-3 py-1.5 text-xs",
1189
+ "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 w-fit origin-[--radix-tooltip-content-transform-origin] rounded-md px-3 py-1.5 text-xs text-balance",
1190
1190
  className,
1191
1191
  )}
1192
1192
  {...props}
@@ -1248,15 +1248,15 @@ export default nextConfig;
1248
1248
  "lint": "eslint ."
1249
1249
  },
1250
1250
  "dependencies": {
1251
- "@ai-sdk/openai": "^2.0.42",
1251
+ "@ai-sdk/openai": "^2.0.53",
1252
1252
  "@assistant-ui/react": "workspace:*",
1253
1253
  "@assistant-ui/react-markdown": "workspace:*",
1254
1254
  "@radix-ui/react-slot": "^1.2.3",
1255
1255
  "@radix-ui/react-tooltip": "^1.2.8",
1256
1256
  "class-variance-authority": "^0.7.1",
1257
1257
  "clsx": "^2.1.1",
1258
- "lucide-react": "^0.544.0",
1259
- "next": "15.5.4",
1258
+ "lucide-react": "^0.546.0",
1259
+ "next": "16.0.0",
1260
1260
  "react": "19.2.0",
1261
1261
  "react-dom": "19.2.0",
1262
1262
  "remark-gfm": "^4.0.1",
@@ -1269,9 +1269,9 @@ export default nextConfig;
1269
1269
  "@types/react": "^19",
1270
1270
  "@types/react-dom": "^19",
1271
1271
  "eslint": "^9",
1272
- "eslint-config-next": "15.5.4",
1272
+ "eslint-config-next": "16.0.0",
1273
1273
  "postcss": "^8",
1274
- "tailwindcss": "^4.1.14",
1274
+ "tailwindcss": "^4.1.15",
1275
1275
  "typescript": "^5"
1276
1276
  }
1277
1277
  }
@@ -444,7 +444,7 @@ const defaultComponents = memoizeMarkdownComponents({
444
444
  h2: ({ className, ...props }) => (
445
445
  <h2
446
446
  className={cn(
447
- "mb-4 mt-8 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
447
+ "mt-8 mb-4 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
448
448
  className,
449
449
  )}
450
450
  {...props}
@@ -453,7 +453,7 @@ const defaultComponents = memoizeMarkdownComponents({
453
453
  h3: ({ className, ...props }) => (
454
454
  <h3
455
455
  className={cn(
456
- "mb-4 mt-6 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
456
+ "mt-6 mb-4 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
457
457
  className,
458
458
  )}
459
459
  {...props}
@@ -462,7 +462,7 @@ const defaultComponents = memoizeMarkdownComponents({
462
462
  h4: ({ className, ...props }) => (
463
463
  <h4
464
464
  className={cn(
465
- "mb-4 mt-6 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
465
+ "mt-6 mb-4 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
466
466
  className,
467
467
  )}
468
468
  {...props}
@@ -485,7 +485,7 @@ const defaultComponents = memoizeMarkdownComponents({
485
485
  ),
486
486
  p: ({ className, ...props }) => (
487
487
  <p
488
- className={cn("mb-5 mt-5 leading-7 first:mt-0 last:mb-0", className)}
488
+ className={cn("mt-5 mb-5 leading-7 first:mt-0 last:mb-0", className)}
489
489
  {...props}
490
490
  />
491
491
  ),
@@ -682,7 +682,7 @@ const ThreadWelcomeSuggestions: FC = () => {
682
682
  method="replace"
683
683
  autoSend
684
684
  >
685
- <span className="line-clamp-2 text-ellipsis text-sm font-semibold">
685
+ <span className="line-clamp-2 text-sm font-semibold text-ellipsis">
686
686
  What is the weather in Tokyo?
687
687
  </span>
688
688
  </ThreadPrimitive.Suggestion>
@@ -692,7 +692,7 @@ const ThreadWelcomeSuggestions: FC = () => {
692
692
  method="replace"
693
693
  autoSend
694
694
  >
695
- <span className="line-clamp-2 text-ellipsis text-sm font-semibold">
695
+ <span className="line-clamp-2 text-sm font-semibold text-ellipsis">
696
696
  What is assistant-ui?
697
697
  </span>
698
698
  </ThreadPrimitive.Suggestion>
@@ -748,7 +748,7 @@ const UserMessage: FC = () => {
748
748
  <MessagePrimitive.Root className="grid w-full max-w-[var(--thread-max-width)] auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] gap-y-2 py-4 [&:where(>*)]:col-start-2">
749
749
  <UserActionBar />
750
750
 
751
- <div className="bg-muted text-foreground col-start-2 row-start-2 max-w-[calc(var(--thread-max-width)*0.8)] break-words rounded-3xl px-5 py-2.5">
751
+ <div className="bg-muted text-foreground col-start-2 row-start-2 max-w-[calc(var(--thread-max-width)*0.8)] rounded-3xl px-5 py-2.5 break-words">
752
752
  <MessagePrimitive.Parts />
753
753
  </div>
754
754
 
@@ -762,7 +762,7 @@ const UserActionBar: FC = () => {
762
762
  <ActionBarPrimitive.Root
763
763
  hideWhenRunning
764
764
  autohide="not-last"
765
- className="col-start-1 row-start-2 mr-3 mt-2.5 flex flex-col items-end"
765
+ className="col-start-1 row-start-2 mt-2.5 mr-3 flex flex-col items-end"
766
766
  >
767
767
  <ActionBarPrimitive.Edit asChild>
768
768
  <TooltipIconButton tooltip="Edit">
@@ -793,13 +793,13 @@ const EditComposer: FC = () => {
793
793
  const AssistantMessage: FC = () => {
794
794
  return (
795
795
  <MessagePrimitive.Root className="relative grid w-full max-w-[var(--thread-max-width)] grid-cols-[auto_auto_1fr] grid-rows-[auto_1fr] py-4">
796
- <div className="text-foreground col-span-2 col-start-2 row-start-1 my-1.5 max-w-[calc(var(--thread-max-width)*0.8)] break-words leading-7">
796
+ <div className="text-foreground col-span-2 col-start-2 row-start-1 my-1.5 max-w-[calc(var(--thread-max-width)*0.8)] leading-7 break-words">
797
797
  <MessagePrimitive.Parts components={{ Text: MarkdownText }} />
798
798
  </div>
799
799
 
800
800
  <AssistantActionBar />
801
801
 
802
- <BranchPicker className="col-start-2 row-start-2 -ml-2 mr-2" />
802
+ <BranchPicker className="col-start-2 row-start-2 mr-2 -ml-2" />
803
803
  </MessagePrimitive.Root>
804
804
  );
805
805
  };
@@ -1326,7 +1326,7 @@ function Input({ className, type, ...props }: React.ComponentProps<"input">) {
1326
1326
  type={type}
1327
1327
  data-slot="input"
1328
1328
  className={cn(
1329
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input shadow-xs flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base outline-none transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1329
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1330
1330
  "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
1331
1331
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
1332
1332
  className,
@@ -1358,7 +1358,7 @@ function Label({
1358
1358
  <LabelPrimitive.Root
1359
1359
  data-slot="label"
1360
1360
  className={cn(
1361
- "flex select-none items-center gap-2 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",
1361
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
1362
1362
  className,
1363
1363
  )}
1364
1364
  {...props}
@@ -1414,13 +1414,13 @@ function ResizableHandle({
1414
1414
  <ResizablePrimitive.PanelResizeHandle
1415
1415
  data-slot="resizable-handle"
1416
1416
  className={cn(
1417
- "bg-border focus-visible:ring-ring focus-visible:outline-hidden relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
1417
+ "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
1418
1418
  className,
1419
1419
  )}
1420
1420
  {...props}
1421
1421
  >
1422
1422
  {withHandle && (
1423
- <div className="bg-border rounded-xs z-10 flex h-4 w-3 items-center justify-center border">
1423
+ <div className="bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border">
1424
1424
  <GripVerticalIcon className="size-2.5" />
1425
1425
  </div>
1426
1426
  )}
@@ -1479,7 +1479,7 @@ function TabsTrigger({
1479
1479
  <TabsPrimitive.Trigger
1480
1480
  data-slot="tabs-trigger"
1481
1481
  className={cn(
1482
- "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-2 py-1 text-sm font-medium transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1482
+ "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1483
1483
  className,
1484
1484
  )}
1485
1485
  {...props}
@@ -1555,7 +1555,7 @@ function TooltipContent({
1555
1555
  data-slot="tooltip-content"
1556
1556
  sideOffset={sideOffset}
1557
1557
  className={cn(
1558
- "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 w-fit origin-[--radix-tooltip-content-transform-origin] text-balance rounded-md px-3 py-1.5 text-xs",
1558
+ "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 w-fit origin-[--radix-tooltip-content-transform-origin] rounded-md px-3 py-1.5 text-xs text-balance",
1559
1559
  className,
1560
1560
  )}
1561
1561
  {...props}
@@ -1613,7 +1613,7 @@ export function cn(...inputs: ClassValue[]) {
1613
1613
  ```typescript
1614
1614
  /// <reference types="next" />
1615
1615
  /// <reference types="next/image-types/global" />
1616
- /// <reference path="./.next/types/routes.d.ts" />
1616
+ import "./.next/types/routes.d.ts";
1617
1617
 
1618
1618
  // NOTE: This file should not be edited
1619
1619
  // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
@@ -1647,7 +1647,7 @@ export default nextConfig;
1647
1647
  "lint": "eslint ."
1648
1648
  },
1649
1649
  "dependencies": {
1650
- "@ai-sdk/openai": "^2.0.42",
1650
+ "@ai-sdk/openai": "^2.0.53",
1651
1651
  "@assistant-ui/react": "workspace:*",
1652
1652
  "@assistant-ui/react-ai-sdk": "workspace:*",
1653
1653
  "@assistant-ui/react-hook-form": "workspace:*",
@@ -1660,20 +1660,20 @@ export default nextConfig;
1660
1660
  "@radix-ui/react-tabs": "^1.1.13",
1661
1661
  "@radix-ui/react-tooltip": "^1.2.8",
1662
1662
  "@react-hook/media-query": "^1.1.1",
1663
- "ai": "^5.0.59",
1663
+ "ai": "^5.0.76",
1664
1664
  "class-variance-authority": "^0.7.1",
1665
1665
  "clsx": "^2.1.1",
1666
1666
  "json-schema-to-zod": "^2.6.1",
1667
- "lucide-react": "^0.544.0",
1668
- "next": "15.5.4",
1667
+ "lucide-react": "^0.546.0",
1668
+ "next": "16.0.0",
1669
1669
  "react": "19.2.0",
1670
1670
  "react-dom": "19.2.0",
1671
- "react-hook-form": "^7.63.0",
1671
+ "react-hook-form": "^7.65.0",
1672
1672
  "react-resizable-panels": "^3.0.6",
1673
1673
  "remark-gfm": "^4.0.1",
1674
1674
  "tailwind-merge": "^3.3.1",
1675
1675
  "tw-animate-css": "^1.4.0",
1676
- "zod": "^4.1.11",
1676
+ "zod": "^4.1.12",
1677
1677
  "zustand": "^5.0.8"
1678
1678
  },
1679
1679
  "devDependencies": {
@@ -1682,9 +1682,9 @@ export default nextConfig;
1682
1682
  "@types/react": "^19",
1683
1683
  "@types/react-dom": "^19",
1684
1684
  "eslint": "^9",
1685
- "eslint-config-next": "15.5.4",
1685
+ "eslint-config-next": "16.0.0",
1686
1686
  "postcss": "^8",
1687
- "tailwindcss": "^4.1.14",
1687
+ "tailwindcss": "^4.1.15",
1688
1688
  "typescript": "^5.9.3"
1689
1689
  }
1690
1690
  }