@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.
- package/README.md +97 -13
- package/configsamples/config.json +8 -8
- package/configsamples/config.reference.json +1 -1
- package/configsamples/provider/crs/config.v1.json +1 -1
- package/configsamples/provider/glm/config.v1.json +1 -1
- package/configsamples/provider/glm-anthropic/config.v1.json +1 -1
- package/configsamples/provider/kimi/config.v1.json +1 -1
- package/configsamples/provider/lmstudio/config.v1.json +2 -1
- package/configsamples/provider/mimo/config.v1.json +1 -1
- package/configsamples/provider/modelscope/config.v1.json +1 -1
- package/configsamples/provider/qwen/config.v1.json +1 -1
- package/configsamples/provider/tab/config.v1.json +2 -1
- package/configsamples/provider/tabglm/config.v1.json +1 -1
- package/dist/build-info.js +3 -3
- package/dist/build-info.js.map +1 -1
- package/dist/cli/commands/config.js +8 -9
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/restart.d.ts +4 -12
- package/dist/cli/commands/restart.js +226 -120
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/start.d.ts +1 -0
- package/dist/cli/commands/start.js +28 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.js +12 -6
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/config/init-provider-catalog.js +12 -11
- package/dist/cli/config/init-provider-catalog.js.map +1 -1
- package/dist/cli.js +3 -14
- package/dist/cli.js.map +1 -1
- package/dist/client/anthropic/anthropic-protocol-client.d.ts +1 -0
- package/dist/client/anthropic/anthropic-protocol-client.js +25 -0
- package/dist/client/anthropic/anthropic-protocol-client.js.map +1 -1
- package/dist/commands/oauth.js +185 -9
- package/dist/commands/oauth.js.map +1 -1
- package/dist/commands/token-daemon.js +12 -2
- package/dist/commands/token-daemon.js.map +1 -1
- package/dist/docs/daemon-admin-ui.html +1242 -234
- package/dist/index.js +119 -0
- package/dist/index.js.map +1 -1
- package/dist/manager/index.d.ts +2 -0
- package/dist/manager/index.js +39 -2
- package/dist/manager/index.js.map +1 -1
- package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +29 -5
- package/dist/manager/modules/quota/antigravity-quota-manager.js +369 -113
- package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.cooldown.d.ts +7 -0
- package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js +61 -0
- package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.d.ts +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.events.js +134 -5
- package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.js +19 -13
- package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.d.ts +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js +8 -3
- package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js.map +1 -1
- package/dist/manager/modules/token/index.js +2 -2
- package/dist/manager/modules/token/index.js.map +1 -1
- package/dist/manager/quota/provider-quota-center.d.ts +9 -0
- package/dist/manager/quota/provider-quota-center.js +19 -2
- package/dist/manager/quota/provider-quota-center.js.map +1 -1
- package/dist/modules/llmswitch/bridge.d.ts +33 -1
- package/dist/modules/llmswitch/bridge.js +170 -2
- package/dist/modules/llmswitch/bridge.js.map +1 -1
- package/dist/modules/llmswitch/core-loader.js +64 -11
- package/dist/modules/llmswitch/core-loader.js.map +1 -1
- package/dist/modules/pipeline/utils/debug-logger.d.ts +1 -0
- package/dist/modules/pipeline/utils/debug-logger.js +50 -3
- package/dist/modules/pipeline/utils/debug-logger.js.map +1 -1
- package/dist/providers/auth/apikey-auth.js +15 -3
- package/dist/providers/auth/apikey-auth.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle.d.ts +13 -1
- package/dist/providers/auth/oauth-lifecycle.js +346 -45
- package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
- package/dist/providers/auth/oauth-repair-cooldown.d.ts +21 -0
- package/dist/providers/auth/oauth-repair-cooldown.js +100 -0
- package/dist/providers/auth/oauth-repair-cooldown.js.map +1 -0
- package/dist/providers/auth/oauth-repair-env.d.ts +1 -0
- package/dist/providers/auth/oauth-repair-env.js +79 -0
- package/dist/providers/auth/oauth-repair-env.js.map +1 -0
- package/dist/providers/auth/qwen-userinfo-helper.d.ts +2 -0
- package/dist/providers/auth/qwen-userinfo-helper.js +72 -40
- package/dist/providers/auth/qwen-userinfo-helper.js.map +1 -1
- package/dist/providers/auth/tokenfile-auth.js +148 -17
- package/dist/providers/auth/tokenfile-auth.js.map +1 -1
- package/dist/providers/core/api/provider-types.d.ts +10 -0
- package/dist/providers/core/config/camoufox-launcher.d.ts +3 -0
- package/dist/providers/core/config/camoufox-launcher.js +190 -3
- package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
- package/dist/providers/core/config/oauth-flows.js +50 -19
- package/dist/providers/core/config/oauth-flows.js.map +1 -1
- package/dist/providers/core/config/provider-oauth-configs.js +1 -1
- package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
- package/dist/providers/core/runtime/gemini-cli-http-provider.d.ts +5 -0
- package/dist/providers/core/runtime/gemini-cli-http-provider.js +172 -15
- package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/gemini-http-provider.d.ts +11 -0
- package/dist/providers/core/runtime/gemini-http-provider.js +281 -3
- package/dist/providers/core/runtime/gemini-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/http-request-executor.js +55 -0
- package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
- package/dist/providers/core/runtime/http-transport-provider.js +10 -14
- package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
- package/dist/providers/core/runtime/provider-factory.d.ts +1 -0
- package/dist/providers/core/runtime/provider-factory.js +40 -2
- package/dist/providers/core/runtime/provider-factory.js.map +1 -1
- package/dist/providers/core/strategies/oauth-auth-code-flow.js +45 -2
- package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
- package/dist/providers/core/strategies/oauth-device-flow.js +13 -2
- package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
- package/dist/providers/core/strategies/oauth-refresh-errors.d.ts +1 -0
- package/dist/providers/core/strategies/oauth-refresh-errors.js +26 -0
- package/dist/providers/core/strategies/oauth-refresh-errors.js.map +1 -0
- package/dist/providers/core/utils/snapshot-writer.d.ts +4 -2
- package/dist/providers/core/utils/snapshot-writer.js +86 -23
- package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
- package/dist/scripts/camoufox/launch-auth.mjs +545 -49
- package/dist/server/handlers/chat-handler.js +1 -1
- package/dist/server/handlers/chat-handler.js.map +1 -1
- package/dist/server/handlers/handler-utils.d.ts +1 -0
- package/dist/server/handlers/handler-utils.js +231 -3
- package/dist/server/handlers/handler-utils.js.map +1 -1
- package/dist/server/handlers/messages-handler.js +1 -1
- package/dist/server/handlers/messages-handler.js.map +1 -1
- package/dist/server/handlers/responses-handler.js +17 -5
- package/dist/server/handlers/responses-handler.js.map +1 -1
- package/dist/server/handlers/sse-dispatcher.js +10 -1
- package/dist/server/handlers/sse-dispatcher.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/control-handler.d.ts +3 -0
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js +389 -0
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +190 -5
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +2 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js +116 -14
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/routing-policy.d.ts +30 -0
- package/dist/server/runtime/http-server/daemon-admin/routing-policy.js +133 -0
- package/dist/server/runtime/http-server/daemon-admin/routing-policy.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/status-handler.js +40 -1
- package/dist/server/runtime/http-server/daemon-admin/status-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +5 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js +3 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
- package/dist/server/runtime/http-server/executor-pipeline.d.ts +10 -0
- package/dist/server/runtime/http-server/executor-pipeline.js +6 -0
- package/dist/server/runtime/http-server/executor-pipeline.js.map +1 -1
- package/dist/server/runtime/http-server/executor-response.js +26 -0
- package/dist/server/runtime/http-server/executor-response.js.map +1 -1
- package/dist/server/runtime/http-server/hub-shadow-compare.js +41 -3
- package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
- package/dist/server/runtime/http-server/index.d.ts +9 -0
- package/dist/server/runtime/http-server/index.js +337 -91
- package/dist/server/runtime/http-server/index.js.map +1 -1
- package/dist/server/runtime/http-server/middleware.js +27 -1
- package/dist/server/runtime/http-server/middleware.js.map +1 -1
- package/dist/server/runtime/http-server/request-executor.js +159 -24
- package/dist/server/runtime/http-server/request-executor.js.map +1 -1
- package/dist/server/runtime/http-server/routes.d.ts +1 -0
- package/dist/server/runtime/http-server/routes.js +36 -3
- package/dist/server/runtime/http-server/routes.js.map +1 -1
- package/dist/server/runtime/http-server/server-id.d.ts +1 -0
- package/dist/server/runtime/http-server/server-id.js +18 -0
- package/dist/server/runtime/http-server/server-id.js.map +1 -0
- package/dist/server/runtime/http-server/stats-manager.d.ts +2 -0
- package/dist/server/runtime/http-server/stats-manager.js +63 -7
- package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
- package/dist/server/runtime/http-server/types.d.ts +2 -0
- package/dist/server/utils/stage-logger.js +54 -9
- package/dist/server/utils/stage-logger.js.map +1 -1
- package/dist/token-daemon/history-store.d.ts +8 -3
- package/dist/token-daemon/history-store.js +41 -20
- package/dist/token-daemon/history-store.js.map +1 -1
- package/dist/token-daemon/index.d.ts +5 -1
- package/dist/token-daemon/index.js +191 -11
- package/dist/token-daemon/index.js.map +1 -1
- package/dist/token-daemon/quota-auth-issue.d.ts +7 -0
- package/dist/token-daemon/quota-auth-issue.js +231 -0
- package/dist/token-daemon/quota-auth-issue.js.map +1 -0
- package/dist/token-daemon/token-daemon.d.ts +2 -0
- package/dist/token-daemon/token-daemon.js +177 -14
- package/dist/token-daemon/token-daemon.js.map +1 -1
- package/dist/token-portal/local-token-portal.js +6 -0
- package/dist/token-portal/local-token-portal.js.map +1 -1
- package/docs/ANTIGRAVITY_IDE_FORWARD_PROXY.md +61 -0
- package/docs/ANTIGRAVITY_THOUGHT_SIGNATURE_BOOTSTRAP_429.md +80 -0
- package/docs/CLOCK.md +94 -0
- package/docs/DAEMON_CONTROL_PLANE.md +34 -0
- package/docs/OAUTH.md +172 -0
- package/docs/PROVIDERS_BUILTIN.md +5 -3
- package/docs/PROVIDER_TYPES.md +6 -4
- package/docs/QUOTA_MANAGER_V3.md +54 -0
- package/docs/ROUTING_POLICY_SCHEMA.md +47 -0
- package/docs/ROUTING_POLICY_UI.md +11 -0
- package/docs/SERVERTOOL_CLOCK_DESIGN.md +56 -25
- package/docs/antigravity-routing-contract.md +17 -11
- package/docs/config-secrets.md +49 -0
- package/docs/daemon-admin-ui.html +1242 -234
- package/docs/oauth-authentication-guide.md +4 -0
- package/docs/oauth-iflow-implementation.md +4 -0
- package/docs/provider-quota-design.md +11 -0
- package/docs/providers/antigravity-gemini-provider-compat.md +1 -0
- package/docs/providers/antigravity-thought-signature.md +127 -0
- package/docs/providers/tabglm-claude-code-compat.md +11 -3
- package/docs/refactoring/host-sharedmodule-safe-migration-plan.md +164 -0
- package/docs/token-daemon-preview.html +2 -2
- package/docs/token-refresh-daemon-plan.md +6 -6
- package/package.json +4 -3
- package/scripts/antigravity-ide-forward-proxy.mjs +362 -0
- package/scripts/backfill-apply-patch-exec-errorsamples.mjs +19 -0
- package/scripts/camoufox/launch-auth.mjs +545 -49
- package/scripts/ci/repo-sanity.mjs +2 -0
- package/scripts/install-global.sh +46 -0
- package/scripts/migrate-antigravity-session-signatures-alias.mjs +193 -0
- package/scripts/migrate-antigravity-session-signatures.mjs +165 -0
- package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +44 -9
- package/scripts/tests/ci-jest.mjs +3 -0
- package/scripts/verify-client-headers.mjs +33 -5
- 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
|
|
104
|
+
else {
|
|
54
105
|
this.token = null;
|
|
55
106
|
}
|
|
56
|
-
if (!this.isInitialized
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
//
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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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"}
|