@depup/ai 6.0.116-depup.0
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 +7350 -0
- package/LICENSE +13 -0
- package/README.md +25 -0
- package/changes.json +5 -0
- package/dist/index.d.mts +6429 -0
- package/dist/index.d.ts +6429 -0
- package/dist/index.js +13548 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +13514 -0
- package/dist/index.mjs.map +1 -0
- package/dist/internal/index.d.mts +314 -0
- package/dist/internal/index.d.ts +314 -0
- package/dist/internal/index.js +1316 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/internal/index.mjs +1300 -0
- package/dist/internal/index.mjs.map +1 -0
- package/dist/test/index.d.mts +133 -0
- package/dist/test/index.d.ts +133 -0
- package/dist/test/index.js +275 -0
- package/dist/test/index.js.map +1 -0
- package/dist/test/index.mjs +245 -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 +156 -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 +337 -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 +377 -0
- package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +146 -0
- package/docs/03-ai-sdk-core/25-settings.mdx +198 -0
- package/docs/03-ai-sdk-core/30-embeddings.mdx +245 -0
- package/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
- package/docs/03-ai-sdk-core/35-image-generation.mdx +342 -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 +915 -0
- package/docs/03-ai-sdk-core/index.mdx +93 -0
- package/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
- package/docs/04-ai-sdk-ui/02-chatbot.mdx +1313 -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 +477 -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 +2715 -0
- package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3656 -0
- package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +197 -0
- package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +191 -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 +416 -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 +415 -0
- package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +246 -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/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 +126 -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 +206 -0
- package/src/embed/embed-many-result.ts +53 -0
- package/src/embed/embed-many.ts +386 -0
- package/src/embed/embed-result.ts +50 -0
- package/src/embed/embed.ts +217 -0
- package/src/embed/index.ts +4 -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 +517 -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 +985 -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/callback-events.ts +332 -0
- package/src/generate-text/collect-tool-approvals.ts +116 -0
- package/src/generate-text/content-part.ts +25 -0
- package/src/generate-text/execute-tool-call.ts +197 -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 +1535 -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 +20 -0
- package/src/generate-text/reasoning.ts +8 -0
- package/src/generate-text/response-message.ts +10 -0
- package/src/generate-text/run-tools-transformation.ts +442 -0
- package/src/generate-text/smooth-stream.ts +162 -0
- package/src/generate-text/step-result.ts +290 -0
- package/src/generate-text/stop-condition.ts +29 -0
- package/src/generate-text/stream-text-result.ts +463 -0
- package/src/generate-text/stream-text.ts +2807 -0
- package/src/generate-text/to-response-messages.ts +163 -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 +86 -0
- package/src/middleware/wrap-image-model.ts +85 -0
- package/src/middleware/wrap-language-model.ts +104 -0
- package/src/middleware/wrap-provider.ts +51 -0
- package/src/model/as-embedding-model-v3.ts +24 -0
- package/src/model/as-image-model-v3.ts +24 -0
- package/src/model/as-language-model-v3.ts +103 -0
- package/src/model/as-provider-v3.ts +36 -0
- package/src/model/as-speech-model-v3.ts +24 -0
- package/src/model/as-transcription-model-v3.ts +24 -0
- package/src/model/resolve-model.ts +159 -0
- package/src/prompt/call-settings.ts +148 -0
- package/src/prompt/content-part.ts +215 -0
- package/src/prompt/convert-to-language-model-prompt.ts +526 -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 +68 -0
- package/src/prompt/prepare-call-settings.ts +108 -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 +176 -0
- package/src/registry/index.ts +7 -0
- package/src/registry/no-such-provider-error.ts +41 -0
- package/src/registry/provider-registry.ts +328 -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 +53 -0
- package/src/telemetry/get-global-telemetry-integration.ts +85 -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/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 +17 -0
- package/src/telemetry/telemetry-integration.ts +24 -0
- package/src/telemetry/telemetry-settings.ts +53 -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-image-model-v2.ts +28 -0
- package/src/test/mock-image-model-v3.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-provider-v2.ts +68 -0
- package/src/test/mock-provider-v3.ts +80 -0
- package/src/test/mock-reranking-model-v3.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-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-values.ts +4 -0
- package/src/test/mock-video-model-v3.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 +3 -0
- package/src/types/embedding-model.ts +18 -0
- package/src/types/image-model-middleware.ts +3 -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 +3 -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 +104 -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 +6 -0
- package/src/types/transcription-model-response-metadata.ts +16 -0
- package/src/types/transcription-model.ts +9 -0
- package/src/types/usage.ts +200 -0
- package/src/types/video-model-response-metadata.ts +28 -0
- package/src/types/video-model.ts +11 -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 +751 -0
- package/src/ui/convert-file-list-to-file-ui-parts.ts +36 -0
- package/src/ui/convert-to-model-messages.ts +376 -0
- package/src/ui/default-chat-transport.ts +36 -0
- package/src/ui/direct-chat-transport.ts +118 -0
- package/src/ui/http-chat-transport.ts +284 -0
- package/src/ui/index.ts +71 -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 +793 -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 +536 -0
- package/src/ui/use-completion.ts +84 -0
- package/src/ui/validate-ui-messages.ts +506 -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 +346 -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 +69 -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,159 @@
|
|
|
1
|
+
import { gateway } from '@ai-sdk/gateway';
|
|
2
|
+
import {
|
|
3
|
+
EmbeddingModelV3,
|
|
4
|
+
Experimental_VideoModelV3,
|
|
5
|
+
ImageModelV3,
|
|
6
|
+
LanguageModelV3,
|
|
7
|
+
ProviderV3,
|
|
8
|
+
SpeechModelV3,
|
|
9
|
+
TranscriptionModelV3,
|
|
10
|
+
} from '@ai-sdk/provider';
|
|
11
|
+
import { UnsupportedModelVersionError } from '../error';
|
|
12
|
+
import { EmbeddingModel } from '../types/embedding-model';
|
|
13
|
+
import { LanguageModel } from '../types/language-model';
|
|
14
|
+
import { SpeechModel } from '../types/speech-model';
|
|
15
|
+
import { TranscriptionModel } from '../types/transcription-model';
|
|
16
|
+
import { asEmbeddingModelV3 } from './as-embedding-model-v3';
|
|
17
|
+
import { asImageModelV3 } from './as-image-model-v3';
|
|
18
|
+
import { asLanguageModelV3 } from './as-language-model-v3';
|
|
19
|
+
import { asSpeechModelV3 } from './as-speech-model-v3';
|
|
20
|
+
import { asTranscriptionModelV3 } from './as-transcription-model-v3';
|
|
21
|
+
import { ImageModel } from '../types/image-model';
|
|
22
|
+
import { VideoModel } from '../types/video-model';
|
|
23
|
+
|
|
24
|
+
export function resolveLanguageModel(model: LanguageModel): LanguageModelV3 {
|
|
25
|
+
if (typeof model !== 'string') {
|
|
26
|
+
if (
|
|
27
|
+
model.specificationVersion !== 'v3' &&
|
|
28
|
+
model.specificationVersion !== 'v2'
|
|
29
|
+
) {
|
|
30
|
+
const unsupportedModel: any = model;
|
|
31
|
+
throw new UnsupportedModelVersionError({
|
|
32
|
+
version: unsupportedModel.specificationVersion,
|
|
33
|
+
provider: unsupportedModel.provider,
|
|
34
|
+
modelId: unsupportedModel.modelId,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return asLanguageModelV3(model);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return getGlobalProvider().languageModel(model);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function resolveEmbeddingModel(model: EmbeddingModel): EmbeddingModelV3 {
|
|
45
|
+
if (typeof model !== 'string') {
|
|
46
|
+
if (
|
|
47
|
+
model.specificationVersion !== 'v3' &&
|
|
48
|
+
model.specificationVersion !== 'v2'
|
|
49
|
+
) {
|
|
50
|
+
const unsupportedModel: any = model;
|
|
51
|
+
throw new UnsupportedModelVersionError({
|
|
52
|
+
version: unsupportedModel.specificationVersion,
|
|
53
|
+
provider: unsupportedModel.provider,
|
|
54
|
+
modelId: unsupportedModel.modelId,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return asEmbeddingModelV3(model);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return getGlobalProvider().embeddingModel(model);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function resolveTranscriptionModel(
|
|
65
|
+
model: TranscriptionModel,
|
|
66
|
+
): TranscriptionModelV3 | undefined {
|
|
67
|
+
if (typeof model !== 'string') {
|
|
68
|
+
if (
|
|
69
|
+
model.specificationVersion !== 'v3' &&
|
|
70
|
+
model.specificationVersion !== 'v2'
|
|
71
|
+
) {
|
|
72
|
+
const unsupportedModel: any = model;
|
|
73
|
+
throw new UnsupportedModelVersionError({
|
|
74
|
+
version: unsupportedModel.specificationVersion,
|
|
75
|
+
provider: unsupportedModel.provider,
|
|
76
|
+
modelId: unsupportedModel.modelId,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return asTranscriptionModelV3(model);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return getGlobalProvider().transcriptionModel?.(model);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function resolveSpeechModel(
|
|
86
|
+
model: SpeechModel,
|
|
87
|
+
): SpeechModelV3 | undefined {
|
|
88
|
+
if (typeof model !== 'string') {
|
|
89
|
+
if (
|
|
90
|
+
model.specificationVersion !== 'v3' &&
|
|
91
|
+
model.specificationVersion !== 'v2'
|
|
92
|
+
) {
|
|
93
|
+
const unsupportedModel: any = model;
|
|
94
|
+
throw new UnsupportedModelVersionError({
|
|
95
|
+
version: unsupportedModel.specificationVersion,
|
|
96
|
+
provider: unsupportedModel.provider,
|
|
97
|
+
modelId: unsupportedModel.modelId,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return asSpeechModelV3(model);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return getGlobalProvider().speechModel?.(model);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export function resolveImageModel(model: ImageModel): ImageModelV3 {
|
|
107
|
+
if (typeof model !== 'string') {
|
|
108
|
+
if (
|
|
109
|
+
model.specificationVersion !== 'v3' &&
|
|
110
|
+
model.specificationVersion !== 'v2'
|
|
111
|
+
) {
|
|
112
|
+
const unsupportedModel: any = model;
|
|
113
|
+
throw new UnsupportedModelVersionError({
|
|
114
|
+
version: unsupportedModel.specificationVersion,
|
|
115
|
+
provider: unsupportedModel.provider,
|
|
116
|
+
modelId: unsupportedModel.modelId,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return asImageModelV3(model);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return getGlobalProvider().imageModel(model);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export function resolveVideoModel(
|
|
127
|
+
model: VideoModel,
|
|
128
|
+
): Experimental_VideoModelV3 {
|
|
129
|
+
if (typeof model === 'string') {
|
|
130
|
+
const provider = getGlobalProvider();
|
|
131
|
+
// TODO AI SDK v7
|
|
132
|
+
// @ts-expect-error - videoModel support is experimental
|
|
133
|
+
const videoModel = provider.videoModel;
|
|
134
|
+
|
|
135
|
+
if (!videoModel) {
|
|
136
|
+
throw new Error(
|
|
137
|
+
'The default provider does not support video models. ' +
|
|
138
|
+
'Please use a Experimental_VideoModelV3 object from a provider (e.g., vertex.video("model-id")).',
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return videoModel(model);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (model.specificationVersion !== 'v3') {
|
|
146
|
+
const unsupportedModel: any = model;
|
|
147
|
+
throw new UnsupportedModelVersionError({
|
|
148
|
+
version: unsupportedModel.specificationVersion,
|
|
149
|
+
provider: unsupportedModel.provider,
|
|
150
|
+
modelId: unsupportedModel.modelId,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return model;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function getGlobalProvider(): ProviderV3 {
|
|
158
|
+
return globalThis.AI_SDK_DEFAULT_PROVIDER ?? gateway;
|
|
159
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timeout configuration for API calls. Can be specified as:
|
|
3
|
+
* - A number representing milliseconds
|
|
4
|
+
* - An object with `totalMs` property for the total timeout in milliseconds
|
|
5
|
+
* - An object with `stepMs` property for the timeout of each step in milliseconds
|
|
6
|
+
* - An object with `chunkMs` property for the timeout between stream chunks (streaming only)
|
|
7
|
+
*/
|
|
8
|
+
export type TimeoutConfiguration =
|
|
9
|
+
| number
|
|
10
|
+
| { totalMs?: number; stepMs?: number; chunkMs?: number };
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Extracts the total timeout value in milliseconds from a TimeoutConfiguration.
|
|
14
|
+
*
|
|
15
|
+
* @param timeout - The timeout configuration.
|
|
16
|
+
* @returns The total timeout in milliseconds, or undefined if no timeout is configured.
|
|
17
|
+
*/
|
|
18
|
+
export function getTotalTimeoutMs(
|
|
19
|
+
timeout: TimeoutConfiguration | undefined,
|
|
20
|
+
): number | undefined {
|
|
21
|
+
if (timeout == null) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
if (typeof timeout === 'number') {
|
|
25
|
+
return timeout;
|
|
26
|
+
}
|
|
27
|
+
return timeout.totalMs;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Extracts the step timeout value in milliseconds from a TimeoutConfiguration.
|
|
32
|
+
*
|
|
33
|
+
* @param timeout - The timeout configuration.
|
|
34
|
+
* @returns The step timeout in milliseconds, or undefined if no step timeout is configured.
|
|
35
|
+
*/
|
|
36
|
+
export function getStepTimeoutMs(
|
|
37
|
+
timeout: TimeoutConfiguration | undefined,
|
|
38
|
+
): number | undefined {
|
|
39
|
+
if (timeout == null || typeof timeout === 'number') {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return timeout.stepMs;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Extracts the chunk timeout value in milliseconds from a TimeoutConfiguration.
|
|
47
|
+
* This timeout is for streaming only - it aborts if no new chunk is received within the specified duration.
|
|
48
|
+
*
|
|
49
|
+
* @param timeout - The timeout configuration.
|
|
50
|
+
* @returns The chunk timeout in milliseconds, or undefined if no chunk timeout is configured.
|
|
51
|
+
*/
|
|
52
|
+
export function getChunkTimeoutMs(
|
|
53
|
+
timeout: TimeoutConfiguration | undefined,
|
|
54
|
+
): number | undefined {
|
|
55
|
+
if (timeout == null || typeof timeout === 'number') {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
return timeout.chunkMs;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export type CallSettings = {
|
|
62
|
+
/**
|
|
63
|
+
* Maximum number of tokens to generate.
|
|
64
|
+
*/
|
|
65
|
+
maxOutputTokens?: number;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Temperature setting. The range depends on the provider and model.
|
|
69
|
+
*
|
|
70
|
+
* It is recommended to set either `temperature` or `topP`, but not both.
|
|
71
|
+
*/
|
|
72
|
+
temperature?: number;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Nucleus sampling. This is a number between 0 and 1.
|
|
76
|
+
*
|
|
77
|
+
* E.g. 0.1 would mean that only tokens with the top 10% probability mass
|
|
78
|
+
* are considered.
|
|
79
|
+
*
|
|
80
|
+
* It is recommended to set either `temperature` or `topP`, but not both.
|
|
81
|
+
*/
|
|
82
|
+
topP?: number;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Only sample from the top K options for each subsequent token.
|
|
86
|
+
*
|
|
87
|
+
* Used to remove "long tail" low probability responses.
|
|
88
|
+
* Recommended for advanced use cases only. You usually only need to use temperature.
|
|
89
|
+
*/
|
|
90
|
+
topK?: number;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Presence penalty setting. It affects the likelihood of the model to
|
|
94
|
+
* repeat information that is already in the prompt.
|
|
95
|
+
*
|
|
96
|
+
* The presence penalty is a number between -1 (increase repetition)
|
|
97
|
+
* and 1 (maximum penalty, decrease repetition). 0 means no penalty.
|
|
98
|
+
*/
|
|
99
|
+
presencePenalty?: number;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Frequency penalty setting. It affects the likelihood of the model
|
|
103
|
+
* to repeatedly use the same words or phrases.
|
|
104
|
+
*
|
|
105
|
+
* The frequency penalty is a number between -1 (increase repetition)
|
|
106
|
+
* and 1 (maximum penalty, decrease repetition). 0 means no penalty.
|
|
107
|
+
*/
|
|
108
|
+
frequencyPenalty?: number;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Stop sequences.
|
|
112
|
+
* If set, the model will stop generating text when one of the stop sequences is generated.
|
|
113
|
+
* Providers may have limits on the number of stop sequences.
|
|
114
|
+
*/
|
|
115
|
+
stopSequences?: string[];
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* The seed (integer) to use for random sampling. If set and supported
|
|
119
|
+
* by the model, calls will generate deterministic results.
|
|
120
|
+
*/
|
|
121
|
+
seed?: number;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Maximum number of retries. Set to 0 to disable retries.
|
|
125
|
+
*
|
|
126
|
+
* @default 2
|
|
127
|
+
*/
|
|
128
|
+
maxRetries?: number;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Abort signal.
|
|
132
|
+
*/
|
|
133
|
+
abortSignal?: AbortSignal;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Timeout in milliseconds. The call will be aborted if it takes longer
|
|
137
|
+
* than the specified timeout. Can be used alongside abortSignal.
|
|
138
|
+
*
|
|
139
|
+
* Can be specified as a number (milliseconds) or as an object with `totalMs`.
|
|
140
|
+
*/
|
|
141
|
+
timeout?: TimeoutConfiguration;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Additional HTTP headers to be sent with the request.
|
|
145
|
+
* Only applicable for HTTP-based providers.
|
|
146
|
+
*/
|
|
147
|
+
headers?: Record<string, string | undefined>;
|
|
148
|
+
};
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FilePart,
|
|
3
|
+
ImagePart,
|
|
4
|
+
ProviderOptions,
|
|
5
|
+
ReasoningPart,
|
|
6
|
+
TextPart,
|
|
7
|
+
ToolApprovalRequest,
|
|
8
|
+
ToolApprovalResponse,
|
|
9
|
+
ToolResultOutput,
|
|
10
|
+
ToolResultPart,
|
|
11
|
+
} from '@ai-sdk/provider-utils';
|
|
12
|
+
import { z } from 'zod/v4';
|
|
13
|
+
import { jsonValueSchema } from '../types/json-value';
|
|
14
|
+
import { providerMetadataSchema } from '../types/provider-metadata';
|
|
15
|
+
import { dataContentSchema } from './data-content';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export const textPartSchema: z.ZodType<TextPart> = z.object({
|
|
21
|
+
type: z.literal('text'),
|
|
22
|
+
text: z.string(),
|
|
23
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export const imagePartSchema: z.ZodType<ImagePart> = z.object({
|
|
30
|
+
type: z.literal('image'),
|
|
31
|
+
image: z.union([dataContentSchema, z.instanceof(URL)]),
|
|
32
|
+
mediaType: z.string().optional(),
|
|
33
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
export const filePartSchema: z.ZodType<FilePart> = z.object({
|
|
40
|
+
type: z.literal('file'),
|
|
41
|
+
data: z.union([dataContentSchema, z.instanceof(URL)]),
|
|
42
|
+
filename: z.string().optional(),
|
|
43
|
+
mediaType: z.string(),
|
|
44
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
export const reasoningPartSchema: z.ZodType<ReasoningPart> = z.object({
|
|
51
|
+
type: z.literal('reasoning'),
|
|
52
|
+
text: z.string(),
|
|
53
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Tool call content part of a prompt. It contains a tool call (usually generated by the AI model).
|
|
58
|
+
*/
|
|
59
|
+
export interface ToolCallPart {
|
|
60
|
+
type: 'tool-call';
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* ID of the tool call. This ID is used to match the tool call with the tool result.
|
|
64
|
+
*/
|
|
65
|
+
toolCallId: string;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Name of the tool that is being called.
|
|
69
|
+
*/
|
|
70
|
+
toolName: string;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Arguments of the tool call. This is a JSON-serializable object that matches the tool's input schema.
|
|
74
|
+
*/
|
|
75
|
+
input: unknown;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Additional provider-specific metadata. They are passed through
|
|
79
|
+
* to the provider from the AI SDK and enable provider-specific
|
|
80
|
+
* functionality that can be fully encapsulated in the provider.
|
|
81
|
+
*/
|
|
82
|
+
providerOptions?: ProviderOptions;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
export const toolCallPartSchema: z.ZodType<ToolCallPart> = z.object({
|
|
89
|
+
type: z.literal('tool-call'),
|
|
90
|
+
toolCallId: z.string(),
|
|
91
|
+
toolName: z.string(),
|
|
92
|
+
input: z.unknown(),
|
|
93
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
94
|
+
providerExecuted: z.boolean().optional(),
|
|
95
|
+
}) as z.ZodType<ToolCallPart>; // necessary bc input is optional on Zod type
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
export const outputSchema: z.ZodType<ToolResultOutput> = z.discriminatedUnion(
|
|
101
|
+
'type',
|
|
102
|
+
[
|
|
103
|
+
z.object({
|
|
104
|
+
type: z.literal('text'),
|
|
105
|
+
value: z.string(),
|
|
106
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
107
|
+
}),
|
|
108
|
+
z.object({
|
|
109
|
+
type: z.literal('json'),
|
|
110
|
+
value: jsonValueSchema,
|
|
111
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
112
|
+
}),
|
|
113
|
+
z.object({
|
|
114
|
+
type: z.literal('execution-denied'),
|
|
115
|
+
reason: z.string().optional(),
|
|
116
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
117
|
+
}),
|
|
118
|
+
z.object({
|
|
119
|
+
type: z.literal('error-text'),
|
|
120
|
+
value: z.string(),
|
|
121
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
122
|
+
}),
|
|
123
|
+
z.object({
|
|
124
|
+
type: z.literal('error-json'),
|
|
125
|
+
value: jsonValueSchema,
|
|
126
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
127
|
+
}),
|
|
128
|
+
z.object({
|
|
129
|
+
type: z.literal('content'),
|
|
130
|
+
value: z.array(
|
|
131
|
+
z.union([
|
|
132
|
+
z.object({
|
|
133
|
+
type: z.literal('text'),
|
|
134
|
+
text: z.string(),
|
|
135
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
136
|
+
}),
|
|
137
|
+
z.object({
|
|
138
|
+
type: z.literal('media'),
|
|
139
|
+
data: z.string(),
|
|
140
|
+
mediaType: z.string(),
|
|
141
|
+
}),
|
|
142
|
+
z.object({
|
|
143
|
+
type: z.literal('file-data'),
|
|
144
|
+
data: z.string(),
|
|
145
|
+
mediaType: z.string(),
|
|
146
|
+
filename: z.string().optional(),
|
|
147
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
148
|
+
}),
|
|
149
|
+
z.object({
|
|
150
|
+
type: z.literal('file-url'),
|
|
151
|
+
url: z.string(),
|
|
152
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
153
|
+
}),
|
|
154
|
+
z.object({
|
|
155
|
+
type: z.literal('file-id'),
|
|
156
|
+
fileId: z.union([z.string(), z.record(z.string(), z.string())]),
|
|
157
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
158
|
+
}),
|
|
159
|
+
z.object({
|
|
160
|
+
type: z.literal('image-data'),
|
|
161
|
+
data: z.string(),
|
|
162
|
+
mediaType: z.string(),
|
|
163
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
164
|
+
}),
|
|
165
|
+
z.object({
|
|
166
|
+
type: z.literal('image-url'),
|
|
167
|
+
url: z.string(),
|
|
168
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
169
|
+
}),
|
|
170
|
+
z.object({
|
|
171
|
+
type: z.literal('image-file-id'),
|
|
172
|
+
fileId: z.union([z.string(), z.record(z.string(), z.string())]),
|
|
173
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
174
|
+
}),
|
|
175
|
+
z.object({
|
|
176
|
+
type: z.literal('custom'),
|
|
177
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
178
|
+
}),
|
|
179
|
+
]),
|
|
180
|
+
),
|
|
181
|
+
}),
|
|
182
|
+
],
|
|
183
|
+
);
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* @internal
|
|
187
|
+
*/
|
|
188
|
+
export const toolResultPartSchema: z.ZodType<ToolResultPart> = z.object({
|
|
189
|
+
type: z.literal('tool-result'),
|
|
190
|
+
toolCallId: z.string(),
|
|
191
|
+
toolName: z.string(),
|
|
192
|
+
output: outputSchema,
|
|
193
|
+
providerOptions: providerMetadataSchema.optional(),
|
|
194
|
+
}) as z.ZodType<ToolResultPart>; // necessary bc result is optional on Zod type
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* @internal
|
|
198
|
+
*/
|
|
199
|
+
export const toolApprovalRequestSchema: z.ZodType<ToolApprovalRequest> =
|
|
200
|
+
z.object({
|
|
201
|
+
type: z.literal('tool-approval-request'),
|
|
202
|
+
approvalId: z.string(),
|
|
203
|
+
toolCallId: z.string(),
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
export const toolApprovalResponseSchema: z.ZodType<ToolApprovalResponse> =
|
|
210
|
+
z.object({
|
|
211
|
+
type: z.literal('tool-approval-response'),
|
|
212
|
+
approvalId: z.string(),
|
|
213
|
+
approved: z.boolean(),
|
|
214
|
+
reason: z.string().optional(),
|
|
215
|
+
});
|