@ai-sdk/openai 4.0.110 → 4.0.113
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 +28 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +106 -43
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +170 -0
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +106 -43
- package/dist/internal/index.js.map +1 -1
- package/package.json +3 -3
- package/src/chat/openai-chat-language-model.ts +19 -8
- package/src/completion/openai-completion-language-model.ts +11 -13
- package/src/image/openai-image-model-options.ts +68 -57
- package/src/redact-openai-tool-credentials.ts +64 -0
- package/src/responses/convert-to-openai-responses-input.ts +16 -4
- package/src/responses/expand-parallel-tool-call.ts +4 -3
- package/src/responses/openai-responses-language-model.ts +12 -16
- package/src/speech/openai-speech-model-options.ts +11 -6
- package/src/tool/code-interpreter.ts +2 -0
- package/src/tool/mcp.ts +2 -0
- package/src/tool/shell.ts +2 -0
- package/src/transcription/openai-transcription-model-options.ts +71 -70
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @ai-sdk/openai
|
|
2
2
|
|
|
3
|
+
## 4.0.113
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 22b8158: Avoid repeating the complete parallel-tool wrapper input in every expanded tool call's metadata while preserving wrapper reconstruction for follow-up Responses API requests.
|
|
8
|
+
- Updated dependencies [88b9575]
|
|
9
|
+
- @ai-sdk/provider-utils@5.0.78
|
|
10
|
+
|
|
11
|
+
## 4.0.112
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 9f37b45: refactor: separate provider-specific credential redaction from core telemetry
|
|
16
|
+
- Updated dependencies [9f37b45]
|
|
17
|
+
- @ai-sdk/provider-utils@5.0.77
|
|
18
|
+
|
|
19
|
+
## 4.0.111
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- 6400cf8: Add `resolveProviderOptions` to parse provider options that a model accepts under several `providerOptions` keys, either as aliases (`first`) or merged in order (`merge`), and use it for the existing multi-key lookups in the OpenAI, OpenAI-compatible, Anthropic, Google, and Amazon Bedrock models. Resolution behavior for these models is unchanged.
|
|
24
|
+
- Updated dependencies [6400cf8]
|
|
25
|
+
- Updated dependencies [f608c05]
|
|
26
|
+
- Updated dependencies [cab9c1f]
|
|
27
|
+
- Updated dependencies [c70adf6]
|
|
28
|
+
- @ai-sdk/provider-utils@5.0.76
|
|
29
|
+
- @ai-sdk/provider@4.0.37
|
|
30
|
+
|
|
3
31
|
## 4.0.110
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["_$__tool_apply_patch0.ApplyPatchOperation","_$__tool_custom0.customToolFactory","_$_0.OpenAIComputerAction","_$_0.OpenAIComputerSafetyCheck","_$__responses_openai_responses_api0.OpenAIResponsesFileSearchToolComparisonFilter","_$__responses_openai_responses_api0.OpenAIResponsesFileSearchToolCompoundFilter","_$__tool_web_search0.webSearchToolFactory","RealtimeModelV4ClientSecretOptions","RealtimeModelV4ClientSecretResult","RealtimeModelV4SessionIntent","RealtimeModelV4ServerConnection","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4SessionConfig","RealtimeModelV4","RealtimeModelV4SessionIntent","RealtimeModelV4SessionConfig","RealtimeModelV4ClientEvent","RealtimeModelV4","RealtimeModelV4","RealtimeFactoryV4","DecisionModelV4","SpeechTranslationModelV4","BatchV4","SpeechTranslationModelV4StreamOptions","SpeechTranslationModelV4"],"sources":["../src/openai-config.ts","../src/openai-decision-model.ts","../src/chat/openai-chat-language-model-options.ts","../src/completion/openai-completion-language-model-options.ts","../src/embedding/openai-embedding-model-options.ts","../src/image/openai-image-model-options.ts","../src/tool/apply-patch.ts","../src/tool/custom.ts","../src/responses/openai-responses-language-model-options.ts","../src/responses/openai-responses-api.ts","../src/tool/web-search.ts","../src/openai-tools.ts","../src/live/openai-realtime-model-live-options.ts","../src/realtime/openai-realtime-model.ts","../src/live/openai-realtime-model-live.ts","../src/openai-model-catalog.ts","../src/realtime/openai-realtime-factory.ts","../src/speech/openai-speech-model-options.ts","../src/transcription/openai-transcription-model-options.ts","../src/speech-translation/openai-speech-translation-model-options.ts","../src/openai-provider.ts","../src/responses/openai-responses-prepare-tools.ts","../src/speech-translation/openai-speech-translation-model.ts","../src/files/openai-files-options.ts","../src/tool/computer.ts","../src/responses/openai-responses-provider-metadata.ts","../src/version.ts","../src/openai-decision-model-options.ts"],"mappings":";;;;KAMK,gBAAgB;KAMT;EACV;;EAEA;EACA;EACA,MAAM;IAAW;IAAiB;;EAClC,UAAU,WAAW;EACrB,QAAQ;EACR,YAAY;EACZ;;;;;;;EAOA;;;;;;;EAOA;;;;;;;;;EASA;;;;KCZU;;;KCxBA;cAuEC,iEAA8B;;;;;;;;;;;;;;;;;;;;;;;KAwJ/B,iCAAiC,mBACpC;cAGI,mEAAgC;EAAA;;KASjC,mCAAmC,mBACtC;;;KC7OG;cAKC,uEAAoC;;cAApC;;;;;KAiDD,uCAAuC,mBAC1C;;;KCxDG;cAMC,8DAA2B;;;;KAkB5B,8BAA8B,mBACjC;;;KCrBG;cAmFC,0DAAuB;;;;;;;;;KAIxB,0BAA0B,mBAC7B;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["_$__tool_apply_patch0.ApplyPatchOperation","_$__tool_custom0.customToolFactory","_$_0.OpenAIComputerAction","_$_0.OpenAIComputerSafetyCheck","_$__responses_openai_responses_api0.OpenAIResponsesFileSearchToolComparisonFilter","_$__responses_openai_responses_api0.OpenAIResponsesFileSearchToolCompoundFilter","_$__tool_web_search0.webSearchToolFactory","RealtimeModelV4ClientSecretOptions","RealtimeModelV4ClientSecretResult","RealtimeModelV4SessionIntent","RealtimeModelV4ServerConnection","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4SessionConfig","RealtimeModelV4","RealtimeModelV4SessionIntent","RealtimeModelV4SessionConfig","RealtimeModelV4ClientEvent","RealtimeModelV4","RealtimeModelV4","RealtimeFactoryV4","DecisionModelV4","SpeechTranslationModelV4","BatchV4","SpeechTranslationModelV4StreamOptions","SpeechTranslationModelV4"],"sources":["../src/openai-config.ts","../src/openai-decision-model.ts","../src/chat/openai-chat-language-model-options.ts","../src/completion/openai-completion-language-model-options.ts","../src/embedding/openai-embedding-model-options.ts","../src/image/openai-image-model-options.ts","../src/tool/apply-patch.ts","../src/tool/custom.ts","../src/responses/openai-responses-language-model-options.ts","../src/responses/openai-responses-api.ts","../src/tool/web-search.ts","../src/openai-tools.ts","../src/live/openai-realtime-model-live-options.ts","../src/realtime/openai-realtime-model.ts","../src/live/openai-realtime-model-live.ts","../src/openai-model-catalog.ts","../src/realtime/openai-realtime-factory.ts","../src/speech/openai-speech-model-options.ts","../src/transcription/openai-transcription-model-options.ts","../src/speech-translation/openai-speech-translation-model-options.ts","../src/openai-provider.ts","../src/responses/openai-responses-prepare-tools.ts","../src/speech-translation/openai-speech-translation-model.ts","../src/files/openai-files-options.ts","../src/tool/computer.ts","../src/responses/openai-responses-provider-metadata.ts","../src/version.ts","../src/openai-decision-model-options.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL, StreamingToolCallTracker, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, connectToWebSocket, convertAsyncIteratorToReadableStream, convertBase64ToUint8Array, convertInlineFileDataToUint8Array, convertToBase64, convertToFormData, convertUint8ArrayToBase64, createBinaryResponseHandler, createBinaryStreamResponseHandler, createEventSourceResponseHandler, createJsonErrorResponseHandler, createJsonLinesResponseHandler, createJsonResponseHandler, createLanguageModelResponseMetadata, createLanguageModelResponseMetadata as getResponseMetadata, createNullLanguageModelUsage, createProviderDefinedToolFactory, createProviderDefinedToolFactoryWithOutputSchema, createProviderExecutedToolFactory, createProviderStreamError, createToolNameMapping, deleteFromApi, detectMediaType, downloadBlob, encodePathSegment, experimental_toolCaller, generateId, getFromApi, getTopLevelMediaType, isCustomReasoning, isFullMediaType, isNonNullable, isRecord, lazySchema, loadApiKey, loadOptionalSetting, mapReasoningToProviderEffort, mediaTypeToExtension, normalizeBatchRequestCounts, parseJSON, parseProviderOptions, postFormDataToApi, postJsonToApi, postMultipartStreamToApi, postToApi, removeUndefinedEntries, resolve, resolveFullMediaType, resolveProviderReference, resolveWith, safeParseJSON, safeValidateTypes, secureJsonParse, serializeModelOptions, stringifyWithBigIntAndCycles, toWebSocketUrl, validateBaseURL, validateTypes, waitForWebSocketBufferDrain, withUserAgentSuffix, withoutTrailingSlash, zodSchema } from "@ai-sdk/provider-utils";
|
|
1
|
+
import { EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL, StreamingToolCallTracker, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, connectToWebSocket, convertAsyncIteratorToReadableStream, convertBase64ToUint8Array, convertInlineFileDataToUint8Array, convertToBase64, convertToFormData, convertUint8ArrayToBase64, createBinaryResponseHandler, createBinaryStreamResponseHandler, createEventSourceResponseHandler, createJsonErrorResponseHandler, createJsonLinesResponseHandler, createJsonResponseHandler, createLanguageModelResponseMetadata, createLanguageModelResponseMetadata as getResponseMetadata, createNullLanguageModelUsage, createProviderDefinedToolFactory, createProviderDefinedToolFactoryWithOutputSchema, createProviderExecutedToolFactory, createProviderStreamError, createToolNameMapping, deleteFromApi, detectMediaType, downloadBlob, encodePathSegment, experimental_toolCaller, generateId, getFromApi, getTopLevelMediaType, isCustomReasoning, isFullMediaType, isNonNullable, isRecord, lazySchema, loadApiKey, loadOptionalSetting, mapReasoningToProviderEffort, mediaTypeToExtension, normalizeBatchRequestCounts, parseJSON, parseProviderOptions, postFormDataToApi, postJsonToApi, postMultipartStreamToApi, postToApi, removeUndefinedEntries, resolve, resolveFullMediaType, resolveProviderOptions, resolveProviderReference, resolveWith, safeParseJSON, safeValidateTypes, secureJsonParse, serializeModelOptions, stringifyWithBigIntAndCycles, toWebSocketUrl, validateBaseURL, validateTypes, waitForWebSocketBufferDrain, withTelemetryRedaction, withUserAgentSuffix, withoutTrailingSlash, zodSchema } from "@ai-sdk/provider-utils";
|
|
2
2
|
import { APICallError, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, TooManyEmbeddingValuesForCallError, UnsupportedFunctionalityError, isJSONObject } from "@ai-sdk/provider";
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
4
|
//#region src/openai-config.ts
|
|
@@ -1747,11 +1747,13 @@ var OpenAIChatLanguageModel = class OpenAIChatLanguageModel {
|
|
|
1747
1747
|
}
|
|
1748
1748
|
async getArgs({ prompt, maxOutputTokens, temperature, topP, topK, frequencyPenalty, presencePenalty, stopSequences, responseFormat, seed, tools, toolChoice, reasoning, providerOptions }) {
|
|
1749
1749
|
const warnings = [];
|
|
1750
|
-
const
|
|
1751
|
-
|
|
1750
|
+
const providerOptionsNames = this.config.provider.includes("azure") ? ["openai", "azure"] : ["openai"];
|
|
1751
|
+
const openaiOptions = (await resolveProviderOptions({
|
|
1752
1752
|
providerOptions,
|
|
1753
|
+
namespaces: providerOptionsNames,
|
|
1754
|
+
resolution: "merge",
|
|
1753
1755
|
schema: openaiLanguageModelChatOptions
|
|
1754
|
-
}) ?? {};
|
|
1756
|
+
})).options ?? {};
|
|
1755
1757
|
const { capabilities: { language: modelCapabilities }, requestConfig: { language: modelRequestConfig } } = getOpenAILanguageModelEntry(this.modelId);
|
|
1756
1758
|
const requiresNoReasoningEffort = !modelCapabilities.endpoints.chat.functionToolsWithReasoning && openaiOptions.reasoningEffort == null && (tools?.some((tool) => tool.type === "function") ?? false);
|
|
1757
1759
|
if (requiresNoReasoningEffort && isCustomReasoning(reasoning) && reasoning !== "none") warnings.push({
|
|
@@ -1770,7 +1772,7 @@ var OpenAIChatLanguageModel = class OpenAIChatLanguageModel {
|
|
|
1770
1772
|
type: "unsupported",
|
|
1771
1773
|
feature: "topK"
|
|
1772
1774
|
});
|
|
1773
|
-
if (providerOptions?.
|
|
1775
|
+
if (providerOptionsNames.some((name) => providerOptions?.[name]?.reasoningSummary != null)) warnings.push({
|
|
1774
1776
|
type: "unsupported",
|
|
1775
1777
|
feature: "reasoningSummary",
|
|
1776
1778
|
details: "reasoningSummary is only supported by the Responses API, not the Chat Completions API"
|
|
@@ -2361,18 +2363,12 @@ var OpenAICompletionLanguageModel = class OpenAICompletionLanguageModel {
|
|
|
2361
2363
|
}
|
|
2362
2364
|
async getArgs({ prompt, maxOutputTokens, temperature, topP, topK, frequencyPenalty, presencePenalty, stopSequences: userStopSequences, responseFormat, tools, toolChoice, seed, providerOptions }) {
|
|
2363
2365
|
const warnings = [];
|
|
2364
|
-
const openaiOptions = {
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
...await parseProviderOptions({
|
|
2371
|
-
provider: this.providerOptionsName,
|
|
2372
|
-
providerOptions,
|
|
2373
|
-
schema: openaiLanguageModelCompletionOptions
|
|
2374
|
-
})
|
|
2375
|
-
};
|
|
2366
|
+
const openaiOptions = (await resolveProviderOptions({
|
|
2367
|
+
providerOptions,
|
|
2368
|
+
namespaces: ["openai", this.providerOptionsName],
|
|
2369
|
+
resolution: "merge",
|
|
2370
|
+
schema: openaiLanguageModelCompletionOptions
|
|
2371
|
+
})).options ?? {};
|
|
2376
2372
|
if (topK != null) warnings.push({
|
|
2377
2373
|
type: "unsupported",
|
|
2378
2374
|
feature: "topK"
|
|
@@ -2931,7 +2927,12 @@ const baseImageModelOptionsObject = () => z.object({
|
|
|
2931
2927
|
safetyIdentifier: z.string().max(128).optional()
|
|
2932
2928
|
});
|
|
2933
2929
|
lazySchema(() => zodSchema(baseImageModelOptionsObject()));
|
|
2934
|
-
|
|
2930
|
+
/**
|
|
2931
|
+
* Shape of the OpenAI image generation options. Exported so that routers
|
|
2932
|
+
* that also call the OpenAI image API (e.g. Azure) can accept these options
|
|
2933
|
+
* under their own providerOptions key.
|
|
2934
|
+
*/
|
|
2935
|
+
const openaiImageModelGenerationOptionsShape = () => baseImageModelOptionsObject().extend({
|
|
2935
2936
|
/**
|
|
2936
2937
|
* Style of the generated image. `vivid` produces hyper-real and
|
|
2937
2938
|
* dramatic images; `natural` produces more subdued, less hyper-real
|
|
@@ -2964,8 +2965,13 @@ const openaiImageModelGenerationOptions = lazySchema(() => zodSchema(baseImageMo
|
|
|
2964
2965
|
* less restrictive filtering.
|
|
2965
2966
|
*/
|
|
2966
2967
|
moderation: z.enum(["auto", "low"]).optional()
|
|
2967
|
-
})
|
|
2968
|
-
const
|
|
2968
|
+
}).shape;
|
|
2969
|
+
const openaiImageModelGenerationOptions = lazySchema(() => zodSchema(z.object(openaiImageModelGenerationOptionsShape())));
|
|
2970
|
+
/**
|
|
2971
|
+
* Shape of the OpenAI image edit options. Exported so that routers can accept
|
|
2972
|
+
* these options under their own providerOptions key.
|
|
2973
|
+
*/
|
|
2974
|
+
const openaiImageModelEditOptionsShape = () => baseImageModelOptionsObject().extend({
|
|
2969
2975
|
/**
|
|
2970
2976
|
* Fidelity of the output image(s) to the input image(s).
|
|
2971
2977
|
*/
|
|
@@ -2982,7 +2988,8 @@ const openaiImageModelEditOptions = lazySchema(() => zodSchema(baseImageModelOpt
|
|
|
2982
2988
|
* less restrictive filtering. Supported by GPT Image models.
|
|
2983
2989
|
*/
|
|
2984
2990
|
moderation: z.enum(["auto", "low"]).optional()
|
|
2985
|
-
})
|
|
2991
|
+
}).shape;
|
|
2992
|
+
const openaiImageModelEditOptions = lazySchema(() => zodSchema(z.object(openaiImageModelEditOptionsShape())));
|
|
2986
2993
|
//#endregion
|
|
2987
2994
|
//#region src/image/openai-image-model.ts
|
|
2988
2995
|
var OpenAIImageModel = class OpenAIImageModel {
|
|
@@ -3232,6 +3239,47 @@ const applyPatch = createProviderDefinedToolFactoryWithOutputSchema({
|
|
|
3232
3239
|
outputSchema: applyPatchOutputSchema
|
|
3233
3240
|
});
|
|
3234
3241
|
//#endregion
|
|
3242
|
+
//#region src/redact-openai-tool-credentials.ts
|
|
3243
|
+
/** OpenAI owns both the SDK configuration paths and their wire equivalents. */
|
|
3244
|
+
function redactOpenAIToolArgs(type, args, wireFormat = false) {
|
|
3245
|
+
if (type === "mcp") return {
|
|
3246
|
+
...args,
|
|
3247
|
+
...args.authorization != null ? { authorization: "[redacted]" } : {},
|
|
3248
|
+
...isRecord$1(args.headers) ? { headers: Object.fromEntries(Object.keys(args.headers).map((name) => [name, "[redacted]"])) } : {}
|
|
3249
|
+
};
|
|
3250
|
+
const key = type === "code_interpreter" ? "container" : type === "shell" ? "environment" : void 0;
|
|
3251
|
+
if (key == null || !isRecord$1(args[key])) return args;
|
|
3252
|
+
const container = args[key];
|
|
3253
|
+
const policyKey = wireFormat ? "network_policy" : "networkPolicy";
|
|
3254
|
+
const secretsKey = wireFormat ? "domain_secrets" : "domainSecrets";
|
|
3255
|
+
const policy = container[policyKey];
|
|
3256
|
+
if (!isRecord$1(policy) || !Array.isArray(policy[secretsKey])) return args;
|
|
3257
|
+
return {
|
|
3258
|
+
...args,
|
|
3259
|
+
[key]: {
|
|
3260
|
+
...container,
|
|
3261
|
+
[policyKey]: {
|
|
3262
|
+
...policy,
|
|
3263
|
+
[secretsKey]: policy[secretsKey].map((secret) => isRecord$1(secret) && "value" in secret ? {
|
|
3264
|
+
...secret,
|
|
3265
|
+
value: "[redacted]"
|
|
3266
|
+
} : secret)
|
|
3267
|
+
}
|
|
3268
|
+
}
|
|
3269
|
+
};
|
|
3270
|
+
}
|
|
3271
|
+
/** Preserve raw request/response bodies while providing a safe telemetry view. */
|
|
3272
|
+
function withOpenAIResponseRedaction(value) {
|
|
3273
|
+
if (!isRecord$1(value) || !Array.isArray(value.tools)) return value;
|
|
3274
|
+
return withTelemetryRedaction(value, (body) => ({
|
|
3275
|
+
...body,
|
|
3276
|
+
tools: body.tools.map((tool) => isRecord$1(tool) ? redactOpenAIToolArgs(tool.type, tool, true) : tool)
|
|
3277
|
+
}));
|
|
3278
|
+
}
|
|
3279
|
+
function isRecord$1(value) {
|
|
3280
|
+
return value != null && typeof value === "object" && !Array.isArray(value);
|
|
3281
|
+
}
|
|
3282
|
+
//#endregion
|
|
3235
3283
|
//#region src/tool/code-interpreter.ts
|
|
3236
3284
|
const codeInterpreterInputSchema = lazySchema(() => zodSchema(z.object({
|
|
3237
3285
|
code: z.string().nullish(),
|
|
@@ -3264,6 +3312,7 @@ const codeInterpreterArgsSchema = lazySchema(() => zodSchema(z.object({ containe
|
|
|
3264
3312
|
})]).optional() })));
|
|
3265
3313
|
const codeInterpreterToolFactory = createProviderExecutedToolFactory({
|
|
3266
3314
|
id: "openai.code_interpreter",
|
|
3315
|
+
redactArgs: (args) => redactOpenAIToolArgs("code_interpreter", args),
|
|
3267
3316
|
inputSchema: codeInterpreterInputSchema,
|
|
3268
3317
|
outputSchema: codeInterpreterOutputSchema
|
|
3269
3318
|
});
|
|
@@ -3572,6 +3621,7 @@ const shellArgsSchema = lazySchema(() => zodSchema(z.object({ environment: z.uni
|
|
|
3572
3621
|
]).optional() })));
|
|
3573
3622
|
const shell = createProviderDefinedToolFactoryWithOutputSchema({
|
|
3574
3623
|
id: "openai.shell",
|
|
3624
|
+
redactArgs: (args) => redactOpenAIToolArgs("shell", args),
|
|
3575
3625
|
inputSchema: shellInputSchema,
|
|
3576
3626
|
outputSchema: shellOutputSchema
|
|
3577
3627
|
});
|
|
@@ -3719,6 +3769,7 @@ const mcpOutputSchema = lazySchema(() => zodSchema(z.object({
|
|
|
3719
3769
|
})));
|
|
3720
3770
|
const mcpToolFactory = createProviderExecutedToolFactory({
|
|
3721
3771
|
id: "openai.mcp",
|
|
3772
|
+
redactArgs: (args) => redactOpenAIToolArgs("mcp", args),
|
|
3722
3773
|
inputSchema: mcpInputSchema,
|
|
3723
3774
|
outputSchema: mcpOutputSchema
|
|
3724
3775
|
});
|
|
@@ -5271,7 +5322,7 @@ const parallelToolName = "parallel";
|
|
|
5271
5322
|
const recipientNamePrefix = "functions.";
|
|
5272
5323
|
function getParallelToolCallMetadata({ providerOptions, providerOptionsName }) {
|
|
5273
5324
|
const metadata = providerOptions?.[providerOptionsName]?.parallelToolCall;
|
|
5274
|
-
if (!isJSONObject(metadata) || typeof metadata.itemId !== "string" || typeof metadata.toolCallId !== "string" || typeof metadata.toolName !== "string" || typeof metadata.input !== "string" || typeof metadata.index !== "number" || !Number.isInteger(metadata.index) || typeof metadata.count !== "number" || !Number.isInteger(metadata.count) || metadata.index < 0 || metadata.count <= metadata.index) return;
|
|
5325
|
+
if (!isJSONObject(metadata) || typeof metadata.itemId !== "string" || typeof metadata.toolCallId !== "string" || typeof metadata.toolName !== "string" || metadata.input !== void 0 && typeof metadata.input !== "string" || typeof metadata.index !== "number" || !Number.isInteger(metadata.index) || typeof metadata.count !== "number" || !Number.isInteger(metadata.count) || metadata.index < 0 || metadata.count <= metadata.index) return;
|
|
5275
5326
|
return metadata;
|
|
5276
5327
|
}
|
|
5277
5328
|
function isUndeclaredParallelToolCall({ toolName, tools }) {
|
|
@@ -5309,7 +5360,7 @@ async function expandParallelToolCall({ toolCall, tools, providerOptionsName, it
|
|
|
5309
5360
|
itemId,
|
|
5310
5361
|
toolCallId: toolCall.toolCallId,
|
|
5311
5362
|
toolName: toolCall.toolName,
|
|
5312
|
-
input: toolCall.input,
|
|
5363
|
+
...index === 0 && { input: toolCall.input },
|
|
5313
5364
|
index,
|
|
5314
5365
|
count: toolUses.length
|
|
5315
5366
|
} } }
|
|
@@ -5464,7 +5515,7 @@ async function convertFunctionToolResultOutput({ output, toolName, outputSchemaT
|
|
|
5464
5515
|
}
|
|
5465
5516
|
}
|
|
5466
5517
|
function hasSameParallelToolCall(first, second) {
|
|
5467
|
-
return first.itemId === second.itemId && first.toolCallId === second.toolCallId && first.toolName === second.toolName && first.input === second.input && first.count === second.count;
|
|
5518
|
+
return first.itemId === second.itemId && first.toolCallId === second.toolCallId && first.toolName === second.toolName && (first.input === void 0 || second.input === void 0 || first.input === second.input) && first.count === second.count;
|
|
5468
5519
|
}
|
|
5469
5520
|
function collectCompleteParallelToolResultGroups({ prompt, providerOptionsName }) {
|
|
5470
5521
|
const pendingGroups = /* @__PURE__ */ new Map();
|
|
@@ -5490,15 +5541,19 @@ function collectCompleteParallelToolResultGroups({ prompt, providerOptionsName }
|
|
|
5490
5541
|
existing.invalid = true;
|
|
5491
5542
|
continue;
|
|
5492
5543
|
}
|
|
5544
|
+
if (existing.metadata.input === void 0 && metadata.input !== void 0) existing.metadata = metadata;
|
|
5493
5545
|
existing.results.set(metadata.index, part);
|
|
5494
5546
|
}
|
|
5495
5547
|
}
|
|
5496
5548
|
const completeGroups = /* @__PURE__ */ new Map();
|
|
5497
5549
|
for (const [toolCallId, group] of pendingGroups) {
|
|
5498
|
-
if (group.invalid || group.results.size !== group.metadata.count) continue;
|
|
5550
|
+
if (group.invalid || group.results.size !== group.metadata.count || group.metadata.input === void 0) continue;
|
|
5499
5551
|
const results = Array.from({ length: group.metadata.count }, (_, index) => group.results.get(index));
|
|
5500
5552
|
if (results.every(isNonNullable)) completeGroups.set(toolCallId, {
|
|
5501
|
-
metadata:
|
|
5553
|
+
metadata: {
|
|
5554
|
+
...group.metadata,
|
|
5555
|
+
input: group.metadata.input
|
|
5556
|
+
},
|
|
5502
5557
|
results
|
|
5503
5558
|
});
|
|
5504
5559
|
}
|
|
@@ -6987,14 +7042,10 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
|
|
|
6987
7042
|
feature: "stopSequences"
|
|
6988
7043
|
});
|
|
6989
7044
|
const providerOptionsName = config.provider.includes("azure") ? "azure" : "openai";
|
|
6990
|
-
|
|
6991
|
-
provider: providerOptionsName,
|
|
6992
|
-
providerOptions,
|
|
6993
|
-
schema: openaiLanguageModelResponsesOptionsSchema
|
|
6994
|
-
});
|
|
6995
|
-
if (openaiOptions == null && providerOptionsName !== "openai") openaiOptions = await parseProviderOptions({
|
|
6996
|
-
provider: "openai",
|
|
7045
|
+
const { options: openaiOptions } = await resolveProviderOptions({
|
|
6997
7046
|
providerOptions,
|
|
7047
|
+
namespaces: [providerOptionsName, "openai"],
|
|
7048
|
+
resolution: "first",
|
|
6998
7049
|
schema: openaiLanguageModelResponsesOptionsSchema
|
|
6999
7050
|
});
|
|
7000
7051
|
const resolvedReasoningEffort = resolveOpenAIReasoningEffort({
|
|
@@ -7235,11 +7286,11 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
|
|
|
7235
7286
|
const isShellProviderExecuted = shellToolEnvType === "containerAuto" || shellToolEnvType === "containerReference";
|
|
7236
7287
|
return {
|
|
7237
7288
|
webSearchToolName,
|
|
7238
|
-
args: {
|
|
7289
|
+
args: withOpenAIResponseRedaction({
|
|
7239
7290
|
...baseArgs,
|
|
7240
7291
|
tools: openaiTools,
|
|
7241
7292
|
tool_choice: openaiToolChoice
|
|
7242
|
-
},
|
|
7293
|
+
}),
|
|
7243
7294
|
warnings: [...warnings, ...toolWarnings],
|
|
7244
7295
|
store,
|
|
7245
7296
|
toolNameMapping,
|
|
@@ -7713,7 +7764,7 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
|
|
|
7713
7764
|
timestamp: /* @__PURE__ */ new Date(response.created_at * 1e3),
|
|
7714
7765
|
modelId: response.model,
|
|
7715
7766
|
headers: responseHeaders,
|
|
7716
|
-
body: rawResponse
|
|
7767
|
+
body: withOpenAIResponseRedaction(rawResponse)
|
|
7717
7768
|
},
|
|
7718
7769
|
providerMetadata,
|
|
7719
7770
|
warnings
|
|
@@ -7728,10 +7779,10 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
|
|
|
7728
7779
|
const { responseHeaders, value: response } = await postJsonToApi({
|
|
7729
7780
|
url,
|
|
7730
7781
|
headers: combineHeaders(await resolve(this.config.headers), options.headers),
|
|
7731
|
-
body: {
|
|
7782
|
+
body: withOpenAIResponseRedaction({
|
|
7732
7783
|
...body,
|
|
7733
7784
|
stream: true
|
|
7734
|
-
},
|
|
7785
|
+
}),
|
|
7735
7786
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
7736
7787
|
successfulResponseHandler: createEventSourceResponseHandler(openaiResponsesChunkSchema),
|
|
7737
7788
|
abortSignal: options.abortSignal,
|
|
@@ -10244,10 +10295,16 @@ function createOpenAIRealtimeFactory(config) {
|
|
|
10244
10295
|
}
|
|
10245
10296
|
//#endregion
|
|
10246
10297
|
//#region src/speech/openai-speech-model-options.ts
|
|
10247
|
-
|
|
10298
|
+
/**
|
|
10299
|
+
* Shape of the OpenAI speech model options. Exported so that routers that
|
|
10300
|
+
* also call the OpenAI speech API (e.g. Azure) can accept these options under
|
|
10301
|
+
* their own providerOptions key.
|
|
10302
|
+
*/
|
|
10303
|
+
const openaiSpeechModelOptionsShape = () => ({
|
|
10248
10304
|
instructions: z.string().nullish(),
|
|
10249
10305
|
speed: z.number().min(.25).max(4).nullish()
|
|
10250
|
-
})
|
|
10306
|
+
});
|
|
10307
|
+
const openaiSpeechModelOptionsSchema = lazySchema(() => zodSchema(z.object(openaiSpeechModelOptionsShape())));
|
|
10251
10308
|
//#endregion
|
|
10252
10309
|
//#region src/speech/openai-speech-model.ts
|
|
10253
10310
|
var OpenAISpeechModel = class OpenAISpeechModel {
|
|
@@ -10381,7 +10438,12 @@ const openaiTranscriptionResponseSchema = lazySchema(() => zodSchema(z.object({
|
|
|
10381
10438
|
})));
|
|
10382
10439
|
//#endregion
|
|
10383
10440
|
//#region src/transcription/openai-transcription-model-options.ts
|
|
10384
|
-
|
|
10441
|
+
/**
|
|
10442
|
+
* Shape of the OpenAI transcription model options. Exported so that routers
|
|
10443
|
+
* that also call the OpenAI transcription API (e.g. Azure) can accept these
|
|
10444
|
+
* options under their own providerOptions key.
|
|
10445
|
+
*/
|
|
10446
|
+
const openAITranscriptionModelOptionsShape = () => ({
|
|
10385
10447
|
/**
|
|
10386
10448
|
* Additional information to include in the transcription response.
|
|
10387
10449
|
*/
|
|
@@ -10450,7 +10512,8 @@ const openAITranscriptionModelOptions = lazySchema(() => zodSchema(z.object({
|
|
|
10450
10512
|
*/
|
|
10451
10513
|
include: z.array(z.string()).optional()
|
|
10452
10514
|
}).optional()
|
|
10453
|
-
})
|
|
10515
|
+
});
|
|
10516
|
+
const openAITranscriptionModelOptions = lazySchema(() => zodSchema(z.object(openAITranscriptionModelOptionsShape())));
|
|
10454
10517
|
//#endregion
|
|
10455
10518
|
//#region src/transcription/openai-transcription-model.ts
|
|
10456
10519
|
const languageMap = {
|
|
@@ -11132,7 +11195,7 @@ var OpenAISkills = class {
|
|
|
11132
11195
|
};
|
|
11133
11196
|
//#endregion
|
|
11134
11197
|
//#region src/version.ts
|
|
11135
|
-
const VERSION = "4.0.
|
|
11198
|
+
const VERSION = "4.0.113";
|
|
11136
11199
|
//#endregion
|
|
11137
11200
|
//#region src/openai-provider.ts
|
|
11138
11201
|
/**
|