@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
@@ -4,54 +4,52 @@
4
4
 
5
5
  ```css
6
6
  @import "tailwindcss";
7
-
8
- @plugin "tailwindcss-animate";
9
7
  @import "tw-animate-css";
10
8
 
11
9
  @custom-variant dark (&:is(.dark *));
12
10
 
13
11
  @theme inline {
14
- --color-background: var(--background);
15
- --color-foreground: var(--foreground);
16
- --font-sans: var(--font-geist-sans);
17
- --font-mono: var(--font-geist-mono);
18
- --color-sidebar-ring: var(--sidebar-ring);
19
- --color-sidebar-border: var(--sidebar-border);
20
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
21
- --color-sidebar-accent: var(--sidebar-accent);
22
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
23
- --color-sidebar-primary: var(--sidebar-primary);
24
- --color-sidebar-foreground: var(--sidebar-foreground);
25
- --color-sidebar: var(--sidebar);
26
- --color-chart-5: var(--chart-5);
27
- --color-chart-4: var(--chart-4);
28
- --color-chart-3: var(--chart-3);
29
- --color-chart-2: var(--chart-2);
30
- --color-chart-1: var(--chart-1);
31
- --color-ring: var(--ring);
32
- --color-input: var(--input);
33
- --color-border: var(--border);
34
- --color-destructive: var(--destructive);
35
- --color-accent-foreground: var(--accent-foreground);
36
- --color-accent: var(--accent);
37
- --color-muted-foreground: var(--muted-foreground);
38
- --color-muted: var(--muted);
39
- --color-secondary-foreground: var(--secondary-foreground);
40
- --color-secondary: var(--secondary);
41
- --color-primary-foreground: var(--primary-foreground);
42
- --color-primary: var(--primary);
43
- --color-popover-foreground: var(--popover-foreground);
44
- --color-popover: var(--popover);
45
- --color-card-foreground: var(--card-foreground);
46
- --color-card: var(--card);
47
12
  --radius-sm: calc(var(--radius) - 4px);
48
13
  --radius-md: calc(var(--radius) - 2px);
49
14
  --radius-lg: var(--radius);
50
15
  --radius-xl: calc(var(--radius) + 4px);
16
+ --color-background: var(--background);
17
+ --color-foreground: var(--foreground);
18
+ --color-card: var(--card);
19
+ --color-card-foreground: var(--card-foreground);
20
+ --color-popover: var(--popover);
21
+ --color-popover-foreground: var(--popover-foreground);
22
+ --color-primary: var(--primary);
23
+ --color-primary-foreground: var(--primary-foreground);
24
+ --color-secondary: var(--secondary);
25
+ --color-secondary-foreground: var(--secondary-foreground);
26
+ --color-muted: var(--muted);
27
+ --color-muted-foreground: var(--muted-foreground);
28
+ --color-accent: var(--accent);
29
+ --color-accent-foreground: var(--accent-foreground);
30
+ --color-destructive: var(--destructive);
31
+ --color-border: var(--border);
32
+ --color-input: var(--input);
33
+ --color-ring: var(--ring);
34
+ --color-chart-1: var(--chart-1);
35
+ --color-chart-2: var(--chart-2);
36
+ --color-chart-3: var(--chart-3);
37
+ --color-chart-4: var(--chart-4);
38
+ --color-chart-5: var(--chart-5);
39
+ --color-sidebar: var(--sidebar);
40
+ --color-sidebar-foreground: var(--sidebar-foreground);
41
+ --color-sidebar-primary: var(--sidebar-primary);
42
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
43
+ --color-sidebar-accent: var(--sidebar-accent);
44
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
45
+ --color-sidebar-border: var(--sidebar-border);
46
+ --color-sidebar-ring: var(--sidebar-ring);
51
47
  }
52
48
 
53
49
  :root {
54
50
  --radius: 0.625rem;
51
+ --background: oklch(1 0 0);
52
+ --foreground: oklch(0.141 0.005 285.823);
55
53
  --card: oklch(1 0 0);
56
54
  --card-foreground: oklch(0.141 0.005 285.823);
57
55
  --popover: oklch(1 0 0);
@@ -81,8 +79,6 @@
81
79
  --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
82
80
  --sidebar-border: oklch(0.92 0.004 286.32);
83
81
  --sidebar-ring: oklch(0.705 0.015 286.067);
84
- --background: oklch(1 0 0);
85
- --foreground: oklch(0.141 0.005 285.823);
86
82
  }
87
83
 
88
84
  .dark {
@@ -339,13 +335,12 @@ export default function Home() {
339
335
  "rsc": true,
340
336
  "tsx": true,
341
337
  "tailwind": {
342
- "config": "tailwind.config.js",
338
+ "config": "",
343
339
  "css": "app/globals.css",
344
340
  "baseColor": "zinc",
345
341
  "cssVariables": true,
346
342
  "prefix": ""
347
343
  },
348
- "iconLibrary": "lucide",
349
344
  "aliases": {
350
345
  "components": "@/components",
351
346
  "utils": "@/lib/utils",
@@ -353,7 +348,7 @@ export default function Home() {
353
348
  "lib": "@/lib",
354
349
  "hooks": "@/hooks"
355
350
  },
356
- "registries": {}
351
+ "iconLibrary": "lucide"
357
352
  }
358
353
 
359
354
  ```
