@hasna/economy 0.5.6 → 0.5.8

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 (48) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/chunks/{billing-22az60hy.js → billing-7twygmtj.js} +2 -2
  3. package/dist/chunks/{config-hsp7ndhj.js → config-mjgbekxj.js} +2 -2
  4. package/dist/chunks/{index-9wa1f2kv.js → index-7ek4r0ww.js} +1 -1
  5. package/dist/chunks/{index-qvcafabj.js → index-9za4cmq2.js} +2 -2
  6. package/dist/chunks/{index-zs5dba3t.js → index-a1gh3d6t.js} +5 -4
  7. package/dist/chunks/{index-vajzfzgv.js → index-ep1pkyr3.js} +1 -1
  8. package/dist/chunks/{index-zqsx461z.js → index-gf3kan31.js} +2 -2
  9. package/dist/chunks/{index-dk5rq1rq.js → index-gtjqy0kd.js} +1 -1
  10. package/dist/chunks/{index-m12xttw1.js → index-h2mcj7gv.js} +82 -7
  11. package/dist/chunks/{index-c7h2rxx1.js → index-t0n32g8r.js} +1 -1
  12. package/dist/chunks/{index-f5jv6q5q.js → index-zgvmrqyc.js} +1 -1
  13. package/dist/chunks/{open-projects-8qm46m3d.js → open-projects-bj561k5j.js} +1 -1
  14. package/dist/chunks/{pricing-k9wsjwbz.js → pricing-bkgvzpe9.js} +1 -1
  15. package/dist/chunks/{pricing-462f8xkm.js → pricing-bn88mhqk.js} +1 -1
  16. package/dist/chunks/{pricing-vxejj1qa.js → pricing-nt31hf53.js} +1 -1
  17. package/dist/chunks/{serve-ept6cfbe.js → serve-14cgmx02.js} +14 -8
  18. package/dist/chunks/{sqlite-store-ht6frztj.js → sqlite-store-8t4anw98.js} +2 -2
  19. package/dist/chunks/{sqlite-store-13nhr1z0.js → sqlite-store-jfy0e8b6.js} +2 -2
  20. package/dist/chunks/{sqlite-store-gamn65xp.js → sqlite-store-r219qrjt.js} +2 -2
  21. package/dist/chunks/{tui-4bh067a3.js → tui-s6tpce3h.js} +4 -4
  22. package/dist/chunks/{watch-227kxmra.js → watch-cv5va8x6.js} +5 -5
  23. package/dist/chunks/{webhooks-nw4daw9y.js → webhooks-td46p6gk.js} +2 -2
  24. package/dist/cli/index.js +32 -28
  25. package/dist/cost-imports/contract.d.ts +84 -0
  26. package/dist/cost-imports/contract.d.ts.map +1 -0
  27. package/dist/cost-imports/decimal.d.ts +6 -0
  28. package/dist/cost-imports/decimal.d.ts.map +1 -0
  29. package/dist/cost-imports/providers.d.ts +4 -0
  30. package/dist/cost-imports/providers.d.ts.map +1 -0
  31. package/dist/index.js +66 -8
  32. package/dist/lib/analytics.d.ts +3 -0
  33. package/dist/lib/analytics.d.ts.map +1 -1
  34. package/dist/lib/comparison-contract.d.ts +8 -0
  35. package/dist/lib/comparison-contract.d.ts.map +1 -0
  36. package/dist/lib/comparison-test-contract.d.ts +3 -0
  37. package/dist/lib/comparison-test-contract.d.ts.map +1 -0
  38. package/dist/lib/store/index.d.ts.map +1 -1
  39. package/dist/mcp/index.js +69 -11
  40. package/dist/otel/index.js +1 -1
  41. package/dist/server/index.js +40 -6
  42. package/dist/server/service-operations.d.ts.map +1 -1
  43. package/dist/server/service-worker.js +40 -6
  44. package/docs/comparison-coverage.md +30 -0
  45. package/native/README.md +70 -2
  46. package/native/Tools/pair-qr.py +130 -34
  47. package/native/Tools/pair-qr.swift +19 -1
  48. package/package.json +1 -1
package/dist/cli/index.js CHANGED
@@ -4,26 +4,28 @@ import {
4
4
  syncAnthropicBilling,
5
5
  syncGeminiBilling,
6
6
  syncOpenAIBilling
7
- } from "../chunks/index-dk5rq1rq.js";
7
+ } from "../chunks/index-gtjqy0kd.js";
8
8
  import {
9
9
  buildStatusLine,
10
10
  gatherStatusData
11
- } from "../chunks/index-zqsx461z.js";
11
+ } from "../chunks/index-gf3kan31.js";
12
12
  import"../chunks/index-w3bvv0ns.js";
