@holokai/holo-provider-openai 1.5.1 → 1.5.3

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.
Files changed (86) hide show
  1. package/dist/manifest.d.ts +1 -1
  2. package/dist/manifest.js +1 -1
  3. package/dist/openai.auditor.d.ts +5 -5
  4. package/dist/openai.auditor.d.ts.map +1 -1
  5. package/dist/openai.auditor.js +16 -15
  6. package/dist/openai.auditor.js.map +1 -1
  7. package/dist/openai.pricing.d.ts.map +1 -1
  8. package/dist/openai.pricing.js +287 -30
  9. package/dist/openai.pricing.js.map +1 -1
  10. package/dist/openai.provider.d.ts +3 -3
  11. package/dist/openai.provider.d.ts.map +1 -1
  12. package/dist/openai.provider.js +24 -25
  13. package/dist/openai.provider.js.map +1 -1
  14. package/dist/openai.response.factory.d.ts +3 -3
  15. package/dist/openai.response.factory.d.ts.map +1 -1
  16. package/dist/openai.response.factory.js +3 -3
  17. package/dist/openai.response.factory.js.map +1 -1
  18. package/dist/openai.translator.d.ts +8 -8
  19. package/dist/openai.translator.d.ts.map +1 -1
  20. package/dist/openai.translator.js +14 -13
  21. package/dist/openai.translator.js.map +1 -1
  22. package/dist/openai.wire.adapter.d.ts +5 -5
  23. package/dist/openai.wire.adapter.d.ts.map +1 -1
  24. package/dist/openai.wire.adapter.js +4 -4
  25. package/dist/openai.wire.adapter.js.map +1 -1
  26. package/dist/plugin.d.ts +7 -9
  27. package/dist/plugin.d.ts.map +1 -1
  28. package/dist/plugin.js +40 -26
  29. package/dist/plugin.js.map +1 -1
  30. package/dist/translators/openai.chatcompletion.message.translators.d.ts +3 -3
  31. package/dist/translators/openai.chatcompletion.message.translators.js +11 -11
  32. package/dist/translators/openai.chatcompletion.message.translators.js.map +1 -1
  33. package/dist/translators/openai.chatcompletion.request.translators.d.ts +5 -5
  34. package/dist/translators/openai.chatcompletion.request.translators.d.ts.map +1 -1
  35. package/dist/translators/openai.chatcompletion.request.translators.js +19 -19
  36. package/dist/translators/openai.chatcompletion.request.translators.js.map +1 -1
  37. package/dist/translators/openai.chatcompletion.response.translators.d.ts +5 -5
  38. package/dist/translators/openai.chatcompletion.response.translators.d.ts.map +1 -1
  39. package/dist/translators/openai.chatcompletion.response.translators.js +13 -17
  40. package/dist/translators/openai.chatcompletion.response.translators.js.map +1 -1
  41. package/dist/translators/openai.content.translators.d.ts +3 -3
  42. package/dist/translators/openai.content.translators.js +8 -8
  43. package/dist/translators/openai.message.translators.d.ts +5 -5
  44. package/dist/translators/openai.message.translators.d.ts.map +1 -1
  45. package/dist/translators/openai.message.translators.js +21 -16
  46. package/dist/translators/openai.message.translators.js.map +1 -1
  47. package/dist/translators/openai.responses.request.translators.d.ts +3 -3
  48. package/dist/translators/openai.responses.request.translators.d.ts.map +1 -1
  49. package/dist/translators/openai.responses.request.translators.js +16 -17
  50. package/dist/translators/openai.responses.request.translators.js.map +1 -1
  51. package/dist/translators/openai.responses.response.translators.d.ts.map +1 -1
  52. package/dist/translators/openai.responses.response.translators.js +6 -6
  53. package/dist/translators/openai.responses.response.translators.js.map +1 -1
  54. package/dist/translators/openai.tool.translators.d.ts +3 -3
  55. package/dist/translators/openai.tool.translators.d.ts.map +1 -1
  56. package/dist/translators/openai.tool.translators.js +10 -10
  57. package/dist/translators/openai.tool.translators.js.map +1 -1
  58. package/dist/translators/openai.usage.translators.d.ts +3 -3
  59. package/dist/translators/openai.usage.translators.d.ts.map +1 -1
  60. package/dist/translators/openai.usage.translators.js +5 -7
  61. package/dist/translators/openai.usage.translators.js.map +1 -1
  62. package/dist/translators/streaming/openai.content.delta.translator.d.ts +2 -2
  63. package/dist/translators/streaming/openai.content.delta.translator.d.ts.map +1 -1
  64. package/dist/translators/streaming/openai.content.delta.translator.js +30 -24
  65. package/dist/translators/streaming/openai.content.delta.translator.js.map +1 -1
  66. package/dist/translators/streaming/openai.message.delta.translator.d.ts +2 -2
  67. package/dist/translators/streaming/openai.message.delta.translator.d.ts.map +1 -1
  68. package/dist/translators/streaming/openai.message.delta.translator.js +35 -31
  69. package/dist/translators/streaming/openai.message.delta.translator.js.map +1 -1
  70. package/dist/translators/streaming/openai.message.start.translator.d.ts +2 -2
  71. package/dist/translators/streaming/openai.message.start.translator.d.ts.map +1 -1
  72. package/dist/translators/streaming/openai.message.start.translator.js +15 -11
  73. package/dist/translators/streaming/openai.message.start.translator.js.map +1 -1
  74. package/dist/translators/streaming/openai.message.stop.translator.d.ts +2 -2
  75. package/dist/translators/streaming/openai.message.stop.translator.d.ts.map +1 -1
  76. package/dist/translators/streaming/openai.message.stop.translator.js +14 -10
  77. package/dist/translators/streaming/openai.message.stop.translator.js.map +1 -1
  78. package/dist/translators/streaming/openai.responses.stream.translator.d.ts.map +1 -1
  79. package/dist/translators/streaming/openai.responses.stream.translator.js +61 -35
  80. package/dist/translators/streaming/openai.responses.stream.translator.js.map +1 -1
  81. package/dist/translators/streaming/openai.stream.translator.d.ts +3 -3
  82. package/dist/translators/streaming/openai.stream.translator.js +7 -7
  83. package/dist/translators/streaming/openai.stream.translator.js.map +1 -1
  84. package/dist/version.d.ts +1 -1
  85. package/dist/version.js +1 -1
  86. package/package.json +6 -6
