@kaitranntt/ccs 7.41.0-dev.2 → 7.41.0-dev.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cliproxy/account-safety.d.ts +79 -0
- package/dist/cliproxy/account-safety.d.ts.map +1 -0
- package/dist/cliproxy/account-safety.js +430 -0
- package/dist/cliproxy/account-safety.js.map +1 -0
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +17 -1
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +23 -0
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -1
- package/dist/cliproxy/executor/retry-handler.js +9 -0
- package/dist/cliproxy/executor/retry-handler.js.map +1 -1
- package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
- package/dist/cliproxy/executor/session-bridge.js +4 -0
- package/dist/cliproxy/executor/session-bridge.js.map +1 -1
- package/dist/cliproxy/quota-manager.d.ts +14 -0
- package/dist/cliproxy/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota-manager.js +129 -1
- package/dist/cliproxy/quota-manager.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +14 -0
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +24 -0
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +13 -1
- package/dist/config/unified-config-types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account Safety Guards
|
|
3
|
+
*
|
|
4
|
+
* Prevents Google account bans by:
|
|
5
|
+
* 1. Cross-provider isolation (auto-pause conflicting accounts at launch, restore on exit)
|
|
6
|
+
* 2. Ban/disable detection (auto-pauses affected accounts on error response)
|
|
7
|
+
* 3. Crash recovery (restores stale auto-pauses from dead sessions)
|
|
8
|
+
*
|
|
9
|
+
* Ref: https://github.com/kaitranntt/ccs/issues/509
|
|
10
|
+
*/
|
|
11
|
+
import { CLIProxyProvider } from './types';
|
|
12
|
+
/**
|
|
13
|
+
* Detect same email registered under multiple Google OAuth providers.
|
|
14
|
+
* This is the primary cause of account bans — Google sees concurrent
|
|
15
|
+
* OAuth usage from different client IDs as suspicious activity.
|
|
16
|
+
*
|
|
17
|
+
* Returns map of email -> providers it appears in (only duplicates).
|
|
18
|
+
*/
|
|
19
|
+
export declare function detectCrossProviderDuplicates(): Map<string, CLIProxyProvider[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a newly registered account creates a cross-provider conflict.
|
|
22
|
+
* Returns the conflicting providers, or null if no conflict.
|
|
23
|
+
*/
|
|
24
|
+
export declare function checkNewAccountConflict(provider: CLIProxyProvider, email: string | undefined): CLIProxyProvider[] | null;
|
|
25
|
+
/**
|
|
26
|
+
* Display cross-provider duplicate warning at session launch.
|
|
27
|
+
* Returns true if warning was shown.
|
|
28
|
+
*/
|
|
29
|
+
export declare function warnCrossProviderDuplicates(provider: CLIProxyProvider): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Warn about a specific new account conflict during OAuth registration.
|
|
32
|
+
*/
|
|
33
|
+
export declare function warnNewAccountConflict(email: string, conflictingProviders: CLIProxyProvider[]): void;
|
|
34
|
+
/**
|
|
35
|
+
* Restore auto-paused accounts from crashed sessions (dead PIDs).
|
|
36
|
+
* Call at launch BEFORE enforceProviderIsolation().
|
|
37
|
+
*/
|
|
38
|
+
export declare function cleanupStaleAutoPauses(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Enforce provider isolation by auto-pausing conflicting accounts in other providers.
|
|
41
|
+
* Records paused accounts for crash recovery and session exit restore.
|
|
42
|
+
* Returns number of accounts paused.
|
|
43
|
+
*/
|
|
44
|
+
export declare function enforceProviderIsolation(provider: CLIProxyProvider): number;
|
|
45
|
+
/**
|
|
46
|
+
* Restore accounts that were auto-paused by this session.
|
|
47
|
+
* Called on session exit (process 'exit' event).
|
|
48
|
+
* Skips accounts re-paused after enforcement (e.g., by ban handler).
|
|
49
|
+
*/
|
|
50
|
+
export declare function restoreAutoPausedAccounts(provider: CLIProxyProvider): void;
|
|
51
|
+
/**
|
|
52
|
+
* Check if an error message indicates an account ban/disable.
|
|
53
|
+
*/
|
|
54
|
+
export declare function isBanResponse(errorMessage: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Handle detected account ban by auto-pausing the affected account.
|
|
57
|
+
* Returns true if account was paused.
|
|
58
|
+
*/
|
|
59
|
+
export declare function handleBanDetection(provider: CLIProxyProvider, accountId: string, errorMessage: string): boolean;
|
|
60
|
+
/** Mask email for privacy in terminal output */
|
|
61
|
+
export declare function maskEmail(email: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* Write boxed quota warning to stderr (20% threshold).
|
|
64
|
+
* Uses process.stderr.write() to work alongside inherited stdio.
|
|
65
|
+
* ASCII-only output (no emojis) per project constraints.
|
|
66
|
+
*/
|
|
67
|
+
export declare function writeQuotaWarning(accountId: string, quotaPercent: number): void;
|
|
68
|
+
/**
|
|
69
|
+
* Handle quota exhaustion for an active session.
|
|
70
|
+
* Applies cooldown to exhausted account, finds healthy alternative,
|
|
71
|
+
* switches default, and alerts user via stderr.
|
|
72
|
+
*
|
|
73
|
+
* @returns switchedTo account ID or null if no alternatives
|
|
74
|
+
*/
|
|
75
|
+
export declare function handleQuotaExhaustion(provider: CLIProxyProvider, accountId: string, cooldownMinutes: number): Promise<{
|
|
76
|
+
switchedTo: string | null;
|
|
77
|
+
reason: string;
|
|
78
|
+
}>;
|
|
79
|
+
//# sourceMappingURL=account-safety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-safety.d.ts","sourceRoot":"","sources":["../../src/cliproxy/account-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAkE3C;;;;;;GAMG;AACH,wBAAgB,6BAA6B,IAAI,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CA8B/E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,gBAAgB,EAAE,GAAG,IAAI,CAsB3B;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAqB/E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,oBAAoB,EAAE,gBAAgB,EAAE,GACvC,IAAI,CASN;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAyB7C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAiE3E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAkB1E;AAYD;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAaT;AAED,gDAAgD;AAChD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI/C;AASD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAgB/E;AA+BD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BxD"}
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Account Safety Guards
|
|
4
|
+
*
|
|
5
|
+
* Prevents Google account bans by:
|
|
6
|
+
* 1. Cross-provider isolation (auto-pause conflicting accounts at launch, restore on exit)
|
|
7
|
+
* 2. Ban/disable detection (auto-pauses affected accounts on error response)
|
|
8
|
+
* 3. Crash recovery (restores stale auto-pauses from dead sessions)
|
|
9
|
+
*
|
|
10
|
+
* Ref: https://github.com/kaitranntt/ccs/issues/509
|
|
11
|
+
*/
|
|
12
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(o, k2, desc);
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
o[k2] = m[k];
|
|
22
|
+
}));
|
|
23
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
+
}) : function(o, v) {
|
|
26
|
+
o["default"] = v;
|
|
27
|
+
});
|
|
28
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.handleQuotaExhaustion = exports.writeQuotaWarning = exports.maskEmail = exports.handleBanDetection = exports.isBanResponse = exports.restoreAutoPausedAccounts = exports.enforceProviderIsolation = exports.cleanupStaleAutoPauses = exports.warnNewAccountConflict = exports.warnCrossProviderDuplicates = exports.checkNewAccountConflict = exports.detectCrossProviderDuplicates = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const ui_1 = require("../utils/ui");
|
|
40
|
+
const registry_1 = require("./accounts/registry");
|
|
41
|
+
const config_manager_1 = require("../utils/config-manager");
|
|
42
|
+
/** Providers that use Google OAuth (ban risk when overlapping) */
|
|
43
|
+
const GOOGLE_OAUTH_PROVIDERS = ['gemini', 'agy', 'codex'];
|
|
44
|
+
function getAutoPausedPath() {
|
|
45
|
+
return path.join((0, config_manager_1.getCcsDir)(), 'cliproxy', 'auto-paused.json');
|
|
46
|
+
}
|
|
47
|
+
function loadAutoPaused() {
|
|
48
|
+
try {
|
|
49
|
+
const filePath = getAutoPausedPath();
|
|
50
|
+
if (fs.existsSync(filePath)) {
|
|
51
|
+
const data = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
52
|
+
if (Array.isArray(data.sessions))
|
|
53
|
+
return { sessions: data.sessions };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Corrupted or malformed file — start fresh
|
|
58
|
+
}
|
|
59
|
+
return { sessions: [] };
|
|
60
|
+
}
|
|
61
|
+
function saveAutoPaused(data) {
|
|
62
|
+
const filePath = getAutoPausedPath();
|
|
63
|
+
if (data.sessions.length === 0) {
|
|
64
|
+
try {
|
|
65
|
+
fs.unlinkSync(filePath);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
/* already gone */
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const dir = path.dirname(filePath);
|
|
73
|
+
if (!fs.existsSync(dir))
|
|
74
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
75
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n', { mode: 0o600 });
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check if a process is alive. NOTE: PIDs can be recycled by the OS.
|
|
79
|
+
* If a stale PID is reused by an unrelated process, cleanup is deferred until that process exits.
|
|
80
|
+
* This is acceptable — next CCS launch will self-heal via cleanupStaleAutoPauses().
|
|
81
|
+
*/
|
|
82
|
+
function isPidAlive(pid) {
|
|
83
|
+
try {
|
|
84
|
+
process.kill(pid, 0);
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Detect same email registered under multiple Google OAuth providers.
|
|
93
|
+
* This is the primary cause of account bans — Google sees concurrent
|
|
94
|
+
* OAuth usage from different client IDs as suspicious activity.
|
|
95
|
+
*
|
|
96
|
+
* Returns map of email -> providers it appears in (only duplicates).
|
|
97
|
+
*/
|
|
98
|
+
function detectCrossProviderDuplicates() {
|
|
99
|
+
const registry = (0, registry_1.loadAccountsRegistry)();
|
|
100
|
+
// Build email -> providers mapping (only Google OAuth providers)
|
|
101
|
+
const emailProviders = new Map();
|
|
102
|
+
for (const provider of GOOGLE_OAUTH_PROVIDERS) {
|
|
103
|
+
const providerAccounts = registry.providers[provider];
|
|
104
|
+
if (!providerAccounts)
|
|
105
|
+
continue;
|
|
106
|
+
for (const [, account] of Object.entries(providerAccounts.accounts)) {
|
|
107
|
+
const email = account.email;
|
|
108
|
+
if (!email || account.paused)
|
|
109
|
+
continue;
|
|
110
|
+
const normalized = email.toLowerCase();
|
|
111
|
+
const existing = emailProviders.get(normalized) ?? [];
|
|
112
|
+
existing.push(provider);
|
|
113
|
+
emailProviders.set(normalized, existing);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Filter to only duplicates (email in 2+ providers)
|
|
117
|
+
const duplicates = new Map();
|
|
118
|
+
for (const [email, providers] of emailProviders) {
|
|
119
|
+
if (providers.length > 1) {
|
|
120
|
+
duplicates.set(email, providers);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return duplicates;
|
|
124
|
+
}
|
|
125
|
+
exports.detectCrossProviderDuplicates = detectCrossProviderDuplicates;
|
|
126
|
+
/**
|
|
127
|
+
* Check if a newly registered account creates a cross-provider conflict.
|
|
128
|
+
* Returns the conflicting providers, or null if no conflict.
|
|
129
|
+
*/
|
|
130
|
+
function checkNewAccountConflict(provider, email) {
|
|
131
|
+
if (!email || !GOOGLE_OAUTH_PROVIDERS.includes(provider))
|
|
132
|
+
return null;
|
|
133
|
+
const registry = (0, registry_1.loadAccountsRegistry)();
|
|
134
|
+
const normalized = email.toLowerCase();
|
|
135
|
+
const conflicts = [];
|
|
136
|
+
for (const other of GOOGLE_OAUTH_PROVIDERS) {
|
|
137
|
+
if (other === provider)
|
|
138
|
+
continue;
|
|
139
|
+
const providerAccounts = registry.providers[other];
|
|
140
|
+
if (!providerAccounts)
|
|
141
|
+
continue;
|
|
142
|
+
for (const [, account] of Object.entries(providerAccounts.accounts)) {
|
|
143
|
+
if (account.email?.toLowerCase() === normalized && !account.paused) {
|
|
144
|
+
conflicts.push(other);
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return conflicts.length > 0 ? conflicts : null;
|
|
150
|
+
}
|
|
151
|
+
exports.checkNewAccountConflict = checkNewAccountConflict;
|
|
152
|
+
/**
|
|
153
|
+
* Display cross-provider duplicate warning at session launch.
|
|
154
|
+
* Returns true if warning was shown.
|
|
155
|
+
*/
|
|
156
|
+
function warnCrossProviderDuplicates(provider) {
|
|
157
|
+
if (!GOOGLE_OAUTH_PROVIDERS.includes(provider))
|
|
158
|
+
return false;
|
|
159
|
+
const duplicates = detectCrossProviderDuplicates();
|
|
160
|
+
if (duplicates.size === 0)
|
|
161
|
+
return false;
|
|
162
|
+
console.error('');
|
|
163
|
+
console.error((0, ui_1.warn)('Account safety: cross-provider duplicate detected'));
|
|
164
|
+
console.error(' Same Google account across providers risks account bans (ref: #509).');
|
|
165
|
+
console.error('');
|
|
166
|
+
for (const [email, providers] of duplicates) {
|
|
167
|
+
console.error(` ${maskEmail(email)} -> ${providers.join(', ')}`);
|
|
168
|
+
}
|
|
169
|
+
console.error('');
|
|
170
|
+
console.error(' Fix: pause duplicate with "ccs <provider> --pause <account>"');
|
|
171
|
+
console.error(' or use separate Google accounts per provider.');
|
|
172
|
+
console.error('');
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
exports.warnCrossProviderDuplicates = warnCrossProviderDuplicates;
|
|
176
|
+
/**
|
|
177
|
+
* Warn about a specific new account conflict during OAuth registration.
|
|
178
|
+
*/
|
|
179
|
+
function warnNewAccountConflict(email, conflictingProviders) {
|
|
180
|
+
console.error('');
|
|
181
|
+
console.error((0, ui_1.warn)('Account safety: this email is used by another provider'));
|
|
182
|
+
console.error(` ${maskEmail(email)} is also registered under: ${conflictingProviders.join(', ')}`);
|
|
183
|
+
console.error(' Concurrent usage may cause Google to ban your account.');
|
|
184
|
+
console.error(' Consider pausing the duplicate or using a different account.');
|
|
185
|
+
console.error('');
|
|
186
|
+
}
|
|
187
|
+
exports.warnNewAccountConflict = warnNewAccountConflict;
|
|
188
|
+
// --- Enforcement: auto-pause/restore ---
|
|
189
|
+
/**
|
|
190
|
+
* Restore auto-paused accounts from crashed sessions (dead PIDs).
|
|
191
|
+
* Call at launch BEFORE enforceProviderIsolation().
|
|
192
|
+
*/
|
|
193
|
+
function cleanupStaleAutoPauses() {
|
|
194
|
+
const data = loadAutoPaused();
|
|
195
|
+
if (data.sessions.length === 0)
|
|
196
|
+
return;
|
|
197
|
+
const alive = [];
|
|
198
|
+
for (const session of data.sessions) {
|
|
199
|
+
if (isPidAlive(session.pid)) {
|
|
200
|
+
alive.push(session);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
// Dead PID — restore accounts
|
|
204
|
+
for (const { provider, accountId } of session.accounts) {
|
|
205
|
+
(0, registry_1.resumeAccount)(provider, accountId);
|
|
206
|
+
}
|
|
207
|
+
console.error((0, ui_1.info)(`Restored ${session.accounts.length} auto-paused account(s) from crashed ${session.initiator} session`));
|
|
208
|
+
}
|
|
209
|
+
if (alive.length !== data.sessions.length) {
|
|
210
|
+
saveAutoPaused({ sessions: alive });
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
exports.cleanupStaleAutoPauses = cleanupStaleAutoPauses;
|
|
214
|
+
/**
|
|
215
|
+
* Enforce provider isolation by auto-pausing conflicting accounts in other providers.
|
|
216
|
+
* Records paused accounts for crash recovery and session exit restore.
|
|
217
|
+
* Returns number of accounts paused.
|
|
218
|
+
*/
|
|
219
|
+
function enforceProviderIsolation(provider) {
|
|
220
|
+
if (!GOOGLE_OAUTH_PROVIDERS.includes(provider))
|
|
221
|
+
return 0;
|
|
222
|
+
// If another provider session is actively managing isolation, just warn
|
|
223
|
+
const data = loadAutoPaused();
|
|
224
|
+
const otherActive = data.sessions.filter((s) => s.initiator !== provider && isPidAlive(s.pid));
|
|
225
|
+
if (otherActive.length > 0)
|
|
226
|
+
return 0;
|
|
227
|
+
const registry = (0, registry_1.loadAccountsRegistry)();
|
|
228
|
+
const currentAccounts = registry.providers[provider];
|
|
229
|
+
if (!currentAccounts)
|
|
230
|
+
return 0;
|
|
231
|
+
// Collect active emails for current provider
|
|
232
|
+
const myEmails = new Set();
|
|
233
|
+
for (const [, account] of Object.entries(currentAccounts.accounts)) {
|
|
234
|
+
if (account.email && !account.paused) {
|
|
235
|
+
myEmails.add(account.email.toLowerCase());
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
if (myEmails.size === 0)
|
|
239
|
+
return 0;
|
|
240
|
+
// Find conflicting accounts in other Google OAuth providers
|
|
241
|
+
const toPause = [];
|
|
242
|
+
for (const other of GOOGLE_OAUTH_PROVIDERS) {
|
|
243
|
+
if (other === provider)
|
|
244
|
+
continue;
|
|
245
|
+
const otherAccounts = registry.providers[other];
|
|
246
|
+
if (!otherAccounts)
|
|
247
|
+
continue;
|
|
248
|
+
for (const [accountId, account] of Object.entries(otherAccounts.accounts)) {
|
|
249
|
+
if (account.email && !account.paused && myEmails.has(account.email.toLowerCase())) {
|
|
250
|
+
toPause.push({ provider: other, accountId });
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (toPause.length === 0)
|
|
255
|
+
return 0;
|
|
256
|
+
// Pause conflicting accounts
|
|
257
|
+
for (const { provider: p, accountId } of toPause) {
|
|
258
|
+
(0, registry_1.pauseAccount)(p, accountId);
|
|
259
|
+
}
|
|
260
|
+
// Record for crash recovery (re-read to reduce concurrent write race window)
|
|
261
|
+
const freshData = loadAutoPaused();
|
|
262
|
+
freshData.sessions = freshData.sessions.filter((s) => s.initiator !== provider);
|
|
263
|
+
freshData.sessions.push({
|
|
264
|
+
initiator: provider,
|
|
265
|
+
pid: process.pid,
|
|
266
|
+
pausedAt: new Date().toISOString(),
|
|
267
|
+
accounts: toPause,
|
|
268
|
+
});
|
|
269
|
+
saveAutoPaused(freshData);
|
|
270
|
+
console.error('');
|
|
271
|
+
console.error((0, ui_1.info)(`Account safety: auto-paused ${toPause.length} conflicting account(s)`));
|
|
272
|
+
for (const { provider: p, accountId } of toPause) {
|
|
273
|
+
const acct = registry.providers[p]?.accounts[accountId];
|
|
274
|
+
const display = acct?.email ? maskEmail(acct.email) : accountId;
|
|
275
|
+
console.error(` ${display} (${p})`);
|
|
276
|
+
}
|
|
277
|
+
console.error(' Will restore on session exit.');
|
|
278
|
+
console.error('');
|
|
279
|
+
return toPause.length;
|
|
280
|
+
}
|
|
281
|
+
exports.enforceProviderIsolation = enforceProviderIsolation;
|
|
282
|
+
/**
|
|
283
|
+
* Restore accounts that were auto-paused by this session.
|
|
284
|
+
* Called on session exit (process 'exit' event).
|
|
285
|
+
* Skips accounts re-paused after enforcement (e.g., by ban handler).
|
|
286
|
+
*/
|
|
287
|
+
function restoreAutoPausedAccounts(provider) {
|
|
288
|
+
const data = loadAutoPaused();
|
|
289
|
+
const mySession = data.sessions.find((s) => s.initiator === provider && s.pid === process.pid);
|
|
290
|
+
if (!mySession)
|
|
291
|
+
return;
|
|
292
|
+
const registry = (0, registry_1.loadAccountsRegistry)();
|
|
293
|
+
for (const { provider: p, accountId } of mySession.accounts) {
|
|
294
|
+
// Don't restore if account was re-paused after enforcement (e.g., ban detected)
|
|
295
|
+
const account = registry.providers[p]?.accounts[accountId];
|
|
296
|
+
if (account?.pausedAt && account.pausedAt > mySession.pausedAt) {
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
(0, registry_1.resumeAccount)(p, accountId);
|
|
300
|
+
}
|
|
301
|
+
data.sessions = data.sessions.filter((s) => !(s.initiator === provider && s.pid === process.pid));
|
|
302
|
+
saveAutoPaused(data);
|
|
303
|
+
}
|
|
304
|
+
exports.restoreAutoPausedAccounts = restoreAutoPausedAccounts;
|
|
305
|
+
// Error patterns that indicate Google has disabled/banned an account
|
|
306
|
+
const BAN_PATTERNS = [
|
|
307
|
+
'disabled in this account',
|
|
308
|
+
'violation of terms of service',
|
|
309
|
+
'account has been disabled',
|
|
310
|
+
'account is disabled',
|
|
311
|
+
'account has been suspended',
|
|
312
|
+
'account has been banned',
|
|
313
|
+
];
|
|
314
|
+
/**
|
|
315
|
+
* Check if an error message indicates an account ban/disable.
|
|
316
|
+
*/
|
|
317
|
+
function isBanResponse(errorMessage) {
|
|
318
|
+
const lower = errorMessage.toLowerCase();
|
|
319
|
+
return BAN_PATTERNS.some((pattern) => lower.includes(pattern));
|
|
320
|
+
}
|
|
321
|
+
exports.isBanResponse = isBanResponse;
|
|
322
|
+
/**
|
|
323
|
+
* Handle detected account ban by auto-pausing the affected account.
|
|
324
|
+
* Returns true if account was paused.
|
|
325
|
+
*/
|
|
326
|
+
function handleBanDetection(provider, accountId, errorMessage) {
|
|
327
|
+
if (!isBanResponse(errorMessage))
|
|
328
|
+
return false;
|
|
329
|
+
console.error('');
|
|
330
|
+
console.error((0, ui_1.warn)('Account safety: account appears disabled by Google'));
|
|
331
|
+
console.error(` Account "${accountId}" (${provider}) returned:`);
|
|
332
|
+
console.error(` "${truncate(errorMessage, 120)}"`);
|
|
333
|
+
console.error('');
|
|
334
|
+
console.error((0, ui_1.info)('Auto-pausing this account to prevent further issues.'));
|
|
335
|
+
console.error(` Resume later: ccs ${provider} --resume ${accountId}`);
|
|
336
|
+
console.error('');
|
|
337
|
+
return (0, registry_1.pauseAccount)(provider, accountId);
|
|
338
|
+
}
|
|
339
|
+
exports.handleBanDetection = handleBanDetection;
|
|
340
|
+
/** Mask email for privacy in terminal output */
|
|
341
|
+
function maskEmail(email) {
|
|
342
|
+
const [local, domain] = email.split('@');
|
|
343
|
+
if (!local || !domain)
|
|
344
|
+
return email;
|
|
345
|
+
return `${local.slice(0, 3)}***@${domain}`;
|
|
346
|
+
}
|
|
347
|
+
exports.maskEmail = maskEmail;
|
|
348
|
+
/** Truncate string with ellipsis */
|
|
349
|
+
function truncate(str, maxLen) {
|
|
350
|
+
return str.length > maxLen ? str.slice(0, maxLen - 3) + '...' : str;
|
|
351
|
+
}
|
|
352
|
+
// --- Quota Exhaustion Handling ---
|
|
353
|
+
/**
|
|
354
|
+
* Write boxed quota warning to stderr (20% threshold).
|
|
355
|
+
* Uses process.stderr.write() to work alongside inherited stdio.
|
|
356
|
+
* ASCII-only output (no emojis) per project constraints.
|
|
357
|
+
*/
|
|
358
|
+
function writeQuotaWarning(accountId, quotaPercent) {
|
|
359
|
+
const masked = maskEmail(accountId);
|
|
360
|
+
const lines = [
|
|
361
|
+
`[!] Quota Low: ${masked} (${Math.round(quotaPercent)}% remaining)`,
|
|
362
|
+
` Next session will use a different account if available`,
|
|
363
|
+
];
|
|
364
|
+
const maxLen = Math.max(...lines.map((l) => l.length));
|
|
365
|
+
const border = '\u2550'.repeat(maxLen + 2);
|
|
366
|
+
process.stderr.write('\n');
|
|
367
|
+
process.stderr.write(`\u2554${border}\u2557\n`);
|
|
368
|
+
for (const line of lines) {
|
|
369
|
+
process.stderr.write(`\u2551 ${line.padEnd(maxLen)} \u2551\n`);
|
|
370
|
+
}
|
|
371
|
+
process.stderr.write(`\u255A${border}\u255D\n`);
|
|
372
|
+
process.stderr.write('\n');
|
|
373
|
+
}
|
|
374
|
+
exports.writeQuotaWarning = writeQuotaWarning;
|
|
375
|
+
/**
|
|
376
|
+
* Write boxed quota exhaustion alert to stderr.
|
|
377
|
+
* Called when quota falls below exhaustion_threshold — account will be cooled down.
|
|
378
|
+
*/
|
|
379
|
+
function writeQuotaExhausted(accountId, switchedTo, cooldownMinutes) {
|
|
380
|
+
const masked = maskEmail(accountId);
|
|
381
|
+
const lines = [`[X] Quota Exhausted: ${masked}`, ` Cooldown: ${cooldownMinutes} minutes`];
|
|
382
|
+
if (switchedTo) {
|
|
383
|
+
lines.push(` Next session default: ${maskEmail(switchedTo)}`);
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
lines.push(` No alternative accounts available`);
|
|
387
|
+
}
|
|
388
|
+
const maxLen = Math.max(...lines.map((l) => l.length));
|
|
389
|
+
const border = '\u2550'.repeat(maxLen + 2);
|
|
390
|
+
process.stderr.write('\n');
|
|
391
|
+
process.stderr.write(`\u2554${border}\u2557\n`);
|
|
392
|
+
for (const line of lines) {
|
|
393
|
+
process.stderr.write(`\u2551 ${line.padEnd(maxLen)} \u2551\n`);
|
|
394
|
+
}
|
|
395
|
+
process.stderr.write(`\u255A${border}\u255D\n`);
|
|
396
|
+
process.stderr.write('\n');
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Handle quota exhaustion for an active session.
|
|
400
|
+
* Applies cooldown to exhausted account, finds healthy alternative,
|
|
401
|
+
* switches default, and alerts user via stderr.
|
|
402
|
+
*
|
|
403
|
+
* @returns switchedTo account ID or null if no alternatives
|
|
404
|
+
*/
|
|
405
|
+
async function handleQuotaExhaustion(provider, accountId, cooldownMinutes) {
|
|
406
|
+
// Dynamic imports to avoid circular dependencies
|
|
407
|
+
const { applyCooldown, findHealthyAccount } = await Promise.resolve().then(() => __importStar(require('./quota-manager')));
|
|
408
|
+
const { setDefaultAccount, touchAccount } = await Promise.resolve().then(() => __importStar(require('./account-manager')));
|
|
409
|
+
// Apply cooldown to exhausted account
|
|
410
|
+
applyCooldown(provider, accountId, cooldownMinutes);
|
|
411
|
+
// Find healthy alternative
|
|
412
|
+
const alternative = await findHealthyAccount(provider, [accountId]);
|
|
413
|
+
if (alternative) {
|
|
414
|
+
setDefaultAccount(provider, alternative.id);
|
|
415
|
+
touchAccount(provider, alternative.id);
|
|
416
|
+
writeQuotaExhausted(accountId, alternative.id, cooldownMinutes);
|
|
417
|
+
return {
|
|
418
|
+
switchedTo: alternative.id,
|
|
419
|
+
reason: `Quota exhausted, switched to ${alternative.id}`,
|
|
420
|
+
};
|
|
421
|
+
}
|
|
422
|
+
// No alternatives — warn but continue (graceful degradation)
|
|
423
|
+
writeQuotaExhausted(accountId, null, cooldownMinutes);
|
|
424
|
+
return {
|
|
425
|
+
switchedTo: null,
|
|
426
|
+
reason: 'Quota exhausted, no alternatives available',
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
exports.handleQuotaExhaustion = handleQuotaExhaustion;
|
|
430
|
+
//# sourceMappingURL=account-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-safety.js","sourceRoot":"","sources":["../../src/cliproxy/account-safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-handler.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,WAAW,EAMZ,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,YAAY,EAKb,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth-handler.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,WAAW,EAMZ,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,YAAY,EAKb,MAAM,cAAc,CAAC;AAgXtB;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAyJ7B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACxE,OAAO,CAAC,OAAO,CAAC,CAiBlB"}
|
|
@@ -47,6 +47,7 @@ const token_manager_1 = require("./token-manager");
|
|
|
47
47
|
const oauth_process_1 = require("./oauth-process");
|
|
48
48
|
const kiro_import_1 = require("./kiro-import");
|
|
49
49
|
const proxy_target_resolver_1 = require("../proxy-target-resolver");
|
|
50
|
+
const account_safety_1 = require("../account-safety");
|
|
50
51
|
/**
|
|
51
52
|
* Prompt user to add another account
|
|
52
53
|
*/
|
|
@@ -316,7 +317,15 @@ async function handlePasteCallbackMode(provider, oauthConfig, verbose, tokenDir,
|
|
|
316
317
|
return null;
|
|
317
318
|
}
|
|
318
319
|
console.log((0, ui_1.ok)('Authentication successful!'));
|
|
319
|
-
|
|
320
|
+
const account = (0, token_manager_1.registerAccountFromToken)(provider, tokenDir, nickname);
|
|
321
|
+
// Account safety: check for cross-provider conflicts
|
|
322
|
+
if (account?.email) {
|
|
323
|
+
const conflicts = (0, account_safety_1.checkNewAccountConflict)(provider, account.email);
|
|
324
|
+
if (conflicts) {
|
|
325
|
+
(0, account_safety_1.warnNewAccountConflict)(account.email, conflicts);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return account;
|
|
320
329
|
}
|
|
321
330
|
catch (error) {
|
|
322
331
|
if (verbose) {
|
|
@@ -455,6 +464,13 @@ async function triggerOAuth(provider, options = {}) {
|
|
|
455
464
|
console.log(' Use: ccs kiro --no-incognito');
|
|
456
465
|
console.log(' Or enable "Kiro: Use normal browser" in: ccs config');
|
|
457
466
|
}
|
|
467
|
+
// Account safety: check for cross-provider conflicts
|
|
468
|
+
if (account?.email) {
|
|
469
|
+
const conflicts = (0, account_safety_1.checkNewAccountConflict)(provider, account.email);
|
|
470
|
+
if (conflicts) {
|
|
471
|
+
(0, account_safety_1.warnNewAccountConflict)(account.email, conflicts);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
458
474
|
return account;
|
|
459
475
|
}
|
|
460
476
|
exports.triggerOAuth = triggerOAuth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-handler.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth-handler.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-handler.ts"],"names":[],"mappings":"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"}
|