@kaitranntt/ccs 4.4.0 → 5.0.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 (262) hide show
  1. package/README.md +98 -7
  2. package/VERSION +1 -1
  3. package/config/base-agy.settings.json +10 -0
  4. package/config/base-codex.settings.json +10 -0
  5. package/config/base-gemini.settings.json +10 -0
  6. package/dist/auth/auth-commands.d.ts +52 -0
  7. package/dist/auth/auth-commands.d.ts.map +1 -0
  8. package/dist/auth/auth-commands.js +479 -0
  9. package/dist/auth/auth-commands.js.map +1 -0
  10. package/dist/auth/profile-detector.d.ts +68 -0
  11. package/dist/auth/profile-detector.d.ts.map +1 -0
  12. package/dist/auth/profile-detector.js +209 -0
  13. package/dist/auth/profile-detector.js.map +1 -0
  14. package/dist/auth/profile-registry.d.ts +60 -0
  15. package/dist/auth/profile-registry.d.ts.map +1 -0
  16. package/dist/auth/profile-registry.js +188 -0
  17. package/dist/auth/profile-registry.js.map +1 -0
  18. package/dist/ccs.d.ts +10 -0
  19. package/dist/ccs.d.ts.map +1 -0
  20. package/dist/ccs.js +320 -0
  21. package/dist/ccs.js.map +1 -0
  22. package/dist/cliproxy/auth-handler.d.ts +95 -0
  23. package/dist/cliproxy/auth-handler.d.ts.map +1 -0
  24. package/dist/cliproxy/auth-handler.js +443 -0
  25. package/dist/cliproxy/auth-handler.js.map +1 -0
  26. package/dist/cliproxy/base-config-loader.d.ts +42 -0
  27. package/dist/cliproxy/base-config-loader.d.ts.map +1 -0
  28. package/dist/cliproxy/base-config-loader.js +123 -0
  29. package/dist/cliproxy/base-config-loader.js.map +1 -0
  30. package/dist/cliproxy/binary-manager.d.ts +104 -0
  31. package/dist/cliproxy/binary-manager.d.ts.map +1 -0
  32. package/dist/cliproxy/binary-manager.js +567 -0
  33. package/dist/cliproxy/binary-manager.js.map +1 -0
  34. package/dist/cliproxy/cliproxy-executor.d.ts +33 -0
  35. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -0
  36. package/dist/cliproxy/cliproxy-executor.js +297 -0
  37. package/dist/cliproxy/cliproxy-executor.js.map +1 -0
  38. package/dist/cliproxy/config-generator.d.ts +89 -0
  39. package/dist/cliproxy/config-generator.d.ts.map +1 -0
  40. package/dist/cliproxy/config-generator.js +263 -0
  41. package/dist/cliproxy/config-generator.js.map +1 -0
  42. package/dist/cliproxy/index.d.ts +13 -0
  43. package/dist/cliproxy/index.d.ts.map +1 -0
  44. package/dist/cliproxy/index.js +62 -0
  45. package/dist/cliproxy/index.js.map +1 -0
  46. package/dist/cliproxy/platform-detector.d.ts +48 -0
  47. package/dist/cliproxy/platform-detector.d.ts.map +1 -0
  48. package/dist/cliproxy/platform-detector.js +118 -0
  49. package/dist/cliproxy/platform-detector.js.map +1 -0
  50. package/dist/cliproxy/types.d.ts +169 -0
  51. package/dist/cliproxy/types.d.ts.map +1 -0
  52. package/dist/cliproxy/types.js +7 -0
  53. package/dist/cliproxy/types.js.map +1 -0
  54. package/dist/commands/doctor-command.d.ts +10 -0
  55. package/dist/commands/doctor-command.d.ts.map +1 -0
  56. package/dist/commands/doctor-command.js +44 -0
  57. package/dist/commands/doctor-command.js.map +1 -0
  58. package/dist/commands/help-command.d.ts +5 -0
  59. package/dist/commands/help-command.d.ts.map +1 -0
  60. package/dist/commands/help-command.js +104 -0
  61. package/dist/commands/help-command.js.map +1 -0
  62. package/dist/commands/install-command.d.ts +14 -0
  63. package/dist/commands/install-command.d.ts.map +1 -0
  64. package/dist/commands/install-command.js +39 -0
  65. package/dist/commands/install-command.js.map +1 -0
  66. package/dist/commands/shell-completion-command.d.ts +10 -0
  67. package/dist/commands/shell-completion-command.d.ts.map +1 -0
  68. package/dist/commands/shell-completion-command.js +85 -0
  69. package/dist/commands/shell-completion-command.js.map +1 -0
  70. package/dist/commands/sync-command.d.ts +10 -0
  71. package/dist/commands/sync-command.d.ts.map +1 -0
  72. package/dist/commands/sync-command.js +59 -0
  73. package/dist/commands/sync-command.js.map +1 -0
  74. package/dist/commands/update-command.d.ts +12 -0
  75. package/dist/commands/update-command.d.ts.map +1 -0
  76. package/dist/commands/update-command.js +295 -0
  77. package/dist/commands/update-command.js.map +1 -0
  78. package/dist/commands/version-command.d.ts +10 -0
  79. package/dist/commands/version-command.d.ts.map +1 -0
  80. package/dist/commands/version-command.js +100 -0
  81. package/dist/commands/version-command.js.map +1 -0
  82. package/dist/delegation/delegation-handler.d.ts +60 -0
  83. package/dist/delegation/delegation-handler.d.ts.map +1 -0
  84. package/dist/delegation/delegation-handler.js +174 -0
  85. package/dist/delegation/delegation-handler.js.map +1 -0
  86. package/dist/delegation/headless-executor.d.ts +114 -0
  87. package/dist/delegation/headless-executor.d.ts.map +1 -0
  88. package/dist/delegation/headless-executor.js +562 -0
  89. package/dist/delegation/headless-executor.js.map +1 -0
  90. package/dist/delegation/result-formatter.d.ts +108 -0
  91. package/dist/delegation/result-formatter.d.ts.map +1 -0
  92. package/dist/delegation/result-formatter.js +391 -0
  93. package/dist/delegation/result-formatter.js.map +1 -0
  94. package/dist/delegation/session-manager.d.ts +58 -0
  95. package/dist/delegation/session-manager.d.ts.map +1 -0
  96. package/dist/delegation/session-manager.js +153 -0
  97. package/dist/delegation/session-manager.js.map +1 -0
  98. package/dist/delegation/settings-parser.d.ts +31 -0
  99. package/dist/delegation/settings-parser.d.ts.map +1 -0
  100. package/dist/delegation/settings-parser.js +107 -0
  101. package/dist/delegation/settings-parser.js.map +1 -0
  102. package/dist/glmt/delta-accumulator.d.ts +210 -0
  103. package/dist/glmt/delta-accumulator.d.ts.map +1 -0
  104. package/dist/glmt/delta-accumulator.js +351 -0
  105. package/dist/glmt/delta-accumulator.js.map +1 -0
  106. package/dist/glmt/glmt-proxy.d.ts +72 -0
  107. package/dist/glmt/glmt-proxy.d.ts.map +1 -0
  108. package/dist/glmt/glmt-proxy.js +427 -0
  109. package/dist/glmt/glmt-proxy.js.map +1 -0
  110. package/dist/glmt/glmt-transformer.d.ts +265 -0
  111. package/dist/glmt/glmt-transformer.d.ts.map +1 -0
  112. package/dist/glmt/glmt-transformer.js +832 -0
  113. package/dist/glmt/glmt-transformer.js.map +1 -0
  114. package/dist/glmt/locale-enforcer.d.ts +38 -0
  115. package/dist/glmt/locale-enforcer.d.ts.map +1 -0
  116. package/dist/glmt/locale-enforcer.js +69 -0
  117. package/dist/glmt/locale-enforcer.js.map +1 -0
  118. package/dist/glmt/reasoning-enforcer.d.ts +52 -0
  119. package/dist/glmt/reasoning-enforcer.d.ts.map +1 -0
  120. package/dist/glmt/reasoning-enforcer.js +151 -0
  121. package/dist/glmt/reasoning-enforcer.js.map +1 -0
  122. package/dist/glmt/sse-parser.d.ts +47 -0
  123. package/dist/glmt/sse-parser.d.ts.map +1 -0
  124. package/dist/glmt/sse-parser.js +93 -0
  125. package/dist/glmt/sse-parser.js.map +1 -0
  126. package/dist/management/doctor.d.ts +104 -0
  127. package/dist/management/doctor.d.ts.map +1 -0
  128. package/dist/management/doctor.js +673 -0
  129. package/dist/management/doctor.js.map +1 -0
  130. package/dist/management/instance-manager.d.ts +57 -0
  131. package/dist/management/instance-manager.d.ts.map +1 -0
  132. package/dist/management/instance-manager.js +195 -0
  133. package/dist/management/instance-manager.js.map +1 -0
  134. package/dist/management/recovery-manager.d.ts +39 -0
  135. package/dist/management/recovery-manager.d.ts.map +1 -0
  136. package/dist/management/recovery-manager.js +141 -0
  137. package/dist/management/recovery-manager.js.map +1 -0
  138. package/dist/management/shared-manager.d.ts +47 -0
  139. package/dist/management/shared-manager.d.ts.map +1 -0
  140. package/dist/management/shared-manager.js +388 -0
  141. package/dist/management/shared-manager.js.map +1 -0
  142. package/dist/types/cli.d.ts +50 -0
  143. package/dist/types/cli.d.ts.map +1 -0
  144. package/dist/types/cli.js +16 -0
  145. package/dist/types/cli.js.map +1 -0
  146. package/dist/types/config.d.ts +51 -0
  147. package/dist/types/config.d.ts.map +1 -0
  148. package/dist/types/config.js +26 -0
  149. package/dist/types/config.js.map +1 -0
  150. package/dist/types/delegation.d.ts +61 -0
  151. package/dist/types/delegation.d.ts.map +1 -0
  152. package/dist/types/delegation.js +6 -0
  153. package/dist/types/delegation.js.map +1 -0
  154. package/dist/types/glmt.d.ts +95 -0
  155. package/dist/types/glmt.d.ts.map +1 -0
  156. package/dist/types/glmt.js +7 -0
  157. package/dist/types/glmt.js.map +1 -0
  158. package/dist/types/index.d.ts +13 -0
  159. package/dist/types/index.d.ts.map +1 -0
  160. package/dist/types/index.js +16 -0
  161. package/dist/types/index.js.map +1 -0
  162. package/dist/types/utils.d.ts +36 -0
  163. package/dist/types/utils.d.ts.map +1 -0
  164. package/dist/types/utils.js +22 -0
  165. package/dist/types/utils.js.map +1 -0
  166. package/dist/utils/claude-detector.d.ts +14 -0
  167. package/dist/utils/claude-detector.d.ts.map +1 -0
  168. package/dist/utils/claude-detector.js +112 -0
  169. package/dist/utils/claude-detector.js.map +1 -0
  170. package/dist/utils/claude-dir-installer.d.ts +46 -0
  171. package/dist/utils/claude-dir-installer.d.ts.map +1 -0
  172. package/dist/utils/claude-dir-installer.js +289 -0
  173. package/dist/utils/claude-dir-installer.js.map +1 -0
  174. package/dist/utils/claude-symlink-manager.d.ts +61 -0
  175. package/dist/utils/claude-symlink-manager.d.ts.map +1 -0
  176. package/dist/utils/claude-symlink-manager.js +291 -0
  177. package/dist/utils/claude-symlink-manager.js.map +1 -0
  178. package/dist/utils/config-manager.d.ts +32 -0
  179. package/dist/utils/config-manager.d.ts.map +1 -0
  180. package/dist/utils/config-manager.js +143 -0
  181. package/dist/utils/config-manager.js.map +1 -0
  182. package/dist/utils/delegation-validator.d.ts +39 -0
  183. package/dist/utils/delegation-validator.d.ts.map +1 -0
  184. package/dist/utils/delegation-validator.js +161 -0
  185. package/dist/utils/delegation-validator.js.map +1 -0
  186. package/dist/utils/error-codes.d.ts +36 -0
  187. package/dist/utils/error-codes.d.ts.map +1 -0
  188. package/dist/utils/error-codes.js +63 -0
  189. package/dist/utils/error-codes.js.map +1 -0
  190. package/dist/utils/error-manager.d.ts +59 -0
  191. package/dist/utils/error-manager.d.ts.map +1 -0
  192. package/dist/utils/error-manager.js +228 -0
  193. package/dist/utils/error-manager.js.map +1 -0
  194. package/dist/utils/helpers.d.ts +27 -0
  195. package/dist/utils/helpers.d.ts.map +1 -0
  196. package/dist/utils/helpers.js +150 -0
  197. package/dist/utils/helpers.js.map +1 -0
  198. package/dist/utils/package-manager-detector.d.ts +14 -0
  199. package/dist/utils/package-manager-detector.d.ts.map +1 -0
  200. package/dist/utils/package-manager-detector.js +162 -0
  201. package/dist/utils/package-manager-detector.js.map +1 -0
  202. package/dist/utils/progress-indicator.d.ts +52 -0
  203. package/dist/utils/progress-indicator.d.ts.map +1 -0
  204. package/dist/utils/progress-indicator.js +102 -0
  205. package/dist/utils/progress-indicator.js.map +1 -0
  206. package/dist/utils/prompt.d.ts +29 -0
  207. package/dist/utils/prompt.d.ts.map +1 -0
  208. package/dist/utils/prompt.js +116 -0
  209. package/dist/utils/prompt.js.map +1 -0
  210. package/dist/utils/shell-completion.d.ts +52 -0
  211. package/dist/utils/shell-completion.d.ts.map +1 -0
  212. package/dist/utils/shell-completion.js +231 -0
  213. package/dist/utils/shell-completion.js.map +1 -0
  214. package/dist/utils/shell-executor.d.ts +15 -0
  215. package/dist/utils/shell-executor.d.ts.map +1 -0
  216. package/dist/utils/shell-executor.js +57 -0
  217. package/dist/utils/shell-executor.js.map +1 -0
  218. package/dist/utils/update-checker.d.ts +48 -0
  219. package/dist/utils/update-checker.d.ts.map +1 -0
  220. package/dist/utils/update-checker.js +241 -0
  221. package/dist/utils/update-checker.js.map +1 -0
  222. package/lib/ccs +21 -1907
  223. package/lib/ccs.ps1 +26 -1800
  224. package/lib/error-codes.ps1 +2 -1
  225. package/lib/prompt.ps1 +2 -2
  226. package/package.json +31 -11
  227. package/scripts/add-shebang.js +39 -0
  228. package/scripts/bump-version.sh +25 -37
  229. package/scripts/dev-install.sh +32 -11
  230. package/scripts/postinstall.js +29 -29
  231. package/bin/auth/auth-commands.js +0 -499
  232. package/bin/auth/profile-detector.js +0 -204
  233. package/bin/auth/profile-registry.js +0 -225
  234. package/bin/ccs.js +0 -1034
  235. package/bin/delegation/README.md +0 -191
  236. package/bin/delegation/delegation-handler.js +0 -212
  237. package/bin/delegation/headless-executor.js +0 -618
  238. package/bin/delegation/result-formatter.js +0 -485
  239. package/bin/delegation/session-manager.js +0 -157
  240. package/bin/delegation/settings-parser.js +0 -109
  241. package/bin/glmt/delta-accumulator.js +0 -276
  242. package/bin/glmt/glmt-proxy.js +0 -495
  243. package/bin/glmt/glmt-transformer.js +0 -999
  244. package/bin/glmt/locale-enforcer.js +0 -72
  245. package/bin/glmt/reasoning-enforcer.js +0 -173
  246. package/bin/glmt/sse-parser.js +0 -96
  247. package/bin/management/doctor.js +0 -721
  248. package/bin/management/instance-manager.js +0 -202
  249. package/bin/management/recovery-manager.js +0 -135
  250. package/bin/management/shared-manager.js +0 -402
  251. package/bin/utils/claude-detector.js +0 -73
  252. package/bin/utils/claude-dir-installer.js +0 -283
  253. package/bin/utils/claude-symlink-manager.js +0 -289
  254. package/bin/utils/config-manager.js +0 -103
  255. package/bin/utils/delegation-validator.js +0 -154
  256. package/bin/utils/error-codes.js +0 -59
  257. package/bin/utils/error-manager.js +0 -165
  258. package/bin/utils/helpers.js +0 -136
  259. package/bin/utils/progress-indicator.js +0 -111
  260. package/bin/utils/prompt.js +0 -134
  261. package/bin/utils/shell-completion.js +0 -256
  262. package/bin/utils/update-checker.js +0 -243
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ /**
3
+ * Config Generator for CLIProxyAPI
4
+ *
5
+ * Generates config.yaml for CLIProxyAPI based on provider.
6
+ * Handles OAuth token paths and provider-specific settings.
7
+ *
8
+ * Model mappings are loaded from config/base-{provider}.settings.json files
9
+ * to allow easy updates without code changes.
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.ensureProviderSettings = exports.getEffectiveEnvVars = exports.getClaudeEnvVars = exports.getProviderSettingsPath = exports.deleteConfig = exports.configExists = exports.generateConfig = exports.getBinDir = exports.getConfigPath = exports.getAuthDir = exports.getProviderAuthDir = exports.getCliproxyDir = exports.getModelMapping = exports.getProviderConfig = exports.CLIPROXY_DEFAULT_PORT = void 0;
36
+ const fs = __importStar(require("fs"));
37
+ const path = __importStar(require("path"));
38
+ const config_manager_1 = require("../utils/config-manager");
39
+ const base_config_loader_1 = require("./base-config-loader");
40
+ /** Default CLIProxy port */
41
+ exports.CLIPROXY_DEFAULT_PORT = 8317;
42
+ /** Internal API key for CCS-managed requests */
43
+ const CCS_INTERNAL_API_KEY = 'ccs-internal-managed';
44
+ /** Provider display names (static metadata) */
45
+ const PROVIDER_DISPLAY_NAMES = {
46
+ gemini: 'Gemini',
47
+ codex: 'Codex',
48
+ agy: 'Antigravity',
49
+ };
50
+ /**
51
+ * Get provider configuration
52
+ * Model mappings are loaded from config/base-{provider}.settings.json
53
+ */
54
+ function getProviderConfig(provider) {
55
+ const displayName = PROVIDER_DISPLAY_NAMES[provider];
56
+ if (!displayName) {
57
+ throw new Error(`Unknown provider: ${provider}`);
58
+ }
59
+ // Load models from base config file
60
+ const models = (0, base_config_loader_1.getModelMappingFromConfig)(provider);
61
+ return {
62
+ name: provider,
63
+ displayName,
64
+ models,
65
+ requiresOAuth: true, // All CLIProxy providers require OAuth
66
+ };
67
+ }
68
+ exports.getProviderConfig = getProviderConfig;
69
+ /**
70
+ * Get model mapping for provider
71
+ * Loads from config/base-{provider}.settings.json
72
+ */
73
+ function getModelMapping(provider) {
74
+ return getProviderConfig(provider).models;
75
+ }
76
+ exports.getModelMapping = getModelMapping;
77
+ /**
78
+ * Get CLIProxy base directory
79
+ * All CLIProxy-related files are stored under ~/.ccs/cliproxy/
80
+ */
81
+ function getCliproxyDir() {
82
+ return path.join((0, config_manager_1.getCcsDir)(), 'cliproxy');
83
+ }
84
+ exports.getCliproxyDir = getCliproxyDir;
85
+ /**
86
+ * Get auth directory for provider
87
+ * All providers use a FLAT auth directory structure for unified config.
88
+ * CLIProxyAPI stores OAuth tokens directly in auth/ (not subdirectories).
89
+ * This enables all providers to be discovered and used concurrently.
90
+ */
91
+ function getProviderAuthDir(_provider) {
92
+ // Use flat structure - all auth files in same directory for unified discovery
93
+ // Provider param kept for API compatibility (CLIProxyAPI handles via auth file type field)
94
+ return path.join(getCliproxyDir(), 'auth');
95
+ }
96
+ exports.getProviderAuthDir = getProviderAuthDir;
97
+ /**
98
+ * Get base auth directory for CLIProxyAPI
99
+ */
100
+ function getAuthDir() {
101
+ return path.join(getCliproxyDir(), 'auth');
102
+ }
103
+ exports.getAuthDir = getAuthDir;
104
+ /**
105
+ * Get config file path
106
+ */
107
+ function getConfigPath() {
108
+ return path.join(getCliproxyDir(), 'config.yaml');
109
+ }
110
+ exports.getConfigPath = getConfigPath;
111
+ /**
112
+ * Get binary directory path
113
+ */
114
+ function getBinDir() {
115
+ return path.join(getCliproxyDir(), 'bin');
116
+ }
117
+ exports.getBinDir = getBinDir;
118
+ /**
119
+ * Generate UNIFIED config.yaml content for ALL providers
120
+ * This enables concurrent usage of gemini/codex/agy without config conflicts.
121
+ * CLIProxyAPI routes requests by model name to the appropriate provider.
122
+ */
123
+ function generateUnifiedConfigContent(port = exports.CLIPROXY_DEFAULT_PORT) {
124
+ const authDir = getAuthDir(); // Base auth dir - CLIProxyAPI scans subdirectories
125
+ // Unified config with all providers
126
+ const config = `# CLIProxyAPI unified config generated by CCS
127
+ # Supports: gemini, codex, agy (concurrent usage)
128
+ # Generated: ${new Date().toISOString()}
129
+
130
+ port: ${port}
131
+ debug: false
132
+ logging-to-file: false
133
+ usage-statistics-enabled: false
134
+
135
+ # CCS internal authentication
136
+ api-keys:
137
+ - "${CCS_INTERNAL_API_KEY}"
138
+
139
+ # OAuth tokens stored in auth/ directory
140
+ # CLIProxyAPI auto-discovers auth files in subdirectories
141
+ auth-dir: "${authDir}"
142
+
143
+ # All providers configured - routes by model name
144
+ # No provider-specific sections needed - OAuth auth files provide credentials
145
+ `;
146
+ return config;
147
+ }
148
+ /**
149
+ * Generate unified config.yaml file (supports all providers concurrently)
150
+ * Only regenerates if config doesn't exist.
151
+ * @returns Path to config file
152
+ */
153
+ function generateConfig(provider, port = exports.CLIPROXY_DEFAULT_PORT) {
154
+ const configPath = getConfigPath();
155
+ // Ensure provider auth directory exists
156
+ const authDir = getProviderAuthDir(provider);
157
+ fs.mkdirSync(path.dirname(configPath), { recursive: true });
158
+ fs.mkdirSync(authDir, { recursive: true, mode: 0o700 });
159
+ // Only generate config if it doesn't exist (unified config serves all providers)
160
+ if (!fs.existsSync(configPath)) {
161
+ const configContent = generateUnifiedConfigContent(port);
162
+ fs.writeFileSync(configPath, configContent, { mode: 0o600 });
163
+ }
164
+ return configPath;
165
+ }
166
+ exports.generateConfig = generateConfig;
167
+ /**
168
+ * Check if config exists for provider
169
+ */
170
+ function configExists() {
171
+ return fs.existsSync(getConfigPath());
172
+ }
173
+ exports.configExists = configExists;
174
+ /**
175
+ * Delete config file
176
+ */
177
+ function deleteConfig() {
178
+ const configPath = getConfigPath();
179
+ if (fs.existsSync(configPath)) {
180
+ fs.unlinkSync(configPath);
181
+ }
182
+ }
183
+ exports.deleteConfig = deleteConfig;
184
+ /**
185
+ * Get path to user settings file for provider
186
+ * Example: ~/.ccs/gemini.settings.json
187
+ */
188
+ function getProviderSettingsPath(provider) {
189
+ return path.join((0, config_manager_1.getCcsDir)(), `${provider}.settings.json`);
190
+ }
191
+ exports.getProviderSettingsPath = getProviderSettingsPath;
192
+ /**
193
+ * Get environment variables for Claude CLI (bundled defaults)
194
+ * Uses provider-specific endpoint (e.g., /api/provider/gemini) for explicit routing.
195
+ * This enables concurrent gemini/codex usage - each session routes to its provider via URL path.
196
+ */
197
+ function getClaudeEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT) {
198
+ const models = getModelMapping(provider);
199
+ return {
200
+ // Provider-specific endpoint - routes to correct provider via URL path
201
+ ANTHROPIC_BASE_URL: `http://127.0.0.1:${port}/api/provider/${provider}`,
202
+ ANTHROPIC_AUTH_TOKEN: CCS_INTERNAL_API_KEY,
203
+ ANTHROPIC_MODEL: models.claudeModel,
204
+ ANTHROPIC_DEFAULT_OPUS_MODEL: models.opusModel || models.claudeModel,
205
+ ANTHROPIC_DEFAULT_SONNET_MODEL: models.sonnetModel || models.claudeModel,
206
+ ANTHROPIC_DEFAULT_HAIKU_MODEL: models.haikuModel || models.claudeModel,
207
+ };
208
+ }
209
+ exports.getClaudeEnvVars = getClaudeEnvVars;
210
+ /**
211
+ * Get effective environment variables for provider
212
+ *
213
+ * Priority order:
214
+ * 1. User settings file (~/.ccs/{provider}.settings.json) if exists
215
+ * 2. Bundled defaults from PROVIDER_CONFIGS
216
+ *
217
+ * This allows users to customize model mappings without code changes.
218
+ * User takes full responsibility for custom settings.
219
+ */
220
+ function getEffectiveEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT) {
221
+ const settingsPath = getProviderSettingsPath(provider);
222
+ // Check for user override file
223
+ if (fs.existsSync(settingsPath)) {
224
+ try {
225
+ const content = fs.readFileSync(settingsPath, 'utf-8');
226
+ const settings = JSON.parse(content);
227
+ if (settings.env && typeof settings.env === 'object') {
228
+ // User override found - use their settings
229
+ // Note: User is responsible for correctness
230
+ return settings.env;
231
+ }
232
+ }
233
+ catch {
234
+ // Invalid JSON or structure - fall through to defaults
235
+ // Silent fallback: don't spam errors for broken user files
236
+ }
237
+ }
238
+ // No override or invalid - use bundled defaults
239
+ return getClaudeEnvVars(provider, port);
240
+ }
241
+ exports.getEffectiveEnvVars = getEffectiveEnvVars;
242
+ /**
243
+ * Copy bundled settings template to user directory if not exists
244
+ * Called during installation/first run
245
+ */
246
+ function ensureProviderSettings(provider) {
247
+ const settingsPath = getProviderSettingsPath(provider);
248
+ // Only create if doesn't exist (preserve user edits)
249
+ if (fs.existsSync(settingsPath)) {
250
+ return;
251
+ }
252
+ // Generate default settings from PROVIDER_CONFIGS
253
+ const envVars = getClaudeEnvVars(provider);
254
+ const settings = { env: envVars };
255
+ // Ensure directory exists
256
+ fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
257
+ // Write with restricted permissions
258
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n', {
259
+ mode: 0o600,
260
+ });
261
+ }
262
+ exports.ensureProviderSettings = ensureProviderSettings;
263
+ //# sourceMappingURL=config-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-generator.js","sourceRoot":"","sources":["../../src/cliproxy/config-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CLIProxy Module Exports
3
+ * Central export point for CLIProxyAPI binary management and execution
4
+ */
5
+ export type { PlatformInfo, SupportedOS, SupportedArch, ArchiveExtension, BinaryManagerConfig, BinaryInfo, DownloadProgress, ProgressCallback, ChecksumResult, DownloadResult, CLIProxyProvider, CLIProxyConfig, ExecutorConfig, ProviderConfig, ProviderModelMapping, } from './types';
6
+ export { detectPlatform, getDownloadUrl, getChecksumsUrl, getExecutableName, getArchiveBinaryName, isPlatformSupported, getPlatformDescription, CLIPROXY_VERSION, } from './platform-detector';
7
+ export { BinaryManager, ensureCLIProxyBinary, isCLIProxyInstalled, getCLIProxyPath, } from './binary-manager';
8
+ export { generateConfig, getClaudeEnvVars, getEffectiveEnvVars, getProviderSettingsPath, ensureProviderSettings, getProviderConfig, getModelMapping, getCliproxyDir, getProviderAuthDir, getAuthDir, getConfigPath, getBinDir, configExists, deleteConfig, CLIPROXY_DEFAULT_PORT, } from './config-generator';
9
+ export { loadBaseConfig, getModelMappingFromConfig, getEnvVarsFromConfig, clearConfigCache, } from './base-config-loader';
10
+ export { execClaudeWithCLIProxy, isPortAvailable, findAvailablePort } from './cliproxy-executor';
11
+ export type { AuthStatus } from './auth-handler';
12
+ export { isAuthenticated, getAuthStatus, getAllAuthStatus, clearAuth, triggerOAuth, ensureAuth, getOAuthConfig, getProviderTokenDir, displayAuthStatus, } from './auth-handler';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGjG,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /**
3
+ * CLIProxy Module Exports
4
+ * Central export point for CLIProxyAPI binary management and execution
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.displayAuthStatus = exports.getProviderTokenDir = exports.getOAuthConfig = exports.ensureAuth = exports.triggerOAuth = exports.clearAuth = exports.getAllAuthStatus = exports.getAuthStatus = exports.isAuthenticated = exports.findAvailablePort = exports.isPortAvailable = exports.execClaudeWithCLIProxy = exports.clearConfigCache = exports.getEnvVarsFromConfig = exports.getModelMappingFromConfig = exports.loadBaseConfig = exports.CLIPROXY_DEFAULT_PORT = exports.deleteConfig = exports.configExists = exports.getBinDir = exports.getConfigPath = exports.getAuthDir = exports.getProviderAuthDir = exports.getCliproxyDir = exports.getModelMapping = exports.getProviderConfig = exports.ensureProviderSettings = exports.getProviderSettingsPath = exports.getEffectiveEnvVars = exports.getClaudeEnvVars = exports.generateConfig = exports.getCLIProxyPath = exports.isCLIProxyInstalled = exports.ensureCLIProxyBinary = exports.BinaryManager = exports.CLIPROXY_VERSION = exports.getPlatformDescription = exports.isPlatformSupported = exports.getArchiveBinaryName = exports.getExecutableName = exports.getChecksumsUrl = exports.getDownloadUrl = exports.detectPlatform = void 0;
8
+ // Platform detection
9
+ var platform_detector_1 = require("./platform-detector");
10
+ Object.defineProperty(exports, "detectPlatform", { enumerable: true, get: function () { return platform_detector_1.detectPlatform; } });
11
+ Object.defineProperty(exports, "getDownloadUrl", { enumerable: true, get: function () { return platform_detector_1.getDownloadUrl; } });
12
+ Object.defineProperty(exports, "getChecksumsUrl", { enumerable: true, get: function () { return platform_detector_1.getChecksumsUrl; } });
13
+ Object.defineProperty(exports, "getExecutableName", { enumerable: true, get: function () { return platform_detector_1.getExecutableName; } });
14
+ Object.defineProperty(exports, "getArchiveBinaryName", { enumerable: true, get: function () { return platform_detector_1.getArchiveBinaryName; } });
15
+ Object.defineProperty(exports, "isPlatformSupported", { enumerable: true, get: function () { return platform_detector_1.isPlatformSupported; } });
16
+ Object.defineProperty(exports, "getPlatformDescription", { enumerable: true, get: function () { return platform_detector_1.getPlatformDescription; } });
17
+ Object.defineProperty(exports, "CLIPROXY_VERSION", { enumerable: true, get: function () { return platform_detector_1.CLIPROXY_VERSION; } });
18
+ // Binary management
19
+ var binary_manager_1 = require("./binary-manager");
20
+ Object.defineProperty(exports, "BinaryManager", { enumerable: true, get: function () { return binary_manager_1.BinaryManager; } });
21
+ Object.defineProperty(exports, "ensureCLIProxyBinary", { enumerable: true, get: function () { return binary_manager_1.ensureCLIProxyBinary; } });
22
+ Object.defineProperty(exports, "isCLIProxyInstalled", { enumerable: true, get: function () { return binary_manager_1.isCLIProxyInstalled; } });
23
+ Object.defineProperty(exports, "getCLIProxyPath", { enumerable: true, get: function () { return binary_manager_1.getCLIProxyPath; } });
24
+ // Config generation
25
+ var config_generator_1 = require("./config-generator");
26
+ Object.defineProperty(exports, "generateConfig", { enumerable: true, get: function () { return config_generator_1.generateConfig; } });
27
+ Object.defineProperty(exports, "getClaudeEnvVars", { enumerable: true, get: function () { return config_generator_1.getClaudeEnvVars; } });
28
+ Object.defineProperty(exports, "getEffectiveEnvVars", { enumerable: true, get: function () { return config_generator_1.getEffectiveEnvVars; } });
29
+ Object.defineProperty(exports, "getProviderSettingsPath", { enumerable: true, get: function () { return config_generator_1.getProviderSettingsPath; } });
30
+ Object.defineProperty(exports, "ensureProviderSettings", { enumerable: true, get: function () { return config_generator_1.ensureProviderSettings; } });
31
+ Object.defineProperty(exports, "getProviderConfig", { enumerable: true, get: function () { return config_generator_1.getProviderConfig; } });
32
+ Object.defineProperty(exports, "getModelMapping", { enumerable: true, get: function () { return config_generator_1.getModelMapping; } });
33
+ Object.defineProperty(exports, "getCliproxyDir", { enumerable: true, get: function () { return config_generator_1.getCliproxyDir; } });
34
+ Object.defineProperty(exports, "getProviderAuthDir", { enumerable: true, get: function () { return config_generator_1.getProviderAuthDir; } });
35
+ Object.defineProperty(exports, "getAuthDir", { enumerable: true, get: function () { return config_generator_1.getAuthDir; } });
36
+ Object.defineProperty(exports, "getConfigPath", { enumerable: true, get: function () { return config_generator_1.getConfigPath; } });
37
+ Object.defineProperty(exports, "getBinDir", { enumerable: true, get: function () { return config_generator_1.getBinDir; } });
38
+ Object.defineProperty(exports, "configExists", { enumerable: true, get: function () { return config_generator_1.configExists; } });
39
+ Object.defineProperty(exports, "deleteConfig", { enumerable: true, get: function () { return config_generator_1.deleteConfig; } });
40
+ Object.defineProperty(exports, "CLIPROXY_DEFAULT_PORT", { enumerable: true, get: function () { return config_generator_1.CLIPROXY_DEFAULT_PORT; } });
41
+ // Base config loader (for reading config/base-*.settings.json)
42
+ var base_config_loader_1 = require("./base-config-loader");
43
+ Object.defineProperty(exports, "loadBaseConfig", { enumerable: true, get: function () { return base_config_loader_1.loadBaseConfig; } });
44
+ Object.defineProperty(exports, "getModelMappingFromConfig", { enumerable: true, get: function () { return base_config_loader_1.getModelMappingFromConfig; } });
45
+ Object.defineProperty(exports, "getEnvVarsFromConfig", { enumerable: true, get: function () { return base_config_loader_1.getEnvVarsFromConfig; } });
46
+ Object.defineProperty(exports, "clearConfigCache", { enumerable: true, get: function () { return base_config_loader_1.clearConfigCache; } });
47
+ // Executor
48
+ var cliproxy_executor_1 = require("./cliproxy-executor");
49
+ Object.defineProperty(exports, "execClaudeWithCLIProxy", { enumerable: true, get: function () { return cliproxy_executor_1.execClaudeWithCLIProxy; } });
50
+ Object.defineProperty(exports, "isPortAvailable", { enumerable: true, get: function () { return cliproxy_executor_1.isPortAvailable; } });
51
+ Object.defineProperty(exports, "findAvailablePort", { enumerable: true, get: function () { return cliproxy_executor_1.findAvailablePort; } });
52
+ var auth_handler_1 = require("./auth-handler");
53
+ Object.defineProperty(exports, "isAuthenticated", { enumerable: true, get: function () { return auth_handler_1.isAuthenticated; } });
54
+ Object.defineProperty(exports, "getAuthStatus", { enumerable: true, get: function () { return auth_handler_1.getAuthStatus; } });
55
+ Object.defineProperty(exports, "getAllAuthStatus", { enumerable: true, get: function () { return auth_handler_1.getAllAuthStatus; } });
56
+ Object.defineProperty(exports, "clearAuth", { enumerable: true, get: function () { return auth_handler_1.clearAuth; } });
57
+ Object.defineProperty(exports, "triggerOAuth", { enumerable: true, get: function () { return auth_handler_1.triggerOAuth; } });
58
+ Object.defineProperty(exports, "ensureAuth", { enumerable: true, get: function () { return auth_handler_1.ensureAuth; } });
59
+ Object.defineProperty(exports, "getOAuthConfig", { enumerable: true, get: function () { return auth_handler_1.getOAuthConfig; } });
60
+ Object.defineProperty(exports, "getProviderTokenDir", { enumerable: true, get: function () { return auth_handler_1.getProviderTokenDir; } });
61
+ Object.defineProperty(exports, "displayAuthStatus", { enumerable: true, get: function () { return auth_handler_1.displayAuthStatus; } });
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAqBH,qBAAqB;AACrB,yDAS6B;AAR3B,mHAAA,cAAc,OAAA;AACd,mHAAA,cAAc,OAAA;AACd,oHAAA,eAAe,OAAA;AACf,sHAAA,iBAAiB,OAAA;AACjB,yHAAA,oBAAoB,OAAA;AACpB,wHAAA,mBAAmB,OAAA;AACnB,2HAAA,sBAAsB,OAAA;AACtB,qHAAA,gBAAgB,OAAA;AAGlB,oBAAoB;AACpB,mDAK0B;AAJxB,+GAAA,aAAa,OAAA;AACb,sHAAA,oBAAoB,OAAA;AACpB,qHAAA,mBAAmB,OAAA;AACnB,iHAAA,eAAe,OAAA;AAGjB,oBAAoB;AACpB,uDAgB4B;AAf1B,kHAAA,cAAc,OAAA;AACd,oHAAA,gBAAgB,OAAA;AAChB,uHAAA,mBAAmB,OAAA;AACnB,2HAAA,uBAAuB,OAAA;AACvB,0HAAA,sBAAsB,OAAA;AACtB,qHAAA,iBAAiB,OAAA;AACjB,mHAAA,eAAe,OAAA;AACf,kHAAA,cAAc,OAAA;AACd,sHAAA,kBAAkB,OAAA;AAClB,8GAAA,UAAU,OAAA;AACV,iHAAA,aAAa,OAAA;AACb,6GAAA,SAAS,OAAA;AACT,gHAAA,YAAY,OAAA;AACZ,gHAAA,YAAY,OAAA;AACZ,yHAAA,qBAAqB,OAAA;AAGvB,+DAA+D;AAC/D,2DAK8B;AAJ5B,oHAAA,cAAc,OAAA;AACd,+HAAA,yBAAyB,OAAA;AACzB,0HAAA,oBAAoB,OAAA;AACpB,sHAAA,gBAAgB,OAAA;AAGlB,WAAW;AACX,yDAAiG;AAAxF,2HAAA,sBAAsB,OAAA;AAAE,oHAAA,eAAe,OAAA;AAAE,sHAAA,iBAAiB,OAAA;AAInE,+CAUwB;AATtB,+GAAA,eAAe,OAAA;AACf,6GAAA,aAAa,OAAA;AACb,gHAAA,gBAAgB,OAAA;AAChB,yGAAA,SAAS,OAAA;AACT,4GAAA,YAAY,OAAA;AACZ,0GAAA,UAAU,OAAA;AACV,8GAAA,cAAc,OAAA;AACd,mHAAA,mBAAmB,OAAA;AACnB,iHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Platform Detector for CLIProxyAPI Binary Downloads
3
+ *
4
+ * Detects OS and architecture to determine correct binary asset.
5
+ * Supports 6 platforms: darwin/linux/windows x amd64/arm64
6
+ */
7
+ import { PlatformInfo } from './types';
8
+ /** CLIProxyAPI version pinned for stability */
9
+ export declare const CLIPROXY_VERSION = "6.5.27";
10
+ /**
11
+ * Detect current platform and return binary info
12
+ * @throws Error if platform is unsupported
13
+ */
14
+ export declare function detectPlatform(): PlatformInfo;
15
+ /**
16
+ * Get executable name based on platform
17
+ * @returns Binary executable name (with .exe on Windows)
18
+ * Note: The actual binary inside the archive is named 'cli-proxy-api'
19
+ */
20
+ export declare function getExecutableName(): string;
21
+ /**
22
+ * Get the name of the binary inside the archive
23
+ * @returns Binary name as it appears in the tar.gz/zip
24
+ */
25
+ export declare function getArchiveBinaryName(): string;
26
+ /**
27
+ * Get download URL for current platform
28
+ * @param version Optional version override (defaults to CLIPROXY_VERSION)
29
+ * @returns Full GitHub release download URL
30
+ */
31
+ export declare function getDownloadUrl(version?: string): string;
32
+ /**
33
+ * Get checksums.txt URL for version
34
+ * @param version Optional version override
35
+ * @returns Full URL to checksums.txt
36
+ */
37
+ export declare function getChecksumsUrl(version?: string): string;
38
+ /**
39
+ * Check if platform is supported
40
+ * @returns true if current platform is supported
41
+ */
42
+ export declare function isPlatformSupported(): boolean;
43
+ /**
44
+ * Get human-readable platform description
45
+ * @returns Description string (e.g., "macOS arm64")
46
+ */
47
+ export declare function getPlatformDescription(): string;
48
+ //# sourceMappingURL=platform-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-detector.d.ts","sourceRoot":"","sources":["../../src/cliproxy/platform-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAgD,MAAM,SAAS,CAAC;AAErF,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAgBzC;;;GAGG;AACH,wBAAgB,cAAc,IAAI,YAAY,CA6B7C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAAyB,GAAG,MAAM,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,MAAyB,GAAG,MAAM,CAE1E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAO7C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAS/C"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ /**
3
+ * Platform Detector for CLIProxyAPI Binary Downloads
4
+ *
5
+ * Detects OS and architecture to determine correct binary asset.
6
+ * Supports 6 platforms: darwin/linux/windows x amd64/arm64
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getPlatformDescription = exports.isPlatformSupported = exports.getChecksumsUrl = exports.getDownloadUrl = exports.getArchiveBinaryName = exports.getExecutableName = exports.detectPlatform = exports.CLIPROXY_VERSION = void 0;
10
+ /** CLIProxyAPI version pinned for stability */
11
+ exports.CLIPROXY_VERSION = '6.5.27';
12
+ /**
13
+ * Platform mapping from Node.js values to CLIProxyAPI naming
14
+ */
15
+ const OS_MAP = {
16
+ darwin: 'darwin',
17
+ linux: 'linux',
18
+ win32: 'windows',
19
+ };
20
+ const ARCH_MAP = {
21
+ x64: 'amd64',
22
+ arm64: 'arm64',
23
+ };
24
+ /**
25
+ * Detect current platform and return binary info
26
+ * @throws Error if platform is unsupported
27
+ */
28
+ function detectPlatform() {
29
+ const nodePlatform = process.platform;
30
+ const nodeArch = process.arch;
31
+ const os = OS_MAP[nodePlatform];
32
+ const arch = ARCH_MAP[nodeArch];
33
+ if (!os) {
34
+ throw new Error(`Unsupported operating system: ${nodePlatform}\n` +
35
+ `Supported: macOS (darwin), Linux, Windows`);
36
+ }
37
+ if (!arch) {
38
+ throw new Error(`Unsupported CPU architecture: ${nodeArch}\n` + `Supported: x64 (amd64), arm64`);
39
+ }
40
+ const extension = os === 'windows' ? 'zip' : 'tar.gz';
41
+ const binaryName = `CLIProxyAPI_${exports.CLIPROXY_VERSION}_${os}_${arch}.${extension}`;
42
+ return {
43
+ os,
44
+ arch,
45
+ binaryName,
46
+ extension,
47
+ };
48
+ }
49
+ exports.detectPlatform = detectPlatform;
50
+ /**
51
+ * Get executable name based on platform
52
+ * @returns Binary executable name (with .exe on Windows)
53
+ * Note: The actual binary inside the archive is named 'cli-proxy-api'
54
+ */
55
+ function getExecutableName() {
56
+ const platform = detectPlatform();
57
+ return platform.os === 'windows' ? 'cli-proxy-api.exe' : 'cli-proxy-api';
58
+ }
59
+ exports.getExecutableName = getExecutableName;
60
+ /**
61
+ * Get the name of the binary inside the archive
62
+ * @returns Binary name as it appears in the tar.gz/zip
63
+ */
64
+ function getArchiveBinaryName() {
65
+ const platform = detectPlatform();
66
+ return platform.os === 'windows' ? 'cli-proxy-api.exe' : 'cli-proxy-api';
67
+ }
68
+ exports.getArchiveBinaryName = getArchiveBinaryName;
69
+ /**
70
+ * Get download URL for current platform
71
+ * @param version Optional version override (defaults to CLIPROXY_VERSION)
72
+ * @returns Full GitHub release download URL
73
+ */
74
+ function getDownloadUrl(version = exports.CLIPROXY_VERSION) {
75
+ const platform = detectPlatform();
76
+ const baseUrl = `https://github.com/router-for-me/CLIProxyAPI/releases/download/v${version}`;
77
+ return `${baseUrl}/${platform.binaryName}`;
78
+ }
79
+ exports.getDownloadUrl = getDownloadUrl;
80
+ /**
81
+ * Get checksums.txt URL for version
82
+ * @param version Optional version override
83
+ * @returns Full URL to checksums.txt
84
+ */
85
+ function getChecksumsUrl(version = exports.CLIPROXY_VERSION) {
86
+ return `https://github.com/router-for-me/CLIProxyAPI/releases/download/v${version}/checksums.txt`;
87
+ }
88
+ exports.getChecksumsUrl = getChecksumsUrl;
89
+ /**
90
+ * Check if platform is supported
91
+ * @returns true if current platform is supported
92
+ */
93
+ function isPlatformSupported() {
94
+ try {
95
+ detectPlatform();
96
+ return true;
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ exports.isPlatformSupported = isPlatformSupported;
103
+ /**
104
+ * Get human-readable platform description
105
+ * @returns Description string (e.g., "macOS arm64")
106
+ */
107
+ function getPlatformDescription() {
108
+ try {
109
+ const platform = detectPlatform();
110
+ const osName = platform.os === 'darwin' ? 'macOS' : platform.os === 'linux' ? 'Linux' : 'Windows';
111
+ return `${osName} ${platform.arch}`;
112
+ }
113
+ catch {
114
+ return `${process.platform} ${process.arch} (unsupported)`;
115
+ }
116
+ }
117
+ exports.getPlatformDescription = getPlatformDescription;
118
+ //# sourceMappingURL=platform-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-detector.js","sourceRoot":"","sources":["../../src/cliproxy/platform-detector.ts"],"names":[],"mappings":"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"}