@kaitranntt/ccs 7.13.1-dev.6 → 7.13.1-dev.8
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/auth/auth-types.d.ts +3 -1
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
- package/dist/cliproxy/auth/auth-types.js +8 -5
- package/dist/cliproxy/auth/auth-types.js.map +1 -1
- package/dist/cliproxy/auth/gemini-token-refresh.d.ts +2 -1
- package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +1 -1
- package/dist/cliproxy/auth/gemini-token-refresh.js +4 -3
- package/dist/cliproxy/auth/gemini-token-refresh.js.map +1 -1
- package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-process.js +31 -1
- package/dist/cliproxy/auth/oauth-process.js.map +1 -1
- package/dist/cliproxy/auth/provider-refreshers/index.d.ts +21 -0
- package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -0
- package/dist/cliproxy/auth/provider-refreshers/index.js +56 -0
- package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -0
- package/dist/cliproxy/auth/token-expiry-checker.d.ts +37 -0
- package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -0
- package/dist/cliproxy/auth/token-expiry-checker.js +114 -0
- package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -0
- package/dist/cliproxy/auth/token-refresh-config.d.ts +13 -0
- package/dist/cliproxy/auth/token-refresh-config.d.ts.map +1 -0
- package/dist/cliproxy/auth/token-refresh-config.js +31 -0
- package/dist/cliproxy/auth/token-refresh-config.js.map +1 -0
- package/dist/cliproxy/auth/token-refresh-worker.d.ts +83 -0
- package/dist/cliproxy/auth/token-refresh-worker.d.ts.map +1 -0
- package/dist/cliproxy/auth/token-refresh-worker.js +214 -0
- package/dist/cliproxy/auth/token-refresh-worker.js.map +1 -0
- package/dist/cliproxy/auth-session-manager.d.ts.map +1 -1
- package/dist/cliproxy/auth-session-manager.js +28 -0
- package/dist/cliproxy/auth-session-manager.js.map +1 -1
- package/dist/cliproxy/service-manager.d.ts +12 -0
- package/dist/cliproxy/service-manager.d.ts.map +1 -1
- package/dist/cliproxy/service-manager.js +66 -1
- package/dist/cliproxy/service-manager.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +18 -0
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/management/oauth-port-diagnostics.js +2 -2
- package/dist/management/oauth-port-diagnostics.js.map +1 -1
- package/dist/utils/port-utils.d.ts.map +1 -1
- package/dist/utils/port-utils.js +12 -9
- package/dist/utils/port-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Refresh Worker
|
|
3
|
+
*
|
|
4
|
+
* Background worker that periodically checks and refreshes OAuth tokens
|
|
5
|
+
* before they expire. Runs as interval loop with retry logic.
|
|
6
|
+
*/
|
|
7
|
+
import { CLIProxyProvider } from '../types';
|
|
8
|
+
/** Worker configuration */
|
|
9
|
+
export interface TokenRefreshConfig {
|
|
10
|
+
/** Refresh check interval in minutes (default: 30) */
|
|
11
|
+
refreshInterval: number;
|
|
12
|
+
/** Preemptive refresh time in minutes (default: 45) */
|
|
13
|
+
preemptiveTime: number;
|
|
14
|
+
/** Maximum retry attempts per token (default: 3) */
|
|
15
|
+
maxRetries: number;
|
|
16
|
+
/** Base delay for exponential backoff in ms (default: 1000) */
|
|
17
|
+
retryBaseDelay: number;
|
|
18
|
+
/** Timeout for refresh operations in ms (default: 10000) */
|
|
19
|
+
refreshTimeout: number;
|
|
20
|
+
/** Enable verbose logging */
|
|
21
|
+
verbose: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Result of a token refresh attempt */
|
|
24
|
+
export interface RefreshResult {
|
|
25
|
+
provider: CLIProxyProvider;
|
|
26
|
+
accountId: string;
|
|
27
|
+
success: boolean;
|
|
28
|
+
error?: string;
|
|
29
|
+
refreshedAt?: Date;
|
|
30
|
+
nextExpiry?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Background token refresh worker
|
|
34
|
+
* Manages periodic token refresh checks with retry logic
|
|
35
|
+
*/
|
|
36
|
+
export declare class TokenRefreshWorker {
|
|
37
|
+
private config;
|
|
38
|
+
private intervalId;
|
|
39
|
+
private running;
|
|
40
|
+
private lastResults;
|
|
41
|
+
private exitHandler;
|
|
42
|
+
constructor(config?: Partial<TokenRefreshConfig>);
|
|
43
|
+
/**
|
|
44
|
+
* Start the worker
|
|
45
|
+
* Runs refresh loop immediately, then on interval
|
|
46
|
+
*/
|
|
47
|
+
start(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Stop the worker
|
|
50
|
+
*/
|
|
51
|
+
stop(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Check if worker is active
|
|
54
|
+
*/
|
|
55
|
+
isActive(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Manually trigger refresh check now
|
|
58
|
+
*/
|
|
59
|
+
refreshNow(): Promise<RefreshResult[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Get results from last refresh cycle
|
|
62
|
+
*/
|
|
63
|
+
getLastRefreshResults(): RefreshResult[];
|
|
64
|
+
/**
|
|
65
|
+
* Main refresh loop
|
|
66
|
+
* Checks all tokens and refreshes those needing refresh
|
|
67
|
+
*/
|
|
68
|
+
private refreshLoop;
|
|
69
|
+
/**
|
|
70
|
+
* Refresh a single token with retry logic
|
|
71
|
+
* Uses exponential backoff on failures
|
|
72
|
+
*/
|
|
73
|
+
private refreshWithRetry;
|
|
74
|
+
/**
|
|
75
|
+
* Check if error is unrecoverable (should not retry)
|
|
76
|
+
*/
|
|
77
|
+
private isUnrecoverableError;
|
|
78
|
+
/**
|
|
79
|
+
* Log message if verbose enabled
|
|
80
|
+
*/
|
|
81
|
+
private log;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=token-refresh-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-refresh-worker.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-refresh-worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,2BAA2B;AAC3B,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmDD;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAA6B;gBAEpC,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAIpD;;;OAGG;IACH,KAAK,IAAI,IAAI;IAwBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAsBZ;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI5C;;OAEG;IACH,qBAAqB,IAAI,aAAa,EAAE;IAIxC;;;OAGG;YACW,WAAW;IAkCzB;;;OAGG;YACW,gBAAgB;IA+C9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Token Refresh Worker
|
|
4
|
+
*
|
|
5
|
+
* Background worker that periodically checks and refreshes OAuth tokens
|
|
6
|
+
* before they expire. Runs as interval loop with retry logic.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TokenRefreshWorker = void 0;
|
|
10
|
+
const token_expiry_checker_1 = require("./token-expiry-checker");
|
|
11
|
+
const provider_refreshers_1 = require("./provider-refreshers");
|
|
12
|
+
/** Default worker configuration */
|
|
13
|
+
const DEFAULT_CONFIG = {
|
|
14
|
+
refreshInterval: 30,
|
|
15
|
+
preemptiveTime: 45,
|
|
16
|
+
maxRetries: 3,
|
|
17
|
+
retryBaseDelay: 1000,
|
|
18
|
+
refreshTimeout: 10000,
|
|
19
|
+
verbose: false,
|
|
20
|
+
};
|
|
21
|
+
/** Minimum config values to prevent infinite loops */
|
|
22
|
+
const MIN_REFRESH_INTERVAL = 1; // 1 minute minimum
|
|
23
|
+
const MIN_RETRY_BASE_DELAY = 100; // 100ms minimum
|
|
24
|
+
/** Unrecoverable error patterns - don't retry these */
|
|
25
|
+
const UNRECOVERABLE_ERRORS = [
|
|
26
|
+
'No refresh token',
|
|
27
|
+
'Invalid client',
|
|
28
|
+
'Invalid grant',
|
|
29
|
+
'Token has been revoked',
|
|
30
|
+
'Token not found',
|
|
31
|
+
];
|
|
32
|
+
/** Validate and sanitize config values */
|
|
33
|
+
function sanitizeConfig(config) {
|
|
34
|
+
return {
|
|
35
|
+
refreshInterval: Math.max(MIN_REFRESH_INTERVAL, config.refreshInterval || DEFAULT_CONFIG.refreshInterval),
|
|
36
|
+
preemptiveTime: Math.max(0, config.preemptiveTime || DEFAULT_CONFIG.preemptiveTime),
|
|
37
|
+
maxRetries: Math.max(1, config.maxRetries || DEFAULT_CONFIG.maxRetries),
|
|
38
|
+
retryBaseDelay: Math.max(MIN_RETRY_BASE_DELAY, config.retryBaseDelay || DEFAULT_CONFIG.retryBaseDelay),
|
|
39
|
+
refreshTimeout: Math.max(1000, config.refreshTimeout || DEFAULT_CONFIG.refreshTimeout),
|
|
40
|
+
verbose: config.verbose ?? DEFAULT_CONFIG.verbose,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/** Promise with timeout */
|
|
44
|
+
function withTimeout(promise, timeoutMs, errorMsg) {
|
|
45
|
+
return Promise.race([
|
|
46
|
+
promise,
|
|
47
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(errorMsg)), timeoutMs)),
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Background token refresh worker
|
|
52
|
+
* Manages periodic token refresh checks with retry logic
|
|
53
|
+
*/
|
|
54
|
+
class TokenRefreshWorker {
|
|
55
|
+
constructor(config = {}) {
|
|
56
|
+
this.intervalId = null;
|
|
57
|
+
this.running = false;
|
|
58
|
+
this.lastResults = [];
|
|
59
|
+
this.exitHandler = null;
|
|
60
|
+
this.config = sanitizeConfig({ ...DEFAULT_CONFIG, ...config });
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Start the worker
|
|
64
|
+
* Runs refresh loop immediately, then on interval
|
|
65
|
+
*/
|
|
66
|
+
start() {
|
|
67
|
+
if (this.running) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this.running = true;
|
|
71
|
+
this.log('[i] Token refresh worker started');
|
|
72
|
+
// Register process exit handlers for cleanup
|
|
73
|
+
this.exitHandler = () => this.stop();
|
|
74
|
+
process.on('SIGINT', this.exitHandler);
|
|
75
|
+
process.on('SIGTERM', this.exitHandler);
|
|
76
|
+
process.on('beforeExit', this.exitHandler);
|
|
77
|
+
// Run immediately on start
|
|
78
|
+
void this.refreshLoop();
|
|
79
|
+
// Then run on interval
|
|
80
|
+
const intervalMs = this.config.refreshInterval * 60 * 1000;
|
|
81
|
+
this.intervalId = setInterval(() => {
|
|
82
|
+
void this.refreshLoop();
|
|
83
|
+
}, intervalMs);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Stop the worker
|
|
87
|
+
*/
|
|
88
|
+
stop() {
|
|
89
|
+
if (!this.running) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this.running = false;
|
|
93
|
+
if (this.intervalId) {
|
|
94
|
+
clearInterval(this.intervalId);
|
|
95
|
+
this.intervalId = null;
|
|
96
|
+
}
|
|
97
|
+
// Remove process exit handlers
|
|
98
|
+
if (this.exitHandler) {
|
|
99
|
+
process.off('SIGINT', this.exitHandler);
|
|
100
|
+
process.off('SIGTERM', this.exitHandler);
|
|
101
|
+
process.off('beforeExit', this.exitHandler);
|
|
102
|
+
this.exitHandler = null;
|
|
103
|
+
}
|
|
104
|
+
this.log('[i] Token refresh worker stopped');
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Check if worker is active
|
|
108
|
+
*/
|
|
109
|
+
isActive() {
|
|
110
|
+
return this.running;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Manually trigger refresh check now
|
|
114
|
+
*/
|
|
115
|
+
async refreshNow() {
|
|
116
|
+
return await this.refreshLoop();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get results from last refresh cycle
|
|
120
|
+
*/
|
|
121
|
+
getLastRefreshResults() {
|
|
122
|
+
return [...this.lastResults];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Main refresh loop
|
|
126
|
+
* Checks all tokens and refreshes those needing refresh
|
|
127
|
+
*/
|
|
128
|
+
async refreshLoop() {
|
|
129
|
+
const results = [];
|
|
130
|
+
try {
|
|
131
|
+
const tokens = (0, token_expiry_checker_1.getAllTokenExpiryInfo)();
|
|
132
|
+
const tokensNeedingRefresh = tokens.filter((t) => t.needsRefresh);
|
|
133
|
+
if (tokensNeedingRefresh.length === 0) {
|
|
134
|
+
this.log('[OK] All tokens valid, no refresh needed');
|
|
135
|
+
this.lastResults = [];
|
|
136
|
+
return results;
|
|
137
|
+
}
|
|
138
|
+
this.log(`[i] Refreshing ${tokensNeedingRefresh.length} token(s)...`);
|
|
139
|
+
for (const token of tokensNeedingRefresh) {
|
|
140
|
+
const result = await this.refreshWithRetry(token);
|
|
141
|
+
results.push(result);
|
|
142
|
+
if (result.success) {
|
|
143
|
+
this.log(`[OK] ${token.provider}/${token.accountId} refreshed`);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.log(`[X] ${token.provider}/${token.accountId} failed: ${result.error}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
152
|
+
this.log(`[X] Refresh loop error: ${msg}`);
|
|
153
|
+
}
|
|
154
|
+
this.lastResults = results;
|
|
155
|
+
return results;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Refresh a single token with retry logic
|
|
159
|
+
* Uses exponential backoff on failures
|
|
160
|
+
*/
|
|
161
|
+
async refreshWithRetry(token) {
|
|
162
|
+
let lastError = 'Unknown error';
|
|
163
|
+
for (let attempt = 0; attempt < this.config.maxRetries; attempt++) {
|
|
164
|
+
try {
|
|
165
|
+
// Apply timeout to refresh operation
|
|
166
|
+
const result = await withTimeout((0, provider_refreshers_1.refreshToken)(token.provider, token.accountId), this.config.refreshTimeout, `Refresh timeout after ${this.config.refreshTimeout}ms`);
|
|
167
|
+
if (result.success) {
|
|
168
|
+
return {
|
|
169
|
+
provider: token.provider,
|
|
170
|
+
accountId: token.accountId,
|
|
171
|
+
success: true,
|
|
172
|
+
refreshedAt: new Date(),
|
|
173
|
+
nextExpiry: result.expiresAt,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
lastError = result.error || 'Refresh failed';
|
|
177
|
+
// Don't retry if error indicates unrecoverable issue
|
|
178
|
+
if (this.isUnrecoverableError(lastError)) {
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
lastError = error instanceof Error ? error.message : 'Unknown error';
|
|
184
|
+
}
|
|
185
|
+
// Exponential backoff before retry
|
|
186
|
+
if (attempt < this.config.maxRetries - 1) {
|
|
187
|
+
const delay = this.config.retryBaseDelay * Math.pow(2, attempt);
|
|
188
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
provider: token.provider,
|
|
193
|
+
accountId: token.accountId,
|
|
194
|
+
success: false,
|
|
195
|
+
error: lastError,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Check if error is unrecoverable (should not retry)
|
|
200
|
+
*/
|
|
201
|
+
isUnrecoverableError(error) {
|
|
202
|
+
return UNRECOVERABLE_ERRORS.some((pattern) => error.includes(pattern));
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Log message if verbose enabled
|
|
206
|
+
*/
|
|
207
|
+
log(msg) {
|
|
208
|
+
if (this.config.verbose) {
|
|
209
|
+
console.error(`[token-refresh] ${msg}`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
exports.TokenRefreshWorker = TokenRefreshWorker;
|
|
214
|
+
//# sourceMappingURL=token-refresh-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-refresh-worker.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-refresh-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-session-manager.d.ts","sourceRoot":"","sources":["../../src/cliproxy/auth-session-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-session-manager.d.ts","sourceRoot":"","sources":["../../src/cliproxy/auth-session-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAK7C,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,uBAAqB,CAAC;AA6BpD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACrB,IAAI,CAUN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAKrF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAc5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAE5E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAOtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAarE"}
|
|
@@ -8,8 +8,34 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.cancelAllSessionsForProvider = exports.hasActiveSession = exports.getActiveSessionForProvider = exports.getActiveSession = exports.cancelAuthSession = exports.unregisterAuthSession = exports.attachProcessToSession = exports.registerAuthSession = exports.authSessionEvents = void 0;
|
|
10
10
|
const events_1 = require("events");
|
|
11
|
+
// H8: TTL for stale session cleanup (10 minutes - generous for OAuth flows)
|
|
12
|
+
const SESSION_TTL_MS = 10 * 60 * 1000;
|
|
11
13
|
exports.authSessionEvents = new events_1.EventEmitter();
|
|
12
14
|
const activeSessions = new Map();
|
|
15
|
+
// H8: Periodic cleanup of stale sessions (prevents memory leak from orphaned sessions)
|
|
16
|
+
let cleanupInterval = null;
|
|
17
|
+
function startCleanupInterval() {
|
|
18
|
+
if (cleanupInterval)
|
|
19
|
+
return;
|
|
20
|
+
cleanupInterval = setInterval(() => {
|
|
21
|
+
const now = Date.now();
|
|
22
|
+
for (const [sessionId, session] of activeSessions.entries()) {
|
|
23
|
+
if (now - session.startedAt > SESSION_TTL_MS) {
|
|
24
|
+
// Stale session - kill process if still running, then remove
|
|
25
|
+
if (session.process && !session.process.killed) {
|
|
26
|
+
session.process.kill('SIGTERM');
|
|
27
|
+
}
|
|
28
|
+
activeSessions.delete(sessionId);
|
|
29
|
+
exports.authSessionEvents.emit('session:expired', sessionId);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Stop interval if no active sessions
|
|
33
|
+
if (activeSessions.size === 0 && cleanupInterval) {
|
|
34
|
+
clearInterval(cleanupInterval);
|
|
35
|
+
cleanupInterval = null;
|
|
36
|
+
}
|
|
37
|
+
}, 60000); // Check every minute
|
|
38
|
+
}
|
|
13
39
|
/**
|
|
14
40
|
* Register an active OAuth session
|
|
15
41
|
*/
|
|
@@ -20,6 +46,8 @@ function registerAuthSession(sessionId, provider, process) {
|
|
|
20
46
|
startedAt: Date.now(),
|
|
21
47
|
process,
|
|
22
48
|
});
|
|
49
|
+
// H8: Start TTL cleanup when first session registered
|
|
50
|
+
startCleanupInterval();
|
|
23
51
|
exports.authSessionEvents.emit('session:started', sessionId, provider);
|
|
24
52
|
}
|
|
25
53
|
exports.registerAuthSession = registerAuthSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-session-manager.js","sourceRoot":"","sources":["../../src/cliproxy/auth-session-manager.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAAsC;
|
|
1
|
+
{"version":3,"file":"auth-session-manager.js","sourceRoot":"","sources":["../../src/cliproxy/auth-session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* Unlike cliproxy-executor.ts which runs proxy per-session,
|
|
11
11
|
* this module manages a persistent background instance.
|
|
12
12
|
*/
|
|
13
|
+
import { type RefreshResult } from './auth/token-refresh-worker';
|
|
13
14
|
export interface ServiceStartResult {
|
|
14
15
|
started: boolean;
|
|
15
16
|
alreadyRunning: boolean;
|
|
@@ -40,4 +41,15 @@ export declare function getServiceStatus(port?: number): Promise<{
|
|
|
40
41
|
managedByUs: boolean;
|
|
41
42
|
port: number;
|
|
42
43
|
}>;
|
|
44
|
+
/**
|
|
45
|
+
* Check if token refresh worker is running
|
|
46
|
+
*/
|
|
47
|
+
export declare function isTokenRefreshWorkerRunning(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Get token refresh worker status
|
|
50
|
+
*/
|
|
51
|
+
export declare function getTokenRefreshStatus(): {
|
|
52
|
+
running: boolean;
|
|
53
|
+
lastResults: RefreshResult[] | null;
|
|
54
|
+
};
|
|
43
55
|
//# sourceMappingURL=service-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-manager.d.ts","sourceRoot":"","sources":["../../src/cliproxy/service-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"service-manager.d.ts","sourceRoot":"","sources":["../../src/cliproxy/service-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AA4GrF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,GAAE,MAA8B,EACpC,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAoJ7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAc7C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,MAA8B,GAAG,OAAO,CAAC;IACpF,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAKD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;CACrC,CASA"}
|
|
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
35
35
|
return result;
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.getServiceStatus = exports.stopCliproxyService = exports.ensureCliproxyService = void 0;
|
|
38
|
+
exports.getTokenRefreshStatus = exports.isTokenRefreshWorkerRunning = exports.getServiceStatus = exports.stopCliproxyService = exports.ensureCliproxyService = void 0;
|
|
39
39
|
const child_process_1 = require("child_process");
|
|
40
40
|
const net = __importStar(require("net"));
|
|
41
41
|
const binary_manager_1 = require("./binary-manager");
|
|
@@ -44,8 +44,12 @@ const session_tracker_1 = require("./session-tracker");
|
|
|
44
44
|
const proxy_detector_1 = require("./proxy-detector");
|
|
45
45
|
const startup_lock_1 = require("./startup-lock");
|
|
46
46
|
const stats_fetcher_1 = require("./stats-fetcher");
|
|
47
|
+
const token_refresh_worker_1 = require("./auth/token-refresh-worker");
|
|
48
|
+
const token_refresh_config_1 = require("./auth/token-refresh-config");
|
|
47
49
|
/** Background proxy process reference */
|
|
48
50
|
let proxyProcess = null;
|
|
51
|
+
/** Token refresh worker instance */
|
|
52
|
+
let tokenRefreshWorker = null;
|
|
49
53
|
/** Cleanup registered flag */
|
|
50
54
|
let cleanupRegistered = false;
|
|
51
55
|
/**
|
|
@@ -84,6 +88,12 @@ function registerCleanup() {
|
|
|
84
88
|
if (cleanupRegistered)
|
|
85
89
|
return;
|
|
86
90
|
const cleanup = () => {
|
|
91
|
+
// Stop token refresh worker first
|
|
92
|
+
if (tokenRefreshWorker && tokenRefreshWorker.isActive()) {
|
|
93
|
+
tokenRefreshWorker.stop();
|
|
94
|
+
tokenRefreshWorker = null;
|
|
95
|
+
}
|
|
96
|
+
// Then stop proxy process
|
|
87
97
|
if (proxyProcess && !proxyProcess.killed) {
|
|
88
98
|
proxyProcess.kill('SIGTERM');
|
|
89
99
|
proxyProcess = null;
|
|
@@ -94,6 +104,33 @@ function registerCleanup() {
|
|
|
94
104
|
process.once('SIGINT', cleanup);
|
|
95
105
|
cleanupRegistered = true;
|
|
96
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Start token refresh worker if configured
|
|
109
|
+
* @param verbose Enable verbose logging
|
|
110
|
+
*/
|
|
111
|
+
function startTokenRefreshWorker(verbose) {
|
|
112
|
+
// Skip if already running
|
|
113
|
+
if (tokenRefreshWorker && tokenRefreshWorker.isActive()) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// Load config
|
|
117
|
+
const config = (0, token_refresh_config_1.getTokenRefreshConfig)();
|
|
118
|
+
if (!config) {
|
|
119
|
+
// Not configured or disabled
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
// Create and start worker
|
|
123
|
+
tokenRefreshWorker = new token_refresh_worker_1.TokenRefreshWorker({
|
|
124
|
+
refreshInterval: config.interval_minutes ?? 30,
|
|
125
|
+
preemptiveTime: config.preemptive_minutes ?? 45,
|
|
126
|
+
maxRetries: config.max_retries ?? 3,
|
|
127
|
+
verbose: config.verbose || verbose,
|
|
128
|
+
});
|
|
129
|
+
tokenRefreshWorker.start();
|
|
130
|
+
if (verbose) {
|
|
131
|
+
console.error('[i] Token refresh worker started');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
97
134
|
/**
|
|
98
135
|
* Ensure CLIProxy service is running
|
|
99
136
|
*
|
|
@@ -229,6 +266,8 @@ async function ensureCliproxyService(port = config_generator_1.CLIPROXY_DEFAULT_
|
|
|
229
266
|
(0, session_tracker_1.registerSession)(port, proxyProcess.pid);
|
|
230
267
|
log(`Session registered for PID ${proxyProcess.pid}`);
|
|
231
268
|
}
|
|
269
|
+
// 6. Start token refresh worker if configured
|
|
270
|
+
startTokenRefreshWorker(verbose);
|
|
232
271
|
return { started: true, alreadyRunning: false, port };
|
|
233
272
|
});
|
|
234
273
|
}
|
|
@@ -237,6 +276,12 @@ exports.ensureCliproxyService = ensureCliproxyService;
|
|
|
237
276
|
* Stop the managed CLIProxy service
|
|
238
277
|
*/
|
|
239
278
|
function stopCliproxyService() {
|
|
279
|
+
// Stop token refresh worker first
|
|
280
|
+
if (tokenRefreshWorker && tokenRefreshWorker.isActive()) {
|
|
281
|
+
tokenRefreshWorker.stop();
|
|
282
|
+
tokenRefreshWorker = null;
|
|
283
|
+
}
|
|
284
|
+
// Then stop proxy process
|
|
240
285
|
if (proxyProcess && !proxyProcess.killed) {
|
|
241
286
|
proxyProcess.kill('SIGTERM');
|
|
242
287
|
proxyProcess = null;
|
|
@@ -254,4 +299,24 @@ async function getServiceStatus(port = config_generator_1.CLIPROXY_DEFAULT_PORT)
|
|
|
254
299
|
return { running, managedByUs, port };
|
|
255
300
|
}
|
|
256
301
|
exports.getServiceStatus = getServiceStatus;
|
|
302
|
+
/**
|
|
303
|
+
* Check if token refresh worker is running
|
|
304
|
+
*/
|
|
305
|
+
function isTokenRefreshWorkerRunning() {
|
|
306
|
+
return tokenRefreshWorker !== null && tokenRefreshWorker.isActive();
|
|
307
|
+
}
|
|
308
|
+
exports.isTokenRefreshWorkerRunning = isTokenRefreshWorkerRunning;
|
|
309
|
+
/**
|
|
310
|
+
* Get token refresh worker status
|
|
311
|
+
*/
|
|
312
|
+
function getTokenRefreshStatus() {
|
|
313
|
+
if (!tokenRefreshWorker) {
|
|
314
|
+
return { running: false, lastResults: null };
|
|
315
|
+
}
|
|
316
|
+
return {
|
|
317
|
+
running: tokenRefreshWorker.isActive(),
|
|
318
|
+
lastResults: tokenRefreshWorker.getLastRefreshResults(),
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
exports.getTokenRefreshStatus = getTokenRefreshStatus;
|
|
257
322
|
//# sourceMappingURL=service-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-manager.js","sourceRoot":"","sources":["../../src/cliproxy/service-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAoD;AACpD,yCAA2B;AAC3B,qDAAwD;AACxD,yDAM4B;AAC5B,uDAAoD;AACpD,qDAA2E;AAC3E,iDAAiD;AACjD,mDAAoD;
|
|
1
|
+
{"version":3,"file":"service-manager.js","sourceRoot":"","sources":["../../src/cliproxy/service-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,6 +85,22 @@ export interface CLIProxyLoggingConfig {
|
|
|
85
85
|
/** Enable request logging for debugging (default: false) */
|
|
86
86
|
request_log?: boolean;
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Token refresh configuration.
|
|
90
|
+
* Manages background token refresh worker settings.
|
|
91
|
+
*/
|
|
92
|
+
export interface TokenRefreshSettings {
|
|
93
|
+
/** Enable background token refresh (default: false) */
|
|
94
|
+
enabled?: boolean;
|
|
95
|
+
/** Refresh check interval in minutes (default: 30) */
|
|
96
|
+
interval_minutes?: number;
|
|
97
|
+
/** Preemptive refresh time in minutes (default: 45) */
|
|
98
|
+
preemptive_minutes?: number;
|
|
99
|
+
/** Maximum retry attempts per token (default: 3) */
|
|
100
|
+
max_retries?: number;
|
|
101
|
+
/** Enable verbose logging (default: false) */
|
|
102
|
+
verbose?: boolean;
|
|
103
|
+
}
|
|
88
104
|
/**
|
|
89
105
|
* CLIProxy configuration section.
|
|
90
106
|
*/
|
|
@@ -101,6 +117,8 @@ export interface CLIProxyConfig {
|
|
|
101
117
|
kiro_no_incognito?: boolean;
|
|
102
118
|
/** Global auth configuration for CLIProxyAPI */
|
|
103
119
|
auth?: CLIProxyAuthConfig;
|
|
120
|
+
/** Background token refresh worker settings */
|
|
121
|
+
token_refresh?: TokenRefreshSettings;
|
|
104
122
|
}
|
|
105
123
|
/**
|
|
106
124
|
* User preferences.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-config-types.d.ts","sourceRoot":"","sources":["../../src/config/unified-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,KAAK,CAAC;IACZ,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1E,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,cAAc,EAAE,aAAa,CAAC;IAC9B,oDAAoD;IACpD,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAChD,kDAAkD;IAClD,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,IAAI,CAAC,EAAE,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"unified-config-types.d.ts","sourceRoot":"","sources":["../../src/config/unified-config-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-config-types.js","sourceRoot":"","sources":["../../src/config/unified-config-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH;;;;;;;GAOG;AACU,QAAA,sBAAsB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"unified-config-types.js","sourceRoot":"","sources":["../../src/config/unified-config-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH;;;;;;;GAOG;AACU,QAAA,sBAAsB,GAAG,CAAC,CAAC;AA6RxC;;;GAGG;AACU,QAAA,kBAAkB,GAA2B;IACxD,mBAAmB,EAAE,GAAG;IACxB,uBAAuB,EAAE,GAAG;IAC5B,iBAAiB,EAAE,GAAG;CACvB,CAAC;AA2DF;;;;GAIG;AACU,QAAA,sBAAsB,GAAkB;IACnD,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,YAAY;IAC1B,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,SAAS,EAAE,uBAAuB;CAC1C,CAAC;AAEF;;;;GAIG;AACU,QAAA,8BAA8B,GAAyB;IAClE,MAAM,EAAE;QACN,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,EAAE;QACR,2FAA2F;QAC3F,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,EAAE;KACf;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,KAAK;KAClB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,IAAI;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,wBAAwB;IACtC,OAAO;QACL,OAAO,EAAE,8BAAsB;QAC/B,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;YACtE,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,KAAK;aACnB;SACF;QACD,WAAW,EAAE;YACX,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI;SAClB;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,SAAS,EAAE;gBACT,MAAM,EAAE;oBACN,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,EAAE;iBACZ;gBACD,QAAQ,EAAE;oBACR,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,EAAE;iBACZ;gBACD,IAAI,EAAE;oBACJ,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,EAAE;iBACZ;aACF;SACF;QACD,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,0BAAkB,EAAE;SAC/B;QACD,OAAO,EAAE,EAAE,GAAG,8BAAsB,EAAE;QACtC,eAAe,EAAE,EAAE,GAAG,sCAA8B,EAAE;KACvD,CAAC;AACJ,CAAC;AA9CD,4DA8CC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,GAAY;IAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,mEAAmE;IACnE,oFAAoF;IACpF,OAAO,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AACnE,CAAC;AAND,0CAMC"}
|
|
@@ -23,7 +23,7 @@ exports.OAUTH_CALLBACK_PORTS = {
|
|
|
23
23
|
codex: 1455,
|
|
24
24
|
agy: 51121,
|
|
25
25
|
qwen: null, // Device Code Flow - no callback port
|
|
26
|
-
iflow:
|
|
26
|
+
iflow: 11451, // Authorization Code Flow
|
|
27
27
|
kiro: 9876, // Authorization Code Flow
|
|
28
28
|
ghcp: null, // Device Code Flow - no callback port
|
|
29
29
|
};
|
|
@@ -35,7 +35,7 @@ exports.OAUTH_FLOW_TYPES = {
|
|
|
35
35
|
codex: 'authorization_code',
|
|
36
36
|
agy: 'authorization_code',
|
|
37
37
|
qwen: 'device_code',
|
|
38
|
-
iflow: '
|
|
38
|
+
iflow: 'authorization_code',
|
|
39
39
|
kiro: 'authorization_code',
|
|
40
40
|
ghcp: 'device_code',
|
|
41
41
|
};
|