@ai-sdk/provider 3.0.0-beta.27 → 3.0.0-beta.29

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ai-sdk/provider
2
2
 
3
+ ## 3.0.0-beta.29
4
+
5
+ ### Patch Changes
6
+
7
+ - 9549c9e: chore(specification): extract types
8
+
9
+ ## 3.0.0-beta.28
10
+
11
+ ### Patch Changes
12
+
13
+ - 9061dc0: feat: image editing
14
+
3
15
  ## 3.0.0-beta.27
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -598,55 +598,102 @@ type ImageModelV3Usage = {
598
598
  totalTokens: number | undefined;
599
599
  };
600
600
 
601
+ /**
602
+ * An image file that can be used for image editing or variation generation.
603
+ */
604
+ type ImageModelV3File = {
605
+ type: 'file';
606
+ /**
607
+ * The IANA media type of the file, e.g. `image/png`. Any string is supported.
608
+ *
609
+ * @see https://www.iana.org/assignments/media-types/media-types.xhtml
610
+ */
611
+ mediaType: string;
612
+ /**
613
+ * Generated file data as base64 encoded strings or binary data.
614
+ *
615
+ * The file data should be returned without any unnecessary conversion.
616
+ * If the API returns base64 encoded strings, the file data should be returned
617
+ * as base64 encoded strings. If the API returns binary data, the file data should
618
+ * be returned as binary data.
619
+ */
620
+ data: string | Uint8Array;
621
+ /**
622
+ * Optional provider-specific metadata for the file part.
623
+ */
624
+ providerOptions?: SharedV3ProviderMetadata;
625
+ } | {
626
+ type: 'url';
627
+ /**
628
+ * The URL of the image file.
629
+ */
630
+ url: string;
631
+ /**
632
+ * Optional provider-specific metadata for the file part.
633
+ */
634
+ providerOptions?: SharedV3ProviderMetadata;
635
+ };
636
+
601
637
  type ImageModelV3CallOptions = {
602
638
  /**
603
- Prompt for the image generation.
604
- */
605
- prompt: string;
639
+ * Prompt for the image generation. Some operations, like upscaling, may not require a prompt.
640
+ */
641
+ prompt: string | undefined;
606
642
  /**
607
- Number of images to generate.
608
- */
643
+ * Number of images to generate.
644
+ */
609
645
  n: number;
610
646
  /**
611
- Size of the images to generate.
612
- Must have the format `{width}x{height}`.
613
- `undefined` will use the provider's default size.
614
- */
647
+ * Size of the images to generate.
648
+ * Must have the format `{width}x{height}`.
649
+ * `undefined` will use the provider's default size.
650
+ */
615
651
  size: `${number}x${number}` | undefined;
616
652
  /**
617
- Aspect ratio of the images to generate.
618
- Must have the format `{width}:{height}`.
619
- `undefined` will use the provider's default aspect ratio.
620
- */
653
+ * Aspect ratio of the images to generate.
654
+ * Must have the format `{width}:{height}`.
655
+ * `undefined` will use the provider's default aspect ratio.
656
+ */
621
657
  aspectRatio: `${number}:${number}` | undefined;
622
658
  /**
623
- Seed for the image generation.
624
- `undefined` will use the provider's default seed.
625
- */
659
+ * Seed for the image generation.
660
+ * `undefined` will use the provider's default seed.
661
+ */
626
662
  seed: number | undefined;
627
663
  /**
628
- Additional provider-specific options that are passed through to the provider
629
- as body parameters.
630
-
631
- The outer record is keyed by the provider name, and the inner
632
- record is keyed by the provider-specific metadata key.
633
- ```ts
634
- {
635
- "openai": {
636
- "style": "vivid"
637
- }
638
- }
639
- ```
640
- */
664
+ * Array of images for image editing or variation generation.
665
+ * The images should be provided as base64 encoded strings or binary data.
666
+ */
667
+ files: ImageModelV3File[] | undefined;
668
+ /**
669
+ * Mask image for inpainting operations.
670
+ * The mask should be provided as base64 encoded strings or binary data.
671
+ */
672
+ mask: ImageModelV3File | undefined;
673
+ /**
674
+ * Additional provider-specific options that are passed through to the provider
675
+ * as body parameters.
676
+ *
677
+ * The outer record is keyed by the provider name, and the inner
678
+ * record is keyed by the provider-specific metadata key.
679
+ *
680
+ * ```ts
681
+ * {
682
+ * "openai": {
683
+ * "style": "vivid"
684
+ * }
685
+ * }
686
+ * ```
687
+ */
641
688
  providerOptions: SharedV3ProviderOptions;
642
689
  /**
643
- Abort signal for cancelling the operation.
644
- */
690
+ * Abort signal for cancelling the operation.
691
+ */
645
692
  abortSignal?: AbortSignal;
646
693
  /**
647
- Additional HTTP headers to be sent with the request.
648
- Only applicable for HTTP-based providers.
649
- */
694
+ * Additional HTTP headers to be sent with the request.
695
+ * Only applicable for HTTP-based providers.
696
+ */
650
697
  headers?: Record<string, string | undefined>;
651
698
  };
