@jsonstudio/rcc 0.89.1562 → 0.89.1800

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 (220) hide show
  1. package/README.md +97 -13
  2. package/configsamples/config.json +8 -8
  3. package/configsamples/config.reference.json +1 -1
  4. package/configsamples/provider/crs/config.v1.json +1 -1
  5. package/configsamples/provider/glm/config.v1.json +1 -1
  6. package/configsamples/provider/glm-anthropic/config.v1.json +1 -1
  7. package/configsamples/provider/kimi/config.v1.json +1 -1
  8. package/configsamples/provider/lmstudio/config.v1.json +2 -1
  9. package/configsamples/provider/mimo/config.v1.json +1 -1
  10. package/configsamples/provider/modelscope/config.v1.json +1 -1
  11. package/configsamples/provider/qwen/config.v1.json +1 -1
  12. package/configsamples/provider/tab/config.v1.json +2 -1
  13. package/configsamples/provider/tabglm/config.v1.json +1 -1
  14. package/dist/build-info.js +3 -3
  15. package/dist/build-info.js.map +1 -1
  16. package/dist/cli/commands/config.js +8 -9
  17. package/dist/cli/commands/config.js.map +1 -1
  18. package/dist/cli/commands/restart.d.ts +4 -12
  19. package/dist/cli/commands/restart.js +226 -120
  20. package/dist/cli/commands/restart.js.map +1 -1
  21. package/dist/cli/commands/start.d.ts +1 -0
  22. package/dist/cli/commands/start.js +28 -1
  23. package/dist/cli/commands/start.js.map +1 -1
  24. package/dist/cli/commands/status.js +12 -6
  25. package/dist/cli/commands/status.js.map +1 -1
  26. package/dist/cli/config/init-provider-catalog.js +12 -11
  27. package/dist/cli/config/init-provider-catalog.js.map +1 -1
  28. package/dist/cli.js +3 -14
  29. package/dist/cli.js.map +1 -1
  30. package/dist/client/anthropic/anthropic-protocol-client.d.ts +1 -0
  31. package/dist/client/anthropic/anthropic-protocol-client.js +25 -0
  32. package/dist/client/anthropic/anthropic-protocol-client.js.map +1 -1
  33. package/dist/commands/oauth.js +185 -9
  34. package/dist/commands/oauth.js.map +1 -1
  35. package/dist/commands/token-daemon.js +12 -2
  36. package/dist/commands/token-daemon.js.map +1 -1
  37. package/dist/docs/daemon-admin-ui.html +1242 -234
  38. package/dist/index.js +119 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/manager/index.d.ts +2 -0
  41. package/dist/manager/index.js +39 -2
  42. package/dist/manager/index.js.map +1 -1
  43. package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +29 -5
  44. package/dist/manager/modules/quota/antigravity-quota-manager.js +369 -113
  45. package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -1
  46. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.d.ts +7 -0
  47. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js +61 -0
  48. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js.map +1 -1
  49. package/dist/manager/modules/quota/provider-quota-daemon.d.ts +1 -0
  50. package/dist/manager/modules/quota/provider-quota-daemon.events.js +134 -5
  51. package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
  52. package/dist/manager/modules/quota/provider-quota-daemon.js +19 -13
  53. package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -1
  54. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.d.ts +1 -0
  55. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js +8 -3
  56. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js.map +1 -1
  57. package/dist/manager/modules/token/index.js +2 -2
  58. package/dist/manager/modules/token/index.js.map +1 -1
  59. package/dist/manager/quota/provider-quota-center.d.ts +9 -0
  60. package/dist/manager/quota/provider-quota-center.js +19 -2
  61. package/dist/manager/quota/provider-quota-center.js.map +1 -1
  62. package/dist/modules/llmswitch/bridge.d.ts +33 -1
  63. package/dist/modules/llmswitch/bridge.js +170 -2
  64. package/dist/modules/llmswitch/bridge.js.map +1 -1
  65. package/dist/modules/llmswitch/core-loader.js +64 -11
  66. package/dist/modules/llmswitch/core-loader.js.map +1 -1
  67. package/dist/modules/pipeline/utils/debug-logger.d.ts +1 -0
  68. package/dist/modules/pipeline/utils/debug-logger.js +50 -3
  69. package/dist/modules/pipeline/utils/debug-logger.js.map +1 -1
  70. package/dist/providers/auth/apikey-auth.js +15 -3
  71. package/dist/providers/auth/apikey-auth.js.map +1 -1
  72. package/dist/providers/auth/oauth-lifecycle.d.ts +13 -1
  73. package/dist/providers/auth/oauth-lifecycle.js +346 -45
  74. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  75. package/dist/providers/auth/oauth-repair-cooldown.d.ts +21 -0
  76. package/dist/providers/auth/oauth-repair-cooldown.js +100 -0
  77. package/dist/providers/auth/oauth-repair-cooldown.js.map +1 -0
  78. package/dist/providers/auth/oauth-repair-env.d.ts +1 -0
  79. package/dist/providers/auth/oauth-repair-env.js +79 -0
  80. package/dist/providers/auth/oauth-repair-env.js.map +1 -0
  81. package/dist/providers/auth/qwen-userinfo-helper.d.ts +2 -0
  82. package/dist/providers/auth/qwen-userinfo-helper.js +72 -40
  83. package/dist/providers/auth/qwen-userinfo-helper.js.map +1 -1
  84. package/dist/providers/auth/tokenfile-auth.js +148 -17
  85. package/dist/providers/auth/tokenfile-auth.js.map +1 -1
  86. package/dist/providers/core/api/provider-types.d.ts +10 -0
  87. package/dist/providers/core/config/camoufox-launcher.d.ts +3 -0
  88. package/dist/providers/core/config/camoufox-launcher.js +190 -3
  89. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  90. package/dist/providers/core/config/oauth-flows.js +50 -19
  91. package/dist/providers/core/config/oauth-flows.js.map +1 -1
  92. package/dist/providers/core/config/provider-oauth-configs.js +1 -1
  93. package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
  94. package/dist/providers/core/runtime/gemini-cli-http-provider.d.ts +5 -0
  95. package/dist/providers/core/runtime/gemini-cli-http-provider.js +172 -15
  96. package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
  97. package/dist/providers/core/runtime/gemini-http-provider.d.ts +11 -0
  98. package/dist/providers/core/runtime/gemini-http-provider.js +281 -3
  99. package/dist/providers/core/runtime/gemini-http-provider.js.map +1 -1
  100. package/dist/providers/core/runtime/http-request-executor.js +55 -0
  101. package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
  102. package/dist/providers/core/runtime/http-transport-provider.js +10 -14
  103. package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
  104. package/dist/providers/core/runtime/provider-factory.d.ts +1 -0
  105. package/dist/providers/core/runtime/provider-factory.js +40 -2
  106. package/dist/providers/core/runtime/provider-factory.js.map +1 -1
  107. package/dist/providers/core/strategies/oauth-auth-code-flow.js +45 -2
  108. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  109. package/dist/providers/core/strategies/oauth-device-flow.js +13 -2
  110. package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
  111. package/dist/providers/core/strategies/oauth-refresh-errors.d.ts +1 -0
  112. package/dist/providers/core/strategies/oauth-refresh-errors.js +26 -0
  113. package/dist/providers/core/strategies/oauth-refresh-errors.js.map +1 -0
  114. package/dist/providers/core/utils/snapshot-writer.d.ts +4 -2
  115. package/dist/providers/core/utils/snapshot-writer.js +86 -23
  116. package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
  117. package/dist/scripts/camoufox/launch-auth.mjs +545 -49
  118. package/dist/server/handlers/chat-handler.js +1 -1
  119. package/dist/server/handlers/chat-handler.js.map +1 -1
  120. package/dist/server/handlers/handler-utils.d.ts +1 -0
  121. package/dist/server/handlers/handler-utils.js +231 -3
  122. package/dist/server/handlers/handler-utils.js.map +1 -1
  123. package/dist/server/handlers/messages-handler.js +1 -1
  124. package/dist/server/handlers/messages-handler.js.map +1 -1
  125. package/dist/server/handlers/responses-handler.js +17 -5
  126. package/dist/server/handlers/responses-handler.js.map +1 -1
  127. package/dist/server/handlers/sse-dispatcher.js +10 -1
  128. package/dist/server/handlers/sse-dispatcher.js.map +1 -1
  129. package/dist/server/runtime/http-server/daemon-admin/control-handler.d.ts +3 -0
  130. package/dist/server/runtime/http-server/daemon-admin/control-handler.js +389 -0
  131. package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -0
  132. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +190 -5
  133. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
  134. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +2 -1
  135. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
  136. package/dist/server/runtime/http-server/daemon-admin/quota-handler.js +116 -14
  137. package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
  138. package/dist/server/runtime/http-server/daemon-admin/routing-policy.d.ts +30 -0
  139. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js +133 -0
  140. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js.map +1 -0
  141. package/dist/server/runtime/http-server/daemon-admin/status-handler.js +40 -1
  142. package/dist/server/runtime/http-server/daemon-admin/status-handler.js.map +1 -1
  143. package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +5 -0
  144. package/dist/server/runtime/http-server/daemon-admin-routes.js +3 -0
  145. package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
  146. package/dist/server/runtime/http-server/executor-pipeline.d.ts +10 -0
  147. package/dist/server/runtime/http-server/executor-pipeline.js +6 -0
  148. package/dist/server/runtime/http-server/executor-pipeline.js.map +1 -1
  149. package/dist/server/runtime/http-server/executor-response.js +26 -0
  150. package/dist/server/runtime/http-server/executor-response.js.map +1 -1
  151. package/dist/server/runtime/http-server/hub-shadow-compare.js +41 -3
  152. package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
  153. package/dist/server/runtime/http-server/index.d.ts +9 -0
  154. package/dist/server/runtime/http-server/index.js +337 -91
  155. package/dist/server/runtime/http-server/index.js.map +1 -1
  156. package/dist/server/runtime/http-server/middleware.js +27 -1
  157. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  158. package/dist/server/runtime/http-server/request-executor.js +159 -24
  159. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  160. package/dist/server/runtime/http-server/routes.d.ts +1 -0
  161. package/dist/server/runtime/http-server/routes.js +36 -3
  162. package/dist/server/runtime/http-server/routes.js.map +1 -1
  163. package/dist/server/runtime/http-server/server-id.d.ts +1 -0
  164. package/dist/server/runtime/http-server/server-id.js +18 -0
  165. package/dist/server/runtime/http-server/server-id.js.map +1 -0
  166. package/dist/server/runtime/http-server/stats-manager.d.ts +2 -0
  167. package/dist/server/runtime/http-server/stats-manager.js +63 -7
  168. package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
  169. package/dist/server/runtime/http-server/types.d.ts +2 -0
  170. package/dist/server/utils/stage-logger.js +54 -9
  171. package/dist/server/utils/stage-logger.js.map +1 -1
  172. package/dist/token-daemon/history-store.d.ts +8 -3
  173. package/dist/token-daemon/history-store.js +41 -20
  174. package/dist/token-daemon/history-store.js.map +1 -1
  175. package/dist/token-daemon/index.d.ts +5 -1
  176. package/dist/token-daemon/index.js +191 -11
  177. package/dist/token-daemon/index.js.map +1 -1
  178. package/dist/token-daemon/quota-auth-issue.d.ts +7 -0
  179. package/dist/token-daemon/quota-auth-issue.js +231 -0
  180. package/dist/token-daemon/quota-auth-issue.js.map +1 -0
  181. package/dist/token-daemon/token-daemon.d.ts +2 -0
  182. package/dist/token-daemon/token-daemon.js +177 -14
  183. package/dist/token-daemon/token-daemon.js.map +1 -1
  184. package/dist/token-portal/local-token-portal.js +6 -0
  185. package/dist/token-portal/local-token-portal.js.map +1 -1
  186. package/docs/ANTIGRAVITY_IDE_FORWARD_PROXY.md +61 -0
  187. package/docs/ANTIGRAVITY_THOUGHT_SIGNATURE_BOOTSTRAP_429.md +80 -0
  188. package/docs/CLOCK.md +94 -0
  189. package/docs/DAEMON_CONTROL_PLANE.md +34 -0
  190. package/docs/OAUTH.md +172 -0
  191. package/docs/PROVIDERS_BUILTIN.md +5 -3
  192. package/docs/PROVIDER_TYPES.md +6 -4
  193. package/docs/QUOTA_MANAGER_V3.md +54 -0
  194. package/docs/ROUTING_POLICY_SCHEMA.md +47 -0
  195. package/docs/ROUTING_POLICY_UI.md +11 -0
  196. package/docs/SERVERTOOL_CLOCK_DESIGN.md +56 -25
  197. package/docs/antigravity-routing-contract.md +17 -11
  198. package/docs/config-secrets.md +49 -0
  199. package/docs/daemon-admin-ui.html +1242 -234
  200. package/docs/oauth-authentication-guide.md +4 -0
  201. package/docs/oauth-iflow-implementation.md +4 -0
  202. package/docs/provider-quota-design.md +11 -0
  203. package/docs/providers/antigravity-gemini-provider-compat.md +1 -0
  204. package/docs/providers/antigravity-thought-signature.md +127 -0
  205. package/docs/providers/tabglm-claude-code-compat.md +11 -3
  206. package/docs/refactoring/host-sharedmodule-safe-migration-plan.md +164 -0
  207. package/docs/token-daemon-preview.html +2 -2
  208. package/docs/token-refresh-daemon-plan.md +6 -6
  209. package/package.json +4 -3
  210. package/scripts/antigravity-ide-forward-proxy.mjs +362 -0
  211. package/scripts/backfill-apply-patch-exec-errorsamples.mjs +19 -0
  212. package/scripts/camoufox/launch-auth.mjs +545 -49
  213. package/scripts/ci/repo-sanity.mjs +2 -0
  214. package/scripts/install-global.sh +46 -0
  215. package/scripts/migrate-antigravity-session-signatures-alias.mjs +193 -0
  216. package/scripts/migrate-antigravity-session-signatures.mjs +165 -0
  217. package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +44 -9
  218. package/scripts/tests/ci-jest.mjs +3 -0
  219. package/scripts/verify-client-headers.mjs +33 -5
  220. package/scripts/virtual-router-dryrun.mjs +333 -0
