oc-codex-multi-auth 6.21.0 → 6.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +168 -10
  2. package/config/README.md +53 -33
  3. package/config/opencode-legacy.json +129 -279
  4. package/config/opencode-modern.json +43 -132
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +293 -57
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/account-display.d.ts +46 -0
  9. package/dist/lib/account-display.d.ts.map +1 -1
  10. package/dist/lib/account-display.js +260 -0
  11. package/dist/lib/account-display.js.map +1 -1
  12. package/dist/lib/accounts/warm-request.d.ts.map +1 -1
  13. package/dist/lib/accounts/warm-request.js +9 -11
  14. package/dist/lib/accounts/warm-request.js.map +1 -1
  15. package/dist/lib/accounts.d.ts +4 -0
  16. package/dist/lib/accounts.d.ts.map +1 -1
  17. package/dist/lib/accounts.js +20 -15
  18. package/dist/lib/accounts.js.map +1 -1
  19. package/dist/lib/auth/login-runner.d.ts.map +1 -1
  20. package/dist/lib/auth/login-runner.js +79 -2
  21. package/dist/lib/auth/login-runner.js.map +1 -1
  22. package/dist/lib/auto-update-checker.d.ts +17 -1
  23. package/dist/lib/auto-update-checker.d.ts.map +1 -1
  24. package/dist/lib/auto-update-checker.js +49 -3
  25. package/dist/lib/auto-update-checker.js.map +1 -1
  26. package/dist/lib/cli.d.ts +1 -0
  27. package/dist/lib/cli.d.ts.map +1 -1
  28. package/dist/lib/cli.js +9 -3
  29. package/dist/lib/cli.js.map +1 -1
  30. package/dist/lib/codex-usage.d.ts +4 -3
  31. package/dist/lib/codex-usage.d.ts.map +1 -1
  32. package/dist/lib/codex-usage.js +13 -11
  33. package/dist/lib/codex-usage.js.map +1 -1
  34. package/dist/lib/config.d.ts +75 -0
  35. package/dist/lib/config.d.ts.map +1 -1
  36. package/dist/lib/config.js +152 -1
  37. package/dist/lib/config.js.map +1 -1
  38. package/dist/lib/constants.d.ts +13 -0
  39. package/dist/lib/constants.d.ts.map +1 -1
  40. package/dist/lib/constants.js +13 -0
  41. package/dist/lib/constants.js.map +1 -1
  42. package/dist/lib/plan-allotment.d.ts +72 -0
  43. package/dist/lib/plan-allotment.d.ts.map +1 -0
  44. package/dist/lib/plan-allotment.js +142 -0
  45. package/dist/lib/plan-allotment.js.map +1 -0
  46. package/dist/lib/plugin-origin.d.ts +77 -0
  47. package/dist/lib/plugin-origin.d.ts.map +1 -0
  48. package/dist/lib/plugin-origin.js +301 -0
  49. package/dist/lib/plugin-origin.js.map +1 -0
  50. package/dist/lib/prompts/codex.d.ts +12 -2
  51. package/dist/lib/prompts/codex.d.ts.map +1 -1
  52. package/dist/lib/prompts/codex.js +47 -16
  53. package/dist/lib/prompts/codex.js.map +1 -1
  54. package/dist/lib/quota-display.d.ts +40 -0
  55. package/dist/lib/quota-display.d.ts.map +1 -0
  56. package/dist/lib/quota-display.js +45 -0
  57. package/dist/lib/quota-display.js.map +1 -0
  58. package/dist/lib/quota-notifications.d.ts +2 -1
  59. package/dist/lib/quota-notifications.d.ts.map +1 -1
  60. package/dist/lib/quota-notifications.js +34 -14
  61. package/dist/lib/quota-notifications.js.map +1 -1
  62. package/dist/lib/quota-overview.d.ts +253 -0
  63. package/dist/lib/quota-overview.d.ts.map +1 -0
  64. package/dist/lib/quota-overview.js +707 -0
  65. package/dist/lib/quota-overview.js.map +1 -0
  66. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  67. package/dist/lib/request/fetch-helpers.js +84 -50
  68. package/dist/lib/request/fetch-helpers.js.map +1 -1
  69. package/dist/lib/request/helpers/model-map.d.ts +10 -0
  70. package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
  71. package/dist/lib/request/helpers/model-map.js +39 -11
  72. package/dist/lib/request/helpers/model-map.js.map +1 -1
  73. package/dist/lib/request/helpers/responses-lite.d.ts.map +1 -1
  74. package/dist/lib/request/helpers/responses-lite.js +4 -1
  75. package/dist/lib/request/helpers/responses-lite.js.map +1 -1
  76. package/dist/lib/request/request-transformer.d.ts.map +1 -1
  77. package/dist/lib/request/request-transformer.js +37 -15
  78. package/dist/lib/request/request-transformer.js.map +1 -1
  79. package/dist/lib/request/retry-budget.d.ts +26 -0
  80. package/dist/lib/request/retry-budget.d.ts.map +1 -1
  81. package/dist/lib/request/retry-budget.js +43 -0
  82. package/dist/lib/request/retry-budget.js.map +1 -1
  83. package/dist/lib/schemas.d.ts +73 -0
  84. package/dist/lib/schemas.d.ts.map +1 -1
  85. package/dist/lib/schemas.js +53 -0
  86. package/dist/lib/schemas.js.map +1 -1
  87. package/dist/lib/storage/backup.d.ts +33 -0
  88. package/dist/lib/storage/backup.d.ts.map +1 -1
  89. package/dist/lib/storage/backup.js +43 -7
  90. package/dist/lib/storage/backup.js.map +1 -1
  91. package/dist/lib/storage/credential-snapshots.d.ts +78 -0
  92. package/dist/lib/storage/credential-snapshots.d.ts.map +1 -0
  93. package/dist/lib/storage/credential-snapshots.js +302 -0
  94. package/dist/lib/storage/credential-snapshots.js.map +1 -0
  95. package/dist/lib/storage/export-import.d.ts.map +1 -1
  96. package/dist/lib/storage/export-import.js +7 -0
  97. package/dist/lib/storage/export-import.js.map +1 -1
  98. package/dist/lib/storage/flagged.d.ts.map +1 -1
  99. package/dist/lib/storage/flagged.js +23 -1
  100. package/dist/lib/storage/flagged.js.map +1 -1
  101. package/dist/lib/storage/load-save.d.ts +4 -0
  102. package/dist/lib/storage/load-save.d.ts.map +1 -1
  103. package/dist/lib/storage/load-save.js +50 -0
  104. package/dist/lib/storage/load-save.js.map +1 -1
  105. package/dist/lib/storage/paths.d.ts +1 -0
  106. package/dist/lib/storage/paths.d.ts.map +1 -1
  107. package/dist/lib/storage/paths.js +1 -1
  108. package/dist/lib/storage/paths.js.map +1 -1
  109. package/dist/lib/storage/test-home-guard.d.ts +35 -0
  110. package/dist/lib/storage/test-home-guard.d.ts.map +1 -0
  111. package/dist/lib/storage/test-home-guard.js +59 -0
  112. package/dist/lib/storage/test-home-guard.js.map +1 -0
  113. package/dist/lib/tools/codex-dashboard.d.ts.map +1 -1
  114. package/dist/lib/tools/codex-dashboard.js +3 -2
  115. package/dist/lib/tools/codex-dashboard.js.map +1 -1
  116. package/dist/lib/tools/codex-doctor.d.ts.map +1 -1
  117. package/dist/lib/tools/codex-doctor.js +16 -0
  118. package/dist/lib/tools/codex-doctor.js.map +1 -1
  119. package/dist/lib/tools/codex-health.d.ts.map +1 -1
  120. package/dist/lib/tools/codex-health.js +10 -2
  121. package/dist/lib/tools/codex-health.js.map +1 -1
  122. package/dist/lib/tools/codex-label.d.ts.map +1 -1
  123. package/dist/lib/tools/codex-label.js +1 -0
  124. package/dist/lib/tools/codex-label.js.map +1 -1
  125. package/dist/lib/tools/codex-limits.d.ts.map +1 -1
  126. package/dist/lib/tools/codex-limits.js +13 -9
  127. package/dist/lib/tools/codex-limits.js.map +1 -1
  128. package/dist/lib/tools/codex-list.d.ts.map +1 -1
  129. package/dist/lib/tools/codex-list.js +28 -3
  130. package/dist/lib/tools/codex-list.js.map +1 -1
  131. package/dist/lib/tools/codex-note.d.ts.map +1 -1
  132. package/dist/lib/tools/codex-note.js +4 -1
  133. package/dist/lib/tools/codex-note.js.map +1 -1
  134. package/dist/lib/tools/codex-pool.d.ts.map +1 -1
  135. package/dist/lib/tools/codex-pool.js +6 -2
  136. package/dist/lib/tools/codex-pool.js.map +1 -1
  137. package/dist/lib/tools/codex-refresh.d.ts.map +1 -1
  138. package/dist/lib/tools/codex-refresh.js +4 -1
  139. package/dist/lib/tools/codex-refresh.js.map +1 -1
  140. package/dist/lib/tools/codex-remove.d.ts.map +1 -1
  141. package/dist/lib/tools/codex-remove.js +1 -0
  142. package/dist/lib/tools/codex-remove.js.map +1 -1
  143. package/dist/lib/tools/codex-reset.d.ts.map +1 -1
  144. package/dist/lib/tools/codex-reset.js +13 -7
  145. package/dist/lib/tools/codex-reset.js.map +1 -1
  146. package/dist/lib/tools/codex-status.d.ts.map +1 -1
  147. package/dist/lib/tools/codex-status.js +25 -2
  148. package/dist/lib/tools/codex-status.js.map +1 -1
  149. package/dist/lib/tools/codex-switch.d.ts.map +1 -1
  150. package/dist/lib/tools/codex-switch.js +1 -0
  151. package/dist/lib/tools/codex-switch.js.map +1 -1
  152. package/dist/lib/tools/codex-tag.d.ts.map +1 -1
  153. package/dist/lib/tools/codex-tag.js +4 -1
  154. package/dist/lib/tools/codex-tag.js.map +1 -1
  155. package/dist/lib/tools/codex-warm.d.ts.map +1 -1
  156. package/dist/lib/tools/codex-warm.js +1 -0
  157. package/dist/lib/tools/codex-warm.js.map +1 -1
  158. package/dist/lib/tools/index.d.ts +9 -0
  159. package/dist/lib/tools/index.d.ts.map +1 -1
  160. package/dist/lib/tools/index.js.map +1 -1
  161. package/dist/lib/tui-quota-cache.d.ts +35 -0
  162. package/dist/lib/tui-quota-cache.d.ts.map +1 -1
  163. package/dist/lib/tui-quota-cache.js +76 -11
  164. package/dist/lib/tui-quota-cache.js.map +1 -1
  165. package/dist/lib/tui-quota-overview.d.ts +55 -0
  166. package/dist/lib/tui-quota-overview.d.ts.map +1 -0
  167. package/dist/lib/tui-quota-overview.js +209 -0
  168. package/dist/lib/tui-quota-overview.js.map +1 -0
  169. package/dist/lib/tui-status.d.ts +55 -0
  170. package/dist/lib/tui-status.d.ts.map +1 -1
  171. package/dist/lib/tui-status.js +155 -14
  172. package/dist/lib/tui-status.js.map +1 -1
  173. package/dist/lib/ui/auth-menu.d.ts +2 -0
  174. package/dist/lib/ui/auth-menu.d.ts.map +1 -1
  175. package/dist/lib/ui/auth-menu.js +10 -6
  176. package/dist/lib/ui/auth-menu.js.map +1 -1
  177. package/dist/tui.d.ts +55 -0
  178. package/dist/tui.d.ts.map +1 -1
  179. package/dist/tui.js +511 -29
  180. package/dist/tui.js.map +1 -1
  181. package/package.json +1 -1
  182. package/scripts/install-oc-codex-multi-auth-core.js +583 -66
