@ai-sdk/provider 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index.d.mts +7 -7
  3. package/dist/index.d.ts +7 -7
  4. package/package.json +3 -1
  5. package/src/embedding-model/index.ts +2 -0
  6. package/src/embedding-model/v2/embedding-model-v2-embedding.ts +5 -0
  7. package/src/embedding-model/v2/embedding-model-v2.ts +113 -0
  8. package/src/embedding-model/v2/index.ts +2 -0
  9. package/src/embedding-model/v3/embedding-model-v3-call-options.ts +26 -0
  10. package/src/embedding-model/v3/embedding-model-v3-embedding.ts +5 -0
  11. package/src/embedding-model/v3/embedding-model-v3-result.ts +48 -0
  12. package/src/embedding-model/v3/embedding-model-v3.ts +54 -0
  13. package/src/embedding-model/v3/index.ts +4 -0
  14. package/src/embedding-model-middleware/index.ts +1 -0
  15. package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +69 -0
  16. package/src/embedding-model-middleware/v3/index.ts +1 -0
  17. package/src/errors/ai-sdk-error.ts +62 -0
  18. package/src/errors/api-call-error.ts +59 -0
  19. package/src/errors/empty-response-body-error.ts +17 -0
  20. package/src/errors/get-error-message.ts +15 -0
  21. package/src/errors/index.ts +15 -0
  22. package/src/errors/invalid-argument-error.ts +32 -0
  23. package/src/errors/invalid-prompt-error.ts +33 -0
  24. package/src/errors/invalid-response-data-error.ts +31 -0
  25. package/src/errors/json-parse-error.ts +29 -0
  26. package/src/errors/load-api-key-error.ts +17 -0
  27. package/src/errors/load-setting-error.ts +17 -0
  28. package/src/errors/no-content-generated-error.ts +22 -0
  29. package/src/errors/no-such-model-error.ts +45 -0
  30. package/src/errors/too-many-embedding-values-for-call-error.ts +40 -0
  31. package/src/errors/type-validation-error.ts +51 -0
  32. package/src/errors/unsupported-functionality-error.ts +26 -0
  33. package/src/image-model/index.ts +2 -0
  34. package/src/image-model/v2/image-model-v2-call-options.ts +60 -0
  35. package/src/image-model/v2/image-model-v2-call-warning.ts +16 -0
  36. package/src/image-model/v2/image-model-v2.ts +104 -0
  37. package/src/image-model/v2/index.ts +6 -0
  38. package/src/image-model/v3/image-model-v3-call-options.ts +74 -0
  39. package/src/image-model/v3/image-model-v3-file.ts +44 -0
  40. package/src/image-model/v3/image-model-v3-usage.ts +19 -0
  41. package/src/image-model/v3/image-model-v3.ts +110 -0
  42. package/src/image-model/v3/index.ts +7 -0
  43. package/src/image-model-middleware/index.ts +1 -0
  44. package/src/image-model-middleware/v3/image-model-v3-middleware.ts +61 -0
  45. package/src/image-model-middleware/v3/index.ts +1 -0
  46. package/src/index.ts +15 -0
  47. package/src/json-value/index.ts +2 -0
  48. package/src/json-value/is-json.ts +40 -0
  49. package/src/json-value/json-value.ts +17 -0
  50. package/src/language-model/index.ts +2 -0
  51. package/src/language-model/v2/index.ts +18 -0
  52. package/src/language-model/v2/language-model-v2-call-options.ts +127 -0
  53. package/src/language-model/v2/language-model-v2-call-warning.ts +23 -0
  54. package/src/language-model/v2/language-model-v2-content.ts +14 -0
  55. package/src/language-model/v2/language-model-v2-data-content.ts +4 -0
  56. package/src/language-model/v2/language-model-v2-file.ts +25 -0
  57. package/src/language-model/v2/language-model-v2-finish-reason.ts +20 -0
  58. package/src/language-model/v2/language-model-v2-function-tool.ts +37 -0
  59. package/src/language-model/v2/language-model-v2-prompt.ts +218 -0
  60. package/src/language-model/v2/language-model-v2-provider-defined-tool.ts +24 -0
  61. package/src/language-model/v2/language-model-v2-reasoning.ts +14 -0
  62. package/src/language-model/v2/language-model-v2-response-metadata.ts +16 -0
  63. package/src/language-model/v2/language-model-v2-source.ts +67 -0
  64. package/src/language-model/v2/language-model-v2-stream-part.ts +102 -0
  65. package/src/language-model/v2/language-model-v2-text.ts +15 -0
  66. package/src/language-model/v2/language-model-v2-tool-call.ts +35 -0
  67. package/src/language-model/v2/language-model-v2-tool-choice.ts +5 -0
  68. package/src/language-model/v2/language-model-v2-tool-result.ts +40 -0
  69. package/src/language-model/v2/language-model-v2-usage.ts +34 -0
  70. package/src/language-model/v2/language-model-v2.ts +137 -0
  71. package/src/language-model/v3/index.ts +21 -0
  72. package/src/language-model/v3/language-model-v3-call-options.ts +125 -0
  73. package/src/language-model/v3/language-model-v3-content.ts +16 -0
  74. package/src/language-model/v3/language-model-v3-data-content.ts +4 -0
  75. package/src/language-model/v3/language-model-v3-file.ts +32 -0
  76. package/src/language-model/v3/language-model-v3-finish-reason.ts +33 -0
  77. package/src/language-model/v3/language-model-v3-function-tool.ts +53 -0
  78. package/src/language-model/v3/language-model-v3-generate-result.ts +63 -0
  79. package/src/language-model/v3/language-model-v3-prompt.ts +422 -0
  80. package/src/language-model/v3/language-model-v3-provider-tool.ts +28 -0
  81. package/src/language-model/v3/language-model-v3-reasoning.ts +14 -0
  82. package/src/language-model/v3/language-model-v3-response-metadata.ts +16 -0
  83. package/src/language-model/v3/language-model-v3-source.ts +67 -0
  84. package/src/language-model/v3/language-model-v3-stream-part.ts +106 -0
  85. package/src/language-model/v3/language-model-v3-stream-result.ts +32 -0
  86. package/src/language-model/v3/language-model-v3-text.ts +15 -0
  87. package/src/language-model/v3/language-model-v3-tool-approval-request.ts +27 -0
  88. package/src/language-model/v3/language-model-v3-tool-call.ts +41 -0
  89. package/src/language-model/v3/language-model-v3-tool-choice.ts +5 -0
  90. package/src/language-model/v3/language-model-v3-tool-result.ts +51 -0
  91. package/src/language-model/v3/language-model-v3-usage.ts +59 -0
  92. package/src/language-model/v3/language-model-v3.ts +61 -0
  93. package/src/language-model-middleware/index.ts +2 -0
  94. package/src/language-model-middleware/v2/index.ts +1 -0
  95. package/src/language-model-middleware/v2/language-model-v2-middleware.ts +82 -0
  96. package/src/language-model-middleware/v3/index.ts +1 -0
  97. package/src/language-model-middleware/v3/language-model-v3-middleware.ts +84 -0
  98. package/src/provider/index.ts +2 -0
  99. package/src/provider/v2/index.ts +1 -0
  100. package/src/provider/v2/provider-v2.ts +64 -0
  101. package/src/provider/v3/index.ts +1 -0
  102. package/src/provider/v3/provider-v3.ts +93 -0
  103. package/src/reranking-model/index.ts +1 -0
  104. package/src/reranking-model/v3/index.ts +2 -0
  105. package/src/reranking-model/v3/reranking-model-v3-call-options.ts +40 -0
  106. package/src/reranking-model/v3/reranking-model-v3.ts +90 -0
  107. package/src/shared/index.ts +2 -0
  108. package/src/shared/v2/index.ts +3 -0
  109. package/src/shared/v2/shared-v2-headers.ts +1 -0
  110. package/src/shared/v2/shared-v2-provider-metadata.ts +27 -0
  111. package/src/shared/v2/shared-v2-provider-options.ts +24 -0
  112. package/src/shared/v3/index.ts +4 -0
  113. package/src/shared/v3/shared-v3-headers.ts +1 -0
  114. package/src/shared/v3/shared-v3-provider-metadata.ts +24 -0
  115. package/src/shared/v3/shared-v3-provider-options.ts +24 -0
  116. package/src/shared/v3/shared-v3-warning.ts +50 -0
  117. package/src/speech-model/index.ts +2 -0
  118. package/src/speech-model/v2/index.ts +3 -0
  119. package/src/speech-model/v2/speech-model-v2-call-options.ts +62 -0
  120. package/src/speech-model/v2/speech-model-v2-call-warning.ts +16 -0
  121. package/src/speech-model/v2/speech-model-v2.ts +89 -0
  122. package/src/speech-model/v3/index.ts +2 -0
  123. package/src/speech-model/v3/speech-model-v3-call-options.ts +62 -0
  124. package/src/speech-model/v3/speech-model-v3.ts +89 -0
  125. package/src/transcription-model/index.ts +2 -0
  126. package/src/transcription-model/v2/index.ts +3 -0
  127. package/src/transcription-model/v2/transcription-model-v2-call-options.ts +48 -0
  128. package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +16 -0
  129. package/src/transcription-model/v2/transcription-model-v2.ts +117 -0
  130. package/src/transcription-model/v3/index.ts +2 -0
  131. package/src/transcription-model/v3/transcription-model-v3-call-options.ts +45 -0
  132. package/src/transcription-model/v3/transcription-model-v3.ts +117 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ai-sdk/provider
