@cortexkit/antigravity-auth-core 2.0.0 → 2.1.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.
- package/dist/account-manager.d.ts +50 -6
- package/dist/account-manager.d.ts.map +1 -1
- package/dist/account-manager.js +120 -18
- package/dist/account-manager.js.map +1 -1
- package/dist/account-types.d.ts +19 -0
- package/dist/account-types.d.ts.map +1 -1
- package/dist/agy-request-metadata.d.ts.map +1 -1
- package/dist/agy-request-metadata.js +3 -0
- package/dist/agy-request-metadata.js.map +1 -1
- package/dist/auth-types.d.ts +10 -0
- package/dist/auth-types.d.ts.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/fingerprint.d.ts +3 -2
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +5 -3
- package/dist/fingerprint.js.map +1 -1
- package/dist/model-registry.d.ts +2 -1
- package/dist/model-registry.d.ts.map +1 -1
- package/dist/model-registry.js +66 -24
- package/dist/model-registry.js.map +1 -1
- package/dist/project.d.ts +3 -0
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +31 -6
- package/dist/project.js.map +1 -1
- package/dist/quota-manager.d.ts +63 -0
- package/dist/quota-manager.d.ts.map +1 -1
- package/dist/quota-manager.js +247 -10
- package/dist/quota-manager.js.map +1 -1
- package/dist/quota-types.d.ts +20 -1
- package/dist/quota-types.d.ts.map +1 -1
- package/dist/quota-types.js +41 -1
- package/dist/quota-types.js.map +1 -1
- package/dist/transform/model-resolver.d.ts.map +1 -1
- package/dist/transform/model-resolver.js +17 -3
- package/dist/transform/model-resolver.js.map +1 -1
- package/package.json +1 -1
package/dist/quota-manager.d.ts
CHANGED
|
@@ -108,6 +108,62 @@ export interface RetrieveUserQuotaResponse {
|
|
|
108
108
|
export interface FetchAvailableModelsResponse {
|
|
109
109
|
models?: Record<string, FetchAvailableModelEntry>;
|
|
110
110
|
}
|
|
111
|
+
export interface RetrieveUserQuotaSummaryBucket {
|
|
112
|
+
bucketId: string;
|
|
113
|
+
displayName: string;
|
|
114
|
+
window: 'weekly' | '5h';
|
|
115
|
+
resetTime: string;
|
|
116
|
+
remainingFraction: number;
|
|
117
|
+
description?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface RetrieveUserQuotaSummaryGroup {
|
|
120
|
+
displayName: string;
|
|
121
|
+
description?: string;
|
|
122
|
+
buckets: RetrieveUserQuotaSummaryBucket[];
|
|
123
|
+
}
|
|
124
|
+
export interface RetrieveUserQuotaSummaryResponse {
|
|
125
|
+
groups: RetrieveUserQuotaSummaryGroup[];
|
|
126
|
+
description?: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Aggregate a retrieveUserQuotaSummary response into a QuotaSummary.
|
|
130
|
+
*
|
|
131
|
+
* Each RUQS group maps to a pool via bucketId prefix. Within a pool,
|
|
132
|
+
* windows are stored shortest-first (5h before weekly, etc.). The pool's
|
|
133
|
+
* `remainingFraction`/`resetTime` derive from the most-constrained window.
|
|
134
|
+
*/
|
|
135
|
+
export declare function aggregateQuotaSummary(response: RetrieveUserQuotaSummaryResponse): QuotaSummary;
|
|
136
|
+
export interface FetchQuotaSummaryOptions {
|
|
137
|
+
accessToken: string;
|
|
138
|
+
/** Managed project ID. Falls back to regular projectId on 403. */
|
|
139
|
+
managedProjectId?: string;
|
|
140
|
+
/** Regular project ID — used as fallback when managedProjectId is missing or returns 403. */
|
|
141
|
+
projectId?: string;
|
|
142
|
+
endpoints: readonly string[];
|
|
143
|
+
timeoutMs?: number;
|
|
144
|
+
userAgent?: string;
|
|
145
|
+
fetchVia?: (url: string, options: RequestInit, extra: {
|
|
146
|
+
timeoutMs: number;
|
|
147
|
+
signal?: AbortSignal | null;
|
|
148
|
+
}) => Promise<Response>;
|
|
149
|
+
}
|
|
150
|
+
export interface FetchQuotaSummaryResult {
|
|
151
|
+
summary: RetrieveUserQuotaSummaryResponse;
|
|
152
|
+
/** True when the result came from the legacy fallback path. */
|
|
153
|
+
fellBackToLegacy?: boolean;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Fetch the windowed quota summary via `retrieveUserQuotaSummary`.
|
|
157
|
+
*
|
|
158
|
+
* Uses the same transport/UA/timeout conventions as `fetchAvailableModels`.
|
|
159
|
+
* On a 429 or 5xx against one endpoint, falls through to the next entry
|
|
160
|
+
* in `options.endpoints` (matching the legacy fetchers' failover
|
|
161
|
+
* convention). On 403 with the managedProjectId, retries with the
|
|
162
|
+
* regular projectId. If that also 403s, falls back to
|
|
163
|
+
* `fetchAvailableModels` so quota never goes dark. On missing
|
|
164
|
+
* managedProjectId, tries projectId first.
|
|
165
|
+
*/
|
|
166
|
+
export declare function fetchQuotaSummary(options: FetchQuotaSummaryOptions): Promise<FetchQuotaSummaryResult>;
|
|
111
167
|
/**
|
|
112
168
|
* Aggregate Gemini CLI quota buckets into a summary.
|
|
113
169
|
*/
|
|
@@ -135,6 +191,13 @@ export interface FetchGeminiCliQuotaOptions {
|
|
|
135
191
|
endpoints: readonly string[];
|
|
136
192
|
timeoutMs?: number;
|
|
137
193
|
userAgent?: string;
|
|
194
|
+
/**
|
|
195
|
+
* Optional transport override. Production callers omit this; the e2e
|
|
196
|
+
* harness and tests inject a stub. Mirrors `fetchQuotaSummary`'s seam.
|
|
197
|
+
*/
|
|
198
|
+
fetchVia?: (url: string, options: RequestInit, extra: {
|
|
199
|
+
timeoutMs: number;
|
|
200
|
+
}) => Promise<Response>;
|
|
138
201
|
}
|
|
139
202
|
export declare function fetchGeminiCliQuota(options: FetchGeminiCliQuotaOptions): Promise<RetrieveUserQuotaResponse>;
|
|
140
203
|
//# sourceMappingURL=quota-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-manager.d.ts","sourceRoot":"","sources":["../src/quota-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAK3D,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EAErB,UAAU,EAEV,YAAY,
|
|
1
|
+
{"version":3,"file":"quota-manager.d.ts","sourceRoot":"","sources":["../src/quota-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/quota-manager.js
CHANGED
|
@@ -17,7 +17,6 @@ import { fetchWithActiveTimeout } from "./fetch-timeout.js";
|
|
|
17
17
|
import { buildAntigravityHarnessUserAgent } from "./fingerprint.js";
|
|
18
18
|
import { createLogger } from "./logger.js";
|
|
19
19
|
import { getQuotaGroupForModel } from "./model-registry.js";
|
|
20
|
-
import { getModelFamily } from "./transform/model-resolver.js";
|
|
21
20
|
const log = createLogger('quota-manager');
|
|
22
21
|
export const QUOTA_MANAGER_DEFAULT_BASE_BACKOFF_MS = 30_000;
|
|
23
22
|
export const QUOTA_MANAGER_DEFAULT_MAX_BACKOFF_MS = 10 * 60 * 1000;
|
|
@@ -271,15 +270,19 @@ export function classifyQuotaGroup(modelName, displayName) {
|
|
|
271
270
|
return registryGroup;
|
|
272
271
|
}
|
|
273
272
|
const combined = `${modelName} ${displayName ?? ''}`.toLowerCase();
|
|
274
|
-
|
|
275
|
-
|
|
273
|
+
// Check Claude / GPT-OSS substrings BEFORE the `gemini` substring so a
|
|
274
|
+
// `gemini-claude-*` alias (Claude route exposed under a `gemini-`
|
|
275
|
+
// namespace) attributes to the non-gemini pool rather than the gemini
|
|
276
|
+
// pool. `tab_*` autocomplete IDs are already classified by
|
|
277
|
+
// `getQuotaGroupForModel` above (the registry/prefix branches), so
|
|
278
|
+
// this fallback only runs for genuinely-unrecognised model strings.
|
|
279
|
+
if (combined.includes('claude') || combined.includes('gpt-oss')) {
|
|
280
|
+
return 'non-gemini';
|
|
276
281
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
return null;
|
|
282
|
+
if (combined.includes('gemini')) {
|
|
283
|
+
return 'gemini';
|
|
280
284
|
}
|
|
281
|
-
|
|
282
|
-
return family === 'gemini-flash' ? 'gemini-flash' : 'gemini-pro';
|
|
285
|
+
return null;
|
|
283
286
|
}
|
|
284
287
|
function normalizeRemainingFraction(value) {
|
|
285
288
|
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
@@ -360,6 +363,224 @@ export function aggregateQuota(models) {
|
|
|
360
363
|
perModel.sort((a, b) => a.modelId.localeCompare(b.modelId));
|
|
361
364
|
return { groups, perModel, modelCount: totalCount };
|
|
362
365
|
}
|
|
366
|
+
/**
|
|
367
|
+
* Derive the most-constrained window from a set of window entries.
|
|
368
|
+
* Returns the entry with the smallest `remainingFraction` — this is the
|
|
369
|
+
* binding constraint for the pool. `resetTime` comes from the same window.
|
|
370
|
+
* Returns `undefined` when there are no windows.
|
|
371
|
+
*/
|
|
372
|
+
function mostConstrainedWindow(windows) {
|
|
373
|
+
if (windows.length === 0)
|
|
374
|
+
return undefined;
|
|
375
|
+
let best = windows[0];
|
|
376
|
+
for (let i = 1; i < windows.length; i++) {
|
|
377
|
+
if (windows[i].remainingFraction < best.remainingFraction) {
|
|
378
|
+
best = windows[i];
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return {
|
|
382
|
+
remainingFraction: best.remainingFraction,
|
|
383
|
+
resetTime: best.resetTime,
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Map a retrieveUserQuotaSummary bucketId prefix to our internal pool.
|
|
388
|
+
*
|
|
389
|
+
* bucketId prefixes:
|
|
390
|
+
* `gemini-*` → gemini
|
|
391
|
+
* `3p-*` → non-gemini
|
|
392
|
+
*/
|
|
393
|
+
function poolForBucketId(bucketId) {
|
|
394
|
+
if (bucketId.startsWith('gemini-'))
|
|
395
|
+
return 'gemini';
|
|
396
|
+
if (bucketId.startsWith('3p-'))
|
|
397
|
+
return 'non-gemini';
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Count models listed in a group's description. The description is
|
|
402
|
+
* typically a comma-separated list of model names ("Claude Sonnet 4.6,
|
|
403
|
+
* Gemini 3.1 Pro, Flash") often prefixed with a label like
|
|
404
|
+
* "Models within this group:". Strip the prefix before splitting so
|
|
405
|
+
* the label itself is not counted as a model. Returns 0 for shapes
|
|
406
|
+
* that don't match a comma-separated list.
|
|
407
|
+
*/
|
|
408
|
+
function parseDescriptionModelCount(description) {
|
|
409
|
+
const prefixMatch = description.match(/^[^:]+:\s*/);
|
|
410
|
+
const payload = prefixMatch
|
|
411
|
+
? description.slice(prefixMatch[0].length)
|
|
412
|
+
: description;
|
|
413
|
+
if (!payload)
|
|
414
|
+
return 0;
|
|
415
|
+
const entries = payload
|
|
416
|
+
.split(',')
|
|
417
|
+
.map((entry) => entry.trim())
|
|
418
|
+
.filter((entry) => entry.length > 0);
|
|
419
|
+
return entries.length;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Map a quota window kind to its duration in milliseconds for
|
|
423
|
+
* deterministic sort order. Unknown windows get MAX_SAFE_INTEGER so
|
|
424
|
+
* they sort last without random reordering across runs.
|
|
425
|
+
*/
|
|
426
|
+
function windowDurationMs(window) {
|
|
427
|
+
switch (window) {
|
|
428
|
+
case '5h':
|
|
429
|
+
return 5 * 60 * 60 * 1000;
|
|
430
|
+
case 'weekly':
|
|
431
|
+
return 7 * 24 * 60 * 60 * 1000;
|
|
432
|
+
default:
|
|
433
|
+
return Number.MAX_SAFE_INTEGER;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Aggregate a retrieveUserQuotaSummary response into a QuotaSummary.
|
|
438
|
+
*
|
|
439
|
+
* Each RUQS group maps to a pool via bucketId prefix. Within a pool,
|
|
440
|
+
* windows are stored shortest-first (5h before weekly, etc.). The pool's
|
|
441
|
+
* `remainingFraction`/`resetTime` derive from the most-constrained window.
|
|
442
|
+
*/
|
|
443
|
+
export function aggregateQuotaSummary(response) {
|
|
444
|
+
const groups = {};
|
|
445
|
+
let totalCount = 0;
|
|
446
|
+
for (const group of response.groups) {
|
|
447
|
+
const windows = [];
|
|
448
|
+
for (const bucket of group.buckets) {
|
|
449
|
+
const pool = poolForBucketId(bucket.bucketId);
|
|
450
|
+
if (!pool)
|
|
451
|
+
continue;
|
|
452
|
+
windows.push({
|
|
453
|
+
window: bucket.window,
|
|
454
|
+
remainingFraction: normalizeRemainingFraction(bucket.remainingFraction),
|
|
455
|
+
resetTime: bucket.resetTime,
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
if (windows.length === 0)
|
|
459
|
+
continue;
|
|
460
|
+
// Order: shortest window first so the binding 5h window leads visually.
|
|
461
|
+
windows.sort((a, b) => windowDurationMs(a.window) - windowDurationMs(b.window));
|
|
462
|
+
const constrained = mostConstrainedWindow(windows);
|
|
463
|
+
// Pick the first RECOGNIZED bucket for pool derivation. Older
|
|
464
|
+
// servers may prepend a junk bucket (system noise, a non-standard
|
|
465
|
+
// prefix like `claude-3p-`) whose bucketId doesn't match any of
|
|
466
|
+
// our pool prefixes; the legacy poolForBucketId derivation used
|
|
467
|
+
// group.buckets[0] unconditionally, which silently dropped the
|
|
468
|
+
// whole group when an unknown prefix led the array.
|
|
469
|
+
const recognizedBucket = group.buckets.find((bucket) => poolForBucketId(bucket.bucketId));
|
|
470
|
+
if (!recognizedBucket)
|
|
471
|
+
continue;
|
|
472
|
+
const pool = poolForBucketId(recognizedBucket.bucketId);
|
|
473
|
+
if (!pool || !constrained)
|
|
474
|
+
continue;
|
|
475
|
+
// The description is a list of model names comma-separated, often
|
|
476
|
+
// prefixed with a label like "Models within this group:". Strip
|
|
477
|
+
// the prefix before splitting so it doesn't count as a model.
|
|
478
|
+
const modelCount = group.description
|
|
479
|
+
? parseDescriptionModelCount(group.description)
|
|
480
|
+
: 0;
|
|
481
|
+
groups[pool] = {
|
|
482
|
+
remainingFraction: constrained.remainingFraction,
|
|
483
|
+
resetTime: constrained.resetTime,
|
|
484
|
+
modelCount,
|
|
485
|
+
windows,
|
|
486
|
+
};
|
|
487
|
+
totalCount += modelCount;
|
|
488
|
+
}
|
|
489
|
+
return { groups, modelCount: totalCount };
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Fetch the windowed quota summary via `retrieveUserQuotaSummary`.
|
|
493
|
+
*
|
|
494
|
+
* Uses the same transport/UA/timeout conventions as `fetchAvailableModels`.
|
|
495
|
+
* On a 429 or 5xx against one endpoint, falls through to the next entry
|
|
496
|
+
* in `options.endpoints` (matching the legacy fetchers' failover
|
|
497
|
+
* convention). On 403 with the managedProjectId, retries with the
|
|
498
|
+
* regular projectId. If that also 403s, falls back to
|
|
499
|
+
* `fetchAvailableModels` so quota never goes dark. On missing
|
|
500
|
+
* managedProjectId, tries projectId first.
|
|
501
|
+
*/
|
|
502
|
+
export async function fetchQuotaSummary(options) {
|
|
503
|
+
const timeoutMs = options.timeoutMs ?? QUOTA_MANAGER_DEFAULT_TIMEOUT_MS;
|
|
504
|
+
const userAgent = options.userAgent ?? buildAntigravityHarnessUserAgent();
|
|
505
|
+
const transport = options.fetchVia ?? defaultTransport;
|
|
506
|
+
const errors = [];
|
|
507
|
+
if (options.endpoints.length === 0) {
|
|
508
|
+
throw new Error('No endpoints configured for fetchQuotaSummary');
|
|
509
|
+
}
|
|
510
|
+
const tryBody = async (endpoint, projectId) => {
|
|
511
|
+
const body = { project: projectId };
|
|
512
|
+
try {
|
|
513
|
+
const response = await transport(`${endpoint}/v1internal:retrieveUserQuotaSummary`, {
|
|
514
|
+
method: 'POST',
|
|
515
|
+
headers: {
|
|
516
|
+
'User-Agent': userAgent,
|
|
517
|
+
Authorization: `Bearer ${options.accessToken}`,
|
|
518
|
+
'Content-Type': 'application/json',
|
|
519
|
+
'Accept-Encoding': 'gzip',
|
|
520
|
+
},
|
|
521
|
+
body: JSON.stringify(body),
|
|
522
|
+
}, { timeoutMs });
|
|
523
|
+
if (response.ok) {
|
|
524
|
+
return {
|
|
525
|
+
ok: true,
|
|
526
|
+
summary: (await response.json()),
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
const status = response.status;
|
|
530
|
+
if (status === 403) {
|
|
531
|
+
errors.push(`retrieveUserQuotaSummary 403 at ${endpoint} (project=${projectId.slice(0, 12)}…)`);
|
|
532
|
+
return { ok: false, reason: '403' };
|
|
533
|
+
}
|
|
534
|
+
if (status === 429 || status >= 500) {
|
|
535
|
+
const message = await response.text().catch(() => '');
|
|
536
|
+
errors.push(`retrieveUserQuotaSummary ${status} at ${endpoint}${message ? `: ${message.trim().slice(0, 200)}` : ''}`);
|
|
537
|
+
// Endpoint failover: the caller may have multiple endpoints;
|
|
538
|
+
// continue to the next one with the same project ID.
|
|
539
|
+
return { ok: false, reason: 'transient' };
|
|
540
|
+
}
|
|
541
|
+
const message = await response.text().catch(() => '');
|
|
542
|
+
errors.push(`retrieveUserQuotaSummary ${status} at ${endpoint}${message ? `: ${message.trim().slice(0, 200)}` : ''}`);
|
|
543
|
+
return { ok: false, reason: 'transient' };
|
|
544
|
+
}
|
|
545
|
+
catch (error) {
|
|
546
|
+
errors.push(`retrieveUserQuotaSummary network error at ${endpoint}: ${error instanceof Error ? error.message : String(error)}`);
|
|
547
|
+
return { ok: false, reason: 'transient' };
|
|
548
|
+
}
|
|
549
|
+
};
|
|
550
|
+
// Try managedProjectId first, then projectId, then legacy fallback.
|
|
551
|
+
// For each project, iterate the endpoint list so a 500/429 on the
|
|
552
|
+
// primary endpoint falls through to the next entry.
|
|
553
|
+
const primary = options.managedProjectId ?? options.projectId;
|
|
554
|
+
let primaryGot403 = false;
|
|
555
|
+
if (primary) {
|
|
556
|
+
for (const endpoint of options.endpoints) {
|
|
557
|
+
const result = await tryBody(endpoint, primary);
|
|
558
|
+
if (result.ok)
|
|
559
|
+
return { summary: result.summary };
|
|
560
|
+
if (result.reason === '403')
|
|
561
|
+
primaryGot403 = true;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
// Retry with the regular projectId ONLY when the managed-project attempt
|
|
565
|
+
// got a 403 (i.e. the managed project does not own the user). A transient
|
|
566
|
+
// failure (429, 5xx, network) must NOT fall through here — the regular
|
|
567
|
+
// projectId could return a different project's quota data.
|
|
568
|
+
const fallbackId = primaryGot403 &&
|
|
569
|
+
options.managedProjectId &&
|
|
570
|
+
options.projectId &&
|
|
571
|
+
options.managedProjectId !== options.projectId
|
|
572
|
+
? options.projectId
|
|
573
|
+
: undefined;
|
|
574
|
+
if (fallbackId) {
|
|
575
|
+
for (const endpoint of options.endpoints) {
|
|
576
|
+
const result = await tryBody(endpoint, fallbackId);
|
|
577
|
+
if (result.ok)
|
|
578
|
+
return { summary: result.summary };
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
// Give up — the caller should fall back to fetchAvailableModels.
|
|
582
|
+
throw new Error(errors.join('; ') || 'fetchQuotaSummary failed: no project ID available');
|
|
583
|
+
}
|
|
363
584
|
/**
|
|
364
585
|
* Aggregate Gemini CLI quota buckets into a summary.
|
|
365
586
|
*/
|
|
@@ -450,10 +671,12 @@ export async function fetchAvailableModels(options) {
|
|
|
450
671
|
export async function fetchGeminiCliQuota(options) {
|
|
451
672
|
const timeoutMs = options.timeoutMs ?? QUOTA_MANAGER_DEFAULT_TIMEOUT_MS;
|
|
452
673
|
const userAgent = options.userAgent ?? buildAntigravityHarnessUserAgent();
|
|
674
|
+
const transport = options.fetchVia ?? defaultTransport;
|
|
675
|
+
const errors = [];
|
|
453
676
|
for (const endpoint of options.endpoints) {
|
|
454
677
|
const body = options.projectId ? { project: options.projectId } : {};
|
|
455
678
|
try {
|
|
456
|
-
const response = await
|
|
679
|
+
const response = await transport(`${endpoint}/v1internal:retrieveUserQuota`, {
|
|
457
680
|
method: 'POST',
|
|
458
681
|
headers: {
|
|
459
682
|
Authorization: `Bearer ${options.accessToken}`,
|
|
@@ -467,11 +690,25 @@ export async function fetchGeminiCliQuota(options) {
|
|
|
467
690
|
}
|
|
468
691
|
const status = response.status;
|
|
469
692
|
if (status === 429 || status >= 500) {
|
|
693
|
+
errors.push(`fetchGeminiCliQuota ${status} at ${endpoint}`);
|
|
470
694
|
continue;
|
|
471
695
|
}
|
|
696
|
+
// Non-retryable server response (e.g. 403) — treat as no CLI quota.
|
|
472
697
|
return { buckets: [] };
|
|
473
698
|
}
|
|
474
|
-
catch {
|
|
699
|
+
catch (error) {
|
|
700
|
+
// Transport-level failure (network abort, DNS, timeout). Collect the
|
|
701
|
+
// error and try the next endpoint; if all endpoints fail, throw so
|
|
702
|
+
// the caller can distinguish a transient network failure from an
|
|
703
|
+
// authoritative 'no CLI quota configured' response.
|
|
704
|
+
errors.push(error instanceof Error ? error.message : String(error));
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
// All endpoints produced transport-level errors — propagate so the
|
|
708
|
+
// outer caller (quota.ts .catch) can surface the real failure reason
|
|
709
|
+
// rather than the generic 'No Gemini CLI quota available' message.
|
|
710
|
+
if (errors.length > 0) {
|
|
711
|
+
throw new Error(errors.join('; ') || 'fetchGeminiCliQuota failed');
|
|
475
712
|
}
|
|
476
713
|
return { buckets: [] };
|
|
477
714
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-manager.js","sourceRoot":"","sources":["../src/quota-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quota-manager.js","sourceRoot":"","sources":["../src/quota-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/quota-types.d.ts
CHANGED
|
@@ -7,12 +7,31 @@
|
|
|
7
7
|
* migration on the persisted account pool.
|
|
8
8
|
*/
|
|
9
9
|
import type { AccountMetadataV3 } from './account-types.ts';
|
|
10
|
-
export type QuotaGroup = '
|
|
10
|
+
export type QuotaGroup = 'gemini' | 'non-gemini';
|
|
11
|
+
export type QuotaWindow = 'weekly' | '5h';
|
|
12
|
+
export interface QuotaWindowEntry {
|
|
13
|
+
window: QuotaWindow;
|
|
14
|
+
remainingFraction: number;
|
|
15
|
+
resetTime: string;
|
|
16
|
+
}
|
|
11
17
|
export interface QuotaGroupSummary {
|
|
18
|
+
/** Most-constrained window's remainingFraction (derived from `windows`). */
|
|
12
19
|
remainingFraction?: number;
|
|
20
|
+
/** Most-constrained window's resetTime (derived from `windows`). */
|
|
13
21
|
resetTime?: string;
|
|
14
22
|
modelCount: number;
|
|
23
|
+
/**
|
|
24
|
+
* Per-window breakdown from the retrieveUserQuotaSummary response.
|
|
25
|
+
* shortest-first (5h before weekly, etc.). Omitted in legacy cached shapes —
|
|
26
|
+
* consumers treat a single remainingFraction as one unlabeled window.
|
|
27
|
+
*/
|
|
28
|
+
windows?: QuotaWindowEntry[];
|
|
15
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Migrate pre-pool quota keys while loading persisted account data. Current
|
|
32
|
+
* keys pass through unchanged, making this safe for every storage read.
|
|
33
|
+
*/
|
|
34
|
+
export declare function normalizeLegacyCachedQuota(raw: AccountMetadataV3['cachedQuota']): Partial<Record<QuotaGroup, QuotaGroupSummary>> | undefined;
|
|
16
35
|
export interface PerModelQuotaEntry {
|
|
17
36
|
modelId: string;
|
|
18
37
|
displayName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-types.d.ts","sourceRoot":"","sources":["../src/quota-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"quota-types.d.ts","sourceRoot":"","sources":["../src/quota-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEhD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAA;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,iBAAiB,CAAC,aAAa,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,GAAG,SAAS,CAsD5D;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,CAAA;AAE5D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,kBAAkB,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,cAAc,CAAC,EAAE,iBAAiB,CAAA;CACnC"}
|
package/dist/quota-types.js
CHANGED
|
@@ -6,5 +6,45 @@
|
|
|
6
6
|
* separate from `account-types.ts` so quota evolution does not force a
|
|
7
7
|
* migration on the persisted account pool.
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Migrate pre-pool quota keys while loading persisted account data. Current
|
|
11
|
+
* keys pass through unchanged, making this safe for every storage read.
|
|
12
|
+
*/
|
|
13
|
+
export function normalizeLegacyCachedQuota(raw) {
|
|
14
|
+
if (!raw)
|
|
15
|
+
return raw;
|
|
16
|
+
const hasLegacy = 'gemini-pro' in raw ||
|
|
17
|
+
'gemini-flash' in raw ||
|
|
18
|
+
'claude' in raw ||
|
|
19
|
+
'gpt-oss' in raw;
|
|
20
|
+
if (!hasLegacy)
|
|
21
|
+
return raw;
|
|
22
|
+
const earlierResetTime = (a, b) => {
|
|
23
|
+
if (!a)
|
|
24
|
+
return b;
|
|
25
|
+
if (!b)
|
|
26
|
+
return a;
|
|
27
|
+
return a < b ? a : b;
|
|
28
|
+
};
|
|
29
|
+
const minFraction = (a, b) => {
|
|
30
|
+
if (!a)
|
|
31
|
+
return b;
|
|
32
|
+
if (!b)
|
|
33
|
+
return a;
|
|
34
|
+
const fa = a.remainingFraction ?? 1;
|
|
35
|
+
const fb = b.remainingFraction ?? 1;
|
|
36
|
+
const winner = fa <= fb ? a : b;
|
|
37
|
+
const loser = fa <= fb ? b : a;
|
|
38
|
+
return {
|
|
39
|
+
...winner,
|
|
40
|
+
resetTime: earlierResetTime(winner.resetTime, loser.resetTime),
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
const gemini = minFraction(raw.gemini, minFraction(raw['gemini-pro'], raw['gemini-flash']));
|
|
44
|
+
const nonGemini = minFraction(raw['non-gemini'], minFraction(raw.claude, raw['gpt-oss']));
|
|
45
|
+
return {
|
|
46
|
+
...(gemini !== undefined ? { gemini } : {}),
|
|
47
|
+
...(nonGemini !== undefined ? { 'non-gemini': nonGemini } : {}),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
10
50
|
//# sourceMappingURL=quota-types.js.map
|
package/dist/quota-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-types.js","sourceRoot":"","sources":["../src/quota-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
1
|
+
{"version":3,"file":"quota-types.js","sourceRoot":"","sources":["../src/quota-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4BH;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,GAAqC;IAErC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IAEpB,MAAM,SAAS,GACb,YAAY,IAAI,GAAG;QACnB,cAAc,IAAI,GAAG;QACrB,QAAQ,IAAI,GAAG;QACf,SAAS,IAAI,GAAG,CAAA;IAClB,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAA;IAE1B,MAAM,gBAAgB,GAAG,CACvB,CAAqB,EACrB,CAAqB,EACD,EAAE;QACtB,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;QAChB,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;QAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAClB,CAAgC,EAChC,CAAgC,EACD,EAAE;QACjC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;QAChB,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAA;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO;YACL,GAAG,MAAM;YACT,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;SAC/D,CAAA;IACH,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,WAAW,CACxB,GAAG,CAAC,MAAuC,EAC3C,WAAW,CACT,GAAG,CAAC,YAAY,CAAkC,EAClD,GAAG,CAAC,cAAc,CAAkC,CACrD,CACF,CAAA;IACD,MAAM,SAAS,GAAG,WAAW,CAC3B,GAAG,CAAC,YAAY,CAAkC,EAClD,WAAW,CACT,GAAG,CAAC,MAAuC,EAC3C,GAAG,CAAC,SAAS,CAAkC,CAChD,CACF,CAAA;IAED,OAAO;QACL,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-resolver.d.ts","sourceRoot":"","sources":["../../src/transform/model-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"model-resolver.d.ts","sourceRoot":"","sources":["../../src/transform/model-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EAEd,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,+CAK3B,CAAA;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAyB,CAAA;AA8G1E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAkMf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GACZ,QAAQ,GAAG,cAAc,GAAG,YAAY,CAS1C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAClC;AAYD;;;;;;0EAM0E;AAC1E,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,aAAa,GAAG,YAAY,GACxC,aAAa,CAiEf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,aAAa,GAC5B,aAAa,CAuDf"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Resolves model names with tier suffixes (e.g., gemini-3-pro-high, claude-opus-4-6-thinking-low)
|
|
5
5
|
* to their actual API model names and corresponding thinking configurations.
|
|
6
6
|
*/
|
|
7
|
-
import { getGemini35FlashAntigravityModel, getGemini35FlashGeminiCliFallbackModel, getGemini36FlashAntigravityModel, getResolverAliasMap, } from "../model-registry.js";
|
|
7
|
+
import { getGemini35FlashAntigravityModel, getGemini35FlashGeminiCliFallbackModel, getGemini36FlashAntigravityModel, getGemini37FlashAntigravityModel, getResolverAliasMap, } from "../model-registry.js";
|
|
8
8
|
/**
|
|
9
9
|
* Thinking tier budgets by model family.
|
|
10
10
|
* Claude and Gemini 2.5 Pro use numeric budgets.
|
|
@@ -115,6 +115,9 @@ function getAgyGeminiFlashThinkingBudget(tier) {
|
|
|
115
115
|
return 4000;
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
+
function getAgyGemini37FlashThinkingBudget(tier) {
|
|
119
|
+
return tier === 'high' ? -1 : getAgyGeminiFlashThinkingBudget(tier);
|
|
120
|
+
}
|
|
118
121
|
function getAgyGemini31ProModel(tier) {
|
|
119
122
|
return tier === 'high' ? 'gemini-pro-agent' : 'gemini-3.1-pro-low';
|
|
120
123
|
}
|
|
@@ -161,13 +164,14 @@ export function resolveModelWithTier(requestedModel, options = {}) {
|
|
|
161
164
|
const isGemini3 = modelWithoutQuota.toLowerCase().startsWith('gemini-3');
|
|
162
165
|
const skipAlias = isAntigravity && isGemini3;
|
|
163
166
|
// For older Antigravity Gemini 3 models without explicit tier, append the
|
|
164
|
-
// tier to the model id. Gemini 3.5 and 3.
|
|
165
|
-
// with numeric thinking budgets instead.
|
|
167
|
+
// tier to the model id. Gemini 3.5, 3.6, and 3.7 Flash use live-catalog
|
|
168
|
+
// route maps with numeric thinking budgets instead.
|
|
166
169
|
const isGemini3Pro = isGemini3ProModel(modelWithoutQuota);
|
|
167
170
|
const isGemini3Flash = isGemini3FlashModel(modelWithoutQuota);
|
|
168
171
|
const isGemini31Pro = /^gemini-3\.1-pro/i.test(baseName);
|
|
169
172
|
const isGemini35Flash = /^gemini-3\.5-flash/i.test(baseName);
|
|
170
173
|
const isGemini36Flash = /^gemini-3\.6-flash/i.test(baseName);
|
|
174
|
+
const isGemini37Flash = /^gemini-3\.7-flash/i.test(baseName);
|
|
171
175
|
const isGptOss120b = /^gpt-oss-120b(?:-medium)?$/i.test(baseName);
|
|
172
176
|
if (isGemini31Pro && quotaPreference === 'antigravity') {
|
|
173
177
|
return {
|
|
@@ -199,6 +203,16 @@ export function resolveModelWithTier(requestedModel, options = {}) {
|
|
|
199
203
|
explicitQuota,
|
|
200
204
|
};
|
|
201
205
|
}
|
|
206
|
+
if (isGemini37Flash && quotaPreference === 'antigravity') {
|
|
207
|
+
return {
|
|
208
|
+
actualModel: getGemini37FlashAntigravityModel(tier ?? 'medium'),
|
|
209
|
+
thinkingBudget: getAgyGemini37FlashThinkingBudget(tier),
|
|
210
|
+
tier: tier ?? 'medium',
|
|
211
|
+
isThinkingModel: true,
|
|
212
|
+
quotaPreference,
|
|
213
|
+
explicitQuota,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
202
216
|
if (isGptOss120b && quotaPreference === 'antigravity') {
|
|
203
217
|
return {
|
|
204
218
|
actualModel: 'gpt-oss-120b-medium',
|