@kaitranntt/ccs 7.28.2 → 7.29.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/auth/profile-detector.d.ts +1 -1
  2. package/dist/auth/profile-detector.d.ts.map +1 -1
  3. package/dist/auth/profile-detector.js +1 -0
  4. package/dist/auth/profile-detector.js.map +1 -1
  5. package/dist/cliproxy/account-manager.d.ts +3 -3
  6. package/dist/cliproxy/account-manager.d.ts.map +1 -1
  7. package/dist/cliproxy/account-manager.js +2 -1
  8. package/dist/cliproxy/account-manager.js.map +1 -1
  9. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  10. package/dist/cliproxy/auth/auth-types.js +10 -0
  11. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  12. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
  13. package/dist/cliproxy/auth/provider-refreshers/index.js +1 -0
  14. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
  15. package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -1
  16. package/dist/cliproxy/auth/token-expiry-checker.js +2 -1
  17. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
  18. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  19. package/dist/cliproxy/auth/token-manager.js +2 -1
  20. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  21. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
  22. package/dist/cliproxy/cliproxy-executor.js +20 -4
  23. package/dist/cliproxy/cliproxy-executor.js.map +1 -1
  24. package/dist/cliproxy/config-generator.d.ts.map +1 -1
  25. package/dist/cliproxy/config-generator.js +1 -0
  26. package/dist/cliproxy/config-generator.js.map +1 -1
  27. package/dist/cliproxy/index.d.ts +4 -0
  28. package/dist/cliproxy/index.d.ts.map +1 -1
  29. package/dist/cliproxy/index.js +12 -1
  30. package/dist/cliproxy/index.js.map +1 -1
  31. package/dist/cliproxy/management-api-client.d.ts +67 -0
  32. package/dist/cliproxy/management-api-client.d.ts.map +1 -0
  33. package/dist/cliproxy/management-api-client.js +347 -0
  34. package/dist/cliproxy/management-api-client.js.map +1 -0
  35. package/dist/cliproxy/management-api-types.d.ts +107 -0
  36. package/dist/cliproxy/management-api-types.d.ts.map +1 -0
  37. package/dist/cliproxy/management-api-types.js +9 -0
  38. package/dist/cliproxy/management-api-types.js.map +1 -0
  39. package/dist/cliproxy/model-catalog.d.ts +2 -2
  40. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  41. package/dist/cliproxy/model-catalog.js +50 -1
  42. package/dist/cliproxy/model-catalog.js.map +1 -1
  43. package/dist/cliproxy/model-config.d.ts.map +1 -1
  44. package/dist/cliproxy/model-config.js +11 -3
  45. package/dist/cliproxy/model-config.js.map +1 -1
  46. package/dist/cliproxy/quota-fetcher.d.ts.map +1 -1
  47. package/dist/cliproxy/quota-fetcher.js +25 -50
  48. package/dist/cliproxy/quota-fetcher.js.map +1 -1
  49. package/dist/cliproxy/quota-manager.js +2 -2
  50. package/dist/cliproxy/quota-manager.js.map +1 -1
  51. package/dist/cliproxy/services/variant-config-adapter.js +1 -1
  52. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  53. package/dist/cliproxy/sync/auto-sync-watcher.d.ts +37 -0
  54. package/dist/cliproxy/sync/auto-sync-watcher.d.ts.map +1 -0
  55. package/dist/cliproxy/sync/auto-sync-watcher.js +211 -0
  56. package/dist/cliproxy/sync/auto-sync-watcher.js.map +1 -0
  57. package/dist/cliproxy/sync/index.d.ts +10 -0
  58. package/dist/cliproxy/sync/index.d.ts.map +1 -0
  59. package/dist/cliproxy/sync/index.js +27 -0
  60. package/dist/cliproxy/sync/index.js.map +1 -0
  61. package/dist/cliproxy/sync/local-config-sync.d.ts +28 -0
  62. package/dist/cliproxy/sync/local-config-sync.d.ts.map +1 -0
  63. package/dist/cliproxy/sync/local-config-sync.js +223 -0
  64. package/dist/cliproxy/sync/local-config-sync.js.map +1 -0
  65. package/dist/cliproxy/sync/profile-mapper.d.ts +55 -0
  66. package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -0
  67. package/dist/cliproxy/sync/profile-mapper.js +173 -0
  68. package/dist/cliproxy/sync/profile-mapper.js.map +1 -0
  69. package/dist/cliproxy/types.d.ts +2 -1
  70. package/dist/cliproxy/types.d.ts.map +1 -1
  71. package/dist/cliproxy/types.js.map +1 -1
  72. package/dist/commands/api-command.d.ts.map +1 -1
  73. package/dist/commands/api-command.js +9 -0
  74. package/dist/commands/api-command.js.map +1 -1
  75. package/dist/commands/cliproxy-command.d.ts.map +1 -1
  76. package/dist/commands/cliproxy-command.js +19 -1
  77. package/dist/commands/cliproxy-command.js.map +1 -1
  78. package/dist/commands/cliproxy-sync-handler.d.ts +19 -0
  79. package/dist/commands/cliproxy-sync-handler.d.ts.map +1 -0
  80. package/dist/commands/cliproxy-sync-handler.js +99 -0
  81. package/dist/commands/cliproxy-sync-handler.js.map +1 -0
  82. package/dist/config/unified-config-loader.d.ts.map +1 -1
  83. package/dist/config/unified-config-loader.js +2 -0
  84. package/dist/config/unified-config-loader.js.map +1 -1
  85. package/dist/config/unified-config-types.d.ts +5 -1
  86. package/dist/config/unified-config-types.d.ts.map +1 -1
  87. package/dist/config/unified-config-types.js +2 -1
  88. package/dist/config/unified-config-types.js.map +1 -1
  89. package/dist/management/oauth-port-diagnostics.d.ts +4 -0
  90. package/dist/management/oauth-port-diagnostics.d.ts.map +1 -1
  91. package/dist/management/oauth-port-diagnostics.js +10 -2
  92. package/dist/management/oauth-port-diagnostics.js.map +1 -1
  93. package/dist/types/config.d.ts +1 -1
  94. package/dist/types/config.d.ts.map +1 -1
  95. package/dist/ui/assets/{accounts-BOzNq5ee.js → accounts-CeG4Acy7.js} +1 -1
  96. package/dist/ui/assets/{alert-dialog-Cb5PMEBl.js → alert-dialog-BZM_wV9y.js} +1 -1
  97. package/dist/ui/assets/{api-Dve5qAOP.js → api-DTsaYKMt.js} +1 -1
  98. package/dist/ui/assets/{auth-section-Cpc5CmnT.js → auth-section-oeseAbTR.js} +1 -1
  99. package/dist/ui/assets/{backups-section-DUZ2HR46.js → backups-section-BEsmu_FQ.js} +1 -1
  100. package/dist/ui/assets/cliproxy-CmciSwMc.js +3 -0
  101. package/dist/ui/assets/{cliproxy-control-panel-D8brA7Zn.js → cliproxy-control-panel-iaEe8rGw.js} +1 -1
  102. package/dist/ui/assets/{confirm-dialog-0Zy9TN_K.js → confirm-dialog-DVpWf5Eg.js} +1 -1
  103. package/dist/ui/assets/{copilot-C2Q9oafS.js → copilot-JypcBubb.js} +3 -3
  104. package/dist/ui/assets/{globalenv-section-g_Bh1_Vi.js → globalenv-section-i6XQTH8J.js} +1 -1
  105. package/dist/ui/assets/{health-BfdjLTeV.js → health-dRNF8Scq.js} +1 -1
  106. package/dist/ui/assets/icons-n7yU6ZH4.js +1 -0
  107. package/dist/ui/assets/{index-B9LdCgpr.js → index-06z5N4Jt.js} +1 -1
  108. package/dist/ui/assets/{index-326cTntS.js → index-7A6gkPzK.js} +1 -1
  109. package/dist/ui/assets/index-8fgih6zR.js +1 -0
  110. package/dist/ui/assets/{index-CErLyTsQ.js → index-CClGFNH9.js} +16 -16
  111. package/dist/ui/assets/{index-DX32Yp2A.js → index-DMcwfw-m.js} +1 -1
  112. package/dist/ui/assets/index-WzrICGKd.css +1 -0
  113. package/dist/ui/assets/providers/claude.svg +1 -0
  114. package/dist/ui/assets/proxy-status-widget-pB419daP.js +1 -0
  115. package/dist/ui/assets/{shared-ogUMuADx.js → shared-BYUyFWPc.js} +1 -1
  116. package/dist/ui/assets/{switch-DVMOWp74.js → switch-Bz6aFOeS.js} +1 -1
  117. package/dist/ui/index.html +3 -3
  118. package/dist/web-server/index.d.ts.map +1 -1
  119. package/dist/web-server/index.js +9 -1
  120. package/dist/web-server/index.js.map +1 -1
  121. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  122. package/dist/web-server/routes/account-routes.js +3 -10
  123. package/dist/web-server/routes/account-routes.js.map +1 -1
  124. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  125. package/dist/web-server/routes/cliproxy-auth-routes.js +5 -10
  126. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  127. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  128. package/dist/web-server/routes/cliproxy-stats-routes.js +3 -10
  129. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  130. package/dist/web-server/routes/cliproxy-sync-routes.d.ts +6 -0
  131. package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -0
  132. package/dist/web-server/routes/cliproxy-sync-routes.js +157 -0
  133. package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -0
  134. package/dist/web-server/routes/index.d.ts.map +1 -1
  135. package/dist/web-server/routes/index.js +2 -0
  136. package/dist/web-server/routes/index.js.map +1 -1
  137. package/package.json +1 -1
  138. package/dist/ui/assets/cliproxy-DaYarYV8.js +0 -3
  139. package/dist/ui/assets/icons-C6UNjkCT.js +0 -1
  140. package/dist/ui/assets/index-C-e4p8-0.js +0 -1
  141. package/dist/ui/assets/index-DWVSWP6e.css +0 -1
  142. package/dist/ui/assets/proxy-status-widget-BBhLPlDp.js +0 -1
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ /**
3
+ * Management API Client for CLIProxyAPI
4
+ *
5
+ * HTTP client for CLIProxy Management API endpoints.
6
+ * Handles authentication, error mapping, and provides typed methods for CRUD operations.
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.createManagementClient = exports.ManagementApiClient = void 0;
33
+ const https = __importStar(require("https"));
34
+ /** Default timeout for management operations (longer than health check) */
35
+ const DEFAULT_TIMEOUT_MS = 5000;
36
+ /** Default port for HTTP protocol */
37
+ const DEFAULT_HTTP_PORT = 8317;
38
+ /** Default port for HTTPS protocol */
39
+ const DEFAULT_HTTPS_PORT = 443;
40
+ /**
41
+ * Get effective port based on config and protocol.
42
+ */
43
+ function getEffectivePort(port, protocol) {
44
+ if (port !== undefined && Number.isInteger(port) && port > 0 && port <= 65535) {
45
+ return port;
46
+ }
47
+ return protocol === 'https' ? DEFAULT_HTTPS_PORT : DEFAULT_HTTP_PORT;
48
+ }
49
+ /**
50
+ * Build URL for Management API endpoint.
51
+ */
52
+ function buildUrl(config, path) {
53
+ const port = getEffectivePort(config.port, config.protocol);
54
+ // Only omit port if it matches standard web ports
55
+ if ((config.protocol === 'https' && port === 443) ||
56
+ (config.protocol === 'http' && port === 80)) {
57
+ return `${config.protocol}://${config.host}${path}`;
58
+ }
59
+ return `${config.protocol}://${config.host}:${port}${path}`;
60
+ }
61
+ /**
62
+ * Map error to ManagementApiErrorCode.
63
+ */
64
+ function mapErrorToCode(error, statusCode) {
65
+ const message = error.message.toLowerCase();
66
+ const rawCode = error.code;
67
+ const code = typeof rawCode === 'string' ? rawCode.toLowerCase() : undefined;
68
+ // DNS resolution failed
69
+ if (code === 'enotfound' || code === 'eai_again' || message.includes('dns')) {
70
+ return 'DNS_FAILED';
71
+ }
72
+ // Network unreachable
73
+ if (code === 'enetunreach' || code === 'ehostunreach' || message.includes('unreachable')) {
74
+ return 'NETWORK_UNREACHABLE';
75
+ }
76
+ // Connection refused
77
+ if (code === 'econnrefused' || message.includes('connection refused')) {
78
+ return 'CONNECTION_REFUSED';
79
+ }
80
+ // Timeout
81
+ if (code === 'etimedout' || message.includes('timeout') || message.includes('aborted')) {
82
+ return 'TIMEOUT';
83
+ }
84
+ // HTTP status codes
85
+ if (statusCode === 401 || statusCode === 403) {
86
+ return 'AUTH_FAILED';
87
+ }
88
+ if (statusCode === 404) {
89
+ return 'NOT_FOUND';
90
+ }
91
+ if (statusCode === 400) {
92
+ return 'BAD_REQUEST';
93
+ }
94
+ if (statusCode && statusCode >= 500) {
95
+ return 'SERVER_ERROR';
96
+ }
97
+ return 'UNKNOWN';
98
+ }
99
+ /**
100
+ * Get human-readable error message from error code.
101
+ */
102
+ function getErrorMessage(errorCode, rawError) {
103
+ switch (errorCode) {
104
+ case 'CONNECTION_REFUSED':
105
+ return 'Connection refused - is CLIProxy running?';
106
+ case 'TIMEOUT':
107
+ return 'Request timed out - server may be slow or unreachable';
108
+ case 'AUTH_FAILED':
109
+ return 'Authentication failed - check management key';
110
+ case 'DNS_FAILED':
111
+ return 'DNS lookup failed - check hostname';
112
+ case 'NETWORK_UNREACHABLE':
113
+ return 'Network unreachable - check if host is accessible';
114
+ case 'NOT_FOUND':
115
+ return 'Endpoint not found - check CLIProxy version';
116
+ case 'BAD_REQUEST':
117
+ return 'Invalid request - check payload format';
118
+ case 'SERVER_ERROR':
119
+ return 'Server error - check CLIProxy logs';
120
+ default:
121
+ return rawError || 'Request failed';
122
+ }
123
+ }
124
+ /**
125
+ * Management API Client for CLIProxyAPI.
126
+ * Provides typed methods for CRUD operations on claude-api-key configuration.
127
+ */
128
+ class ManagementApiClient {
129
+ constructor(config) {
130
+ this.config = config;
131
+ this.timeout = config.timeout ?? DEFAULT_TIMEOUT_MS;
132
+ }
133
+ /**
134
+ * Build base URL for display purposes.
135
+ */
136
+ getBaseUrl() {
137
+ return buildUrl(this.config, '');
138
+ }
139
+ /**
140
+ * Check health of Management API.
141
+ * Uses GET /v0/management/claude-api-key as health check.
142
+ */
143
+ async health() {
144
+ const startTime = Date.now();
145
+ try {
146
+ const response = await this.request('GET', '/v0/management/claude-api-key');
147
+ const latencyMs = Date.now() - startTime;
148
+ return {
149
+ healthy: true,
150
+ latencyMs,
151
+ version: response.headers?.['x-cpa-version'],
152
+ commit: response.headers?.['x-cpa-commit'],
153
+ };
154
+ }
155
+ catch (error) {
156
+ const err = error;
157
+ return {
158
+ healthy: false,
159
+ error: err.message,
160
+ errorCode: err.errorCode ?? 'UNKNOWN',
161
+ };
162
+ }
163
+ }
164
+ /**
165
+ * Get all claude-api-key entries from remote CLIProxy.
166
+ */
167
+ async getClaudeKeys() {
168
+ const response = await this.request('GET', '/v0/management/claude-api-key');
169
+ return response.data?.['claude-api-key'] ?? [];
170
+ }
171
+ /**
172
+ * Replace all claude-api-key entries on remote CLIProxy.
173
+ * This is an atomic operation - all entries are replaced at once.
174
+ */
175
+ async putClaudeKeys(keys) {
176
+ await this.request('PUT', '/v0/management/claude-api-key', keys);
177
+ }
178
+ /**
179
+ * Update a single claude-api-key entry by index or api-key match.
180
+ */
181
+ async patchClaudeKey(patch) {
182
+ await this.request('PATCH', '/v0/management/claude-api-key', patch);
183
+ }
184
+ /**
185
+ * Delete a claude-api-key entry by api-key value.
186
+ */
187
+ async deleteClaudeKey(apiKey) {
188
+ const encodedKey = encodeURIComponent(apiKey);
189
+ await this.request('DELETE', `/v0/management/claude-api-key?api-key=${encodedKey}`);
190
+ }
191
+ /**
192
+ * Make an HTTP request to the Management API.
193
+ */
194
+ async request(method, path, body) {
195
+ const url = buildUrl(this.config, path);
196
+ const headers = {
197
+ Accept: 'application/json',
198
+ Authorization: `Bearer ${this.config.managementKey}`,
199
+ };
200
+ if (body !== undefined) {
201
+ headers['Content-Type'] = 'application/json';
202
+ }
203
+ // Use native https for self-signed cert support
204
+ if (this.config.protocol === 'https' && this.config.allowSelfSigned) {
205
+ return this.requestWithHttps(method, url, headers, body);
206
+ }
207
+ return this.requestWithFetch(method, url, headers, body);
208
+ }
209
+ /**
210
+ * Make request using native fetch API.
211
+ */
212
+ async requestWithFetch(method, url, headers, body) {
213
+ const controller = new AbortController();
214
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
215
+ try {
216
+ const response = await fetch(url, {
217
+ method,
218
+ headers,
219
+ body: body !== undefined ? JSON.stringify(body) : undefined,
220
+ signal: controller.signal,
221
+ });
222
+ clearTimeout(timeoutId);
223
+ if (!response.ok) {
224
+ const errorCode = mapErrorToCode(new Error(response.statusText), response.status);
225
+ const error = new Error(getErrorMessage(errorCode));
226
+ error.statusCode = response.status;
227
+ error.errorCode = errorCode;
228
+ throw error;
229
+ }
230
+ // Extract headers we care about
231
+ const responseHeaders = {};
232
+ const version = response.headers.get('x-cpa-version');
233
+ const commit = response.headers.get('x-cpa-commit');
234
+ if (version)
235
+ responseHeaders['x-cpa-version'] = version;
236
+ if (commit)
237
+ responseHeaders['x-cpa-commit'] = commit;
238
+ // Parse JSON response if present
239
+ const text = await response.text();
240
+ let data;
241
+ if (text) {
242
+ try {
243
+ data = JSON.parse(text);
244
+ }
245
+ catch {
246
+ // Non-JSON response is ok for PUT/DELETE
247
+ }
248
+ }
249
+ return { data, headers: responseHeaders };
250
+ }
251
+ catch (error) {
252
+ clearTimeout(timeoutId);
253
+ const err = error;
254
+ if (!err.errorCode) {
255
+ err.errorCode = mapErrorToCode(err, err.statusCode);
256
+ err.message = getErrorMessage(err.errorCode, err.message);
257
+ }
258
+ throw err;
259
+ }
260
+ }
261
+ /**
262
+ * Make request using native https module for self-signed cert support.
263
+ */
264
+ async requestWithHttps(method, url, headers, body) {
265
+ return new Promise((resolve, reject) => {
266
+ const agent = new https.Agent({ rejectUnauthorized: false });
267
+ const bodyStr = body !== undefined ? JSON.stringify(body) : undefined;
268
+ if (bodyStr) {
269
+ headers['Content-Length'] = Buffer.byteLength(bodyStr).toString();
270
+ }
271
+ const reqTimeout = setTimeout(() => {
272
+ reject(new Error('Request timeout'));
273
+ }, this.timeout);
274
+ const req = https.request(url, {
275
+ method,
276
+ headers,
277
+ agent,
278
+ timeout: this.timeout,
279
+ }, (res) => {
280
+ clearTimeout(reqTimeout);
281
+ let data = '';
282
+ res.on('data', (chunk) => (data += chunk));
283
+ res.on('end', () => {
284
+ if (res.statusCode && (res.statusCode < 200 || res.statusCode >= 300)) {
285
+ const errorCode = mapErrorToCode(new Error(res.statusMessage || ''), res.statusCode);
286
+ const error = new Error(getErrorMessage(errorCode));
287
+ error.statusCode = res.statusCode;
288
+ error.errorCode = errorCode;
289
+ reject(error);
290
+ return;
291
+ }
292
+ const responseHeaders = {};
293
+ const version = res.headers['x-cpa-version'];
294
+ const commit = res.headers['x-cpa-commit'];
295
+ if (typeof version === 'string')
296
+ responseHeaders['x-cpa-version'] = version;
297
+ if (typeof commit === 'string')
298
+ responseHeaders['x-cpa-commit'] = commit;
299
+ let parsed;
300
+ if (data) {
301
+ try {
302
+ parsed = JSON.parse(data);
303
+ }
304
+ catch {
305
+ // Non-JSON response is ok
306
+ }
307
+ }
308
+ resolve({ data: parsed, headers: responseHeaders });
309
+ });
310
+ });
311
+ req.on('error', (err) => {
312
+ clearTimeout(reqTimeout);
313
+ const error = err;
314
+ error.errorCode = mapErrorToCode(err);
315
+ error.message = getErrorMessage(error.errorCode, err.message);
316
+ reject(error);
317
+ });
318
+ req.on('timeout', () => {
319
+ req.destroy();
320
+ const error = new Error('Request timeout');
321
+ error.errorCode = 'TIMEOUT';
322
+ reject(error);
323
+ });
324
+ if (bodyStr) {
325
+ req.write(bodyStr);
326
+ }
327
+ req.end();
328
+ });
329
+ }
330
+ }
331
+ exports.ManagementApiClient = ManagementApiClient;
332
+ /**
333
+ * Create a ManagementApiClient from CCS config.
334
+ * Uses cliproxy_server.remote settings.
335
+ */
336
+ function createManagementClient(remoteConfig, allowSelfSigned = true) {
337
+ return new ManagementApiClient({
338
+ host: remoteConfig.host,
339
+ port: remoteConfig.port,
340
+ protocol: remoteConfig.protocol,
341
+ managementKey: remoteConfig.management_key || remoteConfig.auth_token || '',
342
+ timeout: remoteConfig.timeout,
343
+ allowSelfSigned,
344
+ });
345
+ }
346
+ exports.createManagementClient = createManagementClient;
347
+ //# sourceMappingURL=management-api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management-api-client.js","sourceRoot":"","sources":["../../src/cliproxy/management-api-client.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAU/B,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,qCAAqC;AACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,sCAAsC;AACtC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAwB,EAAE,QAA0B;IAC5E,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,MAA8B,EAAE,IAAY;IAC5D,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5D,kDAAkD;IAClD,IACE,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC;QAC7C,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC,EAC3C,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAY,EAAE,UAAmB;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAI,KAA+B,CAAC,IAAI,CAAC;IACtD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,wBAAwB;IACxB,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5E,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzF,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,KAAK,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACtE,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,UAAU;IACV,IAAI,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACvF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oBAAoB;IACpB,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QAC7C,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,UAAU,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACpC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,SAAiC,EAAE,QAAiB;IAC3E,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,oBAAoB;YACvB,OAAO,2CAA2C,CAAC;QACrD,KAAK,SAAS;YACZ,OAAO,uDAAuD,CAAC;QACjE,KAAK,aAAa;YAChB,OAAO,8CAA8C,CAAC;QACxD,KAAK,YAAY;YACf,OAAO,oCAAoC,CAAC;QAC9C,KAAK,qBAAqB;YACxB,OAAO,mDAAmD,CAAC;QAC7D,KAAK,WAAW;YACd,OAAO,6CAA6C,CAAC;QACvD,KAAK,aAAa;YAChB,OAAO,wCAAwC,CAAC;QAClD,KAAK,cAAc;YACjB,OAAO,oCAAoC,CAAC;QAC9C;YACE,OAAO,QAAQ,IAAI,gBAAgB,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAa,mBAAmB;IAI9B,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;YAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAEzC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS;gBACT,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC;gBAC5C,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC;aAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAA4E,CAAC;YACzF,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,CAAC,OAAO;gBAClB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,+BAA+B,CAChC,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,IAAiB;QACnC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,+BAA+B,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,KAAqB;QACxC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,+BAA+B,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,yCAAyC,UAAU,EAAE,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAExC,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,kBAAkB;YAC1B,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;SACrD,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QAED,gDAAgD;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC,gBAAgB,CAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,MAAc,EACd,GAAW,EACX,OAA+B,EAC/B,IAAc;QAEd,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAGjD,CAAC;gBACF,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACnC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC5B,MAAM,KAAK,CAAC;YACd,CAAC;YAED,gCAAgC;YAChC,MAAM,eAAe,GAA2B,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,OAAO;gBAAE,eAAe,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC;YACxD,IAAI,MAAM;gBAAE,eAAe,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;YAErD,iCAAiC;YACjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,IAAmB,CAAC;YACxB,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,yCAAyC;gBAC3C,CAAC;YACH,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,KAA4E,CAAC;YACzF,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACnB,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;gBACpD,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,MAAc,EACd,GAAW,EACX,OAA+B,EAC/B,IAAc;QAEd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEtE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpE,CAAC;YAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBACjC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CACvB,GAAG,EACH;gBACE,MAAM;gBACN,OAAO;gBACP,KAAK;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,YAAY,CAAC,UAAU,CAAC,CAAC;gBACzB,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;gBAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC;wBACtE,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;wBACrF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAGjD,CAAC;wBACF,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;wBAClC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;wBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC;wBACd,OAAO;oBACT,CAAC;oBAED,MAAM,eAAe,GAA2B,EAAE,CAAC;oBACnD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ;wBAAE,eAAe,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC;oBAC5E,IAAI,OAAO,MAAM,KAAK,QAAQ;wBAAE,eAAe,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;oBAEzE,IAAI,MAAqB,CAAC;oBAC1B,IAAI,IAAI,EAAE,CAAC;wBACT,IAAI,CAAC;4BACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;wBACjC,CAAC;wBAAC,MAAM,CAAC;4BACP,0BAA0B;wBAC5B,CAAC;oBACH,CAAC;oBAED,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtB,YAAY,CAAC,UAAU,CAAC,CAAC;gBACzB,MAAM,KAAK,GAAG,GAAqD,CAAC;gBACpE,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;gBACtC,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9D,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAkD,CAAC;gBAC5F,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,IAAI,OAAO,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YACD,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA7PD,kDA6PC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,YAOC,EACD,eAAe,GAAG,IAAI;IAEtB,OAAO,IAAI,mBAAmB,CAAC;QAC7B,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,aAAa,EAAE,YAAY,CAAC,cAAc,IAAI,YAAY,CAAC,UAAU,IAAI,EAAE;QAC3E,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,eAAe;KAChB,CAAC,CAAC;AACL,CAAC;AAnBD,wDAmBC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Management API Types for CLIProxyAPI
3
+ *
4
+ * Type definitions matching CLIProxyAPI Go structs for Management API CRUD operations.
5
+ * Used for syncing CCS API profiles to remote CLIProxy instance.
6
+ */
7
+ /**
8
+ * Model alias within a ClaudeKey entry.
9
+ * Maps Claude model names to provider-specific models.
10
+ */
11
+ export interface ClaudeModel {
12
+ /** Claude model name to match (e.g., "claude-3-5-sonnet") */
13
+ name: string;
14
+ /** Target model to use instead (e.g., "glm-4.7-airx-thinking") */
15
+ alias: string;
16
+ }
17
+ /**
18
+ * ClaudeKey configuration for CLIProxy.
19
+ * Maps to config.ClaudeKey in CLIProxyAPI Go code.
20
+ */
21
+ export interface ClaudeKey {
22
+ /** API key for the provider */
23
+ 'api-key': string;
24
+ /** Prefix for model name matching (e.g., "glm-" matches "glm-*" requests) */
25
+ prefix?: string;
26
+ /** Base URL for the provider API */
27
+ 'base-url'?: string;
28
+ /** Optional proxy URL for requests */
29
+ 'proxy-url'?: string;
30
+ /** Additional headers to include in requests */
31
+ headers?: Record<string, string>;
32
+ /** Models to exclude from this key */
33
+ 'excluded-models'?: string[];
34
+ /** Model name to alias mappings */
35
+ models?: ClaudeModel[];
36
+ }
37
+ /**
38
+ * Configuration for the Management API client.
39
+ */
40
+ export interface ManagementClientConfig {
41
+ /** Remote proxy host (IP or hostname) */
42
+ host: string;
43
+ /** Remote proxy port (default: 8317 for HTTP, 443 for HTTPS) */
44
+ port?: number;
45
+ /** Protocol to use (http or https) */
46
+ protocol: 'http' | 'https';
47
+ /** Management key for authentication (sent as Bearer token) */
48
+ managementKey: string;
49
+ /** Request timeout in milliseconds (default: 5000) */
50
+ timeout?: number;
51
+ /** Allow self-signed certificates for HTTPS (default: false) */
52
+ allowSelfSigned?: boolean;
53
+ }
54
+ /**
55
+ * Health check result from Management API.
56
+ */
57
+ export interface ManagementHealthStatus {
58
+ /** Whether the Management API is reachable */
59
+ healthy: boolean;
60
+ /** Version of CLIProxyAPI (from X-CPA-VERSION header) */
61
+ version?: string;
62
+ /** Commit hash (from X-CPA-COMMIT header) */
63
+ commit?: string;
64
+ /** Latency in milliseconds */
65
+ latencyMs?: number;
66
+ /** Error message if not healthy */
67
+ error?: string;
68
+ /** Error code for programmatic handling */
69
+ errorCode?: ManagementApiErrorCode;
70
+ }
71
+ /**
72
+ * Error codes for Management API operations.
73
+ */
74
+ export type ManagementApiErrorCode = 'CONNECTION_REFUSED' | 'TIMEOUT' | 'AUTH_FAILED' | 'DNS_FAILED' | 'NETWORK_UNREACHABLE' | 'NOT_FOUND' | 'BAD_REQUEST' | 'SERVER_ERROR' | 'UNKNOWN';
75
+ /**
76
+ * Response from GET /v0/management/claude-api-key
77
+ */
78
+ export interface GetClaudeKeysResponse {
79
+ 'claude-api-key': ClaudeKey[];
80
+ }
81
+ /**
82
+ * Patch request body for updating a single ClaudeKey.
83
+ */
84
+ export interface ClaudeKeyPatch {
85
+ /** Index of the key to update (0-based) */
86
+ index?: number;
87
+ /** Match by api-key value */
88
+ match?: string;
89
+ /** Fields to update */
90
+ value: Partial<ClaudeKey>;
91
+ }
92
+ /**
93
+ * Sync status for tracking sync operations.
94
+ */
95
+ export interface SyncStatus {
96
+ /** Last sync timestamp (ISO 8601) */
97
+ lastSyncAt?: string;
98
+ /** Number of profiles synced */
99
+ profileCount: number;
100
+ /** Whether sync was successful */
101
+ success: boolean;
102
+ /** Error message if failed */
103
+ error?: string;
104
+ /** Remote CLIProxy URL */
105
+ remoteUrl?: string;
106
+ }
107
+ //# sourceMappingURL=management-api-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management-api-types.d.ts","sourceRoot":"","sources":["../../src/cliproxy/management-api-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,mCAAmC;IACnC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAC9B,oBAAoB,GACpB,SAAS,GACT,aAAa,GACb,YAAY,GACZ,qBAAqB,GACrB,WAAW,GACX,aAAa,GACb,cAAc,GACd,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,SAAS,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Management API Types for CLIProxyAPI
4
+ *
5
+ * Type definitions matching CLIProxyAPI Go structs for Management API CRUD operations.
6
+ * Used for syncing CCS API profiles to remote CLIProxy instance.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=management-api-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management-api-types.js","sourceRoot":"","sources":["../../src/cliproxy/management-api-types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -33,8 +33,8 @@ export interface ModelEntry {
33
33
  id: string;
34
34
  /** Human-readable name for display */
35
35
  name: string;
36
- /** Access tier indicator - 'paid' means requires paid Google account (not free tier) */
37
- tier?: 'free' | 'paid';
36
+ /** Access tier indicator - 'ultra' for Claude, 'pro' for premium Gemini, 'free' for basic */
37
+ tier?: 'free' | 'pro' | 'ultra';
38
38
  /** Optional description for the model */
39
39
  description?: string;
40
40
  /** Model has known issues - show warning when selected */
@@ -1 +1 @@
1
- {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/cliproxy/model-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/cliproxy/model-catalog.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ exports.MODEL_CATALOG = {
64
64
  {
65
65
  id: 'gemini-3-pro-preview',
66
66
  name: 'Gemini 3 Pro',
67
- tier: 'paid',
67
+ tier: 'pro',
68
68
  description: 'Latest model, requires paid Google account',
69
69
  thinking: { type: 'levels', levels: ['low', 'high'], dynamicAllowed: true },
70
70
  },
@@ -111,6 +111,55 @@ exports.MODEL_CATALOG = {
111
111
  },
112
112
  ],
113
113
  },
114
+ claude: {
115
+ provider: 'claude',
116
+ displayName: 'Claude (Anthropic)',
117
+ defaultModel: 'claude-sonnet-4-5-20250514',
118
+ models: [
119
+ {
120
+ id: 'claude-opus-4-5-20250220',
121
+ name: 'Claude Opus 4.5',
122
+ description: 'Most capable Claude model',
123
+ thinking: {
124
+ type: 'budget',
125
+ min: 1024,
126
+ max: 128000,
127
+ zeroAllowed: false,
128
+ dynamicAllowed: true,
129
+ },
130
+ },
131
+ {
132
+ id: 'claude-sonnet-4-5-20250514',
133
+ name: 'Claude Sonnet 4.5',
134
+ description: 'Balanced performance and speed',
135
+ thinking: {
136
+ type: 'budget',
137
+ min: 1024,
138
+ max: 128000,
139
+ zeroAllowed: false,
140
+ dynamicAllowed: true,
141
+ },
142
+ },
143
+ {
144
+ id: 'claude-sonnet-4-20250514',
145
+ name: 'Claude Sonnet 4',
146
+ description: 'Previous generation Sonnet',
147
+ thinking: {
148
+ type: 'budget',
149
+ min: 1024,
150
+ max: 128000,
151
+ zeroAllowed: false,
152
+ dynamicAllowed: true,
153
+ },
154
+ },
155
+ {
156
+ id: 'claude-haiku-4-5-20250514',
157
+ name: 'Claude Haiku 4.5',
158
+ description: 'Fast and efficient',
159
+ thinking: { type: 'none' },
160
+ },
161
+ ],
162
+ },
114
163
  };
