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

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 (193) hide show
  1. package/README.md +26 -4
  2. package/dist/ccs.js +70 -370
  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 +249 -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/env-command.d.ts.map +1 -1
  68. package/dist/commands/env-command.js +5 -0
  69. package/dist/commands/env-command.js.map +1 -1
  70. package/dist/commands/help-command.js +1 -1
  71. package/dist/commands/help-command.js.map +1 -1
  72. package/dist/commands/named-command-router.d.ts +17 -0
  73. package/dist/commands/named-command-router.d.ts.map +1 -0
  74. package/dist/commands/named-command-router.js +39 -0
  75. package/dist/commands/named-command-router.js.map +1 -0
  76. package/dist/commands/persist-command.js +1 -1
  77. package/dist/commands/persist-command.js.map +1 -1
  78. package/dist/commands/root-command-router.d.ts +2 -0
  79. package/dist/commands/root-command-router.d.ts.map +1 -0
  80. package/dist/commands/root-command-router.js +209 -0
  81. package/dist/commands/root-command-router.js.map +1 -0
  82. package/dist/config/unified-config-loader.js +1 -1
  83. package/dist/config/unified-config-loader.js.map +1 -1
  84. package/dist/cursor/cursor-anthropic-response.d.ts +6 -0
  85. package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -0
  86. package/dist/cursor/cursor-anthropic-response.js +190 -0
  87. package/dist/cursor/cursor-anthropic-response.js.map +1 -0
  88. package/dist/cursor/cursor-anthropic-translator.d.ts +11 -0
  89. package/dist/cursor/cursor-anthropic-translator.d.ts.map +1 -0
  90. package/dist/cursor/cursor-anthropic-translator.js +167 -0
  91. package/dist/cursor/cursor-anthropic-translator.js.map +1 -0
  92. package/dist/cursor/cursor-anthropic-types.d.ts +46 -0
  93. package/dist/cursor/cursor-anthropic-types.d.ts.map +1 -0
  94. package/dist/cursor/cursor-anthropic-types.js +3 -0
  95. package/dist/cursor/cursor-anthropic-types.js.map +1 -0
  96. package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
  97. package/dist/cursor/cursor-daemon-entry.js +53 -24
  98. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  99. package/dist/cursor/cursor-models.d.ts.map +1 -1
  100. package/dist/cursor/cursor-models.js +36 -2
  101. package/dist/cursor/cursor-models.js.map +1 -1
  102. package/dist/glmt/glmt-proxy.d.ts +4 -3
  103. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  104. package/dist/glmt/glmt-proxy.js +4 -3
  105. package/dist/glmt/glmt-proxy.js.map +1 -1
  106. package/dist/glmt/sse-parser.d.ts +2 -0
  107. package/dist/glmt/sse-parser.d.ts.map +1 -1
  108. package/dist/glmt/sse-parser.js +4 -0
  109. package/dist/glmt/sse-parser.js.map +1 -1
  110. package/dist/management/instance-manager.d.ts.map +1 -1
  111. package/dist/management/instance-manager.js +1 -0
  112. package/dist/management/instance-manager.js.map +1 -1
  113. package/dist/management/recovery-manager.d.ts +2 -2
  114. package/dist/management/recovery-manager.js +2 -2
  115. package/dist/management/shared-manager.d.ts +18 -1
  116. package/dist/management/shared-manager.d.ts.map +1 -1
  117. package/dist/management/shared-manager.js +82 -14
  118. package/dist/management/shared-manager.js.map +1 -1
  119. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  120. package/dist/shared/claude-extension-setup.js +16 -2
  121. package/dist/shared/claude-extension-setup.js.map +1 -1
  122. package/dist/shared/provider-preset-catalog.d.ts +1 -1
  123. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  124. package/dist/shared/provider-preset-catalog.js +34 -40
  125. package/dist/shared/provider-preset-catalog.js.map +1 -1
  126. package/dist/ui/assets/{accounts-CZEg1_PX.js → accounts-CjGyCl_8.js} +1 -1
  127. package/dist/ui/assets/{alert-dialog-DhwS38kc.js → alert-dialog-cy99V8EM.js} +1 -1
  128. package/dist/ui/assets/{api-sWNND4wP.js → api-DKrhDjiy.js} +1 -1
  129. package/dist/ui/assets/{auth-section-nJIpOcnm.js → auth-section-DsDyGmzl.js} +1 -1
  130. package/dist/ui/assets/{backups-section-D3A6hmrU.js → backups-section-B63xrUmB.js} +1 -1
  131. package/dist/ui/assets/checkbox-AxZFvatO.js +1 -0
  132. package/dist/ui/assets/{claude-extension-BjInaILv.js → claude-extension-N0lxo7BY.js} +1 -1
  133. package/dist/ui/assets/cliproxy-D2ozaUJ3.js +3 -0
  134. package/dist/ui/assets/{cliproxy-control-panel-CKO2Sn9B.js → cliproxy-control-panel-5fYLcZKs.js} +1 -1
  135. package/dist/ui/assets/{confirm-dialog-DTKxwrat.js → confirm-dialog-D2bDFGvT.js} +1 -1
  136. package/dist/ui/assets/copilot-INm6uOZF.js +3 -0
  137. package/dist/ui/assets/cursor-C8rDHKEp.js +1 -0
  138. package/dist/ui/assets/{droid-Cl8QsJJL.js → droid-OZDvbiwC.js} +2 -2
  139. package/dist/ui/assets/{globalenv-section-C3dxxoD9.js → globalenv-section-ClTBgKg5.js} +1 -1
  140. package/dist/ui/assets/{health-BUifaDU7.js → health-CGaRANip.js} +1 -1
  141. package/dist/ui/assets/icons-DtwH984l.js +1 -0
  142. package/dist/ui/assets/{index-CPdceT1C.js → index-CCSdUs7x.js} +1 -1
  143. package/dist/ui/assets/{index-BOsbrhaa.js → index-CGOZU3jq.js} +1 -1
  144. package/dist/ui/assets/index-ClEn7Y7g.css +1 -0
  145. package/dist/ui/assets/{index-xayyyR26.js → index-DQ4jn6yA.js} +1 -1
  146. package/dist/ui/assets/{index-CYo-E5rU.js → index-DS1QEaxk.js} +1 -1
  147. package/dist/ui/assets/index-tMnuUCFi.js +47 -0
  148. package/dist/ui/assets/providers/llama-cpp.svg +5 -0
  149. package/dist/ui/assets/{proxy-status-widget-D94htBPb.js → proxy-status-widget-PESjh9-t.js} +1 -1
  150. package/dist/ui/assets/{radix-ui-BR1vy4kf.js → radix-ui-Dt3edmE5.js} +8 -8
  151. package/dist/ui/assets/searchable-select-D6dcPTiL.js +1 -0
  152. package/dist/ui/assets/{separator-3fBbTn-V.js → separator-Czy9IRpl.js} +1 -1
  153. package/dist/ui/assets/{shared-q_FNNbjD.js → shared-BUJNJgAr.js} +1 -1
  154. package/dist/ui/assets/{switch-5N8qBdBr.js → switch-Bog43RUy.js} +1 -1
  155. package/dist/ui/assets/{tanstack-e99Cjjy2.js → tanstack-B8i0evp-.js} +1 -1
  156. package/dist/ui/assets/{updates-CubQ54J0.js → updates-jcWPnn9L.js} +1 -1
  157. package/dist/ui/icons/novita.svg +9 -0
  158. package/dist/ui/index.html +5 -5
  159. package/dist/utils/config-manager.d.ts +1 -1
  160. package/dist/utils/config-manager.js +1 -1
  161. package/dist/utils/fetch-proxy-setup.d.ts.map +1 -1
  162. package/dist/utils/fetch-proxy-setup.js.map +1 -1
  163. package/dist/utils/glmt-deprecation.d.ts +11 -0
  164. package/dist/utils/glmt-deprecation.d.ts.map +1 -0
  165. package/dist/utils/glmt-deprecation.js +64 -0
  166. package/dist/utils/glmt-deprecation.js.map +1 -0
  167. package/dist/utils/shell-executor.d.ts.map +1 -1
  168. package/dist/utils/shell-executor.js +12 -0
  169. package/dist/utils/shell-executor.js.map +1 -1
  170. package/dist/web-server/index.d.ts +1 -0
  171. package/dist/web-server/index.d.ts.map +1 -1
  172. package/dist/web-server/index.js +39 -3
  173. package/dist/web-server/index.js.map +1 -1
  174. package/dist/web-server/routes/profile-routes.d.ts +1 -0
  175. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  176. package/dist/web-server/routes/profile-routes.js +3 -0
  177. package/dist/web-server/routes/profile-routes.js.map +1 -1
  178. package/dist/web-server/routes/variant-routes.d.ts +1 -0
  179. package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
  180. package/dist/web-server/routes/variant-routes.js +3 -0
  181. package/dist/web-server/routes/variant-routes.js.map +1 -1
  182. package/package.json +3 -2
  183. package/scripts/completion/README.md +1 -1
  184. package/scripts/completion/ccs.fish +1 -2
  185. package/scripts/completion/ccs.zsh +1 -2
  186. package/scripts/postinstall.js +3 -3
  187. package/dist/ui/assets/checkbox-CZrxD1iS.js +0 -1
  188. package/dist/ui/assets/cliproxy-BGiSCGkl.js +0 -3
  189. package/dist/ui/assets/copilot-CuRngdBg.js +0 -3
  190. package/dist/ui/assets/cursor-Dxo0uIiU.js +0 -1
  191. package/dist/ui/assets/icons-DrEfTmfX.js +0 -1
  192. package/dist/ui/assets/index-Btf_ow2V.css +0 -1
  193. package/dist/ui/assets/index-Cw9Urr0S.js +0 -47
