@assistant-ui/mcp-docs-server 0.1.31 → 0.1.32
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 +8 -8
- package/.docs/organized/code-examples/with-a2a.md +10 -10
- package/.docs/organized/code-examples/with-ag-ui.md +11 -11
- package/.docs/organized/code-examples/with-ai-sdk-v6.md +13 -13
- package/.docs/organized/code-examples/with-artifacts.md +13 -13
- package/.docs/organized/code-examples/with-assistant-transport.md +10 -10
- package/.docs/organized/code-examples/with-browser-extension.md +345 -0
- package/.docs/organized/code-examples/with-chain-of-thought.md +54 -17
- package/.docs/organized/code-examples/with-cloud-standalone.md +13 -13
- package/.docs/organized/code-examples/with-cloud.md +13 -13
- package/.docs/organized/code-examples/with-custom-thread-list.md +13 -13
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +17 -16
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +17 -16
- package/.docs/organized/code-examples/with-expo.md +24 -24
- package/.docs/organized/code-examples/with-external-store.md +10 -10
- package/.docs/organized/code-examples/with-ffmpeg.md +13 -13
- package/.docs/organized/code-examples/with-generative-ui.md +210 -13
- package/.docs/organized/code-examples/with-google-adk.md +10 -10
- package/.docs/organized/code-examples/with-heat-graph.md +8 -8
- package/.docs/organized/code-examples/with-image-generation.md +454 -0
- package/.docs/organized/code-examples/with-interactables.md +13 -13
- package/.docs/organized/code-examples/with-langchain.md +12 -12
- package/.docs/organized/code-examples/with-langgraph.md +15 -12
- package/.docs/organized/code-examples/with-livekit.md +18 -17
- package/.docs/organized/code-examples/with-mcp.md +748 -0
- package/.docs/organized/code-examples/with-opencode.md +11 -11
- package/.docs/organized/code-examples/with-parent-id-grouping.md +11 -11
- package/.docs/organized/code-examples/with-react-hook-form.md +14 -14
- package/.docs/organized/code-examples/with-react-ink.md +4 -4
- package/.docs/organized/code-examples/with-react-router.md +15 -15
- package/.docs/organized/code-examples/with-resumable-stream.md +660 -0
- package/.docs/organized/code-examples/with-store.md +8 -8
- package/.docs/organized/code-examples/with-tanstack.md +14 -14
- package/.docs/organized/code-examples/with-tap-runtime.md +11 -10
- package/.docs/raw/docs/(docs)/cli.mdx +1 -0
- package/.docs/raw/docs/(docs)/index.mdx +2 -2
- package/.docs/raw/docs/(docs)/installation.mdx +1 -1
- package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +26 -24
- package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +20 -12
- package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +44 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +37 -16
- package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +12 -23
- package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +37 -8
- package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +11 -9
- package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +64 -0
- package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +52 -0
- package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +36 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +98 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +18 -13
- package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +18 -57
- package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +640 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +15 -28
- package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +64 -18
- package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +434 -0
- package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +24 -0
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +11 -12
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +79 -0
- package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +52 -0
- package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +110 -131
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +78 -221
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +127 -242
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +39 -20
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +66 -87
- package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +50 -58
- package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +80 -48
- package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +67 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +323 -461
- package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +36 -43
- package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +29 -24
- package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +63 -245
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +175 -591
- package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +65 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +35 -22
- package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +57 -140
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +70 -161
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +84 -108
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +77 -96
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +173 -349
- package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +9 -21
- package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +10 -21
- package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +15 -70
- package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +18 -13
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +25 -28
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +11 -63
- package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +11 -48
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +10 -47
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +18 -30
- package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +68 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +39 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +79 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +42 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +92 -0
- package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +48 -0
- package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +62 -0
- package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +19 -0
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +131 -0
- package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +54 -0
- package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +36 -0
- package/.docs/raw/docs/cloud/ai-sdk.mdx +1 -1
- package/.docs/raw/docs/cloud/index.mdx +2 -2
- package/.docs/raw/docs/guides/attachments.mdx +4 -4
- package/.docs/raw/docs/guides/branching.mdx +1 -1
- package/.docs/raw/docs/guides/chain-of-thought.mdx +5 -5
- package/.docs/raw/docs/guides/context-api.mdx +4 -4
- package/.docs/raw/docs/guides/dictation.mdx +2 -2
- package/.docs/raw/docs/guides/editing.mdx +1 -1
- package/.docs/raw/docs/guides/generative-ui.mdx +142 -0
- package/.docs/raw/docs/guides/image-generation.mdx +74 -0
- package/.docs/raw/docs/guides/index.mdx +2 -2
- package/.docs/raw/docs/guides/interactables.mdx +2 -2
- package/.docs/raw/docs/guides/latex.mdx +2 -2
- package/.docs/raw/docs/guides/mcp-apps.mdx +231 -0
- package/.docs/raw/docs/guides/mentions.mdx +2 -2
- package/.docs/raw/docs/guides/message-timing.mdx +38 -5
- package/.docs/raw/docs/guides/multi-agent.mdx +2 -2
- package/.docs/raw/docs/guides/quoting.mdx +1 -1
- package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +212 -0
- package/.docs/raw/docs/guides/resumable-stream-stores.mdx +152 -0
- package/.docs/raw/docs/guides/resumable-streams.mdx +210 -0
- package/.docs/raw/docs/guides/slash-commands.mdx +1 -1
- package/.docs/raw/docs/guides/speech.mdx +2 -2
- package/.docs/raw/docs/guides/suggestions.mdx +88 -4
- package/.docs/raw/docs/guides/tool-ui.mdx +2 -2
- package/.docs/raw/docs/guides/tools.mdx +66 -5
- package/.docs/raw/docs/guides/voice.mdx +2 -2
- package/.docs/raw/docs/ink/adapters.mdx +37 -1
- package/.docs/raw/docs/ink/custom-backend.mdx +59 -8
- package/.docs/raw/docs/ink/index.mdx +10 -11
- package/.docs/raw/docs/ink/primitives.mdx +349 -8
- package/.docs/raw/docs/integrations/auth/better-auth.mdx +1 -1
- package/.docs/raw/docs/integrations/auth/clerk.mdx +1 -1
- package/.docs/raw/docs/integrations/auth/next-auth.mdx +1 -1
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +2 -2
- package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +282 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +2 -2
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
- package/.docs/raw/docs/integrations/gateways/index.mdx +9 -4
- package/.docs/raw/docs/integrations/index.mdx +15 -3
- package/.docs/raw/docs/integrations/observability/langfuse.mdx +8 -1
- package/.docs/raw/docs/integrations/observability/langsmith.mdx +8 -4
- package/.docs/raw/docs/integrations/tools/react-mcp.mdx +337 -0
- package/.docs/raw/docs/primitives/composer.mdx +53 -0
- package/.docs/raw/docs/primitives/index.mdx +2 -2
- package/.docs/raw/docs/primitives/suggestion.mdx +9 -0
- package/.docs/raw/docs/react-native/hooks.mdx +2 -2
- package/.docs/raw/docs/react-native/index.mdx +4 -4
- package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +4 -4
- package/.docs/raw/docs/runtimes/a2a/overview.mdx +2 -2
- package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +2 -2
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +32 -1
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +2 -2
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +7 -2
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +1 -1
- package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +7 -0
- package/.docs/raw/docs/runtimes/custom/data-stream.mdx +27 -2
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +9 -1
- package/.docs/raw/docs/runtimes/custom/overview.mdx +2 -2
- package/.docs/raw/docs/runtimes/google-adk/overview.mdx +2 -2
- package/.docs/raw/docs/runtimes/langchain.mdx +2 -2
- package/.docs/raw/docs/runtimes/langgraph/overview.mdx +2 -2
- package/.docs/raw/docs/runtimes/opencode/overview.mdx +2 -2
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +1 -1
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +12 -5
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +11 -1
- package/.docs/raw/docs/ui/mcp-config.mdx +102 -0
- package/.docs/raw/docs/ui/model-selector.mdx +8 -8
- package/.docs/raw/docs/ui/sources.mdx +17 -0
- package/.docs/raw/docs/ui/streamdown.mdx +34 -2
- package/.docs/raw/docs/ui/thread-list.mdx +2 -2
- package/.docs/raw/docs/ui/thread.mdx +2 -2
- package/README.md +14 -72
- package/dist/constants.d.ts +12 -9
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +13 -9
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -24
- package/dist/index.js.map +1 -1
- package/dist/prepare-docs/code-examples.d.ts +4 -1
- package/dist/prepare-docs/code-examples.d.ts.map +1 -1
- package/dist/prepare-docs/code-examples.js +109 -121
- package/dist/prepare-docs/code-examples.js.map +1 -1
- package/dist/prepare-docs/copy-raw.d.ts +4 -1
- package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
- package/dist/prepare-docs/copy-raw.js +45 -42
- package/dist/prepare-docs/copy-raw.js.map +1 -1
- package/dist/prepare-docs/prepare.d.ts +1 -2
- package/dist/prepare-docs/prepare.js +17 -17
- package/dist/prepare-docs/prepare.js.map +1 -1
- package/dist/stdio.d.ts +1 -3
- package/dist/stdio.js +6 -3
- package/dist/stdio.js.map +1 -1
- package/dist/tools/docs.d.ts +20 -15
- package/dist/tools/docs.d.ts.map +1 -1
- package/dist/tools/docs.js +140 -161
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/examples.d.ts +20 -15
- package/dist/tools/examples.d.ts.map +1 -1
- package/dist/tools/examples.js +74 -86
- package/dist/tools/examples.js.map +1 -1
- package/dist/tools/tests/test-setup.d.ts +5 -2
- package/dist/tools/tests/test-setup.d.ts.map +1 -1
- package/dist/tools/tests/test-setup.js +21 -28
- package/dist/tools/tests/test-setup.js.map +1 -1
- package/dist/utils/logger.d.ts +8 -5
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +17 -17
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/mcp-format.d.ts +8 -5
- package/dist/utils/mcp-format.d.ts.map +1 -1
- package/dist/utils/mcp-format.js +9 -9
- package/dist/utils/mcp-format.js.map +1 -1
- package/dist/utils/mdx.d.ts +8 -6
- package/dist/utils/mdx.d.ts.map +1 -1
- package/dist/utils/mdx.js +22 -22
- package/dist/utils/mdx.js.map +1 -1
- package/dist/utils/paths.d.ts +9 -6
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +66 -76
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/security.d.ts +4 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +19 -40
- package/dist/utils/security.js.map +1 -1
- package/package.json +5 -5
- package/.docs/raw/docs/(reference)/api-reference/adapters/feedback-speech.mdx +0 -41
- package/.docs/raw/docs/(reference)/api-reference/context-providers/text-message-part-provider.mdx +0 -40
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -260
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-hook-form.mdx +0 -103
- package/.docs/raw/docs/(reference)/api-reference/integrations/vercel-ai-sdk.mdx +0 -254
- package/dist/prepare-docs/prepare.d.ts.map +0 -1
- package/dist/stdio.d.ts.map +0 -1
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/deprecation-policy.mdx +0 -0
- /package/.docs/raw/docs/{(reference) → migrations}/react-compatibility.mdx +0 -0
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/react-langgraph-v0-7.mdx +0 -0
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-11.mdx +0 -0
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-12.mdx +0 -0
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-14.mdx +0 -0
|
@@ -159,6 +159,69 @@ Renders a suggestion button. Uses Ink `Box` + `Text`.
|
|
|
159
159
|
| `send` | `boolean` | When true, automatically sends the message |
|
|
160
160
|
| `clearComposer` | `boolean` | When true (default), replaces composer text; when false, appends |
|
|
161
161
|
|
|
162
|
+
## Loading
|
|
163
|
+
|
|
164
|
+
```tsx
|
|
165
|
+
import { LoadingPrimitive } from "@assistant-ui/react-ink";
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Composable loading UI for active runs. `LoadingPrimitive.Root` only renders
|
|
169
|
+
while the current thread is running, so it pairs naturally with status rows in
|
|
170
|
+
terminal chat layouts.
|
|
171
|
+
|
|
172
|
+
```tsx
|
|
173
|
+
<LoadingPrimitive.Root gap={1}>
|
|
174
|
+
<LoadingPrimitive.Spinner variant="bar" />
|
|
175
|
+
<LoadingPrimitive.Text>Analyzing codebase...</LoadingPrimitive.Text>
|
|
176
|
+
<LoadingPrimitive.ElapsedTime />
|
|
177
|
+
</LoadingPrimitive.Root>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
This renders a compact status line such as `[=== ] Analyzing codebase... (3s)`
|
|
181
|
+
while the assistant is streaming.
|
|
182
|
+
|
|
183
|
+
### Root
|
|
184
|
+
|
|
185
|
+
Runtime-aware `Box` container that renders children only while
|
|
186
|
+
`s.thread.isRunning` is true.
|
|
187
|
+
|
|
188
|
+
| Prop | Type | Description |
|
|
189
|
+
|------|------|-------------|
|
|
190
|
+
| `children` | `ReactNode` | Status row content |
|
|
191
|
+
| `...rest` | `BoxProps` | Standard Ink Box props |
|
|
192
|
+
|
|
193
|
+
### Spinner
|
|
194
|
+
|
|
195
|
+
Animated loader indicator. Supports the existing `ink-spinner` path plus a few
|
|
196
|
+
built-in text-based variants for more terminal-native styles.
|
|
197
|
+
|
|
198
|
+
| Prop | Type | Description |
|
|
199
|
+
|------|------|-------------|
|
|
200
|
+
| `variant` | `"spinner" \| "dots" \| "pulse" \| "bar" \| "bounce"` | Loader style (default: `"spinner"`) |
|
|
201
|
+
| `type` | `ink-spinner` type | Spinner preset used when `variant="spinner"` |
|
|
202
|
+
| `intervalMs` | `number` | Animation speed for non-spinner variants (default: `120`) |
|
|
203
|
+
| `...rest` | `TextProps` | Standard Ink Text props |
|
|
204
|
+
|
|
205
|
+
### Text
|
|
206
|
+
|
|
207
|
+
Status label rendered as Ink `Text`.
|
|
208
|
+
|
|
209
|
+
| Prop | Type | Description |
|
|
210
|
+
|------|------|-------------|
|
|
211
|
+
| `children` | `ReactNode` | Message text (default: `"Thinking..."`) |
|
|
212
|
+
| `...rest` | `TextProps` | Standard Ink Text props |
|
|
213
|
+
|
|
214
|
+
### ElapsedTime
|
|
215
|
+
|
|
216
|
+
Elapsed time indicator for the current run. Uses message timing metadata when
|
|
217
|
+
available and falls back to a local timer so it still works during manual
|
|
218
|
+
testing.
|
|
219
|
+
|
|
220
|
+
| Prop | Type | Description |
|
|
221
|
+
|------|------|-------------|
|
|
222
|
+
| `format` | `(seconds: number) => string` | Custom formatter for the elapsed time label |
|
|
223
|
+
| `...rest` | `TextProps` | Standard Ink Text props |
|
|
224
|
+
|
|
162
225
|
## Composer
|
|
163
226
|
|
|
164
227
|
```tsx
|
|
@@ -273,6 +336,80 @@ Triggers attachment addition.
|
|
|
273
336
|
</ComposerPrimitive.AddAttachment>
|
|
274
337
|
```
|
|
275
338
|
|
|
339
|
+
### Queue
|
|
340
|
+
|
|
341
|
+
Renders all queued composer items. Each item is wrapped in a `QueueItemByIndexProvider`, so `QueueItemPrimitive.*` can read item state and call queue actions inside the render prop. Backed by the shared `ComposerPrimitiveQueue` from `@assistant-ui/core/react`.
|
|
342
|
+
|
|
343
|
+
```tsx
|
|
344
|
+
<ComposerPrimitive.Queue>
|
|
345
|
+
{({ queueItem }) => (
|
|
346
|
+
<Box>
|
|
347
|
+
<QueueItemPrimitive.Text />
|
|
348
|
+
<QueueItemPrimitive.Steer>
|
|
349
|
+
<Text color="cyan">[Run Now]</Text>
|
|
350
|
+
</QueueItemPrimitive.Steer>
|
|
351
|
+
<QueueItemPrimitive.Remove>
|
|
352
|
+
<Text color="red">[x]</Text>
|
|
353
|
+
</QueueItemPrimitive.Remove>
|
|
354
|
+
</Box>
|
|
355
|
+
)}
|
|
356
|
+
</ComposerPrimitive.Queue>
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
| Prop | Type | Description |
|
|
360
|
+
|------|------|-------------|
|
|
361
|
+
| `children` | `(value: { queueItem: QueueItemState }) => ReactNode` | Render function called for each queue item |
|
|
362
|
+
|
|
363
|
+
### Quote
|
|
364
|
+
|
|
365
|
+
Renders the active composer quote preview. Children are only rendered while `s.composer.quote` is set, so this acts as both a container and a gate.
|
|
366
|
+
|
|
367
|
+
```tsx
|
|
368
|
+
<ComposerPrimitive.Quote>
|
|
369
|
+
<Box>
|
|
370
|
+
<Text dimColor>Quoting:</Text>
|
|
371
|
+
<ComposerPrimitive.QuoteText color="gray" />
|
|
372
|
+
<ComposerPrimitive.QuoteDismiss>
|
|
373
|
+
<Text color="red">[x]</Text>
|
|
374
|
+
</ComposerPrimitive.QuoteDismiss>
|
|
375
|
+
</Box>
|
|
376
|
+
</ComposerPrimitive.Quote>
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
| Prop | Type | Description |
|
|
380
|
+
|------|------|-------------|
|
|
381
|
+
| `children` | `ReactNode` | Quote preview content; only rendered when a quote is set |
|
|
382
|
+
| `...rest` | `BoxProps` | Standard Ink Box props |
|
|
383
|
+
|
|
384
|
+
### QuoteText
|
|
385
|
+
|
|
386
|
+
Renders the quoted text from `s.composer.quote?.text`. Pass `children` to override the displayed value.
|
|
387
|
+
|
|
388
|
+
```tsx
|
|
389
|
+
<ComposerPrimitive.QuoteText color="gray" />
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
| Prop | Type | Description |
|
|
393
|
+
|------|------|-------------|
|
|
394
|
+
| `children` | `ReactNode` | Override content; defaults to `s.composer.quote?.text` |
|
|
395
|
+
| `...rest` | `TextProps` | Standard Ink Text props |
|
|
396
|
+
|
|
397
|
+
### QuoteDismiss
|
|
398
|
+
|
|
399
|
+
Pressable that clears the active quote by calling `aui.composer().setQuote(undefined)`.
|
|
400
|
+
|
|
401
|
+
```tsx
|
|
402
|
+
<ComposerPrimitive.QuoteDismiss>
|
|
403
|
+
<Text color="red">[x]</Text>
|
|
404
|
+
</ComposerPrimitive.QuoteDismiss>
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
| Prop | Type | Description |
|
|
408
|
+
|------|------|-------------|
|
|
409
|
+
| `children` | `ReactNode` | Button content |
|
|
410
|
+
| `disabled` | `boolean` | Disable Enter activation and focus |
|
|
411
|
+
| `...rest` | `BoxProps` | Standard Ink Box props |
|
|
412
|
+
|
|
276
413
|
### Conditional Rendering (Composer)
|
|
277
414
|
|
|
278
415
|
Use `AuiIf` for conditional rendering based on composer state:
|
|
@@ -323,7 +460,7 @@ Conditional rendering based on composer state. Shared from `@assistant-ui/core/r
|
|
|
323
460
|
## Message
|
|
324
461
|
|
|
325
462
|
```tsx
|
|
326
|
-
import { MessagePrimitive } from "@assistant-ui/react-ink";
|
|
463
|
+
import { MessagePartPrimitive, MessagePrimitive } from "@assistant-ui/react-ink";
|
|
327
464
|
```
|
|
328
465
|
|
|
329
466
|
### Root
|
|
@@ -338,7 +475,7 @@ Container `Box` for a single message.
|
|
|
338
475
|
|
|
339
476
|
### Parts
|
|
340
477
|
|
|
341
|
-
Renders message content parts via a `components` prop. Tool call and data parts automatically render registered tool UIs (via `useAssistantTool` / `useAssistantDataUI`), falling back to components provided here.
|
|
478
|
+
Renders message content parts via a `components` prop. Tool call and data parts automatically render registered tool UIs (via `useAssistantTool` / `useAssistantDataUI`), falling back to components provided here. Default terminal-safe renderers are provided for text, reasoning, source, image, file, and data parts.
|
|
342
479
|
|
|
343
480
|
```tsx
|
|
344
481
|
<MessagePrimitive.Parts>
|
|
@@ -350,10 +487,26 @@ Renders message content parts via a `components` prop. Tool call and data parts
|
|
|
350
487
|
</MessagePrimitive.Parts>
|
|
351
488
|
```
|
|
352
489
|
|
|
490
|
+
Override part rendering with app-owned components when you need richer terminal UI:
|
|
491
|
+
|
|
492
|
+
```tsx
|
|
493
|
+
<MessagePrimitive.Parts
|
|
494
|
+
components={{
|
|
495
|
+
Image: () => <Text color="cyan">image available</Text>,
|
|
496
|
+
Reasoning: () => null,
|
|
497
|
+
data: {
|
|
498
|
+
by_name: {
|
|
499
|
+
weather_card: ({ data }) => <Text>{data.city}: {data.temperature}</Text>,
|
|
500
|
+
},
|
|
501
|
+
},
|
|
502
|
+
}}
|
|
503
|
+
/>
|
|
504
|
+
```
|
|
505
|
+
|
|
353
506
|
### Content (deprecated)
|
|
354
507
|
|
|
355
508
|
<Callout type="warn">
|
|
356
|
-
Deprecated. Use `MessagePrimitive.Parts` instead. See the [v0.11 migration guide](/docs/
|
|
509
|
+
Deprecated. Use `MessagePrimitive.Parts` instead. See the [v0.11 migration guide](/docs/migrations/v0-11) for details.
|
|
357
510
|
</Callout>
|
|
358
511
|
|
|
359
512
|
Renders message content parts using render props. Tool call and data parts automatically render registered tool UIs (via `useAssistantTool` / `useAssistantDataUI`), falling back to render props if provided.
|
|
@@ -375,6 +528,36 @@ Renders message content parts using render props. Tool call and data parts autom
|
|
|
375
528
|
| `renderFile` | `(props: { part; index }) => ReactElement` | File part renderer |
|
|
376
529
|
| `renderData` | `(props: { part; index }) => ReactElement` | Data part fallback |
|
|
377
530
|
|
|
531
|
+
## MessagePartPrimitive
|
|
532
|
+
|
|
533
|
+
Composable primitives for rendering the current message part inside part context from `MessagePrimitive.Parts`, `MessagePrimitive.PartByIndex`, or `PartByIndexProvider`.
|
|
534
|
+
|
|
535
|
+
```tsx
|
|
536
|
+
<MessagePrimitive.Parts
|
|
537
|
+
components={{
|
|
538
|
+
Text: () => (
|
|
539
|
+
<>
|
|
540
|
+
<MessagePartPrimitive.Text />
|
|
541
|
+
<MessagePartPrimitive.InProgress>
|
|
542
|
+
<Text color="yellow"> ...</Text>
|
|
543
|
+
</MessagePartPrimitive.InProgress>
|
|
544
|
+
</>
|
|
545
|
+
),
|
|
546
|
+
File: () => <MessagePartPrimitive.File dimColor />,
|
|
547
|
+
}}
|
|
548
|
+
/>
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
| Primitive | Default terminal behavior |
|
|
552
|
+
|-----------|---------------------------|
|
|
553
|
+
| `MessagePartPrimitive.Text` | Renders text with Ink `<Text>` |
|
|
554
|
+
| `MessagePartPrimitive.InProgress` | Renders children only while the current part status is `running` |
|
|
555
|
+
| `MessagePartPrimitive.Image` | Renders `[image: filename]` or `[image]`; never emits image data or terminal image protocols |
|
|
556
|
+
| `MessagePartPrimitive.File` | Renders `[file: filename mimeType]` or `[file: mimeType]`; never prints file data |
|
|
557
|
+
| `MessagePartPrimitive.Source` | Renders source title and/or URL metadata |
|
|
558
|
+
| `MessagePartPrimitive.Reasoning` | Renders conservative reasoning text by default; override or return `null` to suppress |
|
|
559
|
+
| `MessagePartPrimitive.Data` | Renders `[data: name]` when no registered data renderer is available |
|
|
560
|
+
|
|
378
561
|
### PartByIndex
|
|
379
562
|
|
|
380
563
|
Low-level provider that sets up the part context for a specific message part by index. Used internally by `MessagePrimitive.Parts`.
|
|
@@ -462,34 +645,118 @@ Renders user message attachments using the provided component configuration.
|
|
|
462
645
|
import { AttachmentPrimitive } from "@assistant-ui/react-ink";
|
|
463
646
|
```
|
|
464
647
|
|
|
465
|
-
Primitives for rendering individual attachments.
|
|
648
|
+
Primitives for rendering individual attachments. Each primitive reads from the current attachment context (provided by `ComposerPrimitive.Attachments`, `ComposerPrimitive.AttachmentByIndex`, `MessagePrimitive.Attachments`, or `MessagePrimitive.AttachmentByIndex`).
|
|
466
649
|
|
|
467
650
|
### Root
|
|
468
651
|
|
|
469
|
-
Container `Box` for an attachment.
|
|
652
|
+
Container `Box` for an attachment. Forwards all `Box` props.
|
|
653
|
+
|
|
654
|
+
| Prop | Type | Description |
|
|
655
|
+
|------|------|-------------|
|
|
656
|
+
| `children` | `ReactNode` | Attachment sub-components |
|
|
657
|
+
| `...rest` | `ComponentProps<typeof Box>` | Forwarded to the underlying Ink `Box` |
|
|
470
658
|
|
|
471
659
|
### Name
|
|
472
660
|
|
|
473
|
-
`Text` component displaying
|
|
661
|
+
`Text` component displaying `s.attachment.name`.
|
|
662
|
+
|
|
663
|
+
| Prop | Type | Description |
|
|
664
|
+
|------|------|-------------|
|
|
665
|
+
| `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
|
|
474
666
|
|
|
475
667
|
### Thumb
|
|
476
668
|
|
|
477
|
-
`Text` component displaying the file extension.
|
|
669
|
+
`Text` component displaying a short identifier for the attachment. Renders the file extension (`.pdf`, `.png`, …) when the name has one. Falls back to the attachment `type` (e.g. `image`, `document`) otherwise, and finally to `file`.
|
|
670
|
+
|
|
671
|
+
| Prop | Type | Description |
|
|
672
|
+
|------|------|-------------|
|
|
673
|
+
| `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
|
|
674
|
+
|
|
675
|
+
### Status
|
|
676
|
+
|
|
677
|
+
`Text` component rendering the current attachment status from `s.attachment.status`. Uses the same visual vocabulary as `ToolFallback`: spinner = uploading, `?` = pending action, `x` = error, `||` = paused. By default, completed attachments render nothing.
|
|
678
|
+
|
|
679
|
+
| Prop | Type | Description |
|
|
680
|
+
|------|------|-------------|
|
|
681
|
+
| `showComplete` | `boolean` | When `true`, completed attachments render `+ ready` instead of `null` |
|
|
682
|
+
| `...rest` | `Omit<ComponentProps<typeof Text>, "children">` | Forwarded to the underlying Ink `Text`. Caller-supplied `color` overrides the per-status default. `children` is not accepted; `Status` always renders its own content. |
|
|
478
683
|
|
|
479
684
|
### Remove
|
|
480
685
|
|
|
481
|
-
Pressable that
|
|
686
|
+
`Pressable` that calls `aui.attachment().remove()` when activated (Enter while focused). Disabled when not focused or when the `disabled` prop is set.
|
|
687
|
+
|
|
688
|
+
| Prop | Type | Description |
|
|
689
|
+
|------|------|-------------|
|
|
690
|
+
| `children` | `ReactNode` | Visual content for the button |
|
|
691
|
+
| `disabled` | `boolean` | Skip focus registration and ignore Enter |
|
|
692
|
+
| `...rest` | `ComponentProps<typeof Box>` | Forwarded to the underlying Pressable's `Box` |
|
|
482
693
|
|
|
483
694
|
```tsx
|
|
484
695
|
<AttachmentPrimitive.Root>
|
|
485
696
|
<AttachmentPrimitive.Thumb />
|
|
486
697
|
<AttachmentPrimitive.Name />
|
|
698
|
+
<AttachmentPrimitive.Status />
|
|
487
699
|
<AttachmentPrimitive.Remove>
|
|
488
700
|
<Text color="red">[x]</Text>
|
|
489
701
|
</AttachmentPrimitive.Remove>
|
|
490
702
|
</AttachmentPrimitive.Root>
|
|
491
703
|
```
|
|
492
704
|
|
|
705
|
+
## QueueItem
|
|
706
|
+
|
|
707
|
+
```tsx
|
|
708
|
+
import { QueueItemPrimitive } from "@assistant-ui/react-ink";
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
Primitives for rendering individual queued composer items. Use inside a `ComposerPrimitive.Queue` render prop, where the queue item context is set up by `QueueItemByIndexProvider`.
|
|
712
|
+
|
|
713
|
+
### Text
|
|
714
|
+
|
|
715
|
+
Renders the queue item's prompt with Ink `<Text>`. Pass `children` to override the displayed value.
|
|
716
|
+
|
|
717
|
+
```tsx
|
|
718
|
+
<QueueItemPrimitive.Text color="gray" />
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
| Prop | Type | Description |
|
|
722
|
+
|------|------|-------------|
|
|
723
|
+
| `children` | `ReactNode` | Override content; defaults to `s.queueItem.prompt` |
|
|
724
|
+
| `...rest` | `TextProps` | Standard Ink Text props |
|
|
725
|
+
|
|
726
|
+
### Remove
|
|
727
|
+
|
|
728
|
+
Pressable that removes the queue item by calling `aui.queueItem().remove()`.
|
|
729
|
+
|
|
730
|
+
```tsx
|
|
731
|
+
<QueueItemPrimitive.Remove>
|
|
732
|
+
<Text color="red">[x]</Text>
|
|
733
|
+
</QueueItemPrimitive.Remove>
|
|
734
|
+
```
|
|
735
|
+
|
|
736
|
+
| Prop | Type | Description |
|
|
737
|
+
|------|------|-------------|
|
|
738
|
+
| `children` | `ReactNode` | Button content |
|
|
739
|
+
| `disabled` | `boolean` | Disable Enter activation and focus |
|
|
740
|
+
|
|
741
|
+
Remaining props are forwarded to the underlying `Pressable` (Ink `Box` props).
|
|
742
|
+
|
|
743
|
+
### Steer
|
|
744
|
+
|
|
745
|
+
Pressable that promotes the queue item to run next by calling `aui.queueItem().steer()`.
|
|
746
|
+
|
|
747
|
+
```tsx
|
|
748
|
+
<QueueItemPrimitive.Steer>
|
|
749
|
+
<Text color="cyan">[Run Now]</Text>
|
|
750
|
+
</QueueItemPrimitive.Steer>
|
|
751
|
+
```
|
|
752
|
+
|
|
753
|
+
| Prop | Type | Description |
|
|
754
|
+
|------|------|-------------|
|
|
755
|
+
| `children` | `ReactNode` | Button content |
|
|
756
|
+
| `disabled` | `boolean` | Disable Enter activation and focus |
|
|
757
|
+
|
|
758
|
+
Remaining props are forwarded to the underlying `Pressable` (Ink `Box` props).
|
|
759
|
+
|
|
493
760
|
## ActionBar
|
|
494
761
|
|
|
495
762
|
```tsx
|
|
@@ -746,6 +1013,8 @@ Components for rendering code diffs in the terminal.
|
|
|
746
1013
|
|
|
747
1014
|
Pre-composed component that combines all diff primitives for easy diff rendering. Accepts either a unified diff patch string or old/new file content for inline comparison.
|
|
748
1015
|
|
|
1016
|
+
When a replacement is rendered as an equal-length adjacent `-`/`+` run, `DiffView` also highlights the changed word spans inside those lines. The existing prefixes, line numbers, folding, and primitive API surface stay the same. This intra-line behavior is internal to `DiffView`; `DiffPrimitive.Line` remains a line-level primitive.
|
|
1017
|
+
|
|
749
1018
|
```tsx
|
|
750
1019
|
// From a patch string
|
|
751
1020
|
<DiffView
|
|
@@ -874,3 +1143,75 @@ For custom layouts, use the primitives directly:
|
|
|
874
1143
|
</Box>
|
|
875
1144
|
</DiffPrimitive.Root>
|
|
876
1145
|
```
|
|
1146
|
+
|
|
1147
|
+
## StatusBar
|
|
1148
|
+
|
|
1149
|
+
```tsx
|
|
1150
|
+
import { StatusBarPrimitive } from "@assistant-ui/react-ink";
|
|
1151
|
+
```
|
|
1152
|
+
|
|
1153
|
+
Primitives for rendering a compact terminal status bar showing run state, model, message count, token usage, and latency. All sub-components read directly from the active thread state.
|
|
1154
|
+
|
|
1155
|
+
### Root
|
|
1156
|
+
|
|
1157
|
+
Container `Box` for the status bar. Forwards all `Box` props; pass `gap` to space its children.
|
|
1158
|
+
|
|
1159
|
+
| Prop | Type | Description |
|
|
1160
|
+
|------|------|-------------|
|
|
1161
|
+
| `children` | `ReactNode` | Status bar sub-components |
|
|
1162
|
+
| `...rest` | `ComponentProps<typeof Box>` | Forwarded to the underlying Ink `Box` |
|
|
1163
|
+
|
|
1164
|
+
### ModelName
|
|
1165
|
+
|
|
1166
|
+
`Text` component displaying the current model name. The name is supplied as a prop — the primitive does not infer it from state.
|
|
1167
|
+
|
|
1168
|
+
| Prop | Type | Description |
|
|
1169
|
+
|------|------|-------------|
|
|
1170
|
+
| `name` | `ReactNode` | Model label to render (default: `"unknown"`) |
|
|
1171
|
+
| `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
|
|
1172
|
+
|
|
1173
|
+
### MessageCount
|
|
1174
|
+
|
|
1175
|
+
`Text` component displaying the number of messages on the current thread, formatted as `N msgs` by default. Renders nothing when the thread is empty.
|
|
1176
|
+
|
|
1177
|
+
| Prop | Type | Description |
|
|
1178
|
+
|------|------|-------------|
|
|
1179
|
+
| `format` | `(count: number) => string` | Custom formatter for the count (default: `` `${count} msgs` ``) |
|
|
1180
|
+
| `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
|
|
1181
|
+
|
|
1182
|
+
### TokenCount
|
|
1183
|
+
|
|
1184
|
+
`Text` component summing `metadata.timing.tokenCount` across all assistant messages on the thread, formatted with `toLocaleString()` + `" tokens"` by default. Renders nothing when the total is `0`.
|
|
1185
|
+
|
|
1186
|
+
| Prop | Type | Description |
|
|
1187
|
+
|------|------|-------------|
|
|
1188
|
+
| `format` | `(tokens: number) => string` | Custom formatter for the total (default: `` `${tokens.toLocaleString()} tokens` ``) |
|
|
1189
|
+
| `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
|
|
1190
|
+
|
|
1191
|
+
### Latency
|
|
1192
|
+
|
|
1193
|
+
`Text` component displaying `metadata.timing.tokensPerSecond` from the most recent assistant message, formatted as `N tok/s` (rounded) by default. Renders nothing when the field is missing.
|
|
1194
|
+
|
|
1195
|
+
| Prop | Type | Description |
|
|
1196
|
+
|------|------|-------------|
|
|
1197
|
+
| `format` | `(tokensPerSecond: number) => string` | Custom formatter (default: `` `${Math.round(tokensPerSecond)} tok/s` ``) |
|
|
1198
|
+
| `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
|
|
1199
|
+
|
|
1200
|
+
### Status
|
|
1201
|
+
|
|
1202
|
+
`Text` component reporting the thread's run state. Resolves to `"running"` while `s.thread.isRunning`, otherwise inspects the most recent assistant message: `"error"` when its status is `incomplete` with reason `error`, `"cancelled"` when reason is `cancelled`, and `"idle"` for every other case. Pass `color` (or any `Text` prop) to style the label.
|
|
1203
|
+
|
|
1204
|
+
| Prop | Type | Description |
|
|
1205
|
+
|------|------|-------------|
|
|
1206
|
+
| `format` | `(status: "idle" \| "running" \| "error" \| "cancelled") => string` | Custom label formatter (default: returns the state string verbatim) |
|
|
1207
|
+
| `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
|
|
1208
|
+
|
|
1209
|
+
```tsx
|
|
1210
|
+
<StatusBarPrimitive.Root gap={1}>
|
|
1211
|
+
<StatusBarPrimitive.Status />
|
|
1212
|
+
<StatusBarPrimitive.ModelName name="gpt-5" />
|
|
1213
|
+
<StatusBarPrimitive.MessageCount />
|
|
1214
|
+
<StatusBarPrimitive.TokenCount />
|
|
1215
|
+
<StatusBarPrimitive.Latency />
|
|
1216
|
+
</StatusBarPrimitive.Root>
|
|
1217
|
+
```
|
|
@@ -69,7 +69,7 @@ export async function POST(req: Request) {
|
|
|
69
69
|
|
|
70
70
|
const { messages }: { messages: UIMessage[] } = await req.json();
|
|
71
71
|
const result = streamText({
|
|
72
|
-
model: openai("gpt-
|
|
72
|
+
model: openai("gpt-5.4-nano"),
|
|
73
73
|
messages: await convertToModelMessages(messages),
|
|
74
74
|
});
|
|
75
75
|
return result.toUIMessageStreamResponse();
|
|
@@ -51,7 +51,7 @@ export async function POST(req: Request) {
|
|
|
51
51
|
|
|
52
52
|
const { messages }: { messages: UIMessage[] } = await req.json();
|
|
53
53
|
const result = streamText({
|
|
54
|
-
model: openai("gpt-
|
|
54
|
+
model: openai("gpt-5.4-nano"),
|
|
55
55
|
messages: await convertToModelMessages(messages),
|
|
56
56
|
});
|
|
57
57
|
return result.toUIMessageStreamResponse();
|
|
@@ -77,7 +77,7 @@ export async function POST(req: Request) {
|
|
|
77
77
|
|
|
78
78
|
const { messages }: { messages: UIMessage[] } = await req.json();
|
|
79
79
|
const result = streamText({
|
|
80
|
-
model: openai("gpt-
|
|
80
|
+
model: openai("gpt-5.4-nano"),
|
|
81
81
|
messages: await convertToModelMessages(messages),
|
|
82
82
|
});
|
|
83
83
|
return result.toUIMessageStreamResponse();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Vercel AI SDK
|
|
3
|
-
description:
|
|
2
|
+
title: Vercel AI SDK Integration
|
|
3
|
+
description: Wire the Vercel AI SDK into a React chat UI with assistant-ui — useChat, streaming, tools, attachments, multi-step agents, and persistence covered end-to-end.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
import { VercelIcon } from "@/components/icons/vercel";
|