@kaitranntt/ccs 8.1.4-dev.8 → 8.2.0-dev.1

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 (134) hide show
  1. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts +9 -0
  2. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
  3. package/dist/cliproxy/quota/quota-fetcher-claude.js +53 -16
  4. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
  5. package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -1
  6. package/dist/cliproxy/quota/quota-fetcher.js +4 -0
  7. package/dist/cliproxy/quota/quota-fetcher.js.map +1 -1
  8. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
  9. package/dist/cliproxy/quota/quota-manager.js +32 -1
  10. package/dist/cliproxy/quota/quota-manager.js.map +1 -1
  11. package/dist/cliproxy/services/stats-fetcher.d.ts +13 -0
  12. package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -1
  13. package/dist/cliproxy/services/stats-fetcher.js +25 -1
  14. package/dist/cliproxy/services/stats-fetcher.js.map +1 -1
  15. package/dist/commands/bar/index.d.ts +8 -0
  16. package/dist/commands/bar/index.d.ts.map +1 -0
  17. package/dist/commands/bar/index.js +69 -0
  18. package/dist/commands/bar/index.js.map +1 -0
  19. package/dist/commands/bar/install-subcommand.d.ts +50 -0
  20. package/dist/commands/bar/install-subcommand.d.ts.map +1 -0
  21. package/dist/commands/bar/install-subcommand.js +383 -0
  22. package/dist/commands/bar/install-subcommand.js.map +1 -0
  23. package/dist/commands/bar/launch-subcommand.d.ts +38 -0
  24. package/dist/commands/bar/launch-subcommand.d.ts.map +1 -0
  25. package/dist/commands/bar/launch-subcommand.js +141 -0
  26. package/dist/commands/bar/launch-subcommand.js.map +1 -0
  27. package/dist/commands/bar/uninstall-subcommand.d.ts +13 -0
  28. package/dist/commands/bar/uninstall-subcommand.d.ts.map +1 -0
  29. package/dist/commands/bar/uninstall-subcommand.js +78 -0
  30. package/dist/commands/bar/uninstall-subcommand.js.map +1 -0
  31. package/dist/commands/bar/version-subcommand.d.ts +8 -0
  32. package/dist/commands/bar/version-subcommand.d.ts.map +1 -0
  33. package/dist/commands/bar/version-subcommand.js +62 -0
  34. package/dist/commands/bar/version-subcommand.js.map +1 -0
  35. package/dist/commands/command-catalog.d.ts.map +1 -1
  36. package/dist/commands/command-catalog.js +6 -0
  37. package/dist/commands/command-catalog.js.map +1 -1
  38. package/dist/commands/root-command-router.d.ts.map +1 -1
  39. package/dist/commands/root-command-router.js +7 -0
  40. package/dist/commands/root-command-router.js.map +1 -1
  41. package/dist/config/loader/yaml-serializer.d.ts.map +1 -1
  42. package/dist/config/loader/yaml-serializer.js +13 -0
  43. package/dist/config/loader/yaml-serializer.js.map +1 -1
  44. package/dist/config/schemas/quota.d.ts +26 -2
  45. package/dist/config/schemas/quota.d.ts.map +1 -1
  46. package/dist/config/schemas/quota.js +20 -1
  47. package/dist/config/schemas/quota.js.map +1 -1
  48. package/dist/ui/assets/{Trans-DsGR5Bhb.js → Trans-BkttMZOY.js} +1 -1
  49. package/dist/ui/assets/{accounts-DHBmHeH-.js → accounts-CMnafyvZ.js} +1 -1
  50. package/dist/ui/assets/{alert-dialog-Do0XfN46.js → alert-dialog-Dgbg5gJ1.js} +1 -1
  51. package/dist/ui/assets/api-VhuWZte1.js +4 -0
  52. package/dist/ui/assets/{auth-section-BmTeNetL.js → auth-section-DV1ImDLn.js} +1 -1
  53. package/dist/ui/assets/{backups-section-COawLfTr.js → backups-section-D7r-Huo_.js} +1 -1
  54. package/dist/ui/assets/{channels-C9LVYmNJ.js → channels-CKUk3W1L.js} +1 -1
  55. package/dist/ui/assets/{checkbox-BkFzg8C-.js → checkbox-B6j6PA4N.js} +1 -1
  56. package/dist/ui/assets/{claude-extension-Ch7L4lTF.js → claude-extension-B9phgEGW.js} +1 -1
  57. package/dist/ui/assets/{cliproxy-B3uWt6gn.js → cliproxy-CjZiufaQ.js} +1 -1
  58. package/dist/ui/assets/{cliproxy-ai-providers-Bn1_AdKD.js → cliproxy-ai-providers-J_8Tg44E.js} +1 -1
  59. package/dist/ui/assets/{cliproxy-control-panel-DC4pOOfY.js → cliproxy-control-panel-DOxGnabX.js} +1 -1
  60. package/dist/ui/assets/{codex-CcODhykP.js → codex-BJuDLXfe.js} +1 -1
  61. package/dist/ui/assets/{confirm-dialog-4rb-E8-R.js → confirm-dialog-CjwyQ3AU.js} +1 -1
  62. package/dist/ui/assets/{copilot-zgPXNkMw.js → copilot-Nhs4PdOq.js} +2 -2
  63. package/dist/ui/assets/{cursor-lRPpppk-.js → cursor-DqFROSqy.js} +1 -1
  64. package/dist/ui/assets/{droid-koOj34SB.js → droid-CBwAiZcv.js} +1 -1
  65. package/dist/ui/assets/{globalenv-section-jOkPVwvN.js → globalenv-section-D9WhcK3S.js} +1 -1
  66. package/dist/ui/assets/{health-CxHauE3Y.js → health-CE3lFqFV.js} +1 -1
  67. package/dist/ui/assets/icons-gI6odJjU.js +1 -0
  68. package/dist/ui/assets/{index-De3yNJ94.js → index-Bssd99Pa.js} +1 -1
  69. package/dist/ui/assets/{index-I_ek1xyD.js → index-C6D81JHk.js} +1 -1
  70. package/dist/ui/assets/{index-BLC5PyZn.js → index-D--xE6Kq.js} +1 -1
  71. package/dist/ui/assets/{index-D7crOfea.js → index-DFYK4jw3.js} +4 -4
  72. package/dist/ui/assets/{index-DUGnoURR.js → index-DGsfFqiO.js} +1 -1
  73. package/dist/ui/assets/index-UEdhhar4.css +1 -0
  74. package/dist/ui/assets/{index-CRhKyfnS.js → index-bJvDY0e2.js} +1 -1
  75. package/dist/ui/assets/{index-BK-PSsqi.js → index-vK0cF4_0.js} +1 -1
  76. package/dist/ui/assets/{logs-BplpQHRb.js → logs-BUA9GCN2.js} +1 -1
  77. package/dist/ui/assets/{masked-input-DuLL3EwS.js → masked-input-BZdCgWmH.js} +1 -1
  78. package/dist/ui/assets/{proxy-status-widget-BruRPTSl.js → proxy-status-widget-I35xB9u9.js} +1 -1
  79. package/dist/ui/assets/{raw-json-settings-editor-panel-ClPqZ6iZ.js → raw-json-settings-editor-panel-DuL_4ncA.js} +1 -1
  80. package/dist/ui/assets/{searchable-select-BH1b065u.js → searchable-select-BleLprBy.js} +1 -1
  81. package/dist/ui/assets/{separator-BOiJ0l4s.js → separator-De5-VTtx.js} +1 -1
  82. package/dist/ui/assets/{shared-CunXigZu.js → shared-Bu81YVUK.js} +1 -1
  83. package/dist/ui/assets/{table-C7ysR1Xz.js → table-DsXaM2jg.js} +1 -1
  84. package/dist/ui/assets/{updates-BtBCV2xk.js → updates-C2bOO3Fo.js} +1 -1
  85. package/dist/ui/assets/{use-accounts-CwRU3ln9.js → use-accounts-C2OmaTJU.js} +1 -1
  86. package/dist/ui/index.html +3 -3
  87. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  88. package/dist/web-server/routes/account-routes.js +116 -0
  89. package/dist/web-server/routes/account-routes.js.map +1 -1
  90. package/dist/web-server/routes/bar-routes.d.ts +149 -0
  91. package/dist/web-server/routes/bar-routes.d.ts.map +1 -0
  92. package/dist/web-server/routes/bar-routes.js +415 -0
  93. package/dist/web-server/routes/bar-routes.js.map +1 -0
  94. package/dist/web-server/routes/index.d.ts.map +1 -1
  95. package/dist/web-server/routes/index.js +18 -0
  96. package/dist/web-server/routes/index.js.map +1 -1
  97. package/dist/web-server/usage/bar-analytics.d.ts +101 -0
  98. package/dist/web-server/usage/bar-analytics.d.ts.map +1 -0
  99. package/dist/web-server/usage/bar-analytics.js +315 -0
  100. package/dist/web-server/usage/bar-analytics.js.map +1 -0
  101. package/dist/web-server/usage/claude-native-credentials.d.ts +56 -0
  102. package/dist/web-server/usage/claude-native-credentials.d.ts.map +1 -0
  103. package/dist/web-server/usage/claude-native-credentials.js +140 -0
  104. package/dist/web-server/usage/claude-native-credentials.js.map +1 -0
  105. package/dist/web-server/usage/cliproxy-snapshot-reader.d.ts +24 -0
  106. package/dist/web-server/usage/cliproxy-snapshot-reader.d.ts.map +1 -0
  107. package/dist/web-server/usage/cliproxy-snapshot-reader.js +82 -0
  108. package/dist/web-server/usage/cliproxy-snapshot-reader.js.map +1 -0
  109. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +3 -2
  110. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -1
  111. package/dist/web-server/usage/cliproxy-usage-syncer.js +14 -2
  112. package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -1
  113. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +8 -1
  114. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  115. package/dist/web-server/usage/cliproxy-usage-transformer.js +31 -4
  116. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  117. package/dist/web-server/usage/codex-local-quota-collector.d.ts +74 -0
  118. package/dist/web-server/usage/codex-local-quota-collector.d.ts.map +1 -0
  119. package/dist/web-server/usage/codex-local-quota-collector.js +248 -0
  120. package/dist/web-server/usage/codex-local-quota-collector.js.map +1 -0
  121. package/dist/web-server/usage/data-aggregator.d.ts +11 -0
  122. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -1
  123. package/dist/web-server/usage/data-aggregator.js +29 -1
  124. package/dist/web-server/usage/data-aggregator.js.map +1 -1
  125. package/dist/web-server/usage/native-quota-collector.d.ts +44 -0
  126. package/dist/web-server/usage/native-quota-collector.d.ts.map +1 -0
  127. package/dist/web-server/usage/native-quota-collector.js +378 -0
  128. package/dist/web-server/usage/native-quota-collector.js.map +1 -0
  129. package/dist/web-server/usage/types.d.ts +2 -0
  130. package/dist/web-server/usage/types.d.ts.map +1 -1
  131. package/package.json +1 -1
  132. package/dist/ui/assets/api-B7OYas_V.js +0 -4
  133. package/dist/ui/assets/icons-DzKUh8vG.js +0 -1
  134. package/dist/ui/assets/index-DOfPoKe_.css +0 -1
