@kaitranntt/ccs 7.14.0 → 7.15.0-dev.2
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-manager.d.ts +46 -1
- package/dist/cliproxy/account-manager.d.ts.map +1 -1
- package/dist/cliproxy/account-manager.js +175 -10
- package/dist/cliproxy/account-manager.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +65 -3
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +18 -23
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/quota-fetcher.d.ts +3 -1
- package/dist/cliproxy/quota-fetcher.d.ts.map +1 -1
- package/dist/cliproxy/quota-fetcher.js +98 -24
- package/dist/cliproxy/quota-fetcher.js.map +1 -1
- package/dist/cliproxy/quota-manager.d.ts +88 -0
- package/dist/cliproxy/quota-manager.d.ts.map +1 -0
- package/dist/cliproxy/quota-manager.js +278 -0
- package/dist/cliproxy/quota-manager.js.map +1 -0
- package/dist/commands/cliproxy-command.d.ts.map +1 -1
- package/dist/commands/cliproxy-command.js +191 -0
- package/dist/commands/cliproxy-command.js.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +4 -0
- package/dist/commands/help-command.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +22 -0
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +62 -2
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +29 -2
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/ui/assets/{accounts-wkvC_Z1E.js → accounts-D31DF_DO.js} +1 -1
- package/dist/ui/assets/{alert-dialog--nlDi-Dj.js → alert-dialog-LCg4HaeZ.js} +1 -1
- package/dist/ui/assets/{api-DeyefOLW.js → api-Bmxcet5w.js} +1 -1
- package/dist/ui/assets/{auth-section-BQXfw1cb.js → auth-section-CRTokeZ8.js} +1 -1
- package/dist/ui/assets/{card-P5vPGo2D.js → card-BmnReIPp.js} +1 -1
- package/dist/ui/assets/cliproxy-BrJaxqVj.js +3 -0
- package/dist/ui/assets/{cliproxy-control-panel-Dbs8NAQa.js → cliproxy-control-panel-D7FGe5HL.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-BM75Bkww.js → confirm-dialog-CzpGAyFB.js} +1 -1
- package/dist/ui/assets/{copilot-BwylIlO5.js → copilot-C2v-0P0m.js} +3 -3
- package/dist/ui/assets/{globalenv-section-Cgpz_NQ0.js → globalenv-section-Cx0L1Zte.js} +1 -1
- package/dist/ui/assets/{health-DWUjYWDI.js → health-BvZrzSJ3.js} +1 -1
- package/dist/ui/assets/icons-CZDQWWm2.js +1 -0
- package/dist/ui/assets/index-BX0IVNt5.css +1 -0
- package/dist/ui/assets/{index-CIWe-99u.js → index-CJrvk2Qf.js} +1 -1
- package/dist/ui/assets/{index-D8MFq-UJ.js → index-D8K1YCe7.js} +14 -14
- package/dist/ui/assets/{index-4Wd5fx72.js → index-fED9JOL0.js} +1 -1
- package/dist/ui/assets/{index-f_AuSs01.js → index-qAWtHsB9.js} +1 -1
- package/dist/ui/assets/{shared-I-pAdvVQ.js → shared-Do9VzQ5g.js} +1 -1
- package/dist/ui/assets/{switch-DHwS-NMF.js → switch-CmGBdPfU.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/web-server/index.d.ts.map +1 -1
- package/dist/web-server/index.js +8 -1
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.js +92 -1
- package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/code-reviewer.ts +217 -0
- package/dist/ui/assets/cliproxy-CcMLaKpF.js +0 -3
- package/dist/ui/assets/icons-U9n5DGj9.js +0 -1
- package/dist/ui/assets/index-1g-Hy9VA.css +0 -1
|
@@ -8,6 +8,13 @@
|
|
|
8
8
|
* Token storage: ~/.ccs/cliproxy/auth/ (flat structure, CLIProxyAPI discovers by type field)
|
|
9
9
|
*/
|
|
10
10
|
import { CLIProxyProvider } from './types';
|
|
11
|
+
/** Account tier for quota management (free vs paid - no Pro/Ultra distinction needed) */
|
|
12
|
+
export type AccountTier = 'free' | 'paid' | 'unknown';
|
|
13
|
+
/**
|
|
14
|
+
* Providers that typically have empty email in OAuth token files.
|
|
15
|
+
* For these providers, nickname is used as accountId instead of email.
|
|
16
|
+
*/
|
|
17
|
+
export declare const PROVIDERS_WITHOUT_EMAIL: CLIProxyProvider[];
|
|
11
18
|
/** Account information */
|
|
12
19
|
export interface AccountInfo {
|
|
13
20
|
/** Account identifier (email or custom name) */
|
|
@@ -26,6 +33,12 @@ export interface AccountInfo {
|
|
|
26
33
|
createdAt: string;
|
|
27
34
|
/** Last usage time */
|
|
28
35
|
lastUsedAt?: string;
|
|
36
|
+
/** User-paused state (skip in quota rotation) */
|
|
37
|
+
paused?: boolean;
|
|
38
|
+
/** ISO timestamp when paused */
|
|
39
|
+
pausedAt?: string;
|
|
40
|
+
/** Account tier: free or paid (Pro/Ultra combined) */
|
|
41
|
+
tier?: AccountTier;
|
|
29
42
|
}
|
|
30
43
|
/** Provider accounts configuration */
|
|
31
44
|
interface ProviderAccounts {
|
|
@@ -58,7 +71,7 @@ export declare function extractAccountIdFromTokenFile(filename: string, email?:
|
|
|
58
71
|
export declare function generateNickname(email?: string): string;
|
|
59
72
|
/**
|
|
60
73
|
* Validate nickname
|
|
61
|
-
* Rules: 1-50 chars,
|
|
74
|
+
* Rules: 1-50 chars, no whitespace, URL-safe, no reserved patterns
|
|
62
75
|
* @returns null if valid, error message if invalid
|
|
63
76
|
*/
|
|
64
77
|
export declare function validateNickname(nickname: string): string | null;
|
|
@@ -94,12 +107,40 @@ export declare function findAccountByQuery(provider: CLIProxyProvider, query: st
|
|
|
94
107
|
/**
|
|
95
108
|
* Register a new account
|
|
96
109
|
* Called after successful OAuth to record the account
|
|
110
|
+
*
|
|
111
|
+
* For providers without email (kiro, ghcp):
|
|
112
|
+
* - nickname is REQUIRED and used as accountId
|
|
113
|
+
* - Uniqueness is enforced to prevent overwriting
|
|
114
|
+
*
|
|
115
|
+
* For providers with email:
|
|
116
|
+
* - email is used as accountId
|
|
117
|
+
* - nickname is auto-generated from email if not provided
|
|
97
118
|
*/
|
|
98
119
|
export declare function registerAccount(provider: CLIProxyProvider, tokenFile: string, email?: string, nickname?: string): AccountInfo;
|
|
99
120
|
/**
|
|
100
121
|
* Set default account for a provider
|
|
101
122
|
*/
|
|
102
123
|
export declare function setDefaultAccount(provider: CLIProxyProvider, accountId: string): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Pause an account (skip in quota rotation)
|
|
126
|
+
*/
|
|
127
|
+
export declare function pauseAccount(provider: CLIProxyProvider, accountId: string): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Resume a paused account
|
|
130
|
+
*/
|
|
131
|
+
export declare function resumeAccount(provider: CLIProxyProvider, accountId: string): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Check if an account is paused
|
|
134
|
+
*/
|
|
135
|
+
export declare function isAccountPaused(provider: CLIProxyProvider, accountId: string): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Update account tier
|
|
138
|
+
*/
|
|
139
|
+
export declare function setAccountTier(provider: CLIProxyProvider, accountId: string, tier: AccountTier): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Get non-paused accounts for a provider
|
|
142
|
+
*/
|
|
143
|
+
export declare function getActiveAccounts(provider: CLIProxyProvider): AccountInfo[];
|
|
103
144
|
/**
|
|
104
145
|
* Remove an account
|
|
105
146
|
*/
|
|
@@ -119,6 +160,10 @@ export declare function getAccountTokenPath(provider: CLIProxyProvider, accountI
|
|
|
119
160
|
/**
|
|
120
161
|
* Auto-discover accounts from existing token files
|
|
121
162
|
* Called during migration or first run to populate accounts registry
|
|
163
|
+
*
|
|
164
|
+
* For kiro/ghcp providers without email, generates unique accountId from:
|
|
165
|
+
* 1. OAuth provider + profile ID from filename (e.g., github-ABC123)
|
|
166
|
+
* 2. Fallback: provider + index (e.g., kiro-1, kiro-2)
|
|
122
167
|
*/
|
|
123
168
|
export declare function discoverExistingAccounts(): void;
|
|
124
169
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-manager.d.ts","sourceRoot":"","sources":["../../src/cliproxy/account-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI3C,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"account-manager.d.ts","sourceRoot":"","sources":["../../src/cliproxy/account-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,11 +32,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.getAllAccountsSummary = exports.discoverExistingAccounts = exports.getAccountTokenPath = exports.touchAccount = exports.renameAccount = exports.removeAccount = exports.setDefaultAccount = exports.registerAccount = exports.findAccountByQuery = exports.getAccount = exports.getDefaultAccount = exports.getProviderAccounts = exports.saveAccountsRegistry = exports.loadAccountsRegistry = exports.getAccountsRegistryPath = exports.validateNickname = exports.generateNickname = exports.extractAccountIdFromTokenFile = void 0;
|
|
35
|
+
exports.getAllAccountsSummary = exports.discoverExistingAccounts = exports.getAccountTokenPath = exports.touchAccount = exports.renameAccount = exports.removeAccount = exports.getActiveAccounts = exports.setAccountTier = exports.isAccountPaused = exports.resumeAccount = exports.pauseAccount = exports.setDefaultAccount = exports.registerAccount = exports.findAccountByQuery = exports.getAccount = exports.getDefaultAccount = exports.getProviderAccounts = exports.saveAccountsRegistry = exports.loadAccountsRegistry = exports.getAccountsRegistryPath = exports.validateNickname = exports.generateNickname = exports.extractAccountIdFromTokenFile = exports.PROVIDERS_WITHOUT_EMAIL = void 0;
|
|
36
36
|
const fs = __importStar(require("fs"));
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const config_generator_1 = require("./config-generator");
|
|
39
39
|
const auth_types_1 = require("./auth/auth-types");
|
|
40
|
+
/**
|
|
41
|
+
* Providers that typically have empty email in OAuth token files.
|
|
42
|
+
* For these providers, nickname is used as accountId instead of email.
|
|
43
|
+
*/
|
|
44
|
+
exports.PROVIDERS_WITHOUT_EMAIL = ['kiro', 'ghcp'];
|
|
40
45
|
/** Default registry structure */
|
|
41
46
|
const DEFAULT_REGISTRY = {
|
|
42
47
|
version: 1,
|
|
@@ -76,7 +81,7 @@ function generateNickname(email) {
|
|
|
76
81
|
exports.generateNickname = generateNickname;
|
|
77
82
|
/**
|
|
78
83
|
* Validate nickname
|
|
79
|
-
* Rules: 1-50 chars,
|
|
84
|
+
* Rules: 1-50 chars, no whitespace, URL-safe, no reserved patterns
|
|
80
85
|
* @returns null if valid, error message if invalid
|
|
81
86
|
*/
|
|
82
87
|
function validateNickname(nickname) {
|
|
@@ -89,6 +94,14 @@ function validateNickname(nickname) {
|
|
|
89
94
|
if (/\s/.test(nickname)) {
|
|
90
95
|
return 'Nickname cannot contain whitespace';
|
|
91
96
|
}
|
|
97
|
+
// Block URL-unsafe chars that break routing
|
|
98
|
+
if (/[%\/&?#]/.test(nickname)) {
|
|
99
|
+
return 'Nickname cannot contain special URL characters (%, /, &, ?, #)';
|
|
100
|
+
}
|
|
101
|
+
// Block reserved patterns used by auto-discovery (kiro-1, ghcp-2, etc.)
|
|
102
|
+
if (/^(kiro|ghcp)-\d+$/i.test(nickname)) {
|
|
103
|
+
return 'Nickname cannot match reserved pattern (kiro-N, ghcp-N)';
|
|
104
|
+
}
|
|
92
105
|
return null;
|
|
93
106
|
}
|
|
94
107
|
exports.validateNickname = validateNickname;
|
|
@@ -224,6 +237,14 @@ exports.findAccountByQuery = findAccountByQuery;
|
|
|
224
237
|
/**
|
|
225
238
|
* Register a new account
|
|
226
239
|
* Called after successful OAuth to record the account
|
|
240
|
+
*
|
|
241
|
+
* For providers without email (kiro, ghcp):
|
|
242
|
+
* - nickname is REQUIRED and used as accountId
|
|
243
|
+
* - Uniqueness is enforced to prevent overwriting
|
|
244
|
+
*
|
|
245
|
+
* For providers with email:
|
|
246
|
+
* - email is used as accountId
|
|
247
|
+
* - nickname is auto-generated from email if not provided
|
|
227
248
|
*/
|
|
228
249
|
function registerAccount(provider, tokenFile, email, nickname) {
|
|
229
250
|
const registry = loadAccountsRegistry();
|
|
@@ -238,11 +259,36 @@ function registerAccount(provider, tokenFile, email, nickname) {
|
|
|
238
259
|
if (!providerAccounts) {
|
|
239
260
|
throw new Error('Failed to initialize provider accounts');
|
|
240
261
|
}
|
|
241
|
-
// Determine account ID
|
|
242
|
-
|
|
262
|
+
// Determine account ID based on provider type
|
|
263
|
+
let accountId;
|
|
264
|
+
let accountNickname;
|
|
265
|
+
if (exports.PROVIDERS_WITHOUT_EMAIL.includes(provider)) {
|
|
266
|
+
// For kiro/ghcp: nickname is REQUIRED and used as accountId
|
|
267
|
+
if (!nickname || nickname === 'default') {
|
|
268
|
+
throw new Error(`Nickname is required when adding ${provider} accounts. ` +
|
|
269
|
+
`Use --nickname <name> or provide a nickname in the UI.`);
|
|
270
|
+
}
|
|
271
|
+
// Validate nickname format
|
|
272
|
+
const validationError = validateNickname(nickname);
|
|
273
|
+
if (validationError) {
|
|
274
|
+
throw new Error(validationError);
|
|
275
|
+
}
|
|
276
|
+
// Check uniqueness
|
|
277
|
+
for (const [existingId, _account] of Object.entries(providerAccounts.accounts)) {
|
|
278
|
+
if (existingId.toLowerCase() === nickname.toLowerCase()) {
|
|
279
|
+
throw new Error(`An account with nickname "${nickname}" already exists for ${provider}. ` +
|
|
280
|
+
`Choose a different nickname.`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
accountId = nickname;
|
|
284
|
+
accountNickname = nickname;
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
// For other providers: use email as accountId, fallback to filename extraction
|
|
288
|
+
accountId = extractAccountIdFromTokenFile(tokenFile, email);
|
|
289
|
+
accountNickname = nickname || generateNickname(email);
|
|
290
|
+
}
|
|
243
291
|
const isFirstAccount = Object.keys(providerAccounts.accounts).length === 0;
|
|
244
|
-
// Generate nickname if not provided
|
|
245
|
-
const accountNickname = nickname || generateNickname(email);
|
|
246
292
|
// Create or update account
|
|
247
293
|
providerAccounts.accounts[accountId] = {
|
|
248
294
|
email,
|
|
@@ -282,6 +328,66 @@ function setDefaultAccount(provider, accountId) {
|
|
|
282
328
|
return true;
|
|
283
329
|
}
|
|
284
330
|
exports.setDefaultAccount = setDefaultAccount;
|
|
331
|
+
/**
|
|
332
|
+
* Pause an account (skip in quota rotation)
|
|
333
|
+
*/
|
|
334
|
+
function pauseAccount(provider, accountId) {
|
|
335
|
+
const registry = loadAccountsRegistry();
|
|
336
|
+
const providerAccounts = registry.providers[provider];
|
|
337
|
+
if (!providerAccounts?.accounts[accountId]) {
|
|
338
|
+
return false;
|
|
339
|
+
}
|
|
340
|
+
providerAccounts.accounts[accountId].paused = true;
|
|
341
|
+
providerAccounts.accounts[accountId].pausedAt = new Date().toISOString();
|
|
342
|
+
saveAccountsRegistry(registry);
|
|
343
|
+
return true;
|
|
344
|
+
}
|
|
345
|
+
exports.pauseAccount = pauseAccount;
|
|
346
|
+
/**
|
|
347
|
+
* Resume a paused account
|
|
348
|
+
*/
|
|
349
|
+
function resumeAccount(provider, accountId) {
|
|
350
|
+
const registry = loadAccountsRegistry();
|
|
351
|
+
const providerAccounts = registry.providers[provider];
|
|
352
|
+
if (!providerAccounts?.accounts[accountId]) {
|
|
353
|
+
return false;
|
|
354
|
+
}
|
|
355
|
+
providerAccounts.accounts[accountId].paused = false;
|
|
356
|
+
providerAccounts.accounts[accountId].pausedAt = undefined;
|
|
357
|
+
saveAccountsRegistry(registry);
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
exports.resumeAccount = resumeAccount;
|
|
361
|
+
/**
|
|
362
|
+
* Check if an account is paused
|
|
363
|
+
*/
|
|
364
|
+
function isAccountPaused(provider, accountId) {
|
|
365
|
+
const accounts = getProviderAccounts(provider);
|
|
366
|
+
const account = accounts.find((a) => a.id === accountId);
|
|
367
|
+
return account?.paused ?? false;
|
|
368
|
+
}
|
|
369
|
+
exports.isAccountPaused = isAccountPaused;
|
|
370
|
+
/**
|
|
371
|
+
* Update account tier
|
|
372
|
+
*/
|
|
373
|
+
function setAccountTier(provider, accountId, tier) {
|
|
374
|
+
const registry = loadAccountsRegistry();
|
|
375
|
+
const providerAccounts = registry.providers[provider];
|
|
376
|
+
if (!providerAccounts?.accounts[accountId]) {
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
379
|
+
providerAccounts.accounts[accountId].tier = tier;
|
|
380
|
+
saveAccountsRegistry(registry);
|
|
381
|
+
return true;
|
|
382
|
+
}
|
|
383
|
+
exports.setAccountTier = setAccountTier;
|
|
384
|
+
/**
|
|
385
|
+
* Get non-paused accounts for a provider
|
|
386
|
+
*/
|
|
387
|
+
function getActiveAccounts(provider) {
|
|
388
|
+
return getProviderAccounts(provider).filter((a) => !a.paused);
|
|
389
|
+
}
|
|
390
|
+
exports.getActiveAccounts = getActiveAccounts;
|
|
285
391
|
/**
|
|
286
392
|
* Remove an account
|
|
287
393
|
*/
|
|
@@ -364,6 +470,10 @@ exports.getAccountTokenPath = getAccountTokenPath;
|
|
|
364
470
|
/**
|
|
365
471
|
* Auto-discover accounts from existing token files
|
|
366
472
|
* Called during migration or first run to populate accounts registry
|
|
473
|
+
*
|
|
474
|
+
* For kiro/ghcp providers without email, generates unique accountId from:
|
|
475
|
+
* 1. OAuth provider + profile ID from filename (e.g., github-ABC123)
|
|
476
|
+
* 2. Fallback: provider + index (e.g., kiro-1, kiro-2)
|
|
367
477
|
*/
|
|
368
478
|
function discoverExistingAccounts() {
|
|
369
479
|
const authDir = (0, config_generator_1.getAuthDir)();
|
|
@@ -405,22 +515,51 @@ function discoverExistingAccounts() {
|
|
|
405
515
|
email = match[1];
|
|
406
516
|
}
|
|
407
517
|
}
|
|
408
|
-
// Use unified ID extraction: email or filename-based unique ID
|
|
409
|
-
const accountId = extractAccountIdFromTokenFile(file, email);
|
|
410
518
|
// Initialize provider section if needed
|
|
411
519
|
if (!registry.providers[provider]) {
|
|
412
520
|
registry.providers[provider] = {
|
|
413
|
-
default:
|
|
521
|
+
default: 'default',
|
|
414
522
|
accounts: {},
|
|
415
523
|
};
|
|
416
524
|
}
|
|
417
525
|
const providerAccounts = registry.providers[provider];
|
|
418
526
|
if (!providerAccounts)
|
|
419
527
|
continue;
|
|
528
|
+
// Skip if token file already registered (under any accountId)
|
|
529
|
+
const existingTokenFiles = Object.values(providerAccounts.accounts).map((a) => a.tokenFile);
|
|
530
|
+
if (existingTokenFiles.includes(file)) {
|
|
531
|
+
continue;
|
|
532
|
+
}
|
|
533
|
+
// Determine accountId based on provider type
|
|
534
|
+
let accountId;
|
|
535
|
+
if (exports.PROVIDERS_WITHOUT_EMAIL.includes(provider) && !email) {
|
|
536
|
+
// For kiro/ghcp without email: extract from filename or generate unique
|
|
537
|
+
// Pattern: kiro-github-ABC123.json -> github-ABC123
|
|
538
|
+
const filenameId = extractAccountIdFromTokenFile(file, undefined);
|
|
539
|
+
if (filenameId !== 'default') {
|
|
540
|
+
accountId = filenameId;
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
// Generate unique ID: provider + incrementing index
|
|
544
|
+
let index = 1;
|
|
545
|
+
while (providerAccounts.accounts[`${provider}-${index}`]) {
|
|
546
|
+
index++;
|
|
547
|
+
}
|
|
548
|
+
accountId = `${provider}-${index}`;
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
// For providers with email: use email or filename extraction
|
|
553
|
+
accountId = extractAccountIdFromTokenFile(file, email);
|
|
554
|
+
}
|
|
420
555
|
// Skip if account already registered
|
|
421
556
|
if (providerAccounts.accounts[accountId]) {
|
|
422
557
|
continue;
|
|
423
558
|
}
|
|
559
|
+
// Set as default if first account
|
|
560
|
+
if (Object.keys(providerAccounts.accounts).length === 0) {
|
|
561
|
+
providerAccounts.default = accountId;
|
|
562
|
+
}
|
|
424
563
|
// Get file stats for creation time
|
|
425
564
|
const stats = fs.statSync(filePath);
|
|
426
565
|
// Register account with auto-generated nickname
|
|
@@ -439,7 +578,33 @@ function discoverExistingAccounts() {
|
|
|
439
578
|
continue;
|
|
440
579
|
}
|
|
441
580
|
}
|
|
442
|
-
|
|
581
|
+
// Reload-merge pattern: reduce race condition with concurrent OAuth registration
|
|
582
|
+
// Reload fresh registry and merge discovered accounts (fresh registry wins on conflicts)
|
|
583
|
+
const freshRegistry = loadAccountsRegistry();
|
|
584
|
+
for (const [providerName, discovered] of Object.entries(registry.providers)) {
|
|
585
|
+
if (!discovered)
|
|
586
|
+
continue;
|
|
587
|
+
const prov = providerName;
|
|
588
|
+
if (!freshRegistry.providers[prov]) {
|
|
589
|
+
freshRegistry.providers[prov] = discovered;
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
// Merge accounts, preferring fresh registry's existing entries
|
|
593
|
+
const freshProviderAccounts = freshRegistry.providers[prov];
|
|
594
|
+
if (!freshProviderAccounts)
|
|
595
|
+
continue;
|
|
596
|
+
for (const [id, meta] of Object.entries(discovered.accounts)) {
|
|
597
|
+
if (!freshProviderAccounts.accounts[id]) {
|
|
598
|
+
freshProviderAccounts.accounts[id] = meta;
|
|
599
|
+
// Set default if none exists
|
|
600
|
+
if (!freshProviderAccounts.default || freshProviderAccounts.default === 'default') {
|
|
601
|
+
freshProviderAccounts.default = id;
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
saveAccountsRegistry(freshRegistry);
|
|
443
608
|
}
|
|
444
609
|
exports.discoverExistingAccounts = discoverExistingAccounts;
|
|
445
610
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-manager.js","sourceRoot":"","sources":["../../src/cliproxy/account-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"account-manager.js","sourceRoot":"","sources":["../../src/cliproxy/account-manager.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,
|
|
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,EAAE,YAAY,EAAwC,MAAM,cAAc,CAAC;AA+JlF;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA2H7B;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"}
|
|
@@ -62,6 +62,58 @@ async function promptAddAccount() {
|
|
|
62
62
|
});
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Prompt user for account nickname (required for kiro/ghcp)
|
|
67
|
+
* Returns null if user cancels
|
|
68
|
+
*/
|
|
69
|
+
async function promptNickname(provider, existingAccounts) {
|
|
70
|
+
const readline = await Promise.resolve().then(() => __importStar(require('readline')));
|
|
71
|
+
const rl = readline.createInterface({
|
|
72
|
+
input: process.stdin,
|
|
73
|
+
output: process.stdout,
|
|
74
|
+
});
|
|
75
|
+
const existingNicknames = existingAccounts.map((a) => a.nickname?.toLowerCase() || a.id.toLowerCase());
|
|
76
|
+
console.log('');
|
|
77
|
+
console.log((0, ui_1.info)(`${provider} accounts require a unique nickname to distinguish them.`));
|
|
78
|
+
if (existingNicknames.length > 0) {
|
|
79
|
+
console.log(` Existing: ${existingNicknames.join(', ')}`);
|
|
80
|
+
}
|
|
81
|
+
return new Promise((resolve) => {
|
|
82
|
+
let resolved = false;
|
|
83
|
+
// Handle Ctrl+C gracefully (only if not already resolved)
|
|
84
|
+
rl.on('close', () => {
|
|
85
|
+
if (!resolved) {
|
|
86
|
+
resolved = true;
|
|
87
|
+
resolve(null);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
const askForNickname = () => {
|
|
91
|
+
rl.question('[?] Enter a nickname for this account: ', (answer) => {
|
|
92
|
+
const nickname = answer.trim();
|
|
93
|
+
if (!nickname) {
|
|
94
|
+
console.log((0, ui_1.fail)('Nickname cannot be empty'));
|
|
95
|
+
askForNickname();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const validationError = (0, account_manager_1.validateNickname)(nickname);
|
|
99
|
+
if (validationError) {
|
|
100
|
+
console.log((0, ui_1.fail)(validationError));
|
|
101
|
+
askForNickname();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (existingNicknames.includes(nickname.toLowerCase())) {
|
|
105
|
+
console.log((0, ui_1.fail)(`Nickname "${nickname}" is already in use. Choose a different one.`));
|
|
106
|
+
askForNickname();
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
resolved = true;
|
|
110
|
+
rl.close();
|
|
111
|
+
resolve(nickname);
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
askForNickname();
|
|
115
|
+
});
|
|
116
|
+
}
|
|
65
117
|
/**
|
|
66
118
|
* Run pre-flight OAuth checks
|
|
67
119
|
*/
|
|
@@ -121,7 +173,19 @@ async function prepareBinary(provider, verbose) {
|
|
|
121
173
|
*/
|
|
122
174
|
async function triggerOAuth(provider, options = {}) {
|
|
123
175
|
const oauthConfig = (0, auth_types_1.getOAuthConfig)(provider);
|
|
124
|
-
const { verbose = false, add = false,
|
|
176
|
+
const { verbose = false, add = false, fromUI = false, noIncognito = true } = options;
|
|
177
|
+
let { nickname } = options;
|
|
178
|
+
// Check for existing accounts
|
|
179
|
+
const existingAccounts = (0, account_manager_1.getProviderAccounts)(provider);
|
|
180
|
+
// For kiro/ghcp: require nickname if not provided (CLI only, not fromUI)
|
|
181
|
+
if (account_manager_1.PROVIDERS_WITHOUT_EMAIL.includes(provider) && !nickname && !fromUI) {
|
|
182
|
+
const promptedNickname = await promptNickname(provider, existingAccounts);
|
|
183
|
+
if (!promptedNickname) {
|
|
184
|
+
console.log((0, ui_1.info)('Cancelled'));
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
nickname = promptedNickname;
|
|
188
|
+
}
|
|
125
189
|
// Handle --import flag: skip OAuth and import from Kiro IDE directly
|
|
126
190
|
if (options.import && provider === 'kiro') {
|
|
127
191
|
const tokenDir = (0, token_manager_1.getProviderTokenDir)(provider);
|
|
@@ -135,8 +199,6 @@ async function triggerOAuth(provider, options = {}) {
|
|
|
135
199
|
const isCLI = !fromUI;
|
|
136
200
|
const headless = options.headless ?? (0, environment_detector_1.isHeadlessEnvironment)();
|
|
137
201
|
const isDeviceCodeFlow = callbackPort === null;
|
|
138
|
-
// Check for existing accounts
|
|
139
|
-
const existingAccounts = (0, account_manager_1.getProviderAccounts)(provider);
|
|
140
202
|
if (existingAccounts.length > 0 && !add) {
|
|
141
203
|
console.log('');
|
|
142
204
|
console.log((0, ui_1.info)(`${existingAccounts.length} account(s) already authenticated for ${oauthConfig.displayName}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-handler.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,uCAAyD;AACzD,sDAAyD;AACzD,0DAAqD;AAErD,
|
|
1
|
+
{"version":3,"file":"oauth-handler.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-executor.d.ts","sourceRoot":"","sources":["../../src/cliproxy/cliproxy-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA+E3D;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cliproxy-executor.d.ts","sourceRoot":"","sources":["../../src/cliproxy/cliproxy-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA+E3D;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,OAAO,CAAC,IAAI,CAAC,CA+qBf;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAepE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,GAAE,MAA8B,EACzC,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -57,7 +57,7 @@ const session_tracker_1 = require("./session-tracker");
|
|
|
57
57
|
const proxy_detector_1 = require("./proxy-detector");
|
|
58
58
|
const startup_lock_1 = require("./startup-lock");
|
|
59
59
|
const unified_config_loader_1 = require("../config/unified-config-loader");
|
|
60
|
-
const
|
|
60
|
+
const quota_manager_1 = require("./quota-manager");
|
|
61
61
|
/** Default executor configuration */
|
|
62
62
|
const DEFAULT_CONFIG = {
|
|
63
63
|
port: config_generator_1.CLIPROXY_DEFAULT_PORT,
|
|
@@ -415,31 +415,26 @@ async function execClaudeWithCLIProxy(claudeCli, provider, args, config = {}) {
|
|
|
415
415
|
if (tokenResult.refreshed) {
|
|
416
416
|
log('Token was refreshed proactively');
|
|
417
417
|
}
|
|
418
|
+
// 3a-1. Update lastUsedAt for the account being used
|
|
419
|
+
// This ensures dashboard shows accurate "Last used" timestamps
|
|
420
|
+
const usedAccount = (0, account_manager_1.getDefaultAccount)(provider);
|
|
421
|
+
if (usedAccount) {
|
|
422
|
+
(0, account_manager_1.touchAccount)(provider, usedAccount.id);
|
|
423
|
+
}
|
|
418
424
|
}
|
|
419
425
|
// 3b. Preflight quota check - auto-switch to account with quota before launch
|
|
420
|
-
//
|
|
426
|
+
// Uses quota-manager for caching, tier priority, and cooldown support
|
|
421
427
|
if (provider === 'agy') {
|
|
422
|
-
const
|
|
423
|
-
if (
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
if (alternative) {
|
|
433
|
-
// Auto-switch to account with remaining quota
|
|
434
|
-
(0, account_manager_1.setDefaultAccount)(provider, alternative.account.id);
|
|
435
|
-
(0, account_manager_1.touchAccount)(provider, alternative.account.id);
|
|
436
|
-
console.log((0, ui_1.info)(`Auto-switched to ${alternative.account.email || alternative.account.id} (current account quota exhausted)`));
|
|
437
|
-
}
|
|
438
|
-
else {
|
|
439
|
-
// No alternatives available - warn but continue
|
|
440
|
-
console.log((0, ui_1.warn)('All accounts appear quota-exhausted'));
|
|
441
|
-
console.log(` Run: ccs cliproxy doctor`);
|
|
442
|
-
}
|
|
428
|
+
const preflight = await (0, quota_manager_1.preflightCheck)(provider);
|
|
429
|
+
if (!preflight.proceed) {
|
|
430
|
+
console.error((0, ui_1.fail)(`Cannot start session: ${preflight.reason}`));
|
|
431
|
+
process.exit(1);
|
|
432
|
+
}
|
|
433
|
+
if (preflight.switchedFrom) {
|
|
434
|
+
console.log((0, ui_1.info)(`Auto-switched to ${preflight.accountId}`));
|
|
435
|
+
console.log(` Reason: ${preflight.reason}`);
|
|
436
|
+
if (preflight.quotaPercent !== undefined) {
|
|
437
|
+
console.log(` New account quota: ${preflight.quotaPercent.toFixed(1)}%`);
|
|
443
438
|
}
|
|
444
439
|
}
|
|
445
440
|
}
|