@ai-sdk/openai 4.0.96 → 4.0.98

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,30 @@
1
1
  # @ai-sdk/openai
2
2
 
3
+ ## 4.0.98
4
+
5
+ ### Patch Changes
6
+
7
+ - 0c2a9de: Add `maxOutputTokens` and `reasoning` to experimental decision calls and forward them to language-model-backed decisions. Language-model adapters keep reasoning disabled when omitted. Native decision providers warn when either setting is unsupported.
8
+ - 8b728ec: fix(openai): preserve detected language codes in transcription responses
9
+ - 3cb1dae: fix(openai): forward shell_call timeout_ms and max_output_length to the shell tool and round-trip max_output_length
10
+ - Updated dependencies [0c2a9de]
11
+ - Updated dependencies [200c47f]
12
+ - @ai-sdk/provider@4.0.31
13
+ - @ai-sdk/provider-utils@5.0.64
14
+
15
+ ## 4.0.97
16
+
17
+ ### Patch Changes
18
+
19
+ - acbc819: Add an optional `modelId` setting to Azure OpenAI language-model factories for
20
+ accurate telemetry and capability detection with custom deployment names. Keep
21
+ the deployment ID for API routing and preserve existing behavior when the model
22
+ ID is omitted.
23
+ - 60cc252: feat(perplexity): add decisions api support
24
+ - Updated dependencies [60cc252]
25
+ - @ai-sdk/provider@4.0.30
26
+ - @ai-sdk/provider-utils@5.0.63
27
+
3
28
  ## 4.0.96
4
29
 
5
30
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ import { z } from "zod/v4";
5
5
  type OpenAIHeaders = Record<string, string | undefined>;
6
6
  type OpenAIConfig = {
7
7
  provider: string;
8
+ /** Model ID sent to the API. Defaults to the model's reported ID. */
9
+ requestModelId?: string;
8
10
  baseURL?: string;
9
11
  url: (options: {
10
12
  modelId: string;
@@ -559,6 +561,8 @@ declare const openaiResponsesChunkSchema: import("@ai-sdk/provider-utils").LazyS
559
561
  status: "in_progress" | "completed" | "incomplete";
560
562
  action: {
561
563
  commands: string[];
564
+ timeout_ms?: number | null | undefined;
565
+ max_output_length?: number | null | undefined;
562
566
  };
563
567
  } | {
564
568
  type: "compaction";
@@ -579,6 +583,7 @@ declare const openaiResponsesChunkSchema: import("@ai-sdk/provider-utils").LazyS
579
583
  exit_code: number;
580
584
  };
581
585
  }[];
586
+ max_output_length?: number | null | undefined;
582
587
  } | {
583
588
  type: "tool_search_call";
584
589
  id: string;
@@ -856,6 +861,8 @@ declare const openaiResponsesChunkSchema: import("@ai-sdk/provider-utils").LazyS
856
861
  status: "in_progress" | "completed" | "incomplete";
857
862
  action: {
858
863
  commands: string[];
864
+ timeout_ms?: number | null | undefined;
865
+ max_output_length?: number | null | undefined;
859
866
  };
860
867
  } | {
861
868
  type: "compaction";
@@ -876,6 +883,7 @@ declare const openaiResponsesChunkSchema: import("@ai-sdk/provider-utils").LazyS
876
883
  exit_code: number;
877
884
  };
878
885
  }[];
