@assistant-ui/mcp-docs-server 0.1.17 → 0.1.18

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 (95) hide show
  1. package/.docs/organized/code-examples/with-ag-ui.md +146 -152
  2. package/.docs/organized/code-examples/with-ai-sdk-v5.md +96 -101
  3. package/.docs/organized/code-examples/with-assistant-transport.md +132 -220
  4. package/.docs/organized/code-examples/with-cloud.md +124 -131
  5. package/.docs/organized/code-examples/with-custom-thread-list.md +26 -46
  6. package/.docs/organized/code-examples/with-external-store.md +146 -151
  7. package/.docs/organized/code-examples/with-ffmpeg.md +129 -139
  8. package/.docs/organized/code-examples/with-langgraph.md +231 -225
  9. package/.docs/organized/code-examples/with-parent-id-grouping.md +146 -151
  10. package/.docs/organized/code-examples/with-react-hook-form.md +146 -152
  11. package/.docs/organized/code-examples/{store-example.md → with-store.md} +16 -20
  12. package/.docs/organized/code-examples/with-tanstack.md +23 -41
  13. package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +36 -0
  14. package/.docs/raw/docs/runtimes/custom/local.mdx +31 -8
  15. package/.docs/raw/docs/ui/Scrollbar.mdx +0 -6
  16. package/dist/constants.d.ts +10 -0
  17. package/dist/constants.d.ts.map +1 -0
  18. package/dist/constants.js +14 -0
  19. package/dist/constants.js.map +1 -0
  20. package/dist/index.d.ts +4 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +33 -1
  23. package/dist/index.js.map +1 -0
  24. package/dist/prepare-docs/code-examples.d.ts +2 -0
  25. package/dist/prepare-docs/code-examples.d.ts.map +1 -0
  26. package/dist/prepare-docs/code-examples.js +129 -0
  27. package/dist/prepare-docs/code-examples.js.map +1 -0
  28. package/dist/prepare-docs/copy-raw.d.ts +2 -0
  29. package/dist/prepare-docs/copy-raw.d.ts.map +1 -0
  30. package/dist/prepare-docs/copy-raw.js +50 -0
  31. package/dist/prepare-docs/copy-raw.js.map +1 -0
  32. package/dist/prepare-docs/prepare.d.ts +2 -0
  33. package/dist/prepare-docs/prepare.d.ts.map +1 -0
  34. package/dist/prepare-docs/prepare.js +18 -195
  35. package/dist/prepare-docs/prepare.js.map +1 -0
  36. package/dist/stdio.d.ts +3 -0
  37. package/dist/stdio.d.ts.map +1 -0
  38. package/dist/stdio.js +4 -5
  39. package/dist/stdio.js.map +1 -0
  40. package/dist/tools/docs.d.ts +23 -0
  41. package/dist/tools/docs.d.ts.map +1 -0
  42. package/dist/tools/docs.js +168 -0
  43. package/dist/tools/docs.js.map +1 -0
  44. package/dist/tools/examples.d.ts +23 -0
  45. package/dist/tools/examples.d.ts.map +1 -0
  46. package/dist/tools/examples.js +95 -0
  47. package/dist/tools/examples.js.map +1 -0
  48. package/dist/tools/tests/test-setup.d.ts +4 -0
  49. package/dist/tools/tests/test-setup.d.ts.map +1 -0
  50. package/dist/tools/tests/test-setup.js +36 -0
  51. package/dist/tools/tests/test-setup.js.map +1 -0
  52. package/dist/utils/logger.d.ts +7 -0
  53. package/dist/utils/logger.d.ts.map +1 -0
  54. package/dist/utils/logger.js +20 -0
  55. package/dist/utils/logger.js.map +1 -0
  56. package/dist/utils/mcp-format.d.ts +7 -0
  57. package/dist/utils/mcp-format.d.ts.map +1 -0
  58. package/dist/utils/mcp-format.js +11 -0
  59. package/dist/utils/mcp-format.js.map +1 -0
  60. package/dist/utils/mdx.d.ts +9 -0
  61. package/dist/utils/mdx.d.ts.map +1 -0
  62. package/dist/utils/mdx.js +27 -0
  63. package/dist/utils/mdx.js.map +1 -0
  64. package/dist/utils/paths.d.ts +8 -0
  65. package/dist/utils/paths.d.ts.map +1 -0
  66. package/dist/utils/paths.js +84 -0
  67. package/dist/utils/paths.js.map +1 -0
  68. package/dist/utils/security.d.ts +2 -0
  69. package/dist/utils/security.d.ts.map +1 -0
  70. package/dist/utils/security.js +43 -0
  71. package/dist/utils/security.js.map +1 -0
  72. package/package.json +37 -19
  73. package/src/constants.ts +22 -0
  74. package/src/index.ts +51 -0
  75. package/src/prepare-docs/code-examples.ts +158 -0
  76. package/src/prepare-docs/copy-raw.ts +55 -0
  77. package/src/prepare-docs/prepare.ts +24 -0
  78. package/src/stdio.ts +7 -0
  79. package/src/tools/docs.ts +207 -0
  80. package/src/tools/examples.ts +107 -0
  81. package/src/tools/tests/docs.test.ts +122 -0
  82. package/src/tools/tests/examples.test.ts +94 -0
  83. package/src/tools/tests/integration.test.ts +46 -0
  84. package/src/tools/tests/json-parsing.test.ts +23 -0
  85. package/src/tools/tests/mcp-protocol.test.ts +133 -0
  86. package/src/tools/tests/path-traversal.test.ts +81 -0
  87. package/src/tools/tests/test-setup.ts +40 -0
  88. package/src/utils/logger.ts +20 -0
  89. package/src/utils/mcp-format.ts +12 -0
  90. package/src/utils/mdx.ts +39 -0
  91. package/src/utils/paths.ts +114 -0
  92. package/src/utils/security.ts +52 -0
  93. package/src/utils/tests/security.test.ts +119 -0
  94. package/dist/chunk-M2RKUM66.js +0 -38
  95. package/dist/chunk-NVNFQ5ZO.js +0 -423
