@ai-sdk/openai-compatible 1.0.0-canary.0 → 1.0.0-canary.2

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,23 @@
1
1
  # @ai-sdk/openai-compatible
2
2
 
3
+ ## 1.0.0-canary.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [c57e248]
8
+ - Updated dependencies [33f4a6a]
9
+ - @ai-sdk/provider@2.0.0-canary.1
10
+ - @ai-sdk/provider-utils@3.0.0-canary.2
11
+
12
+ ## 1.0.0-canary.1
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies [060370c]
17
+ - Updated dependencies [0c0c0b3]
18
+ - Updated dependencies [63d791d]
19
+ - @ai-sdk/provider-utils@3.0.0-canary.1
20
+
3
21
  ## 1.0.0-canary.0
4
22
 
5
23
  ### Major Changes
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { LanguageModelV1ProviderMetadata, LanguageModelV1, LanguageModelV1ObjectGenerationMode, EmbeddingModelV1, ImageModelV1, ProviderV1 } from '@ai-sdk/provider';
1
+ import { LanguageModelV2ProviderMetadata, LanguageModelV2, LanguageModelV2ObjectGenerationMode, EmbeddingModelV1, ImageModelV1, ProviderV2 } from '@ai-sdk/provider';
2
2
  import { FetchFunction } from '@ai-sdk/provider-utils';
3
3
  import { z, ZodSchema } from 'zod';
4
4
 
@@ -73,7 +73,7 @@ type MetadataExtractor = {
73
73
  */
74
74
  extractMetadata: ({ parsedBody, }: {
75
75
  parsedBody: unknown;
76
- }) => LanguageModelV1ProviderMetadata | undefined;
76
+ }) => LanguageModelV2ProviderMetadata | undefined;
77
77
  /**
78
78
  * Creates an extractor for handling streaming responses. The returned object provides
79
79
  * methods to process individual chunks and build the final metadata from the accumulated
@@ -96,7 +96,7 @@ type MetadataExtractor = {
96
96
  * @returns Provider-specific metadata or undefined if no metadata is available.
97
97
  * The metadata should be under a key indicating the provider id.
98
98
  */
99
- buildMetadata(): LanguageModelV1ProviderMetadata | undefined;
99
+ buildMetadata(): LanguageModelV2ProviderMetadata | undefined;
100
100
  };
101
101
  };
102
102
 
@@ -115,14 +115,14 @@ type OpenAICompatibleChatConfig = {
115
115
  no mode is specified. Should be the mode with the best results for this
116
116
  model. `undefined` can be specified if object generation is not supported.
117
117
  */
118
- defaultObjectGenerationMode?: LanguageModelV1ObjectGenerationMode;
118
+ defaultObjectGenerationMode?: LanguageModelV2ObjectGenerationMode;
119
119
  /**
120
120
  * Whether the model supports structured outputs.
121
121
  */
122
122
  supportsStructuredOutputs?: boolean;
123
123
  };
