ccusage 18.0.8 → 18.0.10

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.
@@ -431,6 +431,26 @@ function optional(wrapped, default_) {
431
431
  };
432
432
  }
433
433
  /* @__NO_SIDE_EFFECTS__ */
434
+ function picklist(options, message2) {
435
+ return {
436
+ kind: "schema",
437
+ type: "picklist",
438
+ reference: picklist,
439
+ expects: /* @__PURE__ */ _joinExpects(options.map(_stringify), "|"),
440
+ async: false,
441
+ options,
442
+ message: message2,
443
+ get "~standard"() {
444
+ return /* @__PURE__ */ _getStandardProps(this);
445
+ },
446
+ "~run"(dataset, config2) {
447
+ if (this.options.includes(dataset.value)) dataset.typed = true;
448
+ else _addIssue(this, "type", dataset, config2);
449
+ return dataset;
450
+ }
451
+ };
452
+ }
453
+ /* @__NO_SIDE_EFFECTS__ */
434
454
  function string(message2) {
435
455
  return {
436
456
  kind: "schema",
@@ -585,4 +605,4 @@ const statuslineHookJsonSchema = /* @__PURE__ */ object({
585
605
  context_window_size: /* @__PURE__ */ number()
586
606
  }))
587
607
  });
588
- export { object as A, boolean as C, maxValue as D, integer as E, string as F, transform as I, trim as L, parse as M, pipe as N, minValue as O, safeParse as P, union as R, array as S, flatten as T, requestIdSchema as _, createDailyDate as a, versionSchema as b, createSessionId as c, filterDateSchema as d, isoTimestampSchema as f, projectPathSchema as g, monthlyDateSchema as h, createBucket as i, optional as j, number as k, createWeeklyDate as l, modelNameSchema as m, SortOrders as n, createMonthlyDate as o, messageIdSchema as p, activityDateSchema as r, createProjectPath as s, CostModes as t, dailyDateSchema as u, sessionIdSchema as v, check as w, weeklyDateSchema as x, statuslineHookJsonSchema as y, getTotalTokens as z };
608
+ export { object as A, getTotalTokens as B, boolean as C, maxValue as D, integer as E, safeParse as F, string as I, transform as L, parse as M, picklist as N, minValue as O, pipe as P, trim as R, array as S, flatten as T, requestIdSchema as _, createDailyDate as a, versionSchema as b, createSessionId as c, filterDateSchema as d, isoTimestampSchema as f, projectPathSchema as g, monthlyDateSchema as h, createBucket as i, optional as j, number as k, createWeeklyDate as l, modelNameSchema as m, SortOrders as n, createMonthlyDate as o, messageIdSchema as p, activityDateSchema as r, createProjectPath as s, CostModes as t, dailyDateSchema as u, sessionIdSchema as v, check as w, weeklyDateSchema as x, statuslineHookJsonSchema as y, union as z };
@@ -1,4 +1,4 @@
1
- import { z as getTotalTokens } from "./_types-BFL_bTNX.js";
1
+ import { B as getTotalTokens } from "./_types-DY3gqCWm.js";
2
2
  function calculateTotals(data) {
3
3
  return data.reduce((acc, item) => ({
4
4
  inputTokens: acc.inputTokens + item.inputTokens,
@@ -1,4 +1,4 @@
1
- import { c as SessionUsage, n as DailyUsage, s as MonthlyUsage, u as WeeklyUsage } from "./data-loader-BRnqe1-8.js";
1
+ import { c as SessionUsage, n as DailyUsage, s as MonthlyUsage, u as WeeklyUsage } from "./data-loader-CdGrTB0Q.js";
2
2
 
3
3
  //#region src/_token-utils.d.ts
4
4
 
@@ -1,3 +1,3 @@
1
- import { z as getTotalTokens } from "./_types-BFL_bTNX.js";
2
- import { n as createTotalsObject, t as calculateTotals } from "./calculate-cost-CKH-OC_c.js";
1
+ import { B as getTotalTokens } from "./_types-DY3gqCWm.js";
2
+ import { n as createTotalsObject, t as calculateTotals } from "./calculate-cost-DWGfKMSD.js";
3
3
  export { calculateTotals, createTotalsObject, getTotalTokens };
@@ -1,5 +1,5 @@
1
- import { A as object, C as boolean, F as string, M as parse$2, P as safeParse, R as union, S as array, _ as requestIdSchema, a as createDailyDate, b as versionSchema, c as createSessionId, f as isoTimestampSchema, g as projectPathSchema, h as monthlyDateSchema, i as createBucket, j as optional, k as number, l as createWeeklyDate, m as modelNameSchema, o as createMonthlyDate, p as messageIdSchema, r as activityDateSchema, s as createProjectPath, u as dailyDateSchema, v as sessionIdSchema, x as weeklyDateSchema, z as getTotalTokens } from "./_types-BFL_bTNX.js";
2
- import { n as logger } from "./logger-BzDGykGK.js";
1
+ import { A as object, B as getTotalTokens, C as boolean, F as safeParse, I as string, M as parse$2, N as picklist, S as array, _ as requestIdSchema, a as createDailyDate, b as versionSchema, c as createSessionId, f as isoTimestampSchema, g as projectPathSchema, h as monthlyDateSchema, i as createBucket, j as optional, k as number, l as createWeeklyDate, m as modelNameSchema, o as createMonthlyDate, p as messageIdSchema, r as activityDateSchema, s as createProjectPath, u as dailyDateSchema, v as sessionIdSchema, x as weeklyDateSchema, z as union } from "./_types-DY3gqCWm.js";
2
+ import { n as logger } from "./logger-TGVysPie.js";
3
3
  import { createRequire } from "node:module";
4
4
  import * as nativeFs from "node:fs";
5
5
  import b, { createReadStream } from "node:fs";
@@ -2474,9 +2474,9 @@ const BLOCKS_COMPACT_WIDTH_THRESHOLD = 120;
2474
2474
  const BLOCKS_DEFAULT_TERMINAL_WIDTH = 120;
2475
2475
  const DEBUG_MATCH_THRESHOLD_PERCENT = .1;
2476
2476
  const USER_HOME_DIR = homedir();
2477
- const XDG_CONFIG_DIR = xdgConfig ?? `${USER_HOME_DIR}/.config`;
2477
+ const XDG_CONFIG_DIR = xdgConfig ?? path.join(USER_HOME_DIR, ".config");
2478
2478
  const DEFAULT_CLAUDE_CODE_PATH = ".claude";
2479
- const DEFAULT_CLAUDE_CONFIG_PATH = `${XDG_CONFIG_DIR}/claude`;
2479
+ const DEFAULT_CLAUDE_CONFIG_PATH = path.join(XDG_CONFIG_DIR, "claude");
2480
2480
  const CLAUDE_CONFIG_DIR_ENV = "CLAUDE_CONFIG_DIR";
2481
2481
  const CLAUDE_PROJECTS_DIR_NAME = "projects";
2482
2482
  const USAGE_DATA_GLOB_PATTERN = "**/*.jsonl";
@@ -4622,7 +4622,8 @@ const liteLLMModelPricingSchema = object({
4622
4622
  cache_creation_input_token_cost_above_200k_tokens: optional(number()),
4623
4623
  cache_read_input_token_cost_above_200k_tokens: optional(number()),
4624
4624
  input_cost_per_token_above_128k_tokens: optional(number()),
4625
- output_cost_per_token_above_128k_tokens: optional(number())
4625
+ output_cost_per_token_above_128k_tokens: optional(number()),
4626
+ provider_specific_entry: optional(object({ fast: optional(number()) }))
4626
4627
  });
4627
4628
  const DEFAULT_PROVIDER_PREFIXES = [
4628
4629
  "anthropic/",
@@ -4753,11 +4754,11 @@ var LiteLLMPricingFetcher = class {
4753
4754
  const cacheReadCost = calculateTieredCost(tokens.cache_read_input_tokens, pricing.cache_read_input_token_cost, pricing.cache_read_input_token_cost_above_200k_tokens);
4754
4755
  return inputCost + outputCost + cacheCreationCost + cacheReadCost;
4755
4756
  }
4756
- async calculateCostFromTokens(tokens, modelName) {
4757
+ async calculateCostFromTokens(tokens, modelName, options) {
4757
4758
  if (modelName == null || modelName === "") return succeed(0);
4758
4759
  return pipe(this.getModelPricing(modelName), andThen((pricing) => {
4759
4760
  if (pricing == null) return fail(/* @__PURE__ */ new Error(`Model pricing not found for ${modelName}`));
4760
- return succeed(this.calculateCostFromPricing(tokens, pricing));
4761
+ return succeed(this.calculateCostFromPricing(tokens, pricing) * (options?.speed === "fast" ? pricing.provider_specific_entry?.fast ?? 1 : 1));
4761
4762
  }));
4762
4763
  }
4763
4764
  };
@@ -4843,6 +4844,8 @@ const PREFETCHED_CLAUDE_PRICING = {
4843
4844
  "anthropic.claude-3-haiku-20240307-v1:0": {
4844
4845
  "input_cost_per_token": 25e-8,
4845
4846
  "output_cost_per_token": 125e-8,
4847
+ "cache_creation_input_token_cost": 3.125e-7,
4848
+ "cache_read_input_token_cost": 25e-9,
4846
4849
  "max_tokens": 4096,
4847
4850
  "max_input_tokens": 2e5,
4848
4851
  "max_output_tokens": 4096
@@ -4850,6 +4853,8 @@ const PREFETCHED_CLAUDE_PRICING = {
4850
4853
  "anthropic.claude-3-opus-20240229-v1:0": {
4851
4854
  "input_cost_per_token": 15e-6,
4852
4855
  "output_cost_per_token": 75e-6,
4856
+ "cache_creation_input_token_cost": 1875e-8,
4857
+ "cache_read_input_token_cost": 15e-7,
4853
4858
  "max_tokens": 4096,
4854
4859
  "max_input_tokens": 2e5,
4855
4860
  "max_output_tokens": 4096
@@ -4857,6 +4862,8 @@ const PREFETCHED_CLAUDE_PRICING = {
4857
4862
  "anthropic.claude-3-sonnet-20240229-v1:0": {
4858
4863
  "input_cost_per_token": 3e-6,
4859
4864
  "output_cost_per_token": 15e-6,
4865
+ "cache_creation_input_token_cost": 375e-8,
4866
+ "cache_read_input_token_cost": 3e-7,
4860
4867
  "max_tokens": 4096,
4861
4868
  "max_input_tokens": 2e5,
4862
4869
  "max_output_tokens": 4096
@@ -5199,7 +5206,8 @@ const PREFETCHED_CLAUDE_PRICING = {
5199
5206
  "input_cost_per_token_above_200k_tokens": 1e-5,
5200
5207
  "output_cost_per_token_above_200k_tokens": 375e-7,
5201
5208
  "cache_creation_input_token_cost_above_200k_tokens": 125e-7,
5202
- "cache_read_input_token_cost_above_200k_tokens": 1e-6
5209
+ "cache_read_input_token_cost_above_200k_tokens": 1e-6,
5210
+ "provider_specific_entry": { "fast": 6 }
5203
5211
  },
5204
5212
  "claude-opus-4-6-20260205": {
5205
5213
  "input_cost_per_token": 5e-6,
@@ -5212,7 +5220,8 @@ const PREFETCHED_CLAUDE_PRICING = {
5212
5220
  "input_cost_per_token_above_200k_tokens": 1e-5,
5213
5221
  "output_cost_per_token_above_200k_tokens": 375e-7,
5214
5222
  "cache_creation_input_token_cost_above_200k_tokens": 125e-7,
5215
- "cache_read_input_token_cost_above_200k_tokens": 1e-6
5223
+ "cache_read_input_token_cost_above_200k_tokens": 1e-6,
5224
+ "provider_specific_entry": { "fast": 6 }
5216
5225
  },
5217
5226
  "claude-sonnet-4-20250514": {
5218
5227
  "input_cost_per_token": 3e-6,
@@ -5431,7 +5440,8 @@ const usageDataSchema = object({
5431
5440
  input_tokens: number(),
5432
5441
  output_tokens: number(),
5433
5442
  cache_creation_input_tokens: optional(number()),
5434
- cache_read_input_tokens: optional(number())
5443
+ cache_read_input_tokens: optional(number()),
5444
+ speed: optional(picklist(["standard", "fast"]))
5435
5445
  }),
5436
5446
  model: optional(modelNameSchema),
5437
5447
  id: optional(messageIdSchema),
@@ -5516,6 +5526,11 @@ const bucketUsageSchema = object({
5516
5526
  modelBreakdowns: array(modelBreakdownSchema),
5517
5527
  project: optional(string())
5518
5528
  });
5529
+ function getDisplayModelName(data) {
5530
+ const model = data.message.model;
5531
+ if (model == null) return;
5532
+ return data.message.usage.speed === "fast" ? `${model}-fast` : model;
5533
+ }
5519
5534
  function aggregateByModel(entries, getModel, getUsage, getCost) {
5520
5535
  const modelAggregates = /* @__PURE__ */ new Map();
5521
5536
  const defaultStats = {
@@ -5656,14 +5671,15 @@ async function sortFilesByTimestamp(files) {
5656
5671
  }).map((item) => item.file);
5657
5672
  }
5658
5673
  async function calculateCostForEntry(data, mode, fetcher) {
5674
+ const speed = data.message.usage.speed;
5659
5675
  if (mode === "display") return data.costUSD ?? 0;
5660
5676
  if (mode === "calculate") {
5661
- if (data.message.model != null) return unwrap(fetcher.calculateCostFromTokens(data.message.usage, data.message.model), 0);
5677
+ if (data.message.model != null) return unwrap(fetcher.calculateCostFromTokens(data.message.usage, data.message.model, { speed }), 0);
5662
5678
  return 0;
5663
5679
  }
5664
5680
  if (mode === "auto") {
5665
5681
  if (data.costUSD != null) return data.costUSD;
5666
- if (data.message.model != null) return unwrap(fetcher.calculateCostFromTokens(data.message.usage, data.message.model), 0);
5682
+ if (data.message.model != null) return unwrap(fetcher.calculateCostFromTokens(data.message.usage, data.message.model, { speed }), 0);
5667
5683
  return 0;
5668
5684
  }
5669
5685
  unreachable(mode);
@@ -5718,7 +5734,7 @@ async function loadDailyUsageData(options) {
5718
5734
  data,
5719
5735
  date,
5720
5736
  cost,
5721
- model: data.message.model,
5737
+ model: getDisplayModelName(data),
5722
5738
  project
5723
5739
  });
5724
5740
  } catch {}
@@ -5784,7 +5800,7 @@ async function loadSessionData(options) {
5784
5800
  projectPath,
5785
5801
  cost,
5786
5802
  timestamp: data.timestamp,
5787
- model: data.message.model
5803
+ model: getDisplayModelName(data)
5788
5804
  });
5789
5805
  } catch {}
5790
5806
  });
@@ -5980,7 +5996,7 @@ async function loadSessionBlockData(options) {
5980
5996
  cacheReadInputTokens: data.message.usage.cache_read_input_tokens ?? 0
5981
5997
  },
5982
5998
  costUSD: cost,
5983
- model: data.message.model ?? "unknown",
5999
+ model: getDisplayModelName(data) ?? "unknown",
5984
6000
  version: data.version,
5985
6001
  usageLimitResetTime: usageLimitResetTime ?? void 0
5986
6002
  });
@@ -1649,6 +1649,66 @@ declare function optionalAsync<const TWrapped$1 extends BaseSchema<unknown, unkn
1649
1649
  /**
1650
1650
  * Picklist options type.
1651
1651
  */
1652
+ type PicklistOptions = MaybeReadonly<(string | number | bigint)[]>;
1653
+ /**
1654
+ * Picklist issue interface.
1655
+ */
1656
+ interface PicklistIssue extends BaseIssue<unknown> {
1657
+ /**
1658
+ * The issue kind.
1659
+ */
1660
+ readonly kind: 'schema';
1661
+ /**
1662
+ * The issue type.
1663
+ */
1664
+ readonly type: 'picklist';
1665
+ /**
1666
+ * The expected property.
1667
+ */
1668
+ readonly expected: string;
1669
+ }
1670
+ /**
1671
+ * Picklist schema interface.
1672
+ */
1673
+ interface PicklistSchema<TOptions$1 extends PicklistOptions, TMessage extends ErrorMessage<PicklistIssue> | undefined> extends BaseSchema<TOptions$1[number], TOptions$1[number], PicklistIssue> {
1674
+ /**
1675
+ * The schema type.
1676
+ */
1677
+ readonly type: 'picklist';
1678
+ /**
1679
+ * The schema reference.
1680
+ */
1681
+ readonly reference: typeof picklist;
1682
+ /**
1683
+ * The picklist options.
1684
+ */
1685
+ readonly options: TOptions$1;
1686
+ /**
1687
+ * The error message.
1688
+ */
1689
+ readonly message: TMessage;
1690
+ }
1691
+ /**
1692
+ * Creates a picklist schema.
1693
+ *
1694
+ * @param options The picklist options.
1695
+ *
1696
+ * @returns A picklist schema.
1697
+ */
1698
+ declare function picklist<const TOptions$1 extends PicklistOptions>(options: TOptions$1): PicklistSchema<TOptions$1, undefined>;
1699
+ /**
1700
+ * Creates a picklist schema.
1701
+ *
1702
+ * @param options The picklist options.
1703
+ * @param message The error message.
1704
+ *
1705
+ * @returns A picklist schema.
1706
+ */
1707
+ declare function picklist<const TOptions$1 extends PicklistOptions, const TMessage extends ErrorMessage<PicklistIssue> | undefined>(options: TOptions$1, message: TMessage): PicklistSchema<TOptions$1, TMessage>;
1708
+
1709
+ /**
1710
+ * Promise issue interface.
1711
+ */
1652
1712
 
1653
1713
  /**
1654
1714
  * String issue interface.
@@ -1994,6 +2054,7 @@ declare const usageDataSchema: ObjectSchema<{
1994
2054
  readonly output_tokens: NumberSchema<undefined>;
1995
2055
  readonly cache_creation_input_tokens: OptionalSchema<NumberSchema<undefined>, undefined>;
1996
2056
  readonly cache_read_input_tokens: OptionalSchema<NumberSchema<undefined>, undefined>;
2057
+ readonly speed: OptionalSchema<PicklistSchema<["standard", "fast"], undefined>, undefined>;
1997
2058
  }, undefined>;
1998
2059
  readonly model: OptionalSchema<SchemaWithPipe<readonly [StringSchema<undefined>, MinLengthAction<string, 1, "Model name cannot be empty">, BrandAction<string, "ModelName">]>, undefined>;
1999
2060
  readonly id: OptionalSchema<SchemaWithPipe<readonly [StringSchema<undefined>, MinLengthAction<string, 1, "Message ID cannot be empty">, BrandAction<string, "MessageId">]>, undefined>;
@@ -1,2 +1,2 @@
1
- import { A as sessionUsageSchema, C as loadMonthlyUsageData, D as loadWeeklyUsageData, E as loadSessionUsageById, F as weeklyUsageSchema, M as transcriptMessageSchema, N as transcriptUsageSchema, O as modelBreakdownSchema, P as usageDataSchema, S as loadDailyUsageData, T as loadSessionData, _ as getClaudePaths, a as LoadOptions, b as globUsageFiles, c as SessionUsage, d as bucketUsageSchema, f as calculateContextTokens, g as extractProjectFromPath, h as dailyUsageSchema, i as GlobResult, j as sortFilesByTimestamp, k as monthlyUsageSchema, l as UsageData, m as createUniqueHash, n as DailyUsage, o as ModelBreakdown, p as calculateCostForEntry, r as DateFilter, s as MonthlyUsage, t as BucketUsage, u as WeeklyUsage, v as getEarliestTimestamp, w as loadSessionBlockData, x as loadBucketUsageData, y as getUsageLimitResetTime } from "./data-loader-BRnqe1-8.js";
1
+ import { A as sessionUsageSchema, C as loadMonthlyUsageData, D as loadWeeklyUsageData, E as loadSessionUsageById, F as weeklyUsageSchema, M as transcriptMessageSchema, N as transcriptUsageSchema, O as modelBreakdownSchema, P as usageDataSchema, S as loadDailyUsageData, T as loadSessionData, _ as getClaudePaths, a as LoadOptions, b as globUsageFiles, c as SessionUsage, d as bucketUsageSchema, f as calculateContextTokens, g as extractProjectFromPath, h as dailyUsageSchema, i as GlobResult, j as sortFilesByTimestamp, k as monthlyUsageSchema, l as UsageData, m as createUniqueHash, n as DailyUsage, o as ModelBreakdown, p as calculateCostForEntry, r as DateFilter, s as MonthlyUsage, t as BucketUsage, u as WeeklyUsage, v as getEarliestTimestamp, w as loadSessionBlockData, x as loadBucketUsageData, y as getUsageLimitResetTime } from "./data-loader-CdGrTB0Q.js";
2
2
  export { BucketUsage, DailyUsage, DateFilter, GlobResult, LoadOptions, ModelBreakdown, MonthlyUsage, SessionUsage, UsageData, WeeklyUsage, bucketUsageSchema, calculateContextTokens, calculateCostForEntry, createUniqueHash, dailyUsageSchema, extractProjectFromPath, getClaudePaths, getEarliestTimestamp, getUsageLimitResetTime, globUsageFiles, loadBucketUsageData, loadDailyUsageData, loadMonthlyUsageData, loadSessionBlockData, loadSessionData, loadSessionUsageById, loadWeeklyUsageData, modelBreakdownSchema, monthlyUsageSchema, sessionUsageSchema, sortFilesByTimestamp, transcriptMessageSchema, transcriptUsageSchema, usageDataSchema, weeklyUsageSchema };
@@ -1,4 +1,4 @@
1
- import { C as transcriptUsageSchema, S as transcriptMessageSchema, T as weeklyUsageSchema, _ as loadWeeklyUsageData, a as dailyUsageSchema, b as sessionUsageSchema, c as getEarliestTimestamp, d as loadBucketUsageData, f as loadDailyUsageData, g as loadSessionUsageById, h as loadSessionData, i as createUniqueHash, l as getUsageLimitResetTime, m as loadSessionBlockData, n as calculateContextTokens, o as extractProjectFromPath, p as loadMonthlyUsageData, r as calculateCostForEntry, s as getClaudePaths, t as bucketUsageSchema, u as globUsageFiles, v as modelBreakdownSchema, w as usageDataSchema, x as sortFilesByTimestamp, y as monthlyUsageSchema } from "./data-loader-D0RyE7VE.js";
2
- import "./_types-BFL_bTNX.js";
3
- import "./logger-BzDGykGK.js";
1
+ import { C as transcriptUsageSchema, S as transcriptMessageSchema, T as weeklyUsageSchema, _ as loadWeeklyUsageData, a as dailyUsageSchema, b as sessionUsageSchema, c as getEarliestTimestamp, d as loadBucketUsageData, f as loadDailyUsageData, g as loadSessionUsageById, h as loadSessionData, i as createUniqueHash, l as getUsageLimitResetTime, m as loadSessionBlockData, n as calculateContextTokens, o as extractProjectFromPath, p as loadMonthlyUsageData, r as calculateCostForEntry, s as getClaudePaths, t as bucketUsageSchema, u as globUsageFiles, v as modelBreakdownSchema, w as usageDataSchema, x as sortFilesByTimestamp, y as monthlyUsageSchema } from "./data-loader-B58Zt4YE.js";
2
+ import "./_types-DY3gqCWm.js";
3
+ import "./logger-TGVysPie.js";
4
4
  export { bucketUsageSchema, calculateContextTokens, calculateCostForEntry, createUniqueHash, dailyUsageSchema, extractProjectFromPath, getClaudePaths, getEarliestTimestamp, getUsageLimitResetTime, globUsageFiles, loadBucketUsageData, loadDailyUsageData, loadMonthlyUsageData, loadSessionBlockData, loadSessionData, loadSessionUsageById, loadWeeklyUsageData, modelBreakdownSchema, monthlyUsageSchema, sessionUsageSchema, sortFilesByTimestamp, transcriptMessageSchema, transcriptUsageSchema, usageDataSchema, weeklyUsageSchema };
@@ -1,6 +1,6 @@
1
- import { A as PricingFetcher, J as CLAUDE_PROJECTS_DIR_NAME, W as _usingCtx, X as DEBUG_MATCH_THRESHOLD_PERCENT, at as try_, ft as isFailure, it as unwrap, rt as glob, s as getClaudePaths, tt as USAGE_DATA_GLOB_PATTERN, w as usageDataSchema } from "./data-loader-D0RyE7VE.js";
2
- import { P as safeParse } from "./_types-BFL_bTNX.js";
3
- import { n as logger } from "./logger-BzDGykGK.js";
1
+ import { A as PricingFetcher, J as CLAUDE_PROJECTS_DIR_NAME, W as _usingCtx, X as DEBUG_MATCH_THRESHOLD_PERCENT, at as try_, ft as isFailure, it as unwrap, rt as glob, s as getClaudePaths, tt as USAGE_DATA_GLOB_PATTERN, w as usageDataSchema } from "./data-loader-B58Zt4YE.js";
2
+ import { F as safeParse } from "./_types-DY3gqCWm.js";
3
+ import { n as logger } from "./logger-TGVysPie.js";
4
4
  import { readFile } from "node:fs/promises";
5
5
  import path from "node:path";
6
6
  async function detectMismatches(claudePath) {
package/dist/debug.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./data-loader-D0RyE7VE.js";
2
- import "./_types-BFL_bTNX.js";
3
- import "./logger-BzDGykGK.js";
4
- import { n as printMismatchReport, t as detectMismatches } from "./debug-HsoQLyhk.js";
1
+ import "./data-loader-B58Zt4YE.js";
2
+ import "./_types-DY3gqCWm.js";
3
+ import "./logger-TGVysPie.js";
4
+ import { n as printMismatchReport, t as detectMismatches } from "./debug-0PxspX9a.js";
5
5
  export { detectMismatches, printMismatchReport };
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import { $ as DEFAULT_RECENT_DAYS, B as pushBreakdownRows, D as calculateBurnRate, E as DEFAULT_SESSION_DURATION_HOURS, F as formatDateCompact, G as BLOCKS_COMPACT_WIDTH_THRESHOLD, H as getFileModifiedTime, I as formatModelsDisplayMultiline, K as BLOCKS_DEFAULT_TERMINAL_WIDTH, L as formatNumber, M as addEmptySeparatorRow, N as createUsageReportTable, O as filterRecentBlocks, P as formatCurrency, Q as DEFAULT_LOCALE, R as formatTotalsRow, U as unreachable, V as require_picocolors, W as _usingCtx, Y as CONFIG_FILE_NAME, Z as DEFAULT_CONTEXT_USAGE_THRESHOLDS, _ as loadWeeklyUsageData, at as try_, ct as inspectError, dt as isSuccess, et as DEFAULT_REFRESH_INTERVAL_SECONDS, f as loadDailyUsageData, ft as isFailure, g as loadSessionUsageById, h as loadSessionData, it as unwrap, j as ResponsiveTable, k as projectBlockUsage, lt as inspect, m as loadSessionBlockData, mt as __toESM, n as calculateContextTokens, nt as WEEK_DAYS, ot as pipe, p as loadMonthlyUsageData, pt as toArray, q as BLOCKS_WARNING_THRESHOLD, s as getClaudePaths, st as map$1, ut as succeed, z as formatUsageDataRow } from "./data-loader-D0RyE7VE.js";
3
- import { D as maxValue, E as integer$1, F as string, I as transform, L as trim, M as parse$1, N as pipe$1, O as minValue, P as safeParse, R as union, T as flatten, d as filterDateSchema, k as number, n as SortOrders, t as CostModes, w as check, y as statuslineHookJsonSchema, z as getTotalTokens } from "./_types-BFL_bTNX.js";
4
- import { n as createTotalsObject, t as calculateTotals } from "./calculate-cost-CKH-OC_c.js";
5
- import { a as version, i as name, n as logger, r as description, t as log } from "./logger-BzDGykGK.js";
6
- import { n as printMismatchReport, t as detectMismatches } from "./debug-HsoQLyhk.js";
2
+ import { $ as DEFAULT_RECENT_DAYS, B as pushBreakdownRows, D as calculateBurnRate, E as DEFAULT_SESSION_DURATION_HOURS, F as formatDateCompact, G as BLOCKS_COMPACT_WIDTH_THRESHOLD, H as getFileModifiedTime, I as formatModelsDisplayMultiline, K as BLOCKS_DEFAULT_TERMINAL_WIDTH, L as formatNumber, M as addEmptySeparatorRow, N as createUsageReportTable, O as filterRecentBlocks, P as formatCurrency, Q as DEFAULT_LOCALE, R as formatTotalsRow, U as unreachable, V as require_picocolors, W as _usingCtx, Y as CONFIG_FILE_NAME, Z as DEFAULT_CONTEXT_USAGE_THRESHOLDS, _ as loadWeeklyUsageData, at as try_, ct as inspectError, dt as isSuccess, et as DEFAULT_REFRESH_INTERVAL_SECONDS, f as loadDailyUsageData, ft as isFailure, g as loadSessionUsageById, h as loadSessionData, it as unwrap, j as ResponsiveTable, k as projectBlockUsage, lt as inspect, m as loadSessionBlockData, mt as __toESM, n as calculateContextTokens, nt as WEEK_DAYS, ot as pipe, p as loadMonthlyUsageData, pt as toArray, q as BLOCKS_WARNING_THRESHOLD, s as getClaudePaths, st as map$1, ut as succeed, z as formatUsageDataRow } from "./data-loader-B58Zt4YE.js";
3
+ import { B as getTotalTokens, D as maxValue, E as integer$1, F as safeParse, I as string, L as transform, M as parse$1, O as minValue, P as pipe$1, R as trim, T as flatten, d as filterDateSchema, k as number, n as SortOrders, t as CostModes, w as check, y as statuslineHookJsonSchema, z as union } from "./_types-DY3gqCWm.js";
4
+ import { n as createTotalsObject, t as calculateTotals } from "./calculate-cost-DWGfKMSD.js";
5
+ import { a as version, i as name, n as logger, r as description, t as log } from "./logger-TGVysPie.js";
6
+ import { n as printMismatchReport, t as detectMismatches } from "./debug-0PxspX9a.js";
7
7
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8
8
  import a from "node:fs/promises";
9
9
  import path, { join } from "node:path";
@@ -866,7 +866,7 @@ function createLogger(name$1) {
866
866
  }
867
867
  const log = console.log;
868
868
  var name = "ccusage";
869
- var version = "18.0.8";
869
+ var version = "18.0.10";
870
870
  var description = "Usage analysis tool for Claude Code";
871
871
  const logger = createLogger(name);
872
872
  const log$1 = log;
package/dist/logger.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as logger, t as log } from "./logger-BzDGykGK.js";
1
+ import { n as logger, t as log } from "./logger-TGVysPie.js";
2
2
  export { log, logger };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ccusage",
3
3
  "type": "module",
4
- "version": "18.0.8",
4
+ "version": "18.0.10",
5
5
  "description": "Usage analysis tool for Claude Code",
6
6
  "author": "ryoppippi",
7
7
  "license": "MIT",