llm-usage-metrics 0.10.1 → 0.10.2

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 (3) hide show
  1. package/README.md +7 -2
  2. package/dist/index.js +659 -234
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -287,6 +287,10 @@ function createUsageEvent(input) {
287
287
  const reasoningTokens = normalizeNonNegativeInteger(input.reasoningTokens);
288
288
  const cacheReadTokens = normalizeNonNegativeInteger(input.cacheReadTokens);
289
289
  const cacheWriteTokens = normalizeNonNegativeInteger(input.cacheWriteTokens);
290
+ const cacheWrite1hTokens = Math.min(
291
+ cacheWriteTokens,
292
+ normalizeNonNegativeInteger(input.cacheWrite1hTokens)
293
+ );
290
294
  const declaredTotalTokens = normalizeNonNegativeInteger(input.totalTokens);
291
295
  const componentTotalTokens = inputTokens + outputTokens + reasoningTokens + cacheReadTokens + cacheWriteTokens;
292
296
  const totalTokens = input.totalTokens === void 0 ? componentTotalTokens : declaredTotalTokens;
@@ -304,6 +308,7 @@ function createUsageEvent(input) {
304
308
  reasoningTokens,
305
309
  cacheReadTokens,
306
310
  cacheWriteTokens,
311
+ cacheWrite1hTokens,
307
312
  totalTokens,
308
313
  costUsd,
309
314
  costMode
@@ -555,6 +560,7 @@ function slowNormalizeStoredEvent(row) {
555
560
  reasoningTokens: toNonNegativeInteger(row.reasoning_tokens),
556
561
  cacheReadTokens: toNonNegativeInteger(row.cache_read_tokens),
557
562
  cacheWriteTokens: toNonNegativeInteger(row.cache_write_tokens),
563
+ cacheWrite1hTokens: toNonNegativeInteger(row.cache_write_1h_tokens),
558
564
  totalTokens: toNonNegativeInteger(row.total_tokens),
559
565
  costUsd: toNonNegativeNumber(row.cost_usd),
560
566
  costMode
@@ -578,6 +584,7 @@ function fastMaterializeStoredEvent(row) {
578
584
  row.reasoning_tokens,
579
585
  row.cache_read_tokens,
580
586
  row.cache_write_tokens,
587
+ row.cache_write_1h_tokens,
581
588
  row.total_tokens,
582
589
  row.cost_usd,
583
590
  row.cost_mode
@@ -600,12 +607,13 @@ function normalizeStoredEventTuple(row) {
600
607
  reasoning_tokens: row[8],
601
608
  cache_read_tokens: row[9],
602
609
  cache_write_tokens: row[10],
603
- total_tokens: row[11],
604
- cost_usd: row[12],
605
- cost_mode: row[13]
610
+ cache_write_1h_tokens: row[11],
611
+ total_tokens: row[12],
612
+ cost_usd: row[13],
613
+ cost_mode: row[14]
606
614
  });
607
615
  }
608
- function materializeStoredEvent(sourceValue, sessionIdValue, timestampValue, modelValue, providerValue, repoRootValue, inputTokensValue, outputTokensValue, reasoningTokensValue, cacheReadTokensValue, cacheWriteTokensValue, totalTokensValue, costUsdValue, costModeValue) {
616
+ function materializeStoredEvent(sourceValue, sessionIdValue, timestampValue, modelValue, providerValue, repoRootValue, inputTokensValue, outputTokensValue, reasoningTokensValue, cacheReadTokensValue, cacheWriteTokensValue, cacheWrite1hTokensValue, totalTokensValue, costUsdValue, costModeValue) {
609
617
  const costMode = costModeValue === "explicit" || costModeValue === "estimated" ? costModeValue : void 0;
610
618
  if (!costMode) {
611
619
  return void 0;
@@ -621,9 +629,10 @@ function materializeStoredEvent(sourceValue, sessionIdValue, timestampValue, mod
621
629
  const reasoningTokens = toStoredNonNegativeInteger(reasoningTokensValue);
622
630
  const cacheReadTokens = toStoredNonNegativeInteger(cacheReadTokensValue);
623
631
  const cacheWriteTokens = toStoredNonNegativeInteger(cacheWriteTokensValue);
632
+ const cacheWrite1hTokens = toStoredNonNegativeInteger(cacheWrite1hTokensValue);
624
633
  const totalTokens = toStoredNonNegativeInteger(totalTokensValue);
625
634
  const costUsd = toStoredCostUsd(costUsdValue, costMode);
626
- if (!source || !sessionId || !timestamp || repoRoot === FAST_PATH_REJECT || provider === FAST_PATH_REJECT || model === FAST_PATH_REJECT || inputTokens === void 0 || outputTokens === void 0 || reasoningTokens === void 0 || cacheReadTokens === void 0 || cacheWriteTokens === void 0 || totalTokens === void 0 || costUsd === FAST_PATH_REJECT) {
635
+ if (!source || !sessionId || !timestamp || repoRoot === FAST_PATH_REJECT || provider === FAST_PATH_REJECT || model === FAST_PATH_REJECT || inputTokens === void 0 || outputTokens === void 0 || reasoningTokens === void 0 || cacheReadTokens === void 0 || cacheWriteTokens === void 0 || cacheWrite1hTokens === void 0 || cacheWrite1hTokens > cacheWriteTokens || totalTokens === void 0 || costUsd === FAST_PATH_REJECT) {
627
636
  return void 0;
628
637
  }
629
638
  if (provider && normalizeProviderToBillingEntity(provider) !== provider) {
@@ -644,6 +653,7 @@ function materializeStoredEvent(sourceValue, sessionIdValue, timestampValue, mod
644
653
  reasoningTokens,
645
654
  cacheReadTokens,
646
655
  cacheWriteTokens,
656
+ cacheWrite1hTokens,
647
657
  totalTokens,
648
658
  costUsd,
649
659
  costMode
@@ -717,6 +727,8 @@ function computeEventContentHash(event) {
717
727
  event.reasoningTokens,
718
728
  event.cacheReadTokens,
719
729
  event.cacheWriteTokens,
730
+ // cacheWrite1hTokens is left out: it only splits cacheWriteTokens, and leaving it out
731
+ // keeps events stored before it existed matching their reparsed copies.
720
732
  event.totalTokens,
721
733
  event.costMode,
722
734
  event.costUsd ?? ""
@@ -1014,7 +1026,8 @@ function loadServedEvents(store, servedFiles, liveHashCounts) {
1014
1026
  "SELECT events.source, events.session_id, events.timestamp, events.model,",
1015
1027
  " events.provider, events.repo_root, events.input_tokens, events.output_tokens,",
1016
1028
  " events.reasoning_tokens, events.cache_read_tokens, events.cache_write_tokens,",
1017
- " events.total_tokens, events.cost_usd, events.cost_mode, served.ordinal",
1029
+ " events.cache_write_1h_tokens, events.total_tokens, events.cost_usd, events.cost_mode,",
1030
+ " served.ordinal",
1018
1031
  "FROM history_served_files AS served",
1019
1032
  "CROSS JOIN events",
1020
1033
  "WHERE events.source = served.source",
@@ -1083,7 +1096,7 @@ function loadHistoryEvents(store, input) {
1083
1096
  }
1084
1097
 
1085
1098
  // src/persistence/event-store-schema.ts
1086
- var EVENT_STORE_SCHEMA_VERSION = "3";
1099
+ var EVENT_STORE_SCHEMA_VERSION = "4";
1087
1100
  var MIGRATION_BATCH_SIZE = 5e3;
1088
1101
  var EventStoreSchemaVersionError = class extends Error {
1089
1102
  schemaVersion;
@@ -1126,6 +1139,7 @@ CREATE TABLE IF NOT EXISTS events (
1126
1139
  reasoning_tokens INTEGER NOT NULL,
1127
1140
  cache_read_tokens INTEGER NOT NULL,
1128
1141
  cache_write_tokens INTEGER NOT NULL,
1142
+ cache_write_1h_tokens INTEGER NOT NULL DEFAULT 0,
1129
1143
  total_tokens INTEGER NOT NULL,
1130
1144
  content_hash TEXT,
1131
1145
  cost_usd REAL,
@@ -1167,7 +1181,7 @@ function migrateSchemaV1ToV2(database) {
1167
1181
  [
1168
1182
  "SELECT id, source, session_id, timestamp, model, provider, repo_root,",
1169
1183
  " input_tokens, output_tokens, reasoning_tokens, cache_read_tokens,",
1170
- " cache_write_tokens, total_tokens, cost_usd, cost_mode",
1184
+ " cache_write_tokens, 0 AS cache_write_1h_tokens, total_tokens, cost_usd, cost_mode",
1171
1185
  "FROM events",
1172
1186
  "WHERE id > ?",
1173
1187
  "ORDER BY id ASC",
@@ -1207,7 +1221,7 @@ function migrateSchemaV2ToV3(database) {
1207
1221
  [
1208
1222
  "SELECT id, source, session_id, timestamp, model, provider, repo_root,",
1209
1223
  " input_tokens, output_tokens, reasoning_tokens, cache_read_tokens,",
1210
- " cache_write_tokens, total_tokens, cost_usd, cost_mode",
1224
+ " cache_write_tokens, 0 AS cache_write_1h_tokens, total_tokens, cost_usd, cost_mode",
1211
1225
  "FROM events",
1212
1226
  "WHERE id > ?",
1213
1227
  "ORDER BY id ASC",
@@ -1234,8 +1248,17 @@ function migrateSchemaV2ToV3(database) {
1234
1248
  database.prepare("UPDATE meta SET value = ? WHERE key = 'schemaVersion'").run("3");
1235
1249
  });
1236
1250
  }
1251
+ function migrateSchemaV3ToV4(database) {
1252
+ runTransaction(database, () => {
1253
+ if (readSchemaVersion(database) !== "3") {
1254
+ return;
1255
+ }
1256
+ database.exec("ALTER TABLE events ADD COLUMN cache_write_1h_tokens INTEGER NOT NULL DEFAULT 0");
1257
+ database.prepare("UPDATE meta SET value = ? WHERE key = 'schemaVersion'").run("4");
1258
+ });
1259
+ }
1237
1260
  function isSupportedSchemaVersion(schemaVersion) {
1238
- return schemaVersion === EVENT_STORE_SCHEMA_VERSION || schemaVersion === "1" || schemaVersion === "2";
1261
+ return schemaVersion === EVENT_STORE_SCHEMA_VERSION || schemaVersion === "1" || schemaVersion === "2" || schemaVersion === "3";
1239
1262
  }
1240
1263
  function assertSupportedSchemaVersion(database) {
1241
1264
  const schemaVersion = readSchemaVersion(database);
@@ -1263,10 +1286,16 @@ function initializeSchema(database) {
1263
1286
  if (schemaVersion === "1") {
1264
1287
  migrateSchemaV1ToV2(database);
1265
1288
  migrateSchemaV2ToV3(database);
1289
+ migrateSchemaV3ToV4(database);
1266
1290
  return;
1267
1291
  }
1268
1292
  if (schemaVersion === "2") {
1269
1293
  migrateSchemaV2ToV3(database);
1294
+ migrateSchemaV3ToV4(database);
1295
+ return;
1296
+ }
1297
+ if (schemaVersion === "3") {
1298
+ migrateSchemaV3ToV4(database);
1270
1299
  return;
1271
1300
  }
1272
1301
  throw new EventStoreSchemaVersionError(schemaVersion);
@@ -1584,11 +1613,13 @@ async function readEventStoreEvents(filePath, window = {}, loadSqliteModule = lo
1584
1613
  });
1585
1614
  try {
1586
1615
  assertSupportedSchemaVersion(database);
1616
+ const meta = readMetaValues(database);
1617
+ const cacheWrite1hColumn = meta.get("schemaVersion") === EVENT_STORE_SCHEMA_VERSION ? "cache_write_1h_tokens" : "0 AS cache_write_1h_tokens";
1587
1618
  const statement = database.prepare(
1588
1619
  [
1589
1620
  "SELECT source, session_id, timestamp, model, provider, repo_root,",
1590
1621
  " input_tokens, output_tokens, reasoning_tokens, cache_read_tokens,",
1591
- " cache_write_tokens, total_tokens, cost_usd, cost_mode",
1622
+ ` cache_write_tokens, ${cacheWrite1hColumn}, total_tokens, cost_usd, cost_mode`,
1592
1623
  "FROM events",
1593
1624
  "WHERE timestamp >= ? AND timestamp < ?",
1594
1625
  "ORDER BY source, file_path, event_index"
@@ -1606,7 +1637,7 @@ async function readEventStoreEvents(filePath, window = {}, loadSqliteModule = lo
1606
1637
  events.push(event);
1607
1638
  }
1608
1639
  }
1609
- return { meta: readMetaValues(database), events };
1640
+ return { meta, events };
1610
1641
  } finally {
1611
1642
  database.close();
1612
1643
  }
@@ -1647,7 +1678,7 @@ function selectFileEventRows(store, source, filePath) {
1647
1678
  [
1648
1679
  "SELECT source, session_id, timestamp, model, provider, repo_root,",
1649
1680
  " input_tokens, output_tokens, reasoning_tokens, cache_read_tokens,",
1650
- " cache_write_tokens, total_tokens, cost_usd, cost_mode",
1681
+ " cache_write_tokens, cache_write_1h_tokens, total_tokens, cost_usd, cost_mode",
1651
1682
  "FROM events",
1652
1683
  "WHERE source = ? AND file_path = ?",
1653
1684
  "ORDER BY event_index ASC"
@@ -1778,8 +1809,9 @@ function replaceFilesEvents(store, inputs) {
1778
1809
  "INSERT INTO events (",
1779
1810
  " source, file_path, event_index, session_id, timestamp, model, provider, repo_root,",
1780
1811
  " input_tokens, output_tokens, reasoning_tokens, cache_read_tokens,",
1781
- " cache_write_tokens, total_tokens, content_hash, cost_usd, cost_mode",
1782
- ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
1812
+ " cache_write_tokens, cache_write_1h_tokens, total_tokens, content_hash, cost_usd,",
1813
+ " cost_mode",
1814
+ ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
1783
1815
  ].join("\n")
1784
1816
  );
1785
1817
  const upsertFile = store.statements.upsertFile ??= store.database.prepare(
@@ -1813,6 +1845,7 @@ function replaceFilesEvents(store, inputs) {
1813
1845
  event.reasoningTokens,
1814
1846
  event.cacheReadTokens,
1815
1847
  event.cacheWriteTokens,
1848
+ event.cacheWrite1hTokens,
1816
1849
  event.totalTokens,
1817
1850
  computeEventContentHash(event),
1818
1851
  event.costUsd ?? null,
@@ -5692,6 +5725,9 @@ function parseUsage(usage) {
5692
5725
  const cacheWriteTokens = normalizeNonNegativeInteger(
5693
5726
  toNumberLike(usage.cache_creation_input_tokens)
5694
5727
  );
5728
+ const cacheWrite1hTokens = normalizeNonNegativeInteger(
5729
+ toNumberLike(asRecord(usage.cache_creation)?.ephemeral_1h_input_tokens)
5730
+ );
5695
5731
  const thinkingTokens = normalizeNonNegativeInteger(
5696
5732
  toNumberLike(asRecord(usage.output_tokens_details)?.thinking_tokens)
5697
5733
  );
@@ -5705,6 +5741,7 @@ function parseUsage(usage) {
5705
5741
  reasoningTokens: Math.min(outputTokens, thinkingTokens),
5706
5742
  cacheReadTokens,
5707
5743
  cacheWriteTokens,
5744
+ cacheWrite1hTokens: Math.min(cacheWriteTokens, cacheWrite1hTokens),
5708
5745
  totalTokens
5709
5746
  };
5710
5747
  }
@@ -5727,7 +5764,7 @@ function comparePendingEvents(left, right4) {
5727
5764
  }
5728
5765
  var ClaudeSourceAdapter = class {
5729
5766
  id = "claude";
5730
- parserVersion = 3;
5767
+ parserVersion = 4;
5731
5768
  capabilities = { eventsPrecedeFileMtime: true };
5732
5769
  rootDirs;
5733
5770
  requireDir;
@@ -10834,6 +10871,7 @@ function toUsageEventInput(value) {
10834
10871
  reasoningTokens: optionalCount(record, "reasoningTokens"),
10835
10872
  cacheReadTokens: optionalCount(record, "cacheReadTokens"),
10836
10873
  cacheWriteTokens: optionalCount(record, "cacheWriteTokens"),
10874
+ cacheWrite1hTokens: optionalCount(record, "cacheWrite1hTokens"),
10837
10875
  totalTokens: optionalCount(record, "totalTokens"),
10838
10876
  costUsd: optionalCount(record, "costUsd"),
10839
10877
  costMode
@@ -11671,7 +11709,13 @@ function calculateEstimatedCostUsd(event, pricing) {
11671
11709
  const inputCost = estimateTokenGroupCost(event.inputTokens, pricing.inputPer1MUsd);
11672
11710
  const outputCost = estimateTokenGroupCost(billedOutput.outputTokens, pricing.outputPer1MUsd);
11673
11711
  const cacheReadCost = estimateTokenGroupCost(event.cacheReadTokens, pricing.cacheReadPer1MUsd);
11674
- const cacheWriteCost = estimateTokenGroupCost(event.cacheWriteTokens, pricing.cacheWritePer1MUsd);
11712
+ const cacheWriteCost = estimateTokenGroupCost(
11713
+ event.cacheWriteTokens - event.cacheWrite1hTokens,
11714
+ pricing.cacheWritePer1MUsd
11715
+ ) + estimateTokenGroupCost(
11716
+ event.cacheWrite1hTokens,
11717
+ pricing.cacheWrite1hPer1MUsd ?? pricing.cacheWritePer1MUsd
11718
+ );
11675
11719
  const reasoningCost = estimateTokenGroupCost(
11676
11720
  billedOutput.reasoningTokens,
11677
11721
  pricing.reasoningPer1MUsd
@@ -11760,7 +11804,12 @@ function applyPricingToEvents(events, pricingSource) {
11760
11804
 
11761
11805
  // src/pricing/pricing-override-source.ts
11762
11806
  var requiredRateKeys = ["inputPer1MUsd", "outputPer1MUsd"];
11763
- var optionalRateKeys = ["cacheReadPer1MUsd", "cacheWritePer1MUsd", "reasoningPer1MUsd"];
11807
+ var optionalRateKeys = [
11808
+ "cacheReadPer1MUsd",
11809
+ "cacheWritePer1MUsd",
11810
+ "cacheWrite1hPer1MUsd",
11811
+ "reasoningPer1MUsd"
11812
+ ];
11764
11813
  var knownOverrideKeys = /* @__PURE__ */ new Set([
11765
11814
  ...requiredRateKeys,
11766
11815
  ...optionalRateKeys,
@@ -11807,6 +11856,7 @@ function normalizePricingOverride(raw, problems) {
11807
11856
  const outputPer1MUsd = readRate(raw, "outputPer1MUsd", true, problems);
11808
11857
  const cacheReadPer1MUsd = readRate(raw, "cacheReadPer1MUsd", false, problems);
11809
11858
  const cacheWritePer1MUsd = readRate(raw, "cacheWritePer1MUsd", false, problems);
11859
+ const cacheWrite1hPer1MUsd = readRate(raw, "cacheWrite1hPer1MUsd", false, problems);
11810
11860
  const reasoningPer1MUsd = readRate(raw, "reasoningPer1MUsd", false, problems);
11811
11861
  const reasoningBilling = normalizeReasoningBilling(raw.reasoningBilling);
11812
11862
  if (raw.reasoningBilling !== void 0 && reasoningBilling === void 0) {
@@ -11820,6 +11870,7 @@ function normalizePricingOverride(raw, problems) {
11820
11870
  outputPer1MUsd,
11821
11871
  ...cacheReadPer1MUsd !== void 0 ? { cacheReadPer1MUsd } : {},
11822
11872
  ...cacheWritePer1MUsd !== void 0 ? { cacheWritePer1MUsd } : {},
11873
+ ...cacheWrite1hPer1MUsd !== void 0 ? { cacheWrite1hPer1MUsd } : {},
11823
11874
  ...reasoningPer1MUsd !== void 0 ? { reasoningPer1MUsd } : {},
11824
11875
  ...reasoningBilling !== void 0 ? { reasoningBilling } : {}
11825
11876
  };
@@ -12774,31 +12825,36 @@ var litellm_pricing_snapshot_default = {
12774
12825
  inputPer1MUsd: 10,
12775
12826
  outputPer1MUsd: 50,
12776
12827
  cacheReadPer1MUsd: 1,
12777
- cacheWritePer1MUsd: 12.5
12828
+ cacheWritePer1MUsd: 12.5,
12829
+ cacheWrite1hPer1MUsd: 20
12778
12830
  },
12779
12831
  "anthropic.claude-fable-5-1": {
12780
12832
  inputPer1MUsd: 10,
12781
12833
  outputPer1MUsd: 50,
12782
12834
  cacheReadPer1MUsd: 0.25,
12783
- cacheWritePer1MUsd: 12.5
12835
+ cacheWritePer1MUsd: 12.5,
12836
+ cacheWrite1hPer1MUsd: 20
12784
12837
  },
12785
12838
  "anthropic.claude-haiku-4-5-20251001-v1:0": {
12786
12839
  inputPer1MUsd: 1,
12787
12840
  outputPer1MUsd: 5,
12788
12841
  cacheReadPer1MUsd: 0.09999999999999999,
12789
- cacheWritePer1MUsd: 1.25
12842
+ cacheWritePer1MUsd: 1.25,
12843
+ cacheWrite1hPer1MUsd: 2
12790
12844
  },
12791
12845
  "anthropic.claude-haiku-4-5@20251001": {
12792
12846
  inputPer1MUsd: 1,
12793
12847
  outputPer1MUsd: 5,
12794
12848
  cacheReadPer1MUsd: 0.09999999999999999,
12795
- cacheWritePer1MUsd: 1.25
12849
+ cacheWritePer1MUsd: 1.25,
12850
+ cacheWrite1hPer1MUsd: 2
12796
12851
  },
12797
12852
  "anthropic.claude-haiku-5-5": {
12798
12853
  inputPer1MUsd: 0.09999999999999999,
12799
12854
  outputPer1MUsd: 0.5,
12800
12855
  cacheReadPer1MUsd: 0.01,
12801
- cacheWritePer1MUsd: 0.125
12856
+ cacheWritePer1MUsd: 0.125,
12857
+ cacheWrite1hPer1MUsd: 0.19999999999999998
12802
12858
  },
12803
12859
  "anthropic.claude-instant-v1": {
12804
12860
  inputPer1MUsd: 0.7999999999999999,
@@ -12808,13 +12864,15 @@ var litellm_pricing_snapshot_default = {
12808
12864
  inputPer1MUsd: 10,
12809
12865
  outputPer1MUsd: 50,
12810
12866
  cacheReadPer1MUsd: 0.25,
12811
- cacheWritePer1MUsd: 12.5
12867
+ cacheWritePer1MUsd: 12.5,
12868
+ cacheWrite1hPer1MUsd: 20
12812
12869
  },
12813
12870
  "anthropic.claude-mythos-preview": {
12814
12871
  inputPer1MUsd: 27.5,
12815
12872
  outputPer1MUsd: 137.5,
12816
12873
  cacheReadPer1MUsd: 2.75,
12817
- cacheWritePer1MUsd: 34.375
12874
+ cacheWritePer1MUsd: 34.375,
12875
+ cacheWrite1hPer1MUsd: 55
12818
12876
  },
12819
12877
  "anthropic.claude-opus-4-1-20250805-v1:0": {
12820
12878
  inputPer1MUsd: 15,
@@ -12832,37 +12890,43 @@ var litellm_pricing_snapshot_default = {
12832
12890
  inputPer1MUsd: 5,
12833
12891
  outputPer1MUsd: 25,
12834
12892
  cacheReadPer1MUsd: 0.5,
12835
- cacheWritePer1MUsd: 6.25
12893
+ cacheWritePer1MUsd: 6.25,
12894
+ cacheWrite1hPer1MUsd: 10
12836
12895
  },
12837
12896
  "anthropic.claude-opus-4-6-v1": {
12838
12897
  inputPer1MUsd: 5,
12839
12898
  outputPer1MUsd: 25,
12840
12899
  cacheReadPer1MUsd: 0.5,
12841
- cacheWritePer1MUsd: 6.25
12900
+ cacheWritePer1MUsd: 6.25,
12901
+ cacheWrite1hPer1MUsd: 10
12842
12902
  },
12843
12903
  "anthropic.claude-opus-4-7": {
12844
12904
  inputPer1MUsd: 5,
12845
12905
  outputPer1MUsd: 25,
12846
12906
  cacheReadPer1MUsd: 0.5,
12847
- cacheWritePer1MUsd: 6.25
12907
+ cacheWritePer1MUsd: 6.25,
12908
+ cacheWrite1hPer1MUsd: 10
12848
12909
  },
12849
12910
  "anthropic.claude-opus-4-8": {
12850
12911
  inputPer1MUsd: 5,
12851
12912
  outputPer1MUsd: 25,
12852
12913
  cacheReadPer1MUsd: 0.5,
12853
- cacheWritePer1MUsd: 6.25
12914
+ cacheWritePer1MUsd: 6.25,
12915
+ cacheWrite1hPer1MUsd: 10
12854
12916
  },
12855
12917
  "anthropic.claude-opus-5": {
12856
12918
  inputPer1MUsd: 5,
12857
12919
  outputPer1MUsd: 25,
12858
12920
  cacheReadPer1MUsd: 0.5,
12859
- cacheWritePer1MUsd: 6.25
12921
+ cacheWritePer1MUsd: 6.25,
12922
+ cacheWrite1hPer1MUsd: 10
12860
12923
  },
12861
12924
  "anthropic.claude-opus-5-5": {
12862
12925
  inputPer1MUsd: 4,
12863
12926
  outputPer1MUsd: 20,
12864
12927
  cacheReadPer1MUsd: 0.19999999999999998,
12865
- cacheWritePer1MUsd: 5
12928
+ cacheWritePer1MUsd: 5,
12929
+ cacheWrite1hPer1MUsd: 8
12866
12930
  },
12867
12931
  "anthropic.claude-sonnet-4-20250514-v1:0": {
12868
12932
  inputPer1MUsd: 3,
@@ -12874,25 +12938,29 @@ var litellm_pricing_snapshot_default = {
12874
12938
  inputPer1MUsd: 3,
12875
12939
  outputPer1MUsd: 15,
12876
12940
  cacheReadPer1MUsd: 0.3,
12877
- cacheWritePer1MUsd: 3.75
12941
+ cacheWritePer1MUsd: 3.75,
12942
+ cacheWrite1hPer1MUsd: 6
12878
12943
  },
12879
12944
  "anthropic.claude-sonnet-4-6": {
12880
12945
  inputPer1MUsd: 3,
12881
12946
  outputPer1MUsd: 15,
12882
12947
  cacheReadPer1MUsd: 0.3,
12883
- cacheWritePer1MUsd: 3.75
12948
+ cacheWritePer1MUsd: 3.75,
12949
+ cacheWrite1hPer1MUsd: 6
12884
12950
  },
12885
12951
  "anthropic.claude-sonnet-5": {
12886
12952
  inputPer1MUsd: 2,
12887
12953
  outputPer1MUsd: 10,
12888
12954
  cacheReadPer1MUsd: 0.19999999999999998,
12889
- cacheWritePer1MUsd: 2.5
12955
+ cacheWritePer1MUsd: 2.5,
12956
+ cacheWrite1hPer1MUsd: 4
12890
12957
  },
12891
12958
  "anthropic.claude-sonnet-5-5": {
12892
12959
  inputPer1MUsd: 2,
12893
12960
  outputPer1MUsd: 10,
12894
12961
  cacheReadPer1MUsd: 0.19999999999999998,
12895
- cacheWritePer1MUsd: 2.5
12962
+ cacheWritePer1MUsd: 2.5,
12963
+ cacheWrite1hPer1MUsd: 4
12896
12964
  },
12897
12965
  "anthropic.claude-v1": {
12898
12966
  inputPer1MUsd: 8,
@@ -12979,7 +13047,8 @@ var litellm_pricing_snapshot_default = {
12979
13047
  inputPer1MUsd: 11,
12980
13048
  outputPer1MUsd: 55,
12981
13049
  cacheReadPer1MUsd: 1.1,
12982
- cacheWritePer1MUsd: 13.75
13050
+ cacheWritePer1MUsd: 13.75,
13051
+ cacheWrite1hPer1MUsd: 22
12983
13052
  },
12984
13053
  "apac.anthropic.claude-haiku-4-5-20251001-v1:0": {
12985
13054
  inputPer1MUsd: 1.1,
@@ -12991,37 +13060,43 @@ var litellm_pricing_snapshot_default = {
12991
13060
  inputPer1MUsd: 0.11,
12992
13061
  outputPer1MUsd: 0.55,
12993
13062
  cacheReadPer1MUsd: 0.011,
12994
- cacheWritePer1MUsd: 0.1375
13063
+ cacheWritePer1MUsd: 0.1375,
13064
+ cacheWrite1hPer1MUsd: 0.22
12995
13065
  },
12996
13066
  "apac.anthropic.claude-mythos-preview": {
12997
13067
  inputPer1MUsd: 27.5,
12998
13068
  outputPer1MUsd: 137.5,
12999
13069
  cacheReadPer1MUsd: 2.75,
13000
- cacheWritePer1MUsd: 34.375
13070
+ cacheWritePer1MUsd: 34.375,
13071
+ cacheWrite1hPer1MUsd: 55
13001
13072
  },
13002
13073
  "apac.anthropic.claude-opus-4-7": {
13003
13074
  inputPer1MUsd: 5.5,
13004
13075
  outputPer1MUsd: 27.5,
13005
13076
  cacheReadPer1MUsd: 0.55,
13006
- cacheWritePer1MUsd: 6.875
13077
+ cacheWritePer1MUsd: 6.875,
13078
+ cacheWrite1hPer1MUsd: 11
13007
13079
  },
13008
13080
  "apac.anthropic.claude-opus-4-8": {
13009
13081
  inputPer1MUsd: 5.5,
13010
13082
  outputPer1MUsd: 27.5,
13011
13083
  cacheReadPer1MUsd: 0.55,
13012
- cacheWritePer1MUsd: 6.875
13084
+ cacheWritePer1MUsd: 6.875,
13085
+ cacheWrite1hPer1MUsd: 11
13013
13086
  },
13014
13087
  "apac.anthropic.claude-opus-5": {
13015
13088
  inputPer1MUsd: 5.5,
13016
13089
  outputPer1MUsd: 27.5,
13017
13090
  cacheReadPer1MUsd: 0.55,
13018
- cacheWritePer1MUsd: 6.875
13091
+ cacheWritePer1MUsd: 6.875,
13092
+ cacheWrite1hPer1MUsd: 11
13019
13093
  },
13020
13094
  "apac.anthropic.claude-opus-5-5": {
13021
13095
  inputPer1MUsd: 4.4,
13022
13096
  outputPer1MUsd: 22,
13023
13097
  cacheReadPer1MUsd: 0.22,
13024
- cacheWritePer1MUsd: 5.5
13098
+ cacheWritePer1MUsd: 5.5,
13099
+ cacheWrite1hPer1MUsd: 8.8
13025
13100
  },
13026
13101
  "apac.anthropic.claude-sonnet-4-20250514-v1:0": {
13027
13102
  inputPer1MUsd: 3,
@@ -13033,97 +13108,113 @@ var litellm_pricing_snapshot_default = {
13033
13108
  inputPer1MUsd: 3.3000000000000003,
13034
13109
  outputPer1MUsd: 16.5,
13035
13110
  cacheReadPer1MUsd: 0.33,
13036
- cacheWritePer1MUsd: 4.125
13111
+ cacheWritePer1MUsd: 4.125,
13112
+ cacheWrite1hPer1MUsd: 6.6000000000000005
13037
13113
  },
13038
13114
  "apac.anthropic.claude-sonnet-5": {
13039
13115
  inputPer1MUsd: 2.2,
13040
13116
  outputPer1MUsd: 11,
13041
13117
  cacheReadPer1MUsd: 0.22,
13042
- cacheWritePer1MUsd: 2.75
13118
+ cacheWritePer1MUsd: 2.75,
13119
+ cacheWrite1hPer1MUsd: 4.4
13043
13120
  },
13044
13121
  "apac.anthropic.claude-sonnet-5-5": {
13045
13122
  inputPer1MUsd: 2.2,
13046
13123
  outputPer1MUsd: 11,
13047
13124
  cacheReadPer1MUsd: 0.22,
13048
- cacheWritePer1MUsd: 2.75
13125
+ cacheWritePer1MUsd: 2.75,
13126
+ cacheWrite1hPer1MUsd: 4.4
13049
13127
  },
13050
13128
  "au.anthropic.claude-fable-5": {
13051
13129
  inputPer1MUsd: 11,
13052
13130
  outputPer1MUsd: 55,
13053
13131
  cacheReadPer1MUsd: 1.1,
13054
- cacheWritePer1MUsd: 13.75
13132
+ cacheWritePer1MUsd: 13.75,
13133
+ cacheWrite1hPer1MUsd: 22
13055
13134
  },
13056
13135
  "au.anthropic.claude-haiku-4-5-20251001-v1:0": {
13057
13136
  inputPer1MUsd: 1.1,
13058
13137
  outputPer1MUsd: 5.5,
13059
13138
  cacheReadPer1MUsd: 0.11,
13060
- cacheWritePer1MUsd: 1.375
13139
+ cacheWritePer1MUsd: 1.375,
13140
+ cacheWrite1hPer1MUsd: 2.2
13061
13141
  },
13062
13142
  "au.anthropic.claude-haiku-5-5": {
13063
13143
  inputPer1MUsd: 0.11,
13064
13144
  outputPer1MUsd: 0.55,
13065
13145
  cacheReadPer1MUsd: 0.011,
13066
- cacheWritePer1MUsd: 0.1375
13146
+ cacheWritePer1MUsd: 0.1375,
13147
+ cacheWrite1hPer1MUsd: 0.22
13067
13148
  },
13068
13149
  "au.anthropic.claude-mythos-preview": {
13069
13150
  inputPer1MUsd: 27.5,
13070
13151
  outputPer1MUsd: 137.5,
13071
13152
  cacheReadPer1MUsd: 2.75,
13072
- cacheWritePer1MUsd: 34.375
13153
+ cacheWritePer1MUsd: 34.375,
13154
+ cacheWrite1hPer1MUsd: 55
13073
13155
  },
13074
13156
  "au.anthropic.claude-opus-4-6-v1": {
13075
13157
  inputPer1MUsd: 5.5,
13076
13158
  outputPer1MUsd: 27.5,
13077
13159
  cacheReadPer1MUsd: 0.55,
13078
- cacheWritePer1MUsd: 6.875
13160
+ cacheWritePer1MUsd: 6.875,
13161
+ cacheWrite1hPer1MUsd: 11
13079
13162
  },
13080
13163
  "au.anthropic.claude-opus-4-7": {
13081
13164
  inputPer1MUsd: 5.5,
13082
13165
  outputPer1MUsd: 27.5,
13083
13166
  cacheReadPer1MUsd: 0.55,
13084
- cacheWritePer1MUsd: 6.875
13167
+ cacheWritePer1MUsd: 6.875,
13168
+ cacheWrite1hPer1MUsd: 11
13085
13169
  },
13086
13170
  "au.anthropic.claude-opus-4-8": {
13087
13171
  inputPer1MUsd: 5.5,
13088
13172
  outputPer1MUsd: 27.5,
13089
13173
  cacheReadPer1MUsd: 0.55,
13090
- cacheWritePer1MUsd: 6.875
13174
+ cacheWritePer1MUsd: 6.875,
13175
+ cacheWrite1hPer1MUsd: 11
13091
13176
  },
13092
13177
  "au.anthropic.claude-opus-5": {
13093
13178
  inputPer1MUsd: 5.5,
13094
13179
  outputPer1MUsd: 27.5,
13095
13180
  cacheReadPer1MUsd: 0.55,
13096
- cacheWritePer1MUsd: 6.875
13181
+ cacheWritePer1MUsd: 6.875,
13182
+ cacheWrite1hPer1MUsd: 11
13097
13183
  },
13098
13184
  "au.anthropic.claude-opus-5-5": {
13099
13185
  inputPer1MUsd: 4.4,
13100
13186
  outputPer1MUsd: 22,
13101
13187
  cacheReadPer1MUsd: 0.22,
13102
- cacheWritePer1MUsd: 5.5
13188
+ cacheWritePer1MUsd: 5.5,
13189
+ cacheWrite1hPer1MUsd: 8.8
13103
13190
  },
13104
13191
  "au.anthropic.claude-sonnet-4-5-20250929-v1:0": {
13105
13192
  inputPer1MUsd: 3.3000000000000003,
13106
13193
  outputPer1MUsd: 16.5,
13107
13194
  cacheReadPer1MUsd: 0.33,
13108
- cacheWritePer1MUsd: 4.125
13195
+ cacheWritePer1MUsd: 4.125,
13196
+ cacheWrite1hPer1MUsd: 6.6000000000000005
13109
13197
  },
13110
13198
  "au.anthropic.claude-sonnet-4-6": {
13111
13199
  inputPer1MUsd: 3.3000000000000003,
13112
13200
  outputPer1MUsd: 16.5,
13113
13201
  cacheReadPer1MUsd: 0.33,
13114
- cacheWritePer1MUsd: 4.125
13202
+ cacheWritePer1MUsd: 4.125,
13203
+ cacheWrite1hPer1MUsd: 6.6000000000000005
13115
13204
  },
13116
13205
  "au.anthropic.claude-sonnet-5": {
13117
13206
  inputPer1MUsd: 2.2,
13118
13207
  outputPer1MUsd: 11,
13119
13208
  cacheReadPer1MUsd: 0.22,
13120
- cacheWritePer1MUsd: 2.75
13209
+ cacheWritePer1MUsd: 2.75,
13210
+ cacheWrite1hPer1MUsd: 4.4
13121
13211
  },
13122
13212
  "au.anthropic.claude-sonnet-5-5": {
13123
13213
  inputPer1MUsd: 2.2,
13124
13214
  outputPer1MUsd: 11,
13125
13215
  cacheReadPer1MUsd: 0.22,
13126
- cacheWritePer1MUsd: 2.75
13216
+ cacheWritePer1MUsd: 2.75,
13217
+ cacheWrite1hPer1MUsd: 4.4
13127
13218
  },
13128
13219
  "azure/ada": {
13129
13220
  inputPer1MUsd: 0.09999999999999999,
@@ -14407,85 +14498,99 @@ var litellm_pricing_snapshot_default = {
14407
14498
  inputPer1MUsd: 10,
14408
14499
  outputPer1MUsd: 50,
14409
14500
  cacheReadPer1MUsd: 1,
14410
- cacheWritePer1MUsd: 12.5
14501
+ cacheWritePer1MUsd: 12.5,
14502
+ cacheWrite1hPer1MUsd: 20
14411
14503
  },
14412
14504
  "azure_ai/claude-fable-5-1": {
14413
14505
  inputPer1MUsd: 10,
14414
14506
  outputPer1MUsd: 50,
14415
14507
  cacheReadPer1MUsd: 0.25,
14416
- cacheWritePer1MUsd: 12.5
14508
+ cacheWritePer1MUsd: 12.5,
14509
+ cacheWrite1hPer1MUsd: 20
14417
14510
  },
14418
14511
  "azure_ai/claude-haiku-4-5": {
14419
14512
  inputPer1MUsd: 1,
14420
14513
  outputPer1MUsd: 5,
14421
14514
  cacheReadPer1MUsd: 0.09999999999999999,
14422
- cacheWritePer1MUsd: 1.25
14515
+ cacheWritePer1MUsd: 1.25,
14516
+ cacheWrite1hPer1MUsd: 2
14423
14517
  },
14424
14518
  "azure_ai/claude-haiku-5-5": {
14425
14519
  inputPer1MUsd: 0.09999999999999999,
14426
14520
  outputPer1MUsd: 0.5,
14427
14521
  cacheReadPer1MUsd: 0.01,
14428
- cacheWritePer1MUsd: 0.125
14522
+ cacheWritePer1MUsd: 0.125,
14523
+ cacheWrite1hPer1MUsd: 0.19999999999999998
14429
14524
  },
14430
14525
  "azure_ai/claude-opus-4-5": {
14431
14526
  inputPer1MUsd: 5,
14432
14527
  outputPer1MUsd: 25,
14433
14528
  cacheReadPer1MUsd: 0.5,
14434
- cacheWritePer1MUsd: 6.25
14529
+ cacheWritePer1MUsd: 6.25,
14530
+ cacheWrite1hPer1MUsd: 10
14435
14531
  },
14436
14532
  "azure_ai/claude-opus-4-6": {
14437
14533
  inputPer1MUsd: 5,
14438
14534
  outputPer1MUsd: 25,
14439
14535
  cacheReadPer1MUsd: 0.5,
14440
- cacheWritePer1MUsd: 6.25
14536
+ cacheWritePer1MUsd: 6.25,
14537
+ cacheWrite1hPer1MUsd: 10
14441
14538
  },
14442
14539
  "azure_ai/claude-opus-4-7": {
14443
14540
  inputPer1MUsd: 5,
14444
14541
  outputPer1MUsd: 25,
14445
14542
  cacheReadPer1MUsd: 0.5,
14446
- cacheWritePer1MUsd: 6.25
14543
+ cacheWritePer1MUsd: 6.25,
14544
+ cacheWrite1hPer1MUsd: 10
14447
14545
  },
14448
14546
  "azure_ai/claude-opus-4-8": {
14449
14547
  inputPer1MUsd: 5,
14450
14548
  outputPer1MUsd: 25,
14451
14549
  cacheReadPer1MUsd: 0.5,
14452
- cacheWritePer1MUsd: 6.25
14550
+ cacheWritePer1MUsd: 6.25,
14551
+ cacheWrite1hPer1MUsd: 10
14453
14552
  },
14454
14553
  "azure_ai/claude-opus-5": {
14455
14554
  inputPer1MUsd: 5,
14456
14555
  outputPer1MUsd: 25,
14457
14556
  cacheReadPer1MUsd: 0.5,
14458
- cacheWritePer1MUsd: 6.25
14557
+ cacheWritePer1MUsd: 6.25,
14558
+ cacheWrite1hPer1MUsd: 10
14459
14559
  },
14460
14560
  "azure_ai/claude-opus-5-5": {
14461
14561
  inputPer1MUsd: 4,
14462
14562
  outputPer1MUsd: 20,
14463
14563
  cacheReadPer1MUsd: 0.19999999999999998,
14464
- cacheWritePer1MUsd: 5
14564
+ cacheWritePer1MUsd: 5,
14565
+ cacheWrite1hPer1MUsd: 8
14465
14566
  },
14466
14567
  "azure_ai/claude-sonnet-4-5": {
14467
14568
  inputPer1MUsd: 3,
14468
14569
  outputPer1MUsd: 15,
14469
14570
  cacheReadPer1MUsd: 0.3,
14470
- cacheWritePer1MUsd: 3.75
14571
+ cacheWritePer1MUsd: 3.75,
14572
+ cacheWrite1hPer1MUsd: 6
14471
14573
  },
14472
14574
  "azure_ai/claude-sonnet-4-6": {
14473
14575
  inputPer1MUsd: 3,
14474
14576
  outputPer1MUsd: 15,
14475
14577
  cacheReadPer1MUsd: 0.3,
14476
- cacheWritePer1MUsd: 3.75
14578
+ cacheWritePer1MUsd: 3.75,
14579
+ cacheWrite1hPer1MUsd: 6
14477
14580
  },
14478
14581
  "azure_ai/claude-sonnet-5": {
14479
14582
  inputPer1MUsd: 2,
14480
14583
  outputPer1MUsd: 10,
14481
14584
  cacheReadPer1MUsd: 0.19999999999999998,
14482
- cacheWritePer1MUsd: 2.5
14585
+ cacheWritePer1MUsd: 2.5,
14586
+ cacheWrite1hPer1MUsd: 4
14483
14587
  },
14484
14588
  "azure_ai/claude-sonnet-5-5": {
14485
14589
  inputPer1MUsd: 2,
14486
14590
  outputPer1MUsd: 10,
14487
14591
  cacheReadPer1MUsd: 0.19999999999999998,
14488
- cacheWritePer1MUsd: 2.5
14592
+ cacheWritePer1MUsd: 2.5,
14593
+ cacheWrite1hPer1MUsd: 4
14489
14594
  },
14490
14595
  "azure_ai/codestral-2501": {
14491
14596
  inputPer1MUsd: 0.3,
@@ -15507,61 +15612,71 @@ var litellm_pricing_snapshot_default = {
15507
15612
  inputPer1MUsd: 12,
15508
15613
  outputPer1MUsd: 60,
15509
15614
  cacheReadPer1MUsd: 0.3,
15510
- cacheWritePer1MUsd: 15
15615
+ cacheWritePer1MUsd: 15,
15616
+ cacheWrite1hPer1MUsd: 24
15511
15617
  },
15512
15618
  "bedrock/us-gov-east-1/anthropic.claude-haiku-4-5-20251001-v1:0": {
15513
15619
  inputPer1MUsd: 1.2,
15514
15620
  outputPer1MUsd: 6,
15515
15621
  cacheReadPer1MUsd: 0.12,
15516
- cacheWritePer1MUsd: 1.5
15622
+ cacheWritePer1MUsd: 1.5,
15623
+ cacheWrite1hPer1MUsd: 2.4
15517
15624
  },
15518
15625
  "bedrock/us-gov-east-1/anthropic.claude-haiku-5-5": {
15519
15626
  inputPer1MUsd: 0.12,
15520
15627
  outputPer1MUsd: 0.6,
15521
15628
  cacheReadPer1MUsd: 0.012,
15522
- cacheWritePer1MUsd: 0.15
15629
+ cacheWritePer1MUsd: 0.15,
15630
+ cacheWrite1hPer1MUsd: 0.24
15523
15631
  },
15524
15632
  "bedrock/us-gov-east-1/anthropic.claude-opus-4-8": {
15525
15633
  inputPer1MUsd: 6,
15526
15634
  outputPer1MUsd: 30,
15527
15635
  cacheReadPer1MUsd: 0.6,
15528
- cacheWritePer1MUsd: 7.5
15636
+ cacheWritePer1MUsd: 7.5,
15637
+ cacheWrite1hPer1MUsd: 12
15529
15638
  },
15530
15639
  "bedrock/us-gov-east-1/anthropic.claude-opus-5": {
15531
15640
  inputPer1MUsd: 6,
15532
15641
  outputPer1MUsd: 30,
15533
15642
  cacheReadPer1MUsd: 0.6,
15534
- cacheWritePer1MUsd: 7.5
15643
+ cacheWritePer1MUsd: 7.5,
15644
+ cacheWrite1hPer1MUsd: 12
15535
15645
  },
15536
15646
  "bedrock/us-gov-east-1/anthropic.claude-opus-5-5": {
15537
15647
  inputPer1MUsd: 4.8,
15538
15648
  outputPer1MUsd: 24,
15539
15649
  cacheReadPer1MUsd: 0.24,
15540
- cacheWritePer1MUsd: 6
15650
+ cacheWritePer1MUsd: 6,
15651
+ cacheWrite1hPer1MUsd: 9.6
15541
15652
  },
15542
15653
  "bedrock/us-gov-east-1/anthropic.claude-sonnet-4-5-20250929-v1:0": {
15543
15654
  inputPer1MUsd: 3.5999999999999996,
15544
15655
  outputPer1MUsd: 18,
15545
15656
  cacheReadPer1MUsd: 0.36,
15546
- cacheWritePer1MUsd: 4.5
15657
+ cacheWritePer1MUsd: 4.5,
15658
+ cacheWrite1hPer1MUsd: 7.199999999999999
15547
15659
  },
15548
15660
  "bedrock/us-gov-east-1/anthropic.claude-sonnet-5": {
15549
15661
  inputPer1MUsd: 2.4,
15550
15662
  outputPer1MUsd: 12,
15551
15663
  cacheReadPer1MUsd: 0.24,
15552
- cacheWritePer1MUsd: 3
15664
+ cacheWritePer1MUsd: 3,
15665
+ cacheWrite1hPer1MUsd: 4.8
15553
15666
  },
15554
15667
  "bedrock/us-gov-east-1/anthropic.claude-sonnet-5-5": {
15555
15668
  inputPer1MUsd: 2.4,
15556
15669
  outputPer1MUsd: 12,
15557
15670
  cacheReadPer1MUsd: 0.24,
15558
- cacheWritePer1MUsd: 3
15671
+ cacheWritePer1MUsd: 3,
15672
+ cacheWrite1hPer1MUsd: 4.8
15559
15673
  },
15560
15674
  "bedrock/us-gov-east-1/claude-sonnet-4-5-20250929-v1:0": {
15561
15675
  inputPer1MUsd: 3.5999999999999996,
15562
15676
  outputPer1MUsd: 18,
15563
15677
  cacheReadPer1MUsd: 0.36,
15564
- cacheWritePer1MUsd: 4.5
15678
+ cacheWritePer1MUsd: 4.5,
15679
+ cacheWrite1hPer1MUsd: 7.199999999999999
15565
15680
  },
15566
15681
  "bedrock/us-gov-east-1/meta.llama3-70b-instruct-v1:0": {
15567
15682
  inputPer1MUsd: 2.65,
@@ -15638,61 +15753,71 @@ var litellm_pricing_snapshot_default = {
15638
15753
  inputPer1MUsd: 12,
15639
15754
  outputPer1MUsd: 60,
15640
15755
  cacheReadPer1MUsd: 0.3,
15641
- cacheWritePer1MUsd: 15
15756
+ cacheWritePer1MUsd: 15,
15757
+ cacheWrite1hPer1MUsd: 24
15642
15758
  },
15643
15759
  "bedrock/us-gov-west-1/anthropic.claude-haiku-4-5-20251001-v1:0": {
15644
15760
  inputPer1MUsd: 1.2,
15645
15761
  outputPer1MUsd: 6,
15646
15762
  cacheReadPer1MUsd: 0.12,
15647
- cacheWritePer1MUsd: 1.5
15763
+ cacheWritePer1MUsd: 1.5,
15764
+ cacheWrite1hPer1MUsd: 2.4
15648
15765
  },
15649
15766
  "bedrock/us-gov-west-1/anthropic.claude-haiku-5-5": {
15650
15767
  inputPer1MUsd: 0.12,
15651
15768
  outputPer1MUsd: 0.6,
15652
15769
  cacheReadPer1MUsd: 0.012,
15653
- cacheWritePer1MUsd: 0.15
15770
+ cacheWritePer1MUsd: 0.15,
15771
+ cacheWrite1hPer1MUsd: 0.24
15654
15772
  },
15655
15773
  "bedrock/us-gov-west-1/anthropic.claude-opus-4-8": {
15656
15774
  inputPer1MUsd: 6,
15657
15775
  outputPer1MUsd: 30,
15658
15776
  cacheReadPer1MUsd: 0.6,
15659
- cacheWritePer1MUsd: 7.5
15777
+ cacheWritePer1MUsd: 7.5,
15778
+ cacheWrite1hPer1MUsd: 12
15660
15779
  },
15661
15780
  "bedrock/us-gov-west-1/anthropic.claude-opus-5": {
15662
15781
  inputPer1MUsd: 6,
15663
15782
  outputPer1MUsd: 30,
15664
15783
  cacheReadPer1MUsd: 0.6,
15665
- cacheWritePer1MUsd: 7.5
15784
+ cacheWritePer1MUsd: 7.5,
15785
+ cacheWrite1hPer1MUsd: 12
15666
15786
  },
15667
15787
  "bedrock/us-gov-west-1/anthropic.claude-opus-5-5": {
15668
15788
  inputPer1MUsd: 4.8,
15669
15789
  outputPer1MUsd: 24,
15670
15790
  cacheReadPer1MUsd: 0.24,
15671
- cacheWritePer1MUsd: 6
15791
+ cacheWritePer1MUsd: 6,
15792
+ cacheWrite1hPer1MUsd: 9.6
15672
15793
  },
15673
15794
  "bedrock/us-gov-west-1/anthropic.claude-sonnet-4-5-20250929-v1:0": {
15674
15795
  inputPer1MUsd: 3.5999999999999996,
15675
15796
  outputPer1MUsd: 18,
15676
15797
  cacheReadPer1MUsd: 0.36,
15677
- cacheWritePer1MUsd: 4.5
15798
+ cacheWritePer1MUsd: 4.5,
15799
+ cacheWrite1hPer1MUsd: 7.199999999999999
15678
15800
  },
15679
15801
  "bedrock/us-gov-west-1/anthropic.claude-sonnet-5": {
15680
15802
  inputPer1MUsd: 2.4,
15681
15803
  outputPer1MUsd: 12,
15682
15804
  cacheReadPer1MUsd: 0.24,
15683
- cacheWritePer1MUsd: 3
15805
+ cacheWritePer1MUsd: 3,
15806
+ cacheWrite1hPer1MUsd: 4.8
15684
15807
  },
15685
15808
  "bedrock/us-gov-west-1/anthropic.claude-sonnet-5-5": {
15686
15809
  inputPer1MUsd: 2.4,
15687
15810
  outputPer1MUsd: 12,
15688
15811
  cacheReadPer1MUsd: 0.24,
15689
- cacheWritePer1MUsd: 3
15812
+ cacheWritePer1MUsd: 3,
15813
+ cacheWrite1hPer1MUsd: 4.8
15690
15814
  },
15691
15815
  "bedrock/us-gov-west-1/claude-sonnet-4-5-20250929-v1:0": {
15692
15816
  inputPer1MUsd: 3.5999999999999996,
15693
15817
  outputPer1MUsd: 18,
15694
15818
  cacheReadPer1MUsd: 0.36,
15695
- cacheWritePer1MUsd: 4.5
15819
+ cacheWritePer1MUsd: 4.5,
15820
+ cacheWrite1hPer1MUsd: 7.199999999999999
15696
15821
  },
15697
15822
  "bedrock/us-gov-west-1/meta.llama3-70b-instruct-v1:0": {
15698
15823
  inputPer1MUsd: 2.65,
@@ -15796,25 +15921,29 @@ var litellm_pricing_snapshot_default = {
15796
15921
  inputPer1MUsd: 1,
15797
15922
  outputPer1MUsd: 5,
15798
15923
  cacheReadPer1MUsd: 0.09999999999999999,
15799
- cacheWritePer1MUsd: 1.25
15924
+ cacheWritePer1MUsd: 1.25,
15925
+ cacheWrite1hPer1MUsd: 2
15800
15926
  },
15801
15927
  "bedrock_mantle/anthropic.claude-haiku-5-5": {
15802
15928
  inputPer1MUsd: 0.11,
15803
15929
  outputPer1MUsd: 0.55,
15804
15930
  cacheReadPer1MUsd: 0.011,
15805
- cacheWritePer1MUsd: 0.1375
15931
+ cacheWritePer1MUsd: 0.1375,
15932
+ cacheWrite1hPer1MUsd: 0.22
15806
15933
  },
15807
15934
  "bedrock_mantle/anthropic.claude-opus-5-5": {
15808
15935
  inputPer1MUsd: 4.4,
15809
15936
  outputPer1MUsd: 22,
15810
15937
  cacheReadPer1MUsd: 0.22,
15811
- cacheWritePer1MUsd: 5.5
15938
+ cacheWritePer1MUsd: 5.5,
15939
+ cacheWrite1hPer1MUsd: 8.8
15812
15940
  },
15813
15941
  "bedrock_mantle/anthropic.claude-sonnet-5-5": {
15814
15942
  inputPer1MUsd: 2.2,
15815
15943
  outputPer1MUsd: 11,
15816
15944
  cacheReadPer1MUsd: 0.22,
15817
- cacheWritePer1MUsd: 2.75
15945
+ cacheWritePer1MUsd: 2.75,
15946
+ cacheWrite1hPer1MUsd: 4.4
15818
15947
  },
15819
15948
  "bedrock_mantle/deepseek.v3.1": {
15820
15949
  inputPer1MUsd: 0.58,
@@ -15962,19 +16091,22 @@ var litellm_pricing_snapshot_default = {
15962
16091
  inputPer1MUsd: 0.12,
15963
16092
  outputPer1MUsd: 0.6,
15964
16093
  cacheReadPer1MUsd: 0.012,
15965
- cacheWritePer1MUsd: 0.15
16094
+ cacheWritePer1MUsd: 0.15,
16095
+ cacheWrite1hPer1MUsd: 0.24
15966
16096
  },
15967
16097
  "bedrock_mantle/us-gov-west-1/anthropic.claude-opus-5-5": {
15968
16098
  inputPer1MUsd: 4.8,
15969
16099
  outputPer1MUsd: 24,
15970
16100
  cacheReadPer1MUsd: 0.24,
15971
- cacheWritePer1MUsd: 6
16101
+ cacheWritePer1MUsd: 6,
16102
+ cacheWrite1hPer1MUsd: 9.6
15972
16103
  },
15973
16104
  "bedrock_mantle/us-gov-west-1/anthropic.claude-sonnet-5-5": {
15974
16105
  inputPer1MUsd: 2.4,
15975
16106
  outputPer1MUsd: 12,
15976
16107
  cacheReadPer1MUsd: 0.24,
15977
- cacheWritePer1MUsd: 3
16108
+ cacheWritePer1MUsd: 3,
16109
+ cacheWrite1hPer1MUsd: 4.8
15978
16110
  },
15979
16111
  "bedrock_mantle/us-gov-west-1/google.gemma-4-26b-a4b": {
15980
16112
  inputPer1MUsd: 0.156,
@@ -16095,139 +16227,162 @@ var litellm_pricing_snapshot_default = {
16095
16227
  inputPer1MUsd: 10,
16096
16228
  outputPer1MUsd: 50,
16097
16229
  cacheReadPer1MUsd: 1,
16098
- cacheWritePer1MUsd: 12.5
16230
+ cacheWritePer1MUsd: 12.5,
16231
+ cacheWrite1hPer1MUsd: 20
16099
16232
  },
16100
16233
  "claude-fable-5-1": {
16101
16234
  inputPer1MUsd: 10,
16102
16235
  outputPer1MUsd: 50,
16103
16236
  cacheReadPer1MUsd: 0.25,
16104
- cacheWritePer1MUsd: 12.5
16237
+ cacheWritePer1MUsd: 12.5,
16238
+ cacheWrite1hPer1MUsd: 20
16105
16239
  },
16106
16240
  "claude-haiku-4-5": {
16107
16241
  inputPer1MUsd: 1,
16108
16242
  outputPer1MUsd: 5,
16109
16243
  cacheReadPer1MUsd: 0.09999999999999999,
16110
- cacheWritePer1MUsd: 1.25
16244
+ cacheWritePer1MUsd: 1.25,
16245
+ cacheWrite1hPer1MUsd: 2
16111
16246
  },
16112
16247
  "claude-haiku-4-5-20251001": {
16113
16248
  inputPer1MUsd: 1,
16114
16249
  outputPer1MUsd: 5,
16115
16250
  cacheReadPer1MUsd: 0.09999999999999999,
16116
- cacheWritePer1MUsd: 1.25
16251
+ cacheWritePer1MUsd: 1.25,
16252
+ cacheWrite1hPer1MUsd: 2
16117
16253
  },
16118
16254
  "claude-haiku-5-5": {
16119
16255
  inputPer1MUsd: 0.09999999999999999,
16120
16256
  outputPer1MUsd: 0.5,
16121
16257
  cacheReadPer1MUsd: 0.01,
16122
- cacheWritePer1MUsd: 0.125
16258
+ cacheWritePer1MUsd: 0.125,
16259
+ cacheWrite1hPer1MUsd: 0.19999999999999998
16123
16260
  },
16124
16261
  "claude-mythos-5": {
16125
16262
  inputPer1MUsd: 10,
16126
16263
  outputPer1MUsd: 50,
16127
16264
  cacheReadPer1MUsd: 1,
16128
- cacheWritePer1MUsd: 12.5
16265
+ cacheWritePer1MUsd: 12.5,
16266
+ cacheWrite1hPer1MUsd: 20
16129
16267
  },
16130
16268
  "claude-mythos-5-1": {
16131
16269
  inputPer1MUsd: 10,
16132
16270
  outputPer1MUsd: 50,
16133
16271
  cacheReadPer1MUsd: 0.25,
16134
- cacheWritePer1MUsd: 12.5
16272
+ cacheWritePer1MUsd: 12.5,
16273
+ cacheWrite1hPer1MUsd: 20
16135
16274
  },
16136
16275
  "claude-mythos-preview": {
16137
16276
  inputPer1MUsd: 10,
16138
16277
  outputPer1MUsd: 50,
16139
16278
  cacheReadPer1MUsd: 1,
16140
- cacheWritePer1MUsd: 12.5
16279
+ cacheWritePer1MUsd: 12.5,
16280
+ cacheWrite1hPer1MUsd: 20
16141
16281
  },
16142
16282
  "claude-opus-4-5": {
16143
16283
  inputPer1MUsd: 5,
16144
16284
  outputPer1MUsd: 25,
16145
16285
  cacheReadPer1MUsd: 0.5,
16146
- cacheWritePer1MUsd: 6.25
16286
+ cacheWritePer1MUsd: 6.25,
16287
+ cacheWrite1hPer1MUsd: 10
16147
16288
  },
16148
16289
  "claude-opus-4-5-20251101": {
16149
16290
  inputPer1MUsd: 5,
16150
16291
  outputPer1MUsd: 25,
16151
16292
  cacheReadPer1MUsd: 0.5,
16152
- cacheWritePer1MUsd: 6.25
16293
+ cacheWritePer1MUsd: 6.25,
16294
+ cacheWrite1hPer1MUsd: 10
16153
16295
  },
16154
16296
  "claude-opus-4-6": {
16155
16297
  inputPer1MUsd: 5,
16156
16298
  outputPer1MUsd: 25,
16157
16299
  cacheReadPer1MUsd: 0.5,
16158
- cacheWritePer1MUsd: 6.25
16300
+ cacheWritePer1MUsd: 6.25,
16301
+ cacheWrite1hPer1MUsd: 10
16159
16302
  },
16160
16303
  "claude-opus-4-6-20260205": {
16161
16304
  inputPer1MUsd: 5,
16162
16305
  outputPer1MUsd: 25,
16163
16306
  cacheReadPer1MUsd: 0.5,
16164
- cacheWritePer1MUsd: 6.25
16307
+ cacheWritePer1MUsd: 6.25,
16308
+ cacheWrite1hPer1MUsd: 10
16165
16309
  },
16166
16310
  "claude-opus-4-7": {
16167
16311
  inputPer1MUsd: 5,
16168
16312
  outputPer1MUsd: 25,
16169
16313
  cacheReadPer1MUsd: 0.5,
16170
- cacheWritePer1MUsd: 6.25
16314
+ cacheWritePer1MUsd: 6.25,
16315
+ cacheWrite1hPer1MUsd: 10
16171
16316
  },
16172
16317
  "claude-opus-4-7-20260416": {
16173
16318
  inputPer1MUsd: 5,
16174
16319
  outputPer1MUsd: 25,
16175
16320
  cacheReadPer1MUsd: 0.5,
16176
- cacheWritePer1MUsd: 6.25
16321
+ cacheWritePer1MUsd: 6.25,
16322
+ cacheWrite1hPer1MUsd: 10
16177
16323
  },
16178
16324
  "claude-opus-4-8": {
16179
16325
  inputPer1MUsd: 5,
16180
16326
  outputPer1MUsd: 25,
16181
16327
  cacheReadPer1MUsd: 0.5,
16182
- cacheWritePer1MUsd: 6.25
16328
+ cacheWritePer1MUsd: 6.25,
16329
+ cacheWrite1hPer1MUsd: 10
16183
16330
  },
16184
16331
  "claude-opus-5": {
16185
16332
  inputPer1MUsd: 5,
16186
16333
  outputPer1MUsd: 25,
16187
16334
  cacheReadPer1MUsd: 0.5,
16188
- cacheWritePer1MUsd: 6.25
16335
+ cacheWritePer1MUsd: 6.25,
16336
+ cacheWrite1hPer1MUsd: 10
16189
16337
  },
16190
16338
  "claude-opus-5-5": {
16191
16339
  inputPer1MUsd: 4,
16192
16340
  outputPer1MUsd: 20,
16193
16341
  cacheReadPer1MUsd: 0.19999999999999998,
16194
- cacheWritePer1MUsd: 5
16342
+ cacheWritePer1MUsd: 5,
16343
+ cacheWrite1hPer1MUsd: 8
16195
16344
  },
16196
16345
  "claude-sonnet-4-5": {
16197
16346
  inputPer1MUsd: 3,
16198
16347
  outputPer1MUsd: 15,
16199
16348
  cacheReadPer1MUsd: 0.3,
16200
- cacheWritePer1MUsd: 3.75
16349
+ cacheWritePer1MUsd: 3.75,
16350
+ cacheWrite1hPer1MUsd: 6
16201
16351
  },
16202
16352
  "claude-sonnet-4-5-20250929": {
16203
16353
  inputPer1MUsd: 3,
16204
16354
  outputPer1MUsd: 15,
16205
16355
  cacheReadPer1MUsd: 0.3,
16206
- cacheWritePer1MUsd: 3.75
16356
+ cacheWritePer1MUsd: 3.75,
16357
+ cacheWrite1hPer1MUsd: 6
16207
16358
  },
16208
16359
  "claude-sonnet-4-5-20250929-v1:0": {
16209
16360
  inputPer1MUsd: 3,
16210
16361
  outputPer1MUsd: 15,
16211
16362
  cacheReadPer1MUsd: 0.3,
16212
- cacheWritePer1MUsd: 3.75
16363
+ cacheWritePer1MUsd: 3.75,
16364
+ cacheWrite1hPer1MUsd: 6
16213
16365
  },
16214
16366
  "claude-sonnet-4-6": {
16215
16367
  inputPer1MUsd: 3,
16216
16368
  outputPer1MUsd: 15,
16217
16369
  cacheReadPer1MUsd: 0.3,
16218
- cacheWritePer1MUsd: 3.75
16370
+ cacheWritePer1MUsd: 3.75,
16371
+ cacheWrite1hPer1MUsd: 6
16219
16372
  },
16220
16373
  "claude-sonnet-5": {
16221
16374
  inputPer1MUsd: 2,
16222
16375
  outputPer1MUsd: 10,
16223
16376
  cacheReadPer1MUsd: 0.19999999999999998,
16224
- cacheWritePer1MUsd: 2.5
16377
+ cacheWritePer1MUsd: 2.5,
16378
+ cacheWrite1hPer1MUsd: 4
16225
16379
  },
16226
16380
  "claude-sonnet-5-5": {
16227
16381
  inputPer1MUsd: 2,
16228
16382
  outputPer1MUsd: 10,
16229
16383
  cacheReadPer1MUsd: 0.09999999999999999,
16230
- cacheWritePer1MUsd: 2.5
16384
+ cacheWritePer1MUsd: 2.5,
16385
+ cacheWrite1hPer1MUsd: 4
16231
16386
  },
16232
16387
  "cloudflare/@cf/aisingapore/gemma-sea-lion-v4-27b-it": {
16233
16388
  inputPer1MUsd: 0.351,
@@ -16690,7 +16845,8 @@ var litellm_pricing_snapshot_default = {
16690
16845
  inputPer1MUsd: 4.00001,
16691
16846
  outputPer1MUsd: 19.99998,
16692
16847
  cacheReadPer1MUsd: 0.19999,
16693
- cacheWritePer1MUsd: 5.00003
16848
+ cacheWritePer1MUsd: 5.00003,
16849
+ cacheWrite1hPer1MUsd: 8.00002
16694
16850
  },
16695
16851
  "databricks/databricks-claude-sonnet-4": {
16696
16852
  inputPer1MUsd: 2.9999900000000004,
@@ -17780,25 +17936,29 @@ var litellm_pricing_snapshot_default = {
17780
17936
  inputPer1MUsd: 11,
17781
17937
  outputPer1MUsd: 55,
17782
17938
  cacheReadPer1MUsd: 1.1,
17783
- cacheWritePer1MUsd: 13.75
17939
+ cacheWritePer1MUsd: 13.75,
17940
+ cacheWrite1hPer1MUsd: 22
17784
17941
  },
17785
17942
  "eu.anthropic.claude-fable-5-1": {
17786
17943
  inputPer1MUsd: 11,
17787
17944
  outputPer1MUsd: 55,
17788
17945
  cacheReadPer1MUsd: 0.275,
17789
- cacheWritePer1MUsd: 13.75
17946
+ cacheWritePer1MUsd: 13.75,
17947
+ cacheWrite1hPer1MUsd: 22
17790
17948
  },
17791
17949
  "eu.anthropic.claude-haiku-4-5-20251001-v1:0": {
17792
17950
  inputPer1MUsd: 1.1,
17793
17951
  outputPer1MUsd: 5.5,
17794
17952
  cacheReadPer1MUsd: 0.11,
17795
- cacheWritePer1MUsd: 1.375
17953
+ cacheWritePer1MUsd: 1.375,
17954
+ cacheWrite1hPer1MUsd: 2.2
17796
17955
  },
17797
17956
  "eu.anthropic.claude-haiku-5-5": {
17798
17957
  inputPer1MUsd: 0.11,
17799
17958
  outputPer1MUsd: 0.55,
17800
17959
  cacheReadPer1MUsd: 0.011,
17801
- cacheWritePer1MUsd: 0.1375
17960
+ cacheWritePer1MUsd: 0.1375,
17961
+ cacheWrite1hPer1MUsd: 0.22
17802
17962
  },
17803
17963
  "eu.anthropic.claude-opus-4-1-20250805-v1:0": {
17804
17964
  inputPer1MUsd: 15,
@@ -17816,37 +17976,43 @@ var litellm_pricing_snapshot_default = {
17816
17976
  inputPer1MUsd: 5.5,
17817
17977
  outputPer1MUsd: 27.5,
17818
17978
  cacheReadPer1MUsd: 0.55,
17819
- cacheWritePer1MUsd: 6.875
17979
+ cacheWritePer1MUsd: 6.875,
17980
+ cacheWrite1hPer1MUsd: 11
17820
17981
  },
17821
17982
  "eu.anthropic.claude-opus-4-6-v1": {
17822
17983
  inputPer1MUsd: 5.5,
17823
17984
  outputPer1MUsd: 27.5,
17824
17985
  cacheReadPer1MUsd: 0.55,
17825
- cacheWritePer1MUsd: 6.875
17986
+ cacheWritePer1MUsd: 6.875,
17987
+ cacheWrite1hPer1MUsd: 11
17826
17988
  },
17827
17989
  "eu.anthropic.claude-opus-4-7": {
17828
17990
  inputPer1MUsd: 5.5,
17829
17991
  outputPer1MUsd: 27.5,
17830
17992
  cacheReadPer1MUsd: 0.55,
17831
- cacheWritePer1MUsd: 6.875
17993
+ cacheWritePer1MUsd: 6.875,
17994
+ cacheWrite1hPer1MUsd: 11
17832
17995
  },
17833
17996
  "eu.anthropic.claude-opus-4-8": {
17834
17997
  inputPer1MUsd: 5.5,
17835
17998
  outputPer1MUsd: 27.5,
17836
17999
  cacheReadPer1MUsd: 0.55,
17837
- cacheWritePer1MUsd: 6.875
18000
+ cacheWritePer1MUsd: 6.875,
18001
+ cacheWrite1hPer1MUsd: 11
17838
18002
  },
17839
18003
  "eu.anthropic.claude-opus-5": {
17840
18004
  inputPer1MUsd: 5.5,
17841
18005
  outputPer1MUsd: 27.5,
17842
18006
  cacheReadPer1MUsd: 0.55,
17843
- cacheWritePer1MUsd: 6.875
18007
+ cacheWritePer1MUsd: 6.875,
18008
+ cacheWrite1hPer1MUsd: 11
17844
18009
  },
17845
18010
  "eu.anthropic.claude-opus-5-5": {
17846
18011
  inputPer1MUsd: 4.4,
17847
18012
  outputPer1MUsd: 22,
17848
18013
  cacheReadPer1MUsd: 0.22,
17849
- cacheWritePer1MUsd: 5.5
18014
+ cacheWritePer1MUsd: 5.5,
18015
+ cacheWrite1hPer1MUsd: 8.8
17850
18016
  },
17851
18017
  "eu.anthropic.claude-sonnet-4-20250514-v1:0": {
17852
18018
  inputPer1MUsd: 3,
@@ -17858,25 +18024,29 @@ var litellm_pricing_snapshot_default = {
17858
18024
  inputPer1MUsd: 3.3000000000000003,
17859
18025
  outputPer1MUsd: 16.5,
17860
18026
  cacheReadPer1MUsd: 0.33,
17861
- cacheWritePer1MUsd: 4.125
18027
+ cacheWritePer1MUsd: 4.125,
18028
+ cacheWrite1hPer1MUsd: 6.6000000000000005
17862
18029
  },
17863
18030
  "eu.anthropic.claude-sonnet-4-6": {
17864
18031
  inputPer1MUsd: 3.3000000000000003,
17865
18032
  outputPer1MUsd: 16.5,
17866
18033
  cacheReadPer1MUsd: 0.33,
17867
- cacheWritePer1MUsd: 4.125
18034
+ cacheWritePer1MUsd: 4.125,
18035
+ cacheWrite1hPer1MUsd: 6.6000000000000005
17868
18036
  },
17869
18037
  "eu.anthropic.claude-sonnet-5": {
17870
18038
  inputPer1MUsd: 2.2,
17871
18039
  outputPer1MUsd: 11,
17872
18040
  cacheReadPer1MUsd: 0.22,
17873
- cacheWritePer1MUsd: 2.75
18041
+ cacheWritePer1MUsd: 2.75,
18042
+ cacheWrite1hPer1MUsd: 4.4
17874
18043
  },
17875
18044
  "eu.anthropic.claude-sonnet-5-5": {
17876
18045
  inputPer1MUsd: 2.2,
17877
18046
  outputPer1MUsd: 11,
17878
18047
  cacheReadPer1MUsd: 0.22,
17879
- cacheWritePer1MUsd: 2.75
18048
+ cacheWritePer1MUsd: 2.75,
18049
+ cacheWrite1hPer1MUsd: 4.4
17880
18050
  },
17881
18051
  "eu.deepseek.v3.2": {
17882
18052
  inputPer1MUsd: 0.74,
@@ -20051,67 +20221,78 @@ var litellm_pricing_snapshot_default = {
20051
20221
  inputPer1MUsd: 10,
20052
20222
  outputPer1MUsd: 50,
20053
20223
  cacheReadPer1MUsd: 1,
20054
- cacheWritePer1MUsd: 12.5
20224
+ cacheWritePer1MUsd: 12.5,
20225
+ cacheWrite1hPer1MUsd: 20
20055
20226
  },
20056
20227
  "global.anthropic.claude-fable-5-1": {
20057
20228
  inputPer1MUsd: 10,
20058
20229
  outputPer1MUsd: 50,
20059
20230
  cacheReadPer1MUsd: 0.25,
20060
- cacheWritePer1MUsd: 12.5
20231
+ cacheWritePer1MUsd: 12.5,
20232
+ cacheWrite1hPer1MUsd: 20
20061
20233
  },
20062
20234
  "global.anthropic.claude-haiku-4-5-20251001-v1:0": {
20063
20235
  inputPer1MUsd: 1,
20064
20236
  outputPer1MUsd: 5,
20065
20237
  cacheReadPer1MUsd: 0.09999999999999999,
20066
- cacheWritePer1MUsd: 1.25
20238
+ cacheWritePer1MUsd: 1.25,
20239
+ cacheWrite1hPer1MUsd: 2
20067
20240
  },
20068
20241
  "global.anthropic.claude-haiku-5-5": {
20069
20242
  inputPer1MUsd: 0.09999999999999999,
20070
20243
  outputPer1MUsd: 0.5,
20071
20244
  cacheReadPer1MUsd: 0.01,
20072
- cacheWritePer1MUsd: 0.125
20245
+ cacheWritePer1MUsd: 0.125,
20246
+ cacheWrite1hPer1MUsd: 0.19999999999999998
20073
20247
  },
20074
20248
  "global.anthropic.claude-mythos-5-1": {
20075
20249
  inputPer1MUsd: 10,
20076
20250
  outputPer1MUsd: 50,
20077
20251
  cacheReadPer1MUsd: 0.25,
20078
- cacheWritePer1MUsd: 12.5
20252
+ cacheWritePer1MUsd: 12.5,
20253
+ cacheWrite1hPer1MUsd: 20
20079
20254
  },
20080
20255
  "global.anthropic.claude-opus-4-5-20251101-v1:0": {
20081
20256
  inputPer1MUsd: 5,
20082
20257
  outputPer1MUsd: 25,
20083
20258
  cacheReadPer1MUsd: 0.5,
20084
- cacheWritePer1MUsd: 6.25
20259
+ cacheWritePer1MUsd: 6.25,
20260
+ cacheWrite1hPer1MUsd: 10
20085
20261
  },
20086
20262
  "global.anthropic.claude-opus-4-6-v1": {
20087
20263
  inputPer1MUsd: 5,
20088
20264
  outputPer1MUsd: 25,
20089
20265
  cacheReadPer1MUsd: 0.5,
20090
- cacheWritePer1MUsd: 6.25
20266
+ cacheWritePer1MUsd: 6.25,
20267
+ cacheWrite1hPer1MUsd: 10
20091
20268
  },
20092
20269
  "global.anthropic.claude-opus-4-7": {
20093
20270
  inputPer1MUsd: 5,
20094
20271
  outputPer1MUsd: 25,
20095
20272
  cacheReadPer1MUsd: 0.5,
20096
- cacheWritePer1MUsd: 6.25
20273
+ cacheWritePer1MUsd: 6.25,
20274
+ cacheWrite1hPer1MUsd: 10
20097
20275
  },
20098
20276
  "global.anthropic.claude-opus-4-8": {
20099
20277
  inputPer1MUsd: 5,
20100
20278
  outputPer1MUsd: 25,
20101
20279
  cacheReadPer1MUsd: 0.5,
20102
- cacheWritePer1MUsd: 6.25
20280
+ cacheWritePer1MUsd: 6.25,
20281
+ cacheWrite1hPer1MUsd: 10
20103
20282
  },
20104
20283
  "global.anthropic.claude-opus-5": {
20105
20284
  inputPer1MUsd: 5,
20106
20285
  outputPer1MUsd: 25,
20107
20286
  cacheReadPer1MUsd: 0.5,
20108
- cacheWritePer1MUsd: 6.25
20287
+ cacheWritePer1MUsd: 6.25,
20288
+ cacheWrite1hPer1MUsd: 10
20109
20289
  },
20110
20290
  "global.anthropic.claude-opus-5-5": {
20111
20291
  inputPer1MUsd: 4,
20112
20292
  outputPer1MUsd: 20,
20113
20293
  cacheReadPer1MUsd: 0.19999999999999998,
20114
- cacheWritePer1MUsd: 5
20294
+ cacheWritePer1MUsd: 5,
20295
+ cacheWrite1hPer1MUsd: 8
20115
20296
  },
20116
20297
  "global.anthropic.claude-sonnet-4-20250514-v1:0": {
20117
20298
  inputPer1MUsd: 3,
@@ -20123,25 +20304,29 @@ var litellm_pricing_snapshot_default = {
20123
20304
  inputPer1MUsd: 3,
20124
20305
  outputPer1MUsd: 15,
20125
20306
  cacheReadPer1MUsd: 0.3,
20126
- cacheWritePer1MUsd: 3.75
20307
+ cacheWritePer1MUsd: 3.75,
20308
+ cacheWrite1hPer1MUsd: 6
20127
20309
  },
20128
20310
  "global.anthropic.claude-sonnet-4-6": {
20129
20311
  inputPer1MUsd: 3,
20130
20312
  outputPer1MUsd: 15,
20131
20313
  cacheReadPer1MUsd: 0.3,
20132
- cacheWritePer1MUsd: 3.75
20314
+ cacheWritePer1MUsd: 3.75,
20315
+ cacheWrite1hPer1MUsd: 6
20133
20316
  },
20134
20317
  "global.anthropic.claude-sonnet-5": {
20135
20318
  inputPer1MUsd: 2,
20136
20319
  outputPer1MUsd: 10,
20137
20320
  cacheReadPer1MUsd: 0.19999999999999998,
20138
- cacheWritePer1MUsd: 2.5
20321
+ cacheWritePer1MUsd: 2.5,
20322
+ cacheWrite1hPer1MUsd: 4
20139
20323
  },
20140
20324
  "global.anthropic.claude-sonnet-5-5": {
20141
20325
  inputPer1MUsd: 2,
20142
20326
  outputPer1MUsd: 10,
20143
20327
  cacheReadPer1MUsd: 0.19999999999999998,
20144
- cacheWritePer1MUsd: 2.5
20328
+ cacheWritePer1MUsd: 2.5,
20329
+ cacheWrite1hPer1MUsd: 4
20145
20330
  },
20146
20331
  "global.cohere.embed-v4:0": {
20147
20332
  inputPer1MUsd: 0.12,
@@ -20999,61 +21184,71 @@ var litellm_pricing_snapshot_default = {
20999
21184
  inputPer1MUsd: 1.1,
21000
21185
  outputPer1MUsd: 5.5,
21001
21186
  cacheReadPer1MUsd: 0.11,
21002
- cacheWritePer1MUsd: 1.375
21187
+ cacheWritePer1MUsd: 1.375,
21188
+ cacheWrite1hPer1MUsd: 2.2
21003
21189
  },
21004
21190
  "jp.anthropic.claude-haiku-5-5": {
21005
21191
  inputPer1MUsd: 0.11,
21006
21192
  outputPer1MUsd: 0.55,
21007
21193
  cacheReadPer1MUsd: 0.011,
21008
- cacheWritePer1MUsd: 0.1375
21194
+ cacheWritePer1MUsd: 0.1375,
21195
+ cacheWrite1hPer1MUsd: 0.22
21009
21196
  },
21010
21197
  "jp.anthropic.claude-opus-4-7": {
21011
21198
  inputPer1MUsd: 5.5,
21012
21199
  outputPer1MUsd: 27.5,
21013
21200
  cacheReadPer1MUsd: 0.55,
21014
- cacheWritePer1MUsd: 6.875
21201
+ cacheWritePer1MUsd: 6.875,
21202
+ cacheWrite1hPer1MUsd: 11
21015
21203
  },
21016
21204
  "jp.anthropic.claude-opus-4-8": {
21017
21205
  inputPer1MUsd: 5.5,
21018
21206
  outputPer1MUsd: 27.5,
21019
21207
  cacheReadPer1MUsd: 0.55,
21020
- cacheWritePer1MUsd: 6.875
21208
+ cacheWritePer1MUsd: 6.875,
21209
+ cacheWrite1hPer1MUsd: 11
21021
21210
  },
21022
21211
  "jp.anthropic.claude-opus-5": {
21023
21212
  inputPer1MUsd: 5.5,
21024
21213
  outputPer1MUsd: 27.5,
21025
21214
  cacheReadPer1MUsd: 0.55,
21026
- cacheWritePer1MUsd: 6.875
21215
+ cacheWritePer1MUsd: 6.875,
21216
+ cacheWrite1hPer1MUsd: 11
21027
21217
  },
21028
21218
  "jp.anthropic.claude-opus-5-5": {
21029
21219
  inputPer1MUsd: 4.4,
21030
21220
  outputPer1MUsd: 22,
21031
21221
  cacheReadPer1MUsd: 0.22,
21032
- cacheWritePer1MUsd: 5.5
21222
+ cacheWritePer1MUsd: 5.5,
21223
+ cacheWrite1hPer1MUsd: 8.8
21033
21224
  },
21034
21225
  "jp.anthropic.claude-sonnet-4-5-20250929-v1:0": {
21035
21226
  inputPer1MUsd: 3.3000000000000003,
21036
21227
  outputPer1MUsd: 16.5,
21037
21228
  cacheReadPer1MUsd: 0.33,
21038
- cacheWritePer1MUsd: 4.125
21229
+ cacheWritePer1MUsd: 4.125,
21230
+ cacheWrite1hPer1MUsd: 6.6000000000000005
21039
21231
  },
21040
21232
  "jp.anthropic.claude-sonnet-4-6": {
21041
21233
  inputPer1MUsd: 3.3000000000000003,
21042
21234
  outputPer1MUsd: 16.5,
21043
21235
  cacheReadPer1MUsd: 0.33,
21044
- cacheWritePer1MUsd: 4.125
21236
+ cacheWritePer1MUsd: 4.125,
21237
+ cacheWrite1hPer1MUsd: 6.6000000000000005
21045
21238
  },
21046
21239
  "jp.anthropic.claude-sonnet-5": {
21047
21240
  inputPer1MUsd: 2.2,
21048
21241
  outputPer1MUsd: 11,
21049
21242
  cacheReadPer1MUsd: 0.22,
21050
- cacheWritePer1MUsd: 2.75
21243
+ cacheWritePer1MUsd: 2.75,
21244
+ cacheWrite1hPer1MUsd: 4.4
21051
21245
  },
21052
21246
  "jp.anthropic.claude-sonnet-5-5": {
21053
21247
  inputPer1MUsd: 2.2,
21054
21248
  outputPer1MUsd: 11,
21055
21249
  cacheReadPer1MUsd: 0.22,
21056
- cacheWritePer1MUsd: 2.75
21250
+ cacheWritePer1MUsd: 2.75,
21251
+ cacheWrite1hPer1MUsd: 4.4
21057
21252
  },
21058
21253
  "kimi-k2-thinking-251104": {
21059
21254
  inputPer1MUsd: 0,
@@ -27256,49 +27451,57 @@ var litellm_pricing_snapshot_default = {
27256
27451
  inputPer1MUsd: 12,
27257
27452
  outputPer1MUsd: 60,
27258
27453
  cacheReadPer1MUsd: 0.3,
27259
- cacheWritePer1MUsd: 15
27454
+ cacheWritePer1MUsd: 15,
27455
+ cacheWrite1hPer1MUsd: 24
27260
27456
  },
27261
27457
  "us-gov.anthropic.claude-haiku-5-5": {
27262
27458
  inputPer1MUsd: 0.12,
27263
27459
  outputPer1MUsd: 0.6,
27264
27460
  cacheReadPer1MUsd: 0.012,
27265
- cacheWritePer1MUsd: 0.15
27461
+ cacheWritePer1MUsd: 0.15,
27462
+ cacheWrite1hPer1MUsd: 0.24
27266
27463
  },
27267
27464
  "us-gov.anthropic.claude-opus-4-8": {
27268
27465
  inputPer1MUsd: 6,
27269
27466
  outputPer1MUsd: 30,
27270
27467
  cacheReadPer1MUsd: 0.6,
27271
- cacheWritePer1MUsd: 7.5
27468
+ cacheWritePer1MUsd: 7.5,
27469
+ cacheWrite1hPer1MUsd: 12
27272
27470
  },
27273
27471
  "us-gov.anthropic.claude-opus-5": {
27274
27472
  inputPer1MUsd: 6,
27275
27473
  outputPer1MUsd: 30,
27276
27474
  cacheReadPer1MUsd: 0.6,
27277
- cacheWritePer1MUsd: 7.5
27475
+ cacheWritePer1MUsd: 7.5,
27476
+ cacheWrite1hPer1MUsd: 12
27278
27477
  },
27279
27478
  "us-gov.anthropic.claude-opus-5-5": {
27280
27479
  inputPer1MUsd: 4.8,
27281
27480
  outputPer1MUsd: 24,
27282
27481
  cacheReadPer1MUsd: 0.24,
27283
- cacheWritePer1MUsd: 6
27482
+ cacheWritePer1MUsd: 6,
27483
+ cacheWrite1hPer1MUsd: 9.6
27284
27484
  },
27285
27485
  "us-gov.anthropic.claude-sonnet-4-5-20250929-v1:0": {
27286
27486
  inputPer1MUsd: 3.5999999999999996,
27287
27487
  outputPer1MUsd: 18,
27288
27488
  cacheReadPer1MUsd: 0.36,
27289
- cacheWritePer1MUsd: 4.5
27489
+ cacheWritePer1MUsd: 4.5,
27490
+ cacheWrite1hPer1MUsd: 7.199999999999999
27290
27491
  },
27291
27492
  "us-gov.anthropic.claude-sonnet-5": {
27292
27493
  inputPer1MUsd: 2.4,
27293
27494
  outputPer1MUsd: 12,
27294
27495
  cacheReadPer1MUsd: 0.24,
27295
- cacheWritePer1MUsd: 3
27496
+ cacheWritePer1MUsd: 3,
27497
+ cacheWrite1hPer1MUsd: 4.8
27296
27498
  },
27297
27499
  "us-gov.anthropic.claude-sonnet-5-5": {
27298
27500
  inputPer1MUsd: 2.4,
27299
27501
  outputPer1MUsd: 12,
27300
27502
  cacheReadPer1MUsd: 0.24,
27301
- cacheWritePer1MUsd: 3
27503
+ cacheWritePer1MUsd: 3,
27504
+ cacheWrite1hPer1MUsd: 4.8
27302
27505
  },
27303
27506
  "us-gov.nvidia.nemotron-nano-12b-v2": {
27304
27507
  inputPer1MUsd: 0.24,
@@ -27388,43 +27591,50 @@ var litellm_pricing_snapshot_default = {
27388
27591
  inputPer1MUsd: 11,
27389
27592
  outputPer1MUsd: 55,
27390
27593
  cacheReadPer1MUsd: 1.1,
27391
- cacheWritePer1MUsd: 13.75
27594
+ cacheWritePer1MUsd: 13.75,
27595
+ cacheWrite1hPer1MUsd: 22
27392
27596
  },
27393
27597
  "us.anthropic.claude-fable-5-1": {
27394
27598
  inputPer1MUsd: 11,
27395
27599
  outputPer1MUsd: 55,
27396
27600
  cacheReadPer1MUsd: 0.275,
27397
- cacheWritePer1MUsd: 13.75
27601
+ cacheWritePer1MUsd: 13.75,
27602
+ cacheWrite1hPer1MUsd: 22
27398
27603
  },
27399
27604
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
27400
27605
  inputPer1MUsd: 1.1,
27401
27606
  outputPer1MUsd: 5.5,
27402
27607
  cacheReadPer1MUsd: 0.11,
27403
- cacheWritePer1MUsd: 1.375
27608
+ cacheWritePer1MUsd: 1.375,
27609
+ cacheWrite1hPer1MUsd: 2.2
27404
27610
  },
27405
27611
  "us.anthropic.claude-haiku-5-5": {
27406
27612
  inputPer1MUsd: 0.11,
27407
27613
  outputPer1MUsd: 0.55,
27408
27614
  cacheReadPer1MUsd: 0.011,
27409
- cacheWritePer1MUsd: 0.1375
27615
+ cacheWritePer1MUsd: 0.1375,
27616
+ cacheWrite1hPer1MUsd: 0.22
27410
27617
  },
27411
27618
  "us.anthropic.claude-mythos-5": {
27412
27619
  inputPer1MUsd: 11,
27413
27620
  outputPer1MUsd: 55,
27414
27621
  cacheReadPer1MUsd: 1.1,
27415
- cacheWritePer1MUsd: 13.75
27622
+ cacheWritePer1MUsd: 13.75,
27623
+ cacheWrite1hPer1MUsd: 22
27416
27624
  },
27417
27625
  "us.anthropic.claude-mythos-5-1": {
27418
27626
  inputPer1MUsd: 11,
27419
27627
  outputPer1MUsd: 55,
27420
27628
  cacheReadPer1MUsd: 0.275,
27421
- cacheWritePer1MUsd: 13.75
27629
+ cacheWritePer1MUsd: 13.75,
27630
+ cacheWrite1hPer1MUsd: 22
27422
27631
  },
27423
27632
  "us.anthropic.claude-mythos-preview": {
27424
27633
  inputPer1MUsd: 27.5,
27425
27634
  outputPer1MUsd: 137.5,
27426
27635
  cacheReadPer1MUsd: 2.75,
27427
- cacheWritePer1MUsd: 34.375
27636
+ cacheWritePer1MUsd: 34.375,
27637
+ cacheWrite1hPer1MUsd: 55
27428
27638
  },
27429
27639
  "us.anthropic.claude-opus-4-1-20250805-v1:0": {
27430
27640
  inputPer1MUsd: 15,
@@ -27442,37 +27652,43 @@ var litellm_pricing_snapshot_default = {
27442
27652
  inputPer1MUsd: 5.5,
27443
27653
  outputPer1MUsd: 27.5,
27444
27654
  cacheReadPer1MUsd: 0.55,
27445
- cacheWritePer1MUsd: 6.875
27655
+ cacheWritePer1MUsd: 6.875,
27656
+ cacheWrite1hPer1MUsd: 11
27446
27657
  },
27447
27658
  "us.anthropic.claude-opus-4-6-v1": {
27448
27659
  inputPer1MUsd: 5.5,
27449
27660
  outputPer1MUsd: 27.5,
27450
27661
  cacheReadPer1MUsd: 0.55,
27451
- cacheWritePer1MUsd: 6.875
27662
+ cacheWritePer1MUsd: 6.875,
27663
+ cacheWrite1hPer1MUsd: 11
27452
27664
  },
27453
27665
  "us.anthropic.claude-opus-4-7": {
27454
27666
  inputPer1MUsd: 5.5,
27455
27667
  outputPer1MUsd: 27.5,
27456
27668
  cacheReadPer1MUsd: 0.55,
27457
- cacheWritePer1MUsd: 6.875
27669
+ cacheWritePer1MUsd: 6.875,
27670
+ cacheWrite1hPer1MUsd: 11
27458
27671
  },
27459
27672
  "us.anthropic.claude-opus-4-8": {
27460
27673
  inputPer1MUsd: 5.5,
27461
27674
  outputPer1MUsd: 27.5,
27462
27675
  cacheReadPer1MUsd: 0.55,
27463
- cacheWritePer1MUsd: 6.875
27676
+ cacheWritePer1MUsd: 6.875,
27677
+ cacheWrite1hPer1MUsd: 11
27464
27678
  },
27465
27679
  "us.anthropic.claude-opus-5": {
27466
27680
  inputPer1MUsd: 5.5,
27467
27681
  outputPer1MUsd: 27.5,
27468
27682
  cacheReadPer1MUsd: 0.55,
27469
- cacheWritePer1MUsd: 6.875
27683
+ cacheWritePer1MUsd: 6.875,
27684
+ cacheWrite1hPer1MUsd: 11
27470
27685
  },
27471
27686
  "us.anthropic.claude-opus-5-5": {
27472
27687
  inputPer1MUsd: 4.4,
27473
27688
  outputPer1MUsd: 22,
27474
27689
  cacheReadPer1MUsd: 0.22,
27475
- cacheWritePer1MUsd: 5.5
27690
+ cacheWritePer1MUsd: 5.5,
27691
+ cacheWrite1hPer1MUsd: 8.8
27476
27692
  },
27477
27693
  "us.anthropic.claude-sonnet-4-20250514-v1:0": {
27478
27694
  inputPer1MUsd: 3,
@@ -27484,25 +27700,29 @@ var litellm_pricing_snapshot_default = {
27484
27700
  inputPer1MUsd: 3.3000000000000003,
27485
27701
  outputPer1MUsd: 16.5,
27486
27702
  cacheReadPer1MUsd: 0.33,
27487
- cacheWritePer1MUsd: 4.125
27703
+ cacheWritePer1MUsd: 4.125,
27704
+ cacheWrite1hPer1MUsd: 6.6000000000000005
27488
27705
  },
27489
27706
  "us.anthropic.claude-sonnet-4-6": {
27490
27707
  inputPer1MUsd: 3.3000000000000003,
27491
27708
  outputPer1MUsd: 16.5,
27492
27709
  cacheReadPer1MUsd: 0.33,
27493
- cacheWritePer1MUsd: 4.125
27710
+ cacheWritePer1MUsd: 4.125,
27711
+ cacheWrite1hPer1MUsd: 6.6000000000000005
27494
27712
  },
27495
27713
  "us.anthropic.claude-sonnet-5": {
27496
27714
  inputPer1MUsd: 2.2,
27497
27715
  outputPer1MUsd: 11,
27498
27716
  cacheReadPer1MUsd: 0.22,
27499
- cacheWritePer1MUsd: 2.75
27717
+ cacheWritePer1MUsd: 2.75,
27718
+ cacheWrite1hPer1MUsd: 4.4
27500
27719
  },
27501
27720
  "us.anthropic.claude-sonnet-5-5": {
27502
27721
  inputPer1MUsd: 2.2,
27503
27722
  outputPer1MUsd: 11,
27504
27723
  cacheReadPer1MUsd: 0.22,
27505
- cacheWritePer1MUsd: 2.75
27724
+ cacheWritePer1MUsd: 2.75,
27725
+ cacheWrite1hPer1MUsd: 4.4
27506
27726
  },
27507
27727
  "us.cohere.embed-v4:0": {
27508
27728
  inputPer1MUsd: 0.12,
@@ -28149,169 +28369,197 @@ var litellm_pricing_snapshot_default = {
28149
28369
  inputPer1MUsd: 10,
28150
28370
  outputPer1MUsd: 50,
28151
28371
  cacheReadPer1MUsd: 1,
28152
- cacheWritePer1MUsd: 12.5
28372
+ cacheWritePer1MUsd: 12.5,
28373
+ cacheWrite1hPer1MUsd: 20
28153
28374
  },
28154
28375
  "vertex_ai/claude-fable-5-1": {
28155
28376
  inputPer1MUsd: 10,
28156
28377
  outputPer1MUsd: 50,
28157
28378
  cacheReadPer1MUsd: 0.25,
28158
- cacheWritePer1MUsd: 12.5
28379
+ cacheWritePer1MUsd: 12.5,
28380
+ cacheWrite1hPer1MUsd: 20
28159
28381
  },
28160
28382
  "vertex_ai/claude-fable-5-1@default": {
28161
28383
  inputPer1MUsd: 10,
28162
28384
  outputPer1MUsd: 50,
28163
28385
  cacheReadPer1MUsd: 0.25,
28164
- cacheWritePer1MUsd: 12.5
28386
+ cacheWritePer1MUsd: 12.5,
28387
+ cacheWrite1hPer1MUsd: 20
28165
28388
  },
28166
28389
  "vertex_ai/claude-fable-5@default": {
28167
28390
  inputPer1MUsd: 10,
28168
28391
  outputPer1MUsd: 50,
28169
28392
  cacheReadPer1MUsd: 1,
28170
- cacheWritePer1MUsd: 12.5
28393
+ cacheWritePer1MUsd: 12.5,
28394
+ cacheWrite1hPer1MUsd: 20
28171
28395
  },
28172
28396
  "vertex_ai/claude-haiku-4-5": {
28173
28397
  inputPer1MUsd: 1,
28174
28398
  outputPer1MUsd: 5,
28175
28399
  cacheReadPer1MUsd: 0.09999999999999999,
28176
- cacheWritePer1MUsd: 1.25
28400
+ cacheWritePer1MUsd: 1.25,
28401
+ cacheWrite1hPer1MUsd: 2
28177
28402
  },
28178
28403
  "vertex_ai/claude-haiku-4-5@20251001": {
28179
28404
  inputPer1MUsd: 1,
28180
28405
  outputPer1MUsd: 5,
28181
28406
  cacheReadPer1MUsd: 0.09999999999999999,
28182
- cacheWritePer1MUsd: 1.25
28407
+ cacheWritePer1MUsd: 1.25,
28408
+ cacheWrite1hPer1MUsd: 2
28183
28409
  },
28184
28410
  "vertex_ai/claude-haiku-5-5": {
28185
28411
  inputPer1MUsd: 0.09999999999999999,
28186
28412
  outputPer1MUsd: 0.5,
28187
28413
  cacheReadPer1MUsd: 0.01,
28188
- cacheWritePer1MUsd: 0.125
28414
+ cacheWritePer1MUsd: 0.125,
28415
+ cacheWrite1hPer1MUsd: 0.19999999999999998
28189
28416
  },
28190
28417
  "vertex_ai/claude-haiku-5-5@default": {
28191
28418
  inputPer1MUsd: 0.09999999999999999,
28192
28419
  outputPer1MUsd: 0.5,
28193
28420
  cacheReadPer1MUsd: 0.01,
28194
- cacheWritePer1MUsd: 0.125
28421
+ cacheWritePer1MUsd: 0.125,
28422
+ cacheWrite1hPer1MUsd: 0.19999999999999998
28195
28423
  },
28196
28424
  "vertex_ai/claude-opus-4-5": {
28197
28425
  inputPer1MUsd: 5,
28198
28426
  outputPer1MUsd: 25,
28199
28427
  cacheReadPer1MUsd: 0.5,
28200
- cacheWritePer1MUsd: 6.25
28428
+ cacheWritePer1MUsd: 6.25,
28429
+ cacheWrite1hPer1MUsd: 10
28201
28430
  },
28202
28431
  "vertex_ai/claude-opus-4-5@20251101": {
28203
28432
  inputPer1MUsd: 5,
28204
28433
  outputPer1MUsd: 25,
28205
28434
  cacheReadPer1MUsd: 0.5,
28206
- cacheWritePer1MUsd: 6.25
28435
+ cacheWritePer1MUsd: 6.25,
28436
+ cacheWrite1hPer1MUsd: 10
28207
28437
  },
28208
28438
  "vertex_ai/claude-opus-4-6": {
28209
28439
  inputPer1MUsd: 5,
28210
28440
  outputPer1MUsd: 25,
28211
28441
  cacheReadPer1MUsd: 0.5,
28212
- cacheWritePer1MUsd: 6.25
28442
+ cacheWritePer1MUsd: 6.25,
28443
+ cacheWrite1hPer1MUsd: 10
28213
28444
  },
28214
28445
  "vertex_ai/claude-opus-4-6@default": {
28215
28446
  inputPer1MUsd: 5,
28216
28447
  outputPer1MUsd: 25,
28217
28448
  cacheReadPer1MUsd: 0.5,
28218
- cacheWritePer1MUsd: 6.25
28449
+ cacheWritePer1MUsd: 6.25,
28450
+ cacheWrite1hPer1MUsd: 10
28219
28451
  },
28220
28452
  "vertex_ai/claude-opus-4-7": {
28221
28453
  inputPer1MUsd: 5,
28222
28454
  outputPer1MUsd: 25,
28223
28455
  cacheReadPer1MUsd: 0.5,
28224
- cacheWritePer1MUsd: 6.25
28456
+ cacheWritePer1MUsd: 6.25,
28457
+ cacheWrite1hPer1MUsd: 10
28225
28458
  },
28226
28459
  "vertex_ai/claude-opus-4-7@default": {
28227
28460
  inputPer1MUsd: 5,
28228
28461
  outputPer1MUsd: 25,
28229
28462
  cacheReadPer1MUsd: 0.5,
28230
- cacheWritePer1MUsd: 6.25
28463
+ cacheWritePer1MUsd: 6.25,
28464
+ cacheWrite1hPer1MUsd: 10
28231
28465
  },
28232
28466
  "vertex_ai/claude-opus-4-8": {
28233
28467
  inputPer1MUsd: 5,
28234
28468
  outputPer1MUsd: 25,
28235
28469
  cacheReadPer1MUsd: 0.5,
28236
- cacheWritePer1MUsd: 6.25
28470
+ cacheWritePer1MUsd: 6.25,
28471
+ cacheWrite1hPer1MUsd: 10
28237
28472
  },
28238
28473
  "vertex_ai/claude-opus-4-8@default": {
28239
28474
  inputPer1MUsd: 5,
28240
28475
  outputPer1MUsd: 25,
28241
28476
  cacheReadPer1MUsd: 0.5,
28242
- cacheWritePer1MUsd: 6.25
28477
+ cacheWritePer1MUsd: 6.25,
28478
+ cacheWrite1hPer1MUsd: 10
28243
28479
  },
28244
28480
  "vertex_ai/claude-opus-5": {
28245
28481
  inputPer1MUsd: 5,
28246
28482
  outputPer1MUsd: 25,
28247
28483
  cacheReadPer1MUsd: 0.5,
28248
- cacheWritePer1MUsd: 6.25
28484
+ cacheWritePer1MUsd: 6.25,
28485
+ cacheWrite1hPer1MUsd: 10
28249
28486
  },
28250
28487
  "vertex_ai/claude-opus-5-5": {
28251
28488
  inputPer1MUsd: 4,
28252
28489
  outputPer1MUsd: 20,
28253
28490
  cacheReadPer1MUsd: 0.19999999999999998,
28254
- cacheWritePer1MUsd: 5
28491
+ cacheWritePer1MUsd: 5,
28492
+ cacheWrite1hPer1MUsd: 8
28255
28493
  },
28256
28494
  "vertex_ai/claude-opus-5-5@default": {
28257
28495
  inputPer1MUsd: 4,
28258
28496
  outputPer1MUsd: 20,
28259
28497
  cacheReadPer1MUsd: 0.19999999999999998,
28260
- cacheWritePer1MUsd: 5
28498
+ cacheWritePer1MUsd: 5,
28499
+ cacheWrite1hPer1MUsd: 8
28261
28500
  },
28262
28501
  "vertex_ai/claude-opus-5@default": {
28263
28502
  inputPer1MUsd: 5,
28264
28503
  outputPer1MUsd: 25,
28265
28504
  cacheReadPer1MUsd: 0.5,
28266
- cacheWritePer1MUsd: 6.25
28505
+ cacheWritePer1MUsd: 6.25,
28506
+ cacheWrite1hPer1MUsd: 10
28267
28507
  },
28268
28508
  "vertex_ai/claude-sonnet-4-5": {
28269
28509
  inputPer1MUsd: 3,
28270
28510
  outputPer1MUsd: 15,
28271
28511
  cacheReadPer1MUsd: 0.3,
28272
- cacheWritePer1MUsd: 3.75
28512
+ cacheWritePer1MUsd: 3.75,
28513
+ cacheWrite1hPer1MUsd: 6
28273
28514
  },
28274
28515
  "vertex_ai/claude-sonnet-4-5@20250929": {
28275
28516
  inputPer1MUsd: 3,
28276
28517
  outputPer1MUsd: 15,
28277
28518
  cacheReadPer1MUsd: 0.3,
28278
- cacheWritePer1MUsd: 3.75
28519
+ cacheWritePer1MUsd: 3.75,
28520
+ cacheWrite1hPer1MUsd: 6
28279
28521
  },
28280
28522
  "vertex_ai/claude-sonnet-4-6": {
28281
28523
  inputPer1MUsd: 3,
28282
28524
  outputPer1MUsd: 15,
28283
28525
  cacheReadPer1MUsd: 0.3,
28284
- cacheWritePer1MUsd: 3.75
28526
+ cacheWritePer1MUsd: 3.75,
28527
+ cacheWrite1hPer1MUsd: 6
28285
28528
  },
28286
28529
  "vertex_ai/claude-sonnet-4-6@default": {
28287
28530
  inputPer1MUsd: 3,
28288
28531
  outputPer1MUsd: 15,
28289
28532
  cacheReadPer1MUsd: 0.3,
28290
- cacheWritePer1MUsd: 3.75
28533
+ cacheWritePer1MUsd: 3.75,
28534
+ cacheWrite1hPer1MUsd: 6
28291
28535
  },
28292
28536
  "vertex_ai/claude-sonnet-5": {
28293
28537
  inputPer1MUsd: 2,
28294
28538
  outputPer1MUsd: 10,
28295
28539
  cacheReadPer1MUsd: 0.19999999999999998,
28296
- cacheWritePer1MUsd: 2.5
28540
+ cacheWritePer1MUsd: 2.5,
28541
+ cacheWrite1hPer1MUsd: 4
28297
28542
  },
28298
28543
  "vertex_ai/claude-sonnet-5-5": {
28299
28544
  inputPer1MUsd: 2,
28300
28545
  outputPer1MUsd: 10,
28301
28546
  cacheReadPer1MUsd: 0.09999999999999999,
28302
- cacheWritePer1MUsd: 2.5
28547
+ cacheWritePer1MUsd: 2.5,
28548
+ cacheWrite1hPer1MUsd: 4
28303
28549
  },
28304
28550
  "vertex_ai/claude-sonnet-5-5@default": {
28305
28551
  inputPer1MUsd: 2,
28306
28552
  outputPer1MUsd: 10,
28307
28553
  cacheReadPer1MUsd: 0.09999999999999999,
28308
- cacheWritePer1MUsd: 2.5
28554
+ cacheWritePer1MUsd: 2.5,
28555
+ cacheWrite1hPer1MUsd: 4
28309
28556
  },
28310
28557
  "vertex_ai/claude-sonnet-5@default": {
28311
28558
  inputPer1MUsd: 2,
28312
28559
  outputPer1MUsd: 10,
28313
28560
  cacheReadPer1MUsd: 0.19999999999999998,
28314
- cacheWritePer1MUsd: 2.5
28561
+ cacheWritePer1MUsd: 2.5,
28562
+ cacheWrite1hPer1MUsd: 4
28315
28563
  },
28316
28564
  "vertex_ai/codestral-2": {
28317
28565
  inputPer1MUsd: 0.3,
@@ -30628,6 +30876,7 @@ var DEFAULT_FETCH_RETRY_COUNT2 = 2;
30628
30876
  var DEFAULT_FETCH_RETRY_DELAY_MS2 = 200;
30629
30877
  var MAX_LITELLM_PRICING_RESPONSE_BYTES = 33554432;
30630
30878
  var DEFAULT_LITELLM_PRICING_URL = "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json";
30879
+ var CACHE_FORMAT_VERSION = 2;
30631
30880
  var RetryableLiteLLMFetchError = class extends Error {
30632
30881
  constructor(message) {
30633
30882
  super(message);
@@ -30680,6 +30929,9 @@ function normalizeModelPricing(rawModelPricing) {
30680
30929
  }
30681
30930
  const cacheReadPerToken = toNonNegativeNumber3(rawModelPricing.cache_read_input_token_cost) ?? toNonNegativeNumber3(rawModelPricing.cache_read_input_token_cost_priority);
30682
30931
  const cacheWritePerToken = toNonNegativeNumber3(rawModelPricing.cache_creation_input_token_cost) ?? toNonNegativeNumber3(rawModelPricing.cache_creation_input_token_cost_priority);
30932
+ const cacheWrite1hPerToken = toNonNegativeNumber3(
30933
+ rawModelPricing.cache_creation_input_token_cost_above_1hr
30934
+ );
30683
30935
  const reasoningPerToken = toNonNegativeNumber3(rawModelPricing.output_cost_per_reasoning_token);
30684
30936
  const modelPricing = {
30685
30937
  inputPer1MUsd: inputPerToken * ONE_MILLION2,
@@ -30691,6 +30943,9 @@ function normalizeModelPricing(rawModelPricing) {
30691
30943
  if (cacheWritePerToken !== void 0) {
30692
30944
  modelPricing.cacheWritePer1MUsd = cacheWritePerToken * ONE_MILLION2;
30693
30945
  }
30946
+ if (cacheWrite1hPerToken !== void 0) {
30947
+ modelPricing.cacheWrite1hPer1MUsd = cacheWrite1hPerToken * ONE_MILLION2;
30948
+ }
30694
30949
  if (reasoningPerToken !== void 0) {
30695
30950
  modelPricing.reasoningPer1MUsd = reasoningPerToken * ONE_MILLION2;
30696
30951
  modelPricing.reasoningBilling = "separate";
@@ -30741,6 +30996,10 @@ function normalizeCachedPricing(rawPricing) {
30741
30996
  if (cacheWritePer1MUsd !== void 0) {
30742
30997
  modelPricing.cacheWritePer1MUsd = cacheWritePer1MUsd;
30743
30998
  }
30999
+ const cacheWrite1hPer1MUsd = toNonNegativeNumber3(pricingRecord.cacheWrite1hPer1MUsd);
31000
+ if (cacheWrite1hPer1MUsd !== void 0) {
31001
+ modelPricing.cacheWrite1hPer1MUsd = cacheWrite1hPer1MUsd;
31002
+ }
30744
31003
  const reasoningPer1MUsd = toNonNegativeNumber3(pricingRecord.reasoningPer1MUsd);
30745
31004
  if (reasoningPer1MUsd !== void 0) {
30746
31005
  modelPricing.reasoningPer1MUsd = reasoningPer1MUsd;
@@ -30985,7 +31244,7 @@ var LiteLLMPricingFetcher = class {
30985
31244
  return false;
30986
31245
  }
30987
31246
  const nowTimestamp = this.now();
30988
- const isStale = cacheFileContent.fetchedAt > nowTimestamp || nowTimestamp - cacheFileContent.fetchedAt > this.cacheTtlMs;
31247
+ const isStale = cacheFileContent.formatVersion !== CACHE_FORMAT_VERSION || cacheFileContent.fetchedAt > nowTimestamp || nowTimestamp - cacheFileContent.fetchedAt > this.cacheTtlMs;
30989
31248
  if (isStale && !options.allowStale) {
30990
31249
  return false;
30991
31250
  }
@@ -31050,12 +31309,14 @@ var LiteLLMPricingFetcher = class {
31050
31309
  } catch {
31051
31310
  return void 0;
31052
31311
  }
31053
- return normalizeLiteLLMCachePayload(parsedPayload);
31312
+ const payload = normalizeLiteLLMCachePayload(parsedPayload);
31313
+ return payload && { ...payload, formatVersion: asRecord(parsedPayload)?.formatVersion };
31054
31314
  }
31055
31315
  async writeCache() {
31056
31316
  const directoryPath = path33.dirname(this.cacheFilePath);
31057
31317
  await ensureDirectory(directoryPath);
31058
31318
  const payload = {
31319
+ formatVersion: CACHE_FORMAT_VERSION,
31059
31320
  fetchedAt: this.now(),
31060
31321
  sourceUrl: this.sourceUrl,
31061
31322
  pricingByModel: Object.fromEntries(this.pricingByModel.entries())
@@ -36431,6 +36692,9 @@ function createSyntheticEvent(period) {
36431
36692
  reasoningTokens: period.reasoningTokens,
36432
36693
  cacheReadTokens: period.cacheReadTokens,
36433
36694
  cacheWriteTokens: period.cacheWriteTokens,
36695
+ // Report rows do not keep the one-hour share, so candidates price every write at the
36696
+ // standard cache-write rate.
36697
+ cacheWrite1hTokens: 0,
36434
36698
  totalTokens: period.totalTokens,
36435
36699
  costMode: "estimated",
36436
36700
  costUsd: void 0
@@ -37386,17 +37650,20 @@ function formatCost2(period) {
37386
37650
  }
37387
37651
  return `${period.totals.costIncomplete ? "~" : ""}${usdFormatter6.format(period.totals.costUsd)}`;
37388
37652
  }
37653
+ function formatCostShare(period, costUsd) {
37654
+ const totalCost = period.totals.costUsd ?? 0;
37655
+ if (totalCost <= 0 || costUsd === void 0) {
37656
+ return void 0;
37657
+ }
37658
+ return `${period.totals.costIncomplete ? "~" : ""}${String(Math.round(costUsd / totalCost * 100))}%`;
37659
+ }
37389
37660
  function formatTopSource(period) {
37390
37661
  if (period.sources.length === 0) {
37391
37662
  return "-";
37392
37663
  }
37393
37664
  const topSource = period.sources[0];
37394
- const totalCost = period.totals.costUsd ?? 0;
37395
- if (totalCost <= 0 || topSource.costUsd === void 0) {
37396
- return topSource.source;
37397
- }
37398
- const share = `${String(Math.round(topSource.costUsd / totalCost * 100))}%`;
37399
- return `${topSource.source} (${period.totals.costIncomplete ? "~" : ""}${share})`;
37665
+ const share = formatCostShare(period, topSource.costUsd);
37666
+ return share === void 0 ? topSource.source : `${topSource.source} (${share})`;
37400
37667
  }
37401
37668
  function toTableRow(period) {
37402
37669
  return [
@@ -37461,12 +37728,38 @@ function renderTerminalActivity(activity, options, useColor) {
37461
37728
  ...heatmap.length > 0 ? ["", ...heatmap] : []
37462
37729
  ];
37463
37730
  }
37731
+ function formatTokenShare(tokens, totalTokens) {
37732
+ return `${String(Math.round(tokens / totalTokens * 100))}%`;
37733
+ }
37734
+ function formatMachinesNote2(monthToDate) {
37735
+ if (monthToDate?.machines === void 0 || monthToDate.machines.length < 2) {
37736
+ return void 0;
37737
+ }
37738
+ const byCost = (monthToDate.totals.costUsd ?? 0) > 0;
37739
+ if (!byCost && monthToDate.totals.totalTokens === 0) {
37740
+ return void 0;
37741
+ }
37742
+ const parts = monthToDate.machines.map((machine) => {
37743
+ if (!byCost) {
37744
+ const share2 = formatTokenShare(machine.totalTokens, monthToDate.totals.totalTokens);
37745
+ return `${machine.machine} ${formatCompact(machine.totalTokens)} tokens (${share2})`;
37746
+ }
37747
+ const cost = formatApproxUsd(machine.costUsd, machine.costIncomplete);
37748
+ const share = formatCostShare(monthToDate, machine.costUsd);
37749
+ return share === void 0 ? `${machine.machine} ${cost}` : `${machine.machine} ${cost} (${share})`;
37750
+ });
37751
+ return `This month by machine: ${parts.join(", ")}`;
37752
+ }
37464
37753
  function toMonthNotes(summaryData) {
37465
37754
  const { monthEnd } = summaryData;
37466
37755
  const monthToDate = summaryData.periods.find((period) => period.key === "monthToDate");
37467
37756
  const spentUsd = monthToDate?.totals.costUsd;
37468
37757
  const spent = formatApproxUsd(spentUsd, monthToDate?.totals.costIncomplete);
37469
37758
  const notes = [];
37759
+ const machinesNote = formatMachinesNote2(monthToDate);
37760
+ if (machinesNote !== void 0) {
37761
+ notes.push({ text: machinesNote, warning: false });
37762
+ }
37470
37763
  if (monthEnd.projectedCostUsd !== void 0) {
37471
37764
  notes.push({
37472
37765
  text: `On pace for ${formatApproxUsd(monthEnd.projectedCostUsd, monthEnd.costIncomplete)} this month`,
@@ -37648,6 +37941,80 @@ function renderStats(data, theme) {
37648
37941
  })
37649
37942
  ].join("\n");
37650
37943
  }
37944
+ var machinesLeft = right2 - 660;
37945
+ var machinesTop = 270;
37946
+ var machineSlotWidth = 190;
37947
+ var machineSlots = 3;
37948
+ function toMachineShares(machines, byCost, theme) {
37949
+ const totalCost = machines.reduce((sum, machine) => sum + (machine.costUsd ?? 0), 0);
37950
+ const totalTokens = machines.reduce((sum, machine) => sum + machine.totalTokens, 0);
37951
+ const shareOf = (machine) => byCost ? (machine.costUsd ?? 0) / totalCost : machine.totalTokens / totalTokens;
37952
+ const fills = [theme.heat[3], theme.heat[2], theme.textMuted];
37953
+ const named = machines.length <= machineSlots ? machines : machines.slice(0, machineSlots - 1);
37954
+ const shares = named.map((machine, index) => ({
37955
+ label: machine.machine,
37956
+ share: shareOf(machine),
37957
+ fill: fills[index]
37958
+ }));
37959
+ if (named.length < machines.length) {
37960
+ const rest = machines.slice(named.length);
37961
+ shares.push({
37962
+ label: `${formatInteger2(rest.length)} others`,
37963
+ share: rest.reduce((sum, machine) => sum + shareOf(machine), 0),
37964
+ fill: fills[machineSlots - 1]
37965
+ });
37966
+ }
37967
+ return shares;
37968
+ }
37969
+ function renderMachines(data, theme) {
37970
+ const monthToDate = findPeriod(data, "monthToDate");
37971
+ const machines = monthToDate?.machines ?? [];
37972
+ const byCost = machines.some((machine) => (machine.costUsd ?? 0) > 0);
37973
+ if (machines.length < 2 || !byCost && !machines.some((machine) => machine.totalTokens > 0)) {
37974
+ return "";
37975
+ }
37976
+ const shares = toMachineShares(machines, byCost, theme);
37977
+ const approximate = byCost && monthToDate?.totals.costIncomplete === true ? "~" : "";
37978
+ const barWidth = right2 - machinesLeft;
37979
+ const barTop = machinesTop + 12;
37980
+ const legendY = barTop + 30;
37981
+ let segmentX = machinesLeft;
37982
+ const parts = [
37983
+ svgText(
37984
+ machinesLeft,
37985
+ machinesTop,
37986
+ byCost ? "This month by machine" : "This month by machine (tokens)",
37987
+ {
37988
+ size: 16,
37989
+ fill: theme.textSecondary
37990
+ }
37991
+ ),
37992
+ `<rect x="${machinesLeft}" y="${barTop}" width="${barWidth}" height="8" rx="2" fill="${theme.line}"/>`
37993
+ ];
37994
+ shares.forEach((share, index) => {
37995
+ const width = share.share * barWidth;
37996
+ const slotX = machinesLeft + index * machineSlotWidth;
37997
+ const segmentLeft = segmentX;
37998
+ segmentX += width;
37999
+ parts.push(
38000
+ `<rect x="${segmentLeft.toFixed(2)}" y="${barTop}" width="${width.toFixed(2)}" height="8" rx="2" fill="${share.fill}"/>`,
38001
+ `<circle cx="${slotX + 5}" cy="${legendY - 5}" r="5" fill="${share.fill}"/>`,
38002
+ svgText(slotX + 18, legendY, truncateLabel(share.label, 12), {
38003
+ size: 15,
38004
+ fill: theme.text
38005
+ }),
38006
+ svgText(slotX + 166, legendY, `${approximate}${String(Math.round(share.share * 100))}%`, {
38007
+ size: 15,
38008
+ fill: theme.textSecondary,
38009
+ mono: true,
38010
+ anchor: "end"
38011
+ })
38012
+ );
38013
+ });
38014
+ return `<g data-machines="true">
38015
+ ${parts.join("\n")}
38016
+ </g>`;
38017
+ }
37651
38018
  function renderActivity(data, theme) {
37652
38019
  const { activity } = data;
37653
38020
  const gridBottom2 = gridTop2 + 7 * gridPitch;
@@ -37662,8 +38029,7 @@ function renderActivity(data, theme) {
37662
38029
  ].join("\n");
37663
38030
  }
37664
38031
  function renderSummaryShareSvg(data, theme) {
37665
- const body = data.activity.activeDays === 0 ? renderEmptyState(theme, "No usage in the past year") : `${renderStats(data, theme)}
37666
- ${renderActivity(data, theme)}`;
38032
+ const body = data.activity.activeDays === 0 ? renderEmptyState(theme, "No usage in the past year") : [renderStats(data, theme), renderMachines(data, theme), renderActivity(data, theme)].filter(Boolean).join("\n");
37667
38033
  return renderShareCard({
37668
38034
  theme,
37669
38035
  title: "LLM usage activity",
@@ -37844,15 +38210,31 @@ function isNarrowedByCliFilters(cliOptions) {
37844
38210
  const hasModel = Array.isArray(model) ? model.length > 0 : Boolean(model);
37845
38211
  return hasSource || hasModel || Boolean(cliOptions.provider);
37846
38212
  }
37847
- function compareSourcesByCost(left, right4) {
38213
+ function compareByCost(left, right4) {
37848
38214
  const costDelta = (right4.costUsd ?? 0) - (left.costUsd ?? 0);
37849
38215
  if (costDelta !== 0) {
37850
38216
  return costDelta;
37851
38217
  }
37852
- if (left.totalTokens !== right4.totalTokens) {
37853
- return right4.totalTokens - left.totalTokens;
38218
+ return right4.totalTokens - left.totalTokens;
38219
+ }
38220
+ function compareSourcesByCost(left, right4) {
38221
+ return compareByCost(left, right4) || compareByCodePoint(left.source, right4.source);
38222
+ }
38223
+ function compareMachinesByCost(left, right4) {
38224
+ return compareByCost(left, right4) || compareByCodePoint(left.machine, right4.machine);
38225
+ }
38226
+ function summarizeMachines(events, timezone, sourceOrder) {
38227
+ const eventsByMachine = /* @__PURE__ */ new Map();
38228
+ for (const event of events) {
38229
+ const machine = event.machine ?? LOCAL_MACHINE_NAME;
38230
+ const machineEvents = eventsByMachine.get(machine) ?? [];
38231
+ machineEvents.push(event);
38232
+ eventsByMachine.set(machine, machineEvents);
37854
38233
  }
37855
- return compareByCodePoint(left.source, right4.source);
38234
+ return [...eventsByMachine].map(([machine, machineEvents]) => ({
38235
+ machine,
38236
+ ...summarizeUsageWindow(machineEvents, timezone, sourceOrder).totals
38237
+ })).sort(compareMachinesByCost);
37856
38238
  }
37857
38239
  async function buildSummaryData(options, deps = {}) {
37858
38240
  const userConfigResolution = await resolveUserConfigForOptions(options, deps);
@@ -37875,16 +38257,16 @@ async function buildSummaryData(options, deps = {}) {
37875
38257
  );
37876
38258
  const { pricedEvents, pricingOrigin, pricingWarning, pricingSource } = await applyPricingToUsageEventDataset(dataset, deps, "auto");
37877
38259
  const sourceOrder = dataset.adaptersToParse.map((adapter) => adapter.id);
38260
+ const countsOtherMachines = pricedEvents.some((event) => event.machine !== void 0);
37878
38261
  const periods = measureRuntimeProfileStageSync(
37879
38262
  deps.runtimeProfile,
37880
38263
  "summary.aggregate",
37881
38264
  () => windows.map((window) => {
37882
- const summary = summarizeUsageWindow(
37883
- pricedEvents.filter((event) => isEventWithinWindow(event, window, timezone)),
37884
- timezone,
37885
- sourceOrder
38265
+ const windowEvents = pricedEvents.filter(
38266
+ (event) => isEventWithinWindow(event, window, timezone)
37886
38267
  );
37887
- return {
38268
+ const summary = summarizeUsageWindow(windowEvents, timezone, sourceOrder);
38269
+ const period = {
37888
38270
  key: window.key,
37889
38271
  label: window.label,
37890
38272
  since: window.since,
@@ -37892,6 +38274,10 @@ async function buildSummaryData(options, deps = {}) {
37892
38274
  totals: summary.totals,
37893
38275
  sources: [...summary.sources].map(([source, totals]) => ({ source, ...totals })).sort(compareSourcesByCost)
37894
38276
  };
38277
+ if (countsOtherMachines) {
38278
+ period.machines = summarizeMachines(windowEvents, timezone, sourceOrder);
38279
+ }
38280
+ return period;
37895
38281
  })
37896
38282
  );
37897
38283
  const activity = measureRuntimeProfileStageSync(
@@ -42501,6 +42887,11 @@ var events_line_v1_schema_default = {
42501
42887
  description: "Normalized model identifier; omitted when unknown.",
42502
42888
  type: "string"
42503
42889
  },
42890
+ cacheWrite1hTokens: {
42891
+ description: "The part of cacheWriteTokens cached for one hour, which bills at a higher rate (Claude). Absent from events written by versions before 0.11.",
42892
+ type: "integer",
42893
+ minimum: 0
42894
+ },
42504
42895
  costUsd: {
42505
42896
  description: "Cost in USD; omitted when pricing is unresolved.",
42506
42897
  type: "number",
@@ -43548,6 +43939,33 @@ var report_summary_v1_schema_default = {
43548
43939
  required: ["source", "events", "activeDays"],
43549
43940
  unevaluatedProperties: false
43550
43941
  },
43942
+ machineTotals: {
43943
+ type: "object",
43944
+ description: "Usage totals for one machine within a period (non-negative).",
43945
+ allOf: [
43946
+ {
43947
+ $ref: "https://ayagmar.github.io/llm-usage-metrics/report-common.v1.schema.json#/$defs/usageTotals"
43948
+ }
43949
+ ],
43950
+ properties: {
43951
+ machine: {
43952
+ description: "`local` for the machine that ran the report, otherwise the name the machine was added under.",
43953
+ type: "string"
43954
+ },
43955
+ events: {
43956
+ description: "Events in the period.",
43957
+ type: "integer",
43958
+ minimum: 0
43959
+ },
43960
+ activeDays: {
43961
+ description: "Days with at least one event in the period.",
43962
+ type: "integer",
43963
+ minimum: 0
43964
+ }
43965
+ },
43966
+ required: ["machine", "events", "activeDays"],
43967
+ unevaluatedProperties: false
43968
+ },
43551
43969
  period: {
43552
43970
  description: "One summarized period.",
43553
43971
  type: "object",
@@ -43577,6 +43995,13 @@ var report_summary_v1_schema_default = {
43577
43995
  items: {
43578
43996
  $ref: "#/$defs/sourceTotals"
43579
43997
  }
43998
+ },
43999
+ machines: {
44000
+ description: "Machines with usage in the period, by cost then tokens then name. Present only when the report counts other machines' usage in the past year, after its source, provider and model filters (since 0.11).",
44001
+ type: "array",
44002
+ items: {
44003
+ $ref: "#/$defs/machineTotals"
44004
+ }
43580
44005
  }
43581
44006
  },
43582
44007
  required: ["key", "label", "since", "until", "totals", "sources"],