@@ -36,43 +36,41 @@ export async function POST(req: Request) {
36
36
  @custom-variant dark (&:is(.dark *));
37
37
 
38
38
  @theme inline {
39
- --color-background: var(--background);
40
- --color-foreground: var(--foreground);
41
- --font-sans: var(--font-geist-sans);
42
- --font-mono: var(--font-geist-mono);
43
- --color-sidebar-ring: var(--sidebar-ring);
44
- --color-sidebar-border: var(--sidebar-border);
45
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
46
- --color-sidebar-accent: var(--sidebar-accent);
47
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
48
- --color-sidebar-primary: var(--sidebar-primary);
49
- --color-sidebar-foreground: var(--sidebar-foreground);
50
- --color-sidebar: var(--sidebar);
51
- --color-chart-5: var(--chart-5);
52
- --color-chart-4: var(--chart-4);
53
- --color-chart-3: var(--chart-3);
54
- --color-chart-2: var(--chart-2);
55
- --color-chart-1: var(--chart-1);
56
- --color-ring: var(--ring);
57
- --color-input: var(--input);
58
- --color-border: var(--border);
59
- --color-destructive: var(--destructive);
60
- --color-accent-foreground: var(--accent-foreground);
61
- --color-accent: var(--accent);
62
- --color-muted-foreground: var(--muted-foreground);
63
- --color-muted: var(--muted);
64
- --color-secondary-foreground: var(--secondary-foreground);
65
- --color-secondary: var(--secondary);
66
- --color-primary-foreground: var(--primary-foreground);
67
- --color-primary: var(--primary);
68
- --color-popover-foreground: var(--popover-foreground);
69
- --color-popover: var(--popover);
70
- --color-card-foreground: var(--card-foreground);
71
- --color-card: var(--card);
72
39
  --radius-sm: calc(var(--radius) - 4px);
73
40
  --radius-md: calc(var(--radius) - 2px);
74
41
  --radius-lg: var(--radius);
75
42
  --radius-xl: calc(var(--radius) + 4px);
43
+ --color-background: var(--background);
44
+ --color-foreground: var(--foreground);
45
+ --color-card: var(--card);
46
+ --color-card-foreground: var(--card-foreground);
47
+ --color-popover: var(--popover);
48
+ --color-popover-foreground: var(--popover-foreground);
49
+ --color-primary: var(--primary);
50
+ --color-primary-foreground: var(--primary-foreground);
51
+ --color-secondary: var(--secondary);
52
+ --color-secondary-foreground: var(--secondary-foreground);
53
+ --color-muted: var(--muted);
54
+ --color-muted-foreground: var(--muted-foreground);
55
+ --color-accent: var(--accent);
56
+ --color-accent-foreground: var(--accent-foreground);
57
+ --color-destructive: var(--destructive);
58
+ --color-border: var(--border);
59
+ --color-input: var(--input);
60
+ --color-ring: var(--ring);
61
+ --color-chart-1: var(--chart-1);
62
+ --color-chart-2: var(--chart-2);
63
+ --color-chart-3: var(--chart-3);
64
+ --color-chart-4: var(--chart-4);
65
+ --color-chart-5: var(--chart-5);
66
+ --color-sidebar: var(--sidebar);
67
+ --color-sidebar-foreground: var(--sidebar-foreground);
68
+ --color-sidebar-primary: var(--sidebar-primary);
69
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
70
+ --color-sidebar-accent: var(--sidebar-accent);
71
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
72
+ --color-sidebar-border: var(--sidebar-border);
73
+ --color-sidebar-ring: var(--sidebar-ring);
76
74
  }
77
75
 
78
76
  :root {
@@ -465,8 +463,12 @@ export default function Home() {
465
463
  },
466
464
  "aliases": {
467
465
  "components": "@/components",
468
- "utils": "@/lib/utils"
469
- }
466
+ "utils": "@/lib/utils",
467
+ "ui": "@/components/ui",
468
+ "lib": "@/lib",
469
+ "hooks": "@/hooks"
470
+ },
471
+ "iconLibrary": "lucide"
470
472
  }
