@kaitranntt/ccs 7.36.0 → 7.37.0-dev.1

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 (171) hide show
  1. package/dist/auth/commands/show-command.d.ts.map +1 -1
  2. package/dist/auth/commands/show-command.js +7 -2
  3. package/dist/auth/commands/show-command.js.map +1 -1
  4. package/dist/cliproxy/account-manager.d.ts +5 -207
  5. package/dist/cliproxy/account-manager.d.ts.map +1 -1
  6. package/dist/cliproxy/account-manager.js +35 -795
  7. package/dist/cliproxy/account-manager.js.map +1 -1
  8. package/dist/cliproxy/accounts/bulk-ops.d.ts +22 -0
  9. package/dist/cliproxy/accounts/bulk-ops.d.ts.map +1 -0
  10. package/dist/cliproxy/accounts/bulk-ops.js +88 -0
  11. package/dist/cliproxy/accounts/bulk-ops.js.map +1 -0
  12. package/dist/cliproxy/accounts/index.d.ts +19 -0
  13. package/dist/cliproxy/accounts/index.d.ts.map +1 -0
  14. package/dist/cliproxy/accounts/index.js +54 -0
  15. package/dist/cliproxy/accounts/index.js.map +1 -0
  16. package/dist/cliproxy/accounts/query.d.ts +36 -0
  17. package/dist/cliproxy/accounts/query.d.ts.map +1 -0
  18. package/dist/cliproxy/accounts/query.js +94 -0
  19. package/dist/cliproxy/accounts/query.js.map +1 -0
  20. package/dist/cliproxy/accounts/registry.d.ts +74 -0
  21. package/dist/cliproxy/accounts/registry.d.ts.map +1 -0
  22. package/dist/cliproxy/accounts/registry.js +510 -0
  23. package/dist/cliproxy/accounts/registry.js.map +1 -0
  24. package/dist/cliproxy/accounts/token-file-ops.d.ts +64 -0
  25. package/dist/cliproxy/accounts/token-file-ops.d.ts.map +1 -0
  26. package/dist/cliproxy/accounts/token-file-ops.js +206 -0
  27. package/dist/cliproxy/accounts/token-file-ops.js.map +1 -0
  28. package/dist/cliproxy/accounts/types.d.ts +66 -0
  29. package/dist/cliproxy/accounts/types.d.ts.map +1 -0
  30. package/dist/cliproxy/accounts/types.js +12 -0
  31. package/dist/cliproxy/accounts/types.js.map +1 -0
  32. package/dist/cliproxy/auth/auth-types.d.ts +2 -0
  33. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  34. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  35. package/dist/cliproxy/auth/oauth-handler.js +60 -0
  36. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  37. package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -1
  38. package/dist/cliproxy/auth/token-expiry-checker.js +5 -1
  39. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
  40. package/dist/cliproxy/binary/downloader.d.ts +39 -0
  41. package/dist/cliproxy/binary/downloader.d.ts.map +1 -1
  42. package/dist/cliproxy/binary/downloader.js +97 -5
  43. package/dist/cliproxy/binary/downloader.js.map +1 -1
  44. package/dist/cliproxy/cliproxy-executor.d.ts +11 -28
  45. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
  46. package/dist/cliproxy/cliproxy-executor.js +20 -1018
  47. package/dist/cliproxy/cliproxy-executor.js.map +1 -1
  48. package/dist/cliproxy/config/env-builder.d.ts +60 -0
  49. package/dist/cliproxy/config/env-builder.d.ts.map +1 -0
  50. package/dist/cliproxy/config/env-builder.js +311 -0
  51. package/dist/cliproxy/config/env-builder.js.map +1 -0
  52. package/dist/cliproxy/config/generator.d.ts +63 -0
  53. package/dist/cliproxy/config/generator.d.ts.map +1 -0
  54. package/dist/cliproxy/config/generator.js +336 -0
  55. package/dist/cliproxy/config/generator.js.map +1 -0
  56. package/dist/cliproxy/config/index.d.ts +10 -0
  57. package/dist/cliproxy/config/index.d.ts.map +1 -0
  58. package/dist/cliproxy/config/index.js +26 -0
  59. package/dist/cliproxy/config/index.js.map +1 -0
  60. package/dist/cliproxy/config/path-resolver.d.ts +47 -0
  61. package/dist/cliproxy/config/path-resolver.d.ts.map +1 -0
  62. package/dist/cliproxy/config/path-resolver.js +104 -0
  63. package/dist/cliproxy/config/path-resolver.js.map +1 -0
  64. package/dist/cliproxy/config/port-manager.d.ts +33 -0
  65. package/dist/cliproxy/config/port-manager.d.ts.map +1 -0
  66. package/dist/cliproxy/config/port-manager.js +68 -0
  67. package/dist/cliproxy/config/port-manager.js.map +1 -0
  68. package/dist/cliproxy/config/thinking-config.d.ts +39 -0
  69. package/dist/cliproxy/config/thinking-config.d.ts.map +1 -0
  70. package/dist/cliproxy/config/thinking-config.js +143 -0
  71. package/dist/cliproxy/config/thinking-config.js.map +1 -0
  72. package/dist/cliproxy/config-generator.d.ts +9 -221
  73. package/dist/cliproxy/config-generator.d.ts.map +1 -1
  74. package/dist/cliproxy/config-generator.js +12 -856
  75. package/dist/cliproxy/config-generator.js.map +1 -1
  76. package/dist/cliproxy/executor/env-resolver.d.ts +45 -0
  77. package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -0
  78. package/dist/cliproxy/executor/env-resolver.js +106 -0
  79. package/dist/cliproxy/executor/env-resolver.js.map +1 -0
  80. package/dist/cliproxy/executor/index.d.ts +24 -0
  81. package/dist/cliproxy/executor/index.d.ts.map +1 -0
  82. package/dist/cliproxy/executor/index.js +669 -0
  83. package/dist/cliproxy/executor/index.js.map +1 -0
  84. package/dist/cliproxy/executor/lifecycle-manager.d.ts +33 -0
  85. package/dist/cliproxy/executor/lifecycle-manager.d.ts.map +1 -0
  86. package/dist/cliproxy/executor/lifecycle-manager.js +161 -0
  87. package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -0
  88. package/dist/cliproxy/executor/retry-handler.d.ts +27 -0
  89. package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -0
  90. package/dist/cliproxy/executor/retry-handler.js +109 -0
  91. package/dist/cliproxy/executor/retry-handler.js.map +1 -0
  92. package/dist/cliproxy/executor/session-bridge.d.ts +30 -0
  93. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -0
  94. package/dist/cliproxy/executor/session-bridge.js +232 -0
  95. package/dist/cliproxy/executor/session-bridge.js.map +1 -0
  96. package/dist/cliproxy/index.d.ts +2 -0
  97. package/dist/cliproxy/index.d.ts.map +1 -1
  98. package/dist/cliproxy/index.js +4 -1
  99. package/dist/cliproxy/index.js.map +1 -1
  100. package/dist/cliproxy/schema-sanitizer.d.ts +45 -0
  101. package/dist/cliproxy/schema-sanitizer.d.ts.map +1 -0
  102. package/dist/cliproxy/schema-sanitizer.js +283 -0
  103. package/dist/cliproxy/schema-sanitizer.js.map +1 -0
  104. package/dist/cliproxy/tool-sanitization-proxy.d.ts +3 -2
  105. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -1
  106. package/dist/cliproxy/tool-sanitization-proxy.js +14 -3
  107. package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -1
  108. package/dist/commands/cliproxy/auth-subcommand.d.ts +10 -0
  109. package/dist/commands/cliproxy/auth-subcommand.d.ts.map +1 -0
  110. package/dist/commands/cliproxy/auth-subcommand.js +55 -0
  111. package/dist/commands/cliproxy/auth-subcommand.js.map +1 -0
  112. package/dist/commands/cliproxy/help-subcommand.d.ts +8 -0
  113. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -0
  114. package/dist/commands/cliproxy/help-subcommand.js +87 -0
  115. package/dist/commands/cliproxy/help-subcommand.js.map +1 -0
  116. package/dist/commands/cliproxy/index.d.ts +11 -0
  117. package/dist/commands/cliproxy/index.d.ts.map +1 -0
  118. package/dist/commands/cliproxy/index.js +196 -0
  119. package/dist/commands/cliproxy/index.js.map +1 -0
  120. package/dist/commands/cliproxy/install-subcommand.d.ts +14 -0
  121. package/dist/commands/cliproxy/install-subcommand.d.ts.map +1 -0
  122. package/dist/commands/cliproxy/install-subcommand.js +112 -0
  123. package/dist/commands/cliproxy/install-subcommand.js.map +1 -0
  124. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +10 -0
  125. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +1 -0
  126. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +54 -0
  127. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -0
  128. package/dist/commands/cliproxy/quota-subcommand.d.ts +16 -0
  129. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -0
  130. package/dist/commands/cliproxy/quota-subcommand.js +383 -0
  131. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -0
  132. package/dist/commands/cliproxy/variant-subcommand.d.ts +11 -0
  133. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -0
  134. package/dist/commands/cliproxy/variant-subcommand.js +292 -0
  135. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -0
  136. package/dist/commands/cliproxy-command.d.ts +4 -15
  137. package/dist/commands/cliproxy-command.d.ts.map +1 -1
  138. package/dist/commands/cliproxy-command.js +5 -1090
  139. package/dist/commands/cliproxy-command.js.map +1 -1
  140. package/dist/commands/help-command.d.ts.map +1 -1
  141. package/dist/commands/help-command.js +1 -0
  142. package/dist/commands/help-command.js.map +1 -1
  143. package/dist/ui/assets/{accounts-BBpXWvSH.js → accounts-DmKrgrCj.js} +1 -1
  144. package/dist/ui/assets/{alert-dialog-vAfEWTTx.js → alert-dialog-CHcjWgRn.js} +1 -1
  145. package/dist/ui/assets/{api-DZ5UMkSM.js → api-BFHZ3RKb.js} +1 -1
  146. package/dist/ui/assets/{auth-section-CaMKkkvu.js → auth-section-DAI6Q5vU.js} +1 -1
  147. package/dist/ui/assets/{backups-section-WHuXhsOd.js → backups-section-B1O8i4FM.js} +1 -1
  148. package/dist/ui/assets/{cliproxy-BJ4pL9JG.js → cliproxy-BsSI8qFW.js} +1 -1
  149. package/dist/ui/assets/{cliproxy-control-panel-RfbZRHh8.js → cliproxy-control-panel-3zVE7jZH.js} +1 -1
  150. package/dist/ui/assets/{confirm-dialog-DflEMDZr.js → confirm-dialog-DV0JzL4A.js} +1 -1
  151. package/dist/ui/assets/{copilot-qDXWR1GO.js → copilot-BX8vT5RR.js} +2 -2
  152. package/dist/ui/assets/{globalenv-section-f_BGs9T6.js → globalenv-section-BAft0m9b.js} +1 -1
  153. package/dist/ui/assets/{health-C8g76Gw9.js → health-ct5TpFUE.js} +1 -1
  154. package/dist/ui/assets/{index-lueAmZoj.js → index-B8-K01HW.js} +1 -1
  155. package/dist/ui/assets/{index-DFnuP2Pl.js → index-BOsGipAU.js} +1 -1
  156. package/dist/ui/assets/index-CU3zgD6n.js +1 -0
  157. package/dist/ui/assets/{index-mYPtkHHX.js → index-RZ6b7YTz.js} +1 -1
  158. package/dist/ui/assets/{index-BgcyV-uV.js → index-gfWiPznS.js} +2 -2
  159. package/dist/ui/assets/{proxy-status-widget-B4pFTeam.js → proxy-status-widget-Ng9oZdrw.js} +1 -1
  160. package/dist/ui/assets/{shared-DBOiFFnj.js → shared-DpInRmag.js} +1 -1
  161. package/dist/ui/assets/{switch-DtGK4jP3.js → switch-DkRSlAu-.js} +1 -1
  162. package/dist/ui/index.html +1 -1
  163. package/dist/utils/shell-executor.d.ts +5 -2
  164. package/dist/utils/shell-executor.d.ts.map +1 -1
  165. package/dist/utils/shell-executor.js +17 -19
  166. package/dist/utils/shell-executor.js.map +1 -1
  167. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  168. package/dist/web-server/routes/account-routes.js +14 -2
  169. package/dist/web-server/routes/account-routes.js.map +1 -1
  170. package/package.json +3 -1
  171. package/dist/ui/assets/index-DZpRED6o.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/cliproxy/variant-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAoB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAyDzE,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,eAAiC,GACzC,OAAO,CAAC,IAAI,CAAC,CA2Kf;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DhE"}
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+ /**
3
+ * CLIProxy Variant Management
4
+ *
5
+ * Handles:
6
+ * - ccs cliproxy create [name]
7
+ * - ccs cliproxy remove <name>
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.handleRemove = exports.handleCreate = void 0;
34
+ const path = __importStar(require("path"));
35
+ const account_manager_1 = require("../../cliproxy/account-manager");
36
+ const oauth_handler_1 = require("../../cliproxy/auth/oauth-handler");
37
+ const profile_detector_1 = require("../../auth/profile-detector");
38
+ const model_catalog_1 = require("../../cliproxy/model-catalog");
39
+ const unified_config_loader_1 = require("../../config/unified-config-loader");
40
+ const ui_1 = require("../../utils/ui");
41
+ const prompt_1 = require("../../utils/prompt");
42
+ const services_1 = require("../../cliproxy/services");
43
+ const platform_detector_1 = require("../../cliproxy/platform-detector");
44
+ function parseProfileArgs(args) {
45
+ const result = {};
46
+ for (let i = 0; i < args.length; i++) {
47
+ const arg = args[i];
48
+ if (arg === '--provider' && args[i + 1]) {
49
+ result.provider = args[++i];
50
+ }
51
+ else if (arg === '--model' && args[i + 1]) {
52
+ result.model = args[++i];
53
+ }
54
+ else if (arg === '--account' && args[i + 1]) {
55
+ result.account = args[++i];
56
+ }
57
+ else if (arg === '--force') {
58
+ result.force = true;
59
+ }
60
+ else if (arg === '--yes' || arg === '-y') {
61
+ result.yes = true;
62
+ }
63
+ else if (!arg.startsWith('-') && !result.name) {
64
+ result.name = arg;
65
+ }
66
+ }
67
+ return result;
68
+ }
69
+ function formatModelOption(model) {
70
+ const tierBadge = model.tier === 'ultra'
71
+ ? (0, ui_1.color)(' [Ultra]', 'warning')
72
+ : model.tier === 'pro'
73
+ ? (0, ui_1.color)(' [Pro]', 'warning')
74
+ : '';
75
+ return `${model.name}${tierBadge}`;
76
+ }
77
+ function getBackendLabel(backend) {
78
+ return backend === 'plus' ? 'CLIProxy Plus' : 'CLIProxy';
79
+ }
80
+ async function handleCreate(args, backend = platform_detector_1.DEFAULT_BACKEND) {
81
+ await (0, ui_1.initUI)();
82
+ const parsedArgs = parseProfileArgs(args);
83
+ console.log((0, ui_1.header)(`Create ${getBackendLabel(backend)} Variant`));
84
+ console.log('');
85
+ // Step 1: Profile name
86
+ let name = parsedArgs.name;
87
+ if (!name) {
88
+ name = await prompt_1.InteractivePrompt.input('Variant name (e.g., g3, flash, pro)', {
89
+ validate: services_1.validateProfileName,
90
+ });
91
+ }
92
+ else {
93
+ const error = (0, services_1.validateProfileName)(name);
94
+ if (error) {
95
+ console.log((0, ui_1.fail)(error));
96
+ process.exit(1);
97
+ }
98
+ }
99
+ if ((0, services_1.variantExists)(name) && !parsedArgs.force) {
100
+ console.log((0, ui_1.fail)(`Variant '${name}' already exists`));
101
+ console.log(` Use ${(0, ui_1.color)('--force', 'command')} to overwrite`);
102
+ process.exit(1);
103
+ }
104
+ // Step 2: Provider selection
105
+ let provider = parsedArgs.provider;
106
+ if (!provider) {
107
+ const providerOptions = profile_detector_1.CLIPROXY_PROFILES.map((p) => ({
108
+ id: p,
109
+ label: p.charAt(0).toUpperCase() + p.slice(1),
110
+ }));
111
+ provider = (await prompt_1.InteractivePrompt.selectFromList('Select provider:', providerOptions));
112
+ }
113
+ else if (!profile_detector_1.CLIPROXY_PROFILES.includes(provider)) {
114
+ console.log((0, ui_1.fail)(`Invalid provider: ${provider}`));
115
+ console.log(` Available: ${profile_detector_1.CLIPROXY_PROFILES.join(', ')}`);
116
+ process.exit(1);
117
+ }
118
+ // Step 2.5: Account selection
119
+ let account = parsedArgs.account;
120
+ const providerAccounts = (0, account_manager_1.getProviderAccounts)(provider);
121
+ if (!account) {
122
+ if (providerAccounts.length === 0) {
123
+ console.log('');
124
+ console.log((0, ui_1.warn)(`No accounts authenticated for ${provider}`));
125
+ console.log('');
126
+ const shouldAuth = await prompt_1.InteractivePrompt.confirm(`Authenticate with ${provider} now?`, {
127
+ default: true,
128
+ });
129
+ if (!shouldAuth) {
130
+ console.log('');
131
+ console.log((0, ui_1.info)('Run authentication first:'));
132
+ console.log(` ${(0, ui_1.color)(`ccs ${provider} --auth`, 'command')}`);
133
+ process.exit(0);
134
+ }
135
+ console.log('');
136
+ const newAccount = await (0, oauth_handler_1.triggerOAuth)(provider, {
137
+ add: true,
138
+ verbose: args.includes('--verbose'),
139
+ });
140
+ if (!newAccount) {
141
+ console.log((0, ui_1.fail)('Authentication failed'));
142
+ process.exit(1);
143
+ }
144
+ account = newAccount.id;
145
+ console.log('');
146
+ console.log((0, ui_1.ok)(`Authenticated as ${newAccount.email || newAccount.id}`));
147
+ }
148
+ else if (providerAccounts.length === 1) {
149
+ account = providerAccounts[0].id;
150
+ }
151
+ else {
152
+ const ADD_NEW_ID = '__add_new__';
153
+ const accountOptions = [
154
+ ...providerAccounts.map((acc) => ({
155
+ id: acc.id,
156
+ label: `${acc.email || acc.id}${acc.isDefault ? ' (default)' : ''}`,
157
+ })),
158
+ { id: ADD_NEW_ID, label: (0, ui_1.color)('[+ Add new account...]', 'info') },
159
+ ];
160
+ const defaultIdx = providerAccounts.findIndex((a) => a.isDefault);
161
+ const selectedAccount = await prompt_1.InteractivePrompt.selectFromList('Select account:', accountOptions, { defaultIndex: defaultIdx >= 0 ? defaultIdx : 0 });
162
+ if (selectedAccount === ADD_NEW_ID) {
163
+ console.log('');
164
+ const newAccount = await (0, oauth_handler_1.triggerOAuth)(provider, {
165
+ add: true,
166
+ verbose: args.includes('--verbose'),
167
+ });
168
+ if (!newAccount) {
169
+ console.log((0, ui_1.fail)('Authentication failed'));
170
+ process.exit(1);
171
+ }
172
+ account = newAccount.id;
173
+ console.log('');
174
+ console.log((0, ui_1.ok)(`Authenticated as ${newAccount.email || newAccount.id}`));
175
+ }
176
+ else {
177
+ account = selectedAccount;
178
+ }
179
+ }
180
+ }
181
+ else {
182
+ const exists = providerAccounts.find((a) => a.id === account);
183
+ if (!exists) {
184
+ console.log((0, ui_1.fail)(`Account '${account}' not found for ${provider}`));
185
+ console.log('');
186
+ console.log('Available accounts:');
187
+ providerAccounts.forEach((a) => console.log(` - ${a.email || a.id}${a.isDefault ? ' (default)' : ''}`));
188
+ process.exit(1);
189
+ }
190
+ }
191
+ // Step 3: Model selection
192
+ let model = parsedArgs.model;
193
+ if (!model) {
194
+ if ((0, model_catalog_1.supportsModelConfig)(provider)) {
195
+ const catalog = (0, model_catalog_1.getProviderCatalog)(provider);
196
+ if (catalog) {
197
+ const modelOptions = catalog.models.map((m) => ({ id: m.id, label: formatModelOption(m) }));
198
+ const defaultIdx = catalog.models.findIndex((m) => m.id === catalog.defaultModel);
199
+ model = await prompt_1.InteractivePrompt.selectFromList('Select model:', modelOptions, {
200
+ defaultIndex: defaultIdx >= 0 ? defaultIdx : 0,
201
+ });
202
+ }
203
+ }
204
+ if (!model) {
205
+ model = await prompt_1.InteractivePrompt.input('Model name', {
206
+ validate: (val) => (val ? null : 'Model is required'),
207
+ });
208
+ }
209
+ }
210
+ // Create variant
211
+ console.log('');
212
+ console.log((0, ui_1.info)(`Creating ${getBackendLabel(backend)} variant...`));
213
+ const result = (0, services_1.createVariant)(name, provider, model, account);
214
+ if (!result.success) {
215
+ console.log((0, ui_1.fail)(`Failed to create variant: ${result.error}`));
216
+ process.exit(1);
217
+ }
218
+ console.log('');
219
+ const configType = (0, unified_config_loader_1.isUnifiedMode)()
220
+ ? 'CLIProxy Variant Created (Unified Config)'
221
+ : 'CLIProxy Variant Created';
222
+ const settingsDisplay = (0, unified_config_loader_1.isUnifiedMode)()
223
+ ? '~/.ccs/config.yaml'
224
+ : `~/.ccs/${path.basename(result.settingsPath || '')}`;
225
+ const portInfo = result.variant?.port ? `Port: ${result.variant.port}\n` : '';
226
+ console.log((0, ui_1.infoBox)(`Variant: ${name}\nProvider: ${provider}\nModel: ${model}\n${portInfo}${account ? `Account: ${account}\n` : ''}${(0, unified_config_loader_1.isUnifiedMode)() ? 'Config' : 'Settings'}: ${settingsDisplay}`, configType));
227
+ console.log('');
228
+ console.log((0, ui_1.header)('Usage'));
229
+ console.log(` ${(0, ui_1.color)(`ccs ${name} "your prompt"`, 'command')}`);
230
+ console.log('');
231
+ console.log((0, ui_1.dim)('To change model later:'));
232
+ console.log(` ${(0, ui_1.color)(`ccs ${name} --config`, 'command')}`);
233
+ console.log('');
234
+ }
235
+ exports.handleCreate = handleCreate;
236
+ async function handleRemove(args) {
237
+ await (0, ui_1.initUI)();
238
+ const parsedArgs = parseProfileArgs(args);
239
+ const variants = (0, services_1.listVariants)();
240
+ const variantNames = Object.keys(variants);
241
+ if (variantNames.length === 0) {
242
+ console.log((0, ui_1.warn)('No CLIProxy variants to remove'));
243
+ process.exit(0);
244
+ }
245
+ let name = parsedArgs.name;
246
+ if (!name) {
247
+ console.log((0, ui_1.header)('Remove CLIProxy Variant'));
248
+ console.log('');
249
+ console.log('Available variants:');
250
+ variantNames.forEach((n, i) => console.log(` ${i + 1}. ${n} (${variants[n].provider})`));
251
+ console.log('');
252
+ name = await prompt_1.InteractivePrompt.input('Variant name to remove', {
253
+ validate: (val) => {
254
+ if (!val)
255
+ return 'Variant name is required';
256
+ if (!variantNames.includes(val))
257
+ return `Variant '${val}' not found`;
258
+ return null;
259
+ },
260
+ });
261
+ }
262
+ if (!variantNames.includes(name)) {
263
+ console.log((0, ui_1.fail)(`Variant '${name}' not found`));
264
+ console.log('');
265
+ console.log('Available variants:');
266
+ variantNames.forEach((n) => console.log(` - ${n}`));
267
+ process.exit(1);
268
+ }
269
+ const variant = variants[name];
270
+ console.log('');
271
+ console.log(`Variant '${(0, ui_1.color)(name, 'command')}' will be removed.`);
272
+ console.log(` Provider: ${variant.provider}`);
273
+ if (variant.port) {
274
+ console.log(` Port: ${variant.port}`);
275
+ }
276
+ console.log(` Settings: ${variant.settings || '-'}`);
277
+ console.log('');
278
+ const confirmed = parsedArgs.yes || (await prompt_1.InteractivePrompt.confirm('Delete this variant?', { default: false }));
279
+ if (!confirmed) {
280
+ console.log((0, ui_1.info)('Cancelled'));
281
+ process.exit(0);
282
+ }
283
+ const result = (0, services_1.removeVariant)(name);
284
+ if (!result.success) {
285
+ console.log((0, ui_1.fail)(`Failed to remove variant: ${result.error}`));
286
+ process.exit(1);
287
+ }
288
+ console.log((0, ui_1.ok)(`Variant removed: ${name}`));
289
+ console.log('');
290
+ }
291
+ exports.handleRemove = handleRemove;
292
+ //# sourceMappingURL=variant-subcommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant-subcommand.js","sourceRoot":"","sources":["../../../src/commands/cliproxy/variant-subcommand.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,10 @@
1
1
  /**
2
2
  * CLIProxy Command Handler
3
3
  *
4
- * Manages CLIProxyAPI binary installation and profile variants.
4
+ * DEPRECATED: This file is a backwards-compatible re-export shim.
5
+ * The actual implementation has been modularized into src/commands/cliproxy/
5
6
  *
6
- * Binary commands:
7
- * ccs cliproxy Show current version
8
- * ccs cliproxy --install <ver> Install specific version
9
- * ccs cliproxy --latest Install latest version
10
- *
11
- * Profile commands:
12
- * ccs cliproxy create <name> Create CLIProxy variant profile
13
- * ccs cliproxy list List all CLIProxy variant profiles
14
- * ccs cliproxy remove <name> Remove CLIProxy variant profile
15
- *
16
- * Supports dual-mode configuration:
17
- * - Unified YAML format (config.yaml) when CCS_UNIFIED_CONFIG=1 or config.yaml exists
18
- * - Legacy JSON format (config.json) as fallback
7
+ * See src/commands/cliproxy/index.ts for the new dispatcher.
19
8
  */
20
- export declare function handleCliproxyCommand(args: string[]): Promise<void>;
9
+ export { handleCliproxyCommand } from './cliproxy/index';
21
10
  //# sourceMappingURL=cliproxy-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cliproxy-command.d.ts","sourceRoot":"","sources":["../../src/commands/cliproxy-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAmqCH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FzE"}
1
+ {"version":3,"file":"cliproxy-command.d.ts","sourceRoot":"","sources":["../../src/commands/cliproxy-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}