124
- declare class OpenAICompatibleChatLanguageModel implements LanguageModelV1 {
125
- readonly specificationVersion = "v1";
124
+ declare class OpenAICompatibleChatLanguageModel implements LanguageModelV2 {
125
+ readonly specificationVersion = "v2";
126
126
  readonly supportsStructuredOutputs: boolean;
127
127
  readonly modelId: OpenAICompatibleChatModelId;
128
128
  readonly settings: OpenAICompatibleChatSettings;
@@ -134,8 +134,8 @@ declare class OpenAICompatibleChatLanguageModel implements LanguageModelV1 {
134
134
  get provider(): string;
135
135
  private get providerOptionsName();
136
136
  private getArgs;
137
- doGenerate(options: Parameters<LanguageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
138
- doStream(options: Parameters<LanguageModelV1['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
137
+ doGenerate(options: Parameters<LanguageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>>;
138
+ doStream(options: Parameters<LanguageModelV2['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
139
139
  }
140
140
 
141
141
  type OpenAICompatibleCompletionModelId = string;
@@ -180,8 +180,8 @@ type OpenAICompatibleCompletionConfig = {
180
180
  fetch?: FetchFunction;
181
181
  errorStructure?: ProviderErrorStructure<any>;
182
182
  };
183
- declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV1 {
184
- readonly specificationVersion = "v1";
183
+ declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV2 {
184
+ readonly specificationVersion = "v2";
185
185
  readonly defaultObjectGenerationMode: undefined;
186
186
  readonly modelId: OpenAICompatibleCompletionModelId;
187
187
  readonly settings: OpenAICompatibleCompletionSettings;
@@ -192,8 +192,8 @@ declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV1
192
192
  get provider(): string;
193
193
  private get providerOptionsName();
194
194
  private getArgs;
195
- doGenerate(options: Parameters<LanguageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
196
- doStream(options: Parameters<LanguageModelV1['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
195
+ doGenerate(options: Parameters<LanguageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>>;
196
+ doStream(options: Parameters<LanguageModelV2['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
197
197
  }
198
198
 
199
199
  type OpenAICompatibleEmbeddingModelId = string;
@@ -277,11 +277,11 @@ declare class OpenAICompatibleImageModel implements ImageModelV1 {
277
277
  doGenerate({ prompt, n, size, aspectRatio, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV1['doGenerate']>>>;
278
278
  }
279
279
 
280
- interface OpenAICompatibleProvider<CHAT_MODEL_IDS extends string = string, COMPLETION_MODEL_IDS extends string = string, EMBEDDING_MODEL_IDS extends string = string, IMAGE_MODEL_IDS extends string = string> extends Omit<ProviderV1, 'imageModel'> {
281
- (modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
282
- languageModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
283
- chatModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
284
- completionModel(modelId: COMPLETION_MODEL_IDS, settings?: OpenAICompatibleCompletionSettings): LanguageModelV1;
280
+ interface OpenAICompatibleProvider<CHAT_MODEL_IDS extends string = string, COMPLETION_MODEL_IDS extends string = string, EMBEDDING_MODEL_IDS extends string = string, IMAGE_MODEL_IDS extends string = string> extends Omit<ProviderV2, 'imageModel'> {
281
+ (modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV2;
282
+ languageModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV2;
283
+ chatModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV2;
284
+ completionModel(modelId: COMPLETION_MODEL_IDS, settings?: OpenAICompatibleCompletionSettings): LanguageModelV2;
285
285
  textEmbeddingModel(modelId: EMBEDDING_MODEL_IDS, settings?: OpenAICompatibleEmbeddingSettings): EmbeddingModelV1<string>;
286
286
  imageModel(modelId: IMAGE_MODEL_IDS, settings?: OpenAICompatibleImageSettings): ImageModelV1;
287
287
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { LanguageModelV1ProviderMetadata, LanguageModelV1, LanguageModelV1ObjectGenerationMode, EmbeddingModelV1, ImageModelV1, ProviderV1 } from '@ai-sdk/provider';
1
+ import { LanguageModelV2ProviderMetadata, LanguageModelV2, LanguageModelV2ObjectGenerationMode, EmbeddingModelV1, ImageModelV1, ProviderV2 } from '@ai-sdk/provider';
2
2
  import { FetchFunction } from '@ai-sdk/provider-utils';
3
3
  import { z, ZodSchema } from 'zod';
4
4
 
@@ -73,7 +73,7 @@ type MetadataExtractor = {
73
73
  */
74
74
  extractMetadata: ({ parsedBody, }: {
75
75
  parsedBody: unknown;
76
- }) => LanguageModelV1ProviderMetadata | undefined;
76
+ }) => LanguageModelV2ProviderMetadata | undefined;
77
77
  /**
78
78
  * Creates an extractor for handling streaming responses. The returned object provides
79
79
  * methods to process individual chunks and build the final metadata from the accumulated
@@ -96,7 +96,7 @@ type MetadataExtractor = {
96
96
  * @returns Provider-specific metadata or undefined if no metadata is available.
97
97
  * The metadata should be under a key indicating the provider id.
98
98
  */
99
- buildMetadata(): LanguageModelV1ProviderMetadata | undefined;
99
+ buildMetadata(): LanguageModelV2ProviderMetadata | undefined;
100
100
  };
101
101
  };
102
102
 
@@ -115,14 +115,14 @@ type OpenAICompatibleChatConfig = {
115
115
  no mode is specified. Should be the mode with the best results for this
116
116
  model. `undefined` can be specified if object generation is not supported.
117
117
  */
118
- defaultObjectGenerationMode?: LanguageModelV1ObjectGenerationMode;
118
+ defaultObjectGenerationMode?: LanguageModelV2ObjectGenerationMode;
119
119
  /**
120
120
  * Whether the model supports structured outputs.
121
121
  */
122
122
  supportsStructuredOutputs?: boolean;
123
123
  };
124
- declare class OpenAICompatibleChatLanguageModel implements LanguageModelV1 {
125
- readonly specificationVersion = "v1";
124
+ declare class OpenAICompatibleChatLanguageModel implements LanguageModelV2 {
125
+ readonly specificationVersion = "v2";
126
126
  readonly supportsStructuredOutputs: boolean;
127
127
  readonly modelId: OpenAICompatibleChatModelId;
128
128
  readonly settings: OpenAICompatibleChatSettings;
@@ -134,8 +134,8 @@ declare class OpenAICompatibleChatLanguageModel implements LanguageModelV1 {
134
134
  get provider(): string;
135
135
  private get providerOptionsName();
136
136
  private getArgs;
137
- doGenerate(options: Parameters<LanguageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
138
- doStream(options: Parameters<LanguageModelV1['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
137
+ doGenerate(options: Parameters<LanguageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>>;
138
+ doStream(options: Parameters<LanguageModelV2['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
139
139
  }
140
140
 
141
141
  type OpenAICompatibleCompletionModelId = string;
@@ -180,8 +180,8 @@ type OpenAICompatibleCompletionConfig = {
180
180
  fetch?: FetchFunction;
181
181
  errorStructure?: ProviderErrorStructure<any>;
182
182
  };
183
- declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV1 {
184
- readonly specificationVersion = "v1";
183
+ declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV2 {
184
+ readonly specificationVersion = "v2";
185
185
  readonly defaultObjectGenerationMode: undefined;
186
186
  readonly modelId: OpenAICompatibleCompletionModelId;
187
187
  readonly settings: OpenAICompatibleCompletionSettings;
@@ -192,8 +192,8 @@ declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV1
192
192
  get provider(): string;
193
193
  private get providerOptionsName();
194
194
  private getArgs;
195
- doGenerate(options: Parameters<LanguageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
196
- doStream(options: Parameters<LanguageModelV1['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
195
+ doGenerate(options: Parameters<LanguageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>>;
196
+ doStream(options: Parameters<LanguageModelV2['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
197
197
  }
198
198
 
199
199
  type OpenAICompatibleEmbeddingModelId = string;
@@ -277,11 +277,11 @@ declare class OpenAICompatibleImageModel implements ImageModelV1 {
277
277
  doGenerate({ prompt, n, size, aspectRatio, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV1['doGenerate']>>>;
278
278
  }
279
279
 
280
- interface OpenAICompatibleProvider<CHAT_MODEL_IDS extends string = string, COMPLETION_MODEL_IDS extends string = string, EMBEDDING_MODEL_IDS extends string = string, IMAGE_MODEL_IDS extends string = string> extends Omit<ProviderV1, 'imageModel'> {
281
- (modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
282
- languageModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
283
- chatModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
284
- completionModel(modelId: COMPLETION_MODEL_IDS, settings?: OpenAICompatibleCompletionSettings): LanguageModelV1;
280
+ interface OpenAICompatibleProvider<CHAT_MODEL_IDS extends string = string, COMPLETION_MODEL_IDS extends string = string, EMBEDDING_MODEL_IDS extends string = string, IMAGE_MODEL_IDS extends string = string> extends Omit<ProviderV2, 'imageModel'> {
281
+ (modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV2;
282
+ languageModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV2;
283
+ chatModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV2;
284
+ completionModel(modelId: COMPLETION_MODEL_IDS, settings?: OpenAICompatibleCompletionSettings): LanguageModelV2;
285
285
  textEmbeddingModel(modelId: EMBEDDING_MODEL_IDS, settings?: OpenAICompatibleEmbeddingSettings): EmbeddingModelV1<string>;
286
286
  imageModel(modelId: IMAGE_MODEL_IDS, settings?: OpenAICompatibleImageSettings): ImageModelV1;
287
287
  }
package/dist/index.js CHANGED
@@ -38,7 +38,7 @@ var import_provider = require("@ai-sdk/provider");
38
38
  var import_provider_utils = require("@ai-sdk/provider-utils");
39
39
  function getOpenAIMetadata(message) {
40
40
  var _a, _b;
41
- return (_b = (_a = message == null ? void 0 : message.providerMetadata) == null ? void 0 : _a.openaiCompatible) != null ? _b : {};
41
+ return (_b = (_a = message == null ? void 0 : message.providerOptions) == null ? void 0 : _a.openaiCompatible) != null ? _b : {};
42
42
  }
43
43
  function convertToOpenAICompatibleChatMessages(prompt) {
44
44
  const messages = [];
@@ -191,16 +191,14 @@ var defaultOpenAICompatibleErrorStructure = {
191
191
  // src/openai-compatible-prepare-tools.ts
192
192
  var import_provider2 = require("@ai-sdk/provider");
193
193
  function prepareTools({
194
- mode,
195
- structuredOutputs
194
+ tools,
195
+ toolChoice
196
196
  }) {
197
- var _a;
198
- const tools = ((_a = mode.tools) == null ? void 0 : _a.length) ? mode.tools : void 0;
197
+ tools = (tools == null ? void 0 : tools.length) ? tools : void 0;
199
198
  const toolWarnings = [];
200
199
  if (tools == null) {
201
- return { tools: void 0, tool_choice: void 0, toolWarnings };
200
+ return { tools: void 0, toolChoice: void 0, toolWarnings };
202
201
  }
203
- const toolChoice = mode.toolChoice;
204
202
  const openaiCompatTools = [];
205
203
  for (const tool of tools) {
206
204
  if (tool.type === "provider-defined") {
@@ -217,22 +215,20 @@ function prepareTools({
217
215
  }
218
216
  }
219
217
  if (toolChoice == null) {
220
- return { tools: openaiCompatTools, tool_choice: void 0, toolWarnings };
218
+ return { tools: openaiCompatTools, toolChoice: void 0, toolWarnings };
221
219
  }
222
220
  const type = toolChoice.type;
223
221
  switch (type) {
224
222
  case "auto":
225
223
  case "none":
226
224
  case "required":
227
- return { tools: openaiCompatTools, tool_choice: type, toolWarnings };
225
+ return { tools: openaiCompatTools, toolChoice: type, toolWarnings };
228
226
  case "tool":
229
227
  return {
230
228
  tools: openaiCompatTools,
231
- tool_choice: {
229
+ toolChoice: {
232
230
  type: "function",
233
- function: {
234
- name: toolChoice.toolName
235
- }
231
+ function: { name: toolChoice.toolName }
236
232
  },
237
233
  toolWarnings
238
234
  };
@@ -249,7 +245,7 @@ function prepareTools({
249
245
  var OpenAICompatibleChatLanguageModel = class {
250
246
  // type inferred via constructor
251
247
  constructor(modelId, settings, config) {
252
- this.specificationVersion = "v1";
248
+ this.specificationVersion = "v2";
253
249
  var _a, _b;
254
250
  this.modelId = modelId;
255
251
  this.settings = settings;
@@ -271,7 +267,6 @@ var OpenAICompatibleChatLanguageModel = class {
271
267
  return this.config.provider.split(".")[0].trim();
272
268
  }
273
269
  getArgs({
274
- mode,
275
270
  prompt,
276
271
  maxTokens,
277
272
  temperature,
@@ -279,19 +274,17 @@ var OpenAICompatibleChatLanguageModel = class {
279
274
  topK,
280
275
  frequencyPenalty,
281
276
  presencePenalty,
282
- providerMetadata,
277
+ providerOptions,
283
278
  stopSequences,
284
279
  responseFormat,
285
- seed
280
+ seed,
281
+ toolChoice,
282
+ tools
286
283
  }) {
287
- var _a, _b;
288
- const type = mode.type;
284
+ var _a;
289
285
  const warnings = [];
290
286
  if (topK != null) {
291
- warnings.push({
292
- type: "unsupported-setting",
293
- setting: "topK"
294
- });
287
+ warnings.push({ type: "unsupported-setting", setting: "topK" });
295
288
  }
296
289
  if ((responseFormat == null ? void 0 : responseFormat.type) === "json" && responseFormat.schema != null && !this.supportsStructuredOutputs) {
297
290
  warnings.push({
@@ -300,85 +293,45 @@ var OpenAICompatibleChatLanguageModel = class {
300
293
  details: "JSON response format schema is only supported with structuredOutputs"
301
294
  });
302
295
  }
303
- const baseArgs = {
304
- // model id:
305
- model: this.modelId,
306
- // model specific settings:
307
- user: this.settings.user,
308
- // standardized settings:
309
- max_tokens: maxTokens,
310
- temperature,
311
- top_p: topP,
312
- frequency_penalty: frequencyPenalty,
313
- presence_penalty: presencePenalty,
314
- response_format: (responseFormat == null ? void 0 : responseFormat.type) === "json" ? this.supportsStructuredOutputs === true && responseFormat.schema != null ? {
315
- type: "json_schema",
316
- json_schema: {
317
- schema: responseFormat.schema,
318
- name: (_a = responseFormat.name) != null ? _a : "response",
319
- description: responseFormat.description
320
- }
321
- } : { type: "json_object" } : void 0,
322
- stop: stopSequences,
323
- seed,
324
- ...providerMetadata == null ? void 0 : providerMetadata[this.providerOptionsName],
325
- // messages:
326
- messages: convertToOpenAICompatibleChatMessages(prompt)
296
+ const {
297
+ tools: openaiTools,
298
+ toolChoice: openaiToolChoice,
299
+ toolWarnings
300
+ } = prepareTools({
301
+ tools,
302
+ toolChoice
303
+ });
304
+ return {
305
+ args: {
306
+ // model id:
307
+ model: this.modelId,
308
+ // model specific settings:
309
+ user: this.settings.user,
310
+ // standardized settings:
311
+ max_tokens: maxTokens,
312
+ temperature,
313
+ top_p: topP,
314
+ frequency_penalty: frequencyPenalty,
315
+ presence_penalty: presencePenalty,
316
+ response_format: (responseFormat == null ? void 0 : responseFormat.type) === "json" ? this.supportsStructuredOutputs === true && responseFormat.schema != null ? {
317
+ type: "json_schema",
318
+ json_schema: {
319
+ schema: responseFormat.schema,
320
+ name: (_a = responseFormat.name) != null ? _a : "response",
321
+ description: responseFormat.description
322
+ }
323
+ } : { type: "json_object" } : void 0,
324
+ stop: stopSequences,
325
+ seed,
326
+ ...providerOptions == null ? void 0 : providerOptions[this.providerOptionsName],
327
+ // messages:
328
+ messages: convertToOpenAICompatibleChatMessages(prompt),
329
+ // tools:
330
+ tools: openaiTools,
331
+ tool_choice: openaiToolChoice
332
+ },
333
+ warnings: [...warnings, ...toolWarnings]
327
334
  };
328
- switch (type) {
329
- case "regular": {
330
- const { tools, tool_choice, toolWarnings } = prepareTools({
331
- mode,
332
- structuredOutputs: this.supportsStructuredOutputs
333
- });
334
- return {
335
- args: { ...baseArgs, tools, tool_choice },
336
- warnings: [...warnings, ...toolWarnings]
337
- };
338
- }
339
- case "object-json": {
340
- return {
341
- args: {
342
- ...baseArgs,
343
- response_format: this.supportsStructuredOutputs === true && mode.schema != null ? {
344
- type: "json_schema",
345
- json_schema: {
346
- schema: mode.schema,
347
- name: (_b = mode.name) != null ? _b : "response",
348
- description: mode.description
349
- }
350
- } : { type: "json_object" }
351
- },
352
- warnings
353
- };
354
- }
355
- case "object-tool": {
356
- return {
357
- args: {
358
- ...baseArgs,
359
- tool_choice: {
360
- type: "function",
361
- function: { name: mode.tool.name }
362
- },
363
- tools: [
364
- {
365
- type: "function",
366
- function: {
367
- name: mode.tool.name,
368
- description: mode.tool.description,
369
- parameters: mode.tool.parameters
370
- }
371
- }
372
- ]
373
- },
374
- warnings
375
- };
376
- }
377
- default: {
378
- const _exhaustiveCheck = type;
379
- throw new Error(`Unsupported type: ${_exhaustiveCheck}`);
380
- }
381
- }
382
335
  }
383
336
  async doGenerate(options) {
384
337
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
@@ -799,7 +752,6 @@ var createOpenAICompatibleChatChunkSchema = (errorSchema) => import_zod2.z.union
799
752
  ]);
800
753
 
801
754
  // src/openai-compatible-completion-language-model.ts
802
- var import_provider5 = require("@ai-sdk/provider");
803
755
  var import_provider_utils3 = require("@ai-sdk/provider-utils");
804
756
  var import_zod3 = require("zod");
805
757
 
@@ -891,7 +843,7 @@ ${user}:`]
891
843
  var OpenAICompatibleCompletionLanguageModel = class {
892
844
  // type inferred via constructor
893
845
  constructor(modelId, settings, config) {
894
- this.specificationVersion = "v1";
846
+ this.specificationVersion = "v2";
895
847
  this.defaultObjectGenerationMode = void 0;
896
848
  var _a;
897
849
  this.modelId = modelId;
@@ -910,7 +862,6 @@ var OpenAICompatibleCompletionLanguageModel = class {
910
862
  return this.config.provider.split(".")[0].trim();
911
863
  }
912
864
  getArgs({
913
- mode,
914
865
  inputFormat,
915
866
  prompt,
916
867
  maxTokens,
@@ -922,16 +873,19 @@ var OpenAICompatibleCompletionLanguageModel = class {
922
873
  stopSequences: userStopSequences,
923
874
  responseFormat,
924
875
  seed,
925
- providerMetadata
876
+ providerOptions,
877
+ tools,
878
+ toolChoice
926
879
  }) {
927
- var _a;
928
- const type = mode.type;
929
880
  const warnings = [];
930
881
  if (topK != null) {
931
- warnings.push({
932
- type: "unsupported-setting",
933
- setting: "topK"
934
- });
882
+ warnings.push({ type: "unsupported-setting", setting: "topK" });
883
+ }
884
+ if (tools == null ? void 0 : tools.length) {
885
+ warnings.push({ type: "unsupported-setting", setting: "tools" });
886
+ }
887
+ if (toolChoice != null) {
888
+ warnings.push({ type: "unsupported-setting", setting: "toolChoice" });
935
889
  }
936
890
  if (responseFormat != null && responseFormat.type !== "text") {
937
891
  warnings.push({
@@ -942,56 +896,30 @@ var OpenAICompatibleCompletionLanguageModel = class {
942
896
  }
943
897
  const { prompt: completionPrompt, stopSequences } = convertToOpenAICompatibleCompletionPrompt({ prompt, inputFormat });
944
898
  const stop = [...stopSequences != null ? stopSequences : [], ...userStopSequences != null ? userStopSequences : []];
945
- const baseArgs = {
946
- // model id:
947
- model: this.modelId,
948
- // model specific settings:
949
- echo: this.settings.echo,
950
- logit_bias: this.settings.logitBias,
951
- suffix: this.settings.suffix,
952
- user: this.settings.user,
953
- // standardized settings:
954
- max_tokens: maxTokens,
955
- temperature,
956
- top_p: topP,
957
- frequency_penalty: frequencyPenalty,
958
- presence_penalty: presencePenalty,
959
- seed,
960
- ...providerMetadata == null ? void 0 : providerMetadata[this.providerOptionsName],
961
- // prompt:
962
- prompt: completionPrompt,
963
- // stop sequences:
964
- stop: stop.length > 0 ? stop : void 0
899
+ return {
900
+ args: {
901
+ // model id:
902
+ model: this.modelId,
903
+ // model specific settings:
904
+ echo: this.settings.echo,
905
+ logit_bias: this.settings.logitBias,
906
+ suffix: this.settings.suffix,
907
+ user: this.settings.user,
908
+ // standardized settings:
909
+ max_tokens: maxTokens,
910
+ temperature,
911
+ top_p: topP,
912
+ frequency_penalty: frequencyPenalty,
913
+ presence_penalty: presencePenalty,
914
+ seed,
915
+ ...providerOptions == null ? void 0 : providerOptions[this.providerOptionsName],
916
+ // prompt:
917
+ prompt: completionPrompt,
918
+ // stop sequences:
919
+ stop: stop.length > 0 ? stop : void 0
920
+ },
921
+ warnings
965
922
  };
966
- switch (type) {
967
- case "regular": {
968
- if ((_a = mode.tools) == null ? void 0 : _a.length) {
969
- throw new import_provider5.UnsupportedFunctionalityError({
970
- functionality: "tools"
971
- });
972
- }
973
- if (mode.toolChoice) {
974
- throw new import_provider5.UnsupportedFunctionalityError({
975
- functionality: "toolChoice"
976
- });
977
- }
978
- return { args: baseArgs, warnings };
979
- }
980
- case "object-json": {
981
- throw new import_provider5.UnsupportedFunctionalityError({
982
- functionality: "object-json mode"
983
- });
984
- }
985
- case "object-tool": {
986
- throw new import_provider5.UnsupportedFunctionalityError({
987
- functionality: "object-tool mode"
988
- });
989
- }
990
- default: {
991
- const _exhaustiveCheck = type;
992
- throw new Error(`Unsupported type: ${_exhaustiveCheck}`);
993
- }
994
- }
995
923
  }
996
924
  async doGenerate(options) {
997
925
  var _a, _b, _c, _d;
@@ -1150,7 +1078,7 @@ var createOpenAICompatibleCompletionChunkSchema = (errorSchema) => import_zod3.z
1150
1078
  ]);
1151
1079
 
1152
1080
  // src/openai-compatible-embedding-model.ts
1153
- var import_provider6 = require("@ai-sdk/provider");
1081
+ var import_provider5 = require("@ai-sdk/provider");
1154
1082
  var import_provider_utils4 = require("@ai-sdk/provider-utils");
1155
1083
  var import_zod4 = require("zod");
1156
1084
  var OpenAICompatibleEmbeddingModel = class {
@@ -1178,7 +1106,7 @@ var OpenAICompatibleEmbeddingModel = class {
1178
1106
  }) {
1179
1107
  var _a;
1180
1108
  if (values.length > this.maxEmbeddingsPerCall) {
1181
- throw new import_provider6.TooManyEmbeddingValuesForCallError({
1109
+ throw new import_provider5.TooManyEmbeddingValuesForCallError({
1182
1110
  provider: this.provider,
1183
1111
  modelId: this.modelId,
1184
1112
  maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,