471
473
 
472
474
  ```
@@ -1021,7 +1023,7 @@ const ThreadScrollToBottom: FC = () => {
1021
1023
  <TooltipIconButton
1022
1024
  tooltip="Scroll to bottom"
1023
1025
  variant="outline"
1024
- className="aui-thread-scroll-to-bottom -top-12 absolute z-10 self-center rounded-full p-4 disabled:invisible dark:bg-background dark:hover:bg-accent"
1026
+ className="aui-thread-scroll-to-bottom absolute -top-12 z-10 self-center rounded-full p-4 disabled:invisible dark:bg-background dark:hover:bg-accent"
1025
1027
  >
1026
1028
  <ArrowDownIcon />
1027
1029
  </TooltipIconButton>
@@ -1185,7 +1187,7 @@ const AssistantActionBar: FC = () => {
1185
1187
  hideWhenRunning
1186
1188
  autohide="not-last"
1187
1189
  autohideFloat="single-branch"
1188
- className="aui-assistant-action-bar-root -ml-1 col-start-3 row-start-2 flex gap-1 text-muted-foreground data-floating:absolute data-floating:rounded-md data-floating:border data-floating:bg-background data-floating:p-1 data-floating:shadow-sm"
1190
+ className="aui-assistant-action-bar-root col-start-3 row-start-2 -ml-1 flex gap-1 text-muted-foreground data-floating:absolute data-floating:rounded-md data-floating:border data-floating:bg-background data-floating:p-1 data-floating:shadow-sm"
1189
1191
  >
1190
1192
  <ActionBarPrimitive.Copy asChild>
1191
1193
  <TooltipIconButton tooltip="Copy">
@@ -1223,12 +1225,12 @@ const UserMessage: FC = () => {
1223
1225
  <div className="aui-user-message-content wrap-break-word rounded-2xl bg-muted px-4 py-2.5 text-foreground">
1224
1226
  <MessagePrimitive.Parts />
1225
1227
  </div>
1226
- <div className="aui-user-action-bar-wrapper -translate-x-full -translate-y-1/2 absolute top-1/2 left-0 pr-2">
1228
+ <div className="aui-user-action-bar-wrapper absolute top-1/2 left-0 -translate-x-full -translate-y-1/2 pr-2">
1227
1229
  <UserActionBar />
1228
1230
  </div>
1229
1231
  </div>
1230
1232
 
1231
- <BranchPicker className="aui-user-branch-picker -mr-1 col-span-full col-start-1 row-start-3 justify-end" />
1233
+ <BranchPicker className="aui-user-branch-picker col-span-full col-start-1 row-start-3 -mr-1 justify-end" />
1232
1234
  </MessagePrimitive.Root>
1233
1235
  );
1234
1236
  };
@@ -1280,7 +1282,7 @@ const BranchPicker: FC<BranchPickerPrimitive.Root.Props> = ({
1280
1282
  <BranchPickerPrimitive.Root
1281
1283
  hideWhenSingleBranch
1282
1284
  className={cn(
1283
- "aui-branch-picker-root -ml-2 mr-2 inline-flex items-center text-muted-foreground text-xs",
1285
+ "aui-branch-picker-root mr-2 -ml-2 inline-flex items-center text-muted-foreground text-xs",
1284
1286
  className,
1285
1287
  )}
1286
1288
  {...rest}
@@ -1461,47 +1463,50 @@ import * as AvatarPrimitive from "@radix-ui/react-avatar";
1461
1463
 
1462
1464
  import { cn } from "@/lib/utils";
1463
1465
 
1464
- const Avatar = React.forwardRef<
1465
- React.ElementRef<typeof AvatarPrimitive.Root>,
1466
- React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>
1467
- >(({ className, ...props }, ref) => (
1468
- <AvatarPrimitive.Root
1469
- ref={ref}
1470
- className={cn(
1471
- "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
1472
- className,
1473
- )}
1474
- {...props}
1475
- />
1476
- ));
1477
- Avatar.displayName = AvatarPrimitive.Root.displayName;
1478
-
1479
- const AvatarImage = React.forwardRef<
1480
- React.ElementRef<typeof AvatarPrimitive.Image>,
1481
- React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>
1482
- >(({ className, ...props }, ref) => (
1483
- <AvatarPrimitive.Image
1484
- ref={ref}
1485
- className={cn("aspect-square h-full w-full", className)}
1486
- {...props}
1487
- />
1488
- ));
1489
- AvatarImage.displayName = AvatarPrimitive.Image.displayName;
1490
-
1491
- const AvatarFallback = React.forwardRef<
1492
- React.ElementRef<typeof AvatarPrimitive.Fallback>,
1493
- React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>
1494
- >(({ className, ...props }, ref) => (
1495
- <AvatarPrimitive.Fallback
1496
- ref={ref}
1497
- className={cn(
1498
- "flex h-full w-full items-center justify-center rounded-full bg-muted",
1499
- className,
1500
- )}
1501
- {...props}
1502
- />
1503
- ));
1504
- AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
1466
+ function Avatar({
1467
+ className,
1468
+ ...props
1469
+ }: React.ComponentProps<typeof AvatarPrimitive.Root>) {
1470
+ return (
1471
+ <AvatarPrimitive.Root
1472
+ data-slot="avatar"
1473
+ className={cn(
1474
+ "relative flex size-8 shrink-0 overflow-hidden rounded-full",
1475
+ className,
1476
+ )}
1477
+ {...props}
1478
+ />
1479
+ );
1480
+ }
1481
+
1482
+ function AvatarImage({
1483
+ className,
1484
+ ...props
1485
+ }: React.ComponentProps<typeof AvatarPrimitive.Image>) {
1486
+ return (
1487
+ <AvatarPrimitive.Image
1488
+ data-slot="avatar-image"
1489
+ className={cn("aspect-square size-full", className)}
1490
+ {...props}
1491
+ />
1492
+ );
1493
+ }
1494
+
1495
+ function AvatarFallback({
1496
+ className,
1497
+ ...props
1498
+ }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {
1499
+ return (
1500
+ <AvatarPrimitive.Fallback
1501
+ data-slot="avatar-fallback"
1502
+ className={cn(
1503
+ "flex size-full items-center justify-center rounded-full bg-muted",
1504
+ className,
1505
+ )}
1506
+ {...props}
1507
+ />
1508
+ );
1509
+ }
1505
1510
 
1506
1511
  export { Avatar, AvatarImage, AvatarFallback };
1507
1512
 
@@ -1510,8 +1515,6 @@ export { Avatar, AvatarImage, AvatarFallback };
1510
1515
  ## components/ui/button.tsx
1511
1516
 
1512
1517
  ```tsx