652
699
 
@@ -1653,6 +1700,56 @@ type LanguageModelV3Usage = {
1653
1700
  raw?: JSONObject;
1654
1701
  };
1655
1702
 
1703
+ /**
1704
+ * The result of a language model doGenerate call.
1705
+ */
1706
+ type LanguageModelV3GenerateResult = {
1707
+ /**
1708
+ * Ordered content that the model has generated.
1709
+ */
1710
+ content: Array<LanguageModelV3Content>;
1711
+ /**
1712
+ * The finish reason.
1713
+ */
1714
+ finishReason: LanguageModelV3FinishReason;
1715
+ /**
1716
+ * The usage information.
1717
+ */
1718
+ usage: LanguageModelV3Usage;
1719
+ /**
1720
+ * Additional provider-specific metadata. They are passed through
1721
+ * from the provider to the AI SDK and enable provider-specific
1722
+ * results that can be fully encapsulated in the provider.
1723
+ */
1724
+ providerMetadata?: SharedV3ProviderMetadata;
1725
+ /**
1726
+ * Optional request information for telemetry and debugging purposes.
1727
+ */
1728
+ request?: {
1729
+ /**
1730
+ * Request HTTP body that was sent to the provider API.
1731
+ */
1732
+ body?: unknown;
1733
+ };
1734
+ /**
1735
+ * Optional response information for telemetry and debugging purposes.
1736
+ */
1737
+ response?: LanguageModelV3ResponseMetadata & {
1738
+ /**
1739
+ * Response headers.
1740
+ */
1741
+ headers?: SharedV3Headers;
1742
+ /**
1743
+ * Response HTTP body.
1744
+ */
1745
+ body?: unknown;
1746
+ };
1747
+ /**
1748
+ * Warnings for the call, e.g. unsupported settings.
1749
+ */
1750
+ warnings: Array<SharedV3Warning>;
1751
+ };
1752
+
1656
1753
  type LanguageModelV3StreamPart = {
1657
1754
  type: 'text-start';
1658
1755
  providerMetadata?: SharedV3ProviderMetadata;
@@ -1715,115 +1812,78 @@ type LanguageModelV3StreamPart = {
1715
1812
  };
1716
1813
 
1717
1814
  /**
1718
- Specification for a language model that implements the language model interface version 3.
1815
+ * The result of a language model doStream call.
1816
+ */
1817
+ type LanguageModelV3StreamResult = {
1818
+ /**
1819
+ * The stream.
1820
+ */
1821
+ stream: ReadableStream<LanguageModelV3StreamPart>;
1822
+ /**
1823
+ * Optional request information for telemetry and debugging purposes.
1824
+ */
1825
+ request?: {
1826
+ /**
1827
+ * Request HTTP body that was sent to the provider API.
1828
+ */
1829
+ body?: unknown;
1830
+ };
1831
+ /**
1832
+ * Optional response data.
1833
+ */
1834
+ response?: {
1835
+ /**
1836
+ * Response headers.
1837
+ */
1838
+ headers?: SharedV3Headers;
1839
+ };
1840
+ };
1841
+
1842
+ /**
1843
+ * Specification for a language model that implements the language model interface version 3.
1719
1844
  */
1720
1845
  type LanguageModelV3 = {
1721
1846
  /**
1722
- The language model must specify which language model interface version it implements.
1847
+ * The language model must specify which language model interface version it implements.
1723
1848
  */
1724
1849
  readonly specificationVersion: 'v3';
1725
1850
  /**
1726
- Provider ID.
1851
+ * Provider ID.
1727
1852
  */
1728
1853
  readonly provider: string;
1729
1854
  /**
1730
- Provider-specific model ID.
1855
+ * Provider-specific model ID.
1731
1856
  */
1732
1857
  readonly modelId: string;
1733
1858
  /**
1734
- Supported URL patterns by media type for the provider.
1735
-
1736
- The keys are media type patterns or full media types (e.g. `*\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).
1737
- and the values are arrays of regular expressions that match the URL paths.
1738
-
1739
- The matching should be against lower-case URLs.
1740
-
1741
- Matched URLs are supported natively by the model and are not downloaded.
1742
-
1743
- @returns A map of supported URL patterns by media type (as a promise or a plain object).
1859
+ * Supported URL patterns by media type for the provider.
1860
+ *
1861
+ * The keys are media type patterns or full media types (e.g. `*\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).
1862
+ * and the values are arrays of regular expressions that match the URL paths.
1863
+ *
1864
+ * The matching should be against lower-case URLs.
1865
+ *
1866
+ * Matched URLs are supported natively by the model and are not downloaded.
1867
+ *
1868
+ * @returns A map of supported URL patterns by media type (as a promise or a plain object).
1744
1869
  */
1745
1870
  supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;
1746
1871
  /**
1747
- Generates a language model output (non-streaming).
1872
+ * Generates a language model output (non-streaming).
1748
1873
 
1749
- Naming: "do" prefix to prevent accidental direct usage of the method
1750
- by the user.
1874
+ * Naming: "do" prefix to prevent accidental direct usage of the method
1875
+ * by the user.
1751
1876
  */
1752
- doGenerate(options: LanguageModelV3CallOptions): PromiseLike<{
1753
- /**
1754
- Ordered content that the model has generated.
1755
- */
1756
- content: Array<LanguageModelV3Content>;
1757
- /**
1758
- Finish reason.
1759
- */
1760
- finishReason: LanguageModelV3FinishReason;
1761
- /**
1762
- Usage information.
1763
- */
1764
- usage: LanguageModelV3Usage;
1765
- /**
1766
- Additional provider-specific metadata. They are passed through
1767
- from the provider to the AI SDK and enable provider-specific
1768
- results that can be fully encapsulated in the provider.
1769
- */
1770
- providerMetadata?: SharedV3ProviderMetadata;
1771
- /**
1772
- Optional request information for telemetry and debugging purposes.
1773
- */
1774
- request?: {
1775
- /**
1776
- Request HTTP body that was sent to the provider API.
1777
- */
1778
- body?: unknown;
1779
- };
1780
- /**
1781
- Optional response information for telemetry and debugging purposes.
1782
- */
1783
- response?: LanguageModelV3ResponseMetadata & {
1784
- /**
1785
- Response headers.
1786
- */
1787
- headers?: SharedV3Headers;
1788
- /**
1789
- Response HTTP body.
1790
- */
1791
- body?: unknown;
1792
- };
1793
- /**
1794
- Warnings for the call, e.g. unsupported settings.
1795
- */
1796
- warnings: Array<SharedV3Warning>;
1797
- }>;
1877
+ doGenerate(options: LanguageModelV3CallOptions): PromiseLike<LanguageModelV3GenerateResult>;
1798
1878
  /**
1799
- Generates a language model output (streaming).
1800
-
1801
- Naming: "do" prefix to prevent accidental direct usage of the method
1802
- by the user.
1879
+ * Generates a language model output (streaming).
1803
1880
  *
1804
- @return A stream of higher-level language model output parts.
1881
+ * Naming: "do" prefix to prevent accidental direct usage of the method
1882
+ * by the user.
1883
+ *
1884
+ * @return A stream of higher-level language model output parts.
1805
1885
  */
1806
- doStream(options: LanguageModelV3CallOptions): PromiseLike<{
1807
- stream: ReadableStream<LanguageModelV3StreamPart>;
1808
- /**
1809
- Optional request information for telemetry and debugging purposes.
1810
- */
1811
- request?: {
1812
- /**
1813
- Request HTTP body that was sent to the provider API.
1814
- */
1815
- body?: unknown;
1816
- };
1817
- /**
1818
- Optional response data.
1819
- */
1820
- response?: {
1821
- /**
1822
- Response headers.
1823
- */
1824
- headers?: SharedV3Headers;
1825
- };
1826
- }>;
1886
+ doStream(options: LanguageModelV3CallOptions): PromiseLike<LanguageModelV3StreamResult>;
1827
1887
  };
1828
1888
 
1829
1889
  /**
@@ -1880,11 +1940,11 @@ type LanguageModelV3Middleware = {
1880
1940
  * @returns A promise that resolves to the result of the generate operation.
1881
1941
  */
1882
1942
  wrapGenerate?: (options: {
1883
- doGenerate: () => ReturnType<LanguageModelV3['doGenerate']>;
1884
- doStream: () => ReturnType<LanguageModelV3['doStream']>;
1943
+ doGenerate: () => PromiseLike<LanguageModelV3GenerateResult>;
1944
+ doStream: () => PromiseLike<LanguageModelV3StreamResult>;
1885
1945
  params: LanguageModelV3CallOptions;
1886
1946
  model: LanguageModelV3;
1887
- }) => Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>>;
1947
+ }) => PromiseLike<LanguageModelV3GenerateResult>;
1888
1948
  /**
1889
1949
  * Wraps the stream operation of the language model.
1890
1950
  *
@@ -1897,11 +1957,11 @@ type LanguageModelV3Middleware = {
1897
1957
  * @returns A promise that resolves to the result of the stream operation.
1898
1958
  */
