ima2-gen 2.0.5 → 2.0.13
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 +3 -0
- package/bin/commands/edit.js +6 -6
- package/bin/commands/gen.js +6 -6
- package/bin/commands/multimode.js +4 -4
- package/bin/commands/node.js +2 -2
- package/bin/commands/prompt-sub/build.js +1 -1
- package/bin/lib/error-hints.js +1 -1
- package/config.js +2 -2
- package/docs/CLI.md +1 -1
- package/docs/FAQ.md +3 -0
- package/docs/migration/runtime-test-inventory.md +2 -1
- package/lib/agentSettings.js +1 -1
- package/lib/grokVideoAdapter.js +3 -3
- package/lib/grokVideoPlannerPrompt.js +94 -53
- package/lib/imageModels.js +4 -4
- package/lib/oauthProxy/runtime.js +1 -1
- package/lib/promptBuilder/constants.js +1 -1
- package/lib/promptBuilder/requestSchema.js +1 -1
- package/node_modules/@ai-sdk/gateway/CHANGELOG.md +1628 -0
- package/node_modules/@ai-sdk/gateway/LICENSE +13 -0
- package/node_modules/@ai-sdk/gateway/README.md +44 -0
- package/node_modules/@ai-sdk/gateway/dist/index.d.mts +602 -0
- package/node_modules/@ai-sdk/gateway/dist/index.d.ts +602 -0
- package/node_modules/@ai-sdk/gateway/dist/index.js +1520 -0
- package/node_modules/@ai-sdk/gateway/dist/index.js.map +1 -0
- package/node_modules/@ai-sdk/gateway/dist/index.mjs +1539 -0
- package/node_modules/@ai-sdk/gateway/dist/index.mjs.map +1 -0
- package/node_modules/@ai-sdk/gateway/docs/00-ai-gateway.mdx +742 -0
- package/node_modules/@ai-sdk/gateway/package.json +80 -0
- package/node_modules/@ai-sdk/gateway/src/errors/as-gateway-error.ts +74 -0
- package/node_modules/@ai-sdk/gateway/src/errors/create-gateway-error.ts +132 -0
- package/node_modules/@ai-sdk/gateway/src/errors/extract-api-call-response.ts +15 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-authentication-error.ts +84 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-error.ts +47 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-internal-server-error.ts +33 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-invalid-request-error.ts +33 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-model-not-found-error.ts +47 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-rate-limit-error.ts +33 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-response-error.ts +42 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-timeout-error.ts +59 -0
- package/node_modules/@ai-sdk/gateway/src/errors/index.ts +17 -0
- package/node_modules/@ai-sdk/gateway/src/errors/parse-auth-method.ts +23 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-config.ts +7 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-embedding-model-settings.ts +25 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-embedding-model.ts +109 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-fetch-metadata.ts +129 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-image-model-settings.ts +19 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-image-model.ts +169 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-language-model-settings.ts +171 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-language-model.ts +212 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-model-entry.ts +58 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-provider-options.ts +80 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-provider.ts +329 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-tools.ts +26 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-video-model-settings.ts +25 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-video-model.ts +259 -0
- package/node_modules/@ai-sdk/gateway/src/index.ts +32 -0
- package/node_modules/@ai-sdk/gateway/src/tool/parallel-search.ts +295 -0
- package/node_modules/@ai-sdk/gateway/src/tool/perplexity-search.ts +294 -0
- package/node_modules/@ai-sdk/gateway/src/vercel-environment.ts +6 -0
- package/node_modules/@ai-sdk/gateway/src/version.ts +6 -0
- package/node_modules/@ai-sdk/provider/CHANGELOG.md +979 -0
- package/node_modules/@ai-sdk/provider/LICENSE +13 -0
- package/node_modules/@ai-sdk/provider/README.md +1 -0
- package/node_modules/@ai-sdk/provider/dist/index.d.mts +4030 -0
- package/node_modules/@ai-sdk/provider/dist/index.d.ts +4030 -0
- package/node_modules/@ai-sdk/provider/dist/index.js +448 -0
- package/node_modules/@ai-sdk/provider/dist/index.js.map +1 -0
- package/node_modules/@ai-sdk/provider/dist/index.mjs +404 -0
- package/node_modules/@ai-sdk/provider/dist/index.mjs.map +1 -0
- package/node_modules/@ai-sdk/provider/package.json +63 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v2/embedding-model-v2-embedding.ts +5 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v2/embedding-model-v2.ts +113 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v2/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/embedding-model-v3-call-options.ts +26 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/embedding-model-v3-embedding.ts +5 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/embedding-model-v3-result.ts +48 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/embedding-model-v3.ts +54 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/index.ts +4 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model-middleware/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +69 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model-middleware/v3/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/errors/ai-sdk-error.ts +62 -0
- package/node_modules/@ai-sdk/provider/src/errors/api-call-error.ts +59 -0
- package/node_modules/@ai-sdk/provider/src/errors/empty-response-body-error.ts +17 -0
- package/node_modules/@ai-sdk/provider/src/errors/get-error-message.ts +15 -0
- package/node_modules/@ai-sdk/provider/src/errors/index.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/errors/invalid-argument-error.ts +32 -0
- package/node_modules/@ai-sdk/provider/src/errors/invalid-prompt-error.ts +33 -0
- package/node_modules/@ai-sdk/provider/src/errors/invalid-response-data-error.ts +31 -0
- package/node_modules/@ai-sdk/provider/src/errors/json-parse-error.ts +29 -0
- package/node_modules/@ai-sdk/provider/src/errors/load-api-key-error.ts +17 -0
- package/node_modules/@ai-sdk/provider/src/errors/load-setting-error.ts +17 -0
- package/node_modules/@ai-sdk/provider/src/errors/no-content-generated-error.ts +22 -0
- package/node_modules/@ai-sdk/provider/src/errors/no-such-model-error.ts +47 -0
- package/node_modules/@ai-sdk/provider/src/errors/too-many-embedding-values-for-call-error.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/errors/type-validation-error.ts +108 -0
- package/node_modules/@ai-sdk/provider/src/errors/unsupported-functionality-error.ts +26 -0
- package/node_modules/@ai-sdk/provider/src/image-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v2/image-model-v2-call-options.ts +60 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v2/image-model-v2-call-warning.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v2/image-model-v2.ts +104 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v2/index.ts +6 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/image-model-v3-call-options.ts +74 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/image-model-v3-file.ts +44 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/image-model-v3-usage.ts +19 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/image-model-v3.ts +110 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/index.ts +7 -0
- package/node_modules/@ai-sdk/provider/src/image-model-middleware/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/image-model-middleware/v3/image-model-v3-middleware.ts +61 -0
- package/node_modules/@ai-sdk/provider/src/image-model-middleware/v3/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/index.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/json-value/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/json-value/is-json.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/json-value/json-value.ts +17 -0
- package/node_modules/@ai-sdk/provider/src/language-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/index.ts +18 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-call-options.ts +127 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-call-warning.ts +23 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-content.ts +14 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-data-content.ts +4 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-file.ts +25 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-finish-reason.ts +20 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-function-tool.ts +37 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-prompt.ts +218 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-provider-defined-tool.ts +24 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-reasoning.ts +14 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-response-metadata.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-source.ts +67 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-stream-part.ts +102 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-text.ts +15 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-tool-call.ts +35 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-tool-choice.ts +5 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-tool-result.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-usage.ts +34 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2.ts +137 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/index.ts +21 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-call-options.ts +125 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-content.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-data-content.ts +4 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-file.ts +32 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-finish-reason.ts +33 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-function-tool.ts +53 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-generate-result.ts +63 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-prompt.ts +422 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-provider-tool.ts +28 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-reasoning.ts +14 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-response-metadata.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-source.ts +67 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-stream-part.ts +106 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-stream-result.ts +32 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-text.ts +15 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-tool-approval-request.ts +27 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-tool-call.ts +41 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-tool-choice.ts +5 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-tool-result.ts +51 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-usage.ts +59 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3.ts +61 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/v2/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/v2/language-model-v2-middleware.ts +82 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/v3/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/v3/language-model-v3-middleware.ts +84 -0
- package/node_modules/@ai-sdk/provider/src/provider/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/provider/v2/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/provider/v2/provider-v2.ts +64 -0
- package/node_modules/@ai-sdk/provider/src/provider/v3/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/provider/v3/provider-v3.ts +93 -0
- package/node_modules/@ai-sdk/provider/src/reranking-model/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/reranking-model/v3/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/reranking-model/v3/reranking-model-v3-call-options.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/reranking-model/v3/reranking-model-v3.ts +90 -0
- package/node_modules/@ai-sdk/provider/src/shared/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/shared/v2/index.ts +3 -0
- package/node_modules/@ai-sdk/provider/src/shared/v2/shared-v2-headers.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/shared/v2/shared-v2-provider-metadata.ts +27 -0
- package/node_modules/@ai-sdk/provider/src/shared/v2/shared-v2-provider-options.ts +24 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/index.ts +4 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/shared-v3-headers.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/shared-v3-provider-metadata.ts +24 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/shared-v3-provider-options.ts +24 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/shared-v3-warning.ts +50 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v2/index.ts +3 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v2/speech-model-v2-call-options.ts +62 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v2/speech-model-v2-call-warning.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v2/speech-model-v2.ts +89 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v3/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v3/speech-model-v3-call-options.ts +62 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v3/speech-model-v3.ts +89 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v2/index.ts +3 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v2/transcription-model-v2-call-options.ts +48 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v2/transcription-model-v2-call-warning.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v2/transcription-model-v2.ts +117 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v3/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v3/transcription-model-v3-call-options.ts +45 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v3/transcription-model-v3.ts +117 -0
- package/node_modules/@ai-sdk/provider/src/video-model/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/video-model/v3/index.ts +6 -0
- package/node_modules/@ai-sdk/provider/src/video-model/v3/video-model-v3-call-options.ts +81 -0
- package/node_modules/@ai-sdk/provider/src/video-model/v3/video-model-v3-file.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/video-model/v3/video-model-v3.ts +132 -0
- package/node_modules/@ai-sdk/provider-utils/CHANGELOG.md +1560 -0
- package/node_modules/@ai-sdk/provider-utils/README.md +1 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.d.mts +1433 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.d.ts +1433 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.js +2844 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.js.map +1 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.mjs +2756 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.mjs.map +1 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.d.mts +17 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.d.ts +17 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.js +110 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.js.map +1 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.mjs +77 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.mjs.map +1 -0
- package/node_modules/@ai-sdk/provider-utils/package.json +81 -0
- package/node_modules/@ai-sdk/provider-utils/src/add-additional-properties-to-json-schema.ts +53 -0
- package/node_modules/@ai-sdk/provider-utils/src/combine-headers.ts +11 -0
- package/node_modules/@ai-sdk/provider-utils/src/convert-async-iterator-to-readable-stream.ts +47 -0
- package/node_modules/@ai-sdk/provider-utils/src/convert-image-model-file-to-data-uri.ts +19 -0
- package/node_modules/@ai-sdk/provider-utils/src/convert-to-form-data.ts +61 -0
- package/node_modules/@ai-sdk/provider-utils/src/create-tool-name-mapping.ts +82 -0
- package/node_modules/@ai-sdk/provider-utils/src/delay.ts +47 -0
- package/node_modules/@ai-sdk/provider-utils/src/delayed-promise.ts +61 -0
- package/node_modules/@ai-sdk/provider-utils/src/download-blob.ts +52 -0
- package/node_modules/@ai-sdk/provider-utils/src/download-error.ts +39 -0
- package/node_modules/@ai-sdk/provider-utils/src/extract-response-headers.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/fetch-function.ts +4 -0
- package/node_modules/@ai-sdk/provider-utils/src/generate-id.ts +57 -0
- package/node_modules/@ai-sdk/provider-utils/src/get-error-message.ts +15 -0
- package/node_modules/@ai-sdk/provider-utils/src/get-from-api.ts +97 -0
- package/node_modules/@ai-sdk/provider-utils/src/get-runtime-environment-user-agent.ts +24 -0
- package/node_modules/@ai-sdk/provider-utils/src/handle-fetch-error.ts +72 -0
- package/node_modules/@ai-sdk/provider-utils/src/index.ts +73 -0
- package/node_modules/@ai-sdk/provider-utils/src/inject-json-instruction.ts +63 -0
- package/node_modules/@ai-sdk/provider-utils/src/is-abort-error.ts +8 -0
- package/node_modules/@ai-sdk/provider-utils/src/is-async-iterable.ts +3 -0
- package/node_modules/@ai-sdk/provider-utils/src/is-non-nullable.ts +12 -0
- package/node_modules/@ai-sdk/provider-utils/src/is-url-supported.ts +40 -0
- package/node_modules/@ai-sdk/provider-utils/src/load-api-key.ts +45 -0
- package/node_modules/@ai-sdk/provider-utils/src/load-optional-setting.ts +30 -0
- package/node_modules/@ai-sdk/provider-utils/src/load-setting.ts +62 -0
- package/node_modules/@ai-sdk/provider-utils/src/maybe-promise-like.ts +3 -0
- package/node_modules/@ai-sdk/provider-utils/src/media-type-to-extension.ts +22 -0
- package/node_modules/@ai-sdk/provider-utils/src/normalize-headers.ts +38 -0
- package/node_modules/@ai-sdk/provider-utils/src/parse-json-event-stream.ts +33 -0
- package/node_modules/@ai-sdk/provider-utils/src/parse-json.ts +122 -0
- package/node_modules/@ai-sdk/provider-utils/src/parse-provider-options.ts +32 -0
- package/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts +166 -0
- package/node_modules/@ai-sdk/provider-utils/src/provider-tool-factory.ts +125 -0
- package/node_modules/@ai-sdk/provider-utils/src/read-response-with-size-limit.ts +97 -0
- package/node_modules/@ai-sdk/provider-utils/src/remove-undefined-entries.ts +12 -0
- package/node_modules/@ai-sdk/provider-utils/src/resolve.ts +17 -0
- package/node_modules/@ai-sdk/provider-utils/src/response-handler.ts +186 -0
- package/node_modules/@ai-sdk/provider-utils/src/schema.ts +267 -0
- package/node_modules/@ai-sdk/provider-utils/src/secure-json-parse.ts +96 -0
- package/node_modules/@ai-sdk/provider-utils/src/strip-file-extension.ts +13 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-array-to-async-iterable.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-array-to-readable-stream.ts +15 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-async-iterable-to-array.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-readable-stream-to-array.ts +14 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-response-stream-to-array.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/index.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/is-node-version.ts +4 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/mock-id.ts +8 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/LICENSE +16 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/README.md +24 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/get-relative-path.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/index.ts +1 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/options.ts +98 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parse-def.ts +109 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parse-types.ts +57 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/any.ts +5 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/array.ts +38 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/bigint.ts +44 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/boolean.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/branded.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/catch.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/date.ts +64 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/default.ts +14 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/effects.ts +14 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/enum.ts +13 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/intersection.ts +52 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/literal.ts +29 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/map.ts +47 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/native-enum.ts +31 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/never.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/null.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/nullable.ts +42 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/number.ts +44 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/object.ts +88 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/optional.ts +23 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/pipeline.ts +29 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/promise.ts +11 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/readonly.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/record.ts +71 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/set.ts +35 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/string.ts +426 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/tuple.ts +61 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/undefined.ts +11 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/union.ts +144 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/unknown.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/refs.ts +39 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/select-parser.ts +115 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/zod3-to-json-schema.ts +93 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/assistant-model-message.ts +39 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/content-part.ts +379 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/data-content.ts +4 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/execute-tool.ts +27 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/index.ts +40 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/model-message.ts +14 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/provider-options.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/system-model-message.ts +20 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-approval-request.ts +16 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-approval-response.ts +27 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-call.ts +31 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-model-message.ts +23 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-result.ts +35 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool.ts +324 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/user-model-message.ts +22 -0
- package/node_modules/@ai-sdk/provider-utils/src/uint8-utils.ts +26 -0
- package/node_modules/@ai-sdk/provider-utils/src/validate-download-url.ts +143 -0
- package/node_modules/@ai-sdk/provider-utils/src/validate-types.ts +87 -0
- package/node_modules/@ai-sdk/provider-utils/src/version.ts +6 -0
- package/node_modules/@ai-sdk/provider-utils/src/with-user-agent-suffix.ts +27 -0
- package/node_modules/@ai-sdk/provider-utils/src/without-trailing-slash.ts +3 -0
- package/node_modules/@ai-sdk/provider-utils/test.d.ts +1 -0
- package/node_modules/@opentelemetry/api/LICENSE +201 -0
- package/node_modules/@opentelemetry/api/README.md +116 -0
- package/node_modules/@opentelemetry/api/build/esm/api/context.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/esm/api/context.js +110 -0
- package/node_modules/@opentelemetry/api/build/esm/api/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/api/diag.d.ts +30 -0
- package/node_modules/@opentelemetry/api/build/esm/api/diag.js +121 -0
- package/node_modules/@opentelemetry/api/build/esm/api/diag.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/api/metrics.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/esm/api/metrics.js +60 -0
- package/node_modules/@opentelemetry/api/build/esm/api/metrics.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/api/propagation.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/esm/api/propagation.js +89 -0
- package/node_modules/@opentelemetry/api/build/esm/api/propagation.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/api/trace.d.ts +40 -0
- package/node_modules/@opentelemetry/api/build/esm/api/trace.js +77 -0
- package/node_modules/@opentelemetry/api/build/esm/api/trace.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.d.ts +29 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js +56 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.d.ts +12 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js +98 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js +20 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/types.d.ts +60 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/types.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/utils.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/utils.js +47 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Attributes.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Attributes.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Exception.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Exception.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Exception.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Time.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Time.js +2 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Time.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js +67 -0
- package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/context/context.d.ts +6 -0
- package/node_modules/@opentelemetry/api/build/esm/context/context.js +52 -0
- package/node_modules/@opentelemetry/api/build/esm/context/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/context/types.d.ts +52 -0
- package/node_modules/@opentelemetry/api/build/esm/context/types.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/context/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/context-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esm/context-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esm/context-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js +102 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js +59 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js +41 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.d.ts +8 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js +31 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/types.d.ts +100 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/types.js +41 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag-api.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/esm/diag-api.js +26 -0
- package/node_modules/@opentelemetry/api/build/esm/diag-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/index.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.d.ts +64 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js +92 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/index.d.ts +54 -0
- package/node_modules/@opentelemetry/api/build/esm/index.js +53 -0
- package/node_modules/@opentelemetry/api/build/esm/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.d.ts +18 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js +59 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/semver.d.ts +34 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/semver.js +118 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/semver.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.d.ts +110 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.d.ts +115 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js +22 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.d.ts +82 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js +181 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.d.ts +11 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js +31 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js +35 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js +19 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js +34 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.d.ts +84 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js +38 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js +68 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.d.ts +14 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js +76 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js +32 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js +53 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js +54 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js +39 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.d.ts +23 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/attributes.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/attributes.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js +73 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.d.ts +22 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js +102 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js +41 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js +20 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js +24 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/link.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/link.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/link.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span.d.ts +120 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_context.d.ts +53 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_context.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js +43 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js +42 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/status.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/status.js +20 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/status.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.d.ts +7 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js +23 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer.d.ts +71 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.d.ts +21 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esm/trace-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esm/trace-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/version.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esm/version.js +18 -0
- package/node_modules/@opentelemetry/api/build/esm/version.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/context.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/context.js +77 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/diag.d.ts +30 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/diag.js +89 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/diag.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/metrics.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/metrics.js +57 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/metrics.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/propagation.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/propagation.js +85 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/propagation.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/trace.d.ts +40 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/trace.js +75 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/trace.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.d.ts +29 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js +56 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.d.ts +12 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js +51 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/types.d.ts +60 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/types.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js +46 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Exception.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Exception.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Exception.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Time.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Time.js +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Time.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js +34 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/context.d.ts +6 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/context.js +51 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/types.d.ts +52 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/types.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/context-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esnext/context-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/context-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js +55 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js +53 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.d.ts +8 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js +31 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/types.d.ts +100 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/types.js +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag-api.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag-api.js +26 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/index.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.d.ts +64 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js +88 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/index.d.ts +54 -0
- package/node_modules/@opentelemetry/api/build/esnext/index.js +53 -0
- package/node_modules/@opentelemetry/api/build/esnext/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.d.ts +18 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js +58 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/semver.d.ts +34 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/semver.js +118 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/semver.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.d.ts +110 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.d.ts +115 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js +22 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.d.ts +82 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js +113 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.d.ts +11 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js +27 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js +35 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js +19 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js +30 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.d.ts +84 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js +38 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js +65 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.d.ts +14 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js +71 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js +28 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js +51 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js +50 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js +39 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.d.ts +23 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js +73 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.d.ts +22 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js +99 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js +24 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/link.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/link.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/link.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span.d.ts +120 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.d.ts +53 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js +43 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js +42 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/status.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/status.js +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/status.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.d.ts +7 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js +23 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.d.ts +71 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.d.ts +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/version.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/version.js +18 -0
- package/node_modules/@opentelemetry/api/build/esnext/version.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/context.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/src/api/context.js +81 -0
- package/node_modules/@opentelemetry/api/build/src/api/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/diag.d.ts +30 -0
- package/node_modules/@opentelemetry/api/build/src/api/diag.js +93 -0
- package/node_modules/@opentelemetry/api/build/src/api/diag.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/metrics.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/src/api/metrics.js +61 -0
- package/node_modules/@opentelemetry/api/build/src/api/metrics.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/propagation.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/src/api/propagation.js +89 -0
- package/node_modules/@opentelemetry/api/build/src/api/propagation.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/trace.d.ts +40 -0
- package/node_modules/@opentelemetry/api/build/src/api/trace.js +79 -0
- package/node_modules/@opentelemetry/api/build/src/api/trace.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.d.ts +29 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js +63 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.d.ts +12 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js +55 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js +23 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/types.d.ts +60 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/types.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/utils.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/utils.js +51 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/common/Attributes.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/src/common/Attributes.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/common/Attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/common/Exception.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/src/common/Exception.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/common/Exception.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/common/Time.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/src/common/Time.js +3 -0
- package/node_modules/@opentelemetry/api/build/src/common/Time.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js +38 -0
- package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/context/context.d.ts +6 -0
- package/node_modules/@opentelemetry/api/build/src/context/context.js +55 -0
- package/node_modules/@opentelemetry/api/build/src/context/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/context/types.d.ts +52 -0
- package/node_modules/@opentelemetry/api/build/src/context/types.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/context/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/context-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/src/context-api.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/context-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js +59 -0
- package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js +57 -0
- package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js +45 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.d.ts +8 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js +35 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/types.d.ts +100 -0
- package/node_modules/@opentelemetry/api/build/src/diag/types.js +44 -0
- package/node_modules/@opentelemetry/api/build/src/diag/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag-api.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/src/diag-api.js +29 -0
- package/node_modules/@opentelemetry/api/build/src/diag-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/index.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/index.js +22 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.d.ts +64 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js +93 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/index.d.ts +54 -0
- package/node_modules/@opentelemetry/api/build/src/index.js +81 -0
- package/node_modules/@opentelemetry/api/build/src/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/internal/global-utils.d.ts +18 -0
- package/node_modules/@opentelemetry/api/build/src/internal/global-utils.js +64 -0
- package/node_modules/@opentelemetry/api/build/src/internal/global-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/internal/semver.d.ts +34 -0
- package/node_modules/@opentelemetry/api/build/src/internal/semver.js +122 -0
- package/node_modules/@opentelemetry/api/build/src/internal/semver.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Meter.d.ts +110 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Meter.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Meter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Metric.d.ts +115 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Metric.js +25 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Metric.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.d.ts +82 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js +127 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.d.ts +11 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js +31 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/src/metrics-api.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/metrics-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js +38 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/index.js +29 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/src/platform/index.js +29 -0
- package/node_modules/@opentelemetry/api/build/src/platform/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js +22 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/index.js +29 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js +34 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.d.ts +84 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js +41 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/propagation-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/src/propagation-api.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/propagation-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js +69 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.d.ts +14 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js +75 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js +32 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js +55 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js +54 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/Sampler.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/src/trace/Sampler.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/Sampler.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js +42 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.d.ts +23 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/attributes.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/src/trace/attributes.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/context-utils.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/src/trace/context-utils.js +82 -0
- package/node_modules/@opentelemetry/api/build/src/trace/context-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.d.ts +22 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js +103 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js +46 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js +27 -0
- package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/link.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/src/trace/link.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/link.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span.d.ts +120 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_context.d.ts +53 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_context.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_kind.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_kind.js +46 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_kind.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js +49 -0
- package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/status.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/src/trace/status.js +23 -0
- package/node_modules/@opentelemetry/api/build/src/trace/status.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.d.ts +7 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js +26 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_state.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_state.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_state.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer.d.ts +71 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.d.ts +21 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/src/trace-api.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/trace-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/version.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/src/version.js +21 -0
- package/node_modules/@opentelemetry/api/build/src/version.js.map +1 -0
- package/node_modules/@opentelemetry/api/package.json +113 -0
- package/node_modules/@standard-schema/spec/LICENSE +21 -0
- package/node_modules/@standard-schema/spec/README.md +198 -0
- package/node_modules/@standard-schema/spec/dist/index.cjs +18 -0
- package/node_modules/@standard-schema/spec/dist/index.d.cts +119 -0
- package/node_modules/@standard-schema/spec/dist/index.d.ts +119 -0
- package/node_modules/@standard-schema/spec/dist/index.js +0 -0
- package/node_modules/@standard-schema/spec/package.json +52 -0
- package/node_modules/@vercel/oidc/CHANGELOG.md +83 -0
- package/node_modules/@vercel/oidc/LICENSE +202 -0
- package/node_modules/@vercel/oidc/README.md +3 -0
- package/node_modules/@vercel/oidc/dist/auth-config.d.ts +30 -0
- package/node_modules/@vercel/oidc/dist/auth-config.js +84 -0
- package/node_modules/@vercel/oidc/dist/get-context.d.ts +6 -0
- package/node_modules/@vercel/oidc/dist/get-context.js +34 -0
- package/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.d.ts +49 -0
- package/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.js +80 -0
- package/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.test.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.test.js +245 -0
- package/node_modules/@vercel/oidc/dist/index-browser.d.ts +3 -0
- package/node_modules/@vercel/oidc/dist/index-browser.js +38 -0
- package/node_modules/@vercel/oidc/dist/index-browser.test.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/index-browser.test.js +33 -0
- package/node_modules/@vercel/oidc/dist/index.d.ts +2 -0
- package/node_modules/@vercel/oidc/dist/index.js +33 -0
- package/node_modules/@vercel/oidc/dist/oauth.d.ts +17 -0
- package/node_modules/@vercel/oidc/dist/oauth.js +88 -0
- package/node_modules/@vercel/oidc/dist/token-error.d.ts +5 -0
- package/node_modules/@vercel/oidc/dist/token-error.js +40 -0
- package/node_modules/@vercel/oidc/dist/token-io.d.ts +2 -0
- package/node_modules/@vercel/oidc/dist/token-io.js +78 -0
- package/node_modules/@vercel/oidc/dist/token-util.d.ts +21 -0
- package/node_modules/@vercel/oidc/dist/token-util.js +198 -0
- package/node_modules/@vercel/oidc/dist/token-util.test.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/token-util.test.js +229 -0
- package/node_modules/@vercel/oidc/dist/token.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/token.js +53 -0
- package/node_modules/@vercel/oidc/dist/token.test.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/token.test.js +84 -0
- package/node_modules/@vercel/oidc/docs/README.md +104 -0
- package/node_modules/@vercel/oidc/package.json +52 -0
- package/node_modules/ai/CHANGELOG.md +7350 -0
- package/node_modules/ai/LICENSE +13 -0
- package/node_modules/ai/README.md +248 -0
- package/node_modules/ai/dist/index.d.mts +6429 -0
- package/node_modules/ai/dist/index.d.ts +6429 -0
- package/node_modules/ai/dist/index.js +13548 -0
- package/node_modules/ai/dist/index.js.map +1 -0
- package/node_modules/ai/dist/index.mjs +13514 -0
- package/node_modules/ai/dist/index.mjs.map +1 -0
- package/node_modules/ai/dist/internal/index.d.mts +314 -0
- package/node_modules/ai/dist/internal/index.d.ts +314 -0
- package/node_modules/ai/dist/internal/index.js +1316 -0
- package/node_modules/ai/dist/internal/index.js.map +1 -0
- package/node_modules/ai/dist/internal/index.mjs +1300 -0
- package/node_modules/ai/dist/internal/index.mjs.map +1 -0
- package/node_modules/ai/dist/test/index.d.mts +133 -0
- package/node_modules/ai/dist/test/index.d.ts +133 -0
- package/node_modules/ai/dist/test/index.js +275 -0
- package/node_modules/ai/dist/test/index.js.map +1 -0
- package/node_modules/ai/dist/test/index.mjs +245 -0
- package/node_modules/ai/dist/test/index.mjs.map +1 -0
- package/node_modules/ai/docs/00-introduction/index.mdx +76 -0
- package/node_modules/ai/docs/02-foundations/01-overview.mdx +43 -0
- package/node_modules/ai/docs/02-foundations/02-providers-and-models.mdx +156 -0
- package/node_modules/ai/docs/02-foundations/03-prompts.mdx +616 -0
- package/node_modules/ai/docs/02-foundations/04-tools.mdx +251 -0
- package/node_modules/ai/docs/02-foundations/05-streaming.mdx +62 -0
- package/node_modules/ai/docs/02-foundations/06-provider-options.mdx +337 -0
- package/node_modules/ai/docs/02-foundations/index.mdx +49 -0
- package/node_modules/ai/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
- package/node_modules/ai/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
- package/node_modules/ai/docs/02-getting-started/02-nextjs-app-router.mdx +559 -0
- package/node_modules/ai/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
- package/node_modules/ai/docs/02-getting-started/04-svelte.mdx +627 -0
- package/node_modules/ai/docs/02-getting-started/05-nuxt.mdx +566 -0
- package/node_modules/ai/docs/02-getting-started/06-nodejs.mdx +512 -0
- package/node_modules/ai/docs/02-getting-started/07-expo.mdx +766 -0
- package/node_modules/ai/docs/02-getting-started/08-tanstack-start.mdx +583 -0
- package/node_modules/ai/docs/02-getting-started/09-coding-agents.mdx +179 -0
- package/node_modules/ai/docs/02-getting-started/index.mdx +44 -0
- package/node_modules/ai/docs/03-agents/01-overview.mdx +96 -0
- package/node_modules/ai/docs/03-agents/02-building-agents.mdx +449 -0
- package/node_modules/ai/docs/03-agents/03-workflows.mdx +386 -0
- package/node_modules/ai/docs/03-agents/04-loop-control.mdx +394 -0
- package/node_modules/ai/docs/03-agents/05-configuring-call-options.mdx +286 -0
- package/node_modules/ai/docs/03-agents/06-memory.mdx +222 -0
- package/node_modules/ai/docs/03-agents/06-subagents.mdx +362 -0
- package/node_modules/ai/docs/03-agents/index.mdx +46 -0
- package/node_modules/ai/docs/03-ai-sdk-core/01-overview.mdx +31 -0
- package/node_modules/ai/docs/03-ai-sdk-core/05-generating-text.mdx +707 -0
- package/node_modules/ai/docs/03-ai-sdk-core/10-generating-structured-data.mdx +498 -0
- package/node_modules/ai/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1144 -0
- package/node_modules/ai/docs/03-ai-sdk-core/16-mcp-tools.mdx +377 -0
- package/node_modules/ai/docs/03-ai-sdk-core/20-prompt-engineering.mdx +146 -0
- package/node_modules/ai/docs/03-ai-sdk-core/25-settings.mdx +198 -0
- package/node_modules/ai/docs/03-ai-sdk-core/30-embeddings.mdx +245 -0
- package/node_modules/ai/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
- package/node_modules/ai/docs/03-ai-sdk-core/35-image-generation.mdx +342 -0
- package/node_modules/ai/docs/03-ai-sdk-core/36-transcription.mdx +227 -0
- package/node_modules/ai/docs/03-ai-sdk-core/37-speech.mdx +169 -0
- package/node_modules/ai/docs/03-ai-sdk-core/38-video-generation.mdx +366 -0
- package/node_modules/ai/docs/03-ai-sdk-core/40-middleware.mdx +485 -0
- package/node_modules/ai/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
- package/node_modules/ai/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
- package/node_modules/ai/docs/03-ai-sdk-core/55-testing.mdx +219 -0
- package/node_modules/ai/docs/03-ai-sdk-core/60-telemetry.mdx +391 -0
- package/node_modules/ai/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
- package/node_modules/ai/docs/03-ai-sdk-core/65-event-listeners.mdx +915 -0
- package/node_modules/ai/docs/03-ai-sdk-core/index.mdx +93 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/02-chatbot.mdx +1313 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/05-completion.mdx +181 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/50-stream-protocol.mdx +477 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/index.mdx +64 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/05-streaming-values.mdx +157 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/08-error-handling.mdx +94 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/index.mdx +63 -0
- package/node_modules/ai/docs/06-advanced/01-prompt-engineering.mdx +96 -0
- package/node_modules/ai/docs/06-advanced/02-stopping-streams.mdx +184 -0
- package/node_modules/ai/docs/06-advanced/03-backpressure.mdx +173 -0
- package/node_modules/ai/docs/06-advanced/04-caching.mdx +169 -0
- package/node_modules/ai/docs/06-advanced/05-multiple-streamables.mdx +68 -0
- package/node_modules/ai/docs/06-advanced/06-rate-limiting.mdx +60 -0
- package/node_modules/ai/docs/06-advanced/07-rendering-ui-with-language-models.mdx +225 -0
- package/node_modules/ai/docs/06-advanced/08-model-as-router.mdx +120 -0
- package/node_modules/ai/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
- package/node_modules/ai/docs/06-advanced/09-sequential-generations.mdx +55 -0
- package/node_modules/ai/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
- package/node_modules/ai/docs/06-advanced/index.mdx +11 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2715 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3656 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/05-embed.mdx +197 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +191 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +251 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +152 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +221 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +264 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/15-agent.mdx +235 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +973 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +154 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +173 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +150 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/20-tool.mdx +209 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +223 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +416 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +58 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +415 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +246 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +198 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +157 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +74 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +30 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/92-default-generated-file.mdx +68 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/index.mdx +160 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +493 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +185 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +196 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +231 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +162 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +119 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +77 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +78 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +79 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +266 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +31 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +28 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +26 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-output-generated-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-video-generated-error.mdx +39 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-ui-message-stream-error.mdx +67 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/index.mdx +39 -0
- package/node_modules/ai/docs/07-reference/index.mdx +28 -0
- package/node_modules/ai/docs/08-migration-guides/00-versioning.mdx +46 -0
- package/node_modules/ai/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
- package/node_modules/ai/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
- package/node_modules/ai/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
- package/node_modules/ai/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
- package/node_modules/ai/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
- package/node_modules/ai/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
- package/node_modules/ai/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
- package/node_modules/ai/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
- package/node_modules/ai/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
- package/node_modules/ai/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
- package/node_modules/ai/docs/08-migration-guides/index.mdx +22 -0
- package/node_modules/ai/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
- package/node_modules/ai/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
- package/node_modules/ai/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
- package/node_modules/ai/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
- package/node_modules/ai/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
- package/node_modules/ai/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
- package/node_modules/ai/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
- package/node_modules/ai/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
- package/node_modules/ai/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
- package/node_modules/ai/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
- package/node_modules/ai/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
- package/node_modules/ai/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
- package/node_modules/ai/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
- package/node_modules/ai/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
- package/node_modules/ai/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
- package/node_modules/ai/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
- package/node_modules/ai/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
- package/node_modules/ai/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
- package/node_modules/ai/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
- package/node_modules/ai/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
- package/node_modules/ai/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
- package/node_modules/ai/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
- package/node_modules/ai/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
- package/node_modules/ai/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
- package/node_modules/ai/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +76 -0
- package/node_modules/ai/docs/09-troubleshooting/21-missing-tool-results-error.mdx +82 -0
- package/node_modules/ai/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
- package/node_modules/ai/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
- package/node_modules/ai/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
- package/node_modules/ai/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
- package/node_modules/ai/docs/09-troubleshooting/70-high-memory-usage-with-images.mdx +108 -0
- package/node_modules/ai/docs/09-troubleshooting/index.mdx +11 -0
- package/node_modules/ai/internal.d.ts +1 -0
- package/node_modules/ai/package.json +115 -0
- package/node_modules/ai/src/agent/agent.ts +156 -0
- package/node_modules/ai/src/agent/create-agent-ui-stream-response.ts +61 -0
- package/node_modules/ai/src/agent/create-agent-ui-stream.ts +84 -0
- package/node_modules/ai/src/agent/index.ts +37 -0
- package/node_modules/ai/src/agent/infer-agent-tools.ts +7 -0
- package/node_modules/ai/src/agent/infer-agent-ui-message.ts +11 -0
- package/node_modules/ai/src/agent/pipe-agent-ui-stream-to-response.ts +64 -0
- package/node_modules/ai/src/agent/tool-loop-agent-settings.ts +244 -0
- package/node_modules/ai/src/agent/tool-loop-agent.ts +206 -0
- package/node_modules/ai/src/embed/embed-many-result.ts +53 -0
- package/node_modules/ai/src/embed/embed-many.ts +386 -0
- package/node_modules/ai/src/embed/embed-result.ts +50 -0
- package/node_modules/ai/src/embed/embed.ts +217 -0
- package/node_modules/ai/src/embed/index.ts +4 -0
- package/node_modules/ai/src/error/index.ts +37 -0
- package/node_modules/ai/src/error/invalid-argument-error.ts +34 -0
- package/node_modules/ai/src/error/invalid-stream-part-error.ts +28 -0
- package/node_modules/ai/src/error/invalid-tool-approval-error.ts +26 -0
- package/node_modules/ai/src/error/invalid-tool-input-error.ts +33 -0
- package/node_modules/ai/src/error/missing-tool-result-error.ts +28 -0
- package/node_modules/ai/src/error/no-image-generated-error.ts +39 -0
- package/node_modules/ai/src/error/no-object-generated-error.ts +70 -0
- package/node_modules/ai/src/error/no-output-generated-error.ts +26 -0
- package/node_modules/ai/src/error/no-speech-generated-error.ts +28 -0
- package/node_modules/ai/src/error/no-such-tool-error.ts +35 -0
- package/node_modules/ai/src/error/no-transcript-generated-error.ts +30 -0
- package/node_modules/ai/src/error/no-video-generated-error.ts +57 -0
- package/node_modules/ai/src/error/tool-call-not-found-for-approval-error.ts +32 -0
- package/node_modules/ai/src/error/tool-call-repair-error.ts +30 -0
- package/node_modules/ai/src/error/ui-message-stream-error.ts +48 -0
- package/node_modules/ai/src/error/unsupported-model-version-error.ts +23 -0
- package/node_modules/ai/src/error/verify-no-object-generated-error.ts +27 -0
- package/node_modules/ai/src/generate-image/generate-image-result.ts +42 -0
- package/node_modules/ai/src/generate-image/generate-image.ts +361 -0
- package/node_modules/ai/src/generate-image/index.ts +18 -0
- package/node_modules/ai/src/generate-object/generate-object-result.ts +67 -0
- package/node_modules/ai/src/generate-object/generate-object.ts +517 -0
- package/node_modules/ai/src/generate-object/index.ts +9 -0
- package/node_modules/ai/src/generate-object/inject-json-instruction.ts +30 -0
- package/node_modules/ai/src/generate-object/output-strategy.ts +415 -0
- package/node_modules/ai/src/generate-object/parse-and-validate-object-result.ts +111 -0
- package/node_modules/ai/src/generate-object/repair-text.ts +12 -0
- package/node_modules/ai/src/generate-object/stream-object-result.ts +120 -0
- package/node_modules/ai/src/generate-object/stream-object.ts +985 -0
- package/node_modules/ai/src/generate-object/validate-object-generation-input.ts +144 -0
- package/node_modules/ai/src/generate-speech/generate-speech-result.ts +30 -0
- package/node_modules/ai/src/generate-speech/generate-speech.ts +191 -0
- package/node_modules/ai/src/generate-speech/generated-audio-file.ts +65 -0
- package/node_modules/ai/src/generate-speech/index.ts +3 -0
- package/node_modules/ai/src/generate-text/callback-events.ts +332 -0
- package/node_modules/ai/src/generate-text/collect-tool-approvals.ts +116 -0
- package/node_modules/ai/src/generate-text/content-part.ts +25 -0
- package/node_modules/ai/src/generate-text/execute-tool-call.ts +197 -0
- package/node_modules/ai/src/generate-text/extract-reasoning-content.ts +17 -0
- package/node_modules/ai/src/generate-text/extract-text-content.ts +15 -0
- package/node_modules/ai/src/generate-text/generate-text-result.ts +168 -0
- package/node_modules/ai/src/generate-text/generate-text.ts +1535 -0
- package/node_modules/ai/src/generate-text/generated-file.ts +70 -0
- package/node_modules/ai/src/generate-text/index.ts +74 -0
- package/node_modules/ai/src/generate-text/is-approval-needed.ts +29 -0
- package/node_modules/ai/src/generate-text/output-utils.ts +23 -0
- package/node_modules/ai/src/generate-text/output.ts +590 -0
- package/node_modules/ai/src/generate-text/parse-tool-call.ts +188 -0
- package/node_modules/ai/src/generate-text/prepare-step.ts +103 -0
- package/node_modules/ai/src/generate-text/prune-messages.ts +167 -0
- package/node_modules/ai/src/generate-text/reasoning-output.ts +20 -0
- package/node_modules/ai/src/generate-text/reasoning.ts +8 -0
- package/node_modules/ai/src/generate-text/response-message.ts +10 -0
- package/node_modules/ai/src/generate-text/run-tools-transformation.ts +442 -0
- package/node_modules/ai/src/generate-text/smooth-stream.ts +162 -0
- package/node_modules/ai/src/generate-text/step-result.ts +290 -0
- package/node_modules/ai/src/generate-text/stop-condition.ts +29 -0
- package/node_modules/ai/src/generate-text/stream-text-result.ts +463 -0
- package/node_modules/ai/src/generate-text/stream-text.ts +2807 -0
- package/node_modules/ai/src/generate-text/to-response-messages.ts +163 -0
- package/node_modules/ai/src/generate-text/tool-approval-request-output.ts +21 -0
- package/node_modules/ai/src/generate-text/tool-call-repair-function.ts +27 -0
- package/node_modules/ai/src/generate-text/tool-call.ts +47 -0
- package/node_modules/ai/src/generate-text/tool-error.ts +34 -0
- package/node_modules/ai/src/generate-text/tool-output-denied.ts +21 -0
- package/node_modules/ai/src/generate-text/tool-output.ts +7 -0
- package/node_modules/ai/src/generate-text/tool-result.ts +36 -0
- package/node_modules/ai/src/generate-text/tool-set.ts +14 -0
- package/node_modules/ai/src/generate-video/generate-video-result.ts +36 -0
- package/node_modules/ai/src/generate-video/generate-video.ts +402 -0
- package/node_modules/ai/src/generate-video/index.ts +3 -0
- package/node_modules/ai/src/global.ts +36 -0
- package/node_modules/ai/src/index.ts +49 -0
- package/node_modules/ai/src/logger/index.ts +6 -0
- package/node_modules/ai/src/logger/log-warnings.ts +140 -0
- package/node_modules/ai/src/middleware/add-tool-input-examples-middleware.ts +90 -0
- package/node_modules/ai/src/middleware/default-embedding-settings-middleware.ts +22 -0
- package/node_modules/ai/src/middleware/default-settings-middleware.ts +33 -0
- package/node_modules/ai/src/middleware/extract-json-middleware.ts +197 -0
- package/node_modules/ai/src/middleware/extract-reasoning-middleware.ts +249 -0
- package/node_modules/ai/src/middleware/index.ts +10 -0
- package/node_modules/ai/src/middleware/simulate-streaming-middleware.ts +79 -0
- package/node_modules/ai/src/middleware/wrap-embedding-model.ts +86 -0
- package/node_modules/ai/src/middleware/wrap-image-model.ts +85 -0
- package/node_modules/ai/src/middleware/wrap-language-model.ts +104 -0
- package/node_modules/ai/src/middleware/wrap-provider.ts +51 -0
- package/node_modules/ai/src/model/as-embedding-model-v3.ts +24 -0
- package/node_modules/ai/src/model/as-image-model-v3.ts +24 -0
- package/node_modules/ai/src/model/as-language-model-v3.ts +103 -0
- package/node_modules/ai/src/model/as-provider-v3.ts +36 -0
- package/node_modules/ai/src/model/as-speech-model-v3.ts +24 -0
- package/node_modules/ai/src/model/as-transcription-model-v3.ts +24 -0
- package/node_modules/ai/src/model/resolve-model.ts +159 -0
- package/node_modules/ai/src/prompt/call-settings.ts +148 -0
- package/node_modules/ai/src/prompt/content-part.ts +215 -0
- package/node_modules/ai/src/prompt/convert-to-language-model-prompt.ts +526 -0
- package/node_modules/ai/src/prompt/create-tool-model-output.ts +34 -0
- package/node_modules/ai/src/prompt/data-content.ts +134 -0
- package/node_modules/ai/src/prompt/index.ts +27 -0
- package/node_modules/ai/src/prompt/invalid-data-content-error.ts +29 -0
- package/node_modules/ai/src/prompt/invalid-message-role-error.ts +27 -0
- package/node_modules/ai/src/prompt/message-conversion-error.ts +28 -0
- package/node_modules/ai/src/prompt/message.ts +68 -0
- package/node_modules/ai/src/prompt/prepare-call-settings.ts +108 -0
- package/node_modules/ai/src/prompt/prepare-tools-and-tool-choice.ts +86 -0
- package/node_modules/ai/src/prompt/prompt.ts +43 -0
- package/node_modules/ai/src/prompt/split-data-url.ts +17 -0
- package/node_modules/ai/src/prompt/standardize-prompt.ts +99 -0
- package/node_modules/ai/src/prompt/wrap-gateway-error.ts +29 -0
- package/node_modules/ai/src/registry/custom-provider.ts +176 -0
- package/node_modules/ai/src/registry/index.ts +7 -0
- package/node_modules/ai/src/registry/no-such-provider-error.ts +41 -0
- package/node_modules/ai/src/registry/provider-registry.ts +328 -0
- package/node_modules/ai/src/rerank/index.ts +2 -0
- package/node_modules/ai/src/rerank/rerank-result.ts +70 -0
- package/node_modules/ai/src/rerank/rerank.ts +239 -0
- package/node_modules/ai/src/telemetry/assemble-operation-name.ts +21 -0
- package/node_modules/ai/src/telemetry/get-base-telemetry-attributes.ts +53 -0
- package/node_modules/ai/src/telemetry/get-global-telemetry-integration.ts +85 -0
- package/node_modules/ai/src/telemetry/get-tracer.ts +20 -0
- package/node_modules/ai/src/telemetry/index.ts +4 -0
- package/node_modules/ai/src/telemetry/noop-tracer.ts +69 -0
- package/node_modules/ai/src/telemetry/record-span.ts +75 -0
- package/node_modules/ai/src/telemetry/select-telemetry-attributes.ts +78 -0
- package/node_modules/ai/src/telemetry/stringify-for-telemetry.ts +33 -0
- package/node_modules/ai/src/telemetry/telemetry-integration-registry.ts +17 -0
- package/node_modules/ai/src/telemetry/telemetry-integration.ts +24 -0
- package/node_modules/ai/src/telemetry/telemetry-settings.ts +53 -0
- package/node_modules/ai/src/test/mock-embedding-model-v2.ts +35 -0
- package/node_modules/ai/src/test/mock-embedding-model-v3.ts +48 -0
- package/node_modules/ai/src/test/mock-image-model-v2.ts +28 -0
- package/node_modules/ai/src/test/mock-image-model-v3.ts +28 -0
- package/node_modules/ai/src/test/mock-language-model-v2.ts +72 -0
- package/node_modules/ai/src/test/mock-language-model-v3.ts +77 -0
- package/node_modules/ai/src/test/mock-provider-v2.ts +68 -0
- package/node_modules/ai/src/test/mock-provider-v3.ts +80 -0
- package/node_modules/ai/src/test/mock-reranking-model-v3.ts +25 -0
- package/node_modules/ai/src/test/mock-server-response.ts +69 -0
- package/node_modules/ai/src/test/mock-speech-model-v2.ts +24 -0
- package/node_modules/ai/src/test/mock-speech-model-v3.ts +24 -0
- package/node_modules/ai/src/test/mock-tracer.ts +156 -0
- package/node_modules/ai/src/test/mock-transcription-model-v2.ts +24 -0
- package/node_modules/ai/src/test/mock-transcription-model-v3.ts +24 -0
- package/node_modules/ai/src/test/mock-values.ts +4 -0
- package/node_modules/ai/src/test/mock-video-model-v3.ts +28 -0
- package/node_modules/ai/src/test/not-implemented.ts +3 -0
- package/node_modules/ai/src/text-stream/create-text-stream-response.ts +30 -0
- package/node_modules/ai/src/text-stream/index.ts +2 -0
- package/node_modules/ai/src/text-stream/pipe-text-stream-to-response.ts +38 -0
- package/node_modules/ai/src/transcribe/index.ts +2 -0
- package/node_modules/ai/src/transcribe/transcribe-result.ts +60 -0
- package/node_modules/ai/src/transcribe/transcribe.ts +187 -0
- package/node_modules/ai/src/types/embedding-model-middleware.ts +3 -0
- package/node_modules/ai/src/types/embedding-model.ts +18 -0
- package/node_modules/ai/src/types/image-model-middleware.ts +3 -0
- package/node_modules/ai/src/types/image-model-response-metadata.ts +16 -0
- package/node_modules/ai/src/types/image-model.ts +19 -0
- package/node_modules/ai/src/types/index.ts +29 -0
- package/node_modules/ai/src/types/json-value.ts +15 -0
- package/node_modules/ai/src/types/language-model-middleware.ts +3 -0
- package/node_modules/ai/src/types/language-model-request-metadata.ts +6 -0
- package/node_modules/ai/src/types/language-model-response-metadata.ts +21 -0
- package/node_modules/ai/src/types/language-model.ts +104 -0
- package/node_modules/ai/src/types/provider-metadata.ts +16 -0
- package/node_modules/ai/src/types/provider.ts +55 -0
- package/node_modules/ai/src/types/reranking-model.ts +6 -0
- package/node_modules/ai/src/types/speech-model-response-metadata.ts +21 -0
- package/node_modules/ai/src/types/speech-model.ts +6 -0
- package/node_modules/ai/src/types/transcription-model-response-metadata.ts +16 -0
- package/node_modules/ai/src/types/transcription-model.ts +9 -0
- package/node_modules/ai/src/types/usage.ts +200 -0
- package/node_modules/ai/src/types/video-model-response-metadata.ts +28 -0
- package/node_modules/ai/src/types/video-model.ts +11 -0
- package/node_modules/ai/src/types/warning.ts +7 -0
- package/node_modules/ai/src/ui/call-completion-api.ts +157 -0
- package/node_modules/ai/src/ui/chat-transport.ts +83 -0
- package/node_modules/ai/src/ui/chat.ts +751 -0
- package/node_modules/ai/src/ui/convert-file-list-to-file-ui-parts.ts +36 -0
- package/node_modules/ai/src/ui/convert-to-model-messages.ts +376 -0
- package/node_modules/ai/src/ui/default-chat-transport.ts +36 -0
- package/node_modules/ai/src/ui/direct-chat-transport.ts +118 -0
- package/node_modules/ai/src/ui/http-chat-transport.ts +284 -0
- package/node_modules/ai/src/ui/index.ts +71 -0
- package/node_modules/ai/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +44 -0
- package/node_modules/ai/src/ui/last-assistant-message-is-complete-with-tool-calls.ts +39 -0
- package/node_modules/ai/src/ui/process-text-stream.ts +16 -0
- package/node_modules/ai/src/ui/process-ui-message-stream.ts +793 -0
- package/node_modules/ai/src/ui/text-stream-chat-transport.ts +23 -0
- package/node_modules/ai/src/ui/transform-text-to-ui-message-stream.ts +27 -0
- package/node_modules/ai/src/ui/ui-messages.ts +536 -0
- package/node_modules/ai/src/ui/use-completion.ts +84 -0
- package/node_modules/ai/src/ui/validate-ui-messages.ts +506 -0
- package/node_modules/ai/src/ui-message-stream/create-ui-message-stream-response.ts +44 -0
- package/node_modules/ai/src/ui-message-stream/create-ui-message-stream.ts +145 -0
- package/node_modules/ai/src/ui-message-stream/get-response-ui-message-id.ts +35 -0
- package/node_modules/ai/src/ui-message-stream/handle-ui-message-stream-finish.ts +170 -0
- package/node_modules/ai/src/ui-message-stream/index.ts +14 -0
- package/node_modules/ai/src/ui-message-stream/json-to-sse-transform-stream.ts +17 -0
- package/node_modules/ai/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +51 -0
- package/node_modules/ai/src/ui-message-stream/read-ui-message-stream.ts +87 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-chunks.ts +346 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-headers.ts +7 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +32 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +25 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-response-init.ts +14 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-writer.ts +24 -0
- package/node_modules/ai/src/util/as-array.ts +3 -0
- package/node_modules/ai/src/util/async-iterable-stream.ts +94 -0
- package/node_modules/ai/src/util/consume-stream.ts +31 -0
- package/node_modules/ai/src/util/cosine-similarity.ts +46 -0
- package/node_modules/ai/src/util/create-resolvable-promise.ts +30 -0
- package/node_modules/ai/src/util/create-stitchable-stream.ts +112 -0
- package/node_modules/ai/src/util/data-url.ts +17 -0
- package/node_modules/ai/src/util/deep-partial.ts +84 -0
- package/node_modules/ai/src/util/detect-media-type.ts +226 -0
- package/node_modules/ai/src/util/download/create-download.ts +13 -0
- package/node_modules/ai/src/util/download/download-function.ts +45 -0
- package/node_modules/ai/src/util/download/download.ts +69 -0
- package/node_modules/ai/src/util/error-handler.ts +1 -0
- package/node_modules/ai/src/util/fix-json.ts +401 -0
- package/node_modules/ai/src/util/get-potential-start-index.ts +39 -0
- package/node_modules/ai/src/util/index.ts +12 -0
- package/node_modules/ai/src/util/is-deep-equal-data.ts +48 -0
- package/node_modules/ai/src/util/is-non-empty-object.ts +5 -0
- package/node_modules/ai/src/util/job.ts +1 -0
- package/node_modules/ai/src/util/log-v2-compatibility-warning.ts +21 -0
- package/node_modules/ai/src/util/merge-abort-signals.ts +43 -0
- package/node_modules/ai/src/util/merge-objects.ts +79 -0
- package/node_modules/ai/src/util/notify.ts +22 -0
- package/node_modules/ai/src/util/now.ts +4 -0
- package/node_modules/ai/src/util/parse-partial-json.ts +30 -0
- package/node_modules/ai/src/util/prepare-headers.ts +14 -0
- package/node_modules/ai/src/util/prepare-retries.ts +47 -0
- package/node_modules/ai/src/util/retry-error.ts +41 -0
- package/node_modules/ai/src/util/retry-with-exponential-backoff.ts +154 -0
- package/node_modules/ai/src/util/serial-job-executor.ts +36 -0
- package/node_modules/ai/src/util/simulate-readable-stream.ts +39 -0
- package/node_modules/ai/src/util/split-array.ts +20 -0
- package/node_modules/ai/src/util/value-of.ts +65 -0
- package/node_modules/ai/src/util/write-to-server-response.ts +49 -0
- package/node_modules/ai/src/version.ts +5 -0
- package/node_modules/ai/test.d.ts +1 -0
- package/node_modules/ansi-regex/index.d.ts +37 -0
- package/node_modules/ansi-regex/index.js +10 -0
- package/node_modules/ansi-regex/license +9 -0
- package/node_modules/ansi-regex/package.json +55 -0
- package/node_modules/ansi-regex/readme.md +78 -0
- package/node_modules/ansi-styles/index.d.ts +345 -0
- package/node_modules/ansi-styles/index.js +163 -0
- package/node_modules/ansi-styles/license +9 -0
- package/node_modules/ansi-styles/package.json +56 -0
- package/node_modules/ansi-styles/readme.md +152 -0
- package/node_modules/cliui/CHANGELOG.md +139 -0
- package/node_modules/cliui/LICENSE.txt +14 -0
- package/node_modules/cliui/README.md +141 -0
- package/node_modules/cliui/build/index.cjs +302 -0
- package/node_modules/cliui/build/index.d.cts +43 -0
- package/node_modules/cliui/build/lib/index.js +287 -0
- package/node_modules/cliui/build/lib/string-utils.js +27 -0
- package/node_modules/cliui/index.mjs +13 -0
- package/node_modules/cliui/package.json +83 -0
- package/node_modules/color-convert/CHANGELOG.md +54 -0
- package/node_modules/color-convert/LICENSE +21 -0
- package/node_modules/color-convert/README.md +68 -0
- package/node_modules/color-convert/conversions.js +839 -0
- package/node_modules/color-convert/index.js +81 -0
- package/node_modules/color-convert/package.json +48 -0
- package/node_modules/color-convert/route.js +97 -0
- package/node_modules/color-name/LICENSE +8 -0
- package/node_modules/color-name/README.md +11 -0
- package/node_modules/color-name/index.js +152 -0
- package/node_modules/color-name/package.json +28 -0
- package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
- package/node_modules/emoji-regex/README.md +73 -0
- package/node_modules/emoji-regex/es2015/index.js +6 -0
- package/node_modules/emoji-regex/es2015/text.js +6 -0
- package/node_modules/emoji-regex/index.d.ts +23 -0
- package/node_modules/emoji-regex/index.js +6 -0
- package/node_modules/emoji-regex/package.json +50 -0
- package/node_modules/emoji-regex/text.js +6 -0
- package/node_modules/escalade/dist/index.js +22 -0
- package/node_modules/escalade/dist/index.mjs +22 -0
- package/node_modules/escalade/index.d.mts +11 -0
- package/node_modules/escalade/index.d.ts +15 -0
- package/node_modules/escalade/license +9 -0
- package/node_modules/escalade/package.json +74 -0
- package/node_modules/escalade/readme.md +211 -0
- package/node_modules/escalade/sync/index.d.mts +9 -0
- package/node_modules/escalade/sync/index.d.ts +13 -0
- package/node_modules/escalade/sync/index.js +18 -0
- package/node_modules/escalade/sync/index.mjs +18 -0
- package/node_modules/eventsource-parser/LICENSE +21 -0
- package/node_modules/eventsource-parser/README.md +126 -0
- package/node_modules/eventsource-parser/dist/index.cjs +166 -0
- package/node_modules/eventsource-parser/dist/index.cjs.map +1 -0
- package/node_modules/eventsource-parser/dist/index.d.cts +146 -0
- package/node_modules/eventsource-parser/dist/index.d.ts +146 -0
- package/node_modules/eventsource-parser/dist/index.js +166 -0
- package/node_modules/eventsource-parser/dist/index.js.map +1 -0
- package/node_modules/eventsource-parser/dist/stream.cjs +28 -0
- package/node_modules/eventsource-parser/dist/stream.cjs.map +1 -0
- package/node_modules/eventsource-parser/dist/stream.d.cts +121 -0
- package/node_modules/eventsource-parser/dist/stream.d.ts +121 -0
- package/node_modules/eventsource-parser/dist/stream.js +29 -0
- package/node_modules/eventsource-parser/dist/stream.js.map +1 -0
- package/node_modules/eventsource-parser/package.json +92 -0
- package/node_modules/eventsource-parser/src/errors.ts +44 -0
- package/node_modules/eventsource-parser/src/index.ts +3 -0
- package/node_modules/eventsource-parser/src/parse.ts +395 -0
- package/node_modules/eventsource-parser/src/stream.ts +88 -0
- package/node_modules/eventsource-parser/src/types.ts +97 -0
- package/node_modules/eventsource-parser/stream.js +2 -0
- package/node_modules/get-caller-file/LICENSE.md +6 -0
- package/node_modules/get-caller-file/README.md +41 -0
- package/node_modules/get-caller-file/index.d.ts +2 -0
- package/node_modules/get-caller-file/index.js +22 -0
- package/node_modules/get-caller-file/index.js.map +1 -0
- package/node_modules/get-caller-file/package.json +42 -0
- package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
- package/node_modules/is-fullwidth-code-point/index.js +50 -0
- package/node_modules/is-fullwidth-code-point/license +9 -0
- package/node_modules/is-fullwidth-code-point/package.json +42 -0
- package/node_modules/is-fullwidth-code-point/readme.md +39 -0
- package/node_modules/json-schema/LICENSE +195 -0
- package/node_modules/json-schema/README.md +3 -0
- package/node_modules/json-schema/lib/links.js +65 -0
- package/node_modules/json-schema/lib/validate.js +271 -0
- package/node_modules/json-schema/package.json +24 -0
- package/node_modules/openai-oauth/LICENSE +661 -0
- package/node_modules/openai-oauth/README.md +76 -0
- package/node_modules/openai-oauth/dist/chunk-2AENSHRT.js +22847 -0
- package/node_modules/openai-oauth/dist/cli.d.ts +1 -0
- package/node_modules/openai-oauth/dist/cli.js +361 -0
- package/node_modules/openai-oauth/dist/index.d.ts +155 -0
- package/node_modules/openai-oauth/dist/index.js +10 -0
- package/node_modules/openai-oauth/package.json +47 -0
- package/node_modules/require-directory/.jshintrc +67 -0
- package/node_modules/require-directory/.npmignore +1 -0
- package/node_modules/require-directory/.travis.yml +3 -0
- package/node_modules/require-directory/LICENSE +22 -0
- package/node_modules/require-directory/README.markdown +184 -0
- package/node_modules/require-directory/index.js +86 -0
- package/node_modules/require-directory/package.json +40 -0
- package/node_modules/string-width/index.d.ts +29 -0
- package/node_modules/string-width/index.js +47 -0
- package/node_modules/string-width/license +9 -0
- package/node_modules/string-width/package.json +56 -0
- package/node_modules/string-width/readme.md +50 -0
- package/node_modules/strip-ansi/index.d.ts +17 -0
- package/node_modules/strip-ansi/index.js +4 -0
- package/node_modules/strip-ansi/license +9 -0
- package/node_modules/strip-ansi/package.json +54 -0
- package/node_modules/strip-ansi/readme.md +46 -0
- package/node_modules/wrap-ansi/index.js +216 -0
- package/node_modules/wrap-ansi/license +9 -0
- package/node_modules/wrap-ansi/package.json +62 -0
- package/node_modules/wrap-ansi/readme.md +91 -0
- package/node_modules/y18n/CHANGELOG.md +100 -0
- package/node_modules/y18n/LICENSE +13 -0
- package/node_modules/y18n/README.md +127 -0
- package/node_modules/y18n/build/index.cjs +203 -0
- package/node_modules/y18n/build/lib/cjs.js +6 -0
- package/node_modules/y18n/build/lib/index.js +174 -0
- package/node_modules/y18n/build/lib/platform-shims/node.js +19 -0
- package/node_modules/y18n/index.mjs +8 -0
- package/node_modules/y18n/package.json +70 -0
- package/node_modules/yargs/LICENSE +21 -0
- package/node_modules/yargs/README.md +204 -0
- package/node_modules/yargs/browser.d.ts +5 -0
- package/node_modules/yargs/browser.mjs +7 -0
- package/node_modules/yargs/build/index.cjs +1 -0
- package/node_modules/yargs/build/lib/argsert.js +62 -0
- package/node_modules/yargs/build/lib/command.js +449 -0
- package/node_modules/yargs/build/lib/completion-templates.js +48 -0
- package/node_modules/yargs/build/lib/completion.js +243 -0
- package/node_modules/yargs/build/lib/middleware.js +88 -0
- package/node_modules/yargs/build/lib/parse-command.js +32 -0
- package/node_modules/yargs/build/lib/typings/common-types.js +9 -0
- package/node_modules/yargs/build/lib/typings/yargs-parser-types.js +1 -0
- package/node_modules/yargs/build/lib/usage.js +584 -0
- package/node_modules/yargs/build/lib/utils/apply-extends.js +59 -0
- package/node_modules/yargs/build/lib/utils/is-promise.js +5 -0
- package/node_modules/yargs/build/lib/utils/levenshtein.js +34 -0
- package/node_modules/yargs/build/lib/utils/maybe-async-result.js +17 -0
- package/node_modules/yargs/build/lib/utils/obj-filter.js +10 -0
- package/node_modules/yargs/build/lib/utils/process-argv.js +17 -0
- package/node_modules/yargs/build/lib/utils/set-blocking.js +12 -0
- package/node_modules/yargs/build/lib/utils/which-module.js +10 -0
- package/node_modules/yargs/build/lib/validation.js +305 -0
- package/node_modules/yargs/build/lib/yargs-factory.js +1512 -0
- package/node_modules/yargs/build/lib/yerror.js +9 -0
- package/node_modules/yargs/helpers/helpers.mjs +10 -0
- package/node_modules/yargs/helpers/index.js +14 -0
- package/node_modules/yargs/helpers/package.json +3 -0
- package/node_modules/yargs/index.cjs +53 -0
- package/node_modules/yargs/index.mjs +8 -0
- package/node_modules/yargs/lib/platform-shims/browser.mjs +95 -0
- package/node_modules/yargs/lib/platform-shims/esm.mjs +73 -0
- package/node_modules/yargs/locales/be.json +46 -0
- package/node_modules/yargs/locales/cs.json +51 -0
- package/node_modules/yargs/locales/de.json +46 -0
- package/node_modules/yargs/locales/en.json +55 -0
- package/node_modules/yargs/locales/es.json +46 -0
- package/node_modules/yargs/locales/fi.json +49 -0
- package/node_modules/yargs/locales/fr.json +53 -0
- package/node_modules/yargs/locales/hi.json +49 -0
- package/node_modules/yargs/locales/hu.json +46 -0
- package/node_modules/yargs/locales/id.json +50 -0
- package/node_modules/yargs/locales/it.json +46 -0
- package/node_modules/yargs/locales/ja.json +51 -0
- package/node_modules/yargs/locales/ko.json +49 -0
- package/node_modules/yargs/locales/nb.json +44 -0
- package/node_modules/yargs/locales/nl.json +49 -0
- package/node_modules/yargs/locales/nn.json +44 -0
- package/node_modules/yargs/locales/pirate.json +13 -0
- package/node_modules/yargs/locales/pl.json +49 -0
- package/node_modules/yargs/locales/pt.json +45 -0
- package/node_modules/yargs/locales/pt_BR.json +48 -0
- package/node_modules/yargs/locales/ru.json +51 -0
- package/node_modules/yargs/locales/th.json +46 -0
- package/node_modules/yargs/locales/tr.json +48 -0
- package/node_modules/yargs/locales/uk_UA.json +51 -0
- package/node_modules/yargs/locales/uz.json +52 -0
- package/node_modules/yargs/locales/zh_CN.json +48 -0
- package/node_modules/yargs/locales/zh_TW.json +51 -0
- package/node_modules/yargs/package.json +123 -0
- package/node_modules/yargs/yargs +9 -0
- package/node_modules/yargs/yargs.mjs +10 -0
- package/node_modules/yargs-parser/CHANGELOG.md +308 -0
- package/node_modules/yargs-parser/LICENSE.txt +14 -0
- package/node_modules/yargs-parser/README.md +518 -0
- package/node_modules/yargs-parser/browser.js +29 -0
- package/node_modules/yargs-parser/build/index.cjs +1050 -0
- package/node_modules/yargs-parser/build/lib/index.js +62 -0
- package/node_modules/yargs-parser/build/lib/string-utils.js +65 -0
- package/node_modules/yargs-parser/build/lib/tokenize-arg-string.js +40 -0
- package/node_modules/yargs-parser/build/lib/yargs-parser-types.js +12 -0
- package/node_modules/yargs-parser/build/lib/yargs-parser.js +1045 -0
- package/node_modules/yargs-parser/package.json +92 -0
- package/package.json +7 -6
- package/routes/capabilities.js +1 -1
- package/skills/ima2/SKILL.md +199 -30
- package/ui/dist/.vite/manifest.json +12 -12
- package/ui/dist/assets/{AgentWorkspace-CKjpho46.js → AgentWorkspace-DAg_7zpY.js} +1 -1
- package/ui/dist/assets/{CardNewsWorkspace-BW52bztP.js → CardNewsWorkspace-Cdxn1ohU.js} +1 -1
- package/ui/dist/assets/{GenerationRequestLogPanel-BPc4gDcY.js → GenerationRequestLogPanel-C_qvEUi2.js} +1 -1
- package/ui/dist/assets/{NodeCanvas-d7dH6h99.js → NodeCanvas-C67sLboA.js} +1 -1
- package/ui/dist/assets/{PromptBuilderPanel-CWbdfzpF.js → PromptBuilderPanel-DjvVdAie.js} +1 -1
- package/ui/dist/assets/{PromptImportDialog-DORdifOt.js → PromptImportDialog-DeQXsEEv.js} +2 -2
- package/ui/dist/assets/{PromptImportDiscoverySection-XA3ZzwAo.js → PromptImportDiscoverySection-CrwyUKYI.js} +1 -1
- package/ui/dist/assets/{PromptImportFolderSection-BjALahD0.js → PromptImportFolderSection-CToGMqYE.js} +1 -1
- package/ui/dist/assets/{PromptLibraryPanel-Co9xIawD.js → PromptLibraryPanel-Db3xEPM_.js} +2 -2
- package/ui/dist/assets/{SettingsWorkspace-BS_gSTTl.js → SettingsWorkspace-BDk_1W-V.js} +1 -1
- package/ui/dist/assets/{index-TRRNueAb.js → index-CoxMOXAU.js} +10 -10
- package/ui/dist/assets/{index-bMxZBOnc.js → index-p8egnGHk.js} +1 -1
- package/ui/dist/index.html +1 -1
- package/vendor/openai-oauth-1.0.2-ima2.1.tgz +0 -0
|
@@ -0,0 +1,1313 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Chatbot
|
|
3
|
+
description: Learn how to use the useChat hook.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Chatbot
|
|
7
|
+
|
|
8
|
+
The `useChat` hook makes it effortless to create a conversational user interface for your chatbot application. It enables the streaming of chat messages from your AI provider, manages the chat state, and updates the UI automatically as new messages arrive.
|
|
9
|
+
|
|
10
|
+
To summarize, the `useChat` hook provides the following features:
|
|
11
|
+
|
|
12
|
+
- **Message Streaming**: All the messages from the AI provider are streamed to the chat UI in real-time.
|
|
13
|
+
- **Managed States**: The hook manages the states for input, messages, status, error and more for you.
|
|
14
|
+
- **Seamless Integration**: Easily integrate your chat AI into any design or layout with minimal effort.
|
|
15
|
+
|
|
16
|
+
In this guide, you will learn how to use the `useChat` hook to create a chatbot application with real-time message streaming.
|
|
17
|
+
Check out our [chatbot with tools guide](/docs/ai-sdk-ui/chatbot-tool-usage) to learn how to use tools in your chatbot.
|
|
18
|
+
Let's start with the following example first.
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
|
|
22
|
+
```tsx filename='app/page.tsx'
|
|
23
|
+
'use client';
|
|
24
|
+
|
|
25
|
+
import { useChat } from '@ai-sdk/react';
|
|
26
|
+
import { DefaultChatTransport } from 'ai';
|
|
27
|
+
import { useState } from 'react';
|
|
28
|
+
|
|
29
|
+
export default function Page() {
|
|
30
|
+
const { messages, sendMessage, status } = useChat({
|
|
31
|
+
transport: new DefaultChatTransport({
|
|
32
|
+
api: '/api/chat',
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
35
|
+
const [input, setInput] = useState('');
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<>
|
|
39
|
+
{messages.map(message => (
|
|
40
|
+
<div key={message.id}>
|
|
41
|
+
{message.role === 'user' ? 'User: ' : 'AI: '}
|
|
42
|
+
{message.parts.map((part, index) =>
|
|
43
|
+
part.type === 'text' ? <span key={index}>{part.text}</span> : null,
|
|
44
|
+
)}
|
|
45
|
+
</div>
|
|
46
|
+
))}
|
|
47
|
+
|
|
48
|
+
<form
|
|
49
|
+
onSubmit={e => {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
if (input.trim()) {
|
|
52
|
+
sendMessage({ text: input });
|
|
53
|
+
setInput('');
|
|
54
|
+
}
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
<input
|
|
58
|
+
value={input}
|
|
59
|
+
onChange={e => setInput(e.target.value)}
|
|
60
|
+
disabled={status !== 'ready'}
|
|
61
|
+
placeholder="Say something..."
|
|
62
|
+
/>
|
|
63
|
+
<button type="submit" disabled={status !== 'ready'}>
|
|
64
|
+
Submit
|
|
65
|
+
</button>
|
|
66
|
+
</form>
|
|
67
|
+
</>
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
```ts filename='app/api/chat/route.ts'
|
|
73
|
+
import { convertToModelMessages, streamText, UIMessage } from 'ai';
|
|
74
|
+
__PROVIDER_IMPORT__;
|
|
75
|
+
|
|
76
|
+
// Allow streaming responses up to 30 seconds
|
|
77
|
+
export const maxDuration = 30;
|
|
78
|
+
|
|
79
|
+
export async function POST(req: Request) {
|
|
80
|
+
const { messages }: { messages: UIMessage[] } = await req.json();
|
|
81
|
+
|
|
82
|
+
const result = streamText({
|
|
83
|
+
model: __MODEL__,
|
|
84
|
+
system: 'You are a helpful assistant.',
|
|
85
|
+
messages: await convertToModelMessages(messages),
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
return result.toUIMessageStreamResponse();
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
<Note>
|
|
93
|
+
The UI messages have a new `parts` property that contains the message parts.
|
|
94
|
+
We recommend rendering the messages using the `parts` property instead of the
|
|
95
|
+
`content` property. The parts property supports different message types,
|
|
96
|
+
including text, tool invocation, and tool result, and allows for more flexible
|
|
97
|
+
and complex chat UIs.
|
|
98
|
+
</Note>
|
|
99
|
+
|
|
100
|
+
In the `Page` component, the `useChat` hook will request to your AI provider endpoint whenever the user sends a message using `sendMessage`.
|
|
101
|
+
The messages are then streamed back in real-time and displayed in the chat UI.
|
|
102
|
+
|
|
103
|
+
This enables a seamless chat experience where the user can see the AI response as soon as it is available,
|
|
104
|
+
without having to wait for the entire response to be received.
|
|
105
|
+
|
|
106
|
+
## Customized UI
|
|
107
|
+
|
|
108
|
+
`useChat` also provides ways to manage the chat message states via code, show status, and update messages without being triggered by user interactions.
|
|
109
|
+
|
|
110
|
+
### Status
|
|
111
|
+
|
|
112
|
+
The `useChat` hook returns a `status`. It has the following possible values:
|
|
113
|
+
|
|
114
|
+
- `submitted`: The message has been sent to the API and we're awaiting the start of the response stream.
|
|
115
|
+
- `streaming`: The response is actively streaming in from the API, receiving chunks of data.
|
|
116
|
+
- `ready`: The full response has been received and processed; a new user message can be submitted.
|
|
117
|
+
- `error`: An error occurred during the API request, preventing successful completion.
|
|
118
|
+
|
|
119
|
+
You can use `status` for e.g. the following purposes:
|
|
120
|
+
|
|
121
|
+
- To show a loading spinner while the chatbot is processing the user's message.
|
|
122
|
+
- To show a "Stop" button to abort the current message.
|
|
123
|
+
- To disable the submit button.
|
|
124
|
+
|
|
125
|
+
```tsx filename='app/page.tsx' highlight="6,22-29,36"
|
|
126
|
+
'use client';
|
|
127
|
+
|
|
128
|
+
import { useChat } from '@ai-sdk/react';
|
|
129
|
+
import { DefaultChatTransport } from 'ai';
|
|
130
|
+
import { useState } from 'react';
|
|
131
|
+
|
|
132
|
+
export default function Page() {
|
|
133
|
+
const { messages, sendMessage, status, stop } = useChat({
|
|
134
|
+
transport: new DefaultChatTransport({
|
|
135
|
+
api: '/api/chat',
|
|
136
|
+
}),
|
|
137
|
+
});
|
|
138
|
+
const [input, setInput] = useState('');
|
|
139
|
+
|
|
140
|
+
return (
|
|
141
|
+
<>
|
|
142
|
+
{messages.map(message => (
|
|
143
|
+
<div key={message.id}>
|
|
144
|
+
{message.role === 'user' ? 'User: ' : 'AI: '}
|
|
145
|
+
{message.parts.map((part, index) =>
|
|
146
|
+
part.type === 'text' ? <span key={index}>{part.text}</span> : null,
|
|
147
|
+
)}
|
|
148
|
+
</div>
|
|
149
|
+
))}
|
|
150
|
+
|
|
151
|
+
{(status === 'submitted' || status === 'streaming') && (
|
|
152
|
+
<div>
|
|
153
|
+
{status === 'submitted' && <Spinner />}
|
|
154
|
+
<button type="button" onClick={() => stop()}>
|
|
155
|
+
Stop
|
|
156
|
+
</button>
|
|
157
|
+
</div>
|
|
158
|
+
)}
|
|
159
|
+
|
|
160
|
+
<form
|
|
161
|
+
onSubmit={e => {
|
|
162
|
+
e.preventDefault();
|
|
163
|
+
if (input.trim()) {
|
|
164
|
+
sendMessage({ text: input });
|
|
165
|
+
setInput('');
|
|
166
|
+
}
|
|
167
|
+
}}
|
|
168
|
+
>
|
|
169
|
+
<input
|
|
170
|
+
value={input}
|
|
171
|
+
onChange={e => setInput(e.target.value)}
|
|
172
|
+
disabled={status !== 'ready'}
|
|
173
|
+
placeholder="Say something..."
|
|
174
|
+
/>
|
|
175
|
+
<button type="submit" disabled={status !== 'ready'}>
|
|
176
|
+
Submit
|
|
177
|
+
</button>
|
|
178
|
+
</form>
|
|
179
|
+
</>
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Error State
|
|
185
|
+
|
|
186
|
+
Similarly, the `error` state reflects the error object thrown during the fetch request.
|
|
187
|
+
It can be used to display an error message, disable the submit button, or show a retry button:
|
|
188
|
+
|
|
189
|
+
<Note>
|
|
190
|
+
We recommend showing a generic error message to the user, such as "Something
|
|
191
|
+
went wrong." This is a good practice to avoid leaking information from the
|
|
192
|
+
server.
|
|
193
|
+
</Note>
|
|
194
|
+
|
|
195
|
+
```tsx file="app/page.tsx" highlight="6,20-27,33"
|
|
196
|
+
'use client';
|
|
197
|
+
|
|
198
|
+
import { useChat } from '@ai-sdk/react';
|
|
199
|
+
import { DefaultChatTransport } from 'ai';
|
|
200
|
+
import { useState } from 'react';
|
|
201
|
+
|
|
202
|
+
export default function Chat() {
|
|
203
|
+
const { messages, sendMessage, error, regenerate } = useChat({
|
|
204
|
+
transport: new DefaultChatTransport({
|
|
205
|
+
api: '/api/chat',
|
|
206
|
+
}),
|
|
207
|
+
});
|
|
208
|
+
const [input, setInput] = useState('');
|
|
209
|
+
|
|
210
|
+
return (
|
|
211
|
+
<div>
|
|
212
|
+
{messages.map(m => (
|
|
213
|
+
<div key={m.id}>
|
|
214
|
+
{m.role}:{' '}
|
|
215
|
+
{m.parts.map((part, index) =>
|
|
216
|
+
part.type === 'text' ? <span key={index}>{part.text}</span> : null,
|
|
217
|
+
)}
|
|
218
|
+
</div>
|
|
219
|
+
))}
|
|
220
|
+
|
|
221
|
+
{error && (
|
|
222
|
+
<>
|
|
223
|
+
<div>An error occurred.</div>
|
|
224
|
+
<button type="button" onClick={() => regenerate()}>
|
|
225
|
+
Retry
|
|
226
|
+
</button>
|
|
227
|
+
</>
|
|
228
|
+
)}
|
|
229
|
+
|
|
230
|
+
<form
|
|
231
|
+
onSubmit={e => {
|
|
232
|
+
e.preventDefault();
|
|
233
|
+
if (input.trim()) {
|
|
234
|
+
sendMessage({ text: input });
|
|
235
|
+
setInput('');
|
|
236
|
+
}
|
|
237
|
+
}}
|
|
238
|
+
>
|
|
239
|
+
<input
|
|
240
|
+
value={input}
|
|
241
|
+
onChange={e => setInput(e.target.value)}
|
|
242
|
+
disabled={error != null}
|
|
243
|
+
/>
|
|
244
|
+
</form>
|
|
245
|
+
</div>
|
|
246
|
+
);
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Please also see the [error handling](/docs/ai-sdk-ui/error-handling) guide for more information.
|
|
251
|
+
|
|
252
|
+
### Modify messages
|
|
253
|
+
|
|
254
|
+
Sometimes, you may want to directly modify some existing messages. For example, a delete button can be added to each message to allow users to remove them from the chat history.
|
|
255
|
+
|
|
256
|
+
The `setMessages` function can help you achieve these tasks:
|
|
257
|
+
|
|
258
|
+
```tsx
|
|
259
|
+
const { messages, setMessages } = useChat()
|
|
260
|
+
|
|
261
|
+
const handleDelete = (id) => {
|
|
262
|
+
setMessages(messages.filter(message => message.id !== id))
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
return <>
|
|
266
|
+
{messages.map(message => (
|
|
267
|
+
<div key={message.id}>
|
|
268
|
+
{message.role === 'user' ? 'User: ' : 'AI: '}
|
|
269
|
+
{message.parts.map((part, index) => (
|
|
270
|
+
part.type === 'text' ? (
|
|
271
|
+
<span key={index}>{part.text}</span>
|
|
272
|
+
) : null
|
|
273
|
+
))}
|
|
274
|
+
<button onClick={() => handleDelete(message.id)}>Delete</button>
|
|
275
|
+
</div>
|
|
276
|
+
))}
|
|
277
|
+
...
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
You can think of `messages` and `setMessages` as a pair of `state` and `setState` in React.
|
|
281
|
+
|
|
282
|
+
### Cancellation and regeneration
|
|
283
|
+
|
|
284
|
+
It's also a common use case to abort the response message while it's still streaming back from the AI provider. You can do this by calling the `stop` function returned by the `useChat` hook.
|
|
285
|
+
|
|
286
|
+
```tsx
|
|
287
|
+
const { stop, status } = useChat()
|
|
288
|
+
|
|
289
|
+
return <>
|
|
290
|
+
<button onClick={stop} disabled={!(status === 'streaming' || status === 'submitted')}>Stop</button>
|
|
291
|
+
...
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
When the user clicks the "Stop" button, the fetch request will be aborted. This avoids consuming unnecessary resources and improves the UX of your chatbot application.
|
|
295
|
+
|
|
296
|
+
Similarly, you can also request the AI provider to reprocess the last message by calling the `regenerate` function returned by the `useChat` hook:
|
|
297
|
+
|
|
298
|
+
```tsx
|
|
299
|
+
const { regenerate, status } = useChat();
|
|
300
|
+
|
|
301
|
+
return (
|
|
302
|
+
<>
|
|
303
|
+
<button
|
|
304
|
+
onClick={regenerate}
|
|
305
|
+
disabled={!(status === 'ready' || status === 'error')}
|
|
306
|
+
>
|
|
307
|
+
Regenerate
|
|
308
|
+
</button>
|
|
309
|
+
...
|
|
310
|
+
</>
|
|
311
|
+
);
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
When the user clicks the "Regenerate" button, the AI provider will regenerate the last message and replace the current one correspondingly.
|
|
315
|
+
|
|
316
|
+
### Throttling UI Updates
|
|
317
|
+
|
|
318
|
+
<Note>This feature is currently only available for React.</Note>
|
|
319
|
+
|
|
320
|
+
By default, the `useChat` hook will trigger a render every time a new chunk is received.
|
|
321
|
+
You can throttle the UI updates with the `experimental_throttle` option.
|
|
322
|
+
|
|
323
|
+
```tsx filename="page.tsx" highlight="2-3"
|
|
324
|
+
const { messages, ... } = useChat({
|
|
325
|
+
// Throttle the messages and data updates to 50ms:
|
|
326
|
+
experimental_throttle: 50
|
|
327
|
+
})
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
## Event Callbacks
|
|
331
|
+
|
|
332
|
+
`useChat` provides optional event callbacks that you can use to handle different stages of the chatbot lifecycle:
|
|
333
|
+
|
|
334
|
+
- `onFinish`: Called when the assistant response is completed. The event includes the response message, all messages, and flags for abort, disconnect, and errors.
|
|
335
|
+
- `onError`: Called when an error occurs during the fetch request.
|
|
336
|
+
- `onData`: Called whenever a data part is received.
|
|
337
|
+
|
|
338
|
+
These callbacks can be used to trigger additional actions, such as logging, analytics, or custom UI updates.
|
|
339
|
+
|
|
340
|
+
```tsx
|
|
341
|
+
import { UIMessage } from 'ai';
|
|
342
|
+
|
|
343
|
+
const {
|
|
344
|
+
/* ... */
|
|
345
|
+
} = useChat({
|
|
346
|
+
onFinish: ({ message, messages, isAbort, isDisconnect, isError }) => {
|
|
347
|
+
// use information to e.g. update other UI states
|
|
348
|
+
},
|
|
349
|
+
onError: error => {
|
|
350
|
+
console.error('An error occurred:', error);
|
|
351
|
+
},
|
|
352
|
+
onData: data => {
|
|
353
|
+
console.log('Received data part from server:', data);
|
|
354
|
+
},
|
|
355
|
+
});
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
It's worth noting that you can abort the processing by throwing an error in the `onData` callback. This will trigger the `onError` callback and stop the message from being appended to the chat UI. This can be useful for handling unexpected responses from the AI provider.
|
|
359
|
+
|
|
360
|
+
## Request Configuration
|
|
361
|
+
|
|
362
|
+
### Custom headers, body, and credentials
|
|
363
|
+
|
|
364
|
+
By default, the `useChat` hook sends a HTTP POST request to the `/api/chat` endpoint with the message list as the request body. You can customize the request in two ways:
|
|
365
|
+
|
|
366
|
+
#### Hook-Level Configuration (Applied to all requests)
|
|
367
|
+
|
|
368
|
+
You can configure transport-level options that will be applied to all requests made by the hook:
|
|
369
|
+
|
|
370
|
+
```tsx
|
|
371
|
+
import { useChat } from '@ai-sdk/react';
|
|
372
|
+
import { DefaultChatTransport } from 'ai';
|
|
373
|
+
|
|
374
|
+
const { messages, sendMessage } = useChat({
|
|
375
|
+
transport: new DefaultChatTransport({
|
|
376
|
+
api: '/api/custom-chat',
|
|
377
|
+
headers: {
|
|
378
|
+
Authorization: 'your_token',
|
|
379
|
+
},
|
|
380
|
+
body: {
|
|
381
|
+
user_id: '123',
|
|
382
|
+
},
|
|
383
|
+
credentials: 'same-origin',
|
|
384
|
+
}),
|
|
385
|
+
});
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
#### Dynamic Hook-Level Configuration
|
|
389
|
+
|
|
390
|
+
You can also provide functions that return configuration values. This is useful for authentication tokens that need to be refreshed, or for configuration that depends on runtime conditions:
|
|
391
|
+
|
|
392
|
+
```tsx
|
|
393
|
+
import { useChat } from '@ai-sdk/react';
|
|
394
|
+
import { DefaultChatTransport } from 'ai';
|
|
395
|
+
|
|
396
|
+
const { messages, sendMessage } = useChat({
|
|
397
|
+
transport: new DefaultChatTransport({
|
|
398
|
+
api: '/api/custom-chat',
|
|
399
|
+
headers: () => ({
|
|
400
|
+
Authorization: `Bearer ${getAuthToken()}`,
|
|
401
|
+
'X-User-ID': getCurrentUserId(),
|
|
402
|
+
}),
|
|
403
|
+
body: () => ({
|
|
404
|
+
sessionId: getCurrentSessionId(),
|
|
405
|
+
preferences: getUserPreferences(),
|
|
406
|
+
}),
|
|
407
|
+
credentials: () => 'include',
|
|
408
|
+
}),
|
|
409
|
+
});
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
<Note>
|
|
413
|
+
For component state that changes over time, use `useRef` to store the current
|
|
414
|
+
value and reference `ref.current` in your configuration function, or prefer
|
|
415
|
+
request-level options (see next section) for better reliability.
|
|
416
|
+
</Note>
|
|
417
|
+
|
|
418
|
+
#### Request-Level Configuration (Recommended)
|
|
419
|
+
|
|
420
|
+
<Note>
|
|
421
|
+
**Recommended**: Use request-level options for better flexibility and control.
|
|
422
|
+
Request-level options take precedence over hook-level options and allow you to
|
|
423
|
+
customize each request individually.
|
|
424
|
+
</Note>
|
|
425
|
+
|
|
426
|
+
```tsx
|
|
427
|
+
// Pass options as the second parameter to sendMessage
|
|
428
|
+
sendMessage(
|
|
429
|
+
{ text: input },
|
|
430
|
+
{
|
|
431
|
+
headers: {
|
|
432
|
+
Authorization: 'Bearer token123',
|
|
433
|
+
'X-Custom-Header': 'custom-value',
|
|
434
|
+
},
|
|
435
|
+
body: {
|
|
436
|
+
temperature: 0.7,
|
|
437
|
+
max_tokens: 100,
|
|
438
|
+
user_id: '123',
|
|
439
|
+
},
|
|
440
|
+
metadata: {
|
|
441
|
+
userId: 'user123',
|
|
442
|
+
sessionId: 'session456',
|
|
443
|
+
},
|
|
444
|
+
},
|
|
445
|
+
);
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
The request-level options are merged with hook-level options, with request-level options taking precedence. On your server side, you can handle the request with this additional information.
|
|
449
|
+
|
|
450
|
+
### Setting custom body fields per request
|
|
451
|
+
|
|
452
|
+
You can configure custom `body` fields on a per-request basis using the second parameter of the `sendMessage` function.
|
|
453
|
+
This is useful if you want to pass in additional information to your backend that is not part of the message list.
|
|
454
|
+
|
|
455
|
+
```tsx filename="app/page.tsx" highlight="20-25"
|
|
456
|
+
'use client';
|
|
457
|
+
|
|
458
|
+
import { useChat } from '@ai-sdk/react';
|
|
459
|
+
import { useState } from 'react';
|
|
460
|
+
|
|
461
|
+
export default function Chat() {
|
|
462
|
+
const { messages, sendMessage } = useChat();
|
|
463
|
+
const [input, setInput] = useState('');
|
|
464
|
+
|
|
465
|
+
return (
|
|
466
|
+
<div>
|
|
467
|
+
{messages.map(m => (
|
|
468
|
+
<div key={m.id}>
|
|
469
|
+
{m.role}:{' '}
|
|
470
|
+
{m.parts.map((part, index) =>
|
|
471
|
+
part.type === 'text' ? <span key={index}>{part.text}</span> : null,
|
|
472
|
+
)}
|
|
473
|
+
</div>
|
|
474
|
+
))}
|
|
475
|
+
|
|
476
|
+
<form
|
|
477
|
+
onSubmit={event => {
|
|
478
|
+
event.preventDefault();
|
|
479
|
+
if (input.trim()) {
|
|
480
|
+
sendMessage(
|
|
481
|
+
{ text: input },
|
|
482
|
+
{
|
|
483
|
+
body: {
|
|
484
|
+
customKey: 'customValue',
|
|
485
|
+
},
|
|
486
|
+
},
|
|
487
|
+
);
|
|
488
|
+
setInput('');
|
|
489
|
+
}
|
|
490
|
+
}}
|
|
491
|
+
>
|
|
492
|
+
<input value={input} onChange={e => setInput(e.target.value)} />
|
|
493
|
+
</form>
|
|
494
|
+
</div>
|
|
495
|
+
);
|
|
496
|
+
}
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
You can retrieve these custom fields on your server side by destructuring the request body:
|
|
500
|
+
|
|
501
|
+
```ts filename="app/api/chat/route.ts" highlight="3,4"
|
|
502
|
+
export async function POST(req: Request) {
|
|
503
|
+
// Extract additional information ("customKey") from the body of the request:
|
|
504
|
+
const { messages, customKey }: { messages: UIMessage[]; customKey: string } =
|
|
505
|
+
await req.json();
|
|
506
|
+
//...
|
|
507
|
+
}
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
## Message Metadata
|
|
511
|
+
|
|
512
|
+
You can attach custom metadata to messages for tracking information like timestamps, model details, and token usage.
|
|
513
|
+
|
|
514
|
+
```ts
|
|
515
|
+
// Server: Send metadata about the message
|
|
516
|
+
return result.toUIMessageStreamResponse({
|
|
517
|
+
messageMetadata: ({ part }) => {
|
|
518
|
+
if (part.type === 'start') {
|
|
519
|
+
return {
|
|
520
|
+
createdAt: Date.now(),
|
|
521
|
+
model: 'gpt-5.1',
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
if (part.type === 'finish') {
|
|
526
|
+
return {
|
|
527
|
+
totalTokens: part.totalUsage.totalTokens,
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
},
|
|
531
|
+
});
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
```tsx
|
|
535
|
+
// Client: Access metadata via message.metadata
|
|
536
|
+
{
|
|
537
|
+
messages.map(message => (
|
|
538
|
+
<div key={message.id}>
|
|
539
|
+
{message.role}:{' '}
|
|
540
|
+
{message.metadata?.createdAt &&
|
|
541
|
+
new Date(message.metadata.createdAt).toLocaleTimeString()}
|
|
542
|
+
{/* Render message content */}
|
|
543
|
+
{message.parts.map((part, index) =>
|
|
544
|
+
part.type === 'text' ? <span key={index}>{part.text}</span> : null,
|
|
545
|
+
)}
|
|
546
|
+
{/* Show token count if available */}
|
|
547
|
+
{message.metadata?.totalTokens && (
|
|
548
|
+
<span>{message.metadata.totalTokens} tokens</span>
|
|
549
|
+
)}
|
|
550
|
+
</div>
|
|
551
|
+
));
|
|
552
|
+
}
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
For complete examples with type safety and advanced use cases, see the [Message Metadata documentation](/docs/ai-sdk-ui/message-metadata).
|
|
556
|
+
|
|
557
|
+
## Transport Configuration
|
|
558
|
+
|
|
559
|
+
You can configure custom transport behavior using the `transport` option to customize how messages are sent to your API:
|
|
560
|
+
|
|
561
|
+
```tsx filename="app/page.tsx"
|
|
562
|
+
import { useChat } from '@ai-sdk/react';
|
|
563
|
+
import { DefaultChatTransport } from 'ai';
|
|
564
|
+
|
|
565
|
+
export default function Chat() {
|
|
566
|
+
const { messages, sendMessage } = useChat({
|
|
567
|
+
id: 'my-chat',
|
|
568
|
+
transport: new DefaultChatTransport({
|
|
569
|
+
prepareSendMessagesRequest: ({ id, messages }) => {
|
|
570
|
+
return {
|
|
571
|
+
body: {
|
|
572
|
+
id,
|
|
573
|
+
message: messages[messages.length - 1],
|
|
574
|
+
},
|
|
575
|
+
};
|
|
576
|
+
},
|
|
577
|
+
}),
|
|
578
|
+
});
|
|
579
|
+
|
|
580
|
+
// ... rest of your component
|
|
581
|
+
}
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
The corresponding API route receives the custom request format:
|
|
585
|
+
|
|
586
|
+
```ts filename="app/api/chat/route.ts"
|
|
587
|
+
export async function POST(req: Request) {
|
|
588
|
+
const { id, message } = await req.json();
|
|
589
|
+
|
|
590
|
+
// Load existing messages and add the new one
|
|
591
|
+
const messages = await loadMessages(id);
|
|
592
|
+
messages.push(message);
|
|
593
|
+
|
|
594
|
+
const result = streamText({
|
|
595
|
+
model: __MODEL__,
|
|
596
|
+
messages: await convertToModelMessages(messages),
|
|
597
|
+
});
|
|
598
|
+
|
|
599
|
+
return result.toUIMessageStreamResponse();
|
|
600
|
+
}
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
### Advanced: Trigger-based routing
|
|
604
|
+
|
|
605
|
+
For more complex scenarios like message regeneration, you can use trigger-based routing:
|
|
606
|
+
|
|
607
|
+
```tsx filename="app/page.tsx"
|
|
608
|
+
import { useChat } from '@ai-sdk/react';
|
|
609
|
+
import { DefaultChatTransport } from 'ai';
|
|
610
|
+
|
|
611
|
+
export default function Chat() {
|
|
612
|
+
const { messages, sendMessage, regenerate } = useChat({
|
|
613
|
+
id: 'my-chat',
|
|
614
|
+
transport: new DefaultChatTransport({
|
|
615
|
+
prepareSendMessagesRequest: ({ id, messages, trigger, messageId }) => {
|
|
616
|
+
if (trigger === 'submit-user-message') {
|
|
617
|
+
return {
|
|
618
|
+
body: {
|
|
619
|
+
trigger: 'submit-user-message',
|
|
620
|
+
id,
|
|
621
|
+
message: messages[messages.length - 1],
|
|
622
|
+
messageId,
|
|
623
|
+
},
|
|
624
|
+
};
|
|
625
|
+
} else if (trigger === 'regenerate-assistant-message') {
|
|
626
|
+
return {
|
|
627
|
+
body: {
|
|
628
|
+
trigger: 'regenerate-assistant-message',
|
|
629
|
+
id,
|
|
630
|
+
messageId,
|
|
631
|
+
},
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
throw new Error(`Unsupported trigger: ${trigger}`);
|
|
635
|
+
},
|
|
636
|
+
}),
|
|
637
|
+
});
|
|
638
|
+
|
|
639
|
+
// ... rest of your component
|
|
640
|
+
}
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
The corresponding API route would handle different triggers:
|
|
644
|
+
|
|
645
|
+
```ts filename="app/api/chat/route.ts"
|
|
646
|
+
export async function POST(req: Request) {
|
|
647
|
+
const { trigger, id, message, messageId } = await req.json();
|
|
648
|
+
|
|
649
|
+
const chat = await readChat(id);
|
|
650
|
+
let messages = chat.messages;
|
|
651
|
+
|
|
652
|
+
if (trigger === 'submit-user-message') {
|
|
653
|
+
// Handle new user message
|
|
654
|
+
messages = [...messages, message];
|
|
655
|
+
} else if (trigger === 'regenerate-assistant-message') {
|
|
656
|
+
// Handle message regeneration - remove messages after messageId
|
|
657
|
+
const messageIndex = messages.findIndex(m => m.id === messageId);
|
|
658
|
+
if (messageIndex !== -1) {
|
|
659
|
+
messages = messages.slice(0, messageIndex);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
const result = streamText({
|
|
664
|
+
model: __MODEL__,
|
|
665
|
+
messages: await convertToModelMessages(messages),
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
return result.toUIMessageStreamResponse();
|
|
669
|
+
}
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
To learn more about building custom transports, refer to the [Transport API documentation](/docs/ai-sdk-ui/transport).
|
|
673
|
+
|
|
674
|
+
### Direct Agent Transport
|
|
675
|
+
|
|
676
|
+
For scenarios where you want to communicate directly with an Agent without going through HTTP, you can use `DirectChatTransport`. This is useful for:
|
|
677
|
+
|
|
678
|
+
- Server-side rendering scenarios
|
|
679
|
+
- Testing without network
|
|
680
|
+
- Single-process applications
|
|
681
|
+
|
|
682
|
+
```tsx filename="app/page.tsx"
|
|
683
|
+
import { useChat } from '@ai-sdk/react';
|
|
684
|
+
import { DirectChatTransport, ToolLoopAgent } from 'ai';
|
|
685
|
+
__PROVIDER_IMPORT__;
|
|
686
|
+
|
|
687
|
+
const agent = new ToolLoopAgent({
|
|
688
|
+
model: __MODEL__,
|
|
689
|
+
instructions: 'You are a helpful assistant.',
|
|
690
|
+
});
|
|
691
|
+
|
|
692
|
+
export default function Chat() {
|
|
693
|
+
const { messages, sendMessage, status } = useChat({
|
|
694
|
+
transport: new DirectChatTransport({ agent }),
|
|
695
|
+
});
|
|
696
|
+
|
|
697
|
+
return (
|
|
698
|
+
<>
|
|
699
|
+
{messages.map(message => (
|
|
700
|
+
<div key={message.id}>
|
|
701
|
+
{message.role === 'user' ? 'User: ' : 'AI: '}
|
|
702
|
+
{message.parts.map((part, index) =>
|
|
703
|
+
part.type === 'text' ? <span key={index}>{part.text}</span> : null,
|
|
704
|
+
)}
|
|
705
|
+
</div>
|
|
706
|
+
))}
|
|
707
|
+
|
|
708
|
+
<button
|
|
709
|
+
onClick={() => sendMessage({ text: 'Hello!' })}
|
|
710
|
+
disabled={status !== 'ready'}
|
|
711
|
+
>
|
|
712
|
+
Send
|
|
713
|
+
</button>
|
|
714
|
+
</>
|
|
715
|
+
);
|
|
716
|
+
}
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
The `DirectChatTransport` invokes the agent's `stream()` method directly, converting UI messages to model messages and streaming the response back as UI message chunks.
|
|
720
|
+
|
|
721
|
+
For more details, see the [DirectChatTransport reference](/docs/reference/ai-sdk-ui/direct-chat-transport).
|
|
722
|
+
|
|
723
|
+
## Controlling the response stream
|
|
724
|
+
|
|
725
|
+
With `streamText`, you can control how error messages and usage information are sent back to the client.
|
|
726
|
+
|
|
727
|
+
### Error Messages
|
|
728
|
+
|
|
729
|
+
By default, the error message is masked for security reasons.
|
|
730
|
+
The default error message is "An error occurred."
|
|
731
|
+
You can forward error messages or send your own error message by providing a `getErrorMessage` function:
|
|
732
|
+
|
|
733
|
+
```ts filename="app/api/chat/route.ts" highlight="13-27"
|
|
734
|
+
import { convertToModelMessages, streamText, UIMessage } from 'ai';
|
|
735
|
+
__PROVIDER_IMPORT__;
|
|
736
|
+
|
|
737
|
+
export async function POST(req: Request) {
|
|
738
|
+
const { messages }: { messages: UIMessage[] } = await req.json();
|
|
739
|
+
|
|
740
|
+
const result = streamText({
|
|
741
|
+
model: __MODEL__,
|
|
742
|
+
messages: await convertToModelMessages(messages),
|
|
743
|
+
});
|
|
744
|
+
|
|
745
|
+
return result.toUIMessageStreamResponse({
|
|
746
|
+
onError: error => {
|
|
747
|
+
if (error == null) {
|
|
748
|
+
return 'unknown error';
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
if (typeof error === 'string') {
|
|
752
|
+
return error;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
if (error instanceof Error) {
|
|
756
|
+
return error.message;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
return JSON.stringify(error);
|
|
760
|
+
},
|
|
761
|
+
});
|
|
762
|
+
}
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
### Usage Information
|
|
766
|
+
|
|
767
|
+
Track token consumption and resource usage with [message metadata](/docs/ai-sdk-ui/message-metadata):
|
|
768
|
+
|
|
769
|
+
1. Define a custom metadata type with usage fields (optional, for type safety)
|
|
770
|
+
2. Attach usage data using `messageMetadata` in your response
|
|
771
|
+
3. Display usage metrics in your UI components
|
|
772
|
+
|
|
773
|
+
Usage data is attached as metadata to messages and becomes available once the model completes its response generation.
|
|
774
|
+
|
|
775
|
+
```ts
|
|
776
|
+
import { openai } from '@ai-sdk/openai';
|
|
777
|
+
import {
|
|
778
|
+
convertToModelMessages,
|
|
779
|
+
streamText,
|
|
780
|
+
UIMessage,
|
|
781
|
+
type LanguageModelUsage,
|
|
782
|
+
} from 'ai';
|
|
783
|
+
__PROVIDER_IMPORT__;
|
|
784
|
+
|
|
785
|
+
// Create a new metadata type (optional for type-safety)
|
|
786
|
+
type MyMetadata = {
|
|
787
|
+
totalUsage: LanguageModelUsage;
|
|
788
|
+
};
|
|
789
|
+
|
|
790
|
+
// Create a new custom message type with your own metadata
|
|
791
|
+
export type MyUIMessage = UIMessage<MyMetadata>;
|
|
792
|
+
|
|
793
|
+
export async function POST(req: Request) {
|
|
794
|
+
const { messages }: { messages: MyUIMessage[] } = await req.json();
|
|
795
|
+
|
|
796
|
+
const result = streamText({
|
|
797
|
+
model: __MODEL__,
|
|
798
|
+
messages: await convertToModelMessages(messages),
|
|
799
|
+
});
|
|
800
|
+
|
|
801
|
+
return result.toUIMessageStreamResponse({
|
|
802
|
+
originalMessages: messages,
|
|
803
|
+
messageMetadata: ({ part }) => {
|
|
804
|
+
// Send total usage when generation is finished
|
|
805
|
+
if (part.type === 'finish') {
|
|
806
|
+
return { totalUsage: part.totalUsage };
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
});
|
|
810
|
+
}
|
|
811
|
+
```
|
|
812
|
+
|
|
813
|
+
Then, on the client, you can access the message-level metadata.
|
|
814
|
+
|
|
815
|
+
```tsx
|
|
816
|
+
'use client';
|
|
817
|
+
|
|
818
|
+
import { useChat } from '@ai-sdk/react';
|
|
819
|
+
import type { MyUIMessage } from './api/chat/route';
|
|
820
|
+
import { DefaultChatTransport } from 'ai';
|
|
821
|
+
|
|
822
|
+
export default function Chat() {
|
|
823
|
+
// Use custom message type defined on the server (optional for type-safety)
|
|
824
|
+
const { messages } = useChat<MyUIMessage>({
|
|
825
|
+
transport: new DefaultChatTransport({
|
|
826
|
+
api: '/api/chat',
|
|
827
|
+
}),
|
|
828
|
+
});
|
|
829
|
+
|
|
830
|
+
return (
|
|
831
|
+
<div className="flex flex-col w-full max-w-md py-24 mx-auto stretch">
|
|
832
|
+
{messages.map(m => (
|
|
833
|
+
<div key={m.id} className="whitespace-pre-wrap">
|
|
834
|
+
{m.role === 'user' ? 'User: ' : 'AI: '}
|
|
835
|
+
{m.parts.map(part => {
|
|
836
|
+
if (part.type === 'text') {
|
|
837
|
+
return part.text;
|
|
838
|
+
}
|
|
839
|
+
})}
|
|
840
|
+
{/* Render usage via metadata */}
|
|
841
|
+
{m.metadata?.totalUsage && (
|
|
842
|
+
<div>Total usage: {m.metadata?.totalUsage.totalTokens} tokens</div>
|
|
843
|
+
)}
|
|
844
|
+
</div>
|
|
845
|
+
))}
|
|
846
|
+
</div>
|
|
847
|
+
);
|
|
848
|
+
}
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
You can also access your metadata from the `onFinish` callback of `useChat`:
|
|
852
|
+
|
|
853
|
+
```tsx
|
|
854
|
+
'use client';
|
|
855
|
+
|
|
856
|
+
import { useChat } from '@ai-sdk/react';
|
|
857
|
+
import type { MyUIMessage } from './api/chat/route';
|
|
858
|
+
import { DefaultChatTransport } from 'ai';
|
|
859
|
+
|
|
860
|
+
export default function Chat() {
|
|
861
|
+
// Use custom message type defined on the server (optional for type-safety)
|
|
862
|
+
const { messages } = useChat<MyUIMessage>({
|
|
863
|
+
transport: new DefaultChatTransport({
|
|
864
|
+
api: '/api/chat',
|
|
865
|
+
}),
|
|
866
|
+
onFinish: ({ message }) => {
|
|
867
|
+
// Access message metadata via onFinish callback
|
|
868
|
+
console.log(message.metadata?.totalUsage);
|
|
869
|
+
},
|
|
870
|
+
});
|
|
871
|
+
}
|
|
872
|
+
```
|
|
873
|
+
|
|
874
|
+
### Text Streams
|
|
875
|
+
|
|
876
|
+
`useChat` can handle plain text streams by setting the `streamProtocol` option to `text`:
|
|
877
|
+
|
|
878
|
+
```tsx filename="app/page.tsx" highlight="7"
|
|
879
|
+
'use client';
|
|
880
|
+
|
|
881
|
+
import { useChat } from '@ai-sdk/react';
|
|
882
|
+
import { TextStreamChatTransport } from 'ai';
|
|
883
|
+
|
|
884
|
+
export default function Chat() {
|
|
885
|
+
const { messages } = useChat({
|
|
886
|
+
transport: new TextStreamChatTransport({
|
|
887
|
+
api: '/api/chat',
|
|
888
|
+
}),
|
|
889
|
+
});
|
|
890
|
+
|
|
891
|
+
return <>...</>;
|
|
892
|
+
}
|
|
893
|
+
```
|
|
894
|
+
|
|
895
|
+
This configuration also works with other backend servers that stream plain text.
|
|
896
|
+
Check out the [stream protocol guide](/docs/ai-sdk-ui/stream-protocol) for more information.
|
|
897
|
+
|
|
898
|
+
<Note>
|
|
899
|
+
When using `TextStreamChatTransport`, tool calls, usage information and finish
|
|
900
|
+
reasons are not available.
|
|
901
|
+
</Note>
|
|
902
|
+
|
|
903
|
+
## Reasoning
|
|
904
|
+
|
|
905
|
+
Some models such as DeepSeek `deepseek-r1`
|
|
906
|
+
and Anthropic `claude-sonnet-4-5-20250929` support reasoning tokens.
|
|
907
|
+
These tokens are typically sent before the message content.
|
|
908
|
+
You can forward them to the client with the `sendReasoning` option:
|
|
909
|
+
|
|
910
|
+
```ts filename="app/api/chat/route.ts" highlight="13"
|
|
911
|
+
import { convertToModelMessages, streamText, UIMessage } from 'ai';
|
|
912
|
+
|
|
913
|
+
export async function POST(req: Request) {
|
|
914
|
+
const { messages }: { messages: UIMessage[] } = await req.json();
|
|
915
|
+
|
|
916
|
+
const result = streamText({
|
|
917
|
+
model: 'deepseek/deepseek-r1',
|
|
918
|
+
messages: await convertToModelMessages(messages),
|
|
919
|
+
});
|
|
920
|
+
|
|
921
|
+
return result.toUIMessageStreamResponse({
|
|
922
|
+
sendReasoning: true,
|
|
923
|
+
});
|
|
924
|
+
}
|
|
925
|
+
```
|
|
926
|
+
|
|
927
|
+
On the client side, you can access the reasoning parts of the message object.
|
|
928
|
+
|
|
929
|
+
Reasoning parts have a `text` property that contains the reasoning content.
|
|
930
|
+
|
|
931
|
+
```tsx filename="app/page.tsx"
|
|
932
|
+
messages.map(message => (
|
|
933
|
+
<div key={message.id}>
|
|
934
|
+
{message.role === 'user' ? 'User: ' : 'AI: '}
|
|
935
|
+
{message.parts.map((part, index) => {
|
|
936
|
+
// text parts:
|
|
937
|
+
if (part.type === 'text') {
|
|
938
|
+
return <div key={index}>{part.text}</div>;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
// reasoning parts:
|
|
942
|
+
if (part.type === 'reasoning') {
|
|
943
|
+
return <pre key={index}>{part.text}</pre>;
|
|
944
|
+
}
|
|
945
|
+
})}
|
|
946
|
+
</div>
|
|
947
|
+
));
|
|
948
|
+
```
|
|
949
|
+
|
|
950
|
+
## Sources
|
|
951
|
+
|
|
952
|
+
Some providers such as [Perplexity](/providers/ai-sdk-providers/perplexity#sources) and
|
|
953
|
+
[Google Generative AI](/providers/ai-sdk-providers/google-generative-ai#sources) include sources in the response.
|
|
954
|
+
|
|
955
|
+
Currently sources are limited to web pages that ground the response.
|
|
956
|
+
You can forward them to the client with the `sendSources` option:
|
|
957
|
+
|
|
958
|
+
```ts filename="app/api/chat/route.ts" highlight="13"
|
|
959
|
+
import { convertToModelMessages, streamText, UIMessage } from 'ai';
|
|
960
|
+
|
|
961
|
+
export async function POST(req: Request) {
|
|
962
|
+
const { messages }: { messages: UIMessage[] } = await req.json();
|
|
963
|
+
|
|
964
|
+
const result = streamText({
|
|
965
|
+
model: 'perplexity/sonar-pro',
|
|
966
|
+
messages: await convertToModelMessages(messages),
|
|
967
|
+
});
|
|
968
|
+
|
|
969
|
+
return result.toUIMessageStreamResponse({
|
|
970
|
+
sendSources: true,
|
|
971
|
+
});
|
|
972
|
+
}
|
|
973
|
+
```
|
|
974
|
+
|
|
975
|
+
On the client side, you can access source parts of the message object.
|
|
976
|
+
There are two types of sources: `source-url` for web pages and `source-document` for documents.
|
|
977
|
+
Here is an example that renders both types of sources:
|
|
978
|
+
|
|
979
|
+
```tsx filename="app/page.tsx"
|
|
980
|
+
messages.map(message => (
|
|
981
|
+
<div key={message.id}>
|
|
982
|
+
{message.role === 'user' ? 'User: ' : 'AI: '}
|
|
983
|
+
|
|
984
|
+
{/* Render URL sources */}
|
|
985
|
+
{message.parts
|
|
986
|
+
.filter(part => part.type === 'source-url')
|
|
987
|
+
.map(part => (
|
|
988
|
+
<span key={`source-${part.id}`}>
|
|
989
|
+
[
|
|
990
|
+
<a href={part.url} target="_blank">
|
|
991
|
+
{part.title ?? new URL(part.url).hostname}
|
|
992
|
+
</a>
|
|
993
|
+
]
|
|
994
|
+
</span>
|
|
995
|
+
))}
|
|
996
|
+
|
|
997
|
+
{/* Render document sources */}
|
|
998
|
+
{message.parts
|
|
999
|
+
.filter(part => part.type === 'source-document')
|
|
1000
|
+
.map(part => (
|
|
1001
|
+
<span key={`source-${part.id}`}>
|
|
1002
|
+
[<span>{part.title ?? `Document ${part.id}`}</span>]
|
|
1003
|
+
</span>
|
|
1004
|
+
))}
|
|
1005
|
+
</div>
|
|
1006
|
+
));
|
|
1007
|
+
```
|
|
1008
|
+
|
|
1009
|
+
## Image Generation
|
|
1010
|
+
|
|
1011
|
+
Some models such as Google `gemini-2.5-flash-image` support image generation.
|
|
1012
|
+
When images are generated, they are exposed as files to the client.
|
|
1013
|
+
On the client side, you can access file parts of the message object
|
|
1014
|
+
and render them as images.
|
|
1015
|
+
|
|
1016
|
+
```tsx filename="app/page.tsx"
|
|
1017
|
+
messages.map(message => (
|
|
1018
|
+
<div key={message.id}>
|
|
1019
|
+
{message.role === 'user' ? 'User: ' : 'AI: '}
|
|
1020
|
+
{message.parts.map((part, index) => {
|
|
1021
|
+
if (part.type === 'text') {
|
|
1022
|
+
return <div key={index}>{part.text}</div>;
|
|
1023
|
+
} else if (part.type === 'file' && part.mediaType.startsWith('image/')) {
|
|
1024
|
+
return <img key={index} src={part.url} alt="Generated image" />;
|
|
1025
|
+
}
|
|
1026
|
+
})}
|
|
1027
|
+
</div>
|
|
1028
|
+
));
|
|
1029
|
+
```
|
|
1030
|
+
|
|
1031
|
+
## Attachments
|
|
1032
|
+
|
|
1033
|
+
The `useChat` hook supports sending file attachments along with a message as well as rendering them on the client. This can be useful for building applications that involve sending images, files, or other media content to the AI provider.
|
|
1034
|
+
|
|
1035
|
+
There are two ways to send files with a message: using a `FileList` object from file inputs or using an array of file objects.
|
|
1036
|
+
|
|
1037
|
+
### FileList
|
|
1038
|
+
|
|
1039
|
+
By using `FileList`, you can send multiple files as attachments along with a message using the file input element. The `useChat` hook will automatically convert them into data URLs and send them to the AI provider.
|
|
1040
|
+
|
|
1041
|
+
<Note>
|
|
1042
|
+
Currently, only `image/*` and `text/*` content types get automatically
|
|
1043
|
+
converted into [multi-modal content
|
|
1044
|
+
parts](/docs/foundations/prompts#multi-modal-messages). You will need to
|
|
1045
|
+
handle other content types manually.
|
|
1046
|
+
</Note>
|
|
1047
|
+
|
|
1048
|
+
```tsx filename="app/page.tsx"
|
|
1049
|
+
'use client';
|
|
1050
|
+
|
|
1051
|
+
import { useChat } from '@ai-sdk/react';
|
|
1052
|
+
import { useRef, useState } from 'react';
|
|
1053
|
+
|
|
1054
|
+
export default function Page() {
|
|
1055
|
+
const { messages, sendMessage, status } = useChat();
|
|
1056
|
+
|
|
1057
|
+
const [input, setInput] = useState('');
|
|
1058
|
+
const [files, setFiles] = useState<FileList | undefined>(undefined);
|
|
1059
|
+
const fileInputRef = useRef<HTMLInputElement>(null);
|
|
1060
|
+
|
|
1061
|
+
return (
|
|
1062
|
+
<div>
|
|
1063
|
+
<div>
|
|
1064
|
+
{messages.map(message => (
|
|
1065
|
+
<div key={message.id}>
|
|
1066
|
+
<div>{`${message.role}: `}</div>
|
|
1067
|
+
|
|
1068
|
+
<div>
|
|
1069
|
+
{message.parts.map((part, index) => {
|
|
1070
|
+
if (part.type === 'text') {
|
|
1071
|
+
return <span key={index}>{part.text}</span>;
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
if (
|
|
1075
|
+
part.type === 'file' &&
|
|
1076
|
+
part.mediaType?.startsWith('image/')
|
|
1077
|
+
) {
|
|
1078
|
+
return <img key={index} src={part.url} alt={part.filename} />;
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
return null;
|
|
1082
|
+
})}
|
|
1083
|
+
</div>
|
|
1084
|
+
</div>
|
|
1085
|
+
))}
|
|
1086
|
+
</div>
|
|
1087
|
+
|
|
1088
|
+
<form
|
|
1089
|
+
onSubmit={event => {
|
|
1090
|
+
event.preventDefault();
|
|
1091
|
+
if (input.trim()) {
|
|
1092
|
+
sendMessage({
|
|
1093
|
+
text: input,
|
|
1094
|
+
files,
|
|
1095
|
+
});
|
|
1096
|
+
setInput('');
|
|
1097
|
+
setFiles(undefined);
|
|
1098
|
+
|
|
1099
|
+
if (fileInputRef.current) {
|
|
1100
|
+
fileInputRef.current.value = '';
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
}}
|
|
1104
|
+
>
|
|
1105
|
+
<input
|
|
1106
|
+
type="file"
|
|
1107
|
+
onChange={event => {
|
|
1108
|
+
if (event.target.files) {
|
|
1109
|
+
setFiles(event.target.files);
|
|
1110
|
+
}
|
|
1111
|
+
}}
|
|
1112
|
+
multiple
|
|
1113
|
+
ref={fileInputRef}
|
|
1114
|
+
/>
|
|
1115
|
+
<input
|
|
1116
|
+
value={input}
|
|
1117
|
+
placeholder="Send message..."
|
|
1118
|
+
onChange={e => setInput(e.target.value)}
|
|
1119
|
+
disabled={status !== 'ready'}
|
|
1120
|
+
/>
|
|
1121
|
+
</form>
|
|
1122
|
+
</div>
|
|
1123
|
+
);
|
|
1124
|
+
}
|
|
1125
|
+
```
|
|
1126
|
+
|
|
1127
|
+
### File Objects
|
|
1128
|
+
|
|
1129
|
+
You can also send files as objects along with a message. This can be useful for sending pre-uploaded files or data URLs.
|
|
1130
|
+
|
|
1131
|
+
```tsx filename="app/page.tsx"
|
|
1132
|
+
'use client';
|
|
1133
|
+
|
|
1134
|
+
import { useChat } from '@ai-sdk/react';
|
|
1135
|
+
import { useState } from 'react';
|
|
1136
|
+
import { FileUIPart } from 'ai';
|
|
1137
|
+
|
|
1138
|
+
export default function Page() {
|
|
1139
|
+
const { messages, sendMessage, status } = useChat();
|
|
1140
|
+
|
|
1141
|
+
const [input, setInput] = useState('');
|
|
1142
|
+
const [files] = useState<FileUIPart[]>([
|
|
1143
|
+
{
|
|
1144
|
+
type: 'file',
|
|
1145
|
+
filename: 'earth.png',
|
|
1146
|
+
mediaType: 'image/png',
|
|
1147
|
+
url: 'https://example.com/earth.png',
|
|
1148
|
+
},
|
|
1149
|
+
{
|
|
1150
|
+
type: 'file',
|
|
1151
|
+
filename: 'moon.png',
|
|
1152
|
+
mediaType: 'image/png',
|
|
1153
|
+
url: 'data:image/png;base64,iVBORw0KGgo...',
|
|
1154
|
+
},
|
|
1155
|
+
]);
|
|
1156
|
+
|
|
1157
|
+
return (
|
|
1158
|
+
<div>
|
|
1159
|
+
<div>
|
|
1160
|
+
{messages.map(message => (
|
|
1161
|
+
<div key={message.id}>
|
|
1162
|
+
<div>{`${message.role}: `}</div>
|
|
1163
|
+
|
|
1164
|
+
<div>
|
|
1165
|
+
{message.parts.map((part, index) => {
|
|
1166
|
+
if (part.type === 'text') {
|
|
1167
|
+
return <span key={index}>{part.text}</span>;
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
if (
|
|
1171
|
+
part.type === 'file' &&
|
|
1172
|
+
part.mediaType?.startsWith('image/')
|
|
1173
|
+
) {
|
|
1174
|
+
return <img key={index} src={part.url} alt={part.filename} />;
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
return null;
|
|
1178
|
+
})}
|
|
1179
|
+
</div>
|
|
1180
|
+
</div>
|
|
1181
|
+
))}
|
|
1182
|
+
</div>
|
|
1183
|
+
|
|
1184
|
+
<form
|
|
1185
|
+
onSubmit={event => {
|
|
1186
|
+
event.preventDefault();
|
|
1187
|
+
if (input.trim()) {
|
|
1188
|
+
sendMessage({
|
|
1189
|
+
text: input,
|
|
1190
|
+
files,
|
|
1191
|
+
});
|
|
1192
|
+
setInput('');
|
|
1193
|
+
}
|
|
1194
|
+
}}
|
|
1195
|
+
>
|
|
1196
|
+
<input
|
|
1197
|
+
value={input}
|
|
1198
|
+
placeholder="Send message..."
|
|
1199
|
+
onChange={e => setInput(e.target.value)}
|
|
1200
|
+
disabled={status !== 'ready'}
|
|
1201
|
+
/>
|
|
1202
|
+
</form>
|
|
1203
|
+
</div>
|
|
1204
|
+
);
|
|
1205
|
+
}
|
|
1206
|
+
```
|
|
1207
|
+
|
|
1208
|
+
## Type Inference for Tools
|
|
1209
|
+
|
|
1210
|
+
When working with tools in TypeScript, AI SDK UI provides type inference helpers to ensure type safety for your tool inputs and outputs.
|
|
1211
|
+
|
|
1212
|
+
### InferUITool
|
|
1213
|
+
|
|
1214
|
+
The `InferUITool` type helper infers the input and output types of a single tool for use in UI messages:
|
|
1215
|
+
|
|
1216
|
+
```tsx
|
|
1217
|
+
import { InferUITool } from 'ai';
|
|
1218
|
+
import { z } from 'zod';
|
|
1219
|
+
|
|
1220
|
+
const weatherTool = {
|
|
1221
|
+
description: 'Get the current weather',
|
|
1222
|
+
inputSchema: z.object({
|
|
1223
|
+
location: z.string().describe('The city and state'),
|
|
1224
|
+
}),
|
|
1225
|
+
execute: async ({ location }) => {
|
|
1226
|
+
return `The weather in ${location} is sunny.`;
|
|
1227
|
+
},
|
|
1228
|
+
};
|
|
1229
|
+
|
|
1230
|
+
// Infer the types from the tool
|
|
1231
|
+
type WeatherUITool = InferUITool<typeof weatherTool>;
|
|
1232
|
+
// This creates a type with:
|
|
1233
|
+
// {
|
|
1234
|
+
// input: { location: string };
|
|
1235
|
+
// output: string;
|
|
1236
|
+
// }
|
|
1237
|
+
```
|
|
1238
|
+
|
|
1239
|
+
### InferUITools
|
|
1240
|
+
|
|
1241
|
+
The `InferUITools` type helper infers the input and output types of a `ToolSet`:
|
|
1242
|
+
|
|
1243
|
+
```tsx
|
|
1244
|
+
import { InferUITools, ToolSet } from 'ai';
|
|
1245
|
+
import { z } from 'zod';
|
|
1246
|
+
|
|
1247
|
+
const tools = {
|
|
1248
|
+
weather: {
|
|
1249
|
+
description: 'Get the current weather',
|
|
1250
|
+
inputSchema: z.object({
|
|
1251
|
+
location: z.string().describe('The city and state'),
|
|
1252
|
+
}),
|
|
1253
|
+
execute: async ({ location }) => {
|
|
1254
|
+
return `The weather in ${location} is sunny.`;
|
|
1255
|
+
},
|
|
1256
|
+
},
|
|
1257
|
+
calculator: {
|
|
1258
|
+
description: 'Perform basic arithmetic',
|
|
1259
|
+
inputSchema: z.object({
|
|
1260
|
+
operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
|
|
1261
|
+
a: z.number(),
|
|
1262
|
+
b: z.number(),
|
|
1263
|
+
}),
|
|
1264
|
+
execute: async ({ operation, a, b }) => {
|
|
1265
|
+
switch (operation) {
|
|
1266
|
+
case 'add':
|
|
1267
|
+
return a + b;
|
|
1268
|
+
case 'subtract':
|
|
1269
|
+
return a - b;
|
|
1270
|
+
case 'multiply':
|
|
1271
|
+
return a * b;
|
|
1272
|
+
case 'divide':
|
|
1273
|
+
return a / b;
|
|
1274
|
+
}
|
|
1275
|
+
},
|
|
1276
|
+
},
|
|
1277
|
+
} satisfies ToolSet;
|
|
1278
|
+
|
|
1279
|
+
// Infer the types from the tool set
|
|
1280
|
+
type MyUITools = InferUITools<typeof tools>;
|
|
1281
|
+
// This creates a type with:
|
|
1282
|
+
// {
|
|
1283
|
+
// weather: { input: { location: string }; output: string };
|
|
1284
|
+
// calculator: { input: { operation: 'add' | 'subtract' | 'multiply' | 'divide'; a: number; b: number }; output: number };
|
|
1285
|
+
// }
|
|
1286
|
+
```
|
|
1287
|
+
|
|
1288
|
+
### Using Inferred Types
|
|
1289
|
+
|
|
1290
|
+
You can use these inferred types to create a custom UIMessage type and pass it to various AI SDK UI functions:
|
|
1291
|
+
|
|
1292
|
+
```tsx
|
|
1293
|
+
import { InferUITools, UIMessage, UIDataTypes } from 'ai';
|
|
1294
|
+
|
|
1295
|
+
type MyUITools = InferUITools<typeof tools>;
|
|
1296
|
+
type MyUIMessage = UIMessage<never, UIDataTypes, MyUITools>;
|
|
1297
|
+
```
|
|
1298
|
+
|
|
1299
|
+
Pass the custom type to `useChat` or `createUIMessageStream`:
|
|
1300
|
+
|
|
1301
|
+
```tsx
|
|
1302
|
+
import { useChat } from '@ai-sdk/react';
|
|
1303
|
+
import { createUIMessageStream } from 'ai';
|
|
1304
|
+
import type { MyUIMessage } from './types';
|
|
1305
|
+
|
|
1306
|
+
// With useChat
|
|
1307
|
+
const { messages } = useChat<MyUIMessage>();
|
|
1308
|
+
|
|
1309
|
+
// With createUIMessageStream
|
|
1310
|
+
const stream = createUIMessageStream<MyUIMessage>(/* ... */);
|
|
1311
|
+
```
|
|
1312
|
+
|
|
1313
|
+
This provides full type safety for tool inputs and outputs on the client and server.
|