ai 6.0.30 → 6.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/CHANGELOG.md +13 -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 +7 -3
@@ -0,0 +1,333 @@
1
+ ---
2
+ title: DirectChatTransport
3
+ description: API Reference for the DirectChatTransport class.
4
+ ---
5
+
6
+ # `DirectChatTransport`
7
+
8
+ A transport that directly communicates with an [Agent](/docs/reference/ai-sdk-core/agent) in-process, without going through HTTP. This is useful for:
9
+
10
+ - Server-side rendering scenarios
11
+ - Testing without network
12
+ - Single-process applications
13
+
14
+ Unlike `DefaultChatTransport` which sends HTTP requests to an API endpoint, `DirectChatTransport` invokes the agent's `stream()` method directly and converts the result to a UI message stream.
15
+
16
+ ```tsx
17
+ import { useChat } from '@ai-sdk/react';
18
+ import { DirectChatTransport, ToolLoopAgent } from 'ai';
19
+ __PROVIDER_IMPORT__;
20
+
21
+ const agent = new ToolLoopAgent({
22
+ model: __MODEL__,
23
+ instructions: 'You are a helpful assistant.',
24
+ });
25
+
26
+ export default function Chat() {
27
+ const { messages, sendMessage, status } = useChat({
28
+ transport: new DirectChatTransport({ agent }),
29
+ });
30
+
31
+ // ... render chat UI
32
+ }
33
+ ```
34
+
35
+ ## Import
36
+
37
+ <Snippet text={`import { DirectChatTransport } from "ai"`} prompt={false} />
38
+
39
+ ## Constructor
40
+
41
+ ### Parameters
42
+
43
+ <PropertiesTable
44
+ content={[
45
+ {
46
+ name: 'agent',
47
+ type: 'Agent',
48
+ isRequired: true,
49
+ description:
50
+ 'The Agent instance to use for generating responses. The agent will be called with `stream()` for each message.',
51
+ },
52
+ {
53
+ name: 'options',
54
+ type: 'CALL_OPTIONS',
55
+ isOptional: true,
56
+ description:
57
+ 'Options to pass to the agent when calling it. These are agent-specific options defined when creating the agent.',
58
+ },
59
+ {
60
+ name: 'originalMessages',
61
+ type: 'UIMessage[]',
62
+ isOptional: true,
63
+ description:
64
+ 'The original messages. If provided, persistence mode is assumed, and a message ID is provided for the response message.',
65
+ },
66
+ {
67
+ name: 'generateMessageId',
68
+ type: 'IdGenerator',
69
+ isOptional: true,
70
+ description:
71
+ 'Generate a message ID for the response message. If not provided, no message ID will be set for the response message.',
72
+ },
73
+ {
74
+ name: 'messageMetadata',
75
+ type: '(options: { part: TextStreamPart }) => METADATA | undefined',
76
+ isOptional: true,
77
+ description:
78
+ 'Extracts message metadata that will be sent to the client. Called on `start` and `finish` events.',
79
+ },
80
+ {
81
+ name: 'sendReasoning',
82
+ type: 'boolean',
83
+ isOptional: true,
84
+ description: 'Send reasoning parts to the client. Defaults to true.',
85
+ },
86
+ {
87
+ name: 'sendSources',
88
+ type: 'boolean',
89
+ isOptional: true,
90
+ description: 'Send source parts to the client. Defaults to false.',
91
+ },
92
+ {
93
+ name: 'sendFinish',
94
+ type: 'boolean',
95
+ isOptional: true,
96
+ description:
97
+ 'Send the finish event to the client. Set to false if you are using additional streamText calls that send additional data. Defaults to true.',
98
+ },
99
+ {
100
+ name: 'sendStart',
101
+ type: 'boolean',
102
+ isOptional: true,
103
+ description:
104
+ 'Send the message start event to the client. Set to false if you are using additional streamText calls and the message start event has already been sent. Defaults to true.',
105
+ },
106
+ {
107
+ name: 'onError',
108
+ type: '(error: unknown) => string',
109
+ isOptional: true,
110
+ description:
111
+ "Process an error, e.g. to log it. Defaults to `() => 'An error occurred.'`. Return the error message to include in the data stream.",
112
+ },
113
+ ]}
114
+ />
115
+
116
+ ## Methods
117
+
118
+ ### `sendMessages()`
119
+
120
+ Sends messages to the agent and returns a streaming response. This method validates and converts UI messages to model messages, calls the agent's `stream()` method, and returns the result as a UI message stream.
121
+
122
+ ```ts
123
+ const stream = await transport.sendMessages({
124
+ chatId: 'chat-123',
125
+ trigger: 'submit-message',
126
+ messages: [...],
127
+ abortSignal: controller.signal,
128
+ });
129
+ ```
130
+
131
+ <PropertiesTable
132
+ content={[
133
+ {
134
+ name: 'chatId',
135
+ type: 'string',
136
+ description: 'Unique identifier for the chat session.',
137
+ },
138
+ {
139
+ name: 'trigger',
140
+ type: "'submit-message' | 'regenerate-message'",
141
+ description:
142
+ 'The type of message submission - either new message or regeneration.',
143
+ },
144
+ {
145
+ name: 'messageId',
146
+ type: 'string | undefined',
147
+ description:
148
+ 'ID of the message to regenerate, or undefined for new messages.',
149
+ },
150
+ {
151
+ name: 'messages',
152
+ type: 'UIMessage[]',
153
+ description:
154
+ 'Array of UI messages representing the conversation history.',
155
+ },
156
+ {
157
+ name: 'abortSignal',
158
+ type: 'AbortSignal | undefined',
159
+ description: 'Signal to abort the request if needed.',
160
+ },
161
+ {
162
+ name: 'headers',
163
+ type: 'Record<string, string> | Headers',
164
+ isOptional: true,
165
+ description: 'Additional headers (ignored by DirectChatTransport).',
166
+ },
167
+ {
168
+ name: 'body',
169
+ type: 'object',
170
+ isOptional: true,
171
+ description:
172
+ 'Additional body properties (ignored by DirectChatTransport).',
173
+ },
174
+ {
175
+ name: 'metadata',
176
+ type: 'unknown',
177
+ isOptional: true,
178
+ description: 'Custom metadata (ignored by DirectChatTransport).',
179
+ },
180
+ ]}
181
+ />
182
+
183
+ #### Returns
184
+
185
+ Returns a `Promise<ReadableStream<UIMessageChunk>>` - a stream of UI message chunks that can be processed by the chat UI.
186
+
187
+ ### `reconnectToStream()`
188
+
189
+ Direct transport does not support reconnection since there is no persistent server-side stream to reconnect to.
190
+
191
+ #### Returns
192
+
193
+ Always returns `Promise<null>`.
194
+
195
+ ## Examples
196
+
197
+ ### Basic Usage
198
+
199
+ ```tsx
200
+ import { useChat } from '@ai-sdk/react';
201
+ import { DirectChatTransport, ToolLoopAgent } from 'ai';
202
+ import { openai } from '@ai-sdk/openai';
203
+
204
+ const agent = new ToolLoopAgent({
205
+ model: openai('gpt-4o'),
206
+ instructions: 'You are a helpful assistant.',
207
+ });
208
+
209
+ export default function Chat() {
210
+ const { messages, sendMessage, status } = useChat({
211
+ transport: new DirectChatTransport({ agent }),
212
+ });
213
+
214
+ return (
215
+ <div>
216
+ {messages.map(message => (
217
+ <div key={message.id}>
218
+ {message.role === 'user' ? 'User: ' : 'AI: '}
219
+ {message.parts.map((part, index) =>
220
+ part.type === 'text' ? <span key={index}>{part.text}</span> : null,
221
+ )}
222
+ </div>
223
+ ))}
224
+ <button onClick={() => sendMessage({ text: 'Hello!' })}>Send</button>
225
+ </div>
226
+ );
227
+ }
228
+ ```
229
+
230
+ ### With Agent Tools
231
+
232
+ ```tsx
233
+ import { useChat } from '@ai-sdk/react';
234
+ import { DirectChatTransport, ToolLoopAgent, tool } from 'ai';
235
+ import { openai } from '@ai-sdk/openai';
236
+ import { z } from 'zod';
237
+
238
+ const weatherTool = tool({
239
+ description: 'Get the current weather',
240
+ parameters: z.object({
241
+ location: z.string().describe('The city and state'),
242
+ }),
243
+ execute: async ({ location }) => {
244
+ return `The weather in ${location} is sunny and 72°F.`;
245
+ },
246
+ });
247
+
248
+ const agent = new ToolLoopAgent({
249
+ model: openai('gpt-4o'),
250
+ instructions: 'You are a helpful assistant with access to weather data.',
251
+ tools: { weather: weatherTool },
252
+ });
253
+
254
+ export default function Chat() {
255
+ const { messages, sendMessage } = useChat({
256
+ transport: new DirectChatTransport({ agent }),
257
+ });
258
+
259
+ // ... render chat UI with tool results
260
+ }
261
+ ```
262
+
263
+ ### With Custom Agent Options
264
+
265
+ ```tsx
266
+ import { useChat } from '@ai-sdk/react';
267
+ import { DirectChatTransport, ToolLoopAgent } from 'ai';
268
+ import { openai } from '@ai-sdk/openai';
269
+
270
+ const agent = new ToolLoopAgent<{ userId: string }>({
271
+ model: openai('gpt-4o'),
272
+ prepareCall: ({ options, ...rest }) => ({
273
+ ...rest,
274
+ providerOptions: {
275
+ openai: { user: options.userId },
276
+ },
277
+ }),
278
+ });
279
+
280
+ export default function Chat({ userId }: { userId: string }) {
281
+ const { messages, sendMessage } = useChat({
282
+ transport: new DirectChatTransport({
283
+ agent,
284
+ options: { userId },
285
+ }),
286
+ });
287
+
288
+ // ... render chat UI
289
+ }
290
+ ```
291
+
292
+ ### With Reasoning
293
+
294
+ ```tsx
295
+ import { useChat } from '@ai-sdk/react';
296
+ import { DirectChatTransport, ToolLoopAgent } from 'ai';
297
+ import { openai } from '@ai-sdk/openai';
298
+
299
+ const agent = new ToolLoopAgent({
300
+ model: openai('o1-preview'),
301
+ });
302
+
303
+ export default function Chat() {
304
+ const { messages, sendMessage } = useChat({
305
+ transport: new DirectChatTransport({
306
+ agent,
307
+ sendReasoning: true,
308
+ }),
309
+ });
310
+
311
+ return (
312
+ <div>
313
+ {messages.map(message => (
314
+ <div key={message.id}>
315
+ {message.parts.map((part, index) => {
316
+ if (part.type === 'text') {
317
+ return <p key={index}>{part.text}</p>;
318
+ }
319
+ if (part.type === 'reasoning') {
320
+ return (
321
+ <pre key={index} style={{ opacity: 0.6 }}>
322
+ {part.text}
323
+ </pre>
324
+ );
325
+ }
326
+ return null;
327
+ })}
328
+ </div>
329
+ ))}
330
+ </div>
331
+ );
332
+ }
333
+ ```
@@ -0,0 +1,89 @@
1
+ ---
2
+ title: AI SDK UI
3
+ description: Reference documentation for the AI SDK UI
4
+ collapsed: true
5
+ ---
6
+
7
+ # AI SDK UI
8
+
9
+ [AI SDK UI](/docs/ai-sdk-ui) is designed to help you build interactive chat, completion, and assistant applications with ease.
10
+ It is framework-agnostic toolkit, streamlining the integration of advanced AI functionalities into your applications.
11
+
12
+ AI SDK UI contains the following hooks:
13
+
14
+ <IndexCards
15
+ cards={[
16
+ {
17
+ title: 'useChat',
18
+ description:
19
+ 'Use a hook to interact with language models in a chat interface.',
20
+ href: '/docs/reference/ai-sdk-ui/use-chat',
21
+ },
22
+ {
23
+ title: 'useCompletion',
24
+ description:
25
+ 'Use a hook to interact with language models in a completion interface.',
26
+ href: '/docs/reference/ai-sdk-ui/use-completion',
27
+ },
28
+ {
29
+ title: 'useObject',
30
+ description: 'Use a hook for consuming a streamed JSON objects.',
31
+ href: '/docs/reference/ai-sdk-ui/use-object',
32
+ },
33
+ {
34
+ title: 'convertToModelMessages',
35
+ description:
36
+ 'Convert useChat messages to ModelMessages for AI functions.',
37
+ href: '/docs/reference/ai-sdk-ui/convert-to-model-messages',
38
+ },
39
+ {
40
+ title: 'pruneMessages',
41
+ description: 'Prunes model messages from a list of model messages.',
42
+ href: '/docs/reference/ai-sdk-ui/prune-messages',
43
+ },
44
+ {
45
+ title: 'createUIMessageStream',
46
+ description:
47
+ 'Create a UI message stream to stream additional data to the client.',
48
+ href: '/docs/reference/ai-sdk-ui/create-ui-message-stream',
49
+ },
50
+ {
51
+ title: 'createUIMessageStreamResponse',
52
+ description:
53
+ 'Create a response object to stream UI messages to the client.',
54
+ href: '/docs/reference/ai-sdk-ui/create-ui-message-stream-response',
55
+ },
56
+ {
57
+ title: 'pipeUIMessageStreamToResponse',
58
+ description:
59
+ 'Pipe a UI message stream to a Node.js ServerResponse object.',
60
+ href: '/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response',
61
+ },
62
+ {
63
+ title: 'readUIMessageStream',
64
+ description:
65
+ 'Transform a stream of UIMessageChunk objects into an AsyncIterableStream of UIMessage objects.',
66
+ href: '/docs/reference/ai-sdk-ui/read-ui-message-stream',
67
+ },
68
+ ]}
69
+ />
70
+
71
+ ## UI Framework Support
72
+
73
+ AI SDK UI supports the following frameworks: [React](https://react.dev/), [Svelte](https://svelte.dev/), [Vue.js](https://vuejs.org/),
74
+ [Angular](https://angular.dev/), and [SolidJS](https://www.solidjs.com/).
75
+
76
+ Here is a comparison of the supported functions across these frameworks:
77
+
78
+ | | [useChat](/docs/reference/ai-sdk-ui/use-chat) | [useCompletion](/docs/reference/ai-sdk-ui/use-completion) | [useObject](/docs/reference/ai-sdk-ui/use-object) |
79
+ | --------------------------------------------------------------- | --------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------- |
80
+ | React `@ai-sdk/react` | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> |
81
+ | Vue.js `@ai-sdk/vue` | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> |
82
+ | Svelte `@ai-sdk/svelte` | <Check size={18} /> Chat | <Check size={18} /> Completion | <Check size={18} /> StructuredObject |
83
+ | Angular `@ai-sdk/angular` | <Check size={18} /> Chat | <Check size={18} /> Completion | <Check size={18} /> StructuredObject |
84
+ | [SolidJS](https://github.com/kodehort/ai-sdk-solid) (community) | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> |
85
+
86
+ <Note>
87
+ [Contributions](https://github.com/vercel/ai/blob/main/CONTRIBUTING.md) are
88
+ welcome to implement missing features for non-React frameworks.
89
+ </Note>