1899
1959
  wrapStream?: (options: {
1900
- doGenerate: () => ReturnType<LanguageModelV3['doGenerate']>;
1901
- doStream: () => ReturnType<LanguageModelV3['doStream']>;
1960
+ doGenerate: () => PromiseLike<LanguageModelV3GenerateResult>;
1961
+ doStream: () => PromiseLike<LanguageModelV3StreamResult>;
1902
1962
  params: LanguageModelV3CallOptions;
1903
1963
  model: LanguageModelV3;
1904
- }) => PromiseLike<Awaited<ReturnType<LanguageModelV3['doStream']>>>;
1964
+ }) => PromiseLike<LanguageModelV3StreamResult>;
1905
1965
  };
1906
1966
 
1907
1967
  /**
@@ -3609,4 +3669,4 @@ interface ProviderV2 {
3609
3669
  speechModel?(modelId: string): SpeechModelV2;
3610
3670
  }
3611
3671
 
3612
- export { AISDKError, APICallError, type EmbeddingModelCallOptions, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3Embedding, type EmbeddingModelV3Middleware, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, 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 LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3Text, type LanguageModelV3TextPart, 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 };
3672
+ export { AISDKError, APICallError, type EmbeddingModelCallOptions, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3Embedding, type EmbeddingModelV3Middleware, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3File, 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 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
@@ -598,55 +598,102 @@ type ImageModelV3Usage = {
598
598
  totalTokens: number | undefined;
599
599
  };
600
600
 
601
+ /**
602
+ * An image file that can be used for image editing or variation generation.
603
+ */
604
+ type ImageModelV3File = {
605
+ type: 'file';
606
+ /**
607
+ * The IANA media type of the file, e.g. `image/png`. Any string is supported.
608
+ *
609
+ * @see https://www.iana.org/assignments/media-types/media-types.xhtml
610
+ */
611
+ mediaType: string;
612
+ /**
613
+ * Generated file data as base64 encoded strings or binary data.
614
+ *
615
+ * The file data should be returned without any unnecessary conversion.
616
+ * If the API returns base64 encoded strings, the file data should be returned
617
+ * as base64 encoded strings. If the API returns binary data, the file data should
618
+ * be returned as binary data.
619
+ */
620
+ data: string | Uint8Array;
621
+ /**
622
+ * Optional provider-specific metadata for the file part.
623
+ */
624
+ providerOptions?: SharedV3ProviderMetadata;
625
+ } | {
626
+ type: 'url';
627
+ /**
628
+ * The URL of the image file.
629
+ */
630
+ url: string;
631
+ /**
632
+ * Optional provider-specific metadata for the file part.
633
+ */
634
+ providerOptions?: SharedV3ProviderMetadata;
635
+ };
636
+
601
637
  type ImageModelV3CallOptions = {
602
638
  /**
603
- Prompt for the image generation.
604
- */
605
- prompt: string;
639
+ * Prompt for the image generation. Some operations, like upscaling, may not require a prompt.
640
+ */
641
+ prompt: string | undefined;
606
642
  /**
607
- Number of images to generate.
608
- */
643
+ * Number of images to generate.
644
+ */
609
645
  n: number;
610
646
  /**
611
- Size of the images to generate.
612
- Must have the format `{width}x{height}`.
613
- `undefined` will use the provider's default size.
614
- */
647
+ * Size of the images to generate.
648
+ * Must have the format `{width}x{height}`.
649
+ * `undefined` will use the provider's default size.
650
+ */
615
651
  size: `${number}x${number}` | undefined;
616
652
  /**
617
- Aspect ratio of the images to generate.
618
- Must have the format `{width}:{height}`.
619
- `undefined` will use the provider's default aspect ratio.
620
- */
653
+ * Aspect ratio of the images to generate.
654
+ * Must have the format `{width}:{height}`.
655
+ * `undefined` will use the provider's default aspect ratio.
656
+ */
621
657
  aspectRatio: `${number}:${number}` | undefined;
622
658
  /**
623
- Seed for the image generation.
624
- `undefined` will use the provider's default seed.
625
- */
659
+ * Seed for the image generation.
660
+ * `undefined` will use the provider's default seed.
661
+ */
626
662
  seed: number | undefined;
627
663
  /**
628
- Additional provider-specific options that are passed through to the provider
629
- as body parameters.
630
-
631
- The outer record is keyed by the provider name, and the inner
632
- record is keyed by the provider-specific metadata key.
633
- ```ts
634
- {
635
- "openai": {
636
- "style": "vivid"
637
- }
638
- }
639
- ```
640
- */
664
+ * Array of images for image editing or variation generation.
665
+ * The images should be provided as base64 encoded strings or binary data.
666
+ */
667
+ files: ImageModelV3File[] | undefined;
668
+ /**
669
+ * Mask image for inpainting operations.
670
+ * The mask should be provided as base64 encoded strings or binary data.
671
+ */
672
+ mask: ImageModelV3File | undefined;
673
+ /**
674
+ * Additional provider-specific options that are passed through to the provider
675
+ * as body parameters.
676
+ *
677
+ * The outer record is keyed by the provider name, and the inner
678
+ * record is keyed by the provider-specific metadata key.
679
+ *
680
+ * ```ts
681
+ * {
682
+ * "openai": {
683
+ * "style": "vivid"
684
+ * }
685
+ * }
686
+ * ```
687
+ */
641
688
  providerOptions: SharedV3ProviderOptions;
642
689
  /**
643
- Abort signal for cancelling the operation.
644
- */
690
+ * Abort signal for cancelling the operation.
691
+ */
645
692
  abortSignal?: AbortSignal;
646
693
  /**
647
- Additional HTTP headers to be sent with the request.
648
- Only applicable for HTTP-based providers.
649
- */
694
+ * Additional HTTP headers to be sent with the request.
695
+ * Only applicable for HTTP-based providers.
696
+ */
650
697
  headers?: Record<string, string | undefined>;
651
698
  };
