@kaitranntt/ccs 7.13.1-dev.6 → 7.13.1-dev.7

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.
Files changed (28) hide show
  1. package/dist/cliproxy/auth/gemini-token-refresh.d.ts +2 -1
  2. package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +1 -1
  3. package/dist/cliproxy/auth/gemini-token-refresh.js +4 -3
  4. package/dist/cliproxy/auth/gemini-token-refresh.js.map +1 -1
  5. package/dist/cliproxy/auth/provider-refreshers/index.d.ts +21 -0
  6. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -0
  7. package/dist/cliproxy/auth/provider-refreshers/index.js +56 -0
  8. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -0
  9. package/dist/cliproxy/auth/token-expiry-checker.d.ts +37 -0
  10. package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -0
  11. package/dist/cliproxy/auth/token-expiry-checker.js +114 -0
  12. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -0
  13. package/dist/cliproxy/auth/token-refresh-config.d.ts +13 -0
  14. package/dist/cliproxy/auth/token-refresh-config.d.ts.map +1 -0
  15. package/dist/cliproxy/auth/token-refresh-config.js +31 -0
  16. package/dist/cliproxy/auth/token-refresh-config.js.map +1 -0
  17. package/dist/cliproxy/auth/token-refresh-worker.d.ts +83 -0
  18. package/dist/cliproxy/auth/token-refresh-worker.d.ts.map +1 -0
  19. package/dist/cliproxy/auth/token-refresh-worker.js +214 -0
  20. package/dist/cliproxy/auth/token-refresh-worker.js.map +1 -0
  21. package/dist/cliproxy/service-manager.d.ts +12 -0
  22. package/dist/cliproxy/service-manager.d.ts.map +1 -1
  23. package/dist/cliproxy/service-manager.js +66 -1
  24. package/dist/cliproxy/service-manager.js.map +1 -1
  25. package/dist/config/unified-config-types.d.ts +18 -0
  26. package/dist/config/unified-config-types.d.ts.map +1 -1
  27. package/dist/config/unified-config-types.js.map +1 -1
  28. package/package.json +1 -1
@@ -14,11 +14,12 @@ export declare function getGeminiOAuthPath(): string;
14
14
  export declare function isGeminiTokenExpiringSoon(): boolean;
15
15
  /**
16
16
  * Refresh Gemini access token using refresh_token
17
- * @returns true if refresh succeeded, false otherwise
17
+ * @returns Result with success status, optional error, and expiry time
18
18
  */
19
19
  export declare function refreshGeminiToken(): Promise<{
20
20
  success: boolean;
21
21
  error?: string;
22
+ expiresAt?: number;
22
23
  }>;
23
24
  /**
24
25
  * Ensure Gemini token is valid, refreshing if needed
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-token-refresh.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/gemini-token-refresh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAoCD;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAUnD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA0DD;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC;IACrE,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAwBD"}
1
+ {"version":3,"file":"gemini-token-refresh.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/gemini-token-refresh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAoCD;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAUnD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CA2DD;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC;IACrE,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAwBD"}
@@ -106,7 +106,7 @@ function isGeminiTokenExpiringSoon() {
106
106
  exports.isGeminiTokenExpiringSoon = isGeminiTokenExpiringSoon;
107
107
  /**
108
108
  * Refresh Gemini access token using refresh_token
109
- * @returns true if refresh succeeded, false otherwise
109
+ * @returns Result with success status, optional error, and expiry time
110
110
  */
111
111
  async function refreshGeminiToken() {
112
112
  const creds = readGeminiCreds();
@@ -141,16 +141,17 @@ async function refreshGeminiToken() {
141
141
  return { success: false, error: 'No access_token in response' };
142
142
  }
143
143
  // Update credentials file with new token
144
+ const expiresAt = Date.now() + (data.expires_in ?? 3600) * 1000;
144
145
  const updatedCreds = {
145
146
  ...creds,
146
147
  access_token: data.access_token,
147
- expiry_date: Date.now() + (data.expires_in ?? 3600) * 1000,
148
+ expiry_date: expiresAt,
148
149
  };
149
150
  const writeError = writeGeminiCreds(updatedCreds);
150
151
  if (writeError) {
151
152
  return { success: false, error: `Token refreshed but failed to save: ${writeError}` };
152
153
  }
153
- return { success: true };
154
+ return { success: true, expiresAt };
154
155
  }