886
+ max_output_length?: number | null | undefined;
879
887
  } | {
880
888
  type: "tool_search_call";
881
889
  id: string;
@@ -1297,6 +1305,7 @@ declare const openaiTools: {
1297
1305
  maxOutputLength?: number;
1298
1306
  };
1299
1307
  }, {
1308
+ maxOutputLength?: number;
1300
1309
  output: Array<{
1301
1310
  stdout: string;
1302
1311
  stderr: string;
@@ -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","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4SessionConfig","RealtimeModelV4","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/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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"}
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","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4SessionConfig","RealtimeModelV4","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/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
@@ -105,7 +105,7 @@ var DecisionOpenAIModel = class DecisionOpenAIModel {
105
105
  doEvaluate(options) {
106
106
  return this.doDecide(options);
107
107
  }
108
- async doDecide({ state, questions, headers, abortSignal, providerOptions }) {
108
+ async doDecide({ state, questions, maxOutputTokens, reasoning, headers, abortSignal, providerOptions }) {
109
109
  const openaiOptions = await parseProviderOptions({
110
110
  provider: "openai",
111
111
  providerOptions,
@@ -151,7 +151,7 @@ var DecisionOpenAIModel = class DecisionOpenAIModel {
151
151
  })
152
152
  }],
153
153
  questions: Object.entries(questions).map(([name, question]) => {
154
- const instructions = toText(question.instructions);
154
+ const instructions = question.instructions == null ? question.instructions : toText(question.instructions);
155
155
  switch (question.type) {
156
156
  case "boolean": return {
157
157
  type: "predicate",
@@ -160,7 +160,7 @@ var DecisionOpenAIModel = class DecisionOpenAIModel {
160
160
  instructions,
161
161
  question.criteria?.true == null ? void 0 : `Criteria for true:\n${toText(question.criteria.true)}`,
162
162
  question.criteria?.false == null ? void 0 : `Criteria for false:\n${toText(question.criteria.false)}`
163
- ].filter((part) => part !== void 0).join("\n\n")
163
+ ].filter((part) => part != null).join("\n\n")
164
164
  };
165
165
  case "choice": return {
166
166
  type: "choice",
@@ -230,10 +230,20 @@ var DecisionOpenAIModel = class DecisionOpenAIModel {
230
230
  probabilityDecimals: 2,
231
231
  scoreDecimals: 2
232
232
  },
233
- warnings: Object.keys(providerOptions?.openai ?? {}).filter((option) => option !== "safetyIdentifier").map((option) => ({
234
- type: "unsupported",
235
- feature: `providerOptions.openai.${option}`
236
- })),
233
+ warnings: [
234
+ ...maxOutputTokens != null ? [{
235
+ type: "unsupported",
236
+ feature: "maxOutputTokens"
237
+ }] : [],
238
+ ...reasoning != null ? [{
239
+ type: "unsupported",
240
+ feature: "reasoning"
241
+ }] : [],
242
+ ...Object.keys(providerOptions?.openai ?? {}).filter((option) => option !== "safetyIdentifier").map((option) => ({
243
+ type: "unsupported",
244
+ feature: `providerOptions.openai.${option}`
245
+ }))
246
+ ],
237
247
  providerMetadata: { openai: {
238
248
  ...response.usage == null ? {} : { usage: response.usage },
239
249
  confidence: Object.fromEntries(response.answers.flatMap((answer) => (answer.type === "choice" || answer.type === "score") && answer.confidence != null ? [[answer.name, answer.confidence]] : []))
@@ -1199,7 +1209,7 @@ var OpenAIChatLanguageModel = class OpenAIChatLanguageModel {
1199
1209
  const normalizedResponseFormatSchema = responseFormat?.type === "json" && responseFormat.schema != null ? normalizeOpenAIJsonSchema(responseFormat.schema) : void 0;
1200
1210
  if (normalizedResponseFormatSchema != null) warnings.push(...normalizedResponseFormatSchema.warnings);
1201
1211
  const baseArgs = {
1202
- model: this.modelId,
1212
+ model: this.config.requestModelId ?? this.modelId,
1203
1213
  logit_bias: openaiOptions.logitBias,
1204
1214
  logprobs: openaiOptions.logprobs === true || typeof openaiOptions.logprobs === "number" ? true : void 0,
1205
1215
  top_logprobs: typeof openaiOptions.logprobs === "number" ? openaiOptions.logprobs : typeof openaiOptions.logprobs === "boolean" ? openaiOptions.logprobs ? 0 : void 0 : void 0,
@@ -1346,7 +1356,7 @@ var OpenAIChatLanguageModel = class OpenAIChatLanguageModel {
1346
1356
  const { responseHeaders, value: response, rawValue: rawResponse } = await postJsonToApi({
1347
1357
  url: this.config.url({
1348
1358
  path: "/chat/completions",
1349
- modelId: this.modelId
1359
+ modelId: this.config.requestModelId ?? this.modelId
1350
1360
  }),
1351
1361
  headers: combineHeaders(this.config.headers?.(), options.headers),
1352
1362
  body,
@@ -1410,7 +1420,7 @@ var OpenAIChatLanguageModel = class OpenAIChatLanguageModel {
1410
1420
  };
1411
1421
  const url = this.config.url({
1412
1422
  path: "/chat/completions",
1413
- modelId: this.modelId
1423
+ modelId: this.config.requestModelId ?? this.modelId
1414
1424
  });
1415
1425
  const { responseHeaders, value: response } = await postJsonToApi({
1416
1426
  url,
@@ -1766,7 +1776,7 @@ var OpenAICompletionLanguageModel = class OpenAICompletionLanguageModel {
1766
1776
  const stop = [...stopSequences ?? [], ...userStopSequences ?? []];
1767
1777
  return {
1768
1778
  args: {
1769
- model: this.modelId,
1779
+ model: this.config.requestModelId ?? this.modelId,
1770
1780
  echo: openaiOptions.echo,
1771
1781
  logit_bias: openaiOptions.logitBias,
1772
1782
  logprobs: openaiOptions?.logprobs === true ? 0 : openaiOptions?.logprobs === false ? void 0 : openaiOptions?.logprobs,
@@ -1789,7 +1799,7 @@ var OpenAICompletionLanguageModel = class OpenAICompletionLanguageModel {
1789
1799
  const { responseHeaders, value: response, rawValue: rawResponse } = await postJsonToApi({
1790
1800
  url: this.config.url({
1791
1801
  path: "/completions",
1792
- modelId: this.modelId
1802
+ modelId: this.config.requestModelId ?? this.modelId
1793
1803
  }),
1794
1804
  headers: combineHeaders(this.config.headers?.(), options.headers),
1795
1805
  body: args,
@@ -1830,7 +1840,7 @@ var OpenAICompletionLanguageModel = class OpenAICompletionLanguageModel {
1830
1840
  };
1831
1841
  const url = this.config.url({
1832
1842
  path: "/completions",
1833
- modelId: this.modelId
1843
+ modelId: this.config.requestModelId ?? this.modelId
1834
1844
  });
1835
1845
  const { responseHeaders, value: response } = await postJsonToApi({
1836
1846
  url,
@@ -2823,14 +2833,17 @@ const shellInputSchema = lazySchema(() => zodSchema(z.object({ action: z.object(
2823
2833
  timeoutMs: z.number().optional(),
2824
2834
  maxOutputLength: z.number().optional()
2825
2835
  }) })));
2826
- const shellOutputSchema = lazySchema(() => zodSchema(z.object({ output: z.array(z.object({
2827
- stdout: z.string(),
2828
- stderr: z.string(),
2829
- outcome: z.discriminatedUnion("type", [z.object({ type: z.literal("timeout") }), z.object({
2830
- type: z.literal("exit"),
2831
- exitCode: z.number()
2832
- })])
2833
- })) })));
2836
+ const shellOutputSchema = lazySchema(() => zodSchema(z.object({
2837
+ maxOutputLength: z.number().optional(),
2838
+ output: z.array(z.object({
2839
+ stdout: z.string(),
2840
+ stderr: z.string(),
2841
+ outcome: z.discriminatedUnion("type", [z.object({ type: z.literal("timeout") }), z.object({
2842
+ type: z.literal("exit"),
2843
+ exitCode: z.number()
2844
+ })])
2845
+ }))
2846
+ })));
2834
2847
  const shellSkillsSchema = z.array(z.discriminatedUnion("type", [z.object({
2835
2848
  type: z.literal("skillReference"),
2836
2849
  providerReference: z.record(z.string(), z.string()),
@@ -3599,7 +3612,11 @@ const openaiResponsesChunkSchema = lazySchema(() => zodSchema(z.union([
3599
3612
  "completed",
3600
3613
  "incomplete"
3601
3614
  ]),
3602
- action: z.object({ commands: z.array(z.string()) })
3615
+ action: z.object({
3616
+ commands: z.array(z.string()),
3617
+ timeout_ms: z.number().nullish(),
3618
+ max_output_length: z.number().nullish()
3619
+ })
3603
3620
  }),
3604
3621
  z.object({
3605
3622
  type: z.literal("compaction"),
@@ -3615,6 +3632,7 @@ const openaiResponsesChunkSchema = lazySchema(() => zodSchema(z.union([
3615
3632
  "completed",
3616
3633
  "incomplete"
3617
3634
  ]),
3635
+ max_output_length: z.number().nullish(),
3618
3636
  output: z.array(z.object({
3619
3637
  stdout: z.string(),
3620
3638
  stderr: z.string(),
@@ -3824,7 +3842,11 @@ const openaiResponsesChunkSchema = lazySchema(() => zodSchema(z.union([
3824
3842
  "completed",
3825
3843
  "incomplete"
3826
3844
  ]),
3827
- action: z.object({ commands: z.array(z.string()) })
3845
+ action: z.object({
3846
+ commands: z.array(z.string()),
3847
+ timeout_ms: z.number().nullish(),
3848
+ max_output_length: z.number().nullish()
3849
+ })
3828
3850
  }),
3829
3851
  z.object({
3830
3852
  type: z.literal("compaction"),
@@ -3840,6 +3862,7 @@ const openaiResponsesChunkSchema = lazySchema(() => zodSchema(z.union([
3840
3862
  "completed",
3841
3863
  "incomplete"
3842
3864
  ]),
3865
+ max_output_length: z.number().nullish(),
3843
3866
  output: z.array(z.object({
3844
3867
  stdout: z.string(),
3845
3868
  stderr: z.string(),
@@ -4201,7 +4224,11 @@ const openaiResponsesResponseSchema = lazySchema(() => zodSchema(z.object({
4201
4224
  "completed",
4202
4225
  "incomplete"
4203
4226
  ]),
4204
- action: z.object({ commands: z.array(z.string()) })
4227
+ action: z.object({
4228
+ commands: z.array(z.string()),
4229
+ timeout_ms: z.number().nullish(),
4230
+ max_output_length: z.number().nullish()
4231
+ })
4205
4232
  }),
4206
4233
  z.object({
4207
4234
  type: z.literal("compaction"),
@@ -4217,6 +4244,7 @@ const openaiResponsesResponseSchema = lazySchema(() => zodSchema(z.object({
4217
4244
  "completed",
4218
4245
  "incomplete"
4219
4246
  ]),
4247
+ max_output_length: z.number().nullish(),
4220
4248
  output: z.array(z.object({
4221
4249
  stdout: z.string(),
4222
4250
  stderr: z.string(),
@@ -5220,6 +5248,7 @@ async function convertToOpenAIResponsesInput({ prompt, toolNameMapping, systemMe
5220
5248
  input.push({
5221
5249
  type: "shell_call_output",
5222
5250
  call_id: part.toolCallId,
5251
+ ...parsedOutput.maxOutputLength != null && { max_output_length: parsedOutput.maxOutputLength },
5223
5252
  output: parsedOutput.output.map((item) => ({
5224
5253
  stdout: item.stdout,
5225
5254
  stderr: item.stderr,
@@ -5426,6 +5455,7 @@ async function convertToOpenAIResponsesInput({ prompt, toolNameMapping, systemMe
5426
5455
  input.push({
5427
5456
  type: "shell_call_output",
5428
5457
  call_id: part.toolCallId,
5458
+ ...parsedOutput.maxOutputLength != null && { max_output_length: parsedOutput.maxOutputLength },
5429
5459
  output: parsedOutput.output.map((item) => ({
5430
5460
  stdout: item.stdout,
5431
5461
  stderr: item.stderr,
@@ -6361,7 +6391,7 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
6361
6391
  const store = openaiOptions?.store;
6362
6392
  if (store === false && isReasoningModel) addInclude("reasoning.encrypted_content");
6363
6393
  const baseArgs = {
6364
- model: modelId,
6394
+ model: config.requestModelId ?? modelId,
6365
6395
  input,
6366
6396
  temperature,
6367
6397
  top_p: topP,
@@ -6507,7 +6537,7 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
6507
6537
  const { args: body, warnings, webSearchToolName, toolNameMapping, providerOptionsName, isShellProviderExecuted } = await this.getArgs(options);
6508
6538
  const url = this.config.url({
6509
6539
  path: "/responses",
6510
- modelId: this.modelId
6540
+ modelId: this.config.requestModelId ?? this.modelId
6511
6541
  });
6512
6542
  const approvalRequestIdToDummyToolCallIdFromPrompt = extractApprovalRequestIdToToolCallIdMapping(options.prompt);
6513
6543
  const { responseHeaders, value: response, rawValue: rawResponse } = await postJsonToApi({
@@ -6620,7 +6650,11 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
6620
6650
  type: "tool-call",
6621
6651
  toolCallId: part.call_id,
6622
6652
  toolName: toolNameMapping.toCustomToolName("shell"),
6623
- input: JSON.stringify({ action: { commands: part.action.commands } }),
6653
+ input: JSON.stringify({ action: {
6654
+ commands: part.action.commands,
6655
+ timeoutMs: part.action.timeout_ms ?? void 0,
6656
+ maxOutputLength: part.action.max_output_length ?? void 0
6657
+ } }),
6624
6658
  ...isShellProviderExecuted && { providerExecuted: true },
6625
6659
  providerMetadata: { [providerOptionsName]: { itemId: part.id } }
6626
6660
  });
@@ -6630,14 +6664,17 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
6630
6664
  type: "tool-result",
6631
6665
  toolCallId: part.call_id,
6632
6666
  toolName: toolNameMapping.toCustomToolName("shell"),
6633
- result: { output: part.output.map((item) => ({
6634
- stdout: item.stdout,
6635
- stderr: item.stderr,
6636
- outcome: item.outcome.type === "exit" ? {
6637
- type: "exit",
6638
- exitCode: item.outcome.exit_code
6639
- } : { type: "timeout" }
6640
- })) }
6667
+ result: {
6668
+ ...part.max_output_length != null && { maxOutputLength: part.max_output_length },
6669
+ output: part.output.map((item) => ({
6670
+ stdout: item.stdout,
6671
+ stderr: item.stderr,
6672
+ outcome: item.outcome.type === "exit" ? {
6673
+ type: "exit",
6674
+ exitCode: item.outcome.exit_code
6675
+ } : { type: "timeout" }
6676
+ }))
6677
+ }
6641
6678
  });
6642
6679
  break;
6643
6680
  case "message":
@@ -6951,7 +6988,7 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
6951
6988
  const { args: body, warnings, webSearchToolName, toolNameMapping, store, providerOptionsName, isShellProviderExecuted } = await this.getArgs(options);
6952
6989
  const url = this.config.url({
6953
6990
  path: "/responses",
6954
- modelId: this.modelId
6991
+ modelId: this.config.requestModelId ?? this.modelId
6955
6992
  });
6956
6993
  const { responseHeaders, value: response } = await postJsonToApi({
6957
6994
  url,
@@ -7605,7 +7642,11 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
7605
7642
  type: "tool-call",
7606
7643
  toolCallId: value.item.call_id,
7607
7644
  toolName: toolNameMapping.toCustomToolName("shell"),
7608
- input: JSON.stringify({ action: { commands: value.item.action.commands } }),
7645
+ input: JSON.stringify({ action: {
7646
+ commands: value.item.action.commands,
7647
+ timeoutMs: value.item.action.timeout_ms ?? void 0,
7648
+ maxOutputLength: value.item.action.max_output_length ?? void 0
7649
+ } }),
7609
7650
  ...isShellProviderExecuted && { providerExecuted: true },
7610
7651
  providerMetadata: { [providerOptionsName]: { itemId: value.item.id } }
7611
7652
  });
@@ -7613,14 +7654,17 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
7613
7654
  type: "tool-result",
7614
7655
  toolCallId: value.item.call_id,
7615
7656
  toolName: toolNameMapping.toCustomToolName("shell"),
7616
- result: { output: value.item.output.map((item) => ({
7617
- stdout: item.stdout,
7618
- stderr: item.stderr,
7619
- outcome: item.outcome.type === "exit" ? {
7620
- type: "exit",
7621
- exitCode: item.outcome.exit_code
7622
- } : { type: "timeout" }
7623
- })) }
7657
+ result: {
7658
+ ...value.item.max_output_length != null && { maxOutputLength: value.item.max_output_length },
7659
+ output: value.item.output.map((item) => ({
7660
+ stdout: item.stdout,
7661
+ stderr: item.stderr,
7662
+ outcome: item.outcome.type === "exit" ? {
7663
+ type: "exit",
7664
+ exitCode: item.outcome.exit_code
7665
+ } : { type: "timeout" }
7666
+ }))
7667
+ }
7624
7668
  });
7625
7669
  else if (value.item.type === "reasoning") {
7626
7670
  const itemId = resolveOutputItemId({
@@ -9441,6 +9485,7 @@ var OpenAISpeechModel = class OpenAISpeechModel {
9441
9485
  const openaiTranscriptionResponseSchema = lazySchema(() => zodSchema(z.object({
9442
9486
  text: z.string(),
9443
9487
  language: z.string().nullish(),
9488
+ languages: z.array(z.object({ code: z.string() })).nullish(),
9444
9489
  duration: z.number().nullish(),
9445
9490
  words: z.array(z.object({
9446
9491
  word: z.string(),
@@ -9599,6 +9644,9 @@ const languageMap = {
9599
9644
  vietnamese: "vi",
9600
9645
  welsh: "cy"
9601
9646
  };
9647
+ function isLanguageCode(language) {
9648
+ return language != null && /^[a-z]{2}$/.test(language);
9649
+ }
9602
9650
  var OpenAITranscriptionModel = class OpenAITranscriptionModel {
9603
9651
  static [WORKFLOW_SERIALIZE](model) {
9604
9652
  return serializeModelOptions({
@@ -9674,7 +9722,7 @@ var OpenAITranscriptionModel = class OpenAITranscriptionModel {
9674
9722
  abortSignal: options.abortSignal,
9675
9723
  fetch: this.config.fetch
9676
9724
  });
9677
- const language = response.language != null && response.language in languageMap ? languageMap[response.language] : void 0;
9725
+ const language = (isLanguageCode(response.language) ? response.language : response.language != null && Object.prototype.hasOwnProperty.call(languageMap, response.language) ? languageMap[response.language] : void 0) ?? (response.languages?.length === 1 && isLanguageCode(response.languages[0].code) ? response.languages[0].code : void 0);
9678
9726
  const diarizedSegments = response.segments?.flatMap((segment) => "speaker" in segment ? [{
9679
9727
  text: segment.text,
9680
9728
  startSecond: segment.start,
@@ -9702,7 +9750,10 @@ var OpenAITranscriptionModel = class OpenAITranscriptionModel {
9702
9750
  headers: responseHeaders,
9703
9751
  body: rawResponse
9704
9752
  },
9705
- ...diarizedSegments != null && diarizedSegments.length > 0 && { providerMetadata: { openai: { segments: diarizedSegments } } }
9753
+ ...(diarizedSegments != null && diarizedSegments.length > 0 || response.languages != null) && { providerMetadata: { openai: {
9754
+ ...diarizedSegments != null && diarizedSegments.length > 0 && { segments: diarizedSegments },
9755
+ ...response.languages != null && { languages: response.languages }
9756
+ } } }
9706
9757
  };
9707
9758
  }
9708
9759
  async doStream(options) {
@@ -10191,7 +10242,7 @@ var OpenAISkills = class {
10191
10242
  };
10192
10243
  //#endregion
10193
10244
  //#region src/version.ts
10194
- const VERSION = "4.0.96";
10245
+ const VERSION = "4.0.98";
10195
10246
  //#endregion
10196
10247
  //#region src/openai-provider.ts
10197
10248
  /**