@@ -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"}
@@ -0,0 +1,111 @@
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.handleApiImportCommand = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const services_1 = require("../../api/services");
29
+ const ui_1 = require("../../utils/ui");
30
+ const prompt_1 = require("../../utils/prompt");
31
+ const arg_extractor_1 = require("../arg-extractor");
32
+ const shared_1 = require("./shared");
33
+ function renderValidationIssue(issue) {
34
+ const indicator = issue.level === 'error' ? (0, ui_1.color)('[X]', 'error') : (0, ui_1.color)('[!]', 'warning');
35
+ console.log(`${indicator} ${issue.message}`);
36
+ }
37
+ async function handleApiImportCommand(args) {
38
+ await (0, ui_1.initUI)();
39
+ const force = (0, arg_extractor_1.hasAnyFlag)(args, ['--force']);
40
+ const yes = (0, arg_extractor_1.hasAnyFlag)(args, ['--yes', '-y']);
41
+ const nameExtracted = (0, arg_extractor_1.extractOption)(args, ['--name'], {
42
+ knownFlags: ['--name', '--target', '--force', '--yes', '-y'],
43
+ });
44
+ if (nameExtracted.found && (nameExtracted.missingValue || !nameExtracted.value)) {
45
+ console.log((0, ui_1.fail)('Missing value for --name'));
46
+ process.exit(1);
47
+ }
48
+ const targetParsed = (0, shared_1.parseOptionalTargetFlag)(nameExtracted.remainingArgs, [
49
+ '--name',
50
+ '--target',
51
+ '--force',
52
+ '--yes',
53
+ '-y',
54
+ ]);
55
+ if (targetParsed.errors.length > 0) {
56
+ targetParsed.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
57
+ process.exit(1);
58
+ }
59
+ const syntax = (0, shared_1.collectUnexpectedApiArgs)(targetParsed.remainingArgs, {
60
+ knownFlags: ['--force', '--yes', '-y'],
61
+ maxPositionals: 1,
62
+ });
63
+ if (syntax.errors.length > 0) {
64
+ syntax.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
65
+ process.exit(1);
66
+ }
67
+ const importPath = syntax.positionals[0];
68
+ if (!importPath) {
69
+ console.log((0, ui_1.fail)('Import file path is required. Usage: ccs api import <file> [--name <new-name>]'));
70
+ process.exit(1);
71
+ }
72
+ if (!fs.existsSync(importPath)) {
73
+ console.log((0, ui_1.fail)(`File not found: ${importPath}`));
74
+ process.exit(1);
75
+ }
76
+ let bundle;
77
+ try {
78
+ bundle = JSON.parse(fs.readFileSync(importPath, 'utf8'));
79
+ }
80
+ catch (error) {
81
+ console.log((0, ui_1.fail)(`Invalid JSON file: ${error.message}`));
82
+ process.exit(1);
83
+ }
84
+ if (!yes) {
85
+ const confirmed = await prompt_1.InteractivePrompt.confirm(`Import profile bundle from "${importPath}"?`, {
86
+ default: true,
87
+ });
88
+ if (!confirmed) {
89
+ console.log((0, ui_1.info)('Cancelled'));
90
+ process.exit(0);
91
+ }
92
+ }
93
+ const result = (0, services_1.importApiProfileBundle)(bundle, {
94
+ name: nameExtracted.value,
95
+ target: targetParsed.target,
96
+ force,
97
+ });
98
+ if (!result.success) {
99
+ console.log((0, ui_1.fail)(result.error || 'Failed to import profile'));
100
+ if (result.validation?.issues?.length) {
101
+ console.log('');
102
+ result.validation.issues.forEach(renderValidationIssue);
103
+ }
104
+ process.exit(1);
105
+ }
106
+ console.log((0, ui_1.ok)(`Profile imported: ${result.name}`));
107
+ result.warnings?.forEach((warningMessage) => console.log((0, ui_1.warn)(warningMessage)));
108
+ console.log('');
109
+ }
110
+ exports.handleApiImportCommand = handleApiImportCommand;
111
+ //# sourceMappingURL=import-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/import-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { parseApiCommandArgs } from './shared';
2
+ export declare function handleApiCommand(args: string[]): Promise<void>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAY/C,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpE"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleApiCommand = exports.parseApiCommandArgs = void 0;
4
+ const named_command_router_1 = require("../named-command-router");
5
+ const copy_command_1 = require("./copy-command");
6
+ const create_command_1 = require("./create-command");
7
+ const discover_command_1 = require("./discover-command");
8
+ const export_command_1 = require("./export-command");
9
+ const help_1 = require("./help");
10
+ const import_command_1 = require("./import-command");
11
+ const list_command_1 = require("./list-command");
12
+ const remove_command_1 = require("./remove-command");
13
+ var shared_1 = require("./shared");
14
+ Object.defineProperty(exports, "parseApiCommandArgs", { enumerable: true, get: function () { return shared_1.parseApiCommandArgs; } });
15
+ const API_COMMAND_ROUTES = [
16
+ { name: 'create', handle: create_command_1.handleApiCreateCommand },
17
+ { name: 'list', handle: list_command_1.handleApiListCommand },
18
+ { name: 'discover', handle: discover_command_1.handleApiDiscoverCommand },
19
+ { name: 'copy', handle: copy_command_1.handleApiCopyCommand },
20
+ { name: 'export', handle: export_command_1.handleApiExportCommand },
21
+ { name: 'import', handle: import_command_1.handleApiImportCommand },
22
+ { name: 'remove', aliases: ['delete', 'rm'], handle: remove_command_1.handleApiRemoveCommand },
23
+ ];
24
+ async function handleApiCommand(args) {
25
+ await (0, named_command_router_1.dispatchNamedCommand)({
26
+ args,
27
+ routes: API_COMMAND_ROUTES,
28
+ onHelp: help_1.showApiCommandHelp,
29
+ onUnknown: help_1.showUnknownApiCommand,
30
+ allowEmptyHelp: true,
31
+ });
32
+ }
33
+ exports.handleApiCommand = handleApiCommand;
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/api-command/index.ts"],"names":[],"mappings":";;;AAAA,kEAAuF;AACvF,iDAAsD;AACtD,qDAA0D;AAC1D,yDAA8D;AAC9D,qDAA0D;AAC1D,iCAAmE;AACnE,qDAA0D;AAC1D,iDAAsD;AACtD,qDAA0D;AAE1D,mCAA+C;AAAtC,6GAAA,mBAAmB,OAAA;AAE5B,MAAM,kBAAkB,GAAiC;IACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,uCAAsB,EAAE;IAClD,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mCAAoB,EAAE;IAC9C,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,2CAAwB,EAAE;IACtD,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mCAAoB,EAAE;IAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,uCAAsB,EAAE;IAClD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,uCAAsB,EAAE;IAClD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,uCAAsB,EAAE;CAC9E,CAAC;AAEK,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,MAAM,IAAA,2CAAoB,EAAC;QACzB,IAAI;QACJ,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,yBAAkB;QAC1B,SAAS,EAAE,4BAAqB;QAChC,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;AACL,CAAC;AARD,4CAQC"}
@@ -0,0 +1,2 @@
1
+ export declare function handleApiListCommand(args?: string[]): Promise<void>;
2
+ //# sourceMappingURL=list-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-command.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/list-command.ts"],"names":[],"mappings":"AAIA,wBAAsB,oBAAoB,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD7E"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleApiListCommand = void 0;
4
+ const services_1 = require("../../api/services");
5
+ const ui_1 = require("../../utils/ui");
6
+ const shared_1 = require("./shared");
7
+ async function handleApiListCommand(args = []) {
8
+ await (0, ui_1.initUI)();
9
+ const syntax = (0, shared_1.collectUnexpectedApiArgs)(args, {
10
+ maxPositionals: 0,
11
+ });
12
+ if (syntax.errors.length > 0) {
13
+ syntax.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
14
+ process.exit(1);
15
+ }
16
+ console.log((0, ui_1.header)('CCS API Profiles'));
17
+ console.log('');
18
+ const { profiles, variants } = (0, services_1.listApiProfiles)();
19
+ if (profiles.length === 0) {
20
+ console.log((0, ui_1.warn)('No API profiles configured'));
21
+ console.log('');
22
+ console.log('To create an API profile:');
23
+ console.log(` ${(0, ui_1.color)('ccs api create', 'command')}`);
24
+ console.log('');
25
+ return;
26
+ }
27
+ const rows = profiles.map((profile) => {
28
+ const status = profile.isConfigured ? (0, ui_1.color)('[OK]', 'success') : (0, ui_1.color)('[!]', 'warning');
29
+ return [profile.name, profile.target, profile.settingsPath, status];
30
+ });
31
+ console.log((0, ui_1.table)(rows, {
32
+ head: ['API', 'Target', (0, services_1.isUsingUnifiedConfig)() ? 'Config' : 'Settings File', 'Status'],
33
+ colWidths: (0, services_1.isUsingUnifiedConfig)() ? [15, 10, 20, 10] : [15, 10, 35, 10],
34
+ }));
35
+ console.log('');
36
+ if (variants.length > 0) {
37
+ console.log((0, ui_1.subheader)('CLIProxy Variants'));
38
+ console.log((0, ui_1.table)(variants.map((variant) => [
39
+ variant.name,
40
+ variant.provider,
41
+ variant.target,
42
+ variant.settings,
43
+ ]), {
44
+ head: ['Variant', 'Provider', 'Target', 'Settings'],
45
+ colWidths: [15, 12, 10, 28],
46
+ }));
47
+ console.log('');
48
+ }
49
+ console.log((0, ui_1.dim)(`Total: ${profiles.length} API profile(s)`));
50
+ console.log('');
51
+ }
52
+ exports.handleApiListCommand = handleApiListCommand;
53
+ //# sourceMappingURL=list-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/list-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleApiRemoveCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=remove-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-command.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/remove-command.ts"],"names":[],"mappings":"AAKA,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D1E"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleApiRemoveCommand = void 0;
4
+ const services_1 = require("../../api/services");
5
+ const ui_1 = require("../../utils/ui");
6
+ const prompt_1 = require("../../utils/prompt");
7
+ const shared_1 = require("./shared");
8
+ async function handleApiRemoveCommand(args) {
9
+ await (0, ui_1.initUI)();
10
+ const parsedArgs = (0, shared_1.parseApiCommandArgs)(args);
11
+ (0, shared_1.exitOnApiCommandErrors)(parsedArgs.errors);
12
+ const apis = (0, services_1.getApiProfileNames)();
13
+ if (apis.length === 0) {
14
+ console.log((0, ui_1.warn)('No API profiles to remove'));
15
+ process.exit(0);
16
+ }
17
+ let name = parsedArgs.name;
18
+ if (!name) {
19
+ console.log((0, ui_1.header)('Remove API Profile'));
20
+ console.log('');
21
+ console.log('Available APIs:');
22
+ apis.forEach((api, index) => console.log(` ${index + 1}. ${api}`));
23
+ console.log('');
24
+ name = await prompt_1.InteractivePrompt.input('API name to remove', {
25
+ validate: (value) => {
26
+ if (!value)
27
+ return 'API name is required';
28
+ if (!apis.includes(value))
29
+ return `API '${value}' not found`;
30
+ return null;
31
+ },
32
+ });
33
+ }
34
+ if (!apis.includes(name)) {
35
+ console.log((0, ui_1.fail)(`API '${name}' not found`));
36
+ console.log('');
37
+ console.log('Available APIs:');
38
+ apis.forEach((api) => console.log(` - ${api}`));
39
+ process.exit(1);
40
+ }
41
+ console.log('');
42
+ console.log(`API '${(0, ui_1.color)(name, 'command')}' will be removed.`);
43
+ console.log(` Settings: ~/.ccs/${name}.settings.json`);
44
+ if ((0, services_1.isUsingUnifiedConfig)()) {
45
+ console.log(' Config: ~/.ccs/config.yaml');
46
+ }
47
+ console.log('');
48
+ const confirmed = parsedArgs.yes ||
49
+ (await prompt_1.InteractivePrompt.confirm('Delete this API profile?', { default: false }));
50
+ if (!confirmed) {
51
+ console.log((0, ui_1.info)('Cancelled'));
52
+ process.exit(0);
53
+ }
54
+ const result = (0, services_1.removeApiProfile)(name);
55
+ if (!result.success) {
56
+ console.log((0, ui_1.fail)(`Failed to remove API profile: ${result.error}`));
57
+ process.exit(1);
58
+ }
59
+ console.log((0, ui_1.ok)(`API profile removed: ${name}`));
60
+ console.log('');
61
+ }
62
+ exports.handleApiRemoveCommand = handleApiRemoveCommand;
63
+ //# sourceMappingURL=remove-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/remove-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { TargetType } from '../../targets/target-adapter';
2
+ export interface ApiCommandArgs {
3
+ name?: string;
4
+ positionals: string[];
5
+ baseUrl?: string;
6
+ apiKey?: string;
7
+ model?: string;
8
+ preset?: string;
9
+ target?: TargetType;
10
+ force?: boolean;
11
+ yes?: boolean;
12
+ errors: string[];
13
+ }
14
+ export declare const API_BOOLEAN_FLAGS: readonly ["--force", "--yes", "-y"];
15
+ export declare const API_VALUE_FLAGS: readonly ["--base-url", "--api-key", "--model", "--preset", "--target"];
16
+ export declare const API_KNOWN_FLAGS: readonly string[];
17
+ export interface ParseApiCommandArgsOptions {
18
+ maxPositionals?: number;
19
+ }
20
+ export declare function sanitizeHelpText(value: string): string;
21
+ export declare function extractPositionalArgs(args: string[]): string[];
22
+ export declare function parseOptionalTargetFlag(args: string[], knownFlags: readonly string[]): {
23
+ target?: TargetType;
24
+ remainingArgs: string[];
25
+ errors: string[];
26
+ };
27
+ export declare function collectUnexpectedApiArgs(args: string[], options: {
28
+ knownFlags?: readonly string[];
29
+ maxPositionals: number;
30
+ }): {
31
+ positionals: string[];
32
+ errors: string[];
33
+ };
34
+ export declare function parseApiCommandArgs(args: string[], options?: ParseApiCommandArgsOptions): ApiCommandArgs;
35
+ export declare function exitOnApiCommandErrors(errors: string[]): void;
36
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,iBAAiB,qCAAsC,CAAC;AACrE,eAAO,MAAM,eAAe,yEAMlB,CAAC;AACX,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA+C,CAAC;AAI7F,MAAM,WAAW,0BAA0B;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMtD;AA8BD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAwB9D;AAUD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAoBpE;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IACP,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB,GACA;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAe7C;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,0BAA+B,GACvC,cAAc,CAmFhB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAS7D"}