@@ -1,3 +1,3 @@
1
- import { type PluginManifest } from "@holokai/holo-types/plugin";
1
+ import { type PluginManifest } from '@holokai/holo-types/plugin';
2
2
  export declare const manifest: PluginManifest;
3
3
  //# sourceMappingURL=manifest.d.ts.map
package/dist/manifest.js CHANGED
@@ -1,4 +1,4 @@
1
- import { PluginType } from "@holokai/holo-types/plugin";
1
+ import { PluginType } from '@holokai/holo-types/plugin';
2
2
  import { VERSION } from './version.js';
3
3
  export const manifest = {
4
4
  name: '@holokai/provider-openai',
@@ -1,8 +1,8 @@
1
- import { BaseAuditor } from "@holokai/holo-sdk/provider";
2
- import { type HoloWorkerRequest, type WorkerResponseEnvelope } from "@holokai/holo-types/worker";
3
- import { type ProviderDoneEvent, type ProviderEvent } from "@holokai/holo-types/provider";
4
- import { FinishReason, type ProviderEnvelope, type ProviderResponseMetrics, ProviderResponseStatus } from "@holokai/holo-types/entities";
5
- import type { HoloFinishReason, HoloUsage } from "@holokai/holo-types/holo";
1
+ import { BaseAuditor } from '@holokai/holo-sdk/provider';
2
+ import { type HoloWorkerRequest, type WorkerResponseEnvelope } from '@holokai/holo-types/worker';
3
+ import { type ProviderDoneEvent, type ProviderEvent } from '@holokai/holo-types/provider';
4
+ import { FinishReason, type ProviderEnvelope, type ProviderResponseMetrics, ProviderResponseStatus } from '@holokai/holo-types/entities';
5
+ import type { HoloFinishReason, HoloUsage } from '@holokai/holo-types/holo';
6
6
  export declare class OpenAIAuditor extends BaseAuditor {
7
7
  readonly provider = "openai";
8
8
  mapFinishReason(nativeResponse: any, protocolName?: string): HoloFinishReason;
@@ -1 +1 @@
1
- {"version":3,"file":"openai.auditor.d.ts","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACxF,OAAO,EACH,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,sBAAsB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAK1E,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAEpB,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAwB7E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;cAsBxD,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAsFrF,0BAA0B,CAAC,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;cAgB7H,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;cAgBlH,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAMvI,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAC1D,MAAM,GAAG,SAAS;cAeN,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA8DtG"}
1
+ {"version":3,"file":"openai.auditor.d.ts","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACxF,OAAO,EACH,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,sBAAsB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAK1E,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAEpB,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAwB7E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;cAsBxD,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAsFrF,0BAA0B,CACtC,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;cAiB5B,iBAAiB,CAC7B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,sBAAsB,GACjC,OAAO,CAAC,sBAAsB,CAAC;cAelB,mBAAmB,CAC/B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,sBAAsB,GAClC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAMpC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,GAAG,SAAS;cAgBnE,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgDtG"}
@@ -5,14 +5,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { injectable } from 'tsyringe';
8
- import { countTokens, extractPromptByRole, extractTextContent, normalizeText, pickDefined } from "@holokai/holo-sdk";
9
- import { BaseAuditor } from "@holokai/holo-sdk/provider";
10
- import {} from "@holokai/holo-types/worker";
11
- import {} from "@holokai/holo-types/provider";
12
- import { FinishReason, ProviderResponseStatus } from "@holokai/holo-types/entities";
13
- import {} from "openai/resources/chat/completions";
14
- import {} from "openai/resources/responses/responses";
15
- import { OpenAIProtocols } from "./plugin.js";
8
+ import { countTokens, extractPromptByRole, extractTextContent, normalizeText, pickDefined } from '@holokai/holo-sdk';
9
+ import { BaseAuditor } from '@holokai/holo-sdk/provider';
10
+ import {} from '@holokai/holo-types/worker';
11
+ import {} from '@holokai/holo-types/provider';
12
+ import { FinishReason, ProviderResponseStatus, } from '@holokai/holo-types/entities';
13
+ import {} from 'openai/resources/chat/completions';
14
+ import {} from 'openai/resources/responses/responses';
15
+ import { OpenAIProtocols } from './plugin.js';
16
16
  let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
17
17
  provider = 'openai';
18
18
  mapFinishReason(nativeResponse, protocolName) {
@@ -65,7 +65,7 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
65
65
  let options;
66
66
  if (workerRequest.protocol.name === OpenAIProtocols.RESPONSES) {
67
67
  const payload = workerRequest.payload;
68
- const { max_output_tokens, metadata, prompt_cache_key, prompt_cache_retention, safety_identifier, stream, stream_options, temperature, tool_choice, tools, top_p } = payload;
68
+ const { max_output_tokens, metadata, prompt_cache_key, prompt_cache_retention, safety_identifier, stream, stream_options, temperature, tool_choice, tools, top_p, } = payload;
69
69
  options = pickDefined({
70
70
  max_output_tokens,
71
71
  metadata,
@@ -77,7 +77,7 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
77
77
  temperature,
78
78
  tool_choice,
79
79
  tools,
80
- top_p
80
+ top_p,
81
81
  });
82
82
  }
83
83
  else {
@@ -156,7 +156,8 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
156
156
  return countTokens(JSON.stringify(payload.messages));
157
157
  }
158
158
  }
159
- catch { /* fallthrough */
159
+ catch {
160
+ /* fallthrough */
160
161
  }
161
162
  return undefined;
162
163
  }
@@ -171,21 +172,21 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
171
172
  last_user_prompt =
172
173
  typeof input === 'string'
173
174
  ? normalizeText(input)
174
- : extractPromptByRole(input, 'user', 'last', (msg) => extractTextContent(msg.content));
175
+ : extractPromptByRole(input, 'user', 'last', msg => extractTextContent(msg.content));
175
176
  system_prompt =
176
177
  workerRequest.systemPrompt?.system_prompt ??
177
178
  (typeof payload.instructions === 'string'
178
179
  ? normalizeText(payload.instructions)
179
- : extractPromptByRole(input, 'system', 'first', (msg) => extractTextContent(msg.content)));
180
+ : extractPromptByRole(input, 'system', 'first', msg => extractTextContent(msg.content)));
180
181
  }