1513
- "use client";
1514
-
1515
1518
  import * as React from "react";
1516
1519
  import { Slot } from "@radix-ui/react-slot";
1517
1520
  import { cva, type VariantProps } from "class-variance-authority";
@@ -1523,14 +1526,13 @@ const buttonVariants = cva(
1523
1526
  {
1524
1527
  variants: {
1525
1528
  variant: {
1526
- default:
1527
- "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
1529
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
1528
1530
  destructive:
1529
- "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
1531
+ "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
1530
1532
  outline:
1531
1533
  "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
1532
1534
  secondary:
1533
- "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
1535
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
1534
1536
  ghost:
1535
1537
  "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
1536
1538
  link: "text-primary underline-offset-4 hover:underline",
@@ -1540,6 +1542,8 @@ const buttonVariants = cva(
1540
1542
  sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
1541
1543
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
1542
1544
  icon: "size-9",
1545
+ "icon-sm": "size-8",
1546
+ "icon-lg": "size-10",
1543
1547
  },
1544
1548
  },
1545
1549
  defaultVariants: {
@@ -1551,8 +1555,8 @@ const buttonVariants = cva(
1551
1555
 
1552
1556
  function Button({
1553
1557
  className,
1554
- variant,
1555
- size,
1558
+ variant = "default",
1559
+ size = "default",
1556
1560
  asChild = false,
1557
1561
  ...props
1558
1562
  }: React.ComponentProps<"button"> &
@@ -1564,6 +1568,8 @@ function Button({
1564
1568
  return (
1565
1569
  <Comp
1566
1570
  data-slot="button"
1571
+ data-variant={variant}
1572
+ data-size={size}
1567
1573
  className={cn(buttonVariants({ variant, size, className }))}
1568
1574
  {...props}
1569
1575
  />
@@ -1617,7 +1623,7 @@ function DialogOverlay({
1617
1623
  <DialogPrimitive.Overlay
1618
1624
  data-slot="dialog-overlay"
1619
1625
  className={cn(
1620
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80 data-[state=closed]:animate-out data-[state=open]:animate-in",
1626
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in",
1621
1627
  className,
1622
1628
  )}
1623
1629
  {...props}
@@ -1628,24 +1634,32 @@ function DialogOverlay({
1628
1634
  function DialogContent({
1629
1635
  className,
1630
1636
  children,
1637
+ showCloseButton = true,
1631
1638
  ...props
1632
- }: React.ComponentProps<typeof DialogPrimitive.Content>) {
1639
+ }: React.ComponentProps<typeof DialogPrimitive.Content> & {
1640
+ showCloseButton?: boolean;
1641
+ }) {
1633
1642
  return (
1634
1643
  <DialogPortal data-slot="dialog-portal">
1635
1644
  <DialogOverlay />
1636
1645
  <DialogPrimitive.Content
1637
1646
  data-slot="dialog-content"
1638
1647
  className={cn(
1639
- "data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:max-w-lg",
1648
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg outline-none duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:max-w-lg",
1640
1649
  className,
1641
1650
  )}
1642
1651
  {...props}
1643
1652
  >
1644
1653
  {children}
1645
- <DialogPrimitive.Close className="absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0">
1646
- <XIcon />
1647
- <span className="sr-only">Close</span>
1648
- </DialogPrimitive.Close>
1654
+ {showCloseButton && (
1655
+ <DialogPrimitive.Close
1656
+ data-slot="dialog-close"
1657
+ className="absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0"
1658
+ >
1659
+ <XIcon />
1660
+ <span className="sr-only">Close</span>
1661
+ </DialogPrimitive.Close>
1662
+ )}
1649
1663
  </DialogPrimitive.Content>
1650
1664
  </DialogPortal>
1651
1665
  );
@@ -1766,13 +1780,13 @@ function TooltipContent({
1766
1780
  data-slot="tooltip-content"
1767
1781
  sideOffset={sideOffset}
1768
1782
  className={cn(
1769
- "fade-in-0 zoom-in-95 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] animate-in text-balance rounded-md bg-primary px-3 py-1.5 text-primary-foreground text-xs data-[state=closed]:animate-out",
1783
+ "fade-in-0 zoom-in-95 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) animate-in text-balance rounded-md bg-foreground px-3 py-1.5 text-background text-xs data-[state=closed]:animate-out",
1770
1784
  className,
1771
1785
  )}
1772
1786
  {...props}
1773
1787
  >
1774
1788
  {children}
1775
- <TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-primary fill-primary" />
1789
+ <TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" />
1776
1790
  </TooltipPrimitive.Content>
1777
1791
  </TooltipPrimitive.Portal>
1778
1792
  );
@@ -1812,52 +1826,46 @@ export default nextConfig;
1812
1826
  ```json
1813
1827
  {
1814
1828
  "name": "with-ffmpeg",
1815
- "version": "0.1.0",
1829
+ "version": "0.0.0",
1816
1830
  "private": true,
1831
+ "type": "module",
1817
1832
  "scripts": {
1818
- "dev": "next dev --turbo",
1833
+ "dev": "next dev",
1819
1834
  "build": "next build",
1820
1835
  "start": "next start"
1821
1836
  },
1822
1837
  "dependencies": {
1823
- "@ai-sdk/openai": "^2.0.84",
1838
+ "@ai-sdk/openai": "^2.0.88",
1824
1839
  "@assistant-ui/react": "workspace:*",
1825
1840
  "@assistant-ui/react-ai-sdk": "workspace:*",
1826
- "@assistant-ui/react-hook-form": "workspace:*",
1827
1841
  "@assistant-ui/react-markdown": "workspace:*",
1828
1842
  "@ffmpeg/ffmpeg": "^0.12.15",
1829
1843
  "@ffmpeg/util": "^0.12.2",
1830
- "@hookform/resolvers": "^5.2.2",
1831
1844
  "@radix-ui/react-avatar": "^1.1.11",
1832
1845
  "@radix-ui/react-dialog": "^1.1.15",
1833
- "@radix-ui/react-icons": "^1.3.2",
1834
- "@radix-ui/react-label": "^2.1.8",
1835
1846
  "@radix-ui/react-slot": "^1.2.4",
1836
- "@radix-ui/react-tabs": "^1.1.13",
1837
1847
  "@radix-ui/react-tooltip": "^1.2.8",
1838
- "@react-hook/media-query": "^1.1.1",
1839
- "ai": "^5.0.112",
1848
+ "ai": "^5.0.116",
1840
1849
  "class-variance-authority": "^0.7.1",
1841
1850
  "clsx": "^2.1.1",
1842
- "lucide-react": "^0.560.0",
1843
- "next": "16.0.10",
1851
+ "lucide-react": "^0.562.0",
1852
+ "next": "16.1.0",
1844
1853
  "react": "19.2.3",
1845
1854
  "react-dom": "19.2.3",
1846
- "react-hook-form": "^7.68.0",
1847
- "react-resizable-panels": "^3.0.6",
1848
1855
  "remark-gfm": "^4.0.1",
1849
1856
  "tailwind-merge": "^3.4.0",
1850
- "tw-animate-css": "^1.4.0",
1851
- "zod": "^4.1.13",
1857
+ "zod": "^4.2.1",
1852
1858
  "zustand": "^5.0.9"
1853
1859
  },
1854
1860
  "devDependencies": {
1855
1861
  "@assistant-ui/x-buildutils": "workspace:*",
1856
- "@types/node": "^25",
1857
- "@types/react": "^19",
1858
- "@types/react-dom": "^19",
1859
- "postcss": "^8",
1862
+ "@tailwindcss/postcss": "^4.1.18",
1863
+ "@types/node": "^25.0.3",
1864
+ "@types/react": "^19.2.7",
1865
+ "@types/react-dom": "^19.2.3",
1866
+ "postcss": "^8.5.6",
1860
1867
  "tailwindcss": "^4.1.18",
1868
+ "tw-animate-css": "^1.4.0",
1861
1869
  "typescript": "^5.9.3"
1862
1870
  }
1863
1871
  }
@@ -1868,29 +1876,11 @@ export default nextConfig;
1868
1876
 
1869
1877
  ```json
1870
1878
  {
1871
- "extends": "@assistant-ui/x-buildutils/ts/base",
1879
+ "extends": "@assistant-ui/x-buildutils/ts/next",
1872
1880
  "compilerOptions": {
1873
- "target": "ES6",
1874
- "module": "ESNext",
1875
- "incremental": true,
1876
- "plugins": [
1877
- {
1878
- "name": "next"
1879
- }
1880
- ],
1881
- "allowJs": true,
1882
- "strictNullChecks": true,
1883
- "jsx": "preserve",
1884
- "paths": {
1885
- "@/*": ["./*"],
1886
- "@assistant-ui/*": ["../../packages/*/src"],
1887
- "@assistant-ui/react/*": ["../../packages/react/src/*"],
1888
- "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
1889
- "assistant-stream": ["../../packages/assistant-stream/src"],
1890
- "assistant-stream/*": ["../../packages/assistant-stream/src/*"]
1891
- }
1881
+ "paths": { "@/*": ["./*"] }
1892
1882
  },
1893
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
1883
+ "include": ["**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
1894
1884
  "exclude": ["node_modules"]
1895
1885
  }
1896
1886