@ai-sdk/provider 2.0.0-canary.11 → 2.0.0-canary.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 CHANGED
@@ -1,5 +1,35 @@
1
1
  # @ai-sdk/provider
2
2
 
3
+ ## 2.0.0-canary.13
4
+
5
+ ### Patch Changes
6
+
7
+ - 9bd5ab5: feat (provider): add providerMetadata to ImageModelV2 interface (#5977)
8
+
9
+ The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
10
+
11
+ ```js
12
+ const prompt = 'Santa Claus driving a Cadillac';
13
+
14
+ const { providerMetadata } = await experimental_generateImage({
15
+ model: openai.image('dall-e-3'),
16
+ prompt,
17
+ });
18
+
19
+ const revisedPrompt = providerMetadata.openai.images[0]?.revisedPrompt;
20
+
21
+ console.log({
22
+ prompt,
23
+ revisedPrompt,
24
+ });
25
+ ```
26
+
27
+ ## 2.0.0-canary.12
28
+
29
+ ### Patch Changes
30
+
31
+ - 7b3ae3f: chore (provider): change getSupportedUrls to supportedUrls (language model v2)
32
+
3
33
  ## 2.0.0-canary.11
4
34
 
5
35
  ### Major Changes
package/dist/index.d.mts CHANGED
@@ -3,6 +3,10 @@ export { JSONSchema7, JSONSchema7Definition } from 'json-schema';
3
3
 
4
4
  type SharedV2Headers = Record<string, string>;
5
5
 
6
+ /**
7
+ A JSON value can be a string, number, boolean, object, array, or null.
8
+ JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods.
9
+ */
6
10
  type JSONValue = null | string | number | boolean | JSONObject | JSONArray;
7
11
  type JSONObject = {
8
12
  [key: string]: JSONValue;
@@ -371,6 +375,10 @@ declare class UnsupportedFunctionalityError extends AISDKError {
371
375
  static isInstance(error: unknown): error is UnsupportedFunctionalityError;
372
376
  }
373
377
 
378
+ declare function isJSONValue(value: unknown): value is JSONValue;
379
+ declare function isJSONArray(value: unknown): value is JSONArray;
380
+ declare function isJSONObject(value: unknown): value is JSONObject;
381
+
374
382
  type ImageModelV2CallOptions = {
375
383
  /**
376
384
  Prompt for the image generation.
@@ -405,13 +413,13 @@ type ImageModelV2CallOptions = {
405
413
  record is keyed by the provider-specific metadata key.
406
414
  ```ts
407
415
  {
408
- "openai": {
409
- "style": "vivid"
410
- }
416
+ "openai": {
417
+ "style": "vivid"
418
+ }
411
419
  }
412
420
  ```
413
421
  */
414
- providerOptions: Record<string, Record<string, JSONValue>>;
422
+ providerOptions: SharedV2ProviderOptions;
415
423
  /**
416
424
  Abort signal for cancelling the operation.
417
425
  */
@@ -436,8 +444,11 @@ type ImageModelV2CallWarning = {
436
444
  message: string;
437
445
  };
438
446
 
447
+ type ImageModelV2ProviderMetadata = Record<string, {
448
+ images: JSONArray;
449
+ } & JSONValue>;
439
450
  /**
440
- Image generation model specification version 1.
451
+ Image generation model specification version 2.
441
452
  */
442
453
  type ImageModelV2 = {
443
454
  /**
@@ -447,7 +458,7 @@ type ImageModelV2 = {
447
458
  implementation versions can be handled as a discriminated union
448
459
  on our side.
449
460
  */
450
- readonly specificationVersion: 'v1';
461
+ readonly specificationVersion: 'v2';
451
462
  /**
452
463
  Name of the provider for logging purposes.
453
464
  */
@@ -478,6 +489,24 @@ type ImageModelV2 = {
478
489
  */
479
490
  warnings: Array<ImageModelV2CallWarning>;
480
491
  /**
492
+ Additional provider-specific metadata. They are passed through
493
+ from the provider to the AI SDK and enable provider-specific
494
+ results that can be fully encapsulated in the provider.
495
+
496
+ The outer record is keyed by the provider name, and the inner
497
+ record is provider-specific metadata. It always includes an
498
+ `images` key with image-specific metadata
499
+
500
+ ```ts
501
+ {
502
+ "openai": {
503
+ "images": ["revisedPrompt": "Revised prompt here."]
504
+ }
505
+ }
506
+ ```
507
+ */
508
+ providerMetadata?: ImageModelV2ProviderMetadata;
509
+ /**
481
510
  Response information for telemetry and debugging purposes.
482
511
  */
483
512
  response: {
@@ -497,10 +526,6 @@ type ImageModelV2 = {
497
526
  }>;
498
527
  };
499
528
 
500
- declare function isJSONValue(value: unknown): value is JSONValue;
501
- declare function isJSONArray(value: unknown): value is JSONArray;
502
- declare function isJSONObject(value: unknown): value is JSONObject;
503
-
504
529
  /**
505
530
  A tool has a name, a description, and a set of parameters.
506
531
 
@@ -1040,7 +1065,7 @@ type LanguageModelV2 = {
1040
1065
  *
1041
1066
  * @returns A promise resolving to a map of supported URL patterns.
1042
1067
  */
1043
- getSupportedUrls(): PromiseLike<Record<string, RegExp[]>>;
1068
+ supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;
1044
1069
  /**
1045
1070
  Generates a language model output (non-streaming).
1046
1071
 
@@ -2360,4 +2385,4 @@ interface ProviderV2 {
2360
2385
  readonly imageModel: (modelId: string) => ImageModelV2;
2361
2386
  }
2362
2387
 
2363
- export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV1, type LanguageModelV1CallOptions, type LanguageModelV1CallWarning, type LanguageModelV1FilePart, type LanguageModelV1FinishReason, type LanguageModelV1FunctionTool, type LanguageModelV1FunctionToolCall, type LanguageModelV1ImagePart, type LanguageModelV1LogProbs, type LanguageModelV1Message, type LanguageModelV1ObjectGenerationMode, type LanguageModelV1Prompt, type LanguageModelV1ProviderDefinedTool, type LanguageModelV1ProviderMetadata, type LanguageModelV1ReasoningPart, type LanguageModelV1RedactedReasoningPart, type LanguageModelV1Source, type LanguageModelV1StreamPart, type LanguageModelV1TextPart, type LanguageModelV1ToolCallPart, type LanguageModelV1ToolChoice, type LanguageModelV1ToolResultPart, 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 LanguageModelV2ToolCallDelta, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV1, type ProviderV2, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SpeechModelV1, type SpeechModelV1CallOptions, type SpeechModelV1CallWarning, TooManyEmbeddingValuesForCallError, type TranscriptionModelV1, type TranscriptionModelV1CallOptions, type TranscriptionModelV1CallWarning, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
2388
+ export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV1, type LanguageModelV1CallOptions, type LanguageModelV1CallWarning, type LanguageModelV1FilePart, type LanguageModelV1FinishReason, type LanguageModelV1FunctionTool, type LanguageModelV1FunctionToolCall, type LanguageModelV1ImagePart, type LanguageModelV1LogProbs, type LanguageModelV1Message, type LanguageModelV1ObjectGenerationMode, type LanguageModelV1Prompt, type LanguageModelV1ProviderDefinedTool, type LanguageModelV1ProviderMetadata, type LanguageModelV1ReasoningPart, type LanguageModelV1RedactedReasoningPart, type LanguageModelV1Source, type LanguageModelV1StreamPart, type LanguageModelV1TextPart, type LanguageModelV1ToolCallPart, type LanguageModelV1ToolChoice, type LanguageModelV1ToolResultPart, 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 LanguageModelV2ToolCallDelta, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV1, type ProviderV2, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SpeechModelV1, type SpeechModelV1CallOptions, type SpeechModelV1CallWarning, TooManyEmbeddingValuesForCallError, type TranscriptionModelV1, type TranscriptionModelV1CallOptions, type TranscriptionModelV1CallWarning, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
package/dist/index.d.ts CHANGED
@@ -3,6 +3,10 @@ export { JSONSchema7, JSONSchema7Definition } from 'json-schema';
3
3
 
4
4
  type SharedV2Headers = Record<string, string>;
5
5
 
6
+ /**
7
+ A JSON value can be a string, number, boolean, object, array, or null.
8
+ JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods.
9
+ */
6
10
  type JSONValue = null | string | number | boolean | JSONObject | JSONArray;
7
11
  type JSONObject = {
8
12
  [key: string]: JSONValue;
@@ -371,6 +375,10 @@ declare class UnsupportedFunctionalityError extends AISDKError {
371
375
  static isInstance(error: unknown): error is UnsupportedFunctionalityError;
372
376
  }
373
377
 
378
+ declare function isJSONValue(value: unknown): value is JSONValue;
379
+ declare function isJSONArray(value: unknown): value is JSONArray;
380
+ declare function isJSONObject(value: unknown): value is JSONObject;
381
+
374
382
  type ImageModelV2CallOptions = {
375
383
  /**
376
384
  Prompt for the image generation.
@@ -405,13 +413,13 @@ type ImageModelV2CallOptions = {
405
413
  record is keyed by the provider-specific metadata key.
406
414
  ```ts
407
415
  {
408
- "openai": {
409
- "style": "vivid"
410
- }
416
+ "openai": {
417
+ "style": "vivid"
418
+ }
411
419
  }
412
420
  ```
413
421
  */
414
- providerOptions: Record<string, Record<string, JSONValue>>;
422
+ providerOptions: SharedV2ProviderOptions;
415
423
  /**
416
424
  Abort signal for cancelling the operation.
417
425
  */
@@ -436,8 +444,11 @@ type ImageModelV2CallWarning = {
436
444
  message: string;
437
445
  };
438
446
 
447
+ type ImageModelV2ProviderMetadata = Record<string, {
448
+ images: JSONArray;
449
+ } & JSONValue>;
439
450
  /**
440
- Image generation model specification version 1.
451
+ Image generation model specification version 2.
441
452
  */
442
453
  type ImageModelV2 = {
443
454
  /**
@@ -447,7 +458,7 @@ type ImageModelV2 = {
447
458
  implementation versions can be handled as a discriminated union
448
459
  on our side.
449
460
  */
450
- readonly specificationVersion: 'v1';
461
+ readonly specificationVersion: 'v2';
451
462
  /**
452
463
  Name of the provider for logging purposes.
453
464
  */
@@ -478,6 +489,24 @@ type ImageModelV2 = {
478
489
  */
479
490
  warnings: Array<ImageModelV2CallWarning>;
480
491
  /**
492
+ Additional provider-specific metadata. They are passed through
493
+ from the provider to the AI SDK and enable provider-specific
494
+ results that can be fully encapsulated in the provider.
495
+
496
+ The outer record is keyed by the provider name, and the inner
497
+ record is provider-specific metadata. It always includes an
498
+ `images` key with image-specific metadata
499
+
500
+ ```ts
501
+ {
502
+ "openai": {
503
+ "images": ["revisedPrompt": "Revised prompt here."]
504
+ }
505
+ }
506
+ ```
507
+ */
508
+ providerMetadata?: ImageModelV2ProviderMetadata;
509
+ /**
481
510
  Response information for telemetry and debugging purposes.
482
511
  */
483
512
  response: {
@@ -497,10 +526,6 @@ type ImageModelV2 = {
497
526
  }>;
498
527
  };
499
528
 
500
- declare function isJSONValue(value: unknown): value is JSONValue;
501
- declare function isJSONArray(value: unknown): value is JSONArray;
502
- declare function isJSONObject(value: unknown): value is JSONObject;
503
-
504
529
  /**
505
530
  A tool has a name, a description, and a set of parameters.
506
531
 
@@ -1040,7 +1065,7 @@ type LanguageModelV2 = {
1040
1065
  *
1041
1066
  * @returns A promise resolving to a map of supported URL patterns.
1042
1067
  */
1043
- getSupportedUrls(): PromiseLike<Record<string, RegExp[]>>;
1068
+ supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;
1044
1069
  /**
1045
1070
  Generates a language model output (non-streaming).
1046
1071
 
@@ -2360,4 +2385,4 @@ interface ProviderV2 {
2360
2385
  readonly imageModel: (modelId: string) => ImageModelV2;
2361
2386
  }
2362
2387
 
2363
- export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV1, type LanguageModelV1CallOptions, type LanguageModelV1CallWarning, type LanguageModelV1FilePart, type LanguageModelV1FinishReason, type LanguageModelV1FunctionTool, type LanguageModelV1FunctionToolCall, type LanguageModelV1ImagePart, type LanguageModelV1LogProbs, type LanguageModelV1Message, type LanguageModelV1ObjectGenerationMode, type LanguageModelV1Prompt, type LanguageModelV1ProviderDefinedTool, type LanguageModelV1ProviderMetadata, type LanguageModelV1ReasoningPart, type LanguageModelV1RedactedReasoningPart, type LanguageModelV1Source, type LanguageModelV1StreamPart, type LanguageModelV1TextPart, type LanguageModelV1ToolCallPart, type LanguageModelV1ToolChoice, type LanguageModelV1ToolResultPart, 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 LanguageModelV2ToolCallDelta, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV1, type ProviderV2, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SpeechModelV1, type SpeechModelV1CallOptions, type SpeechModelV1CallWarning, TooManyEmbeddingValuesForCallError, type TranscriptionModelV1, type TranscriptionModelV1CallOptions, type TranscriptionModelV1CallWarning, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
2388
+ export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV1, type LanguageModelV1CallOptions, type LanguageModelV1CallWarning, type LanguageModelV1FilePart, type LanguageModelV1FinishReason, type LanguageModelV1FunctionTool, type LanguageModelV1FunctionToolCall, type LanguageModelV1ImagePart, type LanguageModelV1LogProbs, type LanguageModelV1Message, type LanguageModelV1ObjectGenerationMode, type LanguageModelV1Prompt, type LanguageModelV1ProviderDefinedTool, type LanguageModelV1ProviderMetadata, type LanguageModelV1ReasoningPart, type LanguageModelV1RedactedReasoningPart, type LanguageModelV1Source, type LanguageModelV1StreamPart, type LanguageModelV1TextPart, type LanguageModelV1ToolCallPart, type LanguageModelV1ToolChoice, type LanguageModelV1ToolResultPart, 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 LanguageModelV2ToolCallDelta, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV1, type ProviderV2, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SpeechModelV1, type SpeechModelV1CallOptions, type SpeechModelV1CallWarning, TooManyEmbeddingValuesForCallError, type TranscriptionModelV1, type TranscriptionModelV1CallOptions, type TranscriptionModelV1CallWarning, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/provider",
3
- "version": "2.0.0-canary.11",
3
+ "version": "2.0.0-canary.13",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",