115
164
  /**
116
165
  * Check if provider supports interactive model configuration
@@ -1 +1 @@
1
- {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/cliproxy/model-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/cliproxy/model-catalog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-config.d.ts","sourceRoot":"","sources":["../../src/cliproxy/model-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAM3C;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAGnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,GAAG,SAAS,CAYpB;AA0BD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,GAAE,OAAe,EACtB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,OAAO,CAAC,CAsHlB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CjF"}
1
+ {"version":3,"file":"model-config.d.ts","sourceRoot":"","sources":["../../src/cliproxy/model-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAM3C;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAGnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,GAAG,SAAS,CAYpB;AAoCD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,GAAE,OAAe,EACtB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,OAAO,CAAC,CAsHlB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CjF"}
@@ -71,8 +71,12 @@ exports.getCurrentModel = getCurrentModel;
71
71
  * Format model entry for display in selection list
72
72
  */
73
73
  function formatModelOption(model) {
74
- // Tier badge: clarify that "paid" means paid Google account (not free tier)
75
- const tierBadge = model.tier === 'paid' ? (0, ui_1.color)(' [Paid Tier]', 'warning') : '';
74
+ // Tier badge: ultra/pro indicate paid tiers
75
+ const tierBadge = model.tier === 'ultra'
76
+ ? (0, ui_1.color)(' [Ultra]', 'warning')
77
+ : model.tier === 'pro'
78
+ ? (0, ui_1.color)(' [Pro]', 'warning')
79
+ : '';
76
80
  const brokenBadge = model.broken ? (0, ui_1.color)(' [BROKEN]', 'error') : '';
77
81
  const deprecatedBadge = model.deprecated ? (0, ui_1.color)(' [DEPRECATED]', 'warning') : '';
78
82
  return `${model.name}${tierBadge}${brokenBadge}${deprecatedBadge}`;
@@ -83,7 +87,11 @@ function formatModelOption(model) {
83
87
  function formatModelDetailed(model, isCurrent) {
84
88
  const marker = isCurrent ? (0, ui_1.color)('>', 'success') : ' ';
85
89
  const name = isCurrent ? (0, ui_1.bold)(model.name) : model.name;
86
- const tierBadge = model.tier === 'paid' ? (0, ui_1.color)(' [Paid Tier]', 'warning') : '';
90
+ const tierBadge = model.tier === 'ultra'
91
+ ? (0, ui_1.color)(' [Ultra]', 'warning')
92
+ : model.tier === 'pro'
93
+ ? (0, ui_1.color)(' [Pro]', 'warning')
94
+ : '';
87
95
  const brokenBadge = model.broken ? (0, ui_1.color)(' [BROKEN]', 'error') : '';
88
96
  const deprecatedBadge = model.deprecated ? (0, ui_1.color)(' [DEPRECATED]', 'warning') : '';
89
97
  const desc = model.description ? (0, ui_1.dim)(` - ${model.description}`) : '';