@kaitranntt/ccs 7.37.0 → 7.37.1-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 +5 -207
- package/dist/cliproxy/account-manager.d.ts.map +1 -1
- package/dist/cliproxy/account-manager.js +35 -795
- package/dist/cliproxy/account-manager.js.map +1 -1
- package/dist/cliproxy/accounts/bulk-ops.d.ts +22 -0
- package/dist/cliproxy/accounts/bulk-ops.d.ts.map +1 -0
- package/dist/cliproxy/accounts/bulk-ops.js +88 -0
- package/dist/cliproxy/accounts/bulk-ops.js.map +1 -0
- package/dist/cliproxy/accounts/index.d.ts +19 -0
- package/dist/cliproxy/accounts/index.d.ts.map +1 -0
- package/dist/cliproxy/accounts/index.js +54 -0
- package/dist/cliproxy/accounts/index.js.map +1 -0
- package/dist/cliproxy/accounts/query.d.ts +36 -0
- package/dist/cliproxy/accounts/query.d.ts.map +1 -0
- package/dist/cliproxy/accounts/query.js +94 -0
- package/dist/cliproxy/accounts/query.js.map +1 -0
- package/dist/cliproxy/accounts/registry.d.ts +74 -0
- package/dist/cliproxy/accounts/registry.d.ts.map +1 -0
- package/dist/cliproxy/accounts/registry.js +510 -0
- package/dist/cliproxy/accounts/registry.js.map +1 -0
- package/dist/cliproxy/accounts/token-file-ops.d.ts +64 -0
- package/dist/cliproxy/accounts/token-file-ops.d.ts.map +1 -0
- package/dist/cliproxy/accounts/token-file-ops.js +206 -0
- package/dist/cliproxy/accounts/token-file-ops.js.map +1 -0
- package/dist/cliproxy/accounts/types.d.ts +66 -0
- package/dist/cliproxy/accounts/types.d.ts.map +1 -0
- package/dist/cliproxy/accounts/types.js +12 -0
- package/dist/cliproxy/accounts/types.js.map +1 -0
- package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -1
- package/dist/cliproxy/auth/token-expiry-checker.js +5 -1
- package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts +11 -28
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +20 -1028
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts +60 -0
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -0
- package/dist/cliproxy/config/env-builder.js +311 -0
- package/dist/cliproxy/config/env-builder.js.map +1 -0
- package/dist/cliproxy/config/generator.d.ts +63 -0
- package/dist/cliproxy/config/generator.d.ts.map +1 -0
- package/dist/cliproxy/config/generator.js +336 -0
- package/dist/cliproxy/config/generator.js.map +1 -0
- package/dist/cliproxy/config/index.d.ts +10 -0
- package/dist/cliproxy/config/index.d.ts.map +1 -0
- package/dist/cliproxy/config/index.js +26 -0
- package/dist/cliproxy/config/index.js.map +1 -0
- package/dist/cliproxy/config/path-resolver.d.ts +47 -0
- package/dist/cliproxy/config/path-resolver.d.ts.map +1 -0
- package/dist/cliproxy/config/path-resolver.js +104 -0
- package/dist/cliproxy/config/path-resolver.js.map +1 -0
- package/dist/cliproxy/config/port-manager.d.ts +33 -0
- package/dist/cliproxy/config/port-manager.d.ts.map +1 -0
- package/dist/cliproxy/config/port-manager.js +68 -0
- package/dist/cliproxy/config/port-manager.js.map +1 -0
- package/dist/cliproxy/config/thinking-config.d.ts +39 -0
- package/dist/cliproxy/config/thinking-config.d.ts.map +1 -0
- package/dist/cliproxy/config/thinking-config.js +143 -0
- package/dist/cliproxy/config/thinking-config.js.map +1 -0
- package/dist/cliproxy/config-generator.d.ts +9 -221
- package/dist/cliproxy/config-generator.d.ts.map +1 -1
- package/dist/cliproxy/config-generator.js +12 -856
- package/dist/cliproxy/config-generator.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.d.ts +45 -0
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -0
- package/dist/cliproxy/executor/env-resolver.js +106 -0
- package/dist/cliproxy/executor/env-resolver.js.map +1 -0
- package/dist/cliproxy/executor/index.d.ts +24 -0
- package/dist/cliproxy/executor/index.d.ts.map +1 -0
- package/dist/cliproxy/executor/index.js +669 -0
- package/dist/cliproxy/executor/index.js.map +1 -0
- package/dist/cliproxy/executor/lifecycle-manager.d.ts +33 -0
- package/dist/cliproxy/executor/lifecycle-manager.d.ts.map +1 -0
- package/dist/cliproxy/executor/lifecycle-manager.js +161 -0
- package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -0
- package/dist/cliproxy/executor/retry-handler.d.ts +27 -0
- package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -0
- package/dist/cliproxy/executor/retry-handler.js +109 -0
- package/dist/cliproxy/executor/retry-handler.js.map +1 -0
- package/dist/cliproxy/executor/session-bridge.d.ts +30 -0
- package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -0
- package/dist/cliproxy/executor/session-bridge.js +232 -0
- package/dist/cliproxy/executor/session-bridge.js.map +1 -0
- package/dist/commands/cliproxy/auth-subcommand.d.ts +10 -0
- package/dist/commands/cliproxy/auth-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/auth-subcommand.js +55 -0
- package/dist/commands/cliproxy/auth-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/help-subcommand.d.ts +8 -0
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/help-subcommand.js +87 -0
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/index.d.ts +11 -0
- package/dist/commands/cliproxy/index.d.ts.map +1 -0
- package/dist/commands/cliproxy/index.js +196 -0
- package/dist/commands/cliproxy/index.js.map +1 -0
- package/dist/commands/cliproxy/install-subcommand.d.ts +14 -0
- package/dist/commands/cliproxy/install-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/install-subcommand.js +112 -0
- package/dist/commands/cliproxy/install-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +10 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +54 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand.d.ts +16 -0
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand.js +383 -0
- package/dist/commands/cliproxy/quota-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/variant-subcommand.d.ts +11 -0
- package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/variant-subcommand.js +292 -0
- package/dist/commands/cliproxy/variant-subcommand.js.map +1 -0
- package/dist/commands/cliproxy-command.d.ts +4 -15
- package/dist/commands/cliproxy-command.d.ts.map +1 -1
- package/dist/commands/cliproxy-command.js +5 -1090
- package/dist/commands/cliproxy-command.js.map +1 -1
- package/dist/commands/version-command.js +1 -1
- package/dist/commands/version-command.js.map +1 -1
- package/dist/ui/assets/{accounts-DmKrgrCj.js → accounts-D0KU1a-4.js} +1 -1
- package/dist/ui/assets/{alert-dialog-CHcjWgRn.js → alert-dialog-BNRDV_Kh.js} +1 -1
- package/dist/ui/assets/{api-BFHZ3RKb.js → api-ClkFu9LY.js} +1 -1
- package/dist/ui/assets/{auth-section-DAI6Q5vU.js → auth-section-CNhNN1Jp.js} +1 -1
- package/dist/ui/assets/{backups-section-B1O8i4FM.js → backups-section-CZ721HIu.js} +1 -1
- package/dist/ui/assets/cliproxy-DeGucfVg.js +3 -0
- package/dist/ui/assets/{cliproxy-control-panel-3zVE7jZH.js → cliproxy-control-panel-T9i_Ldh0.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-DV0JzL4A.js → confirm-dialog-Cy1__gRc.js} +1 -1
- package/dist/ui/assets/{copilot-BX8vT5RR.js → copilot-Cdqs2Jbh.js} +3 -3
- package/dist/ui/assets/{globalenv-section-BAft0m9b.js → globalenv-section-BEKtYN6I.js} +1 -1
- package/dist/ui/assets/{health-ct5TpFUE.js → health-BaHazGgS.js} +1 -1
- package/dist/ui/assets/{index-BOsGipAU.js → index-BTBpI5th.js} +1 -1
- package/dist/ui/assets/{index-CU3zgD6n.js → index-BZn6kF0u.js} +1 -1
- package/dist/ui/assets/{index-B8-K01HW.js → index-C2MS84sf.js} +1 -1
- package/dist/ui/assets/{index-gfWiPznS.js → index-CiULLjNI.js} +8 -8
- package/dist/ui/assets/{index-RZ6b7YTz.js → index-PjscK1jS.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-Ng9oZdrw.js → proxy-status-widget-BY6Lnr80.js} +1 -1
- package/dist/ui/assets/{shared-DpInRmag.js → shared-dZGNvBe9.js} +1 -1
- package/dist/ui/assets/{switch-DkRSlAu-.js → switch-BCFbehJz.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/ui/init.d.ts +1 -1
- package/dist/utils/ui/init.d.ts.map +1 -1
- package/dist/utils/ui/init.js +25 -36
- package/dist/utils/ui/init.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/cliproxy-BsSI8qFW.js +0 -3
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Token file operations and path management
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.validateNickname = exports.generateNickname = exports.extractAccountIdFromTokenFile = exports.tokenFileExists = exports.deleteTokenFile = exports.moveTokenFromPaused = exports.moveTokenToPaused = exports.getAccountTokenPath = exports.getPausedDir = exports.getAccountsRegistryPath = void 0;
|
|
30
|
+
const fs = __importStar(require("fs"));
|
|
31
|
+
const path = __importStar(require("path"));
|
|
32
|
+
const config_generator_1 = require("../config-generator");
|
|
33
|
+
/**
|
|
34
|
+
* Get path to accounts registry file
|
|
35
|
+
*/
|
|
36
|
+
function getAccountsRegistryPath() {
|
|
37
|
+
return path.join((0, config_generator_1.getCliproxyDir)(), 'accounts.json');
|
|
38
|
+
}
|
|
39
|
+
exports.getAccountsRegistryPath = getAccountsRegistryPath;
|
|
40
|
+
/**
|
|
41
|
+
* Get path to paused tokens directory
|
|
42
|
+
* Paused tokens are moved here so CLIProxyAPI won't discover them
|
|
43
|
+
*
|
|
44
|
+
* Uses sibling directory (auth-paused/) instead of subdirectory (auth/paused/)
|
|
45
|
+
* because CLIProxyAPI's watcher uses filepath.Walk() which recursively scans
|
|
46
|
+
* all subdirectories of auth/. A sibling directory is completely outside
|
|
47
|
+
* CLIProxyAPI's scan path, preventing token refresh loops.
|
|
48
|
+
*/
|
|
49
|
+
function getPausedDir() {
|
|
50
|
+
return path.join((0, config_generator_1.getCliproxyDir)(), 'auth-paused');
|
|
51
|
+
}
|
|
52
|
+
exports.getPausedDir = getPausedDir;
|
|
53
|
+
/**
|
|
54
|
+
* Get token file path for an account
|
|
55
|
+
* Returns path in paused/ dir if account is paused, otherwise auth/
|
|
56
|
+
*/
|
|
57
|
+
function getAccountTokenPath(account) {
|
|
58
|
+
const baseDir = account.paused ? getPausedDir() : (0, config_generator_1.getAuthDir)();
|
|
59
|
+
return path.join(baseDir, account.tokenFile);
|
|
60
|
+
}
|
|
61
|
+
exports.getAccountTokenPath = getAccountTokenPath;
|
|
62
|
+
/**
|
|
63
|
+
* Move token file to paused directory
|
|
64
|
+
* Creates paused directory if needed, idempotent
|
|
65
|
+
*/
|
|
66
|
+
function moveTokenToPaused(tokenFile) {
|
|
67
|
+
const authDir = (0, config_generator_1.getAuthDir)();
|
|
68
|
+
const pausedDir = getPausedDir();
|
|
69
|
+
const tokenPath = path.join(authDir, tokenFile);
|
|
70
|
+
const pausedPath = path.join(pausedDir, tokenFile);
|
|
71
|
+
// Skip if already in paused directory
|
|
72
|
+
if (!fs.existsSync(tokenPath)) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
// Create paused directory if it doesn't exist
|
|
77
|
+
if (!fs.existsSync(pausedDir)) {
|
|
78
|
+
fs.mkdirSync(pausedDir, { recursive: true, mode: 0o700 });
|
|
79
|
+
}
|
|
80
|
+
fs.renameSync(tokenPath, pausedPath);
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// File operation failed, caller handles recovery
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.moveTokenToPaused = moveTokenToPaused;
|
|
89
|
+
/**
|
|
90
|
+
* Move token file from paused directory back to auth
|
|
91
|
+
* Idempotent
|
|
92
|
+
*/
|
|
93
|
+
function moveTokenFromPaused(tokenFile) {
|
|
94
|
+
const authDir = (0, config_generator_1.getAuthDir)();
|
|
95
|
+
const pausedDir = getPausedDir();
|
|
96
|
+
const tokenPath = path.join(authDir, tokenFile);
|
|
97
|
+
const pausedPath = path.join(pausedDir, tokenFile);
|
|
98
|
+
// Skip if already in auth directory
|
|
99
|
+
if (!fs.existsSync(pausedPath)) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
fs.renameSync(pausedPath, tokenPath);
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// File operation failed, caller handles recovery
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.moveTokenFromPaused = moveTokenFromPaused;
|
|
112
|
+
/**
|
|
113
|
+
* Delete token file from both auth and paused directories
|
|
114
|
+
* Idempotent
|
|
115
|
+
*/
|
|
116
|
+
function deleteTokenFile(tokenFile) {
|
|
117
|
+
const tokenPath = path.join((0, config_generator_1.getAuthDir)(), tokenFile);
|
|
118
|
+
const pausedPath = path.join(getPausedDir(), tokenFile);
|
|
119
|
+
// Delete from auth directory
|
|
120
|
+
if (fs.existsSync(tokenPath)) {
|
|
121
|
+
try {
|
|
122
|
+
fs.unlinkSync(tokenPath);
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// Ignore deletion errors
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Also delete from paused directory if it exists there
|
|
129
|
+
if (fs.existsSync(pausedPath)) {
|
|
130
|
+
try {
|
|
131
|
+
fs.unlinkSync(pausedPath);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Ignore deletion errors
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.deleteTokenFile = deleteTokenFile;
|
|
139
|
+
/**
|
|
140
|
+
* Check if token file exists in either auth or paused directory
|
|
141
|
+
*/
|
|
142
|
+
function tokenFileExists(tokenFile) {
|
|
143
|
+
const tokenPath = path.join((0, config_generator_1.getAuthDir)(), tokenFile);
|
|
144
|
+
const pausedPath = path.join(getPausedDir(), tokenFile);
|
|
145
|
+
return fs.existsSync(tokenPath) || fs.existsSync(pausedPath);
|
|
146
|
+
}
|
|
147
|
+
exports.tokenFileExists = tokenFileExists;
|
|
148
|
+
/**
|
|
149
|
+
* Extract unique account ID from token filename when email is unavailable
|
|
150
|
+
* For Kiro/GHCP OAuth, filenames are: <provider>-<oauth>-<profile_id>.json
|
|
151
|
+
* Extracts: <oauth>-<profile_id> as unique identifier
|
|
152
|
+
* @example kiro-github-ABC123.json → github-ABC123
|
|
153
|
+
* @example ghcp-amazon-XYZ789.json → amazon-XYZ789
|
|
154
|
+
* @example kiro-nomail.json → default (no OAuth structure)
|
|
155
|
+
*/
|
|
156
|
+
function extractAccountIdFromTokenFile(filename, email) {
|
|
157
|
+
if (email)
|
|
158
|
+
return email;
|
|
159
|
+
// Pattern: <provider>-<oauth>-<profile_id>.json → extract <oauth>-<profile_id>
|
|
160
|
+
// Requires at least 2 hyphens to distinguish from simple filenames like "kiro-nomail.json"
|
|
161
|
+
const match = filename.match(/^[^-]+-([^-]+-[^.]+)\.json$/);
|
|
162
|
+
if (match)
|
|
163
|
+
return match[1];
|
|
164
|
+
return 'default';
|
|
165
|
+
}
|
|
166
|
+
exports.extractAccountIdFromTokenFile = extractAccountIdFromTokenFile;
|
|
167
|
+
/**
|
|
168
|
+
* Generate nickname from email
|
|
169
|
+
* Takes prefix before @ symbol, sanitizes whitespace
|
|
170
|
+
* Validation: 1-50 chars, any non-whitespace (permissive per user preference)
|
|
171
|
+
*/
|
|
172
|
+
function generateNickname(email) {
|
|
173
|
+
if (!email)
|
|
174
|
+
return 'default';
|
|
175
|
+
const prefix = email.split('@')[0];
|
|
176
|
+
// Sanitize: remove whitespace, limit to 50 chars
|
|
177
|
+
return prefix.replace(/\s+/g, '').slice(0, 50) || 'default';
|
|
178
|
+
}
|
|
179
|
+
exports.generateNickname = generateNickname;
|
|
180
|
+
/**
|
|
181
|
+
* Validate nickname
|
|
182
|
+
* Rules: 1-50 chars, no whitespace, URL-safe, no reserved patterns
|
|
183
|
+
* @returns null if valid, error message if invalid
|
|
184
|
+
*/
|
|
185
|
+
function validateNickname(nickname) {
|
|
186
|
+
if (!nickname || nickname.length === 0) {
|
|
187
|
+
return 'Nickname is required';
|
|
188
|
+
}
|
|
189
|
+
if (nickname.length > 50) {
|
|
190
|
+
return 'Nickname must be 50 characters or less';
|
|
191
|
+
}
|
|
192
|
+
if (/\s/.test(nickname)) {
|
|
193
|
+
return 'Nickname cannot contain whitespace';
|
|
194
|
+
}
|
|
195
|
+
// Block URL-unsafe chars that break routing
|
|
196
|
+
if (/[%\/&?#]/.test(nickname)) {
|
|
197
|
+
return 'Nickname cannot contain special URL characters (%, /, &, ?, #)';
|
|
198
|
+
}
|
|
199
|
+
// Block reserved patterns used by auto-discovery (kiro-1, ghcp-2, etc.)
|
|
200
|
+
if (/^(kiro|ghcp)-\d+$/i.test(nickname)) {
|
|
201
|
+
return 'Nickname cannot match reserved pattern (kiro-N, ghcp-N)';
|
|
202
|
+
}
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
exports.validateNickname = validateNickname;
|
|
206
|
+
//# sourceMappingURL=token-file-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-file-ops.js","sourceRoot":"","sources":["../../../src/cliproxy/accounts/token-file-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types and constants for account management
|
|
3
|
+
*/
|
|
4
|
+
import { CLIProxyProvider } from '../types';
|
|
5
|
+
/** Account tier for quota management: ultra > pro > free */
|
|
6
|
+
export type AccountTier = 'free' | 'pro' | 'ultra' | 'unknown';
|
|
7
|
+
/**
|
|
8
|
+
* Providers that typically have empty email in OAuth token files.
|
|
9
|
+
* For these providers, nickname is used as accountId instead of email.
|
|
10
|
+
*/
|
|
11
|
+
export declare const PROVIDERS_WITHOUT_EMAIL: CLIProxyProvider[];
|
|
12
|
+
/** Account information */
|
|
13
|
+
export interface AccountInfo {
|
|
14
|
+
/** Account identifier (email or custom name) */
|
|
15
|
+
id: string;
|
|
16
|
+
/** Email address from OAuth (if available) */
|
|
17
|
+
email?: string;
|
|
18
|
+
/** User-friendly nickname for quick reference (auto-generated from email prefix) */
|
|
19
|
+
nickname?: string;
|
|
20
|
+
/** Provider this account belongs to */
|
|
21
|
+
provider: CLIProxyProvider;
|
|
22
|
+
/** Whether this is the default account for the provider */
|
|
23
|
+
isDefault: boolean;
|
|
24
|
+
/** Token file name in auth directory */
|
|
25
|
+
tokenFile: string;
|
|
26
|
+
/** When account was added */
|
|
27
|
+
createdAt: string;
|
|
28
|
+
/** Last usage time */
|
|
29
|
+
lastUsedAt?: string;
|
|
30
|
+
/** User-paused state (skip in quota rotation) */
|
|
31
|
+
paused?: boolean;
|
|
32
|
+
/** ISO timestamp when paused */
|
|
33
|
+
pausedAt?: string;
|
|
34
|
+
/** Account tier: ultra, pro, or free */
|
|
35
|
+
tier?: AccountTier;
|
|
36
|
+
/** GCP Project ID (Antigravity only) - read-only, fetched from auth token */
|
|
37
|
+
projectId?: string;
|
|
38
|
+
}
|
|
39
|
+
/** Provider accounts configuration */
|
|
40
|
+
export interface ProviderAccounts {
|
|
41
|
+
/** Default account ID for this provider */
|
|
42
|
+
default: string;
|
|
43
|
+
/** Map of account ID to account metadata */
|
|
44
|
+
accounts: Record<string, Omit<AccountInfo, 'id' | 'provider' | 'isDefault'>>;
|
|
45
|
+
}
|
|
46
|
+
/** Accounts registry structure */
|
|
47
|
+
export interface AccountsRegistry {
|
|
48
|
+
/** Version for future migrations */
|
|
49
|
+
version: number;
|
|
50
|
+
/** Accounts organized by provider */
|
|
51
|
+
providers: Partial<Record<CLIProxyProvider, ProviderAccounts>>;
|
|
52
|
+
}
|
|
53
|
+
/** Result of bulk pause/resume operations */
|
|
54
|
+
export interface BulkOperationResult {
|
|
55
|
+
succeeded: string[];
|
|
56
|
+
failed: Array<{
|
|
57
|
+
id: string;
|
|
58
|
+
reason: string;
|
|
59
|
+
}>;
|
|
60
|
+
}
|
|
61
|
+
/** Result of solo account operation */
|
|
62
|
+
export interface SoloOperationResult {
|
|
63
|
+
activated: string;
|
|
64
|
+
paused: string[];
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/accounts/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EAAqB,CAAC;AAE5E,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;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC;CAC9E;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAChE;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared types and constants for account management
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PROVIDERS_WITHOUT_EMAIL = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Providers that typically have empty email in OAuth token files.
|
|
9
|
+
* For these providers, nickname is used as accountId instead of email.
|
|
10
|
+
*/
|
|
11
|
+
exports.PROVIDERS_WITHOUT_EMAIL = ['kiro', 'ghcp'];
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cliproxy/accounts/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAOH;;;GAGG;AACU,QAAA,uBAAuB,GAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-expiry-checker.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-expiry-checker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAK1C,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,YAAY,EAAE,IAAI,CAAC;CACpB;AAYD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"token-expiry-checker.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-expiry-checker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAK1C,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,YAAY,EAAE,IAAI,CAAC;CACpB;AAYD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,IAAI,CA0DxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,EAAE,CAgBzD"}
|
|
@@ -45,7 +45,11 @@ const MAX_TOKEN_FILE_SIZE = 1024 * 1024;
|
|
|
45
45
|
* @returns null if token file doesn't exist or is invalid
|
|
46
46
|
*/
|
|
47
47
|
function getTokenExpiryInfo(provider, accountId) {
|
|
48
|
-
const
|
|
48
|
+
const account = (0, account_manager_1.getProviderAccounts)(provider).find((a) => a.id === accountId);
|
|
49
|
+
if (!account) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
const tokenPath = (0, account_manager_1.getAccountTokenPath)(account);
|
|
49
53
|
if (!tokenPath || !fs.existsSync(tokenPath)) {
|
|
50
54
|
return null;
|
|
51
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-expiry-checker.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-expiry-checker.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAE7B,kEAAgE;AAChE,wDAA8E;AAE9E,uEAAuE;AAC1D,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,iEAAiE;AACpD,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAE1C,2EAA2E;AAC3E,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAC;AA4BxC;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,QAA0B,EAC1B,SAAiB;IAEjB,MAAM,
|
|
1
|
+
{"version":3,"file":"token-expiry-checker.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-expiry-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CLIProxy Executor -
|
|
2
|
+
* CLIProxy Executor - Backwards Compatibility Shim
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* This file re-exports from the modular executor/ structure.
|
|
5
|
+
* All implementation has been moved to:
|
|
6
|
+
* - executor/index.ts - Main orchestrator
|
|
7
|
+
* - executor/lifecycle-manager.ts - Spawn/kill/poll operations
|
|
8
|
+
* - executor/env-resolver.ts - Environment variable resolution
|
|
9
|
+
* - executor/retry-handler.ts - Error recovery and retry logic
|
|
10
|
+
* - executor/session-bridge.ts - Session tracking integration
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* @deprecated Import from './executor' instead
|
|
13
13
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* Execute Claude CLI with CLIProxy (main entry point)
|
|
17
|
-
*
|
|
18
|
-
* @param claudeCli Path to Claude CLI executable
|
|
19
|
-
* @param provider CLIProxy provider (gemini, codex, agy, qwen)
|
|
20
|
-
* @param args Arguments to pass to Claude CLI
|
|
21
|
-
* @param config Optional executor configuration
|
|
22
|
-
*/
|
|
23
|
-
export declare function execClaudeWithCLIProxy(claudeCli: string, provider: CLIProxyProvider, args: string[], config?: Partial<ExecutorConfig>): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Check if a port is available
|
|
26
|
-
*/
|
|
27
|
-
export declare function isPortAvailable(port: number): Promise<boolean>;
|
|
28
|
-
/**
|
|
29
|
-
* Find an available port in range
|
|
30
|
-
*/
|
|
31
|
-
export declare function findAvailablePort(startPort?: number, range?: number): Promise<number>;
|
|
32
|
-
export default execClaudeWithCLIProxy;
|
|
14
|
+
export { execClaudeWithCLIProxy, isPortAvailable, findAvailablePort } from './executor';
|
|
15
|
+
export { default } from './executor';
|
|
33
16
|
//# sourceMappingURL=cliproxy-executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-executor.d.ts","sourceRoot":"","sources":["../../src/cliproxy/cliproxy-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"cliproxy-executor.d.ts","sourceRoot":"","sources":["../../src/cliproxy/cliproxy-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
|