652
699
 
@@ -1653,6 +1700,56 @@ type LanguageModelV3Usage = {
1653
1700
  raw?: JSONObject;
1654
1701
  };
1655
1702
 
1703
+ /**
1704
+ * The result of a language model doGenerate call.
1705
+ */
1706
+ type LanguageModelV3GenerateResult = {
1707
+ /**
1708
+ * Ordered content that the model has generated.
1709
+ */
1710
+ content: Array<LanguageModelV3Content>;
1711
+ /**
1712
+ * The finish reason.
1713
+ */
1714
+ finishReason: LanguageModelV3FinishReason;
1715
+ /**
1716
+ * The usage information.
1717
+ */
1718
+ usage: LanguageModelV3Usage;
1719
+ /**
1720
+ * Additional provider-specific metadata. They are passed through
1721
+ * from the provider to the AI SDK and enable provider-specific
1722
+ * results that can be fully encapsulated in the provider.
1723
+ */
1724
+ providerMetadata?: SharedV3ProviderMetadata;
1725
+ /**
1726
+ * Optional request information for telemetry and debugging purposes.
1727
+ */
1728
+ request?: {
1729
+ /**
1730
+ * Request HTTP body that was sent to the provider API.
1731
+ */
1732
+ body?: unknown;
1733
+ };
1734
+ /**
1735
+ * Optional response information for telemetry and debugging purposes.
1736
+ */
1737
+ response?: LanguageModelV3ResponseMetadata & {
1738
+ /**
1739
+ * Response headers.
1740
+ */
1741
+ headers?: SharedV3Headers;
1742
+ /**
1743
+ * Response HTTP body.
1744
+ */
1745
+ body?: unknown;
1746
+ };
1747
+ /**
1748
+ * Warnings for the call, e.g. unsupported settings.
1749
+ */
1750
+ warnings: Array<SharedV3Warning>;
1751
+ };
1752
+
1656
1753
  type LanguageModelV3StreamPart = {
1657
1754
  type: 'text-start';
1658
1755
  providerMetadata?: SharedV3ProviderMetadata;
@@ -1715,115 +1812,78 @@ type LanguageModelV3StreamPart = {
1715
1812
  };
1716
1813
 
1717
1814
  /**
1718
- Specification for a language model that implements the language model interface version 3.
1815
+ * The result of a language model doStream call.
1816
+ */
1817
+ type LanguageModelV3StreamResult = {
1818
+ /**
1819
+ * The stream.
1820
+ */
1821
+ stream: ReadableStream<LanguageModelV3StreamPart>;
1822
+ /**
1823
+ * Optional request information for telemetry and debugging purposes.
1824
+ */
1825
+ request?: {
1826
+ /**
1827
+ * Request HTTP body that was sent to the provider API.
1828
+ */
1829
+ body?: unknown;
1830
+ };
1831
+ /**
1832
+ * Optional response data.
1833
+ */
1834
+ response?: {
1835
+ /**
1836
+ * Response headers.
1837
+ */
1838
+ headers?: SharedV3Headers;
1839
+ };
1840
+ };
1841
+
1842
+ /**
1843
+ * Specification for a language model that implements the language model interface version 3.
1719
1844
  */
1720
1845
  type LanguageModelV3 = {
1721
1846
  /**
1722
- The language model must specify which language model interface version it implements.
1847
+ * The language model must specify which language model interface version it implements.
1723
1848
  */
1724
1849
  readonly specificationVersion: 'v3';
1725
1850
  /**
1726
- Provider ID.
1851
+ * Provider ID.
1727
1852
  */
1728
1853
  readonly provider: string;
1729
1854
  /**
1730
- Provider-specific model ID.
1855
+ * Provider-specific model ID.
1731
1856
  */
1732
1857
  readonly modelId: string;
1733
1858
  /**
1734
- Supported URL patterns by media type for the provider.
1735
-
1736
- The keys are media type patterns or full media types (e.g. `*\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).
1737
- and the values are arrays of regular expressions that match the URL paths.
1738
-
1739
- The matching should be against lower-case URLs.
1740
-
1741
- Matched URLs are supported natively by the model and are not downloaded.
1742
-
1743
- @returns A map of supported URL patterns by media type (as a promise or a plain object).
1859
+ * Supported URL patterns by media type for the provider.
1860
+ *
1861
+ * The keys are media type patterns or full media types (e.g. `*\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).
1862
+ * and the values are arrays of regular expressions that match the URL paths.
1863
+ *
1864
+ * The matching should be against lower-case URLs.
1865
+ *
1866
+ * Matched URLs are supported natively by the model and are not downloaded.
1867
+ *
1868
+ * @returns A map of supported URL patterns by media type (as a promise or a plain object).
1744
1869
  */
1745
1870
  supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;
1746
1871
  /**
1747
- Generates a language model output (non-streaming).
1872
+ * Generates a language model output (non-streaming).
1748
1873
 
1749
- Naming: "do" prefix to prevent accidental direct usage of the method
1750
- by the user.
1874
+ * Naming: "do" prefix to prevent accidental direct usage of the method
1875
+ * by the user.
1751
1876
  */
1752
- doGenerate(options: LanguageModelV3CallOptions): PromiseLike<{
1753
- /**
1754
- Ordered content that the model has generated.
1755
- */
1756
- content: Array<LanguageModelV3Content>;
1757
- /**
1758
- Finish reason.
1759
- */
1760
- finishReason: LanguageModelV3FinishReason;
1761
- /**
1762
- Usage information.
1763
- */
1764
- usage: LanguageModelV3Usage;
1765
- /**
1766
- Additional provider-specific metadata. They are passed through
1767
- from the provider to the AI SDK and enable provider-specific
1768
- results that can be fully encapsulated in the provider.
1769
- */
1770
- providerMetadata?: SharedV3ProviderMetadata;
1771
- /**
1772
- Optional request information for telemetry and debugging purposes.
1773
- */
1774
- request?: {
1775
- /**
1776
- Request HTTP body that was sent to the provider API.
1777
- */
1778
- body?: unknown;
1779
- };
1780
- /**
1781
- Optional response information for telemetry and debugging purposes.
1782
- */
1783
- response?: LanguageModelV3ResponseMetadata & {
1784
- /**
1785
- Response headers.
1786
- */
1787
- headers?: SharedV3Headers;
1788
- /**
1789
- Response HTTP body.
1790
- */
1791
- body?: unknown;
1792
- };
1793
- /**
1794
- Warnings for the call, e.g. unsupported settings.
1795
- */
1796
- warnings: Array<SharedV3Warning>;
1797
- }>;
1877
+ doGenerate(options: LanguageModelV3CallOptions): PromiseLike<LanguageModelV3GenerateResult>;
1798
1878
  /**
1799
- Generates a language model output (streaming).
1800
-
1801
- Naming: "do" prefix to prevent accidental direct usage of the method
1802
- by the user.
1879
+ * Generates a language model output (streaming).
1803
1880
  *
1804
- @return A stream of higher-level language model output parts.
1881
+ * Naming: "do" prefix to prevent accidental direct usage of the method
1882
+ * by the user.
1883
+ *
1884
+ * @return A stream of higher-level language model output parts.
1805
1885
  */
1806
- doStream(options: LanguageModelV3CallOptions): PromiseLike<{
1807
- stream: ReadableStream<LanguageModelV3StreamPart>;
1808
- /**
1809
- Optional request information for telemetry and debugging purposes.
1810
- */
1811
- request?: {
1812
- /**
1813
- Request HTTP body that was sent to the provider API.
1814
- */
1815
- body?: unknown;
1816
- };
1817
- /**
1818
- Optional response data.
1819
- */
1820
- response?: {
1821
- /**
1822
- Response headers.
1823
- */
1824
- headers?: SharedV3Headers;
1825
- };
1826
- }>;
1886
+ doStream(options: LanguageModelV3CallOptions): PromiseLike<LanguageModelV3StreamResult>;
1827
1887
  };
1828
1888
 
1829
1889
  /**
@@ -1880,11 +1940,11 @@ type LanguageModelV3Middleware = {
1880
1940
  * @returns A promise that resolves to the result of the generate operation.
1881
1941
  */
1882
1942
  wrapGenerate?: (options: {
1883
- doGenerate: () => ReturnType<LanguageModelV3['doGenerate']>;
1884
- doStream: () => ReturnType<LanguageModelV3['doStream']>;
1943
+ doGenerate: () => PromiseLike<LanguageModelV3GenerateResult>;
1944
+ doStream: () => PromiseLike<LanguageModelV3StreamResult>;
1885
1945
  params: LanguageModelV3CallOptions;
1886
1946
  model: LanguageModelV3;
1887
- }) => Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>>;
1947
+ }) => PromiseLike<LanguageModelV3GenerateResult>;
1888
1948
  /**
1889
1949
  * Wraps the stream operation of the language model.
1890
1950
  *
@@ -1897,11 +1957,11 @@ type LanguageModelV3Middleware = {
1897
1957
  * @returns A promise that resolves to the result of the stream operation.
1898
1958
  */
