@fairyhunter13/ai-sdk 6.0.116-fork.1

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 (534) hide show
  1. package/CHANGELOG.md +7582 -0
  2. package/README.md +238 -0
  3. package/dist/index.d.mts +6751 -0
  4. package/dist/index.d.ts +6751 -0
  5. package/dist/index.js +14155 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/index.mjs +14127 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/internal/index.d.mts +324 -0
  10. package/dist/internal/index.d.ts +324 -0
  11. package/dist/internal/index.js +1352 -0
  12. package/dist/internal/index.js.map +1 -0
  13. package/dist/internal/index.mjs +1336 -0
  14. package/dist/internal/index.mjs.map +1 -0
  15. package/dist/test/index.d.mts +265 -0
  16. package/dist/test/index.d.ts +265 -0
  17. package/dist/test/index.js +509 -0
  18. package/dist/test/index.js.map +1 -0
  19. package/dist/test/index.mjs +472 -0
  20. package/dist/test/index.mjs.map +1 -0
  21. package/docs/00-introduction/index.mdx +76 -0
  22. package/docs/02-foundations/01-overview.mdx +43 -0
  23. package/docs/02-foundations/02-providers-and-models.mdx +158 -0
  24. package/docs/02-foundations/03-prompts.mdx +616 -0
  25. package/docs/02-foundations/04-tools.mdx +251 -0
  26. package/docs/02-foundations/05-streaming.mdx +62 -0
  27. package/docs/02-foundations/06-provider-options.mdx +345 -0
  28. package/docs/02-foundations/index.mdx +49 -0
  29. package/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
  30. package/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
  31. package/docs/02-getting-started/02-nextjs-app-router.mdx +559 -0
  32. package/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
  33. package/docs/02-getting-started/04-svelte.mdx +627 -0
  34. package/docs/02-getting-started/05-nuxt.mdx +566 -0
  35. package/docs/02-getting-started/06-nodejs.mdx +512 -0
  36. package/docs/02-getting-started/07-expo.mdx +766 -0
  37. package/docs/02-getting-started/08-tanstack-start.mdx +583 -0
  38. package/docs/02-getting-started/09-coding-agents.mdx +179 -0
  39. package/docs/02-getting-started/index.mdx +44 -0
  40. package/docs/03-agents/01-overview.mdx +96 -0
  41. package/docs/03-agents/02-building-agents.mdx +449 -0
  42. package/docs/03-agents/03-workflows.mdx +386 -0
  43. package/docs/03-agents/04-loop-control.mdx +394 -0
  44. package/docs/03-agents/05-configuring-call-options.mdx +286 -0
  45. package/docs/03-agents/06-memory.mdx +222 -0
  46. package/docs/03-agents/06-subagents.mdx +362 -0
  47. package/docs/03-agents/index.mdx +46 -0
  48. package/docs/03-ai-sdk-core/01-overview.mdx +31 -0
  49. package/docs/03-ai-sdk-core/05-generating-text.mdx +707 -0
  50. package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +498 -0
  51. package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1144 -0
  52. package/docs/03-ai-sdk-core/16-mcp-tools.mdx +383 -0
  53. package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +146 -0
  54. package/docs/03-ai-sdk-core/25-settings.mdx +216 -0
  55. package/docs/03-ai-sdk-core/26-reasoning.mdx +190 -0
  56. package/docs/03-ai-sdk-core/30-embeddings.mdx +246 -0
  57. package/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
  58. package/docs/03-ai-sdk-core/35-image-generation.mdx +341 -0
  59. package/docs/03-ai-sdk-core/36-transcription.mdx +227 -0
  60. package/docs/03-ai-sdk-core/37-speech.mdx +169 -0
  61. package/docs/03-ai-sdk-core/38-video-generation.mdx +366 -0
  62. package/docs/03-ai-sdk-core/40-middleware.mdx +485 -0
  63. package/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
  64. package/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
  65. package/docs/03-ai-sdk-core/55-testing.mdx +219 -0
  66. package/docs/03-ai-sdk-core/60-telemetry.mdx +391 -0
  67. package/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
  68. package/docs/03-ai-sdk-core/65-event-listeners.mdx +1118 -0
  69. package/docs/03-ai-sdk-core/index.mdx +99 -0
  70. package/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
  71. package/docs/04-ai-sdk-ui/02-chatbot.mdx +1320 -0
  72. package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
  73. package/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
  74. package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
  75. package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
  76. package/docs/04-ai-sdk-ui/05-completion.mdx +181 -0
  77. package/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
  78. package/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
  79. package/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
  80. package/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
  81. package/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
  82. package/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
  83. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +503 -0
  84. package/docs/04-ai-sdk-ui/index.mdx +64 -0
  85. package/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
  86. package/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
  87. package/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
  88. package/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
  89. package/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
  90. package/docs/05-ai-sdk-rsc/05-streaming-values.mdx +157 -0
  91. package/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
  92. package/docs/05-ai-sdk-rsc/08-error-handling.mdx +94 -0
  93. package/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
  94. package/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
  95. package/docs/05-ai-sdk-rsc/index.mdx +63 -0
  96. package/docs/06-advanced/01-prompt-engineering.mdx +96 -0
  97. package/docs/06-advanced/02-stopping-streams.mdx +184 -0
  98. package/docs/06-advanced/03-backpressure.mdx +173 -0
  99. package/docs/06-advanced/04-caching.mdx +169 -0
  100. package/docs/06-advanced/05-multiple-streamables.mdx +68 -0
  101. package/docs/06-advanced/06-rate-limiting.mdx +60 -0
  102. package/docs/06-advanced/07-rendering-ui-with-language-models.mdx +225 -0
  103. package/docs/06-advanced/08-model-as-router.mdx +120 -0
  104. package/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
  105. package/docs/06-advanced/09-sequential-generations.mdx +55 -0
  106. package/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
  107. package/docs/06-advanced/index.mdx +11 -0
  108. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2785 -0
  109. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3752 -0
  110. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +332 -0
  111. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +330 -0
  112. package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
  113. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +251 -0
  114. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +152 -0
  115. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +221 -0
  116. package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +264 -0
  117. package/docs/07-reference/01-ai-sdk-core/15-agent.mdx +235 -0
  118. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +973 -0
  119. package/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +154 -0
  120. package/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +173 -0
  121. package/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +150 -0
  122. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +209 -0
  123. package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +223 -0
  124. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +423 -0
  125. package/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
  126. package/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
  127. package/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
  128. package/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +58 -0
  129. package/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
  130. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +435 -0
  131. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +264 -0
  132. package/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
  133. package/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
  134. package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +198 -0
  135. package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +157 -0
  136. package/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
  137. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
  138. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
  139. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +74 -0
  140. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
  141. package/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
  142. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
  143. package/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
  144. package/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
  145. package/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
  146. package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
  147. package/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
  148. package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
  149. package/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +30 -0
  150. package/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
  151. package/docs/07-reference/01-ai-sdk-core/92-default-generated-file.mdx +68 -0
  152. package/docs/07-reference/01-ai-sdk-core/index.mdx +160 -0
  153. package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +493 -0
  154. package/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +185 -0
  155. package/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +196 -0
  156. package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +231 -0
  157. package/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
  158. package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +162 -0
  159. package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +119 -0
  160. package/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +77 -0
  161. package/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
  162. package/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
  163. package/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
  164. package/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
  165. package/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
  166. package/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
  167. package/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
  168. package/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
  169. package/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +78 -0
  170. package/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +79 -0
  171. package/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
  172. package/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
  173. package/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
  174. package/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
  175. package/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
  176. package/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
  177. package/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +266 -0
  178. package/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
  179. package/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +31 -0
  180. package/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +28 -0
  181. package/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
  182. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
  183. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +26 -0
  184. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
  185. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
  186. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
  187. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +24 -0
  188. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
  189. package/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
  190. package/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
  191. package/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
  192. package/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
  193. package/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
  194. package/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
  195. package/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
  196. package/docs/07-reference/05-ai-sdk-errors/ai-no-output-generated-error.mdx +25 -0
  197. package/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +24 -0
  198. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
  199. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
  200. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
  201. package/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +24 -0
  202. package/docs/07-reference/05-ai-sdk-errors/ai-no-video-generated-error.mdx +39 -0
  203. package/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
  204. package/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
  205. package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +25 -0
  206. package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
  207. package/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
  208. package/docs/07-reference/05-ai-sdk-errors/ai-ui-message-stream-error.mdx +67 -0
  209. package/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
  210. package/docs/07-reference/05-ai-sdk-errors/index.mdx +39 -0
  211. package/docs/07-reference/index.mdx +28 -0
  212. package/docs/08-migration-guides/00-versioning.mdx +46 -0
  213. package/docs/08-migration-guides/23-migration-guide-7-0.mdx +95 -0
  214. package/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
  215. package/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
  216. package/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
  217. package/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
  218. package/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
  219. package/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
  220. package/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
  221. package/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
  222. package/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
  223. package/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
  224. package/docs/08-migration-guides/index.mdx +22 -0
  225. package/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
  226. package/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
  227. package/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
  228. package/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
  229. package/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
  230. package/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
  231. package/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
  232. package/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
  233. package/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
  234. package/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
  235. package/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
  236. package/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
  237. package/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
  238. package/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
  239. package/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
  240. package/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
  241. package/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
  242. package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
  243. package/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
  244. package/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
  245. package/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
  246. package/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
  247. package/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
  248. package/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
  249. package/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +76 -0
  250. package/docs/09-troubleshooting/21-missing-tool-results-error.mdx +82 -0
  251. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
  252. package/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
  253. package/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
  254. package/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
  255. package/docs/09-troubleshooting/70-high-memory-usage-with-images.mdx +108 -0
  256. package/docs/09-troubleshooting/index.mdx +11 -0
  257. package/internal.d.ts +1 -0
  258. package/package.json +120 -0
  259. package/src/agent/agent.ts +156 -0
  260. package/src/agent/create-agent-ui-stream-response.ts +61 -0
  261. package/src/agent/create-agent-ui-stream.ts +84 -0
  262. package/src/agent/index.ts +37 -0
  263. package/src/agent/infer-agent-tools.ts +7 -0
  264. package/src/agent/infer-agent-ui-message.ts +11 -0
  265. package/src/agent/pipe-agent-ui-stream-to-response.ts +64 -0
  266. package/src/agent/tool-loop-agent-settings.ts +244 -0
  267. package/src/agent/tool-loop-agent.ts +205 -0
  268. package/src/embed/embed-events.ts +109 -0
  269. package/src/embed/embed-many-result.ts +53 -0
  270. package/src/embed/embed-many.ts +484 -0
  271. package/src/embed/embed-result.ts +50 -0
  272. package/src/embed/embed.ts +294 -0
  273. package/src/embed/index.ts +5 -0
  274. package/src/error/index.ts +37 -0
  275. package/src/error/invalid-argument-error.ts +34 -0
  276. package/src/error/invalid-stream-part-error.ts +28 -0
  277. package/src/error/invalid-tool-approval-error.ts +26 -0
  278. package/src/error/invalid-tool-input-error.ts +33 -0
  279. package/src/error/missing-tool-result-error.ts +28 -0
  280. package/src/error/no-image-generated-error.ts +39 -0
  281. package/src/error/no-object-generated-error.ts +70 -0
  282. package/src/error/no-output-generated-error.ts +26 -0
  283. package/src/error/no-speech-generated-error.ts +28 -0
  284. package/src/error/no-such-tool-error.ts +35 -0
  285. package/src/error/no-transcript-generated-error.ts +30 -0
  286. package/src/error/no-video-generated-error.ts +57 -0
  287. package/src/error/tool-call-not-found-for-approval-error.ts +32 -0
  288. package/src/error/tool-call-repair-error.ts +30 -0
  289. package/src/error/ui-message-stream-error.ts +48 -0
  290. package/src/error/unsupported-model-version-error.ts +23 -0
  291. package/src/error/verify-no-object-generated-error.ts +27 -0
  292. package/src/generate-image/generate-image-result.ts +42 -0
  293. package/src/generate-image/generate-image.ts +361 -0
  294. package/src/generate-image/index.ts +18 -0
  295. package/src/generate-object/generate-object-result.ts +67 -0
  296. package/src/generate-object/generate-object.ts +514 -0
  297. package/src/generate-object/index.ts +9 -0
  298. package/src/generate-object/inject-json-instruction.ts +30 -0
  299. package/src/generate-object/output-strategy.ts +415 -0
  300. package/src/generate-object/parse-and-validate-object-result.ts +111 -0
  301. package/src/generate-object/repair-text.ts +12 -0
  302. package/src/generate-object/stream-object-result.ts +120 -0
  303. package/src/generate-object/stream-object.ts +984 -0
  304. package/src/generate-object/validate-object-generation-input.ts +144 -0
  305. package/src/generate-speech/generate-speech-result.ts +30 -0
  306. package/src/generate-speech/generate-speech.ts +191 -0
  307. package/src/generate-speech/generated-audio-file.ts +65 -0
  308. package/src/generate-speech/index.ts +3 -0
  309. package/src/generate-text/collect-tool-approvals.ts +116 -0
  310. package/src/generate-text/content-part.ts +31 -0
  311. package/src/generate-text/core-events.ts +390 -0
  312. package/src/generate-text/create-execute-tools-transformation.ts +168 -0
  313. package/src/generate-text/create-stream-text-part-transform.ts +229 -0
  314. package/src/generate-text/execute-tool-call.ts +190 -0
  315. package/src/generate-text/extract-reasoning-content.ts +17 -0
  316. package/src/generate-text/extract-text-content.ts +15 -0
  317. package/src/generate-text/generate-text-result.ts +168 -0
  318. package/src/generate-text/generate-text.ts +1411 -0
  319. package/src/generate-text/generated-file.ts +70 -0
  320. package/src/generate-text/index.ts +74 -0
  321. package/src/generate-text/is-approval-needed.ts +29 -0
  322. package/src/generate-text/output-utils.ts +23 -0
  323. package/src/generate-text/output.ts +590 -0
  324. package/src/generate-text/parse-tool-call.ts +188 -0
  325. package/src/generate-text/prepare-step.ts +103 -0
  326. package/src/generate-text/prune-messages.ts +167 -0
  327. package/src/generate-text/reasoning-output.ts +99 -0
  328. package/src/generate-text/reasoning.ts +10 -0
  329. package/src/generate-text/response-message.ts +10 -0
  330. package/src/generate-text/smooth-stream.ts +162 -0
  331. package/src/generate-text/step-result.ts +310 -0
  332. package/src/generate-text/stop-condition.ts +29 -0
  333. package/src/generate-text/stream-text-result.ts +536 -0
  334. package/src/generate-text/stream-text.ts +2693 -0
  335. package/src/generate-text/to-response-messages.ts +178 -0
  336. package/src/generate-text/tool-approval-request-output.ts +21 -0
  337. package/src/generate-text/tool-call-repair-function.ts +27 -0
  338. package/src/generate-text/tool-call.ts +47 -0
  339. package/src/generate-text/tool-error.ts +34 -0
  340. package/src/generate-text/tool-output-denied.ts +21 -0
  341. package/src/generate-text/tool-output.ts +7 -0
  342. package/src/generate-text/tool-result.ts +36 -0
  343. package/src/generate-text/tool-set.ts +14 -0
  344. package/src/generate-video/generate-video-result.ts +36 -0
  345. package/src/generate-video/generate-video.ts +402 -0
  346. package/src/generate-video/index.ts +3 -0
  347. package/src/global.ts +36 -0
  348. package/src/index.ts +49 -0
  349. package/src/logger/index.ts +6 -0
  350. package/src/logger/log-warnings.ts +140 -0
  351. package/src/middleware/add-tool-input-examples-middleware.ts +90 -0
  352. package/src/middleware/default-embedding-settings-middleware.ts +22 -0
  353. package/src/middleware/default-settings-middleware.ts +33 -0
  354. package/src/middleware/extract-json-middleware.ts +197 -0
  355. package/src/middleware/extract-reasoning-middleware.ts +249 -0
  356. package/src/middleware/index.ts +10 -0
  357. package/src/middleware/simulate-streaming-middleware.ts +79 -0
  358. package/src/middleware/wrap-embedding-model.ts +89 -0
  359. package/src/middleware/wrap-image-model.ts +92 -0
  360. package/src/middleware/wrap-language-model.ts +108 -0
  361. package/src/middleware/wrap-provider.ts +51 -0
  362. package/src/model/as-embedding-model-v3.ts +24 -0
  363. package/src/model/as-embedding-model-v4.ts +25 -0
  364. package/src/model/as-image-model-v3.ts +24 -0
  365. package/src/model/as-image-model-v4.ts +21 -0
  366. package/src/model/as-language-model-v3.ts +103 -0
  367. package/src/model/as-language-model-v4.ts +25 -0
  368. package/src/model/as-provider-v3.ts +36 -0
  369. package/src/model/as-provider-v4.ts +47 -0
  370. package/src/model/as-reranking-model-v4.ts +16 -0
  371. package/src/model/as-speech-model-v3.ts +24 -0
  372. package/src/model/as-speech-model-v4.ts +21 -0
  373. package/src/model/as-transcription-model-v3.ts +24 -0
  374. package/src/model/as-transcription-model-v4.ts +25 -0
  375. package/src/model/as-video-model-v4.ts +19 -0
  376. package/src/model/resolve-model.ts +172 -0
  377. package/src/prompt/call-settings.ts +177 -0
  378. package/src/prompt/content-part.ts +236 -0
  379. package/src/prompt/convert-to-language-model-prompt.ts +548 -0
  380. package/src/prompt/create-tool-model-output.ts +34 -0
  381. package/src/prompt/data-content.ts +134 -0
  382. package/src/prompt/index.ts +27 -0
  383. package/src/prompt/invalid-data-content-error.ts +29 -0
  384. package/src/prompt/invalid-message-role-error.ts +27 -0
  385. package/src/prompt/message-conversion-error.ts +28 -0
  386. package/src/prompt/message.ts +72 -0
  387. package/src/prompt/prepare-call-settings.ts +110 -0
  388. package/src/prompt/prepare-tools-and-tool-choice.ts +86 -0
  389. package/src/prompt/prompt.ts +43 -0
  390. package/src/prompt/split-data-url.ts +17 -0
  391. package/src/prompt/standardize-prompt.ts +99 -0
  392. package/src/prompt/wrap-gateway-error.ts +29 -0
  393. package/src/registry/custom-provider.ts +210 -0
  394. package/src/registry/index.ts +7 -0
  395. package/src/registry/no-such-provider-error.ts +41 -0
  396. package/src/registry/provider-registry.ts +331 -0
  397. package/src/rerank/index.ts +2 -0
  398. package/src/rerank/rerank-result.ts +70 -0
  399. package/src/rerank/rerank.ts +239 -0
  400. package/src/telemetry/assemble-operation-name.ts +21 -0
  401. package/src/telemetry/get-base-telemetry-attributes.ts +55 -0
  402. package/src/telemetry/get-global-telemetry-integration.ts +110 -0
  403. package/src/telemetry/get-tracer.ts +20 -0
  404. package/src/telemetry/index.ts +4 -0
  405. package/src/telemetry/noop-tracer.ts +69 -0
  406. package/src/telemetry/open-telemetry-integration.ts +537 -0
  407. package/src/telemetry/record-span.ts +75 -0
  408. package/src/telemetry/select-telemetry-attributes.ts +78 -0
  409. package/src/telemetry/stringify-for-telemetry.ts +33 -0
  410. package/src/telemetry/telemetry-integration-registry.ts +22 -0
  411. package/src/telemetry/telemetry-integration.ts +100 -0
  412. package/src/telemetry/telemetry-settings.ts +55 -0
  413. package/src/test/mock-embedding-model-v2.ts +35 -0
  414. package/src/test/mock-embedding-model-v3.ts +48 -0
  415. package/src/test/mock-embedding-model-v4.ts +48 -0
  416. package/src/test/mock-image-model-v2.ts +28 -0
  417. package/src/test/mock-image-model-v3.ts +28 -0
  418. package/src/test/mock-image-model-v4.ts +28 -0
  419. package/src/test/mock-language-model-v2.ts +72 -0
  420. package/src/test/mock-language-model-v3.ts +77 -0
  421. package/src/test/mock-language-model-v4.ts +77 -0
  422. package/src/test/mock-provider-v2.ts +68 -0
  423. package/src/test/mock-provider-v3.ts +80 -0
  424. package/src/test/mock-provider-v4.ts +80 -0
  425. package/src/test/mock-reranking-model-v3.ts +25 -0
  426. package/src/test/mock-reranking-model-v4.ts +25 -0
  427. package/src/test/mock-server-response.ts +69 -0
  428. package/src/test/mock-speech-model-v2.ts +24 -0
  429. package/src/test/mock-speech-model-v3.ts +24 -0
  430. package/src/test/mock-speech-model-v4.ts +24 -0
  431. package/src/test/mock-tracer.ts +156 -0
  432. package/src/test/mock-transcription-model-v2.ts +24 -0
  433. package/src/test/mock-transcription-model-v3.ts +24 -0
  434. package/src/test/mock-transcription-model-v4.ts +24 -0
  435. package/src/test/mock-values.ts +4 -0
  436. package/src/test/mock-video-model-v3.ts +28 -0
  437. package/src/test/mock-video-model-v4.ts +28 -0
  438. package/src/test/not-implemented.ts +3 -0
  439. package/src/text-stream/create-text-stream-response.ts +30 -0
  440. package/src/text-stream/index.ts +2 -0
  441. package/src/text-stream/pipe-text-stream-to-response.ts +38 -0
  442. package/src/transcribe/index.ts +2 -0
  443. package/src/transcribe/transcribe-result.ts +60 -0
  444. package/src/transcribe/transcribe.ts +187 -0
  445. package/src/types/embedding-model-middleware.ts +15 -0
  446. package/src/types/embedding-model.ts +20 -0
  447. package/src/types/image-model-middleware.ts +15 -0
  448. package/src/types/image-model-response-metadata.ts +16 -0
  449. package/src/types/image-model.ts +19 -0
  450. package/src/types/index.ts +29 -0
  451. package/src/types/json-value.ts +15 -0
  452. package/src/types/language-model-middleware.ts +15 -0
  453. package/src/types/language-model-request-metadata.ts +6 -0
  454. package/src/types/language-model-response-metadata.ts +21 -0
  455. package/src/types/language-model.ts +106 -0
  456. package/src/types/provider-metadata.ts +16 -0
  457. package/src/types/provider.ts +55 -0
  458. package/src/types/reranking-model.ts +6 -0
  459. package/src/types/speech-model-response-metadata.ts +21 -0
  460. package/src/types/speech-model.ts +10 -0
  461. package/src/types/transcription-model-response-metadata.ts +16 -0
  462. package/src/types/transcription-model.ts +14 -0
  463. package/src/types/usage.ts +200 -0
  464. package/src/types/video-model-response-metadata.ts +28 -0
  465. package/src/types/video-model.ts +15 -0
  466. package/src/types/warning.ts +7 -0
  467. package/src/ui/call-completion-api.ts +157 -0
  468. package/src/ui/chat-transport.ts +83 -0
  469. package/src/ui/chat.ts +786 -0
  470. package/src/ui/convert-file-list-to-file-ui-parts.ts +36 -0
  471. package/src/ui/convert-to-model-messages.ts +403 -0
  472. package/src/ui/default-chat-transport.ts +36 -0
  473. package/src/ui/direct-chat-transport.ts +117 -0
  474. package/src/ui/http-chat-transport.ts +273 -0
  475. package/src/ui/index.ts +76 -0
  476. package/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +44 -0
  477. package/src/ui/last-assistant-message-is-complete-with-tool-calls.ts +39 -0
  478. package/src/ui/process-text-stream.ts +16 -0
  479. package/src/ui/process-ui-message-stream.ts +858 -0
  480. package/src/ui/text-stream-chat-transport.ts +23 -0
  481. package/src/ui/transform-text-to-ui-message-stream.ts +27 -0
  482. package/src/ui/ui-messages.ts +602 -0
  483. package/src/ui/use-completion.ts +84 -0
  484. package/src/ui/validate-ui-messages.ts +521 -0
  485. package/src/ui-message-stream/create-ui-message-stream-response.ts +44 -0
  486. package/src/ui-message-stream/create-ui-message-stream.ts +145 -0
  487. package/src/ui-message-stream/get-response-ui-message-id.ts +35 -0
  488. package/src/ui-message-stream/handle-ui-message-stream-finish.ts +170 -0
  489. package/src/ui-message-stream/index.ts +14 -0
  490. package/src/ui-message-stream/json-to-sse-transform-stream.ts +17 -0
  491. package/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +51 -0
  492. package/src/ui-message-stream/read-ui-message-stream.ts +87 -0
  493. package/src/ui-message-stream/ui-message-chunks.ts +372 -0
  494. package/src/ui-message-stream/ui-message-stream-headers.ts +7 -0
  495. package/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +32 -0
  496. package/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +25 -0
  497. package/src/ui-message-stream/ui-message-stream-response-init.ts +14 -0
  498. package/src/ui-message-stream/ui-message-stream-writer.ts +24 -0
  499. package/src/util/as-array.ts +3 -0
  500. package/src/util/async-iterable-stream.ts +94 -0
  501. package/src/util/consume-stream.ts +31 -0
  502. package/src/util/cosine-similarity.ts +46 -0
  503. package/src/util/create-resolvable-promise.ts +30 -0
  504. package/src/util/create-stitchable-stream.ts +112 -0
  505. package/src/util/data-url.ts +17 -0
  506. package/src/util/deep-partial.ts +84 -0
  507. package/src/util/detect-media-type.ts +226 -0
  508. package/src/util/download/create-download.ts +13 -0
  509. package/src/util/download/download-function.ts +45 -0
  510. package/src/util/download/download.ts +74 -0
  511. package/src/util/error-handler.ts +1 -0
  512. package/src/util/fix-json.ts +401 -0
  513. package/src/util/get-potential-start-index.ts +39 -0
  514. package/src/util/index.ts +12 -0
  515. package/src/util/is-deep-equal-data.ts +48 -0
  516. package/src/util/is-non-empty-object.ts +5 -0
  517. package/src/util/job.ts +1 -0
  518. package/src/util/log-v2-compatibility-warning.ts +21 -0
  519. package/src/util/merge-abort-signals.ts +43 -0
  520. package/src/util/merge-objects.ts +79 -0
  521. package/src/util/notify.ts +22 -0
  522. package/src/util/now.ts +4 -0
  523. package/src/util/parse-partial-json.ts +30 -0
  524. package/src/util/prepare-headers.ts +14 -0
  525. package/src/util/prepare-retries.ts +47 -0
  526. package/src/util/retry-error.ts +41 -0
  527. package/src/util/retry-with-exponential-backoff.ts +154 -0
  528. package/src/util/serial-job-executor.ts +36 -0
  529. package/src/util/simulate-readable-stream.ts +39 -0
  530. package/src/util/split-array.ts +20 -0
  531. package/src/util/value-of.ts +65 -0
  532. package/src/util/write-to-server-response.ts +49 -0
  533. package/src/version.ts +5 -0
  534. package/test.d.ts +1 -0
