@assistant-ui/mcp-docs-server 0.1.16 → 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.
- package/.docs/organized/code-examples/with-ag-ui.md +149 -155
- package/.docs/organized/code-examples/with-ai-sdk-v5.md +98 -103
- package/.docs/organized/code-examples/with-assistant-transport.md +134 -222
- package/.docs/organized/code-examples/with-cloud.md +127 -134
- package/.docs/organized/code-examples/with-custom-thread-list.md +28 -48
- package/.docs/organized/code-examples/with-external-store.md +149 -154
- package/.docs/organized/code-examples/with-ffmpeg.md +132 -142
- package/.docs/organized/code-examples/with-langgraph.md +234 -228
- package/.docs/organized/code-examples/with-parent-id-grouping.md +149 -154
- package/.docs/organized/code-examples/with-react-hook-form.md +149 -155
- package/.docs/organized/code-examples/{store-example.md → with-store.md} +181 -157
- package/.docs/organized/code-examples/with-tanstack.md +31 -45
- package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +36 -0
- package/.docs/raw/docs/runtimes/custom/local.mdx +31 -8
- package/.docs/raw/docs/ui/Scrollbar.mdx +0 -6
- package/dist/constants.d.ts +10 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +14 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -1
- package/dist/index.js.map +1 -0
- package/dist/prepare-docs/code-examples.d.ts +2 -0
- package/dist/prepare-docs/code-examples.d.ts.map +1 -0
- package/dist/prepare-docs/code-examples.js +129 -0
- package/dist/prepare-docs/code-examples.js.map +1 -0
- package/dist/prepare-docs/copy-raw.d.ts +2 -0
- package/dist/prepare-docs/copy-raw.d.ts.map +1 -0
- package/dist/prepare-docs/copy-raw.js +50 -0
- package/dist/prepare-docs/copy-raw.js.map +1 -0
- package/dist/prepare-docs/prepare.d.ts +2 -0
- package/dist/prepare-docs/prepare.d.ts.map +1 -0
- package/dist/prepare-docs/prepare.js +18 -195
- package/dist/prepare-docs/prepare.js.map +1 -0
- package/dist/stdio.d.ts +3 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +4 -5
- package/dist/stdio.js.map +1 -0
- package/dist/tools/docs.d.ts +23 -0
- package/dist/tools/docs.d.ts.map +1 -0
- package/dist/tools/docs.js +168 -0
- package/dist/tools/docs.js.map +1 -0
- package/dist/tools/examples.d.ts +23 -0
- package/dist/tools/examples.d.ts.map +1 -0
- package/dist/tools/examples.js +95 -0
- package/dist/tools/examples.js.map +1 -0
- package/dist/tools/tests/test-setup.d.ts +4 -0
- package/dist/tools/tests/test-setup.d.ts.map +1 -0
- package/dist/tools/tests/test-setup.js +36 -0
- package/dist/tools/tests/test-setup.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +20 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mcp-format.d.ts +7 -0
- package/dist/utils/mcp-format.d.ts.map +1 -0
- package/dist/utils/mcp-format.js +11 -0
- package/dist/utils/mcp-format.js.map +1 -0
- package/dist/utils/mdx.d.ts +9 -0
- package/dist/utils/mdx.d.ts.map +1 -0
- package/dist/utils/mdx.js +27 -0
- package/dist/utils/mdx.js.map +1 -0
- package/dist/utils/paths.d.ts +8 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +84 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/security.d.ts +2 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +43 -0
- package/dist/utils/security.js.map +1 -0
- package/package.json +37 -19
- package/src/constants.ts +22 -0
- package/src/index.ts +51 -0
- package/src/prepare-docs/code-examples.ts +158 -0
- package/src/prepare-docs/copy-raw.ts +55 -0
- package/src/prepare-docs/prepare.ts +24 -0
- package/src/stdio.ts +7 -0
- package/src/tools/docs.ts +207 -0
- package/src/tools/examples.ts +107 -0
- package/src/tools/tests/docs.test.ts +122 -0
- package/src/tools/tests/examples.test.ts +94 -0
- package/src/tools/tests/integration.test.ts +46 -0
- package/src/tools/tests/json-parsing.test.ts +23 -0
- package/src/tools/tests/mcp-protocol.test.ts +133 -0
- package/src/tools/tests/path-traversal.test.ts +81 -0
- package/src/tools/tests/test-setup.ts +40 -0
- package/src/utils/logger.ts +20 -0
- package/src/utils/mcp-format.ts +12 -0
- package/src/utils/mdx.ts +39 -0
- package/src/utils/paths.ts +114 -0
- package/src/utils/security.ts +52 -0
- package/src/utils/tests/security.test.ts +119 -0
- package/dist/chunk-M2RKUM66.js +0 -38
- 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": "
|
|
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
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 -
|
|
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
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
)
|
|
1391
|
-
|
|
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
|
|
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
|
|
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/
|
|
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=
|
|
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
|
-
|
|
1531
|
-
<
|
|
1532
|
-
|
|
1533
|
-
|
|
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-
|
|
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-
|
|
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": "
|
|
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.17",
|
|
1721
|
-
"assistant-stream": "^0.2.44",
|
|
1722
1734
|
"class-variance-authority": "^0.7.1",
|
|
1723
1735
|
"clsx": "^2.1.1",
|
|
1724
|
-
"lucide-react": "^0.
|
|
1725
|
-
"next": "16.0
|
|
1726
|
-
"
|
|
1727
|
-
"react": "19.2.
|
|
1728
|
-
"react-dom": "19.2.1",
|
|
1736
|
+
"lucide-react": "^0.562.0",
|
|
1737
|
+
"next": "16.1.0",
|
|
1738
|
+
"react": "19.2.3",
|
|
1739
|
+
"react-dom": "19.2.3",
|
|
1729
1740
|
"remark-gfm": "^4.0.1",
|
|
1730
1741
|
"tailwind-merge": "^3.4.0",
|
|
1731
|
-
"
|
|
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
|
-
"@
|
|
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://
|
|
1930
|
-
- [Assistant Transport Runtime API](https://
|
|
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/
|
|
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"
|
|
1951
|
+
"exclude": ["node_modules"]
|
|
2040
1952
|
}
|
|
2041
1953
|
|
|
2042
1954
|
```
|