@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
@@ -12,6 +12,58 @@ import path from 'path';
12
12
  function isTokenPayload(value) {
13
13
  return typeof value === 'object' && value !== null;
14
14
  }
15
+ function resolveAuthDir() {
16
+ const override = String(process.env.ROUTECODEX_AUTH_DIR || process.env.RCC_AUTH_DIR || '').trim();
17
+ if (override) {
18
+ return path.isAbsolute(override) ? override : path.resolve(override);
19
+ }
20
+ const home = String(process.env.HOME || '').trim();
21
+ return path.join(home, '.routecodex', 'auth');
22
+ }
23
+ const TOKEN_FILE_PATTERN = /^(.+)-oauth-(\d+)(?:-(.+))?\.json$/i;
24
+ function pickLatestTokenFile(opts) {
25
+ const provider = opts.providerPrefix.trim().toLowerCase();
26
+ const alias = (opts.alias || '').trim() || undefined;
27
+ if (!provider) {
28
+ return null;
29
+ }
30
+ const authDir = resolveAuthDir();
31
+ try {
32
+ const entries = fs.readdirSync(authDir);
33
+ let best = null;
34
+ for (const entry of entries) {
35
+ if (!entry.endsWith('.json')) {
36
+ continue;
37
+ }
38
+ if (entry.includes('.bak')) {
39
+ continue;
40
+ }
41
+ const match = entry.match(TOKEN_FILE_PATTERN);
42
+ if (!match) {
43
+ continue;
44
+ }
45
+ const [, prefix, seqRaw, entryAliasRaw] = match;
46
+ if (String(prefix || '').trim().toLowerCase() !== provider) {
47
+ continue;
48
+ }
49
+ const seq = parseInt(String(seqRaw || ''), 10);
50
+ if (!Number.isFinite(seq) || seq <= 0) {
51
+ continue;
52
+ }
53
+ const entryAlias = (String(entryAliasRaw || '').trim() || 'default');
54
+ if (alias && entryAlias !== alias) {
55
+ continue;
56
+ }
57
+ if (!best || seq > best.seq) {
58
+ best = { seq, file: path.join(authDir, entry) };
59
+ }
60
+ }
61
+ return best?.file ?? null;
62
+ }
63
+ catch {
64
+ return null;
65
+ }
66
+ }
15
67
  export class TokenFileAuthProvider {
16
68
  type = 'oauth';
17
69
  config;
@@ -25,7 +77,6 @@ export class TokenFileAuthProvider {
25
77
  async initialize() {
26
78
  const file = this.resolveTokenFile();
27
79
  if (!file) {
28
- // Lenient: allow initialize without token; ensureValidOAuthToken may create one later
29
80
  this.token = null;
30
81
  this.isInitialized = true;
31
82
  this.updateStatus(false, false, 'token_file_missing');
@@ -50,25 +101,49 @@ export class TokenFileAuthProvider {
50
101
  this.token = latest;
51
102
  }
52
103
  }
53
- else if (!this.token) {
104
+ else {
54
105
  this.token = null;
55
106
  }
56
- if (!this.isInitialized || !this.token) {
107
+ if (!this.isInitialized) {
108
+ throw new Error('TokenFileAuthProvider not initialized');
109
+ }
110
+ if (!this.token) {
111
+ this.updateStatus(false, false, 'token_file_missing');
112
+ throw new Error('TokenFileAuthProvider not initialized');
113
+ }
114
+ const ok = this.hasAccessToken(this.token) || this.hasApiKey(this.token);
115
+ if (!ok) {
116
+ this.updateStatus(false, false, 'missing_access_token_or_api_key');
57
117
  throw new Error('TokenFileAuthProvider not initialized');
58
118
  }
59
119
  // iFlow专用:优先使用API Key,回退到access_token
60
120
  const apiKey = this.extractApiKey(this.token);
61
121
  if (apiKey) {
122
+ this.updateStatus(true, true);
62
123
  return { Authorization: `Bearer ${apiKey}` };
63
124
  }
64
125
  const access = this.extractAccessToken(this.token);
65
126
  if (!access) {
66
- throw new Error('TokenFileAuthProvider: no access_token or api_key in token file');
127
+ this.updateStatus(false, false, 'missing_access_token_or_api_key');
128
+ throw new Error('TokenFileAuthProvider not initialized');
67
129
  }
130
+ this.updateStatus(true, true);
68
131
  return { Authorization: `Bearer ${access}` };
69
132
  }
70
133
  async validateCredentials() {
71
- if (!this.isInitialized || !this.token) {
134
+ if (!this.isInitialized) {
135
+ return false;
136
+ }
137
+ // Best-effort: refresh token snapshot before validating.
138
+ const file = this.resolveTokenFile();
139
+ if (file) {
140
+ const latest = this.readJson(file);
141
+ if (latest) {
142
+ this.token = latest;
143
+ }
144
+ }
145
+ if (!this.token) {
146
+ this.updateStatus(false, false, 'token_file_missing');
72
147
  return false;
73
148
  }
74
149
  const exp = this.extractExpiresAt(this.token);
@@ -95,9 +170,6 @@ export class TokenFileAuthProvider {
95
170
  this.token = latest;
96
171
  }
97
172
  }
98
- if (!this.isInitialized && !this.token) {
99
- return null;
100
- }
101
173
  return this.token ? { ...this.token } : null;
102
174
  }
103
175
  // ---- helpers ----
@@ -119,7 +191,52 @@ export class TokenFileAuthProvider {
119
191
  // Prefer explicit tokenFile from config
120
192
  const tf = typeof this.config.tokenFile === 'string' ? this.config.tokenFile.trim() : '';
121
193
  if (tf) {
122
- return this.expandHome(tf);
194
+ // Alias (no path separators / no .json suffix): resolve to ~/.routecodex/auth/<provider>-oauth-<seq>-<alias>.json
195
+ if (!tf.includes('/') && !tf.includes('\\') && !tf.endsWith('.json')) {
196
+ const providerIdRaw = typeof this.config.oauthProviderId === 'string'
197
+ ? String(this.config.oauthProviderId).trim()
198
+ : '';
199
+ const providerId = providerIdRaw ? providerIdRaw.toLowerCase() : '';
200
+ if (providerId) {
201
+ // Qwen: pin tokenFile="default" to a stable file name when present, to avoid "I reauthed but server reads another seq".
202
+ if (providerId === 'qwen' && tf === 'default') {
203
+ const pinned = path.join(resolveAuthDir(), 'qwen-oauth-1-default.json');
204
+ try {
205
+ if (fs.existsSync(pinned)) {
206
+ return pinned;
207
+ }
208
+ }
209
+ catch {
210
+ // ignore
211
+ }
212
+ }
213
+ const match = pickLatestTokenFile({ providerPrefix: providerId, alias: tf });
214
+ if (match) {
215
+ return match;
216
+ }
217
+ }
218
+ return null;
219
+ }
220
+ const resolved = this.expandHome(tf);
221
+ // Qwen: allow legacy single-file token path, but fall back to auth dir token set when missing.
222
+ const providerIdRaw = typeof this.config.oauthProviderId === 'string'
223
+ ? String(this.config.oauthProviderId).trim()
224
+ : '';
225
+ const providerId = providerIdRaw ? providerIdRaw.toLowerCase() : '';
226
+ if (providerId === 'qwen') {
227
+ try {
228
+ if (!fs.existsSync(resolved)) {
229
+ const fallback = pickLatestTokenFile({ providerPrefix: 'qwen' });
230
+ if (fallback) {
231
+ return fallback;
232
+ }
233
+ }
234
+ }
235
+ catch {
236
+ // ignore
237
+ }
238
+ }
239
+ return resolved;
123
240
  }
124
241
  const providerIdRaw = typeof this.config.oauthProviderId === 'string'
125
242
  ? String(this.config.oauthProviderId).trim()
@@ -139,16 +256,30 @@ export class TokenFileAuthProvider {
139
256
  }
140
257
  return null;
141
258
  }
142
- // Fallback order:
143
- // 1) RouteCodex default token path
144
- const rc = path.join(process.env.HOME || '', '.routecodex', 'tokens', 'qwen-default.json');
145
- try {
146
- if (fs.existsSync(rc)) {
147
- return rc;
259
+ // Qwen: default to RouteCodex auth dir tokens (daemon-admin / oauth-lifecycle output)
260
+ if (providerId === 'qwen') {
261
+ const home = process.env.HOME || '';
262
+ const legacySingle = path.join(home, '.routecodex', 'auth', 'qwen-oauth.json');
263
+ try {
264
+ if (fs.existsSync(legacySingle)) {
265
+ return legacySingle;
266
+ }
267
+ }
268
+ catch { /* ignore */ }
269
+ const latest = pickLatestTokenFile({ providerPrefix: 'qwen' });
270
+ if (latest) {
271
+ return latest;
148
272
  }
273
+ // Old fallback: RouteCodex tokens dir (legacy external tooling)
274
+ const rc = path.join(home, '.routecodex', 'tokens', 'qwen-default.json');
275
+ try {
276
+ if (fs.existsSync(rc)) {
277
+ return rc;
278
+ }
279
+ }
280
+ catch { /* ignore */ }
149
281
  }
150
- catch { /* ignore */ }
151
- // 2) CLIProxyAPI directory
282
+ // CLIProxyAPI directory (legacy external tooling)
152
283
  const home = process.env.HOME || '';
153
284
  const dir = path.join(home, '.cli-proxy-api');
154
285
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"tokenfile-auth.js","sourceRoot":"","sources":["../../../src/providers/auth/tokenfile-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenfile-auth.js","sourceRoot":"","sources":["../../../src/providers/auth/tokenfile-auth.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,16 @@ export interface ProviderRuntimeProfile {
114
114
  endpoint: string;
115
115
  baseUrl?: string;
116
116
  headers?: Record<string, string>;
117
+ /**
118
+ * Per-request timeout for upstream HTTP calls (ms).
119
+ * This is a host-side transport concern; may be injected from provider profiles.
120
+ */
121
+ timeoutMs?: number;
122
+ /**
123
+ * Max retry attempts for upstream HTTP calls.
124
+ * This is a host-side transport concern; may be injected from provider profiles.
125
+ */
126
+ maxRetries?: number;
117
127
  auth: ProviderRuntimeAuth;
118
128
  compatibilityProfile?: string;
119
129
  outboundProfile?: string;
@@ -5,8 +5,11 @@ export interface CamoufoxLaunchOptions {
5
5
  profileId?: string;
6
6
  }
7
7
  export declare function shutdownCamoufoxLaunchers(): Promise<void>;
8
+ export declare function resolveCamoufoxLocaleEnv(): Record<string, string>;
9
+ export declare function applyGoogleLocaleHint(rawUrl: string): string;
8
10
  export declare function getCamoufoxProfileDir(provider?: string | null, alias?: string | null): string;
9
11
  export declare function ensureCamoufoxProfileDir(provider?: string | null, alias?: string | null): string;
12
+ export declare function isCamoufoxAvailable(): boolean;
10
13
  /**
11
14
  * Exposed for CLI/tests: report which OS policy will be used for a given (provider, alias).
12
15
  * NOTE: This is the policy passed to the fingerprint generator, not necessarily the runtime OS.
@@ -64,6 +64,92 @@ function expandHome(p) {
64
64
  }
65
65
  return p;
66
66
  }
67
+ function resolveGoogleUiLanguage() {
68
+ const raw = String(process.env.ROUTECODEX_OAUTH_GOOGLE_HL ||
69
+ process.env.RCC_OAUTH_GOOGLE_HL ||
70
+ 'en')
71
+ .trim();
72
+ if (!raw) {
73
+ return null;
74
+ }
75
+ const lowered = raw.toLowerCase();
76
+ if (lowered === 'auto' || lowered === 'off' || lowered === 'none' || lowered === '0' || lowered === 'false') {
77
+ return null;
78
+ }
79
+ return raw;
80
+ }
81
+ function normalizeLocaleTag(raw) {
82
+ const trimmed = String(raw || '').trim();
83
+ if (!trimmed) {
84
+ return null;
85
+ }
86
+ const normalized = trimmed.replace(/_/g, '-');
87
+ const parts = normalized.split('-').filter(Boolean);
88
+ if (!parts.length) {
89
+ return null;
90
+ }
91
+ const language = parts[0].toLowerCase();
92
+ const region = parts[1] ? parts[1].toUpperCase() : '';
93
+ return region ? `${language}-${region}` : language;
94
+ }
95
+ function defaultRegionForLanguage(language) {
96
+ const normalized = String(language || '').trim().toLowerCase();
97
+ if (normalized === 'zh') {
98
+ return 'CN';
99
+ }
100
+ if (normalized === 'ja') {
101
+ return 'JP';
102
+ }
103
+ if (normalized === 'ko') {
104
+ return 'KR';
105
+ }
106
+ return 'US';
107
+ }
108
+ export function resolveCamoufoxLocaleEnv() {
109
+ const googleLang = resolveGoogleUiLanguage();
110
+ const localeTag = normalizeLocaleTag(googleLang || 'en');
111
+ if (!localeTag) {
112
+ return {};
113
+ }
114
+ const [languageRaw, regionRaw] = localeTag.split('-');
115
+ const language = (languageRaw || 'en').toLowerCase();
116
+ const region = (regionRaw || defaultRegionForLanguage(language)).toUpperCase();
117
+ const posixLocale = `${language}_${region}.UTF-8`;
118
+ return {
119
+ LANG: posixLocale,
120
+ LC_ALL: posixLocale,
121
+ LANGUAGE: `${language}-${region}`
122
+ };
123
+ }
124
+ function shouldApplyGoogleLocaleHint(hostnameRaw) {
125
+ const hostname = String(hostnameRaw || '').trim().toLowerCase();
126
+ if (!hostname) {
127
+ return false;
128
+ }
129
+ return (hostname === 'accounts.google.com' ||
130
+ hostname === 'myaccount.google.com' ||
131
+ hostname === 'support.google.com');
132
+ }
133
+ export function applyGoogleLocaleHint(rawUrl) {
134
+ if (!rawUrl || typeof rawUrl !== 'string') {
135
+ return rawUrl;
136
+ }
137
+ const lang = resolveGoogleUiLanguage();
138
+ if (!lang) {
139
+ return rawUrl;
140
+ }
141
+ try {
142
+ const parsed = new URL(rawUrl);
143
+ if (!shouldApplyGoogleLocaleHint(parsed.hostname)) {
144
+ return rawUrl;
145
+ }
146
+ parsed.searchParams.set('hl', lang);
147
+ return parsed.toString();
148
+ }
149
+ catch {
150
+ return rawUrl;
151
+ }
152
+ }
67
153
  function getProviderFamily(provider) {
68
154
  const rawProvider = provider && provider.trim() ? provider.trim().toLowerCase() : '';
69
155
  // Gemini CLI 家族(gemini-cli / antigravity)共享同一组账号指纹:
@@ -164,6 +250,9 @@ function runCamoufoxPathCheck() {
164
250
  return false;
165
251
  }
166
252
  }
253
+ export function isCamoufoxAvailable() {
254
+ return runCamoufoxPathCheck();
255
+ }
167
256
  function installCamoufox() {
168
257
  console.warn('[OAuth] Camoufox not detected. Installing via python3 -m pip ...');
169
258
  try {
@@ -180,6 +269,16 @@ function ensureCamoufoxInstalled() {
180
269
  if (runCamoufoxPathCheck()) {
181
270
  return true;
182
271
  }
272
+ const autoInstallRaw = String(process.env.ROUTECODEX_CAMOUFOX_AUTO_INSTALL ||
273
+ process.env.RCC_CAMOUFOX_AUTO_INSTALL ||
274
+ '1')
275
+ .trim()
276
+ .toLowerCase();
277
+ const autoInstallEnabled = autoInstallRaw !== '0' && autoInstallRaw !== 'false' && autoInstallRaw !== 'no';
278
+ if (!autoInstallEnabled) {
279
+ logOAuthDebug('[OAuth] Camoufox: auto-install disabled; camoufox not available');
280
+ return false;
281
+ }
183
282
  logOAuthDebug('[OAuth] Camoufox: python module not available, attempting install...');
184
283
  const installed = installCamoufox();
185
284
  if (!installed) {
@@ -213,6 +312,12 @@ function resolveGenFingerprintScriptPath() {
213
312
  return null;
214
313
  }
215
314
  function computeOsPolicy(provider, alias) {
315
+ const forced = String(process.env.ROUTECODEX_CAMOUFOX_FORCE_OS || process.env.RCC_CAMOUFOX_FORCE_OS || '')
316
+ .trim()
317
+ .toLowerCase();
318
+ if (forced === 'windows' || forced === 'macos') {
319
+ return forced;
320
+ }
216
321
  const family = getProviderFamily(provider);
217
322
  const effectiveAlias = alias && alias.trim() ? alias.trim().toLowerCase() : 'default';
218
323
  if (!family) {
@@ -366,11 +471,23 @@ export function ensureCamoufoxFingerprintForToken(provider, alias) {
366
471
  export async function openAuthInCamoufox(options) {
367
472
  logOAuthDebug(`[OAuth] Camoufox: launch requested url=${options.url} provider=${options.provider ?? ''} alias=${options.alias ?? ''}`);
368
473
  if (!ensureCamoufoxInstalled()) {
474
+ try {
475
+ console.warn('[OAuth] Camoufox not available (python3 -m camoufox path failed). Falling back to system browser.');
476
+ }
477
+ catch {
478
+ // ignore
479
+ }
369
480
  logOAuthDebug('[OAuth] Camoufox: installation missing; falling back to default browser');
370
481
  return false;
371
482
  }
372
483
  const scriptPath = resolveCamoufoxScriptPath();
373
484
  if (!scriptPath) {
485
+ try {
486
+ console.warn('[OAuth] Camoufox launcher script not found. Falling back to system browser.');
487
+ }
488
+ catch {
489
+ // ignore
490
+ }
374
491
  logOAuthDebug('[OAuth] Camoufox: launcher script not resolved; falling back to default browser');
375
492
  return false;
376
493
  }
@@ -379,16 +496,77 @@ export async function openAuthInCamoufox(options) {
379
496
  logOAuthDebug('[OAuth] Camoufox: invalid or empty URL; falling back to default browser');
380
497
  return false;
381
498
  }
499
+ const launchUrl = applyGoogleLocaleHint(url);
382
500
  const profileId = options.profileId && options.profileId.trim().length > 0
383
501
  ? options.profileId.trim()
384
502
  : buildProfileId(options.provider, options.alias);
385
503
  // Ensure profile directory exists ahead of launch so that fingerprint/profile data can be persisted per token.
386
504
  ensureCamoufoxProfileDir(options.provider, options.alias);
505
+ // --- Safety guard: Google OAuth pages must be readable.
506
+ // Some Camoufox fingerprints (notably "windows" fonts) can render Google pages as garbled digits
507
+ // on macOS hosts. Auto-repair by re-generating the fingerprint using macos policy for this profileId.
508
+ try {
509
+ const autoRepairRaw = String(process.env.ROUTECODEX_CAMOUFOX_AUTO_REPAIR_OS_MISMATCH ||
510
+ process.env.RCC_CAMOUFOX_AUTO_REPAIR_OS_MISMATCH ||
511
+ '1')
512
+ .trim()
513
+ .toLowerCase();
514
+ const autoRepairEnabled = autoRepairRaw !== '0' && autoRepairRaw !== 'false' && autoRepairRaw !== 'no';
515
+ const family = getProviderFamily(options.provider);
516
+ const isGoogleFlow = family === 'gemini';
517
+ if (autoRepairEnabled && isGoogleFlow && process.platform === 'darwin') {
518
+ const fpPath = getFingerprintPath(profileId);
519
+ const existingEnv = loadFingerprintEnv(profileId);
520
+ const rawCfg = existingEnv?.CAMOU_CONFIG_1;
521
+ if (rawCfg) {
522
+ try {
523
+ const cfg = JSON.parse(rawCfg);
524
+ const platform = typeof cfg['navigator.platform'] === 'string' ? String(cfg['navigator.platform']) : '';
525
+ const wantsRepair = platform.toLowerCase() === 'win32';
526
+ if (wantsRepair) {
527
+ const backupPath = `${fpPath}.bak.${Date.now()}`;
528
+ console.warn(`[OAuth] Camoufox fingerprint OS mismatch (host=macos, fp=${platform}). ` +
529
+ `Repairing to macos fingerprint for profileId=${profileId} (backup=${backupPath}).`);
530
+ try {
531
+ fs.renameSync(fpPath, backupPath);
532
+ }
533
+ catch {
534
+ // If backup fails, do not delete/overwrite; just continue with existing fingerprint.
535
+ console.warn('[OAuth] Camoufox fingerprint repair skipped (backup failed).');
536
+ }
537
+ const prevForcedOs = process.env.ROUTECODEX_CAMOUFOX_FORCE_OS;
538
+ process.env.ROUTECODEX_CAMOUFOX_FORCE_OS = 'macos';
539
+ try {
540
+ // Re-generate fingerprint file for this profileId (best-effort).
541
+ void ensureFingerprintEnv(profileId, options.provider, options.alias);
542
+ }
543
+ finally {
544
+ if (prevForcedOs === undefined) {
545
+ delete process.env.ROUTECODEX_CAMOUFOX_FORCE_OS;
546
+ }
547
+ else {
548
+ process.env.ROUTECODEX_CAMOUFOX_FORCE_OS = prevForcedOs;
549
+ }
550
+ }
551
+ }
552
+ }
553
+ catch {
554
+ // ignore parse errors
555
+ }
556
+ }
557
+ }
558
+ }
559
+ catch {
560
+ // guardrail must never block OAuth
561
+ }
387
562
  const fingerprintEnv = ensureFingerprintEnv(profileId, options.provider, options.alias);
563
+ const localeEnv = resolveCamoufoxLocaleEnv();
388
564
  try {
389
- logOAuthDebug(`[OAuth] Camoufox: spawning launcher script=${scriptPath} profileId=${profileId}`);
390
565
  const autoMode = (process.env.ROUTECODEX_CAMOUFOX_AUTO_MODE || '').trim();
391
- const args = [scriptPath, '--profile', profileId, '--url', url];
566
+ const devMode = (process.env.ROUTECODEX_CAMOUFOX_DEV_MODE || '').trim();
567
+ console.log(`[OAuth] Camoufox launcher spawn: profileId=${profileId} autoMode=${autoMode || '-'} devMode=${devMode || '0'}`);
568
+ logOAuthDebug(`[OAuth] Camoufox: spawning launcher script=${scriptPath} profileId=${profileId}`);
569
+ const args = [scriptPath, '--profile', profileId, '--url', launchUrl];
392
570
  if (autoMode) {
393
571
  args.push('--auto-mode', autoMode);
394
572
  }
@@ -398,8 +576,9 @@ export async function openAuthInCamoufox(options) {
398
576
  env: {
399
577
  ...process.env,
400
578
  ...fingerprintEnv,
579
+ ...localeEnv,
401
580
  BROWSER_PROFILE_ID: profileId,
402
- BROWSER_INITIAL_URL: url
581
+ BROWSER_INITIAL_URL: launchUrl
403
582
  }
404
583
  });
405
584
  registerLauncher(child);
@@ -430,6 +609,14 @@ export async function openAuthInCamoufox(options) {
430
609
  }
431
610
  });
432
611
  });
612
+ if (!ok) {
613
+ try {
614
+ console.warn('[OAuth] Camoufox launcher exited early; falling back to system browser.');
615
+ }
616
+ catch {
617
+ // ignore
618
+ }
619
+ }
433
620
  // Do not keep the parent process alive solely for the launcher; interactive flows
434
621
  // will keep running due to the callback server anyway. Cleanup will terminate it.
435
622
  child.unref();
@@ -1 +1 @@
1
- {"version":3,"file":"camoufox-launcher.js","sourceRoot":"","sources":["../../../../src/providers/core/config/camoufox-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camoufox-launcher.js","sourceRoot":"","sources":["../../../../src/providers/core/config/camoufox-launcher.ts"],"names":[],"mappings":"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"}