@@ -0,0 +1,160 @@
1
+ ---
2
+ title: AI SDK Core
3
+ description: Reference documentation for the AI SDK Core
4
+ collapsed: true
5
+ ---
6
+
7
+ # AI SDK Core
8
+
9
+ [AI SDK Core](/docs/ai-sdk-core) is a set of functions that allow you to interact with language models and other AI models.
10
+ These functions are designed to be easy-to-use and flexible, allowing you to generate text, structured data,
11
+ and embeddings from language models and other AI models.
12
+
13
+ AI SDK Core contains the following main functions:
14
+
15
+ <IndexCards
16
+ cards={[
17
+ {
18
+ title: 'generateText()',
19
+ description: 'Generate text and call tools from a language model.',
20
+ href: '/docs/reference/ai-sdk-core/generate-text',
21
+ },
22
+ {
23
+ title: 'streamText()',
24
+ description: 'Stream text and call tools from a language model.',
25
+ href: '/docs/reference/ai-sdk-core/stream-text',
26
+ },
27
+ {
28
+ title: 'Output',
29
+ description: 'Structured output types for generateText and streamText.',
30
+ href: '/docs/reference/ai-sdk-core/output',
31
+ },
32
+ {
33
+ title: 'embed()',
34
+ description:
35
+ 'Generate an embedding for a single value using an embedding model.',
36
+ href: '/docs/reference/ai-sdk-core/embed',
37
+ },
38
+ {
39
+ title: 'embedMany()',
40
+ description:
41
+ 'Generate embeddings for several values using an embedding model (batch embedding).',
42
+ href: '/docs/reference/ai-sdk-core/embed-many',
43
+ },
44
+ {
45
+ title: 'generateImage()',
46
+ description:
47
+ 'Generate images based on a given prompt using an image model.',
48
+ href: '/docs/reference/ai-sdk-core/generate-image',
49
+ },
50
+ {
51
+ title: 'experimental_generateVideo()',
52
+ description:
53
+ 'Generate videos based on a given prompt using a video model.',
54
+ href: '/docs/reference/ai-sdk-core/generate-video',
55
+ },
56
+ {
57
+ title: 'experimental_transcribe()',
58
+ description: 'Generate a transcript from an audio file.',
59
+ href: '/docs/reference/ai-sdk-core/transcribe',
60
+ },
61
+ {
62
+ title: 'experimental_generateSpeech()',
63
+ description: 'Generate speech audio from text.',
64
+ href: '/docs/reference/ai-sdk-core/generate-speech',
65
+ },
66
+ ]}
67
+ />
68
+
69
+ It also contains the following helper functions:
70
+
71
+ <IndexCards
72
+ cards={[
73
+ {
74
+ title: 'tool()',
75
+ description: 'Type inference helper function for tools.',
76
+ href: '/docs/reference/ai-sdk-core/tool',
77
+ },
78
+ {
79
+ title: 'createMCPClient()',
80
+ description: 'Creates a client for connecting to MCP servers.',
81
+ href: '/docs/reference/ai-sdk-core/create-mcp-client',
82
+ },
83
+ {
84
+ title: 'jsonSchema()',
85
+ description: 'Creates AI SDK compatible JSON schema objects.',
86
+ href: '/docs/reference/ai-sdk-core/json-schema',
87
+ },
88
+ {
89
+ title: 'zodSchema()',
90
+ description: 'Creates AI SDK compatible Zod schema objects.',
91
+ href: '/docs/reference/ai-sdk-core/zod-schema',
92
+ },
93
+ {
94
+ title: 'createProviderRegistry()',
95
+ description:
96
+ 'Creates a registry for using models from multiple providers.',
97
+ href: '/docs/reference/ai-sdk-core/provider-registry',
98
+ },
99
+ {
100
+ title: 'cosineSimilarity()',
101
+ description:
102
+ 'Calculates the cosine similarity between two vectors, e.g. embeddings.',
103
+ href: '/docs/reference/ai-sdk-core/cosine-similarity',
104
+ },
105
+ {
106
+ title: 'simulateReadableStream()',
107
+ description:
108
+ 'Creates a ReadableStream that emits values with configurable delays.',
109
+ href: '/docs/reference/ai-sdk-core/simulate-readable-stream',
110
+ },
111
+ {
112
+ title: 'wrapLanguageModel()',
113
+ description: 'Wraps a language model with middleware.',
114
+ href: '/docs/reference/ai-sdk-core/wrap-language-model',
115
+ },
116
+ {
117
+ title: 'wrapImageModel()',
118
+ description: 'Wraps an image model with middleware.',
119
+ href: '/docs/reference/ai-sdk-core/wrap-image-model',
120
+ },
121
+ {
122
+ title: 'extractReasoningMiddleware()',
123
+ description:
124
+ 'Extracts reasoning from the generated text and exposes it as a `reasoning` property on the result.',
125
+ href: '/docs/reference/ai-sdk-core/extract-reasoning-middleware',
126
+ },
127
+ {
128
+ title: 'extractJsonMiddleware()',
129
+ description:
130
+ 'Extracts JSON from text content by stripping markdown code fences.',
131
+ href: '/docs/reference/ai-sdk-core/extract-json-middleware',
132
+ },
133
+ {
134
+ title: 'simulateStreamingMiddleware()',
135
+ description:
136
+ 'Simulates streaming behavior with responses from non-streaming language models.',
137
+ href: '/docs/reference/ai-sdk-core/simulate-streaming-middleware',
138
+ },
139
+ {
140
+ title: 'defaultSettingsMiddleware()',
141
+ description: 'Applies default settings to a language model.',
142
+ href: '/docs/reference/ai-sdk-core/default-settings-middleware',
143
+ },
144
+ {
145
+ title: 'smoothStream()',
146
+ description: 'Smooths text and reasoning streaming output.',
147
+ href: '/docs/reference/ai-sdk-core/smooth-stream',
148
+ },
149
+ {
150
+ title: 'generateId()',
151
+ description: 'Helper function for generating unique IDs',
152
+ href: '/docs/reference/ai-sdk-core/generate-id',
153
+ },
154
+ {
155
+ title: 'createIdGenerator()',
156
+ description: 'Creates an ID generator',
157
+ href: '/docs/reference/ai-sdk-core/create-id-generator',
158
+ },
159
+ ]}
160
+ />
@@ -0,0 +1,493 @@
1
+ ---
2
+ title: useChat
3
+ description: API reference for the useChat hook.
4
+ ---
5
+
6
+ # `useChat()`
7
+
8
+ Allows you to easily create a conversational user interface for your chatbot application. It enables the streaming of chat messages from your AI provider, manages the chat state, and updates the UI automatically as new messages are received.
9
+
10
+ <Note>
11
+ The `useChat` API has been significantly updated in AI SDK 5.0. It now uses a
12
+ transport-based architecture and no longer manages input state internally. See
13
+ the [migration
14
+ guide](/docs/migration-guides/migration-guide-5-0#usechat-changes) for
15
+ details.
16
+ </Note>
17
+
18
+ ## Import
19
+
20
+ <Tabs items={['React', 'Svelte', 'Vue', 'Angular']}>
21
+ <Tab>
22
+ <Snippet
23
+ text="import { useChat } from '@ai-sdk/react'"
24
+ dark
25
+ prompt={false}
26
+ />
27
+ </Tab>
28
+ <Tab>
29
+ <Snippet text="import { Chat } from '@ai-sdk/svelte'" dark prompt={false} />
30
+ </Tab>
31
+ <Tab>
32
+ <Snippet text="import { Chat } from '@ai-sdk/vue'" dark prompt={false} />
33
+ </Tab>
34
+ <Tab>
35
+ <Snippet
36
+ text="import { Chat } from '@ai-sdk/angular'"
37
+ dark
38
+ prompt={false}
39
+ />
40
+ </Tab>
41
+ </Tabs>
42
+
43
+ ## API Signature
44
+
45
+ ### Parameters
46
+
47
+ <PropertiesTable
48
+ content={[
49
+ {
50
+ name: 'chat',
51
+ type: 'Chat<UIMessage>',
52
+ isOptional: true,
53
+ description:
54
+ 'An existing Chat instance to use. If provided, other parameters are ignored.',
55
+ },
56
+ {
57
+ name: 'transport',
58
+ type: 'ChatTransport',
59
+ isOptional: true,
60
+ description:
61
+ 'The transport to use for sending messages. Defaults to DefaultChatTransport with `/api/chat` endpoint.',
62
+ properties: [
63
+ {
64
+ type: 'DefaultChatTransport',
65
+ parameters: [
66
+ {
67
+ name: 'api',
68
+ type: "string = '/api/chat'",
69
+ isOptional: true,
70
+ description: 'The API endpoint for chat requests.',
71
+ },
72
+ {
73
+ name: 'credentials',
74
+ type: 'RequestCredentials',
75
+ isOptional: true,
76
+ description: 'The credentials mode for fetch requests.',
77
+ },
78
+ {
79
+ name: 'headers',
80
+ type: 'Record<string, string> | Headers',
81
+ isOptional: true,
82
+ description: 'HTTP headers to send with requests.',
83
+ },
84
+ {
85
+ name: 'body',
86
+ type: 'object',
87
+ isOptional: true,
88
+ description: 'Extra body object to send with requests.',
89
+ },
90
+ {
91
+ name: 'fetch',
92
+ type: 'FetchFunction',
93
+ isOptional: true,
94
+ description:
95
+ 'Custom fetch implementation. You can use it as a middleware to intercept requests, or to provide a custom fetch implementation for e.g. testing.',
96
+ },
97
+ {
98
+ name: 'prepareSendMessagesRequest',
99
+ type: 'PrepareSendMessagesRequest',
100
+ isOptional: true,
101
+ description:
102
+ 'A function to customize the request before chat API calls.',
103
+ properties: [
104
+ {
105
+ type: 'PrepareSendMessagesRequest',
106
+ parameters: [
107
+ {
108
+ name: 'options',
109
+ type: 'PrepareSendMessageRequestOptions',
110
+ description: 'Options for preparing the request',
111
+ properties: [
112
+ {
113
+ type: 'PrepareSendMessageRequestOptions',
114
+ parameters: [
115
+ {
116
+ name: 'id',
117
+ type: 'string',
118
+ description: 'The chat ID',
119
+ },
120
+ {
121
+ name: 'messages',
122
+ type: 'UIMessage[]',
123
+ description: 'Current messages in the chat',
124
+ },
125
+ {
126
+ name: 'requestMetadata',
127
+ type: 'unknown',
128
+ description: 'The request metadata',
129
+ },
130
+ {
131
+ name: 'body',
132
+ type: 'Record<string, any> | undefined',
133
+ description: 'The request body',
134
+ },
135
+ {
136
+ name: 'credentials',
137
+ type: 'RequestCredentials | undefined',
138
+ description: 'The request credentials',
139
+ },
140
+ {
141
+ name: 'headers',
142
+ type: 'HeadersInit | undefined',
143
+ description: 'The request headers',
144
+ },
145
+ {
146
+ name: 'api',
147
+ type: 'string',
148
+ description: `The API endpoint to use for the request. If not specified, it defaults to the transport’s API endpoint: /api/chat.`,
149
+ },
150
+ {
151
+ name: 'trigger',
152
+ type: "'submit-message' | 'regenerate-message'",
153
+ description: 'The trigger for the request',
154
+ },
155
+ {
156
+ name: 'messageId',
157
+ type: 'string | undefined',
158
+ description: 'The message ID if applicable',
159
+ },
160
+ ],
161
+ },
162
+ ],
163
+ },
164
+ ],
165
+ },
166
+ ],
167
+ },
168
+ {
169
+ name: 'prepareReconnectToStreamRequest',
170
+ type: 'PrepareReconnectToStreamRequest',
171
+ isOptional: true,
172
+ description:
173
+ 'A function to customize the request before reconnect API call.',
174
+ properties: [
175
+ {
176
+ type: 'PrepareReconnectToStreamRequest',
177
+ parameters: [
178
+ {
179
+ name: 'options',
180
+ type: 'PrepareReconnectToStreamRequestOptions',
181
+ description:
182
+ 'Options for preparing the reconnect request',
183
+ properties: [
184
+ {
185
+ type: 'PrepareReconnectToStreamRequestOptions',
186
+ parameters: [
187
+ {
188
+ name: 'id',
189
+ type: 'string',
190
+ description: 'The chat ID',
191
+ },
192
+ {
193
+ name: 'requestMetadata',
194
+ type: 'unknown',
195
+ description: 'The request metadata',
196
+ },
197
+ {
198
+ name: 'body',
199
+ type: 'Record<string, any> | undefined',
200
+ description: 'The request body',
201
+ },
202
+ {
203
+ name: 'credentials',
204
+ type: 'RequestCredentials | undefined',
205
+ description: 'The request credentials',
206
+ },
207
+ {
208
+ name: 'headers',
209
+ type: 'HeadersInit | undefined',
210
+ description: 'The request headers',
211
+ },
212
+ {
213
+ name: 'api',
214
+ type: 'string',
215
+ description: `The API endpoint to use for the request. If not specified, it defaults to the transport’s API endpoint combined with the chat ID: /api/chat/{chatId}/stream.`,
216
+ },
217
+ ],
218
+ },
219
+ ],
220
+ },
221
+ ],
222
+ },
223
+ ],
224
+ },
225
+ ],
226
+ },
227
+ ],
228
+ },
229
+ {
230
+ name: 'id',
231
+ type: 'string',
232
+ isOptional: true,
233
+ description:
234
+ 'A unique identifier for the chat. If not provided, a random one will be generated.',
235
+ },
236
+ {
237
+ name: 'messages',
238
+ type: 'UIMessage[]',
239
+ isOptional: true,
240
+ description: 'Initial chat messages to populate the conversation with.',
241
+ },
242
+ {
243
+ name: 'messageMetadataSchema',
244
+ type: 'FlexibleSchema',
245
+ isOptional: true,
246
+ description: 'Schema for validating message metadata.',
247
+ },
248
+ {
249
+ name: 'dataPartSchemas',
250
+ type: 'UIDataTypesToSchemas',
251
+ isOptional: true,
252
+ description: 'Schemas for validating data parts in messages.',
253
+ },
254
+ {
255
+ name: 'generateId',
256
+ type: 'IdGenerator',
257
+ isOptional: true,
258
+ description:
259
+ 'A function to generate unique IDs for messages and the chat. If not provided, the default AI SDK generateId is used.',
260
+ },
261
+ {
262
+ name: 'onToolCall',
263
+ type: '({toolCall: ToolCall}) => void | Promise<void>',
264
+ isOptional: true,
265
+ description:
266
+ 'Optional callback function that is invoked when a tool call is received. You must call addToolOutput to provide the tool result.',
267
+ },
268
+ {
269
+ name: 'sendAutomaticallyWhen',
270
+ type: '(options: { messages: UIMessage[] }) => boolean | PromiseLike<boolean>',
271
+ isOptional: true,
272
+ description:
273
+ 'When provided, this function will be called when the stream is finished or a tool call is added to determine if the current messages should be resubmitted. You can use the lastAssistantMessageIsCompleteWithToolCalls helper for common scenarios.',
274
+ },
275
+ {
276
+ name: 'onFinish',
277
+ type: '(options: OnFinishOptions) => void',
278
+ isOptional: true,
279
+ description: 'Called when the assistant response has finished streaming.',
280
+ properties: [
281
+ {
282
+ type: 'OnFinishOptions',
283
+ parameters: [
284
+ {
285
+ name: 'message',
286
+ type: 'UIMessage',
287
+ description: 'The response message.',
288
+ },
289
+ {
290
+ name: 'messages',
291
+ type: 'UIMessage[]',
292
+ description: 'All messages including the response message',
293
+ },
294
+ {
295
+ name: 'isAbort',
296
+ type: 'boolean',
297
+ description:
298
+ 'True when the request has been aborted by the client.',
299
+ },
300
+ {
301
+ name: 'isDisconnect',
302
+ type: 'boolean',
303
+ description:
304
+ 'True if the server has been disconnected, e.g. because of a network error.',
305
+ },
306
+ {
307
+ name: 'isError',
308
+ type: 'boolean',
309
+ description: `True if errors during streaming caused the response to stop early.`,
310
+ },
311
+ {
312
+ name: 'finishReason',
313
+ type: "'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other'",
314
+ isOptional: true,
315
+ description:
316
+ 'The reason why the model finished generating the response. Undefined if the finish reason was not provided by the model.',
317
+ },
318
+ ],
319
+ },
320
+ ],
321
+ },
322
+ {
323
+ name: 'onError',
324
+ type: '(error: Error) => void',
325
+ isOptional: true,
326
+ description:
327
+ 'Callback function to be called when an error is encountered.',
328
+ },
329
+ {
330
+ name: 'onData',
331
+ type: '(dataPart: DataUIPart) => void',
332
+ isOptional: true,
333
+ description:
334
+ 'Optional callback function that is called when a data part is received.',
335
+ },
336
+ {
337
+ name: 'experimental_throttle',
338
+ type: 'number',
339
+ isOptional: true,
340
+ description:
341
+ 'Custom throttle wait in ms for the chat messages and data updates. Default is undefined, which disables throttling.',
342
+ },
343
+ {
344
+ name: 'resume',
345
+ type: 'boolean',
346
+ isOptional: true,
347
+ description:
348
+ 'Whether to resume an ongoing chat generation stream. Defaults to false.',
349
+ },
350
+ ]}
351
+ />
352
+
353
+ ### Returns
354
+
355
+ <PropertiesTable
356
+ content={[
357
+ {
358
+ name: 'id',
359
+ type: 'string',
360
+ description: 'The id of the chat.',
361
+ },
362
+ {
363
+ name: 'messages',
364
+ type: 'UIMessage[]',
365
+ description: 'The current array of chat messages.',
366
+ properties: [
367
+ {
368
+ type: 'UIMessage',
369
+ parameters: [
370
+ {
371
+ name: 'id',
372
+ type: 'string',
373
+ description: 'A unique identifier for the message.',
374
+ },
375
+ {
376
+ name: 'role',
377
+ type: "'system' | 'user' | 'assistant'",
378
+ description: 'The role of the message.',
379
+ },
380
+ {
381
+ name: 'parts',
382
+ type: 'UIMessagePart[]',
383
+ description:
384
+ 'The parts of the message. Use this for rendering the message in the UI.',
385
+ },
386
+ {
387
+ name: 'metadata',
388
+ type: 'unknown',
389
+ isOptional: true,
390
+ description: 'The metadata of the message.',
391
+ },
392
+ ],
393
+ },
394
+ ],
395
+ },
396
+ {
397
+ name: 'status',
398
+ type: "'submitted' | 'streaming' | 'ready' | 'error'",
399
+ description:
400
+ 'The current status of the chat: "ready" (idle), "submitted" (request sent), "streaming" (receiving response), or "error" (request failed).',
401
+ },
402
+ {
403
+ name: 'error',
404
+ type: 'Error | undefined',
405
+ description: 'The error object if an error occurred.',
406
+ },
407
+ {
408
+ name: 'sendMessage',
409
+ type: '(message?: { text: string; files?: FileList | FileUIPart[]; metadata?; messageId?: string } | CreateUIMessage, options?: ChatRequestOptions) => Promise<void>',
410
+ description:
411
+ 'Function to send a new message to the chat. This will trigger an API call to generate the assistant response. If a messageId is provided, the message will be replaced (useful for editing). If no message is provided, resubmits the current messages (useful after adding tool outputs).',
412
+ properties: [
413
+ {
414
+ type: 'ChatRequestOptions',
415
+ parameters: [
416
+ {
417
+ name: 'headers',
418
+ type: 'Record<string, string> | Headers',
419
+ isOptional: true,
420
+ description:
421
+ 'Additional headers that should be to be passed to the API endpoint.',
422
+ },
423
+ {
424
+ name: 'body',
425
+ type: 'object',
426
+ isOptional: true,
427
+ description:
428
+ 'Additional body JSON properties that should be sent to the API endpoint.',
429
+ },
430
+ {
431
+ name: 'metadata',
432
+ type: 'unknown',
433
+ isOptional: true,
434
+ description: 'Additional data to be sent to the API endpoint.',
435
+ },
436
+ ],
437
+ },
438
+ ],
439
+ },
440
+ {
441
+ name: 'regenerate',
442
+ type: '(options?: { messageId?: string } & ChatRequestOptions) => Promise<void>',
443
+ description:
444
+ 'Function to regenerate the last assistant message or a specific message. If no messageId is provided, regenerates the last assistant message. Accepts ChatRequestOptions for headers, body, and metadata.',
445
+ },
446
+ {
447
+ name: 'stop',
448
+ type: '() => void',
449
+ description:
450
+ 'Function to abort the current streaming response from the assistant.',
451
+ },
452
+ {
453
+ name: 'clearError',
454
+ type: '() => void',
455
+ description: 'Clears the error state.',
456
+ },
457
+ {
458
+ name: 'resumeStream',
459
+ type: '() => void',
460
+ description:
461
+ 'Function to resume an interrupted streaming response. Useful when a network error occurs during streaming.',
462
+ },
463
+ {
464
+ name: 'addToolOutput',
465
+ type: '(options: { tool: string; toolCallId: string; output: unknown } | { tool: string; toolCallId: string; state: "output-error", errorText: string }) => void',
466
+ description:
467
+ 'Function to add a tool result to the chat. This will update the chat messages with the tool result. If sendAutomaticallyWhen is configured, it may trigger an automatic submission.',
468
+ },
469
+ {
470
+ name: 'addToolApprovalResponse',
471
+ type: '(options: { id: string; approved: boolean; reason?: string }) => void | PromiseLike<void>',
472
+ description:
473
+ 'Function to respond to a tool approval request. The id should match the approval id from the tool call. If sendAutomaticallyWhen is configured, it may trigger an automatic submission.',
474
+ },
475
+ {
476
+ name: 'addToolResult',
477
+ type: '(options: { tool: string; toolCallId: string; output: unknown } | { tool: string; toolCallId: string; state: "output-error", errorText: string }) => void',
478
+ description: 'Deprecated. Use addToolOutput instead.',
479
+ },
480
+ {
481
+ name: 'setMessages',
482
+ type: '(messages: UIMessage[] | ((messages: UIMessage[]) => UIMessage[])) => void',
483
+ description:
484
+ 'Function to update the messages state locally without triggering an API call. Useful for optimistic updates.',
485
+ },
486
+ ]}
487
+ />
488
+
489
+ ## Learn more
490
+
491
+ - [Chatbot](/docs/ai-sdk-ui/chatbot)
492
+ - [Chatbot with Tools](/docs/ai-sdk-ui/chatbot-tool-usage)
493
+ - [UIMessage](/docs/reference/ai-sdk-core/ui-message)