@jonnyhoo/ccs 1.0.0

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 (1223) hide show
  1. package/.claude/commands/ccs/continue.md +15 -0
  2. package/.claude/commands/ccs.md +17 -0
  3. package/.claude/skills/ccs-delegation/CLAUDE.md.template +17 -0
  4. package/.claude/skills/ccs-delegation/SKILL.md +195 -0
  5. package/.claude/skills/ccs-delegation/references/troubleshooting.md +201 -0
  6. package/LICENSE +21 -0
  7. package/README.md +383 -0
  8. package/config/base-agy.settings.json +10 -0
  9. package/config/base-claude.settings.json +10 -0
  10. package/config/base-codex.settings.json +10 -0
  11. package/config/base-gemini.settings.json +10 -0
  12. package/config/base-ghcp.settings.json +10 -0
  13. package/config/base-glm.settings.json +10 -0
  14. package/config/base-glmt.settings.json +17 -0
  15. package/config/base-iflow.settings.json +10 -0
  16. package/config/base-kimi.settings.json +11 -0
  17. package/config/base-kiro.settings.json +10 -0
  18. package/config/base-mm.settings.json +10 -0
  19. package/config/base-ollama-cloud.settings.json +10 -0
  20. package/config/base-ollama.settings.json +10 -0
  21. package/config/base-qwen.settings.json +10 -0
  22. package/config/config.example.json +6 -0
  23. package/dist/api/index.d.ts +7 -0
  24. package/dist/api/index.d.ts.map +1 -0
  25. package/dist/api/index.js +24 -0
  26. package/dist/api/index.js.map +1 -0
  27. package/dist/api/services/index.d.ts +13 -0
  28. package/dist/api/services/index.d.ts.map +1 -0
  29. package/dist/api/services/index.js +39 -0
  30. package/dist/api/services/index.js.map +1 -0
  31. package/dist/api/services/openrouter-catalog.d.ts +30 -0
  32. package/dist/api/services/openrouter-catalog.d.ts.map +1 -0
  33. package/dist/api/services/openrouter-catalog.js +130 -0
  34. package/dist/api/services/openrouter-catalog.js.map +1 -0
  35. package/dist/api/services/openrouter-picker.d.ts +15 -0
  36. package/dist/api/services/openrouter-picker.d.ts.map +1 -0
  37. package/dist/api/services/openrouter-picker.js +113 -0
  38. package/dist/api/services/openrouter-picker.js.map +1 -0
  39. package/dist/api/services/profile-reader.d.ts +31 -0
  40. package/dist/api/services/profile-reader.d.ts.map +1 -0
  41. package/dist/api/services/profile-reader.js +153 -0
  42. package/dist/api/services/profile-reader.js.map +1 -0
  43. package/dist/api/services/profile-types.d.ts +42 -0
  44. package/dist/api/services/profile-types.d.ts.map +1 -0
  45. package/dist/api/services/profile-types.js +8 -0
  46. package/dist/api/services/profile-types.js.map +1 -0
  47. package/dist/api/services/profile-writer.d.ts +6 -0
  48. package/dist/api/services/profile-writer.d.ts.map +1 -0
  49. package/dist/api/services/profile-writer.js +187 -0
  50. package/dist/api/services/profile-writer.js.map +1 -0
  51. package/dist/api/services/provider-presets.d.ts +38 -0
  52. package/dist/api/services/provider-presets.d.ts.map +1 -0
  53. package/dist/api/services/provider-presets.js +165 -0
  54. package/dist/api/services/provider-presets.js.map +1 -0
  55. package/dist/api/services/validation-service.d.ts +26 -0
  56. package/dist/api/services/validation-service.d.ts.map +1 -0
  57. package/dist/api/services/validation-service.js +80 -0
  58. package/dist/api/services/validation-service.js.map +1 -0
  59. package/dist/auth/auth-commands.d.ts +62 -0
  60. package/dist/auth/auth-commands.d.ts.map +1 -0
  61. package/dist/auth/auth-commands.js +191 -0
  62. package/dist/auth/auth-commands.js.map +1 -0
  63. package/dist/auth/commands/create-command.d.ts +11 -0
  64. package/dist/auth/commands/create-command.d.ts.map +1 -0
  65. package/dist/auth/commands/create-command.js +137 -0
  66. package/dist/auth/commands/create-command.js.map +1 -0
  67. package/dist/auth/commands/default-command.d.ts +15 -0
  68. package/dist/auth/commands/default-command.d.ts.map +1 -0
  69. package/dist/auth/commands/default-command.js +71 -0
  70. package/dist/auth/commands/default-command.js.map +1 -0
  71. package/dist/auth/commands/index.d.ts +12 -0
  72. package/dist/auth/commands/index.d.ts.map +1 -0
  73. package/dist/auth/commands/index.js +25 -0
  74. package/dist/auth/commands/index.js.map +1 -0
  75. package/dist/auth/commands/list-command.d.ts +11 -0
  76. package/dist/auth/commands/list-command.d.ts.map +1 -0
  77. package/dist/auth/commands/list-command.js +124 -0
  78. package/dist/auth/commands/list-command.js.map +1 -0
  79. package/dist/auth/commands/remove-command.d.ts +11 -0
  80. package/dist/auth/commands/remove-command.d.ts.map +1 -0
  81. package/dist/auth/commands/remove-command.js +102 -0
  82. package/dist/auth/commands/remove-command.js.map +1 -0
  83. package/dist/auth/commands/show-command.d.ts +11 -0
  84. package/dist/auth/commands/show-command.d.ts.map +1 -0
  85. package/dist/auth/commands/show-command.js +103 -0
  86. package/dist/auth/commands/show-command.js.map +1 -0
  87. package/dist/auth/commands/types.d.ts +50 -0
  88. package/dist/auth/commands/types.d.ts.map +1 -0
  89. package/dist/auth/commands/types.js +26 -0
  90. package/dist/auth/commands/types.js.map +1 -0
  91. package/dist/auth/index.d.ts +8 -0
  92. package/dist/auth/index.d.ts.map +1 -0
  93. package/dist/auth/index.js +16 -0
  94. package/dist/auth/index.js.map +1 -0
  95. package/dist/auth/profile-detector.d.ts +106 -0
  96. package/dist/auth/profile-detector.d.ts.map +1 -0
  97. package/dist/auth/profile-detector.js +431 -0
  98. package/dist/auth/profile-detector.js.map +1 -0
  99. package/dist/auth/profile-registry.d.ts +110 -0
  100. package/dist/auth/profile-registry.d.ts.map +1 -0
  101. package/dist/auth/profile-registry.js +318 -0
  102. package/dist/auth/profile-registry.js.map +1 -0
  103. package/dist/ccs.d.ts +2 -0
  104. package/dist/ccs.d.ts.map +1 -0
  105. package/dist/ccs.js +642 -0
  106. package/dist/ccs.js.map +1 -0
  107. package/dist/cliproxy/account-manager.d.ts +218 -0
  108. package/dist/cliproxy/account-manager.d.ts.map +1 -0
  109. package/dist/cliproxy/account-manager.js +808 -0
  110. package/dist/cliproxy/account-manager.js.map +1 -0
  111. package/dist/cliproxy/auth/auth-types.d.ts +106 -0
  112. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -0
  113. package/dist/cliproxy/auth/auth-types.js +164 -0
  114. package/dist/cliproxy/auth/auth-types.js.map +1 -0
  115. package/dist/cliproxy/auth/environment-detector.d.ts +30 -0
  116. package/dist/cliproxy/auth/environment-detector.d.ts.map +1 -0
  117. package/dist/cliproxy/auth/environment-detector.js +129 -0
  118. package/dist/cliproxy/auth/environment-detector.js.map +1 -0
  119. package/dist/cliproxy/auth/gemini-token-refresh.d.ts +38 -0
  120. package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +1 -0
  121. package/dist/cliproxy/auth/gemini-token-refresh.js +327 -0
  122. package/dist/cliproxy/auth/gemini-token-refresh.js.map +1 -0
  123. package/dist/cliproxy/auth/index.d.ts +11 -0
  124. package/dist/cliproxy/auth/index.d.ts.map +1 -0
  125. package/dist/cliproxy/auth/index.js +35 -0
  126. package/dist/cliproxy/auth/index.js.map +1 -0
  127. package/dist/cliproxy/auth/kiro-import.d.ts +23 -0
  128. package/dist/cliproxy/auth/kiro-import.d.ts.map +1 -0
  129. package/dist/cliproxy/auth/kiro-import.js +140 -0
  130. package/dist/cliproxy/auth/kiro-import.js.map +1 -0
  131. package/dist/cliproxy/auth/oauth-handler.d.ts +31 -0
  132. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -0
  133. package/dist/cliproxy/auth/oauth-handler.js +422 -0
  134. package/dist/cliproxy/auth/oauth-handler.js.map +1 -0
  135. package/dist/cliproxy/auth/oauth-process.d.ts +27 -0
  136. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -0
  137. package/dist/cliproxy/auth/oauth-process.js +386 -0
  138. package/dist/cliproxy/auth/oauth-process.js.map +1 -0
  139. package/dist/cliproxy/auth/provider-refreshers/index.d.ts +21 -0
  140. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -0
  141. package/dist/cliproxy/auth/provider-refreshers/index.js +57 -0
  142. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -0
  143. package/dist/cliproxy/auth/token-expiry-checker.d.ts +37 -0
  144. package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -0
  145. package/dist/cliproxy/auth/token-expiry-checker.js +115 -0
  146. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -0
  147. package/dist/cliproxy/auth/token-manager.d.ts +66 -0
  148. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -0
  149. package/dist/cliproxy/auth/token-manager.js +309 -0
  150. package/dist/cliproxy/auth/token-manager.js.map +1 -0
  151. package/dist/cliproxy/auth/token-refresh-config.d.ts +13 -0
  152. package/dist/cliproxy/auth/token-refresh-config.d.ts.map +1 -0
  153. package/dist/cliproxy/auth/token-refresh-config.js +31 -0
  154. package/dist/cliproxy/auth/token-refresh-config.js.map +1 -0
  155. package/dist/cliproxy/auth/token-refresh-worker.d.ts +83 -0
  156. package/dist/cliproxy/auth/token-refresh-worker.d.ts.map +1 -0
  157. package/dist/cliproxy/auth/token-refresh-worker.js +214 -0
  158. package/dist/cliproxy/auth/token-refresh-worker.js.map +1 -0
  159. package/dist/cliproxy/auth-handler.d.ts +31 -0
  160. package/dist/cliproxy/auth-handler.d.ts.map +1 -0
  161. package/dist/cliproxy/auth-handler.js +60 -0
  162. package/dist/cliproxy/auth-handler.js.map +1 -0
  163. package/dist/cliproxy/auth-session-manager.d.ts +51 -0
  164. package/dist/cliproxy/auth-session-manager.d.ts.map +1 -0
  165. package/dist/cliproxy/auth-session-manager.js +134 -0
  166. package/dist/cliproxy/auth-session-manager.js.map +1 -0
  167. package/dist/cliproxy/auth-token-manager.d.ts +82 -0
  168. package/dist/cliproxy/auth-token-manager.d.ts.map +1 -0
  169. package/dist/cliproxy/auth-token-manager.js +187 -0
  170. package/dist/cliproxy/auth-token-manager.js.map +1 -0
  171. package/dist/cliproxy/auth-utils.d.ts +16 -0
  172. package/dist/cliproxy/auth-utils.d.ts.map +1 -0
  173. package/dist/cliproxy/auth-utils.js +33 -0
  174. package/dist/cliproxy/auth-utils.js.map +1 -0
  175. package/dist/cliproxy/base-config-loader.d.ts +42 -0
  176. package/dist/cliproxy/base-config-loader.d.ts.map +1 -0
  177. package/dist/cliproxy/base-config-loader.js +123 -0
  178. package/dist/cliproxy/base-config-loader.js.map +1 -0
  179. package/dist/cliproxy/binary/downloader.d.ts +42 -0
  180. package/dist/cliproxy/binary/downloader.d.ts.map +1 -0
  181. package/dist/cliproxy/binary/downloader.js +407 -0
  182. package/dist/cliproxy/binary/downloader.js.map +1 -0
  183. package/dist/cliproxy/binary/extractor.d.ts +12 -0
  184. package/dist/cliproxy/binary/extractor.d.ts.map +1 -0
  185. package/dist/cliproxy/binary/extractor.js +28 -0
  186. package/dist/cliproxy/binary/extractor.js.map +1 -0
  187. package/dist/cliproxy/binary/index.d.ts +13 -0
  188. package/dist/cliproxy/binary/index.d.ts.map +1 -0
  189. package/dist/cliproxy/binary/index.js +54 -0
  190. package/dist/cliproxy/binary/index.js.map +1 -0
  191. package/dist/cliproxy/binary/installer.d.ts +25 -0
  192. package/dist/cliproxy/binary/installer.d.ts.map +1 -0
  193. package/dist/cliproxy/binary/installer.js +129 -0
  194. package/dist/cliproxy/binary/installer.js.map +1 -0
  195. package/dist/cliproxy/binary/lifecycle.d.ts +11 -0
  196. package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -0
  197. package/dist/cliproxy/binary/lifecycle.js +150 -0
  198. package/dist/cliproxy/binary/lifecycle.js.map +1 -0
  199. package/dist/cliproxy/binary/tar-extractor.d.ts +10 -0
  200. package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -0
  201. package/dist/cliproxy/binary/tar-extractor.js +118 -0
  202. package/dist/cliproxy/binary/tar-extractor.js.map +1 -0
  203. package/dist/cliproxy/binary/types.d.ts +49 -0
  204. package/dist/cliproxy/binary/types.d.ts.map +1 -0
  205. package/dist/cliproxy/binary/types.js +32 -0
  206. package/dist/cliproxy/binary/types.js.map +1 -0
  207. package/dist/cliproxy/binary/updater.d.ts +7 -0
  208. package/dist/cliproxy/binary/updater.d.ts.map +1 -0
  209. package/dist/cliproxy/binary/updater.js +18 -0
  210. package/dist/cliproxy/binary/updater.js.map +1 -0
  211. package/dist/cliproxy/binary/verifier.d.ts +18 -0
  212. package/dist/cliproxy/binary/verifier.d.ts.map +1 -0
  213. package/dist/cliproxy/binary/verifier.js +82 -0
  214. package/dist/cliproxy/binary/verifier.js.map +1 -0
  215. package/dist/cliproxy/binary/version-cache.d.ts +64 -0
  216. package/dist/cliproxy/binary/version-cache.d.ts.map +1 -0
  217. package/dist/cliproxy/binary/version-cache.js +239 -0
  218. package/dist/cliproxy/binary/version-cache.js.map +1 -0
  219. package/dist/cliproxy/binary/version-checker.d.ts +36 -0
  220. package/dist/cliproxy/binary/version-checker.d.ts.map +1 -0
  221. package/dist/cliproxy/binary/version-checker.js +135 -0
  222. package/dist/cliproxy/binary/version-checker.js.map +1 -0
  223. package/dist/cliproxy/binary/zip-extractor.d.ts +10 -0
  224. package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -0
  225. package/dist/cliproxy/binary/zip-extractor.js +110 -0
  226. package/dist/cliproxy/binary/zip-extractor.js.map +1 -0
  227. package/dist/cliproxy/binary-manager.d.ts +59 -0
  228. package/dist/cliproxy/binary-manager.d.ts.map +1 -0
  229. package/dist/cliproxy/binary-manager.js +211 -0
  230. package/dist/cliproxy/binary-manager.js.map +1 -0
  231. package/dist/cliproxy/cliproxy-executor.d.ts +33 -0
  232. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -0
  233. package/dist/cliproxy/cliproxy-executor.js +1025 -0
  234. package/dist/cliproxy/cliproxy-executor.js.map +1 -0
  235. package/dist/cliproxy/codex-reasoning-proxy.d.ts +49 -0
  236. package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +1 -0
  237. package/dist/cliproxy/codex-reasoning-proxy.js +367 -0
  238. package/dist/cliproxy/codex-reasoning-proxy.js.map +1 -0
  239. package/dist/cliproxy/config-generator.d.ts +227 -0
  240. package/dist/cliproxy/config-generator.d.ts.map +1 -0
  241. package/dist/cliproxy/config-generator.js +876 -0
  242. package/dist/cliproxy/config-generator.js.map +1 -0
  243. package/dist/cliproxy/device-code-handler.d.ts +28 -0
  244. package/dist/cliproxy/device-code-handler.d.ts.map +1 -0
  245. package/dist/cliproxy/device-code-handler.js +22 -0
  246. package/dist/cliproxy/device-code-handler.js.map +1 -0
  247. package/dist/cliproxy/https-tunnel-proxy.d.ts +44 -0
  248. package/dist/cliproxy/https-tunnel-proxy.d.ts.map +1 -0
  249. package/dist/cliproxy/https-tunnel-proxy.js +224 -0
  250. package/dist/cliproxy/https-tunnel-proxy.js.map +1 -0
  251. package/dist/cliproxy/index.d.ts +41 -0
  252. package/dist/cliproxy/index.d.ts.map +1 -0
  253. package/dist/cliproxy/index.js +151 -0
  254. package/dist/cliproxy/index.js.map +1 -0
  255. package/dist/cliproxy/management-api-client.d.ts +67 -0
  256. package/dist/cliproxy/management-api-client.d.ts.map +1 -0
  257. package/dist/cliproxy/management-api-client.js +347 -0
  258. package/dist/cliproxy/management-api-client.js.map +1 -0
  259. package/dist/cliproxy/management-api-types.d.ts +107 -0
  260. package/dist/cliproxy/management-api-types.d.ts.map +1 -0
  261. package/dist/cliproxy/management-api-types.js +9 -0
  262. package/dist/cliproxy/management-api-types.js.map +1 -0
  263. package/dist/cliproxy/model-catalog.d.ts +108 -0
  264. package/dist/cliproxy/model-catalog.d.ts.map +1 -0
  265. package/dist/cliproxy/model-catalog.js +247 -0
  266. package/dist/cliproxy/model-catalog.js.map +1 -0
  267. package/dist/cliproxy/model-config.d.ts +31 -0
  268. package/dist/cliproxy/model-config.d.ts.map +1 -0
  269. package/dist/cliproxy/model-config.js +250 -0
  270. package/dist/cliproxy/model-config.js.map +1 -0
  271. package/dist/cliproxy/openai-compat-manager.d.ts +46 -0
  272. package/dist/cliproxy/openai-compat-manager.d.ts.map +1 -0
  273. package/dist/cliproxy/openai-compat-manager.js +191 -0
  274. package/dist/cliproxy/openai-compat-manager.js.map +1 -0
  275. package/dist/cliproxy/platform-detector.d.ts +99 -0
  276. package/dist/cliproxy/platform-detector.d.ts.map +1 -0
  277. package/dist/cliproxy/platform-detector.js +174 -0
  278. package/dist/cliproxy/platform-detector.js.map +1 -0
  279. package/dist/cliproxy/project-selection-handler.d.ts +105 -0
  280. package/dist/cliproxy/project-selection-handler.d.ts.map +1 -0
  281. package/dist/cliproxy/project-selection-handler.js +167 -0
  282. package/dist/cliproxy/project-selection-handler.js.map +1 -0
  283. package/dist/cliproxy/proxy-config-resolver.d.ts +86 -0
  284. package/dist/cliproxy/proxy-config-resolver.d.ts.map +1 -0
  285. package/dist/cliproxy/proxy-config-resolver.js +253 -0
  286. package/dist/cliproxy/proxy-config-resolver.js.map +1 -0
  287. package/dist/cliproxy/proxy-detector.d.ts +72 -0
  288. package/dist/cliproxy/proxy-detector.d.ts.map +1 -0
  289. package/dist/cliproxy/proxy-detector.js +196 -0
  290. package/dist/cliproxy/proxy-detector.js.map +1 -0
  291. package/dist/cliproxy/proxy-target-resolver.d.ts +50 -0
  292. package/dist/cliproxy/proxy-target-resolver.d.ts.map +1 -0
  293. package/dist/cliproxy/proxy-target-resolver.js +105 -0
  294. package/dist/cliproxy/proxy-target-resolver.js.map +1 -0
  295. package/dist/cliproxy/quota-fetcher-codex.d.ts +66 -0
  296. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +1 -0
  297. package/dist/cliproxy/quota-fetcher-codex.js +315 -0
  298. package/dist/cliproxy/quota-fetcher-codex.js.map +1 -0
  299. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts +51 -0
  300. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +1 -0
  301. package/dist/cliproxy/quota-fetcher-gemini-cli.js +492 -0
  302. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +1 -0
  303. package/dist/cliproxy/quota-fetcher.d.ts +95 -0
  304. package/dist/cliproxy/quota-fetcher.d.ts.map +1 -0
  305. package/dist/cliproxy/quota-fetcher.js +589 -0
  306. package/dist/cliproxy/quota-fetcher.js.map +1 -0
  307. package/dist/cliproxy/quota-manager.d.ts +88 -0
  308. package/dist/cliproxy/quota-manager.d.ts.map +1 -0
  309. package/dist/cliproxy/quota-manager.js +278 -0
  310. package/dist/cliproxy/quota-manager.js.map +1 -0
  311. package/dist/cliproxy/quota-response-cache.d.ts +46 -0
  312. package/dist/cliproxy/quota-response-cache.d.ts.map +1 -0
  313. package/dist/cliproxy/quota-response-cache.js +98 -0
  314. package/dist/cliproxy/quota-response-cache.js.map +1 -0
  315. package/dist/cliproxy/quota-types.d.ts +84 -0
  316. package/dist/cliproxy/quota-types.d.ts.map +1 -0
  317. package/dist/cliproxy/quota-types.js +9 -0
  318. package/dist/cliproxy/quota-types.js.map +1 -0
  319. package/dist/cliproxy/remote-auth-fetcher.d.ts +28 -0
  320. package/dist/cliproxy/remote-auth-fetcher.d.ts.map +1 -0
  321. package/dist/cliproxy/remote-auth-fetcher.js +117 -0
  322. package/dist/cliproxy/remote-auth-fetcher.js.map +1 -0
  323. package/dist/cliproxy/remote-proxy-client.d.ts +59 -0
  324. package/dist/cliproxy/remote-proxy-client.d.ts.map +1 -0
  325. package/dist/cliproxy/remote-proxy-client.js +278 -0
  326. package/dist/cliproxy/remote-proxy-client.js.map +1 -0
  327. package/dist/cliproxy/remote-token-uploader.d.ts +28 -0
  328. package/dist/cliproxy/remote-token-uploader.d.ts.map +1 -0
  329. package/dist/cliproxy/remote-token-uploader.js +178 -0
  330. package/dist/cliproxy/remote-token-uploader.js.map +1 -0
  331. package/dist/cliproxy/service-manager.d.ts +55 -0
  332. package/dist/cliproxy/service-manager.d.ts.map +1 -0
  333. package/dist/cliproxy/service-manager.js +327 -0
  334. package/dist/cliproxy/service-manager.js.map +1 -0
  335. package/dist/cliproxy/services/binary-service.d.ts +67 -0
  336. package/dist/cliproxy/services/binary-service.d.ts.map +1 -0
  337. package/dist/cliproxy/services/binary-service.js +176 -0
  338. package/dist/cliproxy/services/binary-service.js.map +1 -0
  339. package/dist/cliproxy/services/index.d.ts +8 -0
  340. package/dist/cliproxy/services/index.d.ts.map +1 -0
  341. package/dist/cliproxy/services/index.js +31 -0
  342. package/dist/cliproxy/services/index.js.map +1 -0
  343. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +38 -0
  344. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -0
  345. package/dist/cliproxy/services/proxy-lifecycle-service.js +41 -0
  346. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -0
  347. package/dist/cliproxy/services/variant-config-adapter.d.ts +48 -0
  348. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -0
  349. package/dist/cliproxy/services/variant-config-adapter.js +215 -0
  350. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -0
  351. package/dist/cliproxy/services/variant-service.d.ts +52 -0
  352. package/dist/cliproxy/services/variant-service.d.ts.map +1 -0
  353. package/dist/cliproxy/services/variant-service.js +218 -0
  354. package/dist/cliproxy/services/variant-service.js.map +1 -0
  355. package/dist/cliproxy/services/variant-settings.d.ts +37 -0
  356. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -0
  357. package/dist/cliproxy/services/variant-settings.js +168 -0
  358. package/dist/cliproxy/services/variant-settings.js.map +1 -0
  359. package/dist/cliproxy/session-tracker.d.ts +100 -0
  360. package/dist/cliproxy/session-tracker.d.ts.map +1 -0
  361. package/dist/cliproxy/session-tracker.js +420 -0
  362. package/dist/cliproxy/session-tracker.js.map +1 -0
  363. package/dist/cliproxy/startup-lock.d.ts +57 -0
  364. package/dist/cliproxy/startup-lock.d.ts.map +1 -0
  365. package/dist/cliproxy/startup-lock.js +216 -0
  366. package/dist/cliproxy/startup-lock.js.map +1 -0
  367. package/dist/cliproxy/stats-fetcher.d.ts +106 -0
  368. package/dist/cliproxy/stats-fetcher.d.ts.map +1 -0
  369. package/dist/cliproxy/stats-fetcher.js +267 -0
  370. package/dist/cliproxy/stats-fetcher.js.map +1 -0
  371. package/dist/cliproxy/sync/auto-sync-watcher.d.ts +37 -0
  372. package/dist/cliproxy/sync/auto-sync-watcher.d.ts.map +1 -0
  373. package/dist/cliproxy/sync/auto-sync-watcher.js +211 -0
  374. package/dist/cliproxy/sync/auto-sync-watcher.js.map +1 -0
  375. package/dist/cliproxy/sync/index.d.ts +10 -0
  376. package/dist/cliproxy/sync/index.d.ts.map +1 -0
  377. package/dist/cliproxy/sync/index.js +27 -0
  378. package/dist/cliproxy/sync/index.js.map +1 -0
  379. package/dist/cliproxy/sync/local-config-sync.d.ts +28 -0
  380. package/dist/cliproxy/sync/local-config-sync.d.ts.map +1 -0
  381. package/dist/cliproxy/sync/local-config-sync.js +223 -0
  382. package/dist/cliproxy/sync/local-config-sync.js.map +1 -0
  383. package/dist/cliproxy/sync/profile-mapper.d.ts +55 -0
  384. package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -0
  385. package/dist/cliproxy/sync/profile-mapper.js +173 -0
  386. package/dist/cliproxy/sync/profile-mapper.js.map +1 -0
  387. package/dist/cliproxy/thinking-validator.d.ts +67 -0
  388. package/dist/cliproxy/thinking-validator.d.ts.map +1 -0
  389. package/dist/cliproxy/thinking-validator.js +327 -0
  390. package/dist/cliproxy/thinking-validator.js.map +1 -0
  391. package/dist/cliproxy/tool-name-mapper.d.ts +103 -0
  392. package/dist/cliproxy/tool-name-mapper.d.ts.map +1 -0
  393. package/dist/cliproxy/tool-name-mapper.js +149 -0
  394. package/dist/cliproxy/tool-name-mapper.js.map +1 -0
  395. package/dist/cliproxy/tool-name-sanitizer.d.ts +65 -0
  396. package/dist/cliproxy/tool-name-sanitizer.d.ts.map +1 -0
  397. package/dist/cliproxy/tool-name-sanitizer.js +118 -0
  398. package/dist/cliproxy/tool-name-sanitizer.js.map +1 -0
  399. package/dist/cliproxy/tool-sanitization-proxy.d.ts +70 -0
  400. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -0
  401. package/dist/cliproxy/tool-sanitization-proxy.js +453 -0
  402. package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -0
  403. package/dist/cliproxy/types.d.ts +218 -0
  404. package/dist/cliproxy/types.d.ts.map +1 -0
  405. package/dist/cliproxy/types.js +12 -0
  406. package/dist/cliproxy/types.js.map +1 -0
  407. package/dist/commands/api-command.d.ts +12 -0
  408. package/dist/commands/api-command.d.ts.map +1 -0
  409. package/dist/commands/api-command.js +423 -0
  410. package/dist/commands/api-command.js.map +1 -0
  411. package/dist/commands/cleanup-command.d.ts +12 -0
  412. package/dist/commands/cleanup-command.d.ts.map +1 -0
  413. package/dist/commands/cleanup-command.js +350 -0
  414. package/dist/commands/cleanup-command.js.map +1 -0
  415. package/dist/commands/cliproxy-command.d.ts +21 -0
  416. package/dist/commands/cliproxy-command.d.ts.map +1 -0
  417. package/dist/commands/cliproxy-command.js +1099 -0
  418. package/dist/commands/cliproxy-command.js.map +1 -0
  419. package/dist/commands/cliproxy-sync-handler.d.ts +19 -0
  420. package/dist/commands/cliproxy-sync-handler.d.ts.map +1 -0
  421. package/dist/commands/cliproxy-sync-handler.js +99 -0
  422. package/dist/commands/cliproxy-sync-handler.js.map +1 -0
  423. package/dist/commands/config-auth/disable-command.d.ts +10 -0
  424. package/dist/commands/config-auth/disable-command.d.ts.map +1 -0
  425. package/dist/commands/config-auth/disable-command.js +64 -0
  426. package/dist/commands/config-auth/disable-command.js.map +1 -0
  427. package/dist/commands/config-auth/index.d.ts +14 -0
  428. package/dist/commands/config-auth/index.d.ts.map +1 -0
  429. package/dist/commands/config-auth/index.js +84 -0
  430. package/dist/commands/config-auth/index.js.map +1 -0
  431. package/dist/commands/config-auth/setup-command.d.ts +13 -0
  432. package/dist/commands/config-auth/setup-command.d.ts.map +1 -0
  433. package/dist/commands/config-auth/setup-command.js +121 -0
  434. package/dist/commands/config-auth/setup-command.js.map +1 -0
  435. package/dist/commands/config-auth/show-command.d.ts +10 -0
  436. package/dist/commands/config-auth/show-command.d.ts.map +1 -0
  437. package/dist/commands/config-auth/show-command.js +79 -0
  438. package/dist/commands/config-auth/show-command.js.map +1 -0
  439. package/dist/commands/config-auth/types.d.ts +25 -0
  440. package/dist/commands/config-auth/types.d.ts.map +1 -0
  441. package/dist/commands/config-auth/types.js +8 -0
  442. package/dist/commands/config-auth/types.js.map +1 -0
  443. package/dist/commands/config-command.d.ts +12 -0
  444. package/dist/commands/config-command.d.ts.map +1 -0
  445. package/dist/commands/config-command.js +184 -0
  446. package/dist/commands/config-command.js.map +1 -0
  447. package/dist/commands/config-image-analysis-command.d.ts +8 -0
  448. package/dist/commands/config-image-analysis-command.d.ts.map +1 -0
  449. package/dist/commands/config-image-analysis-command.js +174 -0
  450. package/dist/commands/config-image-analysis-command.js.map +1 -0
  451. package/dist/commands/copilot-command.d.ts +10 -0
  452. package/dist/commands/copilot-command.d.ts.map +1 -0
  453. package/dist/commands/copilot-command.js +228 -0
  454. package/dist/commands/copilot-command.js.map +1 -0
  455. package/dist/commands/doctor-command.d.ts +11 -0
  456. package/dist/commands/doctor-command.d.ts.map +1 -0
  457. package/dist/commands/doctor-command.js +92 -0
  458. package/dist/commands/doctor-command.js.map +1 -0
  459. package/dist/commands/help-command.d.ts +5 -0
  460. package/dist/commands/help-command.d.ts.map +1 -0
  461. package/dist/commands/help-command.js +346 -0
  462. package/dist/commands/help-command.js.map +1 -0
  463. package/dist/commands/index.d.ts +18 -0
  464. package/dist/commands/index.d.ts.map +1 -0
  465. package/dist/commands/index.js +35 -0
  466. package/dist/commands/index.js.map +1 -0
  467. package/dist/commands/install-command.d.ts +14 -0
  468. package/dist/commands/install-command.d.ts.map +1 -0
  469. package/dist/commands/install-command.js +62 -0
  470. package/dist/commands/install-command.js.map +1 -0
  471. package/dist/commands/migrate-command.d.ts +17 -0
  472. package/dist/commands/migrate-command.d.ts.map +1 -0
  473. package/dist/commands/migrate-command.js +139 -0
  474. package/dist/commands/migrate-command.js.map +1 -0
  475. package/dist/commands/persist-command.d.ts +12 -0
  476. package/dist/commands/persist-command.d.ts.map +1 -0
  477. package/dist/commands/persist-command.js +565 -0
  478. package/dist/commands/persist-command.js.map +1 -0
  479. package/dist/commands/setup-command.d.ts +29 -0
  480. package/dist/commands/setup-command.d.ts.map +1 -0
  481. package/dist/commands/setup-command.js +426 -0
  482. package/dist/commands/setup-command.js.map +1 -0
  483. package/dist/commands/shell-completion-command.d.ts +10 -0
  484. package/dist/commands/shell-completion-command.d.ts.map +1 -0
  485. package/dist/commands/shell-completion-command.js +90 -0
  486. package/dist/commands/shell-completion-command.js.map +1 -0
  487. package/dist/commands/sync-command.d.ts +10 -0
  488. package/dist/commands/sync-command.d.ts.map +1 -0
  489. package/dist/commands/sync-command.js +67 -0
  490. package/dist/commands/sync-command.js.map +1 -0
  491. package/dist/commands/tokens-command.d.ts +19 -0
  492. package/dist/commands/tokens-command.d.ts.map +1 -0
  493. package/dist/commands/tokens-command.js +173 -0
  494. package/dist/commands/tokens-command.js.map +1 -0
  495. package/dist/commands/update-command.d.ts +19 -0
  496. package/dist/commands/update-command.d.ts.map +1 -0
  497. package/dist/commands/update-command.js +290 -0
  498. package/dist/commands/update-command.js.map +1 -0
  499. package/dist/commands/version-command.d.ts +10 -0
  500. package/dist/commands/version-command.d.ts.map +1 -0
  501. package/dist/commands/version-command.js +100 -0
  502. package/dist/commands/version-command.js.map +1 -0
  503. package/dist/config/feature-flags.d.ts +19 -0
  504. package/dist/config/feature-flags.d.ts.map +1 -0
  505. package/dist/config/feature-flags.js +31 -0
  506. package/dist/config/feature-flags.js.map +1 -0
  507. package/dist/config/index.d.ts +11 -0
  508. package/dist/config/index.d.ts.map +1 -0
  509. package/dist/config/index.js +32 -0
  510. package/dist/config/index.js.map +1 -0
  511. package/dist/config/migration-manager.d.ts +75 -0
  512. package/dist/config/migration-manager.d.ts.map +1 -0
  513. package/dist/config/migration-manager.js +446 -0
  514. package/dist/config/migration-manager.js.map +1 -0
  515. package/dist/config/reserved-names.d.ts +31 -0
  516. package/dist/config/reserved-names.d.ts.map +1 -0
  517. package/dist/config/reserved-names.js +80 -0
  518. package/dist/config/reserved-names.js.map +1 -0
  519. package/dist/config/unified-config-loader.d.ts +117 -0
  520. package/dist/config/unified-config-loader.d.ts.map +1 -0
  521. package/dist/config/unified-config-loader.js +756 -0
  522. package/dist/config/unified-config-loader.js.map +1 -0
  523. package/dist/config/unified-config-types.d.ts +519 -0
  524. package/dist/config/unified-config-types.d.ts.map +1 -0
  525. package/dist/config/unified-config-types.js +211 -0
  526. package/dist/config/unified-config-types.js.map +1 -0
  527. package/dist/copilot/copilot-auth.d.ts +52 -0
  528. package/dist/copilot/copilot-auth.d.ts.map +1 -0
  529. package/dist/copilot/copilot-auth.js +201 -0
  530. package/dist/copilot/copilot-auth.js.map +1 -0
  531. package/dist/copilot/copilot-daemon.d.ts +36 -0
  532. package/dist/copilot/copilot-daemon.d.ts.map +1 -0
  533. package/dist/copilot/copilot-daemon.js +237 -0
  534. package/dist/copilot/copilot-daemon.js.map +1 -0
  535. package/dist/copilot/copilot-executor.d.ts +26 -0
  536. package/dist/copilot/copilot-executor.d.ts.map +1 -0
  537. package/dist/copilot/copilot-executor.js +150 -0
  538. package/dist/copilot/copilot-executor.js.map +1 -0
  539. package/dist/copilot/copilot-models.d.ts +34 -0
  540. package/dist/copilot/copilot-models.d.ts.map +1 -0
  541. package/dist/copilot/copilot-models.js +261 -0
  542. package/dist/copilot/copilot-models.js.map +1 -0
  543. package/dist/copilot/copilot-package-manager.d.ts +93 -0
  544. package/dist/copilot/copilot-package-manager.d.ts.map +1 -0
  545. package/dist/copilot/copilot-package-manager.js +488 -0
  546. package/dist/copilot/copilot-package-manager.js.map +1 -0
  547. package/dist/copilot/index.d.ts +13 -0
  548. package/dist/copilot/index.d.ts.map +1 -0
  549. package/dist/copilot/index.js +63 -0
  550. package/dist/copilot/index.js.map +1 -0
  551. package/dist/copilot/types.d.ts +65 -0
  552. package/dist/copilot/types.d.ts.map +1 -0
  553. package/dist/copilot/types.js +8 -0
  554. package/dist/copilot/types.js.map +1 -0
  555. package/dist/delegation/delegation-handler.d.ts +66 -0
  556. package/dist/delegation/delegation-handler.d.ts.map +1 -0
  557. package/dist/delegation/delegation-handler.js +290 -0
  558. package/dist/delegation/delegation-handler.js.map +1 -0
  559. package/dist/delegation/executor/index.d.ts +7 -0
  560. package/dist/delegation/executor/index.d.ts.map +1 -0
  561. package/dist/delegation/executor/index.js +28 -0
  562. package/dist/delegation/executor/index.js.map +1 -0
  563. package/dist/delegation/executor/result-aggregator.d.ts +30 -0
  564. package/dist/delegation/executor/result-aggregator.d.ts.map +1 -0
  565. package/dist/delegation/executor/result-aggregator.js +66 -0
  566. package/dist/delegation/executor/result-aggregator.js.map +1 -0
  567. package/dist/delegation/executor/stream-parser.d.ts +28 -0
  568. package/dist/delegation/executor/stream-parser.d.ts.map +1 -0
  569. package/dist/delegation/executor/stream-parser.js +140 -0
  570. package/dist/delegation/executor/stream-parser.js.map +1 -0
  571. package/dist/delegation/executor/types.d.ts +129 -0
  572. package/dist/delegation/executor/types.d.ts.map +1 -0
  573. package/dist/delegation/executor/types.js +6 -0
  574. package/dist/delegation/executor/types.js.map +1 -0
  575. package/dist/delegation/headless-executor.d.ts +42 -0
  576. package/dist/delegation/headless-executor.d.ts.map +1 -0
  577. package/dist/delegation/headless-executor.js +480 -0
  578. package/dist/delegation/headless-executor.js.map +1 -0
  579. package/dist/delegation/index.d.ts +11 -0
  580. package/dist/delegation/index.d.ts.map +1 -0
  581. package/dist/delegation/index.js +33 -0
  582. package/dist/delegation/index.js.map +1 -0
  583. package/dist/delegation/result-formatter.d.ts +56 -0
  584. package/dist/delegation/result-formatter.d.ts.map +1 -0
  585. package/dist/delegation/result-formatter.js +341 -0
  586. package/dist/delegation/result-formatter.js.map +1 -0
  587. package/dist/delegation/session-manager.d.ts +58 -0
  588. package/dist/delegation/session-manager.d.ts.map +1 -0
  589. package/dist/delegation/session-manager.js +153 -0
  590. package/dist/delegation/session-manager.js.map +1 -0
  591. package/dist/delegation/settings-parser.d.ts +31 -0
  592. package/dist/delegation/settings-parser.d.ts.map +1 -0
  593. package/dist/delegation/settings-parser.js +107 -0
  594. package/dist/delegation/settings-parser.js.map +1 -0
  595. package/dist/errors/cleanup-registry.d.ts +64 -0
  596. package/dist/errors/cleanup-registry.d.ts.map +1 -0
  597. package/dist/errors/cleanup-registry.js +141 -0
  598. package/dist/errors/cleanup-registry.js.map +1 -0
  599. package/dist/errors/error-handler.d.ts +45 -0
  600. package/dist/errors/error-handler.d.ts.map +1 -0
  601. package/dist/errors/error-handler.js +150 -0
  602. package/dist/errors/error-handler.js.map +1 -0
  603. package/dist/errors/error-types.d.ts +102 -0
  604. package/dist/errors/error-types.d.ts.map +1 -0
  605. package/dist/errors/error-types.js +158 -0
  606. package/dist/errors/error-types.js.map +1 -0
  607. package/dist/errors/exit-codes.d.ts +49 -0
  608. package/dist/errors/exit-codes.d.ts.map +1 -0
  609. package/dist/errors/exit-codes.js +72 -0
  610. package/dist/errors/exit-codes.js.map +1 -0
  611. package/dist/errors/index.d.ts +29 -0
  612. package/dist/errors/index.d.ts.map +1 -0
  613. package/dist/errors/index.js +62 -0
  614. package/dist/errors/index.js.map +1 -0
  615. package/dist/glmt/delta-accumulator.d.ts +210 -0
  616. package/dist/glmt/delta-accumulator.d.ts.map +1 -0
  617. package/dist/glmt/delta-accumulator.js +351 -0
  618. package/dist/glmt/delta-accumulator.js.map +1 -0
  619. package/dist/glmt/glmt-proxy.d.ts +107 -0
  620. package/dist/glmt/glmt-proxy.d.ts.map +1 -0
  621. package/dist/glmt/glmt-proxy.js +665 -0
  622. package/dist/glmt/glmt-proxy.js.map +1 -0
  623. package/dist/glmt/glmt-transformer.d.ts +46 -0
  624. package/dist/glmt/glmt-transformer.d.ts.map +1 -0
  625. package/dist/glmt/glmt-transformer.js +177 -0
  626. package/dist/glmt/glmt-transformer.js.map +1 -0
  627. package/dist/glmt/index.d.ts +14 -0
  628. package/dist/glmt/index.d.ts.map +1 -0
  629. package/dist/glmt/index.js +41 -0
  630. package/dist/glmt/index.js.map +1 -0
  631. package/dist/glmt/locale-enforcer.d.ts +38 -0
  632. package/dist/glmt/locale-enforcer.d.ts.map +1 -0
  633. package/dist/glmt/locale-enforcer.js +69 -0
  634. package/dist/glmt/locale-enforcer.js.map +1 -0
  635. package/dist/glmt/pipeline/content-transformer.d.ts +39 -0
  636. package/dist/glmt/pipeline/content-transformer.d.ts.map +1 -0
  637. package/dist/glmt/pipeline/content-transformer.js +162 -0
  638. package/dist/glmt/pipeline/content-transformer.js.map +1 -0
  639. package/dist/glmt/pipeline/index.d.ts +12 -0
  640. package/dist/glmt/pipeline/index.d.ts.map +1 -0
  641. package/dist/glmt/pipeline/index.js +20 -0
  642. package/dist/glmt/pipeline/index.js.map +1 -0
  643. package/dist/glmt/pipeline/request-transformer.d.ts +31 -0
  644. package/dist/glmt/pipeline/request-transformer.d.ts.map +1 -0
  645. package/dist/glmt/pipeline/request-transformer.js +116 -0
  646. package/dist/glmt/pipeline/request-transformer.js.map +1 -0
  647. package/dist/glmt/pipeline/response-builder.d.ts +52 -0
  648. package/dist/glmt/pipeline/response-builder.d.ts.map +1 -0
  649. package/dist/glmt/pipeline/response-builder.js +205 -0
  650. package/dist/glmt/pipeline/response-builder.js.map +1 -0
  651. package/dist/glmt/pipeline/stream-parser.d.ts +59 -0
  652. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -0
  653. package/dist/glmt/pipeline/stream-parser.js +241 -0
  654. package/dist/glmt/pipeline/stream-parser.js.map +1 -0
  655. package/dist/glmt/pipeline/tool-call-handler.d.ts +22 -0
  656. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -0
  657. package/dist/glmt/pipeline/tool-call-handler.js +87 -0
  658. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -0
  659. package/dist/glmt/pipeline/types.d.ts +159 -0
  660. package/dist/glmt/pipeline/types.d.ts.map +1 -0
  661. package/dist/glmt/pipeline/types.js +6 -0
  662. package/dist/glmt/pipeline/types.js.map +1 -0
  663. package/dist/glmt/reasoning-enforcer.d.ts +52 -0
  664. package/dist/glmt/reasoning-enforcer.d.ts.map +1 -0
  665. package/dist/glmt/reasoning-enforcer.js +151 -0
  666. package/dist/glmt/reasoning-enforcer.js.map +1 -0
  667. package/dist/glmt/sse-parser.d.ts +47 -0
  668. package/dist/glmt/sse-parser.d.ts.map +1 -0
  669. package/dist/glmt/sse-parser.js +93 -0
  670. package/dist/glmt/sse-parser.js.map +1 -0
  671. package/dist/management/checks/cliproxy-check.d.ts +37 -0
  672. package/dist/management/checks/cliproxy-check.d.ts.map +1 -0
  673. package/dist/management/checks/cliproxy-check.js +187 -0
  674. package/dist/management/checks/cliproxy-check.js.map +1 -0
  675. package/dist/management/checks/config-check.d.ts +38 -0
  676. package/dist/management/checks/config-check.d.ts.map +1 -0
  677. package/dist/management/checks/config-check.js +215 -0
  678. package/dist/management/checks/config-check.js.map +1 -0
  679. package/dist/management/checks/env-check.d.ts +17 -0
  680. package/dist/management/checks/env-check.d.ts.map +1 -0
  681. package/dist/management/checks/env-check.js +71 -0
  682. package/dist/management/checks/env-check.js.map +1 -0
  683. package/dist/management/checks/image-analysis-check.d.ts +16 -0
  684. package/dist/management/checks/image-analysis-check.d.ts.map +1 -0
  685. package/dist/management/checks/image-analysis-check.js +140 -0
  686. package/dist/management/checks/image-analysis-check.js.map +1 -0
  687. package/dist/management/checks/index.d.ts +13 -0
  688. package/dist/management/checks/index.d.ts.map +1 -0
  689. package/dist/management/checks/index.js +52 -0
  690. package/dist/management/checks/index.js.map +1 -0
  691. package/dist/management/checks/oauth-check.d.ts +16 -0
  692. package/dist/management/checks/oauth-check.d.ts.map +1 -0
  693. package/dist/management/checks/oauth-check.js +68 -0
  694. package/dist/management/checks/oauth-check.js.map +1 -0
  695. package/dist/management/checks/profile-check.d.ts +40 -0
  696. package/dist/management/checks/profile-check.d.ts.map +1 -0
  697. package/dist/management/checks/profile-check.js +190 -0
  698. package/dist/management/checks/profile-check.js.map +1 -0
  699. package/dist/management/checks/symlink-check.d.ts +30 -0
  700. package/dist/management/checks/symlink-check.d.ts.map +1 -0
  701. package/dist/management/checks/symlink-check.js +214 -0
  702. package/dist/management/checks/symlink-check.js.map +1 -0
  703. package/dist/management/checks/system-check.d.ts +25 -0
  704. package/dist/management/checks/system-check.d.ts.map +1 -0
  705. package/dist/management/checks/system-check.js +135 -0
  706. package/dist/management/checks/system-check.js.map +1 -0
  707. package/dist/management/checks/types.d.ts +64 -0
  708. package/dist/management/checks/types.d.ts.map +1 -0
  709. package/dist/management/checks/types.js +64 -0
  710. package/dist/management/checks/types.js.map +1 -0
  711. package/dist/management/doctor.d.ts +34 -0
  712. package/dist/management/doctor.d.ts.map +1 -0
  713. package/dist/management/doctor.js +154 -0
  714. package/dist/management/doctor.js.map +1 -0
  715. package/dist/management/environment-diagnostics.d.ts +69 -0
  716. package/dist/management/environment-diagnostics.d.ts.map +1 -0
  717. package/dist/management/environment-diagnostics.js +229 -0
  718. package/dist/management/environment-diagnostics.js.map +1 -0
  719. package/dist/management/index.d.ts +15 -0
  720. package/dist/management/index.d.ts.map +1 -0
  721. package/dist/management/index.js +56 -0
  722. package/dist/management/index.js.map +1 -0
  723. package/dist/management/instance-manager.d.ts +57 -0
  724. package/dist/management/instance-manager.d.ts.map +1 -0
  725. package/dist/management/instance-manager.js +195 -0
  726. package/dist/management/instance-manager.js.map +1 -0
  727. package/dist/management/oauth-port-diagnostics.d.ts +115 -0
  728. package/dist/management/oauth-port-diagnostics.d.ts.map +1 -0
  729. package/dist/management/oauth-port-diagnostics.js +291 -0
  730. package/dist/management/oauth-port-diagnostics.js.map +1 -0
  731. package/dist/management/recovery-manager.d.ts +56 -0
  732. package/dist/management/recovery-manager.d.ts.map +1 -0
  733. package/dist/management/recovery-manager.js +239 -0
  734. package/dist/management/recovery-manager.js.map +1 -0
  735. package/dist/management/repair/auto-repair.d.ts +13 -0
  736. package/dist/management/repair/auto-repair.d.ts.map +1 -0
  737. package/dist/management/repair/auto-repair.js +186 -0
  738. package/dist/management/repair/auto-repair.js.map +1 -0
  739. package/dist/management/repair/index.d.ts +5 -0
  740. package/dist/management/repair/index.d.ts.map +1 -0
  741. package/dist/management/repair/index.js +9 -0
  742. package/dist/management/repair/index.js.map +1 -0
  743. package/dist/management/shared-manager.d.ts +55 -0
  744. package/dist/management/shared-manager.d.ts.map +1 -0
  745. package/dist/management/shared-manager.js +424 -0
  746. package/dist/management/shared-manager.js.map +1 -0
  747. package/dist/types/cli.d.ts +50 -0
  748. package/dist/types/cli.d.ts.map +1 -0
  749. package/dist/types/cli.js +16 -0
  750. package/dist/types/cli.js.map +1 -0
  751. package/dist/types/config.d.ts +89 -0
  752. package/dist/types/config.d.ts.map +1 -0
  753. package/dist/types/config.js +26 -0
  754. package/dist/types/config.js.map +1 -0
  755. package/dist/types/delegation.d.ts +49 -0
  756. package/dist/types/delegation.d.ts.map +1 -0
  757. package/dist/types/delegation.js +6 -0
  758. package/dist/types/delegation.js.map +1 -0
  759. package/dist/types/glmt.d.ts +95 -0
  760. package/dist/types/glmt.d.ts.map +1 -0
  761. package/dist/types/glmt.js +7 -0
  762. package/dist/types/glmt.js.map +1 -0
  763. package/dist/types/index.d.ts +13 -0
  764. package/dist/types/index.d.ts.map +1 -0
  765. package/dist/types/index.js +16 -0
  766. package/dist/types/index.js.map +1 -0
  767. package/dist/types/utils.d.ts +107 -0
  768. package/dist/types/utils.d.ts.map +1 -0
  769. package/dist/types/utils.js +22 -0
  770. package/dist/types/utils.js.map +1 -0
  771. package/dist/utils/api-key-validator.d.ts +14 -0
  772. package/dist/utils/api-key-validator.d.ts.map +1 -0
  773. package/dist/utils/api-key-validator.js +143 -0
  774. package/dist/utils/api-key-validator.js.map +1 -0
  775. package/dist/utils/claude-detector.d.ts +14 -0
  776. package/dist/utils/claude-detector.d.ts.map +1 -0
  777. package/dist/utils/claude-detector.js +152 -0
  778. package/dist/utils/claude-detector.js.map +1 -0
  779. package/dist/utils/claude-dir-installer.d.ts +46 -0
  780. package/dist/utils/claude-dir-installer.d.ts.map +1 -0
  781. package/dist/utils/claude-dir-installer.js +289 -0
  782. package/dist/utils/claude-dir-installer.js.map +1 -0
  783. package/dist/utils/claude-spawner.d.ts +54 -0
  784. package/dist/utils/claude-spawner.d.ts.map +1 -0
  785. package/dist/utils/claude-spawner.js +118 -0
  786. package/dist/utils/claude-spawner.js.map +1 -0
  787. package/dist/utils/claude-symlink-manager.d.ts +75 -0
  788. package/dist/utils/claude-symlink-manager.d.ts.map +1 -0
  789. package/dist/utils/claude-symlink-manager.js +393 -0
  790. package/dist/utils/claude-symlink-manager.js.map +1 -0
  791. package/dist/utils/config-manager.d.ts +59 -0
  792. package/dist/utils/config-manager.d.ts.map +1 -0
  793. package/dist/utils/config-manager.js +292 -0
  794. package/dist/utils/config-manager.js.map +1 -0
  795. package/dist/utils/delegation-validator.d.ts +44 -0
  796. package/dist/utils/delegation-validator.d.ts.map +1 -0
  797. package/dist/utils/delegation-validator.js +182 -0
  798. package/dist/utils/delegation-validator.js.map +1 -0
  799. package/dist/utils/error-codes.d.ts +36 -0
  800. package/dist/utils/error-codes.d.ts.map +1 -0
  801. package/dist/utils/error-codes.js +63 -0
  802. package/dist/utils/error-codes.js.map +1 -0
  803. package/dist/utils/error-manager.d.ts +59 -0
  804. package/dist/utils/error-manager.d.ts.map +1 -0
  805. package/dist/utils/error-manager.js +250 -0
  806. package/dist/utils/error-manager.js.map +1 -0
  807. package/dist/utils/helpers.d.ts +17 -0
  808. package/dist/utils/helpers.d.ts.map +1 -0
  809. package/dist/utils/helpers.js +111 -0
  810. package/dist/utils/helpers.js.map +1 -0
  811. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +17 -0
  812. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -0
  813. package/dist/utils/hooks/get-image-analysis-hook-env.js +42 -0
  814. package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -0
  815. package/dist/utils/hooks/image-analyzer-hook-configuration.d.ts +17 -0
  816. package/dist/utils/hooks/image-analyzer-hook-configuration.d.ts.map +1 -0
  817. package/dist/utils/hooks/image-analyzer-hook-configuration.js +71 -0
  818. package/dist/utils/hooks/image-analyzer-hook-configuration.js.map +1 -0
  819. package/dist/utils/hooks/image-analyzer-hook-installer.d.ts +31 -0
  820. package/dist/utils/hooks/image-analyzer-hook-installer.d.ts.map +1 -0
  821. package/dist/utils/hooks/image-analyzer-hook-installer.js +149 -0
  822. package/dist/utils/hooks/image-analyzer-hook-installer.js.map +1 -0
  823. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts +24 -0
  824. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts.map +1 -0
  825. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js +251 -0
  826. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js.map +1 -0
  827. package/dist/utils/hooks/index.d.ts +11 -0
  828. package/dist/utils/hooks/index.d.ts.map +1 -0
  829. package/dist/utils/hooks/index.js +21 -0
  830. package/dist/utils/hooks/index.js.map +1 -0
  831. package/dist/utils/image-analysis/hook-installer.d.ts +19 -0
  832. package/dist/utils/image-analysis/hook-installer.d.ts.map +1 -0
  833. package/dist/utils/image-analysis/hook-installer.js +112 -0
  834. package/dist/utils/image-analysis/hook-installer.js.map +1 -0
  835. package/dist/utils/image-analysis/index.d.ts +7 -0
  836. package/dist/utils/image-analysis/index.d.ts.map +1 -0
  837. package/dist/utils/image-analysis/index.js +12 -0
  838. package/dist/utils/image-analysis/index.js.map +1 -0
  839. package/dist/utils/index.d.ts +15 -0
  840. package/dist/utils/index.d.ts.map +1 -0
  841. package/dist/utils/index.js +50 -0
  842. package/dist/utils/index.js.map +1 -0
  843. package/dist/utils/package-manager-detector.d.ts +11 -0
  844. package/dist/utils/package-manager-detector.d.ts.map +1 -0
  845. package/dist/utils/package-manager-detector.js +103 -0
  846. package/dist/utils/package-manager-detector.js.map +1 -0
  847. package/dist/utils/platform-commands.d.ts +53 -0
  848. package/dist/utils/platform-commands.d.ts.map +1 -0
  849. package/dist/utils/platform-commands.js +189 -0
  850. package/dist/utils/platform-commands.js.map +1 -0
  851. package/dist/utils/port-utils.d.ts +55 -0
  852. package/dist/utils/port-utils.d.ts.map +1 -0
  853. package/dist/utils/port-utils.js +217 -0
  854. package/dist/utils/port-utils.js.map +1 -0
  855. package/dist/utils/progress-indicator.d.ts +53 -0
  856. package/dist/utils/progress-indicator.d.ts.map +1 -0
  857. package/dist/utils/progress-indicator.js +104 -0
  858. package/dist/utils/progress-indicator.js.map +1 -0
  859. package/dist/utils/prompt.d.ts +55 -0
  860. package/dist/utils/prompt.d.ts.map +1 -0
  861. package/dist/utils/prompt.js +270 -0
  862. package/dist/utils/prompt.js.map +1 -0
  863. package/dist/utils/sensitive-keys.d.ts +35 -0
  864. package/dist/utils/sensitive-keys.d.ts.map +1 -0
  865. package/dist/utils/sensitive-keys.js +67 -0
  866. package/dist/utils/sensitive-keys.js.map +1 -0
  867. package/dist/utils/shell-completion.d.ts +54 -0
  868. package/dist/utils/shell-completion.d.ts.map +1 -0
  869. package/dist/utils/shell-completion.js +260 -0
  870. package/dist/utils/shell-completion.js.map +1 -0
  871. package/dist/utils/shell-executor.d.ts +16 -0
  872. package/dist/utils/shell-executor.d.ts.map +1 -0
  873. package/dist/utils/shell-executor.js +73 -0
  874. package/dist/utils/shell-executor.js.map +1 -0
  875. package/dist/utils/time.d.ts +10 -0
  876. package/dist/utils/time.d.ts.map +1 -0
  877. package/dist/utils/time.js +27 -0
  878. package/dist/utils/time.js.map +1 -0
  879. package/dist/utils/ui/boxes.d.ts +24 -0
  880. package/dist/utils/ui/boxes.d.ts.map +1 -0
  881. package/dist/utils/ui/boxes.js +108 -0
  882. package/dist/utils/ui/boxes.js.map +1 -0
  883. package/dist/utils/ui/colors.d.ts +25 -0
  884. package/dist/utils/ui/colors.d.ts.map +1 -0
  885. package/dist/utils/ui/colors.js +70 -0
  886. package/dist/utils/ui/colors.js.map +1 -0
  887. package/dist/utils/ui/index.d.ts +51 -0
  888. package/dist/utils/ui/index.d.ts.map +1 -0
  889. package/dist/utils/ui/index.js +96 -0
  890. package/dist/utils/ui/index.js.map +1 -0
  891. package/dist/utils/ui/indicators.d.ts +23 -0
  892. package/dist/utils/ui/indicators.d.ts.map +1 -0
  893. package/dist/utils/ui/indicators.js +39 -0
  894. package/dist/utils/ui/indicators.js.map +1 -0
  895. package/dist/utils/ui/init.d.ts +30 -0
  896. package/dist/utils/ui/init.d.ts.map +1 -0
  897. package/dist/utils/ui/init.js +102 -0
  898. package/dist/utils/ui/init.js.map +1 -0
  899. package/dist/utils/ui/spinner.d.ts +13 -0
  900. package/dist/utils/ui/spinner.d.ts.map +1 -0
  901. package/dist/utils/ui/spinner.js +89 -0
  902. package/dist/utils/ui/spinner.js.map +1 -0
  903. package/dist/utils/ui/tables.d.ts +12 -0
  904. package/dist/utils/ui/tables.d.ts.map +1 -0
  905. package/dist/utils/ui/tables.js +69 -0
  906. package/dist/utils/ui/tables.js.map +1 -0
  907. package/dist/utils/ui/tasks.d.ts +26 -0
  908. package/dist/utils/ui/tasks.d.ts.map +1 -0
  909. package/dist/utils/ui/tasks.js +102 -0
  910. package/dist/utils/ui/tasks.js.map +1 -0
  911. package/dist/utils/ui/text.d.ts +24 -0
  912. package/dist/utils/ui/text.d.ts.map +1 -0
  913. package/dist/utils/ui/text.js +60 -0
  914. package/dist/utils/ui/text.js.map +1 -0
  915. package/dist/utils/ui/types.d.ts +36 -0
  916. package/dist/utils/ui/types.d.ts.map +1 -0
  917. package/dist/utils/ui/types.js +33 -0
  918. package/dist/utils/ui/types.js.map +1 -0
  919. package/dist/utils/ui.d.ts +17 -0
  920. package/dist/utils/ui.d.ts.map +1 -0
  921. package/dist/utils/ui.js +57 -0
  922. package/dist/utils/ui.js.map +1 -0
  923. package/dist/utils/update-checker.d.ts +71 -0
  924. package/dist/utils/update-checker.d.ts.map +1 -0
  925. package/dist/utils/update-checker.js +377 -0
  926. package/dist/utils/update-checker.js.map +1 -0
  927. package/dist/utils/version.d.ts +8 -0
  928. package/dist/utils/version.d.ts.map +1 -0
  929. package/dist/utils/version.js +51 -0
  930. package/dist/utils/version.js.map +1 -0
  931. package/dist/utils/websearch/gemini-cli.d.ts +36 -0
  932. package/dist/utils/websearch/gemini-cli.d.ts.map +1 -0
  933. package/dist/utils/websearch/gemini-cli.js +132 -0
  934. package/dist/utils/websearch/gemini-cli.js.map +1 -0
  935. package/dist/utils/websearch/grok-cli.d.ts +26 -0
  936. package/dist/utils/websearch/grok-cli.d.ts.map +1 -0
  937. package/dist/utils/websearch/grok-cli.js +81 -0
  938. package/dist/utils/websearch/grok-cli.js.map +1 -0
  939. package/dist/utils/websearch/hook-config.d.ts +27 -0
  940. package/dist/utils/websearch/hook-config.d.ts.map +1 -0
  941. package/dist/utils/websearch/hook-config.js +280 -0
  942. package/dist/utils/websearch/hook-config.js.map +1 -0
  943. package/dist/utils/websearch/hook-env.d.ts +16 -0
  944. package/dist/utils/websearch/hook-env.d.ts.map +1 -0
  945. package/dist/utils/websearch/hook-env.js +62 -0
  946. package/dist/utils/websearch/hook-env.js.map +1 -0
  947. package/dist/utils/websearch/hook-installer.d.ts +30 -0
  948. package/dist/utils/websearch/hook-installer.d.ts.map +1 -0
  949. package/dist/utils/websearch/hook-installer.js +148 -0
  950. package/dist/utils/websearch/hook-installer.js.map +1 -0
  951. package/dist/utils/websearch/hook-utils.d.ts +18 -0
  952. package/dist/utils/websearch/hook-utils.d.ts.map +1 -0
  953. package/dist/utils/websearch/hook-utils.js +59 -0
  954. package/dist/utils/websearch/hook-utils.js.map +1 -0
  955. package/dist/utils/websearch/index.d.ts +17 -0
  956. package/dist/utils/websearch/index.d.ts.map +1 -0
  957. package/dist/utils/websearch/index.js +51 -0
  958. package/dist/utils/websearch/index.js.map +1 -0
  959. package/dist/utils/websearch/opencode-cli.d.ts +26 -0
  960. package/dist/utils/websearch/opencode-cli.d.ts.map +1 -0
  961. package/dist/utils/websearch/opencode-cli.js +81 -0
  962. package/dist/utils/websearch/opencode-cli.js.map +1 -0
  963. package/dist/utils/websearch/profile-hook-injector.d.ts +20 -0
  964. package/dist/utils/websearch/profile-hook-injector.d.ts.map +1 -0
  965. package/dist/utils/websearch/profile-hook-injector.js +250 -0
  966. package/dist/utils/websearch/profile-hook-injector.js.map +1 -0
  967. package/dist/utils/websearch/status.d.ts +36 -0
  968. package/dist/utils/websearch/status.d.ts.map +1 -0
  969. package/dist/utils/websearch/status.js +192 -0
  970. package/dist/utils/websearch/status.js.map +1 -0
  971. package/dist/utils/websearch/types.d.ts +85 -0
  972. package/dist/utils/websearch/types.d.ts.map +1 -0
  973. package/dist/utils/websearch/types.js +10 -0
  974. package/dist/utils/websearch/types.js.map +1 -0
  975. package/dist/utils/websearch-manager.d.ts +31 -0
  976. package/dist/utils/websearch-manager.d.ts.map +1 -0
  977. package/dist/utils/websearch-manager.js +72 -0
  978. package/dist/utils/websearch-manager.js.map +1 -0
  979. package/dist/web-server/data-aggregator.d.ts +7 -0
  980. package/dist/web-server/data-aggregator.d.ts.map +1 -0
  981. package/dist/web-server/data-aggregator.js +23 -0
  982. package/dist/web-server/data-aggregator.js.map +1 -0
  983. package/dist/web-server/file-watcher.d.ts +15 -0
  984. package/dist/web-server/file-watcher.d.ts.map +1 -0
  985. package/dist/web-server/file-watcher.js +93 -0
  986. package/dist/web-server/file-watcher.js.map +1 -0
  987. package/dist/web-server/health/cliproxy-checks.d.ts +23 -0
  988. package/dist/web-server/health/cliproxy-checks.d.ts.map +1 -0
  989. package/dist/web-server/health/cliproxy-checks.js +171 -0
  990. package/dist/web-server/health/cliproxy-checks.js.map +1 -0
  991. package/dist/web-server/health/config-checks.d.ts +20 -0
  992. package/dist/web-server/health/config-checks.d.ts.map +1 -0
  993. package/dist/web-server/health/config-checks.js +212 -0
  994. package/dist/web-server/health/config-checks.js.map +1 -0
  995. package/dist/web-server/health/environment-checks.d.ts +11 -0
  996. package/dist/web-server/health/environment-checks.d.ts.map +1 -0
  997. package/dist/web-server/health/environment-checks.js +40 -0
  998. package/dist/web-server/health/environment-checks.js.map +1 -0
  999. package/dist/web-server/health/index.d.ts +13 -0
  1000. package/dist/web-server/health/index.d.ts.map +1 -0
  1001. package/dist/web-server/health/index.js +41 -0
  1002. package/dist/web-server/health/index.js.map +1 -0
  1003. package/dist/web-server/health/oauth-checks.d.ts +11 -0
  1004. package/dist/web-server/health/oauth-checks.d.ts.map +1 -0
  1005. package/dist/web-server/health/oauth-checks.js +34 -0
  1006. package/dist/web-server/health/oauth-checks.js.map +1 -0
  1007. package/dist/web-server/health/profile-checks.d.ts +20 -0
  1008. package/dist/web-server/health/profile-checks.d.ts.map +1 -0
  1009. package/dist/web-server/health/profile-checks.js +184 -0
  1010. package/dist/web-server/health/profile-checks.js.map +1 -0
  1011. package/dist/web-server/health/symlink-checks.d.ts +15 -0
  1012. package/dist/web-server/health/symlink-checks.d.ts.map +1 -0
  1013. package/dist/web-server/health/symlink-checks.js +173 -0
  1014. package/dist/web-server/health/symlink-checks.js.map +1 -0
  1015. package/dist/web-server/health/system-checks.d.ts +19 -0
  1016. package/dist/web-server/health/system-checks.d.ts.map +1 -0
  1017. package/dist/web-server/health/system-checks.js +127 -0
  1018. package/dist/web-server/health/system-checks.js.map +1 -0
  1019. package/dist/web-server/health/types.d.ts +34 -0
  1020. package/dist/web-server/health/types.d.ts.map +1 -0
  1021. package/dist/web-server/health/types.js +8 -0
  1022. package/dist/web-server/health/types.js.map +1 -0
  1023. package/dist/web-server/health/websearch-checks.d.ts +11 -0
  1024. package/dist/web-server/health/websearch-checks.d.ts.map +1 -0
  1025. package/dist/web-server/health/websearch-checks.js +53 -0
  1026. package/dist/web-server/health/websearch-checks.js.map +1 -0
  1027. package/dist/web-server/health-service.d.ts +20 -0
  1028. package/dist/web-server/health-service.d.ts.map +1 -0
  1029. package/dist/web-server/health-service.js +162 -0
  1030. package/dist/web-server/health-service.js.map +1 -0
  1031. package/dist/web-server/index.d.ts +25 -0
  1032. package/dist/web-server/index.d.ts.map +1 -0
  1033. package/dist/web-server/index.js +118 -0
  1034. package/dist/web-server/index.js.map +1 -0
  1035. package/dist/web-server/jsonl-parser.d.ts +68 -0
  1036. package/dist/web-server/jsonl-parser.d.ts.map +1 -0
  1037. package/dist/web-server/jsonl-parser.js +214 -0
  1038. package/dist/web-server/jsonl-parser.js.map +1 -0
  1039. package/dist/web-server/middleware/auth-middleware.d.ts +27 -0
  1040. package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -0
  1041. package/dist/web-server/middleware/auth-middleware.js +116 -0
  1042. package/dist/web-server/middleware/auth-middleware.js.map +1 -0
  1043. package/dist/web-server/model-pricing.d.ts +42 -0
  1044. package/dist/web-server/model-pricing.d.ts.map +1 -0
  1045. package/dist/web-server/model-pricing.js +669 -0
  1046. package/dist/web-server/model-pricing.js.map +1 -0
  1047. package/dist/web-server/overview-routes.d.ts +7 -0
  1048. package/dist/web-server/overview-routes.d.ts.map +1 -0
  1049. package/dist/web-server/overview-routes.js +75 -0
  1050. package/dist/web-server/overview-routes.js.map +1 -0
  1051. package/dist/web-server/routes/account-routes.d.ts +9 -0
  1052. package/dist/web-server/routes/account-routes.d.ts.map +1 -0
  1053. package/dist/web-server/routes/account-routes.js +274 -0
  1054. package/dist/web-server/routes/account-routes.js.map +1 -0
  1055. package/dist/web-server/routes/auth-routes.d.ts +7 -0
  1056. package/dist/web-server/routes/auth-routes.d.ts.map +1 -0
  1057. package/dist/web-server/routes/auth-routes.js +108 -0
  1058. package/dist/web-server/routes/auth-routes.js.map +1 -0
  1059. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +3 -0
  1060. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -0
  1061. package/dist/web-server/routes/cliproxy-auth-routes.js +610 -0
  1062. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -0
  1063. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +6 -0
  1064. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -0
  1065. package/dist/web-server/routes/cliproxy-stats-routes.js +681 -0
  1066. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -0
  1067. package/dist/web-server/routes/cliproxy-sync-routes.d.ts +6 -0
  1068. package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -0
  1069. package/dist/web-server/routes/cliproxy-sync-routes.js +157 -0
  1070. package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -0
  1071. package/dist/web-server/routes/config-routes.d.ts +6 -0
  1072. package/dist/web-server/routes/config-routes.d.ts.map +1 -0
  1073. package/dist/web-server/routes/config-routes.js +130 -0
  1074. package/dist/web-server/routes/config-routes.js.map +1 -0
  1075. package/dist/web-server/routes/copilot-routes.d.ts +6 -0
  1076. package/dist/web-server/routes/copilot-routes.d.ts.map +1 -0
  1077. package/dist/web-server/routes/copilot-routes.js +195 -0
  1078. package/dist/web-server/routes/copilot-routes.js.map +1 -0
  1079. package/dist/web-server/routes/copilot-settings-routes.d.ts +6 -0
  1080. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -0
  1081. package/dist/web-server/routes/copilot-settings-routes.js +122 -0
  1082. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -0
  1083. package/dist/web-server/routes/health-routes.d.ts +6 -0
  1084. package/dist/web-server/routes/health-routes.d.ts.map +1 -0
  1085. package/dist/web-server/routes/health-routes.js +40 -0
  1086. package/dist/web-server/routes/health-routes.js.map +1 -0
  1087. package/dist/web-server/routes/index.d.ts +8 -0
  1088. package/dist/web-server/routes/index.d.ts.map +1 -0
  1089. package/dist/web-server/routes/index.js +62 -0
  1090. package/dist/web-server/routes/index.js.map +1 -0
  1091. package/dist/web-server/routes/misc-routes.d.ts +6 -0
  1092. package/dist/web-server/routes/misc-routes.d.ts.map +1 -0
  1093. package/dist/web-server/routes/misc-routes.js +396 -0
  1094. package/dist/web-server/routes/misc-routes.js.map +1 -0
  1095. package/dist/web-server/routes/persist-routes.d.ts +6 -0
  1096. package/dist/web-server/routes/persist-routes.d.ts.map +1 -0
  1097. package/dist/web-server/routes/persist-routes.js +286 -0
  1098. package/dist/web-server/routes/persist-routes.js.map +1 -0
  1099. package/dist/web-server/routes/profile-routes.d.ts +9 -0
  1100. package/dist/web-server/routes/profile-routes.d.ts.map +1 -0
  1101. package/dist/web-server/routes/profile-routes.js +116 -0
  1102. package/dist/web-server/routes/profile-routes.js.map +1 -0
  1103. package/dist/web-server/routes/provider-routes.d.ts +6 -0
  1104. package/dist/web-server/routes/provider-routes.d.ts.map +1 -0
  1105. package/dist/web-server/routes/provider-routes.js +146 -0
  1106. package/dist/web-server/routes/provider-routes.js.map +1 -0
  1107. package/dist/web-server/routes/proxy-routes.d.ts +11 -0
  1108. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -0
  1109. package/dist/web-server/routes/proxy-routes.js +154 -0
  1110. package/dist/web-server/routes/proxy-routes.js.map +1 -0
  1111. package/dist/web-server/routes/route-helpers.d.ts +50 -0
  1112. package/dist/web-server/routes/route-helpers.d.ts.map +1 -0
  1113. package/dist/web-server/routes/route-helpers.js +179 -0
  1114. package/dist/web-server/routes/route-helpers.js.map +1 -0
  1115. package/dist/web-server/routes/settings-routes.d.ts +6 -0
  1116. package/dist/web-server/routes/settings-routes.d.ts.map +1 -0
  1117. package/dist/web-server/routes/settings-routes.js +413 -0
  1118. package/dist/web-server/routes/settings-routes.js.map +1 -0
  1119. package/dist/web-server/routes/variant-routes.d.ts +8 -0
  1120. package/dist/web-server/routes/variant-routes.d.ts.map +1 -0
  1121. package/dist/web-server/routes/variant-routes.js +119 -0
  1122. package/dist/web-server/routes/variant-routes.js.map +1 -0
  1123. package/dist/web-server/routes/websearch-routes.d.ts +6 -0
  1124. package/dist/web-server/routes/websearch-routes.d.ts.map +1 -0
  1125. package/dist/web-server/routes/websearch-routes.js +130 -0
  1126. package/dist/web-server/routes/websearch-routes.js.map +1 -0
  1127. package/dist/web-server/services/index.d.ts +7 -0
  1128. package/dist/web-server/services/index.d.ts.map +1 -0
  1129. package/dist/web-server/services/index.js +21 -0
  1130. package/dist/web-server/services/index.js.map +1 -0
  1131. package/dist/web-server/services/usage-aggregator.d.ts +7 -0
  1132. package/dist/web-server/services/usage-aggregator.d.ts.map +1 -0
  1133. package/dist/web-server/services/usage-aggregator.js +23 -0
  1134. package/dist/web-server/services/usage-aggregator.js.map +1 -0
  1135. package/dist/web-server/shared-routes.d.ts +7 -0
  1136. package/dist/web-server/shared-routes.d.ts.map +1 -0
  1137. package/dist/web-server/shared-routes.js +168 -0
  1138. package/dist/web-server/shared-routes.js.map +1 -0
  1139. package/dist/web-server/shutdown.d.ts +14 -0
  1140. package/dist/web-server/shutdown.d.ts.map +1 -0
  1141. package/dist/web-server/shutdown.js +29 -0
  1142. package/dist/web-server/shutdown.js.map +1 -0
  1143. package/dist/web-server/usage/aggregator.d.ts +54 -0
  1144. package/dist/web-server/usage/aggregator.d.ts.map +1 -0
  1145. package/dist/web-server/usage/aggregator.js +470 -0
  1146. package/dist/web-server/usage/aggregator.js.map +1 -0
  1147. package/dist/web-server/usage/data-aggregator.d.ts +55 -0
  1148. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -0
  1149. package/dist/web-server/usage/data-aggregator.js +391 -0
  1150. package/dist/web-server/usage/data-aggregator.js.map +1 -0
  1151. package/dist/web-server/usage/disk-cache.d.ts +46 -0
  1152. package/dist/web-server/usage/disk-cache.d.ts.map +1 -0
  1153. package/dist/web-server/usage/disk-cache.js +162 -0
  1154. package/dist/web-server/usage/disk-cache.js.map +1 -0
  1155. package/dist/web-server/usage/handlers.d.ts +50 -0
  1156. package/dist/web-server/usage/handlers.d.ts.map +1 -0
  1157. package/dist/web-server/usage/handlers.js +524 -0
  1158. package/dist/web-server/usage/handlers.js.map +1 -0
  1159. package/dist/web-server/usage/index.d.ts +12 -0
  1160. package/dist/web-server/usage/index.d.ts.map +1 -0
  1161. package/dist/web-server/usage/index.js +54 -0
  1162. package/dist/web-server/usage/index.js.map +1 -0
  1163. package/dist/web-server/usage/routes.d.ts +11 -0
  1164. package/dist/web-server/usage/routes.d.ts.map +1 -0
  1165. package/dist/web-server/usage/routes.js +37 -0
  1166. package/dist/web-server/usage/routes.js.map +1 -0
  1167. package/dist/web-server/usage/types.d.ts +119 -0
  1168. package/dist/web-server/usage/types.d.ts.map +1 -0
  1169. package/dist/web-server/usage/types.js +9 -0
  1170. package/dist/web-server/usage/types.js.map +1 -0
  1171. package/dist/web-server/usage-disk-cache.d.ts +7 -0
  1172. package/dist/web-server/usage-disk-cache.d.ts.map +1 -0
  1173. package/dist/web-server/usage-disk-cache.js +23 -0
  1174. package/dist/web-server/usage-disk-cache.js.map +1 -0
  1175. package/dist/web-server/usage-routes.d.ts +7 -0
  1176. package/dist/web-server/usage-routes.d.ts.map +1 -0
  1177. package/dist/web-server/usage-routes.js +14 -0
  1178. package/dist/web-server/usage-routes.js.map +1 -0
  1179. package/dist/web-server/usage-types.d.ts +7 -0
  1180. package/dist/web-server/usage-types.d.ts.map +1 -0
  1181. package/dist/web-server/usage-types.js +23 -0
  1182. package/dist/web-server/usage-types.js.map +1 -0
  1183. package/dist/web-server/websocket.d.ts +15 -0
  1184. package/dist/web-server/websocket.d.ts.map +1 -0
  1185. package/dist/web-server/websocket.js +162 -0
  1186. package/dist/web-server/websocket.js.map +1 -0
  1187. package/lib/ccs +32 -0
  1188. package/lib/ccs.ps1 +39 -0
  1189. package/lib/error-codes.ps1 +56 -0
  1190. package/lib/error-codes.sh +63 -0
  1191. package/lib/hooks/block-websearch.cjs +75 -0
  1192. package/lib/hooks/image-analyzer-transformer.cjs +880 -0
  1193. package/lib/hooks/websearch-transformer.cjs +632 -0
  1194. package/lib/progress-indicator.ps1 +120 -0
  1195. package/lib/progress-indicator.sh +117 -0
  1196. package/lib/prompt.ps1 +109 -0
  1197. package/lib/prompt.sh +99 -0
  1198. package/lib/prompts/image-analysis-default.txt +12 -0
  1199. package/lib/prompts/image-analysis-document.txt +13 -0
  1200. package/lib/prompts/image-analysis-screenshot.txt +13 -0
  1201. package/package.json +133 -0
  1202. package/scripts/add-shebang.js +39 -0
  1203. package/scripts/bump-version.sh +153 -0
  1204. package/scripts/check-executables.js +18 -0
  1205. package/scripts/clean-dist.js +46 -0
  1206. package/scripts/code-reviewer.ts +217 -0
  1207. package/scripts/completion/README.md +308 -0
  1208. package/scripts/completion/ccs.bash +176 -0
  1209. package/scripts/completion/ccs.fish +248 -0
  1210. package/scripts/completion/ccs.ps1 +394 -0
  1211. package/scripts/completion/ccs.zsh +308 -0
  1212. package/scripts/dev-install.sh +108 -0
  1213. package/scripts/dev-release.sh +123 -0
  1214. package/scripts/dev-symlink.sh +115 -0
  1215. package/scripts/get-version.sh +16 -0
  1216. package/scripts/postinstall.js +358 -0
  1217. package/scripts/postuninstall.js +48 -0
  1218. package/scripts/pre-release.sh +39 -0
  1219. package/scripts/preinstall.js +59 -0
  1220. package/scripts/send-discord-release.cjs +249 -0
  1221. package/scripts/verify-bundle.js +56 -0
  1222. package/scripts/worker.js +26 -0
  1223. package/scripts/wrangler.toml +15 -0
