@llmgateway/ai-sdk-provider 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart } from '@ai-sdk/provider';
1
+ import { LanguageModelV2, LanguageModelV2CallOptions, ImageModelV3, ImageModelV3CallOptions, SharedV3Warning, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart } from '@ai-sdk/provider';
2
2
  export { LanguageModelV2, LanguageModelV2Prompt } from '@ai-sdk/provider';
3
3
  import { models, Provider } from '@llmgateway/models';
4
4
  export { Model, ModelDefinition, Provider, ProviderModelMapping, StabilityLevel, models } from '@llmgateway/models';
@@ -93,6 +93,9 @@ type LLMGatewayCompletionSettings = {
93
93
  suffix?: string;
94
94
  } & LLMGatewaySharedSettings;
95
95
 
96
+ type LLMGatewayImageModelId = string;
97
+ type LLMGatewayImageSettings = {};
98
+
96
99
  type LLMGatewayCompletionConfig = {
97
100
  provider: string;
98
101
  compatibility: 'strict' | 'compatible';
@@ -118,6 +121,34 @@ declare class LLMGatewayCompletionLanguageModel implements LanguageModelV2 {
118
121
  doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
119
122
  }
120
123
 
124
+ type LLMGatewayImageConfig = {
125
+ provider: string;
126
+ headers: () => Record<string, string | undefined>;
127
+ url: (options: {
128
+ modelId: string;
129
+ path: string;
130
+ }) => string;
131
+ fetch?: typeof fetch;
132
+ };
133
+ declare class LLMGatewayImageModel implements ImageModelV3 {
134
+ readonly specificationVersion: "v3";
135
+ readonly provider: string;
136
+ readonly modelId: LLMGatewayImageModelId;
137
+ readonly maxImagesPerCall: number | undefined;
138
+ readonly settings: LLMGatewayImageSettings;
139
+ private readonly config;
140
+ constructor(modelId: LLMGatewayImageModelId, settings: LLMGatewayImageSettings, config: LLMGatewayImageConfig);
141
+ doGenerate(options: ImageModelV3CallOptions): Promise<{
142
+ images: Array<string>;
143
+ warnings: Array<SharedV3Warning>;
144
+ response: {
145
+ timestamp: Date;
146
+ modelId: string;
147
+ headers: Record<string, string> | undefined;
148
+ };
149
+ }>;
150
+ }
151
+
121
152
  declare const providers: [{
122
153
  readonly id: "llmgateway";
123
154
  readonly name: "LLM Gateway";
@@ -399,4 +430,4 @@ declare class LLMGatewayChatLanguageModel implements LanguageModelV2 {
399
430
  }>;
400
431
  }
401
432
 
402
- export { LLMGatewayChatLanguageModel, type LLMGatewayChatModelId, type LLMGatewayChatSettings, LLMGatewayCompletionLanguageModel, type LLMGatewayCompletionSettings, type LLMGatewayProviderOptions, type LLMGatewaySharedSettings, type LLMGatewayUsageAccounting, type ProviderId, providers };
433
+ export { LLMGatewayChatLanguageModel, type LLMGatewayChatModelId, type LLMGatewayChatSettings, LLMGatewayCompletionLanguageModel, type LLMGatewayCompletionSettings, LLMGatewayImageModel, type LLMGatewayImageModelId, type LLMGatewayImageSettings, type LLMGatewayProviderOptions, type LLMGatewaySharedSettings, type LLMGatewayUsageAccounting, type ProviderId, providers };
@@ -1,4 +1,4 @@
1
- import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart } from '@ai-sdk/provider';
1
+ import { LanguageModelV2, LanguageModelV2CallOptions, ImageModelV3, ImageModelV3CallOptions, SharedV3Warning, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart } from '@ai-sdk/provider';
2
2
  export { LanguageModelV2, LanguageModelV2Prompt } from '@ai-sdk/provider';
3
3
  import { models, Provider } from '@llmgateway/models';
4
4
  export { Model, ModelDefinition, Provider, ProviderModelMapping, StabilityLevel, models } from '@llmgateway/models';
@@ -93,6 +93,9 @@ type LLMGatewayCompletionSettings = {
93
93
  suffix?: string;
94
94
  } & LLMGatewaySharedSettings;
95
95
 
96
+ type LLMGatewayImageModelId = string;
97
+ type LLMGatewayImageSettings = {};
98
+
96
99
  type LLMGatewayCompletionConfig = {
97
100
  provider: string;
98
101
  compatibility: 'strict' | 'compatible';
@@ -118,6 +121,34 @@ declare class LLMGatewayCompletionLanguageModel implements LanguageModelV2 {
118
121
  doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
119
122
  }
120
123
 
124
+ type LLMGatewayImageConfig = {
125
+ provider: string;
126
+ headers: () => Record<string, string | undefined>;
127
+ url: (options: {
128
+ modelId: string;
129
+ path: string;
130
+ }) => string;
131
+ fetch?: typeof fetch;
132
+ };
133
+ declare class LLMGatewayImageModel implements ImageModelV3 {
134
+ readonly specificationVersion: "v3";
135
+ readonly provider: string;
136
+ readonly modelId: LLMGatewayImageModelId;
137
+ readonly maxImagesPerCall: number | undefined;
138
+ readonly settings: LLMGatewayImageSettings;
139
+ private readonly config;
140
+ constructor(modelId: LLMGatewayImageModelId, settings: LLMGatewayImageSettings, config: LLMGatewayImageConfig);
141
+ doGenerate(options: ImageModelV3CallOptions): Promise<{
142
+ images: Array<string>;
143
+ warnings: Array<SharedV3Warning>;
144
+ response: {
145
+ timestamp: Date;
146
+ modelId: string;
147
+ headers: Record<string, string> | undefined;
148
+ };
149
+ }>;
150
+ }
151
+
121
152
  declare const providers: [{
122
153
  readonly id: "llmgateway";
123
154
  readonly name: "LLM Gateway";
@@ -399,4 +430,4 @@ declare class LLMGatewayChatLanguageModel implements LanguageModelV2 {
399
430
  }>;
400
431
  }
401
432
 
402
- export { LLMGatewayChatLanguageModel, type LLMGatewayChatModelId, type LLMGatewayChatSettings, LLMGatewayCompletionLanguageModel, type LLMGatewayCompletionSettings, type LLMGatewayProviderOptions, type LLMGatewaySharedSettings, type LLMGatewayUsageAccounting, type ProviderId, providers };
433
+ export { LLMGatewayChatLanguageModel, type LLMGatewayChatModelId, type LLMGatewayChatSettings, LLMGatewayCompletionLanguageModel, type LLMGatewayCompletionSettings, LLMGatewayImageModel, type LLMGatewayImageModelId, type LLMGatewayImageSettings, type LLMGatewayProviderOptions, type LLMGatewaySharedSettings, type LLMGatewayUsageAccounting, type ProviderId, providers };
@@ -61,6 +61,7 @@ var index_exports = {};
61
61
  __export(index_exports, {
62
62
  LLMGatewayChatLanguageModel: () => LLMGatewayChatLanguageModel,
63
63
  LLMGatewayCompletionLanguageModel: () => LLMGatewayCompletionLanguageModel,
64
+ LLMGatewayImageModel: () => LLMGatewayImageModel,
64
65
  models: () => import_models.models,
65
66
  providers: () => providers
66
67
  });
@@ -3543,6 +3544,82 @@ var LLMGatewayCompletionLanguageModel = class {
3543
3544
  }
3544
3545
  };
3545
3546
 
3547
+ // src/image/index.ts
3548
+ var import_v47 = require("zod/v4");
3549
+ var LLMGatewayImageResponseSchema = import_v47.z.object({
3550
+ data: import_v47.z.array(
3551
+ import_v47.z.object({
3552
+ b64_json: import_v47.z.string().optional(),
3553
+ url: import_v47.z.string().optional(),
3554
+ revised_prompt: import_v47.z.string().optional()
3555
+ })
3556
+ )
3557
+ });
3558
+ var LLMGatewayImageModel = class {
3559
+ constructor(modelId, settings, config) {
3560
+ this.specificationVersion = "v3";
3561
+ this.maxImagesPerCall = void 0;
3562
+ this.modelId = modelId;
3563
+ this.settings = settings;
3564
+ this.config = config;
3565
+ this.provider = config.provider;
3566
+ }
3567
+ async doGenerate(options) {
3568
+ const warnings = [];
3569
+ if (options.aspectRatio != null) {
3570
+ warnings.push({
3571
+ type: "unsupported",
3572
+ feature: "aspectRatio"
3573
+ });
3574
+ }
3575
+ if (options.seed != null) {
3576
+ warnings.push({
3577
+ type: "unsupported",
3578
+ feature: "seed"
3579
+ });
3580
+ }
3581
+ const body = {
3582
+ model: this.modelId,
3583
+ prompt: options.prompt,
3584
+ n: options.n,
3585
+ response_format: "b64_json"
3586
+ };
3587
+ if (options.size != null) {
3588
+ body.size = options.size;
3589
+ }
3590
+ const { value: response, responseHeaders } = await postJsonToApi({
3591
+ url: this.config.url({
3592
+ path: "/images/generations",
3593
+ modelId: this.modelId
3594
+ }),
3595
+ headers: combineHeaders(this.config.headers(), options.headers),
3596
+ body,
3597
+ failedResponseHandler: llmgatewayFailedResponseHandler,
3598
+ successfulResponseHandler: createJsonResponseHandler(
3599
+ LLMGatewayImageResponseSchema
3600
+ ),
3601
+ abortSignal: options.abortSignal,
3602
+ fetch: this.config.fetch
3603
+ });
3604
+ return {
3605
+ images: response.data.map((item) => {
3606
+ if (item.b64_json) {
3607
+ return item.b64_json;
3608
+ }
3609
+ throw new Error(
3610
+ "Expected b64_json in response but got url. Set response_format to b64_json."
3611
+ );
3612
+ }),
3613
+ warnings,
3614
+ response: {
3615
+ timestamp: /* @__PURE__ */ new Date(),
3616
+ modelId: this.modelId,
3617
+ headers: responseHeaders
3618
+ }
3619
+ };
3620
+ }
3621
+ };
3622
+
3546
3623
  // src/models/index.ts
3547
3624
  var import_models = require("@llmgateway/models");
3548
3625
 
@@ -3758,6 +3835,7 @@ var providers = [
3758
3835
  0 && (module.exports = {
3759
3836
  LLMGatewayChatLanguageModel,
3760
3837
  LLMGatewayCompletionLanguageModel,
3838
+ LLMGatewayImageModel,
3761
3839
  models,
3762
3840
  providers
3763
3841
  });