@jsonstudio/rcc 0.89.1491 → 0.89.1502

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 (84) hide show
  1. package/configsamples/config.json +4 -12
  2. package/dist/build-info.js +2 -2
  3. package/dist/cli/commands/init.js +3 -0
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/client/gemini-cli/gemini-cli-protocol-client.js +9 -13
  6. package/dist/client/gemini-cli/gemini-cli-protocol-client.js.map +1 -1
  7. package/dist/commands/oauth.js +20 -5
  8. package/dist/commands/oauth.js.map +1 -1
  9. package/dist/error-handling/quiet-error-handling-center.js +8 -46
  10. package/dist/error-handling/quiet-error-handling-center.js.map +1 -1
  11. package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +2 -4
  12. package/dist/manager/modules/quota/antigravity-quota-manager.js +48 -137
  13. package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -1
  14. package/dist/manager/modules/quota/provider-quota-daemon.events.js +2 -63
  15. package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
  16. package/dist/modules/llmswitch/bridge.js +4 -17
  17. package/dist/modules/llmswitch/bridge.js.map +1 -1
  18. package/dist/modules/llmswitch/core-loader.d.ts +1 -1
  19. package/dist/modules/llmswitch/core-loader.js +3 -15
  20. package/dist/modules/llmswitch/core-loader.js.map +1 -1
  21. package/dist/providers/auth/antigravity-userinfo-helper.d.ts +1 -3
  22. package/dist/providers/auth/antigravity-userinfo-helper.js +7 -41
  23. package/dist/providers/auth/antigravity-userinfo-helper.js.map +1 -1
  24. package/dist/providers/auth/gemini-cli-userinfo-helper.js +3 -3
  25. package/dist/providers/auth/gemini-cli-userinfo-helper.js.map +1 -1
  26. package/dist/providers/auth/oauth-lifecycle.js +175 -79
  27. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  28. package/dist/providers/auth/tokenfile-auth.d.ts +0 -12
  29. package/dist/providers/auth/tokenfile-auth.js +1 -92
  30. package/dist/providers/auth/tokenfile-auth.js.map +1 -1
  31. package/dist/providers/core/config/camoufox-launcher.d.ts +0 -5
  32. package/dist/providers/core/config/camoufox-launcher.js +43 -5
  33. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  34. package/dist/providers/core/config/oauth-flows.js +1 -1
  35. package/dist/providers/core/config/oauth-flows.js.map +1 -1
  36. package/dist/providers/core/config/service-profiles.js +17 -3
  37. package/dist/providers/core/config/service-profiles.js.map +1 -1
  38. package/dist/providers/core/runtime/base-provider.d.ts +5 -0
  39. package/dist/providers/core/runtime/base-provider.js +112 -26
  40. package/dist/providers/core/runtime/base-provider.js.map +1 -1
  41. package/dist/providers/core/runtime/gemini-cli-http-provider.d.ts +1 -3
  42. package/dist/providers/core/runtime/gemini-cli-http-provider.js +71 -370
  43. package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
  44. package/dist/providers/core/runtime/http-transport-provider.d.ts +0 -1
  45. package/dist/providers/core/runtime/http-transport-provider.js +5 -38
  46. package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
  47. package/dist/providers/core/runtime/provider-error-classifier.js +3 -1
  48. package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
  49. package/dist/providers/core/runtime/rate-limit-manager.d.ts +12 -1
  50. package/dist/providers/core/runtime/rate-limit-manager.js +77 -4
  51. package/dist/providers/core/runtime/rate-limit-manager.js.map +1 -1
  52. package/dist/providers/core/strategies/oauth-auth-code-flow.js +10 -4
  53. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  54. package/dist/providers/core/strategies/oauth-device-flow.js +10 -4
  55. package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
  56. package/dist/server/runtime/http-server/executor-pipeline.d.ts +1 -0
  57. package/dist/server/runtime/http-server/executor-provider.d.ts +2 -0
  58. package/dist/server/runtime/http-server/executor-provider.js +46 -0
  59. package/dist/server/runtime/http-server/executor-provider.js.map +1 -1
  60. package/dist/server/runtime/http-server/index.js +13 -55
  61. package/dist/server/runtime/http-server/index.js.map +1 -1
  62. package/dist/server/runtime/http-server/request-executor.js +12 -2
  63. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  64. package/dist/token-daemon/index.d.ts +1 -0
  65. package/dist/token-daemon/index.js +81 -1
  66. package/dist/token-daemon/index.js.map +1 -1
  67. package/package.json +3 -3
  68. package/scripts/run-bg.sh +14 -0
  69. package/scripts/tests/antigravity-codex-sample-pipeline-compare.mjs +221 -0
  70. package/scripts/tests/antigravity-gemini-dryrun-compare.mjs +222 -0
  71. package/scripts/tests/ci-jest.mjs +0 -5
  72. package/scripts/verify-e2e-toolcall.mjs +22 -6
  73. package/dist/runtime/wasm-runtime/wasm-config.d.ts +0 -73
  74. package/dist/runtime/wasm-runtime/wasm-config.js +0 -124
  75. package/dist/runtime/wasm-runtime/wasm-config.js.map +0 -1
  76. package/dist/runtime/wasm-runtime/wasm-loader.d.ts +0 -40
  77. package/dist/runtime/wasm-runtime/wasm-loader.js +0 -62
  78. package/dist/runtime/wasm-runtime/wasm-loader.js.map +0 -1
  79. package/docs/antigravity-gemini-format-cleanup.md +0 -143
  80. package/docs/llms-wasm-migration.md +0 -331
  81. package/docs/llms-wasm-module-boundaries.md +0 -588
  82. package/docs/llms-wasm-replay-baseline.md +0 -171
  83. package/docs/plans/llms-wasm-migration-plan.md +0 -401
  84. package/scripts/antigravity-token-bridge.mjs +0 -283
