@zhivex-ai/openai 0.16.3 → 0.17.0

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/README.md CHANGED
@@ -193,7 +193,9 @@ await generateText({
193
193
 
194
194
  The helper marks the content block immediately before it. Placing it before any cacheable content throws `ConfigurationError`. `prompt_cache_retention` remains available for older model families, but it is a legacy alternative to `prompt_cache_options` and should not be combined with it for GPT-5.6.
195
195
 
196
- For GPT-5.6, cache writes cost 1.25x the uncached input rate and cache reads receive a 90% discount. Normalized usage exposes these as `result.usage.cacheWriteTokens` and `result.usage.cachedInputTokens`; the raw response remains available when provider-specific details are needed. See [OpenAI's pricing and prompt caching notes](https://help.openai.com/en/articles/20001325-a-preview-of-gpt-5-6-sol-terra-and-luna).
196
+ `prompt_cache_options.ttl` accepts `"30m"` or `"12h"` on the Responses API for GPT-5.6 and later. Omitting `ttl` leaves the provider default (`"30m"`) and does not add a lifetime to the request. An explicit breakpoint may carry the same `ttl`; omitting it still sends `{ mode: "explicit" }`. Any other breakpoint `ttl` fails locally. `"12h"` is documented for Responses. Chat Completions ignore `prompt_cache_options.ttl: "12h"` and warn once; the provider default remains 30 minutes. `"30m"` is still sent on Chat Completions. Explicit breakpoint `ttl` values are unchanged.
197
+
198
+ Cache reads stay at the cached input rate. 30-minute writes use the catalog cache-write rate, which is 1.25× the uncached input rate for GPT-5.6. 12-hour writes are 2.5× the uncached input rate. When the response includes `input_tokens_details.cache_write_tokens_details`, normalized usage exposes `cacheWriteTokensDetails.ttl30mTokens` and `ttl12hTokens`, and cost uses those rates. Usage without that split stays on the single catalog write rate. See [OpenAI prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching).
197
199
 
198
200
  ## Programmatic Tool Calling
199
201
 
@@ -362,7 +364,7 @@ Repository and full documentation:
362
364
 
363
365
  ## GPT-6 Astra
364
366
 
365
- `openai("gpt-6-astra")` uses Responses by default, including callable tools and native structured output. The existing Computer Use, Tool Search, shell/apply-patch, Programmatic Tool Calling, multi-agent, persisted reasoning, and prompt-cache mappings also recognize Astra and dated Astra snapshots. Reasoning accepts `low`, `medium`, `high`, `xhigh`, and `max`; `none` and `minimal` are rejected. Explicit Chat mode remains available for text but rejects tool calling. Unsupported sampling and logprob controls fail locally.
367
+ `openai("gpt-6-astra")` uses Responses by default, including callable tools and native structured output. The existing Computer Use, Tool Search, shell/apply-patch, Programmatic Tool Calling, multi-agent, persisted reasoning, and prompt-cache mappings also recognize Astra and dated Astra snapshots. Reasoning accepts `low`, `medium`, `high`, `xhigh`, and `max`; `none` and `minimal` are rejected. Explicit Chat mode remains available for text but rejects tool calling. `temperature`, `providerOptions.top_p`, and shared `topP` fail locally in both Chat and Responses. Shared `seed` and `stopSequences` warn and are omitted in both modes. `providerOptions.seed` and `providerOptions.stop` are still forwarded.
366
368
 
367
369
  See [OpenAI's current model guide](https://developers.openai.com/api/docs/guides/latest-model). Async tool execution and mid-turn steering are separate upstream protocols and are not exposed by this HTTP adapter.
368
370
 
package/dist/index.d.ts CHANGED
@@ -1,10 +1,16 @@
1
1
  export { openAIComputerTool, OpenAIComputerExecutionError } from "./computer.js";
2
2
  export type { OpenAIComputerExecutionContext, OpenAIComputerAction, OpenAIComputerSafetyCheck, OpenAIComputerCallInput, OpenAIComputerScreenshotOutput, OpenAIComputerToolConfig } from "./computer.js";
3
- export { openAIRealtimeMcpMetadataKey } from "./realtime.js";
3
+ import { OpenAIRealtimeModel } from "./realtime.js";
4
+ export { OpenAIRealtimeModel, openAIRealtimeMcpMetadataKey } from "./realtime.js";
5
+ import { OpenAISpeechModel } from "./resource-models.js";
6
+ export { OpenAISpeechModel } from "./resource-models.js";
7
+ export type { OpenAICustomVoice, OpenAIRealtimeSession, OpenAIRealtimeSessionConfig, OpenAIRealtimeSessionFor, OpenAIVoice } from "./voice.js";
4
8
  import { OpenAIAgentsClient } from "./agents.js";
5
9
  export { OpenAIAgentsClient } from "./agents.js";
6
10
  export type { OpenAIAgentSessionInput, OpenAIAgentSession, OpenAIAgentEvent, OpenAIAgentsPage, OpenAIAgentsRequestOptions } from "./agents.js";
7
11
  import { z } from "zod";
12
+ import { OpenAILiveModel } from "./live.js";
13
+ export { OpenAILiveModel } from "./live.js";
8
14
  import { type AudioResponseLimits, type CallableProviderAdapter, type JsonValue, type LanguageModel, type ModelCapabilities, type RealtimeConnectionFactory, type ToolDefinition, type ToolExecutionResult } from "@zhivex-ai/core/provider";
9
15
  export declare const OPENAI_RESPONSES_TOOL_CALL_ERROR_CODE: "OPENAI_RESPONSES_TOOL_CALL_INVALID";
10
16
  export interface OpenAIResponseLimits extends AudioResponseLimits {
@@ -204,9 +210,17 @@ export interface OpenAIProgrammaticToolOptions {
204
210
  allowedCallers?: OpenAIProgrammaticToolCaller[];
205
211
  outputSchema?: z.ZodTypeAny;
206
212
  }
213
+ /**
214
+ * Responses `prompt_cache_options.ttl`.
215
+ * `"30m"` is the provider default. `"12h"` is the 12-hour minimum for GPT-5.6 and later on Responses.
216
+ * Chat Completions ignore `"12h"` and leave the provider default in place.
217
+ * Omitting `ttl` does not send a lifetime and leaves that default in place.
218
+ * @see https://developers.openai.com/api/docs/guides/prompt-caching
219
+ */
220
+ export type OpenAIPromptCacheTtl = "30m" | "12h";
207
221
  export interface OpenAIPromptCacheOptions {
208
222
  mode?: "implicit" | "explicit";
209
- ttl?: "30m";
223
+ ttl?: OpenAIPromptCacheTtl;
210
224
  }
211
225
  export interface OpenAIMultiAgentOptions {
212
226
  enabled: boolean;
@@ -269,6 +283,8 @@ export interface OpenAIRealtimeMcpApprovalResultOptions {
269
283
  export interface OpenAIPromptCacheBreakpointData {
270
284
  type: "prompt_cache_breakpoint";
271
285
  mode: "explicit";
286
+ /** Overrides the request `prompt_cache_options.ttl` for this explicit breakpoint. */
287
+ ttl?: OpenAIPromptCacheTtl;
272
288
  }
273
289
  export interface OpenAIResponsesOutputData {
274
290
  type: "responses_output";
@@ -317,11 +333,14 @@ export interface OpenAILanguageModelOptions {
317
333
  };
318
334
  [key: string]: unknown;
319
335
  }
320
- export declare const createOpenAI: (options?: OpenAIProviderOptions) => CallableProviderAdapter<LanguageModel<OpenAILanguageModelOptions>> & {
336
+ export interface OpenAIProvider extends CallableProviderAdapter<LanguageModel<OpenAILanguageModelOptions>> {
321
337
  rawFetch: typeof globalThis.fetch;
322
338
  agents: OpenAIAgentsClient;
323
339
  experimentalDecisionModel(modelId?: string): import("@zhivex-ai/core").DecisionModel;
324
- };
340
+ speechModel(modelId: string): OpenAISpeechModel;
341
+ realtimeModel(modelId: string): OpenAIRealtimeModel | OpenAILiveModel;
342
+ }
343
+ export declare const createOpenAI: (options?: OpenAIProviderOptions) => OpenAIProvider;
325
344
  export declare const openAIWebSearchTool: (config?: OpenAIWebSearchToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
326
345
  export declare const openAIFileSearchTool: (config?: OpenAIFileSearchToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
327
346
  export declare const openAICodeInterpreterTool: (config: OpenAICodeInterpreterToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
@@ -331,7 +350,9 @@ export declare const openAIProgrammaticTool: <TSchema extends z.ZodTypeAny, TRes
331
350
  export declare const openAIRemoteMcpTool: (config: OpenAIRemoteMcpToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
332
351
  export declare const openAIMcpApprovalResponse: (response: Omit<OpenAIMcpApprovalResponse, "type">) => import("@zhivex-ai/core").ContentPart;
333
352
  export declare const openAIRealtimeMcpApprovalResult: (response: OpenAIRealtimeMcpApprovalResultOptions) => ToolExecutionResult;
334
- export declare const openAIPromptCacheBreakpoint: () => import("@zhivex-ai/core").ContentPart;
353
+ export declare const openAIPromptCacheBreakpoint: (breakpoint?: {
354
+ ttl?: OpenAIPromptCacheTtl;
355
+ }) => import("@zhivex-ai/core").ContentPart;
335
356
  export declare const openAIComputerUseTool: (config: OpenAIComputerUseToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
336
357
  export declare const openAIHostedShellTool: (config: OpenAIHostedShellToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
337
358
  export declare const openAIShellTool: (config?: OpenAIShellToolConfig) => ToolDefinition<z.ZodType<OpenAIShellToolInput>, JsonValue>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,15 +4,87 @@ import { computerInputSchema, computerScreenshotSchema } from "./computer.js";
4
4
  export { openAIComputerTool, OpenAIComputerExecutionError } from "./computer.js";
5
5
  import { jsonHeaders, parseJson, RESERVED_REQUEST_HEADERS } from "./http.js";
6
6
  import { OpenAIRealtimeModel, openAIRealtimeMcpMetadataKey, resolveOpenAIRealtimeHeaders } from "./realtime.js";
7
- export { openAIRealtimeMcpMetadataKey } from "./realtime.js";
7
+ export { OpenAIRealtimeModel, openAIRealtimeMcpMetadataKey } from "./realtime.js";
8
8
  import { OpenAIEmbeddingModel, OpenAITranscriptionModel, OpenAISpeechModel, toUint8Array } from "./resource-models.js";
9
+ export { OpenAISpeechModel } from "./resource-models.js";
9
10
  import { OpenAIAgentsClient } from "./agents.js";
10
11
  export { OpenAIAgentsClient } from "./agents.js";
11
12
  import { toJSONSchema, z } from "zod";
12
13
  import { OpenAILiveModel, isOpenAILiveModel } from "./live.js";
14
+ export { OpenAILiveModel } from "./live.js";
13
15
  import { createOpenAIImageGenerationModel, normalizeOpenAIImageGenerationCall, normalizeOpenAIImageGenerationPartialImage } from "./image-generation.js";
14
16
  import { groundedCapabilities, supportsOpenAIModernResponses, assertOpenAIModelRequestSupported, resolveOpenAIModelProfile, modelCapabilities } from "./capabilities.js";
15
- import { imageInputToDataUrl, ConfigurationError, ProviderHTTPError, ProviderResponseTooLargeError, ProviderToolCallError, assertTrustedEndpoint, resolveAudioResponseLimits, openWebSocketConnection, hostedTool, providerDataPart, UnsupportedFeatureError, createProviderAdapter, isCallableToolDefinition, isHostedToolDefinition, normalizeFinishReason, streamSSE, streamChatCompletions, toolResultPayload, withRetry, withResponseRetry, withTimeoutSignal } from "@zhivex-ai/core/provider";
17
+ import { imageInputToDataUrl, ConfigurationError, ProviderHTTPError, ProviderResponseTooLargeError, ProviderToolCallError, ValidationError, assertTrustedEndpoint, resolveAudioResponseLimits, openWebSocketConnection, hostedTool, providerDataPart, UnsupportedFeatureError, createProviderAdapter, isCallableToolDefinition, isHostedToolDefinition, normalizeFinishReason, streamSSE, streamChatCompletions, toolResultPayload, withRetry, withResponseRetry, withTimeoutSignal } from "@zhivex-ai/core/provider";
18
+ const TOOL_INPUT_JSON_SCHEMA = Symbol.for("@zhivex-ai/core/json-schema");
19
+ /** Zod inputs stay on toJSONSchema so this package still loads against the oldest core in its peer range. */
20
+ const toolInputSchema = (schema) => {
21
+ if (schema !== null && typeof schema === "object" && schema[TOOL_INPUT_JSON_SCHEMA] === true) {
22
+ return { ...schema.jsonSchema };
23
+ }
24
+ return toJSONSchema(schema);
25
+ };
26
+ const openAISamplingWarnings = new Set();
27
+ const warnOpenAISampling = (option, detail) => {
28
+ const key = `openai:${option}:${detail}`;
29
+ if (openAISamplingWarnings.has(key))
30
+ return;
31
+ openAISamplingWarnings.add(key);
32
+ console.warn(`Provider "openai" does not support ${option}. ${detail} The option was ignored.`);
33
+ };
34
+ const openAIChatCacheTtlWarnings = new Set();
35
+ const warnOpenAIChatPromptCacheTtl = () => {
36
+ const key = 'openai:prompt_cache_options.ttl:12h:chat';
37
+ if (openAIChatCacheTtlWarnings.has(key))
38
+ return;
39
+ openAIChatCacheTtlWarnings.add(key);
40
+ console.warn('Provider "openai" does not support prompt_cache_options.ttl "12h" on Chat Completions. The option was ignored.');
41
+ };
42
+ /** Chat Completions support for a 12-hour cache TTL is unconfirmed, so that value is ignored. */
43
+ const openAIChatBodyOptions = (options) => {
44
+ const cache = options.prompt_cache_options;
45
+ if (cache?.ttl !== "12h")
46
+ return options;
47
+ warnOpenAIChatPromptCacheTtl();
48
+ const rest = { ...cache };
49
+ delete rest.ttl;
50
+ const next = { ...options };
51
+ if (Object.keys(rest).length === 0)
52
+ delete next.prompt_cache_options;
53
+ else
54
+ next.prompt_cache_options = rest;
55
+ return next;
56
+ };
57
+ /** Model profiles that already reject sampling. `topP` still throws in assertOpenAIModelRequestSupported. */
58
+ const openAISamplingRejected = (modelId, input, bodyOptions) => {
59
+ const profile = resolveOpenAIModelProfile(modelId);
60
+ if (profile.sampling === "allowed")
61
+ return null;
62
+ const effort = input.reasoning?.effort ?? bodyOptions.reasoning?.effort ?? bodyOptions.reasoning_effort;
63
+ return profile.sampling === "unsupported" || effort !== "none" ? profile.label : null;
64
+ };
65
+ const openAIChatSampling = (modelId, input, bodyOptions) => {
66
+ const rejected = openAISamplingRejected(modelId, input, bodyOptions);
67
+ if (rejected) {
68
+ if (input.seed !== undefined)
69
+ warnOpenAISampling("seed", `${rejected} does not support seed.`);
70
+ if (input.stopSequences !== undefined) {
71
+ warnOpenAISampling("stopSequences", `${rejected} does not support stop sequences.`);
72
+ }
73
+ }
74
+ return {
75
+ ...(input.topP !== undefined ? { top_p: input.topP } : {}),
76
+ ...(!rejected && input.seed !== undefined ? { seed: input.seed } : {}),
77
+ ...(!rejected && input.stopSequences !== undefined ? { stop: [...input.stopSequences] } : {})
78
+ };
79
+ };
80
+ const openAIResponsesSampling = (input) => {
81
+ if (input.seed !== undefined)
82
+ warnOpenAISampling("seed", "The Responses API does not accept seed.");
83
+ if (input.stopSequences !== undefined) {
84
+ warnOpenAISampling("stopSequences", "The Responses API does not accept stop sequences.");
85
+ }
86
+ return input.topP !== undefined ? { top_p: input.topP } : {};
87
+ };
16
88
  const MIB = 1024 * 1024;
17
89
  const DEFAULT_HOSTED_IMAGE_EVENT_BYTES = 32 * MIB;
18
90
  const DEFAULT_HOSTED_IMAGE_TOTAL_BYTES = 128 * MIB;
@@ -182,6 +254,14 @@ const isOpenAIPromptCacheBreakpointPart = (part) => part.type === "provider-data
182
254
  part.data !== null &&
183
255
  typeof part.data === "object" &&
184
256
  part.data.type === "prompt_cache_breakpoint";
257
+ const explicitPromptCacheBreakpoint = (breakpoint) => {
258
+ const record = breakpoint;
259
+ const ttl = record.ttl;
260
+ if (ttl !== undefined && ttl !== "30m" && ttl !== "12h") {
261
+ throw new ValidationError('OpenAI prompt cache breakpoint ttl must be "30m" or "12h".');
262
+ }
263
+ return ttl === "30m" || ttl === "12h" ? { mode: "explicit", ttl } : { mode: "explicit" };
264
+ };
185
265
  const promptCacheBreakpointForContentPart = (part) => {
186
266
  const metadata = part
187
267
  .providerMetadata;
@@ -190,7 +270,7 @@ const promptCacheBreakpointForContentPart = (part) => {
190
270
  : metadata;
191
271
  const breakpoint = openAIMetadata?.prompt_cache_breakpoint;
192
272
  return breakpoint && typeof breakpoint === "object" && !Array.isArray(breakpoint)
193
- ? { prompt_cache_breakpoint: { mode: "explicit" } }
273
+ ? { prompt_cache_breakpoint: explicitPromptCacheBreakpoint(breakpoint) }
194
274
  : {};
195
275
  };
196
276
  const imageDetailForPart = (part) => {
@@ -201,12 +281,12 @@ const imageDetailForPart = (part) => {
201
281
  : undefined);
202
282
  return detail === "auto" || detail === "low" || detail === "high" || detail === "original" ? detail : undefined;
203
283
  };
204
- const markLastContentBlockForPromptCaching = (content) => {
284
+ const markLastContentBlockForPromptCaching = (content, breakpoint) => {
205
285
  const last = content.at(-1);
206
286
  if (!last) {
207
287
  throw new ConfigurationError("OpenAI prompt cache breakpoints must follow a cacheable content part.");
208
288
  }
209
- last.prompt_cache_breakpoint = { mode: "explicit" };
289
+ last.prompt_cache_breakpoint = explicitPromptCacheBreakpoint(breakpoint);
210
290
  };
211
291
  const mapContentParts = (message) => {
212
292
  const hasRichContent = message.parts.some((part) => part.type === "image" ||
@@ -251,7 +331,7 @@ const mapContentParts = (message) => {
251
331
  });
252
332
  }
253
333
  else if (isOpenAIPromptCacheBreakpointPart(part)) {
254
- markLastContentBlockForPromptCaching(content);
334
+ markLastContentBlockForPromptCaching(content, part.data);
255
335
  }
256
336
  }
257
337
  return content;
@@ -358,7 +438,7 @@ const mapTools = (input) => input
358
438
  function: {
359
439
  name: tool.name,
360
440
  description: tool.description,
361
- parameters: toJSONSchema(tool.schema)
441
+ parameters: toolInputSchema(tool.schema)
362
442
  }
363
443
  };
364
444
  }
@@ -385,7 +465,7 @@ const mapResponsesTools = (input) => input
385
465
  type: "function",
386
466
  name: tool.name,
387
467
  description: tool.description,
388
- parameters: toJSONSchema(tool.schema),
468
+ parameters: toolInputSchema(tool.schema),
389
469
  ...openAIResponsesFunctionConfig(tool)
390
470
  };
391
471
  }
@@ -798,7 +878,7 @@ const toResponsesInput = (messages, format, history = messages) => {
798
878
  break;
799
879
  case "provider-data":
800
880
  if (isOpenAIPromptCacheBreakpointPart(part)) {
801
- markLastContentBlockForPromptCaching(content);
881
+ markLastContentBlockForPromptCaching(content, part.data);
802
882
  }
803
883
  break;
804
884
  }
@@ -966,36 +1046,90 @@ const attachTerminalUsage = (error, raw) => new ProviderToolCallError({
966
1046
  cause: error.cause,
967
1047
  usage: mapResponsesUsage(raw)
968
1048
  });
969
- const mapResponsesUsage = (usage) => usage
970
- ? {
1049
+ const mapOpenAICacheWriteTokensDetails = (details) => {
1050
+ if (!details || typeof details !== "object" || Array.isArray(details))
1051
+ return undefined;
1052
+ const record = details;
1053
+ const read = (key) => typeof record[key] === "number" ? record[key] : undefined;
1054
+ const ttl30mTokens = read("ttl_30m_tokens");
1055
+ const ttl12hTokens = read("ttl_12h_tokens");
1056
+ if (ttl30mTokens === undefined && ttl12hTokens === undefined)
1057
+ return undefined;
1058
+ return {
1059
+ ...(ttl30mTokens !== undefined ? { ttl30mTokens } : {}),
1060
+ ...(ttl12hTokens !== undefined ? { ttl12hTokens } : {})
1061
+ };
1062
+ };
1063
+ const mapResponsesUsage = (usage) => {
1064
+ if (!usage)
1065
+ return undefined;
1066
+ const cacheWriteTokensDetails = mapOpenAICacheWriteTokensDetails(usage.input_tokens_details?.cache_write_tokens_details);
1067
+ return {
971
1068
  inputTokens: usage.input_tokens,
972
1069
  cachedInputTokens: usage.input_tokens_details?.cached_tokens,
973
1070
  cacheWriteTokens: usage.input_tokens_details?.cache_write_tokens,
1071
+ ...(cacheWriteTokensDetails ? { cacheWriteTokensDetails } : {}),
974
1072
  outputTokens: usage.output_tokens,
975
1073
  reasoningTokens: usage.output_tokens_details?.reasoning_tokens,
976
1074
  totalTokens: usage.total_tokens
977
- }
978
- : undefined;
979
- const mapChatUsage = (usage) => usage
980
- ? {
1075
+ };
1076
+ };
1077
+ const mapChatUsage = (usage) => {
1078
+ if (!usage)
1079
+ return undefined;
1080
+ const cacheWriteTokensDetails = mapOpenAICacheWriteTokensDetails(usage.prompt_tokens_details?.cache_write_tokens_details);
1081
+ return {
981
1082
  inputTokens: usage.prompt_tokens,
982
1083
  cachedInputTokens: usage.prompt_tokens_details?.cached_tokens,
983
1084
  cacheWriteTokens: usage.prompt_tokens_details?.cache_write_tokens,
1085
+ ...(cacheWriteTokensDetails ? { cacheWriteTokensDetails } : {}),
984
1086
  outputTokens: usage.completion_tokens,
985
1087
  reasoningTokens: usage.completion_tokens_details?.reasoning_tokens,
986
1088
  totalTokens: usage.total_tokens
987
- }
988
- : undefined;
1089
+ };
1090
+ };
1091
+ const openAIUsageCounters = (usage) => [
1092
+ usage.inputTokens,
1093
+ usage.outputTokens,
1094
+ usage.totalTokens,
1095
+ usage.cachedInputTokens,
1096
+ usage.cacheWriteTokens,
1097
+ usage.reasoningTokens,
1098
+ usage.cacheWriteTokensDetails?.ttl30mTokens,
1099
+ usage.cacheWriteTokensDetails?.ttl12hTokens
1100
+ ];
1101
+ const openAIUsageCounterInvalid = (usage) => openAIUsageCounters(usage ?? {}).some((value) => value !== undefined && (!Number.isSafeInteger(value) || value < 0));
989
1102
  const addTokenUsage = (left, right) => {
990
1103
  if (!left)
991
1104
  return right;
992
1105
  if (!right)
993
1106
  return left;
994
1107
  const sum = (a, b) => a === undefined || b === undefined ? undefined : a + b;
1108
+ const consistentDetails = (writes, details) => {
1109
+ if (!details)
1110
+ return (writes ?? 0) === 0;
1111
+ return writes !== undefined && (details.ttl30mTokens ?? 0) + (details.ttl12hTokens ?? 0) === writes;
1112
+ };
1113
+ const cacheWriteTokensDetails = consistentDetails(left.cacheWriteTokens, left.cacheWriteTokensDetails) &&
1114
+ consistentDetails(right.cacheWriteTokens, right.cacheWriteTokensDetails) &&
1115
+ (left.cacheWriteTokensDetails || right.cacheWriteTokensDetails)
1116
+ ? {
1117
+ ...(left.cacheWriteTokensDetails?.ttl30mTokens !== undefined || right.cacheWriteTokensDetails?.ttl30mTokens !== undefined
1118
+ ? { ttl30mTokens: (left.cacheWriteTokensDetails?.ttl30mTokens ?? 0) + (right.cacheWriteTokensDetails?.ttl30mTokens ?? 0) }
1119
+ : {}),
1120
+ ...(left.cacheWriteTokensDetails?.ttl12hTokens !== undefined || right.cacheWriteTokensDetails?.ttl12hTokens !== undefined
1121
+ ? { ttl12hTokens: (left.cacheWriteTokensDetails?.ttl12hTokens ?? 0) + (right.cacheWriteTokensDetails?.ttl12hTokens ?? 0) }
1122
+ : {})
1123
+ }
1124
+ : undefined;
995
1125
  return {
996
1126
  inputTokens: sum(left.inputTokens, right.inputTokens),
997
1127
  cachedInputTokens: sum(left.cachedInputTokens, right.cachedInputTokens),
998
1128
  cacheWriteTokens: sum(left.cacheWriteTokens, right.cacheWriteTokens),
1129
+ ...(cacheWriteTokensDetails &&
1130
+ (cacheWriteTokensDetails.ttl30mTokens !== undefined || cacheWriteTokensDetails.ttl12hTokens !== undefined)
1131
+ ? { cacheWriteTokensDetails }
1132
+ : {}),
999
1133
  outputTokens: sum(left.outputTokens, right.outputTokens),
1000
1134
  reasoningTokens: sum(left.reasoningTokens, right.reasoningTokens),
1001
1135
  totalTokens: sum(left.totalTokens, right.totalTokens)
@@ -1569,17 +1703,18 @@ class OpenAILanguageModel {
1569
1703
  ...(input.toolChoice ? { tool_choice: mapResponsesToolChoice(input.toolChoice) } : {}),
1570
1704
  text: mapResponsesStructuredOutput(input) ?? responseBodyOptions.text,
1571
1705
  temperature: input.temperature,
1706
+ ...openAIResponsesSampling(input),
1572
1707
  max_output_tokens: ptc ? remainingOutputTokens : input.maxTokens,
1573
1708
  ...mapResponsesReasoning(input, responseBodyOptions.reasoning)
1574
1709
  })
1575
1710
  }), { ...input, abortSignal: signal, ...(ptc ? { maxRetries: 0 } : {}) }, "OpenAI");
1576
1711
  const json = await parseJson(response);
1577
1712
  const reportedUsage = mapResponsesUsage(json.usage);
1578
- if (ptc && (!reportedUsage || ![reportedUsage.inputTokens, reportedUsage.outputTokens, reportedUsage.totalTokens].every(value => typeof value === "number" && Number.isSafeInteger(value) && value >= 0) || reportedUsage.totalTokens < reportedUsage.inputTokens + reportedUsage.outputTokens || Object.values(reportedUsage).some(value => value !== undefined && (!Number.isSafeInteger(value) || value < 0)))) {
1713
+ if (ptc && (!reportedUsage || ![reportedUsage.inputTokens, reportedUsage.outputTokens, reportedUsage.totalTokens].every(value => typeof value === "number" && Number.isSafeInteger(value) && value >= 0) || reportedUsage.totalTokens < reportedUsage.inputTokens + reportedUsage.outputTokens || openAIUsageCounterInvalid(reportedUsage))) {
1579
1714
  throw failure("OPENAI_PTC_USAGE_UNKNOWN");
1580
1715
  }
1581
1716
  const nextUsage = addTokenUsage(accumulatedUsage, reportedUsage);
1582
- if (ptc && Object.values(nextUsage ?? {}).some(value => value !== undefined && !Number.isSafeInteger(value)))
1717
+ if (ptc && openAIUsageCounterInvalid(nextUsage))
1583
1718
  throw failure("OPENAI_PTC_USAGE_UNKNOWN");
1584
1719
  accumulatedUsage = nextUsage;
1585
1720
  if (ptc)
@@ -1658,13 +1793,14 @@ class OpenAILanguageModel {
1658
1793
  headers: options.headers,
1659
1794
  signal,
1660
1795
  body: JSON.stringify({
1661
- ...options.bodyOptions,
1796
+ ...openAIChatBodyOptions(options.bodyOptions),
1662
1797
  model: this.modelId,
1663
1798
  messages: mapMessages(input.messages, input.toolResultFormat),
1664
1799
  tools: mapTools(input.tools),
1665
1800
  ...(input.toolChoice ? { tool_choice: mapToolChoice(input.toolChoice) } : {}),
1666
1801
  response_format: mapStructuredOutput(input) ?? options.bodyOptions.response_format,
1667
1802
  temperature: input.temperature,
1803
+ ...openAIChatSampling(this.modelId, input, options.bodyOptions),
1668
1804
  ...(input.reasoning ? {} : { max_tokens: input.maxTokens }),
1669
1805
  ...mapChatReasoning(input),
1670
1806
  stream: false
@@ -1722,6 +1858,7 @@ class OpenAILanguageModel {
1722
1858
  ...(input.toolChoice ? { tool_choice: mapResponsesToolChoice(input.toolChoice) } : {}),
1723
1859
  text: mapResponsesStructuredOutput(input) ?? responseBodyOptions.text,
1724
1860
  temperature: input.temperature,
1861
+ ...openAIResponsesSampling(input),
1725
1862
  max_output_tokens: input.maxTokens,
1726
1863
  ...mapResponsesReasoning(input, responseBodyOptions.reasoning),
1727
1864
  stream: true
@@ -1744,13 +1881,14 @@ class OpenAILanguageModel {
1744
1881
  headers: options.headers,
1745
1882
  signal,
1746
1883
  body: JSON.stringify({
1747
- ...options.bodyOptions,
1884
+ ...openAIChatBodyOptions(options.bodyOptions),
1748
1885
  model: this.modelId,
1749
1886
  messages: mapMessages(input.messages, input.toolResultFormat),
1750
1887
  tools: mapTools(input.tools),
1751
1888
  ...(input.toolChoice ? { tool_choice: mapToolChoice(input.toolChoice) } : {}),
1752
1889
  response_format: mapStructuredOutput(input) ?? options.bodyOptions.response_format,
1753
1890
  temperature: input.temperature,
1891
+ ...openAIChatSampling(this.modelId, input, options.bodyOptions),
1754
1892
  ...(input.reasoning ? {} : { max_tokens: input.maxTokens }),
1755
1893
  ...mapChatReasoning(input),
1756
1894
  stream: true,
@@ -1949,9 +2087,10 @@ export const openAIRealtimeMcpApprovalResult = (response) => ({
1949
2087
  }
1950
2088
  }
1951
2089
  });
1952
- export const openAIPromptCacheBreakpoint = () => providerDataPart("openai", {
2090
+ export const openAIPromptCacheBreakpoint = (breakpoint) => providerDataPart("openai", {
1953
2091
  type: "prompt_cache_breakpoint",
1954
- mode: "explicit"
2092
+ mode: "explicit",
2093
+ ...(breakpoint?.ttl ? { ttl: breakpoint.ttl } : {})
1955
2094
  });
1956
2095
  export const openAIComputerUseTool = (config) => hostedTool({
1957
2096
  name: "computer",