@ai-sdk/openai 4.0.9 → 4.0.11

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.
@@ -367,6 +367,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
367
367
  service_tier: openaiOptions?.serviceTier,
368
368
  include,
369
369
  prompt_cache_key: openaiOptions?.promptCacheKey,
370
+ prompt_cache_options: openaiOptions?.promptCacheOptions,
370
371
  prompt_cache_retention: openaiOptions?.promptCacheRetention,
371
372
  safety_identifier: openaiOptions?.safetyIdentifier,
372
373
  top_logprobs: topLogprobs,
@@ -383,7 +384,9 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
383
384
  // model-specific settings:
384
385
  ...(isReasoningModel &&
385
386
  (resolvedReasoningEffort != null ||
386
- resolvedReasoningSummary != null) && {
387
+ resolvedReasoningSummary != null ||
388
+ openaiOptions?.reasoningMode != null ||
389
+ openaiOptions?.reasoningContext != null) && {
387
390
  reasoning: {
388
391
  ...(resolvedReasoningEffort != null && {
389
392
  effort: resolvedReasoningEffort,
@@ -391,6 +394,12 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
391
394
  ...(resolvedReasoningSummary != null && {
392
395
  summary: resolvedReasoningSummary,
393
396
  }),
397
+ ...(openaiOptions?.reasoningMode != null && {
398
+ mode: openaiOptions.reasoningMode,
399
+ }),
400
+ ...(openaiOptions?.reasoningContext != null && {
401
+ context: openaiOptions.reasoningContext,
402
+ }),
394
403
  },
395
404
  }),
396
405
  };
@@ -440,6 +449,22 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
440
449
  details: 'reasoningSummary is not supported for non-reasoning models',
441
450
  });
442
451
  }
452
+
453
+ if (openaiOptions?.reasoningMode != null) {
454
+ warnings.push({
455
+ type: 'unsupported',
456
+ feature: 'reasoningMode',
457
+ details: 'reasoningMode is not supported for non-reasoning models',
458
+ });
459
+ }
460
+
461
+ if (openaiOptions?.reasoningContext != null) {
462
+ warnings.push({
463
+ type: 'unsupported',
464
+ feature: 'reasoningContext',
465
+ details: 'reasoningContext is not supported for non-reasoning models',
466
+ });
467
+ }
443
468
  }
444
469
 
445
470
  // Validate flex processing support
@@ -1046,6 +1071,9 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
1046
1071
  ...(typeof response.service_tier === 'string'
1047
1072
  ? { serviceTier: response.service_tier }
1048
1073
  : {}),
1074
+ ...(response.reasoning?.context != null
1075
+ ? { reasoningContext: response.reasoning.context }
1076
+ : {}),
1049
1077
  } satisfies ResponsesProviderMetadata,
1050
1078
  };
1051
1079
 
@@ -1179,6 +1207,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
1179
1207
  > = {};
1180
1208
 
1181
1209
  let serviceTier: string | undefined;
1210
+ let reasoningContext: ResponsesProviderMetadata['reasoningContext'];
1182
1211
  const hostedToolSearchCallIds: string[] = [];
1183
1212
  let encounteredStreamError = false;
1184
1213
 
@@ -2109,6 +2138,9 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
2109
2138
  if (typeof value.response.service_tier === 'string') {
2110
2139
  serviceTier = value.response.service_tier;
2111
2140
  }
2141
+ if (value.response.reasoning?.context != null) {
2142
+ reasoningContext = value.response.reasoning.context;
2143
+ }
2112
2144
  } else if (isResponseFailedChunk(value)) {
2113
2145
  const incompleteReason =
2114
2146
  value.response.incomplete_details?.reason;
@@ -2122,6 +2154,9 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
2122
2154
  raw: incompleteReason ?? 'error',
2123
2155
  };
2124
2156
  usage = value.response.usage ?? undefined;
2157
+ if (value.response.reasoning?.context != null) {
2158
+ reasoningContext = value.response.reasoning.context;
2159
+ }
2125
2160
 
2126
2161
  if (!encounteredStreamError && value.response.error != null) {
2127
2162
  encounteredStreamError = true;
@@ -2219,6 +2254,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
2219
2254
  responseId: responseId,
2220
2255
  ...(logprobs.length > 0 ? { logprobs } : {}),
2221
2256
  ...(serviceTier !== undefined ? { serviceTier } : {}),
2257
+ ...(reasoningContext !== undefined ? { reasoningContext } : {}),
2222
2258
  } satisfies ResponsesProviderMetadata,
2223
2259
  };
2224
2260
 
@@ -15,6 +15,7 @@ export type ResponsesProviderMetadata = {
15
15
  responseId: string | null | undefined;
16
16
  logprobs?: Array<OpenAIResponsesLogprobs>;
17
17
  serviceTier?: string;
18
+ reasoningContext?: string;
18
19
  };
19
20
 
20
21
  export type ResponsesReasoningProviderMetadata = {