@ai-sdk/openai-compatible 1.0.0-beta.1 → 1.0.0-beta.10
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 +66 -0
- package/dist/index.d.mts +13 -86
- package/dist/index.d.ts +13 -86
- package/dist/index.js +126 -120
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +37 -31
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +2 -2
- package/dist/internal/index.d.ts +2 -2
- package/package.json +4 -4
package/dist/index.js
CHANGED
@@ -31,7 +31,7 @@ module.exports = __toCommonJS(src_exports);
|
|
31
31
|
// src/openai-compatible-chat-language-model.ts
|
32
32
|
var import_provider3 = require("@ai-sdk/provider");
|
33
33
|
var import_provider_utils = require("@ai-sdk/provider-utils");
|
34
|
-
var
|
34
|
+
var import_v43 = require("zod/v4");
|
35
35
|
|
36
36
|
// src/convert-to-openai-compatible-chat-messages.ts
|
37
37
|
var import_provider = require("@ai-sdk/provider");
|
@@ -184,30 +184,30 @@ function mapOpenAICompatibleFinishReason(finishReason) {
|
|
184
184
|
}
|
185
185
|
|
186
186
|
// src/openai-compatible-chat-options.ts
|
187
|
-
var
|
188
|
-
var openaiCompatibleProviderOptions =
|
187
|
+
var import_v4 = require("zod/v4");
|
188
|
+
var openaiCompatibleProviderOptions = import_v4.z.object({
|
189
189
|
/**
|
190
190
|
* A unique identifier representing your end-user, which can help the provider to
|
191
191
|
* monitor and detect abuse.
|
192
192
|
*/
|
193
|
-
user:
|
193
|
+
user: import_v4.z.string().optional(),
|
194
194
|
/**
|
195
195
|
* Reasoning effort for reasoning models. Defaults to `medium`.
|
196
196
|
*/
|
197
|
-
reasoningEffort:
|
197
|
+
reasoningEffort: import_v4.z.string().optional()
|
198
198
|
});
|
199
199
|
|
200
200
|
// src/openai-compatible-error.ts
|
201
|
-
var
|
202
|
-
var openaiCompatibleErrorDataSchema =
|
203
|
-
error:
|
204
|
-
message:
|
201
|
+
var import_v42 = require("zod/v4");
|
202
|
+
var openaiCompatibleErrorDataSchema = import_v42.z.object({
|
203
|
+
error: import_v42.z.object({
|
204
|
+
message: import_v42.z.string(),
|
205
205
|
// The additional information below is handled loosely to support
|
206
206
|
// OpenAI-compatible providers that have slightly different error
|
207
207
|
// responses:
|
208
|
-
type:
|
209
|
-
param:
|
210
|
-
code:
|
208
|
+
type: import_v42.z.string().nullish(),
|
209
|
+
param: import_v42.z.any().nullish(),
|
210
|
+
code: import_v42.z.union([import_v42.z.string(), import_v42.z.number()]).nullish()
|
211
211
|
})
|
212
212
|
});
|
213
213
|
var defaultOpenAICompatibleErrorStructure = {
|
@@ -588,12 +588,6 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
588
588
|
for (const toolCallDelta of delta.tool_calls) {
|
589
589
|
const index = toolCallDelta.index;
|
590
590
|
if (toolCalls[index] == null) {
|
591
|
-
if (toolCallDelta.type !== "function") {
|
592
|
-
throw new import_provider3.InvalidResponseDataError({
|
593
|
-
data: toolCallDelta,
|
594
|
-
message: `Expected 'function' type.`
|
595
|
-
});
|
596
|
-
}
|
597
591
|
if (toolCallDelta.id == null) {
|
598
592
|
throw new import_provider3.InvalidResponseDataError({
|
599
593
|
data: toolCallDelta,
|
@@ -674,13 +668,27 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
674
668
|
}
|
675
669
|
},
|
676
670
|
flush(controller) {
|
677
|
-
var _a2, _b, _c, _d, _e;
|
671
|
+
var _a2, _b, _c, _d, _e, _f;
|
678
672
|
if (isActiveReasoning) {
|
679
673
|
controller.enqueue({ type: "reasoning-end", id: "reasoning-0" });
|
680
674
|
}
|
681
675
|
if (isActiveText) {
|
682
676
|
controller.enqueue({ type: "text-end", id: "txt-0" });
|
683
677
|
}
|
678
|
+
for (const toolCall of toolCalls.filter(
|
679
|
+
(toolCall2) => !toolCall2.hasFinished
|
680
|
+
)) {
|
681
|
+
controller.enqueue({
|
682
|
+
type: "tool-input-end",
|
683
|
+
id: toolCall.id
|
684
|
+
});
|
685
|
+
controller.enqueue({
|
686
|
+
type: "tool-call",
|
687
|
+
toolCallId: (_a2 = toolCall.id) != null ? _a2 : (0, import_provider_utils.generateId)(),
|
688
|
+
toolName: toolCall.function.name,
|
689
|
+
input: toolCall.function.arguments
|
690
|
+
});
|
691
|
+
}
|
684
692
|
const providerMetadata = {
|
685
693
|
[providerOptionsName]: {},
|
686
694
|
...metadataExtractor == null ? void 0 : metadataExtractor.buildMetadata()
|
@@ -695,11 +703,11 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
695
703
|
type: "finish",
|
696
704
|
finishReason,
|
697
705
|
usage: {
|
698
|
-
inputTokens: (
|
699
|
-
outputTokens: (
|
700
|
-
totalTokens: (
|
701
|
-
reasoningTokens: (
|
702
|
-
cachedInputTokens: (
|
706
|
+
inputTokens: (_b = usage.promptTokens) != null ? _b : void 0,
|
707
|
+
outputTokens: (_c = usage.completionTokens) != null ? _c : void 0,
|
708
|
+
totalTokens: (_d = usage.totalTokens) != null ? _d : void 0,
|
709
|
+
reasoningTokens: (_e = usage.completionTokensDetails.reasoningTokens) != null ? _e : void 0,
|
710
|
+
cachedInputTokens: (_f = usage.promptTokensDetails.cachedTokens) != null ? _f : void 0
|
703
711
|
},
|
704
712
|
providerMetadata
|
705
713
|
});
|
@@ -711,69 +719,67 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
711
719
|
};
|
712
720
|
}
|
713
721
|
};
|
714
|
-
var openaiCompatibleTokenUsageSchema =
|
715
|
-
prompt_tokens:
|
716
|
-
completion_tokens:
|
717
|
-
total_tokens:
|
718
|
-
prompt_tokens_details:
|
719
|
-
cached_tokens:
|
722
|
+
var openaiCompatibleTokenUsageSchema = import_v43.z.object({
|
723
|
+
prompt_tokens: import_v43.z.number().nullish(),
|
724
|
+
completion_tokens: import_v43.z.number().nullish(),
|
725
|
+
total_tokens: import_v43.z.number().nullish(),
|
726
|
+
prompt_tokens_details: import_v43.z.object({
|
727
|
+
cached_tokens: import_v43.z.number().nullish()
|
720
728
|
}).nullish(),
|
721
|
-
completion_tokens_details:
|
722
|
-
reasoning_tokens:
|
723
|
-
accepted_prediction_tokens:
|
724
|
-
rejected_prediction_tokens:
|
729
|
+
completion_tokens_details: import_v43.z.object({
|
730
|
+
reasoning_tokens: import_v43.z.number().nullish(),
|
731
|
+
accepted_prediction_tokens: import_v43.z.number().nullish(),
|
732
|
+
rejected_prediction_tokens: import_v43.z.number().nullish()
|
725
733
|
}).nullish()
|
726
734
|
}).nullish();
|
727
|
-
var OpenAICompatibleChatResponseSchema =
|
728
|
-
id:
|
729
|
-
created:
|
730
|
-
model:
|
731
|
-
choices:
|
732
|
-
|
733
|
-
message:
|
734
|
-
role:
|
735
|
-
content:
|
736
|
-
reasoning_content:
|
737
|
-
tool_calls:
|
738
|
-
|
739
|
-
id:
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
arguments: import_zod3.z.string()
|
735
|
+
var OpenAICompatibleChatResponseSchema = import_v43.z.object({
|
736
|
+
id: import_v43.z.string().nullish(),
|
737
|
+
created: import_v43.z.number().nullish(),
|
738
|
+
model: import_v43.z.string().nullish(),
|
739
|
+
choices: import_v43.z.array(
|
740
|
+
import_v43.z.object({
|
741
|
+
message: import_v43.z.object({
|
742
|
+
role: import_v43.z.literal("assistant").nullish(),
|
743
|
+
content: import_v43.z.string().nullish(),
|
744
|
+
reasoning_content: import_v43.z.string().nullish(),
|
745
|
+
tool_calls: import_v43.z.array(
|
746
|
+
import_v43.z.object({
|
747
|
+
id: import_v43.z.string().nullish(),
|
748
|
+
function: import_v43.z.object({
|
749
|
+
name: import_v43.z.string(),
|
750
|
+
arguments: import_v43.z.string()
|
744
751
|
})
|
745
752
|
})
|
746
753
|
).nullish()
|
747
754
|
}),
|
748
|
-
finish_reason:
|
755
|
+
finish_reason: import_v43.z.string().nullish()
|
749
756
|
})
|
750
757
|
),
|
751
758
|
usage: openaiCompatibleTokenUsageSchema
|
752
759
|
});
|
753
|
-
var createOpenAICompatibleChatChunkSchema = (errorSchema) =>
|
754
|
-
|
755
|
-
id:
|
756
|
-
created:
|
757
|
-
model:
|
758
|
-
choices:
|
759
|
-
|
760
|
-
delta:
|
761
|
-
role:
|
762
|
-
content:
|
763
|
-
reasoning_content:
|
764
|
-
tool_calls:
|
765
|
-
|
766
|
-
index:
|
767
|
-
id:
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
arguments: import_zod3.z.string().nullish()
|
760
|
+
var createOpenAICompatibleChatChunkSchema = (errorSchema) => import_v43.z.union([
|
761
|
+
import_v43.z.object({
|
762
|
+
id: import_v43.z.string().nullish(),
|
763
|
+
created: import_v43.z.number().nullish(),
|
764
|
+
model: import_v43.z.string().nullish(),
|
765
|
+
choices: import_v43.z.array(
|
766
|
+
import_v43.z.object({
|
767
|
+
delta: import_v43.z.object({
|
768
|
+
role: import_v43.z.enum(["assistant"]).nullish(),
|
769
|
+
content: import_v43.z.string().nullish(),
|
770
|
+
reasoning_content: import_v43.z.string().nullish(),
|
771
|
+
tool_calls: import_v43.z.array(
|
772
|
+
import_v43.z.object({
|
773
|
+
index: import_v43.z.number(),
|
774
|
+
id: import_v43.z.string().nullish(),
|
775
|
+
function: import_v43.z.object({
|
776
|
+
name: import_v43.z.string().nullish(),
|
777
|
+
arguments: import_v43.z.string().nullish()
|
772
778
|
})
|
773
779
|
})
|
774
780
|
).nullish()
|
775
781
|
}).nullish(),
|
776
|
-
finish_reason:
|
782
|
+
finish_reason: import_v43.z.string().nullish()
|
777
783
|
})
|
778
784
|
),
|
779
785
|
usage: openaiCompatibleTokenUsageSchema
|
@@ -783,7 +789,7 @@ var createOpenAICompatibleChatChunkSchema = (errorSchema) => import_zod3.z.union
|
|
783
789
|
|
784
790
|
// src/openai-compatible-completion-language-model.ts
|
785
791
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
786
|
-
var
|
792
|
+
var import_v45 = require("zod/v4");
|
787
793
|
|
788
794
|
// src/convert-to-openai-compatible-completion-prompt.ts
|
789
795
|
var import_provider4 = require("@ai-sdk/provider");
|
@@ -861,28 +867,28 @@ ${user}:`]
|
|
861
867
|
}
|
862
868
|
|
863
869
|
// src/openai-compatible-completion-options.ts
|
864
|
-
var
|
865
|
-
var openaiCompatibleCompletionProviderOptions =
|
870
|
+
var import_v44 = require("zod/v4");
|
871
|
+
var openaiCompatibleCompletionProviderOptions = import_v44.z.object({
|
866
872
|
/**
|
867
873
|
* Echo back the prompt in addition to the completion.
|
868
874
|
*/
|
869
|
-
echo:
|
875
|
+
echo: import_v44.z.boolean().optional(),
|
870
876
|
/**
|
871
877
|
* Modify the likelihood of specified tokens appearing in the completion.
|
872
878
|
*
|
873
879
|
* Accepts a JSON object that maps tokens (specified by their token ID in
|
874
880
|
* the GPT tokenizer) to an associated bias value from -100 to 100.
|
875
881
|
*/
|
876
|
-
logitBias:
|
882
|
+
logitBias: import_v44.z.record(import_v44.z.string(), import_v44.z.number()).optional(),
|
877
883
|
/**
|
878
884
|
* The suffix that comes after a completion of inserted text.
|
879
885
|
*/
|
880
|
-
suffix:
|
886
|
+
suffix: import_v44.z.string().optional(),
|
881
887
|
/**
|
882
888
|
* A unique identifier representing your end-user, which can help providers to
|
883
889
|
* monitor and detect abuse.
|
884
890
|
*/
|
885
|
-
user:
|
891
|
+
user: import_v44.z.string().optional()
|
886
892
|
});
|
887
893
|
|
888
894
|
// src/openai-compatible-completion-language-model.ts
|
@@ -1115,33 +1121,33 @@ var OpenAICompatibleCompletionLanguageModel = class {
|
|
1115
1121
|
};
|
1116
1122
|
}
|
1117
1123
|
};
|
1118
|
-
var usageSchema =
|
1119
|
-
prompt_tokens:
|
1120
|
-
completion_tokens:
|
1121
|
-
total_tokens:
|
1124
|
+
var usageSchema = import_v45.z.object({
|
1125
|
+
prompt_tokens: import_v45.z.number(),
|
1126
|
+
completion_tokens: import_v45.z.number(),
|
1127
|
+
total_tokens: import_v45.z.number()
|
1122
1128
|
});
|
1123
|
-
var openaiCompatibleCompletionResponseSchema =
|
1124
|
-
id:
|
1125
|
-
created:
|
1126
|
-
model:
|
1127
|
-
choices:
|
1128
|
-
|
1129
|
-
text:
|
1130
|
-
finish_reason:
|
1129
|
+
var openaiCompatibleCompletionResponseSchema = import_v45.z.object({
|
1130
|
+
id: import_v45.z.string().nullish(),
|
1131
|
+
created: import_v45.z.number().nullish(),
|
1132
|
+
model: import_v45.z.string().nullish(),
|
1133
|
+
choices: import_v45.z.array(
|
1134
|
+
import_v45.z.object({
|
1135
|
+
text: import_v45.z.string(),
|
1136
|
+
finish_reason: import_v45.z.string()
|
1131
1137
|
})
|
1132
1138
|
),
|
1133
1139
|
usage: usageSchema.nullish()
|
1134
1140
|
});
|
1135
|
-
var createOpenAICompatibleCompletionChunkSchema = (errorSchema) =>
|
1136
|
-
|
1137
|
-
id:
|
1138
|
-
created:
|
1139
|
-
model:
|
1140
|
-
choices:
|
1141
|
-
|
1142
|
-
text:
|
1143
|
-
finish_reason:
|
1144
|
-
index:
|
1141
|
+
var createOpenAICompatibleCompletionChunkSchema = (errorSchema) => import_v45.z.union([
|
1142
|
+
import_v45.z.object({
|
1143
|
+
id: import_v45.z.string().nullish(),
|
1144
|
+
created: import_v45.z.number().nullish(),
|
1145
|
+
model: import_v45.z.string().nullish(),
|
1146
|
+
choices: import_v45.z.array(
|
1147
|
+
import_v45.z.object({
|
1148
|
+
text: import_v45.z.string(),
|
1149
|
+
finish_reason: import_v45.z.string().nullish(),
|
1150
|
+
index: import_v45.z.number()
|
1145
1151
|
})
|
1146
1152
|
),
|
1147
1153
|
usage: usageSchema.nullish()
|
@@ -1152,21 +1158,21 @@ var createOpenAICompatibleCompletionChunkSchema = (errorSchema) => import_zod5.z
|
|
1152
1158
|
// src/openai-compatible-embedding-model.ts
|
1153
1159
|
var import_provider5 = require("@ai-sdk/provider");
|
1154
1160
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
1155
|
-
var
|
1161
|
+
var import_v47 = require("zod/v4");
|
1156
1162
|
|
1157
1163
|
// src/openai-compatible-embedding-options.ts
|
1158
|
-
var
|
1159
|
-
var openaiCompatibleEmbeddingProviderOptions =
|
1164
|
+
var import_v46 = require("zod/v4");
|
1165
|
+
var openaiCompatibleEmbeddingProviderOptions = import_v46.z.object({
|
1160
1166
|
/**
|
1161
1167
|
* The number of dimensions the resulting output embeddings should have.
|
1162
1168
|
* Only supported in text-embedding-3 and later models.
|
1163
1169
|
*/
|
1164
|
-
dimensions:
|
1170
|
+
dimensions: import_v46.z.number().optional(),
|
1165
1171
|
/**
|
1166
1172
|
* A unique identifier representing your end-user, which can help providers to
|
1167
1173
|
* monitor and detect abuse.
|
1168
1174
|
*/
|
1169
|
-
user:
|
1175
|
+
user: import_v46.z.string().optional()
|
1170
1176
|
});
|
1171
1177
|
|
1172
1178
|
// src/openai-compatible-embedding-model.ts
|
@@ -1250,14 +1256,14 @@ var OpenAICompatibleEmbeddingModel = class {
|
|
1250
1256
|
};
|
1251
1257
|
}
|
1252
1258
|
};
|
1253
|
-
var openaiTextEmbeddingResponseSchema =
|
1254
|
-
data:
|
1255
|
-
usage:
|
1259
|
+
var openaiTextEmbeddingResponseSchema = import_v47.z.object({
|
1260
|
+
data: import_v47.z.array(import_v47.z.object({ embedding: import_v47.z.array(import_v47.z.number()) })),
|
1261
|
+
usage: import_v47.z.object({ prompt_tokens: import_v47.z.number() }).nullish()
|
1256
1262
|
});
|
1257
1263
|
|
1258
1264
|
// src/openai-compatible-image-model.ts
|
1259
1265
|
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
1260
|
-
var
|
1266
|
+
var import_v48 = require("zod/v4");
|
1261
1267
|
var OpenAICompatibleImageModel = class {
|
1262
1268
|
constructor(modelId, config) {
|
1263
1269
|
this.modelId = modelId;
|
@@ -1325,8 +1331,8 @@ var OpenAICompatibleImageModel = class {
|
|
1325
1331
|
};
|
1326
1332
|
}
|
1327
1333
|
};
|
1328
|
-
var openaiCompatibleImageResponseSchema =
|
1329
|
-
data:
|
1334
|
+
var openaiCompatibleImageResponseSchema = import_v48.z.object({
|
1335
|
+
data: import_v48.z.array(import_v48.z.object({ b64_json: import_v48.z.string() }))
|
1330
1336
|
});
|
1331
1337
|
|
1332
1338
|
// src/openai-compatible-provider.ts
|
@@ -1351,14 +1357,14 @@ function createOpenAICompatible(options) {
|
|
1351
1357
|
fetch: options.fetch
|
1352
1358
|
});
|
1353
1359
|
const createLanguageModel = (modelId) => createChatModel(modelId);
|
1354
|
-
const createChatModel = (modelId) => new OpenAICompatibleChatLanguageModel(
|
1355
|
-
|
1356
|
-
|
1357
|
-
);
|
1358
|
-
const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(
|
1359
|
-
|
1360
|
-
|
1361
|
-
);
|
1360
|
+
const createChatModel = (modelId) => new OpenAICompatibleChatLanguageModel(modelId, {
|
1361
|
+
...getCommonModelConfig("chat"),
|
1362
|
+
includeUsage: options.includeUsage
|
1363
|
+
});
|
1364
|
+
const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(modelId, {
|
1365
|
+
...getCommonModelConfig("completion"),
|
1366
|
+
includeUsage: options.includeUsage
|
1367
|
+
});
|
1362
1368
|
const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(modelId, {
|
1363
1369
|
...getCommonModelConfig("embedding")
|
1364
1370
|
});
|