@assistant-ui/mcp-docs-server 0.1.29 → 0.1.31
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/waterfall.md +15 -7
- package/.docs/organized/code-examples/with-a2a.md +9 -21
- package/.docs/organized/code-examples/with-ag-ui.md +11 -8
- package/.docs/organized/code-examples/with-ai-sdk-v6.md +10 -10
- package/.docs/organized/code-examples/with-artifacts.md +12 -10
- package/.docs/organized/code-examples/with-assistant-transport.md +11 -12
- package/.docs/organized/code-examples/with-chain-of-thought.md +83 -54
- package/.docs/organized/code-examples/with-cloud-standalone.md +14 -11
- package/.docs/organized/code-examples/with-cloud.md +9 -10
- package/.docs/organized/code-examples/with-custom-thread-list.md +61 -16
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +17 -12
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +13 -13
- package/.docs/organized/code-examples/with-expo.md +25 -21
- package/.docs/organized/code-examples/with-external-store.md +8 -8
- package/.docs/organized/code-examples/with-ffmpeg.md +17 -12
- package/.docs/organized/code-examples/with-generative-ui.md +9 -9
- package/.docs/organized/code-examples/with-google-adk.md +8 -8
- package/.docs/organized/code-examples/with-heat-graph.md +5 -5
- package/.docs/organized/code-examples/with-interactables.md +10 -25
- package/.docs/organized/code-examples/with-langchain.md +437 -0
- package/.docs/organized/code-examples/with-langgraph.md +16 -16
- package/.docs/organized/code-examples/with-livekit.md +18 -13
- package/.docs/organized/code-examples/with-opencode.md +105 -62
- package/.docs/organized/code-examples/with-parent-id-grouping.md +10 -10
- package/.docs/organized/code-examples/with-react-hook-form.md +220 -148
- package/.docs/organized/code-examples/with-react-ink.md +2 -2
- package/.docs/organized/code-examples/with-react-router.md +12 -12
- package/.docs/organized/code-examples/with-store.md +8 -5
- package/.docs/organized/code-examples/with-tanstack.md +10 -10
- package/.docs/organized/code-examples/with-tap-runtime.md +10 -6
- package/.docs/raw/docs/(docs)/cli.mdx +2 -1
- package/.docs/raw/docs/(docs)/copilots/assistant-frame.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +10 -3
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +8 -3
- package/.docs/raw/docs/(docs)/copilots/make-assistant-visible.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/model-context.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/motivation.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/use-assistant-instructions.mdx +1 -0
- package/.docs/raw/docs/(docs)/devtools.mdx +1 -0
- package/.docs/raw/docs/(docs)/index.mdx +1 -0
- package/.docs/raw/docs/(docs)/installation.mdx +1 -0
- package/.docs/raw/docs/(docs)/rtl.mdx +80 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +34 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/feedback-speech.mdx +41 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +26 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +34 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +31 -0
- package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +26 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +72 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +41 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +48 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +30 -0
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +23 -0
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +21 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +7 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +149 -40
- package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +65 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +2 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +50 -6
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +15 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +36 -1
- package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +38 -0
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +9 -0
- package/.docs/raw/docs/(reference)/migrations/v0-14.mdx +144 -6
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +231 -3
- package/.docs/raw/docs/cloud/ai-sdk.mdx +221 -3
- package/.docs/raw/docs/cloud/langgraph.mdx +274 -2
- package/.docs/raw/docs/{(docs)/guides → guides}/attachments.mdx +41 -36
- package/.docs/raw/docs/guides/branching.mdx +76 -0
- package/.docs/raw/docs/guides/chain-of-thought.mdx +166 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/context-api.mdx +50 -22
- package/.docs/raw/docs/{(docs)/guides → guides}/dictation.mdx +2 -0
- package/.docs/raw/docs/guides/editing.mdx +102 -0
- package/.docs/raw/docs/guides/index.mdx +103 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/interactables.mdx +49 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/latex.mdx +51 -8
- package/.docs/raw/docs/guides/mentions.mdx +520 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/message-timing.mdx +8 -2
- package/.docs/raw/docs/{(docs)/guides → guides}/multi-agent.mdx +64 -4
- package/.docs/raw/docs/{(docs)/guides → guides}/quoting.mdx +10 -17
- package/.docs/raw/docs/guides/slash-commands.mdx +361 -0
- package/.docs/raw/docs/guides/speech.mdx +156 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/suggestions.mdx +21 -83
- package/.docs/raw/docs/{(docs)/guides → guides}/tool-ui.mdx +108 -36
- package/.docs/raw/docs/{(docs)/guides → guides}/tools.mdx +131 -35
- package/.docs/raw/docs/{(docs)/guides → guides}/voice.mdx +39 -0
- package/.docs/raw/docs/ink/index.mdx +1 -3
- package/.docs/raw/docs/ink/migration.mdx +1 -3
- package/.docs/raw/docs/ink/primitives.mdx +37 -1
- package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +520 -0
- package/.docs/raw/docs/integrations/auth/better-auth.mdx +191 -0
- package/.docs/raw/docs/integrations/auth/clerk.mdx +172 -0
- package/.docs/raw/docs/integrations/auth/next-auth.mdx +196 -0
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +79 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +188 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +57 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +201 -0
- package/.docs/raw/docs/integrations/gateways/index.mdx +157 -0
- package/.docs/raw/docs/integrations/index.mdx +173 -0
- package/.docs/raw/docs/integrations/observability/helicone.mdx +130 -0
- package/.docs/raw/docs/integrations/observability/langfuse.mdx +156 -0
- package/.docs/raw/docs/integrations/observability/langsmith.mdx +146 -0
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +712 -0
- package/.docs/raw/docs/integrations/tools/mcp.mdx +267 -0
- package/.docs/raw/docs/primitives/action-bar.mdx +1 -0
- package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -0
- package/.docs/raw/docs/primitives/attachment.mdx +1 -0
- package/.docs/raw/docs/primitives/branch-picker.mdx +1 -0
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +90 -85
- package/.docs/raw/docs/primitives/composer.mdx +96 -63
- package/.docs/raw/docs/primitives/error.mdx +1 -0
- package/.docs/raw/docs/primitives/index.mdx +2 -1
- package/.docs/raw/docs/primitives/message.mdx +68 -5
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -0
- package/.docs/raw/docs/primitives/suggestion.mdx +1 -0
- package/.docs/raw/docs/primitives/thread-list.mdx +39 -0
- package/.docs/raw/docs/primitives/thread.mdx +16 -13
- package/.docs/raw/docs/react-native/index.mdx +1 -3
- package/.docs/raw/docs/react-native/migration.mdx +1 -3
- package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +396 -0
- package/.docs/raw/docs/runtimes/a2a/overview.mdx +60 -0
- package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +216 -0
- package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +70 -0
- package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +243 -0
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +123 -0
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +52 -0
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +71 -131
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +69 -63
- package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +365 -101
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +265 -0
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +125 -0
- package/.docs/raw/docs/runtimes/concepts/stability.mdx +67 -0
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +428 -0
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +703 -0
- package/.docs/raw/docs/runtimes/custom/data-stream.mdx +323 -0
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +253 -1236
- package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +746 -0
- package/.docs/raw/docs/runtimes/custom/overview.mdx +71 -0
- package/.docs/raw/docs/runtimes/google-adk/api.mdx +256 -0
- package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +717 -0
- package/.docs/raw/docs/runtimes/google-adk/overview.mdx +69 -0
- package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +229 -0
- package/.docs/raw/docs/runtimes/langchain.mdx +533 -0
- package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +305 -0
- package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +104 -0
- package/.docs/raw/docs/runtimes/langgraph/overview.mdx +84 -0
- package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +496 -0
- package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +127 -0
- package/.docs/raw/docs/runtimes/langgraph/threads.mdx +113 -0
- package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +3 -3
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -23
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +1 -1
- package/.docs/raw/docs/runtimes/opencode/hooks.mdx +191 -0
- package/.docs/raw/docs/runtimes/opencode/overview.mdx +48 -0
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +119 -0
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +74 -198
- package/.docs/raw/docs/ui/accordion.mdx +1 -0
- package/.docs/raw/docs/ui/assistant-modal.mdx +1 -0
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -0
- package/.docs/raw/docs/ui/attachment.mdx +1 -0
- package/.docs/raw/docs/ui/badge.mdx +1 -0
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +200 -0
- package/.docs/raw/docs/ui/context-display.mdx +1 -0
- package/.docs/raw/docs/ui/diff-viewer.mdx +1 -0
- package/.docs/raw/docs/ui/directive-text.mdx +114 -0
- package/.docs/raw/docs/ui/file.mdx +1 -0
- package/.docs/raw/docs/ui/image.mdx +1 -0
- package/.docs/raw/docs/ui/markdown.mdx +2 -14
- package/.docs/raw/docs/ui/mermaid.mdx +1 -0
- package/.docs/raw/docs/ui/message-timing.mdx +3 -2
- package/.docs/raw/docs/ui/model-selector.mdx +1 -0
- package/.docs/raw/docs/ui/part-grouping.mdx +325 -313
- package/.docs/raw/docs/ui/quote.mdx +1 -0
- package/.docs/raw/docs/ui/reasoning.mdx +69 -32
- package/.docs/raw/docs/ui/scrollbar.mdx +1 -0
- package/.docs/raw/docs/ui/select.mdx +1 -0
- package/.docs/raw/docs/ui/sources.mdx +1 -0
- package/.docs/raw/docs/ui/streamdown.mdx +1 -0
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -0
- package/.docs/raw/docs/ui/tabs.mdx +1 -0
- package/.docs/raw/docs/ui/thread-list.mdx +17 -0
- package/.docs/raw/docs/ui/thread.mdx +56 -1
- package/.docs/raw/docs/ui/tool-fallback.mdx +1 -0
- package/.docs/raw/docs/ui/tool-group.mdx +39 -11
- package/.docs/raw/docs/ui/voice.mdx +1 -0
- package/.docs/raw/docs/utilities/heat-graph.mdx +1 -0
- package/.docs/raw/docs/utilities/react-o11y.mdx +278 -0
- package/.docs/raw/docs/utilities/tw-shimmer.mdx +1 -0
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +4 -4
- package/src/tools/tests/path-traversal.test.ts +1 -1
- package/src/utils/logger.ts +1 -1
- package/.docs/raw/docs/(docs)/guides/branching.mdx +0 -65
- package/.docs/raw/docs/(docs)/guides/chain-of-thought.mdx +0 -164
- package/.docs/raw/docs/(docs)/guides/editing.mdx +0 -66
- package/.docs/raw/docs/(docs)/guides/mentions.mdx +0 -406
- package/.docs/raw/docs/(docs)/guides/slash-commands.mdx +0 -275
- package/.docs/raw/docs/(docs)/guides/speech.mdx +0 -38
- package/.docs/raw/docs/runtimes/a2a/index.mdx +0 -298
- package/.docs/raw/docs/runtimes/assistant-transport.mdx +0 -1033
- package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -268
- package/.docs/raw/docs/runtimes/custom/local.mdx +0 -1464
- package/.docs/raw/docs/runtimes/data-stream.mdx +0 -422
- package/.docs/raw/docs/runtimes/google-adk/index.mdx +0 -686
- package/.docs/raw/docs/runtimes/helicone.mdx +0 -61
- package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -607
- package/.docs/raw/docs/runtimes/langgraph/tutorial/index.mdx +0 -12
- package/.docs/raw/docs/runtimes/langserve.mdx +0 -116
- package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -218
- package/.docs/raw/docs/runtimes/mastra/overview.mdx +0 -18
- package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +0 -217
- package/.docs/raw/docs/ui/mention.mdx +0 -168
|
@@ -417,6 +417,7 @@ export function WaterfallRow() {
|
|
|
417
417
|
<AuiIf condition={(s) => s.span.hasChildren}>
|
|
418
418
|
<SpanPrimitive.CollapseToggle className="flex shrink-0 items-center justify-center rounded p-0.5 text-muted-foreground hover:text-foreground">
|
|
419
419
|
<svg
|
|
420
|
+
aria-hidden="true"
|
|
420
421
|
className="size-3.5 transition-transform data-[collapsed=true]:[-rotate-90]"
|
|
421
422
|
viewBox="0 0 16 16"
|
|
422
423
|
fill="currentColor"
|
|
@@ -438,7 +439,7 @@ export function WaterfallRow() {
|
|
|
438
439
|
className="group-hover:bg-accent/30"
|
|
439
440
|
style={{ width: barWidth, height: barHeight }}
|
|
440
441
|
>
|
|
441
|
-
<svg width={barWidth} height={barHeight}>
|
|
442
|
+
<svg aria-hidden="true" width={barWidth} height={barHeight}>
|
|
442
443
|
<WaterfallBar />
|
|
443
444
|
</svg>
|
|
444
445
|
</div>
|
|
@@ -515,7 +516,12 @@ function TimeAxisTicks({
|
|
|
515
516
|
});
|
|
516
517
|
|
|
517
518
|
return (
|
|
518
|
-
<svg
|
|
519
|
+
<svg
|
|
520
|
+
aria-hidden="true"
|
|
521
|
+
width={barWidth}
|
|
522
|
+
height={28}
|
|
523
|
+
className="overflow-visible"
|
|
524
|
+
>
|
|
519
525
|
{ticks.map(({ t, x }) => (
|
|
520
526
|
<g key={x}>
|
|
521
527
|
<line
|
|
@@ -678,6 +684,8 @@ export function WaterfallTimeline() {
|
|
|
678
684
|
|
|
679
685
|
{/* Span rows */}
|
|
680
686
|
<WaterfallLayoutContext.Provider value={layoutValue}>
|
|
687
|
+
{/* biome-ignore lint/a11y/useKeyWithClickEvents: event delegation on span rows */}
|
|
688
|
+
{/* biome-ignore lint/a11y/noStaticElementInteractions: event delegation on span rows */}
|
|
681
689
|
<div
|
|
682
690
|
style={{ width: contentWidth }}
|
|
683
691
|
onClick={(e) => {
|
|
@@ -769,19 +777,19 @@ export default nextConfig;
|
|
|
769
777
|
"@assistant-ui/react-o11y": "workspace:*",
|
|
770
778
|
"@assistant-ui/store": "workspace:*",
|
|
771
779
|
"@assistant-ui/tap": "workspace:*",
|
|
772
|
-
"next": "^16.2.
|
|
780
|
+
"next": "^16.2.4",
|
|
773
781
|
"react": "^19.2.5",
|
|
774
782
|
"react-dom": "^19.2.5"
|
|
775
783
|
},
|
|
776
784
|
"devDependencies": {
|
|
777
785
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
778
|
-
"@tailwindcss/postcss": "^4.2.
|
|
786
|
+
"@tailwindcss/postcss": "^4.2.4",
|
|
779
787
|
"@types/node": "^25.6.0",
|
|
780
788
|
"@types/react": "^19.2.14",
|
|
781
789
|
"@types/react-dom": "^19.2.3",
|
|
782
|
-
"postcss": "^8.5.
|
|
783
|
-
"tailwindcss": "^4.2.
|
|
784
|
-
"typescript": "^6.0.
|
|
790
|
+
"postcss": "^8.5.14",
|
|
791
|
+
"tailwindcss": "^4.2.4",
|
|
792
|
+
"typescript": "^6.0.3"
|
|
785
793
|
}
|
|
786
794
|
}
|
|
787
795
|
|
|
@@ -170,7 +170,7 @@ export function MyRuntimeProvider({
|
|
|
170
170
|
children,
|
|
171
171
|
}: Readonly<{ children: ReactNode }>) {
|
|
172
172
|
const serverUrl =
|
|
173
|
-
(process.env
|
|
173
|
+
(process.env.NEXT_PUBLIC_A2A_SERVER_URL as string | undefined) ??
|
|
174
174
|
"http://localhost:9999";
|
|
175
175
|
|
|
176
176
|
const runtime = useA2ARuntime({
|
|
@@ -201,8 +201,6 @@ import {
|
|
|
201
201
|
} from "@assistant-ui/react-a2a";
|
|
202
202
|
import { Thread } from "@/components/assistant-ui/thread";
|
|
203
203
|
|
|
204
|
-
// === State Badge ===
|
|
205
|
-
|
|
206
204
|
const STATE_CONFIG: Record<
|
|
207
205
|
string,
|
|
208
206
|
{ label: string; color: string; bg: string }
|
|
@@ -274,8 +272,6 @@ function StateBadge({ state }: { state: A2ATaskState }) {
|
|
|
274
272
|
);
|
|
275
273
|
}
|
|
276
274
|
|
|
277
|
-
// === Task Status Bar ===
|
|
278
|
-
|
|
279
275
|
function TaskStatusBar() {
|
|
280
276
|
const task = useA2ATask();
|
|
281
277
|
|
|
@@ -296,8 +292,6 @@ function TaskStatusBar() {
|
|
|
296
292
|
);
|
|
297
293
|
}
|
|
298
294
|
|
|
299
|
-
// === Artifact Part Renderer ===
|
|
300
|
-
|
|
301
295
|
function ArtifactPartView({ part }: { part: A2APart }) {
|
|
302
296
|
if (part.text !== undefined) {
|
|
303
297
|
return (
|
|
@@ -322,6 +316,7 @@ function ArtifactPartView({ part }: { part: A2APart }) {
|
|
|
322
316
|
const isImage = part.mediaType?.startsWith("image/");
|
|
323
317
|
if (isImage) {
|
|
324
318
|
return (
|
|
319
|
+
// biome-ignore lint/performance/noImgElement: example component
|
|
325
320
|
<img
|
|
326
321
|
src={part.url}
|
|
327
322
|
alt={part.filename ?? "image"}
|
|
@@ -350,6 +345,7 @@ function ArtifactPartView({ part }: { part: A2APart }) {
|
|
|
350
345
|
const isImage = part.mediaType?.startsWith("image/");
|
|
351
346
|
if (isImage) {
|
|
352
347
|
return (
|
|
348
|
+
// biome-ignore lint/performance/noImgElement: example component
|
|
353
349
|
<img
|
|
354
350
|
src={`data:${part.mediaType};base64,${part.raw}`}
|
|
355
351
|
alt={part.filename ?? "image"}
|
|
@@ -377,8 +373,6 @@ function ArtifactPartView({ part }: { part: A2APart }) {
|
|
|
377
373
|
return null;
|
|
378
374
|
}
|
|
379
375
|
|
|
380
|
-
// === Artifact Panel ===
|
|
381
|
-
|
|
382
376
|
function ArtifactPanel() {
|
|
383
377
|
const artifacts = useA2AArtifacts();
|
|
384
378
|
|
|
@@ -417,8 +411,6 @@ function ArtifactPanel() {
|
|
|
417
411
|
);
|
|
418
412
|
}
|
|
419
413
|
|
|
420
|
-
// === Agent Card Banner ===
|
|
421
|
-
|
|
422
414
|
function AgentCardBanner() {
|
|
423
415
|
const card = useA2AAgentCard();
|
|
424
416
|
|
|
@@ -449,8 +441,6 @@ function AgentCardBanner() {
|
|
|
449
441
|
);
|
|
450
442
|
}
|
|
451
443
|
|
|
452
|
-
// === Thread with Suggestions ===
|
|
453
|
-
|
|
454
444
|
function ThreadWithSuggestions() {
|
|
455
445
|
const aui = useAui({
|
|
456
446
|
suggestions: Suggestions([
|
|
@@ -488,8 +478,6 @@ function ThreadWithSuggestions() {
|
|
|
488
478
|
);
|
|
489
479
|
}
|
|
490
480
|
|
|
491
|
-
// === Main ===
|
|
492
|
-
|
|
493
481
|
export default function Home() {
|
|
494
482
|
return (
|
|
495
483
|
<main className="flex h-dvh flex-col">
|
|
@@ -568,22 +556,22 @@ export default nextConfig;
|
|
|
568
556
|
"@assistant-ui/ui": "workspace:*",
|
|
569
557
|
"class-variance-authority": "^0.7.1",
|
|
570
558
|
"clsx": "^2.1.1",
|
|
571
|
-
"lucide-react": "^1.
|
|
572
|
-
"next": "^16.2.
|
|
559
|
+
"lucide-react": "^1.14.0",
|
|
560
|
+
"next": "^16.2.4",
|
|
573
561
|
"react": "^19.2.5",
|
|
574
562
|
"react-dom": "^19.2.5",
|
|
575
563
|
"tailwind-merge": "^3.5.0"
|
|
576
564
|
},
|
|
577
565
|
"devDependencies": {
|
|
578
566
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
579
|
-
"@tailwindcss/postcss": "^4.2.
|
|
567
|
+
"@tailwindcss/postcss": "^4.2.4",
|
|
580
568
|
"@types/node": "^25.6.0",
|
|
581
569
|
"@types/react": "^19.2.14",
|
|
582
570
|
"@types/react-dom": "^19.2.3",
|
|
583
|
-
"postcss": "^8.5.
|
|
584
|
-
"tailwindcss": "^4.2.
|
|
571
|
+
"postcss": "^8.5.14",
|
|
572
|
+
"tailwindcss": "^4.2.4",
|
|
585
573
|
"tw-animate-css": "^1.4.0",
|
|
586
|
-
"typescript": "^6.0.
|
|
574
|
+
"typescript": "^6.0.3"
|
|
587
575
|
}
|
|
588
576
|
}
|
|
589
577
|
|
|
@@ -141,6 +141,8 @@ export const metadata: Metadata = {
|
|
|
141
141
|
description: "Generated by create next app",
|
|
142
142
|
};
|
|
143
143
|
|
|
144
|
+
export const dynamic = "force-dynamic";
|
|
145
|
+
|
|
144
146
|
export default function RootLayout({
|
|
145
147
|
children,
|
|
146
148
|
}: Readonly<{
|
|
@@ -182,7 +184,7 @@ export function MyRuntimeProvider({
|
|
|
182
184
|
children,
|
|
183
185
|
}: Readonly<{ children: ReactNode }>) {
|
|
184
186
|
const agentUrl =
|
|
185
|
-
(process.env
|
|
187
|
+
(process.env.NEXT_PUBLIC_AGUI_AGENT_URL as string | undefined) ??
|
|
186
188
|
"http://localhost:8000/agent";
|
|
187
189
|
|
|
188
190
|
// Simple in-memory thread storage
|
|
@@ -313,6 +315,7 @@ function NewThreadButton() {
|
|
|
313
315
|
|
|
314
316
|
return (
|
|
315
317
|
<button
|
|
318
|
+
type="button"
|
|
316
319
|
onClick={() => aui.threads().switchToNewThread()}
|
|
317
320
|
className="absolute top-4 right-4 z-10 flex items-center gap-2 rounded-lg border bg-background px-3 py-2 font-medium text-sm shadow-sm transition-colors hover:bg-accent"
|
|
318
321
|
>
|
|
@@ -413,29 +416,29 @@ export default nextConfig;
|
|
|
413
416
|
"start": "next start"
|
|
414
417
|
},
|
|
415
418
|
"dependencies": {
|
|
416
|
-
"@ag-ui/client": "^0.0.
|
|
419
|
+
"@ag-ui/client": "^0.0.53",
|
|
417
420
|
"@assistant-ui/react": "workspace:*",
|
|
418
421
|
"@assistant-ui/react-ag-ui": "workspace:*",
|
|
419
422
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
420
423
|
"@assistant-ui/ui": "workspace:*",
|
|
421
424
|
"class-variance-authority": "^0.7.1",
|
|
422
425
|
"clsx": "^2.1.1",
|
|
423
|
-
"lucide-react": "^1.
|
|
424
|
-
"next": "^16.2.
|
|
426
|
+
"lucide-react": "^1.14.0",
|
|
427
|
+
"next": "^16.2.4",
|
|
425
428
|
"react": "^19.2.5",
|
|
426
429
|
"react-dom": "^19.2.5",
|
|
427
430
|
"tailwind-merge": "^3.5.0"
|
|
428
431
|
},
|
|
429
432
|
"devDependencies": {
|
|
430
433
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
431
|
-
"@tailwindcss/postcss": "^4.2.
|
|
434
|
+
"@tailwindcss/postcss": "^4.2.4",
|
|
432
435
|
"@types/node": "^25.6.0",
|
|
433
436
|
"@types/react": "^19.2.14",
|
|
434
437
|
"@types/react-dom": "^19.2.3",
|
|
435
|
-
"postcss": "^8.5.
|
|
436
|
-
"tailwindcss": "^4.2.
|
|
438
|
+
"postcss": "^8.5.14",
|
|
439
|
+
"tailwindcss": "^4.2.4",
|
|
437
440
|
"tw-animate-css": "^1.4.0",
|
|
438
|
-
"typescript": "^6.0.
|
|
441
|
+
"typescript": "^6.0.3"
|
|
439
442
|
}
|
|
440
443
|
}
|
|
441
444
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { openai } from "@ai-sdk/openai";
|
|
7
7
|
import { frontendTools } from "@assistant-ui/react-ai-sdk";
|
|
8
8
|
import {
|
|
9
|
-
JSONSchema7,
|
|
9
|
+
type JSONSchema7,
|
|
10
10
|
streamText,
|
|
11
11
|
convertToModelMessages,
|
|
12
12
|
type UIMessage,
|
|
@@ -315,31 +315,31 @@ export default nextConfig;
|
|
|
315
315
|
"start": "next start"
|
|
316
316
|
},
|
|
317
317
|
"dependencies": {
|
|
318
|
-
"@ai-sdk/openai": "^3.0.
|
|
318
|
+
"@ai-sdk/openai": "^3.0.61",
|
|
319
319
|
"@assistant-ui/react": "workspace:*",
|
|
320
320
|
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
321
321
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
322
322
|
"@assistant-ui/ui": "workspace:*",
|
|
323
|
-
"ai": "^6.0.
|
|
323
|
+
"ai": "^6.0.175",
|
|
324
324
|
"class-variance-authority": "^0.7.1",
|
|
325
325
|
"clsx": "^2.1.1",
|
|
326
|
-
"lucide-react": "^1.
|
|
327
|
-
"next": "^16.2.
|
|
326
|
+
"lucide-react": "^1.14.0",
|
|
327
|
+
"next": "^16.2.4",
|
|
328
328
|
"react": "^19.2.5",
|
|
329
329
|
"react-dom": "^19.2.5",
|
|
330
330
|
"tailwind-merge": "^3.5.0",
|
|
331
|
-
"zod": "^4.3
|
|
331
|
+
"zod": "^4.4.3"
|
|
332
332
|
},
|
|
333
333
|
"devDependencies": {
|
|
334
334
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
335
|
-
"@tailwindcss/postcss": "^4.2.
|
|
335
|
+
"@tailwindcss/postcss": "^4.2.4",
|
|
336
336
|
"@types/node": "^25.6.0",
|
|
337
337
|
"@types/react": "^19.2.14",
|
|
338
338
|
"@types/react-dom": "^19.2.3",
|
|
339
|
-
"postcss": "^8.5.
|
|
340
|
-
"tailwindcss": "^4.2.
|
|
339
|
+
"postcss": "^8.5.14",
|
|
340
|
+
"tailwindcss": "^4.2.4",
|
|
341
341
|
"tw-animate-css": "^1.4.0",
|
|
342
|
-
"typescript": "^6.0.
|
|
342
|
+
"typescript": "^6.0.3"
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
345
|
|
|
@@ -258,7 +258,7 @@ function ArtifactsView() {
|
|
|
258
258
|
.at(-1);
|
|
259
259
|
});
|
|
260
260
|
|
|
261
|
-
const code = lastToolCall?.args
|
|
261
|
+
const code = lastToolCall?.args.code as string | undefined;
|
|
262
262
|
const isComplete = lastToolCall?.result !== undefined;
|
|
263
263
|
|
|
264
264
|
if (!code) return null;
|
|
@@ -268,6 +268,7 @@ function ArtifactsView() {
|
|
|
268
268
|
<div className="flex h-full w-full flex-col overflow-hidden rounded-lg border">
|
|
269
269
|
<div className="flex border-b">
|
|
270
270
|
<button
|
|
271
|
+
type="button"
|
|
271
272
|
onClick={() => setTab("source")}
|
|
272
273
|
className={`inline-flex flex-1 items-center justify-center gap-2 px-4 py-2.5 font-medium text-sm transition-colors ${
|
|
273
274
|
tab === "source"
|
|
@@ -279,6 +280,7 @@ function ArtifactsView() {
|
|
|
279
280
|
Source Code
|
|
280
281
|
</button>
|
|
281
282
|
<button
|
|
283
|
+
type="button"
|
|
282
284
|
onClick={() => isComplete && setTab("preview")}
|
|
283
285
|
disabled={!isComplete}
|
|
284
286
|
className={`inline-flex flex-1 items-center justify-center gap-2 px-4 py-2.5 font-medium text-sm transition-colors ${
|
|
@@ -413,31 +415,31 @@ export default nextConfig;
|
|
|
413
415
|
"start": "next start"
|
|
414
416
|
},
|
|
415
417
|
"dependencies": {
|
|
416
|
-
"@ai-sdk/openai": "^3.0.
|
|
418
|
+
"@ai-sdk/openai": "^3.0.61",
|
|
417
419
|
"@assistant-ui/react": "workspace:*",
|
|
418
420
|
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
419
421
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
420
422
|
"@assistant-ui/ui": "workspace:*",
|
|
421
|
-
"ai": "^6.0.
|
|
423
|
+
"ai": "^6.0.175",
|
|
422
424
|
"class-variance-authority": "^0.7.1",
|
|
423
425
|
"clsx": "^2.1.1",
|
|
424
|
-
"lucide-react": "^1.
|
|
425
|
-
"next": "^16.2.
|
|
426
|
+
"lucide-react": "^1.14.0",
|
|
427
|
+
"next": "^16.2.4",
|
|
426
428
|
"react": "^19.2.5",
|
|
427
429
|
"react-dom": "^19.2.5",
|
|
428
430
|
"tailwind-merge": "^3.5.0",
|
|
429
|
-
"zod": "^4.3
|
|
431
|
+
"zod": "^4.4.3"
|
|
430
432
|
},
|
|
431
433
|
"devDependencies": {
|
|
432
434
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
433
|
-
"@tailwindcss/postcss": "^4.2.
|
|
435
|
+
"@tailwindcss/postcss": "^4.2.4",
|
|
434
436
|
"@types/node": "^25.6.0",
|
|
435
437
|
"@types/react": "^19.2.14",
|
|
436
438
|
"@types/react-dom": "^19.2.3",
|
|
437
|
-
"postcss": "^8.5.
|
|
438
|
-
"tailwindcss": "^4.2.
|
|
439
|
+
"postcss": "^8.5.14",
|
|
440
|
+
"tailwindcss": "^4.2.4",
|
|
439
441
|
"tw-animate-css": "^1.4.0",
|
|
440
|
-
"typescript": "^6.0.
|
|
442
|
+
"typescript": "^6.0.3"
|
|
441
443
|
}
|
|
442
444
|
}
|
|
443
445
|
|
|
@@ -170,16 +170,16 @@ export default function RootLayout({
|
|
|
170
170
|
|
|
171
171
|
import {
|
|
172
172
|
AssistantRuntimeProvider,
|
|
173
|
-
AssistantTransportConnectionMetadata,
|
|
173
|
+
type AssistantTransportConnectionMetadata,
|
|
174
174
|
makeAssistantTool,
|
|
175
175
|
unstable_createMessageConverter as createMessageConverter,
|
|
176
176
|
useAssistantTransportRuntime,
|
|
177
177
|
} from "@assistant-ui/react";
|
|
178
178
|
import {
|
|
179
179
|
convertLangChainMessages,
|
|
180
|
-
LangChainMessage,
|
|
180
|
+
type LangChainMessage,
|
|
181
181
|
} from "@assistant-ui/react-langgraph";
|
|
182
|
-
import { ReactNode } from "react";
|
|
182
|
+
import type { ReactNode } from "react";
|
|
183
183
|
import { z } from "zod";
|
|
184
184
|
|
|
185
185
|
// Frontend tool with execute function
|
|
@@ -274,8 +274,7 @@ export function MyRuntimeProvider({ children }: MyRuntimeProviderProps) {
|
|
|
274
274
|
initialState: {
|
|
275
275
|
messages: [],
|
|
276
276
|
},
|
|
277
|
-
api:
|
|
278
|
-
process.env["NEXT_PUBLIC_API_URL"] || "http://localhost:8010/assistant",
|
|
277
|
+
api: process.env.NEXT_PUBLIC_API_URL || "http://localhost:8010/assistant",
|
|
279
278
|
converter,
|
|
280
279
|
headers: async () => ({
|
|
281
280
|
"Test-Header": "test-value",
|
|
@@ -423,23 +422,23 @@ export default nextConfig;
|
|
|
423
422
|
"@assistant-ui/ui": "workspace:*",
|
|
424
423
|
"class-variance-authority": "^0.7.1",
|
|
425
424
|
"clsx": "^2.1.1",
|
|
426
|
-
"lucide-react": "^1.
|
|
427
|
-
"next": "^16.2.
|
|
425
|
+
"lucide-react": "^1.14.0",
|
|
426
|
+
"next": "^16.2.4",
|
|
428
427
|
"react": "^19.2.5",
|
|
429
428
|
"react-dom": "^19.2.5",
|
|
430
429
|
"tailwind-merge": "^3.5.0",
|
|
431
|
-
"zod": "^4.3
|
|
430
|
+
"zod": "^4.4.3"
|
|
432
431
|
},
|
|
433
432
|
"devDependencies": {
|
|
434
433
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
435
|
-
"@tailwindcss/postcss": "^4.2.
|
|
434
|
+
"@tailwindcss/postcss": "^4.2.4",
|
|
436
435
|
"@types/node": "^25.6.0",
|
|
437
436
|
"@types/react": "^19.2.14",
|
|
438
437
|
"@types/react-dom": "^19.2.3",
|
|
439
|
-
"postcss": "^8.5.
|
|
440
|
-
"tailwindcss": "^4.2.
|
|
438
|
+
"postcss": "^8.5.14",
|
|
439
|
+
"tailwindcss": "^4.2.4",
|
|
441
440
|
"tw-animate-css": "^1.4.0",
|
|
442
|
-
"typescript": "^6.0.
|
|
441
|
+
"typescript": "^6.0.3"
|
|
443
442
|
}
|
|
444
443
|
}
|
|
445
444
|
|
|
@@ -25,7 +25,7 @@ export async function POST(req: Request) {
|
|
|
25
25
|
|
|
26
26
|
const result = streamText({
|
|
27
27
|
// Use a reasoning model to showcase chain of thought
|
|
28
|
-
model: openai("
|
|
28
|
+
model: openai("gpt-5.4-mini"),
|
|
29
29
|
messages: await convertToModelMessages(messages),
|
|
30
30
|
stopWhen: stepCountIs(10),
|
|
31
31
|
tools: {
|
|
@@ -45,9 +45,15 @@ export async function POST(req: Request) {
|
|
|
45
45
|
},
|
|
46
46
|
}),
|
|
47
47
|
},
|
|
48
|
+
providerOptions: {
|
|
49
|
+
openai: {
|
|
50
|
+
reasoningEffort: "high",
|
|
51
|
+
reasoningSummary: "auto",
|
|
52
|
+
},
|
|
53
|
+
},
|
|
48
54
|
});
|
|
49
55
|
|
|
50
|
-
return result.toUIMessageStreamResponse();
|
|
56
|
+
return result.toUIMessageStreamResponse({ sendReasoning: true });
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
```
|
|
@@ -188,7 +194,7 @@ import "./globals.css";
|
|
|
188
194
|
|
|
189
195
|
export const metadata: Metadata = {
|
|
190
196
|
title: "Chain of Thought Example",
|
|
191
|
-
description: "Example using
|
|
197
|
+
description: "Example using MessagePrimitive.GroupedParts with AI SDK",
|
|
192
198
|
};
|
|
193
199
|
|
|
194
200
|
export default function RootLayout({
|
|
@@ -216,11 +222,9 @@ import { TooltipIconButton } from "@/components/assistant-ui/tooltip-icon-button
|
|
|
216
222
|
import { Button } from "@/components/ui/button";
|
|
217
223
|
import {
|
|
218
224
|
AuiIf,
|
|
219
|
-
ChainOfThoughtPrimitive,
|
|
220
225
|
ComposerPrimitive,
|
|
221
226
|
MessagePrimitive,
|
|
222
227
|
ThreadPrimitive,
|
|
223
|
-
useAuiState,
|
|
224
228
|
} from "@assistant-ui/react";
|
|
225
229
|
import {
|
|
226
230
|
ArrowDownIcon,
|
|
@@ -286,61 +290,69 @@ const AssistantMessage: FC = () => {
|
|
|
286
290
|
return (
|
|
287
291
|
<MessagePrimitive.Root className="mx-auto w-full max-w-(--thread-max-width) py-3">
|
|
288
292
|
<div className="flex flex-col gap-2 px-2 leading-relaxed">
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
+
<MessagePrimitive.GroupedParts
|
|
294
|
+
groupBy={(part) => {
|
|
295
|
+
if (part.type === "reasoning")
|
|
296
|
+
return ["group-chainOfThought", "group-reasoning"];
|
|
297
|
+
if (part.type === "tool-call")
|
|
298
|
+
return ["group-chainOfThought", "group-tool"];
|
|
293
299
|
return null;
|
|
294
300
|
}}
|
|
295
|
-
|
|
296
|
-
|
|
301
|
+
>
|
|
302
|
+
{({ part, children }) => {
|
|
303
|
+
switch (part.type) {
|
|
304
|
+
case "group-chainOfThought":
|
|
305
|
+
return <ChainOfThoughtGroup>{children}</ChainOfThoughtGroup>;
|
|
306
|
+
case "group-reasoning":
|
|
307
|
+
return <PartLayout label="Thinking">{children}</PartLayout>;
|
|
308
|
+
case "group-tool":
|
|
309
|
+
return (
|
|
310
|
+
<PartLayout label="Taking action">{children}</PartLayout>
|
|
311
|
+
);
|
|
312
|
+
case "text":
|
|
313
|
+
return <MarkdownText />;
|
|
314
|
+
case "reasoning":
|
|
315
|
+
return <Reasoning {...part} />;
|
|
316
|
+
case "tool-call":
|
|
317
|
+
return <ToolCall {...part} />;
|
|
318
|
+
default:
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
}}
|
|
322
|
+
</MessagePrimitive.GroupedParts>
|
|
297
323
|
</div>
|
|
298
324
|
</MessagePrimitive.Root>
|
|
299
325
|
);
|
|
300
326
|
};
|
|
301
327
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
*
|
|
306
|
-
* Uses ChainOfThoughtPrimitive.Root, AccordionTrigger, and Parts to create
|
|
307
|
-
* a collapsible accordion that groups all "thinking" steps together.
|
|
308
|
-
*/
|
|
309
|
-
const ChainOfThought: FC = () => {
|
|
328
|
+
const ChainOfThoughtGroup: FC<PropsWithChildren> = ({ children }) => {
|
|
329
|
+
const [open, setOpen] = useState(false);
|
|
330
|
+
|
|
310
331
|
return (
|
|
311
|
-
<
|
|
312
|
-
<
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
332
|
+
<div className="my-2 rounded-lg border">
|
|
333
|
+
<button
|
|
334
|
+
type="button"
|
|
335
|
+
className="flex w-full cursor-pointer items-center gap-2 px-4 py-2 font-medium text-sm hover:bg-muted/50"
|
|
336
|
+
onClick={() => setOpen((o) => !o)}
|
|
337
|
+
>
|
|
338
|
+
{open ? (
|
|
317
339
|
<ChevronDownIcon className="size-4 shrink-0" />
|
|
318
|
-
|
|
340
|
+
) : (
|
|
341
|
+
<ChevronRightIcon className="size-4 shrink-0" />
|
|
342
|
+
)}
|
|
319
343
|
Thinking
|
|
320
|
-
</
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
{({ part }) => {
|
|
324
|
-
if (part.type === "reasoning")
|
|
325
|
-
return (
|
|
326
|
-
<PartLayout>
|
|
327
|
-
<Reasoning {...part} />
|
|
328
|
-
</PartLayout>
|
|
329
|
-
);
|
|
330
|
-
return null;
|
|
331
|
-
}}
|
|
332
|
-
</ChainOfThoughtPrimitive.Parts>
|
|
333
|
-
</AuiIf>
|
|
334
|
-
</ChainOfThoughtPrimitive.Root>
|
|
344
|
+
</button>
|
|
345
|
+
{open && children}
|
|
346
|
+
</div>
|
|
335
347
|
);
|
|
336
348
|
};
|
|
337
349
|
|
|
338
|
-
const PartLayout: FC<PropsWithChildren
|
|
339
|
-
|
|
350
|
+
const PartLayout: FC<PropsWithChildren<{ label: string }>> = ({
|
|
351
|
+
children,
|
|
352
|
+
label,
|
|
353
|
+
}) => {
|
|
340
354
|
const [open, setOpen] = useState(true);
|
|
341
355
|
|
|
342
|
-
const label = partType === "reasoning" ? "Thinking" : "Taking action";
|
|
343
|
-
|
|
344
356
|
return (
|
|
345
357
|
<div className="border-t">
|
|
346
358
|
<button
|
|
@@ -368,6 +380,23 @@ const Reasoning: FC<{ text: string }> = ({ text }) => {
|
|
|
368
380
|
);
|
|
369
381
|
};
|
|
370
382
|
|
|
383
|
+
const ToolCall: FC<{ toolName: string; status: { type: string } }> = ({
|
|
384
|
+
toolName,
|
|
385
|
+
status,
|
|
386
|
+
}) => {
|
|
387
|
+
return (
|
|
388
|
+
<div className="px-4 py-2 text-sm">
|
|
389
|
+
{status.type === "running"
|
|
390
|
+
? `Running ${toolName}...`
|
|
391
|
+
: status.type === "complete"
|
|
392
|
+
? `${toolName} completed`
|
|
393
|
+
: status.type === "incomplete"
|
|
394
|
+
? `${toolName} failed`
|
|
395
|
+
: `${toolName} requires action`}
|
|
396
|
+
</div>
|
|
397
|
+
);
|
|
398
|
+
};
|
|
399
|
+
|
|
371
400
|
const Composer: FC = () => {
|
|
372
401
|
return (
|
|
373
402
|
<ComposerPrimitive.Root className="flex w-full flex-col rounded-2xl border border-input bg-background px-1 pt-2 outline-none transition-shadow has-[textarea:focus-visible]:border-ring has-[textarea:focus-visible]:ring-2 has-[textarea:focus-visible]:ring-ring/20">
|
|
@@ -557,31 +586,31 @@ export default nextConfig;
|
|
|
557
586
|
"start": "next start"
|
|
558
587
|
},
|
|
559
588
|
"dependencies": {
|
|
560
|
-
"@ai-sdk/openai": "^3.0.
|
|
589
|
+
"@ai-sdk/openai": "^3.0.61",
|
|
561
590
|
"@assistant-ui/react": "workspace:*",
|
|
562
591
|
"@assistant-ui/react-ai-sdk": "workspace:*",
|
|
563
592
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
564
593
|
"@assistant-ui/ui": "workspace:*",
|
|
565
|
-
"ai": "^6.0.
|
|
594
|
+
"ai": "^6.0.175",
|
|
566
595
|
"class-variance-authority": "^0.7.1",
|
|
567
596
|
"clsx": "^2.1.1",
|
|
568
|
-
"lucide-react": "^1.
|
|
569
|
-
"next": "^16.2.
|
|
597
|
+
"lucide-react": "^1.14.0",
|
|
598
|
+
"next": "^16.2.4",
|
|
570
599
|
"react": "^19.2.5",
|
|
571
600
|
"react-dom": "^19.2.5",
|
|
572
601
|
"tailwind-merge": "^3.5.0",
|
|
573
|
-
"zod": "^4.3
|
|
602
|
+
"zod": "^4.4.3"
|
|
574
603
|
},
|
|
575
604
|
"devDependencies": {
|
|
576
605
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
577
|
-
"@tailwindcss/postcss": "^4.2.
|
|
606
|
+
"@tailwindcss/postcss": "^4.2.4",
|
|
578
607
|
"@types/node": "^25.6.0",
|
|
579
608
|
"@types/react": "^19.2.14",
|
|
580
609
|
"@types/react-dom": "^19.2.3",
|
|
581
|
-
"postcss": "^8.5.
|
|
582
|
-
"tailwindcss": "^4.2.
|
|
610
|
+
"postcss": "^8.5.14",
|
|
611
|
+
"tailwindcss": "^4.2.4",
|
|
583
612
|
"tw-animate-css": "^1.4.0",
|
|
584
|
-
"typescript": "^6.0.
|
|
613
|
+
"typescript": "^6.0.3"
|
|
585
614
|
}
|
|
586
615
|
}
|
|
587
616
|
|