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,113 @@
1
+ ---
2
+ title: createUIMessageStreamResponse
3
+ description: API Reference for createUIMessageStreamResponse.
4
+ ---
5
+
6
+ # `createUIMessageStreamResponse`
7
+
8
+ The `createUIMessageStreamResponse` function creates a Response object that streams UI messages to the client.
9
+
10
+ ## Import
11
+
12
+ <Snippet
13
+ text={`import { createUIMessageStreamResponse } from "ai"`}
14
+ prompt={false}
15
+ />
16
+
17
+ ## Example
18
+
19
+ ```tsx
20
+ import {
21
+ createUIMessageStream,
22
+ createUIMessageStreamResponse,
23
+ streamText,
24
+ } from 'ai';
25
+ __PROVIDER_IMPORT__;
26
+
27
+ const response = createUIMessageStreamResponse({
28
+ status: 200,
29
+ statusText: 'OK',
30
+ headers: {
31
+ 'Custom-Header': 'value',
32
+ },
33
+ stream: createUIMessageStream({
34
+ execute({ writer }) {
35
+ // Write custom data
36
+ writer.write({
37
+ type: 'data',
38
+ value: { message: 'Hello' },
39
+ });
40
+
41
+ // Write text content
42
+ writer.write({
43
+ type: 'text',
44
+ value: 'Hello, world!',
45
+ });
46
+
47
+ // Write source information
48
+ writer.write({
49
+ type: 'source-url',
50
+ value: {
51
+ type: 'source',
52
+ id: 'source-1',
53
+ url: 'https://example.com',
54
+ title: 'Example Source',
55
+ },
56
+ });
57
+
58
+ // Merge with LLM stream
59
+ const result = streamText({
60
+ model: __MODEL__,
61
+ prompt: 'Say hello',
62
+ });
63
+
64
+ writer.merge(result.toUIMessageStream());
65
+ },
66
+ }),
67
+ });
68
+ ```
69
+
70
+ ## API Signature
71
+
72
+ ### Parameters
73
+
74
+ <PropertiesTable
75
+ content={[
76
+ {
77
+ name: 'stream',
78
+ type: 'ReadableStream<UIMessageChunk>',
79
+ description: 'The UI message stream to send to the client.',
80
+ },
81
+ {
82
+ name: 'status',
83
+ type: 'number',
84
+ isOptional: true,
85
+ description: 'The status code for the response. Defaults to 200.',
86
+ },
87
+ {
88
+ name: 'statusText',
89
+ type: 'string',
90
+ isOptional: true,
91
+ description: 'The status text for the response.',
92
+ },
93
+ {
94
+ name: 'headers',
95
+ type: 'Headers | Record<string, string>',
96
+ isOptional: true,
97
+ description: 'Additional headers for the response.',
98
+ },
99
+ {
100
+ name: 'consumeSseStream',
101
+ type: '(options: { stream: ReadableStream<string> }) => PromiseLike<void> | void',
102
+ isOptional: true,
103
+ description:
104
+ 'Optional callback to consume the Server-Sent Events stream.',
105
+ },
106
+ ]}
107
+ />
108
+
109
+ ### Returns
110
+
111
+ `Response`
112
+
113
+ A Response object that streams UI message chunks with the specified status, headers, and content.
@@ -0,0 +1,73 @@
1
+ ---
2
+ title: pipeUIMessageStreamToResponse
3
+ description: Learn to use pipeUIMessageStreamToResponse helper function to pipe streaming data to a ServerResponse object.
4
+ ---
5
+
6
+ # `pipeUIMessageStreamToResponse`
7
+
8
+ The `pipeUIMessageStreamToResponse` function pipes streaming data to a Node.js ServerResponse object (see [Streaming Data](/docs/ai-sdk-ui/streaming-data)).
9
+
10
+ ## Import
11
+
12
+ <Snippet
13
+ text={`import { pipeUIMessageStreamToResponse } from "ai"`}
14
+ prompt={false}
15
+ />
16
+
17
+ ## Example
18
+
19
+ ```tsx
20
+ pipeUIMessageStreamToResponse({
21
+ response: serverResponse,
22
+ status: 200,
23
+ statusText: 'OK',
24
+ headers: {
25
+ 'Custom-Header': 'value',
26
+ },
27
+ stream: myUIMessageStream,
28
+ consumeSseStream: ({ stream }) => {
29
+ // Optional: consume the SSE stream independently
30
+ console.log('Consuming SSE stream:', stream);
31
+ },
32
+ });
33
+ ```
34
+
35
+ ## API Signature
36
+
37
+ ### Parameters
38
+
39
+ <PropertiesTable
40
+ content={[
41
+ {
42
+ name: 'response',
43
+ type: 'ServerResponse',
44
+ description: 'The Node.js ServerResponse object to pipe the data to.',
45
+ },
46
+ {
47
+ name: 'stream',
48
+ type: 'ReadableStream<UIMessageChunk>',
49
+ description: 'The UI message stream to pipe to the response.',
50
+ },
51
+ {
52
+ name: 'status',
53
+ type: 'number',
54
+ description: 'The status code for the response.',
55
+ },
56
+ {
57
+ name: 'statusText',
58
+ type: 'string',
59
+ description: 'The status text for the response.',
60
+ },
61
+ {
62
+ name: 'headers',
63
+ type: 'Headers | Record<string, string>',
64
+ description: 'Additional headers for the response.',
65
+ },
66
+ {
67
+ name: 'consumeSseStream',
68
+ type: '({ stream }: { stream: ReadableStream }) => void',
69
+ description:
70
+ 'Optional function to consume the SSE stream independently. The stream is teed and this function receives a copy.',
71
+ },
72
+ ]}
73
+ />
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: readUIMessageStream
3
+ description: API Reference for readUIMessageStream.
4
+ ---
5
+
6
+ # readUIMessageStream
7
+
8
+ Transforms a stream of `UIMessageChunk`s into an `AsyncIterableStream` of `UIMessage`s.
9
+
10
+ UI message streams are useful outside of Chat use cases, e.g. for terminal UIs, custom stream consumption on the client, or RSC (React Server Components).
11
+
12
+ ## Import
13
+
14
+ ```tsx
15
+ import { readUIMessageStream } from 'ai';
16
+ ```
17
+
18
+ ## API Signature
19
+
20
+ ### Parameters
21
+
22
+ <PropertiesTable
23
+ content={[
24
+ {
25
+ name: 'message',
26
+ type: 'UIMessage',
27
+ isOptional: true,
28
+ description:
29
+ 'The last assistant message to use as a starting point when the conversation is resumed. Otherwise undefined.',
30
+ },
31
+ {
32
+ name: 'stream',
33
+ type: 'ReadableStream<UIMessageChunk>',
34
+ description: 'The stream of UIMessageChunk objects to read.',
35
+ },
36
+ {
37
+ name: 'onError',
38
+ type: '(error: unknown) => void',
39
+ isOptional: true,
40
+ description:
41
+ 'A function that is called when an error occurs during stream processing.',
42
+ },
43
+ {
44
+ name: 'terminateOnError',
45
+ type: 'boolean',
46
+ isOptional: true,
47
+ description:
48
+ 'Whether to terminate the stream if an error occurs. Defaults to false.',
49
+ },
50
+ ]}
51
+ />
52
+
53
+ ### Returns
54
+
55
+ An `AsyncIterableStream` of `UIMessage`s. Each stream part represents a different state of the same message as it is being completed.
56
+
57
+ For comprehensive examples and use cases, see [Reading UI Message Streams](/docs/ai-sdk-ui/reading-ui-message-streams).
@@ -0,0 +1,99 @@
1
+ ---
2
+ title: InferUITools
3
+ description: API Reference for InferUITools.
4
+ ---
5
+
6
+ # InferUITools
7
+
8
+ Infers the input and output types of a `ToolSet`.
9
+
10
+ This type helper is useful when working with tools in TypeScript to ensure type safety for your tool inputs and outputs in `UIMessage`s.
11
+
12
+ ## Import
13
+
14
+ ```tsx
15
+ import { InferUITools } from 'ai';
16
+ ```
17
+
18
+ ## API Signature
19
+
20
+ ### Type Parameters
21
+
22
+ <PropertiesTable
23
+ content={[
24
+ {
25
+ name: 'TOOLS',
26
+ type: 'ToolSet',
27
+ description: 'The tool set to infer types from.',
28
+ },
29
+ ]}
30
+ />
31
+
32
+ ### Returns
33
+
34
+ A type that maps each tool in the tool set to its inferred input and output types.
35
+
36
+ The resulting type has the shape:
37
+
38
+ ```typescript
39
+ {
40
+ [NAME in keyof TOOLS & string]: {
41
+ input: InferToolInput<TOOLS[NAME]>;
42
+ output: InferToolOutput<TOOLS[NAME]>;
43
+ };
44
+ }
45
+ ```
46
+
47
+ ## Examples
48
+
49
+ ### Basic Usage
50
+
51
+ ```tsx
52
+ import { InferUITools } from 'ai';
53
+ import { z } from 'zod';
54
+
55
+ const tools = {
56
+ weather: {
57
+ description: 'Get the current weather',
58
+ parameters: z.object({
59
+ location: z.string().describe('The city and state'),
60
+ }),
61
+ execute: async ({ location }) => {
62
+ return `The weather in ${location} is sunny.`;
63
+ },
64
+ },
65
+ calculator: {
66
+ description: 'Perform basic arithmetic',
67
+ parameters: z.object({
68
+ operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
69
+ a: z.number(),
70
+ b: z.number(),
71
+ }),
72
+ execute: async ({ operation, a, b }) => {
73
+ switch (operation) {
74
+ case 'add':
75
+ return a + b;
76
+ case 'subtract':
77
+ return a - b;
78
+ case 'multiply':
79
+ return a * b;
80
+ case 'divide':
81
+ return a / b;
82
+ }
83
+ },
84
+ },
85
+ };
86
+
87
+ // Infer the types from the tool set
88
+ type MyUITools = InferUITools<typeof tools>;
89
+ // This creates a type with:
90
+ // {
91
+ // weather: { input: { location: string }; output: string };
92
+ // calculator: { input: { operation: 'add' | 'subtract' | 'multiply' | 'divide'; a: number; b: number }; output: number };
93
+ // }
94
+ ```
95
+
96
+ ## Related
97
+
98
+ - [`InferUITool`](/docs/reference/ai-sdk-ui/infer-ui-tool) - Infer types for a single tool
99
+ - [`useChat`](/docs/reference/ai-sdk-ui/use-chat) - Chat hook that supports typed tools
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: InferUITool
3
+ description: API Reference for InferUITool.
4
+ ---
5
+
6
+ # InferUITool
7
+
8
+ Infers the input and output types of a tool.
9
+
10
+ This type helper is useful when working with individual tools to ensure type safety for your tool inputs and outputs in `UIMessage`s.
11
+
12
+ ## Import
13
+
14
+ ```tsx
15
+ import { InferUITool } from 'ai';
16
+ ```
17
+
18
+ ## API Signature
19
+
20
+ ### Type Parameters
21
+
22
+ <PropertiesTable
23
+ content={[
24
+ {
25
+ name: 'TOOL',
26
+ type: 'Tool',
27
+ description: 'The tool to infer types from.',
28
+ },
29
+ ]}
30
+ />
31
+
32
+ ### Returns
33
+
34
+ A type that contains the inferred input and output types of the tool.
35
+
36
+ The resulting type has the shape:
37
+
38
+ ```typescript
39
+ {
40
+ input: InferToolInput<TOOL>;
41
+ output: InferToolOutput<TOOL>;
42
+ }
43
+ ```
44
+
45
+ ## Examples
46
+
47
+ ### Basic Usage
48
+
49
+ ```tsx
50
+ import { InferUITool } from 'ai';
51
+ import { z } from 'zod';
52
+
53
+ const weatherTool = {
54
+ description: 'Get the current weather',
55
+ parameters: z.object({
56
+ location: z.string().describe('The city and state'),
57
+ }),
58
+ execute: async ({ location }) => {
59
+ return `The weather in ${location} is sunny.`;
60
+ },
61
+ };
62
+
63
+ // Infer the types from the tool
64
+ type WeatherUITool = InferUITool<typeof weatherTool>;
65
+ // This creates a type with:
66
+ // {
67
+ // input: { location: string };
68
+ // output: string;
69
+ // }
70
+ ```
71
+
72
+ ## Related
73
+
74
+ - [`InferUITools`](/docs/reference/ai-sdk-ui/infer-ui-tools) - Infer types for a tool set
75
+ - [`ToolUIPart`](/docs/reference/ai-sdk-ui/tool-ui-part) - Tool part type for UI messages