@newrelic/preflight 1.67.3 → 1.69.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.
Files changed (183) hide show
  1. package/README.md +2 -2
  2. package/dist/config.d.ts +75 -2
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +201 -22
  5. package/dist/config.js.map +1 -1
  6. package/dist/dashboard/routes/api-handler.d.ts +1 -0
  7. package/dist/dashboard/routes/api-handler.d.ts.map +1 -1
  8. package/dist/dashboard/routes/api-handler.js +120 -94
  9. package/dist/dashboard/routes/api-handler.js.map +1 -1
  10. package/dist/data/dashboards/ai-coding-assistant-adoption-cost.json +291 -1
  11. package/dist/data/dashboards/ai-coding-assistant-team-view.json +6 -6
  12. package/dist/hooks/billed-turn-ledger.d.ts +46 -0
  13. package/dist/hooks/billed-turn-ledger.d.ts.map +1 -0
  14. package/dist/hooks/billed-turn-ledger.js +274 -0
  15. package/dist/hooks/billed-turn-ledger.js.map +1 -0
  16. package/dist/hooks/collector-script.d.ts.map +1 -1
  17. package/dist/hooks/collector-script.js +5 -1
  18. package/dist/hooks/collector-script.js.map +1 -1
  19. package/dist/hooks/event-processor.d.ts +3 -7
  20. package/dist/hooks/event-processor.d.ts.map +1 -1
  21. package/dist/hooks/event-processor.js +21 -7
  22. package/dist/hooks/event-processor.js.map +1 -1
  23. package/dist/hooks/parent-transcript-watcher.d.ts +6 -5
  24. package/dist/hooks/parent-transcript-watcher.d.ts.map +1 -1
  25. package/dist/hooks/parent-transcript-watcher.js +64 -62
  26. package/dist/hooks/parent-transcript-watcher.js.map +1 -1
  27. package/dist/hooks/throttled-warning.d.ts +16 -0
  28. package/dist/hooks/throttled-warning.d.ts.map +1 -0
  29. package/dist/hooks/throttled-warning.js +32 -0
  30. package/dist/hooks/throttled-warning.js.map +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +90 -83
  33. package/dist/index.js.map +1 -1
  34. package/dist/install/cli.d.ts.map +1 -1
  35. package/dist/install/cli.js +69 -1
  36. package/dist/install/cli.js.map +1 -1
  37. package/dist/install/dashboard-health.js +1 -1
  38. package/dist/install/dashboard-health.js.map +1 -1
  39. package/dist/install/diagnostics.d.ts +2 -0
  40. package/dist/install/diagnostics.d.ts.map +1 -1
  41. package/dist/install/diagnostics.js +132 -28
  42. package/dist/install/diagnostics.js.map +1 -1
  43. package/dist/install/headless-install.d.ts +26 -0
  44. package/dist/install/headless-install.d.ts.map +1 -1
  45. package/dist/install/headless-install.js +44 -1
  46. package/dist/install/headless-install.js.map +1 -1
  47. package/dist/install/install-helper.d.ts +2 -0
  48. package/dist/install/install-helper.d.ts.map +1 -1
  49. package/dist/install/install-helper.js +5 -0
  50. package/dist/install/install-helper.js.map +1 -1
  51. package/dist/install/keychain.d.ts +18 -0
  52. package/dist/install/keychain.d.ts.map +1 -0
  53. package/dist/install/keychain.js +60 -0
  54. package/dist/install/keychain.js.map +1 -0
  55. package/dist/install/kiro-install-helper.d.ts +27 -0
  56. package/dist/install/kiro-install-helper.d.ts.map +1 -0
  57. package/dist/install/kiro-install-helper.js +53 -0
  58. package/dist/install/kiro-install-helper.js.map +1 -0
  59. package/dist/install/setup-wizard.d.ts +4 -0
  60. package/dist/install/setup-wizard.d.ts.map +1 -1
  61. package/dist/install/setup-wizard.js +94 -9
  62. package/dist/install/setup-wizard.js.map +1 -1
  63. package/dist/lib/child-env.d.ts +11 -0
  64. package/dist/lib/child-env.d.ts.map +1 -0
  65. package/dist/lib/child-env.js +35 -0
  66. package/dist/lib/child-env.js.map +1 -0
  67. package/dist/lib/git-remote.d.ts +7 -0
  68. package/dist/lib/git-remote.d.ts.map +1 -1
  69. package/dist/lib/git-remote.js +13 -0
  70. package/dist/lib/git-remote.js.map +1 -1
  71. package/dist/metrics/cost-tracker-seed.d.ts +16 -0
  72. package/dist/metrics/cost-tracker-seed.d.ts.map +1 -1
  73. package/dist/metrics/cost-tracker-seed.js +42 -7
  74. package/dist/metrics/cost-tracker-seed.js.map +1 -1
  75. package/dist/metrics/cost-tracker.d.ts +11 -3
  76. package/dist/metrics/cost-tracker.d.ts.map +1 -1
  77. package/dist/metrics/cost-tracker.js +4 -1
  78. package/dist/metrics/cost-tracker.js.map +1 -1
  79. package/dist/metrics/git-activity-recorder.d.ts +3 -3
  80. package/dist/metrics/git-activity-recorder.d.ts.map +1 -1
  81. package/dist/metrics/git-activity-recorder.js +3 -3
  82. package/dist/metrics/git-activity-recorder.js.map +1 -1
  83. package/dist/metrics/git-workspace-identity.d.ts +6 -1
  84. package/dist/metrics/git-workspace-identity.d.ts.map +1 -1
  85. package/dist/metrics/git-workspace-identity.js +56 -32
  86. package/dist/metrics/git-workspace-identity.js.map +1 -1
  87. package/dist/metrics/git-workspace-reporter.d.ts +4 -3
  88. package/dist/metrics/git-workspace-reporter.d.ts.map +1 -1
  89. package/dist/metrics/git-workspace-reporter.js +4 -3
  90. package/dist/metrics/git-workspace-reporter.js.map +1 -1
  91. package/dist/metrics/pricing-init.d.ts +13 -0
  92. package/dist/metrics/pricing-init.d.ts.map +1 -0
  93. package/dist/metrics/pricing-init.js +19 -0
  94. package/dist/metrics/pricing-init.js.map +1 -0
  95. package/dist/metrics/skill-activation-tracker.d.ts +27 -0
  96. package/dist/metrics/skill-activation-tracker.d.ts.map +1 -0
  97. package/dist/metrics/skill-activation-tracker.js +92 -0
  98. package/dist/metrics/skill-activation-tracker.js.map +1 -0
  99. package/dist/metrics/turn-cost-attributor.d.ts +34 -16
  100. package/dist/metrics/turn-cost-attributor.d.ts.map +1 -1
  101. package/dist/metrics/turn-cost-attributor.js +95 -60
  102. package/dist/metrics/turn-cost-attributor.js.map +1 -1
  103. package/dist/proxy/proxy-manager.d.ts +3 -0
  104. package/dist/proxy/proxy-manager.d.ts.map +1 -1
  105. package/dist/proxy/proxy-manager.js +43 -3
  106. package/dist/proxy/proxy-manager.js.map +1 -1
  107. package/dist/proxy/types.d.ts +7 -0
  108. package/dist/proxy/types.d.ts.map +1 -1
  109. package/dist/proxy/types.js.map +1 -1
  110. package/dist/proxy/upstream-http.d.ts.map +1 -1
  111. package/dist/proxy/upstream-http.js +44 -1
  112. package/dist/proxy/upstream-http.js.map +1 -1
  113. package/dist/proxy/upstream-stdio.d.ts +0 -1
  114. package/dist/proxy/upstream-stdio.d.ts.map +1 -1
  115. package/dist/proxy/upstream-stdio.js +2 -26
  116. package/dist/proxy/upstream-stdio.js.map +1 -1
  117. package/dist/redaction-patterns.d.ts.map +1 -1
  118. package/dist/redaction-patterns.js +1 -0
  119. package/dist/redaction-patterns.js.map +1 -1
  120. package/dist/secret-command.d.ts +59 -0
  121. package/dist/secret-command.d.ts.map +1 -0
  122. package/dist/secret-command.js +123 -0
  123. package/dist/secret-command.js.map +1 -0
  124. package/dist/security/audit-trail.d.ts +7 -1
  125. package/dist/security/audit-trail.d.ts.map +1 -1
  126. package/dist/security/audit-trail.js +24 -0
  127. package/dist/security/audit-trail.js.map +1 -1
  128. package/dist/server.d.ts.map +1 -1
  129. package/dist/server.js +9 -4
  130. package/dist/server.js.map +1 -1
  131. package/dist/shared/pricing-data.d.ts.map +1 -1
  132. package/dist/shared/pricing-data.js +223 -32
  133. package/dist/shared/pricing-data.js.map +1 -1
  134. package/dist/shared/pricing.d.ts +25 -3
  135. package/dist/shared/pricing.d.ts.map +1 -1
  136. package/dist/shared/pricing.js +46 -9
  137. package/dist/shared/pricing.js.map +1 -1
  138. package/dist/shared/tokens.d.ts +16 -0
  139. package/dist/shared/tokens.d.ts.map +1 -1
  140. package/dist/shared/tokens.js +18 -0
  141. package/dist/shared/tokens.js.map +1 -1
  142. package/dist/shared/transport/otlp-shared.d.ts.map +1 -1
  143. package/dist/shared/transport/otlp-shared.js +7 -14
  144. package/dist/shared/transport/otlp-shared.js.map +1 -1
  145. package/dist/storage/local-store.d.ts +6 -4
  146. package/dist/storage/local-store.d.ts.map +1 -1
  147. package/dist/storage/local-store.js +21 -7
  148. package/dist/storage/local-store.js.map +1 -1
  149. package/dist/storage/session-store.d.ts +24 -1
  150. package/dist/storage/session-store.d.ts.map +1 -1
  151. package/dist/storage/session-store.js +38 -7
  152. package/dist/storage/session-store.js.map +1 -1
  153. package/dist/storage/types.d.ts +13 -0
  154. package/dist/storage/types.d.ts.map +1 -1
  155. package/dist/storage/types.js.map +1 -1
  156. package/dist/tools/cross-session-tools.d.ts +7 -1
  157. package/dist/tools/cross-session-tools.d.ts.map +1 -1
  158. package/dist/tools/cross-session-tools.js +47 -14
  159. package/dist/tools/cross-session-tools.js.map +1 -1
  160. package/dist/tools/session-stats.d.ts +6 -0
  161. package/dist/tools/session-stats.d.ts.map +1 -1
  162. package/dist/tools/session-stats.js +3 -2
  163. package/dist/tools/session-stats.js.map +1 -1
  164. package/dist/transport/audit-record-sender.d.ts +20 -0
  165. package/dist/transport/audit-record-sender.d.ts.map +1 -0
  166. package/dist/transport/audit-record-sender.js +54 -0
  167. package/dist/transport/audit-record-sender.js.map +1 -0
  168. package/dist/transport/nr-ingest.d.ts +7 -0
  169. package/dist/transport/nr-ingest.d.ts.map +1 -1
  170. package/dist/transport/nr-ingest.js +64 -27
  171. package/dist/transport/nr-ingest.js.map +1 -1
  172. package/dist/transport/tier-types.d.ts +11 -1
  173. package/dist/transport/tier-types.d.ts.map +1 -1
  174. package/dist/transport/tier-types.js +28 -6
  175. package/dist/transport/tier-types.js.map +1 -1
  176. package/dist/transport/unforwarded-session-monitor.d.ts +12 -6
  177. package/dist/transport/unforwarded-session-monitor.d.ts.map +1 -1
  178. package/dist/transport/unforwarded-session-monitor.js +24 -5
  179. package/dist/transport/unforwarded-session-monitor.js.map +1 -1
  180. package/dist/web/assets/{index-lvdXUntr.js → index-U9DPZ-Tb.js} +3 -3
  181. package/dist/web/index.html +1 -1
  182. package/examples/local-alert-rules.json +28 -0
  183. package/package.json +1 -1