2
2
 
3
+ ## 3.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 5c090e7: fix(ai): fix LanguageModelV2ProviderTool type
8
+
9
+ ## 3.0.3
10
+
11
+ ### Patch Changes
12
+
13
+ - 1b11dcb: chore(ai): include sources in npm package
14
+
3
15
  ## 3.0.2
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -267,7 +267,7 @@ type EmbeddingModelV2Embedding = Array<number>;
267
267
 
268
268
  /**
269
269
  Specification for an embedding model that implements the embedding model
270
- interface version 1.
270
+ interface version 2.
271
271
 
272
272
  VALUE is the type of the values that the model can embed.
273
273
  This will allow us to go beyond text embeddings in the future,
@@ -2304,11 +2304,11 @@ IANA media type.
2304
2304
  /**
2305
2305
  The configuration of a tool that is defined by the provider.
2306
2306
  */
2307
- type LanguageModelV2ProviderTool = {
2307
+ type LanguageModelV2ProviderDefinedTool = {
2308
2308
  /**
2309
- The type of the tool (always 'provider').
2309
+ The type of the tool (always 'provider-defined').
2310
2310
  */
2311
- type: 'provider';
2311
+ type: 'provider-defined';
2312
2312
  /**
2313
2313
  The ID of the tool. Should follow the format `<provider-name>.<unique-tool-name>`.
2314
2314
  */
@@ -2409,7 +2409,7 @@ type LanguageModelV2CallOptions = {
2409
2409
  /**
2410
2410
  The tools that are available for the model.
2411
2411
  */
2412
- tools?: Array<LanguageModelV2FunctionTool | LanguageModelV2ProviderTool>;
2412
+ tools?: Array<LanguageModelV2FunctionTool | LanguageModelV2ProviderDefinedTool>;
2413
2413
  /**
2414
2414
  Specifies how the tool should be selected. Defaults to 'auto'.
2415
2415
  */
@@ -2445,7 +2445,7 @@ type LanguageModelV2CallWarning = {
2445
2445
  details?: string;
2446
2446
  } | {
2447
2447
  type: 'unsupported-tool';
2448
- tool: LanguageModelV2FunctionTool | LanguageModelV2ProviderTool;
2448
+ tool: LanguageModelV2FunctionTool | LanguageModelV2ProviderDefinedTool;
2449
2449
  details?: string;
2450
2450
  } | {
2451
2451
  type: 'other';
@@ -3793,4 +3793,4 @@ interface ProviderV2 {
3793
3793
  speechModel?(modelId: string): SpeechModelV2;
3794
3794
  }
3795
3795
 
3796
- export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3CallOptions, type EmbeddingModelV3Embedding, type EmbeddingModelV3Middleware, type EmbeddingModelV3Result, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3File, type ImageModelV3Middleware, type ImageModelV3ProviderMetadata, type ImageModelV3Usage, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV2, type LanguageModelV2CallOptions, type LanguageModelV2CallWarning, type LanguageModelV2Content, type LanguageModelV2DataContent, type LanguageModelV2File, type LanguageModelV2FilePart, type LanguageModelV2FinishReason, type LanguageModelV2FunctionTool, type LanguageModelV2Message, type LanguageModelV2Middleware, type LanguageModelV2Prompt, type LanguageModelV2ProviderTool, type LanguageModelV2Reasoning, type LanguageModelV2ReasoningPart, type LanguageModelV2ResponseMetadata, type LanguageModelV2Source, type LanguageModelV2StreamPart, type LanguageModelV2Text, type LanguageModelV2TextPart, type LanguageModelV2ToolCall, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultOutput, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, type LanguageModelV3, type LanguageModelV3CallOptions, type LanguageModelV3Content, type LanguageModelV3DataContent, type LanguageModelV3File, type LanguageModelV3FilePart, type LanguageModelV3FinishReason, type LanguageModelV3FunctionTool, type LanguageModelV3GenerateResult, type LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3StreamResult, type LanguageModelV3Text, type LanguageModelV3TextPart, type LanguageModelV3ToolApprovalRequest, type LanguageModelV3ToolApprovalResponsePart, type LanguageModelV3ToolCall, type LanguageModelV3ToolCallPart, type LanguageModelV3ToolChoice, type LanguageModelV3ToolResult, type LanguageModelV3ToolResultOutput, type LanguageModelV3ToolResultPart, type LanguageModelV3Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV2, type ProviderV3, type RerankingModelV3, type RerankingModelV3CallOptions, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SharedV3Headers, type SharedV3ProviderMetadata, type SharedV3ProviderOptions, type SharedV3Warning, type SpeechModelV2, type SpeechModelV2CallOptions, type SpeechModelV2CallWarning, type SpeechModelV3, type SpeechModelV3CallOptions, TooManyEmbeddingValuesForCallError, type TranscriptionModelV2, type TranscriptionModelV2CallOptions, type TranscriptionModelV2CallWarning, type TranscriptionModelV3, type TranscriptionModelV3CallOptions, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
3796
+ export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3CallOptions, type EmbeddingModelV3Embedding, type EmbeddingModelV3Middleware, type EmbeddingModelV3Result, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3File, type ImageModelV3Middleware, type ImageModelV3ProviderMetadata, type ImageModelV3Usage, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV2, type LanguageModelV2CallOptions, type LanguageModelV2CallWarning, type LanguageModelV2Content, type LanguageModelV2DataContent, type LanguageModelV2File, type LanguageModelV2FilePart, type LanguageModelV2FinishReason, type LanguageModelV2FunctionTool, type LanguageModelV2Message, type LanguageModelV2Middleware, type LanguageModelV2Prompt, type LanguageModelV2ProviderDefinedTool, type LanguageModelV2Reasoning, type LanguageModelV2ReasoningPart, type LanguageModelV2ResponseMetadata, type LanguageModelV2Source, type LanguageModelV2StreamPart, type LanguageModelV2Text, type LanguageModelV2TextPart, type LanguageModelV2ToolCall, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultOutput, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, type LanguageModelV3, type LanguageModelV3CallOptions, type LanguageModelV3Content, type LanguageModelV3DataContent, type LanguageModelV3File, type LanguageModelV3FilePart, type LanguageModelV3FinishReason, type LanguageModelV3FunctionTool, type LanguageModelV3GenerateResult, type LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3StreamResult, type LanguageModelV3Text, type LanguageModelV3TextPart, type LanguageModelV3ToolApprovalRequest, type LanguageModelV3ToolApprovalResponsePart, type LanguageModelV3ToolCall, type LanguageModelV3ToolCallPart, type LanguageModelV3ToolChoice, type LanguageModelV3ToolResult, type LanguageModelV3ToolResultOutput, type LanguageModelV3ToolResultPart, type LanguageModelV3Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV2, type ProviderV3, type RerankingModelV3, type RerankingModelV3CallOptions, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SharedV3Headers, type SharedV3ProviderMetadata, type SharedV3ProviderOptions, type SharedV3Warning, type SpeechModelV2, type SpeechModelV2CallOptions, type SpeechModelV2CallWarning, type SpeechModelV3, type SpeechModelV3CallOptions, TooManyEmbeddingValuesForCallError, type TranscriptionModelV2, type TranscriptionModelV2CallOptions, type TranscriptionModelV2CallWarning, type TranscriptionModelV3, type TranscriptionModelV3CallOptions, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
package/dist/index.d.ts CHANGED
@@ -267,7 +267,7 @@ type EmbeddingModelV2Embedding = Array<number>;
267
267
 
268
268
  /**
269
269
  Specification for an embedding model that implements the embedding model
270
- interface version 1.
270
+ interface version 2.
271
271
 
272
272
  VALUE is the type of the values that the model can embed.
273
273
  This will allow us to go beyond text embeddings in the future,
@@ -2304,11 +2304,11 @@ IANA media type.
2304
2304
  /**
2305
2305
  The configuration of a tool that is defined by the provider.
2306
2306
  */
2307
- type LanguageModelV2ProviderTool = {
2307
+ type LanguageModelV2ProviderDefinedTool = {
2308
2308
  /**
2309
- The type of the tool (always 'provider').
2309
+ The type of the tool (always 'provider-defined').
2310
2310
  */
2311
- type: 'provider';
2311
+ type: 'provider-defined';
2312
2312
  /**
2313
2313
  The ID of the tool. Should follow the format `<provider-name>.<unique-tool-name>`.
2314
2314
  */
@@ -2409,7 +2409,7 @@ type LanguageModelV2CallOptions = {
2409
2409
  /**
2410
2410
  The tools that are available for the model.
2411
2411
  */
2412
- tools?: Array<LanguageModelV2FunctionTool | LanguageModelV2ProviderTool>;
2412
+ tools?: Array<LanguageModelV2FunctionTool | LanguageModelV2ProviderDefinedTool>;
2413
2413
  /**
2414
2414
  Specifies how the tool should be selected. Defaults to 'auto'.
2415
2415
  */
@@ -2445,7 +2445,7 @@ type LanguageModelV2CallWarning = {
2445
2445
  details?: string;
2446
2446
  } | {
2447
2447
  type: 'unsupported-tool';
2448
- tool: LanguageModelV2FunctionTool | LanguageModelV2ProviderTool;
2448
+ tool: LanguageModelV2FunctionTool | LanguageModelV2ProviderDefinedTool;
2449
2449
  details?: string;
2450
2450
  } | {
2451
2451
  type: 'other';
@@ -3793,4 +3793,4 @@ interface ProviderV2 {
3793
3793
  speechModel?(modelId: string): SpeechModelV2;
3794
3794
  }
3795
3795
 
3796
- export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3CallOptions, type EmbeddingModelV3Embedding, type EmbeddingModelV3Middleware, type EmbeddingModelV3Result, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3File, type ImageModelV3Middleware, type ImageModelV3ProviderMetadata, type ImageModelV3Usage, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV2, type LanguageModelV2CallOptions, type LanguageModelV2CallWarning, type LanguageModelV2Content, type LanguageModelV2DataContent, type LanguageModelV2File, type LanguageModelV2FilePart, type LanguageModelV2FinishReason, type LanguageModelV2FunctionTool, type LanguageModelV2Message, type LanguageModelV2Middleware, type LanguageModelV2Prompt, type LanguageModelV2ProviderTool, type LanguageModelV2Reasoning, type LanguageModelV2ReasoningPart, type LanguageModelV2ResponseMetadata, type LanguageModelV2Source, type LanguageModelV2StreamPart, type LanguageModelV2Text, type LanguageModelV2TextPart, type LanguageModelV2ToolCall, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultOutput, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, type LanguageModelV3, type LanguageModelV3CallOptions, type LanguageModelV3Content, type LanguageModelV3DataContent, type LanguageModelV3File, type LanguageModelV3FilePart, type LanguageModelV3FinishReason, type LanguageModelV3FunctionTool, type LanguageModelV3GenerateResult, type LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3StreamResult, type LanguageModelV3Text, type LanguageModelV3TextPart, type LanguageModelV3ToolApprovalRequest, type LanguageModelV3ToolApprovalResponsePart, type LanguageModelV3ToolCall, type LanguageModelV3ToolCallPart, type LanguageModelV3ToolChoice, type LanguageModelV3ToolResult, type LanguageModelV3ToolResultOutput, type LanguageModelV3ToolResultPart, type LanguageModelV3Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV2, type ProviderV3, type RerankingModelV3, type RerankingModelV3CallOptions, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SharedV3Headers, type SharedV3ProviderMetadata, type SharedV3ProviderOptions, type SharedV3Warning, type SpeechModelV2, type SpeechModelV2CallOptions, type SpeechModelV2CallWarning, type SpeechModelV3, type SpeechModelV3CallOptions, TooManyEmbeddingValuesForCallError, type TranscriptionModelV2, type TranscriptionModelV2CallOptions, type TranscriptionModelV2CallWarning, type TranscriptionModelV3, type TranscriptionModelV3CallOptions, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
3796
+ export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3CallOptions, type EmbeddingModelV3Embedding, type EmbeddingModelV3Middleware, type EmbeddingModelV3Result, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3File, type ImageModelV3Middleware, type ImageModelV3ProviderMetadata, type ImageModelV3Usage, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV2, type LanguageModelV2CallOptions, type LanguageModelV2CallWarning, type LanguageModelV2Content, type LanguageModelV2DataContent, type LanguageModelV2File, type LanguageModelV2FilePart, type LanguageModelV2FinishReason, type LanguageModelV2FunctionTool, type LanguageModelV2Message, type LanguageModelV2Middleware, type LanguageModelV2Prompt, type LanguageModelV2ProviderDefinedTool, type LanguageModelV2Reasoning, type LanguageModelV2ReasoningPart, type LanguageModelV2ResponseMetadata, type LanguageModelV2Source, type LanguageModelV2StreamPart, type LanguageModelV2Text, type LanguageModelV2TextPart, type LanguageModelV2ToolCall, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultOutput, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, type LanguageModelV3, type LanguageModelV3CallOptions, type LanguageModelV3Content, type LanguageModelV3DataContent, type LanguageModelV3File, type LanguageModelV3FilePart, type LanguageModelV3FinishReason, type LanguageModelV3FunctionTool, type LanguageModelV3GenerateResult, type LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3StreamResult, type LanguageModelV3Text, type LanguageModelV3TextPart, type LanguageModelV3ToolApprovalRequest, type LanguageModelV3ToolApprovalResponsePart, type LanguageModelV3ToolCall, type LanguageModelV3ToolCallPart, type LanguageModelV3ToolChoice, type LanguageModelV3ToolResult, type LanguageModelV3ToolResultOutput, type LanguageModelV3ToolResultPart, type LanguageModelV3Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV2, type ProviderV3, type RerankingModelV3, type RerankingModelV3CallOptions, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SharedV3Headers, type SharedV3ProviderMetadata, type SharedV3ProviderOptions, type SharedV3Warning, type SpeechModelV2, type SpeechModelV2CallOptions, type SpeechModelV2CallWarning, type SpeechModelV3, type SpeechModelV3CallOptions, TooManyEmbeddingValuesForCallError, type TranscriptionModelV2, type TranscriptionModelV2CallOptions, type TranscriptionModelV2CallWarning, type TranscriptionModelV3, type TranscriptionModelV3CallOptions, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@ai-sdk/provider",
3
- "version": "3.0.2",
3
+ "version": "3.0.4",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.mjs",
8
8
  "types": "./dist/index.d.ts",
9
+ "source": "./src/index.ts",
9
10
  "files": [
10
11
  "dist/**/*",
12
+ "src",
11
13
  "CHANGELOG.md",
12
14
  "README.md"
13
15
  ],
@@ -0,0 +1,2 @@
1
+ export * from './v3/index';
2
+ export * from './v2/index';
@@ -0,0 +1,5 @@
1
+ /**
2
+ An embedding is a vector, i.e. an array of numbers.
3
+ It is e.g. used to represent a text as a vector of word embeddings.
4
+ */
5
+ export type EmbeddingModelV2Embedding = Array<number>;
@@ -0,0 +1,113 @@
1
+ import {
2
+ SharedV2Headers,
3
+ SharedV2ProviderOptions,
4
+ SharedV2ProviderMetadata,
5
+ } from '../../shared';
6
+ import { EmbeddingModelV2Embedding } from './embedding-model-v2-embedding';
7
+
8
+ /**
9
+ Specification for an embedding model that implements the embedding model
10
+ interface version 2.
11
+
12
+ VALUE is the type of the values that the model can embed.
13
+ This will allow us to go beyond text embeddings in the future,
14
+ e.g. to support image embeddings
15
+ */
16
+ export type EmbeddingModelV2<VALUE> = {
17
+ /**
18
+ The embedding model must specify which embedding model interface
19
+ version it implements. This will allow us to evolve the embedding
20
+ model interface and retain backwards compatibility. The different
21
+ implementation versions can be handled as a discriminated union
22
+ on our side.
23
+ */
24
+ readonly specificationVersion: 'v2';
25
+
26
+ /**
27
+ Name of the provider for logging purposes.
28
+ */
29
+ readonly provider: string;
30
+
31
+ /**
32
+ Provider-specific model ID for logging purposes.
33
+ */
34
+ readonly modelId: string;
35
+
36
+ /**
37
+ Limit of how many embeddings can be generated in a single API call.
38
+
39
+ Use Infinity for models that do not have a limit.
40
+ */
41
+ readonly maxEmbeddingsPerCall:
42
+ | PromiseLike<number | undefined>
43
+ | number
44
+ | undefined;
45
+
46
+ /**
47
+ True if the model can handle multiple embedding calls in parallel.
48
+ */
49
+ readonly supportsParallelCalls: PromiseLike<boolean> | boolean;
50
+
51
+ /**
52
+ Generates a list of embeddings for the given input text.
53
+
54
+ Naming: "do" prefix to prevent accidental direct usage of the method
55
+ by the user.
56
+ */
57
+ doEmbed(options: {
58
+ /**
59
+ List of values to embed.
60
+ */
61
+ values: Array<VALUE>;
62
+
63
+ /**
64
+ Abort signal for cancelling the operation.
65
+ */
66
+ abortSignal?: AbortSignal;
67
+
68
+ /**
69
+ Additional provider-specific options. They are passed through
70
+ to the provider from the AI SDK and enable provider-specific
71
+ functionality that can be fully encapsulated in the provider.
72
+ */
73
+ providerOptions?: SharedV2ProviderOptions;
74
+
75
+ /**
76
+ Additional HTTP headers to be sent with the request.
77
+ Only applicable for HTTP-based providers.
78
+ */
79
+ headers?: Record<string, string | undefined>;
80
+ }): PromiseLike<{
81
+ /**
82
+ Generated embeddings. They are in the same order as the input values.
83
+ */
84
+ embeddings: Array<EmbeddingModelV2Embedding>;
85
+
86
+ /**
87
+ Token usage. We only have input tokens for embeddings.
88
+ */
89
+ usage?: { tokens: number };
90
+
91
+ /**
92
+ Additional provider-specific metadata. They are passed through
93
+ from the provider to the AI SDK and enable provider-specific
94
+ results that can be fully encapsulated in the provider.
95
+ */
96
+ providerMetadata?: SharedV2ProviderMetadata;
97
+
98
+ /**
99
+ Optional response information for debugging purposes.
100
+ */
101
+ response?: {
102
+ /**
103
+ Response headers.
104
+ */
105
+ headers?: SharedV2Headers;
106
+
107
+ /**
108
+ The response body.
109
+ */
110
+ body?: unknown;
111
+ };
112
+ }>;
113
+ };
@@ -0,0 +1,2 @@
1
+ export * from './embedding-model-v2';
2
+ export * from './embedding-model-v2-embedding';
@@ -0,0 +1,26 @@
1
+ import { SharedV3Headers, SharedV3ProviderOptions } from '../../shared';
2
+
3
+ export type EmbeddingModelV3CallOptions = {
4
+ /**
5
+ List of text values to generate embeddings for.
6
+ */
7
+ values: Array<string>;
8
+
9
+ /**
10
+ Abort signal for cancelling the operation.
11
+ */
12
+ abortSignal?: AbortSignal;
13
+
14
+ /**
15
+ Additional provider-specific options. They are passed through
16
+ to the provider from the AI SDK and enable provider-specific
17
+ functionality that can be fully encapsulated in the provider.
18
+ */
19
+ providerOptions?: SharedV3ProviderOptions;
20
+
21
+ /**
22
+ Additional HTTP headers to be sent with the request.
23
+ Only applicable for HTTP-based providers.
24
+ */
25
+ headers?: SharedV3Headers;
26
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ An embedding is a vector, i.e. an array of numbers.
3
+ It is e.g. used to represent a text as a vector of word embeddings.
4
+ */
5
+ export type EmbeddingModelV3Embedding = Array<number>;
@@ -0,0 +1,48 @@
1
+ import {
2
+ SharedV3Headers,
3
+ SharedV3ProviderMetadata,
4
+ SharedV3Warning,
5
+ } from '../../shared';
6
+ import { EmbeddingModelV3Embedding } from './embedding-model-v3-embedding';
7
+
8
+ /**
9
+ * The result of a embedding model doEmbed call.
10
+ */
11
+ export type EmbeddingModelV3Result = {
12
+ /**
13
+ * Generated embeddings. They are in the same order as the input values.
14
+ */
15
+ embeddings: Array<EmbeddingModelV3Embedding>;
16
+
17
+ /**
18
+ * Token usage. We only have input tokens for embeddings.
19
+ */
20
+ usage?: { tokens: number };
21
+
22
+ /**
23
+ * Additional provider-specific metadata. They are passed through
24
+ * from the provider to the AI SDK and enable provider-specific
25
+ * results that can be fully encapsulated in the provider.
26
+ */
27
+ providerMetadata?: SharedV3ProviderMetadata;
28
+
29
+ /**
30
+ * Optional response information for debugging purposes.
31
+ */
32
+ response?: {
33
+ /**
34
+ * Response headers.
35
+ */
36
+ headers?: SharedV3Headers;
37
+
38
+ /**
39
+ The response body.
40
+ */
41
+ body?: unknown;
42
+ };
43
+
44
+ /**
45
+ * Warnings for the call, e.g. unsupported settings.
46
+ */
47
+ warnings: Array<SharedV3Warning>;
48
+ };
@@ -0,0 +1,54 @@
1
+ import { EmbeddingModelV3CallOptions } from './embedding-model-v3-call-options';
2
+ import { EmbeddingModelV3Result } from './embedding-model-v3-result';
3
+
4
+ /**
5
+ Specification for an embedding model that implements the embedding model
6
+ interface version 3.
7
+
8
+ It is specific to text embeddings.
9
+ */
10
+ export type EmbeddingModelV3 = {
11
+ /**
12
+ The embedding model must specify which embedding model interface
13
+ version it implements. This will allow us to evolve the embedding
14
+ model interface and retain backwards compatibility. The different
15
+ implementation versions can be handled as a discriminated union
16
+ on our side.
17
+ */
18
+ readonly specificationVersion: 'v3';
19
+
20
+ /**
21
+ Name of the provider for logging purposes.
22
+ */
23
+ readonly provider: string;
24
+
25
+ /**
26
+ Provider-specific model ID for logging purposes.
27
+ */
28
+ readonly modelId: string;
29
+
30
+ /**
31
+ Limit of how many embeddings can be generated in a single API call.
32
+
33
+ Use Infinity for models that do not have a limit.
34
+ */
35
+ readonly maxEmbeddingsPerCall:
36
+ | PromiseLike<number | undefined>
37
+ | number
38
+ | undefined;
39
+
40
+ /**
41
+ True if the model can handle multiple embedding calls in parallel.
42
+ */
43
+ readonly supportsParallelCalls: PromiseLike<boolean> | boolean;
44
+
45
+ /**
46
+ Generates a list of embeddings for the given input text.
47
+
48
+ Naming: "do" prefix to prevent accidental direct usage of the method
49
+ by the user.
50
+ */
51
+ doEmbed(
52
+ options: EmbeddingModelV3CallOptions,
53
+ ): PromiseLike<EmbeddingModelV3Result>;
54
+ };
@@ -0,0 +1,4 @@
1
+ export * from './embedding-model-v3';
2
+ export * from './embedding-model-v3-call-options';
3
+ export * from './embedding-model-v3-embedding';
4
+ export * from './embedding-model-v3-result';
@@ -0,0 +1 @@
1
+ export * from './v3/index';
@@ -0,0 +1,69 @@
1
+ import { EmbeddingModelV3 } from '../../embedding-model/v3/embedding-model-v3';
2
+ import { EmbeddingModelV3CallOptions } from '../../embedding-model/v3/embedding-model-v3-call-options';
3
+
4
+ /**
5
+ * Middleware for EmbeddingModelV3.
6
+ * This type defines the structure for middleware that can be used to modify
7
+ * the behavior of EmbeddingModelV3 operations.
8
+ */
9
+ export type EmbeddingModelV3Middleware = {
10
+ /**
11
+ * Middleware specification version. Use `v3` for the current version.
12
+ */
13
+ readonly specificationVersion: 'v3';
14
+
15
+ /**
16
+ * Override the provider name if desired.
17
+ * @param options.model - The embedding model instance.
18
+ */
19
+ overrideProvider?: (options: { model: EmbeddingModelV3 }) => string;
20
+
21
+ /**
22
+ * Override the model ID if desired.
23
+ * @param options.model - The embedding model instance.
24
+ */
25
+ overrideModelId?: (options: { model: EmbeddingModelV3 }) => string;
26
+
27
+ /**
28
+ * Override the limit of how many embeddings can be generated in a single API call if desired.
29
+ * @param options.model - The embedding model instance.
30
+ */
31
+ overrideMaxEmbeddingsPerCall?: (options: {
32
+ model: EmbeddingModelV3;
33
+ }) => PromiseLike<number | undefined> | number | undefined;
34
+
35
+ /**
36
+ * Override support for handling multiple embedding calls in parallel, if desired..
37
+ * @param options.model - The embedding model instance.
38
+ */
39
+ overrideSupportsParallelCalls?: (options: {
40
+ model: EmbeddingModelV3;
41
+ }) => PromiseLike<boolean> | boolean;
42
+
43
+ /**
44
+ * Transforms the parameters before they are passed to the embed model.
45
+ * @param options - Object containing the type of operation and the parameters.
46
+ * @param options.params - The original parameters for the embedding model call.
47
+ * @returns A promise that resolves to the transformed parameters.
48
+ */
49
+ transformParams?: (options: {
50
+ params: EmbeddingModelV3CallOptions;
51
+ model: EmbeddingModelV3;
52
+ }) => PromiseLike<EmbeddingModelV3CallOptions>;
53
+
54
+ /**
55
+ * Wraps the embed operation of the embedding model.
56
+ *
57
+ * @param options - Object containing the embed function, parameters, and model.
58
+ * @param options.doEmbed - The original embed function.
59
+ * @param options.params - The parameters for the embed call. If the
60
+ * `transformParams` middleware is used, this will be the transformed parameters.
61
+ * @param options.model - The embedding model instance.
62
+ * @returns A promise that resolves to the result of the generate operation.
63
+ */
64
+ wrapEmbed?: (options: {
65
+ doEmbed: () => ReturnType<EmbeddingModelV3['doEmbed']>;
66
+ params: EmbeddingModelV3CallOptions;
67
+ model: EmbeddingModelV3;
68
+ }) => Promise<Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>>;
69
+ };
@@ -0,0 +1 @@
1
+ export * from './embedding-model-v3-middleware';
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Symbol used for identifying AI SDK Error instances.
3
+ * Enables checking if an error is an instance of AISDKError across package versions.
4
+ */
5
+ const marker = 'vercel.ai.error';
6
+ const symbol = Symbol.for(marker);
7
+
8
+ /**
9
+ * Custom error class for AI SDK related errors.
10
+ * @extends Error
11
+ */
12
+ export class AISDKError extends Error {
13
+ private readonly [symbol] = true; // used in isInstance
14
+
15
+ /**
16
+ * The underlying cause of the error, if any.
17
+ */
18
+ readonly cause?: unknown;
19
+
20
+ /**
21
+ * Creates an AI SDK Error.
22
+ *
23
+ * @param {Object} params - The parameters for creating the error.
24
+ * @param {string} params.name - The name of the error.
25
+ * @param {string} params.message - The error message.
26
+ * @param {unknown} [params.cause] - The underlying cause of the error.
27
+ */
28
+ constructor({
29
+ name,
30
+ message,
31
+ cause,
32
+ }: {
33
+ name: string;
34
+ message: string;
35
+ cause?: unknown;
36
+ }) {
37
+ super(message);
38
+
39
+ this.name = name;
40
+ this.cause = cause;
41
+ }
42
+
43
+ /**
44
+ * Checks if the given error is an AI SDK Error.
45
+ * @param {unknown} error - The error to check.
46
+ * @returns {boolean} True if the error is an AI SDK Error, false otherwise.
47
+ */
48
+ static isInstance(error: unknown): error is AISDKError {
49
+ return AISDKError.hasMarker(error, marker);
50
+ }
51
+
52
+ protected static hasMarker(error: unknown, marker: string): boolean {
53
+ const markerSymbol = Symbol.for(marker);
54
+ return (
55
+ error != null &&
56
+ typeof error === 'object' &&
57
+ markerSymbol in error &&
58
+ typeof error[markerSymbol] === 'boolean' &&
59
+ error[markerSymbol] === true
60
+ );
61
+ }
62
+ }
@@ -0,0 +1,59 @@
1
+ import { AISDKError } from './ai-sdk-error';
2
+
3
+ const name = 'AI_APICallError';
4
+ const marker = `vercel.ai.error.${name}`;
5
+ const symbol = Symbol.for(marker);
6
+
7
+ export class APICallError extends AISDKError {
8
+ private readonly [symbol] = true; // used in isInstance
9
+
10
+ readonly url: string;
11
+ readonly requestBodyValues: unknown;
12
+ readonly statusCode?: number;
13
+
14
+ readonly responseHeaders?: Record<string, string>;
15
+ readonly responseBody?: string;
16
+
17
+ readonly isRetryable: boolean;
18
+ readonly data?: unknown;
19
+
20
+ constructor({
21
+ message,
22
+ url,
23
+ requestBodyValues,
24
+ statusCode,
25
+ responseHeaders,
26
+ responseBody,
27
+ cause,
28
+ isRetryable = statusCode != null &&
29
+ (statusCode === 408 || // request timeout
30
+ statusCode === 409 || // conflict
31
+ statusCode === 429 || // too many requests
32
+ statusCode >= 500), // server error
33
+ data,
34
+ }: {
35
+ message: string;
36
+ url: string;
37
+ requestBodyValues: unknown;
38
+ statusCode?: number;
39
+ responseHeaders?: Record<string, string>;
40
+ responseBody?: string;
41
+ cause?: unknown;
42
+ isRetryable?: boolean;
43
+ data?: unknown;
44
+ }) {
45
+ super({ name, message, cause });
46
+
47
+ this.url = url;
48
+ this.requestBodyValues = requestBodyValues;
49
+ this.statusCode = statusCode;
50
+ this.responseHeaders = responseHeaders;
51
+ this.responseBody = responseBody;
52
+ this.isRetryable = isRetryable;
53
+ this.data = data;
54
+ }
55
+
56
+ static isInstance(error: unknown): error is APICallError {
57
+ return AISDKError.hasMarker(error, marker);
58
+ }
59
+ }
@@ -0,0 +1,17 @@
1
+ import { AISDKError } from './ai-sdk-error';
2
+
3
+ const name = 'AI_EmptyResponseBodyError';
4
+ const marker = `vercel.ai.error.${name}`;
5
+ const symbol = Symbol.for(marker);
6
+
7
+ export class EmptyResponseBodyError extends AISDKError {
8
+ private readonly [symbol] = true; // used in isInstance
9
+
10
+ constructor({ message = 'Empty response body' }: { message?: string } = {}) {
11
+ super({ name, message });
12
+ }
13
+
14
+ static isInstance(error: unknown): error is EmptyResponseBodyError {
15
+ return AISDKError.hasMarker(error, marker);
16
+ }
17
+ }
@@ -0,0 +1,15 @@
1
+ export function getErrorMessage(error: unknown | undefined) {
2
+ if (error == null) {
3
+ return 'unknown error';
4
+ }
5
+
6
+ if (typeof error === 'string') {
7
+ return error;
8
+ }
9
+
10
+ if (error instanceof Error) {
11
+ return error.message;
12
+ }
13
+
14
+ return JSON.stringify(error);
15
+ }
@@ -0,0 +1,15 @@
1
+ export { AISDKError } from './ai-sdk-error';
2
+ export { APICallError } from './api-call-error';
3
+ export { EmptyResponseBodyError } from './empty-response-body-error';
4
+ export { getErrorMessage } from './get-error-message';
5
+ export { InvalidArgumentError } from './invalid-argument-error';
6
+ export { InvalidPromptError } from './invalid-prompt-error';
7
+ export { InvalidResponseDataError } from './invalid-response-data-error';
8
+ export { JSONParseError } from './json-parse-error';
9
+ export { LoadAPIKeyError } from './load-api-key-error';
10
+ export { LoadSettingError } from './load-setting-error';
11
+ export { NoContentGeneratedError } from './no-content-generated-error';
12
+ export { NoSuchModelError } from './no-such-model-error';
13
+ export { TooManyEmbeddingValuesForCallError } from './too-many-embedding-values-for-call-error';
14
+ export { TypeValidationError } from './type-validation-error';
15
+ export { UnsupportedFunctionalityError } from './unsupported-functionality-error';