ai 6.0.30 → 6.0.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/CHANGELOG.md +13 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/docs/00-introduction/index.mdx +76 -0
- package/docs/02-foundations/01-overview.mdx +43 -0
- package/docs/02-foundations/02-providers-and-models.mdx +163 -0
- package/docs/02-foundations/03-prompts.mdx +620 -0
- package/docs/02-foundations/04-tools.mdx +160 -0
- package/docs/02-foundations/05-streaming.mdx +62 -0
- package/docs/02-foundations/index.mdx +43 -0
- package/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
- package/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
- package/docs/02-getting-started/02-nextjs-app-router.mdx +556 -0
- package/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
- package/docs/02-getting-started/04-svelte.mdx +627 -0
- package/docs/02-getting-started/05-nuxt.mdx +566 -0
- package/docs/02-getting-started/06-nodejs.mdx +512 -0
- package/docs/02-getting-started/07-expo.mdx +766 -0
- package/docs/02-getting-started/08-tanstack-start.mdx +583 -0
- package/docs/02-getting-started/index.mdx +44 -0
- package/docs/03-agents/01-overview.mdx +96 -0
- package/docs/03-agents/02-building-agents.mdx +367 -0
- package/docs/03-agents/03-workflows.mdx +370 -0
- package/docs/03-agents/04-loop-control.mdx +350 -0
- package/docs/03-agents/05-configuring-call-options.mdx +286 -0
- package/docs/03-agents/index.mdx +40 -0
- package/docs/03-ai-sdk-core/01-overview.mdx +33 -0
- package/docs/03-ai-sdk-core/05-generating-text.mdx +600 -0
- package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +662 -0
- package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1102 -0
- package/docs/03-ai-sdk-core/16-mcp-tools.mdx +375 -0
- package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +144 -0
- package/docs/03-ai-sdk-core/25-settings.mdx +198 -0
- package/docs/03-ai-sdk-core/30-embeddings.mdx +247 -0
- package/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
- package/docs/03-ai-sdk-core/35-image-generation.mdx +341 -0
- package/docs/03-ai-sdk-core/36-transcription.mdx +173 -0
- package/docs/03-ai-sdk-core/37-speech.mdx +167 -0
- package/docs/03-ai-sdk-core/40-middleware.mdx +480 -0
- package/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
- package/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
- package/docs/03-ai-sdk-core/55-testing.mdx +218 -0
- package/docs/03-ai-sdk-core/60-telemetry.mdx +313 -0
- package/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
- package/docs/03-ai-sdk-core/index.mdx +88 -0
- package/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
- package/docs/04-ai-sdk-ui/02-chatbot.mdx +1313 -0
- package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
- package/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
- package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
- package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
- package/docs/04-ai-sdk-ui/05-completion.mdx +186 -0
- package/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
- package/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
- package/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
- package/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
- package/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
- package/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
- package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +477 -0
- package/docs/04-ai-sdk-ui/index.mdx +64 -0
- package/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
- package/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
- package/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
- package/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
- package/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
- package/docs/05-ai-sdk-rsc/05-streaming-values.mdx +158 -0
- package/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
- package/docs/05-ai-sdk-rsc/08-error-handling.mdx +96 -0
- package/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
- package/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
- package/docs/05-ai-sdk-rsc/index.mdx +58 -0
- package/docs/06-advanced/01-prompt-engineering.mdx +96 -0
- package/docs/06-advanced/02-stopping-streams.mdx +184 -0
- package/docs/06-advanced/03-backpressure.mdx +173 -0
- package/docs/06-advanced/04-caching.mdx +169 -0
- package/docs/06-advanced/05-multiple-streamables.mdx +68 -0
- package/docs/06-advanced/06-rate-limiting.mdx +60 -0
- package/docs/06-advanced/07-rendering-ui-with-language-models.mdx +213 -0
- package/docs/06-advanced/08-model-as-router.mdx +120 -0
- package/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
- package/docs/06-advanced/09-sequential-generations.mdx +55 -0
- package/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
- package/docs/06-advanced/index.mdx +11 -0
- package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2142 -0
- package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3215 -0
- package/docs/07-reference/01-ai-sdk-core/03-generate-object.mdx +780 -0
- package/docs/07-reference/01-ai-sdk-core/04-stream-object.mdx +1140 -0
- package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +190 -0
- package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +171 -0
- package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
- package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +227 -0
- package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +138 -0
- package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +214 -0
- package/docs/07-reference/01-ai-sdk-core/15-agent.mdx +203 -0
- package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +449 -0
- package/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +148 -0
- package/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +168 -0
- package/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +144 -0
- package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +196 -0
- package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +175 -0
- package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +410 -0
- package/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
- package/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
- package/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
- package/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +55 -0
- package/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
- package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +415 -0
- package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +246 -0
- package/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
- package/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
- package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +182 -0
- package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +121 -0
- package/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
- package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
- package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
- package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +46 -0
- package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
- package/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
- package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
- package/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
- package/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
- package/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
- package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
- package/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
- package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
- package/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +43 -0
- package/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
- package/docs/07-reference/01-ai-sdk-core/index.mdx +159 -0
- package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +446 -0
- package/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +179 -0
- package/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +178 -0
- package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +230 -0
- package/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
- package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +151 -0
- package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +113 -0
- package/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +73 -0
- package/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
- package/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
- package/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
- package/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
- package/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
- package/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
- package/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
- package/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
- package/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +48 -0
- package/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +78 -0
- package/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
- package/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
- package/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
- package/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
- package/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
- package/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
- package/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +262 -0
- package/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
- package/docs/07-reference/04-stream-helpers/01-ai-stream.mdx +89 -0
- package/docs/07-reference/04-stream-helpers/02-streaming-text-response.mdx +79 -0
- package/docs/07-reference/04-stream-helpers/05-stream-to-response.mdx +108 -0
- package/docs/07-reference/04-stream-helpers/07-openai-stream.mdx +77 -0
- package/docs/07-reference/04-stream-helpers/08-anthropic-stream.mdx +79 -0
- package/docs/07-reference/04-stream-helpers/09-aws-bedrock-stream.mdx +91 -0
- package/docs/07-reference/04-stream-helpers/10-aws-bedrock-anthropic-stream.mdx +96 -0
- package/docs/07-reference/04-stream-helpers/10-aws-bedrock-messages-stream.mdx +96 -0
- package/docs/07-reference/04-stream-helpers/11-aws-bedrock-cohere-stream.mdx +93 -0
- package/docs/07-reference/04-stream-helpers/12-aws-bedrock-llama-2-stream.mdx +93 -0
- package/docs/07-reference/04-stream-helpers/13-cohere-stream.mdx +78 -0
- package/docs/07-reference/04-stream-helpers/14-google-generative-ai-stream.mdx +85 -0
- package/docs/07-reference/04-stream-helpers/15-hugging-face-stream.mdx +84 -0
- package/docs/07-reference/04-stream-helpers/16-langchain-adapter.mdx +98 -0
- package/docs/07-reference/04-stream-helpers/16-llamaindex-adapter.mdx +70 -0
- package/docs/07-reference/04-stream-helpers/17-mistral-stream.mdx +81 -0
- package/docs/07-reference/04-stream-helpers/18-replicate-stream.mdx +83 -0
- package/docs/07-reference/04-stream-helpers/19-inkeep-stream.mdx +80 -0
- package/docs/07-reference/04-stream-helpers/index.mdx +103 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +30 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/index.mdx +38 -0
- package/docs/07-reference/index.mdx +34 -0
- package/docs/08-migration-guides/00-versioning.mdx +46 -0
- package/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
- package/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
- package/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
- package/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
- package/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
- package/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
- package/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
- package/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
- package/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
- package/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
- package/docs/08-migration-guides/index.mdx +22 -0
- package/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
- package/docs/09-troubleshooting/02-client-side-function-calls-not-invoked.mdx +22 -0
- package/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
- package/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
- package/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
- package/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
- package/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
- package/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
- package/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
- package/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
- package/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
- package/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
- package/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
- package/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
- package/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
- package/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
- package/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
- package/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
- package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
- package/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
- package/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
- package/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
- package/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
- package/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
- package/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
- package/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +72 -0
- package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
- package/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
- package/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
- package/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
- package/docs/09-troubleshooting/index.mdx +11 -0
- package/package.json +7 -3
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: createAI
|
|
3
|
+
description: Reference for the createAI function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `createAI`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
Creates a client-server context provider that can be used to wrap parts of your application tree to easily manage both UI and AI states of your application.
|
|
15
|
+
|
|
16
|
+
## Import
|
|
17
|
+
|
|
18
|
+
<Snippet text={`import { createAI } from "@ai-sdk/rsc"`} prompt={false} />
|
|
19
|
+
|
|
20
|
+
## API Signature
|
|
21
|
+
|
|
22
|
+
### Parameters
|
|
23
|
+
|
|
24
|
+
<PropertiesTable
|
|
25
|
+
content={[
|
|
26
|
+
{
|
|
27
|
+
name: 'actions',
|
|
28
|
+
type: 'Record<string, Action>',
|
|
29
|
+
description: 'Server side actions that can be called from the client.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'initialAIState',
|
|
33
|
+
type: 'any',
|
|
34
|
+
description: 'Initial AI state to be used in the client.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'initialUIState',
|
|
38
|
+
type: 'any',
|
|
39
|
+
description: 'Initial UI state to be used in the client.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'onGetUIState',
|
|
43
|
+
type: '() => UIState',
|
|
44
|
+
description: 'is called during SSR to compare and update UI state.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'onSetAIState',
|
|
48
|
+
type: '(Event) => void',
|
|
49
|
+
description:
|
|
50
|
+
'is triggered whenever an update() or done() is called by the mutable AI state in your action, so you can safely store your AI state in the database.',
|
|
51
|
+
properties: [
|
|
52
|
+
{
|
|
53
|
+
type: 'Event',
|
|
54
|
+
parameters: [
|
|
55
|
+
{
|
|
56
|
+
name: 'state',
|
|
57
|
+
type: 'AIState',
|
|
58
|
+
description: 'The resulting AI state after the update.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'done',
|
|
62
|
+
type: 'boolean',
|
|
63
|
+
description:
|
|
64
|
+
'Whether the AI state updates have been finalized or not.',
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
]}
|
|
71
|
+
/>
|
|
72
|
+
|
|
73
|
+
### Returns
|
|
74
|
+
|
|
75
|
+
It returns an `<AI/>` context provider.
|
|
76
|
+
|
|
77
|
+
## Examples
|
|
78
|
+
|
|
79
|
+
<ExampleLinks
|
|
80
|
+
examples={[
|
|
81
|
+
{
|
|
82
|
+
title: 'Learn to manage AI and UI states in Next.js',
|
|
83
|
+
link: '/examples/next-app/state-management/ai-ui-states',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
title: 'Learn to persist and restore states UI/AI states in Next.js',
|
|
87
|
+
link: '/examples/next-app/state-management/save-and-restore-states',
|
|
88
|
+
},
|
|
89
|
+
]}
|
|
90
|
+
/>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: createStreamableUI
|
|
3
|
+
description: Reference for the createStreamableUI function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `createStreamableUI`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
Create a stream that sends UI from the server to the client. On the client side, it can be rendered as a normal React node.
|
|
15
|
+
|
|
16
|
+
## Import
|
|
17
|
+
|
|
18
|
+
<Snippet
|
|
19
|
+
text={`import { createStreamableUI } from "@ai-sdk/rsc"`}
|
|
20
|
+
prompt={false}
|
|
21
|
+
/>
|
|
22
|
+
|
|
23
|
+
## API Signature
|
|
24
|
+
|
|
25
|
+
### Parameters
|
|
26
|
+
|
|
27
|
+
<PropertiesTable
|
|
28
|
+
content={[
|
|
29
|
+
{
|
|
30
|
+
name: 'initialValue',
|
|
31
|
+
type: 'ReactNode',
|
|
32
|
+
isOptional: true,
|
|
33
|
+
description: 'The initial value of the streamable UI.',
|
|
34
|
+
},
|
|
35
|
+
]}
|
|
36
|
+
/>
|
|
37
|
+
|
|
38
|
+
### Returns
|
|
39
|
+
|
|
40
|
+
<PropertiesTable
|
|
41
|
+
content={[
|
|
42
|
+
{
|
|
43
|
+
name: 'value',
|
|
44
|
+
type: 'ReactNode',
|
|
45
|
+
description:
|
|
46
|
+
'The value of the streamable UI. This can be returned from a Server Action and received by the client.',
|
|
47
|
+
},
|
|
48
|
+
]}
|
|
49
|
+
/>
|
|
50
|
+
|
|
51
|
+
### Methods
|
|
52
|
+
|
|
53
|
+
<PropertiesTable
|
|
54
|
+
content={[
|
|
55
|
+
{
|
|
56
|
+
name: 'update',
|
|
57
|
+
type: '(ReactNode) => void',
|
|
58
|
+
description:
|
|
59
|
+
'Updates the current UI node. It takes a new UI node and replaces the old one.',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'append',
|
|
63
|
+
type: '(ReactNode) => void',
|
|
64
|
+
description:
|
|
65
|
+
'Appends a new UI node to the end of the old one. Once appended a new UI node, the previous UI node cannot be updated anymore.',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'done',
|
|
69
|
+
type: '(ReactNode | null) => void',
|
|
70
|
+
description:
|
|
71
|
+
'Marks the UI node as finalized and closes the stream. Once called, the UI node cannot be updated or appended anymore. This method is always required to be called, otherwise the response will be stuck in a loading state.',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'error',
|
|
75
|
+
type: '(Error) => void',
|
|
76
|
+
description:
|
|
77
|
+
'Signals that there is an error in the UI stream. It will be thrown on the client side and caught by the nearest error boundary component.',
|
|
78
|
+
},
|
|
79
|
+
]}
|
|
80
|
+
/>
|
|
81
|
+
|
|
82
|
+
## Examples
|
|
83
|
+
|
|
84
|
+
<ExampleLinks
|
|
85
|
+
examples={[
|
|
86
|
+
{
|
|
87
|
+
title: 'Render a React component during a tool call',
|
|
88
|
+
link: '/examples/next-app/tools/render-interface-during-tool-call',
|
|
89
|
+
},
|
|
90
|
+
]}
|
|
91
|
+
/>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: createStreamableValue
|
|
3
|
+
description: Reference for the createStreamableValue function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `createStreamableValue`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
Create a stream that sends values from the server to the client. The value can be any serializable data.
|
|
15
|
+
|
|
16
|
+
## Import
|
|
17
|
+
|
|
18
|
+
<Snippet
|
|
19
|
+
text={`import { createStreamableValue } from "@ai-sdk/rsc"`}
|
|
20
|
+
prompt={false}
|
|
21
|
+
/>
|
|
22
|
+
|
|
23
|
+
## API Signature
|
|
24
|
+
|
|
25
|
+
### Parameters
|
|
26
|
+
|
|
27
|
+
<PropertiesTable
|
|
28
|
+
content={[
|
|
29
|
+
{
|
|
30
|
+
name: 'value',
|
|
31
|
+
type: 'any',
|
|
32
|
+
description: 'Any data that RSC supports. Example, JSON.',
|
|
33
|
+
},
|
|
34
|
+
]}
|
|
35
|
+
/>
|
|
36
|
+
|
|
37
|
+
### Returns
|
|
38
|
+
|
|
39
|
+
<PropertiesTable
|
|
40
|
+
content={[
|
|
41
|
+
{
|
|
42
|
+
name: 'value',
|
|
43
|
+
type: 'streamable',
|
|
44
|
+
description:
|
|
45
|
+
'This creates a special value that can be returned from Actions to the client. It holds the data inside and can be updated via the update method.',
|
|
46
|
+
},
|
|
47
|
+
]}
|
|
48
|
+
/>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: readStreamableValue
|
|
3
|
+
description: Reference for the readStreamableValue function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `readStreamableValue`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
It is a function that helps you read the streamable value from the client that was originally created using [`createStreamableValue`](/docs/reference/ai-sdk-rsc/create-streamable-value) on the server.
|
|
15
|
+
|
|
16
|
+
## Import
|
|
17
|
+
|
|
18
|
+
<Snippet
|
|
19
|
+
text={`import { readStreamableValue } from "@ai-sdk/rsc"`}
|
|
20
|
+
prompt={false}
|
|
21
|
+
/>
|
|
22
|
+
|
|
23
|
+
## Example
|
|
24
|
+
|
|
25
|
+
```ts filename="app/actions.ts"
|
|
26
|
+
async function generate() {
|
|
27
|
+
'use server';
|
|
28
|
+
const streamable = createStreamableValue();
|
|
29
|
+
|
|
30
|
+
streamable.update(1);
|
|
31
|
+
streamable.update(2);
|
|
32
|
+
streamable.done(3);
|
|
33
|
+
|
|
34
|
+
return streamable.value;
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```tsx filename="app/page.tsx" highlight="12"
|
|
39
|
+
import { readStreamableValue } from '@ai-sdk/rsc';
|
|
40
|
+
|
|
41
|
+
export default function Page() {
|
|
42
|
+
const [generation, setGeneration] = useState('');
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<div>
|
|
46
|
+
<button
|
|
47
|
+
onClick={async () => {
|
|
48
|
+
const stream = await generate();
|
|
49
|
+
|
|
50
|
+
for await (const delta of readStreamableValue(stream)) {
|
|
51
|
+
setGeneration(generation => generation + delta);
|
|
52
|
+
}
|
|
53
|
+
}}
|
|
54
|
+
>
|
|
55
|
+
Generate
|
|
56
|
+
</button>
|
|
57
|
+
</div>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## API Signature
|
|
63
|
+
|
|
64
|
+
### Parameters
|
|
65
|
+
|
|
66
|
+
<PropertiesTable
|
|
67
|
+
content={[
|
|
68
|
+
{
|
|
69
|
+
name: 'stream',
|
|
70
|
+
type: 'StreamableValue',
|
|
71
|
+
description: 'The streamable value to read from.',
|
|
72
|
+
},
|
|
73
|
+
]}
|
|
74
|
+
/>
|
|
75
|
+
|
|
76
|
+
### Returns
|
|
77
|
+
|
|
78
|
+
It returns an async iterator that contains the values emitted by the streamable value.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: getAIState
|
|
3
|
+
description: Reference for the getAIState function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `getAIState`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
Get the current AI state.
|
|
15
|
+
|
|
16
|
+
## Import
|
|
17
|
+
|
|
18
|
+
<Snippet text={`import { getAIState } from "@ai-sdk/rsc"`} prompt={false} />
|
|
19
|
+
|
|
20
|
+
## API Signature
|
|
21
|
+
|
|
22
|
+
### Parameters
|
|
23
|
+
|
|
24
|
+
<PropertiesTable
|
|
25
|
+
content={[
|
|
26
|
+
{
|
|
27
|
+
name: 'key',
|
|
28
|
+
type: 'string',
|
|
29
|
+
isOptional: true,
|
|
30
|
+
description:
|
|
31
|
+
"Returns the value of the specified key in the AI state, if it's an object.",
|
|
32
|
+
},
|
|
33
|
+
]}
|
|
34
|
+
/>
|
|
35
|
+
|
|
36
|
+
### Returns
|
|
37
|
+
|
|
38
|
+
The AI state.
|
|
39
|
+
|
|
40
|
+
## Examples
|
|
41
|
+
|
|
42
|
+
<ExampleLinks
|
|
43
|
+
examples={[
|
|
44
|
+
{
|
|
45
|
+
title:
|
|
46
|
+
'Learn to render a React component during a tool call made by a language model in Next.js',
|
|
47
|
+
link: '/examples/next-app/tools/render-interface-during-tool-call',
|
|
48
|
+
},
|
|
49
|
+
]}
|
|
50
|
+
/>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: getMutableAIState
|
|
3
|
+
description: Reference for the getMutableAIState function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `getMutableAIState`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
Get a mutable copy of the AI state. You can use this to update the state in the server.
|
|
15
|
+
|
|
16
|
+
## Import
|
|
17
|
+
|
|
18
|
+
<Snippet
|
|
19
|
+
text={`import { getMutableAIState } from "@ai-sdk/rsc"`}
|
|
20
|
+
prompt={false}
|
|
21
|
+
/>
|
|
22
|
+
|
|
23
|
+
## API Signature
|
|
24
|
+
|
|
25
|
+
### Parameters
|
|
26
|
+
|
|
27
|
+
<PropertiesTable
|
|
28
|
+
content={[
|
|
29
|
+
{
|
|
30
|
+
name: 'key',
|
|
31
|
+
isOptional: true,
|
|
32
|
+
type: 'string',
|
|
33
|
+
description:
|
|
34
|
+
"Returns the value of the specified key in the AI state, if it's an object.",
|
|
35
|
+
},
|
|
36
|
+
]}
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
### Returns
|
|
40
|
+
|
|
41
|
+
The mutable AI state.
|
|
42
|
+
|
|
43
|
+
### Methods
|
|
44
|
+
|
|
45
|
+
<PropertiesTable
|
|
46
|
+
content={[
|
|
47
|
+
{
|
|
48
|
+
name: 'update',
|
|
49
|
+
type: '(newState: any) => void',
|
|
50
|
+
description: 'Updates the AI state with the new state.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'done',
|
|
54
|
+
type: '(newState: any) => void',
|
|
55
|
+
description:
|
|
56
|
+
'Updates the AI state with the new state, marks it as finalized and closes the stream.',
|
|
57
|
+
},
|
|
58
|
+
]}
|
|
59
|
+
/>
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
|
|
63
|
+
<ExampleLinks
|
|
64
|
+
examples={[
|
|
65
|
+
{
|
|
66
|
+
title: 'Learn to persist and restore states AI and UI states in Next.js',
|
|
67
|
+
link: '/examples/next-app/state-management/save-and-restore-states',
|
|
68
|
+
},
|
|
69
|
+
]}
|
|
70
|
+
/>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: useAIState
|
|
3
|
+
description: Reference for the useAIState function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `useAIState`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
It is a hook that enables you to read and update the AI state. The AI state is shared globally between all `useAIState` hooks under the same `<AI/>` provider.
|
|
15
|
+
|
|
16
|
+
The AI state is intended to contain context and information shared with the AI model, such as system messages, function responses, and other relevant data.
|
|
17
|
+
|
|
18
|
+
## Import
|
|
19
|
+
|
|
20
|
+
<Snippet text={`import { useAIState } from "@ai-sdk/rsc"`} prompt={false} />
|
|
21
|
+
|
|
22
|
+
## API Signature
|
|
23
|
+
|
|
24
|
+
### Returns
|
|
25
|
+
|
|
26
|
+
A single element array where the first element is the current AI state.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: useActions
|
|
3
|
+
description: Reference for the useActions function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `useActions`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
It is a hook to help you access your Server Actions from the client. This is particularly useful for building interfaces that require user interactions with the server.
|
|
15
|
+
|
|
16
|
+
It is required to access these server actions via this hook because they are patched when passed through the context. Accessing them directly may result in a [Cannot find Client Component error](/docs/troubleshooting/common-issues/server-actions-in-client-components).
|
|
17
|
+
|
|
18
|
+
## Import
|
|
19
|
+
|
|
20
|
+
<Snippet text={`import { useActions } from "@ai-sdk/rsc"`} prompt={false} />
|
|
21
|
+
|
|
22
|
+
## API Signature
|
|
23
|
+
|
|
24
|
+
### Returns
|
|
25
|
+
|
|
26
|
+
`Record<string, Action>`, a dictionary of server actions.
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
<ExampleLinks
|
|
31
|
+
examples={[
|
|
32
|
+
{
|
|
33
|
+
title: 'Learn to manage AI and UI states in Next.js',
|
|
34
|
+
link: '/examples/next-app/state-management/ai-ui-states',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
title:
|
|
38
|
+
'Learn to route React components using a language model in Next.js',
|
|
39
|
+
link: '/examples/next-app/interface/route-components',
|
|
40
|
+
},
|
|
41
|
+
]}
|
|
42
|
+
/>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: useUIState
|
|
3
|
+
description: Reference for the useUIState function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `useUIState`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
It is a hook that enables you to read and update the UI State. The state is client-side and can contain functions, React nodes, and other data. UIState is the visual representation of the AI state.
|
|
15
|
+
|
|
16
|
+
## Import
|
|
17
|
+
|
|
18
|
+
<Snippet text={`import { useUIState } from "@ai-sdk/rsc"`} prompt={false} />
|
|
19
|
+
|
|
20
|
+
## API Signature
|
|
21
|
+
|
|
22
|
+
### Returns
|
|
23
|
+
|
|
24
|
+
Similar to useState, it is an array, where the first element is the current UI state and the second element is the function that updates the state.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
<ExampleLinks
|
|
29
|
+
examples={[
|
|
30
|
+
{
|
|
31
|
+
title: 'Learn to manage AI and UI states in Next.js',
|
|
32
|
+
link: '/examples/next-app/state-management/ai-ui-states',
|
|
33
|
+
},
|
|
34
|
+
]}
|
|
35
|
+
/>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: useStreamableValue
|
|
3
|
+
description: Reference for the useStreamableValue function from the AI SDK RSC
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `useStreamableValue`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
AI SDK RSC is currently experimental. We recommend using [AI SDK
|
|
10
|
+
UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from
|
|
11
|
+
RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui).
|
|
12
|
+
</Note>
|
|
13
|
+
|
|
14
|
+
It is a React hook that takes a streamable value created using [`createStreamableValue`](/docs/reference/ai-sdk-rsc/create-streamable-value) and returns the current value, error, and pending state.
|
|
15
|
+
|
|
16
|
+
## Import
|
|
17
|
+
|
|
18
|
+
<Snippet
|
|
19
|
+
text={`import { useStreamableValue } from "@ai-sdk/rsc"`}
|
|
20
|
+
prompt={false}
|
|
21
|
+
/>
|
|
22
|
+
|
|
23
|
+
## Example
|
|
24
|
+
|
|
25
|
+
This is useful for consuming streamable values received from a component's props.
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
function MyComponent({ streamableValue }) {
|
|
29
|
+
const [data, error, pending] = useStreamableValue(streamableValue);
|
|
30
|
+
|
|
31
|
+
if (pending) return <div>Loading...</div>;
|
|
32
|
+
if (error) return <div>Error: {error.message}</div>;
|
|
33
|
+
|
|
34
|
+
return <div>Data: {data}</div>;
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## API Signature
|
|
39
|
+
|
|
40
|
+
### Parameters
|
|
41
|
+
|
|
42
|
+
It accepts a streamable value created using `createStreamableValue`.
|
|
43
|
+
|
|
44
|
+
### Returns
|
|
45
|
+
|
|
46
|
+
It is an array, where the first element contains the data, the second element contains an error if it is thrown anytime during the stream, and the third is a boolean indicating if the value is pending.
|