@@ -64,11 +64,16 @@ export interface ToolContext {
64
64
  formatCommandAccountLabel: (account: {
65
65
  email?: string;
66
66
  accountId?: string;
67
+ accountUserId?: string;
67
68
  accountLabel?: string;
68
69
  accountTags?: string[];
69
70
  accountNote?: string;
70
71
  } | undefined, index: number, options?: {
71
72
  maskEmail?: boolean;
73
+ peerAccounts?: readonly ({
74
+ accountUserId?: string;
75
+ } | undefined)[];
76
+ omitSeat?: boolean;
72
77
  }) => string;
73
78
  resolveMaskEmail: () => boolean;
74
79
  normalizeAccountTags: (raw: string) => string[];
@@ -93,11 +98,15 @@ export interface ToolContext {
93
98
  account?: {
94
99
  email?: string;
95
100
  accountId?: string;
101
+ accountUserId?: string;
96
102
  accountLabel?: string;
97
103
  accountTags?: string[];
98
104
  accountNote?: string;
99
105
  };
100
106
  label?: string;
107
+ peerAccounts?: readonly ({
108
+ accountUserId?: string;
109
+ } | undefined)[];
101
110
  }) => Record<string, unknown>;
102
111
  buildRoutingVisibilitySnapshot: (overrides?: {
103
112
  modelFamily?: ModelFamily | null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoBH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAiL9D,MAAM,UAAU,kBAAkB,CAAC,GAAgB;IAClD,OAAO;QACN,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACtC,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC1C,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACtC,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC1C,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC1C,aAAa,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACxC,eAAe,EAAE,sBAAsB,CAAC,GAAG,CAAC;QAC5C,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACtC,aAAa,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACxC,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC1C,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACtC,aAAa,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACxC,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC;QACpC,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACtC,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACtC,iBAAiB,EAAE,wBAAwB,CAAC,GAAG,CAAC;QAChD,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC1C,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC1C,eAAe,EAAE,sBAAsB,CAAC,GAAG,CAAC;QAC5C,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC1C,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC1C,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACtC,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACtC,gBAAgB,EAAE,uBAAuB,CAAC,GAAG,CAAC;KAC9C,CAAC;AACH,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { CompactQuotaLimit } from "./tui-status.js";
2
2
  export declare const TUI_QUOTA_CACHE_VERSION = 1;
3
3
  export declare const TUI_QUOTA_CACHE_FILE = "oc-codex-multi-auth-tui-quota.json";
4
+ export declare const TUI_QUOTA_OVERVIEW_CACHE_FILE = "oc-codex-multi-auth-tui-quota-overview.json";
4
5
  export declare const TUI_QUOTA_SNAPSHOT_FRESH_MS: number;
5
6
  export type TuiQuotaSource = "headers" | "usage";
6
7
  export type TuiQuotaLimit = CompactQuotaLimit & {
@@ -25,6 +26,7 @@ export type TuiQuotaSnapshotInput = Omit<TuiQuotaSnapshot, "version" | "fetchedA
25
26
  fetchedAt?: number;
26
27
  };
27
28
  export declare function getTuiQuotaCachePath(stateDir?: string): string;
29
+ export declare function getTuiQuotaOverviewCachePath(stateDir?: string): string;
28
30
  /**
29
31
  * A window OpenAI reports with `window-minutes: 0` is switched off for the
30
32
  * plan, not a window of unknown length. Such a window still carries
@@ -55,4 +57,37 @@ export declare function isFreshTuiQuotaSnapshot(snapshot: Pick<TuiQuotaSnapshot,
55
57
  export declare function readTuiQuotaSnapshot(cachePath?: string): Promise<TuiQuotaSnapshot | undefined>;
56
58
  export declare function writeTuiQuotaSnapshot(snapshot: TuiQuotaSnapshot, cachePath?: string): Promise<void>;
57
59
  export declare function clearTuiQuotaSnapshot(cachePath?: string): Promise<void>;
60
+ export type TuiQuotaOverviewAccount = {
61
+ fingerprint: string;
62
+ /** 1-based, matching how `codex-list` and `codex-switch` number accounts. */
63
+ index: number;
64
+ /** ChatGPT email, for the surfaces that name an account rather than number it. */
65
+ email?: string;
66
+ /** `codex-label` label when one is set, else whatever identity storage has. */
67
+ label?: string;
68
+ planType?: string;
69
+ /** Banked rate-limit resets redeemable now. */
70
+ resetCredits?: number;
71
+ limits: TuiQuotaLimit[];
72
+ };
73
+ /**
74
+ * The pool-wide quota snapshot, held apart from the single-account one.
75
+ *
76
+ * The two are written on different schedules by different code paths - the
77
+ * request path pushes one account per response, while the pool is polled - and
78
+ * folding them into one file would make every request rewrite a document
79
+ * describing accounts that request never touched. A separate file also leaves
80
+ * the existing snapshot's shape, validator and tests untouched, so a build
81
+ * that has never heard of the overview reads its own cache unchanged.
82
+ */
83
+ export type TuiQuotaOverviewSnapshot = {
84
+ version: typeof TUI_QUOTA_CACHE_VERSION;
85
+ fetchedAt: number;
86
+ accounts: TuiQuotaOverviewAccount[];
87
+ };
88
+ export declare function isTuiQuotaOverviewSnapshot(value: unknown): value is TuiQuotaOverviewSnapshot;
89
+ /** Drop disabled windows, for the reasons in {@link sanitizeTuiQuotaSnapshot}. */
90
+ export declare function sanitizeTuiQuotaOverviewSnapshot(snapshot: TuiQuotaOverviewSnapshot): TuiQuotaOverviewSnapshot;
91
+ export declare function readTuiQuotaOverviewSnapshot(cachePath?: string): Promise<TuiQuotaOverviewSnapshot | undefined>;
92
+ export declare function writeTuiQuotaOverviewSnapshot(snapshot: TuiQuotaOverviewSnapshot, cachePath?: string): Promise<void>;
58
93
  //# sourceMappingURL=tui-quota-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui-quota-cache.d.ts","sourceRoot":"","sources":["../../lib/tui-quota-cache.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,oBAAoB,uCAAuC,CAAC;AAKzE,eAAO,MAAM,2BAA2B,QAAgB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACvC,gBAAgB,EAChB,SAAS,GAAG,WAAW,CACvB,GAAG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAcF,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D;AAkDD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAElE;AAWD,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,qBAAqB,GAC1B,gBAAgB,CAMlB;AAsBD,wBAAgB,gCAAgC,CAC/C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,QAAQ,CAAC,GACrD,gBAAgB,GAAG,SAAS,CAkB9B;AAgCD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAoB5E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,gBAAgB,GACxB,gBAAgB,CAOlB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAC7C,GAAG,GAAE,MAAmB,GACtB,OAAO,CAET;AAED,wBAAsB,oBAAoB,CACzC,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAUvC;AAED,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,wBAAsB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7E"}
1
+ {"version":3,"file":"tui-quota-cache.d.ts","sourceRoot":"","sources":["../../lib/tui-quota-cache.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { CODEX_QUOTA_WINDOW_KINDS, hasCodexQuotaHeaders, isQuotaWindowDisabled,
5
5
  import { renameWithWindowsRetry } from "./storage/atomic-write.js";
6
6
  export const TUI_QUOTA_CACHE_VERSION = 1;
7
7
  export const TUI_QUOTA_CACHE_FILE = "oc-codex-multi-auth-tui-quota.json";
8
+ export const TUI_QUOTA_OVERVIEW_CACHE_FILE = "oc-codex-multi-auth-tui-quota-overview.json";
8
9
  const TUI_QUOTA_CACHE_WRITE_SKIP_MS = 500;
9
10
  // A snapshot older than one TUI refresh interval is due for a live re-fetch:
10
11
  // the shared cache is only pushed while requests flow, so after an idle gap it
@@ -14,9 +15,15 @@ const recentTuiQuotaWrites = new Map();
14
15
  function getDefaultOpenCodeStateDir() {
15
16
  return join(homedir(), ".local", "state", "opencode");
16
17
  }
17
- export function getTuiQuotaCachePath(stateDir) {
18
+ function resolveStateDir(stateDir) {
18
19
  const envStateDir = process.env.OPENCODE_STATE_DIR?.trim();
19
- return join(stateDir?.trim() || envStateDir || getDefaultOpenCodeStateDir(), TUI_QUOTA_CACHE_FILE);
20
+ return stateDir?.trim() || envStateDir || getDefaultOpenCodeStateDir();
21
+ }
22
+ export function getTuiQuotaCachePath(stateDir) {
23
+ return join(resolveStateDir(stateDir), TUI_QUOTA_CACHE_FILE);
24
+ }
25
+ export function getTuiQuotaOverviewCachePath(stateDir) {
26
+ return join(resolveStateDir(stateDir), TUI_QUOTA_OVERVIEW_CACHE_FILE);
20
27
  }
21
28
  function parseFiniteIntHeader(headers, name) {
22
29
  const raw = headers.get(name);
@@ -190,6 +197,17 @@ export async function readTuiQuotaSnapshot(cachePath) {
190
197
  return undefined;
191
198
  }
192
199
  }
200
+ function createTemporaryPath(target, now) {
201
+ return `${target}.${process.pid}.${now}.${Math.random().toString(36).slice(2)}.tmp`;
202
+ }
203
+ async function writeSnapshotFile(target, temporary, snapshot) {
204
+ await fs.mkdir(dirname(target), { recursive: true });
205
+ await fs.writeFile(temporary, `${JSON.stringify(snapshot, null, 2)}\n`, {
206
+ encoding: "utf-8",
207
+ mode: 0o600,
208
+ });
209
+ await renameWithWindowsRetry(temporary, target);
210
+ }
193
211
  export async function writeTuiQuotaSnapshot(snapshot, cachePath) {
194
212
  const target = cachePath ?? getTuiQuotaCachePath();
195
213
  const writeKey = getSnapshotWriteKey(snapshot);
@@ -200,15 +218,8 @@ export async function writeTuiQuotaSnapshot(snapshot, cachePath) {
200
218
  await recentWrite.promise;
201
219
  return;
202
220
  }
203
- const temporary = `${target}.${process.pid}.${now}.${Math.random().toString(36).slice(2)}.tmp`;
204
- const writePromise = (async () => {
205
- await fs.mkdir(dirname(target), { recursive: true });
206
- await fs.writeFile(temporary, `${JSON.stringify(snapshot, null, 2)}\n`, {
207
- encoding: "utf-8",
208
- mode: 0o600,
209
- });
210
- await renameWithWindowsRetry(temporary, target);
211
- })();
221
+ const temporary = createTemporaryPath(target, now);
222
+ const writePromise = writeSnapshotFile(target, temporary, snapshot);
212
223
  recentTuiQuotaWrites.set(target, {
213
224
  key: writeKey,
214
225
  at: now,
@@ -241,4 +252,58 @@ export async function clearTuiQuotaSnapshot(cachePath) {
241
252
  throw error;
242
253
  }
243
254
  }
255
+ function isTuiQuotaOverviewAccount(value) {
256
+ return (isRecord(value) &&
257
+ typeof value.fingerprint === "string" &&
258
+ value.fingerprint.trim().length > 0 &&
259
+ typeof value.index === "number" &&
260
+ Number.isFinite(value.index) &&
261
+ (value.email === undefined || typeof value.email === "string") &&
262
+ (value.label === undefined || typeof value.label === "string") &&
263
+ (value.planType === undefined || typeof value.planType === "string") &&
264
+ isOptionalFiniteNumber(value.resetCredits) &&
265
+ Array.isArray(value.limits) &&
266
+ value.limits.every(isTuiQuotaLimit));
267
+ }
268
+ export function isTuiQuotaOverviewSnapshot(value) {
269
+ return (isRecord(value) &&
270
+ value.version === TUI_QUOTA_CACHE_VERSION &&
271
+ typeof value.fetchedAt === "number" &&
272
+ Number.isFinite(value.fetchedAt) &&
273
+ Array.isArray(value.accounts) &&
274
+ value.accounts.every(isTuiQuotaOverviewAccount));
275
+ }
276
+ /** Drop disabled windows, for the reasons in {@link sanitizeTuiQuotaSnapshot}. */
277
+ export function sanitizeTuiQuotaOverviewSnapshot(snapshot) {
278
+ return {
279
+ ...snapshot,
280
+ accounts: snapshot.accounts.map((account) => ({
281
+ ...account,
282
+ limits: account.limits.filter((limit) => !isDisabledQuotaLimit(limit)),
283
+ })),
284
+ };
285
+ }
286
+ export async function readTuiQuotaOverviewSnapshot(cachePath) {
287
+ try {
288
+ const raw = await fs.readFile(cachePath ?? getTuiQuotaOverviewCachePath(), "utf-8");
289
+ const parsed = JSON.parse(raw);
290
+ return isTuiQuotaOverviewSnapshot(parsed)
291
+ ? sanitizeTuiQuotaOverviewSnapshot(parsed)
292
+ : undefined;
293
+ }
294
+ catch {
295
+ return undefined;
296
+ }
297
+ }
298
+ export async function writeTuiQuotaOverviewSnapshot(snapshot, cachePath) {
299
+ const target = cachePath ?? getTuiQuotaOverviewCachePath();
300
+ const temporary = createTemporaryPath(target, Date.now());
301
+ try {
302
+ await writeSnapshotFile(target, temporary, snapshot);
303
+ }
304
+ catch (error) {
305
+ await fs.unlink(temporary).catch(() => undefined);
306
+ throw error;
307
+ }
308
+ }
244
309
  //# sourceMappingURL=tui-quota-cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui-quota-cache.js","sourceRoot":"","sources":["../../lib/tui-quota-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui-quota-cache.js","sourceRoot":"","sources":["../../lib/tui-quota-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,oCAAoC,CAAC;AACzE,MAAM,CAAC,MAAM,6BAA6B,GACzC,6CAA6C,CAAC;AAC/C,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAC1C,6EAA6E;AAC7E,+EAA+E;AAC/E,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAqCzD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEpE,SAAS,0BAA0B;IAClC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,QAAiB;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAC3D,OAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,WAAW,IAAI,0BAA0B,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAiB;IACrD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAAiB;IAC7D,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,oBAAoB,CAC5B,OAAgB,EAChB,IAAY;IAEZ,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,uEAAuE;IACvE,uEAAuE;IACvE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED,SAAS,iBAAiB,CAAC,aAAiC;IAC3D,IACC,CAAC,aAAa;QACd,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/B,aAAa,IAAI,CAAC,EACjB,CAAC;QACF,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,IAAI,aAAa,GAAG,IAAI,KAAK,CAAC;QAAE,OAAO,GAAG,aAAa,GAAG,IAAI,GAAG,CAAC;IAClE,IAAI,aAAa,GAAG,EAAE,KAAK,CAAC;QAAE,OAAO,GAAG,aAAa,GAAG,EAAE,GAAG,CAAC;IAC9D,OAAO,GAAG,aAAa,GAAG,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,WAA+B;IACtD,OAAO,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,IAAI,CAAC;AACT,CAAC;AAED,SAAS,UAAU,CAClB,OAAgB,EAChB,IAA0B;IAE1B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,qBAAqB,CACtE,OAAO,EACP,IAAI,CACJ,CAAC;IACF,OAAO;QACN,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC;QACvC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC;QACxC,WAAW;QACX,aAAa;QACb,SAAS;KACT,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAoB;IACxD,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB;IAC3C,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,OAAO,CACb,KAAK,CAAC,aAAa;QAClB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CACpC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,KAA4B;IAE5B,OAAO;QACN,OAAO,EAAE,uBAAuB;QAChC,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;KACxC,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA0B;IACtD,OAAO,IAAI,CAAC,SAAS,CAAC;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC1B,CAAC,CAAC;KACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC/C,OAAgB,EAChB,KAAuD;IAEvD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpD,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CACzB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAClD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAE1E,OAAO,sBAAsB,CAAC;QAC7B,GAAG,KAAK;QACR,MAAM,EAAE,SAAS;QACjB,QAAQ;QACR,WAAW;QACX,MAAM;KACN,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC7C,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACxC,OAAO,CACN,KAAK,KAAK,IAAI;QACd,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtB,KAAK,IAAI,CAAC;YACV,KAAK,IAAI,GAAG,CAAC,CACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACtC,OAAO,CACN,QAAQ,CAAC,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC7B,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC;QACpC,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC;QACzC,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC;QAC3C,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAChD,OAAO,CACN,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,OAAO,KAAK,uBAAuB;QACzC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACnC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;QACxD,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1C,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1C,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;YAChC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC;QACxC,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;YAChC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC;QACxC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACpE,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC;QACzC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACvC,QAA0B;IAE1B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CACvC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM;QAC9C,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACtC,QAA6C,EAC7C,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,OAAO,GAAG,GAAG,QAAQ,CAAC,SAAS,GAAG,2BAA2B,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,SAAkB;IAElB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,OAAO,kBAAkB,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,SAAS,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAE,GAAW;IACvD,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACrF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC/B,MAAc,EACd,SAAiB,EACjB,QAAiB;IAEjB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACvE,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACX,CAAC,CAAC;IACH,MAAM,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAA0B,EAC1B,SAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,IAAI,oBAAoB,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrD,IACC,WAAW,EAAE,GAAG,KAAK,QAAQ;QAC7B,GAAG,GAAG,WAAW,CAAC,EAAE,GAAG,6BAA6B,EACnD,CAAC;QACF,MAAM,WAAW,CAAC,OAAO,CAAC;QAC1B,OAAO;IACR,CAAC;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpE,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE;QAChC,GAAG,EAAE,QAAQ;QACb,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,YAAY;KACrB,CAAC,CAAC;IACH,IAAI,CAAC;QACJ,MAAM,YAAY,CAAC;QACnB,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE;YAChC,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACd,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,YAAY,EAAE,CAAC;YAChE,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,SAAkB;IAC7D,MAAM,MAAM,GAAG,SAAS,IAAI,oBAAoB,EAAE,CAAC;IACnD,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC;QACJ,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAK,KAA+B,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO;QAChE,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAgCD,SAAS,yBAAyB,CACjC,KAAc;IAEd,OAAO,CACN,QAAQ,CAAC,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACnC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;QAC9D,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;QAC9D,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACpE,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,KAAc;IAEd,OAAO,CACN,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,OAAO,KAAK,uBAAuB;QACzC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAC/C,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,gCAAgC,CAC/C,QAAkC;IAElC,OAAO;QACN,GAAG,QAAQ;QACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7C,GAAG,OAAO;YACV,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SACtE,CAAC,CAAC;KACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CACjD,SAAkB;IAElB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC5B,SAAS,IAAI,4BAA4B,EAAE,EAC3C,OAAO,CACP,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,OAAO,0BAA0B,CAAC,MAAM,CAAC;YACxC,CAAC,CAAC,gCAAgC,CAAC,MAAM,CAAC;YAC1C,CAAC,CAAC,SAAS,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,QAAkC,EAClC,SAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,IAAI,4BAA4B,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC;QACJ,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Gather every account's quota for the pool-wide status line.
3
+ *
4
+ * The single-account status the request path maintains cannot answer "where
5
+ * does the pool stand" - it only ever describes the account that served the
6
+ * last response. This reads `/wham/usage` for each distinct account instead,
7
+ * on a bounded interval, and caches the result where every OpenCode window on
8
+ * the machine can share it.
9
+ *
10
+ * The cache is what keeps this cheap. A reader takes a snapshot that is still
11
+ * fresh rather than issuing its own requests, so N terminals open on the same
12
+ * pool cost one round of requests between them rather than N, and a terminal
13
+ * that has just started renders immediately instead of showing nothing while
14
+ * seven accounts are queried one after another.
15
+ */
16
+ import { type CodexUsageSummary } from "./codex-usage.js";
17
+ import type { QuotaOverviewAccount } from "./quota-overview.js";
18
+ import { type AccountStorageV3 } from "./storage.js";
19
+ import { type TuiQuotaOverviewAccount, type TuiQuotaOverviewSnapshot, type TuiQuotaSnapshot } from "./tui-quota-cache.js";
20
+ /**
21
+ * Reduce one account's usage document to what the status line needs.
22
+ *
23
+ * Only the primary and secondary windows are kept. Code-review and the other
24
+ * additional quotas do not govern ordinary model requests, so counting them
25
+ * would let a spent code-review allowance report an account as unusable for
26
+ * work it can still do.
27
+ */
28
+ export declare function toOverviewAccount(params: {
29
+ fingerprint: string;
30
+ index: number;
31
+ usage: CodexUsageSummary;
32
+ email?: string;
33
+ label?: string;
34
+ }): TuiQuotaOverviewAccount;
35
+ export declare function fetchTuiQuotaOverview(params: {
36
+ cachePath?: string;
37
+ now?: number;
38
+ loadStorage?: () => Promise<AccountStorageV3 | null>;
39
+ }): Promise<TuiQuotaOverviewSnapshot | undefined>;
40
+ /**
41
+ * Fold the request path's live reading of one account into the polled pool.
42
+ *
43
+ * The pool is re-read on an interval, but the account currently serving
44
+ * requests has its quota pushed from response headers after every single
45
+ * response. Without this the line would show that account's numbers as they
46
+ * were up to five minutes ago while the user watches their own requests spend
47
+ * it - the one account whose figure a reader can check against their own
48
+ * activity would be the one that looks wrong.
49
+ *
50
+ * Only a snapshot NEWER than the poll is merged, so a header reading left over
51
+ * from before the poll cannot overwrite it with older numbers.
52
+ */
53
+ export declare function mergeOverviewWithLatestAccount(snapshot: TuiQuotaOverviewSnapshot, latest: TuiQuotaSnapshot | undefined): TuiQuotaOverviewSnapshot;
54
+ export declare function toQuotaOverviewAccounts(snapshot: TuiQuotaOverviewSnapshot): QuotaOverviewAccount[];
55
+ //# sourceMappingURL=tui-quota-overview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-quota-overview.d.ts","sourceRoot":"","sources":["../../lib/tui-quota-overview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EASN,KAAK,iBAAiB,EAEtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAKN,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,MAAM,sBAAsB,CAAC;AAmB9B;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,uBAAuB,CAyB1B;AAsCD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACrD,GAAG,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAyEhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,wBAAwB,EAClC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GAClC,wBAAwB,CAe1B;AAED,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,wBAAwB,GAChC,oBAAoB,EAAE,CAYxB"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Gather every account's quota for the pool-wide status line.
3
+ *
4
+ * The single-account status the request path maintains cannot answer "where
5
+ * does the pool stand" - it only ever describes the account that served the
6
+ * last response. This reads `/wham/usage` for each distinct account instead,
7
+ * on a bounded interval, and caches the result where every OpenCode window on
8
+ * the machine can share it.
9
+ *
10
+ * The cache is what keeps this cheap. A reader takes a snapshot that is still
11
+ * fresh rather than issuing its own requests, so N terminals open on the same
12
+ * pool cost one round of requests between them rather than N, and a terminal
13
+ * that has just started renders immediately instead of showing nothing while
14
+ * seven accounts are queried one after another.
15
+ */
16
+ import { createUsageAccountFingerprint, deduplicateUsageAccountIndices, ensureCodexUsageAccessToken, fetchCodexUsage, getUsageLeftPercent, hasUsageWindow, parseCodexUsagePayload, resolveCodexUsageAccountId, } from "./codex-usage.js";
17
+ import { logDebug } from "./logger.js";
18
+ import { loadAccounts } from "./storage.js";
19
+ import { isFreshTuiQuotaSnapshot, readTuiQuotaOverviewSnapshot, writeTuiQuotaOverviewSnapshot, TUI_QUOTA_CACHE_VERSION, } from "./tui-quota-cache.js";
20
+ /**
21
+ * Accounts queried at once. Matches the quota monitor's own limit: this talks
22
+ * to the same endpoint with the same credentials, and a pool of a dozen seats
23
+ * should not arrive as a dozen simultaneous requests.
24
+ */
25
+ const MAX_CONCURRENCY = 2;
26
+ function toOverviewLimit(window, label) {
27
+ return {
28
+ label,
29
+ leftPercent: getUsageLeftPercent(window.usedPercent) ?? null,
30
+ usedPercent: window.usedPercent,
31
+ windowMinutes: window.windowMinutes,
32
+ resetAtMs: window.resetAtMs,
33
+ };
34
+ }
35
+ /**
36
+ * Reduce one account's usage document to what the status line needs.
37
+ *
38
+ * Only the primary and secondary windows are kept. Code-review and the other
39
+ * additional quotas do not govern ordinary model requests, so counting them
40
+ * would let a spent code-review allowance report an account as unusable for
41
+ * work it can still do.
42
+ */
43
+ export function toOverviewAccount(params) {
44
+ const limits = [
45
+ { window: params.usage.primary, label: "5h" },
46
+ { window: params.usage.secondary, label: "weekly" },
47
+ ]
48
+ .filter(({ window }) => hasUsageWindow(window))
49
+ .map(({ window, label }) => toOverviewLimit(window, label));
50
+ const resetCredits = params.usage.resetCredits;
51
+ return {
52
+ fingerprint: params.fingerprint,
53
+ index: params.index,
54
+ email: params.email?.trim() || undefined,
55
+ // Only a label the user set, never the accountId/organizationId
56
+ // fallbacks other surfaces use: those identify an account without
57
+ // naming it, and a 36-character UUID on a status line names nothing.
58
+ label: params.label?.trim() || undefined,
59
+ planType: params.usage.planType ?? undefined,
60
+ // `applicableNow` is the count that can be redeemed against a window
61
+ // that is actually spent, which is the only one worth showing beside a
62
+ // percentage. It falls back to the banked total only when the server
63
+ // stated a count this build could not read.
64
+ resetCredits: resetCredits?.applicableNow ?? resetCredits?.available ?? undefined,
65
+ limits,
66
+ };
67
+ }
68
+ async function fetchOverviewAccount(storage, index) {
69
+ const account = storage.accounts[index];
70
+ if (!account)
71
+ return undefined;
72
+ try {
73
+ const credentials = await ensureCodexUsageAccessToken({ storage, account });
74
+ const accountId = resolveCodexUsageAccountId({
75
+ account,
76
+ accessToken: credentials.accessToken,
77
+ });
78
+ if (!accountId)
79
+ return undefined;
80
+ const usage = parseCodexUsagePayload(await fetchCodexUsage({
81
+ accountId,
82
+ accessToken: credentials.accessToken,
83
+ organizationId: account.organizationId,
84
+ normalizeAccountErrors: true,
85
+ }));
86
+ return toOverviewAccount({
87
+ fingerprint: createUsageAccountFingerprint(account),
88
+ index: index + 1,
89
+ usage,
90
+ email: account.email,
91
+ label: account.accountLabel,
92
+ });
93
+ }
94
+ catch (error) {
95
+ logDebug(`Failed to fetch pool quota for one account: ${error.message}`);
96
+ return undefined;
97
+ }
98
+ }
99
+ export async function fetchTuiQuotaOverview(params) {
100
+ const now = params.now ?? Date.now();
101
+ const cached = await readTuiQuotaOverviewSnapshot(params.cachePath);
102
+ if (cached && isFreshTuiQuotaSnapshot(cached, now))
103
+ return cached;
104
+ const storage = await (params.loadStorage ?? loadAccounts)();
105
+ if (!storage || storage.accounts.length === 0)
106
+ return undefined;
107
+ const indices = deduplicateUsageAccountIndices(storage);
108
+ const accounts = [];
109
+ // Set when an account this pass could not fetch keeps its previous
110
+ // reading instead of dropping out of the snapshot.
111
+ let carriedOver = false;
112
+ for (let offset = 0; offset < indices.length; offset += MAX_CONCURRENCY) {
113
+ const chunk = indices.slice(offset, offset + MAX_CONCURRENCY);
114
+ const results = await Promise.all(chunk.map((index) => fetchOverviewAccount(storage, index)));
115
+ for (const [position, result] of results.entries()) {
116
+ if (result) {
117
+ accounts.push(result);
118
+ continue;
119
+ }
120
+ // A failed fetch must not drop the account out of the snapshot: the
121
+ // pool would be judged on a subset, and one transient error on the
122
+ // only account with headroom would flip the line to "fully spent"
123
+ // and surface the resets screen wrongly. The cached reading is reused
124
+ // only for the SAME account - same pool position and same credential
125
+ // fingerprint, so a pool that changed membership never inherits a
126
+ // stranger's numbers - and the snapshot below keeps the older fetch
127
+ // time so the reading is rendered stale rather than current.
128
+ const index = chunk[position];
129
+ const account = index === undefined ? undefined : storage.accounts[index];
130
+ const previous = index === undefined || account === undefined
131
+ ? undefined
132
+ : cached?.accounts.find((candidate) => candidate.index === index + 1 &&
133
+ candidate.fingerprint ===
134
+ createUsageAccountFingerprint(account));
135
+ if (previous) {
136
+ accounts.push(previous);
137
+ carriedOver = true;
138
+ }
139
+ }
140
+ }
141
+ // Every account failing means the pool was not observed at all, which is a
142
+ // different statement from "the pool is empty". Keeping the previous
143
+ // snapshot lets the line stay on the last thing known to be true rather
144
+ // than blanking on one bad network moment.
145
+ if (accounts.length === 0)
146
+ return cached;
147
+ accounts.sort((left, right) => left.index - right.index);
148
+ const snapshot = {
149
+ version: TUI_QUOTA_CACHE_VERSION,
150
+ // A snapshot carrying a reused reading is only as fresh as that
151
+ // reading, so it keeps the previous fetch time - the stale flag is how
152
+ // the line says "part of this is not new" without dropping it.
153
+ fetchedAt: carriedOver && cached ? Math.min(cached.fetchedAt, now) : now,
154
+ accounts,
155
+ };
156
+ try {
157
+ await writeTuiQuotaOverviewSnapshot(snapshot, params.cachePath);
158
+ }
159
+ catch (error) {
160
+ logDebug(`Failed to cache the pool quota snapshot: ${error.message}`);
161
+ }
162
+ return snapshot;
163
+ }
164
+ /**
165
+ * Fold the request path's live reading of one account into the polled pool.
166
+ *
167
+ * The pool is re-read on an interval, but the account currently serving
168
+ * requests has its quota pushed from response headers after every single
169
+ * response. Without this the line would show that account's numbers as they
170
+ * were up to five minutes ago while the user watches their own requests spend
171
+ * it - the one account whose figure a reader can check against their own
172
+ * activity would be the one that looks wrong.
173
+ *
174
+ * Only a snapshot NEWER than the poll is merged, so a header reading left over
175
+ * from before the poll cannot overwrite it with older numbers.
176
+ */
177
+ export function mergeOverviewWithLatestAccount(snapshot, latest) {
178
+ if (!latest || latest.fetchedAt <= snapshot.fetchedAt)
179
+ return snapshot;
180
+ if (latest.limits.length === 0)
181
+ return snapshot;
182
+ let merged = false;
183
+ const accounts = snapshot.accounts.map((account) => {
184
+ if (account.fingerprint !== latest.fingerprint)
185
+ return account;
186
+ merged = true;
187
+ return {
188
+ ...account,
189
+ planType: latest.planType ?? account.planType,
190
+ email: account.email ?? (latest.accountEmail?.trim() || undefined),
191
+ limits: latest.limits,
192
+ };
193
+ });
194
+ return merged ? { ...snapshot, accounts } : snapshot;
195
+ }
196
+ export function toQuotaOverviewAccounts(snapshot) {
197
+ return snapshot.accounts.map((account) => ({
198
+ index: account.index,
199
+ email: account.email,
200
+ label: account.label,
201
+ planType: account.planType,
202
+ resetCredits: account.resetCredits,
203
+ windows: account.limits.map((limit) => ({
204
+ leftPercent: limit.leftPercent ?? undefined,
205
+ resetAtMs: limit.resetAtMs,
206
+ })),
207
+ }));
208
+ }
209
+ //# sourceMappingURL=tui-quota-overview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-quota-overview.js","sourceRoot":"","sources":["../../lib/tui-quota-overview.ts"],"names":[],"mappings":"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"}