13
13
  import {
14
14
  agentPaths,
15
15
  syncAll
16
- } from "../chunks/index-qvcafabj.js";
16
+ } from "../chunks/index-9za4cmq2.js";
17
17
  import {
18
18
  getStore,
19
19
  isCloudStore
20
- } from "../chunks/index-zs5dba3t.js";
20
+ } from "../chunks/index-a1gh3d6t.js";
21
21
  import {
22
22
  billingDriftCheck,
23
+ comparisonValueChange,
23
24
  economyCloudStorage,
24
25
  economyTransportReport,
26
+ formatComparisonValue,
25
27
  packageMetadata
26
- } from "../chunks/index-m12xttw1.js";
28
+ } from "../chunks/index-h2mcj7gv.js";
27
29
  import {
28
30
  AGENTS,
29
31
  MAX_INGEST_BYTES,
@@ -46,7 +48,7 @@ import {
46
48
  setIngestState,
47
49
  stableJson,
48
50
  validateIngest
49
- } from "../chunks/index-f5jv6q5q.js";
51
+ } from "../chunks/index-zgvmrqyc.js";
50
52
  import {
51
53
  __require
52
54
  } from "../chunks/index-p35cyhc4.js";
@@ -1279,7 +1281,7 @@ function registerExtendedCommands(program) {
1279
1281
  }
1280
1282
  }
1281
1283
  if (!cloud) {
1282
- const { openDatabase } = await import("../chunks/sqlite-store-13nhr1z0.js");
1284
+ const { openDatabase } = await import("../chunks/sqlite-store-r219qrjt.js");
1283
1285
  const db = openDatabase();
1284
1286
  ensurePricingSeeded(db);
1285
1287
  const zeroCostBuckets = queryZeroCostTokenizedModels(db, 5);
@@ -1357,23 +1359,23 @@ function registerExtendedCommands(program) {
1357
1359
  console.log();
1358
1360
  });
1359
1361
  program.command("tui").description("Terminal status dashboard (Linux/SSH friendly)").option("--watch", "Live refresh").option("--interval <seconds>", "Refresh interval", "30").action(async (opts) => {
1360
- const { runTui } = await import("../chunks/tui-4bh067a3.js");
1362
+ const { runTui } = await import("../chunks/tui-s6tpce3h.js");
1361
1363
  await runTui({
1362
1364
  watch: Boolean(opts.watch),
1363
1365
  interval: Number(opts.interval ?? 30)
1364
1366
  });
1365
1367
  });
1366
1368
  program.command("waybar").description("Print waybar-compatible JSON status line").action(async () => {
1367
- const { printWaybarJson } = await import("../chunks/tui-4bh067a3.js");
1369
+ const { printWaybarJson } = await import("../chunks/tui-s6tpce3h.js");
1368
1370
  await printWaybarJson();
1369
1371
  });
1370
1372
  const barCmd = program.command("bar").description("Status bar helpers (Linux)");
1371
1373
  barCmd.command("tui").description("Alias for economy tui").option("--watch", "Live refresh").action(async (opts) => {
1372
- const { runTui } = await import("../chunks/tui-4bh067a3.js");
1374
+ const { runTui } = await import("../chunks/tui-s6tpce3h.js");
1373
1375
  await runTui({ watch: Boolean(opts.watch) });
1374
1376
  });
1375
1377
  barCmd.command("waybar").description("Alias for economy waybar").action(async () => {
1376
- const { printWaybarJson } = await import("../chunks/tui-4bh067a3.js");
1378
+ const { printWaybarJson } = await import("../chunks/tui-s6tpce3h.js");
1377
1379
  await printWaybarJson();
1378
1380
  });