@@ -116,18 +116,10 @@
116
116
  "apiKey": "YOUR_API_KEY_HERE"
117
117
  },
118
118
  "models": {
119
- "gpt-5.1": {
120
- "maxContext": 256000
121
- },
122
- "gpt-5.1-codex": {
123
- "maxContext": 256000
124
- },
125
- "gpt-5.2-codex": {
126
- "maxContext": 256000
127
- },
128
- "gpt-5.2": {
129
- "maxContext": 256000
130
- }
119
+ "gpt-5.1": {},
120
+ "gpt-5.1-codex": {},
121
+ "gpt-5.2-codex": {},
122
+ "gpt-5.2": {}
131
123
  },
132
124
  "responses": {
133
125
  "process": "chat",
@@ -1,6 +1,6 @@
1
1
  export const buildInfo = {
2
2
  mode: 'release',
3
- version: '0.89.1491',
4
- buildTime: '2026-01-26T16:04:47.060Z'
3
+ version: '0.89.1502',
4
+ buildTime: '2026-01-29T05:13:43.645Z'
5
5
  };
6
6
  //# sourceMappingURL=build-info.js.map
@@ -10,6 +10,9 @@ function buildInteractivePrompt(ctx) {
10
10
  if (typeof ctx.prompt === 'function') {
11
11
  return { prompt: ctx.prompt, close: () => { } };
12
12
  }
13
+ if (process.env.CI === '1' || process.env.JEST_WORKER_ID || process.env.NODE_ENV === 'test') {
14
+ return null;
15
+ }
13
16
  if (!input.isTTY || !output.isTTY) {
14
17
  return null;
15
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,7 @@ export class GeminiCLIProtocolClient {
17
17
  // 注意:Cloud Code Assist 的 request schema 不接受 request.metadata / request.action。
18
18
  // action 仅用于 resolveEndpoint;metadata 不下发到上游。
19
19
  const { model, project, requestId, userAgent, requestType, ...rest } = payload;
20
- const isAntigravity = typeof userAgent === 'string' && userAgent.trim() === 'antigravity';
21
- const payloadRequest = payload && typeof payload.request === 'object'
22
- ? payload.request
23
- : undefined;
20
+ const payloadRequest = payload && typeof payload.request === 'object' ? payload.request : undefined;
24
21
  const body = {};
25
22
  if (typeof model === 'string' && model.length > 0) {
26
23
  body.model = model;
@@ -60,7 +57,7 @@ export class GeminiCLIProtocolClient {
60
57
  sanitizeRequestPayload(finalRequest);
61
58
  body.request = finalRequest;
62
59
  }
63
- else if (payloadRequest) {
60
+ else if (payloadRequest && typeof payloadRequest === 'object') {
64
61
  const finalRequest = { ...payloadRequest };
65
62
  sanitizeRequestPayload(finalRequest);
66
63
  body.request = finalRequest;
@@ -97,16 +94,15 @@ export class GeminiCLIProtocolClient {
97
94
  deleteHeaderInsensitive('conversation_id');
98
95
  const payload = this.extractPayload(_request);
99
96
  const isAntigravity = typeof payload.userAgent === 'string' && payload.userAgent.trim() === 'antigravity';
100
- if (isAntigravity) {
101
- // Antigravity Tools alignment: do not send Gemini CLI header triplet.
102
- deleteHeaderInsensitive('x-goog-api-client');
103
- deleteHeaderInsensitive('client-metadata');
104
- }
105
- else if (!isAntigravity) {
106
- // gcli2api / opencode alignment: keep a stable header triplet for Gemini CLI.
107
- // Always override inbound UA to avoid leaking host/client fingerprints into upstream.
97
+ // gcli2api / opencode alignment: keep a stable header triplet.
98
+ // For antigravity, do not override UA (handled by provider), but still send the triplet.
99
+ if (!isAntigravity) {
108
100
  normalized['User-Agent'] = 'google-api-nodejs-client/9.15.1';
101
+ }
102
+ if (!normalized['X-Goog-Api-Client']) {
109
103
  normalized['X-Goog-Api-Client'] = 'gl-node/22.17.0';
104
+ }
105
+ if (!normalized['Client-Metadata']) {
110
106
  normalized['Client-Metadata'] = 'ideType=IDE_UNSPECIFIED,platform=PLATFORM_UNSPECIFIED,pluginType=GEMINI';
111
107
  }
112
108
  if (!normalized['Accept']) {
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-cli-protocol-client.js","sourceRoot":"","sources":["../../../src/client/gemini-cli/gemini-cli-protocol-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-cli-protocol-client.js","sourceRoot":"","sources":["../../../src/client/gemini-cli/gemini-cli-protocol-client.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,27 @@
1
1
  import { Command } from 'commander';
2
- import { interactiveRefresh } from '../token-daemon/index.js';
2
+ import { interactiveRefresh, validateOAuthTokens } from '../token-daemon/index.js';
3
3
  export function createOauthCommand() {
4
4
  const cmd = new Command('oauth');
5
5
  cmd
6
- .description('Force OAuth re-authentication for a specific token (opens browser / Camoufox when enabled)')
7
- .argument('<selector>', 'Token selector: file basename, full path, or provider id (e.g. "iflow-oauth-1-186.json" or "iflow")')
8
- .action(async (selector) => {
9
- await interactiveRefresh(selector);
6
+ .description('OAuth tools: refresh token or validate tokens without opening a browser')
7
+ .argument('[args...]', 'Usage: "oauth <selector>" or "oauth validate <selector|all> [--json]"')
8
+ .option('--json', 'Output JSON result (only for validate)', false)
9
+ .action(async (args, options) => {
10
+ const list = Array.isArray(args) ? args : [];
11
+ const first = list[0];
12
+ if (!first) {
13
+ cmd.help();
14
+ return;
15
+ }
16
+ if (first === 'validate') {
17
+ const selector = list[1] || 'all';
18
+ const ok = await validateOAuthTokens(selector, Boolean(options?.json));
19
+ if (!ok) {
20
+ process.exit(1);
21
+ }
22
+ return;
23
+ }
24
+ await interactiveRefresh(first);
10
25
  });
11
26
  cmd
12
27
  .command('iflow-auto')
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/commands/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/commands/oauth.ts"],"names":[],"mappings":"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"}
@@ -36,48 +36,6 @@ function asRecord(value) {
36
36
  }
37
37
  return undefined;
38
38
  }
39
- function extractErrorMessage(error) {
40
- if (typeof error === 'string') {
41
- return error;
42
- }
43
- if (error instanceof Error) {
44
- return error.message;
45
- }
46
- const record = asRecord(error);
47
- if (typeof record?.message === 'string') {
48
- return record.message;
49
- }
50
- return 'Unknown error';
51
- }
52
- function extractErrorCode(error) {
53
- if (error && typeof error === 'object' && 'code' in error) {
54
- const code = error.code;
55
- if (typeof code === 'string' && code.trim()) {
56
- return code.trim();
57
- }
58
- }
59
- return undefined;
60
- }
61
- function isQuotaSignal(context) {
62
- if (context.source === 'quota') {
63
- return true;
64
- }
65
- const payload = asRecord(context.context);
66
- const details = asRecord(payload?.details);
67
- if (details?.virtualRouterQuotaDepleted || details?.virtualRouterQuotaRecovery) {
68
- return true;
69
- }
70
- const requestId = extractRequestId(payload);
71
- if (requestId && requestId.startsWith('quota_')) {
72
- return true;
73
- }
74
- const code = typeof details?.code === 'string' ? details.code : extractErrorCode(context.error);
75
- if (code && code.startsWith('QUOTA_')) {
76
- return true;
77
- }
78
- const message = extractErrorMessage(context.error);
79
- return message.startsWith('Quota manager:');
80
- }
81
39
  function extractDetails(context) {
82
40
  const errorObject = asRecord(context.error);
83
41
  const payload = asRecord(context.context);
@@ -130,7 +88,13 @@ export class QuietErrorHandlingCenter extends ErrorHandlingCenter {
130
88
  state.errorCount += 1;
131
89
  const errorId = `error_${state.errorCount}_${Date.now()}`;
132
90
  const details = extractDetails(errorContext);
133
- const message = extractErrorMessage(errorContext.error);
91
+ const message = typeof errorContext.error === 'string'
92
+ ? errorContext.error
93
+ : errorContext.error instanceof Error
94
+ ? errorContext.error.message
95
+ : typeof errorContext.error?.message === 'string'
96
+ ? String(errorContext.error.message)
97
+ : 'Unknown error';
134
98
  const snippet = truncateForConsole(message, 500);
135
99
  const payload = {
136
100
  errorId,
@@ -143,9 +107,7 @@ export class QuietErrorHandlingCenter extends ErrorHandlingCenter {
143
107
  source: errorContext.source,
144
108
  severity: errorContext.severity
145
109
  };
146
- if (!isQuotaSignal(errorContext)) {
147
- console.error('[route-error]', JSON.stringify(payload));
148
- }
110
+ console.error('[route-error]', JSON.stringify(payload));
149
111
  const response = {
150
112
  success: true,
151
113
  message: `Error processed: ${message}`,
@@ -1 +1 @@
1
- {"version":3,"file":"quiet-error-handling-center.js","sourceRoot":"","sources":["../../src/error-handling/quiet-error-handling-center.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quiet-error-handling-center.js","sourceRoot":"","sources":["../../src/error-handling/quiet-error-handling-center.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare class QuotaManagerModule implements ManagerModule {
11
11
  private antigravityTokens;
12
12
  private refreshTimer;
13
13
  private quotaRoutingEnabled;
14
+ private refreshFailures;
15
+ private refreshDisabled;
14
16
  private providerErrorCenter;
15
17
  init(context: ManagerContext): Promise<void>;
16
18
  start(): Promise<void>;
@@ -50,10 +52,6 @@ export declare class QuotaManagerModule implements ManagerModule {
50
52
  private buildAntigravityKey;
51
53
  private extractAntigravityAlias;
52
54
  private computeResetAt;
53
- private readAntigravityTokenMeta;
54
- private resolveQuotaProtectionConfig;
55
- private computeProtectedModels;
56
- private persistProtectedModels;
57
55
  private refreshAllAntigravityQuotas;
58
56
  /**
59
57
  * 每 5 分钟刷新一次 quota(固定间隔)。
@@ -11,6 +11,8 @@ export class QuotaManagerModule {
11
11
  antigravityTokens = new Map();
12
12
  refreshTimer = null;
13
13
  quotaRoutingEnabled = true;
14
+ refreshFailures = 0;
15
+ refreshDisabled = false;
14
16
  providerErrorCenter = null;
15
17
  async init(context) {
16
18
  this.snapshot = this.loadSnapshotFromDisk();
@@ -19,7 +21,13 @@ export class QuotaManagerModule {
19
21
  async start() {
20
22
  // 启动时立即做一次最佳努力刷新,然后根据 token 过期时间和 5 分钟基准动态调度后续刷新。
21
23
  try {
22
- await this.refreshAllAntigravityQuotas();
24
+ const result = await this.refreshAllAntigravityQuotas();
25
+ if (result.attempted > 0 && result.successCount === 0) {
26
+ this.refreshFailures = 1;
27
+ }
28
+ else if (result.successCount > 0) {
29
+ this.refreshFailures = 0;
30
+ }
23
31
  }
24
32
  catch {
25
33
  // ignore startup refresh failures
@@ -42,7 +50,11 @@ export class QuotaManagerModule {
42
50
  async refreshNow() {
43
51
  const refreshedAt = Date.now();
44
52
  try {
45
- await this.refreshAllAntigravityQuotas();
53
+ const result = await this.refreshAllAntigravityQuotas();
54
+ if (result.successCount > 0) {
55
+ this.refreshFailures = 0;
56
+ this.refreshDisabled = false;
57
+ }
46
58
  }
47
59
  catch {
48
60
  // ignore refresh failures
@@ -76,8 +88,7 @@ export class QuotaManagerModule {
76
88
  this.antigravityTokens.set(cleanAlias, {
77
89
  alias: cleanAlias,
78
90
  tokenFile: cleanToken,
79
- apiBase: cleanBase,
80
- protectedModels: this.antigravityTokens.get(cleanAlias)?.protectedModels ?? new Set()
91
+ apiBase: cleanBase
81
92
  });
82
93
  }
83
94
  /**
@@ -88,21 +99,6 @@ export class QuotaManagerModule {
88
99
  if (!aliasId) {
89
100
  return;
90
101
  }
91
- const tokenRegistration = this.antigravityTokens.get(aliasId);
92
- const protectedModels = tokenRegistration?.protectedModels ?? new Set();
93
- const protectionConfig = this.resolveQuotaProtectionConfig();
94
- const nextProtectedModels = this.computeProtectedModels({
95
- current: protectedModels,
96
- quota,
97
- config: protectionConfig
98
- });
99
- if (tokenRegistration && protectionConfig.enabled) {
100
- const updated = this.persistProtectedModels(tokenRegistration.tokenFile, nextProtectedModels);
101
- if (updated) {
102
- tokenRegistration.protectedModels = nextProtectedModels;
103
- this.antigravityTokens.set(aliasId, tokenRegistration);
104
- }
105
- }
106
102
  const now = Date.now();
107
103
  const next = { ...this.snapshot };
108
104
  for (const [modelId, info] of Object.entries(quota.models)) {
@@ -111,9 +107,6 @@ export class QuotaManagerModule {
111
107
  remainingFraction: Number.isFinite(info.remainingFraction) ? info.remainingFraction : null,
112
108
  fetchedAt: quota.fetchedAt
113
109
  };
114
- if (nextProtectedModels.has(modelId)) {
115
- record.remainingFraction = 0;
116
- }
117
110
  const resetAt = this.computeResetAt(info.resetTimeRaw);
118
111
  // Keep resetAt even if it's already in the past so admin UI can inspect drift/staleness.
119
112
  // Routing gate still treats `resetAt <= now` as unknown quota and will block entry.
@@ -194,131 +187,35 @@ export class QuotaManagerModule {
194
187
  return undefined;
195
188
  }
196
189
  }
197
- readAntigravityTokenMeta(filePath) {
198
- try {
199
- const raw = fs.readFileSync(filePath, 'utf8');
200
- const parsed = raw.trim() ? JSON.parse(raw) : {};
201
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
202
- return { disabled: false, proxyDisabled: false, protectedModels: new Set() };
203
- }
204
- const token = parsed;
205
- const disabled = token.disabled === true;
206
- const proxyDisabled = token.proxy_disabled === true || token.proxyDisabled === true;
207
- const list = token.protected_models ?? token.protectedModels;
208
- const models = Array.isArray(list)
209
- ? list
210
- .map((entry) => (typeof entry === 'string' ? entry.trim() : ''))
211
- .filter((entry) => entry.length > 0)
212
- : [];
213
- return { disabled, proxyDisabled, protectedModels: new Set(models) };
214
- }
215
- catch {
216
- return { disabled: false, proxyDisabled: false, protectedModels: new Set() };
217
- }
218
- }
219
- resolveQuotaProtectionConfig() {
220
- const enabledRaw = String(process.env.ROUTECODEX_ANTIGRAVITY_QUOTA_PROTECTION || process.env.RCC_ANTIGRAVITY_QUOTA_PROTECTION || '')
221
- .trim()
222
- .toLowerCase();
223
- const enabled = enabledRaw === '1' || enabledRaw === 'true' || enabledRaw === 'yes';
224
- const thresholdRaw = String(process.env.ROUTECODEX_ANTIGRAVITY_QUOTA_PROTECT_THRESHOLD ||
225
- process.env.RCC_ANTIGRAVITY_QUOTA_PROTECT_THRESHOLD ||
226
- '').trim();
227
- const thresholdPercent = Number.isFinite(Number(thresholdRaw)) ? Number(thresholdRaw) : 10;
228
- const defaultModels = [
229
- 'claude-sonnet-4-5',
230
- 'gemini-3-pro-high',
231
- 'gemini-3-flash',
232
- 'gemini-3-pro-image'
233
- ];
234
- const modelsRaw = String(process.env.ROUTECODEX_ANTIGRAVITY_QUOTA_PROTECT_MODELS || process.env.RCC_ANTIGRAVITY_QUOTA_PROTECT_MODELS || '')
235
- .trim();
236
- const list = modelsRaw
237
- ? modelsRaw.split(',').map((m) => m.trim()).filter(Boolean)
238
- : defaultModels;
239
- return {
240
- enabled,
241
- thresholdPercent: Number.isFinite(thresholdPercent) && thresholdPercent > 0 ? thresholdPercent : 10,
242
- monitoredModels: new Set(list)
243
- };
244
- }
245
- computeProtectedModels(options) {
246
- const { current, quota, config } = options;
247
- if (!config.enabled) {
248
- return new Set(current);
249
- }
250
- const next = new Set();
251
- const monitored = config.monitoredModels;
252
- for (const entry of current) {
253
- if (!monitored.has(entry)) {
254
- next.add(entry);
255
- }
256
- }
257
- for (const modelId of monitored) {
258
- const info = quota.models[modelId];
259
- if (!info) {
260
- continue;
261
- }
262
- const fraction = Number.isFinite(info.remainingFraction) ? info.remainingFraction : NaN;
263
- if (!Number.isFinite(fraction)) {
264
- continue;
265
- }
266
- const percentage = fraction > 1 ? fraction : fraction * 100;
267
- if (percentage <= config.thresholdPercent) {
268
- next.add(modelId);
269
- }
270
- else {
271
- next.delete(modelId);
272
- }
273
- }
274
- return next;
275
- }
276
- persistProtectedModels(tokenFile, models) {
277
- try {
278
- const raw = fs.readFileSync(tokenFile, 'utf8');
279
- const parsed = raw.trim() ? JSON.parse(raw) : {};
280
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
281
- return false;
282
- }
283
- const root = parsed;
284
- const next = Array.from(models);
285
- next.sort();
286
- const existing = Array.isArray(root.protected_models)
287
- ? root.protected_models.map((m) => String(m)).sort()
288
- : [];
289
- const changed = next.length !== existing.length || next.some((value, idx) => value !== existing[idx]);
290
- if (!changed) {
291
- return false;
292
- }
293
- root.protected_models = next;
294
- fs.writeFileSync(tokenFile, `${JSON.stringify(root, null, 2)}\n`, 'utf8');
295
- return true;
296
- }
297
- catch {
298
- return false;
299
- }
300
- }
301
190
  async refreshAllAntigravityQuotas() {
302
191
  await this.syncAntigravityTokensFromDisk();
303
192
  if (this.antigravityTokens.size === 0) {
304
- return;
193
+ return { attempted: 0, successCount: 0, failureCount: 0 };
305
194
  }
195
+ let attempted = 0;
196
+ let successCount = 0;
197
+ let failureCount = 0;
306
198
  for (const { alias, tokenFile, apiBase } of this.antigravityTokens.values()) {
307
199
  try {
308
200
  const accessToken = await loadAntigravityAccessToken(tokenFile);
309
201
  if (!accessToken) {
310
202
  continue;
311
203
  }
204
+ attempted += 1;
312
205
  const snapshot = await fetchAntigravityQuotaSnapshot(apiBase, accessToken);
313
206
  if (!snapshot) {
207
+ failureCount += 1;
314
208
  continue;
315
209
  }
316
210
  this.updateAntigravityQuota(alias, snapshot);
211
+ successCount += 1;
317
212
  }
318
213
  catch {
214
+ failureCount += 1;
319
215
  // 单个 alias 失败不影响其他 alias 的刷新
320
216
  }
321
217
  }
218
+ return { attempted, successCount, failureCount };
322
219
  }
323
220
  /**
324
221
  * 每 5 分钟刷新一次 quota(固定间隔)。
@@ -329,17 +226,36 @@ export class QuotaManagerModule {
329
226
  clearTimeout(this.refreshTimer);
330
227
  this.refreshTimer = null;
331
228
  }
229
+ if (this.refreshDisabled) {
230
+ return;
231
+ }
332
232
  const baseIntervalMs = 5 * 60 * 1000;
333
233
  const delayMs = baseIntervalMs;
334
234
  this.refreshTimer = setTimeout(() => {
335
235
  void this.refreshAllAntigravityQuotas()
236
+ .then((result) => {
237
+ if (result.attempted > 0 && result.successCount === 0) {
238
+ this.refreshFailures += 1;
239
+ if (this.refreshFailures >= 3) {
240
+ this.refreshDisabled = true;
241
+ }
242
+ }
243
+ else if (result.successCount > 0) {
244
+ this.refreshFailures = 0;
245
+ }
246
+ })
336
247
  .catch(() => {
337
- // ignore refresh failure
248
+ this.refreshFailures += 1;
249
+ if (this.refreshFailures >= 3) {
250
+ this.refreshDisabled = true;
251
+ }
338
252
  })
339
253
  .finally(() => {
340
- void this.scheduleNextRefresh().catch(() => {
341
- // ignore reschedule failure
342
- });
254
+ if (!this.refreshDisabled) {
255
+ void this.scheduleNextRefresh().catch(() => {
256
+ // ignore reschedule failure
257
+ });
258
+ }
343
259
  });
344
260
  }, delayMs);
345
261
  this.refreshTimer.unref?.();
@@ -375,15 +291,10 @@ export class QuotaManagerModule {
375
291
  if (legacyAlias) {
376
292
  legacyAliases.push(legacyAlias);
377
293
  }
378
- const tokenMeta = this.readAntigravityTokenMeta(match.filePath);
379
- if (tokenMeta.disabled || tokenMeta.proxyDisabled) {
380
- continue;
381
- }
382
294
  next.set(alias, {
383
295
  alias,
384
296
  tokenFile: match.filePath,
385
- apiBase: base,
386
- protectedModels: tokenMeta.protectedModels
297
+ apiBase: base
387
298
  });
388
299
  }
389
300
  // 若已有显式注册的 alias,保留其覆盖权