155
156
  catch (err) {
156
157
  clearTimeout(timeoutId);
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-token-refresh.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/gemini-token-refresh.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB;;;;;;;;GAQG;AAEH,MAAM,gBAAgB,GAAG,0EAA0E,CAAC;AAEpG,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AAEnE,kCAAkC;AAClC,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAE/D,6CAA6C;AAC7C,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAqB3C;;GAEG;AACH,SAAgB,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAChE,CAAC;AAFD,gDAEC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAuB;IAC/C,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;IAC5E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACvC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,CAAC,wBAAwB;IACvC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,CAAC,gCAAgC;IAChD,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjD,OAAO,SAAS,GAAG,oBAAoB,CAAC;AAC1C,CAAC;AAVD,8DAUC;AAED;;;GAGG;AACI,KAAK,UAAU,kBAAkB;IAItC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;YACD,IAAI,EAAE,IAAI,eAAe,CAAC;gBACxB,UAAU,EAAE,eAAe;gBAC3B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,SAAS,EAAE,gBAAgB;gBAC3B,aAAa,EAAE,oBAAoB;aACpC,CAAC,CAAC,QAAQ,EAAE;SACd,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;QAE7D,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,IAAI,gBAAgB,QAAQ,CAAC,MAAM,EAAE;aACjF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;QAClE,CAAC;QAED,yCAAyC;QACzC,MAAM,YAAY,GAAqB;YACrC,GAAG,KAAK;YACR,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,IAAI;SAC3D,CAAC;QACF,MAAM,UAAU,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,UAAU,EAAE,EAAE,CAAC;QACxF,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACzF,CAAC;AACH,CAAC;AA7DD,gDA6DC;AAED;;;;GAIG;AACI,KAAK,UAAU,sBAAsB,CAAC,OAAO,GAAG,KAAK;IAK1D,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;IAClF,CAAC;IAED,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED,qDAAqD;IACrD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC1C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AACjE,CAAC;AA5BD,wDA4BC"}
1
+ {"version":3,"file":"gemini-token-refresh.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/gemini-token-refresh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Provider Token Refreshers
3
+ *
4
+ * Exports refresh functions for each OAuth provider.
5
+ * Currently only Gemini is implemented; others return placeholder errors.
6
+ */
7
+ import { CLIProxyProvider } from '../../types';
8
+ /** Token refresh result */
9
+ export interface ProviderRefreshResult {
10
+ success: boolean;
11
+ error?: string;
12
+ expiresAt?: number;
13
+ }
14
+ /**
15
+ * Refresh token for a specific provider and account
16
+ * @param provider Provider to refresh
17
+ * @param _accountId Account ID (currently unused, multi-account not yet implemented)
18
+ * @returns Refresh result with success status and optional error
19
+ */
20
+ export declare function refreshToken(provider: CLIProxyProvider, _accountId: string): Promise<ProviderRefreshResult>;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/provider-refreshers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,2BAA2B;AAC3B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC,CAsBhC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /**
3
+ * Provider Token Refreshers
4
+ *
5
+ * Exports refresh functions for each OAuth provider.
6
+ * Currently only Gemini is implemented; others return placeholder errors.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.refreshToken = void 0;
10
+ const gemini_token_refresh_1 = require("../gemini-token-refresh");
11
+ /**
12
+ * Refresh token for a specific provider and account
13
+ * @param provider Provider to refresh
14
+ * @param _accountId Account ID (currently unused, multi-account not yet implemented)
15
+ * @returns Refresh result with success status and optional error
16
+ */
17
+ async function refreshToken(provider, _accountId) {
18
+ switch (provider) {
19
+ case 'gemini':
20
+ return await refreshGeminiTokenWrapper();
21
+ case 'codex':
22
+ case 'agy':
23
+ case 'qwen':
24
+ case 'iflow':
25
+ case 'kiro':
26
+ case 'ghcp':
27
+ return {
28
+ success: false,
29
+ error: `Token refresh not yet implemented for ${provider}`,
30
+ };
31
+ default:
32
+ return {
33
+ success: false,
34
+ error: `Unknown provider: ${provider}`,
35
+ };
36
+ }
37
+ }
38
+ exports.refreshToken = refreshToken;
39
+ /**
40
+ * Wrapper for Gemini token refresh
41
+ * Converts gemini-token-refresh.ts format to provider-refreshers format
42
+ */
43
+ async function refreshGeminiTokenWrapper() {
44
+ const result = await (0, gemini_token_refresh_1.refreshGeminiToken)();
45
+ if (!result.success) {
46
+ return {
47
+ success: false,
48
+ error: result.error,
49
+ };
50
+ }
51
+ return {
52
+ success: true,
53
+ expiresAt: result.expiresAt,
54
+ };
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/provider-refreshers/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,kEAA6D;AAS7D;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAChC,QAA0B,EAC1B,UAAkB;IAElB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,MAAM,yBAAyB,EAAE,CAAC;QAE3C,KAAK,OAAO,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yCAAyC,QAAQ,EAAE;aAC3D,CAAC;QAEJ;YACE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,qBAAqB,QAAQ,EAAE;aACvC,CAAC;IACN,CAAC;AACH,CAAC;AAzBD,oCAyBC;AAED;;;GAGG;AACH,KAAK,UAAU,yBAAyB;IACtC,MAAM,MAAM,GAAG,MAAM,IAAA,yCAAkB,GAAE,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Token Expiry Checker
3
+ *
4
+ * Inspects token files to determine expiry times and refresh requirements.
5
+ * Supports expiry_date field with fallback to file modification time.
6
+ */
7
+ import { CLIProxyProvider } from '../types';
8
+ /** Preemptive refresh time: refresh tokens 45 minutes before expiry */
9
+ export declare const PREEMPTIVE_REFRESH_MINUTES = 45;
10
+ /** Fallback expiry: assume 50 minutes if no expiry_date field */
11
+ export declare const FALLBACK_EXPIRY_MINUTES = 50;
12
+ /** Token expiry information for a single account */
13
+ export interface TokenExpiryInfo {
14
+ /** Provider name */
15
+ provider: CLIProxyProvider;
16
+ /** Account ID */
17
+ accountId: string;
18
+ /** Path to token file */
19
+ tokenFile: string;
20
+ /** Expiry timestamp (Unix ms) */
21
+ expiresAt: number;
22
+ /** Whether token needs refresh (within preemptive window) */
23
+ needsRefresh: boolean;
24
+ /** Token file last modified time */
25
+ lastModified: Date;
26
+ }
27
+ /**
28
+ * Get token expiry info for a specific account
29
+ * @returns null if token file doesn't exist or is invalid
30
+ */
31
+ export declare function getTokenExpiryInfo(provider: CLIProxyProvider, accountId: string): TokenExpiryInfo | null;
32
+ /**
33
+ * Get token expiry info for all accounts across all providers
34
+ * @returns Array of token expiry info, excluding invalid tokens
35
+ */
36
+ export declare function getAllTokenExpiryInfo(): TokenExpiryInfo[];
37
+ //# sourceMappingURL=token-expiry-checker.d.ts.map
@@ -0,0 +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;AAG5C,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,CAsDxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,EAAE,CAgBzD"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /**
3
+ * Token Expiry Checker
4
+ *
5
+ * Inspects token files to determine expiry times and refresh requirements.
6
+ * Supports expiry_date field with fallback to file modification time.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.getAllTokenExpiryInfo = exports.getTokenExpiryInfo = exports.FALLBACK_EXPIRY_MINUTES = exports.PREEMPTIVE_REFRESH_MINUTES = void 0;
33
+ const fs = __importStar(require("fs"));
34
+ const path = __importStar(require("path"));
35
+ const account_manager_1 = require("../account-manager");
36
+ /** Preemptive refresh time: refresh tokens 45 minutes before expiry */
37
+ exports.PREEMPTIVE_REFRESH_MINUTES = 45;
38
+ /** Fallback expiry: assume 50 minutes if no expiry_date field */
39
+ exports.FALLBACK_EXPIRY_MINUTES = 50;
40
+ /** Maximum token file size in bytes (1MB) - prevent DoS from huge files */
41
+ const MAX_TOKEN_FILE_SIZE = 1024 * 1024;
42
+ /**
43
+ * Get token expiry info for a specific account
44
+ * @returns null if token file doesn't exist or is invalid
45
+ */
46
+ function getTokenExpiryInfo(provider, accountId) {
47
+ const tokenPath = (0, account_manager_1.getAccountTokenPath)(provider, accountId);
48
+ if (!tokenPath || !fs.existsSync(tokenPath)) {
49
+ return null;
50
+ }
51
+ try {
52
+ const stats = fs.statSync(tokenPath);
53
+ // Prevent DoS from huge token files
54
+ if (stats.size > MAX_TOKEN_FILE_SIZE) {
55
+ return null;
56
+ }
57
+ const content = fs.readFileSync(tokenPath, 'utf-8');
58
+ const data = JSON.parse(content);
59
+ // Validate refresh_token exists (required for refresh)
60
+ if (!data.refresh_token || typeof data.refresh_token !== 'string') {
61
+ return null;
62
+ }
63
+ // Calculate expiry time with validation
64
+ let expiresAt;
65
+ if (data.expiry_date &&
66
+ typeof data.expiry_date === 'number' &&
67
+ Number.isFinite(data.expiry_date) &&
68
+ data.expiry_date > 0) {
69
+ // Use expiry_date field if valid
70
+ expiresAt = data.expiry_date;
71
+ }
72
+ else {
73
+ // Fallback: use file mtime + 50 minutes
74
+ expiresAt = stats.mtime.getTime() + exports.FALLBACK_EXPIRY_MINUTES * 60 * 1000;
75
+ }
76
+ // Check if needs refresh (within preemptive window)
77
+ const now = Date.now();
78
+ const timeUntilExpiry = expiresAt - now;
79
+ const preemptiveMs = exports.PREEMPTIVE_REFRESH_MINUTES * 60 * 1000;
80
+ const needsRefresh = timeUntilExpiry < preemptiveMs;
81
+ return {
82
+ provider,
83
+ accountId,
84
+ tokenFile: path.basename(tokenPath),
85
+ expiresAt,
86
+ needsRefresh,
87
+ lastModified: stats.mtime,
88
+ };
89
+ }
90
+ catch {
91
+ return null;
92
+ }
93
+ }
94
+ exports.getTokenExpiryInfo = getTokenExpiryInfo;
95
+ /**
96
+ * Get token expiry info for all accounts across all providers
97
+ * @returns Array of token expiry info, excluding invalid tokens
98
+ */
99
+ function getAllTokenExpiryInfo() {
100
+ const providers = ['gemini', 'codex', 'agy', 'qwen', 'iflow', 'kiro', 'ghcp'];
101
+ const results = [];
102
+ for (const provider of providers) {
103
+ const accounts = (0, account_manager_1.getProviderAccounts)(provider);
104
+ for (const account of accounts) {
105
+ const info = getTokenExpiryInfo(provider, account.id);
106
+ if (info) {
107
+ results.push(info);
108
+ }
109
+ }
110
+ }
111
+ return results;
112
+ }
113
+ exports.getAllTokenExpiryInfo = getAllTokenExpiryInfo;
114
+ //# sourceMappingURL=token-expiry-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-expiry-checker.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-expiry-checker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Token Refresh Configuration
3
+ *
4
+ * Loads token refresh worker settings from unified config.
5
+ * Returns null if disabled or not configured.
6
+ */
7
+ import type { TokenRefreshSettings } from '../../config/unified-config-types';
8
+ /**
9
+ * Get token refresh configuration from unified config
10
+ * @returns Config if enabled, null if disabled or not configured
11
+ */
12
+ export declare function getTokenRefreshConfig(): TokenRefreshSettings | null;
13
+ //# sourceMappingURL=token-refresh-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-refresh-config.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-refresh-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,oBAAoB,GAAG,IAAI,CAgBnE"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Token Refresh Configuration
4
+ *
5
+ * Loads token refresh worker settings from unified config.
6
+ * Returns null if disabled or not configured.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getTokenRefreshConfig = void 0;
10
+ const unified_config_loader_1 = require("../../config/unified-config-loader");
11
+ /**
12
+ * Get token refresh configuration from unified config
13
+ * @returns Config if enabled, null if disabled or not configured
14
+ */
15
+ function getTokenRefreshConfig() {
16
+ const config = (0, unified_config_loader_1.loadOrCreateUnifiedConfig)();
17
+ // Return null if not configured or explicitly disabled
18
+ if (!config.cliproxy?.token_refresh?.enabled) {
19
+ return null;
20
+ }
21
+ // Return config with defaults
22
+ return {
23
+ enabled: true,
24
+ interval_minutes: config.cliproxy.token_refresh.interval_minutes ?? 30,
25
+ preemptive_minutes: config.cliproxy.token_refresh.preemptive_minutes ?? 45,
26
+ max_retries: config.cliproxy.token_refresh.max_retries ?? 3,
27
+ verbose: config.cliproxy.token_refresh.verbose ?? false,
28
+ };
29
+ }
30
+ exports.getTokenRefreshConfig = getTokenRefreshConfig;
31
+ //# sourceMappingURL=token-refresh-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-refresh-config.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/token-refresh-config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,8EAA+E;AAG/E;;;GAGG;AACH,SAAgB,qBAAqB;IACnC,MAAM,MAAM,GAAG,IAAA,iDAAyB,GAAE,CAAC;IAE3C,uDAAuD;IACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,OAAO;QACL,OAAO,EAAE,IAAI;QACb,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,IAAI,EAAE;QACtE,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,kBAAkB,IAAI,EAAE;QAC1E,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,IAAI,KAAK;KACxD,CAAC;AACJ,CAAC;AAhBD,sDAgBC"}
@@ -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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"}
@@ -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;AAiFH,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,CAiJ7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAO7C;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"}
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":"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"}
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":"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"}
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;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;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;IAC1B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpC,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,wDAAwD;IACxD,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;AAE1E;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,YAAY,EAAE,kBAAkB,CAAC;IACjC,+DAA+D;IAC/D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mEAAmE;IACnE,aAAa,EAAE,OAAO,CAAC;IACvB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,4BAA4B;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,2BAA2B;IAC3B,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIrD,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAErC,+CAA+C;IAC/C,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,yBAAyB;IACzB,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACjC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5D,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,6BAA6B;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,uBAAuB;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,8BAA8B;IAC9B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,uDAAuD;IACvD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAQpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,oBAgB5C,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CA8CxD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAMlE"}
@@ -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;AA0QxC;;;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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaitranntt/ccs",
3
- "version": "7.13.1-dev.6",
3
+ "version": "7.13.1-dev.7",
4
4
  "description": "Claude Code Switch - Instant profile switching between Claude Sonnet 4.5 and GLM 4.6",
5
5
  "keywords": [
6
6
  "cli",