@kaitranntt/ccs 8.10.0-dev.16 → 8.10.0-dev.18
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.
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts +9 -3
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js +140 -155
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude-probe-state.d.ts +3 -0
- package/dist/cliproxy/quota/quota-fetcher-claude-probe-state.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude-probe-state.js +17 -10
- package/dist/cliproxy/quota/quota-fetcher-claude-probe-state.js.map +1 -1
- package/dist/cliproxy/quota/quota-label-sanitizer.d.ts +3 -2
- package/dist/cliproxy/quota/quota-label-sanitizer.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-label-sanitizer.js +6 -5
- package/dist/cliproxy/quota/quota-label-sanitizer.js.map +1 -1
- package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-manager.js +3 -9
- package/dist/cliproxy/quota/quota-manager.js.map +1 -1
- package/dist/cliproxy/quota/quota-types.d.ts +4 -0
- package/dist/cliproxy/quota/quota-types.d.ts.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +4 -0
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts +1 -2
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js +5 -16
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.js +1 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.js.map +1 -1
- package/dist/ui/assets/{Trans-BColIKz5.js → Trans-CPnBpG1v.js} +1 -1
- package/dist/ui/assets/{accounts-B1EU_9XM.js → accounts-CNsh__yA.js} +1 -1
- package/dist/ui/assets/{alert-dialog-C9SBIgEr.js → alert-dialog-BYANf24Z.js} +1 -1
- package/dist/ui/assets/{api-CXEV44f5.js → api-D2dp1jJI.js} +1 -1
- package/dist/ui/assets/{auth-section-CxZLOcwq.js → auth-section-C4hvIAlN.js} +1 -1
- package/dist/ui/assets/{backups-section-AUiHpQLi.js → backups-section-DtTXw8sS.js} +1 -1
- package/dist/ui/assets/{channels-TvJTgk8j.js → channels-BjAOue3A.js} +1 -1
- package/dist/ui/assets/{checkbox-Y1tmDCN3.js → checkbox-B8YUecwA.js} +1 -1
- package/dist/ui/assets/{claude-extension-CXJxJ4I9.js → claude-extension-B8rZNkvs.js} +1 -1
- package/dist/ui/assets/cliproxy-CYqhtq-C.js +4 -0
- package/dist/ui/assets/{cliproxy-ai-providers-2cXOlCUk.js → cliproxy-ai-providers-BdDJFdTh.js} +6 -6
- package/dist/ui/assets/{cliproxy-control-panel-C0HZZkG4.js → cliproxy-control-panel-Bfpgneqv.js} +1 -1
- package/dist/ui/assets/{codex-CyRwFWCe.js → codex-DUY9JsFG.js} +5 -5
- package/dist/ui/assets/{confirm-dialog-DUXnaSiV.js → confirm-dialog-7jPYymzW.js} +1 -1
- package/dist/ui/assets/{copilot-BPzXDtRF.js → copilot-MguCekxl.js} +1 -1
- package/dist/ui/assets/{cursor-Cvbm3VQV.js → cursor-DNDXozWa.js} +1 -1
- package/dist/ui/assets/{droid-CxsGvbvg.js → droid-mqdkhgvG.js} +2 -2
- package/dist/ui/assets/{globalenv-section-B-OdeaLT.js → globalenv-section-Dbl5LGSi.js} +1 -1
- package/dist/ui/assets/{health-C5VpmnOt.js → health-CkaDg4o2.js} +1 -1
- package/dist/ui/assets/{index-DO7WQcf-.js → index-0KmLQDBQ.js} +1 -1
- package/dist/ui/assets/index-0hASk2BU.css +1 -0
- package/dist/ui/assets/{index-D_L7ifkY.js → index-9X-gMfb1.js} +1 -1
- package/dist/ui/assets/{index-MKFBuvTT.js → index-BWS1uZea.js} +1 -1
- package/dist/ui/assets/{index-BeYBDzxI.js → index-BgqtZmiP.js} +39 -39
- package/dist/ui/assets/{index-nWYdiHn7.js → index-D-4SspwZ.js} +1 -1
- package/dist/ui/assets/{index-BPnoXiuI.js → index-D310z9x_.js} +1 -1
- package/dist/ui/assets/{index-gX4bxk3X.js → index-DqlWP0oL.js} +1 -1
- package/dist/ui/assets/{logs-DpdmvGkn.js → logs-1wSbFLwP.js} +1 -1
- package/dist/ui/assets/{masked-input-BddhXNda.js → masked-input-DYAPgWPy.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-B2hslsKA.js → proxy-status-widget-K0YX2AO9.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-BidvqG9g.js → raw-json-settings-editor-panel-BQp45JoM.js} +1 -1
- package/dist/ui/assets/{searchable-select-B1PQOOG-.js → searchable-select-Czuhr_nX.js} +1 -1
- package/dist/ui/assets/{separator-xK1UZiz1.js → separator-XX_4XrJf.js} +1 -1
- package/dist/ui/assets/{shared-BAY-V4yj.js → shared-BRIhwmbj.js} +3 -3
- package/dist/ui/assets/{table-BoNFTKua.js → table-Z6T_rVZN.js} +1 -1
- package/dist/ui/assets/{updates-D_mt64pY.js → updates-Cd3ekbRR.js} +1 -1
- package/dist/ui/assets/{use-accounts-B-nOJ4XB.js → use-accounts-C4G9WOre.js} +1 -1
- package/dist/ui/index.html +2 -2
- package/dist/web-server/routes/bar-pool-account-quota-adapter.d.ts.map +1 -1
- package/dist/web-server/routes/bar-pool-account-quota-adapter.js +1 -3
- package/dist/web-server/routes/bar-pool-account-quota-adapter.js.map +1 -1
- package/dist/web-server/usage/native-quota-collector.d.ts.map +1 -1
- package/dist/web-server/usage/native-quota-collector.js +33 -65
- package/dist/web-server/usage/native-quota-collector.js.map +1 -1
- package/package.json +1 -1
- package/scripts/run-test-bucket.js +2 -0
- package/dist/ui/assets/cliproxy-DhX3qxPR.js +0 -4
- package/dist/ui/assets/index-DzFlVVV3.css +0 -1
|
@@ -4,11 +4,17 @@
|
|
|
4
4
|
* Parses Anthropic policy-limits or OAuth-usage payloads into normalized windows and core usage summary.
|
|
5
5
|
*/
|
|
6
6
|
import type { ClaudeCoreUsageSummary, ClaudeQuotaWindow } from './quota-types';
|
|
7
|
+
/** Known legacy IDs are the only safe fallback for metadata-free cached windows. */
|
|
8
|
+
export declare function getClaudeWindowMetadata(window: Pick<ClaudeQuotaWindow, 'rateLimitType' | 'scope' | 'cadence' | 'modelLabel'>): Pick<ClaudeQuotaWindow, 'scope' | 'cadence' | 'modelLabel'>;
|
|
9
|
+
/**
|
|
10
|
+
* Parse raw policy limits response into normalized windows.
|
|
11
|
+
* Supports both policy-limits `restrictions` payloads and OAuth usage payloads
|
|
12
|
+
* keyed by window name (`five_hour`, `seven_day`, `seven_day_sonnet`, ...).
|
|
13
|
+
*/
|
|
7
14
|
export declare function buildClaudeQuotaWindows(payload: Record<string, unknown>): ClaudeQuotaWindow[];
|
|
15
|
+
/** Account-wide weekly quota only; model and unknown windows never bind account health. */
|
|
8
16
|
export declare function isClaudeWeeklyRateLimitType(rateLimitType: string): boolean;
|
|
9
17
|
export declare function pickMostRestrictiveClaudeWeeklyWindow(windows: ClaudeQuotaWindow[]): ClaudeQuotaWindow | null;
|
|
10
|
-
/**
|
|
11
|
-
* Build explicit 5h + weekly usage summary from Claude policy windows.
|
|
12
|
-
*/
|
|
18
|
+
/** Rebuild from actual windows, never trust a previously collapsed core summary. */
|
|
13
19
|
export declare function buildClaudeCoreUsageSummary(windows: ClaudeQuotaWindow[]): ClaudeCoreUsageSummary;
|
|
14
20
|
//# sourceMappingURL=quota-fetcher-claude-normalizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-fetcher-claude-normalizer.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-normalizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude-normalizer.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-normalizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAkG/E,oFAAoF;AACpF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC,GACpF,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC,CAmB7D;AAiFD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAqF7F;AAaD,2FAA2F;AAC3F,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,iBAAiB,EAAE,GAC3B,iBAAiB,GAAG,IAAI,CAO1B;AAED,oFAAoF;AACpF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,sBAAsB,CAWhG"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* Parses Anthropic policy-limits or OAuth-usage payloads into normalized windows and core usage summary.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.buildClaudeCoreUsageSummary = exports.pickMostRestrictiveClaudeWeeklyWindow = exports.isClaudeWeeklyRateLimitType = exports.buildClaudeQuotaWindows = void 0;
|
|
9
|
-
const
|
|
8
|
+
exports.buildClaudeCoreUsageSummary = exports.pickMostRestrictiveClaudeWeeklyWindow = exports.isClaudeWeeklyRateLimitType = exports.buildClaudeQuotaWindows = exports.getClaudeWindowMetadata = void 0;
|
|
9
|
+
const quota_label_sanitizer_1 = require("./quota-label-sanitizer");
|
|
10
10
|
// Distinguishes epoch milliseconds from seconds (1e12 ~= 2001-09-09T01:46:40Z).
|
|
11
11
|
const EPOCH_MS_THRESHOLD = 1e12;
|
|
12
12
|
function asString(value) {
|
|
@@ -26,7 +26,7 @@ function asBoolean(value) {
|
|
|
26
26
|
function asNumber(value) {
|
|
27
27
|
if (typeof value === 'number' && isFinite(value))
|
|
28
28
|
return value;
|
|
29
|
-
if (typeof value === 'string') {
|
|
29
|
+
if (typeof value === 'string' && value.trim()) {
|
|
30
30
|
const parsed = Number(value);
|
|
31
31
|
return isFinite(parsed) ? parsed : null;
|
|
32
32
|
}
|
|
@@ -80,45 +80,43 @@ function getClaudeWindowLabel(rateLimitType) {
|
|
|
80
80
|
.join(' ');
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
function clampUnit(value) {
|
|
84
|
-
return Math.max(0, Math.min(1, value));
|
|
85
|
-
}
|
|
86
83
|
function normalizeUtilization(raw, unit) {
|
|
87
|
-
const
|
|
88
|
-
const
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
?
|
|
93
|
-
:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
84
|
+
const utilization = asNumber(raw['utilization']);
|
|
85
|
+
const used = asNumber(raw['usedPercent'] ?? raw['used_percent'] ?? raw['used_percentage']);
|
|
86
|
+
const remaining = asNumber(raw['remainingPercent'] ?? raw['remaining_percent']);
|
|
87
|
+
const usedPercent = utilization !== null
|
|
88
|
+
? unit === 'ratio'
|
|
89
|
+
? utilization * 100
|
|
90
|
+
: utilization
|
|
91
|
+
: (used ?? (remaining !== null ? 100 - remaining : null));
|
|
92
|
+
if (usedPercent === null || usedPercent < 0 || usedPercent > 100)
|
|
93
|
+
return null;
|
|
94
|
+
return { utilization: usedPercent / 100, usedPercent, remainingPercent: 100 - usedPercent };
|
|
95
|
+
}
|
|
96
|
+
/** Known legacy IDs are the only safe fallback for metadata-free cached windows. */
|
|
97
|
+
function getClaudeWindowMetadata(window) {
|
|
98
|
+
if (window.scope !== undefined)
|
|
99
|
+
return { scope: window.scope, cadence: window.cadence, modelLabel: window.modelLabel };
|
|
100
|
+
switch (window.rateLimitType) {
|
|
101
|
+
case 'five_hour':
|
|
102
|
+
return { scope: 'account', cadence: '5h' };
|
|
103
|
+
case 'seven_day':
|
|
104
|
+
return { scope: 'account', cadence: 'weekly' };
|
|
105
|
+
case 'seven_day_opus':
|
|
106
|
+
return { scope: 'model', cadence: 'weekly', modelLabel: 'Opus' };
|
|
107
|
+
case 'seven_day_sonnet':
|
|
108
|
+
return { scope: 'model', cadence: 'weekly', modelLabel: 'Sonnet' };
|
|
109
|
+
case 'fable_weekly':
|
|
110
|
+
case 'fable_seven_day':
|
|
111
|
+
case 'seven_day_fable':
|
|
112
|
+
return { scope: 'model', cadence: 'weekly', modelLabel: 'Fable' };
|
|
113
|
+
default:
|
|
114
|
+
return { scope: 'unknown' };
|
|
116
115
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
};
|
|
116
|
+
}
|
|
117
|
+
exports.getClaudeWindowMetadata = getClaudeWindowMetadata;
|
|
118
|
+
function normalizeModelLabel(label) {
|
|
119
|
+
return label.trim().replace(/\s+/g, ' ').toLowerCase();
|
|
122
120
|
}
|
|
123
121
|
function normalizeRateLimitType(value, fallbackKey) {
|
|
124
122
|
const direct = asString(value);
|
|
@@ -126,16 +124,28 @@ function normalizeRateLimitType(value, fallbackKey) {
|
|
|
126
124
|
return direct;
|
|
127
125
|
if (fallbackKey)
|
|
128
126
|
return fallbackKey;
|
|
129
|
-
return '
|
|
127
|
+
return '';
|
|
130
128
|
}
|
|
131
129
|
function toObject(value) {
|
|
132
130
|
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
133
131
|
return null;
|
|
134
132
|
return value;
|
|
135
133
|
}
|
|
134
|
+
/** Credit grants can expose utilization/reset fields without being time quotas. */
|
|
135
|
+
function isMonetaryCreditBucket(raw) {
|
|
136
|
+
return ['limit_dollars', 'used_dollars', 'remaining_dollars'].some((key) => Object.prototype.hasOwnProperty.call(raw, key));
|
|
137
|
+
}
|
|
138
|
+
function isUnscoped(value) {
|
|
139
|
+
if (value === null || value === undefined)
|
|
140
|
+
return true;
|
|
141
|
+
const scope = toObject(value);
|
|
142
|
+
return (scope !== null && Object.values(scope).every((entry) => entry === null || entry === undefined));
|
|
143
|
+
}
|
|
136
144
|
function normalizeRestriction(raw, fallbackKey, unit) {
|
|
145
|
+
if (isMonetaryCreditBucket(raw))
|
|
146
|
+
return null;
|
|
137
147
|
const rateLimitType = normalizeRateLimitType(raw['rateLimitType'] ?? raw['rate_limit_type'] ?? raw['claim'] ?? raw['claimAbbrev'], fallbackKey);
|
|
138
|
-
if (!rateLimitType
|
|
148
|
+
if (!rateLimitType)
|
|
139
149
|
return null;
|
|
140
150
|
const status = asString(raw['status']) || 'unknown';
|
|
141
151
|
const resetAt = normalizeTimestamp(raw['resetsAt'] ?? raw['resets_at'] ?? raw['resetAt'] ?? raw['reset_at']) ||
|
|
@@ -144,14 +154,18 @@ function normalizeRestriction(raw, fallbackKey, unit) {
|
|
|
144
154
|
raw['overage_resets_at'] ??
|
|
145
155
|
raw['overageResetAt'] ??
|
|
146
156
|
raw['overage_reset_at']) || null;
|
|
147
|
-
const
|
|
157
|
+
const metrics = normalizeUtilization(raw, unit);
|
|
158
|
+
if (!metrics)
|
|
159
|
+
return null;
|
|
160
|
+
const metadata = getClaudeWindowMetadata({ rateLimitType });
|
|
148
161
|
return {
|
|
149
162
|
rateLimitType,
|
|
150
|
-
label:
|
|
163
|
+
label: metadata.modelLabel
|
|
164
|
+
? metadata.modelLabel + ' weekly limit'
|
|
165
|
+
: getClaudeWindowLabel(rateLimitType),
|
|
166
|
+
...metadata,
|
|
151
167
|
status,
|
|
152
|
-
|
|
153
|
-
usedPercent,
|
|
154
|
-
remainingPercent,
|
|
168
|
+
...metrics,
|
|
155
169
|
resetAt,
|
|
156
170
|
surpassedThreshold: asBoolean(raw['surpassedThreshold'] ?? raw['surpassed_threshold']),
|
|
157
171
|
severity: asString(raw['severity']) || undefined,
|
|
@@ -167,95 +181,100 @@ function normalizeRestriction(raw, fallbackKey, unit) {
|
|
|
167
181
|
* Supports both policy-limits `restrictions` payloads and OAuth usage payloads
|
|
168
182
|
* keyed by window name (`five_hour`, `seven_day`, `seven_day_sonnet`, ...).
|
|
169
183
|
*/
|
|
170
|
-
function isClaudeOAuthUsageWindowCandidate(key, raw) {
|
|
171
|
-
if (key === 'extra_usage')
|
|
172
|
-
return false;
|
|
173
|
-
if (asNumber(raw['utilization']) === null)
|
|
174
|
-
return false;
|
|
175
|
-
const resetAt = raw['resetsAt'] ?? raw['resets_at'] ?? raw['resetAt'] ?? raw['reset_at'] ?? null;
|
|
176
|
-
return resetAt !== null && resetAt !== undefined;
|
|
177
|
-
}
|
|
178
184
|
function buildClaudeQuotaWindows(payload) {
|
|
179
|
-
const rawRestrictions = payload['restrictions'];
|
|
180
185
|
const windows = [];
|
|
181
|
-
|
|
182
|
-
|
|
186
|
+
// Parse modern rows first so valid scoped entries win over legacy aliases.
|
|
187
|
+
if (Array.isArray(payload['limits'])) {
|
|
188
|
+
for (const item of payload['limits']) {
|
|
183
189
|
const raw = toObject(item);
|
|
184
190
|
if (!raw)
|
|
185
191
|
continue;
|
|
186
|
-
|
|
187
|
-
const
|
|
188
|
-
|
|
192
|
+
const model = toObject(toObject(raw['scope'])?.['model']);
|
|
193
|
+
const modelLabel = (0, quota_label_sanitizer_1.sanitizeQuotaLabelOrNull)(model?.['display_name']);
|
|
194
|
+
const kind = asString(raw['kind']);
|
|
195
|
+
if (!kind)
|
|
196
|
+
continue;
|
|
197
|
+
const percent = asNumber(raw['percent']);
|
|
198
|
+
if (percent === null)
|
|
199
|
+
continue;
|
|
200
|
+
const generalKind = isUnscoped(raw['scope']) && kind === 'session'
|
|
201
|
+
? 'five_hour'
|
|
202
|
+
: isUnscoped(raw['scope']) && kind === 'weekly_all'
|
|
203
|
+
? 'seven_day'
|
|
204
|
+
: null;
|
|
205
|
+
const window = normalizeRestriction({ ...raw, rateLimitType: generalKind ?? kind, utilization: percent }, undefined, 'percent');
|
|
206
|
+
if (!window)
|
|
207
|
+
continue;
|
|
208
|
+
if (generalKind) {
|
|
189
209
|
windows.push(window);
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
if (kind !== 'weekly_scoped' || !modelLabel) {
|
|
213
|
+
windows.push({ ...window, scope: 'unknown' });
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
windows.push({
|
|
217
|
+
...window,
|
|
218
|
+
rateLimitType: 'weekly_scoped:' + normalizeModelLabel(modelLabel),
|
|
219
|
+
scope: 'model',
|
|
220
|
+
cadence: 'weekly',
|
|
221
|
+
modelLabel: modelLabel.replace(/\s+/g, ' '),
|
|
222
|
+
label: modelLabel.replace(/\s+/g, ' ') + ' weekly limit',
|
|
223
|
+
});
|
|
190
224
|
}
|
|
191
225
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
// policy-limits restrictions{} returns utilization as a 0..1 ratio.
|
|
198
|
-
const window = normalizeRestriction(raw, key, 'ratio');
|
|
226
|
+
const restrictions = payload['restrictions'];
|
|
227
|
+
if (Array.isArray(restrictions)) {
|
|
228
|
+
for (const item of restrictions) {
|
|
229
|
+
const raw = toObject(item);
|
|
230
|
+
const window = raw ? normalizeRestriction(raw, undefined, 'ratio') : null;
|
|
199
231
|
if (window)
|
|
200
232
|
windows.push(window);
|
|
201
233
|
}
|
|
202
234
|
}
|
|
203
|
-
else if (toObject(
|
|
204
|
-
for (const [key, value] of Object.entries(
|
|
235
|
+
else if (toObject(restrictions)) {
|
|
236
|
+
for (const [key, value] of Object.entries(restrictions)) {
|
|
205
237
|
const raw = toObject(value);
|
|
206
|
-
|
|
207
|
-
continue;
|
|
208
|
-
if (!isClaudeOAuthUsageWindowCandidate(key, raw))
|
|
209
|
-
continue;
|
|
210
|
-
// OAuth /oauth/usage payloads return utilization as percent 0..100.
|
|
211
|
-
const window = normalizeRestriction(raw, key, 'percent');
|
|
238
|
+
const window = raw ? normalizeRestriction(raw, key, 'ratio') : null;
|
|
212
239
|
if (window)
|
|
213
240
|
windows.push(window);
|
|
214
241
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
if (
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
242
|
+
}
|
|
243
|
+
for (const [key, value] of Object.entries(payload)) {
|
|
244
|
+
if (key === 'extra_usage' || key === 'restrictions' || key === 'scope')
|
|
245
|
+
continue;
|
|
246
|
+
const raw = toObject(value);
|
|
247
|
+
if (!raw)
|
|
248
|
+
continue;
|
|
249
|
+
const window = normalizeRestriction(raw, key, 'percent');
|
|
250
|
+
if (window)
|
|
251
|
+
windows.push(window);
|
|
252
|
+
}
|
|
253
|
+
if (windows.length === 0) {
|
|
254
|
+
const direct = normalizeRestriction(payload, undefined, 'ratio');
|
|
255
|
+
if (direct)
|
|
256
|
+
windows.push(direct);
|
|
222
257
|
}
|
|
223
258
|
const seen = new Set();
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const key =
|
|
259
|
+
return windows
|
|
260
|
+
.filter((window) => {
|
|
261
|
+
const key = [
|
|
262
|
+
window.scope,
|
|
263
|
+
window.cadence,
|
|
264
|
+
window.modelLabel
|
|
265
|
+
? normalizeModelLabel(window.modelLabel)
|
|
266
|
+
: window.scope === 'account'
|
|
267
|
+
? ''
|
|
268
|
+
: window.rateLimitType,
|
|
269
|
+
].join(':');
|
|
227
270
|
if (seen.has(key))
|
|
228
|
-
|
|
271
|
+
return false;
|
|
229
272
|
seen.add(key);
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
|
|
273
|
+
return true;
|
|
274
|
+
})
|
|
275
|
+
.sort((a, b) => a.rateLimitType.localeCompare(b.rateLimitType));
|
|
233
276
|
}
|
|
234
277
|
exports.buildClaudeQuotaWindows = buildClaudeQuotaWindows;
|
|
235
|
-
function toEpochMs(iso) {
|
|
236
|
-
if (!iso)
|
|
237
|
-
return null;
|
|
238
|
-
const value = new Date(iso).getTime();
|
|
239
|
-
return isNaN(value) ? null : value;
|
|
240
|
-
}
|
|
241
|
-
function pickMostRestrictiveWeekly(windows) {
|
|
242
|
-
if (windows.length === 0)
|
|
243
|
-
return null;
|
|
244
|
-
return [...windows].sort((a, b) => {
|
|
245
|
-
if (a.remainingPercent !== b.remainingPercent) {
|
|
246
|
-
return a.remainingPercent - b.remainingPercent;
|
|
247
|
-
}
|
|
248
|
-
const aReset = toEpochMs(a.resetAt);
|
|
249
|
-
const bReset = toEpochMs(b.resetAt);
|
|
250
|
-
if (aReset === null && bReset === null)
|
|
251
|
-
return 0;
|
|
252
|
-
if (aReset === null)
|
|
253
|
-
return 1;
|
|
254
|
-
if (bReset === null)
|
|
255
|
-
return -1;
|
|
256
|
-
return aReset - bReset;
|
|
257
|
-
})[0];
|
|
258
|
-
}
|
|
259
278
|
function mapCoreWindow(window) {
|
|
260
279
|
if (!window)
|
|
261
280
|
return null;
|
|
@@ -267,55 +286,21 @@ function mapCoreWindow(window) {
|
|
|
267
286
|
status: window.status,
|
|
268
287
|
};
|
|
269
288
|
}
|
|
270
|
-
|
|
271
|
-
'seven_day',
|
|
272
|
-
'seven_day_opus',
|
|
273
|
-
'seven_day_sonnet',
|
|
274
|
-
'seven_day_oauth_apps',
|
|
275
|
-
'seven_day_cowork',
|
|
276
|
-
]);
|
|
289
|
+
/** Account-wide weekly quota only; model and unknown windows never bind account health. */
|
|
277
290
|
function isClaudeWeeklyRateLimitType(rateLimitType) {
|
|
278
|
-
return
|
|
291
|
+
return rateLimitType === 'seven_day';
|
|
279
292
|
}
|
|
280
293
|
exports.isClaudeWeeklyRateLimitType = isClaudeWeeklyRateLimitType;
|
|
281
294
|
function pickMostRestrictiveClaudeWeeklyWindow(windows) {
|
|
282
|
-
|
|
283
|
-
return pickMostRestrictiveWeekly(weeklyCandidates);
|
|
295
|
+
return (windows.find((window) => window.rateLimitType === 'seven_day' && getClaudeWindowMetadata(window).scope === 'account') ?? null);
|
|
284
296
|
}
|
|
285
297
|
exports.pickMostRestrictiveClaudeWeeklyWindow = pickMostRestrictiveClaudeWeeklyWindow;
|
|
286
|
-
/**
|
|
287
|
-
* Build explicit 5h + weekly usage summary from Claude policy windows.
|
|
288
|
-
*/
|
|
298
|
+
/** Rebuild from actual windows, never trust a previously collapsed core summary. */
|
|
289
299
|
function buildClaudeCoreUsageSummary(windows) {
|
|
290
|
-
if (!windows || windows.length === 0) {
|
|
291
|
-
return { fiveHour: null, weekly: null };
|
|
292
|
-
}
|
|
293
|
-
const fiveHourWindow = windows.find((window) => window.rateLimitType === 'five_hour') || null;
|
|
294
|
-
const weeklyWindow = pickMostRestrictiveClaudeWeeklyWindow(windows);
|
|
295
|
-
if (fiveHourWindow && weeklyWindow) {
|
|
296
|
-
return {
|
|
297
|
-
fiveHour: mapCoreWindow(fiveHourWindow),
|
|
298
|
-
weekly: mapCoreWindow(weeklyWindow),
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
// Fallback: infer shortest/longest reset windows from non-overage limits.
|
|
302
|
-
const nonOverage = windows.filter((window) => window.rateLimitType !== 'overage');
|
|
303
|
-
const withReset = nonOverage
|
|
304
|
-
.map((window) => ({
|
|
305
|
-
window,
|
|
306
|
-
resetMs: toEpochMs(window.resetAt),
|
|
307
|
-
}))
|
|
308
|
-
.filter((entry) => entry.resetMs !== null)
|
|
309
|
-
.sort((a, b) => a.resetMs - b.resetMs);
|
|
310
|
-
const inferredWeekly = weeklyWindow ||
|
|
311
|
-
[...withReset].reverse().find((entry) => entry.window !== fiveHourWindow)?.window ||
|
|
312
|
-
pickMostRestrictiveWeekly(nonOverage.filter((window) => window !== fiveHourWindow));
|
|
313
|
-
const inferredFiveHour = fiveHourWindow ||
|
|
314
|
-
withReset.find((entry) => entry.window !== inferredWeekly)?.window ||
|
|
315
|
-
pickMostRestrictiveWeekly(nonOverage.filter((window) => window !== inferredWeekly));
|
|
316
300
|
return {
|
|
317
|
-
fiveHour: mapCoreWindow(
|
|
318
|
-
|
|
301
|
+
fiveHour: mapCoreWindow(windows.find((window) => window.rateLimitType === 'five_hour' &&
|
|
302
|
+
getClaudeWindowMetadata(window).scope === 'account') ?? null),
|
|
303
|
+
weekly: mapCoreWindow(pickMostRestrictiveClaudeWeeklyWindow(windows)),
|
|
319
304
|
};
|
|
320
305
|
}
|
|
321
306
|
exports.buildClaudeCoreUsageSummary = buildClaudeCoreUsageSummary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-fetcher-claude-normalizer.js","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-normalizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude-normalizer.js","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-normalizer.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,mEAAmE;AAEnE,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,qEAAqE;IACrE,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YACvE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAqB;IACjD,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,WAAW;YACd,OAAO,eAAe,CAAC;QACzB,KAAK,WAAW;YACd,OAAO,cAAc,CAAC;QACxB,KAAK,gBAAgB;YACnB,OAAO,YAAY,CAAC;QACtB,KAAK,kBAAkB;YACrB,OAAO,cAAc,CAAC;QACxB,KAAK,sBAAsB;YACzB,OAAO,kBAAkB,CAAC;QAC5B,KAAK,kBAAkB;YACrB,OAAO,cAAc,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC;QACvB;YACE,IAAI,CAAC,aAAa;gBAAE,OAAO,eAAe,CAAC;YAC3C,OAAO,aAAa;iBACjB,KAAK,CAAC,QAAQ,CAAC;iBACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC9E;iBACA,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;AAKD,SAAS,oBAAoB,CAAC,GAA4B,EAAE,IAAqB;IAC/E,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAChF,MAAM,WAAW,GACf,WAAW,KAAK,IAAI;QAClB,CAAC,CAAC,IAAI,KAAK,OAAO;YAChB,CAAC,CAAC,WAAW,GAAG,GAAG;YACnB,CAAC,CAAC,WAAW;QACf,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,GAAG,WAAW,EAAE,CAAC;AAC9F,CAAC;AAED,oFAAoF;AACpF,SAAgB,uBAAuB,CACrC,MAAqF;IAErF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IACzF,QAAQ,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7B,KAAK,WAAW;YACd,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,KAAK,WAAW;YACd,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACjD,KAAK,gBAAgB;YACnB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACnE,KAAK,kBAAkB;YACrB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QACrE,KAAK,cAAc,CAAC;QACpB,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB;YACpB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACpE;YACE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AArBD,0DAqBC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc,EAAE,WAAoB;IAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,mFAAmF;AACnF,SAAS,sBAAsB,CAAC,GAA4B;IAC1D,OAAO,CAAC,eAAe,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACzE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,CACL,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAA4B,EAC5B,WAA+B,EAC/B,IAAqB;IAErB,IAAI,sBAAsB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,aAAa,GAAG,sBAAsB,CAC1C,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,EACpF,WAAW,CACZ,CAAC;IACF,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC;IACpD,MAAM,OAAO,GACX,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5F,IAAI,CAAC;IACP,MAAM,eAAe,GACnB,kBAAkB,CAChB,GAAG,CAAC,iBAAiB,CAAC;QACpB,GAAG,CAAC,mBAAmB,CAAC;QACxB,GAAG,CAAC,gBAAgB,CAAC;QACrB,GAAG,CAAC,kBAAkB,CAAC,CAC1B,IAAI,IAAI,CAAC;IAEZ,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IAE5D,OAAO;QACL,aAAa;QACb,KAAK,EAAE,QAAQ,CAAC,UAAU;YACxB,CAAC,CAAC,QAAQ,CAAC,UAAU,GAAG,eAAe;YACvC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC;QACvC,GAAG,QAAQ;QACX,MAAM;QACN,GAAG,OAAO;QACV,OAAO;QACP,kBAAkB,EAAE,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACtF,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,SAAS;QAChD,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,SAAS;QACnF,eAAe;QACf,qBAAqB,EACnB,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAC,IAAI,SAAS;QACvF,cAAc,EAAE,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3E,oBAAoB,EAAE,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAC;KAC/F,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,OAAgC;IACtE,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,2EAA2E;IAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAG,IAAA,gDAAwB,EAAC,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,IAAI,OAAO,KAAK,IAAI;gBAAE,SAAS;YAC/B,MAAM,WAAW,GACf,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,KAAK,SAAS;gBAC5C,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,KAAK,YAAY;oBACjD,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,IAAI,CAAC;YACb,MAAM,MAAM,GAAG,oBAAoB,CACjC,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,WAAW,IAAI,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EACpE,SAAS,EACT,SAAS,CACV,CAAC;YACF,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,IAAI,IAAI,KAAK,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG,MAAM;gBACT,aAAa,EAAE,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,CAAC;gBACjE,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,QAAQ;gBACjB,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;gBAC3C,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,IAAI,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAuC,CAAC,EAAE,CAAC;YACnF,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,IAAI,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,OAAO;YAAE,SAAS;QACjF,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG;YACV,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,UAAU;gBACf,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC;gBACxC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS;oBAC1B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,MAAM,CAAC,aAAa;SAC3B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACpE,CAAC;AArFD,0DAqFC;AAED,SAAS,aAAa,CAAC,MAAgC;IACrD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,SAAgB,2BAA2B,CAAC,aAAqB;IAC/D,OAAO,aAAa,KAAK,WAAW,CAAC;AACvC,CAAC;AAFD,kEAEC;AAED,SAAgB,qCAAqC,CACnD,OAA4B;IAE5B,OAAO,CACL,OAAO,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,aAAa,KAAK,WAAW,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,SAAS,CAC9F,IAAI,IAAI,CACV,CAAC;AACJ,CAAC;AATD,sFASC;AAED,oFAAoF;AACpF,SAAgB,2BAA2B,CAAC,OAA4B;IACtE,OAAO;QACL,QAAQ,EAAE,aAAa,CACrB,OAAO,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,aAAa,KAAK,WAAW;YACpC,uBAAuB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,SAAS,CACtD,IAAI,IAAI,CACV;QACD,MAAM,EAAE,aAAa,CAAC,qCAAqC,CAAC,OAAO,CAAC,CAAC;KACtE,CAAC;AACJ,CAAC;AAXD,kEAWC"}
|
|
@@ -19,8 +19,11 @@ export declare const CLAUDE_PROBE_COOLDOWN_BASE_MS: number;
|
|
|
19
19
|
export declare const CLAUDE_PROBE_COOLDOWN_MAX_MS: number;
|
|
20
20
|
/** Never serve a last-good result older than this, even if no window reset has passed. */
|
|
21
21
|
export declare const CLAUDE_PROBE_STALE_MAX_AGE_MS: number;
|
|
22
|
+
export declare const CLAUDE_QUOTA_NORMALIZATION_VERSION = 3;
|
|
22
23
|
export interface ClaudeProbeState {
|
|
23
24
|
version: number;
|
|
25
|
+
/** Independent of the storage schema; old normalized numbers must not be reused. */
|
|
26
|
+
normalizationVersion?: number;
|
|
24
27
|
/** Last successful usage result (success: true). */
|
|
25
28
|
lastGood: ClaudeQuotaResult | null;
|
|
26
29
|
/** Consecutive 429 responses since the last success. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-fetcher-claude-probe-state.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-probe-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude-probe-state.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-probe-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,QAAa,CAAC;AACxD,eAAO,MAAM,4BAA4B,QAAc,CAAC;AAGxD,0FAA0F;AAC1F,eAAO,MAAM,6BAA6B,QAAkB,CAAC;AAG7D,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;CACvB;AAgBD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAuBxE;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAmBtF;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQxF;AAED,sFAAsF;AACtF,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,UAO/F;AAQD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,MAAM,GACV,iBAAiB,GAAG,IAAI,CAU1B"}
|
|
@@ -36,11 +36,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
36
36
|
return result;
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.buildStaleClaudeResult = exports.computeClaudeProbeCooldownMs = exports.parseRetryAfterMs = exports.writeClaudeProbeState = exports.readClaudeProbeState = exports.CLAUDE_PROBE_STALE_MAX_AGE_MS = exports.CLAUDE_PROBE_COOLDOWN_MAX_MS = exports.CLAUDE_PROBE_COOLDOWN_BASE_MS = exports.CLAUDE_PROBE_SHARED_TTL_MS = void 0;
|
|
39
|
+
exports.buildStaleClaudeResult = exports.computeClaudeProbeCooldownMs = exports.parseRetryAfterMs = exports.writeClaudeProbeState = exports.readClaudeProbeState = exports.CLAUDE_QUOTA_NORMALIZATION_VERSION = exports.CLAUDE_PROBE_STALE_MAX_AGE_MS = exports.CLAUDE_PROBE_COOLDOWN_MAX_MS = exports.CLAUDE_PROBE_COOLDOWN_BASE_MS = exports.CLAUDE_PROBE_SHARED_TTL_MS = void 0;
|
|
40
40
|
const fs = __importStar(require("node:fs"));
|
|
41
41
|
const path = __importStar(require("node:path"));
|
|
42
42
|
const config_manager_1 = require("../../utils/config-manager");
|
|
43
43
|
const auth_utils_1 = require("../auth/auth-utils");
|
|
44
|
+
const quota_fetcher_claude_normalizer_1 = require("./quota-fetcher-claude-normalizer");
|
|
44
45
|
/** Reuse another process's successful result for this long instead of probing. */
|
|
45
46
|
exports.CLAUDE_PROBE_SHARED_TTL_MS = 60000;
|
|
46
47
|
/** First 429 cooldown; doubles per consecutive 429 up to the max. */
|
|
@@ -51,8 +52,15 @@ const CLAUDE_PROBE_RETRY_AFTER_MAX_MS = 60 * 60000;
|
|
|
51
52
|
/** Never serve a last-good result older than this, even if no window reset has passed. */
|
|
52
53
|
exports.CLAUDE_PROBE_STALE_MAX_AGE_MS = 6 * 60 * 60000;
|
|
53
54
|
const STATE_VERSION = 1;
|
|
55
|
+
exports.CLAUDE_QUOTA_NORMALIZATION_VERSION = 3;
|
|
54
56
|
function emptyState() {
|
|
55
|
-
return {
|
|
57
|
+
return {
|
|
58
|
+
version: STATE_VERSION,
|
|
59
|
+
normalizationVersion: exports.CLAUDE_QUOTA_NORMALIZATION_VERSION,
|
|
60
|
+
lastGood: null,
|
|
61
|
+
consecutive429: 0,
|
|
62
|
+
cooldownUntil: 0,
|
|
63
|
+
};
|
|
56
64
|
}
|
|
57
65
|
function getStateFile(accountId) {
|
|
58
66
|
return path.join((0, config_manager_1.getCcsDir)(), 'cache', 'claude-quota', `${(0, auth_utils_1.sanitizeEmail)(accountId)}.json`);
|
|
@@ -65,11 +73,15 @@ function readClaudeProbeState(accountId) {
|
|
|
65
73
|
const state = parsed;
|
|
66
74
|
if (state.version !== STATE_VERSION)
|
|
67
75
|
return emptyState();
|
|
68
|
-
const lastGood = state.
|
|
76
|
+
const lastGood = state.normalizationVersion === exports.CLAUDE_QUOTA_NORMALIZATION_VERSION &&
|
|
77
|
+
state.lastGood &&
|
|
78
|
+
state.lastGood.success === true &&
|
|
79
|
+
Array.isArray(state.lastGood.windows)
|
|
69
80
|
? state.lastGood
|
|
70
81
|
: null;
|
|
71
82
|
return {
|
|
72
83
|
version: STATE_VERSION,
|
|
84
|
+
normalizationVersion: exports.CLAUDE_QUOTA_NORMALIZATION_VERSION,
|
|
73
85
|
lastGood,
|
|
74
86
|
consecutive429: Number.isFinite(state.consecutive429) ? Number(state.consecutive429) : 0,
|
|
75
87
|
cooldownUntil: Number.isFinite(state.cooldownUntil) ? Number(state.cooldownUntil) : 0,
|
|
@@ -86,7 +98,7 @@ function writeClaudeProbeState(accountId, state) {
|
|
|
86
98
|
const tmp = `${file}.${process.pid}.${Date.now()}.tmp`;
|
|
87
99
|
try {
|
|
88
100
|
fs.mkdirSync(path.dirname(file), { recursive: true, mode: 0o700 });
|
|
89
|
-
fs.writeFileSync(tmp, JSON.stringify(state), { mode: 0o600 });
|
|
101
|
+
fs.writeFileSync(tmp, JSON.stringify({ ...state, normalizationVersion: exports.CLAUDE_QUOTA_NORMALIZATION_VERSION }), { mode: 0o600 });
|
|
90
102
|
fs.renameSync(tmp, file);
|
|
91
103
|
}
|
|
92
104
|
catch {
|
|
@@ -137,15 +149,10 @@ function buildStaleClaudeResult(lastGood, now) {
|
|
|
137
149
|
const windows = lastGood.windows.filter((window) => !hasReset(window.resetAt, now));
|
|
138
150
|
if (windows.length === 0)
|
|
139
151
|
return null;
|
|
140
|
-
const fiveHour = lastGood.coreUsage?.fiveHour ?? null;
|
|
141
|
-
const weekly = lastGood.coreUsage?.weekly ?? null;
|
|
142
152
|
return {
|
|
143
153
|
...lastGood,
|
|
144
154
|
windows,
|
|
145
|
-
coreUsage:
|
|
146
|
-
fiveHour: fiveHour && !hasReset(fiveHour.resetAt, now) ? fiveHour : null,
|
|
147
|
-
weekly: weekly && !hasReset(weekly.resetAt, now) ? weekly : null,
|
|
148
|
-
},
|
|
155
|
+
coreUsage: (0, quota_fetcher_claude_normalizer_1.buildClaudeCoreUsageSummary)(windows),
|
|
149
156
|
stale: true,
|
|
150
157
|
};
|
|
151
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-fetcher-claude-probe-state.js","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-probe-state.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAA8B;AAC9B,gDAAkC;AAClC,+DAAuD;AACvD,mDAAmD;
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude-probe-state.js","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-probe-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sanitize upstream
|
|
2
|
+
* Sanitize upstream quota labels before storing or rendering them.
|
|
3
3
|
*
|
|
4
4
|
* The quota API is not schema-validated at runtime, so additional-rate-limit
|
|
5
5
|
* labels must be constrained to safe, printable strings before they reach the
|
|
6
6
|
* terminal.
|
|
7
7
|
*/
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function sanitizeQuotaLabelOrNull(value: unknown): string | null;
|
|
9
|
+
export declare const sanitizeCodexFeatureLabelOrNull: typeof sanitizeQuotaLabelOrNull;
|
|
9
10
|
export declare function sanitizeCodexFeatureLabel(value: unknown): string;
|
|
10
11
|
//# sourceMappingURL=quota-label-sanitizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-label-sanitizer.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-label-sanitizer.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB
|
|
1
|
+
{"version":3,"file":"quota-label-sanitizer.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-label-sanitizer.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWtE;AAED,eAAO,MAAM,+BAA+B,iCAA2B,CAAC;AAExE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhE"}
|