@@ -908,7 +903,7 @@ const ThreadScrollToBottom: FC = () => {
908
903
  <TooltipIconButton
909
904
  tooltip="Scroll to bottom"
910
905
  variant="outline"
911
- 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"
906
+ 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"
912
907
  >
913
908
  <ArrowDownIcon />
914
909
  </TooltipIconButton>
@@ -1072,7 +1067,7 @@ const AssistantActionBar: FC = () => {
1072
1067
  hideWhenRunning
1073
1068
  autohide="not-last"
1074
1069
  autohideFloat="single-branch"
1075
- 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"
1070
+ 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"
1076
1071
  >
1077
1072
  <ActionBarPrimitive.Copy asChild>
1078
1073
  <TooltipIconButton tooltip="Copy">
@@ -1110,12 +1105,12 @@ const UserMessage: FC = () => {
1110
1105
  <div className="aui-user-message-content wrap-break-word rounded-2xl bg-muted px-4 py-2.5 text-foreground">
1111
1106
  <MessagePrimitive.Parts />
1112
1107
  </div>
1113
- <div className="aui-user-action-bar-wrapper -translate-x-full -translate-y-1/2 absolute top-1/2 left-0 pr-2">
1108
+ <div className="aui-user-action-bar-wrapper absolute top-1/2 left-0 -translate-x-full -translate-y-1/2 pr-2">
1114
1109
  <UserActionBar />
1115
1110
  </div>
1116
1111
  </div>
1117
1112
 
1118
- <BranchPicker className="aui-user-branch-picker -mr-1 col-span-full col-start-1 row-start-3 justify-end" />
1113
+ <BranchPicker className="aui-user-branch-picker col-span-full col-start-1 row-start-3 -mr-1 justify-end" />
1119
1114
  </MessagePrimitive.Root>
1120
1115
  );
1121
1116
  };
@@ -1167,7 +1162,7 @@ const BranchPicker: FC<BranchPickerPrimitive.Root.Props> = ({
1167
1162
  <BranchPickerPrimitive.Root
1168
1163
  hideWhenSingleBranch
1169
1164
  className={cn(
1170
- "aui-branch-picker-root -ml-2 mr-2 inline-flex items-center text-muted-foreground text-xs",
1165
+ "aui-branch-picker-root mr-2 -ml-2 inline-flex items-center text-muted-foreground text-xs",
1171
1166
  className,
1172
1167
  )}
1173
1168
  {...rest}
@@ -1348,47 +1343,50 @@ import * as AvatarPrimitive from "@radix-ui/react-avatar";
1348
1343
 
1349
1344
  import { cn } from "@/lib/utils";
1350
1345
 
1351
- const Avatar = React.forwardRef<
1352
- React.ElementRef<typeof AvatarPrimitive.Root>,
1353
- React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>
1354
- >(({ className, ...props }, ref) => (
1355
- <AvatarPrimitive.Root
1356
- ref={ref}
1357
- className={cn(
1358
- "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
1359
- className,
1360
- )}
1361
- {...props}
1362
- />
1363
- ));
1364
- Avatar.displayName = AvatarPrimitive.Root.displayName;
1365
-
1366
- const AvatarImage = React.forwardRef<
1367
- React.ElementRef<typeof AvatarPrimitive.Image>,
1368
- React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>
1369
- >(({ className, ...props }, ref) => (
1370
- <AvatarPrimitive.Image
1371
- ref={ref}
1372
- className={cn("aspect-square h-full w-full", className)}
1373
- {...props}
1374
- />
1375
- ));
1376
- AvatarImage.displayName = AvatarPrimitive.Image.displayName;
1377
-
1378
- const AvatarFallback = React.forwardRef<
1379
- React.ElementRef<typeof AvatarPrimitive.Fallback>,
1380
- React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>
1381
- >(({ className, ...props }, ref) => (
1382
- <AvatarPrimitive.Fallback
1383
- ref={ref}
1384
- className={cn(
1385
- "flex h-full w-full items-center justify-center rounded-full bg-muted",
1386
- className,
1387
- )}
1388
- {...props}
1389
- />
1390
- ));
1391
- AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
1346
+ function Avatar({
1347
+ className,
1348
+ ...props
1349
+ }: React.ComponentProps<typeof AvatarPrimitive.Root>) {
1350
+ return (
1351
+ <AvatarPrimitive.Root
1352
+ data-slot="avatar"
1353
+ className={cn(
1354
+ "relative flex size-8 shrink-0 overflow-hidden rounded-full",
1355
+ className,
1356
+ )}
1357
+ {...props}
1358
+ />
1359
+ );
1360
+ }
1361
+
1362
+ function AvatarImage({
1363
+ className,
1364
+ ...props
1365
+ }: React.ComponentProps<typeof AvatarPrimitive.Image>) {
1366
+ return (
1367
+ <AvatarPrimitive.Image
1368
+ data-slot="avatar-image"
1369
+ className={cn("aspect-square size-full", className)}
1370
+ {...props}
1371
+ />
1372
+ );
1373
+ }
1374
+
1375
+ function AvatarFallback({
1376
+ className,
1377
+ ...props
1378
+ }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {
1379
+ return (
1380
+ <AvatarPrimitive.Fallback
1381
+ data-slot="avatar-fallback"
1382
+ className={cn(
1383
+ "flex size-full items-center justify-center rounded-full bg-muted",
1384
+ className,
1385
+ )}
1386
+ {...props}
1387
+ />
1388
+ );
1389
+ }
1392
1390
 
1393
1391
  export { Avatar, AvatarImage, AvatarFallback };
1394
1392
 
@@ -1408,14 +1406,13 @@ const buttonVariants = cva(
1408
1406
  {
1409
1407
  variants: {
1410
1408
  variant: {
1411
- default:
1412
- "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
1409
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
1413
1410
  destructive:
1414
- "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",
1411
+ "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
1415
1412
  outline:
1416
1413
  "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
1417
1414
  secondary:
1418
- "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
1415
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
1419
1416
  ghost:
1420
1417
  "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
1421
1418
  link: "text-primary underline-offset-4 hover:underline",
@@ -1425,6 +1422,8 @@ const buttonVariants = cva(
1425
1422
  sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
1426
1423
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
1427
1424
  icon: "size-9",
1425
+ "icon-sm": "size-8",
1426
+ "icon-lg": "size-10",
1428
1427
  },
1429
1428
  },
1430
1429
  defaultVariants: {
@@ -1436,8 +1435,8 @@ const buttonVariants = cva(
1436
1435
 
1437
1436
  function Button({
1438
1437
  className,
1439
- variant,
1440
- size,
1438
+ variant = "default",
1439
+ size = "default",
1441
1440
  asChild = false,
1442
1441
  ...props
1443
1442
  }: React.ComponentProps<"button"> &
@@ -1449,6 +1448,8 @@ function Button({
1449
1448
  return (
1450
1449
  <Comp
1451
1450
  data-slot="button"
1451
+ data-variant={variant}
1452
+ data-size={size}
1452
1453
  className={cn(buttonVariants({ variant, size, className }))}
1453
1454
  {...props}
1454
1455
  />
@@ -1502,7 +1503,7 @@ function DialogOverlay({
1502
1503
  <DialogPrimitive.Overlay
1503
1504
  data-slot="dialog-overlay"
1504
1505
  className={cn(
1505
- "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",
1506
+ "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",
1506
1507
  className,
1507
1508
  )}
1508
1509
  {...props}
@@ -1513,24 +1514,32 @@ function DialogOverlay({
1513
1514
  function DialogContent({
1514
1515
  className,
1515
1516
  children,
1517
+ showCloseButton = true,
1516
1518
  ...props
1517
- }: React.ComponentProps<typeof DialogPrimitive.Content>) {
1519
+ }: React.ComponentProps<typeof DialogPrimitive.Content> & {
1520
+ showCloseButton?: boolean;
1521
+ }) {
1518
1522
  return (
1519
1523
  <DialogPortal data-slot="dialog-portal">
1520
1524
  <DialogOverlay />
1521
1525
  <DialogPrimitive.Content
1522
1526
  data-slot="dialog-content"
1523
1527
  className={cn(
1524
- "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",
1528
+ "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",
1525
1529
  className,
1526
1530
  )}
1527
1531
  {...props}
1528
1532
  >
1529
1533
  {children}
1530
- <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">
1531
- <XIcon />
1532
- <span className="sr-only">Close</span>
1533
- </DialogPrimitive.Close>
1534
+ {showCloseButton && (
1535
+ <DialogPrimitive.Close
1536
+ data-slot="dialog-close"
1537
+ 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"
1538
+ >
1539
+ <XIcon />
1540
+ <span className="sr-only">Close</span>
1541
+ </DialogPrimitive.Close>
1542
+ )}
1534
1543
  </DialogPrimitive.Content>
1535
1544
  </DialogPortal>
1536
1545
  );
@@ -1651,13 +1660,13 @@ function TooltipContent({
1651
1660
  data-slot="tooltip-content"
1652
1661
  sideOffset={sideOffset}
1653
1662
  className={cn(
1654
- "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",
1663
+ "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",
1655
1664
  className,
1656
1665
  )}
1657
1666
  {...props}
1658
1667
  >
1659
1668
  {children}
1660
- <TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-primary fill-primary" />
1669
+ <TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" />
1661
1670
  </TooltipPrimitive.Content>
1662
1671
  </TooltipPrimitive.Portal>
1663
1672
  );
@@ -1705,46 +1714,44 @@ export default nextConfig;
1705
1714
 
1706
1715
  ```json
1707
1716
  {
1708
- "name": "example-with-assistant-transport",
1709
- "private": true,
1717
+ "name": "with-assistant-transport",
1710
1718
  "version": "0.0.0",
1719
+ "private": true,
1711
1720
  "type": "module",
1721
+ "scripts": {
1722
+ "dev": "next dev",
1723
+ "build": "next build",
1724
+ "start": "next start"
1725
+ },
1712
1726
  "dependencies": {
1713
- "@assistant-ui/react": "workspace:^",
1714
- "@assistant-ui/react-langgraph": "workspace:^",
1715
- "@assistant-ui/react-markdown": "workspace:^",
1727
+ "@assistant-ui/react": "workspace:*",
1728
+ "@assistant-ui/react-langgraph": "workspace:*",
1729
+ "@assistant-ui/react-markdown": "workspace:*",
1716
1730
  "@radix-ui/react-avatar": "^1.1.11",
1717
1731
  "@radix-ui/react-dialog": "^1.1.15",
1718
1732
  "@radix-ui/react-slot": "^1.2.4",
1719
1733
  "@radix-ui/react-tooltip": "^1.2.8",
1720
- "@tailwindcss/postcss": "^4.1.18",
1721
- "assistant-stream": "^0.2.45",
1722
1734
  "class-variance-authority": "^0.7.1",
1723
1735
  "clsx": "^2.1.1",
1724
- "lucide-react": "^0.560.0",
1725
- "next": "16.0.10",
1726
- "postcss": "^8.5.6",
1736
+ "lucide-react": "^0.562.0",
1737
+ "next": "16.1.0",
1727
1738
  "react": "19.2.3",
1728
1739
  "react-dom": "19.2.3",
1729
1740
  "remark-gfm": "^4.0.1",
1730
1741
  "tailwind-merge": "^3.4.0",
1731
- "tailwindcss": "^4.1.18",
1732
- "tailwindcss-animate": "^1.0.7",
1733
- "zod": "^4.1.13",
1742
+ "zod": "^4.2.1",
1734
1743
  "zustand": "^5.0.9"
1735
1744
  },
1736
1745
  "devDependencies": {
1737
1746
  "@assistant-ui/x-buildutils": "workspace:*",
1738
- "@types/node": "^25.0.0",
1747
+ "@tailwindcss/postcss": "^4.1.18",
1748
+ "@types/node": "^25.0.3",
1739
1749
  "@types/react": "^19.2.7",
1740
1750
  "@types/react-dom": "^19.2.3",
1751
+ "postcss": "^8.5.6",
1752
+ "tailwindcss": "^4.1.18",
1741
1753
  "tw-animate-css": "^1.4.0",
1742
1754
  "typescript": "^5.9.3"
1743
- },
1744
- "scripts": {
1745
- "dev": "next dev",
1746
- "build": "next build",
1747
- "start": "next start"
1748
1755
  }
1749
1756
  }
1750
1757
 
@@ -1926,117 +1933,22 @@ The project uses Tailwind CSS for styling. Modify `app/globals.css` and `tailwin
1926
1933
 
1927
1934
  ## Learn More
1928
1935
 
1929
- - [assistant-ui Documentation](https://docs.assistant-ui.com)
1930
- - [Assistant Transport Runtime API](https://docs.assistant-ui.com/runtimes/assistant-transport)
1936
+ - [assistant-ui Documentation](https://www.assistant-ui.com/docs)
1937
+ - [Assistant Transport Runtime API](https://www.assistant-ui.com/docs/runtimes/assistant-transport)
1931
1938
  - [Next.js Documentation](https://nextjs.org/docs)
1932
1939
 
1933
1940
  ```
1934
1941
 
1935
- ## tailwind.config.js
1936
-
1937
- ```javascript
1938
- /** @type {import('tailwindcss').Config} */
1939
- const config = {
1940
- darkMode: ["class"],
1941
- content: [
1942
- "./pages/**/*.{ts,tsx}",
1943
- "./components/**/*.{ts,tsx}",
1944
- "./app/**/*.{ts,tsx}",
1945
- "./src/**/*.{ts,tsx}",
1946
- ],
1947
- prefix: "",
1948
- theme: {
1949
- container: {
1950
- center: true,
1951
- padding: "2rem",
1952
- screens: {
1953
- "2xl": "1400px",
1954
- },
1955
- },
1956
- extend: {
1957
- colors: {
1958
- border: "hsl(var(--border))",
1959
- input: "hsl(var(--input))",
1960
- ring: "hsl(var(--ring))",
1961
- background: "hsl(var(--background))",
1962
- foreground: "hsl(var(--foreground))",
1963
- primary: {
1964
- DEFAULT: "hsl(var(--primary))",
1965
- foreground: "hsl(var(--primary-foreground))",
1966
- },
1967
- secondary: {
1968
- DEFAULT: "hsl(var(--secondary))",
1969
- foreground: "hsl(var(--secondary-foreground))",
1970
- },
1971
- destructive: {
1972
- DEFAULT: "hsl(var(--destructive))",
1973
- foreground: "hsl(var(--destructive-foreground))",
1974
- },
1975
- muted: {
1976
- DEFAULT: "hsl(var(--muted))",
1977
- foreground: "hsl(var(--muted-foreground))",
1978
- },
1979
- accent: {
1980
- DEFAULT: "hsl(var(--accent))",
1981
- foreground: "hsl(var(--accent-foreground))",
1982
- },
1983
- popover: {
1984
- DEFAULT: "hsl(var(--popover))",
1985
- foreground: "hsl(var(--popover-foreground))",
1986
- },
1987
- card: {
1988
- DEFAULT: "hsl(var(--card))",
1989
- foreground: "hsl(var(--card-foreground))",
1990
- },
1991
- },
1992
- borderRadius: {
1993
- lg: "var(--radius)",
1994
- md: "calc(var(--radius) - 2px)",
1995
- sm: "calc(var(--radius) - 4px)",
1996
- },
1997
- keyframes: {
1998
- "accordion-down": {
1999
- from: { height: "0" },
2000
- to: { height: "var(--radix-accordion-content-height)" },
2001
- },
2002
- "accordion-up": {
2003
- from: { height: "var(--radix-accordion-content-height)" },
2004
- to: { height: "0" },
2005
- },
2006
- },
2007
- animation: {
2008
- "accordion-down": "accordion-down 0.2s ease-out",
2009
- "accordion-up": "accordion-up 0.2s ease-out",
2010
- },
2011
- },
2012
- },
2013
- plugins: [],
2014
- };
2015
-
2016
- export default config;
2017
-
2018
- ```
2019
-
2020
1942
  ## tsconfig.json
2021
1943
 
2022
1944
  ```json
2023
1945
  {
2024
- "extends": "@assistant-ui/x-buildutils/ts/base",
1946
+ "extends": "@assistant-ui/x-buildutils/ts/next",
2025
1947
  "compilerOptions": {
2026
- "paths": {
2027
- "@/*": ["./*"]
2028
- },
2029
- "allowJs": true,
2030
- "incremental": true,
2031
- "jsx": "preserve",
2032
- "plugins": [
2033
- {
2034
- "name": "next"
2035
- }
2036
- ]
1948
+ "paths": { "@/*": ["./*"] }
2037
1949
  },
2038
1950
  "include": ["**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
2039
- "exclude": ["node_modules", "dist"]
1951
+ "exclude": ["node_modules"]
2040
1952
  }
2041
1953
 
2042
1954
  ```