@kaitranntt/ccs 7.54.0-dev.1 → 7.54.0-dev.10

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/README.md +26 -4
  2. package/dist/ccs.js +2 -112
  3. package/dist/ccs.js.map +1 -1
  4. package/dist/commands/api-command/copy-command.d.ts +2 -0
  5. package/dist/commands/api-command/copy-command.d.ts.map +1 -0
  6. package/dist/commands/api-command/copy-command.js +41 -0
  7. package/dist/commands/api-command/copy-command.js.map +1 -0
  8. package/dist/commands/api-command/create-command.d.ts +2 -0
  9. package/dist/commands/api-command/create-command.d.ts.map +1 -0
  10. package/dist/commands/api-command/create-command.js +239 -0
  11. package/dist/commands/api-command/create-command.js.map +1 -0
  12. package/dist/commands/api-command/discover-command.d.ts +2 -0
  13. package/dist/commands/api-command/discover-command.d.ts.map +1 -0
  14. package/dist/commands/api-command/discover-command.js +69 -0
  15. package/dist/commands/api-command/discover-command.js.map +1 -0
  16. package/dist/commands/api-command/export-command.d.ts +2 -0
  17. package/dist/commands/api-command/export-command.d.ts.map +1 -0
  18. package/dist/commands/api-command/export-command.js +73 -0
  19. package/dist/commands/api-command/export-command.js.map +1 -0
  20. package/dist/commands/api-command/help.d.ts +3 -0
  21. package/dist/commands/api-command/help.d.ts.map +1 -0
  22. package/dist/commands/api-command/help.js +100 -0
  23. package/dist/commands/api-command/help.js.map +1 -0
  24. package/dist/commands/api-command/import-command.d.ts +2 -0
  25. package/dist/commands/api-command/import-command.d.ts.map +1 -0
  26. package/dist/commands/api-command/import-command.js +111 -0
  27. package/dist/commands/api-command/import-command.js.map +1 -0
  28. package/dist/commands/api-command/index.d.ts +3 -0
  29. package/dist/commands/api-command/index.d.ts.map +1 -0
  30. package/dist/commands/api-command/index.js +34 -0
  31. package/dist/commands/api-command/index.js.map +1 -0
  32. package/dist/commands/api-command/list-command.d.ts +2 -0
  33. package/dist/commands/api-command/list-command.d.ts.map +1 -0
  34. package/dist/commands/api-command/list-command.js +53 -0
  35. package/dist/commands/api-command/list-command.js.map +1 -0
  36. package/dist/commands/api-command/remove-command.d.ts +2 -0
  37. package/dist/commands/api-command/remove-command.d.ts.map +1 -0
  38. package/dist/commands/api-command/remove-command.js +63 -0
  39. package/dist/commands/api-command/remove-command.js.map +1 -0
  40. package/dist/commands/api-command/shared.d.ts +36 -0
  41. package/dist/commands/api-command/shared.d.ts.map +1 -0
  42. package/dist/commands/api-command/shared.js +164 -0
  43. package/dist/commands/api-command/shared.js.map +1 -0
  44. package/dist/commands/api-command.d.ts +1 -26
  45. package/dist/commands/api-command.d.ts.map +1 -1
  46. package/dist/commands/api-command.js +3 -807
  47. package/dist/commands/api-command.js.map +1 -1
  48. package/dist/commands/arg-extractor.d.ts +15 -0
  49. package/dist/commands/arg-extractor.d.ts.map +1 -1
  50. package/dist/commands/arg-extractor.js +48 -2
  51. package/dist/commands/arg-extractor.js.map +1 -1
  52. package/dist/commands/config-auth/index.d.ts.map +1 -1
  53. package/dist/commands/config-auth/index.js +35 -19
  54. package/dist/commands/config-auth/index.js.map +1 -1
  55. package/dist/commands/config-command-options.d.ts +14 -0
  56. package/dist/commands/config-command-options.d.ts.map +1 -0
  57. package/dist/commands/config-command-options.js +108 -0
  58. package/dist/commands/config-command-options.js.map +1 -0
  59. package/dist/commands/config-command.d.ts +1 -1
  60. package/dist/commands/config-command.d.ts.map +1 -1
  61. package/dist/commands/config-command.js +91 -104
  62. package/dist/commands/config-command.js.map +1 -1
  63. package/dist/commands/config-dashboard-host.d.ts +17 -0
  64. package/dist/commands/config-dashboard-host.d.ts.map +1 -0
  65. package/dist/commands/config-dashboard-host.js +99 -0
  66. package/dist/commands/config-dashboard-host.js.map +1 -0
  67. package/dist/commands/help-command.d.ts.map +1 -1
  68. package/dist/commands/help-command.js +1 -0
  69. package/dist/commands/help-command.js.map +1 -1
  70. package/dist/commands/named-command-router.d.ts +17 -0
  71. package/dist/commands/named-command-router.d.ts.map +1 -0
  72. package/dist/commands/named-command-router.js +39 -0
  73. package/dist/commands/named-command-router.js.map +1 -0
  74. package/dist/commands/root-command-router.d.ts +2 -0
  75. package/dist/commands/root-command-router.d.ts.map +1 -0
  76. package/dist/commands/root-command-router.js +209 -0
  77. package/dist/commands/root-command-router.js.map +1 -0
  78. package/dist/cursor/cursor-anthropic-response.d.ts +6 -0
  79. package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -0
  80. package/dist/cursor/cursor-anthropic-response.js +190 -0
  81. package/dist/cursor/cursor-anthropic-response.js.map +1 -0
  82. package/dist/cursor/cursor-anthropic-translator.d.ts +11 -0
  83. package/dist/cursor/cursor-anthropic-translator.d.ts.map +1 -0
  84. package/dist/cursor/cursor-anthropic-translator.js +167 -0
  85. package/dist/cursor/cursor-anthropic-translator.js.map +1 -0
  86. package/dist/cursor/cursor-anthropic-types.d.ts +46 -0
  87. package/dist/cursor/cursor-anthropic-types.d.ts.map +1 -0
  88. package/dist/cursor/cursor-anthropic-types.js +3 -0
  89. package/dist/cursor/cursor-anthropic-types.js.map +1 -0
  90. package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
  91. package/dist/cursor/cursor-daemon-entry.js +53 -24
  92. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  93. package/dist/cursor/cursor-models.d.ts.map +1 -1
  94. package/dist/cursor/cursor-models.js +36 -2
  95. package/dist/cursor/cursor-models.js.map +1 -1
  96. package/dist/glmt/sse-parser.d.ts +2 -0
  97. package/dist/glmt/sse-parser.d.ts.map +1 -1
  98. package/dist/glmt/sse-parser.js +4 -0
  99. package/dist/glmt/sse-parser.js.map +1 -1
  100. package/dist/management/instance-manager.d.ts.map +1 -1
  101. package/dist/management/instance-manager.js +1 -0
  102. package/dist/management/instance-manager.js.map +1 -1
  103. package/dist/management/shared-manager.d.ts +18 -1
  104. package/dist/management/shared-manager.d.ts.map +1 -1
  105. package/dist/management/shared-manager.js +82 -14
  106. package/dist/management/shared-manager.js.map +1 -1
  107. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  108. package/dist/shared/claude-extension-setup.js +3 -0
  109. package/dist/shared/claude-extension-setup.js.map +1 -1
  110. package/dist/shared/provider-preset-catalog.d.ts +1 -1
  111. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  112. package/dist/shared/provider-preset-catalog.js +32 -15
  113. package/dist/shared/provider-preset-catalog.js.map +1 -1
  114. package/dist/ui/assets/{accounts-CZEg1_PX.js → accounts-v8ElDmpv.js} +1 -1
  115. package/dist/ui/assets/{alert-dialog-DhwS38kc.js → alert-dialog-L5Ct0Tm9.js} +1 -1
  116. package/dist/ui/assets/{api-sWNND4wP.js → api-C5CuNrT6.js} +1 -1
  117. package/dist/ui/assets/{auth-section-nJIpOcnm.js → auth-section-P8GsBk1u.js} +1 -1
  118. package/dist/ui/assets/{backups-section-D3A6hmrU.js → backups-section-gBIJ2rQw.js} +1 -1
  119. package/dist/ui/assets/checkbox-DQ1oAx_4.js +1 -0
  120. package/dist/ui/assets/{claude-extension-BjInaILv.js → claude-extension-CjEyjaGL.js} +1 -1
  121. package/dist/ui/assets/cliproxy-C0dWlSJs.js +3 -0
  122. package/dist/ui/assets/{cliproxy-control-panel-CKO2Sn9B.js → cliproxy-control-panel-CdCrzgLe.js} +1 -1
  123. package/dist/ui/assets/{confirm-dialog-DTKxwrat.js → confirm-dialog-DaydoeD7.js} +1 -1
  124. package/dist/ui/assets/copilot-SA3U22Y9.js +3 -0
  125. package/dist/ui/assets/cursor-BfkF3VwC.js +1 -0
  126. package/dist/ui/assets/{droid-Cl8QsJJL.js → droid-BfSJyZXD.js} +2 -2
  127. package/dist/ui/assets/{globalenv-section-C3dxxoD9.js → globalenv-section-rg8Ctc2R.js} +1 -1
  128. package/dist/ui/assets/{health-BUifaDU7.js → health-Cii2iTlp.js} +1 -1
  129. package/dist/ui/assets/icons-DtwH984l.js +1 -0
  130. package/dist/ui/assets/{index-CPdceT1C.js → index-B4Qc134R.js} +1 -1
  131. package/dist/ui/assets/{index-CYo-E5rU.js → index-CBleAyoZ.js} +1 -1
  132. package/dist/ui/assets/index-ClEn7Y7g.css +1 -0
  133. package/dist/ui/assets/{index-BOsbrhaa.js → index-D1CmdSLO.js} +1 -1
  134. package/dist/ui/assets/{index-xayyyR26.js → index-Gpb2Emvl.js} +1 -1
  135. package/dist/ui/assets/index-og5NMtJP.js +47 -0
  136. package/dist/ui/assets/providers/llama-cpp.svg +5 -0
  137. package/dist/ui/assets/{proxy-status-widget-D94htBPb.js → proxy-status-widget-CZnGc4zY.js} +1 -1
  138. package/dist/ui/assets/{radix-ui-BR1vy4kf.js → radix-ui-Dt3edmE5.js} +8 -8
  139. package/dist/ui/assets/searchable-select-BHhY-dTx.js +1 -0
  140. package/dist/ui/assets/{separator-3fBbTn-V.js → separator-7ggevEK6.js} +1 -1
  141. package/dist/ui/assets/{shared-q_FNNbjD.js → shared-CoiUG_Qa.js} +1 -1
  142. package/dist/ui/assets/{switch-5N8qBdBr.js → switch-3-7lTxFj.js} +1 -1
  143. package/dist/ui/assets/{tanstack-e99Cjjy2.js → tanstack-B8i0evp-.js} +1 -1
  144. package/dist/ui/assets/{updates-CubQ54J0.js → updates-rQ3GVJIq.js} +1 -1
  145. package/dist/ui/icons/novita.svg +9 -0
  146. package/dist/ui/index.html +5 -5
  147. package/dist/utils/fetch-proxy-setup.d.ts.map +1 -1
  148. package/dist/utils/fetch-proxy-setup.js.map +1 -1
  149. package/dist/utils/shell-executor.d.ts.map +1 -1
  150. package/dist/utils/shell-executor.js +12 -0
  151. package/dist/utils/shell-executor.js.map +1 -1
  152. package/dist/web-server/index.d.ts +1 -0
  153. package/dist/web-server/index.d.ts.map +1 -1
  154. package/dist/web-server/index.js +39 -3
  155. package/dist/web-server/index.js.map +1 -1
  156. package/dist/web-server/routes/profile-routes.d.ts +1 -0
  157. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  158. package/dist/web-server/routes/profile-routes.js +3 -0
  159. package/dist/web-server/routes/profile-routes.js.map +1 -1
  160. package/dist/web-server/routes/variant-routes.d.ts +1 -0
  161. package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
  162. package/dist/web-server/routes/variant-routes.js +3 -0
  163. package/dist/web-server/routes/variant-routes.js.map +1 -1
  164. package/package.json +2 -1
  165. package/dist/ui/assets/checkbox-CZrxD1iS.js +0 -1
  166. package/dist/ui/assets/cliproxy-BGiSCGkl.js +0 -3
  167. package/dist/ui/assets/copilot-CuRngdBg.js +0 -3
  168. package/dist/ui/assets/cursor-Dxo0uIiU.js +0 -1
  169. package/dist/ui/assets/icons-DrEfTmfX.js +0 -1
  170. package/dist/ui/assets/index-Btf_ow2V.css +0 -1
  171. package/dist/ui/assets/index-Cw9Urr0S.js +0 -47
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleApiCreateCommand = void 0;
4
+ const services_1 = require("../../api/services");
5
+ const local_config_sync_1 = require("../../cliproxy/sync/local-config-sync");
6
+ const ui_1 = require("../../utils/ui");
7
+ const prompt_1 = require("../../utils/prompt");
8
+ const shared_1 = require("./shared");
9
+ function resolvePresetOrExit(presetId) {
10
+ if (!presetId) {
11
+ return null;
12
+ }
13
+ const preset = (0, services_1.getPresetById)(presetId);
14
+ if (preset) {
15
+ return preset;
16
+ }
17
+ console.log((0, ui_1.fail)(`Unknown preset: ${presetId}`));
18
+ console.log('');
19
+ console.log('Available presets:');
20
+ (0, services_1.getPresetIds)().forEach((id) => console.log(` - ${id}`));
21
+ process.exit(1);
22
+ }
23
+ async function resolveProfileName(providedName, preset) {
24
+ const name = providedName || preset?.defaultProfileName;
25
+ if (!name) {
26
+ return prompt_1.InteractivePrompt.input('API name', {
27
+ validate: services_1.validateApiName,
28
+ });
29
+ }
30
+ const error = (0, services_1.validateApiName)(name);
31
+ if (error) {
32
+ console.log((0, ui_1.fail)(error));
33
+ process.exit(1);
34
+ }
35
+ return name;
36
+ }
37
+ async function resolveBaseUrl(providedBaseUrl, preset) {
38
+ let baseUrl = providedBaseUrl ?? preset?.baseUrl ?? '';
39
+ if (!baseUrl && !preset) {
40
+ baseUrl = await prompt_1.InteractivePrompt.input('API Base URL (e.g., https://api.example.com/v1 - without /chat/completions)', { validate: services_1.validateUrl });
41
+ }
42
+ else if (!preset) {
43
+ const error = (0, services_1.validateUrl)(baseUrl);
44
+ if (error) {
45
+ console.log((0, ui_1.fail)(error));
46
+ process.exit(1);
47
+ }
48
+ }
49
+ if (!preset) {
50
+ const urlWarning = (0, services_1.getUrlWarning)(baseUrl);
51
+ if (urlWarning) {
52
+ console.log('');
53
+ console.log((0, ui_1.warn)(urlWarning));
54
+ const continueAnyway = await prompt_1.InteractivePrompt.confirm('Continue with this URL anyway?', {
55
+ default: false,
56
+ });
57
+ if (!continueAnyway) {
58
+ baseUrl = await prompt_1.InteractivePrompt.input('API Base URL', {
59
+ validate: services_1.validateUrl,
60
+ default: (0, services_1.sanitizeBaseUrl)(baseUrl),
61
+ });
62
+ }
63
+ }
64
+ return baseUrl;
65
+ }
66
+ console.log((0, ui_1.info)(`Using preset: ${preset.name}`));
67
+ console.log((0, ui_1.dim)(` ${preset.description}`));
68
+ console.log((0, ui_1.dim)(preset.baseUrl
69
+ ? ` Base URL: ${preset.baseUrl}`
70
+ : ' Auth: Native Anthropic API (x-api-key header)'));
71
+ console.log('');
72
+ return baseUrl;
73
+ }
74
+ async function resolveApiKey(providedApiKey, preset) {
75
+ if (preset?.requiresApiKey === false) {
76
+ if (providedApiKey) {
77
+ console.log((0, ui_1.dim)(`Note: Using provided API key for ${preset.name} (optional)`));
78
+ return providedApiKey;
79
+ }
80
+ console.log((0, ui_1.info)(`No API key required for ${preset.name}`));
81
+ return preset.apiKeyPlaceholder || preset.id;
82
+ }
83
+ if (providedApiKey) {
84
+ return providedApiKey;
85
+ }
86
+ const keyPrompt = preset?.apiKeyHint ? `API Key (${preset.apiKeyHint})` : 'API Key';
87
+ const apiKey = await prompt_1.InteractivePrompt.password(keyPrompt);
88
+ if (!apiKey) {
89
+ console.log((0, ui_1.fail)('API key is required'));
90
+ process.exit(1);
91
+ }
92
+ return apiKey;
93
+ }
94
+ async function resolveModelConfiguration(baseUrl, preset, providedModel, yes) {
95
+ let openRouterModel;
96
+ let openRouterTierMapping;
97
+ if ((0, services_1.isOpenRouterUrl)(baseUrl) && !providedModel) {
98
+ console.log('');
99
+ console.log((0, ui_1.info)('OpenRouter detected!'));
100
+ const useInteractive = await prompt_1.InteractivePrompt.confirm('Browse models interactively?', {
101
+ default: true,
102
+ });
103
+ if (useInteractive) {
104
+ const selection = await (0, services_1.pickOpenRouterModel)();
105
+ if (selection) {
106
+ openRouterModel = selection.model;
107
+ openRouterTierMapping = selection.tierMapping;
108
+ }
109
+ }
110
+ console.log('');
111
+ console.log((0, ui_1.dim)('Note: For OpenRouter, ANTHROPIC_API_KEY should be empty.'));
112
+ }
113
+ const defaultModel = preset?.defaultModel || 'claude-sonnet-4-6';
114
+ let model = providedModel || openRouterModel || preset?.defaultModel;
115
+ if (!model && !yes && !preset) {
116
+ model = await prompt_1.InteractivePrompt.input('Default model (ANTHROPIC_MODEL)', {
117
+ default: defaultModel,
118
+ });
119
+ }
120
+ model = model || defaultModel;
121
+ let opusModel = openRouterTierMapping?.opus || model;
122
+ let sonnetModel = openRouterTierMapping?.sonnet || model;
123
+ let haikuModel = openRouterTierMapping?.haiku || model;
124
+ const shouldPromptForMapping = !yes && !openRouterTierMapping && !preset;
125
+ if (shouldPromptForMapping) {
126
+ let wantCustomMapping = model !== defaultModel;
127
+ if (!wantCustomMapping) {
128
+ console.log('');
129
+ console.log((0, ui_1.dim)('Some API proxies route different model types to different backends.'));
130
+ wantCustomMapping = await prompt_1.InteractivePrompt.confirm('Configure different models for Opus/Sonnet/Haiku?', { default: false });
131
+ }
132
+ if (wantCustomMapping) {
133
+ console.log('');
134
+ console.log((0, ui_1.dim)('Leave blank to use the default model for each tier.'));
135
+ opusModel =
136
+ (await prompt_1.InteractivePrompt.input('Opus model (ANTHROPIC_DEFAULT_OPUS_MODEL)', {
137
+ default: model,
138
+ })) || model;
139
+ sonnetModel =
140
+ (await prompt_1.InteractivePrompt.input('Sonnet model (ANTHROPIC_DEFAULT_SONNET_MODEL)', {
141
+ default: model,
142
+ })) || model;
143
+ haikuModel =
144
+ (await prompt_1.InteractivePrompt.input('Haiku model (ANTHROPIC_DEFAULT_HAIKU_MODEL)', {
145
+ default: model,
146
+ })) || model;
147
+ }
148
+ }
149
+ return {
150
+ model,
151
+ models: {
152
+ default: model,
153
+ opus: opusModel,
154
+ sonnet: sonnetModel,
155
+ haiku: haikuModel,
156
+ },
157
+ };
158
+ }
159
+ async function resolveDefaultTarget(providedTarget, yes) {
160
+ if (providedTarget) {
161
+ return providedTarget;
162
+ }
163
+ if (yes) {
164
+ return 'claude';
165
+ }
166
+ const useDroidByDefault = await prompt_1.InteractivePrompt.confirm('Set default target to Factory Droid for this profile?', { default: false });
167
+ return useDroidByDefault ? 'droid' : 'claude';
168
+ }
169
+ async function handleApiCreateCommand(args) {
170
+ await (0, ui_1.initUI)();
171
+ const parsedArgs = (0, shared_1.parseApiCommandArgs)(args);
172
+ (0, shared_1.exitOnApiCommandErrors)(parsedArgs.errors);
173
+ console.log((0, ui_1.header)('Create API Profile'));
174
+ console.log('');
175
+ const preset = resolvePresetOrExit(parsedArgs.preset);
176
+ const name = await resolveProfileName(parsedArgs.name, preset);
177
+ if ((0, services_1.apiProfileExists)(name) && !parsedArgs.force) {
178
+ console.log((0, ui_1.fail)(`API '${name}' already exists`));
179
+ console.log(` Use ${(0, ui_1.color)('--force', 'command')} to overwrite`);
180
+ process.exit(1);
181
+ }
182
+ let baseUrl = await resolveBaseUrl(parsedArgs.baseUrl, preset);
183
+ if (baseUrl && baseUrl.includes('api.anthropic.com') && !preset) {
184
+ console.log('');
185
+ console.log((0, ui_1.info)('Anthropic Direct API detected. Base URL will be omitted for native auth.'));
186
+ baseUrl = '';
187
+ }
188
+ const apiKey = await resolveApiKey(parsedArgs.apiKey, preset);
189
+ const { model, models } = await resolveModelConfiguration(baseUrl, preset, parsedArgs.model, parsedArgs.yes);
190
+ const target = await resolveDefaultTarget(parsedArgs.target, parsedArgs.yes);
191
+ console.log('');
192
+ console.log((0, ui_1.info)('Creating API profile...'));
193
+ const result = (0, services_1.createApiProfile)(name, baseUrl || '', apiKey, models, target);
194
+ if (!result.success) {
195
+ console.log((0, ui_1.fail)(`Failed to create API profile: ${result.error}`));
196
+ process.exit(1);
197
+ }
198
+ try {
199
+ (0, local_config_sync_1.syncToLocalConfig)();
200
+ }
201
+ catch (error) {
202
+ const message = error instanceof Error ? error.message : 'Unknown error';
203
+ console.log(`[i] Auto-sync to CLIProxy config skipped: ${message}`);
204
+ }
205
+ const hasCustomMapping = models.opus !== model || models.sonnet !== model || models.haiku !== model;
206
+ let details = `API: ${name}\n` +
207
+ `Config: ${(0, services_1.isUsingUnifiedConfig)() ? '~/.ccs/config.yaml' : '~/.ccs/config.json'}\n` +
208
+ `Settings: ${result.settingsFile}\n` +
209
+ `Base URL: ${baseUrl}\n` +
210
+ `Model: ${model}\n` +
211
+ `Target: ${target}`;
212
+ if (hasCustomMapping) {
213
+ details +=
214
+ `\n\nModel Mapping:\n` +
215
+ ` Opus: ${models.opus}\n` +
216
+ ` Sonnet: ${models.sonnet}\n` +
217
+ ` Haiku: ${models.haiku}`;
218
+ }
219
+ console.log('');
220
+ console.log((0, ui_1.infoBox)(details, 'API Profile Created'));
221
+ console.log('');
222
+ console.log((0, ui_1.header)('Usage'));
223
+ if (target === 'droid') {
224
+ console.log(` ${(0, ui_1.color)(`ccs ${name} "your prompt"`, 'command')} ${(0, ui_1.dim)('# uses droid by default')}`);
225
+ console.log(` ${(0, ui_1.color)(`ccsd ${name} "your prompt"`, 'command')} ${(0, ui_1.dim)('# explicit droid alias')}`);
226
+ console.log(` ${(0, ui_1.color)(`ccs ${name} --target claude "your prompt"`, 'command')} ${(0, ui_1.dim)('# override to Claude')}`);
227
+ }
228
+ else {
229
+ console.log(` ${(0, ui_1.color)(`ccs ${name} "your prompt"`, 'command')} ${(0, ui_1.dim)('# uses claude by default')}`);
230
+ console.log(` ${(0, ui_1.color)(`ccs ${name} --target droid "your prompt"`, 'command')} ${(0, ui_1.dim)('# run on droid for this call')}`);
231
+ }
232
+ console.log('');
233
+ console.log((0, ui_1.header)('Edit Settings'));
234
+ console.log(` ${(0, ui_1.dim)('To modify env vars later:')}`);
235
+ console.log(` ${(0, ui_1.color)(`nano ${result.settingsFile.replace('~', '$HOME')}`, 'command')}`);
236
+ console.log('');
237
+ }
238
+ exports.handleApiCreateCommand = handleApiCreateCommand;
239
+ //# sourceMappingURL=create-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/create-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleApiDiscoverCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=discover-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-command.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/discover-command.ts"],"names":[],"mappings":"AAKA,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyE5E"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleApiDiscoverCommand = void 0;
4
+ const services_1 = require("../../api/services");
5
+ const ui_1 = require("../../utils/ui");
6
+ const arg_extractor_1 = require("../arg-extractor");
7
+ const shared_1 = require("./shared");
8
+ async function handleApiDiscoverCommand(args) {
9
+ await (0, ui_1.initUI)();
10
+ const register = (0, arg_extractor_1.hasAnyFlag)(args, ['--register']);
11
+ const jsonOutput = (0, arg_extractor_1.hasAnyFlag)(args, ['--json']);
12
+ const force = (0, arg_extractor_1.hasAnyFlag)(args, ['--force']);
13
+ const targetParsed = (0, shared_1.parseOptionalTargetFlag)(args, [...shared_1.API_KNOWN_FLAGS, '--register', '--json']);
14
+ if (targetParsed.errors.length > 0) {
15
+ targetParsed.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
16
+ process.exit(1);
17
+ }
18
+ const syntax = (0, shared_1.collectUnexpectedApiArgs)(targetParsed.remainingArgs, {
19
+ knownFlags: ['--register', '--json', '--force'],
20
+ maxPositionals: 0,
21
+ });
22
+ if (syntax.errors.length > 0) {
23
+ syntax.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
24
+ process.exit(1);
25
+ }
26
+ const result = (0, services_1.discoverApiProfileOrphans)();
27
+ if (jsonOutput) {
28
+ console.log(JSON.stringify(result, null, 2));
29
+ return;
30
+ }
31
+ console.log((0, ui_1.header)('Discover Orphan API Profiles'));
32
+ console.log('');
33
+ if (result.orphans.length === 0) {
34
+ console.log((0, ui_1.ok)('No orphan settings files found.'));
35
+ console.log('');
36
+ return;
37
+ }
38
+ console.log((0, ui_1.table)(result.orphans.map((orphan) => {
39
+ const status = orphan.validation.valid ? (0, ui_1.color)('[OK]', 'success') : (0, ui_1.color)('[X]', 'error');
40
+ const issueSummary = orphan.validation.issues.length > 0
41
+ ? orphan.validation.issues[0].message
42
+ : 'Ready to register';
43
+ return [orphan.name, status, issueSummary];
44
+ }), {
45
+ head: ['Profile', 'Status', 'Validation'],
46
+ colWidths: [20, 10, 64],
47
+ }));
48
+ console.log('');
49
+ if (!register) {
50
+ console.log((0, ui_1.info)('To register discovered profiles:'));
51
+ console.log(` ${(0, ui_1.color)('ccs api discover --register', 'command')}`);
52
+ console.log('');
53
+ return;
54
+ }
55
+ const registration = (0, services_1.registerApiProfileOrphans)({
56
+ target: targetParsed.target || 'claude',
57
+ force,
58
+ });
59
+ console.log((0, ui_1.ok)(`Registered: ${registration.registered.length}`));
60
+ if (registration.skipped.length > 0) {
61
+ console.log((0, ui_1.warn)(`Skipped: ${registration.skipped.length}`));
62
+ registration.skipped.forEach((item) => {
63
+ console.log(` - ${item.name}: ${item.reason}`);
64
+ });
65
+ }
66
+ console.log('');
67
+ }
68
+ exports.handleApiDiscoverCommand = handleApiDiscoverCommand;
69
+ //# sourceMappingURL=discover-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/discover-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleApiExportCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=export-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-command.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/export-command.ts"],"names":[],"mappings":"AAOA,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C1E"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.handleApiExportCommand = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const path = __importStar(require("path"));
29
+ const services_1 = require("../../api/services");
30
+ const ui_1 = require("../../utils/ui");
31
+ const arg_extractor_1 = require("../arg-extractor");
32
+ const shared_1 = require("./shared");
33
+ async function handleApiExportCommand(args) {
34
+ await (0, ui_1.initUI)();
35
+ const includeSecrets = (0, arg_extractor_1.hasAnyFlag)(args, ['--include-secrets']);
36
+ const outExtracted = (0, arg_extractor_1.extractOption)(args, ['--out'], {
37
+ allowDashValue: true,
38
+ allowLongDashValue: true,
39
+ knownFlags: ['--out', '--include-secrets'],
40
+ });
41
+ if (outExtracted.found && (outExtracted.missingValue || !outExtracted.value)) {
42
+ console.log((0, ui_1.fail)('Missing value for --out'));
43
+ process.exit(1);
44
+ }
45
+ const syntax = (0, shared_1.collectUnexpectedApiArgs)(outExtracted.remainingArgs, {
46
+ knownFlags: ['--include-secrets'],
47
+ maxPositionals: 1,
48
+ });
49
+ if (syntax.errors.length > 0) {
50
+ syntax.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
51
+ process.exit(1);
52
+ }
53
+ const name = syntax.positionals[0];
54
+ if (!name) {
55
+ console.log((0, ui_1.fail)('Profile name is required. Usage: ccs api export <name> [--out <file>]'));
56
+ process.exit(1);
57
+ }
58
+ const result = (0, services_1.exportApiProfile)(name, includeSecrets);
59
+ if (!result.success || !result.bundle) {
60
+ console.log((0, ui_1.fail)(result.error || 'Failed to export profile'));
61
+ process.exit(1);
62
+ }
63
+ const outputPath = path.resolve(outExtracted.value || `${name}.ccs-profile.json`);
64
+ fs.mkdirSync(path.dirname(outputPath), { recursive: true });
65
+ fs.writeFileSync(outputPath, JSON.stringify(result.bundle, null, 2) + '\n', 'utf8');
66
+ console.log((0, ui_1.ok)(`Profile exported to: ${outputPath}`));
67
+ if (result.redacted) {
68
+ console.log((0, ui_1.warn)('Token was redacted in export. Use --include-secrets to include it.'));
69
+ }
70
+ console.log('');
71
+ }
72
+ exports.handleApiExportCommand = handleApiExportCommand;
73
+ //# sourceMappingURL=export-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/export-command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAsD;AACtD,uCAAwD;AACxD,oDAA6D;AAC7D,qCAAoD;AAE7C,KAAK,UAAU,sBAAsB,CAAC,IAAc;IACzD,MAAM,IAAA,WAAM,GAAE,CAAC;IACf,MAAM,cAAc,GAAG,IAAA,0BAAU,EAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,IAAA,6BAAa,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAClD,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;KAC3C,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,yBAAyB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,iCAAwB,EAAC,YAAY,CAAC,aAAa,EAAE;QAClE,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,cAAc,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,uEAAuE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2BAAgB,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,GAAG,IAAI,mBAAmB,CAAC,CAAC;IAClF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAEpF,OAAO,CAAC,GAAG,CAAC,IAAA,OAAE,EAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,oEAAoE,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AA5CD,wDA4CC"}
@@ -0,0 +1,3 @@
1
+ export declare function showApiCommandHelp(): Promise<void>;
2
+ export declare function showUnknownApiCommand(command: string): Promise<void>;
3
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/help.ts"],"names":[],"mappings":"AAiBA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0FxD;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1E"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.showUnknownApiCommand = exports.showApiCommandHelp = void 0;
4
+ const services_1 = require("../../api/services");
5
+ const ui_1 = require("../../utils/ui");
6
+ const shared_1 = require("./shared");
7
+ function renderPresetHelpLine(preset, idWidth) {
8
+ const presetId = (0, shared_1.sanitizeHelpText)(preset.id) || 'unknown';
9
+ const paddedId = presetId.padEnd(idWidth);
10
+ const presetName = (0, shared_1.sanitizeHelpText)(preset.name) || 'Unknown preset';
11
+ const presetDescription = (0, shared_1.sanitizeHelpText)(preset.description) || 'No description';
12
+ return ` ${(0, ui_1.color)(paddedId, 'command')} ${presetName} - ${presetDescription}`;
13
+ }
14
+ async function showApiCommandHelp() {
15
+ await (0, ui_1.initUI)();
16
+ const presetIds = (0, services_1.getPresetIds)()
17
+ .map((id) => (0, shared_1.sanitizeHelpText)(id))
18
+ .filter(Boolean);
19
+ const presetAliases = (0, services_1.getPresetAliases)();
20
+ const presetIdWidth = Math.max(0, ...presetIds.map((id) => id.length)) + 2;
21
+ console.log((0, ui_1.header)('CCS API Management'));
22
+ console.log('');
23
+ console.log((0, ui_1.subheader)('Usage'));
24
+ console.log(` ${(0, ui_1.color)('ccs api', 'command')} <command> [options]`);
25
+ console.log('');
26
+ console.log((0, ui_1.subheader)('Commands'));
27
+ console.log(` ${(0, ui_1.color)('create [name]', 'command')} Create new API profile (interactive)`);
28
+ console.log(` ${(0, ui_1.color)('list', 'command')} List all API profiles`);
29
+ console.log(` ${(0, ui_1.color)('discover', 'command')} Discover orphan *.settings.json and register`);
30
+ console.log(` ${(0, ui_1.color)('copy <src> <dest>', 'command')} Duplicate API profile settings + config`);
31
+ console.log(` ${(0, ui_1.color)('export <name>', 'command')} Export profile bundle for cross-device transfer`);
32
+ console.log(` ${(0, ui_1.color)('import <file>', 'command')} Import profile bundle and register profile`);
33
+ console.log(` ${(0, ui_1.color)('remove <name>', 'command')} Remove an API profile`);
34
+ console.log('');
35
+ console.log((0, ui_1.subheader)('Options'));
36
+ console.log(` ${(0, ui_1.color)('--preset <id>', 'command')} Use provider preset (${presetIds.join(', ')})`);
37
+ console.log(` ${(0, ui_1.color)('--base-url <url>', 'command')} API base URL (create)`);
38
+ console.log(` ${(0, ui_1.color)('--api-key <key>', 'command')} API key (create)`);
39
+ console.log(` ${(0, ui_1.color)('--model <model>', 'command')} Default model (create)`);
40
+ console.log(` ${(0, ui_1.color)('--target <cli>', 'command')} Default target: claude or droid (create)`);
41
+ console.log(` ${(0, ui_1.color)('--register', 'command')} Register discovered orphan settings`);
42
+ console.log(` ${(0, ui_1.color)('--json', 'command')} JSON output for discover command`);
43
+ console.log(` ${(0, ui_1.color)('--out <file>', 'command')} Export bundle output path`);
44
+ console.log(` ${(0, ui_1.color)('--include-secrets', 'command')} Include token in export bundle`);
45
+ console.log(` ${(0, ui_1.color)('--name <name>', 'command')} Override profile name during import`);
46
+ console.log(` ${(0, ui_1.color)('--force', 'command')} Overwrite existing or bypass validation (create/discover/copy/import)`);
47
+ console.log(` ${(0, ui_1.color)('--yes, -y', 'command')} Skip confirmation prompts`);
48
+ console.log('');
49
+ console.log((0, ui_1.subheader)('Provider Presets'));
50
+ services_1.PROVIDER_PRESETS.forEach((preset) => console.log(renderPresetHelpLine(preset, presetIdWidth)));
51
+ Object.entries(presetAliases).forEach(([alias, canonical]) => {
52
+ const safeAlias = (0, shared_1.sanitizeHelpText)(alias);
53
+ const safeCanonical = (0, shared_1.sanitizeHelpText)(canonical);
54
+ console.log(` ${(0, ui_1.dim)(`Legacy alias: --preset ${safeAlias} (auto-mapped to ${safeCanonical})`)}`);
55
+ });
56
+ console.log('');
57
+ console.log((0, ui_1.subheader)('Examples'));
58
+ console.log(` ${(0, ui_1.dim)('# Interactive wizard')}`);
59
+ console.log(` ${(0, ui_1.color)('ccs api create', 'command')}`);
60
+ console.log('');
61
+ console.log(` ${(0, ui_1.dim)('# Quick setup with preset')}`);
62
+ console.log(` ${(0, ui_1.color)('ccs api create --preset anthropic', 'command')}`);
63
+ console.log(` ${(0, ui_1.color)('ccs api create --preset openrouter', 'command')}`);
64
+ console.log(` ${(0, ui_1.color)('ccs api create --preset alibaba-coding-plan', 'command')}`);
65
+ console.log(` ${(0, ui_1.color)('ccs api create --preset alibaba', 'command')} ${(0, ui_1.dim)('# alias')}`);
66
+ console.log(` ${(0, ui_1.color)('ccs api create --preset glm', 'command')}`);
67
+ console.log('');
68
+ console.log(` ${(0, ui_1.dim)('# Create with name')}`);
69
+ console.log(` ${(0, ui_1.color)('ccs api create myapi', 'command')}`);
70
+ console.log(` ${(0, ui_1.color)('ccs api create mydroid --preset glm --target droid', 'command')}`);
71
+ console.log('');
72
+ console.log(` ${(0, ui_1.dim)('# Remove API profile')}`);
73
+ console.log(` ${(0, ui_1.color)('ccs api remove myapi', 'command')}`);
74
+ console.log('');
75
+ console.log(` ${(0, ui_1.dim)('# Discover and register orphan settings files')}`);
76
+ console.log(` ${(0, ui_1.color)('ccs api discover', 'command')}`);
77
+ console.log(` ${(0, ui_1.color)('ccs api discover --register', 'command')}`);
78
+ console.log('');
79
+ console.log(` ${(0, ui_1.dim)('# Duplicate an existing API profile')}`);
80
+ console.log(` ${(0, ui_1.color)('ccs api copy glm glm-backup', 'command')}`);
81
+ console.log('');
82
+ console.log(` ${(0, ui_1.dim)('# Export and import across devices')}`);
83
+ console.log(` ${(0, ui_1.color)('ccs api export glm --out ./glm.ccs-profile.json', 'command')}`);
84
+ console.log(` ${(0, ui_1.color)('ccs api import ./glm.ccs-profile.json', 'command')}`);
85
+ console.log('');
86
+ console.log(` ${(0, ui_1.dim)('# Show all API profiles')}`);
87
+ console.log(` ${(0, ui_1.color)('ccs api list', 'command')}`);
88
+ console.log('');
89
+ }
90
+ exports.showApiCommandHelp = showApiCommandHelp;
91
+ async function showUnknownApiCommand(command) {
92
+ await (0, ui_1.initUI)();
93
+ console.log((0, ui_1.fail)(`Unknown command: ${command}`));
94
+ console.log('');
95
+ console.log('Run for help:');
96
+ console.log(` ${(0, ui_1.color)('ccs api --help', 'command')}`);
97
+ process.exit(1);
98
+ }
99
+ exports.showUnknownApiCommand = showUnknownApiCommand;
100
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/commands/api-command/help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleApiImportCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=import-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-command.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/import-command.ts"],"names":[],"mappings":"AAYA,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqF1E"}