@@ -7,15 +7,16 @@
7
7
  * Snapshot location: ~/.ccs/cache/cliproxy-usage/latest.json
8
8
  * Sync interval: 5 minutes
9
9
  */
10
- import { fetchCliproxyUsageRaw } from '../../cliproxy/services/stats-fetcher';
10
+ import { fetchCliproxyUsageRaw, fetchCliproxyAuthFiles } from '../../cliproxy/services/stats-fetcher';
11
11
  import type { DailyUsage, HourlyUsage, MonthlyUsage } from './types';
12
12
  type FetchCliproxyUsageRaw = typeof fetchCliproxyUsageRaw;
13
+ type FetchCliproxyAuthFiles = typeof fetchCliproxyAuthFiles;
13
14
  export declare function loadCachedCliproxyData(): Promise<{
14
15
  daily: DailyUsage[];
15
16
  hourly: HourlyUsage[];
16
17
  monthly: MonthlyUsage[];
17
18
  }>;
18
- export declare function syncCliproxyUsage(fetchRaw?: FetchCliproxyUsageRaw): Promise<void>;
19
+ export declare function syncCliproxyUsage(fetchRaw?: FetchCliproxyUsageRaw, fetchAuthFiles?: FetchCliproxyAuthFiles): Promise<void>;
19
20
  export declare function startCliproxySync(syncNow?: () => Promise<void>): void;
