@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.
- package/CHANGELOG.md +7582 -0
- package/README.md +238 -0
- package/dist/index.d.mts +6751 -0
- package/dist/index.d.ts +6751 -0
- package/dist/index.js +14155 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +14127 -0
- package/dist/index.mjs.map +1 -0
- package/dist/internal/index.d.mts +324 -0
- package/dist/internal/index.d.ts +324 -0
- package/dist/internal/index.js +1352 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/internal/index.mjs +1336 -0
- package/dist/internal/index.mjs.map +1 -0
- package/dist/test/index.d.mts +265 -0
- package/dist/test/index.d.ts +265 -0
- package/dist/test/index.js +509 -0
- package/dist/test/index.js.map +1 -0
- package/dist/test/index.mjs +472 -0
- package/dist/test/index.mjs.map +1 -0
- package/docs/00-introduction/index.mdx +76 -0
- package/docs/02-foundations/01-overview.mdx +43 -0
- package/docs/02-foundations/02-providers-and-models.mdx +158 -0
- package/docs/02-foundations/03-prompts.mdx +616 -0
- package/docs/02-foundations/04-tools.mdx +251 -0
- package/docs/02-foundations/05-streaming.mdx +62 -0
- package/docs/02-foundations/06-provider-options.mdx +345 -0
- package/docs/02-foundations/index.mdx +49 -0
- package/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
- package/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
- package/docs/02-getting-started/02-nextjs-app-router.mdx +559 -0
- package/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
- package/docs/02-getting-started/04-svelte.mdx +627 -0
- package/docs/02-getting-started/05-nuxt.mdx +566 -0
- package/docs/02-getting-started/06-nodejs.mdx +512 -0
- package/docs/02-getting-started/07-expo.mdx +766 -0
- package/docs/02-getting-started/08-tanstack-start.mdx +583 -0
- package/docs/02-getting-started/09-coding-agents.mdx +179 -0
- package/docs/02-getting-started/index.mdx +44 -0
- package/docs/03-agents/01-overview.mdx +96 -0
- package/docs/03-agents/02-building-agents.mdx +449 -0
- package/docs/03-agents/03-workflows.mdx +386 -0
- package/docs/03-agents/04-loop-control.mdx +394 -0
- package/docs/03-agents/05-configuring-call-options.mdx +286 -0
- package/docs/03-agents/06-memory.mdx +222 -0
- package/docs/03-agents/06-subagents.mdx +362 -0
- package/docs/03-agents/index.mdx +46 -0
- package/docs/03-ai-sdk-core/01-overview.mdx +31 -0
- package/docs/03-ai-sdk-core/05-generating-text.mdx +707 -0
- package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +498 -0
- package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1144 -0
- package/docs/03-ai-sdk-core/16-mcp-tools.mdx +383 -0
- package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +146 -0
- package/docs/03-ai-sdk-core/25-settings.mdx +216 -0
- package/docs/03-ai-sdk-core/26-reasoning.mdx +190 -0
- package/docs/03-ai-sdk-core/30-embeddings.mdx +246 -0
- package/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
- package/docs/03-ai-sdk-core/35-image-generation.mdx +341 -0
- package/docs/03-ai-sdk-core/36-transcription.mdx +227 -0
- package/docs/03-ai-sdk-core/37-speech.mdx +169 -0
- package/docs/03-ai-sdk-core/38-video-generation.mdx +366 -0
- package/docs/03-ai-sdk-core/40-middleware.mdx +485 -0
- package/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
- package/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
- package/docs/03-ai-sdk-core/55-testing.mdx +219 -0
- package/docs/03-ai-sdk-core/60-telemetry.mdx +391 -0
- package/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
- package/docs/03-ai-sdk-core/65-event-listeners.mdx +1118 -0
- package/docs/03-ai-sdk-core/index.mdx +99 -0
- package/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
- package/docs/04-ai-sdk-ui/02-chatbot.mdx +1320 -0
- package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
- package/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
- package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
- package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
- package/docs/04-ai-sdk-ui/05-completion.mdx +181 -0
- package/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
- package/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
- package/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
- package/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
- package/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
- package/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
- package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +503 -0
- package/docs/04-ai-sdk-ui/index.mdx +64 -0
- package/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
- package/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
- package/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
- package/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
- package/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
- package/docs/05-ai-sdk-rsc/05-streaming-values.mdx +157 -0
- package/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
- package/docs/05-ai-sdk-rsc/08-error-handling.mdx +94 -0
- package/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
- package/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
- package/docs/05-ai-sdk-rsc/index.mdx +63 -0
- package/docs/06-advanced/01-prompt-engineering.mdx +96 -0
- package/docs/06-advanced/02-stopping-streams.mdx +184 -0
- package/docs/06-advanced/03-backpressure.mdx +173 -0
- package/docs/06-advanced/04-caching.mdx +169 -0
- package/docs/06-advanced/05-multiple-streamables.mdx +68 -0
- package/docs/06-advanced/06-rate-limiting.mdx +60 -0
- package/docs/06-advanced/07-rendering-ui-with-language-models.mdx +225 -0
- package/docs/06-advanced/08-model-as-router.mdx +120 -0
- package/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
- package/docs/06-advanced/09-sequential-generations.mdx +55 -0
- package/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
- package/docs/06-advanced/index.mdx +11 -0
- package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2785 -0
- package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3752 -0
- package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +332 -0
- package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +330 -0
- package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
- package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +251 -0
- package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +152 -0
- package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +221 -0
- package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +264 -0
- package/docs/07-reference/01-ai-sdk-core/15-agent.mdx +235 -0
- package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +973 -0
- package/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +154 -0
- package/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +173 -0
- package/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +150 -0
- package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +209 -0
- package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +223 -0
- package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +423 -0
- package/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
- package/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
- package/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
- package/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +58 -0
- package/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
- package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +435 -0
- package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +264 -0
- package/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
- package/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
- package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +198 -0
- package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +157 -0
- package/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
- package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
- package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
- package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +74 -0
- package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
- package/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
- package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
- package/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
- package/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
- package/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
- package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
- package/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
- package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
- package/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +30 -0
- package/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
- package/docs/07-reference/01-ai-sdk-core/92-default-generated-file.mdx +68 -0
- package/docs/07-reference/01-ai-sdk-core/index.mdx +160 -0
- package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +493 -0
- package/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +185 -0
- package/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +196 -0
- package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +231 -0
- package/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
- package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +162 -0
- package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +119 -0
- package/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +77 -0
- package/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
- package/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
- package/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
- package/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
- package/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
- package/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
- package/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
- package/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
- package/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +78 -0
- package/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +79 -0
- package/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
- package/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
- package/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
- package/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
- package/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
- package/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
- package/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +266 -0
- package/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +31 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +28 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-output-generated-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-video-generated-error.mdx +39 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-ui-message-stream-error.mdx +67 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/index.mdx +39 -0
- package/docs/07-reference/index.mdx +28 -0
- package/docs/08-migration-guides/00-versioning.mdx +46 -0
- package/docs/08-migration-guides/23-migration-guide-7-0.mdx +95 -0
- package/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
- package/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
- package/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
- package/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
- package/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
- package/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
- package/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
- package/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
- package/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
- package/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
- package/docs/08-migration-guides/index.mdx +22 -0
- package/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
- package/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
- package/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
- package/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
- package/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
- package/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
- package/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
- package/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
- package/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
- package/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
- package/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
- package/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
- package/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
- package/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
- package/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
- package/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
- package/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
- package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
- package/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
- package/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
- package/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
- package/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
- package/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
- package/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
- package/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +76 -0
- package/docs/09-troubleshooting/21-missing-tool-results-error.mdx +82 -0
- package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
- package/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
- package/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
- package/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
- package/docs/09-troubleshooting/70-high-memory-usage-with-images.mdx +108 -0
- package/docs/09-troubleshooting/index.mdx +11 -0
- package/internal.d.ts +1 -0
- package/package.json +120 -0
- package/src/agent/agent.ts +156 -0
- package/src/agent/create-agent-ui-stream-response.ts +61 -0
- package/src/agent/create-agent-ui-stream.ts +84 -0
- package/src/agent/index.ts +37 -0
- package/src/agent/infer-agent-tools.ts +7 -0
- package/src/agent/infer-agent-ui-message.ts +11 -0
- package/src/agent/pipe-agent-ui-stream-to-response.ts +64 -0
- package/src/agent/tool-loop-agent-settings.ts +244 -0
- package/src/agent/tool-loop-agent.ts +205 -0
- package/src/embed/embed-events.ts +109 -0
- package/src/embed/embed-many-result.ts +53 -0
- package/src/embed/embed-many.ts +484 -0
- package/src/embed/embed-result.ts +50 -0
- package/src/embed/embed.ts +294 -0
- package/src/embed/index.ts +5 -0
- package/src/error/index.ts +37 -0
- package/src/error/invalid-argument-error.ts +34 -0
- package/src/error/invalid-stream-part-error.ts +28 -0
- package/src/error/invalid-tool-approval-error.ts +26 -0
- package/src/error/invalid-tool-input-error.ts +33 -0
- package/src/error/missing-tool-result-error.ts +28 -0
- package/src/error/no-image-generated-error.ts +39 -0
- package/src/error/no-object-generated-error.ts +70 -0
- package/src/error/no-output-generated-error.ts +26 -0
- package/src/error/no-speech-generated-error.ts +28 -0
- package/src/error/no-such-tool-error.ts +35 -0
- package/src/error/no-transcript-generated-error.ts +30 -0
- package/src/error/no-video-generated-error.ts +57 -0
- package/src/error/tool-call-not-found-for-approval-error.ts +32 -0
- package/src/error/tool-call-repair-error.ts +30 -0
- package/src/error/ui-message-stream-error.ts +48 -0
- package/src/error/unsupported-model-version-error.ts +23 -0
- package/src/error/verify-no-object-generated-error.ts +27 -0
- package/src/generate-image/generate-image-result.ts +42 -0
- package/src/generate-image/generate-image.ts +361 -0
- package/src/generate-image/index.ts +18 -0
- package/src/generate-object/generate-object-result.ts +67 -0
- package/src/generate-object/generate-object.ts +514 -0
- package/src/generate-object/index.ts +9 -0
- package/src/generate-object/inject-json-instruction.ts +30 -0
- package/src/generate-object/output-strategy.ts +415 -0
- package/src/generate-object/parse-and-validate-object-result.ts +111 -0
- package/src/generate-object/repair-text.ts +12 -0
- package/src/generate-object/stream-object-result.ts +120 -0
- package/src/generate-object/stream-object.ts +984 -0
- package/src/generate-object/validate-object-generation-input.ts +144 -0
- package/src/generate-speech/generate-speech-result.ts +30 -0
- package/src/generate-speech/generate-speech.ts +191 -0
- package/src/generate-speech/generated-audio-file.ts +65 -0
- package/src/generate-speech/index.ts +3 -0
- package/src/generate-text/collect-tool-approvals.ts +116 -0
- package/src/generate-text/content-part.ts +31 -0
- package/src/generate-text/core-events.ts +390 -0
- package/src/generate-text/create-execute-tools-transformation.ts +168 -0
- package/src/generate-text/create-stream-text-part-transform.ts +229 -0
- package/src/generate-text/execute-tool-call.ts +190 -0
- package/src/generate-text/extract-reasoning-content.ts +17 -0
- package/src/generate-text/extract-text-content.ts +15 -0
- package/src/generate-text/generate-text-result.ts +168 -0
- package/src/generate-text/generate-text.ts +1411 -0
- package/src/generate-text/generated-file.ts +70 -0
- package/src/generate-text/index.ts +74 -0
- package/src/generate-text/is-approval-needed.ts +29 -0
- package/src/generate-text/output-utils.ts +23 -0
- package/src/generate-text/output.ts +590 -0
- package/src/generate-text/parse-tool-call.ts +188 -0
- package/src/generate-text/prepare-step.ts +103 -0
- package/src/generate-text/prune-messages.ts +167 -0
- package/src/generate-text/reasoning-output.ts +99 -0
- package/src/generate-text/reasoning.ts +10 -0
- package/src/generate-text/response-message.ts +10 -0
- package/src/generate-text/smooth-stream.ts +162 -0
- package/src/generate-text/step-result.ts +310 -0
- package/src/generate-text/stop-condition.ts +29 -0
- package/src/generate-text/stream-text-result.ts +536 -0
- package/src/generate-text/stream-text.ts +2693 -0
- package/src/generate-text/to-response-messages.ts +178 -0
- package/src/generate-text/tool-approval-request-output.ts +21 -0
- package/src/generate-text/tool-call-repair-function.ts +27 -0
- package/src/generate-text/tool-call.ts +47 -0
- package/src/generate-text/tool-error.ts +34 -0
- package/src/generate-text/tool-output-denied.ts +21 -0
- package/src/generate-text/tool-output.ts +7 -0
- package/src/generate-text/tool-result.ts +36 -0
- package/src/generate-text/tool-set.ts +14 -0
- package/src/generate-video/generate-video-result.ts +36 -0
- package/src/generate-video/generate-video.ts +402 -0
- package/src/generate-video/index.ts +3 -0
- package/src/global.ts +36 -0
- package/src/index.ts +49 -0
- package/src/logger/index.ts +6 -0
- package/src/logger/log-warnings.ts +140 -0
- package/src/middleware/add-tool-input-examples-middleware.ts +90 -0
- package/src/middleware/default-embedding-settings-middleware.ts +22 -0
- package/src/middleware/default-settings-middleware.ts +33 -0
- package/src/middleware/extract-json-middleware.ts +197 -0
- package/src/middleware/extract-reasoning-middleware.ts +249 -0
- package/src/middleware/index.ts +10 -0
- package/src/middleware/simulate-streaming-middleware.ts +79 -0
- package/src/middleware/wrap-embedding-model.ts +89 -0
- package/src/middleware/wrap-image-model.ts +92 -0
- package/src/middleware/wrap-language-model.ts +108 -0
- package/src/middleware/wrap-provider.ts +51 -0
- package/src/model/as-embedding-model-v3.ts +24 -0
- package/src/model/as-embedding-model-v4.ts +25 -0
- package/src/model/as-image-model-v3.ts +24 -0
- package/src/model/as-image-model-v4.ts +21 -0
- package/src/model/as-language-model-v3.ts +103 -0
- package/src/model/as-language-model-v4.ts +25 -0
- package/src/model/as-provider-v3.ts +36 -0
- package/src/model/as-provider-v4.ts +47 -0
- package/src/model/as-reranking-model-v4.ts +16 -0
- package/src/model/as-speech-model-v3.ts +24 -0
- package/src/model/as-speech-model-v4.ts +21 -0
- package/src/model/as-transcription-model-v3.ts +24 -0
- package/src/model/as-transcription-model-v4.ts +25 -0
- package/src/model/as-video-model-v4.ts +19 -0
- package/src/model/resolve-model.ts +172 -0
- package/src/prompt/call-settings.ts +177 -0
- package/src/prompt/content-part.ts +236 -0
- package/src/prompt/convert-to-language-model-prompt.ts +548 -0
- package/src/prompt/create-tool-model-output.ts +34 -0
- package/src/prompt/data-content.ts +134 -0
- package/src/prompt/index.ts +27 -0
- package/src/prompt/invalid-data-content-error.ts +29 -0
- package/src/prompt/invalid-message-role-error.ts +27 -0
- package/src/prompt/message-conversion-error.ts +28 -0
- package/src/prompt/message.ts +72 -0
- package/src/prompt/prepare-call-settings.ts +110 -0
- package/src/prompt/prepare-tools-and-tool-choice.ts +86 -0
- package/src/prompt/prompt.ts +43 -0
- package/src/prompt/split-data-url.ts +17 -0
- package/src/prompt/standardize-prompt.ts +99 -0
- package/src/prompt/wrap-gateway-error.ts +29 -0
- package/src/registry/custom-provider.ts +210 -0
- package/src/registry/index.ts +7 -0
- package/src/registry/no-such-provider-error.ts +41 -0
- package/src/registry/provider-registry.ts +331 -0
- package/src/rerank/index.ts +2 -0
- package/src/rerank/rerank-result.ts +70 -0
- package/src/rerank/rerank.ts +239 -0
- package/src/telemetry/assemble-operation-name.ts +21 -0
- package/src/telemetry/get-base-telemetry-attributes.ts +55 -0
- package/src/telemetry/get-global-telemetry-integration.ts +110 -0
- package/src/telemetry/get-tracer.ts +20 -0
- package/src/telemetry/index.ts +4 -0
- package/src/telemetry/noop-tracer.ts +69 -0
- package/src/telemetry/open-telemetry-integration.ts +537 -0
- package/src/telemetry/record-span.ts +75 -0
- package/src/telemetry/select-telemetry-attributes.ts +78 -0
- package/src/telemetry/stringify-for-telemetry.ts +33 -0
- package/src/telemetry/telemetry-integration-registry.ts +22 -0
- package/src/telemetry/telemetry-integration.ts +100 -0
- package/src/telemetry/telemetry-settings.ts +55 -0
- package/src/test/mock-embedding-model-v2.ts +35 -0
- package/src/test/mock-embedding-model-v3.ts +48 -0
- package/src/test/mock-embedding-model-v4.ts +48 -0
- package/src/test/mock-image-model-v2.ts +28 -0
- package/src/test/mock-image-model-v3.ts +28 -0
- package/src/test/mock-image-model-v4.ts +28 -0
- package/src/test/mock-language-model-v2.ts +72 -0
- package/src/test/mock-language-model-v3.ts +77 -0
- package/src/test/mock-language-model-v4.ts +77 -0
- package/src/test/mock-provider-v2.ts +68 -0
- package/src/test/mock-provider-v3.ts +80 -0
- package/src/test/mock-provider-v4.ts +80 -0
- package/src/test/mock-reranking-model-v3.ts +25 -0
- package/src/test/mock-reranking-model-v4.ts +25 -0
- package/src/test/mock-server-response.ts +69 -0
- package/src/test/mock-speech-model-v2.ts +24 -0
- package/src/test/mock-speech-model-v3.ts +24 -0
- package/src/test/mock-speech-model-v4.ts +24 -0
- package/src/test/mock-tracer.ts +156 -0
- package/src/test/mock-transcription-model-v2.ts +24 -0
- package/src/test/mock-transcription-model-v3.ts +24 -0
- package/src/test/mock-transcription-model-v4.ts +24 -0
- package/src/test/mock-values.ts +4 -0
- package/src/test/mock-video-model-v3.ts +28 -0
- package/src/test/mock-video-model-v4.ts +28 -0
- package/src/test/not-implemented.ts +3 -0
- package/src/text-stream/create-text-stream-response.ts +30 -0
- package/src/text-stream/index.ts +2 -0
- package/src/text-stream/pipe-text-stream-to-response.ts +38 -0
- package/src/transcribe/index.ts +2 -0
- package/src/transcribe/transcribe-result.ts +60 -0
- package/src/transcribe/transcribe.ts +187 -0
- package/src/types/embedding-model-middleware.ts +15 -0
- package/src/types/embedding-model.ts +20 -0
- package/src/types/image-model-middleware.ts +15 -0
- package/src/types/image-model-response-metadata.ts +16 -0
- package/src/types/image-model.ts +19 -0
- package/src/types/index.ts +29 -0
- package/src/types/json-value.ts +15 -0
- package/src/types/language-model-middleware.ts +15 -0
- package/src/types/language-model-request-metadata.ts +6 -0
- package/src/types/language-model-response-metadata.ts +21 -0
- package/src/types/language-model.ts +106 -0
- package/src/types/provider-metadata.ts +16 -0
- package/src/types/provider.ts +55 -0
- package/src/types/reranking-model.ts +6 -0
- package/src/types/speech-model-response-metadata.ts +21 -0
- package/src/types/speech-model.ts +10 -0
- package/src/types/transcription-model-response-metadata.ts +16 -0
- package/src/types/transcription-model.ts +14 -0
- package/src/types/usage.ts +200 -0
- package/src/types/video-model-response-metadata.ts +28 -0
- package/src/types/video-model.ts +15 -0
- package/src/types/warning.ts +7 -0
- package/src/ui/call-completion-api.ts +157 -0
- package/src/ui/chat-transport.ts +83 -0
- package/src/ui/chat.ts +786 -0
- package/src/ui/convert-file-list-to-file-ui-parts.ts +36 -0
- package/src/ui/convert-to-model-messages.ts +403 -0
- package/src/ui/default-chat-transport.ts +36 -0
- package/src/ui/direct-chat-transport.ts +117 -0
- package/src/ui/http-chat-transport.ts +273 -0
- package/src/ui/index.ts +76 -0
- package/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +44 -0
- package/src/ui/last-assistant-message-is-complete-with-tool-calls.ts +39 -0
- package/src/ui/process-text-stream.ts +16 -0
- package/src/ui/process-ui-message-stream.ts +858 -0
- package/src/ui/text-stream-chat-transport.ts +23 -0
- package/src/ui/transform-text-to-ui-message-stream.ts +27 -0
- package/src/ui/ui-messages.ts +602 -0
- package/src/ui/use-completion.ts +84 -0
- package/src/ui/validate-ui-messages.ts +521 -0
- package/src/ui-message-stream/create-ui-message-stream-response.ts +44 -0
- package/src/ui-message-stream/create-ui-message-stream.ts +145 -0
- package/src/ui-message-stream/get-response-ui-message-id.ts +35 -0
- package/src/ui-message-stream/handle-ui-message-stream-finish.ts +170 -0
- package/src/ui-message-stream/index.ts +14 -0
- package/src/ui-message-stream/json-to-sse-transform-stream.ts +17 -0
- package/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +51 -0
- package/src/ui-message-stream/read-ui-message-stream.ts +87 -0
- package/src/ui-message-stream/ui-message-chunks.ts +372 -0
- package/src/ui-message-stream/ui-message-stream-headers.ts +7 -0
- package/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +32 -0
- package/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +25 -0
- package/src/ui-message-stream/ui-message-stream-response-init.ts +14 -0
- package/src/ui-message-stream/ui-message-stream-writer.ts +24 -0
- package/src/util/as-array.ts +3 -0
- package/src/util/async-iterable-stream.ts +94 -0
- package/src/util/consume-stream.ts +31 -0
- package/src/util/cosine-similarity.ts +46 -0
- package/src/util/create-resolvable-promise.ts +30 -0
- package/src/util/create-stitchable-stream.ts +112 -0
- package/src/util/data-url.ts +17 -0
- package/src/util/deep-partial.ts +84 -0
- package/src/util/detect-media-type.ts +226 -0
- package/src/util/download/create-download.ts +13 -0
- package/src/util/download/download-function.ts +45 -0
- package/src/util/download/download.ts +74 -0
- package/src/util/error-handler.ts +1 -0
- package/src/util/fix-json.ts +401 -0
- package/src/util/get-potential-start-index.ts +39 -0
- package/src/util/index.ts +12 -0
- package/src/util/is-deep-equal-data.ts +48 -0
- package/src/util/is-non-empty-object.ts +5 -0
- package/src/util/job.ts +1 -0
- package/src/util/log-v2-compatibility-warning.ts +21 -0
- package/src/util/merge-abort-signals.ts +43 -0
- package/src/util/merge-objects.ts +79 -0
- package/src/util/notify.ts +22 -0
- package/src/util/now.ts +4 -0
- package/src/util/parse-partial-json.ts +30 -0
- package/src/util/prepare-headers.ts +14 -0
- package/src/util/prepare-retries.ts +47 -0
- package/src/util/retry-error.ts +41 -0
- package/src/util/retry-with-exponential-backoff.ts +154 -0
- package/src/util/serial-job-executor.ts +36 -0
- package/src/util/simulate-readable-stream.ts +39 -0
- package/src/util/split-array.ts +20 -0
- package/src/util/value-of.ts +65 -0
- package/src/util/write-to-server-response.ts +49 -0
- package/src/version.ts +5 -0
- package/test.d.ts +1 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { SystemModelMessage, ModelMessage, Tool } from '@ai-sdk/provider-utils';
|
|
2
|
+
export { convertAsyncIteratorToReadableStream } from '@ai-sdk/provider-utils';
|
|
3
|
+
import { LanguageModelV4Prompt, LanguageModelV4CallOptions, LanguageModelV4Usage, JSONObject, LanguageModelV4FunctionTool, LanguageModelV4ProviderTool, LanguageModelV4ToolChoice } from '@ai-sdk/provider';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Experimental. Can change in patch versions without warning.
|
|
7
|
+
*
|
|
8
|
+
* Download function. Called with the array of URLs and a boolean indicating
|
|
9
|
+
* whether the URL is supported by the model.
|
|
10
|
+
*
|
|
11
|
+
* The download function can decide for each URL:
|
|
12
|
+
* - to return null (which means that the URL should be passed to the model)
|
|
13
|
+
* - to download the asset and return the data (incl. retries, authentication, etc.)
|
|
14
|
+
*
|
|
15
|
+
* Should throw DownloadError if the download fails.
|
|
16
|
+
*
|
|
17
|
+
* Should return an array of objects sorted by the order of the requested downloads.
|
|
18
|
+
* For each object, the data should be a Uint8Array if the URL was downloaded.
|
|
19
|
+
* For each object, the mediaType should be the media type of the downloaded asset.
|
|
20
|
+
* For each object, the data should be null if the URL should be passed through as is.
|
|
21
|
+
*/
|
|
22
|
+
type DownloadFunction = (options: Array<{
|
|
23
|
+
url: URL;
|
|
24
|
+
isUrlSupportedByModel: boolean;
|
|
25
|
+
}>) => PromiseLike<Array<{
|
|
26
|
+
data: Uint8Array;
|
|
27
|
+
mediaType: string | undefined;
|
|
28
|
+
} | null>>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Prompt part of the AI function options.
|
|
32
|
+
* It contains a system message, a simple text prompt, or a list of messages.
|
|
33
|
+
*/
|
|
34
|
+
type Prompt = {
|
|
35
|
+
/**
|
|
36
|
+
* System message to include in the prompt. Can be used with `prompt` or `messages`.
|
|
37
|
+
*/
|
|
38
|
+
system?: string | SystemModelMessage | Array<SystemModelMessage>;
|
|
39
|
+
} & ({
|
|
40
|
+
/**
|
|
41
|
+
* A prompt. It can be either a text prompt or a list of messages.
|
|
42
|
+
*
|
|
43
|
+
* You can either use `prompt` or `messages` but not both.
|
|
44
|
+
*/
|
|
45
|
+
prompt: string | Array<ModelMessage>;
|
|
46
|
+
/**
|
|
47
|
+
* A list of messages.
|
|
48
|
+
*
|
|
49
|
+
* You can either use `prompt` or `messages` but not both.
|
|
50
|
+
*/
|
|
51
|
+
messages?: never;
|
|
52
|
+
} | {
|
|
53
|
+
/**
|
|
54
|
+
* A list of messages.
|
|
55
|
+
*
|
|
56
|
+
* You can either use `prompt` or `messages` but not both.
|
|
57
|
+
*/
|
|
58
|
+
messages: Array<ModelMessage>;
|
|
59
|
+
/**
|
|
60
|
+
* A prompt. It can be either a text prompt or a list of messages.
|
|
61
|
+
*
|
|
62
|
+
* You can either use `prompt` or `messages` but not both.
|
|
63
|
+
*/
|
|
64
|
+
prompt?: never;
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
type StandardizedPrompt = {
|
|
68
|
+
/**
|
|
69
|
+
* System message.
|
|
70
|
+
*/
|
|
71
|
+
system?: string | SystemModelMessage | Array<SystemModelMessage>;
|
|
72
|
+
/**
|
|
73
|
+
* Messages.
|
|
74
|
+
*/
|
|
75
|
+
messages: ModelMessage[];
|
|
76
|
+
};
|
|
77
|
+
declare function standardizePrompt(prompt: Prompt): Promise<StandardizedPrompt>;
|
|
78
|
+
|
|
79
|
+
declare function convertToLanguageModelPrompt({ prompt, supportedUrls, download, }: {
|
|
80
|
+
prompt: StandardizedPrompt;
|
|
81
|
+
supportedUrls: Record<string, RegExp[]>;
|
|
82
|
+
download: DownloadFunction | undefined;
|
|
83
|
+
}): Promise<LanguageModelV4Prompt>;
|
|
84
|
+
|
|
85
|
+
type ToolSet = Record<string, (Tool<never, never> | Tool<any, any> | Tool<any, never> | Tool<never, any>) & Pick<Tool<any, any>, 'execute' | 'onInputAvailable' | 'onInputStart' | 'onInputDelta' | 'needsApproval'>>;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Timeout configuration for API calls. Can be specified as:
|
|
89
|
+
* - A number representing milliseconds
|
|
90
|
+
* - An object with `totalMs` property for the total timeout in milliseconds
|
|
91
|
+
* - An object with `stepMs` property for the timeout of each step in milliseconds
|
|
92
|
+
* - An object with `chunkMs` property for the timeout between stream chunks (streaming only)
|
|
93
|
+
*/
|
|
94
|
+
type TimeoutConfiguration<TOOLS extends ToolSet> = number | {
|
|
95
|
+
totalMs?: number;
|
|
96
|
+
stepMs?: number;
|
|
97
|
+
chunkMs?: number;
|
|
98
|
+
toolMs?: number;
|
|
99
|
+
tools?: Partial<Record<`${keyof TOOLS & string}Ms`, number>>;
|
|
100
|
+
};
|
|
101
|
+
type CallSettings<TOOLS extends ToolSet> = {
|
|
102
|
+
/**
|
|
103
|
+
* Maximum number of tokens to generate.
|
|
104
|
+
*/
|
|
105
|
+
maxOutputTokens?: number;
|
|
106
|
+
/**
|
|
107
|
+
* Temperature setting. The range depends on the provider and model.
|
|
108
|
+
*
|
|
109
|
+
* It is recommended to set either `temperature` or `topP`, but not both.
|
|
110
|
+
*/
|
|
111
|
+
temperature?: number;
|
|
112
|
+
/**
|
|
113
|
+
* Nucleus sampling. This is a number between 0 and 1.
|
|
114
|
+
*
|
|
115
|
+
* E.g. 0.1 would mean that only tokens with the top 10% probability mass
|
|
116
|
+
* are considered.
|
|
117
|
+
*
|
|
118
|
+
* It is recommended to set either `temperature` or `topP`, but not both.
|
|
119
|
+
*/
|
|
120
|
+
topP?: number;
|
|
121
|
+
/**
|
|
122
|
+
* Only sample from the top K options for each subsequent token.
|
|
123
|
+
*
|
|
124
|
+
* Used to remove "long tail" low probability responses.
|
|
125
|
+
* Recommended for advanced use cases only. You usually only need to use temperature.
|
|
126
|
+
*/
|
|
127
|
+
topK?: number;
|
|
128
|
+
/**
|
|
129
|
+
* Presence penalty setting. It affects the likelihood of the model to
|
|
130
|
+
* repeat information that is already in the prompt.
|
|
131
|
+
*
|
|
132
|
+
* The presence penalty is a number between -1 (increase repetition)
|
|
133
|
+
* and 1 (maximum penalty, decrease repetition). 0 means no penalty.
|
|
134
|
+
*/
|
|
135
|
+
presencePenalty?: number;
|
|
136
|
+
/**
|
|
137
|
+
* Frequency penalty setting. It affects the likelihood of the model
|
|
138
|
+
* to repeatedly use the same words or phrases.
|
|
139
|
+
*
|
|
140
|
+
* The frequency penalty is a number between -1 (increase repetition)
|
|
141
|
+
* and 1 (maximum penalty, decrease repetition). 0 means no penalty.
|
|
142
|
+
*/
|
|
143
|
+
frequencyPenalty?: number;
|
|
144
|
+
/**
|
|
145
|
+
* Stop sequences.
|
|
146
|
+
* If set, the model will stop generating text when one of the stop sequences is generated.
|
|
147
|
+
* Providers may have limits on the number of stop sequences.
|
|
148
|
+
*/
|
|
149
|
+
stopSequences?: string[];
|
|
150
|
+
/**
|
|
151
|
+
* The seed (integer) to use for random sampling. If set and supported
|
|
152
|
+
* by the model, calls will generate deterministic results.
|
|
153
|
+
*/
|
|
154
|
+
seed?: number;
|
|
155
|
+
/**
|
|
156
|
+
* Reasoning effort level for the model. Controls how much reasoning
|
|
157
|
+
* the model performs before generating a response.
|
|
158
|
+
*
|
|
159
|
+
* Use `'provider-default'` to use the provider's default reasoning level.
|
|
160
|
+
* Use `'none'` to disable reasoning (if supported by the provider).
|
|
161
|
+
*/
|
|
162
|
+
reasoning?: LanguageModelV4CallOptions['reasoning'];
|
|
163
|
+
/**
|
|
164
|
+
* Maximum number of retries. Set to 0 to disable retries.
|
|
165
|
+
*
|
|
166
|
+
* @default 2
|
|
167
|
+
*/
|
|
168
|
+
maxRetries?: number;
|
|
169
|
+
/**
|
|
170
|
+
* Abort signal.
|
|
171
|
+
*/
|
|
172
|
+
abortSignal?: AbortSignal;
|
|
173
|
+
/**
|
|
174
|
+
* Timeout in milliseconds. The call will be aborted if it takes longer
|
|
175
|
+
* than the specified timeout. Can be used alongside abortSignal.
|
|
176
|
+
*
|
|
177
|
+
* Can be specified as a number (milliseconds) or as an object with `totalMs`.
|
|
178
|
+
*/
|
|
179
|
+
timeout?: TimeoutConfiguration<TOOLS>;
|
|
180
|
+
/**
|
|
181
|
+
* Additional HTTP headers to be sent with the request.
|
|
182
|
+
* Only applicable for HTTP-based providers.
|
|
183
|
+
*/
|
|
184
|
+
headers?: Record<string, string | undefined>;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
declare global {
|
|
188
|
+
/**
|
|
189
|
+
* Global interface that can be augmented by third-party packages to register custom model IDs.
|
|
190
|
+
*
|
|
191
|
+
* You can register model IDs in two ways:
|
|
192
|
+
*
|
|
193
|
+
* 1. Register based on Model IDs from a provider package:
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* import { openai } from '@ai-sdk/openai';
|
|
197
|
+
* type OpenAIResponsesModelId = Parameters<typeof openai>[0];
|
|
198
|
+
*
|
|
199
|
+
* declare global {
|
|
200
|
+
* interface RegisteredProviderModels {
|
|
201
|
+
* openai: OpenAIResponsesModelId;
|
|
202
|
+
* }
|
|
203
|
+
* }
|
|
204
|
+
* ```
|
|
205
|
+
*
|
|
206
|
+
* 2. Register individual model IDs directly as keys:
|
|
207
|
+
* @example
|
|
208
|
+
* ```typescript
|
|
209
|
+
* declare global {
|
|
210
|
+
* interface RegisteredProviderModels {
|
|
211
|
+
* 'my-provider:my-model': any;
|
|
212
|
+
* 'my-provider:another-model': any;
|
|
213
|
+
* }
|
|
214
|
+
* }
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
interface RegisteredProviderModels {
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Tool choice for the generation. It supports the following settings:
|
|
222
|
+
*
|
|
223
|
+
* - `auto` (default): the model can choose whether and which tools to call.
|
|
224
|
+
* - `required`: the model must call a tool. It can choose which tool to call.
|
|
225
|
+
* - `none`: the model must not call tools
|
|
226
|
+
* - `{ type: 'tool', toolName: string (typed) }`: the model must call the specified tool
|
|
227
|
+
*/
|
|
228
|
+
type ToolChoice<TOOLS extends Record<string, unknown>> = 'auto' | 'none' | 'required' | {
|
|
229
|
+
type: 'tool';
|
|
230
|
+
toolName: Extract<keyof TOOLS, string>;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Represents the number of tokens used in a prompt and completion.
|
|
235
|
+
*/
|
|
236
|
+
type LanguageModelUsage = {
|
|
237
|
+
/**
|
|
238
|
+
* The total number of input (prompt) tokens used.
|
|
239
|
+
*/
|
|
240
|
+
inputTokens: number | undefined;
|
|
241
|
+
/**
|
|
242
|
+
* Detailed information about the input tokens.
|
|
243
|
+
*/
|
|
244
|
+
inputTokenDetails: {
|
|
245
|
+
/**
|
|
246
|
+
* The number of non-cached input (prompt) tokens used.
|
|
247
|
+
*/
|
|
248
|
+
noCacheTokens: number | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* The number of cached input (prompt) tokens read.
|
|
251
|
+
*/
|
|
252
|
+
cacheReadTokens: number | undefined;
|
|
253
|
+
/**
|
|
254
|
+
* The number of cached input (prompt) tokens written.
|
|
255
|
+
*/
|
|
256
|
+
cacheWriteTokens: number | undefined;
|
|
257
|
+
};
|
|
258
|
+
/**
|
|
259
|
+
* The number of total output (completion) tokens used.
|
|
260
|
+
*/
|
|
261
|
+
outputTokens: number | undefined;
|
|
262
|
+
/**
|
|
263
|
+
* Detailed information about the output tokens.
|
|
264
|
+
*/
|
|
265
|
+
outputTokenDetails: {
|
|
266
|
+
/**
|
|
267
|
+
* The number of text tokens used.
|
|
268
|
+
*/
|
|
269
|
+
textTokens: number | undefined;
|
|
270
|
+
/**
|
|
271
|
+
* The number of reasoning tokens used.
|
|
272
|
+
*/
|
|
273
|
+
reasoningTokens: number | undefined;
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* The total number of tokens used.
|
|
277
|
+
*/
|
|
278
|
+
totalTokens: number | undefined;
|
|
279
|
+
/**
|
|
280
|
+
* @deprecated Use outputTokenDetails.reasoningTokens instead.
|
|
281
|
+
*/
|
|
282
|
+
reasoningTokens?: number | undefined;
|
|
283
|
+
/**
|
|
284
|
+
* @deprecated Use inputTokenDetails.cacheReadTokens instead.
|
|
285
|
+
*/
|
|
286
|
+
cachedInputTokens?: number | undefined;
|
|
287
|
+
/**
|
|
288
|
+
* Raw usage information from the provider.
|
|
289
|
+
*
|
|
290
|
+
* This is the usage information in the shape that the provider returns.
|
|
291
|
+
* It can include additional information that is not part of the standard usage information.
|
|
292
|
+
*/
|
|
293
|
+
raw?: JSONObject;
|
|
294
|
+
};
|
|
295
|
+
declare function asLanguageModelUsage(usage: LanguageModelV4Usage): LanguageModelUsage;
|
|
296
|
+
|
|
297
|
+
declare function prepareToolsAndToolChoice<TOOLS extends ToolSet>({ tools, toolChoice, activeTools, }: {
|
|
298
|
+
tools: TOOLS | undefined;
|
|
299
|
+
toolChoice: ToolChoice<TOOLS> | undefined;
|
|
300
|
+
activeTools: Array<keyof TOOLS> | undefined;
|
|
301
|
+
}): Promise<{
|
|
302
|
+
tools: Array<LanguageModelV4FunctionTool | LanguageModelV4ProviderTool> | undefined;
|
|
303
|
+
toolChoice: LanguageModelV4ToolChoice | undefined;
|
|
304
|
+
}>;
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Validates call settings and returns a new object with limited values.
|
|
308
|
+
*/
|
|
309
|
+
declare function prepareCallSettings({ maxOutputTokens, temperature, topP, topK, presencePenalty, frequencyPenalty, seed, stopSequences, reasoning, }: Omit<CallSettings<any>, 'abortSignal' | 'headers' | 'maxRetries'>): Omit<CallSettings<any>, 'abortSignal' | 'headers' | 'maxRetries'>;
|
|
310
|
+
|
|
311
|
+
type RetryFunction = <OUTPUT>(fn: () => PromiseLike<OUTPUT>) => PromiseLike<OUTPUT>;
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Validate and prepare retries.
|
|
315
|
+
*/
|
|
316
|
+
declare function prepareRetries({ maxRetries, abortSignal, }: {
|
|
317
|
+
maxRetries: number | undefined;
|
|
318
|
+
abortSignal: AbortSignal | undefined;
|
|
319
|
+
}): {
|
|
320
|
+
maxRetries: number;
|
|
321
|
+
retry: RetryFunction;
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
export { asLanguageModelUsage, convertToLanguageModelPrompt, prepareCallSettings, prepareRetries, prepareToolsAndToolChoice, standardizePrompt };
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { SystemModelMessage, ModelMessage, Tool } from '@ai-sdk/provider-utils';
|
|
2
|
+
export { convertAsyncIteratorToReadableStream } from '@ai-sdk/provider-utils';
|
|
3
|
+
import { LanguageModelV4Prompt, LanguageModelV4CallOptions, LanguageModelV4Usage, JSONObject, LanguageModelV4FunctionTool, LanguageModelV4ProviderTool, LanguageModelV4ToolChoice } from '@ai-sdk/provider';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Experimental. Can change in patch versions without warning.
|
|
7
|
+
*
|
|
8
|
+
* Download function. Called with the array of URLs and a boolean indicating
|
|
9
|
+
* whether the URL is supported by the model.
|
|
10
|
+
*
|
|
11
|
+
* The download function can decide for each URL:
|
|
12
|
+
* - to return null (which means that the URL should be passed to the model)
|
|
13
|
+
* - to download the asset and return the data (incl. retries, authentication, etc.)
|
|
14
|
+
*
|
|
15
|
+
* Should throw DownloadError if the download fails.
|
|
16
|
+
*
|
|
17
|
+
* Should return an array of objects sorted by the order of the requested downloads.
|
|
18
|
+
* For each object, the data should be a Uint8Array if the URL was downloaded.
|
|
19
|
+
* For each object, the mediaType should be the media type of the downloaded asset.
|
|
20
|
+
* For each object, the data should be null if the URL should be passed through as is.
|
|
21
|
+
*/
|
|
22
|
+
type DownloadFunction = (options: Array<{
|
|
23
|
+
url: URL;
|
|
24
|
+
isUrlSupportedByModel: boolean;
|
|
25
|
+
}>) => PromiseLike<Array<{
|
|
26
|
+
data: Uint8Array;
|
|
27
|
+
mediaType: string | undefined;
|
|
28
|
+
} | null>>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Prompt part of the AI function options.
|
|
32
|
+
* It contains a system message, a simple text prompt, or a list of messages.
|
|
33
|
+
*/
|
|
34
|
+
type Prompt = {
|
|
35
|
+
/**
|
|
36
|
+
* System message to include in the prompt. Can be used with `prompt` or `messages`.
|
|
37
|
+
*/
|
|
38
|
+
system?: string | SystemModelMessage | Array<SystemModelMessage>;
|
|
39
|
+
} & ({
|
|
40
|
+
/**
|
|
41
|
+
* A prompt. It can be either a text prompt or a list of messages.
|
|
42
|
+
*
|
|
43
|
+
* You can either use `prompt` or `messages` but not both.
|
|
44
|
+
*/
|
|
45
|
+
prompt: string | Array<ModelMessage>;
|
|
46
|
+
/**
|
|
47
|
+
* A list of messages.
|
|
48
|
+
*
|
|
49
|
+
* You can either use `prompt` or `messages` but not both.
|
|
50
|
+
*/
|
|
51
|
+
messages?: never;
|
|
52
|
+
} | {
|
|
53
|
+
/**
|
|
54
|
+
* A list of messages.
|
|
55
|
+
*
|
|
56
|
+
* You can either use `prompt` or `messages` but not both.
|
|
57
|
+
*/
|
|
58
|
+
messages: Array<ModelMessage>;
|
|
59
|
+
/**
|
|
60
|
+
* A prompt. It can be either a text prompt or a list of messages.
|
|
61
|
+
*
|
|
62
|
+
* You can either use `prompt` or `messages` but not both.
|
|
63
|
+
*/
|
|
64
|
+
prompt?: never;
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
type StandardizedPrompt = {
|
|
68
|
+
/**
|
|
69
|
+
* System message.
|
|
70
|
+
*/
|
|
71
|
+
system?: string | SystemModelMessage | Array<SystemModelMessage>;
|
|
72
|
+
/**
|
|
73
|
+
* Messages.
|
|
74
|
+
*/
|
|
75
|
+
messages: ModelMessage[];
|
|
76
|
+
};
|
|
77
|
+
declare function standardizePrompt(prompt: Prompt): Promise<StandardizedPrompt>;
|
|
78
|
+
|
|
79
|
+
declare function convertToLanguageModelPrompt({ prompt, supportedUrls, download, }: {
|
|
80
|
+
prompt: StandardizedPrompt;
|
|
81
|
+
supportedUrls: Record<string, RegExp[]>;
|
|
82
|
+
download: DownloadFunction | undefined;
|
|
83
|
+
}): Promise<LanguageModelV4Prompt>;
|
|
84
|
+
|
|
85
|
+
type ToolSet = Record<string, (Tool<never, never> | Tool<any, any> | Tool<any, never> | Tool<never, any>) & Pick<Tool<any, any>, 'execute' | 'onInputAvailable' | 'onInputStart' | 'onInputDelta' | 'needsApproval'>>;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Timeout configuration for API calls. Can be specified as:
|
|
89
|
+
* - A number representing milliseconds
|
|
90
|
+
* - An object with `totalMs` property for the total timeout in milliseconds
|
|
91
|
+
* - An object with `stepMs` property for the timeout of each step in milliseconds
|
|
92
|
+
* - An object with `chunkMs` property for the timeout between stream chunks (streaming only)
|
|
93
|
+
*/
|
|
94
|
+
type TimeoutConfiguration<TOOLS extends ToolSet> = number | {
|
|
95
|
+
totalMs?: number;
|
|
96
|
+
stepMs?: number;
|
|
97
|
+
chunkMs?: number;
|
|
98
|
+
toolMs?: number;
|
|
99
|
+
tools?: Partial<Record<`${keyof TOOLS & string}Ms`, number>>;
|
|
100
|
+
};
|
|
101
|
+
type CallSettings<TOOLS extends ToolSet> = {
|
|
102
|
+
/**
|
|
103
|
+
* Maximum number of tokens to generate.
|
|
104
|
+
*/
|
|
105
|
+
maxOutputTokens?: number;
|
|
106
|
+
/**
|
|
107
|
+
* Temperature setting. The range depends on the provider and model.
|
|
108
|
+
*
|
|
109
|
+
* It is recommended to set either `temperature` or `topP`, but not both.
|
|
110
|
+
*/
|
|
111
|
+
temperature?: number;
|
|
112
|
+
/**
|
|
113
|
+
* Nucleus sampling. This is a number between 0 and 1.
|
|
114
|
+
*
|
|
115
|
+
* E.g. 0.1 would mean that only tokens with the top 10% probability mass
|
|
116
|
+
* are considered.
|
|
117
|
+
*
|
|
118
|
+
* It is recommended to set either `temperature` or `topP`, but not both.
|
|
119
|
+
*/
|
|
120
|
+
topP?: number;
|
|
121
|
+
/**
|
|
122
|
+
* Only sample from the top K options for each subsequent token.
|
|
123
|
+
*
|
|
124
|
+
* Used to remove "long tail" low probability responses.
|
|
125
|
+
* Recommended for advanced use cases only. You usually only need to use temperature.
|
|
126
|
+
*/
|
|
127
|
+
topK?: number;
|
|
128
|
+
/**
|
|
129
|
+
* Presence penalty setting. It affects the likelihood of the model to
|
|
130
|
+
* repeat information that is already in the prompt.
|
|
131
|
+
*
|
|
132
|
+
* The presence penalty is a number between -1 (increase repetition)
|
|
133
|
+
* and 1 (maximum penalty, decrease repetition). 0 means no penalty.
|
|
134
|
+
*/
|
|
135
|
+
presencePenalty?: number;
|
|
136
|
+
/**
|
|
137
|
+
* Frequency penalty setting. It affects the likelihood of the model
|
|
138
|
+
* to repeatedly use the same words or phrases.
|
|
139
|
+
*
|
|
140
|
+
* The frequency penalty is a number between -1 (increase repetition)
|
|
141
|
+
* and 1 (maximum penalty, decrease repetition). 0 means no penalty.
|
|
142
|
+
*/
|
|
143
|
+
frequencyPenalty?: number;
|
|
144
|
+
/**
|
|
145
|
+
* Stop sequences.
|
|
146
|
+
* If set, the model will stop generating text when one of the stop sequences is generated.
|
|
147
|
+
* Providers may have limits on the number of stop sequences.
|
|
148
|
+
*/
|
|
149
|
+
stopSequences?: string[];
|
|
150
|
+
/**
|
|
151
|
+
* The seed (integer) to use for random sampling. If set and supported
|
|
152
|
+
* by the model, calls will generate deterministic results.
|
|
153
|
+
*/
|
|
154
|
+
seed?: number;
|
|
155
|
+
/**
|
|
156
|
+
* Reasoning effort level for the model. Controls how much reasoning
|
|
157
|
+
* the model performs before generating a response.
|
|
158
|
+
*
|
|
159
|
+
* Use `'provider-default'` to use the provider's default reasoning level.
|
|
160
|
+
* Use `'none'` to disable reasoning (if supported by the provider).
|
|
161
|
+
*/
|
|
162
|
+
reasoning?: LanguageModelV4CallOptions['reasoning'];
|
|
163
|
+
/**
|
|
164
|
+
* Maximum number of retries. Set to 0 to disable retries.
|
|
165
|
+
*
|
|
166
|
+
* @default 2
|
|
167
|
+
*/
|
|
168
|
+
maxRetries?: number;
|
|
169
|
+
/**
|
|
170
|
+
* Abort signal.
|
|
171
|
+
*/
|
|
172
|
+
abortSignal?: AbortSignal;
|
|
173
|
+
/**
|
|
174
|
+
* Timeout in milliseconds. The call will be aborted if it takes longer
|
|
175
|
+
* than the specified timeout. Can be used alongside abortSignal.
|
|
176
|
+
*
|
|
177
|
+
* Can be specified as a number (milliseconds) or as an object with `totalMs`.
|
|
178
|
+
*/
|
|
179
|
+
timeout?: TimeoutConfiguration<TOOLS>;
|
|
180
|
+
/**
|
|
181
|
+
* Additional HTTP headers to be sent with the request.
|
|
182
|
+
* Only applicable for HTTP-based providers.
|
|
183
|
+
*/
|
|
184
|
+
headers?: Record<string, string | undefined>;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
declare global {
|
|
188
|
+
/**
|
|
189
|
+
* Global interface that can be augmented by third-party packages to register custom model IDs.
|
|
190
|
+
*
|
|
191
|
+
* You can register model IDs in two ways:
|
|
192
|
+
*
|
|
193
|
+
* 1. Register based on Model IDs from a provider package:
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* import { openai } from '@ai-sdk/openai';
|
|
197
|
+
* type OpenAIResponsesModelId = Parameters<typeof openai>[0];
|
|
198
|
+
*
|
|
199
|
+
* declare global {
|
|
200
|
+
* interface RegisteredProviderModels {
|
|
201
|
+
* openai: OpenAIResponsesModelId;
|
|
202
|
+
* }
|
|
203
|
+
* }
|
|
204
|
+
* ```
|
|
205
|
+
*
|
|
206
|
+
* 2. Register individual model IDs directly as keys:
|
|
207
|
+
* @example
|
|
208
|
+
* ```typescript
|
|
209
|
+
* declare global {
|
|
210
|
+
* interface RegisteredProviderModels {
|
|
211
|
+
* 'my-provider:my-model': any;
|
|
212
|
+
* 'my-provider:another-model': any;
|
|
213
|
+
* }
|
|
214
|
+
* }
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
interface RegisteredProviderModels {
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Tool choice for the generation. It supports the following settings:
|
|
222
|
+
*
|
|
223
|
+
* - `auto` (default): the model can choose whether and which tools to call.
|
|
224
|
+
* - `required`: the model must call a tool. It can choose which tool to call.
|
|
225
|
+
* - `none`: the model must not call tools
|
|
226
|
+
* - `{ type: 'tool', toolName: string (typed) }`: the model must call the specified tool
|
|
227
|
+
*/
|
|
228
|
+
type ToolChoice<TOOLS extends Record<string, unknown>> = 'auto' | 'none' | 'required' | {
|
|
229
|
+
type: 'tool';
|
|
230
|
+
toolName: Extract<keyof TOOLS, string>;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Represents the number of tokens used in a prompt and completion.
|
|
235
|
+
*/
|
|
236
|
+
type LanguageModelUsage = {
|
|
237
|
+
/**
|
|
238
|
+
* The total number of input (prompt) tokens used.
|
|
239
|
+
*/
|
|
240
|
+
inputTokens: number | undefined;
|
|
241
|
+
/**
|
|
242
|
+
* Detailed information about the input tokens.
|
|
243
|
+
*/
|
|
244
|
+
inputTokenDetails: {
|
|
245
|
+
/**
|
|
246
|
+
* The number of non-cached input (prompt) tokens used.
|
|
247
|
+
*/
|
|
248
|
+
noCacheTokens: number | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* The number of cached input (prompt) tokens read.
|
|
251
|
+
*/
|
|
252
|
+
cacheReadTokens: number | undefined;
|
|
253
|
+
/**
|
|
254
|
+
* The number of cached input (prompt) tokens written.
|
|
255
|
+
*/
|
|
256
|
+
cacheWriteTokens: number | undefined;
|
|
257
|
+
};
|
|
258
|
+
/**
|
|
259
|
+
* The number of total output (completion) tokens used.
|
|
260
|
+
*/
|
|
261
|
+
outputTokens: number | undefined;
|
|
262
|
+
/**
|
|
263
|
+
* Detailed information about the output tokens.
|
|
264
|
+
*/
|
|
265
|
+
outputTokenDetails: {
|
|
266
|
+
/**
|
|
267
|
+
* The number of text tokens used.
|
|
268
|
+
*/
|
|
269
|
+
textTokens: number | undefined;
|
|
270
|
+
/**
|
|
271
|
+
* The number of reasoning tokens used.
|
|
272
|
+
*/
|
|
273
|
+
reasoningTokens: number | undefined;
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* The total number of tokens used.
|
|
277
|
+
*/
|
|
278
|
+
totalTokens: number | undefined;
|
|
279
|
+
/**
|
|
280
|
+
* @deprecated Use outputTokenDetails.reasoningTokens instead.
|
|
281
|
+
*/
|
|
282
|
+
reasoningTokens?: number | undefined;
|
|
283
|
+
/**
|
|
284
|
+
* @deprecated Use inputTokenDetails.cacheReadTokens instead.
|
|
285
|
+
*/
|
|
286
|
+
cachedInputTokens?: number | undefined;
|
|
287
|
+
/**
|
|
288
|
+
* Raw usage information from the provider.
|
|
289
|
+
*
|
|
290
|
+
* This is the usage information in the shape that the provider returns.
|
|
291
|
+
* It can include additional information that is not part of the standard usage information.
|
|
292
|
+
*/
|
|
293
|
+
raw?: JSONObject;
|
|
294
|
+
};
|
|
295
|
+
declare function asLanguageModelUsage(usage: LanguageModelV4Usage): LanguageModelUsage;
|
|
296
|
+
|
|
297
|
+
declare function prepareToolsAndToolChoice<TOOLS extends ToolSet>({ tools, toolChoice, activeTools, }: {
|
|
298
|
+
tools: TOOLS | undefined;
|
|
299
|
+
toolChoice: ToolChoice<TOOLS> | undefined;
|
|
300
|
+
activeTools: Array<keyof TOOLS> | undefined;
|
|
301
|
+
}): Promise<{
|
|
302
|
+
tools: Array<LanguageModelV4FunctionTool | LanguageModelV4ProviderTool> | undefined;
|
|
303
|
+
toolChoice: LanguageModelV4ToolChoice | undefined;
|
|
304
|
+
}>;
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Validates call settings and returns a new object with limited values.
|
|
308
|
+
*/
|
|
309
|
+
declare function prepareCallSettings({ maxOutputTokens, temperature, topP, topK, presencePenalty, frequencyPenalty, seed, stopSequences, reasoning, }: Omit<CallSettings<any>, 'abortSignal' | 'headers' | 'maxRetries'>): Omit<CallSettings<any>, 'abortSignal' | 'headers' | 'maxRetries'>;
|
|
310
|
+
|
|
311
|
+
type RetryFunction = <OUTPUT>(fn: () => PromiseLike<OUTPUT>) => PromiseLike<OUTPUT>;
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Validate and prepare retries.
|
|
315
|
+
*/
|
|
316
|
+
declare function prepareRetries({ maxRetries, abortSignal, }: {
|
|
317
|
+
maxRetries: number | undefined;
|
|
318
|
+
abortSignal: AbortSignal | undefined;
|
|
319
|
+
}): {
|
|
320
|
+
maxRetries: number;
|
|
321
|
+
retry: RetryFunction;
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
export { asLanguageModelUsage, convertToLanguageModelPrompt, prepareCallSettings, prepareRetries, prepareToolsAndToolChoice, standardizePrompt };
|