@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.
@@ -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;AAqWtB;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAiJ7B;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"}
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
- return (0, token_manager_1.registerAccountFromToken)(provider, tokenDir, nickname);
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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"}