@@ -15,6 +15,7 @@ export const MODEL_ALIASES = {
15
15
  // Anthropic Claude families
16
16
  'claude-opus-4': 'claude-opus-4-8',
17
17
  'claude-sonnet-4': 'claude-sonnet-4-6',
18
+ // Deliberately stays on 4.5 even though Haiku 5.5 exists.
18
19
  'claude-haiku-4': 'claude-haiku-4-5',
19
20
  'claude-haiku-5': 'claude-haiku-5-5',
20
21
  'claude-haiku-3-5': 'claude-haiku-3-5-20241022',
@@ -197,7 +198,9 @@ export const MODEL_ALIASES = {
197
198
  // Built-in pricing table — USD per million tokens
198
199
  //
199
200
  // Rates last fully verified against vendor public pricing pages on
200
- // 2026-08-27. Later partial passes: Anthropic 5.5, GPT-6, Bedrock, xAI,
201
+ // 2026-10-26 (every vendor group, incl. xAI, Moonshot and MAI-Code; Copilot
202
+ // read by search only). Earlier full
203
+ // pass 2026-08-27. Partial passes since then: Anthropic 5.5, GPT-6, Bedrock, xAI,
201
204
  // Moonshot, Mistral Large 4 and the Copilot stale-entry notes on 2026-10-07;
202
205
  // OpenAI long-context cache tiers, xAI cache tiers and Moonshot cache writes
203
206
  // on 2026-10-08:
@@ -239,6 +242,7 @@ export const DEFAULT_PRICING_TABLE = {
239
242
  thinkingPerMTok: 50,
240
243
  cacheReadPerMTok: 1,
241
244
  cacheCreationPerMTok: 12.5,
245
+ cacheCreation1hPerMTok: 20,
242
246
  contextWindow: 1_000_000,
243
247
  },
244
248
  // Shares Fable 5's specs and pricing exactly, but is limited-availability
@@ -250,6 +254,7 @@ export const DEFAULT_PRICING_TABLE = {
250
254
  thinkingPerMTok: 50,
251
255
  cacheReadPerMTok: 1,
252
256
  cacheCreationPerMTok: 12.5,
257
+ cacheCreation1hPerMTok: 20,
253
258
  contextWindow: 1_000_000,
254
259
  },
255
260
  // Extends Fable 5 at the same input/output prices, with cache reads at a
@@ -262,6 +267,7 @@ export const DEFAULT_PRICING_TABLE = {
262
267
  thinkingPerMTok: 50,
263
268
  cacheReadPerMTok: 0.25,
264
269
  cacheCreationPerMTok: 12.5,
270
+ cacheCreation1hPerMTok: 20,
265
271
  contextWindow: 1_000_000,
266
272
  },
267
273
  // Shares Fable 5.1's specs and pricing exactly (same discounted 0.025x
@@ -273,6 +279,7 @@ export const DEFAULT_PRICING_TABLE = {
273
279
  thinkingPerMTok: 50,
274
280
  cacheReadPerMTok: 0.25,
275
281
  cacheCreationPerMTok: 12.5,
282
+ cacheCreation1hPerMTok: 20,
276
283
  contextWindow: 1_000_000,
277
284
  },
278
285
  // Opus 5.5 is the newest Opus: $4/$20 (below Opus 5's $5/$25), with cache
@@ -284,6 +291,7 @@ export const DEFAULT_PRICING_TABLE = {
284
291
  thinkingPerMTok: 20,
285
292
  cacheReadPerMTok: 0.2,
286
293
  cacheCreationPerMTok: 5,
294
+ cacheCreation1hPerMTok: 8,
287
295
  contextWindow: 1_000_000,
288
296
  },
289
297
  'claude-opus-5': {
@@ -292,6 +300,7 @@ export const DEFAULT_PRICING_TABLE = {
292
300
  thinkingPerMTok: 25,
293
301
  cacheReadPerMTok: 0.5,
294
302
  cacheCreationPerMTok: 6.25,
303
+ cacheCreation1hPerMTok: 10,
295
304
  contextWindow: 1_000_000,
296
305
  },
297
306
  'claude-opus-4-8': {
@@ -300,6 +309,7 @@ export const DEFAULT_PRICING_TABLE = {
300
309
  thinkingPerMTok: 25,
301
310
  cacheReadPerMTok: 0.5,
302
311
  cacheCreationPerMTok: 6.25,
312
+ cacheCreation1hPerMTok: 10,
303
313
  contextWindow: 1_000_000,
304
314
  },
305
315
  // $2/$10 is Anthropic's standing price, not introductory — the "What's new
@@ -312,15 +322,18 @@ export const DEFAULT_PRICING_TABLE = {
312
322
  thinkingPerMTok: 10,
313
323
  cacheReadPerMTok: 0.2,
314
324
  cacheCreationPerMTok: 2.5,
325
+ cacheCreation1hPerMTok: 4,
315
326
  contextWindow: 1_000_000,
316
327
  },
317
- // Same rates as claude-sonnet-5.
328
+ // Same rates as claude-sonnet-5 except cache reads, which are 0.05x input
329
+ // (vs 0.1x) per Anthropic's pricing page.
318
330
  'claude-sonnet-5-5': {
319
331
  inputPerMTok: 2,
320
332
  outputPerMTok: 10,
321
333
  thinkingPerMTok: 10,
322
- cacheReadPerMTok: 0.2,
334
+ cacheReadPerMTok: 0.1,
323
335
  cacheCreationPerMTok: 2.5,
336
+ cacheCreation1hPerMTok: 4,
324
337
  contextWindow: 1_000_000,
325
338
  },
326
339
  'claude-sonnet-4-6': {
@@ -329,25 +342,28 @@ export const DEFAULT_PRICING_TABLE = {
329
342
  thinkingPerMTok: 15,
330
343
  cacheReadPerMTok: 0.3,
331
344
  cacheCreationPerMTok: 3.75,
345
+ cacheCreation1hPerMTok: 6,
332
346
  contextWindow: 1_000_000,
333
347
  },
334
348
  // Haiku 5.5 is priced by prompt length, flat: a prompt over 100k tokens bills
335
349
  // the whole request at 5x input/output and 5x cache reads (platform.claude.com
336
- // pricing, verified 2026-10-08). The 5m cache-write tier rate ($0.625 above
337
- // 100k) is not modeled; cache writes stay at the base $0.125. 1M context per
338
- // the model overview. 'claude-haiku-4' deliberately stays on 4.5.
350
+ // pricing, verified 2026-10-08). The 5m cache-write rate is $0.125, or $0.625
351
+ // above 100k (tierCacheCreationPerMTok). 1M context per the model overview.
339
352
  'claude-haiku-5-5': {
340
353
  inputPerMTok: 0.1,
341
354
  outputPerMTok: 0.5,
342
355
  thinkingPerMTok: 0.5,
343
356
  cacheReadPerMTok: 0.01,
344
357
  cacheCreationPerMTok: 0.125,
358
+ cacheCreation1hPerMTok: 0.2,
345
359
  contextWindow: 1_000_000,
346
360
  tierThreshold: 100_000,
347
361
  tierInputPerMTok: 0.5,
348
362
  tierOutputPerMTok: 2.5,
349
363
  tierThinkingPerMTok: 2.5,
350
364
  tierCacheReadPerMTok: 0.05,
365
+ tierCacheCreationPerMTok: 0.625,
366
+ tierCacheCreation1hPerMTok: 1,
351
367
  },
352
368
  // Dateless current-gen entry — MODEL_ALIASES['claude-haiku-4'] routes here.
353
369
  // Matches the opus/sonnet convention: alias → dateless key → dated legacy key.
@@ -359,6 +375,7 @@ export const DEFAULT_PRICING_TABLE = {
359
375
  thinkingPerMTok: 5,
360
376
  cacheReadPerMTok: 0.1,
361
377
  cacheCreationPerMTok: 1.25,
378
+ cacheCreation1hPerMTok: 2,
362
379
  contextWindow: 200_000,
363
380
  },
364
381
  // Anthropic lists retirement "not sooner than" 2026-10-15; recheck the
@@ -369,6 +386,7 @@ export const DEFAULT_PRICING_TABLE = {
369
386
  thinkingPerMTok: 5,
370
387
  cacheReadPerMTok: 0.1,
371
388
  cacheCreationPerMTok: 1.25,
389
+ cacheCreation1hPerMTok: 2,
372
390
  contextWindow: 200_000,
373
391
  },
374
392
  // ---- Anthropic (legacy Claude 4 generation) ----
@@ -384,6 +402,7 @@ export const DEFAULT_PRICING_TABLE = {
384
402
  thinkingPerMTok: 25,
385
403
  cacheReadPerMTok: 0.5,
386
404
  cacheCreationPerMTok: 6.25,
405
+ cacheCreation1hPerMTok: 10,
387
406
  contextWindow: 1_000_000,
388
407
  },
389
408
  'claude-opus-4-6': {
@@ -392,6 +411,7 @@ export const DEFAULT_PRICING_TABLE = {
392
411
  thinkingPerMTok: 25,
393
412
  cacheReadPerMTok: 0.5,
394
413
  cacheCreationPerMTok: 6.25,
414
+ cacheCreation1hPerMTok: 10,
395
415
  contextWindow: 1_000_000,
396
416
  },
397
417
  // Deprecated 2026-09-30, retires 2026-11-30 (replacement claude-sonnet-5-5).
@@ -402,6 +422,7 @@ export const DEFAULT_PRICING_TABLE = {
402
422
  thinkingPerMTok: 15,
403
423
  cacheReadPerMTok: 0.3,
404
424
  cacheCreationPerMTok: 3.75,
425
+ cacheCreation1hPerMTok: 6,
405
426
  contextWindow: 200_000,
406
427
  },
407
428
  'claude-opus-4-5': {
@@ -410,6 +431,7 @@ export const DEFAULT_PRICING_TABLE = {
410
431
  thinkingPerMTok: 25,
411
432
  cacheReadPerMTok: 0.5,
412
433
  cacheCreationPerMTok: 6.25,
434
+ cacheCreation1hPerMTok: 10,
413
435
  contextWindow: 200_000,
414
436
  },
415
437
  // This key uses a version-number suffix (-1), not an 8-digit date suffix,
@@ -425,6 +447,7 @@ export const DEFAULT_PRICING_TABLE = {
425
447
  thinkingPerMTok: 75,
426
448
  cacheReadPerMTok: 1.5,
427
449
  cacheCreationPerMTok: 18.75,
450
+ cacheCreation1hPerMTok: 30,
428
451
  contextWindow: 200_000,
429
452
  },
430
453
  // Retired 2026-06-15. Kept for historical-cost backfill.
@@ -434,6 +457,7 @@ export const DEFAULT_PRICING_TABLE = {
434
457
  thinkingPerMTok: 15,
435
458
  cacheReadPerMTok: 0.3,
436
459
  cacheCreationPerMTok: 3.75,
460
+ cacheCreation1hPerMTok: 6,
437
461
  contextWindow: 200_000,
438
462
  },
439
463
  // Retired 2026-06-15. Kept for historical-cost backfill.
@@ -443,6 +467,7 @@ export const DEFAULT_PRICING_TABLE = {
443
467
  thinkingPerMTok: 75,
444
468
  cacheReadPerMTok: 1.5,
445
469
  cacheCreationPerMTok: 18.75,
470
+ cacheCreation1hPerMTok: 30,
446
471
  contextWindow: 200_000,
447
472
  },
448
473
  // Retired 2026-02-19. Kept for historical-cost backfill.
@@ -451,6 +476,7 @@ export const DEFAULT_PRICING_TABLE = {
451
476
  outputPerMTok: 4,
452
477
  cacheReadPerMTok: 0.08,
453
478
  cacheCreationPerMTok: 1,
479
+ cacheCreation1hPerMTok: 1.6,
454
480
  contextWindow: 200_000,
455
481
  },
456
482
  // ---- Google Gemini (current generation) ----
@@ -482,6 +508,19 @@ export const DEFAULT_PRICING_TABLE = {
482
508
  thinkingPerMTok: 3.75,
483
509
  contextWindow: 1_000_000,
484
510
  },
511
+ // Gemini 4 Argon: flagship reasoning model. Introductory $2/$10 (cache read
512
+ // $0.10) through 2026-11-30; Google lists $4/$20 (cache $0.20) from
513
+ // 2026-12-01, so bump these rates once that date passes. Output price includes
514
+ // thinking tokens. Explicit caching is unsupported (implicit only), and Google
515
+ // publishes no context window (1M is its stated long-decode ceiling), so
516
+ // contextWindow is best-effort. Verified 2026-10-26.
517
+ 'gemini-4-argon': {
518
+ inputPerMTok: 2,
519
+ cacheReadPerMTok: 0.1,
520
+ outputPerMTok: 10,
521
+ thinkingPerMTok: 10,
522
+ contextWindow: 1_000_000,
523
+ },
485
524
  'gemini-3.6-flash': {
486
525
  inputPerMTok: 0.75,
487
526
  cacheReadPerMTok: 0.075,
@@ -489,6 +528,9 @@ export const DEFAULT_PRICING_TABLE = {
489
528
  thinkingPerMTok: 3.75,
490
529
  contextWindow: 1_000_000,
491
530
  },
531
+ // No longer on Google's pricing page: the endpoint auto-routes to
532
+ // gemini-3.6-flash (deprecations page, 2026-10-26). Google doesn't say which
533
+ // rate that routing bills, so this entry keeps the historical 3.5 rates.
492
534
  'gemini-3.5-flash': {
493
535
  inputPerMTok: 1.5,
494
536
  cacheReadPerMTok: 0.15,
@@ -527,6 +569,52 @@ export const DEFAULT_PRICING_TABLE = {
527
569
  // thinking is NOT a subset of it (extractGeminiTokens() reports
528
570
  // thoughtsTokenCount as a separate addend), so thinkingPerMTok must be
529
571
  // set explicitly or reasoning spend is silently billed at $0.
572
+ // Live / native-audio models bill text and audio separately. Input: text
573
+ // $0.75, audio $3.00 (image/video $1.00 is not modelled and bills at the text
574
+ // rate). Output $4.50 text / $12.00 audio, thinking at the text rate. No
575
+ // caching. 131,072 is the published input token limit
576
+ // (ai.google.dev/gemini-api/docs/pricing, verified 2026-10-26).
577
+ 'gemini-3.8-live': {
578
+ inputPerMTok: 0.75,
579
+ audioInputPerMTok: 3,
580
+ outputPerMTok: 4.5,
581
+ audioOutputPerMTok: 12,
582
+ thinkingPerMTok: 4.5,
583
+ contextWindow: 131_072,
584
+ },
585
+ 'gemini-3.8-live-extended-thinking': {
586
+ inputPerMTok: 0.75,
587
+ audioInputPerMTok: 3,
588
+ outputPerMTok: 4.5,
589
+ audioOutputPerMTok: 12,
590
+ thinkingPerMTok: 4.5,
591
+ contextWindow: 131_072,
592
+ },
593
+ 'gemini-3.1-flash-live-preview': {
594
+ inputPerMTok: 0.75,
595
+ audioInputPerMTok: 3,
596
+ outputPerMTok: 4.5,
597
+ audioOutputPerMTok: 12,
598
+ thinkingPerMTok: 4.5,
599
+ contextWindow: 131_072,
600
+ },
601
+ 'gemini-2.5-flash-native-audio-preview-12-2025': {
602
+ inputPerMTok: 0.5,
603
+ audioInputPerMTok: 3,
604
+ outputPerMTok: 2,
605
+ audioOutputPerMTok: 12,
606
+ thinkingPerMTok: 2,
607
+ contextWindow: 131_072,
608
+ },
609
+ // Audio in, audio out at one rate each ($3.50 / $21.00).
610
+ 'gemini-3.5-live-translate-preview': {
611
+ inputPerMTok: 3.5,
612
+ audioInputPerMTok: 3.5,
613
+ outputPerMTok: 21,
614
+ audioOutputPerMTok: 21,
615
+ thinkingPerMTok: 21,
616
+ contextWindow: 131_072,
617
+ },
530
618
  'gemini-3.1-flash-lite': {
531
619
  inputPerMTok: 0.25,
532
620
  audioInputPerMTok: 0.5,
@@ -558,7 +646,17 @@ export const DEFAULT_PRICING_TABLE = {
558
646
  // same per-token rate). Output price includes thinking tokens. $1/$5 is
559
647
  // introductory per ai.google.dev, verified 2026-10-08: Google lists
560
648
  // $2/$10 starting 2027-01-01, so bump these rates once that date passes.
649
+ // Cache read is likewise introductory: $0.10 through 2026-12-31, $0.20 after.
561
650
  'gemini-robotics-er-2-preview': {
651
+ inputPerMTok: 1,
652
+ cacheReadPerMTok: 0.1,
653
+ outputPerMTok: 5,
654
+ thinkingPerMTok: 5,
655
+ contextWindow: 131_072,
656
+ },
657
+ // Live API streaming endpoint; same introductory $1/$5 -> $2/$10 on
658
+ // 2027-01-01. Google lists no context caching for it.
659
+ 'gemini-robotics-er-2-streaming-preview': {
562
660
  inputPerMTok: 1,
563
661
  outputPerMTok: 5,
564
662
  thinkingPerMTok: 5,
@@ -682,10 +780,10 @@ export const DEFAULT_PRICING_TABLE = {
682
780
  // modeled here: no cacheCreationPerMTok is set, so any cache-write tokens
683
781
  // that extractOpenAITokens() reports (prompt_tokens_details.cache_write_tokens)
684
782
  // are billed at $0.
685
- // The GPT-5.5/5.6 pages (verified 2026-10-08) say the >272k tier is "2x
686
- // input and 1.5x output" and are silent on cached input, so no
687
- // tierCacheReadPerMTok is set for them (unlike GPT-6, which states 2x
688
- // "input and cache rates"). Cached input above 272k bills at the base rate.
783
+ // The GPT-5.5/5.6 model pages say the >272k tier is "2x input and 1.5x
784
+ // output" and are silent on cached input, but the pricing page's "Long
785
+ // context cached input" column (verified 2026-10-26) lists 2x the base
786
+ // cached rate for GPT-5.4/5.5/5.6, so tierCacheReadPerMTok is set to match.
689
787
  // $4/$20 is promotional pricing per OpenAI's own model page: "a 20%
690
788
  // reduction in input pricing and a 33% reduction in output pricing"
691
789
  // versus GPT-5.5 ($5/$30), "available at least through November 21,
@@ -698,6 +796,7 @@ export const DEFAULT_PRICING_TABLE = {
698
796
  cacheReadPerMTok: 0.4,
699
797
  contextWindow: 1_050_000,
700
798
  tierThreshold: 272_000,
799
+ tierCacheReadPerMTok: 0.8,
701
800
  tierInputPerMTok: 8,
702
801
  tierOutputPerMTok: 30,
703
802
  },
@@ -707,6 +806,7 @@ export const DEFAULT_PRICING_TABLE = {
707
806
  cacheReadPerMTok: 0.2,
708
807
  contextWindow: 1_050_000,
709
808
  tierThreshold: 272_000,
809
+ tierCacheReadPerMTok: 0.4,
710
810
  tierInputPerMTok: 4,
711
811
  tierOutputPerMTok: 18,
712
812
  },
@@ -716,6 +816,7 @@ export const DEFAULT_PRICING_TABLE = {
716
816
  cacheReadPerMTok: 0.02,
717
817
  contextWindow: 1_050_000,
718
818
  tierThreshold: 272_000,
819
+ tierCacheReadPerMTok: 0.04,
719
820
  tierInputPerMTok: 0.4,
720
821
  tierOutputPerMTok: 1.8,
721
822
  },
@@ -761,6 +862,7 @@ export const DEFAULT_PRICING_TABLE = {
761
862
  // that was wrong on three counts: mode, threshold (270k vs 272k), and
762
863
  // the missing output multiplier.
763
864
  tierThreshold: 272_000,
865
+ tierCacheReadPerMTok: 1,
764
866
  tierInputPerMTok: 10,
765
867
  tierOutputPerMTok: 45,
766
868
  },
@@ -770,6 +872,7 @@ export const DEFAULT_PRICING_TABLE = {
770
872
  cacheReadPerMTok: 0.25,
771
873
  contextWindow: 1_050_000,
772
874
  tierThreshold: 272_000,
875
+ tierCacheReadPerMTok: 0.5,
773
876
  tierInputPerMTok: 5,
774
877
  tierOutputPerMTok: 22.5,
775
878
  },
@@ -989,10 +1092,11 @@ export const DEFAULT_PRICING_TABLE = {
989
1092
  // Cache pricing for these models is published on the Bedrock pricing
990
1093
  // page — resolved by matching
991
1094
  // each model's known direct-API cache-write/-read multipliers (1.25x /
992
- // 0.1x of input), which line up exactly with AWS's own numbers. AWS
1095
+ // 0.1x of input), which line up exactly with AWS's own numbers (except the
1096
+ // 0.05x Sonnet/Opus 5.5 and 0.025x Fable/Mythos 5.1 cache reads). AWS
993
1097
  // publishes BOTH a 5-minute and a 1-hour cache-write rate; cacheCreationPerMTok
994
- // here is the 5-minute rate (matches the direct-API default TTL) — there's
995
- // no field for the 1-hour rate, which would need a schema change to model.
1098
+ // here is the 5-minute rate (matches the direct-API default TTL) and
1099
+ // cacheCreation1hPerMTok the 1-hour rate (2x input) where AWS lists one.
996
1100
  // $2/$10 is Anthropic's standing Sonnet 5 price on Bedrock too — not
997
1101
  // introductory. See the direct-API claude-sonnet-5 comment above.
998
1102
  //
@@ -1019,16 +1123,19 @@ export const DEFAULT_PRICING_TABLE = {
1019
1123
  outputPerMTok: 11,
1020
1124
  cacheReadPerMTok: 0.22,
1021
1125
  cacheCreationPerMTok: 2.75,
1126
+ cacheCreation1hPerMTok: 4.4,
1022
1127
  contextWindow: 1_000_000,
1023
1128
  },
1024
1129
  // Sonnet 5.5 and Opus 5.5 geo rates are read directly from AWS's pricing
1025
- // page (2026-10-07), not derived from the 1.1x multiplier. Model IDs
1130
+ // page (2026-10-07), not derived from the 1.1x multiplier.
1131
+ // Sonnet 5.5 cache reads are 0.05x input (cut 50% effective 2026-10-07). Model IDs
1026
1132
  // confirmed against AWS's model cards (2026-10-07).
1027
1133
  'anthropic.claude-sonnet-5-5': {
1028
1134
  inputPerMTok: 2.2,
1029
1135
  outputPerMTok: 11,
1030
- cacheReadPerMTok: 0.22,
1136
+ cacheReadPerMTok: 0.11,
1031
1137
  cacheCreationPerMTok: 2.75,
1138
+ cacheCreation1hPerMTok: 4.4,
1032
1139
  contextWindow: 1_000_000,
1033
1140
  },
1034
1141
  'anthropic.claude-opus-5-5': {
@@ -1036,6 +1143,7 @@ export const DEFAULT_PRICING_TABLE = {
1036
1143
  outputPerMTok: 22,
1037
1144
  cacheReadPerMTok: 0.22,
1038
1145
  cacheCreationPerMTok: 5.5,
1146
+ cacheCreation1hPerMTok: 8.8,
1039
1147
  contextWindow: 1_000_000,
1040
1148
  },
1041
1149
  'anthropic.claude-fable-5': {
@@ -1043,6 +1151,7 @@ export const DEFAULT_PRICING_TABLE = {
1043
1151
  outputPerMTok: 55,
1044
1152
  cacheReadPerMTok: 1.1,
1045
1153
  cacheCreationPerMTok: 13.75,
1154
+ cacheCreation1hPerMTok: 22.0,
1046
1155
  contextWindow: 1_000_000,
1047
1156
  },
1048
1157
  // Geo rate read from AWS's pricing page (2026-10-07).
@@ -1051,6 +1160,7 @@ export const DEFAULT_PRICING_TABLE = {
1051
1160
  outputPerMTok: 55,
1052
1161
  cacheReadPerMTok: 0.275,
1053
1162
  cacheCreationPerMTok: 13.75,
1163
+ cacheCreation1hPerMTok: 22.0,
1054
1164
  contextWindow: 1_000_000,
1055
1165
  },
1056
1166
  'anthropic.claude-opus-5': {
@@ -1058,6 +1168,7 @@ export const DEFAULT_PRICING_TABLE = {
1058
1168
  outputPerMTok: 27.5,
1059
1169
  cacheReadPerMTok: 0.55,
1060
1170
  cacheCreationPerMTok: 6.875,
1171
+ cacheCreation1hPerMTok: 11.0,
1061
1172
  contextWindow: 1_000_000,
1062
1173
  },
1063
1174
  'anthropic.claude-opus-4-8': {
@@ -1065,6 +1176,7 @@ export const DEFAULT_PRICING_TABLE = {
1065
1176
  outputPerMTok: 27.5,
1066
1177
  cacheReadPerMTok: 0.55,
1067
1178
  cacheCreationPerMTok: 6.875,
1179
+ cacheCreation1hPerMTok: 11.0,
1068
1180
  contextWindow: 1_000_000,
1069
1181
  },
1070
1182
  'anthropic.claude-opus-4-7': {
@@ -1072,6 +1184,7 @@ export const DEFAULT_PRICING_TABLE = {
1072
1184
  outputPerMTok: 27.5,
1073
1185
  cacheReadPerMTok: 0.55,
1074
1186
  cacheCreationPerMTok: 6.875,
1187
+ cacheCreation1hPerMTok: 11.0,
1075
1188
  contextWindow: 1_000_000,
1076
1189
  },
1077
1190
  'anthropic.claude-sonnet-4-6': {
@@ -1079,6 +1192,7 @@ export const DEFAULT_PRICING_TABLE = {
1079
1192
  outputPerMTok: 16.5,
1080
1193
  cacheReadPerMTok: 0.33,
1081
1194
  cacheCreationPerMTok: 4.125,
1195
+ cacheCreation1hPerMTok: 6.6,
1082
1196
  contextWindow: 1_000_000,
1083
1197
  },
1084
1198
  'anthropic.claude-haiku-4-5-20251001-v1:0': {
@@ -1086,34 +1200,41 @@ export const DEFAULT_PRICING_TABLE = {
1086
1200
  outputPerMTok: 5.5,
1087
1201
  cacheReadPerMTok: 0.11,
1088
1202
  cacheCreationPerMTok: 1.375,
1203
+ cacheCreation1hPerMTok: 2.2,
1089
1204
  contextWindow: 200_000,
1090
1205
  },
1091
1206
  // Haiku 5.5: IDs from its AWS model card, rates from the AWS pricing page (2026-10-07).
1092
1207
  // The page's "Long Context Pricing" table lists 5x input/output/cache-read; it
1093
- // states no threshold, so the first-party 100k flat threshold is assumed. Cache
1094
- // writes stay at the base rate, as on the first-party entry.
1208
+ // states no threshold, so the first-party 100k flat threshold is assumed. Long-
1209
+ // context cache writes are also 5x the base rate (tierCacheCreationPerMTok).
1095
1210
  'anthropic.claude-haiku-5-5': {
1096
1211
  inputPerMTok: 0.11,
1097
1212
  outputPerMTok: 0.55,
1098
1213
  thinkingPerMTok: 0.55,
1099
1214
  cacheReadPerMTok: 0.011,
1100
1215
  cacheCreationPerMTok: 0.1375,
1216
+ cacheCreation1hPerMTok: 0.22,
1101
1217
  contextWindow: 1_000_000,
1102
1218
  tierThreshold: 100_000,
1103
1219
  tierInputPerMTok: 0.55,
1104
1220
  tierOutputPerMTok: 2.75,
1105
1221
  tierThinkingPerMTok: 2.75,
1106
1222
  tierCacheReadPerMTok: 0.055,
1223
+ tierCacheCreationPerMTok: 0.6875,
1224
+ tierCacheCreation1hPerMTok: 1.1,
1107
1225
  },
1108
1226
  // Older and Mythos-line Claude models, geo/in-region rates read from AWS's
1109
1227
  // pricing page (2026-10-07); IDs confirmed against AWS model cards except
1110
1228
  // Mythos Preview, Opus 4, 3.7 Sonnet and 3 Sonnet (no card; AWS still prices them).
1111
- // Mythos 5 is bedrock-mantle (Messages API) only, with no Geo or Global profile.
1229
+ // Mythos 5 is bedrock-mantle (Messages API) only; AWS's pricing page lists a
1230
+ // Geo row for it (these rates, 2026-10-26) and no Global row. Its us./eu./au./
1231
+ // jp. aliases are unverified, like the other regional Claude aliases.
1112
1232
  'anthropic.claude-mythos-5': {
1113
1233
  inputPerMTok: 11,
1114
1234
  outputPerMTok: 55,
1115
1235
  cacheReadPerMTok: 1.1,
1116
1236
  cacheCreationPerMTok: 13.75,
1237
+ cacheCreation1hPerMTok: 22.0,
1117
1238
  contextWindow: 1_000_000,
1118
1239
  },
1119
1240
  'anthropic.claude-mythos-5-1': {
@@ -1121,6 +1242,7 @@ export const DEFAULT_PRICING_TABLE = {
1121
1242
  outputPerMTok: 55,
1122
1243
  cacheReadPerMTok: 0.275,
1123
1244
  cacheCreationPerMTok: 13.75,
1245
+ cacheCreation1hPerMTok: 22.0,
1124
1246
  contextWindow: 1_000_000,
1125
1247
  },
1126
1248
  'anthropic.claude-mythos-preview': {
@@ -1128,6 +1250,7 @@ export const DEFAULT_PRICING_TABLE = {
1128
1250
  outputPerMTok: 137.5,
1129
1251
  cacheReadPerMTok: 2.75,
1130
1252
  cacheCreationPerMTok: 34.375,
1253
+ cacheCreation1hPerMTok: 55.0,
1131
1254
  contextWindow: 1_000_000,
1132
1255
  },
1133
1256
  'anthropic.claude-opus-4-6-v1': {
@@ -1135,6 +1258,7 @@ export const DEFAULT_PRICING_TABLE = {
1135
1258
  outputPerMTok: 27.5,
1136
1259
  cacheReadPerMTok: 0.55,
1137
1260
  cacheCreationPerMTok: 6.875,
1261
+ cacheCreation1hPerMTok: 11.0,
1138
1262
  contextWindow: 1_000_000,
1139
1263
  },
1140
1264
  'anthropic.claude-opus-4-5-20251101-v1:0': {
@@ -1142,6 +1266,7 @@ export const DEFAULT_PRICING_TABLE = {
1142
1266
  outputPerMTok: 27.5,
1143
1267
  cacheReadPerMTok: 0.55,
1144
1268
  cacheCreationPerMTok: 6.875,
1269
+ cacheCreation1hPerMTok: 11.0,
1145
1270
  contextWindow: 200_000,
1146
1271
  },
1147
1272
  'anthropic.claude-sonnet-4-5-20250929-v1:0': {
@@ -1149,6 +1274,7 @@ export const DEFAULT_PRICING_TABLE = {
1149
1274
  outputPerMTok: 16.5,
1150
1275
  cacheReadPerMTok: 0.33,
1151
1276
  cacheCreationPerMTok: 4.125,
1277
+ cacheCreation1hPerMTok: 6.6,
1152
1278
  contextWindow: 200_000,
1153
1279
  },
1154
1280
  'anthropic.claude-sonnet-4-20250514-v1:0': {
@@ -1198,13 +1324,15 @@ export const DEFAULT_PRICING_TABLE = {
1198
1324
  outputPerMTok: 10,
1199
1325
  cacheReadPerMTok: 0.2,
1200
1326
  cacheCreationPerMTok: 2.5,
1327
+ cacheCreation1hPerMTok: 4.0,
1201
1328
  contextWindow: 1_000_000,
1202
1329
  },
1203
1330
  'global.anthropic.claude-sonnet-5-5': {
1204
1331
  inputPerMTok: 2,
1205
1332
  outputPerMTok: 10,
1206
- cacheReadPerMTok: 0.2,
1333
+ cacheReadPerMTok: 0.1,
1207
1334
  cacheCreationPerMTok: 2.5,
1335
+ cacheCreation1hPerMTok: 4.0,
1208
1336
  contextWindow: 1_000_000,
1209
1337
  },
1210
1338
  'global.anthropic.claude-opus-5-5': {
@@ -1212,6 +1340,7 @@ export const DEFAULT_PRICING_TABLE = {
1212
1340
  outputPerMTok: 20,
1213
1341
  cacheReadPerMTok: 0.2,
1214
1342
  cacheCreationPerMTok: 5,
1343
+ cacheCreation1hPerMTok: 8.0,
1215
1344
  contextWindow: 1_000_000,
1216
1345
  },
1217
1346
  'global.anthropic.claude-fable-5': {
@@ -1219,6 +1348,7 @@ export const DEFAULT_PRICING_TABLE = {
1219
1348
  outputPerMTok: 50,
1220
1349
  cacheReadPerMTok: 1,
1221
1350
  cacheCreationPerMTok: 12.5,
1351
+ cacheCreation1hPerMTok: 20.0,
1222
1352
  contextWindow: 1_000_000,
1223
1353
  },
1224
1354
  'global.anthropic.claude-opus-5': {
@@ -1226,6 +1356,7 @@ export const DEFAULT_PRICING_TABLE = {
1226
1356
  outputPerMTok: 25,
1227
1357
  cacheReadPerMTok: 0.5,
1228
1358
  cacheCreationPerMTok: 6.25,
1359
+ cacheCreation1hPerMTok: 10.0,
1229
1360
  contextWindow: 1_000_000,
1230
1361
  },
1231
1362
  'global.anthropic.claude-opus-4-8': {
@@ -1233,6 +1364,7 @@ export const DEFAULT_PRICING_TABLE = {
1233
1364
  outputPerMTok: 25,
1234
1365
  cacheReadPerMTok: 0.5,
1235
1366
  cacheCreationPerMTok: 6.25,
1367
+ cacheCreation1hPerMTok: 10.0,
1236
1368
  contextWindow: 1_000_000,
1237
1369
  },
1238
1370
  'global.anthropic.claude-opus-4-7': {
@@ -1240,6 +1372,7 @@ export const DEFAULT_PRICING_TABLE = {
1240
1372
  outputPerMTok: 25,
1241
1373
  cacheReadPerMTok: 0.5,
1242
1374
  cacheCreationPerMTok: 6.25,
1375
+ cacheCreation1hPerMTok: 10.0,
1243
1376
  contextWindow: 1_000_000,
1244
1377
  },
1245
1378
  'global.anthropic.claude-sonnet-4-6': {
@@ -1247,6 +1380,7 @@ export const DEFAULT_PRICING_TABLE = {
1247
1380
  outputPerMTok: 15,
1248
1381
  cacheReadPerMTok: 0.3,
1249
1382
  cacheCreationPerMTok: 3.75,
1383
+ cacheCreation1hPerMTok: 6.0,
1250
1384
  contextWindow: 1_000_000,
1251
1385
  },
1252
1386
  'global.anthropic.claude-haiku-4-5-20251001-v1:0': {
@@ -1254,6 +1388,7 @@ export const DEFAULT_PRICING_TABLE = {
1254
1388
  outputPerMTok: 5,
1255
1389
  cacheReadPerMTok: 0.1,
1256
1390
  cacheCreationPerMTok: 1.25,
1391
+ cacheCreation1hPerMTok: 2.0,
1257
1392
  contextWindow: 200_000,
1258
1393
  },
1259
1394
  'global.anthropic.claude-opus-4-6-v1': {
@@ -1261,6 +1396,7 @@ export const DEFAULT_PRICING_TABLE = {
1261
1396
  outputPerMTok: 25,
1262
1397
  cacheReadPerMTok: 0.5,
1263
1398
  cacheCreationPerMTok: 6.25,
1399
+ cacheCreation1hPerMTok: 10.0,
1264
1400
  contextWindow: 1_000_000,
1265
1401
  },
1266
1402
  'global.anthropic.claude-opus-4-5-20251101-v1:0': {
@@ -1268,6 +1404,7 @@ export const DEFAULT_PRICING_TABLE = {
1268
1404
  outputPerMTok: 25,
1269
1405
  cacheReadPerMTok: 0.5,
1270
1406
  cacheCreationPerMTok: 6.25,
1407
+ cacheCreation1hPerMTok: 10.0,
1271
1408
  contextWindow: 200_000,
1272
1409
  },
1273
1410
  'global.anthropic.claude-sonnet-4-5-20250929-v1:0': {
@@ -1275,6 +1412,7 @@ export const DEFAULT_PRICING_TABLE = {
1275
1412
  outputPerMTok: 15,
1276
1413
  cacheReadPerMTok: 0.3,
1277
1414
  cacheCreationPerMTok: 3.75,
1415
+ cacheCreation1hPerMTok: 6.0,
1278
1416
  contextWindow: 200_000,
1279
1417
  },
1280
1418
  'global.anthropic.claude-haiku-5-5': {
@@ -1283,21 +1421,24 @@ export const DEFAULT_PRICING_TABLE = {
1283
1421
  thinkingPerMTok: 0.5,
1284
1422
  cacheReadPerMTok: 0.01,
1285
1423
  cacheCreationPerMTok: 0.125,
1424
+ cacheCreation1hPerMTok: 0.2,
1286
1425
  contextWindow: 1_000_000,
1287
1426
  tierThreshold: 100_000,
1288
1427
  tierInputPerMTok: 0.5,
1289
1428
  tierOutputPerMTok: 2.5,
1290
1429
  tierThinkingPerMTok: 2.5,
1291
1430
  tierCacheReadPerMTok: 0.05,
1431
+ tierCacheCreationPerMTok: 0.625,
1432
+ tierCacheCreation1hPerMTok: 1.0,
1292
1433
  },
1293
- // Fable 5.1 and Mythos 5.1: AWS model cards confirm these global IDs exist, but
1294
- // the pricing page lists no Global-tier row. Rates are DERIVED from the geo row
1295
- // via AWS's flat 1.1x geo premium; replace with published rates when AWS lists them.
1434
+ // Fable 5.1 and Mythos 5.1: global rates read from AWS's pricing page (2026-10-26);
1435
+ // they match the geo row divided by AWS's flat 1.1x geo premium.
1296
1436
  'global.anthropic.claude-fable-5-1': {
1297
1437
  inputPerMTok: 10,
1298
1438
  outputPerMTok: 50,
1299
1439
  cacheReadPerMTok: 0.25,
1300
1440
  cacheCreationPerMTok: 12.5,
1441
+ cacheCreation1hPerMTok: 20.0,
1301
1442
  contextWindow: 1_000_000,
1302
1443
  },
1303
1444
  'global.anthropic.claude-mythos-5-1': {
@@ -1305,6 +1446,7 @@ export const DEFAULT_PRICING_TABLE = {
1305
1446
  outputPerMTok: 50,
1306
1447
  cacheReadPerMTok: 0.25,
1307
1448
  cacheCreationPerMTok: 12.5,
1449
+ cacheCreation1hPerMTok: 20.0,
1308
1450
  contextWindow: 1_000_000,
1309
1451
  },
1310
1452
  // Sonnet 4 is priced identically in the Geo and Global tiers on the AWS page.
@@ -1352,6 +1494,29 @@ export const DEFAULT_PRICING_TABLE = {
1352
1494
  outputPerMTok: 75,
1353
1495
  contextWindow: 200_000,
1354
1496
  },
1497
+ // Legacy Claude models AWS still prices on-demand (pricing page, 2026-10-26,
1498
+ // no cache rates). Model IDs and context windows are the well-known Bedrock
1499
+ // values, not confirmed against model cards.
1500
+ 'anthropic.claude-3-5-sonnet-20240620-v1:0': {
1501
+ inputPerMTok: 3,
1502
+ outputPerMTok: 15,
1503
+ contextWindow: 200_000,
1504
+ },
1505
+ 'anthropic.claude-v2:1': {
1506
+ inputPerMTok: 8,
1507
+ outputPerMTok: 24,
1508
+ contextWindow: 200_000,
1509
+ },
1510
+ 'anthropic.claude-v2': {
1511
+ inputPerMTok: 8,
1512
+ outputPerMTok: 24,
1513
+ contextWindow: 100_000,
1514
+ },
1515
+ 'anthropic.claude-instant-v1': {
1516
+ inputPerMTok: 0.8,
1517
+ outputPerMTok: 2.4,
1518
+ contextWindow: 100_000,
1519
+ },
1355
1520
  // Meta Llama via Bedrock
1356
1521
  // Llama 3 (both sizes) has an 8K context window, not 128K — 128K arrived
1357
1522
  // with Llama 3.1. 70B's rate was also stale: $0.99/$0.99 was actually
@@ -1499,20 +1664,18 @@ export const DEFAULT_PRICING_TABLE = {
1499
1664
  },
1500
1665
  // Mistral Large 4 (docs.mistral.ai/models/mistral-large-4-0, v26.10, public
1501
1666
  // preview since 2026-10-06; API names mistral-large-4 / mistral-large-4-0).
1502
- // Rates are the preview SALE price actually billed, verified 2026-10-07:
1503
- // $0.68 in / $2.09 out against a struck-through list of $1.36 / $4.18.
1504
- // TEMPORARY SALE PRICING, no published end date: re-verify at every pricing
1505
- // audit and revert to the list price ($1.36 / $4.18) once the sale ends,
1506
- // otherwise costs are under-reported by half. 'mistral-large-latest' above is
1507
- // deliberately unchanged: the docs don't say it now routes here.
1667
+ // The preview sale ($0.68 / $2.09) is no longer shown on the docs page as of
1668
+ // 2026-10-26, which lists only the $1.36 / $4.18 list price. Cached input
1669
+ // ($0.14) is not modeled. 'mistral-large-latest' above is deliberately
1670
+ // unchanged: the docs don't say it now routes here.
1508
1671
  'mistral-large-4': {
1509
- inputPerMTok: 0.68,
1510
- outputPerMTok: 2.09,
1672
+ inputPerMTok: 1.36,
1673
+ outputPerMTok: 4.18,
1511
1674
  contextWindow: 1_000_000,
1512
1675
  },
1513
1676
  'mistral-large-4-0': {
1514
- inputPerMTok: 0.68,
1515
- outputPerMTok: 2.09,
1677
+ inputPerMTok: 1.36,
1678
+ outputPerMTok: 4.18,
1516
1679
  contextWindow: 1_000_000,
1517
1680
  },
1518
1681
  'mistral-small-latest': {
@@ -1603,6 +1766,16 @@ export const DEFAULT_PRICING_TABLE = {
1603
1766
  outputPerMTok: 0.6,
1604
1767
  contextWindow: 128_000,
1605
1768
  },
1769
+ // Command A+ is the only Command A model with a published API rate
1770
+ // (cohere.com/pricing, 128K context and 64K max output per
1771
+ // docs.cohere.com/docs/models, verified 2026-10-26). command-a-03-2025,
1772
+ // -reasoning, -vision and -translate have no published rates and are
1773
+ // deliberately absent.
1774
+ 'command-a-plus-05-2026': {
1775
+ inputPerMTok: 2.5,
1776
+ outputPerMTok: 10,
1777
+ contextWindow: 128_000,
1778
+ },
1606
1779
  'command-r7b-12-2024': {
1607
1780
  inputPerMTok: 0.0375,
1608
1781
  outputPerMTok: 0.15,
@@ -1749,6 +1922,8 @@ export const DEFAULT_PRICING_TABLE = {
1749
1922
  // split is only in response headers, so 1h writes under-price by $3.00/MTok.
1750
1923
  // GitHub's retirement table removes Kimi K2.7 Code from Copilot on 2026-10-02,
1751
1924
  // but Moonshot's direct page still lists it, so the entry stays.
1925
+ // Moonshot's banner (2026-10-26): the K2 series closes to new users on
1926
+ // 2026-10-31 and all K2 models retire by the end of 2026-12.
1752
1927
  'kimi-k2.7-code': {
1753
1928
  inputPerMTok: 0.95,
1754
1929
  outputPerMTok: 4,
@@ -1762,6 +1937,22 @@ export const DEFAULT_PRICING_TABLE = {
1762
1937
  cacheCreationPerMTok: 3,
1763
1938
  contextWindow: 1_048_576,
1764
1939
  },
1940
+ // K3.1 Pro (launched 2026-10; verified 2026-10-26 on the same page). The 1h
1941
+ // cache-write rate ($4.00, $8.00 highspeed) is unmodeled, as for K3.
1942
+ 'kimi-k3.1-pro': {
1943
+ inputPerMTok: 2,
1944
+ outputPerMTok: 10,
1945
+ cacheReadPerMTok: 0.2,
1946
+ cacheCreationPerMTok: 2,
1947
+ contextWindow: 1_048_576,
1948
+ },
1949
+ 'kimi-k3.1-pro-highspeed': {
1950
+ inputPerMTok: 4,
1951
+ outputPerMTok: 20,
1952
+ cacheReadPerMTok: 0.2,
1953
+ cacheCreationPerMTok: 4,
1954
+ contextWindow: 1_048_576,
1955
+ },
1765
1956
  // kimi-k2.7-code-highspeed and kimi-k2.6 verified 2026-10-07 against the
1766
1957
  // same page (column headers: cache hit / cache miss / output).
1767
1958
  'kimi-k2.7-code-highspeed': {