181
182
  else {
182
183
  const payload = workerRequest.payload;
183
184
  access_model = payload.model;
184
185
  const messages = payload.messages;
185
- last_user_prompt = extractPromptByRole(messages, 'user', 'last', (msg) => extractTextContent(msg.content));
186
+ last_user_prompt = extractPromptByRole(messages, 'user', 'last', msg => extractTextContent(msg.content));
186
187
  system_prompt =
187
188
  workerRequest.systemPrompt?.system_prompt ??
188
- extractPromptByRole(messages, 'system', 'first', (msg) => extractTextContent(msg.content));
189
+ extractPromptByRole(messages, 'system', 'first', msg => extractTextContent(msg.content));
189
190
  }
190
191
  return pickDefined({
191
192
  last_user_prompt,
@@ -1 +1 @@
1
- {"version":3,"file":"openai.auditor.js","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.auditor.js","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openai.pricing.d.ts","sourceRoot":"","sources":["../src/openai.pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAI/D,eAAO,MAAM,sBAAsB,EAAE,cAgzBpC,CAAC"}
1
+ {"version":3,"file":"openai.pricing.d.ts","sourceRoot":"","sources":["../src/openai.pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAW/D,eAAO,MAAM,sBAAsB,EAAE,cAmjCpC,CAAC"}
@@ -1,7 +1,13 @@
1
+ // Pricing sources (last verified 2026-06-12):
2
+ // https://developers.openai.com/api/docs/pricing
3
+ // https://developers.openai.com/api/docs/models
4
+ // https://developers.openai.com/api/docs/deprecations
5
+ // https://developers.openai.com/api/docs/changelog
6
+ // (platform.openai.com/docs/* now redirects to developers.openai.com)
1
7
  const M = 1_000_000;
2
8
  export const OPENAI_PRICING_DATASET = {
3
9
  name: 'OpenAI',
4
- version: '2026-03',
10
+ version: '2026-06',
5
11
  pricing_snapshots: [
6
12
  // ── 2023-06: GPT-4 + GPT-3.5 Turbo baseline ────────────────────
7
13
  {
@@ -33,9 +39,7 @@ export const OPENAI_PRICING_DATASET = {
33
39
  name: 'openai-2024-04',
34
40
  version: '2024-04',
35
41
  effective_from: '2024-04-09',
36
- models: [
37
- { model_name: 'gpt-4-turbo', input_cost: 10 / M, output_cost: 30 / M },
38
- ],
42
+ models: [{ model_name: 'gpt-4-turbo', input_cost: 10 / M, output_cost: 30 / M }],
39
43
  },
40
44
  // ── 2024-05: GPT-4o launch ─────────────────────────────────────
41
45
  {
@@ -204,43 +208,43 @@ export const OPENAI_PRICING_DATASET = {
204
208
  model_name: 'o4-mini-deep-research',
205
209
  input_cost: 1.1 / M,
206
210
  output_cost: 4.4 / M,
207
- cache_read_cost: 0.275 / M
211
+ cache_read_cost: 0.275 / M,
208
212
  },
209
213
  {
210
214
  model_name: 'gpt-4o-search-preview',
211
215
  input_cost: 2.5 / M,
212
216
  output_cost: 10 / M,
213
- cache_read_cost: 1.25 / M
217
+ cache_read_cost: 1.25 / M,
214
218
  },
215
219
  {
216
220
  model_name: 'gpt-4o-mini-search-preview',
217
221
  input_cost: 2.5 / M,
218
222
  output_cost: 10 / M,
219
- cache_read_cost: 1.25 / M
223
+ cache_read_cost: 1.25 / M,
220
224
  },
221
225
  {
222
226
  model_name: 'gpt-4o-audio-preview',
223
227
  input_cost: 2.5 / M,
224
228
  output_cost: 10 / M,
225
- cache_read_cost: 1.25 / M
229
+ cache_read_cost: 1.25 / M,
226
230
  },
227
231
  {
228
232
  model_name: 'gpt-4o-mini-audio-preview',
229
233
  input_cost: 2.5 / M,
230
234
  output_cost: 10 / M,
231
- cache_read_cost: 1.25 / M
235
+ cache_read_cost: 1.25 / M,
232
236
  },
233
237
  {
234
238
  model_name: 'gpt-4o-realtime-preview',
235
239
  input_cost: 2.5 / M,
236
240
  output_cost: 10 / M,
237
- cache_read_cost: 1.25 / M
241
+ cache_read_cost: 1.25 / M,
238
242
  },
239
243
  {
240
244
  model_name: 'gpt-4o-mini-realtime-preview',
241
245
  input_cost: 2.5 / M,
242
246
  output_cost: 10 / M,
243
- cache_read_cost: 1.25 / M
247
+ cache_read_cost: 1.25 / M,
244
248
  },
245
249
  { model_name: 'gpt-4o-transcribe', input_cost: 2.5 / M, output_cost: 10 / M },
246
250
  { model_name: 'gpt-4o-transcribe-diarize', input_cost: 2.5 / M, output_cost: 10 / M },
@@ -360,6 +364,122 @@ export const OPENAI_PRICING_DATASET = {
360
364
  { model_name: 'tts-1-hd-1106', input_cost: 0, output_cost: 0 },
361
365
  ],
362
366
  },
367
+ // ── 2026-02: GPT-5.3-Codex (no mainline gpt-5.3 exists) ────────
368
+ // Announced 2026-02-05, API access 2026-02-24 per changelog.
369
+ // Source: pricing + models pages. Retrieved 2026-06-12.
370
+ {
371
+ name: 'openai-2026-02',
372
+ version: '2026-02',
373
+ effective_from: '2026-02-24',
374
+ models: [
375
+ {
376
+ model_name: 'gpt-5.3-codex',
377
+ input_cost: 1.75 / M,
378
+ output_cost: 14 / M,
379
+ cache_read_cost: 0.175 / M,
380
+ batch_input_cost: 0.875 / M,
381
+ batch_output_cost: 7 / M,
382
+ },
383
+ ],
384
+ },
385
+ // ── 2026-03-05: GPT-5.4 + GPT-5.4 Pro launch ───────────────────
386
+ // gpt-5.4-pro prompts >272k tokens bill 2x input / 1.5x output.
387
+ // Source: pricing page + changelog; corroborated by TechCrunch
388
+ // 2026-03-05 launch coverage. Retrieved 2026-06-12.
389
+ {
390
+ name: 'openai-2026-03',
391
+ version: '2026-03-05',
392
+ effective_from: '2026-03-05',
393
+ models: [
394
+ {
395
+ model_name: 'gpt-5.4',
396
+ input_cost: 2.5 / M,
397
+ output_cost: 15 / M,
398
+ cache_read_cost: 0.25 / M,
399
+ batch_input_cost: 1.25 / M,
400
+ batch_output_cost: 7.5 / M,
401
+ },
402
+ {
403
+ model_name: 'gpt-5.4-pro',
404
+ input_cost: 30 / M,
405
+ output_cost: 180 / M,
406
+ batch_input_cost: 15 / M,
407
+ batch_output_cost: 90 / M,
408
+ context_threshold: 272_000,
409
+ extended_input_cost: 60 / M,
410
+ extended_output_cost: 270 / M,
411
+ },
412
+ ],
413
+ },
414
+ // ── 2026-03-17: GPT-5.4 mini + nano ────────────────────────────
415
+ // Source: pricing page + changelog. Retrieved 2026-06-12.
416
+ {
417
+ name: 'openai-2026-03-mini',
418
+ version: '2026-03-17',
419
+ effective_from: '2026-03-17',
420
+ models: [
421
+ {
422
+ model_name: 'gpt-5.4-mini',
423
+ input_cost: 0.75 / M,
424
+ output_cost: 4.5 / M,
425
+ cache_read_cost: 0.075 / M,
426
+ batch_input_cost: 0.375 / M,
427
+ batch_output_cost: 2.25 / M,
428
+ },
429
+ {
430
+ model_name: 'gpt-5.4-nano',
431
+ input_cost: 0.2 / M,
432
+ output_cost: 1.25 / M,
433
+ cache_read_cost: 0.02 / M,
434
+ batch_input_cost: 0.1 / M,
435
+ batch_output_cost: 0.625 / M,
436
+ },
437
+ ],
438
+ },
439
+ // ── 2026-04-24: GPT-5.5 family (API; ChatGPT 04-23) ────────────
440
+ // gpt-5.5 prompts >272k tokens bill 2x input / 1.5x output;
441
+ // gpt-5.5-pro has no cached-input discount. Source: pricing +
442
+ // models pages + changelog. Retrieved 2026-06-12.
443
+ {
444
+ name: 'openai-2026-04',
445
+ version: '2026-04-24',
446
+ effective_from: '2026-04-24',
447
+ models: [
448
+ {
449
+ model_name: 'gpt-5.5',
450
+ input_cost: 5 / M,
451
+ output_cost: 30 / M,
452
+ cache_read_cost: 0.5 / M,
453
+ batch_input_cost: 2.5 / M,
454
+ batch_output_cost: 15 / M,
455
+ context_threshold: 272_000,
456
+ extended_input_cost: 10 / M,
457
+ extended_output_cost: 45 / M,
458
+ },
459
+ {
460
+ model_name: 'gpt-5.5-pro',
461
+ input_cost: 30 / M,
462
+ output_cost: 180 / M,
463
+ batch_input_cost: 15 / M,
464
+ batch_output_cost: 90 / M,
465
+ },
466
+ ],
467
+ },
468
+ // ── 2026-05-07: GPT-5.5-Cyber (limited preview) ────────────────
469
+ // Source: pricing page. Retrieved 2026-06-12.
470
+ {
471
+ name: 'openai-2026-05',
472
+ version: '2026-05-07',
473
+ effective_from: '2026-05-07',
474
+ models: [
475
+ {
476
+ model_name: 'gpt-5.5-cyber',
477
+ input_cost: 20 / M,
478
+ output_cost: 120 / M,
479
+ cache_read_cost: 2 / M,
480
+ },
481
+ ],
482
+ },
363
483
  ],
364
484
  model_ids: [
365
485
  // ── GPT-4 dated variants ────────────────────────────────────────
@@ -368,7 +488,7 @@ export const OPENAI_PRICING_DATASET = {
368
488
  family: 'gpt-4',
369
489
  kind: 'chat',
370
490
  release_date: '2023-06-13',
371
- shutdown_date: null,
491
+ shutdown_date: '2026-10-23',
372
492
  pricing_snapshot: 'openai-2023-06',
373
493
  },
374
494
  {
@@ -384,7 +504,7 @@ export const OPENAI_PRICING_DATASET = {
384
504
  family: 'gpt-4',
385
505
  kind: 'chat',
386
506
  release_date: '2023-11-06',
387
- shutdown_date: null,
507
+ shutdown_date: '2026-10-23',
388
508
  pricing_snapshot: 'openai-2023-06',
389
509
  },
390
510
  {
@@ -401,7 +521,7 @@ export const OPENAI_PRICING_DATASET = {
401
521
  family: 'gpt-4-turbo',
402
522
  kind: 'chat',
403
523
  release_date: '2024-04-09',
404
- shutdown_date: null,
524
+ shutdown_date: '2026-10-23',
405
525
  pricing_snapshot: 'openai-2024-04',
406
526
  },
407
527
  // ── GPT-3.5 Turbo dated variants ────────────────────────────────
@@ -410,7 +530,7 @@ export const OPENAI_PRICING_DATASET = {
410
530
  family: 'gpt-3.5-turbo',
411
531
  kind: 'chat',
412
532
  release_date: '2024-01-25',
413
- shutdown_date: null,
533
+ shutdown_date: '2026-10-23',
414
534
  pricing_snapshot: 'openai-2023-06',
415
535
  },
416
536
  {
@@ -443,7 +563,7 @@ export const OPENAI_PRICING_DATASET = {
443
563
  family: 'gpt-4o',
444
564
  kind: 'chat',
445
565
  release_date: '2024-05-13',
446
- shutdown_date: null,
566
+ shutdown_date: '2026-10-23',
447
567
  pricing_snapshot: 'openai-2024-05',
448
568
  },
449
569
  {
@@ -485,7 +605,7 @@ export const OPENAI_PRICING_DATASET = {
485
605
  family: 'o1',
486
606
  kind: 'reasoning',
487
607
  release_date: '2024-12-17',
488
- shutdown_date: null,
608
+ shutdown_date: '2026-10-23',
489
609
  pricing_snapshot: 'openai-2024-12',
490
610
  },
491
611
  // ── o1-pro dated variants ───────────────────────────────────────
@@ -494,7 +614,7 @@ export const OPENAI_PRICING_DATASET = {
494
614
  family: 'o1-pro',
495
615
  kind: 'reasoning',
496
616
  release_date: '2025-03-19',
497
- shutdown_date: null,
617
+ shutdown_date: '2026-10-23',
498
618
  pricing_snapshot: 'openai-2025-03',
499
619
  },
500
620
  // ── o3-mini dated variants ──────────────────────────────────────
@@ -503,7 +623,7 @@ export const OPENAI_PRICING_DATASET = {
503
623
  family: 'o3-mini',
504
624
  kind: 'reasoning',
505
625
  release_date: '2025-01-31',
506
- shutdown_date: null,
626
+ shutdown_date: '2026-10-23',
507
627
  pricing_snapshot: 'openai-2025-01',
508
628
  },
509
629
  // ── GPT-4.1 dated variants ─────────────────────────────────────
@@ -528,7 +648,7 @@ export const OPENAI_PRICING_DATASET = {
528
648
  family: 'gpt-4.1-nano',
529
649
  kind: 'chat',
530
650
  release_date: '2025-04-14',
531
- shutdown_date: null,
651
+ shutdown_date: '2026-10-23',
532
652
  pricing_snapshot: 'openai-2025-04',
533
653
  },
534
654
  // ── o3 dated variants ───────────────────────────────────────────
@@ -546,7 +666,7 @@ export const OPENAI_PRICING_DATASET = {
546
666
  family: 'o4-mini',
547
667
  kind: 'reasoning',
548
668
  release_date: '2025-04-16',
549
- shutdown_date: null,
669
+ shutdown_date: '2026-10-23',
550
670
  pricing_snapshot: 'openai-2025-04',
551
671
  },
552
672
  // ── o4-mini deep research dated variants ────────────────────────
@@ -555,7 +675,7 @@ export const OPENAI_PRICING_DATASET = {
555
675
  family: 'o4-mini-deep-research',
556
676
  kind: 'reasoning',
557
677
  release_date: '2025-06-26',
558
- shutdown_date: null,
678
+ shutdown_date: '2026-07-23',
559
679
  pricing_snapshot: 'openai-2025-06',
560
680
  },
561
681
  // ── GPT-4o search/audio/realtime/transcribe/TTS dated variants ──
@@ -564,7 +684,7 @@ export const OPENAI_PRICING_DATASET = {
564
684
  family: 'gpt-4o-search-preview',
565
685
  kind: 'chat',
566
686
  release_date: '2025-06-26',
567
- shutdown_date: null,
687
+ shutdown_date: '2026-07-23',
568
688
  pricing_snapshot: 'openai-2025-06',
569
689
  },
570
690
  {
@@ -572,7 +692,7 @@ export const OPENAI_PRICING_DATASET = {
572
692
  family: 'gpt-4o-mini-search-preview',
573
693
  kind: 'chat',
574
694
  release_date: '2025-06-26',
575
- shutdown_date: null,
695
+ shutdown_date: '2026-07-23',
576
696
  pricing_snapshot: 'openai-2025-06',
577
697
  },
578
698
  {
@@ -644,7 +764,7 @@ export const OPENAI_PRICING_DATASET = {
644
764
  family: 'gpt-4o-mini-tts',
645
765
  kind: 'chat',
646
766
  release_date: '2025-06-26',
647
- shutdown_date: null,
767
+ shutdown_date: '2026-07-23',
648
768
  pricing_snapshot: 'openai-2025-06',
649
769
  },
650
770
  {
@@ -669,7 +789,7 @@ export const OPENAI_PRICING_DATASET = {
669
789
  family: 'gpt-audio-mini',
670
790
  kind: 'chat',
671
791
  release_date: '2025-10-06',
672
- shutdown_date: null,
792
+ shutdown_date: '2026-07-23',
673
793
  pricing_snapshot: 'openai-2025-06',
674
794
  },
675
795
  {
@@ -693,7 +813,7 @@ export const OPENAI_PRICING_DATASET = {
693
813
  family: 'gpt-realtime-mini',
694
814
  kind: 'chat',
695
815
  release_date: '2025-10-06',
696
- shutdown_date: null,
816
+ shutdown_date: '2026-07-23',
697
817
  pricing_snapshot: 'openai-2025-06',
698
818
  },
699
819
  {
@@ -712,7 +832,24 @@ export const OPENAI_PRICING_DATASET = {
712
832
  release_date: '2025-08-07',
713
833
  shutdown_date: null,
714
834
  pricing_snapshot: 'openai-2025-08',
715
- aliases: ['gpt-5-chat-latest', 'gpt-5-codex'],
835
+ },
836
+ // chat-latest/codex variants split out: they shut down 2026-07-23
837
+ // while gpt-5 itself stays (deprecations page, announced 2026-04-22)
838
+ {
839
+ model_id: 'gpt-5-chat-latest',
840
+ family: 'gpt-5',
841
+ kind: 'chat',
842
+ release_date: '2025-08-07',
843
+ shutdown_date: '2026-07-23',
844
+ pricing_snapshot: 'openai-2025-08',
845
+ },
846
+ {
847
+ model_id: 'gpt-5-codex',
848
+ family: 'gpt-5',
849
+ kind: 'chat',
850
+ release_date: '2025-08-07',
851
+ shutdown_date: '2026-07-23',
852
+ pricing_snapshot: 'openai-2025-08',
716
853
  },
717
854
  {
718
855
  model_id: 'gpt-5-search-api-2025-10-14',
@@ -754,7 +891,25 @@ export const OPENAI_PRICING_DATASET = {
754
891
  release_date: '2025-11-13',
755
892
  shutdown_date: null,
756
893
  pricing_snapshot: 'openai-2025-11',
757
- aliases: ['gpt-5.1-chat-latest', 'gpt-5.1-codex', 'gpt-5.1-codex-max', 'gpt-5.1-codex-mini'],
894
+ },
895
+ // chat-latest/codex variants split out: they shut down 2026-07-23
896
+ // while gpt-5.1 itself stays (deprecations page, announced 2026-04-22)
897
+ {
898
+ model_id: 'gpt-5.1-chat-latest',
899
+ family: 'gpt-5.1',
900
+ kind: 'chat',
901
+ release_date: '2025-11-13',
902
+ shutdown_date: '2026-07-23',
903
+ pricing_snapshot: 'openai-2025-11',
904
+ },
905
+ {
906
+ model_id: 'gpt-5.1-codex',
907
+ family: 'gpt-5.1',
908
+ kind: 'chat',
909
+ release_date: '2025-11-13',
910
+ shutdown_date: '2026-07-23',
911
+ pricing_snapshot: 'openai-2025-11',
912
+ aliases: ['gpt-5.1-codex-max', 'gpt-5.1-codex-mini'],
758
913
  },
759
914
  // ── GPT-5.2 dated variants ─────────────────────────────────────
760
915
  {
@@ -764,7 +919,24 @@ export const OPENAI_PRICING_DATASET = {
764
919
  release_date: '2025-12-11',
765
920
  shutdown_date: null,
766
921
  pricing_snapshot: 'openai-2025-12',
767
- aliases: ['gpt-5.2-chat-latest', 'gpt-5.2-codex'],
922
+ },
923
+ // split out: gpt-5.2-chat-latest shuts down 2026-08-10 (announced
924
+ // 2026-05-08), gpt-5.2-codex 2026-07-23 (announced 2026-04-22)
925
+ {
926
+ model_id: 'gpt-5.2-chat-latest',
927
+ family: 'gpt-5.2',
928
+ kind: 'chat',
929
+ release_date: '2025-12-11',
930
+ shutdown_date: '2026-08-10',
931
+ pricing_snapshot: 'openai-2025-12',
932
+ },
933
+ {
934
+ model_id: 'gpt-5.2-codex',
935
+ family: 'gpt-5.2',
936
+ kind: 'chat',
937
+ release_date: '2026-01-14',
938
+ shutdown_date: '2026-07-23',
939
+ pricing_snapshot: 'openai-2025-12',
768
940
  },
769
941
  {
770
942
  model_id: 'gpt-5.2-pro-2025-12-11',
@@ -774,6 +946,91 @@ export const OPENAI_PRICING_DATASET = {
774
946
  shutdown_date: null,
775
947
  pricing_snapshot: 'openai-2025-12',
776
948
  },
949
+ // ── GPT-5.3 (codex-only generation, no mainline gpt-5.3) ───────
950
+ {
951
+ model_id: 'gpt-5.3-codex',
952
+ family: 'gpt-5.3-codex',
953
+ kind: 'chat',
954
+ release_date: '2026-02-24',
955
+ shutdown_date: null,
956
+ pricing_snapshot: 'openai-2026-02',
957
+ },
958
+ {
959
+ model_id: 'gpt-5.3-chat-latest',
960
+ family: 'gpt-5.3-codex',
961
+ kind: 'chat',
962
+ release_date: '2026-03-16',
963
+ shutdown_date: '2026-08-10',
964
+ pricing_snapshot: 'openai-2026-02',
965
+ },
966
+ // ── GPT-5.4 dated variants ─────────────────────────────────────
967
+ {
968
+ model_id: 'gpt-5.4-2026-03-05',
969
+ family: 'gpt-5.4',
970
+ kind: 'chat',
971
+ release_date: '2026-03-05',
972
+ shutdown_date: null,
973
+ pricing_snapshot: 'openai-2026-03',
974
+ },
975
+ {
976
+ model_id: 'gpt-5.4-pro-2026-03-05',
977
+ family: 'gpt-5.4-pro',
978
+ kind: 'chat',
979
+ release_date: '2026-03-05',
980
+ shutdown_date: null,
981
+ pricing_snapshot: 'openai-2026-03',
982
+ },
983
+ {
984
+ model_id: 'gpt-5.4-mini-2026-03-17',
985
+ family: 'gpt-5.4-mini',
986
+ kind: 'chat',
987
+ release_date: '2026-03-17',
988
+ shutdown_date: null,
989
+ pricing_snapshot: 'openai-2026-03-mini',
990
+ },
991
+ {
992
+ model_id: 'gpt-5.4-nano-2026-03-17',
993
+ family: 'gpt-5.4-nano',
994
+ kind: 'chat',
995
+ release_date: '2026-03-17',
996
+ shutdown_date: null,
997
+ pricing_snapshot: 'openai-2026-03-mini',
998
+ },
999
+ // ── GPT-5.5 dated variants ─────────────────────────────────────
1000
+ {
1001
+ model_id: 'gpt-5.5-2026-04-23',
1002
+ family: 'gpt-5.5',
1003
+ kind: 'chat',
1004
+ release_date: '2026-04-24',
1005
+ shutdown_date: null,
1006
+ pricing_snapshot: 'openai-2026-04',
1007
+ },
1008
+ {
1009
+ model_id: 'gpt-5.5-pro-2026-04-23',
1010
+ family: 'gpt-5.5-pro',
1011
+ kind: 'chat',
1012
+ release_date: '2026-04-24',
1013
+ shutdown_date: null,
1014
+ pricing_snapshot: 'openai-2026-04',
1015
+ },
1016
+ {
1017
+ model_id: 'gpt-5.5-cyber',
1018
+ family: 'gpt-5.5-cyber',
1019
+ kind: 'chat',
1020
+ release_date: '2026-05-07',
1021
+ shutdown_date: null,
1022
+ pricing_snapshot: 'openai-2026-05',
1023
+ },
1024
+ // rolling alias to the current ChatGPT Instant model (changelog
1025
+ // 2026-05-28); priced identically to gpt-5.5
1026
+ {
1027
+ model_id: 'chat-latest',
1028
+ family: 'gpt-5.5',
1029
+ kind: 'chat',
1030
+ release_date: '2026-05-28',
1031
+ shutdown_date: null,
1032
+ pricing_snapshot: 'openai-2026-04',
1033
+ },
777
1034
  // ── Moderation dated variants ───────────────────────────────────
778
1035
  {
779
1036
  model_id: 'omni-moderation-2024-09-26',