@@ -0,0 +1,1099 @@
1
+ "use strict";
2
+ /**
3
+ * CLIProxy Command Handler
4
+ *
5
+ * Manages CLIProxyAPI binary installation and profile variants.
6
+ *
7
+ * Binary commands:
8
+ * ccs cliproxy Show current version
9
+ * ccs cliproxy --install <ver> Install specific version
10
+ * ccs cliproxy --latest Install latest version
11
+ *
12
+ * Profile commands:
13
+ * ccs cliproxy create <name> Create CLIProxy variant profile
14
+ * ccs cliproxy list List all CLIProxy variant profiles
15
+ * ccs cliproxy remove <name> Remove CLIProxy variant profile
16
+ *
17
+ * Supports dual-mode configuration:
18
+ * - Unified YAML format (config.yaml) when CCS_UNIFIED_CONFIG=1 or config.yaml exists
19
+ * - Legacy JSON format (config.json) as fallback
20
+ */
21
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ var desc = Object.getOwnPropertyDescriptor(m, k);
24
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
25
+ desc = { enumerable: true, get: function() { return m[k]; } };
26
+ }
27
+ Object.defineProperty(o, k2, desc);
28
+ }) : (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ o[k2] = m[k];
31
+ }));
32
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
33
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
34
+ }) : function(o, v) {
35
+ o["default"] = v;
36
+ });
37
+ var __importStar = (this && this.__importStar) || function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.handleCliproxyCommand = void 0;
46
+ const path = __importStar(require("path"));
47
+ const auth_handler_1 = require("../cliproxy/auth-handler");
48
+ const account_manager_1 = require("../cliproxy/account-manager");
49
+ const quota_fetcher_1 = require("../cliproxy/quota-fetcher");
50
+ const quota_fetcher_codex_1 = require("../cliproxy/quota-fetcher-codex");
51
+ const quota_fetcher_gemini_cli_1 = require("../cliproxy/quota-fetcher-gemini-cli");
52
+ const quota_manager_1 = require("../cliproxy/quota-manager");
53
+ const platform_detector_1 = require("../cliproxy/platform-detector");
54
+ const profile_detector_1 = require("../auth/profile-detector");
55
+ const model_catalog_1 = require("../cliproxy/model-catalog");
56
+ const unified_config_loader_1 = require("../config/unified-config-loader");
57
+ const ui_1 = require("../utils/ui");
58
+ const prompt_1 = require("../utils/prompt");
59
+ // Import services
60
+ const services_1 = require("../cliproxy/services");
61
+ // Import sync handler
62
+ const cliproxy_sync_handler_1 = require("./cliproxy-sync-handler");
63
+ // ============================================================================
64
+ // ARGUMENT PARSING
65
+ // ============================================================================
66
+ /**
67
+ * Parse --provider flag from args for quota command
68
+ * Returns the provider filter value and remaining args
69
+ * Accepts: agy, codex, gemini, gemini-cli, all
70
+ */
71
+ function parseProviderArg(args) {
72
+ const providerIdx = args.indexOf('--provider');
73
+ if (providerIdx === -1) {
74
+ // Also check for --provider=value format
75
+ const providerEqualsIdx = args.findIndex((a) => a.startsWith('--provider='));
76
+ if (providerEqualsIdx !== -1) {
77
+ const value = args[providerEqualsIdx].split('=')[1]?.toLowerCase() || '';
78
+ const remainingArgs = [...args];
79
+ remainingArgs.splice(providerEqualsIdx, 1);
80
+ // Handle empty value
81
+ if (!value) {
82
+ console.error((0, ui_1.warn)('--provider requires a value. Valid options: agy, codex, gemini, gemini-cli, all'));
83
+ return { provider: 'all', remainingArgs };
84
+ }
85
+ // Normalize gemini-cli to gemini
86
+ const normalized = value === 'gemini-cli' ? 'gemini' : value;
87
+ if (normalized !== 'agy' &&
88
+ normalized !== 'codex' &&
89
+ normalized !== 'gemini' &&
90
+ normalized !== 'all') {
91
+ console.error((0, ui_1.warn)(`Invalid provider '${value}'. Valid options: agy, codex, gemini, gemini-cli, all`));
92
+ return { provider: 'all', remainingArgs };
93
+ }
94
+ return { provider: normalized, remainingArgs };
95
+ }
96
+ return { provider: 'all', remainingArgs: args };
97
+ }
98
+ const value = args[providerIdx + 1]?.toLowerCase() || 'all';
99
+ const remainingArgs = [...args];
100
+ remainingArgs.splice(providerIdx, 2);
101
+ // Normalize gemini-cli to gemini
102
+ const normalized = value === 'gemini-cli' ? 'gemini' : value;
103
+ if (normalized !== 'agy' &&
104
+ normalized !== 'codex' &&
105
+ normalized !== 'gemini' &&
106
+ normalized !== 'all') {
107
+ console.error((0, ui_1.warn)(`Invalid provider '${value}'. Valid options: agy, codex, gemini, gemini-cli, all`));
108
+ return { provider: 'all', remainingArgs };
109
+ }
110
+ return { provider: normalized, remainingArgs };
111
+ }
112
+ /**
113
+ * Parse --backend flag from args
114
+ * Returns the backend value and remaining args without --backend flag
115
+ */
116
+ function parseBackendArg(args) {
117
+ const backendIdx = args.indexOf('--backend');
118
+ if (backendIdx === -1) {
119
+ // Also check for --backend=value format
120
+ const backendEqualsIdx = args.findIndex((a) => a.startsWith('--backend='));
121
+ if (backendEqualsIdx !== -1) {
122
+ const value = args[backendEqualsIdx].split('=')[1];
123
+ if (value !== 'original' && value !== 'plus') {
124
+ (0, ui_1.warn)(`Invalid backend '${value}'. Valid options: original, plus`);
125
+ return { backend: undefined, remainingArgs: args };
126
+ }
127
+ const remainingArgs = [...args];
128
+ remainingArgs.splice(backendEqualsIdx, 1);
129
+ return { backend: value, remainingArgs };
130
+ }
131
+ return { backend: undefined, remainingArgs: args };
132
+ }
133
+ const value = args[backendIdx + 1];
134
+ if (value !== 'original' && value !== 'plus') {
135
+ (0, ui_1.warn)(`Invalid backend '${value}'. Valid options: original, plus`);
136
+ return { backend: undefined, remainingArgs: args };
137
+ }
138
+ const remainingArgs = [...args];
139
+ remainingArgs.splice(backendIdx, 2);
140
+ return { backend: value, remainingArgs };
141
+ }
142
+ /**
143
+ * Get effective backend (CLI flag > config.yaml > default)
144
+ */
145
+ function getEffectiveBackend(cliBackend) {
146
+ if (cliBackend)
147
+ return cliBackend;
148
+ const config = (0, unified_config_loader_1.loadOrCreateUnifiedConfig)();
149
+ return config.cliproxy?.backend ?? platform_detector_1.DEFAULT_BACKEND;
150
+ }
151
+ /**
152
+ * Get display label for backend
153
+ */
154
+ function getBackendLabel(backend) {
155
+ return backend === 'plus' ? 'CLIProxy Plus' : 'CLIProxy';
156
+ }
157
+ function parseProfileArgs(args) {
158
+ const result = {};
159
+ for (let i = 0; i < args.length; i++) {
160
+ const arg = args[i];
161
+ if (arg === '--provider' && args[i + 1]) {
162
+ result.provider = args[++i];
163
+ }
164
+ else if (arg === '--model' && args[i + 1]) {
165
+ result.model = args[++i];
166
+ }
167
+ else if (arg === '--account' && args[i + 1]) {
168
+ result.account = args[++i];
169
+ }
170
+ else if (arg === '--force') {
171
+ result.force = true;
172
+ }
173
+ else if (arg === '--yes' || arg === '-y') {
174
+ result.yes = true;
175
+ }
176
+ else if (!arg.startsWith('-') && !result.name) {
177
+ result.name = arg;
178
+ }
179
+ }
180
+ return result;
181
+ }
182
+ function formatModelOption(model) {
183
+ const tierBadge = model.tier === 'ultra'
184
+ ? (0, ui_1.color)(' [Ultra]', 'warning')
185
+ : model.tier === 'pro'
186
+ ? (0, ui_1.color)(' [Pro]', 'warning')
187
+ : '';
188
+ return `${model.name}${tierBadge}`;
189
+ }
190
+ // ============================================================================
191
+ // COMMAND HANDLERS
192
+ // ============================================================================
193
+ async function handleCreate(args) {
194
+ await (0, ui_1.initUI)();
195
+ const { backend } = parseBackendArg(args);
196
+ const effectiveBackend = getEffectiveBackend(backend);
197
+ const parsedArgs = parseProfileArgs(args);
198
+ console.log((0, ui_1.header)(`Create ${getBackendLabel(effectiveBackend)} Variant`));
199
+ console.log('');
200
+ // Step 1: Profile name
201
+ let name = parsedArgs.name;
202
+ if (!name) {
203
+ name = await prompt_1.InteractivePrompt.input('Variant name (e.g., g3, flash, pro)', {
204
+ validate: services_1.validateProfileName,
205
+ });
206
+ }
207
+ else {
208
+ const error = (0, services_1.validateProfileName)(name);
209
+ if (error) {
210
+ console.log((0, ui_1.fail)(error));
211
+ process.exit(1);
212
+ }
213
+ }
214
+ if ((0, services_1.variantExists)(name) && !parsedArgs.force) {
215
+ console.log((0, ui_1.fail)(`Variant '${name}' already exists`));
216
+ console.log(` Use ${(0, ui_1.color)('--force', 'command')} to overwrite`);
217
+ process.exit(1);
218
+ }
219
+ // Step 2: Provider selection
220
+ let provider = parsedArgs.provider;
221
+ if (!provider) {
222
+ const providerOptions = profile_detector_1.CLIPROXY_PROFILES.map((p) => ({
223
+ id: p,
224
+ label: p.charAt(0).toUpperCase() + p.slice(1),
225
+ }));
226
+ provider = (await prompt_1.InteractivePrompt.selectFromList('Select provider:', providerOptions));
227
+ }
228
+ else if (!profile_detector_1.CLIPROXY_PROFILES.includes(provider)) {
229
+ console.log((0, ui_1.fail)(`Invalid provider: ${provider}`));
230
+ console.log(` Available: ${profile_detector_1.CLIPROXY_PROFILES.join(', ')}`);
231
+ process.exit(1);
232
+ }
233
+ // Step 2.5: Account selection
234
+ let account = parsedArgs.account;
235
+ const providerAccounts = (0, account_manager_1.getProviderAccounts)(provider);
236
+ if (!account) {
237
+ if (providerAccounts.length === 0) {
238
+ console.log('');
239
+ console.log((0, ui_1.warn)(`No accounts authenticated for ${provider}`));
240
+ console.log('');
241
+ const shouldAuth = await prompt_1.InteractivePrompt.confirm(`Authenticate with ${provider} now?`, {
242
+ default: true,
243
+ });
244
+ if (!shouldAuth) {
245
+ console.log('');
246
+ console.log((0, ui_1.info)('Run authentication first:'));
247
+ console.log(` ${(0, ui_1.color)(`ccs ${provider} --auth`, 'command')}`);
248
+ process.exit(0);
249
+ }
250
+ console.log('');
251
+ const newAccount = await (0, auth_handler_1.triggerOAuth)(provider, {
252
+ add: true,
253
+ verbose: args.includes('--verbose'),
254
+ });
255
+ if (!newAccount) {
256
+ console.log((0, ui_1.fail)('Authentication failed'));
257
+ process.exit(1);
258
+ }
259
+ account = newAccount.id;
260
+ console.log('');
261
+ console.log((0, ui_1.ok)(`Authenticated as ${newAccount.email || newAccount.id}`));
262
+ }
263
+ else if (providerAccounts.length === 1) {
264
+ account = providerAccounts[0].id;
265
+ }
266
+ else {
267
+ const ADD_NEW_ID = '__add_new__';
268
+ const accountOptions = [
269
+ ...providerAccounts.map((acc) => ({
270
+ id: acc.id,
271
+ label: `${acc.email || acc.id}${acc.isDefault ? ' (default)' : ''}`,
272
+ })),
273
+ { id: ADD_NEW_ID, label: (0, ui_1.color)('[+ Add new account...]', 'info') },
274
+ ];
275
+ const defaultIdx = providerAccounts.findIndex((a) => a.isDefault);
276
+ const selectedAccount = await prompt_1.InteractivePrompt.selectFromList('Select account:', accountOptions, { defaultIndex: defaultIdx >= 0 ? defaultIdx : 0 });
277
+ if (selectedAccount === ADD_NEW_ID) {
278
+ console.log('');
279
+ const newAccount = await (0, auth_handler_1.triggerOAuth)(provider, {
280
+ add: true,
281
+ verbose: args.includes('--verbose'),
282
+ });
283
+ if (!newAccount) {
284
+ console.log((0, ui_1.fail)('Authentication failed'));
285
+ process.exit(1);
286
+ }
287
+ account = newAccount.id;
288
+ console.log('');
289
+ console.log((0, ui_1.ok)(`Authenticated as ${newAccount.email || newAccount.id}`));
290
+ }
291
+ else {
292
+ account = selectedAccount;
293
+ }
294
+ }
295
+ }
296
+ else {
297
+ const exists = providerAccounts.find((a) => a.id === account);
298
+ if (!exists) {
299
+ console.log((0, ui_1.fail)(`Account '${account}' not found for ${provider}`));
300
+ console.log('');
301
+ console.log('Available accounts:');
302
+ providerAccounts.forEach((a) => console.log(` - ${a.email || a.id}${a.isDefault ? ' (default)' : ''}`));
303
+ process.exit(1);
304
+ }
305
+ }
306
+ // Step 3: Model selection
307
+ let model = parsedArgs.model;
308
+ if (!model) {
309
+ if ((0, model_catalog_1.supportsModelConfig)(provider)) {
310
+ const catalog = (0, model_catalog_1.getProviderCatalog)(provider);
311
+ if (catalog) {
312
+ const modelOptions = catalog.models.map((m) => ({ id: m.id, label: formatModelOption(m) }));
313
+ const defaultIdx = catalog.models.findIndex((m) => m.id === catalog.defaultModel);
314
+ model = await prompt_1.InteractivePrompt.selectFromList('Select model:', modelOptions, {
315
+ defaultIndex: defaultIdx >= 0 ? defaultIdx : 0,
316
+ });
317
+ }
318
+ }
319
+ if (!model) {
320
+ model = await prompt_1.InteractivePrompt.input('Model name', {
321
+ validate: (val) => (val ? null : 'Model is required'),
322
+ });
323
+ }
324
+ }
325
+ // Create variant
326
+ console.log('');
327
+ console.log((0, ui_1.info)(`Creating ${getBackendLabel(effectiveBackend)} variant...`));
328
+ const result = (0, services_1.createVariant)(name, provider, model, account);
329
+ if (!result.success) {
330
+ console.log((0, ui_1.fail)(`Failed to create variant: ${result.error}`));
331
+ process.exit(1);
332
+ }
333
+ console.log('');
334
+ const configType = (0, unified_config_loader_1.isUnifiedMode)()
335
+ ? 'CLIProxy Variant Created (Unified Config)'
336
+ : 'CLIProxy Variant Created';
337
+ const settingsDisplay = (0, unified_config_loader_1.isUnifiedMode)()
338
+ ? '~/.ccs/config.yaml'
339
+ : `~/.ccs/${path.basename(result.settingsPath || '')}`;
340
+ const portInfo = result.variant?.port ? `Port: ${result.variant.port}\n` : '';
341
+ console.log((0, ui_1.infoBox)(`Variant: ${name}\nProvider: ${provider}\nModel: ${model}\n${portInfo}${account ? `Account: ${account}\n` : ''}${(0, unified_config_loader_1.isUnifiedMode)() ? 'Config' : 'Settings'}: ${settingsDisplay}`, configType));
342
+ console.log('');
343
+ console.log((0, ui_1.header)('Usage'));
344
+ console.log(` ${(0, ui_1.color)(`ccs ${name} "your prompt"`, 'command')}`);
345
+ console.log('');
346
+ console.log((0, ui_1.dim)('To change model later:'));
347
+ console.log(` ${(0, ui_1.color)(`ccs ${name} --config`, 'command')}`);
348
+ console.log('');
349
+ }
350
+ async function handleList() {
351
+ await (0, ui_1.initUI)();
352
+ console.log((0, ui_1.header)('CLIProxy Profiles'));
353
+ console.log('');
354
+ // Built-in profiles
355
+ console.log((0, ui_1.subheader)('Built-in Profiles'));
356
+ const authStatuses = (0, auth_handler_1.getAllAuthStatus)();
357
+ for (const status of authStatuses) {
358
+ const oauthConfig = (0, auth_handler_1.getOAuthConfig)(status.provider);
359
+ const icon = status.authenticated ? (0, ui_1.ok)('') : (0, ui_1.warn)('');
360
+ const authLabel = status.authenticated
361
+ ? (0, ui_1.color)('authenticated', 'success')
362
+ : (0, ui_1.dim)('not authenticated');
363
+ const lastAuthStr = status.lastAuth ? (0, ui_1.dim)(` (${status.lastAuth.toLocaleDateString()})`) : '';
364
+ console.log(` ${icon} ${(0, ui_1.color)(status.provider, 'command').padEnd(18)} ${oauthConfig.displayName.padEnd(16)} ${authLabel}${lastAuthStr}`);
365
+ }
366
+ console.log('');
367
+ console.log((0, ui_1.dim)(' To authenticate: ccs <provider> --auth'));
368
+ console.log((0, ui_1.dim)(' To logout: ccs <provider> --logout'));
369
+ console.log('');
370
+ // Custom variants
371
+ const variants = (0, services_1.listVariants)();
372
+ const variantNames = Object.keys(variants);
373
+ if (variantNames.length > 0) {
374
+ console.log((0, ui_1.subheader)('Custom Variants'));
375
+ const rows = variantNames.map((name) => {
376
+ const variant = variants[name];
377
+ const portStr = variant.port ? String(variant.port) : '-';
378
+ return [name, variant.provider, portStr, variant.settings || '-'];
379
+ });
380
+ console.log((0, ui_1.table)(rows, { head: ['Variant', 'Provider', 'Port', 'Settings'], colWidths: [15, 12, 8, 30] }));
381
+ console.log('');
382
+ console.log((0, ui_1.dim)(`Total: ${variantNames.length} custom variant(s)`));
383
+ console.log('');
384
+ }
385
+ console.log((0, ui_1.dim)('To create a custom variant:'));
386
+ console.log(` ${(0, ui_1.color)('ccs cliproxy create', 'command')}`);
387
+ console.log('');
388
+ }
389
+ async function handleRemove(args) {
390
+ await (0, ui_1.initUI)();
391
+ const parsedArgs = parseProfileArgs(args);
392
+ const variants = (0, services_1.listVariants)();
393
+ const variantNames = Object.keys(variants);
394
+ if (variantNames.length === 0) {
395
+ console.log((0, ui_1.warn)('No CLIProxy variants to remove'));
396
+ process.exit(0);
397
+ }
398
+ let name = parsedArgs.name;
399
+ if (!name) {
400
+ console.log((0, ui_1.header)('Remove CLIProxy Variant'));
401
+ console.log('');
402
+ console.log('Available variants:');
403
+ variantNames.forEach((n, i) => console.log(` ${i + 1}. ${n} (${variants[n].provider})`));
404
+ console.log('');
405
+ name = await prompt_1.InteractivePrompt.input('Variant name to remove', {
406
+ validate: (val) => {
407
+ if (!val)
408
+ return 'Variant name is required';
409
+ if (!variantNames.includes(val))
410
+ return `Variant '${val}' not found`;
411
+ return null;
412
+ },
413
+ });
414
+ }
415
+ if (!variantNames.includes(name)) {
416
+ console.log((0, ui_1.fail)(`Variant '${name}' not found`));
417
+ console.log('');
418
+ console.log('Available variants:');
419
+ variantNames.forEach((n) => console.log(` - ${n}`));
420
+ process.exit(1);
421
+ }
422
+ const variant = variants[name];
423
+ console.log('');
424
+ console.log(`Variant '${(0, ui_1.color)(name, 'command')}' will be removed.`);
425
+ console.log(` Provider: ${variant.provider}`);
426
+ if (variant.port) {
427
+ console.log(` Port: ${variant.port}`);
428
+ }
429
+ console.log(` Settings: ${variant.settings || '-'}`);
430
+ console.log('');
431
+ const confirmed = parsedArgs.yes || (await prompt_1.InteractivePrompt.confirm('Delete this variant?', { default: false }));
432
+ if (!confirmed) {
433
+ console.log((0, ui_1.info)('Cancelled'));
434
+ process.exit(0);
435
+ }
436
+ const result = (0, services_1.removeVariant)(name);
437
+ if (!result.success) {
438
+ console.log((0, ui_1.fail)(`Failed to remove variant: ${result.error}`));
439
+ process.exit(1);
440
+ }
441
+ console.log((0, ui_1.ok)(`Variant removed: ${name}`));
442
+ console.log('');
443
+ }
444
+ async function handleStop() {
445
+ await (0, ui_1.initUI)();
446
+ console.log((0, ui_1.header)('Stop CLIProxy'));
447
+ console.log('');
448
+ const result = await (0, services_1.stopProxy)();
449
+ if (result.stopped) {
450
+ console.log((0, ui_1.ok)(`CLIProxy stopped (PID ${result.pid})`));
451
+ if (result.sessionCount && result.sessionCount > 0) {
452
+ console.log((0, ui_1.info)(`${result.sessionCount} active session(s) were disconnected`));
453
+ }
454
+ }
455
+ else {
456
+ console.log((0, ui_1.warn)(result.error || 'Failed to stop CLIProxy'));
457
+ }
458
+ console.log('');
459
+ }
460
+ async function handleProxyStatus() {
461
+ await (0, ui_1.initUI)();
462
+ console.log((0, ui_1.header)('CLIProxy Status'));
463
+ console.log('');
464
+ const status = (0, services_1.getProxyStatus)();
465
+ if (status.running) {
466
+ console.log(` Status: ${(0, ui_1.color)('Running', 'success')}`);
467
+ console.log(` PID: ${status.pid}`);
468
+ console.log(` Port: ${status.port}`);
469
+ console.log(` Sessions: ${status.sessionCount || 0} active`);
470
+ if (status.startedAt) {
471
+ console.log(` Started: ${new Date(status.startedAt).toLocaleString()}`);
472
+ }
473
+ console.log('');
474
+ console.log((0, ui_1.dim)('To stop: ccs cliproxy stop'));
475
+ }
476
+ else {
477
+ console.log(` Status: ${(0, ui_1.color)('Not running', 'warning')}`);
478
+ console.log('');
479
+ console.log((0, ui_1.dim)('CLIProxy starts automatically when you run ccs gemini, codex, etc.'));
480
+ }
481
+ console.log('');
482
+ }
483
+ async function showStatus(verbose, backend) {
484
+ await (0, ui_1.initUI)();
485
+ const status = (0, services_1.getBinaryStatus)(backend);
486
+ console.log('');
487
+ const backendLabel = getBackendLabel(backend);
488
+ console.log((0, ui_1.color)(`${backendLabel} Status`, 'primary'));
489
+ console.log('');
490
+ console.log(` Backend: ${(0, ui_1.color)(backend, 'info')}${backend === platform_detector_1.DEFAULT_BACKEND ? (0, ui_1.dim)(' (default)') : ''}`);
491
+ if (status.installed) {
492
+ console.log(` Installed: ${(0, ui_1.color)('Yes', 'success')}`);
493
+ const versionLabel = status.pinnedVersion
494
+ ? `${(0, ui_1.color)(`v${status.currentVersion}`, 'info')} ${(0, ui_1.color)('(pinned)', 'warning')}`
495
+ : (0, ui_1.color)(`v${status.currentVersion}`, 'info');
496
+ console.log(` Version: ${versionLabel}`);
497
+ console.log(` Binary: ${(0, ui_1.dim)(status.binaryPath)}`);
498
+ }
499
+ else {
500
+ console.log(` Installed: ${(0, ui_1.color)('No', 'error')}`);
501
+ console.log(` Fallback: ${(0, ui_1.color)(`v${status.fallbackVersion}`, 'info')}`);
502
+ console.log(` ${(0, ui_1.dim)('Run "ccs gemini" or any provider to auto-install')}`);
503
+ }
504
+ const latestCheck = await (0, services_1.checkLatestVersion)();
505
+ if (latestCheck.success && latestCheck.latestVersion) {
506
+ console.log('');
507
+ if (latestCheck.updateAvailable) {
508
+ if (status.pinnedVersion) {
509
+ console.log(` Latest: ${(0, ui_1.color)(`v${latestCheck.latestVersion}`, 'success')} ${(0, ui_1.dim)('(pinned to v' + status.pinnedVersion + ')')}`);
510
+ console.log('');
511
+ console.log(` ${(0, ui_1.dim)('Run "ccs cliproxy --update" to unpin and update')}`);
512
+ }
513
+ else {
514
+ console.log(` Latest: ${(0, ui_1.color)(`v${latestCheck.latestVersion}`, 'success')} ${(0, ui_1.dim)('(update available)')}`);
515
+ console.log('');
516
+ console.log(` ${(0, ui_1.dim)('Run "ccs cliproxy --latest" to update')}`);
517
+ }
518
+ }
519
+ else {
520
+ console.log(` Latest: ${(0, ui_1.color)(`v${latestCheck.latestVersion}`, 'success')} ${(0, ui_1.dim)('(up to date)')}`);
521
+ }
522
+ }
523
+ else if (verbose && latestCheck.error) {
524
+ console.log(` Latest: ${(0, ui_1.dim)(`Could not fetch (${latestCheck.error})`)}`);
525
+ }
526
+ console.log('');
527
+ console.log((0, ui_1.dim)('Run "ccs cliproxy --help" for all available commands'));
528
+ console.log('');
529
+ }
530
+ async function handleInstallVersion(version, verbose, backend) {
531
+ const label = getBackendLabel(backend);
532
+ console.log((0, ui_1.info)(`Installing ${label} v${version}...`));
533
+ console.log('');
534
+ const result = await (0, services_1.installVersion)(version, verbose, backend);
535
+ if (!result.success) {
536
+ console.error('');
537
+ console.error((0, ui_1.fail)(`Failed to install ${label} v${version}`));
538
+ console.error(` ${result.error}`);
539
+ console.error('');
540
+ console.error('Possible causes:');
541
+ console.error(' 1. Version does not exist on GitHub');
542
+ console.error(' 2. Network connectivity issues');
543
+ console.error(' 3. GitHub API rate limiting');
544
+ console.error('');
545
+ console.error('Check available versions at:');
546
+ console.error(` https://github.com/${platform_detector_1.BACKEND_CONFIG[backend].repo}/releases`);
547
+ process.exit(1);
548
+ }
549
+ console.log('');
550
+ console.log((0, ui_1.ok)(`${label} v${version} installed (pinned)`));
551
+ console.log('');
552
+ console.log((0, ui_1.dim)('This version will be used until you run:'));
553
+ console.log(` ${(0, ui_1.color)('ccs cliproxy --update', 'command')} ${(0, ui_1.dim)('# Update to latest and unpin')}`);
554
+ console.log('');
555
+ }
556
+ async function handleInstallLatest(verbose, backend) {
557
+ const label = getBackendLabel(backend);
558
+ console.log((0, ui_1.info)(`Fetching latest ${label} version...`));
559
+ const result = await (0, services_1.installLatest)(verbose, backend);
560
+ if (!result.success) {
561
+ console.error((0, ui_1.fail)(`Failed to install latest version: ${result.error}`));
562
+ process.exit(1);
563
+ }
564
+ if (result.error?.startsWith('Already')) {
565
+ console.log((0, ui_1.ok)(result.error));
566
+ return;
567
+ }
568
+ console.log('');
569
+ console.log((0, ui_1.ok)(`${label} updated to v${result.version}`));
570
+ console.log((0, ui_1.dim)('Auto-update is now enabled.'));
571
+ console.log('');
572
+ }
573
+ async function showHelp() {
574
+ await (0, ui_1.initUI)();
575
+ console.log('');
576
+ console.log((0, ui_1.header)('CLIProxy Management'));
577
+ console.log('');
578
+ console.log((0, ui_1.subheader)('Usage:'));
579
+ console.log(` ${(0, ui_1.color)('ccs cliproxy', 'command')} <command> [options]`);
580
+ console.log('');
581
+ const sections = [
582
+ [
583
+ 'Profile Commands:',
584
+ [
585
+ ['create [name]', 'Create new CLIProxy variant profile'],
586
+ ['list', 'List all CLIProxy variant profiles'],
587
+ ['remove <name>', 'Remove a CLIProxy variant profile'],
588
+ ],
589
+ ],
590
+ [
591
+ 'Local Sync:',
592
+ [
593
+ ['sync', 'Sync API profiles to local CLIProxy config'],
594
+ ['sync --dry-run', 'Preview sync without applying'],
595
+ ['sync --verbose', 'Show detailed sync information'],
596
+ ],
597
+ ],
598
+ [
599
+ 'Quota Management:',
600
+ [
601
+ ['default <account>', 'Set default account for rotation'],
602
+ ['pause <account>', 'Pause account (skip in rotation)'],
603
+ ['resume <account>', 'Resume paused account'],
604
+ ['quota', 'Show quota status for all providers'],
605
+ ['quota --provider <name>', 'Filter by provider (agy|codex|gemini)'],
606
+ ],
607
+ ],
608
+ [
609
+ 'Proxy Lifecycle:',
610
+ [
611
+ ['status', 'Show running CLIProxy status'],
612
+ ['stop', 'Stop running CLIProxy instance'],
613
+ ['doctor', 'Quota diagnostics and shared project detection'],
614
+ ],
615
+ ],
616
+ [
617
+ 'Binary Commands:',
618
+ [
619
+ ['--install <version>', 'Install and pin a specific version'],
620
+ ['--latest', 'Install the latest version (no pin)'],
621
+ ['--update', 'Unpin and update to latest version'],
622
+ ],
623
+ ],
624
+ [
625
+ 'Options:',
626
+ [
627
+ ['--backend <type>', 'Use specific backend: original | plus (default: from config)'],
628
+ ['--verbose, -v', 'Show detailed quota fetch diagnostics'],
629
+ ],
630
+ ],
631
+ ];
632
+ for (const [title, cmds] of sections) {
633
+ console.log((0, ui_1.subheader)(title));
634
+ const maxLen = Math.max(...cmds.map(([cmd]) => cmd.length));
635
+ for (const [cmd, desc] of cmds) {
636
+ console.log(` ${(0, ui_1.color)(cmd.padEnd(maxLen + 2), 'command')} ${desc}`);
637
+ }
638
+ console.log('');
639
+ }
640
+ console.log((0, ui_1.dim)(' Note: CLIProxy now persists by default. Use "stop" to terminate.'));
641
+ console.log('');
642
+ console.log((0, ui_1.subheader)('Notes:'));
643
+ console.log(` Default fallback version: ${(0, ui_1.color)((0, platform_detector_1.getFallbackVersion)(), 'info')}`);
644
+ console.log(` Releases: ${(0, ui_1.color)(`https://github.com/${platform_detector_1.BACKEND_CONFIG[platform_detector_1.DEFAULT_BACKEND].repo}/releases`, 'path')}`);
645
+ console.log('');
646
+ }
647
+ // ============================================================================
648
+ // DOCTOR COMMAND - Quota diagnostics and shared project detection
649
+ // ============================================================================
650
+ async function handleDoctor(verbose = false) {
651
+ await (0, ui_1.initUI)();
652
+ console.log((0, ui_1.header)('CLIProxy Quota Diagnostics'));
653
+ console.log('');
654
+ // Check each OAuth provider (agy is the only one with quota)
655
+ const provider = 'agy';
656
+ const accounts = (0, account_manager_1.getProviderAccounts)(provider);
657
+ if (accounts.length === 0) {
658
+ console.log((0, ui_1.info)('No Antigravity accounts configured'));
659
+ console.log(` Run: ${(0, ui_1.color)('ccs agy --auth', 'command')} to authenticate`);
660
+ return;
661
+ }
662
+ console.log((0, ui_1.subheader)(`Antigravity Accounts (${accounts.length})`));
663
+ console.log('');
664
+ // Fetch quota for all accounts
665
+ console.log((0, ui_1.dim)('Fetching quotas...'));
666
+ const quotaResult = await (0, quota_fetcher_1.fetchAllProviderQuotas)(provider, verbose);
667
+ // Display per-account quota status
668
+ for (const { account, quota } of quotaResult.accounts) {
669
+ const accountLabel = account.email || account.id || 'Unknown Account';
670
+ const defaultBadge = account.isDefault ? (0, ui_1.color)(' (default)', 'info') : '';
671
+ if (!quota.success) {
672
+ console.log(` ${(0, ui_1.fail)(accountLabel)}${defaultBadge}`);
673
+ console.log(` ${(0, ui_1.color)(quota.error || 'Failed to fetch quota', 'error')}`);
674
+ if (quota.isUnprovisioned) {
675
+ console.log(` ${(0, ui_1.warn)('Account not provisioned - open Gemini Code Assist in IDE first')}`);
676
+ }
677
+ console.log('');
678
+ continue;
679
+ }
680
+ // Calculate overall quota health (guard against empty models array)
681
+ const avgQuota = quota.models.length > 0
682
+ ? quota.models.reduce((sum, m) => sum + m.percentage, 0) / quota.models.length
683
+ : 0;
684
+ const statusIcon = avgQuota > 50 ? (0, ui_1.ok)('') : avgQuota > 10 ? (0, ui_1.warn)('') : (0, ui_1.fail)('');
685
+ console.log(` ${statusIcon}${accountLabel}${defaultBadge}`);
686
+ if (quota.projectId) {
687
+ console.log(` Project: ${(0, ui_1.dim)(quota.projectId)}`);
688
+ }
689
+ // Show model quotas
690
+ for (const model of quota.models) {
691
+ const bar = formatQuotaBar(model.percentage);
692
+ console.log(` ${model.name.padEnd(20)} ${bar} ${model.percentage.toFixed(0)}%`);
693
+ }
694
+ console.log('');
695
+ }
696
+ // Check for shared GCP projects (critical warning)
697
+ const sharedProjects = Object.entries(quotaResult.projectGroups).filter(([, accountIds]) => accountIds.length > 1);
698
+ if (sharedProjects.length > 0) {
699
+ console.log('');
700
+ console.log((0, ui_1.subheader)('Shared Project Warning'));
701
+ console.log('');
702
+ for (const [projectId, accountIds] of sharedProjects) {
703
+ console.log((0, ui_1.fail)(`Project ${projectId.substring(0, 20)}... shared by ${accountIds.length} accounts:`));
704
+ for (const accountId of accountIds) {
705
+ console.log(` - ${accountId}`);
706
+ }
707
+ console.log('');
708
+ console.log((0, ui_1.warn)('These accounts share the same quota pool!'));
709
+ console.log((0, ui_1.warn)('Failover between them will NOT help when quota is exhausted.'));
710
+ console.log((0, ui_1.info)('Solution: Use accounts from different GCP projects.'));
711
+ }
712
+ }
713
+ // Summary
714
+ console.log('');
715
+ console.log((0, ui_1.subheader)('Summary'));
716
+ const healthyAccounts = quotaResult.accounts.filter(({ quota }) => quota.success && quota.models.some((m) => m.percentage > 5));
717
+ console.log(` Accounts with quota: ${healthyAccounts.length}/${accounts.length}`);
718
+ if (sharedProjects.length > 0) {
719
+ console.log(` ${(0, ui_1.fail)(`Shared projects: ${sharedProjects.length} (failover limited)`)}`);
720
+ }
721
+ else if (accounts.length > 1) {
722
+ console.log(` ${(0, ui_1.ok)('No shared projects (failover fully operational)')}`);
723
+ }
724
+ console.log('');
725
+ }
726
+ function formatQuotaBar(percentage) {
727
+ const width = 20;
728
+ const clampedPct = Math.max(0, Math.min(100, percentage));
729
+ const filled = Math.round((clampedPct / 100) * width);
730
+ const empty = width - filled;
731
+ const filledChar = clampedPct > 50 ? '█' : clampedPct > 10 ? '▓' : '░';
732
+ return `[${filledChar.repeat(filled)}${' '.repeat(empty)}]`;
733
+ }
734
+ // ============================================================================
735
+ // QUOTA MANAGEMENT COMMANDS
736
+ // ============================================================================
737
+ async function handleSetDefault(args) {
738
+ await (0, ui_1.initUI)();
739
+ const parsed = parseProfileArgs(args);
740
+ if (!parsed.name) {
741
+ console.log((0, ui_1.fail)('Usage: ccs cliproxy default <account> [--provider <provider>]'));
742
+ console.log('');
743
+ console.log('Examples:');
744
+ console.log(' ccs cliproxy default ultra@gmail.com');
745
+ console.log(' ccs cliproxy default john --provider agy');
746
+ process.exit(1);
747
+ }
748
+ const provider = (parsed.provider || 'agy');
749
+ const account = (0, account_manager_1.findAccountByQuery)(provider, parsed.name);
750
+ if (!account) {
751
+ console.log((0, ui_1.fail)(`Account not found: ${parsed.name}`));
752
+ console.log('');
753
+ const accounts = (0, account_manager_1.getProviderAccounts)(provider);
754
+ if (accounts.length > 0) {
755
+ console.log('Available accounts:');
756
+ for (const acc of accounts) {
757
+ const badge = acc.isDefault ? (0, ui_1.color)(' (current default)', 'info') : '';
758
+ console.log(` - ${acc.email || acc.id}${badge}`);
759
+ }
760
+ }
761
+ else {
762
+ console.log(`No accounts found for provider: ${provider}`);
763
+ console.log(`Run: ccs ${provider} --auth`);
764
+ }
765
+ process.exit(1);
766
+ }
767
+ const success = (0, account_manager_1.setDefaultAccount)(provider, account.id);
768
+ if (success) {
769
+ console.log((0, ui_1.ok)(`Default account set to: ${account.email || account.id}`));
770
+ console.log((0, ui_1.info)(`Provider: ${provider}`));
771
+ }
772
+ else {
773
+ console.log((0, ui_1.fail)('Failed to set default account'));
774
+ process.exit(1);
775
+ }
776
+ }
777
+ async function handlePauseAccount(args) {
778
+ await (0, ui_1.initUI)();
779
+ const parsed = parseProfileArgs(args);
780
+ if (!parsed.name) {
781
+ console.log((0, ui_1.fail)('Usage: ccs cliproxy pause <account> [--provider <provider>]'));
782
+ console.log('');
783
+ console.log('Pauses an account so it will be skipped in quota rotation.');
784
+ process.exit(1);
785
+ }
786
+ const provider = (parsed.provider || 'agy');
787
+ const account = (0, account_manager_1.findAccountByQuery)(provider, parsed.name);
788
+ if (!account) {
789
+ console.log((0, ui_1.fail)(`Account not found: ${parsed.name}`));
790
+ process.exit(1);
791
+ }
792
+ if (account.paused) {
793
+ console.log((0, ui_1.warn)(`Account already paused: ${account.email || account.id}`));
794
+ console.log((0, ui_1.info)(`Paused at: ${account.pausedAt || 'unknown'}`));
795
+ return;
796
+ }
797
+ const success = (0, account_manager_1.pauseAccount)(provider, account.id);
798
+ if (success) {
799
+ console.log((0, ui_1.ok)(`Account paused: ${account.email || account.id}`));
800
+ console.log((0, ui_1.info)('Account will be skipped in quota rotation'));
801
+ }
802
+ else {
803
+ console.log((0, ui_1.fail)('Failed to pause account'));
804
+ process.exit(1);
805
+ }
806
+ }
807
+ async function handleResumeAccount(args) {
808
+ await (0, ui_1.initUI)();
809
+ const parsed = parseProfileArgs(args);
810
+ if (!parsed.name) {
811
+ console.log((0, ui_1.fail)('Usage: ccs cliproxy resume <account> [--provider <provider>]'));
812
+ console.log('');
813
+ console.log('Resumes a paused account for quota rotation.');
814
+ process.exit(1);
815
+ }
816
+ const provider = (parsed.provider || 'agy');
817
+ const account = (0, account_manager_1.findAccountByQuery)(provider, parsed.name);
818
+ if (!account) {
819
+ console.log((0, ui_1.fail)(`Account not found: ${parsed.name}`));
820
+ process.exit(1);
821
+ }
822
+ if (!account.paused) {
823
+ console.log((0, ui_1.warn)(`Account is not paused: ${account.email || account.id}`));
824
+ return;
825
+ }
826
+ const success = (0, account_manager_1.resumeAccount)(provider, account.id);
827
+ if (success) {
828
+ console.log((0, ui_1.ok)(`Account resumed: ${account.email || account.id}`));
829
+ console.log((0, ui_1.info)('Account is now active in quota rotation'));
830
+ }
831
+ else {
832
+ console.log((0, ui_1.fail)('Failed to resume account'));
833
+ process.exit(1);
834
+ }
835
+ }
836
+ async function handleQuotaStatus(verbose = false, providerFilter = 'all') {
837
+ await (0, ui_1.initUI)();
838
+ console.log((0, ui_1.header)('Quota Status'));
839
+ console.log('');
840
+ const shouldFetch = {
841
+ agy: providerFilter === 'all' || providerFilter === 'agy',
842
+ codex: providerFilter === 'all' || providerFilter === 'codex',
843
+ gemini: providerFilter === 'all' || providerFilter === 'gemini',
844
+ };
845
+ console.log((0, ui_1.dim)('Fetching quotas...'));
846
+ // Parallel fetch from all requested providers
847
+ const [agyResults, codexResults, geminiResults] = await Promise.all([
848
+ shouldFetch.agy ? (0, quota_fetcher_1.fetchAllProviderQuotas)('agy', verbose) : null,
849
+ shouldFetch.codex ? (0, quota_fetcher_codex_1.fetchAllCodexQuotas)(verbose) : null,
850
+ shouldFetch.gemini ? (0, quota_fetcher_gemini_cli_1.fetchAllGeminiCliQuotas)(verbose) : null,
851
+ ]);
852
+ console.log('');
853
+ // Display Antigravity section
854
+ if (agyResults && agyResults.accounts.length > 0) {
855
+ displayAntigravityQuotaSection(agyResults);
856
+ }
857
+ else if (shouldFetch.agy) {
858
+ console.log((0, ui_1.subheader)('Antigravity (0 accounts)'));
859
+ console.log((0, ui_1.info)('No Antigravity accounts configured'));
860
+ console.log(` Run: ${(0, ui_1.color)('ccs agy --auth', 'command')} to authenticate`);
861
+ console.log('');
862
+ }
863
+ // Display Codex section
864
+ if (codexResults && codexResults.length > 0) {
865
+ displayCodexQuotaSection(codexResults);
866
+ }
867
+ else if (shouldFetch.codex) {
868
+ console.log((0, ui_1.subheader)('Codex (0 accounts)'));
869
+ console.log((0, ui_1.info)('No Codex accounts configured'));
870
+ console.log(` Run: ${(0, ui_1.color)('ccs codex --auth', 'command')} to authenticate`);
871
+ console.log('');
872
+ }
873
+ // Display Gemini CLI section
874
+ if (geminiResults && geminiResults.length > 0) {
875
+ displayGeminiCliQuotaSection(geminiResults);
876
+ }
877
+ else if (shouldFetch.gemini) {
878
+ console.log((0, ui_1.subheader)('Gemini CLI (0 accounts)'));
879
+ console.log((0, ui_1.info)('No Gemini CLI accounts configured'));
880
+ console.log(` Run: ${(0, ui_1.color)('ccs gemini --auth', 'command')} to authenticate`);
881
+ console.log('');
882
+ }
883
+ }
884
+ /**
885
+ * Display Antigravity quota section
886
+ */
887
+ function displayAntigravityQuotaSection(quotaResult) {
888
+ const provider = 'agy';
889
+ const accounts = (0, account_manager_1.getProviderAccounts)(provider);
890
+ console.log((0, ui_1.subheader)(`Antigravity (${accounts.length} account${accounts.length !== 1 ? 's' : ''})`));
891
+ console.log('');
892
+ // Build table rows
893
+ const rows = [];
894
+ for (const account of accounts) {
895
+ const quotaData = quotaResult.accounts.find((q) => q.account.id === account.id);
896
+ const quota = quotaData?.quota;
897
+ // Calculate average quota
898
+ let avgQuota = 'N/A';
899
+ if (quota?.success && quota.models.length > 0) {
900
+ const avg = Math.round(quota.models.reduce((sum, m) => sum + m.percentage, 0) / quota.models.length);
901
+ avgQuota = `${avg}%`;
902
+ }
903
+ // Build status badges
904
+ const statusParts = [];
905
+ if (account.paused)
906
+ statusParts.push((0, ui_1.color)('PAUSED', 'warning'));
907
+ if ((0, quota_manager_1.isOnCooldown)(provider, account.id))
908
+ statusParts.push((0, ui_1.color)('COOLDOWN', 'warning'));
909
+ const defaultMark = account.isDefault ? (0, ui_1.color)('*', 'success') : ' ';
910
+ const tier = account.tier || 'unknown';
911
+ const status = statusParts.join(', ');
912
+ rows.push([
913
+ defaultMark,
914
+ account.nickname || account.email || account.id,
915
+ tier,
916
+ avgQuota,
917
+ status,
918
+ ]);
919
+ }
920
+ console.log((0, ui_1.table)(rows, {
921
+ head: ['', 'Account', 'Tier', 'Quota', 'Status'],
922
+ colWidths: [3, 30, 10, 10, 20],
923
+ }));
924
+ console.log('');
925
+ }
926
+ /**
927
+ * Display Codex quota section
928
+ */
929
+ function displayCodexQuotaSection(results) {
930
+ console.log((0, ui_1.subheader)(`Codex (${results.length} account${results.length !== 1 ? 's' : ''})`));
931
+ console.log('');
932
+ for (const { account, quota } of results) {
933
+ const accountInfo = (0, account_manager_1.findAccountByQuery)('codex', account);
934
+ const defaultMark = accountInfo?.isDefault ? (0, ui_1.color)(' (default)', 'info') : '';
935
+ if (!quota.success) {
936
+ console.log(` ${(0, ui_1.fail)(account)}${defaultMark}`);
937
+ console.log(` ${(0, ui_1.color)(quota.error || 'Failed to fetch quota', 'error')}`);
938
+ console.log('');
939
+ continue;
940
+ }
941
+ // Calculate overall quota health
942
+ const avgQuota = quota.windows.length > 0
943
+ ? quota.windows.reduce((sum, w) => sum + w.remainingPercent, 0) / quota.windows.length
944
+ : 0;
945
+ const statusIcon = avgQuota > 50 ? (0, ui_1.ok)('') : avgQuota > 10 ? (0, ui_1.warn)('') : (0, ui_1.fail)('');
946
+ const planBadge = quota.planType ? (0, ui_1.color)(` [${quota.planType}]`, 'info') : '';
947
+ console.log(` ${statusIcon}${account}${defaultMark}${planBadge}`);
948
+ // Show windows
949
+ for (const window of quota.windows) {
950
+ const bar = formatQuotaBar(window.remainingPercent);
951
+ const resetLabel = window.resetAfterSeconds
952
+ ? (0, ui_1.dim)(` Resets ${formatResetTime(window.resetAfterSeconds)}`)
953
+ : '';
954
+ console.log(` ${window.label.padEnd(24)} ${bar} ${window.remainingPercent.toFixed(0)}%${resetLabel}`);
955
+ }
956
+ console.log('');
957
+ }
958
+ }
959
+ /**
960
+ * Display Gemini CLI quota section
961
+ */
962
+ function displayGeminiCliQuotaSection(results) {
963
+ console.log((0, ui_1.subheader)(`Gemini CLI (${results.length} account${results.length !== 1 ? 's' : ''})`));
964
+ console.log('');
965
+ for (const { account, quota } of results) {
966
+ const accountInfo = (0, account_manager_1.findAccountByQuery)('gemini', account);
967
+ const defaultMark = accountInfo?.isDefault ? (0, ui_1.color)(' (default)', 'info') : '';
968
+ if (!quota.success) {
969
+ console.log(` ${(0, ui_1.fail)(account)}${defaultMark}`);
970
+ console.log(` ${(0, ui_1.color)(quota.error || 'Failed to fetch quota', 'error')}`);
971
+ console.log('');
972
+ continue;
973
+ }
974
+ // Calculate overall quota health
975
+ const avgQuota = quota.buckets.length > 0
976
+ ? quota.buckets.reduce((sum, b) => sum + b.remainingPercent, 0) / quota.buckets.length
977
+ : 0;
978
+ const statusIcon = avgQuota > 50 ? (0, ui_1.ok)('') : avgQuota > 10 ? (0, ui_1.warn)('') : (0, ui_1.fail)('');
979
+ console.log(` ${statusIcon}${account}${defaultMark}`);
980
+ if (quota.projectId) {
981
+ console.log(` Project: ${(0, ui_1.dim)(quota.projectId)}`);
982
+ }
983
+ // Show buckets
984
+ for (const bucket of quota.buckets) {
985
+ const bar = formatQuotaBar(bucket.remainingPercent);
986
+ const tokenLabel = bucket.tokenType ? (0, ui_1.dim)(` (${bucket.tokenType})`) : '';
987
+ const resetLabel = bucket.resetTime
988
+ ? (0, ui_1.dim)(` Resets ${formatResetTimeISO(bucket.resetTime)}`)
989
+ : '';
990
+ console.log(` ${bucket.label.padEnd(24)} ${bar} ${bucket.remainingPercent.toFixed(0)}%${tokenLabel}${resetLabel}`);
991
+ }
992
+ console.log('');
993
+ }
994
+ }
995
+ /**
996
+ * Format reset time from seconds
997
+ */
998
+ function formatResetTime(seconds) {
999
+ if (seconds <= 0)
1000
+ return 'now';
1001
+ if (seconds < 60)
1002
+ return `in ${seconds}s`;
1003
+ if (seconds < 3600)
1004
+ return `in ${Math.round(seconds / 60)}m`;
1005
+ return `in ${Math.round(seconds / 3600)}h`;
1006
+ }
1007
+ /**
1008
+ * Format reset time from ISO timestamp
1009
+ */
1010
+ function formatResetTimeISO(isoTime) {
1011
+ if (!isoTime)
1012
+ return 'unknown';
1013
+ const resetDate = new Date(isoTime);
1014
+ if (isNaN(resetDate.getTime()))
1015
+ return 'unknown';
1016
+ const seconds = Math.max(0, Math.round((resetDate.getTime() - Date.now()) / 1000));
1017
+ return formatResetTime(seconds);
1018
+ }
1019
+ // ============================================================================
1020
+ // MAIN ROUTER
1021
+ // ============================================================================
1022
+ async function handleCliproxyCommand(args) {
1023
+ // Parse --backend flag first (before other processing)
1024
+ const { backend: cliBackend, remainingArgs } = parseBackendArg(args);
1025
+ const effectiveBackend = getEffectiveBackend(cliBackend);
1026
+ const verbose = remainingArgs.includes('--verbose') || remainingArgs.includes('-v');
1027
+ const command = remainingArgs[0];
1028
+ if (remainingArgs.includes('--help') || remainingArgs.includes('-h')) {
1029
+ await showHelp();
1030
+ return;
1031
+ }
1032
+ if (command === 'create') {
1033
+ await handleCreate(remainingArgs.slice(1));
1034
+ return;
1035
+ }
1036
+ if (command === 'list' || command === 'ls') {
1037
+ await handleList();
1038
+ return;
1039
+ }
1040
+ if (command === 'remove' || command === 'delete' || command === 'rm') {
1041
+ await handleRemove(remainingArgs.slice(1));
1042
+ return;
1043
+ }
1044
+ if (command === 'sync') {
1045
+ await (0, cliproxy_sync_handler_1.handleSync)(remainingArgs.slice(1));
1046
+ return;
1047
+ }
1048
+ if (command === 'stop') {
1049
+ await handleStop();
1050
+ return;
1051
+ }
1052
+ if (command === 'status') {
1053
+ await handleProxyStatus();
1054
+ return;
1055
+ }
1056
+ if (command === 'doctor' || command === 'diag') {
1057
+ await handleDoctor(verbose);
1058
+ return;
1059
+ }
1060
+ // Quota management commands
1061
+ if (command === 'default') {
1062
+ await handleSetDefault(remainingArgs.slice(1));
1063
+ return;
1064
+ }
1065
+ if (command === 'pause') {
1066
+ await handlePauseAccount(remainingArgs.slice(1));
1067
+ return;
1068
+ }
1069
+ if (command === 'resume') {
1070
+ await handleResumeAccount(remainingArgs.slice(1));
1071
+ return;
1072
+ }
1073
+ if (command === 'quota') {
1074
+ const { provider: providerFilter } = parseProviderArg(remainingArgs.slice(1));
1075
+ await handleQuotaStatus(verbose, providerFilter);
1076
+ return;
1077
+ }
1078
+ const installIdx = remainingArgs.indexOf('--install');
1079
+ if (installIdx !== -1) {
1080
+ let version = remainingArgs[installIdx + 1];
1081
+ if (!version || version.startsWith('-')) {
1082
+ console.error((0, ui_1.fail)('Missing version argument for --install'));
1083
+ console.error(' Usage: ccs cliproxy --install <version>');
1084
+ console.error(' Example: ccs cliproxy --install 6.6.80-0');
1085
+ process.exit(1);
1086
+ }
1087
+ // Strip leading 'v' prefix and whitespace (user may type " v6.6.80-0 ")
1088
+ version = version.trim().replace(/^v/, '');
1089
+ await handleInstallVersion(version, verbose, effectiveBackend);
1090
+ return;
1091
+ }
1092
+ if (remainingArgs.includes('--latest') || remainingArgs.includes('--update')) {
1093
+ await handleInstallLatest(verbose, effectiveBackend);
1094
+ return;
1095
+ }
1096
+ await showStatus(verbose, effectiveBackend);
1097
+ }
1098
+ exports.handleCliproxyCommand = handleCliproxyCommand;
1099
+ //# sourceMappingURL=cliproxy-command.js.map