20
21
  export declare function stopCliproxySync(): void;
21
22
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"cliproxy-usage-syncer.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-syncer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAS9E,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAsBrE,KAAK,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAgQ1D,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IACtD,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC,CAcD;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,GAAE,qBAA6C,GACtD,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAM,OAAO,CAAC,IAAI,CAA6B,GAAG,IAAI,CAahG;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC"}
1
+ {"version":3,"file":"cliproxy-usage-syncer.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-syncer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EAEvB,MAAM,uCAAuC,CAAC;AAS/C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAsBrE,KAAK,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAC1D,KAAK,sBAAsB,GAAG,OAAO,sBAAsB,CAAC;AAgQ5D,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IACtD,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC,CAcD;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,GAAE,qBAA6C,EACvD,cAAc,GAAE,sBAA+C,GAC9D,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAM,OAAO,CAAC,IAAI,CAA6B,GAAG,IAAI,CAahG;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC"}
@@ -247,14 +247,26 @@ async function loadCachedCliproxyData() {
247
247
  return { daily: snapshot.daily, hourly: snapshot.hourly, monthly: snapshot.monthly };
248
248
  }
249
249
  exports.loadCachedCliproxyData = loadCachedCliproxyData;
250
- async function syncCliproxyUsage(fetchRaw = stats_fetcher_1.fetchCliproxyUsageRaw) {
250
+ async function syncCliproxyUsage(fetchRaw = stats_fetcher_1.fetchCliproxyUsageRaw, fetchAuthFiles = stats_fetcher_1.fetchCliproxyAuthFiles) {
251
251
  const raw = await fetchRaw();
252
252
  if (raw === null) {
253
253
  console.log((0, ui_1.warn)('CLIProxy usage sync skipped: proxy unavailable'));
254
254
  return;
255
255
  }
256
+ // Build auth_index → account email map for attribution.
257
+ // Auth file fetch failure is non-fatal: fall back to undefined map (cost = 0).
258
+ let accountMap;
256
259
  try {
257
- await writeSnapshotWithMerge((0, cliproxy_usage_transformer_1.extractCliproxyUsageHistoryDetails)(raw));
260
+ const authFiles = await fetchAuthFiles();
261
+ if (authFiles !== null) {
262
+ accountMap = (0, stats_fetcher_1.buildAuthIndexToAccountMap)(authFiles);
263
+ }
264
+ }
265
+ catch {
266
+ // Auth files unavailable — proceed without account attribution
267
+ }
268
+ try {
269
+ await writeSnapshotWithMerge((0, cliproxy_usage_transformer_1.extractCliproxyUsageHistoryDetails)(raw, accountMap));
258
270
  }
259
271
  catch (err) {
260
272
  console.log((0, ui_1.warn)('Failed to write CLIProxy snapshot:') + ` ${err.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"cliproxy-usage-syncer.js","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-syncer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cliproxy-usage-syncer.js","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-syncer.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import type { DailyUsage, HourlyUsage, MonthlyUsage } from './types';
10
10
  export interface CliproxyUsageHistoryDetail {
11
11
  model: string;
12
12
  provider?: string;
13
+ /** CLIProxy account email/id derived from auth_index lookup. Populated when an accountMap is supplied. */
14
+ accountId?: string;
13
15
  timestamp: string;
14
16
  inputTokens: number;
15
17
  outputTokens: number;
@@ -23,8 +25,13 @@ export declare function normalizeCliproxyUsageHistoryDetail(detail: unknown): Cl
23
25
  * Flatten the nested response.usage.apis[provider].models[model].details[]
24
26
  * structure into normalized history details. Failed requests are retained only
25
27
  * when they still report tracked token usage that analytics can account for.
28
+ *
29
+ * @param accountMap Optional auth_index → account email/id map. When provided,
30
+ * each detail's `accountId` is resolved from String(auth_index). When the index
31
+ * is absent from the map, `accountId` is left undefined so getTodayCostByAccount
32
+ * buckets the cost under 'unknown' rather than mis-attributing it.
26
33
  */
27
- export declare function extractCliproxyUsageHistoryDetails(response: CliproxyUsageApiResponse): CliproxyUsageHistoryDetail[];
34
+ export declare function extractCliproxyUsageHistoryDetails(response: CliproxyUsageApiResponse, accountMap?: Map<string, string>): CliproxyUsageHistoryDetail[];
28
35
  export declare function mergeCliproxyUsageHistoryDetails(existing: CliproxyUsageHistoryDetail[], incoming: CliproxyUsageHistoryDetail[]): CliproxyUsageHistoryDetail[];
29
36
  export declare function pruneCliproxyUsageHistoryDetails(details: CliproxyUsageHistoryDetail[], oldestTimestamp: number): CliproxyUsageHistoryDetail[];
30
37
  /** Transform CLIProxy usage response into DailyUsage array (sorted descending by date) */
@@ -1 +1 @@
1
- {"version":3,"file":"cliproxy-usage-transformer.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAkB,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAOrF,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAyFD,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,OAAO,GACd,0BAA0B,GAAG,IAAI,CAuCnC;AAeD;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,wBAAwB,GACjC,0BAA0B,EAAE,CAkB9B;AAmED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,QAAQ,EAAE,0BAA0B,EAAE,GACrC,0BAA0B,EAAE,CA0C9B;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,0BAA0B,EAAE,EACrC,eAAe,EAAE,MAAM,GACtB,0BAA0B,EAAE,CAK9B;AAoED,0FAA0F;AAC1F,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,UAAU,EAAE,CAsB9F;AAED,2FAA2F;AAC3F,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,WAAW,EAAE,CA2BhG;AAED,6FAA6F;AAC7F,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,wBAAwB,GACjC,YAAY,EAAE,CAkBhB;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,0BAA0B,EAAE,GAAG;IAC1F,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAgEA"}
1
+ {"version":3,"file":"cliproxy-usage-transformer.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAkB,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAOrF,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0GAA0G;IAC1G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAsGD,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,OAAO,GACd,0BAA0B,GAAG,IAAI,CAiDnC;AAeD;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,wBAAwB,EAClC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,0BAA0B,EAAE,CAkB9B;AAoED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,QAAQ,EAAE,0BAA0B,EAAE,GACrC,0BAA0B,EAAE,CA0C9B;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,0BAA0B,EAAE,EACrC,eAAe,EAAE,MAAM,GACtB,0BAA0B,EAAE,CAK9B;AAoED,0FAA0F;AAC1F,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,UAAU,EAAE,CAsB9F;AAED,2FAA2F;AAC3F,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,WAAW,EAAE,CA2BhG;AAED,6FAA6F;AAC7F,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,wBAAwB,GACjC,YAAY,EAAE,CAkBhB;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,0BAA0B,EAAE,GAAG;IAC1F,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAgEA"}
@@ -22,14 +22,25 @@ function buildModelBreakdown(modelName, provider, acc) {
22
22
  cost,
23
23
  };
24
24
  }
25
- function createHistoryDetail(provider, model, detail) {
25
+ function createHistoryDetail(provider, model, detail, accountMap) {
26
26
  const pricingProvider = (0, model_identity_1.normalizeUsageProvider)(provider) ?? provider.trim().toLowerCase();
27
27
  const inputTokens = detail.tokens?.input_tokens ?? 0;
28
28
  const outputTokens = detail.tokens?.output_tokens ?? 0;
29
29
  const cacheReadTokens = detail.tokens?.cached_tokens ?? 0;
30
+ // Resolve accountId from auth_index → account map.
31
+ // buildAuthIndexToAccountMap stores only String(auth_index) keys, so the numeric-key
32
+ // lookup is dead code and the detail.source fallback mis-attributes cost to a CLIProxy
33
+ // source label rather than an email. Leave accountId undefined when the index is absent
34
+ // so getTodayCostByAccount buckets it under 'unknown' and the bar excludes it.
35
+ let accountId;
36
+ if (accountMap !== undefined) {
37
+ const key = String(detail.auth_index);
38
+ accountId = accountMap.get(key);
39
+ }
30
40
  return {
31
41
  model,
32
42
  provider: pricingProvider,
43
+ ...(accountId !== undefined && { accountId }),
33
44
  timestamp: detail.timestamp,
34
45
  inputTokens,
35
46
  outputTokens,
@@ -72,10 +83,20 @@ function normalizeCliproxyUsageHistoryDetail(detail) {
72
83
  const outputTokens = normalizePersistedNumber(candidate.outputTokens);
73
84
  const cacheReadTokens = normalizePersistedNumber(candidate.cacheReadTokens);
74
85
  const requestCount = Math.max(1, normalizePersistedNumber(candidate.requestCount, 1));
75
- const cost = normalizePersistedNumber(candidate.cost, calculateHistoryDetailCost(candidate.model, provider, inputTokens, outputTokens, cacheReadTokens));
86
+ // Compute the cost fallback lazily. calculateHistoryDetailCost is ~6ms/call
87
+ // (model-pricing lookup); passing it as an eager default argument ran it for
88
+ // every record even when a persisted cost was already present, turning a few
89
+ // thousand records into a multi-second event-loop stall.
90
+ const cost = typeof candidate.cost === 'number' && Number.isFinite(candidate.cost)
91
+ ? candidate.cost
92
+ : calculateHistoryDetailCost(candidate.model, provider, inputTokens, outputTokens, cacheReadTokens);
93
+ const accountId = typeof candidate.accountId === 'string' && candidate.accountId.length > 0
94
+ ? candidate.accountId
95
+ : undefined;
76
96
  return {
77
97
  model: candidate.model,
78
98
  ...(provider && { provider }),
99
+ ...(accountId !== undefined && { accountId }),
79
100
  timestamp: candidate.timestamp,
80
101
  inputTokens,
81
102
  outputTokens,
@@ -99,8 +120,13 @@ function hasTrackedUsage(detail) {
99
120
  * Flatten the nested response.usage.apis[provider].models[model].details[]
100
121
  * structure into normalized history details. Failed requests are retained only
101
122
  * when they still report tracked token usage that analytics can account for.
123
+ *
124
+ * @param accountMap Optional auth_index → account email/id map. When provided,
125
+ * each detail's `accountId` is resolved from String(auth_index). When the index
126
+ * is absent from the map, `accountId` is left undefined so getTodayCostByAccount
127
+ * buckets the cost under 'unknown' rather than mis-attributing it.
102
128
  */
103
- function extractCliproxyUsageHistoryDetails(response) {
129
+ function extractCliproxyUsageHistoryDetails(response, accountMap) {
104
130
  const apis = response?.usage?.apis;
105
131
  if (!apis)
106
132
  return [];
@@ -116,7 +142,7 @@ function extractCliproxyUsageHistoryDetails(response) {
116
142
  for (const detail of details) {
117
143
  if (detail.failed && !hasTrackedUsage(detail))
118
144
  continue;
119
- results.push(createHistoryDetail(provider, model, detail));
145
+ results.push(createHistoryDetail(provider, model, detail, accountMap));
120
146
  }
121
147
  }
122
148
  }
@@ -127,6 +153,7 @@ function sanitizeHistoryDetail(detail) {
127
153
  return {
128
154
  model: detail.model,
129
155
  ...(detail.provider && { provider: detail.provider }),
156
+ ...(detail.accountId !== undefined && { accountId: detail.accountId }),
130
157
  timestamp: detail.timestamp,
131
158
  inputTokens: detail.inputTokens,
132
159
  outputTokens: detail.outputTokens,
@@ -1 +1 @@
1
- {"version":3,"file":"cliproxy-usage-transformer.js","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-transformer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAMH,oDAAiD;AAEjD,qDAAyE;AA2BzE,yDAAyD;AACzD,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,QAA4B,EAC5B,GAAqB;IAErB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACjE,OAAO;QACL,SAAS;QACT,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,WAAW;QACX,YAAY;QACZ,mBAAmB,EAAE,CAAC;QACtB,eAAe;QACf,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAgB,EAChB,KAAa,EACb,MAA6B;IAE7B,MAAM,eAAe,GAAG,IAAA,uCAAsB,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC;IAE1D,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW;QACX,YAAY;QACZ,eAAe;QACf,YAAY,EAAE,CAAC;QACf,IAAI,EAAE,0BAA0B,CAC9B,KAAK,EACL,eAAe,EACf,WAAW,EACX,YAAY,EACZ,eAAe,CAChB;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAa,EACb,QAA4B,EAC5B,WAAmB,EACnB,YAAoB,EACpB,eAAuB;IAEvB,OAAO,IAAA,6BAAa,EAClB;QACE,WAAW;QACX,YAAY;QACZ,mBAAmB,EAAE,CAAC;QACtB,eAAe;KAChB,EACD,KAAK,EACL,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CACpC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,QAAQ,GAAG,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE3C,OAAO,IAAA,uCAAsB,EAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC;AAED,SAAgB,mCAAmC,CACjD,MAAe;IAEf,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvD,MAAM,SAAS,GAAG,MAAiC,CAAC;IACpD,IACE,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;QACnC,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;QACvC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,0BAA0B,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,wBAAwB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,wBAAwB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,wBAAwB,CACnC,SAAS,CAAC,IAAI,EACd,0BAA0B,CACxB,SAAS,CAAC,KAAK,EACf,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,eAAe,CAChB,CACF,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,WAAW;QACX,YAAY;QACZ,eAAe;QACf,YAAY;QACZ,IAAI;QACJ,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,IAAI;KAClC,CAAC;AACJ,CAAC;AAzCD,kFAyCC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,SAAS,eAAe,CAAC,MAA6B;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,OAAO,CACL,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC;QAChC,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CACjC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,kCAAkC,CAChD,QAAkC;IAElC,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,OAAO,GAAiC,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,YAAY,EAAE,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,CAAC;YACnC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;oBAAE,SAAS;gBACxD,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AApBD,gFAoBC;AAED,SAAS,qBAAqB,CAAC,MAAkC;IAC/D,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAkC;IAChE,OAAO;QACL,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,QAAQ,IAAI,EAAE;QACrB,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;KAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,kCAAkC,CAAC,MAAkC;IAC5E,OAAO;QACL,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;KAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,iCAAiC,CACxC,QAAsC,EACtC,QAAsC;IAEtC,MAAM,+BAA+B,GAAG,IAAI,GAAG,EAAwC,CAAC;IACxF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,SAAS;QAE/B,MAAM,SAAS,GAAG,kCAAkC,CAAC,MAAM,CAAC,CAAC;QAC7D,+BAA+B,CAAC,GAAG,CAAC,SAAS,EAAE;YAC7C,GAAG,CAAC,+BAA+B,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC;QAEnC,MAAM,OAAO,GAAG,+BAA+B,CAAC,GAAG,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAEpD,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,gCAAgC,CAC9C,QAAsC,EACtC,QAAsC;IAEtC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiE,CAAC;IAChG,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiE,CAAC;IAChG,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,cAAc,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;YAChE,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC5B,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAiC,EAAE,CAAC;IAChD,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;QACxD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,CAAC;AA7CD,4EA6CC;AAED,SAAgB,gCAAgC,CAC9C,OAAqC,EACrC,eAAuB;IAEvB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,eAAe,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AARD,4EAQC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,wFAAwF;AACxF,SAAS,cAAc,CACrB,IAAkC,EAClC,KAAoC,EACpC,WAAmF,EACnF,MAA8B;IAE9B,uDAAuD;IACvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IACJ,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACnD,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAG/B,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACrB,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG,EAAE;oBACH,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,CAAC;oBACf,eAAe,EAAE,CAAC;oBAClB,IAAI,EAAE,CAAC;iBACR;aACF,CAAC,CAAC;QACL,CAAC;QACD,MAAM,GAAG,GAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAA+B,CAAC,GAAG,CAAC;QACtE,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;QACtC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QACxC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC;QAC9C,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE;QACxD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7D,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,4CAA4C;AAC5C,SAAS,QAAQ,CAAC,UAA4B,EAAE,KAA2B;IACzE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAI,CAAC,CAAC,KAAK,CAAY,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,0FAA0F;AAC1F,SAAgB,6BAA6B,CAAC,QAAkC;IAC9E,MAAM,IAAI,GAAG,kCAAkC,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,cAAc,CACnB,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EACvB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;QACnB,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;YAChD,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;YAClD,mBAAmB,EAAE,CAAC;YACtB,eAAe,EAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;YACxD,IAAI,EAAE,SAAS;YACf,SAAS;YACT,UAAU,EAAE,IAAA,8BAAa,EAAC,UAAU,CAAC;YACrC,eAAe,EAAE,UAAU;SAC5B,CAAC;IACJ,CAAC,EACD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACvC,CAAC;AACJ,CAAC;AAtBD,sEAsBC;AAED,2FAA2F;AAC3F,SAAgB,8BAA8B,CAAC,QAAkC;IAC/E,MAAM,IAAI,GAAG,kCAAkC,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,cAAc,CACnB,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE;QACL,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;QACtC,OAAO,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC;IAC9B,CAAC,EACD,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;YAChD,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;YAClD,mBAAmB,EAAE,CAAC;YACtB,eAAe,EAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;YACxD,IAAI,EAAE,SAAS;YACf,SAAS;YACT,UAAU,EAAE,IAAA,8BAAa,EAAC,UAAU,CAAC;YACrC,eAAe,EAAE,UAAU;YAC3B,YAAY;SACb,CAAC;IACJ,CAAC,EACD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACvC,CAAC;AACJ,CAAC;AA3BD,wEA2BC;AAED,6FAA6F;AAC7F,SAAgB,+BAA+B,CAC7C,QAAkC;IAElC,MAAM,IAAI,GAAG,kCAAkC,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,cAAc,CACnB,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACtB,KAAK;QACL,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QAChD,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;QAClD,mBAAmB,EAAE,CAAC;QACtB,eAAe,EAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;QACxD,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QACvC,UAAU,EAAE,IAAA,8BAAa,EAAC,UAAU,CAAC;QACrC,eAAe,EAAE,UAAU;KAC5B,CAAC,EACF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CACzC,CAAC;AACJ,CAAC;AApBD,0EAoBC;AAED,SAAgB,mCAAmC,CAAC,OAAqC;IAKvF,OAAO;QACL,KAAK,EAAE,cAAc,CACnB,OAAO,EACP,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EACrC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;YACnB,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;gBAChD,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;gBAClD,mBAAmB,EAAE,CAAC;gBACtB,eAAe,EAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;gBACxD,IAAI,EAAE,SAAS;gBACf,SAAS;gBACT,UAAU,EAAE,IAAA,8BAAa,EAAC,UAAU,CAAC;gBACrC,eAAe,EAAE,UAAU;aAC5B,CAAC;QACJ,CAAC,EACD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACvC;QACD,MAAM,EAAE,cAAc,CACpB,OAAO,EACP,CAAC,SAAS,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;YAC7C,OAAO,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC;QAC9B,CAAC,EACD,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;gBAChD,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;gBAClD,mBAAmB,EAAE,CAAC;gBACtB,eAAe,EAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;gBACxD,IAAI,EAAE,SAAS;gBACf,SAAS;gBACT,UAAU,EAAE,IAAA,8BAAa,EAAC,UAAU,CAAC;gBACrC,eAAe,EAAE,UAAU;gBAC3B,YAAY;aACb,CAAC;QACJ,CAAC,EACD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACvC;QACD,OAAO,EAAE,cAAc,CACrB,OAAO,EACP,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACpC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YACtB,KAAK;YACL,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;YAChD,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;YAClD,mBAAmB,EAAE,CAAC;YACtB,eAAe,EAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;YACxD,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YACvC,UAAU,EAAE,IAAA,8BAAa,EAAC,UAAU,CAAC;YACrC,eAAe,EAAE,UAAU;SAC5B,CAAC,EACF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CACzC;KACF,CAAC;AACJ,CAAC;AApED,kFAoEC"}
1
+ {"version":3,"file":"cliproxy-usage-transformer.js","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Codex local quota collector (zero network).
3
+ *
4
+ * Codex writes a `rate_limits` object into its rollout session logs
5
+ * (~/.codex/sessions/<y>/<m>/<d>/rollout-*.jsonl). We surface the user's Codex
6
+ * subscription quota WITHOUT any network call — pure local file read.
7
+ *
8
+ * Exec-mode sessions often never emit rate_limits (the field stays null). The
9
+ * NEWEST session is frequently exec-mode, so reading only it would emit no row
10
+ * even though an older interactive session still carries real quota. We instead
11
+ * scan recent sessions newest-first and use the first one that yields a usable
12
+ * rate_limits, marking the result stale when that source file is old. We only
13
+ * return null when no scanned session has any rate_limits — then the bar omits
14
+ * the row rather than inventing a fake one.
15
+ */
16
+ /// <reference types="node" />
17
+ /// <reference types="bun-types" />
18
+ /// <reference types="node" />
19
+ import * as fs from 'node:fs';
20
+ /**
21
+ * One Codex quota window normalized for the bar's per-window detail.
22
+ * `key`/`label` map primary->five_hour/"5h", secondary->seven_day/"week".
23
+ */
24
+ export interface CodexLocalQuotaWindow {
25
+ /** Stable window key: "five_hour" | "seven_day". */
26
+ key: string;
27
+ /** Short display label: "5h" | "week". */
28
+ label: string;
29
+ /** Used percentage (0-100). */
30
+ usedPercent: number;
31
+ /** Remaining percentage (0-100) = 100 - usedPercent. */
32
+ remainingPercent: number;
33
+ /** ISO timestamp when this window resets, null if unknown. */
34
+ resetAt: string | null;
35
+ /** Window length in minutes (300 / 10080), null if absent in the raw log. */
36
+ windowMinutes: number | null;
37
+ }
38
+ /** Normalized Codex quota snapshot from a local session log. */
39
+ export interface CodexLocalQuota {
40
+ /** Remaining percentage (0-100): min across primary/secondary windows. */
41
+ quotaPercentage: number;
42
+ /** ISO timestamp of the soonest window reset, null if unknown. */
43
+ nextReset: string | null;
44
+ /** plan_type from the session (e.g. "pro"/"plus"), null if absent. */
45
+ tier: string | null;
46
+ /** True when the source file is older than the freshness window. */
47
+ stale: boolean;
48
+ /**
49
+ * ISO mtime of the session file that SUPPLIED this data, present only when
50
+ * stale. Lets the bar render an "as of HH:mm (older session)" footnote.
51
+ */
52
+ staleAsOf: string | null;
53
+ /** Per-window detail (primary -> five_hour, secondary -> seven_day). */
54
+ windows: CodexLocalQuotaWindow[];
55
+ }
56
+ /** Injectable seams for deterministic tests (no real fs / no tail subprocess). */
57
+ export interface CodexLocalQuotaDeps {
58
+ env?: NodeJS.ProcessEnv;
59
+ homeDir?: string;
60
+ existsSyncImpl?: (p: string) => boolean;
61
+ readdirImpl?: (dir: string) => fs.Dirent[];
62
+ statMtimeMsImpl?: (p: string) => number;
63
+ /** Returns the last N lines of a file (default: Bun tail). */
64
+ tailLinesImpl?: (file: string, lines: number) => Promise<string[]>;
65
+ now?: number;
66
+ }
67
+ /**
68
+ * Scan recent Codex sessions newest-first and normalize the first usable
69
+ * rate_limits. Staleness is computed from the mtime of the file that SUPPLIED
70
+ * the data (not the newest file), so a real-but-old session reads correctly as
71
+ * stale. Returns null only when none of the scanned sessions carries quota.
72
+ */
73
+ export declare function getCodexLocalQuota(deps?: CodexLocalQuotaDeps): Promise<CodexLocalQuota | null>;
74
+ //# sourceMappingURL=codex-local-quota-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-local-quota-collector.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/codex-local-quota-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAI9B;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sEAAsE;IACtE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;IAC3C,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA+KD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAiDjC"}
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ /**
3
+ * Codex local quota collector (zero network).
4
+ *
5
+ * Codex writes a `rate_limits` object into its rollout session logs
6
+ * (~/.codex/sessions/<y>/<m>/<d>/rollout-*.jsonl). We surface the user's Codex
7
+ * subscription quota WITHOUT any network call — pure local file read.
8
+ *
9
+ * Exec-mode sessions often never emit rate_limits (the field stays null). The
10
+ * NEWEST session is frequently exec-mode, so reading only it would emit no row
11
+ * even though an older interactive session still carries real quota. We instead
12
+ * scan recent sessions newest-first and use the first one that yields a usable
13
+ * rate_limits, marking the result stale when that source file is old. We only
14
+ * return null when no scanned session has any rate_limits — then the bar omits
15
+ * the row rather than inventing a fake one.
16
+ */
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.getCodexLocalQuota = void 0;
42
+ const fs = __importStar(require("node:fs"));
43
+ const path = __importStar(require("node:path"));
44
+ const codex_dashboard_service_1 = require("../services/codex-dashboard-service");
45
+ /** Lines to scan from the tail; rate_limits sits near the end of a session. */
46
+ const TAIL_LINES = 200;
47
+ /** A source older than this is reported stale (but still emitted). */
48
+ const STALE_AFTER_MS = 5 * 60 * 1000;
49
+ /**
50
+ * Cap on how many recent session files we scan newest-first before giving up.
51
+ * Bounds the walk when Codex genuinely never reported (avoids touching the whole
52
+ * history) while still reaching past several exec-mode sessions to a real one.
53
+ */
54
+ const MAX_SESSIONS_SCANNED = 20;
55
+ function asObject(value) {
56
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
57
+ return null;
58
+ return value;
59
+ }
60
+ function asFiniteNumber(value) {
61
+ return typeof value === 'number' && Number.isFinite(value) ? value : null;
62
+ }
63
+ function parseWindow(value) {
64
+ const obj = asObject(value);
65
+ if (!obj)
66
+ return null;
67
+ const usedPercent = asFiniteNumber(obj['used_percent']);
68
+ if (usedPercent === null)
69
+ return null;
70
+ return {
71
+ usedPercent,
72
+ resetsAtSeconds: asFiniteNumber(obj['resets_at']),
73
+ windowMinutes: asFiniteNumber(obj['window_minutes']),
74
+ };
75
+ }
76
+ /**
77
+ * Extract a non-null rate_limits object from a parsed JSONL line.
78
+ * rate_limits lives under `payload` in the token_count event.
79
+ */
80
+ function extractRateLimits(line) {
81
+ let parsed;
82
+ try {
83
+ parsed = JSON.parse(line);
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ const root = asObject(parsed);
89
+ if (!root)
90
+ return null;
91
+ const payload = asObject(root['payload']) ?? root;
92
+ const rateLimits = asObject(payload['rate_limits']);
93
+ if (!rateLimits)
94
+ return null;
95
+ const primary = parseWindow(rateLimits['primary']);
96
+ const secondary = parseWindow(rateLimits['secondary']);
97
+ // A rate_limits object with neither window carries no usable signal.
98
+ if (!primary && !secondary)
99
+ return null;
100
+ const planType = typeof rateLimits['plan_type'] === 'string' && rateLimits['plan_type'].trim().length > 0
101
+ ? rateLimits['plan_type'].trim()
102
+ : null;
103
+ return { primary, secondary, planType };
104
+ }
105
+ /** Recursive rollout-*.jsonl walker, lexicographically sorted (ISO ts in name). */
106
+ function collectRolloutFiles(dir, existsImpl, readdirImpl) {
107
+ if (!existsImpl(dir))
108
+ return [];
109
+ const files = [];
110
+ for (const entry of readdirImpl(dir)) {
111
+ const entryPath = path.join(dir, entry.name);
112
+ if (entry.isDirectory()) {
113
+ files.push(...collectRolloutFiles(entryPath, existsImpl, readdirImpl));
114
+ continue;
115
+ }
116
+ if (entry.isFile() && entry.name.startsWith('rollout-') && entry.name.endsWith('.jsonl')) {
117
+ files.push(entryPath);
118
+ }
119
+ }
120
+ return files.sort();
121
+ }
122
+ /**
123
+ * Default tail using Bun.spawn (macOS-safe: no tac, no GNU timeout).
124
+ * Reads the last `lines` lines so we never load a huge session into memory.
125
+ */
126
+ async function defaultTailLines(file, lines) {
127
+ const proc = Bun.spawn(['tail', `-${lines}`, file], {
128
+ stdout: 'pipe',
129
+ stderr: 'ignore',
130
+ });
131
+ const text = await new Response(proc.stdout).text();
132
+ await proc.exited;
133
+ return text.split('\n').filter((l) => l.trim().length > 0);
134
+ }
135
+ function computeQuotaPercentage(rate) {
136
+ const remaining = [];
137
+ if (rate.primary)
138
+ remaining.push(100 - rate.primary.usedPercent);
139
+ if (rate.secondary)
140
+ remaining.push(100 - rate.secondary.usedPercent);
141
+ // Clamp into [0,100] to guard against odd upstream values.
142
+ return Math.max(0, Math.min(100, Math.min(...remaining)));
143
+ }
144
+ function computeNextReset(rate) {
145
+ const resets = [];
146
+ if (rate.primary?.resetsAtSeconds !== null && rate.primary?.resetsAtSeconds !== undefined) {
147
+ resets.push(rate.primary.resetsAtSeconds);
148
+ }
149
+ if (rate.secondary?.resetsAtSeconds !== null && rate.secondary?.resetsAtSeconds !== undefined) {
150
+ resets.push(rate.secondary.resetsAtSeconds);
151
+ }
152
+ if (resets.length === 0)
153
+ return null;
154
+ return new Date(Math.min(...resets) * 1000).toISOString();
155
+ }
156
+ function windowDetail(window, key, label) {
157
+ const usedPercent = Math.max(0, Math.min(100, window.usedPercent));
158
+ return {
159
+ key,
160
+ label,
161
+ usedPercent,
162
+ remainingPercent: 100 - usedPercent,
163
+ resetAt: window.resetsAtSeconds !== null
164
+ ? new Date(window.resetsAtSeconds * 1000).toISOString()
165
+ : null,
166
+ windowMinutes: window.windowMinutes,
167
+ };
168
+ }
169
+ /** Build per-window detail (primary -> 5h, secondary -> week), omitting absent. */
170
+ function buildWindows(rate) {
171
+ const windows = [];
172
+ if (rate.primary)
173
+ windows.push(windowDetail(rate.primary, 'five_hour', '5h'));
174
+ if (rate.secondary)
175
+ windows.push(windowDetail(rate.secondary, 'seven_day', 'week'));
176
+ return windows;
177
+ }
178
+ /** Scan one session file's tail backward for the latest non-null rate_limits. */
179
+ async function readRateLimitsFromFile(file, tailLinesImpl) {
180
+ let lines;
181
+ try {
182
+ lines = await tailLinesImpl(file, TAIL_LINES);
183
+ }
184
+ catch {
185
+ return null;
186
+ }
187
+ for (let i = lines.length - 1; i >= 0; i--) {
188
+ const found = extractRateLimits(lines[i]);
189
+ if (found)
190
+ return found;
191
+ }
192
+ return null;
193
+ }
194
+ /**
195
+ * Scan recent Codex sessions newest-first and normalize the first usable
196
+ * rate_limits. Staleness is computed from the mtime of the file that SUPPLIED
197
+ * the data (not the newest file), so a real-but-old session reads correctly as
198
+ * stale. Returns null only when none of the scanned sessions carries quota.
199
+ */
200
+ async function getCodexLocalQuota(deps = {}) {
201
+ const existsImpl = deps.existsSyncImpl ?? fs.existsSync;
202
+ const readdirImpl = deps.readdirImpl ?? ((dir) => fs.readdirSync(dir, { withFileTypes: true }));
203
+ const statMtimeMsImpl = deps.statMtimeMsImpl ?? ((p) => fs.statSync(p).mtimeMs);
204
+ const tailLinesImpl = deps.tailLinesImpl ?? defaultTailLines;
205
+ const now = deps.now ?? Date.now();
206
+ const { baseDir } = (0, codex_dashboard_service_1.resolveCodexConfigPaths)({ env: deps.env, homeDir: deps.homeDir });
207
+ const sessionsDir = path.join(baseDir, 'sessions');
208
+ const rolloutFiles = collectRolloutFiles(sessionsDir, existsImpl, readdirImpl);
209
+ if (rolloutFiles.length === 0)
210
+ return null;
211
+ // Filenames carry an ISO timestamp, so the lexicographic order is chronological.
212
+ // Walk newest-first, bounded, until a session yields a usable rate_limits.
213
+ const newestFirst = rolloutFiles.slice().reverse().slice(0, MAX_SESSIONS_SCANNED);
214
+ let rate = null;
215
+ let sourceFile = null;
216
+ for (const file of newestFirst) {
217
+ const found = await readRateLimitsFromFile(file, tailLinesImpl);
218
+ if (found) {
219
+ rate = found;
220
+ sourceFile = file;
221
+ break;
222
+ }
223
+ }
224
+ if (!rate || !sourceFile)
225
+ return null;
226
+ let stale = false;
227
+ let staleAsOf = null;
228
+ try {
229
+ const mtimeMs = statMtimeMsImpl(sourceFile);
230
+ stale = now - mtimeMs > STALE_AFTER_MS;
231
+ if (stale)
232
+ staleAsOf = new Date(mtimeMs).toISOString();
233
+ }
234
+ catch {
235
+ // Unknown mtime -> treat as fresh; the data itself is still valid.
236
+ stale = false;
237
+ }
238
+ return {
239
+ quotaPercentage: computeQuotaPercentage(rate),
240
+ nextReset: computeNextReset(rate),
241
+ tier: rate.planType,
242
+ stale,
243
+ staleAsOf,
244
+ windows: buildWindows(rate),
245
+ };
246
+ }
247
+ exports.getCodexLocalQuota = getCodexLocalQuota;
248
+ //# sourceMappingURL=codex-local-quota-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-local-quota-collector.js","sourceRoot":"","sources":["../../../src/web-server/usage/codex-local-quota-collector.ts"],"names":[],"mappings":"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"}