@@ -1,10 +1,12 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { homedir } from 'node:os';
4
+ import fsAsync from 'node:fs/promises';
4
5
  import { fetchAntigravityQuotaSnapshot, loadAntigravityAccessToken } from '../../../providers/core/runtime/antigravity-quota-client.js';
5
6
  import { scanProviderTokenFiles } from '../../../providers/auth/token-scanner/index.js';
6
7
  import { resolveAntigravityApiBase } from '../../../providers/auth/antigravity-userinfo-helper.js';
7
- import { getProviderErrorCenter } from '../../../modules/llmswitch/bridge.js';
8
+ import * as llmsBridge from '../../../modules/llmswitch/bridge.js';
9
+ import { loadProviderQuotaSnapshot } from '../../quota/provider-quota-store.js';
8
10
  export class QuotaManagerModule {
9
11
  id = 'quota';
10
12
  snapshot = {};
@@ -13,34 +15,137 @@ export class QuotaManagerModule {
13
15
  quotaRoutingEnabled = true;
14
16
  refreshFailures = 0;
15
17
  refreshDisabled = false;
16
- providerErrorCenter = null;
18
+ providerErrorUnsub = null;
19
+ providerSuccessUnsub = null;
20
+ coreQuotaManager = null;
21
+ quotaStorePath = null;
22
+ resolveHomeDir() {
23
+ const envHome = typeof process.env.HOME === 'string' ? process.env.HOME.trim() : '';
24
+ if (envHome) {
25
+ return envHome;
26
+ }
27
+ return homedir();
28
+ }
17
29
  async init(context) {
18
30
  this.snapshot = this.loadSnapshotFromDisk();
19
31
  this.quotaRoutingEnabled = context.quotaRoutingEnabled !== false;
32
+ // IMPORTANT: prune persisted quota aliases using current token files on disk.
33
+ // We must not “invent” aliases; admin UI should only show aliases that have a token file.
34
+ // This is cheap (local fs read) and prevents stale entries like antigravity://a1/... lingering forever.
35
+ try {
36
+ await this.syncAntigravityTokensFromDisk();
37
+ }
38
+ catch {
39
+ // best-effort; never block server init
40
+ }
41
+ // Core-owned quota manager: host provides only persistence I/O.
42
+ // When quota routing is enabled, this must be available; otherwise Virtual Router quotaView becomes non-deterministic.
43
+ if (!this.quotaRoutingEnabled) {
44
+ this.coreQuotaManager = null;
45
+ return;
46
+ }
47
+ const store = this.createQuotaStore();
48
+ this.coreQuotaManager = (await llmsBridge.createCoreQuotaManager({ store }));
49
+ const mgrAny = this.coreQuotaManager;
50
+ const missingApis = !mgrAny ||
51
+ typeof mgrAny.getQuotaView !== 'function' ||
52
+ typeof mgrAny.getSnapshot !== 'function' ||
53
+ typeof mgrAny.updateProviderPoolState !== 'function' ||
54
+ typeof mgrAny.resetProvider !== 'function' ||
55
+ typeof mgrAny.recoverProvider !== 'function' ||
56
+ typeof mgrAny.disableProvider !== 'function';
57
+ if (missingApis) {
58
+ const detail = {
59
+ hasMgr: Boolean(mgrAny),
60
+ getQuotaView: typeof mgrAny?.getQuotaView,
61
+ getSnapshot: typeof mgrAny?.getSnapshot,
62
+ updateProviderPoolState: typeof mgrAny?.updateProviderPoolState,
63
+ resetProvider: typeof mgrAny?.resetProvider,
64
+ recoverProvider: typeof mgrAny?.recoverProvider,
65
+ disableProvider: typeof mgrAny?.disableProvider
66
+ };
67
+ throw new Error(`core quota manager missing expected APIs: ${JSON.stringify(detail)}`);
68
+ }
69
+ if (this.coreQuotaManager && typeof this.coreQuotaManager.hydrateFromStore === 'function') {
70
+ await this.coreQuotaManager.hydrateFromStore().catch(() => { });
71
+ }
72
+ // Apply persisted Antigravity snapshot into the unified quota view (best-effort),
73
+ // so restarts don't temporarily “forget” known depleted keys.
74
+ try {
75
+ const nowMs = Date.now();
76
+ for (const [key, record] of Object.entries(this.snapshot)) {
77
+ const parsed = this.parseAntigravitySnapshotKey(key);
78
+ if (!parsed) {
79
+ continue;
80
+ }
81
+ this.applyAntigravityQuotaToCore(`antigravity.${parsed.alias}.${parsed.modelId}`, record, nowMs);
82
+ }
83
+ }
84
+ catch {
85
+ // ignore snapshot apply failures
86
+ }
20
87
  }
21
- async start() {
22
- // 启动时立即做一次最佳努力刷新,然后根据 token 过期时间和 5 分钟基准动态调度后续刷新。
88
+ start() {
89
+ if (!this.quotaRoutingEnabled) {
90
+ return;
91
+ }
92
+ // Subscribe provider error/success streams -> core quota manager.
23
93
  try {
24
- const result = await this.refreshAllAntigravityQuotas();
94
+ void this.subscribeToProviderCenters();
95
+ }
96
+ catch {
97
+ // ignore subscription failures
98
+ }
99
+ // IMPORTANT: startup must never block server initialization.
100
+ // Run the initial refresh best-effort in the background; axios timeouts apply per request.
101
+ const refreshPromise = this.refreshAllAntigravityQuotas()
102
+ .then((result) => {
25
103
  if (result.attempted > 0 && result.successCount === 0) {
26
104
  this.refreshFailures = 1;
27
105
  }
28
106
  else if (result.successCount > 0) {
29
107
  this.refreshFailures = 0;
30
108
  }
31
- }
32
- catch {
109
+ })
110
+ .catch(() => {
33
111
  // ignore startup refresh failures
34
- }
112
+ });
35
113
  void this.scheduleNextRefresh().catch(() => {
36
114
  // ignore scheduling failures
37
115
  });
116
+ // In Jest, await the refresh to keep unit tests deterministic.
117
+ if (process.env.JEST_WORKER_ID || process.env.NODE_ENV === 'test') {
118
+ return refreshPromise;
119
+ }
120
+ return;
38
121
  }
39
122
  async stop() {
40
123
  if (this.refreshTimer) {
41
124
  clearTimeout(this.refreshTimer);
42
125
  this.refreshTimer = null;
43
126
  }
127
+ if (this.providerErrorUnsub) {
128
+ try {
129
+ this.providerErrorUnsub();
130
+ }
131
+ catch { /* ignore */ }
132
+ this.providerErrorUnsub = null;
133
+ }
134
+ if (this.providerSuccessUnsub) {
135
+ try {
136
+ this.providerSuccessUnsub();
137
+ }
138
+ catch { /* ignore */ }
139
+ this.providerSuccessUnsub = null;
140
+ }
141
+ try {
142
+ if (this.coreQuotaManager && typeof this.coreQuotaManager.persistNow === 'function') {
143
+ await this.coreQuotaManager.persistNow();
144
+ }
145
+ }
146
+ catch {
147
+ // ignore persistence failures
148
+ }
44
149
  this.saveSnapshotToDisk();
45
150
  }
46
151
  /**
@@ -115,13 +220,8 @@ export class QuotaManagerModule {
115
220
  }
116
221
  next[key] = record;
117
222
  const providerKey = `antigravity.${aliasId}.${modelId}`;
118
- if (record.remainingFraction !== null && record.remainingFraction > 0) {
119
- void this.emitQuotaRecoveryEvent(providerKey, modelId);
120
- }
121
- else {
122
- const cooldownHint = record.resetAt ? Math.max(0, record.resetAt - now) : undefined;
123
- void this.emitQuotaDepletedEvent(providerKey, modelId, cooldownHint);
124
- }
223
+ // Unified quota routing: update pool state directly (quotaView becomes the single source of truth).
224
+ this.applyAntigravityQuotaToCore(providerKey, record, now);
125
225
  }
126
226
  this.snapshot = next;
127
227
  this.saveSnapshotToDisk();
@@ -153,9 +253,105 @@ export class QuotaManagerModule {
153
253
  getRawSnapshot() {
154
254
  return { ...this.snapshot };
155
255
  }
256
+ /**
257
+ * VirtualRouter consumes this via HubPipeline `quotaView` injection.
258
+ */
259
+ getQuotaView() {
260
+ const mgr = this.coreQuotaManager;
261
+ if (!mgr || typeof mgr.getQuotaView !== 'function') {
262
+ return () => null;
263
+ }
264
+ try {
265
+ // IMPORTANT: call as a bound method; core quota manager uses `this.states`.
266
+ return mgr.getQuotaView();
267
+ }
268
+ catch {
269
+ return () => null;
270
+ }
271
+ }
272
+ getQuotaViewReadOnly() {
273
+ // Current core quota view is already side-effect free for routing semantics;
274
+ // keep the same view function to avoid duplicate logic.
275
+ return this.getQuotaView();
276
+ }
277
+ getAdminSnapshot() {
278
+ const mgr = this.coreQuotaManager;
279
+ const snap = mgr && typeof mgr.getSnapshot === 'function' ? mgr.getSnapshot() : null;
280
+ const providers = snap && typeof snap === 'object' && snap.providers && typeof snap.providers === 'object'
281
+ ? snap.providers
282
+ : {};
283
+ return providers;
284
+ }
285
+ registerProviderStaticConfig(providerKey, config = {}) {
286
+ const key = typeof providerKey === 'string' ? providerKey.trim() : '';
287
+ if (!key)
288
+ return;
289
+ const authType = typeof config.authType === 'string' ? config.authType.trim().toLowerCase() : '';
290
+ const priorityTier = typeof config.priorityTier === 'number' && Number.isFinite(config.priorityTier)
291
+ ? Math.floor(config.priorityTier)
292
+ : undefined;
293
+ const apikeyDailyResetTime = typeof config.apikeyDailyResetTime === 'string' && config.apikeyDailyResetTime.trim().length
294
+ ? config.apikeyDailyResetTime.trim()
295
+ : undefined;
296
+ const cfg = {
297
+ ...(priorityTier !== undefined ? { priorityTier } : {}),
298
+ ...(authType === 'apikey' || authType === 'oauth' ? { authType: authType } : {}),
299
+ ...(apikeyDailyResetTime ? { apikeyDailyResetTime } : {})
300
+ };
301
+ try {
302
+ this.coreQuotaManager?.registerProviderStaticConfig?.(key, cfg);
303
+ }
304
+ catch {
305
+ // ignore
306
+ }
307
+ }
308
+ async disableProvider(options) {
309
+ const mgr = this.coreQuotaManager;
310
+ if (!mgr) {
311
+ throw new Error('core quota manager not available');
312
+ }
313
+ mgr.disableProvider({ ...options });
314
+ await mgr.persistNow?.().catch(() => { });
315
+ return { ok: true };
316
+ }
317
+ async recoverProvider(providerKey) {
318
+ const mgr = this.coreQuotaManager;
319
+ if (!mgr) {
320
+ throw new Error('core quota manager not available');
321
+ }
322
+ mgr.recoverProvider(providerKey);
323
+ await mgr.persistNow?.().catch(() => { });
324
+ return { ok: true };
325
+ }
326
+ async resetProvider(providerKey) {
327
+ const mgr = this.coreQuotaManager;
328
+ if (!mgr) {
329
+ throw new Error('core quota manager not available');
330
+ }
331
+ mgr.resetProvider(providerKey);
332
+ await mgr.persistNow?.().catch(() => { });
333
+ return { ok: true };
334
+ }
156
335
  buildAntigravityKey(alias, modelId) {
157
336
  return `antigravity://${alias}/${modelId}`;
158
337
  }
338
+ parseAntigravitySnapshotKey(key) {
339
+ const raw = typeof key === 'string' ? key.trim() : '';
340
+ if (!raw.toLowerCase().startsWith('antigravity://')) {
341
+ return null;
342
+ }
343
+ const rest = raw.slice('antigravity://'.length);
344
+ const idx = rest.indexOf('/');
345
+ if (idx <= 0) {
346
+ return null;
347
+ }
348
+ const alias = rest.slice(0, idx).trim();
349
+ const modelId = rest.slice(idx + 1).trim();
350
+ if (!alias || !modelId) {
351
+ return null;
352
+ }
353
+ return { alias, modelId };
354
+ }
159
355
  extractAntigravityAlias(providerKey) {
160
356
  if (!providerKey || typeof providerKey !== 'string') {
161
357
  return null;
@@ -217,6 +413,138 @@ export class QuotaManagerModule {
217
413
  }
218
414
  return { attempted, successCount, failureCount };
219
415
  }
416
+ applyAntigravityQuotaToCore(providerKey, record, nowMs) {
417
+ const mgr = this.coreQuotaManager;
418
+ if (!mgr || typeof mgr.updateProviderPoolState !== 'function') {
419
+ return;
420
+ }
421
+ const remaining = record.remainingFraction;
422
+ const resetAt = typeof record.resetAt === 'number' && Number.isFinite(record.resetAt) ? record.resetAt : null;
423
+ const withinResetWindow = typeof resetAt === 'number' && resetAt > nowMs;
424
+ const hasQuota = typeof remaining === 'number' && Number.isFinite(remaining) && remaining > 0 && (resetAt === null || withinResetWindow);
425
+ if (hasQuota) {
426
+ mgr.updateProviderPoolState({ providerKey, inPool: true, reason: 'ok', cooldownUntil: null, blacklistUntil: null });
427
+ return;
428
+ }
429
+ mgr.updateProviderPoolState({
430
+ providerKey,
431
+ inPool: false,
432
+ reason: 'quotaDepleted',
433
+ cooldownUntil: null,
434
+ blacklistUntil: null
435
+ });
436
+ }
437
+ createQuotaStore() {
438
+ const dir = this.resolveQuotaManagerDir();
439
+ const filePath = path.join(dir, 'quota-manager.json');
440
+ this.quotaStorePath = filePath;
441
+ return {
442
+ load: async () => {
443
+ // Preferred: new snapshot.
444
+ try {
445
+ const raw = await fsAsync.readFile(filePath, 'utf8');
446
+ const parsed = JSON.parse(String(raw || '').trim() || 'null');
447
+ if (parsed && typeof parsed === 'object' && parsed.providers && typeof parsed.providers === 'object') {
448
+ return parsed;
449
+ }
450
+ }
451
+ catch {
452
+ // ignore
453
+ }
454
+ // Fallback: migrate from legacy provider-quota snapshot if present.
455
+ try {
456
+ const legacy = await loadProviderQuotaSnapshot();
457
+ if (legacy && legacy.providers && typeof legacy.providers === 'object') {
458
+ const nowMs = Date.now();
459
+ return {
460
+ savedAtMs: Number.isFinite(Date.parse(legacy.updatedAt)) ? Date.parse(legacy.updatedAt) : nowMs,
461
+ providers: legacy.providers
462
+ };
463
+ }
464
+ }
465
+ catch {
466
+ // ignore
467
+ }
468
+ return null;
469
+ },
470
+ save: async (snapshot) => {
471
+ try {
472
+ await fsAsync.mkdir(dir, { recursive: true });
473
+ }
474
+ catch {
475
+ // ignore
476
+ }
477
+ const tmp = `${filePath}.tmp`;
478
+ const text = `${JSON.stringify(snapshot, null, 2)}\n`;
479
+ try {
480
+ await fsAsync.writeFile(tmp, text, 'utf8');
481
+ await fsAsync.rename(tmp, filePath);
482
+ }
483
+ catch {
484
+ try {
485
+ await fsAsync.unlink(tmp);
486
+ }
487
+ catch { /* ignore */ }
488
+ }
489
+ }
490
+ };
491
+ }
492
+ resolveQuotaManagerDir() {
493
+ const base = path.join(this.resolveHomeDir(), '.routecodex', 'quota');
494
+ try {
495
+ fs.mkdirSync(base, { recursive: true });
496
+ }
497
+ catch {
498
+ // ignore
499
+ }
500
+ return base;
501
+ }
502
+ async subscribeToProviderCenters() {
503
+ const mgr = this.coreQuotaManager;
504
+ if (!mgr) {
505
+ return;
506
+ }
507
+ let errorCenter = null;
508
+ try {
509
+ errorCenter = (await llmsBridge.getProviderErrorCenter());
510
+ }
511
+ catch {
512
+ errorCenter = null;
513
+ }
514
+ if (errorCenter && typeof errorCenter.subscribe === 'function' && typeof mgr.onProviderError === 'function') {
515
+ try {
516
+ this.providerErrorUnsub = errorCenter.subscribe((ev) => {
517
+ try {
518
+ mgr.onProviderError?.(ev);
519
+ }
520
+ catch { /* ignore */ }
521
+ });
522
+ }
523
+ catch {
524
+ this.providerErrorUnsub = null;
525
+ }
526
+ }
527
+ let successCenter = null;
528
+ try {
529
+ successCenter = (await llmsBridge.getProviderSuccessCenter());
530
+ }
531
+ catch {
532
+ successCenter = null;
533
+ }
534
+ if (successCenter && typeof successCenter.subscribe === 'function' && typeof mgr.onProviderSuccess === 'function') {
535
+ try {
536
+ this.providerSuccessUnsub = successCenter.subscribe((ev) => {
537
+ try {
538
+ mgr.onProviderSuccess?.(ev);
539
+ }
540
+ catch { /* ignore */ }
541
+ });
542
+ }
543
+ catch {
544
+ this.providerSuccessUnsub = null;
545
+ }
546
+ }
547
+ }
220
548
  /**
221
549
  * 每 5 分钟刷新一次 quota(固定间隔)。
222
550
  * 启动时会立即刷新一次,随后由该定时器维持周期刷新。
@@ -274,6 +602,11 @@ export class QuotaManagerModule {
274
602
  }
275
603
  if (!matches.length) {
276
604
  this.antigravityTokens.clear();
605
+ // No token files -> no valid aliases -> drop any persisted snapshot rows.
606
+ if (this.snapshot && Object.keys(this.snapshot).length) {
607
+ this.snapshot = {};
608
+ this.saveSnapshotToDisk();
609
+ }
277
610
  return;
278
611
  }
279
612
  const base = resolveAntigravityApiBase();
@@ -324,9 +657,29 @@ export class QuotaManagerModule {
324
657
  this.saveSnapshotToDisk();
325
658
  }
326
659
  }
660
+ // Cleanup stale snapshot keys for aliases that no longer exist on disk.
661
+ // This prevents “phantom aliases” (e.g. a1) from showing up in admin UI when the token file is gone.
662
+ if (this.snapshot && typeof this.snapshot === 'object') {
663
+ const allowedAliases = new Set(Array.from(this.antigravityTokens.keys()));
664
+ const rawEntries = Object.entries(this.snapshot);
665
+ let changed = false;
666
+ const cleaned = {};
667
+ for (const [key, value] of rawEntries) {
668
+ const parsed = this.parseAntigravitySnapshotKey(key);
669
+ if (parsed && !allowedAliases.has(parsed.alias)) {
670
+ changed = true;
671
+ continue;
672
+ }
673
+ cleaned[key] = value;
674
+ }
675
+ if (changed) {
676
+ this.snapshot = cleaned;
677
+ this.saveSnapshotToDisk();
678
+ }
679
+ }
327
680
  }
328
681
  resolveStatePath() {
329
- const baseDir = path.join(homedir(), '.routecodex', 'state', 'quota');
682
+ const baseDir = path.join(this.resolveHomeDir(), '.routecodex', 'state', 'quota');
330
683
  try {
331
684
  fs.mkdirSync(baseDir, { recursive: true });
332
685
  }
@@ -380,102 +733,5 @@ export class QuotaManagerModule {
380
733
  // best effort
381
734
  }
382
735
  }
383
- async getProviderErrorCenterInstance() {
384
- if (this.providerErrorCenter) {
385
- return this.providerErrorCenter;
386
- }
387
- try {
388
- const center = await getProviderErrorCenter();
389
- if (center && typeof center.emit === 'function') {
390
- this.providerErrorCenter = center;
391
- }
392
- else {
393
- this.providerErrorCenter = null;
394
- }
395
- }
396
- catch {
397
- this.providerErrorCenter = null;
398
- }
399
- return this.providerErrorCenter;
400
- }
401
- async emitQuotaRecoveryEvent(providerKey, modelId) {
402
- if (!providerKey || !modelId) {
403
- return;
404
- }
405
- if (!this.quotaRoutingEnabled) {
406
- return;
407
- }
408
- const center = await this.getProviderErrorCenterInstance();
409
- if (!center) {
410
- return;
411
- }
412
- const now = Date.now();
413
- const event = {
414
- code: 'QUOTA_RECOVERY',
415
- message: 'Quota manager: provider quota refreshed',
416
- stage: 'quota',
417
- status: 200,
418
- recoverable: true,
419
- runtime: {
420
- requestId: `quota_${now}`,
421
- providerKey,
422
- providerId: 'antigravity'
423
- },
424
- timestamp: now,
425
- details: {
426
- virtualRouterQuotaRecovery: {
427
- providerKey,
428
- reason: `quota>0 for model ${modelId}`,
429
- source: 'quota-manager'
430
- }
431
- }
432
- };
433
- try {
434
- center.emit(event);
435
- }
436
- catch {
437
- // 忽略 error center 失败,避免影响配额刷新流程
438
- }
439
- }
440
- async emitQuotaDepletedEvent(providerKey, modelId, cooldownMs) {
441
- if (!providerKey || !modelId) {
442
- return;
443
- }
444
- if (!this.quotaRoutingEnabled) {
445
- return;
446
- }
447
- const center = await this.getProviderErrorCenterInstance();
448
- if (!center) {
449
- return;
450
- }
451
- const now = Date.now();
452
- const detail = {
453
- virtualRouterQuotaDepleted: {
454
- providerKey,
455
- reason: `quota<=0 for model ${modelId}`,
456
- ...(typeof cooldownMs === 'number' && cooldownMs > 0 ? { cooldownMs } : {})
457
- }
458
- };
459
- const event = {
460
- code: 'QUOTA_DEPLETED',
461
- message: 'Quota manager: provider quota exhausted',
462
- stage: 'quota',
463
- status: 429,
464
- recoverable: false,
465
- runtime: {
466
- requestId: `quota_${now}`,
467
- providerKey,
468
- providerId: 'antigravity'
469
- },
470
- timestamp: now,
471
- details: detail
472
- };
473
- try {
474
- center.emit(event);
475
- }
476
- catch {
477
- // ignore emit errors
478
- }
479
- }
480
736
  }
481
737
  //# sourceMappingURL=antigravity-quota-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity-quota-manager.js","sourceRoot":"","sources":["../../../../src/manager/modules/quota/antigravity-quota-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"antigravity-quota-manager.js","sourceRoot":"","sources":["../../../../src/manager/modules/quota/antigravity-quota-manager.ts"],"names":[],"mappings":"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"}
@@ -7,3 +7,10 @@ export declare function extractVirtualRouterSeriesCooldown(event: ProviderErrorE
7
7
  source?: string;
8
8
  } | null;
9
9
  export declare function parseQuotaResetDelayMs(event: ProviderErrorEvent): number | null;
10
+ export declare function parseApikeyDailyResetAtMs(event: ProviderErrorEvent): number | null;
11
+ export declare function computeDailyResetUntilMs(args: {
12
+ nowMs: number;
13
+ resetTime: string | null;
14
+ defaultLocalHour: number;
15
+ defaultLocalMinute: number;
16
+ }): number | null;