@holokai/holo-provider-openai 1.5.2 → 1.6.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.
@@ -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,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"}
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;cA0BxD,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAmHrF,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;CAyDtG"}
@@ -42,7 +42,9 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
42
42
  mapUsage(nativeResponse, protocolName) {
43
43
  if (!nativeResponse)
44
44
  return {};
45
- if (protocolName === OpenAIProtocols.RESPONSES || nativeResponse.response) {
45
+ if (protocolName === OpenAIProtocols.RESPONSES ||
46
+ protocolName === OpenAIProtocols.IMAGES ||
47
+ nativeResponse.response) {
46
48
  const usage = nativeResponse.response?.usage ?? nativeResponse.usage;
47
49
  if (!usage)
48
50
  return {};
@@ -63,6 +65,22 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
63
65
  }
64
66
  async extractRequestOptions(workerRequest) {
65
67
  let options;
68
+ if (workerRequest.protocol.name === OpenAIProtocols.IMAGES) {
69
+ const payload = workerRequest.payload;
70
+ const { background, moderation, n, output_compression, output_format, quality, response_format, size, style, user, } = payload;
71
+ return pickDefined({
72
+ background,
73
+ moderation,
74
+ n,
75
+ output_compression,
76
+ output_format,
77
+ quality,
78
+ response_format,
79
+ size,
80
+ style,
81
+ user,
82
+ });
83
+ }
66
84
  if (workerRequest.protocol.name === OpenAIProtocols.RESPONSES) {
67
85
  const payload = workerRequest.payload;
68
86
  const { max_output_tokens, metadata, prompt_cache_key, prompt_cache_retention, safety_identifier, stream, stream_options, temperature, tool_choice, tools, top_p, } = payload;
@@ -165,6 +183,14 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
165
183
  let last_user_prompt = null;
166
184
  let system_prompt = null;
167
185
  let access_model;
186
+ if (workerRequest.protocol.name === OpenAIProtocols.IMAGES) {
187
+ const payload = workerRequest.payload;
188
+ return pickDefined({
189
+ last_user_prompt: typeof payload.prompt === 'string' ? normalizeText(payload.prompt) : null,
190
+ system_prompt: workerRequest.systemPrompt?.system_prompt ?? null,
191
+ access_model: payload.model,
192
+ });
193
+ }
168
194
  if (workerRequest.protocol.name === OpenAIProtocols.RESPONSES) {
169
195
  const payload = workerRequest.payload;
170
196
  access_model = payload.model;
@@ -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,cA8yBpC,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,cA2pCpC,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
  {
@@ -358,6 +364,224 @@ export const OPENAI_PRICING_DATASET = {
358
364
  { model_name: 'tts-1-hd-1106', input_cost: 0, output_cost: 0 },
359
365
  ],
360
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
+ },
483
+ // ── 2026-07: GPT-5.6 family (sol / terra / luna) ───────────────
484
+ // Source: developers.openai.com pricing page (retrieved 2026-07-27;
485
+ // GA date not pinned upstream — effective_from anchored to
486
+ // retrieval). chat-latest tracks the sol tier. Batch pricing not
487
+ // listed for 5.6 at retrieval time.
488
+ {
489
+ name: 'openai-2026-07',
490
+ version: '2026-07-27',
491
+ effective_from: '2026-07-27',
492
+ models: [
493
+ {
494
+ model_name: 'gpt-5.6-sol',
495
+ input_cost: 5 / M,
496
+ output_cost: 30 / M,
497
+ cache_read_cost: 0.5 / M,
498
+ },
499
+ {
500
+ model_name: 'gpt-5.6-terra',
501
+ input_cost: 2.5 / M,
502
+ output_cost: 15 / M,
503
+ cache_read_cost: 0.25 / M,
504
+ },
505
+ {
506
+ model_name: 'gpt-5.6-luna',
507
+ input_cost: 1 / M,
508
+ output_cost: 6 / M,
509
+ cache_read_cost: 0.1 / M,
510
+ },
511
+ {
512
+ model_name: 'chat-latest',
513
+ input_cost: 5 / M,
514
+ output_cost: 30 / M,
515
+ cache_read_cost: 0.5 / M,
516
+ },
517
+ ],
518
+ },
519
+ // ── xAI Grok models (OpenAI-compatible wire) ───────────────────
520
+ // xAI serves an OpenAI-compatible API, so a provider pointing this
521
+ // plugin family at api.x.ai resolves these model names. Prompts of
522
+ // 200k+ tokens bill the extended rates. Source: docs.x.ai models
523
+ // page. Retrieved 2026-07-27.
524
+ {
525
+ name: 'xai-2026-07',
526
+ version: '2026-07-27',
527
+ effective_from: '2026-07-27',
528
+ models: [
529
+ {
530
+ model_name: 'grok-4.5',
531
+ input_cost: 2 / M,
532
+ output_cost: 6 / M,
533
+ cache_read_cost: 0.3 / M,
534
+ context_threshold: 200_000,
535
+ extended_input_cost: 4 / M,
536
+ extended_output_cost: 12 / M,
537
+ },
538
+ {
539
+ model_name: 'grok-4.3',
540
+ input_cost: 1.25 / M,
541
+ output_cost: 2.5 / M,
542
+ cache_read_cost: 0.2 / M,
543
+ context_threshold: 200_000,
544
+ extended_input_cost: 2.5 / M,
545
+ extended_output_cost: 5 / M,
546
+ },
547
+ {
548
+ model_name: 'grok-4.20-0309-reasoning',
549
+ input_cost: 1.25 / M,
550
+ output_cost: 2.5 / M,
551
+ cache_read_cost: 0.2 / M,
552
+ context_threshold: 200_000,
553
+ extended_input_cost: 2.5 / M,
554
+ extended_output_cost: 5 / M,
555
+ },
556
+ {
557
+ model_name: 'grok-4.20-0309-non-reasoning',
558
+ input_cost: 1.25 / M,
559
+ output_cost: 2.5 / M,
560
+ cache_read_cost: 0.2 / M,
561
+ context_threshold: 200_000,
562
+ extended_input_cost: 2.5 / M,
563
+ extended_output_cost: 5 / M,
564
+ },
565
+ {
566
+ model_name: 'grok-4.20-multi-agent-0309',
567
+ input_cost: 1.25 / M,
568
+ output_cost: 2.5 / M,
569
+ cache_read_cost: 0.2 / M,
570
+ context_threshold: 200_000,
571
+ extended_input_cost: 2.5 / M,
572
+ extended_output_cost: 5 / M,
573
+ },
574
+ {
575
+ model_name: 'grok-build-0.1',
576
+ input_cost: 1 / M,
577
+ output_cost: 2 / M,
578
+ cache_read_cost: 0.2 / M,
579
+ context_threshold: 200_000,
580
+ extended_input_cost: 2 / M,
581
+ extended_output_cost: 4 / M,
582
+ },
583
+ ],
584
+ },
361
585
  ],
362
586
  model_ids: [
363
587
  // ── GPT-4 dated variants ────────────────────────────────────────
@@ -366,7 +590,7 @@ export const OPENAI_PRICING_DATASET = {
366
590
  family: 'gpt-4',
367
591
  kind: 'chat',
368
592
  release_date: '2023-06-13',
369
- shutdown_date: null,
593
+ shutdown_date: '2026-10-23',
370
594
  pricing_snapshot: 'openai-2023-06',
371
595
  },
372
596
  {
@@ -382,7 +606,7 @@ export const OPENAI_PRICING_DATASET = {
382
606
  family: 'gpt-4',
383
607
  kind: 'chat',
384
608
  release_date: '2023-11-06',
385
- shutdown_date: null,
609
+ shutdown_date: '2026-10-23',
386
610
  pricing_snapshot: 'openai-2023-06',
387
611
  },
388
612
  {
@@ -399,7 +623,7 @@ export const OPENAI_PRICING_DATASET = {
399
623
  family: 'gpt-4-turbo',
400
624
  kind: 'chat',
401
625
  release_date: '2024-04-09',
402
- shutdown_date: null,
626
+ shutdown_date: '2026-10-23',
403
627
  pricing_snapshot: 'openai-2024-04',
404
628
  },
405
629
  // ── GPT-3.5 Turbo dated variants ────────────────────────────────
@@ -408,7 +632,7 @@ export const OPENAI_PRICING_DATASET = {
408
632
  family: 'gpt-3.5-turbo',
409
633
  kind: 'chat',
410
634
  release_date: '2024-01-25',
411
- shutdown_date: null,
635
+ shutdown_date: '2026-10-23',
412
636
  pricing_snapshot: 'openai-2023-06',
413
637
  },
414
638
  {
@@ -441,7 +665,7 @@ export const OPENAI_PRICING_DATASET = {
441
665
  family: 'gpt-4o',
442
666
  kind: 'chat',
443
667
  release_date: '2024-05-13',
444
- shutdown_date: null,
668
+ shutdown_date: '2026-10-23',
445
669
  pricing_snapshot: 'openai-2024-05',
446
670
  },
447
671
  {
@@ -483,7 +707,7 @@ export const OPENAI_PRICING_DATASET = {
483
707
  family: 'o1',
484
708
  kind: 'reasoning',
485
709
  release_date: '2024-12-17',
486
- shutdown_date: null,
710
+ shutdown_date: '2026-10-23',
487
711
  pricing_snapshot: 'openai-2024-12',
488
712
  },
489
713
  // ── o1-pro dated variants ───────────────────────────────────────
@@ -492,7 +716,7 @@ export const OPENAI_PRICING_DATASET = {
492
716
  family: 'o1-pro',
493
717
  kind: 'reasoning',
494
718
  release_date: '2025-03-19',
495
- shutdown_date: null,
719
+ shutdown_date: '2026-10-23',
496
720
  pricing_snapshot: 'openai-2025-03',
497
721
  },
498
722
  // ── o3-mini dated variants ──────────────────────────────────────
@@ -501,7 +725,7 @@ export const OPENAI_PRICING_DATASET = {
501
725
  family: 'o3-mini',
502
726
  kind: 'reasoning',
503
727
  release_date: '2025-01-31',
504
- shutdown_date: null,
728
+ shutdown_date: '2026-10-23',
505
729
  pricing_snapshot: 'openai-2025-01',
506
730
  },
507
731
  // ── GPT-4.1 dated variants ─────────────────────────────────────
@@ -526,7 +750,7 @@ export const OPENAI_PRICING_DATASET = {
526
750
  family: 'gpt-4.1-nano',
527
751
  kind: 'chat',
528
752
  release_date: '2025-04-14',
529
- shutdown_date: null,
753
+ shutdown_date: '2026-10-23',
530
754
  pricing_snapshot: 'openai-2025-04',
531
755
  },
532
756
  // ── o3 dated variants ───────────────────────────────────────────
@@ -544,7 +768,7 @@ export const OPENAI_PRICING_DATASET = {
544
768
  family: 'o4-mini',
545
769
  kind: 'reasoning',
546
770
  release_date: '2025-04-16',
547
- shutdown_date: null,
771
+ shutdown_date: '2026-10-23',
548
772
  pricing_snapshot: 'openai-2025-04',
549
773
  },
550
774
  // ── o4-mini deep research dated variants ────────────────────────
@@ -553,7 +777,7 @@ export const OPENAI_PRICING_DATASET = {
553
777
  family: 'o4-mini-deep-research',
554
778
  kind: 'reasoning',
555
779
  release_date: '2025-06-26',
556
- shutdown_date: null,
780
+ shutdown_date: '2026-07-23',
557
781
  pricing_snapshot: 'openai-2025-06',
558
782
  },
559
783
  // ── GPT-4o search/audio/realtime/transcribe/TTS dated variants ──
@@ -562,7 +786,7 @@ export const OPENAI_PRICING_DATASET = {
562
786
  family: 'gpt-4o-search-preview',
563
787
  kind: 'chat',
564
788
  release_date: '2025-06-26',
565
- shutdown_date: null,
789
+ shutdown_date: '2026-07-23',
566
790
  pricing_snapshot: 'openai-2025-06',
567
791
  },
568
792
  {
@@ -570,7 +794,7 @@ export const OPENAI_PRICING_DATASET = {
570
794
  family: 'gpt-4o-mini-search-preview',
571
795
  kind: 'chat',
572
796
  release_date: '2025-06-26',
573
- shutdown_date: null,
797
+ shutdown_date: '2026-07-23',
574
798
  pricing_snapshot: 'openai-2025-06',
575
799
  },
576
800
  {
@@ -642,7 +866,7 @@ export const OPENAI_PRICING_DATASET = {
642
866
  family: 'gpt-4o-mini-tts',
643
867
  kind: 'chat',
644
868
  release_date: '2025-06-26',
645
- shutdown_date: null,
869
+ shutdown_date: '2026-07-23',
646
870
  pricing_snapshot: 'openai-2025-06',
647
871
  },
648
872
  {
@@ -667,7 +891,7 @@ export const OPENAI_PRICING_DATASET = {
667
891
  family: 'gpt-audio-mini',
668
892
  kind: 'chat',
669
893
  release_date: '2025-10-06',
670
- shutdown_date: null,
894
+ shutdown_date: '2026-07-23',
671
895
  pricing_snapshot: 'openai-2025-06',
672
896
  },
673
897
  {
@@ -691,7 +915,7 @@ export const OPENAI_PRICING_DATASET = {
691
915
  family: 'gpt-realtime-mini',
692
916
  kind: 'chat',
693
917
  release_date: '2025-10-06',
694
- shutdown_date: null,
918
+ shutdown_date: '2026-07-23',
695
919
  pricing_snapshot: 'openai-2025-06',
696
920
  },
697
921
  {
@@ -710,7 +934,24 @@ export const OPENAI_PRICING_DATASET = {
710
934
  release_date: '2025-08-07',
711
935
  shutdown_date: null,
712
936
  pricing_snapshot: 'openai-2025-08',
713
- aliases: ['gpt-5-chat-latest', 'gpt-5-codex'],
937
+ },
938
+ // chat-latest/codex variants split out: they shut down 2026-07-23
939
+ // while gpt-5 itself stays (deprecations page, announced 2026-04-22)
940
+ {
941
+ model_id: 'gpt-5-chat-latest',
942
+ family: 'gpt-5',
943
+ kind: 'chat',
944
+ release_date: '2025-08-07',
945
+ shutdown_date: '2026-07-23',
946
+ pricing_snapshot: 'openai-2025-08',
947
+ },
948
+ {
949
+ model_id: 'gpt-5-codex',
950
+ family: 'gpt-5',
951
+ kind: 'chat',
952
+ release_date: '2025-08-07',
953
+ shutdown_date: '2026-07-23',
954
+ pricing_snapshot: 'openai-2025-08',
714
955
  },
715
956
  {
716
957
  model_id: 'gpt-5-search-api-2025-10-14',
@@ -752,7 +993,25 @@ export const OPENAI_PRICING_DATASET = {
752
993
  release_date: '2025-11-13',
753
994
  shutdown_date: null,
754
995
  pricing_snapshot: 'openai-2025-11',
755
- aliases: ['gpt-5.1-chat-latest', 'gpt-5.1-codex', 'gpt-5.1-codex-max', 'gpt-5.1-codex-mini'],
996
+ },
997
+ // chat-latest/codex variants split out: they shut down 2026-07-23
998
+ // while gpt-5.1 itself stays (deprecations page, announced 2026-04-22)
999
+ {
1000
+ model_id: 'gpt-5.1-chat-latest',
1001
+ family: 'gpt-5.1',
1002
+ kind: 'chat',
1003
+ release_date: '2025-11-13',
1004
+ shutdown_date: '2026-07-23',
1005
+ pricing_snapshot: 'openai-2025-11',
1006
+ },
1007
+ {
1008
+ model_id: 'gpt-5.1-codex',
1009
+ family: 'gpt-5.1',
1010
+ kind: 'chat',
1011
+ release_date: '2025-11-13',
1012
+ shutdown_date: '2026-07-23',
1013
+ pricing_snapshot: 'openai-2025-11',
1014
+ aliases: ['gpt-5.1-codex-max', 'gpt-5.1-codex-mini'],
756
1015
  },
757
1016
  // ── GPT-5.2 dated variants ─────────────────────────────────────
758
1017
  {
@@ -762,7 +1021,24 @@ export const OPENAI_PRICING_DATASET = {
762
1021
  release_date: '2025-12-11',
763
1022
  shutdown_date: null,
764
1023
  pricing_snapshot: 'openai-2025-12',
765
- aliases: ['gpt-5.2-chat-latest', 'gpt-5.2-codex'],
1024
+ },
1025
+ // split out: gpt-5.2-chat-latest shuts down 2026-08-10 (announced
1026
+ // 2026-05-08), gpt-5.2-codex 2026-07-23 (announced 2026-04-22)
1027
+ {
1028
+ model_id: 'gpt-5.2-chat-latest',
1029
+ family: 'gpt-5.2',
1030
+ kind: 'chat',
1031
+ release_date: '2025-12-11',
1032
+ shutdown_date: '2026-08-10',
1033
+ pricing_snapshot: 'openai-2025-12',
1034
+ },
1035
+ {
1036
+ model_id: 'gpt-5.2-codex',
1037
+ family: 'gpt-5.2',
1038
+ kind: 'chat',
1039
+ release_date: '2026-01-14',
1040
+ shutdown_date: '2026-07-23',
1041
+ pricing_snapshot: 'openai-2025-12',
766
1042
  },
767
1043
  {
768
1044
  model_id: 'gpt-5.2-pro-2025-12-11',
@@ -772,6 +1048,91 @@ export const OPENAI_PRICING_DATASET = {
772
1048
  shutdown_date: null,
773
1049
  pricing_snapshot: 'openai-2025-12',
774
1050
  },
1051
+ // ── GPT-5.3 (codex-only generation, no mainline gpt-5.3) ───────
1052
+ {
1053
+ model_id: 'gpt-5.3-codex',
1054
+ family: 'gpt-5.3-codex',
1055
+ kind: 'chat',
1056
+ release_date: '2026-02-24',
1057
+ shutdown_date: null,
1058
+ pricing_snapshot: 'openai-2026-02',
1059
+ },
1060
+ {
1061
+ model_id: 'gpt-5.3-chat-latest',
1062
+ family: 'gpt-5.3-codex',
1063
+ kind: 'chat',
1064
+ release_date: '2026-03-16',
1065
+ shutdown_date: '2026-08-10',
1066
+ pricing_snapshot: 'openai-2026-02',
1067
+ },
1068
+ // ── GPT-5.4 dated variants ─────────────────────────────────────
1069
+ {
1070
+ model_id: 'gpt-5.4-2026-03-05',
1071
+ family: 'gpt-5.4',
1072
+ kind: 'chat',
1073
+ release_date: '2026-03-05',
1074
+ shutdown_date: null,
1075
+ pricing_snapshot: 'openai-2026-03',
1076
+ },
1077
+ {
1078
+ model_id: 'gpt-5.4-pro-2026-03-05',
1079
+ family: 'gpt-5.4-pro',
1080
+ kind: 'chat',
1081
+ release_date: '2026-03-05',
1082
+ shutdown_date: null,
1083
+ pricing_snapshot: 'openai-2026-03',
1084
+ },
1085
+ {
1086
+ model_id: 'gpt-5.4-mini-2026-03-17',
1087
+ family: 'gpt-5.4-mini',
1088
+ kind: 'chat',
1089
+ release_date: '2026-03-17',
1090
+ shutdown_date: null,
1091
+ pricing_snapshot: 'openai-2026-03-mini',
1092
+ },
1093
+ {
1094
+ model_id: 'gpt-5.4-nano-2026-03-17',
1095
+ family: 'gpt-5.4-nano',
1096
+ kind: 'chat',
1097
+ release_date: '2026-03-17',
1098
+ shutdown_date: null,
1099
+ pricing_snapshot: 'openai-2026-03-mini',
1100
+ },
1101
+ // ── GPT-5.5 dated variants ─────────────────────────────────────
1102
+ {
1103
+ model_id: 'gpt-5.5-2026-04-23',
1104
+ family: 'gpt-5.5',
1105
+ kind: 'chat',
1106
+ release_date: '2026-04-24',
1107
+ shutdown_date: null,
1108
+ pricing_snapshot: 'openai-2026-04',
1109
+ },
1110
+ {
1111
+ model_id: 'gpt-5.5-pro-2026-04-23',
1112
+ family: 'gpt-5.5-pro',
1113
+ kind: 'chat',
1114
+ release_date: '2026-04-24',
1115
+ shutdown_date: null,
1116
+ pricing_snapshot: 'openai-2026-04',
1117
+ },
1118
+ {
1119
+ model_id: 'gpt-5.5-cyber',
1120
+ family: 'gpt-5.5-cyber',
1121
+ kind: 'chat',
1122
+ release_date: '2026-05-07',
1123
+ shutdown_date: null,
1124
+ pricing_snapshot: 'openai-2026-05',
1125
+ },
1126
+ // rolling alias to the current ChatGPT Instant model (changelog
1127
+ // 2026-05-28); priced identically to gpt-5.5
1128
+ {
1129
+ model_id: 'chat-latest',
1130
+ family: 'gpt-5.5',
1131
+ kind: 'chat',
1132
+ release_date: '2026-05-28',
1133
+ shutdown_date: null,
1134
+ pricing_snapshot: 'openai-2026-04',
1135
+ },
775
1136
  // ── Moderation dated variants ───────────────────────────────────
776
1137
  {
777
1138
  model_id: 'omni-moderation-2024-09-26',