ai 6.0.31 → 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.
Files changed (250) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/index.js +1 -1
  3. package/dist/index.mjs +1 -1
  4. package/dist/internal/index.js +1 -1
  5. package/dist/internal/index.mjs +1 -1
  6. package/docs/00-introduction/index.mdx +76 -0
  7. package/docs/02-foundations/01-overview.mdx +43 -0
  8. package/docs/02-foundations/02-providers-and-models.mdx +163 -0
  9. package/docs/02-foundations/03-prompts.mdx +620 -0
  10. package/docs/02-foundations/04-tools.mdx +160 -0
  11. package/docs/02-foundations/05-streaming.mdx +62 -0
  12. package/docs/02-foundations/index.mdx +43 -0
  13. package/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
  14. package/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
  15. package/docs/02-getting-started/02-nextjs-app-router.mdx +556 -0
  16. package/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
  17. package/docs/02-getting-started/04-svelte.mdx +627 -0
  18. package/docs/02-getting-started/05-nuxt.mdx +566 -0
  19. package/docs/02-getting-started/06-nodejs.mdx +512 -0
  20. package/docs/02-getting-started/07-expo.mdx +766 -0
  21. package/docs/02-getting-started/08-tanstack-start.mdx +583 -0
  22. package/docs/02-getting-started/index.mdx +44 -0
  23. package/docs/03-agents/01-overview.mdx +96 -0
  24. package/docs/03-agents/02-building-agents.mdx +367 -0
  25. package/docs/03-agents/03-workflows.mdx +370 -0
  26. package/docs/03-agents/04-loop-control.mdx +350 -0
  27. package/docs/03-agents/05-configuring-call-options.mdx +286 -0
  28. package/docs/03-agents/index.mdx +40 -0
  29. package/docs/03-ai-sdk-core/01-overview.mdx +33 -0
  30. package/docs/03-ai-sdk-core/05-generating-text.mdx +600 -0
  31. package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +662 -0
  32. package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1102 -0
  33. package/docs/03-ai-sdk-core/16-mcp-tools.mdx +375 -0
  34. package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +144 -0
  35. package/docs/03-ai-sdk-core/25-settings.mdx +198 -0
  36. package/docs/03-ai-sdk-core/30-embeddings.mdx +247 -0
  37. package/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
  38. package/docs/03-ai-sdk-core/35-image-generation.mdx +341 -0
  39. package/docs/03-ai-sdk-core/36-transcription.mdx +173 -0
  40. package/docs/03-ai-sdk-core/37-speech.mdx +167 -0
  41. package/docs/03-ai-sdk-core/40-middleware.mdx +480 -0
  42. package/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
  43. package/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
  44. package/docs/03-ai-sdk-core/55-testing.mdx +218 -0
  45. package/docs/03-ai-sdk-core/60-telemetry.mdx +313 -0
  46. package/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
  47. package/docs/03-ai-sdk-core/index.mdx +88 -0
  48. package/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
  49. package/docs/04-ai-sdk-ui/02-chatbot.mdx +1313 -0
  50. package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
  51. package/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
  52. package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
  53. package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
  54. package/docs/04-ai-sdk-ui/05-completion.mdx +186 -0
  55. package/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
  56. package/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
  57. package/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
  58. package/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
  59. package/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
  60. package/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
  61. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +477 -0
  62. package/docs/04-ai-sdk-ui/index.mdx +64 -0
  63. package/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
  64. package/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
  65. package/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
  66. package/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
  67. package/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
  68. package/docs/05-ai-sdk-rsc/05-streaming-values.mdx +158 -0
  69. package/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
  70. package/docs/05-ai-sdk-rsc/08-error-handling.mdx +96 -0
  71. package/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
  72. package/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
  73. package/docs/05-ai-sdk-rsc/index.mdx +58 -0
  74. package/docs/06-advanced/01-prompt-engineering.mdx +96 -0
  75. package/docs/06-advanced/02-stopping-streams.mdx +184 -0
  76. package/docs/06-advanced/03-backpressure.mdx +173 -0
  77. package/docs/06-advanced/04-caching.mdx +169 -0
  78. package/docs/06-advanced/05-multiple-streamables.mdx +68 -0
  79. package/docs/06-advanced/06-rate-limiting.mdx +60 -0
  80. package/docs/06-advanced/07-rendering-ui-with-language-models.mdx +213 -0
  81. package/docs/06-advanced/08-model-as-router.mdx +120 -0
  82. package/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
  83. package/docs/06-advanced/09-sequential-generations.mdx +55 -0
  84. package/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
  85. package/docs/06-advanced/index.mdx +11 -0
  86. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2142 -0
  87. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3215 -0
  88. package/docs/07-reference/01-ai-sdk-core/03-generate-object.mdx +780 -0
  89. package/docs/07-reference/01-ai-sdk-core/04-stream-object.mdx +1140 -0
  90. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +190 -0
  91. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +171 -0
  92. package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
  93. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +227 -0
  94. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +138 -0
  95. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +214 -0
  96. package/docs/07-reference/01-ai-sdk-core/15-agent.mdx +203 -0
  97. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +449 -0
  98. package/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +148 -0
  99. package/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +168 -0
  100. package/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +144 -0
  101. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +196 -0
  102. package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +175 -0
  103. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +410 -0
  104. package/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
  105. package/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
  106. package/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
  107. package/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +55 -0
  108. package/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
  109. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +415 -0
  110. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +246 -0
  111. package/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
  112. package/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
  113. package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +182 -0
  114. package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +121 -0
  115. package/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
  116. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
  117. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
  118. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +46 -0
  119. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
  120. package/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
  121. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
  122. package/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
  123. package/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
  124. package/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
  125. package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
  126. package/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
  127. package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
  128. package/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +43 -0
  129. package/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
  130. package/docs/07-reference/01-ai-sdk-core/index.mdx +159 -0
  131. package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +446 -0
  132. package/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +179 -0
  133. package/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +178 -0
  134. package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +230 -0
  135. package/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
  136. package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +151 -0
  137. package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +113 -0
  138. package/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +73 -0
  139. package/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
  140. package/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
  141. package/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
  142. package/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
  143. package/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
  144. package/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
  145. package/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
  146. package/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
  147. package/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +48 -0
  148. package/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +78 -0
  149. package/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
  150. package/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
  151. package/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
  152. package/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
  153. package/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
  154. package/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
  155. package/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +262 -0
  156. package/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
  157. package/docs/07-reference/04-stream-helpers/01-ai-stream.mdx +89 -0
  158. package/docs/07-reference/04-stream-helpers/02-streaming-text-response.mdx +79 -0
  159. package/docs/07-reference/04-stream-helpers/05-stream-to-response.mdx +108 -0
  160. package/docs/07-reference/04-stream-helpers/07-openai-stream.mdx +77 -0
  161. package/docs/07-reference/04-stream-helpers/08-anthropic-stream.mdx +79 -0
  162. package/docs/07-reference/04-stream-helpers/09-aws-bedrock-stream.mdx +91 -0
  163. package/docs/07-reference/04-stream-helpers/10-aws-bedrock-anthropic-stream.mdx +96 -0
  164. package/docs/07-reference/04-stream-helpers/10-aws-bedrock-messages-stream.mdx +96 -0
  165. package/docs/07-reference/04-stream-helpers/11-aws-bedrock-cohere-stream.mdx +93 -0
  166. package/docs/07-reference/04-stream-helpers/12-aws-bedrock-llama-2-stream.mdx +93 -0
  167. package/docs/07-reference/04-stream-helpers/13-cohere-stream.mdx +78 -0
  168. package/docs/07-reference/04-stream-helpers/14-google-generative-ai-stream.mdx +85 -0
  169. package/docs/07-reference/04-stream-helpers/15-hugging-face-stream.mdx +84 -0
  170. package/docs/07-reference/04-stream-helpers/16-langchain-adapter.mdx +98 -0
  171. package/docs/07-reference/04-stream-helpers/16-llamaindex-adapter.mdx +70 -0
  172. package/docs/07-reference/04-stream-helpers/17-mistral-stream.mdx +81 -0
  173. package/docs/07-reference/04-stream-helpers/18-replicate-stream.mdx +83 -0
  174. package/docs/07-reference/04-stream-helpers/19-inkeep-stream.mdx +80 -0
  175. package/docs/07-reference/04-stream-helpers/index.mdx +103 -0
  176. package/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +30 -0
  177. package/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +27 -0
  178. package/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
  179. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
  180. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +25 -0
  181. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content.mdx +26 -0
  182. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
  183. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
  184. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
  185. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +25 -0
  186. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
  187. package/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
  188. package/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
  189. package/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
  190. package/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
  191. package/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
  192. package/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
  193. package/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
  194. package/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +25 -0
  195. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
  196. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
  197. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
  198. package/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +25 -0
  199. package/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
  200. package/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
  201. package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +26 -0
  202. package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
  203. package/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
  204. package/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
  205. package/docs/07-reference/05-ai-sdk-errors/index.mdx +38 -0
  206. package/docs/07-reference/index.mdx +34 -0
  207. package/docs/08-migration-guides/00-versioning.mdx +46 -0
  208. package/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
  209. package/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
  210. package/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
  211. package/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
  212. package/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
  213. package/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
  214. package/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
  215. package/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
  216. package/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
  217. package/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
  218. package/docs/08-migration-guides/index.mdx +22 -0
  219. package/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
  220. package/docs/09-troubleshooting/02-client-side-function-calls-not-invoked.mdx +22 -0
  221. package/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
  222. package/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
  223. package/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
  224. package/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
  225. package/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
  226. package/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
  227. package/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
  228. package/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
  229. package/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
  230. package/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
  231. package/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
  232. package/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
  233. package/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
  234. package/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
  235. package/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
  236. package/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
  237. package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
  238. package/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
  239. package/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
  240. package/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
  241. package/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
  242. package/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
  243. package/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
  244. package/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +72 -0
  245. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
  246. package/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
  247. package/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
  248. package/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
  249. package/docs/09-troubleshooting/index.mdx +11 -0
  250. package/package.json +8 -4
@@ -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.