1379
1381
  program.command("estimate").description("Estimate cost for token counts").requiredOption("--model <model>", "Model name").option("--input <n>", "Input tokens", "0").option("--output <n>", "Output tokens", "0").action(async (opts) => {
@@ -2335,7 +2337,7 @@ function backfillMachineId(db) {
2335
2337
  return { requests: Number(reqCount.changes), sessions: Number(sessCount.changes) };
2336
2338
  }
2337
2339
  async function recalculateZeroCostRequests(db) {
2338
- const { assessCostFromDb } = await import("../chunks/pricing-462f8xkm.js");
2340
+ const { assessCostFromDb } = await import("../chunks/pricing-bn88mhqk.js");
2339
2341
  const zeroRows = db.prepare(`SELECT id, model, input_tokens, output_tokens, cache_read_tokens, cache_create_tokens, cache_create_5m_tokens, cache_create_1h_tokens
2340
2342
  FROM requests
2341
2343
  WHERE cost_usd = 0
@@ -2544,7 +2546,7 @@ async function postIngest(cloud, body) {
2544
2546
  }
2545
2547
  async function syncAllToCloud(cloud, opts = {}) {
2546
2548
  await runIngestJournalOperation(cloud, { action: "reconcile" });
2547
- const { openDatabase } = await import("../chunks/sqlite-store-13nhr1z0.js");
2549
+ const { openDatabase } = await import("../chunks/sqlite-store-r219qrjt.js");
2548
2550
  const scratch = openDatabase(":memory:", true);
2549
2551
  ensurePricingSeeded(scratch);
2550
2552
  const cachePath = opts.cachePath ?? getIngestCachePath();
@@ -2571,7 +2573,7 @@ async function syncAllToCloud(cloud, opts = {}) {
2571
2573
  }
2572
2574
  async function billingSyncToCloud(cloud, opts = {}) {
2573
2575
  await runIngestJournalOperation(cloud, { action: "reconcile" });
2574
- const { openDatabase } = await import("../chunks/sqlite-store-13nhr1z0.js");
2576
+ const { openDatabase } = await import("../chunks/sqlite-store-r219qrjt.js");
2575
2577
  const scratch = openDatabase(":memory:", true);
2576
2578
  try {
2577
2579
  const days = opts.days ?? 31;
@@ -2630,7 +2632,7 @@ function autosyncIntervalMs(env = process.env) {
2630
2632
  return Math.round(seconds * 1000);
2631
2633
  }
2632
2634
  async function autosyncMarkerStore(env = process.env) {
2633
- const { openDatabase } = await import("../chunks/sqlite-store-13nhr1z0.js");
2635
+ const { openDatabase } = await import("../chunks/sqlite-store-r219qrjt.js");
2634
2636
  if (isCloudStore(env))
2635
2637
  return openDatabase(getIngestCachePath());
2636
2638
  return openDatabase();
@@ -2663,7 +2665,7 @@ async function autoSync(opts = {}) {
2663
2665
  return;
2664
2666
  if (!await autoSyncDue(undefined, process.env))
2665
2667
  return;
2666
- const { openDatabase } = await import("../chunks/sqlite-store-13nhr1z0.js");
2668
+ const { openDatabase } = await import("../chunks/sqlite-store-r219qrjt.js");
2667
2669
  const db = openDatabase();
2668
2670
  ensurePricingSeeded(db);
2669
2671
  await syncAll(db, opts);
@@ -2931,13 +2933,13 @@ program.command("sync").description("Ingest cost data from all coding agents").o
2931
2933
  }
2932
2934
  return;
2933
2935
  }
2934
- const { openDatabase } = await import("../chunks/sqlite-store-13nhr1z0.js");
2936
+ const { openDatabase } = await import("../chunks/sqlite-store-r219qrjt.js");
2935
2937
  const db = openDatabase();
2936
2938
  ensurePricingSeeded(db);
2937
2939
  const anySpecific = opts.claude || opts.takumi || opts.codex || opts.gemini || opts.opencode || opts.cursor || opts.pi || opts.hermes || opts.loops;
2938
2940
  if (!anySpecific || opts.verbose) {
2939
2941
  try {
2940
- const { syncOpenProjectsRegistry } = await import("../chunks/open-projects-8qm46m3d.js");
2942
+ const { syncOpenProjectsRegistry } = await import("../chunks/open-projects-bj561k5j.js");
2941
2943
  const p = await syncOpenProjectsRegistry(db);
2942
2944
  if (opts.verbose)
2943
2945
  console.log(chalk3.dim(`Synced open-projects registry: ${p.imported} imported, ${p.skipped} skipped`));
@@ -2972,7 +2974,7 @@ program.command("sync").description("Ingest cost data from all coding agents").o
2972
2974
  console.log(chalk3.cyan(`\u2192 Backfilled machine_id='${machine}': ${r.requests} requests, ${r.sessions} sessions`));
2973
2975
  }
2974
2976
  if (opts.recalculate) {
2975
- const { getPricingFromDb: getPricingFromDb2 } = await import("../chunks/pricing-462f8xkm.js");
2977
+ const { getPricingFromDb: getPricingFromDb2 } = await import("../chunks/pricing-bn88mhqk.js");
2976
2978
  const r = await recalculateZeroCostRequests(db);
2977
2979
  console.log(chalk3.cyan(`\u2192 Recalculated: ${r.fixed}/${r.total} zero-cost requests now have pricing`));
2978
2980
  const zeroCostBuckets = r.buckets;
@@ -2987,7 +2989,7 @@ program.command("sync").description("Ingest cost data from all coding agents").o
2987
2989
  }
2988
2990
  }
2989
2991
  try {
2990
- const { checkAndFireWebhooks } = await import("../chunks/webhooks-nw4daw9y.js");
2992
+ const { checkAndFireWebhooks } = await import("../chunks/webhooks-td46p6gk.js");
2991
2993
  await checkAndFireWebhooks(db);
2992
2994
  } catch {}
2993
2995
  for (const line of syncOutcomeLines(result))
@@ -3198,7 +3200,7 @@ program.command("accounts [period]").description("List account usage by email ad
3198
3200
  console.log();
3199
3201
  });
3200
3202
  program.command("watch").description("Live stream of incoming costs").option("--interval <seconds>", "Poll interval in seconds", "10").option("--daemon", "Watch agent data directories and sync on change").option("--agent <agent>", `Filter by agent (${AGENTS.join("|")})`).option("--notify <amount>", "Fire macOS notification when cumulative cost crosses this USD threshold").action(async (opts) => {
3201
- const { watchCosts } = await import("../chunks/watch-227kxmra.js");
3203
+ const { watchCosts } = await import("../chunks/watch-cv5va8x6.js");
3202
3204
  await watchCosts({
3203
3205
  interval: parsePositiveCliInteger(opts.interval ?? "10", "--interval"),
3204
3206
  daemon: Boolean(opts.daemon),
@@ -3339,16 +3341,16 @@ projectCmd.command("show <nameOrPath>").description("Detailed project breakdown
3339
3341
  });
3340
3342
  var configCmd = program.command("config").description("Manage economy configuration");
3341
3343
  configCmd.command("set <key> <value>").description("Set a config value").action(async (_key, _value) => {
3342
- const { setConfigValue } = await import("../chunks/config-hsp7ndhj.js");
3344
+ const { setConfigValue } = await import("../chunks/config-mjgbekxj.js");
3343
3345
  setConfigValue(_key, _value);
3344
3346
  console.log(chalk3.green(`\u2713 ${_key} = ${_value}`));
3345
3347
  });
3346
3348
  configCmd.command("get <key>").description("Get a config value").action(async (key) => {
3347
- const { getConfigValue } = await import("../chunks/config-hsp7ndhj.js");
3349
+ const { getConfigValue } = await import("../chunks/config-mjgbekxj.js");
3348
3350
  console.log(getConfigValue(key) ?? chalk3.dim("(not set)"));
3349
3351
  });
3350
3352
  configCmd.command("webhook-test").description("Send a test payload to the configured webhook URL").action(async () => {
3351
- const { loadConfig } = await import("../chunks/config-hsp7ndhj.js");
3353
+ const { loadConfig } = await import("../chunks/config-mjgbekxj.js");
3352
3354
  const config = loadConfig();
3353
3355
  const url = config["webhook-url"];
3354
3356
  if (!url) {
@@ -3382,7 +3384,7 @@ configCmd.command("webhook-test").description("Send a test payload to the config
3382
3384
  }
3383
3385
  });
3384
3386
  configCmd.action(async () => {
3385
- const { loadConfig } = await import("../chunks/config-hsp7ndhj.js");
3387
+ const { loadConfig } = await import("../chunks/config-mjgbekxj.js");
3386
3388
  const config = loadConfig();
3387
3389
  console.log();
3388
3390
  printTable(["Key", "Value"], Object.entries(config).map(([k, v]) => [k, String(v)]));
@@ -3434,7 +3436,7 @@ pricingCmd.command("remove <model>").description("Remove pricing for a model").a
3434
3436
  });
3435
3437
  program.command("serve").description("Start the REST API server").option("-p, --port <port>", "Port", "3456").action(async (opts) => {
3436
3438
  const port = parseCliPort(opts.port ?? "3456", "--port");
3437
- const { startServer } = await import("../chunks/serve-ept6cfbe.js");
3439
+ const { startServer } = await import("../chunks/serve-14cgmx02.js");
3438
3440
  startServer(port);
3439
3441
  });
3440
3442
  program.command("mcp").description("Show MCP server install commands").option("--claude", "Install into Claude Code").option("--codex", "Install into Codex").option("--gemini", "Install into Gemini CLI").option("--all", "Install into all agents").action(async (opts) => {
@@ -3614,11 +3616,13 @@ program.command("compare <period1> <period2>").description("Compare two periods
3614
3616
  console.log(chalk3.bold.cyan(` ${p1} vs ${p2}`));
3615
3617
  console.log();
3616
3618
  printTable(["Metric", p1, p2, "Change"], [
3617
- ["Cost", fmt(a.cost), fmt(b.cost), delta(a.cost, b.cost)],
3619
+ ["Usage value", formatComparisonValue(a), formatComparisonValue(b), comparisonValueChange(a, b)],
3618
3620
  ["Sessions", fmtCount(a.sessions), fmtCount(b.sessions), delta(a.sessions, b.sessions)],
3619
3621
  ["Requests", fmtCount(a.requests), fmtCount(b.requests), delta(a.requests, b.requests)],
3620
3622
  ["Tokens", fmtTokens2(a.tokens), fmtTokens2(b.tokens), delta(a.tokens, b.tokens)]
3621
3623
  ]);
3624
+ console.log(`${p1}: ${formatSummaryCoverage(a.money)}`);
3625
+ console.log(`${p2}: ${formatSummaryCoverage(b.money)}`);
3622
3626
  console.log();
3623
3627
  });
3624
3628
  program.command("forecast").description("Project end-of-month cost based on current burn rate").action(async () => {
@@ -3795,7 +3799,7 @@ billingCmd.command("sync").description("Sync actual billing from Anthropic, Open
3795
3799
  console.log(chalk3.green(`\u2713 pushed ${result.total} billing rows to the shared API`));
3796
3800
  return;
3797
3801
  }
3798
- const { openDatabase } = await import("../chunks/sqlite-store-13nhr1z0.js");
3802
+ const { openDatabase } = await import("../chunks/sqlite-store-r219qrjt.js");
3799
3803
  const db = openDatabase();
3800
3804
  const doAll = !opts.anthropic && !opts.openai && !opts.gemini;
3801
3805
  if (opts.anthropic || doAll) {
@@ -0,0 +1,84 @@
1
+ export type Provider = 'github' | 'aws' | 'blacksmith';
2
+ export interface Window {
3
+ start: string;
4
+ endExclusive: string;
5
+ timeZone: string;
6
+ }
7
+ /** Metadata from a trusted read/export, not a credential or authorization grant. */
8
+ export interface Capture {
9
+ provider: Provider;
10
+ account: string;
11
+ sourceId: string;
12
+ revision: string;
13
+ supersedes?: string;
14
+ observedAt: string;
15
+ window: Window;
16
+ currency: string;
17
+ currencySource: string;
18
+ complete: boolean;
19
+ awsQuery?: {
20
+ metric: 'UnblendedCost';
21
+ groupBy: 'SERVICE';
22
+ granularity: 'MONTHLY';
23
+ filter: null;
24
+ };
25
+ pages: Array<{
26
+ cursor: string | null;
27
+ nextCursor: string | null;
28
+ body: string;
29
+ }>;
30
+ }
31
+ export interface Authority {
32
+ provider: Provider;
33
+ account: string;
34
+ currency: string;
35
+ }
36
+ export interface CostRow {
37
+ id: string;
38
+ date: string;
39
+ dimensions: Record<string, string>;
40
+ kind: 'usage' | 'tax' | 'credit' | 'subscription' | 'included';
41
+ net: string;
42
+ gross?: string;
43
+ discount?: string;
44
+ quantity?: string;
45
+ unit?: string;
46
+ estimated: boolean;
47
+ }
48
+ export interface Snapshot {
49
+ schemaVersion: 1;
50
+ provider: Provider;
51
+ account: string;
52
+ sourceId: string;
53
+ revision: string;
54
+ supersedes: string | null;
55
+ observedAt: string;
56
+ window: Window;
57
+ currency: string;
58
+ currencySource: string;
59
+ basis: 'usage_report' | 'cost_explorer' | 'invoice';
60
+ scopeId: string;
61
+ contentHash: string;
62
+ snapshotId: string;
63
+ pageHashes: string[];
64
+ rows: CostRow[];
65
+ excludedRows: number;
66
+ total: string;
67
+ tax: string | null;
68
+ paymentStatus: 'unknown';
69
+ }
70
+ export declare function fail(code: string): never;
71
+ export declare function object(value: unknown): Record<string, unknown>;
72
+ export declare function list(value: unknown): unknown[];
73
+ /** Bounded metadata labels; URLs and control characters are refused. Not a secret scanner. */
74
+ export declare function label(value: unknown): string;
75
+ export declare function date(value: unknown): string;
76
+ export declare function stable(value: unknown): string;
77
+ export declare const hash: (value: string) => string;
78
+ export declare function validateCapture(c: Capture, authority: Authority): Record<string, unknown>[];
79
+ export declare function inWindow(day: unknown, c: Capture): string;
80
+ export declare function finish(c: Capture, rows: CostRow[], basis: Snapshot['basis'], excludedRows?: number): Snapshot;
81
+ export declare function admitRevision(history: readonly Snapshot[], next: Snapshot): 'append' | 'replay';
82
+ /** Totals stay partitioned by provider/account/currency/basis/window; no grand total. */
83
+ export declare function reconcile(history: readonly Snapshot[]): Snapshot[];
84
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/cost-imports/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** Exact, bounded decimal arithmetic. Provider precision is retained until display. */
2
+ export declare function decimal(value: unknown): string;
3
+ export declare function add(...values: string[]): string;
4
+ export declare function negate(value: string): string;
5
+ export declare function within(left: string, right: string, tolerance?: string): boolean;
6
+ //# sourceMappingURL=decimal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decimal.d.ts","sourceRoot":"","sources":["../../src/cost-imports/decimal.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAc9C;AAKD,wBAAgB,GAAG,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAK/C;AACD,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAyE;AACtH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAI5E"}
@@ -0,0 +1,4 @@
1
+ import { type Capture, type Authority, type Snapshot } from './contract.js';
2
+ /** No HTTP or state access: normalize one fully captured provider report. */
3
+ export declare function normalizeCostImport(capture: Capture, authority: Authority): Snapshot;
4
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/cost-imports/providers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAgB,KAAK,QAAQ,EAA8E,MAAM,eAAe,CAAA;AAUrK,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,QAAQ,CAKpF"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  COST_BASIS,
5
5
  MAX_INGEST_BYTES,
6
6
  __require,
7
+ buildCostSummary,
7
8
  cacheDir,
8
9
  calendarPeriodBounds,
9
10
  calendarPeriodWhere,
@@ -56,13 +57,61 @@ import {
56
57
  upsertSubscription,
57
58
  usageSnapshotFilterForPeriod,
58
59
  validateIngest
59
- } from "./chunks/index-c7h2rxx1.js";
60
+ } from "./chunks/index-t0n32g8r.js";
61
+ // src/lib/comparison-contract.ts
62
+ function comparisonDateBounds(from, to) {
63
+ const valid = (value) => /^\d{4}-\d{2}-\d{2}$/.test(value) && Number.isFinite(Date.parse(value + "T00:00:00Z")) && new Date(value + "T00:00:00Z").toISOString().slice(0, 10) === value;
64
+ if (!valid(from) || !valid(to) || from > to) {
65
+ throw new RangeError("from and to must be real YYYY-MM-DD UTC dates with from <= to");
66
+ }
67
+ const end = new Date(to + "T00:00:00Z");
68
+ end.setUTCDate(end.getUTCDate() + 1);
69
+ const exclusive = end.toISOString().slice(0, 10);
70
+ if (!valid(exclusive))
71
+ throw new RangeError("to exceeds the supported UTC date range");
72
+ return { time_zone: "UTC", start_date: from, end_date_exclusive: exclusive };
73
+ }
74
+ function requireCurrentRangeStats(value, from, to) {
75
+ if (!value || typeof value !== "object")
76
+ throw new Error("COMPARISON_REPORT_UNAVAILABLE: Invalid response");
77
+ const report = value;
78
+ let money;
79
+ try {
80
+ money = requireCurrentCostSummary(report.money);
81
+ } catch {
82
+ throw new Error("COMPARISON_REPORT_UNAVAILABLE: The service must support comparison coverage");
83
+ }
84
+ for (const key of ["sessions", "requests", "tokens"]) {
85
+ if (!Number.isSafeInteger(report[key]) || report[key] < 0)
86
+ throw new Error("COMPARISON_REPORT_UNAVAILABLE: Invalid " + key);
87
+ }
88
+ if (report.cost !== money.total_usd || report.requests !== money.request_rows || report.tokens !== money.tokens || money.session_only_sessions !== 0 || money.session_only_value_usd !== 0 || money.requests !== money.request_rows) {
89
+ throw new Error("COMPARISON_REPORT_UNAVAILABLE: Inconsistent monetary coverage");
90
+ }
91
+ const knownRows = money.request_rows - money.unknown_price_requests;
92
+ const completeness = money.request_rows === 0 ? "no_records" : money.unknown_price_requests === 0 ? "complete" : knownRows > 0 ? "partial" : "unavailable";
93
+ if (money.completeness !== completeness || knownRows === 0 && money.total_usd !== 0 || money.sessions > money.request_rows || money.request_rows === 0 && money.tokens !== 0) {
94
+ throw new Error("COMPARISON_REPORT_UNAVAILABLE: Inconsistent request coverage");
95
+ }
96
+ const bounds = money.period_bounds;
97
+ if (!bounds.start_date || !bounds.end_date_exclusive || bounds.start_date >= bounds.end_date_exclusive) {
98
+ throw new Error("COMPARISON_REPORT_UNAVAILABLE: Missing comparison dates");
99
+ }
100
+ if (from !== undefined || to !== undefined) {
101
+ const expected = comparisonDateBounds(from, to);
102
+ if (bounds.start_date !== expected.start_date || bounds.end_date_exclusive !== expected.end_date_exclusive) {
103
+ throw new Error("COMPARISON_REPORT_UNAVAILABLE: Response dates do not match the requested range");
104
+ }
105
+ }
106
+ return report;
107
+ }
108
+
60
109
  // src/lib/store/index.ts
61
110
  import { randomUUID } from "crypto";
62
111
  // package.json
63
112
  var package_default = {
64
113
  name: "@hasna/economy",
65
- version: "0.5.6",
114
+ version: "0.5.8",
66
115
  description: "AI coding cost tracker \u2014 CLI + MCP server + REST API for Claude Code, Codex, OpenCode, Cursor, Pi, and Hermes, with legacy Gemini CLI session and Gemini API billing ingestion",
67
116
  repository: {
68
117
  type: "git",
@@ -1121,11 +1170,20 @@ function queryExportRows(db, type, period) {
1121
1170
  return db.prepare(`SELECT * FROM economy_effective_sessions WHERE ${where} ORDER BY started_at DESC`).all();
1122
1171
  }
1123
1172
  function queryRangeStats(db, from, to) {
1124
- const r = db.prepare(`SELECT COALESCE(SUM(cost_usd),0) as cost, COUNT(*) as requests,
1125
- COALESCE(SUM(input_tokens+output_tokens+cache_read_tokens+cache_create_tokens),0) as tokens
1126
- FROM economy_effective_requests WHERE DATE(timestamp) BETWEEN ? AND ?`).get(from, to);
1173
+ const bounds = comparisonDateBounds(from, to);
1174
+ const groups = db.prepare(`
1175
+ SELECT cost_basis, model, CASE WHEN cost_usd = 0 THEN 1 WHEN cost_usd < 0 THEN 2 ELSE 0 END AS zero_cost,
1176
+ SUM(cost_usd) AS cost_usd, COUNT(*) AS requests,
1177
+ COALESCE(SUM(input_tokens),0) AS input_tokens, COALESCE(SUM(output_tokens),0) AS output_tokens,
1178
+ COALESCE(SUM(cache_read_tokens),0) AS cache_read_tokens, COALESCE(SUM(cache_create_tokens),0) AS cache_create_tokens,
1179
+ COALESCE(SUM(cache_create_1h_tokens),0) AS cache_create_1h_tokens
1180
+ FROM economy_effective_requests WHERE DATE(timestamp) BETWEEN ? AND ?
1181
+ GROUP BY cost_basis, model, CASE WHEN cost_usd = 0 THEN 1 WHEN cost_usd < 0 THEN 2 ELSE 0 END
1182
+ `).all(from, to);
1183
+ const requestSessions = db.prepare("SELECT COUNT(DISTINCT session_id) AS sessions FROM economy_effective_requests WHERE DATE(timestamp) BETWEEN ? AND ?").get(from, to);
1184
+ const money = buildCostSummary("all", bounds, groups, { sessions: 0, requests: 0, tokens: 0, cost_usd: 0 }, requestSessions.sessions, listModelPricing(db));
1127
1185
  const s = db.prepare(`SELECT COUNT(*) as sessions FROM economy_effective_sessions WHERE DATE(started_at) BETWEEN ? AND ?`).get(from, to);
1128
- return { cost: r.cost, requests: r.requests, tokens: r.tokens, sessions: s.sessions };
1186
+ return { cost: money.total_usd, money, requests: money.request_rows, tokens: money.tokens, sessions: s.sessions };
1129
1187
  }
1130
1188
  function queryForecast(db, now = new Date) {
1131
1189
  const month = resolveReportingInterval({ kind: "calendar", period: "month" }, now);
@@ -1340,7 +1398,7 @@ class LocalStore {
1340
1398
  _db;
1341
1399
  async db() {
1342
1400
  if (!this._db) {
1343
- const { openDatabase } = await import("./chunks/sqlite-store-ht6frztj.js");
1401
+ const { openDatabase } = await import("./chunks/sqlite-store-8t4anw98.js");
1344
1402
  this._db = openDatabase();
1345
1403
  ensurePricingSeeded(this._db);
1346
1404
  }
@@ -1617,7 +1675,7 @@ class ApiStore {
1617
1675
  return cloudListItems(this.cloud, "export", q({ type, period }));
1618
1676
  }
1619
1677
  async rangeStats(from, to) {
1620
- return cloudObject(this.cloud, "/compare", q({ from, to }));
1678
+ return requireCurrentRangeStats(await cloudObject(this.cloud, "/compare", q({ from, to })), from, to);
1621
1679
  }
1622
1680
  async forecast() {
1623
1681
  return cloudObject(this.cloud, "/forecast");
@@ -1,3 +1,4 @@
1
+ import type { CostSummary } from '../types/index.js';
1
2
  import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
2
3
  export interface ProjectDetailModel {
3
4
  model: string;
@@ -28,7 +29,9 @@ export type ExportType = 'sessions' | 'requests';
28
29
  /** Raw rows for a CSV export. CSV formatting stays in the caller. */
29
30
  export declare function queryExportRows(db: Database, type: ExportType, period: string): Array<Record<string, unknown>>;
30
31
  export interface RangeStats {
32
+ /** Known selected-request usage value subtotal. Use money.complete_total_usd for a complete total, never payment. */
31
33
  cost: number;
34
+ money: CostSummary;
32
35
  requests: number;
33
36
  tokens: number;
34
37
  sessions: number;
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/lib/analytics.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIxE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,YAAY,EAAE,oBAAoB,EAAE,CAAA;CACrC;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAa,GAAG,aAAa,GAAG,IAAI,CAoD3G;AAID,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAShD,qEAAqE;AACrE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,GACb,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOhC;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAUlF;AAID,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACvD,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC9D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAE,IAAiB,GAAG,YAAY,CAiChF;AAID,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,EAAE,CAWpE"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/lib/analytics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AASpD,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIxE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,YAAY,EAAE,oBAAoB,EAAE,CAAA;CACrC;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAa,GAAG,aAAa,GAAG,IAAI,CAoD3G;AAID,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAShD,qEAAqE;AACrE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,GACb,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOhC;AAID,MAAM,WAAW,UAAU;IACzB,qHAAqH;IACrH,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAqBlF;AAID,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACvD,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC9D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAE,IAAiB,GAAG,YAAY,CAiChF;AAID,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,EAAE,CAWpE"}
@@ -0,0 +1,8 @@
1
+ import type { RangeStats } from './analytics.js';
2
+ import type { CalendarPeriodBounds } from './periods.js';
3
+ export declare function comparisonDateBounds(from: string, to: string): CalendarPeriodBounds;
4
+ /** Old servers' bare cost sums cannot satisfy the comparison coverage contract. */
5
+ export declare function requireCurrentRangeStats(value: unknown, from?: string, to?: string): RangeStats;
6
+ export declare function formatComparisonValue(report: RangeStats): string;
7
+ export declare function comparisonValueChange(left: RangeStats, right: RangeStats): string;
8
+ //# sourceMappingURL=comparison-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-contract.d.ts","sourceRoot":"","sources":["../../src/lib/comparison-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGxD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,oBAAoB,CAYnF;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAiC/F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CASjF"}
@@ -0,0 +1,3 @@
1
+ import type { SqliteAdapter } from '../db/sqlite-adapter.js';
2
+ export declare function verifyComparisonCoverage(db: SqliteAdapter): Promise<void>;
3
+ //# sourceMappingURL=comparison-test-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-test-contract.d.ts","sourceRoot":"","sources":["../../src/lib/comparison-test-contract.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAM5D,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwF/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"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"}