1899
1959
  wrapStream?: (options: {
1900
- doGenerate: () => ReturnType<LanguageModelV3['doGenerate']>;
1901
- doStream: () => ReturnType<LanguageModelV3['doStream']>;
1960
+ doGenerate: () => PromiseLike<LanguageModelV3GenerateResult>;
1961
+ doStream: () => PromiseLike<LanguageModelV3StreamResult>;
1902
1962
  params: LanguageModelV3CallOptions;
1903
1963
  model: LanguageModelV3;
1904
- }) => PromiseLike<Awaited<ReturnType<LanguageModelV3['doStream']>>>;
1964
+ }) => PromiseLike<LanguageModelV3StreamResult>;
1905
1965
  };
1906
1966
 
1907
1967
  /**
@@ -3609,4 +3669,4 @@ interface ProviderV2 {
3609
3669
  speechModel?(modelId: string): SpeechModelV2;
3610
3670
  }
3611
3671
 
3612
- export { AISDKError, APICallError, type EmbeddingModelCallOptions, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3Embedding, type EmbeddingModelV3Middleware, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, 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 LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3Text, type LanguageModelV3TextPart, 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 };
3672
+ export { AISDKError, APICallError, type EmbeddingModelCallOptions, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3Embedding, type EmbeddingModelV3Middleware, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3File, 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 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,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/provider",
3
- "version": "3.0.0-beta.27",
3
+ "version": "3.0.0-beta.29",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",