@ai-sdk/openai 3.0.82 → 3.0.84
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 +15 -0
- package/dist/index.d.mts +22 -3
- package/dist/index.d.ts +22 -3
- package/dist/index.js +313 -68
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +313 -68
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +16 -3
- package/dist/internal/index.d.ts +16 -3
- package/dist/internal/index.js +312 -67
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +312 -67
- package/dist/internal/index.mjs.map +1 -1
- package/docs/03-openai.mdx +85 -31
- package/package.json +3 -3
- package/src/chat/convert-openai-chat-usage.ts +5 -2
- package/src/chat/convert-to-openai-chat-messages.ts +111 -7
- package/src/chat/openai-chat-api.ts +2 -0
- package/src/chat/openai-chat-language-model.ts +1 -0
- package/src/chat/openai-chat-options.ts +20 -2
- package/src/chat/openai-chat-prompt.ts +8 -4
- package/src/openai-language-model-capabilities.ts +2 -1
- package/src/responses/convert-openai-responses-usage.ts +5 -2
- package/src/responses/convert-to-openai-responses-input.ts +117 -6
- package/src/responses/openai-responses-api.ts +77 -11
- package/src/responses/openai-responses-language-model.ts +37 -1
- package/src/responses/openai-responses-options.ts +40 -7
- package/src/responses/openai-responses-provider-metadata.ts +1 -0
package/dist/index.js
CHANGED
|
@@ -57,7 +57,7 @@ function getOpenAILanguageModelCapabilities(modelId) {
|
|
|
57
57
|
const supportsFlexProcessing = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
58
58
|
const supportsPriorityProcessing = modelId.startsWith("gpt-4") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-nano") && !modelId.startsWith("gpt-5-chat") && !modelId.startsWith("gpt-5.4-nano") || modelId.startsWith("o3") || modelId.startsWith("o4-mini");
|
|
59
59
|
const isReasoningModel = modelId.startsWith("o1") || modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
60
|
-
const supportsNonReasoningParameters = modelId.startsWith("gpt-5.1") || modelId.startsWith("gpt-5.2") || modelId.startsWith("gpt-5.3") || modelId.startsWith("gpt-5.4") || modelId.startsWith("gpt-5.5");
|
|
60
|
+
const supportsNonReasoningParameters = modelId.startsWith("gpt-5.1") || modelId.startsWith("gpt-5.2") || modelId.startsWith("gpt-5.3") || modelId.startsWith("gpt-5.4") || modelId.startsWith("gpt-5.5") || modelId.startsWith("gpt-5.6");
|
|
61
61
|
const systemMessageMode = isReasoningModel ? "developer" : "system";
|
|
62
62
|
return {
|
|
63
63
|
supportsFlexProcessing,
|
|
@@ -193,7 +193,7 @@ function isHttpErrorStatusCode(value) {
|
|
|
193
193
|
|
|
194
194
|
// src/chat/convert-openai-chat-usage.ts
|
|
195
195
|
function convertOpenAIChatUsage(usage) {
|
|
196
|
-
var _a, _b, _c, _d, _e, _f;
|
|
196
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
197
197
|
if (usage == null) {
|
|
198
198
|
return {
|
|
199
199
|
inputTokens: {
|
|
@@ -213,13 +213,14 @@ function convertOpenAIChatUsage(usage) {
|
|
|
213
213
|
const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;
|
|
214
214
|
const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;
|
|
215
215
|
const cachedTokens = (_d = (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _d : 0;
|
|
216
|
-
const
|
|
216
|
+
const cacheWriteTokens = (_f = (_e = usage.prompt_tokens_details) == null ? void 0 : _e.cache_write_tokens) != null ? _f : void 0;
|
|
217
|
+
const reasoningTokens = (_h = (_g = usage.completion_tokens_details) == null ? void 0 : _g.reasoning_tokens) != null ? _h : 0;
|
|
217
218
|
return {
|
|
218
219
|
inputTokens: {
|
|
219
220
|
total: promptTokens,
|
|
220
|
-
noCache: promptTokens - cachedTokens,
|
|
221
|
+
noCache: promptTokens - cachedTokens - (cacheWriteTokens != null ? cacheWriteTokens : 0),
|
|
221
222
|
cacheRead: cachedTokens,
|
|
222
|
-
cacheWrite:
|
|
223
|
+
cacheWrite: cacheWriteTokens
|
|
223
224
|
},
|
|
224
225
|
outputTokens: {
|
|
225
226
|
total: completionTokens,
|
|
@@ -236,23 +237,47 @@ var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
|
236
237
|
function serializeToolCallArguments(input) {
|
|
237
238
|
return JSON.stringify(input === void 0 ? {} : input);
|
|
238
239
|
}
|
|
240
|
+
function getPromptCacheBreakpoint(providerOptions) {
|
|
241
|
+
var _a;
|
|
242
|
+
return (_a = providerOptions == null ? void 0 : providerOptions.openai) == null ? void 0 : _a.promptCacheBreakpoint;
|
|
243
|
+
}
|
|
239
244
|
function convertToOpenAIChatMessages({
|
|
240
245
|
prompt,
|
|
241
246
|
systemMessageMode = "system"
|
|
242
247
|
}) {
|
|
243
|
-
var _a;
|
|
248
|
+
var _a, _b;
|
|
244
249
|
const messages = [];
|
|
245
250
|
const warnings = [];
|
|
246
|
-
for (const { role, content } of prompt) {
|
|
251
|
+
for (const { role, content, providerOptions } of prompt) {
|
|
247
252
|
switch (role) {
|
|
248
253
|
case "system": {
|
|
249
254
|
switch (systemMessageMode) {
|
|
250
255
|
case "system": {
|
|
251
|
-
|
|
256
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint(providerOptions);
|
|
257
|
+
messages.push({
|
|
258
|
+
role: "system",
|
|
259
|
+
content: promptCacheBreakpoint == null ? content : [
|
|
260
|
+
{
|
|
261
|
+
type: "text",
|
|
262
|
+
text: content,
|
|
263
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
264
|
+
}
|
|
265
|
+
]
|
|
266
|
+
});
|
|
252
267
|
break;
|
|
253
268
|
}
|
|
254
269
|
case "developer": {
|
|
255
|
-
|
|
270
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint(providerOptions);
|
|
271
|
+
messages.push({
|
|
272
|
+
role: "developer",
|
|
273
|
+
content: promptCacheBreakpoint == null ? content : [
|
|
274
|
+
{
|
|
275
|
+
type: "text",
|
|
276
|
+
text: content,
|
|
277
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
278
|
+
}
|
|
279
|
+
]
|
|
280
|
+
});
|
|
256
281
|
break;
|
|
257
282
|
}
|
|
258
283
|
case "remove": {
|
|
@@ -272,19 +297,31 @@ function convertToOpenAIChatMessages({
|
|
|
272
297
|
break;
|
|
273
298
|
}
|
|
274
299
|
case "user": {
|
|
275
|
-
if (content.length === 1 && content[0].type === "text") {
|
|
300
|
+
if (content.length === 1 && content[0].type === "text" && getPromptCacheBreakpoint(content[0].providerOptions) == null) {
|
|
276
301
|
messages.push({ role: "user", content: content[0].text });
|
|
277
302
|
break;
|
|
278
303
|
}
|
|
279
304
|
messages.push({
|
|
280
305
|
role: "user",
|
|
281
306
|
content: content.map((part, index) => {
|
|
282
|
-
var _a2,
|
|
307
|
+
var _a2, _b2, _c;
|
|
283
308
|
switch (part.type) {
|
|
284
309
|
case "text": {
|
|
285
|
-
|
|
310
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint(
|
|
311
|
+
part.providerOptions
|
|
312
|
+
);
|
|
313
|
+
return {
|
|
314
|
+
type: "text",
|
|
315
|
+
text: part.text,
|
|
316
|
+
...promptCacheBreakpoint != null && {
|
|
317
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
318
|
+
}
|
|
319
|
+
};
|
|
286
320
|
}
|
|
287
321
|
case "file": {
|
|
322
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint(
|
|
323
|
+
part.providerOptions
|
|
324
|
+
);
|
|
288
325
|
if (part.mediaType.startsWith("image/")) {
|
|
289
326
|
const mediaType = part.mediaType === "image/*" ? "image/jpeg" : part.mediaType;
|
|
290
327
|
return {
|
|
@@ -292,7 +329,10 @@ function convertToOpenAIChatMessages({
|
|
|
292
329
|
image_url: {
|
|
293
330
|
url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${(0, import_provider_utils2.convertToBase64)(part.data)}`,
|
|
294
331
|
// OpenAI specific extension: image detail
|
|
295
|
-
detail: (
|
|
332
|
+
detail: (_b2 = (_a2 = part.providerOptions) == null ? void 0 : _a2.openai) == null ? void 0 : _b2.imageDetail
|
|
333
|
+
},
|
|
334
|
+
...promptCacheBreakpoint != null && {
|
|
335
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
296
336
|
}
|
|
297
337
|
};
|
|
298
338
|
} else if (part.mediaType.startsWith("audio/")) {
|
|
@@ -308,6 +348,9 @@ function convertToOpenAIChatMessages({
|
|
|
308
348
|
input_audio: {
|
|
309
349
|
data: (0, import_provider_utils2.convertToBase64)(part.data),
|
|
310
350
|
format: "wav"
|
|
351
|
+
},
|
|
352
|
+
...promptCacheBreakpoint != null && {
|
|
353
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
311
354
|
}
|
|
312
355
|
};
|
|
313
356
|
}
|
|
@@ -318,6 +361,9 @@ function convertToOpenAIChatMessages({
|
|
|
318
361
|
input_audio: {
|
|
319
362
|
data: (0, import_provider_utils2.convertToBase64)(part.data),
|
|
320
363
|
format: "mp3"
|
|
364
|
+
},
|
|
365
|
+
...promptCacheBreakpoint != null && {
|
|
366
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
321
367
|
}
|
|
322
368
|
};
|
|
323
369
|
}
|
|
@@ -338,6 +384,9 @@ function convertToOpenAIChatMessages({
|
|
|
338
384
|
file: typeof part.data === "string" && part.data.startsWith("file-") ? { file_id: part.data } : {
|
|
339
385
|
filename: (_c = part.filename) != null ? _c : `part-${index}.pdf`,
|
|
340
386
|
file_data: `data:application/pdf;base64,${(0, import_provider_utils2.convertToBase64)(part.data)}`
|
|
387
|
+
},
|
|
388
|
+
...promptCacheBreakpoint != null && {
|
|
389
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
341
390
|
}
|
|
342
391
|
};
|
|
343
392
|
} else {
|
|
@@ -353,11 +402,24 @@ function convertToOpenAIChatMessages({
|
|
|
353
402
|
}
|
|
354
403
|
case "assistant": {
|
|
355
404
|
let text = "";
|
|
405
|
+
const textParts = [];
|
|
406
|
+
let hasPromptCacheBreakpoint = false;
|
|
356
407
|
const toolCalls = [];
|
|
357
408
|
for (const part of content) {
|
|
358
409
|
switch (part.type) {
|
|
359
410
|
case "text": {
|
|
411
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint(
|
|
412
|
+
part.providerOptions
|
|
413
|
+
);
|
|
360
414
|
text += part.text;
|
|
415
|
+
textParts.push({
|
|
416
|
+
type: "text",
|
|
417
|
+
text: part.text,
|
|
418
|
+
...promptCacheBreakpoint != null && {
|
|
419
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
hasPromptCacheBreakpoint || (hasPromptCacheBreakpoint = promptCacheBreakpoint != null);
|
|
361
423
|
break;
|
|
362
424
|
}
|
|
363
425
|
case "tool-call": {
|
|
@@ -375,7 +437,7 @@ function convertToOpenAIChatMessages({
|
|
|
375
437
|
}
|
|
376
438
|
messages.push({
|
|
377
439
|
role: "assistant",
|
|
378
|
-
content: toolCalls.length > 0 ? text || null : text,
|
|
440
|
+
content: hasPromptCacheBreakpoint ? textParts : toolCalls.length > 0 ? text || null : text,
|
|
379
441
|
tool_calls: toolCalls.length > 0 ? toolCalls : void 0
|
|
380
442
|
});
|
|
381
443
|
break;
|
|
@@ -386,6 +448,7 @@ function convertToOpenAIChatMessages({
|
|
|
386
448
|
continue;
|
|
387
449
|
}
|
|
388
450
|
const output = toolResponse.output;
|
|
451
|
+
const promptCacheBreakpoint = (_a = output.type === "content" ? output.value.map((part) => getPromptCacheBreakpoint(part.providerOptions)).find((breakpoint) => breakpoint != null) : getPromptCacheBreakpoint(output.providerOptions)) != null ? _a : getPromptCacheBreakpoint(toolResponse.providerOptions);
|
|
389
452
|
let contentValue;
|
|
390
453
|
switch (output.type) {
|
|
391
454
|
case "text":
|
|
@@ -393,7 +456,7 @@ function convertToOpenAIChatMessages({
|
|
|
393
456
|
contentValue = output.value;
|
|
394
457
|
break;
|
|
395
458
|
case "execution-denied":
|
|
396
|
-
contentValue = (
|
|
459
|
+
contentValue = (_b = output.reason) != null ? _b : "Tool call execution denied.";
|
|
397
460
|
break;
|
|
398
461
|
case "content":
|
|
399
462
|
case "json":
|
|
@@ -404,7 +467,13 @@ function convertToOpenAIChatMessages({
|
|
|
404
467
|
messages.push({
|
|
405
468
|
role: "tool",
|
|
406
469
|
tool_call_id: toolResponse.toolCallId,
|
|
407
|
-
content: contentValue
|
|
470
|
+
content: promptCacheBreakpoint == null ? contentValue : [
|
|
471
|
+
{
|
|
472
|
+
type: "text",
|
|
473
|
+
text: contentValue,
|
|
474
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
475
|
+
}
|
|
476
|
+
]
|
|
408
477
|
});
|
|
409
478
|
}
|
|
410
479
|
break;
|
|
@@ -507,7 +576,8 @@ var openaiChatResponseSchema = (0, import_provider_utils3.lazySchema)(
|
|
|
507
576
|
completion_tokens: import_v42.z.number().nullish(),
|
|
508
577
|
total_tokens: import_v42.z.number().nullish(),
|
|
509
578
|
prompt_tokens_details: import_v42.z.object({
|
|
510
|
-
cached_tokens: import_v42.z.number().nullish()
|
|
579
|
+
cached_tokens: import_v42.z.number().nullish(),
|
|
580
|
+
cache_write_tokens: import_v42.z.number().nullish()
|
|
511
581
|
}).nullish(),
|
|
512
582
|
completion_tokens_details: import_v42.z.object({
|
|
513
583
|
reasoning_tokens: import_v42.z.number().nullish(),
|
|
@@ -576,7 +646,8 @@ var openaiChatChunkSchema = (0, import_provider_utils3.lazySchema)(
|
|
|
576
646
|
completion_tokens: import_v42.z.number().nullish(),
|
|
577
647
|
total_tokens: import_v42.z.number().nullish(),
|
|
578
648
|
prompt_tokens_details: import_v42.z.object({
|
|
579
|
-
cached_tokens: import_v42.z.number().nullish()
|
|
649
|
+
cached_tokens: import_v42.z.number().nullish(),
|
|
650
|
+
cache_write_tokens: import_v42.z.number().nullish()
|
|
580
651
|
}).nullish(),
|
|
581
652
|
completion_tokens_details: import_v42.z.object({
|
|
582
653
|
reasoning_tokens: import_v42.z.number().nullish(),
|
|
@@ -625,7 +696,7 @@ var openaiLanguageModelChatOptions = (0, import_provider_utils4.lazySchema)(
|
|
|
625
696
|
/**
|
|
626
697
|
* Reasoning effort for reasoning models. Defaults to `medium`.
|
|
627
698
|
*/
|
|
628
|
-
reasoningEffort: import_v43.z.enum(["none", "minimal", "low", "medium", "high", "xhigh"]).optional(),
|
|
699
|
+
reasoningEffort: import_v43.z.enum(["none", "minimal", "low", "medium", "high", "xhigh", "max"]).optional(),
|
|
629
700
|
/**
|
|
630
701
|
* Maximum number of completion tokens to generate. Useful for reasoning models.
|
|
631
702
|
*/
|
|
@@ -669,11 +740,22 @@ var openaiLanguageModelChatOptions = (0, import_provider_utils4.lazySchema)(
|
|
|
669
740
|
* Useful for improving cache hit rates and working around automatic caching issues.
|
|
670
741
|
*/
|
|
671
742
|
promptCacheKey: import_v43.z.string().optional(),
|
|
743
|
+
/**
|
|
744
|
+
* Prompt cache behavior for GPT-5.6 and later models.
|
|
745
|
+
* `mode` controls whether OpenAI also places an implicit breakpoint.
|
|
746
|
+
* `ttl` sets the minimum cache lifetime and currently only supports 30 minutes.
|
|
747
|
+
*/
|
|
748
|
+
promptCacheOptions: import_v43.z.object({
|
|
749
|
+
mode: import_v43.z.enum(["implicit", "explicit"]).optional(),
|
|
750
|
+
ttl: import_v43.z.literal("30m").optional()
|
|
751
|
+
}).optional(),
|
|
672
752
|
/**
|
|
673
753
|
* The retention policy for the prompt cache.
|
|
674
754
|
* - 'in_memory': Default. Standard prompt caching behavior.
|
|
675
755
|
* - '24h': Extended prompt caching that keeps cached prefixes active for up to 24 hours.
|
|
676
|
-
*
|
|
756
|
+
* Available for models before GPT-5.6 that support extended caching.
|
|
757
|
+
*
|
|
758
|
+
* @deprecated For GPT-5.6 and later models, use `promptCacheOptions.ttl`.
|
|
677
759
|
*
|
|
678
760
|
* @default 'in_memory'
|
|
679
761
|
*/
|
|
@@ -855,6 +937,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
855
937
|
reasoning_effort: openaiOptions.reasoningEffort,
|
|
856
938
|
service_tier: openaiOptions.serviceTier,
|
|
857
939
|
prompt_cache_key: openaiOptions.promptCacheKey,
|
|
940
|
+
prompt_cache_options: openaiOptions.promptCacheOptions,
|
|
858
941
|
prompt_cache_retention: openaiOptions.promptCacheRetention,
|
|
859
942
|
safety_identifier: openaiOptions.safetyIdentifier,
|
|
860
943
|
// messages:
|
|
@@ -2833,7 +2916,7 @@ var import_provider_utils30 = require("@ai-sdk/provider-utils");
|
|
|
2833
2916
|
|
|
2834
2917
|
// src/responses/convert-openai-responses-usage.ts
|
|
2835
2918
|
function convertOpenAIResponsesUsage(usage) {
|
|
2836
|
-
var _a, _b, _c, _d;
|
|
2919
|
+
var _a, _b, _c, _d, _e, _f;
|
|
2837
2920
|
if (usage == null) {
|
|
2838
2921
|
return {
|
|
2839
2922
|
inputTokens: {
|
|
@@ -2853,13 +2936,14 @@ function convertOpenAIResponsesUsage(usage) {
|
|
|
2853
2936
|
const inputTokens = usage.input_tokens;
|
|
2854
2937
|
const outputTokens = usage.output_tokens;
|
|
2855
2938
|
const cachedTokens = (_b = (_a = usage.input_tokens_details) == null ? void 0 : _a.cached_tokens) != null ? _b : 0;
|
|
2856
|
-
const
|
|
2939
|
+
const cacheWriteTokens = (_d = (_c = usage.input_tokens_details) == null ? void 0 : _c.cache_write_tokens) != null ? _d : void 0;
|
|
2940
|
+
const reasoningTokens = (_f = (_e = usage.output_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : 0;
|
|
2857
2941
|
return {
|
|
2858
2942
|
inputTokens: {
|
|
2859
2943
|
total: inputTokens,
|
|
2860
|
-
noCache: inputTokens - cachedTokens,
|
|
2944
|
+
noCache: inputTokens - cachedTokens - (cacheWriteTokens != null ? cacheWriteTokens : 0),
|
|
2861
2945
|
cacheRead: cachedTokens,
|
|
2862
|
-
cacheWrite:
|
|
2946
|
+
cacheWrite: cacheWriteTokens
|
|
2863
2947
|
},
|
|
2864
2948
|
outputTokens: {
|
|
2865
2949
|
total: outputTokens,
|
|
@@ -2877,6 +2961,10 @@ var import_v421 = require("zod/v4");
|
|
|
2877
2961
|
function serializeToolCallArguments2(input) {
|
|
2878
2962
|
return JSON.stringify(input === void 0 ? {} : input);
|
|
2879
2963
|
}
|
|
2964
|
+
function getPromptCacheBreakpoint2(providerOptions, providerOptionsName) {
|
|
2965
|
+
var _a;
|
|
2966
|
+
return (_a = providerOptions == null ? void 0 : providerOptions[providerOptionsName]) == null ? void 0 : _a.promptCacheBreakpoint;
|
|
2967
|
+
}
|
|
2880
2968
|
function isFileId(data, prefixes) {
|
|
2881
2969
|
if (!prefixes) return false;
|
|
2882
2970
|
return prefixes.some((prefix) => data.startsWith(prefix));
|
|
@@ -2900,16 +2988,42 @@ async function convertToOpenAIResponsesInput({
|
|
|
2900
2988
|
let input = [];
|
|
2901
2989
|
const warnings = [];
|
|
2902
2990
|
const processedApprovalIds = /* @__PURE__ */ new Set();
|
|
2903
|
-
for (const { role, content } of prompt) {
|
|
2991
|
+
for (const { role, content, providerOptions } of prompt) {
|
|
2904
2992
|
switch (role) {
|
|
2905
2993
|
case "system": {
|
|
2906
2994
|
switch (systemMessageMode) {
|
|
2907
2995
|
case "system": {
|
|
2908
|
-
|
|
2996
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint2(
|
|
2997
|
+
providerOptions,
|
|
2998
|
+
providerOptionsName
|
|
2999
|
+
);
|
|
3000
|
+
input.push({
|
|
3001
|
+
role: "system",
|
|
3002
|
+
content: promptCacheBreakpoint == null ? content : [
|
|
3003
|
+
{
|
|
3004
|
+
type: "input_text",
|
|
3005
|
+
text: content,
|
|
3006
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3007
|
+
}
|
|
3008
|
+
]
|
|
3009
|
+
});
|
|
2909
3010
|
break;
|
|
2910
3011
|
}
|
|
2911
3012
|
case "developer": {
|
|
2912
|
-
|
|
3013
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint2(
|
|
3014
|
+
providerOptions,
|
|
3015
|
+
providerOptionsName
|
|
3016
|
+
);
|
|
3017
|
+
input.push({
|
|
3018
|
+
role: "developer",
|
|
3019
|
+
content: promptCacheBreakpoint == null ? content : [
|
|
3020
|
+
{
|
|
3021
|
+
type: "input_text",
|
|
3022
|
+
text: content,
|
|
3023
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3024
|
+
}
|
|
3025
|
+
]
|
|
3026
|
+
});
|
|
2913
3027
|
break;
|
|
2914
3028
|
}
|
|
2915
3029
|
case "remove": {
|
|
@@ -2935,9 +3049,23 @@ async function convertToOpenAIResponsesInput({
|
|
|
2935
3049
|
var _a2, _b2, _c2;
|
|
2936
3050
|
switch (part.type) {
|
|
2937
3051
|
case "text": {
|
|
2938
|
-
|
|
3052
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint2(
|
|
3053
|
+
part.providerOptions,
|
|
3054
|
+
providerOptionsName
|
|
3055
|
+
);
|
|
3056
|
+
return {
|
|
3057
|
+
type: "input_text",
|
|
3058
|
+
text: part.text,
|
|
3059
|
+
...promptCacheBreakpoint != null && {
|
|
3060
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3061
|
+
}
|
|
3062
|
+
};
|
|
2939
3063
|
}
|
|
2940
3064
|
case "file": {
|
|
3065
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint2(
|
|
3066
|
+
part.providerOptions,
|
|
3067
|
+
providerOptionsName
|
|
3068
|
+
);
|
|
2941
3069
|
const mediaType = part.mediaType === "image/*" ? "image/jpeg" : part.mediaType;
|
|
2942
3070
|
if (mediaType.startsWith("image/")) {
|
|
2943
3071
|
return {
|
|
@@ -2945,13 +3073,19 @@ async function convertToOpenAIResponsesInput({
|
|
|
2945
3073
|
...part.data instanceof URL ? { image_url: part.data.toString() } : typeof part.data === "string" && isFileId(part.data, fileIdPrefixes) ? { file_id: part.data } : {
|
|
2946
3074
|
image_url: `data:${mediaType};base64,${(0, import_provider_utils26.convertToBase64)(part.data)}`
|
|
2947
3075
|
},
|
|
2948
|
-
detail: (_b2 = (_a2 = part.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail
|
|
3076
|
+
detail: (_b2 = (_a2 = part.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail,
|
|
3077
|
+
...promptCacheBreakpoint != null && {
|
|
3078
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3079
|
+
}
|
|
2949
3080
|
};
|
|
2950
3081
|
}
|
|
2951
3082
|
if (part.data instanceof URL) {
|
|
2952
3083
|
return {
|
|
2953
3084
|
type: "input_file",
|
|
2954
|
-
file_url: part.data.toString()
|
|
3085
|
+
file_url: part.data.toString(),
|
|
3086
|
+
...promptCacheBreakpoint != null && {
|
|
3087
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3088
|
+
}
|
|
2955
3089
|
};
|
|
2956
3090
|
}
|
|
2957
3091
|
if (mediaType !== "application/pdf" && !passThroughUnsupportedFiles) {
|
|
@@ -2964,6 +3098,9 @@ async function convertToOpenAIResponsesInput({
|
|
|
2964
3098
|
...typeof part.data === "string" && isFileId(part.data, fileIdPrefixes) ? { file_id: part.data } : {
|
|
2965
3099
|
filename: (_c2 = part.filename) != null ? _c2 : mediaType === "application/pdf" ? `part-${index}.pdf` : `part-${index}`,
|
|
2966
3100
|
file_data: `data:${mediaType};base64,${(0, import_provider_utils26.convertToBase64)(part.data)}`
|
|
3101
|
+
},
|
|
3102
|
+
...promptCacheBreakpoint != null && {
|
|
3103
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
2967
3104
|
}
|
|
2968
3105
|
};
|
|
2969
3106
|
}
|
|
@@ -3176,12 +3313,12 @@ async function convertToOpenAIResponsesInput({
|
|
|
3176
3313
|
break;
|
|
3177
3314
|
}
|
|
3178
3315
|
case "reasoning": {
|
|
3179
|
-
const
|
|
3316
|
+
const providerOptions2 = await (0, import_provider_utils26.parseProviderOptions)({
|
|
3180
3317
|
provider: providerOptionsName,
|
|
3181
3318
|
providerOptions: part.providerOptions,
|
|
3182
3319
|
schema: openaiResponsesReasoningProviderOptionsSchema
|
|
3183
3320
|
});
|
|
3184
|
-
const reasoningId =
|
|
3321
|
+
const reasoningId = providerOptions2 == null ? void 0 : providerOptions2.itemId;
|
|
3185
3322
|
if ((hasConversation || hasPreviousResponseId) && reasoningId != null) {
|
|
3186
3323
|
break;
|
|
3187
3324
|
}
|
|
@@ -3213,19 +3350,19 @@ async function convertToOpenAIResponsesInput({
|
|
|
3213
3350
|
reasoningMessages[reasoningId] = {
|
|
3214
3351
|
type: "reasoning",
|
|
3215
3352
|
id: reasoningId,
|
|
3216
|
-
encrypted_content:
|
|
3353
|
+
encrypted_content: providerOptions2 == null ? void 0 : providerOptions2.reasoningEncryptedContent,
|
|
3217
3354
|
summary: summaryParts
|
|
3218
3355
|
};
|
|
3219
3356
|
input.push(reasoningMessages[reasoningId]);
|
|
3220
3357
|
} else {
|
|
3221
3358
|
reasoningMessage.summary.push(...summaryParts);
|
|
3222
|
-
if ((
|
|
3223
|
-
reasoningMessage.encrypted_content =
|
|
3359
|
+
if ((providerOptions2 == null ? void 0 : providerOptions2.reasoningEncryptedContent) != null) {
|
|
3360
|
+
reasoningMessage.encrypted_content = providerOptions2.reasoningEncryptedContent;
|
|
3224
3361
|
}
|
|
3225
3362
|
}
|
|
3226
3363
|
}
|
|
3227
3364
|
} else {
|
|
3228
|
-
const encryptedContent =
|
|
3365
|
+
const encryptedContent = providerOptions2 == null ? void 0 : providerOptions2.reasoningEncryptedContent;
|
|
3229
3366
|
if (encryptedContent != null) {
|
|
3230
3367
|
const summaryParts = [];
|
|
3231
3368
|
if (part.text.length > 0) {
|
|
@@ -3358,31 +3495,53 @@ async function convertToOpenAIResponsesInput({
|
|
|
3358
3495
|
case "content":
|
|
3359
3496
|
outputValue = output.value.map((item) => {
|
|
3360
3497
|
var _a2, _b2, _c2, _d2, _e2;
|
|
3498
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint2(
|
|
3499
|
+
item.providerOptions,
|
|
3500
|
+
providerOptionsName
|
|
3501
|
+
);
|
|
3361
3502
|
switch (item.type) {
|
|
3362
3503
|
case "text":
|
|
3363
|
-
return {
|
|
3504
|
+
return {
|
|
3505
|
+
type: "input_text",
|
|
3506
|
+
text: item.text,
|
|
3507
|
+
...promptCacheBreakpoint != null && {
|
|
3508
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3509
|
+
}
|
|
3510
|
+
};
|
|
3364
3511
|
case "image-data":
|
|
3365
3512
|
return {
|
|
3366
3513
|
type: "input_image",
|
|
3367
3514
|
image_url: `data:${item.mediaType};base64,${item.data}`,
|
|
3368
|
-
detail: (_b2 = (_a2 = item.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail
|
|
3515
|
+
detail: (_b2 = (_a2 = item.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail,
|
|
3516
|
+
...promptCacheBreakpoint != null && {
|
|
3517
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3518
|
+
}
|
|
3369
3519
|
};
|
|
3370
3520
|
case "image-url":
|
|
3371
3521
|
return {
|
|
3372
3522
|
type: "input_image",
|
|
3373
3523
|
image_url: item.url,
|
|
3374
|
-
detail: (_d2 = (_c2 = item.providerOptions) == null ? void 0 : _c2[providerOptionsName]) == null ? void 0 : _d2.imageDetail
|
|
3524
|
+
detail: (_d2 = (_c2 = item.providerOptions) == null ? void 0 : _c2[providerOptionsName]) == null ? void 0 : _d2.imageDetail,
|
|
3525
|
+
...promptCacheBreakpoint != null && {
|
|
3526
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3527
|
+
}
|
|
3375
3528
|
};
|
|
3376
3529
|
case "file-data":
|
|
3377
3530
|
return {
|
|
3378
3531
|
type: "input_file",
|
|
3379
3532
|
filename: (_e2 = item.filename) != null ? _e2 : "data",
|
|
3380
|
-
file_data: `data:${item.mediaType};base64,${item.data}
|
|
3533
|
+
file_data: `data:${item.mediaType};base64,${item.data}`,
|
|
3534
|
+
...promptCacheBreakpoint != null && {
|
|
3535
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3536
|
+
}
|
|
3381
3537
|
};
|
|
3382
3538
|
case "file-url":
|
|
3383
3539
|
return {
|
|
3384
3540
|
type: "input_file",
|
|
3385
|
-
file_url: item.url
|
|
3541
|
+
file_url: item.url,
|
|
3542
|
+
...promptCacheBreakpoint != null && {
|
|
3543
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3544
|
+
}
|
|
3386
3545
|
};
|
|
3387
3546
|
default:
|
|
3388
3547
|
warnings.push({
|
|
@@ -3419,35 +3578,57 @@ async function convertToOpenAIResponsesInput({
|
|
|
3419
3578
|
case "content":
|
|
3420
3579
|
contentValue = output.value.map((item) => {
|
|
3421
3580
|
var _a2, _b2, _c2, _d2, _e2;
|
|
3581
|
+
const promptCacheBreakpoint = getPromptCacheBreakpoint2(
|
|
3582
|
+
item.providerOptions,
|
|
3583
|
+
providerOptionsName
|
|
3584
|
+
);
|
|
3422
3585
|
switch (item.type) {
|
|
3423
3586
|
case "text": {
|
|
3424
|
-
return {
|
|
3587
|
+
return {
|
|
3588
|
+
type: "input_text",
|
|
3589
|
+
text: item.text,
|
|
3590
|
+
...promptCacheBreakpoint != null && {
|
|
3591
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3592
|
+
}
|
|
3593
|
+
};
|
|
3425
3594
|
}
|
|
3426
3595
|
case "image-data": {
|
|
3427
3596
|
return {
|
|
3428
3597
|
type: "input_image",
|
|
3429
3598
|
image_url: `data:${item.mediaType};base64,${item.data}`,
|
|
3430
|
-
detail: (_b2 = (_a2 = item.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail
|
|
3599
|
+
detail: (_b2 = (_a2 = item.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail,
|
|
3600
|
+
...promptCacheBreakpoint != null && {
|
|
3601
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3602
|
+
}
|
|
3431
3603
|
};
|
|
3432
3604
|
}
|
|
3433
3605
|
case "image-url": {
|
|
3434
3606
|
return {
|
|
3435
3607
|
type: "input_image",
|
|
3436
3608
|
image_url: item.url,
|
|
3437
|
-
detail: (_d2 = (_c2 = item.providerOptions) == null ? void 0 : _c2[providerOptionsName]) == null ? void 0 : _d2.imageDetail
|
|
3609
|
+
detail: (_d2 = (_c2 = item.providerOptions) == null ? void 0 : _c2[providerOptionsName]) == null ? void 0 : _d2.imageDetail,
|
|
3610
|
+
...promptCacheBreakpoint != null && {
|
|
3611
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3612
|
+
}
|
|
3438
3613
|
};
|
|
3439
3614
|
}
|
|
3440
3615
|
case "file-data": {
|
|
3441
3616
|
return {
|
|
3442
3617
|
type: "input_file",
|
|
3443
3618
|
filename: (_e2 = item.filename) != null ? _e2 : "data",
|
|
3444
|
-
file_data: `data:${item.mediaType};base64,${item.data}
|
|
3619
|
+
file_data: `data:${item.mediaType};base64,${item.data}`,
|
|
3620
|
+
...promptCacheBreakpoint != null && {
|
|
3621
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3622
|
+
}
|
|
3445
3623
|
};
|
|
3446
3624
|
}
|
|
3447
3625
|
case "file-url": {
|
|
3448
3626
|
return {
|
|
3449
3627
|
type: "input_file",
|
|
3450
|
-
file_url: item.url
|
|
3628
|
+
file_url: item.url,
|
|
3629
|
+
...promptCacheBreakpoint != null && {
|
|
3630
|
+
prompt_cache_breakpoint: promptCacheBreakpoint
|
|
3631
|
+
}
|
|
3451
3632
|
};
|
|
3452
3633
|
}
|
|
3453
3634
|
default: {
|
|
@@ -3569,6 +3750,7 @@ var openaiResponsesChunkSchema = (0, import_provider_utils27.lazySchema)(
|
|
|
3569
3750
|
input_tokens: import_v422.z.number(),
|
|
3570
3751
|
input_tokens_details: import_v422.z.object({
|
|
3571
3752
|
cached_tokens: import_v422.z.number().nullish(),
|
|
3753
|
+
cache_write_tokens: import_v422.z.number().nullish(),
|
|
3572
3754
|
orchestration_input_tokens: import_v422.z.number().nullish(),
|
|
3573
3755
|
orchestration_input_cached_tokens: import_v422.z.number().nullish()
|
|
3574
3756
|
}).nullish(),
|
|
@@ -3578,6 +3760,9 @@ var openaiResponsesChunkSchema = (0, import_provider_utils27.lazySchema)(
|
|
|
3578
3760
|
orchestration_output_tokens: import_v422.z.number().nullish()
|
|
3579
3761
|
}).nullish()
|
|
3580
3762
|
}),
|
|
3763
|
+
reasoning: import_v422.z.object({
|
|
3764
|
+
context: import_v422.z.string().nullish()
|
|
3765
|
+
}).nullish(),
|
|
3581
3766
|
service_tier: import_v422.z.string().nullish()
|
|
3582
3767
|
})
|
|
3583
3768
|
}),
|
|
@@ -3594,6 +3779,7 @@ var openaiResponsesChunkSchema = (0, import_provider_utils27.lazySchema)(
|
|
|
3594
3779
|
input_tokens: import_v422.z.number(),
|
|
3595
3780
|
input_tokens_details: import_v422.z.object({
|
|
3596
3781
|
cached_tokens: import_v422.z.number().nullish(),
|
|
3782
|
+
cache_write_tokens: import_v422.z.number().nullish(),
|
|
3597
3783
|
orchestration_input_tokens: import_v422.z.number().nullish(),
|
|
3598
3784
|
orchestration_input_cached_tokens: import_v422.z.number().nullish()
|
|
3599
3785
|
}).nullish(),
|
|
@@ -3603,6 +3789,9 @@ var openaiResponsesChunkSchema = (0, import_provider_utils27.lazySchema)(
|
|
|
3603
3789
|
orchestration_output_tokens: import_v422.z.number().nullish()
|
|
3604
3790
|
}).nullish()
|
|
3605
3791
|
}).nullish(),
|
|
3792
|
+
reasoning: import_v422.z.object({
|
|
3793
|
+
context: import_v422.z.string().nullish()
|
|
3794
|
+
}).nullish(),
|
|
3606
3795
|
service_tier: import_v422.z.string().nullish()
|
|
3607
3796
|
})
|
|
3608
3797
|
}),
|
|
@@ -4374,11 +4563,15 @@ var openaiResponsesResponseSchema = (0, import_provider_utils27.lazySchema)(
|
|
|
4374
4563
|
])
|
|
4375
4564
|
).optional(),
|
|
4376
4565
|
service_tier: import_v422.z.string().nullish(),
|
|
4566
|
+
reasoning: import_v422.z.object({
|
|
4567
|
+
context: import_v422.z.string().nullish()
|
|
4568
|
+
}).nullish(),
|
|
4377
4569
|
incomplete_details: import_v422.z.object({ reason: import_v422.z.string() }).nullish(),
|
|
4378
4570
|
usage: import_v422.z.object({
|
|
4379
4571
|
input_tokens: import_v422.z.number(),
|
|
4380
4572
|
input_tokens_details: import_v422.z.object({
|
|
4381
4573
|
cached_tokens: import_v422.z.number().nullish(),
|
|
4574
|
+
cache_write_tokens: import_v422.z.number().nullish(),
|
|
4382
4575
|
orchestration_input_tokens: import_v422.z.number().nullish(),
|
|
4383
4576
|
orchestration_input_cached_tokens: import_v422.z.number().nullish()
|
|
4384
4577
|
}).nullish(),
|
|
@@ -4434,7 +4627,11 @@ var openaiResponsesReasoningModelIds = [
|
|
|
4434
4627
|
"gpt-5.4-pro",
|
|
4435
4628
|
"gpt-5.4-pro-2026-03-05",
|
|
4436
4629
|
"gpt-5.5",
|
|
4437
|
-
"gpt-5.5-2026-04-23"
|
|
4630
|
+
"gpt-5.5-2026-04-23",
|
|
4631
|
+
"gpt-5.6",
|
|
4632
|
+
"gpt-5.6-luna",
|
|
4633
|
+
"gpt-5.6-sol",
|
|
4634
|
+
"gpt-5.6-terra"
|
|
4438
4635
|
];
|
|
4439
4636
|
var openaiResponsesModelIds = [
|
|
4440
4637
|
"gpt-4.1",
|
|
@@ -4529,11 +4726,22 @@ var openaiLanguageModelResponsesOptionsSchema = (0, import_provider_utils28.lazy
|
|
|
4529
4726
|
* Sets a cache key to tie this prompt to cached prefixes for better caching performance.
|
|
4530
4727
|
*/
|
|
4531
4728
|
promptCacheKey: import_v423.z.string().nullish(),
|
|
4729
|
+
/**
|
|
4730
|
+
* Prompt cache behavior for GPT-5.6 and later models.
|
|
4731
|
+
* `mode` controls whether OpenAI also places an implicit breakpoint.
|
|
4732
|
+
* `ttl` sets the minimum cache lifetime and currently only supports 30 minutes.
|
|
4733
|
+
*/
|
|
4734
|
+
promptCacheOptions: import_v423.z.object({
|
|
4735
|
+
mode: import_v423.z.enum(["implicit", "explicit"]).optional(),
|
|
4736
|
+
ttl: import_v423.z.literal("30m").optional()
|
|
4737
|
+
}).optional(),
|
|
4532
4738
|
/**
|
|
4533
4739
|
* The retention policy for the prompt cache.
|
|
4534
4740
|
* - 'in_memory': Default. Standard prompt caching behavior.
|
|
4535
4741
|
* - '24h': Extended prompt caching that keeps cached prefixes active for up to 24 hours.
|
|
4536
|
-
*
|
|
4742
|
+
* Available for models before GPT-5.6 that support extended caching.
|
|
4743
|
+
*
|
|
4744
|
+
* @deprecated For GPT-5.6 and later models, use `promptCacheOptions.ttl`.
|
|
4537
4745
|
*
|
|
4538
4746
|
* @default 'in_memory'
|
|
4539
4747
|
*/
|
|
@@ -4541,14 +4749,21 @@ var openaiLanguageModelResponsesOptionsSchema = (0, import_provider_utils28.lazy
|
|
|
4541
4749
|
/**
|
|
4542
4750
|
* Reasoning effort for reasoning models. Defaults to `medium`. If you use
|
|
4543
4751
|
* `providerOptions` to set the `reasoningEffort` option, this model setting will be ignored.
|
|
4544
|
-
*
|
|
4545
|
-
*
|
|
4546
|
-
* The 'none' type for `reasoningEffort` is only available for OpenAI's GPT-5.1
|
|
4547
|
-
* models. Also, the 'xhigh' type for `reasoningEffort` is only available for
|
|
4548
|
-
* OpenAI's GPT-5.1-Codex-Max model. Setting `reasoningEffort` to 'none' or 'xhigh' with unsupported models will result in
|
|
4549
|
-
* an error.
|
|
4752
|
+
* GPT-5.6 supports 'none' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'.
|
|
4753
|
+
* Supported values vary by model.
|
|
4550
4754
|
*/
|
|
4551
4755
|
reasoningEffort: import_v423.z.string().nullish(),
|
|
4756
|
+
/**
|
|
4757
|
+
* Controls how much model work GPT-5.6 performs before returning a final answer.
|
|
4758
|
+
* `standard` is the default. `pro` increases quality, latency, and token usage.
|
|
4759
|
+
*/
|
|
4760
|
+
reasoningMode: import_v423.z.enum(["standard", "pro"]).optional(),
|
|
4761
|
+
/**
|
|
4762
|
+
* Controls which available reasoning items GPT-5.6 can use.
|
|
4763
|
+
* `auto` uses the model default, `current_turn` excludes reasoning from earlier
|
|
4764
|
+
* turns, and `all_turns` makes compatible earlier reasoning available.
|
|
4765
|
+
*/
|
|
4766
|
+
reasoningContext: import_v423.z.enum(["auto", "current_turn", "all_turns"]).optional(),
|
|
4552
4767
|
/**
|
|
4553
4768
|
* Controls reasoning summary output from the model.
|
|
4554
4769
|
* Set to "auto" to automatically receive the richest level available,
|
|
@@ -5150,18 +5365,25 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
5150
5365
|
service_tier: openaiOptions == null ? void 0 : openaiOptions.serviceTier,
|
|
5151
5366
|
include,
|
|
5152
5367
|
prompt_cache_key: openaiOptions == null ? void 0 : openaiOptions.promptCacheKey,
|
|
5368
|
+
prompt_cache_options: openaiOptions == null ? void 0 : openaiOptions.promptCacheOptions,
|
|
5153
5369
|
prompt_cache_retention: openaiOptions == null ? void 0 : openaiOptions.promptCacheRetention,
|
|
5154
5370
|
safety_identifier: openaiOptions == null ? void 0 : openaiOptions.safetyIdentifier,
|
|
5155
5371
|
top_logprobs: topLogprobs,
|
|
5156
5372
|
truncation: openaiOptions == null ? void 0 : openaiOptions.truncation,
|
|
5157
5373
|
// model-specific settings:
|
|
5158
|
-
...isReasoningModel && ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null) && {
|
|
5374
|
+
...isReasoningModel && ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningMode) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningContext) != null) && {
|
|
5159
5375
|
reasoning: {
|
|
5160
5376
|
...(openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null && {
|
|
5161
5377
|
effort: openaiOptions.reasoningEffort
|
|
5162
5378
|
},
|
|
5163
5379
|
...(openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null && {
|
|
5164
5380
|
summary: openaiOptions.reasoningSummary
|
|
5381
|
+
},
|
|
5382
|
+
...(openaiOptions == null ? void 0 : openaiOptions.reasoningMode) != null && {
|
|
5383
|
+
mode: openaiOptions.reasoningMode
|
|
5384
|
+
},
|
|
5385
|
+
...(openaiOptions == null ? void 0 : openaiOptions.reasoningContext) != null && {
|
|
5386
|
+
context: openaiOptions.reasoningContext
|
|
5165
5387
|
}
|
|
5166
5388
|
}
|
|
5167
5389
|
}
|
|
@@ -5200,6 +5422,20 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
5200
5422
|
details: "reasoningSummary is not supported for non-reasoning models"
|
|
5201
5423
|
});
|
|
5202
5424
|
}
|
|
5425
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.reasoningMode) != null) {
|
|
5426
|
+
warnings.push({
|
|
5427
|
+
type: "unsupported",
|
|
5428
|
+
feature: "reasoningMode",
|
|
5429
|
+
details: "reasoningMode is not supported for non-reasoning models"
|
|
5430
|
+
});
|
|
5431
|
+
}
|
|
5432
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.reasoningContext) != null) {
|
|
5433
|
+
warnings.push({
|
|
5434
|
+
type: "unsupported",
|
|
5435
|
+
feature: "reasoningContext",
|
|
5436
|
+
details: "reasoningContext is not supported for non-reasoning models"
|
|
5437
|
+
});
|
|
5438
|
+
}
|
|
5203
5439
|
}
|
|
5204
5440
|
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !modelCapabilities.supportsFlexProcessing) {
|
|
5205
5441
|
warnings.push({
|
|
@@ -5236,7 +5472,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
5236
5472
|
};
|
|
5237
5473
|
}
|
|
5238
5474
|
async doGenerate(options) {
|
|
5239
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;
|
|
5475
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C;
|
|
5240
5476
|
const {
|
|
5241
5477
|
args: body,
|
|
5242
5478
|
warnings,
|
|
@@ -5685,7 +5921,8 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
5685
5921
|
[providerOptionsName]: {
|
|
5686
5922
|
responseId: response.id,
|
|
5687
5923
|
...logprobs.length > 0 ? { logprobs } : {},
|
|
5688
|
-
...typeof response.service_tier === "string" ? { serviceTier: response.service_tier } : {}
|
|
5924
|
+
...typeof response.service_tier === "string" ? { serviceTier: response.service_tier } : {},
|
|
5925
|
+
...((_z = response.reasoning) == null ? void 0 : _z.context) != null ? { reasoningContext: response.reasoning.context } : {}
|
|
5689
5926
|
}
|
|
5690
5927
|
};
|
|
5691
5928
|
const usage = response.usage;
|
|
@@ -5693,10 +5930,10 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
5693
5930
|
content,
|
|
5694
5931
|
finishReason: {
|
|
5695
5932
|
unified: mapOpenAIResponseFinishReason({
|
|
5696
|
-
finishReason: (
|
|
5933
|
+
finishReason: (_A = response.incomplete_details) == null ? void 0 : _A.reason,
|
|
5697
5934
|
hasFunctionCall
|
|
5698
5935
|
}),
|
|
5699
|
-
raw: (
|
|
5936
|
+
raw: (_C = (_B = response.incomplete_details) == null ? void 0 : _B.reason) != null ? _C : void 0
|
|
5700
5937
|
},
|
|
5701
5938
|
usage: convertOpenAIResponsesUsage(usage),
|
|
5702
5939
|
request: { body },
|
|
@@ -5763,6 +6000,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
5763
6000
|
let hasFunctionCall = false;
|
|
5764
6001
|
const activeReasoning = {};
|
|
5765
6002
|
let serviceTier;
|
|
6003
|
+
let reasoningContext;
|
|
5766
6004
|
const hostedToolSearchCallIds = [];
|
|
5767
6005
|
let encounteredStreamError = false;
|
|
5768
6006
|
const result = {
|
|
@@ -5772,7 +6010,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
5772
6010
|
controller.enqueue({ type: "stream-start", warnings });
|
|
5773
6011
|
},
|
|
5774
6012
|
transform(chunk, controller) {
|
|
5775
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L;
|
|
6013
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N;
|
|
5776
6014
|
if (options.includeRawChunks) {
|
|
5777
6015
|
controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
|
|
5778
6016
|
}
|
|
@@ -6514,8 +6752,11 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
6514
6752
|
if (typeof value.response.service_tier === "string") {
|
|
6515
6753
|
serviceTier = value.response.service_tier;
|
|
6516
6754
|
}
|
|
6755
|
+
if (((_y = value.response.reasoning) == null ? void 0 : _y.context) != null) {
|
|
6756
|
+
reasoningContext = value.response.reasoning.context;
|
|
6757
|
+
}
|
|
6517
6758
|
} else if (isResponseFailedChunk(value)) {
|
|
6518
|
-
const incompleteReason = (
|
|
6759
|
+
const incompleteReason = (_z = value.response.incomplete_details) == null ? void 0 : _z.reason;
|
|
6519
6760
|
finishReason = {
|
|
6520
6761
|
unified: incompleteReason ? mapOpenAIResponseFinishReason({
|
|
6521
6762
|
finishReason: incompleteReason,
|
|
@@ -6523,7 +6764,10 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
6523
6764
|
}) : "error",
|
|
6524
6765
|
raw: incompleteReason != null ? incompleteReason : "error"
|
|
6525
6766
|
};
|
|
6526
|
-
usage = (
|
|
6767
|
+
usage = (_A = value.response.usage) != null ? _A : void 0;
|
|
6768
|
+
if (((_B = value.response.reasoning) == null ? void 0 : _B.context) != null) {
|
|
6769
|
+
reasoningContext = value.response.reasoning.context;
|
|
6770
|
+
}
|
|
6527
6771
|
if (!encounteredStreamError && value.response.error != null) {
|
|
6528
6772
|
encounteredStreamError = true;
|
|
6529
6773
|
controller.enqueue({
|
|
@@ -6545,7 +6789,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
6545
6789
|
controller.enqueue({
|
|
6546
6790
|
type: "source",
|
|
6547
6791
|
sourceType: "url",
|
|
6548
|
-
id: (
|
|
6792
|
+
id: (_E = (_D = (_C = self.config).generateId) == null ? void 0 : _D.call(_C)) != null ? _E : (0, import_provider_utils30.generateId)(),
|
|
6549
6793
|
url: value.annotation.url,
|
|
6550
6794
|
title: value.annotation.title
|
|
6551
6795
|
});
|
|
@@ -6553,7 +6797,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
6553
6797
|
controller.enqueue({
|
|
6554
6798
|
type: "source",
|
|
6555
6799
|
sourceType: "document",
|
|
6556
|
-
id: (
|
|
6800
|
+
id: (_H = (_G = (_F = self.config).generateId) == null ? void 0 : _G.call(_F)) != null ? _H : (0, import_provider_utils30.generateId)(),
|
|
6557
6801
|
mediaType: "text/plain",
|
|
6558
6802
|
title: value.annotation.filename,
|
|
6559
6803
|
filename: value.annotation.filename,
|
|
@@ -6569,7 +6813,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
6569
6813
|
controller.enqueue({
|
|
6570
6814
|
type: "source",
|
|
6571
6815
|
sourceType: "document",
|
|
6572
|
-
id: (
|
|
6816
|
+
id: (_K = (_J = (_I = self.config).generateId) == null ? void 0 : _J.call(_I)) != null ? _K : (0, import_provider_utils30.generateId)(),
|
|
6573
6817
|
mediaType: "text/plain",
|
|
6574
6818
|
title: value.annotation.filename,
|
|
6575
6819
|
filename: value.annotation.filename,
|
|
@@ -6585,7 +6829,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
6585
6829
|
controller.enqueue({
|
|
6586
6830
|
type: "source",
|
|
6587
6831
|
sourceType: "document",
|
|
6588
|
-
id: (
|
|
6832
|
+
id: (_N = (_M = (_L = self.config).generateId) == null ? void 0 : _M.call(_L)) != null ? _N : (0, import_provider_utils30.generateId)(),
|
|
6589
6833
|
mediaType: "application/octet-stream",
|
|
6590
6834
|
title: value.annotation.file_id,
|
|
6591
6835
|
filename: value.annotation.file_id,
|
|
@@ -6609,7 +6853,8 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
6609
6853
|
[providerOptionsName]: {
|
|
6610
6854
|
responseId,
|
|
6611
6855
|
...logprobs.length > 0 ? { logprobs } : {},
|
|
6612
|
-
...serviceTier !== void 0 ? { serviceTier } : {}
|
|
6856
|
+
...serviceTier !== void 0 ? { serviceTier } : {},
|
|
6857
|
+
...reasoningContext !== void 0 ? { reasoningContext } : {}
|
|
6613
6858
|
}
|
|
6614
6859
|
};
|
|
6615
6860
|
controller.enqueue({
|
|
@@ -7085,7 +7330,7 @@ var OpenAITranscriptionModel = class {
|
|
|
7085
7330
|
};
|
|
7086
7331
|
|
|
7087
7332
|
// src/version.ts
|
|
7088
|
-
var VERSION = true ? "3.0.
|
|
7333
|
+
var VERSION = true ? "3.0.84" : "0.0.0-test";
|
|
7089
7334
|
|
|
7090
7335
|
// src/openai-provider.ts
|
|
7091
7336
|
function createOpenAI(options = {}) {
|