@kaitranntt/ccs 6.7.0 → 6.7.1-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/README.md +45 -23
  2. package/dist/api/index.d.ts +7 -0
  3. package/dist/api/index.d.ts.map +1 -0
  4. package/dist/api/index.js +24 -0
  5. package/dist/api/index.js.map +1 -0
  6. package/dist/api/services/index.d.ts +10 -0
  7. package/dist/api/services/index.d.ts.map +1 -0
  8. package/dist/api/services/index.js +26 -0
  9. package/dist/api/services/index.js.map +1 -0
  10. package/dist/api/services/profile-reader.d.ts +28 -0
  11. package/dist/api/services/profile-reader.d.ts.map +1 -0
  12. package/dist/api/services/profile-reader.js +148 -0
  13. package/dist/api/services/profile-reader.js.map +1 -0
  14. package/dist/api/services/profile-types.d.ts +42 -0
  15. package/dist/api/services/profile-types.d.ts.map +1 -0
  16. package/dist/api/services/profile-types.js +8 -0
  17. package/dist/api/services/profile-types.js.map +1 -0
  18. package/dist/api/services/profile-writer.d.ts +6 -0
  19. package/dist/api/services/profile-writer.d.ts.map +1 -0
  20. package/dist/api/services/profile-writer.js +176 -0
  21. package/dist/api/services/profile-writer.js.map +1 -0
  22. package/dist/api/services/validation-service.d.ts +26 -0
  23. package/dist/api/services/validation-service.d.ts.map +1 -0
  24. package/dist/api/services/validation-service.js +77 -0
  25. package/dist/api/services/validation-service.js.map +1 -0
  26. package/dist/auth/auth-commands.d.ts +16 -22
  27. package/dist/auth/auth-commands.d.ts.map +1 -1
  28. package/dist/auth/auth-commands.js +29 -467
  29. package/dist/auth/auth-commands.js.map +1 -1
  30. package/dist/auth/commands/create-command.d.ts +11 -0
  31. package/dist/auth/commands/create-command.d.ts.map +1 -0
  32. package/dist/auth/commands/create-command.js +137 -0
  33. package/dist/auth/commands/create-command.js.map +1 -0
  34. package/dist/auth/commands/default-command.d.ts +15 -0
  35. package/dist/auth/commands/default-command.d.ts.map +1 -0
  36. package/dist/auth/commands/default-command.js +71 -0
  37. package/dist/auth/commands/default-command.js.map +1 -0
  38. package/dist/auth/commands/index.d.ts +12 -0
  39. package/dist/auth/commands/index.d.ts.map +1 -0
  40. package/dist/auth/commands/index.js +25 -0
  41. package/dist/auth/commands/index.js.map +1 -0
  42. package/dist/auth/commands/list-command.d.ts +11 -0
  43. package/dist/auth/commands/list-command.d.ts.map +1 -0
  44. package/dist/auth/commands/list-command.js +124 -0
  45. package/dist/auth/commands/list-command.js.map +1 -0
  46. package/dist/auth/commands/remove-command.d.ts +11 -0
  47. package/dist/auth/commands/remove-command.d.ts.map +1 -0
  48. package/dist/auth/commands/remove-command.js +102 -0
  49. package/dist/auth/commands/remove-command.js.map +1 -0
  50. package/dist/auth/commands/show-command.d.ts +11 -0
  51. package/dist/auth/commands/show-command.d.ts.map +1 -0
  52. package/dist/auth/commands/show-command.js +103 -0
  53. package/dist/auth/commands/show-command.js.map +1 -0
  54. package/dist/auth/commands/types.d.ts +50 -0
  55. package/dist/auth/commands/types.d.ts.map +1 -0
  56. package/dist/auth/commands/types.js +26 -0
  57. package/dist/auth/commands/types.js.map +1 -0
  58. package/dist/auth/index.d.ts +8 -0
  59. package/dist/auth/index.d.ts.map +1 -0
  60. package/dist/auth/index.js +16 -0
  61. package/dist/auth/index.js.map +1 -0
  62. package/dist/auth/profile-detector.d.ts +0 -5
  63. package/dist/auth/profile-detector.d.ts.map +1 -1
  64. package/dist/auth/profile-detector.js +1 -9
  65. package/dist/auth/profile-detector.js.map +1 -1
  66. package/dist/auth/profile-registry.d.ts +0 -4
  67. package/dist/auth/profile-registry.d.ts.map +1 -1
  68. package/dist/auth/profile-registry.js +3 -10
  69. package/dist/auth/profile-registry.js.map +1 -1
  70. package/dist/ccs.js +21 -4
  71. package/dist/ccs.js.map +1 -1
  72. package/dist/cliproxy/auth/auth-types.d.ts +85 -0
  73. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -0
  74. package/dist/cliproxy/auth/auth-types.js +100 -0
  75. package/dist/cliproxy/auth/auth-types.js.map +1 -0
  76. package/dist/cliproxy/auth/environment-detector.d.ts +30 -0
  77. package/dist/cliproxy/auth/environment-detector.d.ts.map +1 -0
  78. package/dist/cliproxy/auth/environment-detector.js +124 -0
  79. package/dist/cliproxy/auth/environment-detector.js.map +1 -0
  80. package/dist/cliproxy/auth/index.d.ts +11 -0
  81. package/dist/cliproxy/auth/index.d.ts.map +1 -0
  82. package/dist/cliproxy/auth/index.js +35 -0
  83. package/dist/cliproxy/auth/index.js.map +1 -0
  84. package/dist/cliproxy/auth/oauth-handler.d.ts +29 -0
  85. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -0
  86. package/dist/cliproxy/auth/oauth-handler.js +205 -0
  87. package/dist/cliproxy/auth/oauth-handler.js.map +1 -0
  88. package/dist/cliproxy/auth/oauth-process.d.ts +27 -0
  89. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -0
  90. package/dist/cliproxy/auth/oauth-process.js +209 -0
  91. package/dist/cliproxy/auth/oauth-process.js.map +1 -0
  92. package/dist/cliproxy/auth/token-manager.d.ts +53 -0
  93. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -0
  94. package/dist/cliproxy/auth/token-manager.js +250 -0
  95. package/dist/cliproxy/auth/token-manager.js.map +1 -0
  96. package/dist/cliproxy/auth-handler.d.ts +13 -103
  97. package/dist/cliproxy/auth-handler.d.ts.map +1 -1
  98. package/dist/cliproxy/auth-handler.js +35 -766
  99. package/dist/cliproxy/auth-handler.js.map +1 -1
  100. package/dist/cliproxy/binary/downloader.d.ts +29 -0
  101. package/dist/cliproxy/binary/downloader.d.ts.map +1 -0
  102. package/dist/cliproxy/binary/downloader.js +218 -0
  103. package/dist/cliproxy/binary/downloader.js.map +1 -0
  104. package/dist/cliproxy/binary/extractor.d.ts +12 -0
  105. package/dist/cliproxy/binary/extractor.d.ts.map +1 -0
  106. package/dist/cliproxy/binary/extractor.js +27 -0
  107. package/dist/cliproxy/binary/extractor.js.map +1 -0
  108. package/dist/cliproxy/binary/index.d.ts +13 -0
  109. package/dist/cliproxy/binary/index.d.ts.map +1 -0
  110. package/dist/cliproxy/binary/index.js +53 -0
  111. package/dist/cliproxy/binary/index.js.map +1 -0
  112. package/dist/cliproxy/binary/installer.d.ts +24 -0
  113. package/dist/cliproxy/binary/installer.d.ts.map +1 -0
  114. package/dist/cliproxy/binary/installer.js +117 -0
  115. package/dist/cliproxy/binary/installer.js.map +1 -0
  116. package/dist/cliproxy/binary/lifecycle.d.ts +11 -0
  117. package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -0
  118. package/dist/cliproxy/binary/lifecycle.js +106 -0
  119. package/dist/cliproxy/binary/lifecycle.js.map +1 -0
  120. package/dist/cliproxy/binary/tar-extractor.d.ts +9 -0
  121. package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -0
  122. package/dist/cliproxy/binary/tar-extractor.js +118 -0
  123. package/dist/cliproxy/binary/tar-extractor.js.map +1 -0
  124. package/dist/cliproxy/binary/types.d.ts +24 -0
  125. package/dist/cliproxy/binary/types.d.ts.map +1 -0
  126. package/dist/cliproxy/binary/types.js +14 -0
  127. package/dist/cliproxy/binary/types.js.map +1 -0
  128. package/dist/cliproxy/binary/updater.d.ts +7 -0
  129. package/dist/cliproxy/binary/updater.d.ts.map +1 -0
  130. package/dist/cliproxy/binary/updater.js +18 -0
  131. package/dist/cliproxy/binary/updater.js.map +1 -0
  132. package/dist/cliproxy/binary/verifier.d.ts +18 -0
  133. package/dist/cliproxy/binary/verifier.d.ts.map +1 -0
  134. package/dist/cliproxy/binary/verifier.js +82 -0
  135. package/dist/cliproxy/binary/verifier.js.map +1 -0
  136. package/dist/cliproxy/binary/version-cache.d.ts +46 -0
  137. package/dist/cliproxy/binary/version-cache.d.ts.map +1 -0
  138. package/dist/cliproxy/binary/version-cache.js +171 -0
  139. package/dist/cliproxy/binary/version-cache.js.map +1 -0
  140. package/dist/cliproxy/binary/version-checker.d.ts +19 -0
  141. package/dist/cliproxy/binary/version-checker.d.ts.map +1 -0
  142. package/dist/cliproxy/binary/version-checker.js +77 -0
  143. package/dist/cliproxy/binary/version-checker.js.map +1 -0
  144. package/dist/cliproxy/binary/zip-extractor.d.ts +9 -0
  145. package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -0
  146. package/dist/cliproxy/binary/zip-extractor.js +110 -0
  147. package/dist/cliproxy/binary/zip-extractor.js.map +1 -0
  148. package/dist/cliproxy/binary-manager.d.ts +16 -170
  149. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  150. package/dist/cliproxy/binary-manager.js +38 -865
  151. package/dist/cliproxy/binary-manager.js.map +1 -1
  152. package/dist/cliproxy/services/binary-service.d.ts +65 -0
  153. package/dist/cliproxy/services/binary-service.d.ts.map +1 -0
  154. package/dist/cliproxy/services/binary-service.js +140 -0
  155. package/dist/cliproxy/services/binary-service.js.map +1 -0
  156. package/dist/cliproxy/services/index.d.ts +8 -0
  157. package/dist/cliproxy/services/index.d.ts.map +1 -0
  158. package/dist/cliproxy/services/index.js +31 -0
  159. package/dist/cliproxy/services/index.js.map +1 -0
  160. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +38 -0
  161. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -0
  162. package/dist/cliproxy/services/proxy-lifecycle-service.js +41 -0
  163. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -0
  164. package/dist/cliproxy/services/variant-config-adapter.d.ts +38 -0
  165. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -0
  166. package/dist/cliproxy/services/variant-config-adapter.js +172 -0
  167. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -0
  168. package/dist/cliproxy/services/variant-service.d.ts +37 -0
  169. package/dist/cliproxy/services/variant-service.d.ts.map +1 -0
  170. package/dist/cliproxy/services/variant-service.js +128 -0
  171. package/dist/cliproxy/services/variant-service.js.map +1 -0
  172. package/dist/cliproxy/services/variant-settings.d.ts +32 -0
  173. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -0
  174. package/dist/cliproxy/services/variant-settings.js +128 -0
  175. package/dist/cliproxy/services/variant-settings.js.map +1 -0
  176. package/dist/commands/api-command.d.ts +3 -6
  177. package/dist/commands/api-command.d.ts.map +1 -1
  178. package/dist/commands/api-command.js +84 -445
  179. package/dist/commands/api-command.js.map +1 -1
  180. package/dist/commands/cliproxy-command.d.ts +0 -3
  181. package/dist/commands/cliproxy-command.d.ts.map +1 -1
  182. package/dist/commands/cliproxy-command.js +182 -621
  183. package/dist/commands/cliproxy-command.js.map +1 -1
  184. package/dist/commands/index.d.ts +17 -0
  185. package/dist/commands/index.d.ts.map +1 -0
  186. package/dist/commands/index.js +33 -0
  187. package/dist/commands/index.js.map +1 -0
  188. package/dist/config/unified-config-loader.d.ts +7 -0
  189. package/dist/config/unified-config-loader.d.ts.map +1 -1
  190. package/dist/config/unified-config-loader.js +11 -1
  191. package/dist/config/unified-config-loader.js.map +1 -1
  192. package/dist/delegation/executor/index.d.ts +7 -0
  193. package/dist/delegation/executor/index.d.ts.map +1 -0
  194. package/dist/delegation/executor/index.js +28 -0
  195. package/dist/delegation/executor/index.js.map +1 -0
  196. package/dist/delegation/executor/result-aggregator.d.ts +30 -0
  197. package/dist/delegation/executor/result-aggregator.d.ts.map +1 -0
  198. package/dist/delegation/executor/result-aggregator.js +66 -0
  199. package/dist/delegation/executor/result-aggregator.js.map +1 -0
  200. package/dist/delegation/executor/stream-parser.d.ts +28 -0
  201. package/dist/delegation/executor/stream-parser.d.ts.map +1 -0
  202. package/dist/delegation/executor/stream-parser.js +140 -0
  203. package/dist/delegation/executor/stream-parser.js.map +1 -0
  204. package/dist/delegation/executor/types.d.ts +121 -0
  205. package/dist/delegation/executor/types.d.ts.map +1 -0
  206. package/dist/delegation/executor/types.js +6 -0
  207. package/dist/delegation/executor/types.js.map +1 -0
  208. package/dist/delegation/headless-executor.d.ts +13 -91
  209. package/dist/delegation/headless-executor.d.ts.map +1 -1
  210. package/dist/delegation/headless-executor.js +84 -291
  211. package/dist/delegation/headless-executor.js.map +1 -1
  212. package/dist/delegation/index.d.ts +11 -0
  213. package/dist/delegation/index.d.ts.map +1 -0
  214. package/dist/delegation/index.js +33 -0
  215. package/dist/delegation/index.js.map +1 -0
  216. package/dist/delegation/result-formatter.d.ts +1 -30
  217. package/dist/delegation/result-formatter.d.ts.map +1 -1
  218. package/dist/delegation/result-formatter.js.map +1 -1
  219. package/dist/errors/cleanup-registry.d.ts +64 -0
  220. package/dist/errors/cleanup-registry.d.ts.map +1 -0
  221. package/dist/errors/cleanup-registry.js +141 -0
  222. package/dist/errors/cleanup-registry.js.map +1 -0
  223. package/dist/errors/error-handler.d.ts +45 -0
  224. package/dist/errors/error-handler.d.ts.map +1 -0
  225. package/dist/errors/error-handler.js +150 -0
  226. package/dist/errors/error-handler.js.map +1 -0
  227. package/dist/errors/error-types.d.ts +102 -0
  228. package/dist/errors/error-types.d.ts.map +1 -0
  229. package/dist/errors/error-types.js +158 -0
  230. package/dist/errors/error-types.js.map +1 -0
  231. package/dist/errors/exit-codes.d.ts +49 -0
  232. package/dist/errors/exit-codes.d.ts.map +1 -0
  233. package/dist/errors/exit-codes.js +72 -0
  234. package/dist/errors/exit-codes.js.map +1 -0
  235. package/dist/errors/index.d.ts +29 -0
  236. package/dist/errors/index.d.ts.map +1 -0
  237. package/dist/errors/index.js +62 -0
  238. package/dist/errors/index.js.map +1 -0
  239. package/dist/glmt/glmt-transformer.d.ts +29 -248
  240. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  241. package/dist/glmt/glmt-transformer.js +63 -718
  242. package/dist/glmt/glmt-transformer.js.map +1 -1
  243. package/dist/glmt/index.d.ts +14 -0
  244. package/dist/glmt/index.d.ts.map +1 -0
  245. package/dist/glmt/index.js +41 -0
  246. package/dist/glmt/index.js.map +1 -0
  247. package/dist/glmt/pipeline/content-transformer.d.ts +39 -0
  248. package/dist/glmt/pipeline/content-transformer.d.ts.map +1 -0
  249. package/dist/glmt/pipeline/content-transformer.js +162 -0
  250. package/dist/glmt/pipeline/content-transformer.js.map +1 -0
  251. package/dist/glmt/pipeline/index.d.ts +12 -0
  252. package/dist/glmt/pipeline/index.d.ts.map +1 -0
  253. package/dist/glmt/pipeline/index.js +20 -0
  254. package/dist/glmt/pipeline/index.js.map +1 -0
  255. package/dist/glmt/pipeline/request-transformer.d.ts +31 -0
  256. package/dist/glmt/pipeline/request-transformer.d.ts.map +1 -0
  257. package/dist/glmt/pipeline/request-transformer.js +116 -0
  258. package/dist/glmt/pipeline/request-transformer.js.map +1 -0
  259. package/dist/glmt/pipeline/response-builder.d.ts +52 -0
  260. package/dist/glmt/pipeline/response-builder.d.ts.map +1 -0
  261. package/dist/glmt/pipeline/response-builder.js +205 -0
  262. package/dist/glmt/pipeline/response-builder.js.map +1 -0
  263. package/dist/glmt/pipeline/stream-parser.d.ts +59 -0
  264. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -0
  265. package/dist/glmt/pipeline/stream-parser.js +241 -0
  266. package/dist/glmt/pipeline/stream-parser.js.map +1 -0
  267. package/dist/glmt/pipeline/tool-call-handler.d.ts +22 -0
  268. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -0
  269. package/dist/glmt/pipeline/tool-call-handler.js +87 -0
  270. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -0
  271. package/dist/glmt/pipeline/types.d.ts +159 -0
  272. package/dist/glmt/pipeline/types.d.ts.map +1 -0
  273. package/dist/glmt/pipeline/types.js +6 -0
  274. package/dist/glmt/pipeline/types.js.map +1 -0
  275. package/dist/management/checks/cliproxy-check.d.ts +37 -0
  276. package/dist/management/checks/cliproxy-check.d.ts.map +1 -0
  277. package/dist/management/checks/cliproxy-check.js +187 -0
  278. package/dist/management/checks/cliproxy-check.js.map +1 -0
  279. package/dist/management/checks/config-check.d.ts +27 -0
  280. package/dist/management/checks/config-check.d.ts.map +1 -0
  281. package/dist/management/checks/config-check.js +158 -0
  282. package/dist/management/checks/config-check.js.map +1 -0
  283. package/dist/management/checks/env-check.d.ts +17 -0
  284. package/dist/management/checks/env-check.d.ts.map +1 -0
  285. package/dist/management/checks/env-check.js +71 -0
  286. package/dist/management/checks/env-check.js.map +1 -0
  287. package/dist/management/checks/index.d.ts +12 -0
  288. package/dist/management/checks/index.d.ts.map +1 -0
  289. package/dist/management/checks/index.js +48 -0
  290. package/dist/management/checks/index.js.map +1 -0
  291. package/dist/management/checks/oauth-check.d.ts +16 -0
  292. package/dist/management/checks/oauth-check.d.ts.map +1 -0
  293. package/dist/management/checks/oauth-check.js +68 -0
  294. package/dist/management/checks/oauth-check.js.map +1 -0
  295. package/dist/management/checks/profile-check.d.ts +36 -0
  296. package/dist/management/checks/profile-check.d.ts.map +1 -0
  297. package/dist/management/checks/profile-check.js +165 -0
  298. package/dist/management/checks/profile-check.js.map +1 -0
  299. package/dist/management/checks/symlink-check.d.ts +30 -0
  300. package/dist/management/checks/symlink-check.d.ts.map +1 -0
  301. package/dist/management/checks/symlink-check.js +204 -0
  302. package/dist/management/checks/symlink-check.js.map +1 -0
  303. package/dist/management/checks/system-check.d.ts +25 -0
  304. package/dist/management/checks/system-check.d.ts.map +1 -0
  305. package/dist/management/checks/system-check.js +136 -0
  306. package/dist/management/checks/system-check.js.map +1 -0
  307. package/dist/management/checks/types.d.ts +64 -0
  308. package/dist/management/checks/types.d.ts.map +1 -0
  309. package/dist/management/checks/types.js +63 -0
  310. package/dist/management/checks/types.js.map +1 -0
  311. package/dist/management/doctor.d.ts +3 -92
  312. package/dist/management/doctor.d.ts.map +1 -1
  313. package/dist/management/doctor.js +15 -831
  314. package/dist/management/doctor.js.map +1 -1
  315. package/dist/management/index.d.ts +15 -0
  316. package/dist/management/index.d.ts.map +1 -0
  317. package/dist/management/index.js +56 -0
  318. package/dist/management/index.js.map +1 -0
  319. package/dist/management/repair/auto-repair.d.ts +13 -0
  320. package/dist/management/repair/auto-repair.d.ts.map +1 -0
  321. package/dist/management/repair/auto-repair.js +170 -0
  322. package/dist/management/repair/auto-repair.js.map +1 -0
  323. package/dist/management/repair/index.d.ts +5 -0
  324. package/dist/management/repair/index.d.ts.map +1 -0
  325. package/dist/management/repair/index.js +9 -0
  326. package/dist/management/repair/index.js.map +1 -0
  327. package/dist/types/delegation.d.ts +1 -13
  328. package/dist/types/delegation.d.ts.map +1 -1
  329. package/dist/types/utils.d.ts +27 -0
  330. package/dist/types/utils.d.ts.map +1 -1
  331. package/dist/ui/assets/{accounts-p1_nf0Jy.js → accounts-BqDNXZu4.js} +1 -1
  332. package/dist/ui/assets/analytics-DQMyOsqI.js +1 -0
  333. package/dist/ui/assets/api-Bzyq4XP7.js +1 -0
  334. package/dist/ui/assets/{card-CCDc-Mx9.js → card-CIN0KDsX.js} +1 -1
  335. package/dist/ui/assets/cliproxy-5iKdPrEG.js +3 -0
  336. package/dist/ui/assets/cliproxy-control-panel-CJ2CfYod.js +1 -0
  337. package/dist/ui/assets/{code-editor-Br9x-r-E.js → code-editor-CDmNFLQ6.js} +1 -1
  338. package/dist/ui/assets/confirm-dialog-CaiDQikc.js +1 -0
  339. package/dist/ui/assets/copilot-nS6iAyk2.js +4 -0
  340. package/dist/ui/assets/form-utils-DP6ILe7Z.js +20 -0
  341. package/dist/ui/assets/health-DYOQfC7u.js +1 -0
  342. package/dist/ui/assets/{icons-BOsxPbiD.js → icons-ZmwVoUeR.js} +1 -1
  343. package/dist/ui/assets/index-C6Dah-xh.js +46 -0
  344. package/dist/ui/assets/index-It66SkKf.css +1 -0
  345. package/dist/ui/assets/{radix-ui-DFHQr9A5.js → radix-ui-CV3R9pD6.js} +3 -3
  346. package/dist/ui/assets/settings-DABC9b5G.js +1 -0
  347. package/dist/ui/assets/{shared-BfYhSN4-.js → shared-BwU4OKQc.js} +1 -1
  348. package/dist/ui/assets/{switch-CMk95lwf.js → switch-BQ6sBBUv.js} +1 -1
  349. package/dist/ui/assets/{tanstack-C4gT2P7V.js → tanstack-Df9bCj5R.js} +1 -1
  350. package/dist/ui/index.html +6 -6
  351. package/dist/utils/claude-spawner.d.ts +54 -0
  352. package/dist/utils/claude-spawner.d.ts.map +1 -0
  353. package/dist/utils/claude-spawner.js +118 -0
  354. package/dist/utils/claude-spawner.js.map +1 -0
  355. package/dist/utils/delegation-validator.d.ts +8 -4
  356. package/dist/utils/delegation-validator.d.ts.map +1 -1
  357. package/dist/utils/delegation-validator.js.map +1 -1
  358. package/dist/utils/helpers.d.ts +0 -11
  359. package/dist/utils/helpers.d.ts.map +1 -1
  360. package/dist/utils/helpers.js +1 -57
  361. package/dist/utils/helpers.js.map +1 -1
  362. package/dist/utils/index.d.ts +15 -0
  363. package/dist/utils/index.d.ts.map +1 -0
  364. package/dist/utils/index.js +50 -0
  365. package/dist/utils/index.js.map +1 -0
  366. package/dist/utils/time.d.ts +10 -0
  367. package/dist/utils/time.d.ts.map +1 -0
  368. package/dist/utils/time.js +27 -0
  369. package/dist/utils/time.js.map +1 -0
  370. package/dist/utils/ui/boxes.d.ts +24 -0
  371. package/dist/utils/ui/boxes.d.ts.map +1 -0
  372. package/dist/utils/ui/boxes.js +108 -0
  373. package/dist/utils/ui/boxes.js.map +1 -0
  374. package/dist/utils/ui/colors.d.ts +25 -0
  375. package/dist/utils/ui/colors.d.ts.map +1 -0
  376. package/dist/utils/ui/colors.js +70 -0
  377. package/dist/utils/ui/colors.js.map +1 -0
  378. package/dist/utils/ui/index.d.ts +51 -0
  379. package/dist/utils/ui/index.d.ts.map +1 -0
  380. package/dist/utils/ui/index.js +96 -0
  381. package/dist/utils/ui/index.js.map +1 -0
  382. package/dist/utils/ui/indicators.d.ts +23 -0
  383. package/dist/utils/ui/indicators.d.ts.map +1 -0
  384. package/dist/utils/ui/indicators.js +39 -0
  385. package/dist/utils/ui/indicators.js.map +1 -0
  386. package/dist/utils/ui/init.d.ts +30 -0
  387. package/dist/utils/ui/init.d.ts.map +1 -0
  388. package/dist/utils/ui/init.js +102 -0
  389. package/dist/utils/ui/init.js.map +1 -0
  390. package/dist/utils/ui/spinner.d.ts +13 -0
  391. package/dist/utils/ui/spinner.d.ts.map +1 -0
  392. package/dist/utils/ui/spinner.js +89 -0
  393. package/dist/utils/ui/spinner.js.map +1 -0
  394. package/dist/utils/ui/tables.d.ts +12 -0
  395. package/dist/utils/ui/tables.d.ts.map +1 -0
  396. package/dist/utils/ui/tables.js +69 -0
  397. package/dist/utils/ui/tables.js.map +1 -0
  398. package/dist/utils/ui/tasks.d.ts +26 -0
  399. package/dist/utils/ui/tasks.d.ts.map +1 -0
  400. package/dist/utils/ui/tasks.js +102 -0
  401. package/dist/utils/ui/tasks.js.map +1 -0
  402. package/dist/utils/ui/text.d.ts +24 -0
  403. package/dist/utils/ui/text.d.ts.map +1 -0
  404. package/dist/utils/ui/text.js +60 -0
  405. package/dist/utils/ui/text.js.map +1 -0
  406. package/dist/utils/ui/types.d.ts +36 -0
  407. package/dist/utils/ui/types.d.ts.map +1 -0
  408. package/dist/utils/ui/types.js +33 -0
  409. package/dist/utils/ui/types.js.map +1 -0
  410. package/dist/utils/ui.d.ts +3 -138
  411. package/dist/utils/ui.d.ts.map +1 -1
  412. package/dist/utils/ui.js +40 -567
  413. package/dist/utils/ui.js.map +1 -1
  414. package/dist/utils/websearch/gemini-cli.d.ts +36 -0
  415. package/dist/utils/websearch/gemini-cli.d.ts.map +1 -0
  416. package/dist/utils/websearch/gemini-cli.js +132 -0
  417. package/dist/utils/websearch/gemini-cli.js.map +1 -0
  418. package/dist/utils/websearch/grok-cli.d.ts +26 -0
  419. package/dist/utils/websearch/grok-cli.d.ts.map +1 -0
  420. package/dist/utils/websearch/grok-cli.js +81 -0
  421. package/dist/utils/websearch/grok-cli.js.map +1 -0
  422. package/dist/utils/websearch/hook-config.d.ts +21 -0
  423. package/dist/utils/websearch/hook-config.d.ts.map +1 -0
  424. package/dist/utils/websearch/hook-config.js +183 -0
  425. package/dist/utils/websearch/hook-config.js.map +1 -0
  426. package/dist/utils/websearch/hook-env.d.ts +16 -0
  427. package/dist/utils/websearch/hook-env.d.ts.map +1 -0
  428. package/dist/utils/websearch/hook-env.js +62 -0
  429. package/dist/utils/websearch/hook-env.js.map +1 -0
  430. package/dist/utils/websearch/hook-installer.d.ts +27 -0
  431. package/dist/utils/websearch/hook-installer.d.ts.map +1 -0
  432. package/dist/utils/websearch/hook-installer.js +141 -0
  433. package/dist/utils/websearch/hook-installer.js.map +1 -0
  434. package/dist/utils/websearch/index.d.ts +15 -0
  435. package/dist/utils/websearch/index.d.ts.map +1 -0
  436. package/dist/utils/websearch/index.js +44 -0
  437. package/dist/utils/websearch/index.js.map +1 -0
  438. package/dist/utils/websearch/opencode-cli.d.ts +26 -0
  439. package/dist/utils/websearch/opencode-cli.d.ts.map +1 -0
  440. package/dist/utils/websearch/opencode-cli.js +81 -0
  441. package/dist/utils/websearch/opencode-cli.js.map +1 -0
  442. package/dist/utils/websearch/status.d.ts +35 -0
  443. package/dist/utils/websearch/status.d.ts.map +1 -0
  444. package/dist/utils/websearch/status.js +185 -0
  445. package/dist/utils/websearch/status.js.map +1 -0
  446. package/dist/utils/websearch/types.d.ts +85 -0
  447. package/dist/utils/websearch/types.d.ts.map +1 -0
  448. package/dist/utils/websearch/types.js +10 -0
  449. package/dist/utils/websearch/types.js.map +1 -0
  450. package/dist/utils/websearch-manager.d.ts +7 -186
  451. package/dist/utils/websearch-manager.d.ts.map +1 -1
  452. package/dist/utils/websearch-manager.js +37 -710
  453. package/dist/utils/websearch-manager.js.map +1 -1
  454. package/dist/web-server/data-aggregator.d.ts +3 -51
  455. package/dist/web-server/data-aggregator.d.ts.map +1 -1
  456. package/dist/web-server/data-aggregator.js +18 -386
  457. package/dist/web-server/data-aggregator.js.map +1 -1
  458. package/dist/web-server/health/cliproxy-checks.d.ts +23 -0
  459. package/dist/web-server/health/cliproxy-checks.d.ts.map +1 -0
  460. package/dist/web-server/health/cliproxy-checks.js +145 -0
  461. package/dist/web-server/health/cliproxy-checks.js.map +1 -0
  462. package/dist/web-server/health/config-checks.d.ts +19 -0
  463. package/dist/web-server/health/config-checks.d.ts.map +1 -0
  464. package/dist/web-server/health/config-checks.js +174 -0
  465. package/dist/web-server/health/config-checks.js.map +1 -0
  466. package/dist/web-server/health/environment-checks.d.ts +11 -0
  467. package/dist/web-server/health/environment-checks.d.ts.map +1 -0
  468. package/dist/web-server/health/environment-checks.js +40 -0
  469. package/dist/web-server/health/environment-checks.js.map +1 -0
  470. package/dist/web-server/health/index.d.ts +13 -0
  471. package/dist/web-server/health/index.d.ts.map +1 -0
  472. package/dist/web-server/health/index.js +41 -0
  473. package/dist/web-server/health/index.js.map +1 -0
  474. package/dist/web-server/health/oauth-checks.d.ts +11 -0
  475. package/dist/web-server/health/oauth-checks.d.ts.map +1 -0
  476. package/dist/web-server/health/oauth-checks.js +34 -0
  477. package/dist/web-server/health/oauth-checks.js.map +1 -0
  478. package/dist/web-server/health/profile-checks.d.ts +19 -0
  479. package/dist/web-server/health/profile-checks.d.ts.map +1 -0
  480. package/dist/web-server/health/profile-checks.js +152 -0
  481. package/dist/web-server/health/profile-checks.js.map +1 -0
  482. package/dist/web-server/health/symlink-checks.d.ts +15 -0
  483. package/dist/web-server/health/symlink-checks.d.ts.map +1 -0
  484. package/dist/web-server/health/symlink-checks.js +173 -0
  485. package/dist/web-server/health/symlink-checks.js.map +1 -0
  486. package/dist/web-server/health/system-checks.d.ts +19 -0
  487. package/dist/web-server/health/system-checks.d.ts.map +1 -0
  488. package/dist/web-server/health/system-checks.js +127 -0
  489. package/dist/web-server/health/system-checks.js.map +1 -0
  490. package/dist/web-server/health/types.d.ts +34 -0
  491. package/dist/web-server/health/types.d.ts.map +1 -0
  492. package/dist/web-server/health/types.js +8 -0
  493. package/dist/web-server/health/types.js.map +1 -0
  494. package/dist/web-server/health/websearch-checks.d.ts +11 -0
  495. package/dist/web-server/health/websearch-checks.d.ts.map +1 -0
  496. package/dist/web-server/health/websearch-checks.js +53 -0
  497. package/dist/web-server/health/websearch-checks.js.map +1 -0
  498. package/dist/web-server/health-service.d.ts +4 -30
  499. package/dist/web-server/health-service.d.ts.map +1 -1
  500. package/dist/web-server/health-service.js +28 -695
  501. package/dist/web-server/health-service.js.map +1 -1
  502. package/dist/web-server/index.d.ts.map +1 -1
  503. package/dist/web-server/index.js +2 -5
  504. package/dist/web-server/index.js.map +1 -1
  505. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +6 -0
  506. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -0
  507. package/dist/web-server/routes/cliproxy-auth-routes.js +202 -0
  508. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -0
  509. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +6 -0
  510. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -0
  511. package/dist/web-server/routes/cliproxy-stats-routes.js +253 -0
  512. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -0
  513. package/dist/web-server/routes/config-routes.d.ts +6 -0
  514. package/dist/web-server/routes/config-routes.d.ts.map +1 -0
  515. package/dist/web-server/routes/config-routes.js +145 -0
  516. package/dist/web-server/routes/config-routes.js.map +1 -0
  517. package/dist/web-server/routes/copilot-routes.d.ts +6 -0
  518. package/dist/web-server/routes/copilot-routes.d.ts.map +1 -0
  519. package/dist/web-server/routes/copilot-routes.js +195 -0
  520. package/dist/web-server/routes/copilot-routes.js.map +1 -0
  521. package/dist/web-server/routes/copilot-settings-routes.d.ts +6 -0
  522. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -0
  523. package/dist/web-server/routes/copilot-settings-routes.js +122 -0
  524. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -0
  525. package/dist/web-server/routes/health-routes.d.ts +6 -0
  526. package/dist/web-server/routes/health-routes.d.ts.map +1 -0
  527. package/dist/web-server/routes/health-routes.js +30 -0
  528. package/dist/web-server/routes/health-routes.js.map +1 -0
  529. package/dist/web-server/routes/index.d.ts +8 -0
  530. package/dist/web-server/routes/index.d.ts.map +1 -0
  531. package/dist/web-server/routes/index.js +54 -0
  532. package/dist/web-server/routes/index.js.map +1 -0
  533. package/dist/web-server/routes/misc-routes.d.ts +6 -0
  534. package/dist/web-server/routes/misc-routes.d.ts.map +1 -0
  535. package/dist/web-server/routes/misc-routes.js +219 -0
  536. package/dist/web-server/routes/misc-routes.js.map +1 -0
  537. package/dist/web-server/routes/profile-routes.d.ts +6 -0
  538. package/dist/web-server/routes/profile-routes.d.ts.map +1 -0
  539. package/dist/web-server/routes/profile-routes.js +164 -0
  540. package/dist/web-server/routes/profile-routes.js.map +1 -0
  541. package/dist/web-server/routes/provider-routes.d.ts +6 -0
  542. package/dist/web-server/routes/provider-routes.d.ts.map +1 -0
  543. package/dist/web-server/routes/provider-routes.js +146 -0
  544. package/dist/web-server/routes/provider-routes.js.map +1 -0
  545. package/dist/web-server/routes/route-helpers.d.ts +55 -0
  546. package/dist/web-server/routes/route-helpers.d.ts.map +1 -0
  547. package/dist/web-server/routes/route-helpers.js +201 -0
  548. package/dist/web-server/routes/route-helpers.js.map +1 -0
  549. package/dist/web-server/routes/settings-routes.d.ts +6 -0
  550. package/dist/web-server/routes/settings-routes.d.ts.map +1 -0
  551. package/dist/web-server/routes/settings-routes.js +207 -0
  552. package/dist/web-server/routes/settings-routes.js.map +1 -0
  553. package/dist/web-server/routes/variant-routes.d.ts +6 -0
  554. package/dist/web-server/routes/variant-routes.d.ts.map +1 -0
  555. package/dist/web-server/routes/variant-routes.js +158 -0
  556. package/dist/web-server/routes/variant-routes.js.map +1 -0
  557. package/dist/web-server/routes/websearch-routes.d.ts +6 -0
  558. package/dist/web-server/routes/websearch-routes.d.ts.map +1 -0
  559. package/dist/web-server/routes/websearch-routes.js +130 -0
  560. package/dist/web-server/routes/websearch-routes.js.map +1 -0
  561. package/dist/web-server/services/index.d.ts +7 -0
  562. package/dist/web-server/services/index.d.ts.map +1 -0
  563. package/dist/web-server/services/index.js +21 -0
  564. package/dist/web-server/services/index.js.map +1 -0
  565. package/dist/web-server/services/usage-aggregator.d.ts +7 -0
  566. package/dist/web-server/services/usage-aggregator.d.ts.map +1 -0
  567. package/dist/web-server/services/usage-aggregator.js +23 -0
  568. package/dist/web-server/services/usage-aggregator.js.map +1 -0
  569. package/dist/web-server/usage/aggregator.d.ts +54 -0
  570. package/dist/web-server/usage/aggregator.d.ts.map +1 -0
  571. package/dist/web-server/usage/aggregator.js +470 -0
  572. package/dist/web-server/usage/aggregator.js.map +1 -0
  573. package/dist/web-server/usage/data-aggregator.d.ts +55 -0
  574. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -0
  575. package/dist/web-server/usage/data-aggregator.js +391 -0
  576. package/dist/web-server/usage/data-aggregator.js.map +1 -0
  577. package/dist/web-server/usage/disk-cache.d.ts +46 -0
  578. package/dist/web-server/usage/disk-cache.d.ts.map +1 -0
  579. package/dist/web-server/usage/disk-cache.js +162 -0
  580. package/dist/web-server/usage/disk-cache.js.map +1 -0
  581. package/dist/web-server/usage/handlers.d.ts +50 -0
  582. package/dist/web-server/usage/handlers.d.ts.map +1 -0
  583. package/dist/web-server/usage/handlers.js +524 -0
  584. package/dist/web-server/usage/handlers.js.map +1 -0
  585. package/dist/web-server/usage/index.d.ts +12 -0
  586. package/dist/web-server/usage/index.d.ts.map +1 -0
  587. package/dist/web-server/usage/index.js +54 -0
  588. package/dist/web-server/usage/index.js.map +1 -0
  589. package/dist/web-server/usage/routes.d.ts +11 -0
  590. package/dist/web-server/usage/routes.d.ts.map +1 -0
  591. package/dist/web-server/usage/routes.js +37 -0
  592. package/dist/web-server/usage/routes.js.map +1 -0
  593. package/dist/web-server/usage/types.d.ts +119 -0
  594. package/dist/web-server/usage/types.d.ts.map +1 -0
  595. package/dist/web-server/usage/types.js +9 -0
  596. package/dist/web-server/usage/types.js.map +1 -0
  597. package/dist/web-server/usage-disk-cache.d.ts +3 -42
  598. package/dist/web-server/usage-disk-cache.d.ts.map +1 -1
  599. package/dist/web-server/usage-disk-cache.js +5 -144
  600. package/dist/web-server/usage-disk-cache.js.map +1 -1
  601. package/dist/web-server/usage-routes.d.ts +3 -31
  602. package/dist/web-server/usage-routes.d.ts.map +1 -1
  603. package/dist/web-server/usage-routes.js +8 -1139
  604. package/dist/web-server/usage-routes.js.map +1 -1
  605. package/dist/web-server/usage-types.d.ts +3 -115
  606. package/dist/web-server/usage-types.d.ts.map +1 -1
  607. package/dist/web-server/usage-types.js +17 -3
  608. package/dist/web-server/usage-types.js.map +1 -1
  609. package/package.json +1 -1
  610. package/dist/ui/assets/analytics-D1k2nYcF.js +0 -1
  611. package/dist/ui/assets/api-D9VVmZ1j.js +0 -1
  612. package/dist/ui/assets/cliproxy-CTt_Nsft.js +0 -1
  613. package/dist/ui/assets/cliproxy-control-panel-DKMAi4_4.js +0 -1
  614. package/dist/ui/assets/copilot-C6F8PT_L.js +0 -4
  615. package/dist/ui/assets/form-utils-BuXDJb0w.js +0 -20
  616. package/dist/ui/assets/health-DiAvJaSn.js +0 -1
  617. package/dist/ui/assets/index-Brq6EBKZ.css +0 -1
  618. package/dist/ui/assets/index-ByU8ZhED.js +0 -48
  619. package/dist/ui/assets/settings-CEomZLGl.js +0 -1
  620. package/dist/web-server/routes.d.ts +0 -7
  621. package/dist/web-server/routes.d.ts.map +0 -1
  622. package/dist/web-server/routes.js +0 -1891
  623. package/dist/web-server/routes.js.map +0 -1
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * Environment Health Check - OAuth readiness diagnostics
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runEnvironmentCheck = exports.EnvironmentChecker = void 0;
7
+ const environment_diagnostics_1 = require("../environment-diagnostics");
8
+ const ui_1 = require("../../utils/ui");
9
+ const types_1 = require("./types");
10
+ const ora = (0, types_1.createSpinner)();
11
+ /**
12
+ * Check environment for OAuth readiness
13
+ * Helps diagnose Windows headless false positives
14
+ */
15
+ class EnvironmentChecker {
16
+ constructor() {
17
+ this.name = 'Environment';
18
+ }
19
+ run(results) {
20
+ const spinner = ora('Checking environment').start();
21
+ const diag = (0, environment_diagnostics_1.getEnvironmentDiagnostics)();
22
+ // Determine overall environment health
23
+ let envStatus = 'OK';
24
+ let envMessage = 'Browser available';
25
+ // Check for potential issues
26
+ if (diag.detectedHeadless) {
27
+ if (diag.platform === 'win32' && diag.ttyStatus === 'undefined') {
28
+ // Windows false positive - this is actually a warning
29
+ envStatus = 'WARN';
30
+ envMessage = 'Headless detected (may be false positive on Windows)';
31
+ }
32
+ else if (diag.sshSession) {
33
+ envMessage = 'SSH session (headless mode)';
34
+ }
35
+ else {
36
+ envMessage = 'Headless environment';
37
+ }
38
+ }
39
+ if (envStatus === 'WARN') {
40
+ spinner.warn();
41
+ console.log(` ${(0, ui_1.warn)('Environment'.padEnd(22))} ${envMessage}`);
42
+ }
43
+ else {
44
+ spinner.succeed();
45
+ console.log(` ${(0, ui_1.ok)('Environment'.padEnd(22))} ${envMessage}`);
46
+ }
47
+ // Show key environment details
48
+ console.log(` ${''.padEnd(24)} Platform: ${diag.platformName}`);
49
+ if (diag.sshSession) {
50
+ console.log(` ${''.padEnd(24)} SSH: Yes (${diag.sshReason})`);
51
+ }
52
+ if (diag.ttyStatus === 'undefined') {
53
+ console.log(` ${''.padEnd(24)} TTY: undefined [!]`);
54
+ }
55
+ console.log(` ${''.padEnd(24)} Browser: ${diag.browserReason}`);
56
+ results.addCheck('Environment', envStatus === 'OK' ? 'success' : 'warning', envMessage, envStatus === 'WARN' ? 'If browser opens correctly, this warning can be ignored' : undefined, {
57
+ status: envStatus,
58
+ info: envMessage,
59
+ });
60
+ }
61
+ }
62
+ exports.EnvironmentChecker = EnvironmentChecker;
63
+ /**
64
+ * Run environment check
65
+ */
66
+ function runEnvironmentCheck(results) {
67
+ const checker = new EnvironmentChecker();
68
+ checker.run(results);
69
+ }
70
+ exports.runEnvironmentCheck = runEnvironmentCheck;
71
+ //# sourceMappingURL=env-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-check.js","sourceRoot":"","sources":["../../../src/management/checks/env-check.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,wEAAuE;AACvE,uCAA0C;AAC1C,mCAAqE;AAErE,MAAM,GAAG,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE5B;;;GAGG;AACH,MAAa,kBAAkB;IAA/B;QACE,SAAI,GAAG,aAAa,CAAC;IAoDvB,CAAC;IAlDC,GAAG,CAAC,OAAoB;QACtB,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAA,mDAAyB,GAAE,CAAC;QAEzC,uCAAuC;QACvC,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,UAAU,GAAG,mBAAmB,CAAC;QAErC,6BAA6B;QAC7B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;gBAChE,sDAAsD;gBACtD,SAAS,GAAG,MAAM,CAAC;gBACnB,UAAU,GAAG,sDAAsD,CAAC;YACtE,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3B,UAAU,GAAG,6BAA6B,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,sBAAsB,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,SAAI,EAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,OAAE,EAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,+BAA+B;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAElE,OAAO,CAAC,QAAQ,CACd,aAAa,EACb,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC1C,UAAU,EACV,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,SAAS,EAC5F;YACE,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,UAAU;SACjB,CACF,CAAC;IACJ,CAAC;CACF;AArDD,gDAqDC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,OAAoB;IACtD,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAHD,kDAGC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Health Check Registry - Central export for all checks
3
+ */
4
+ export { HealthCheck, HealthCheckDetails, HealthCheckItem, HealthIssue, IHealthChecker, Spinner, createSpinner, } from './types';
5
+ export { ClaudeCliChecker, CcsDirectoryChecker, runSystemChecks } from './system-check';
6
+ export { EnvironmentChecker, runEnvironmentCheck } from './env-check';
7
+ export { ConfigFilesChecker, ClaudeSettingsChecker, runConfigChecks } from './config-check';
8
+ export { ProfilesChecker, InstancesChecker, DelegationChecker, runProfileChecks, } from './profile-check';
9
+ export { PermissionsChecker, CcsSymlinksChecker, SettingsSymlinksChecker, runSymlinkChecks, } from './symlink-check';
10
+ export { CLIProxyBinaryChecker, CLIProxyConfigChecker, CLIProxyAuthChecker, CLIProxyPortChecker, runCLIProxyChecks, } from './cliproxy-check';
11
+ export { OAuthPortsChecker, runOAuthChecks } from './oauth-check';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/management/checks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,cAAc,EACd,OAAO,EACP,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGxF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAG5F,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Health Check Registry - Central export for all checks
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runOAuthChecks = exports.OAuthPortsChecker = exports.runCLIProxyChecks = exports.CLIProxyPortChecker = exports.CLIProxyAuthChecker = exports.CLIProxyConfigChecker = exports.CLIProxyBinaryChecker = exports.runSymlinkChecks = exports.SettingsSymlinksChecker = exports.CcsSymlinksChecker = exports.PermissionsChecker = exports.runProfileChecks = exports.DelegationChecker = exports.InstancesChecker = exports.ProfilesChecker = exports.runConfigChecks = exports.ClaudeSettingsChecker = exports.ConfigFilesChecker = exports.runEnvironmentCheck = exports.EnvironmentChecker = exports.runSystemChecks = exports.CcsDirectoryChecker = exports.ClaudeCliChecker = exports.createSpinner = exports.HealthCheck = void 0;
7
+ // Types and utilities
8
+ var types_1 = require("./types");
9
+ Object.defineProperty(exports, "HealthCheck", { enumerable: true, get: function () { return types_1.HealthCheck; } });
10
+ Object.defineProperty(exports, "createSpinner", { enumerable: true, get: function () { return types_1.createSpinner; } });
11
+ // System checks
12
+ var system_check_1 = require("./system-check");
13
+ Object.defineProperty(exports, "ClaudeCliChecker", { enumerable: true, get: function () { return system_check_1.ClaudeCliChecker; } });
14
+ Object.defineProperty(exports, "CcsDirectoryChecker", { enumerable: true, get: function () { return system_check_1.CcsDirectoryChecker; } });
15
+ Object.defineProperty(exports, "runSystemChecks", { enumerable: true, get: function () { return system_check_1.runSystemChecks; } });
16
+ // Environment checks
17
+ var env_check_1 = require("./env-check");
18
+ Object.defineProperty(exports, "EnvironmentChecker", { enumerable: true, get: function () { return env_check_1.EnvironmentChecker; } });
19
+ Object.defineProperty(exports, "runEnvironmentCheck", { enumerable: true, get: function () { return env_check_1.runEnvironmentCheck; } });
20
+ // Config checks
21
+ var config_check_1 = require("./config-check");
22
+ Object.defineProperty(exports, "ConfigFilesChecker", { enumerable: true, get: function () { return config_check_1.ConfigFilesChecker; } });
23
+ Object.defineProperty(exports, "ClaudeSettingsChecker", { enumerable: true, get: function () { return config_check_1.ClaudeSettingsChecker; } });
24
+ Object.defineProperty(exports, "runConfigChecks", { enumerable: true, get: function () { return config_check_1.runConfigChecks; } });
25
+ // Profile checks
26
+ var profile_check_1 = require("./profile-check");
27
+ Object.defineProperty(exports, "ProfilesChecker", { enumerable: true, get: function () { return profile_check_1.ProfilesChecker; } });
28
+ Object.defineProperty(exports, "InstancesChecker", { enumerable: true, get: function () { return profile_check_1.InstancesChecker; } });
29
+ Object.defineProperty(exports, "DelegationChecker", { enumerable: true, get: function () { return profile_check_1.DelegationChecker; } });
30
+ Object.defineProperty(exports, "runProfileChecks", { enumerable: true, get: function () { return profile_check_1.runProfileChecks; } });
31
+ // Symlink checks
32
+ var symlink_check_1 = require("./symlink-check");
33
+ Object.defineProperty(exports, "PermissionsChecker", { enumerable: true, get: function () { return symlink_check_1.PermissionsChecker; } });
34
+ Object.defineProperty(exports, "CcsSymlinksChecker", { enumerable: true, get: function () { return symlink_check_1.CcsSymlinksChecker; } });
35
+ Object.defineProperty(exports, "SettingsSymlinksChecker", { enumerable: true, get: function () { return symlink_check_1.SettingsSymlinksChecker; } });
36
+ Object.defineProperty(exports, "runSymlinkChecks", { enumerable: true, get: function () { return symlink_check_1.runSymlinkChecks; } });
37
+ // CLIProxy checks
38
+ var cliproxy_check_1 = require("./cliproxy-check");
39
+ Object.defineProperty(exports, "CLIProxyBinaryChecker", { enumerable: true, get: function () { return cliproxy_check_1.CLIProxyBinaryChecker; } });
40
+ Object.defineProperty(exports, "CLIProxyConfigChecker", { enumerable: true, get: function () { return cliproxy_check_1.CLIProxyConfigChecker; } });
41
+ Object.defineProperty(exports, "CLIProxyAuthChecker", { enumerable: true, get: function () { return cliproxy_check_1.CLIProxyAuthChecker; } });
42
+ Object.defineProperty(exports, "CLIProxyPortChecker", { enumerable: true, get: function () { return cliproxy_check_1.CLIProxyPortChecker; } });
43
+ Object.defineProperty(exports, "runCLIProxyChecks", { enumerable: true, get: function () { return cliproxy_check_1.runCLIProxyChecks; } });
44
+ // OAuth checks
45
+ var oauth_check_1 = require("./oauth-check");
46
+ Object.defineProperty(exports, "OAuthPortsChecker", { enumerable: true, get: function () { return oauth_check_1.OAuthPortsChecker; } });
47
+ Object.defineProperty(exports, "runOAuthChecks", { enumerable: true, get: function () { return oauth_check_1.runOAuthChecks; } });
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/management/checks/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,sBAAsB;AACtB,iCAQiB;AAPf,oGAAA,WAAW,OAAA;AAMX,sGAAA,aAAa,OAAA;AAGf,gBAAgB;AAChB,+CAAwF;AAA/E,gHAAA,gBAAgB,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAAE,+GAAA,eAAe,OAAA;AAE/D,qBAAqB;AACrB,yCAAsE;AAA7D,+GAAA,kBAAkB,OAAA;AAAE,gHAAA,mBAAmB,OAAA;AAEhD,gBAAgB;AAChB,+CAA4F;AAAnF,kHAAA,kBAAkB,OAAA;AAAE,qHAAA,qBAAqB,OAAA;AAAE,+GAAA,eAAe,OAAA;AAEnE,iBAAiB;AACjB,iDAKyB;AAJvB,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAChB,kHAAA,iBAAiB,OAAA;AACjB,iHAAA,gBAAgB,OAAA;AAGlB,iBAAiB;AACjB,iDAKyB;AAJvB,mHAAA,kBAAkB,OAAA;AAClB,mHAAA,kBAAkB,OAAA;AAClB,wHAAA,uBAAuB,OAAA;AACvB,iHAAA,gBAAgB,OAAA;AAGlB,kBAAkB;AAClB,mDAM0B;AALxB,uHAAA,qBAAqB,OAAA;AACrB,uHAAA,qBAAqB,OAAA;AACrB,qHAAA,mBAAmB,OAAA;AACnB,qHAAA,mBAAmB,OAAA;AACnB,mHAAA,iBAAiB,OAAA;AAGnB,eAAe;AACf,6CAAkE;AAAzD,gHAAA,iBAAiB,OAAA;AAAE,6GAAA,cAAc,OAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * OAuth Port Health Checks - Pre-flight check for OAuth authentication
3
+ */
4
+ import { HealthCheck, IHealthChecker } from './types';
5
+ /**
6
+ * Check OAuth callback ports availability
7
+ */
8
+ export declare class OAuthPortsChecker implements IHealthChecker {
9
+ name: string;
10
+ run(results: HealthCheck): Promise<void>;
11
+ }
12
+ /**
13
+ * Run OAuth port checks
14
+ */
15
+ export declare function runOAuthChecks(results: HealthCheck): Promise<void>;
16
+ //# sourceMappingURL=oauth-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-check.d.ts","sourceRoot":"","sources":["../../../src/management/checks/oauth-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAIrE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,IAAI,SAAiB;IAEf,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAmD/C;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /**
3
+ * OAuth Port Health Checks - Pre-flight check for OAuth authentication
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runOAuthChecks = exports.OAuthPortsChecker = void 0;
7
+ const ui_1 = require("../../utils/ui");
8
+ const oauth_port_diagnostics_1 = require("../oauth-port-diagnostics");
9
+ const types_1 = require("./types");
10
+ const ora = (0, types_1.createSpinner)();
11
+ /**
12
+ * Check OAuth callback ports availability
13
+ */
14
+ class OAuthPortsChecker {
15
+ constructor() {
16
+ this.name = 'OAuth Ports';
17
+ }
18
+ async run(results) {
19
+ const spinner = ora('Checking OAuth callback ports').start();
20
+ const portDiagnostics = await (0, oauth_port_diagnostics_1.checkAuthCodePorts)();
21
+ // Count issues
22
+ const conflicts = portDiagnostics.filter((d) => d.status === 'occupied');
23
+ if (conflicts.length === 0) {
24
+ spinner.succeed();
25
+ console.log(` ${(0, ui_1.ok)('OAuth Ports'.padEnd(22))} All callback ports available`);
26
+ results.addCheck('OAuth Ports', 'success', undefined, undefined, {
27
+ status: 'OK',
28
+ info: 'All callback ports available',
29
+ });
30
+ }
31
+ else {
32
+ spinner.warn();
33
+ console.log(` ${(0, ui_1.warn)('OAuth Ports'.padEnd(22))} ${conflicts.length} port conflict(s)`);
34
+ results.addCheck('OAuth Ports', 'warning', `${conflicts.length} port conflict(s)`, 'Close conflicting applications before OAuth', { status: 'WARN', info: `${conflicts.length} conflict(s)` });
35
+ }
36
+ // Show individual port status
37
+ for (const diag of portDiagnostics) {
38
+ const providerName = diag.provider.charAt(0).toUpperCase() + diag.provider.slice(1);
39
+ const portStr = diag.port !== null ? `(${diag.port})` : '';
40
+ let statusIcon;
41
+ switch (diag.status) {
42
+ case 'free':
43
+ case 'cliproxy':
44
+ statusIcon = (0, ui_1.ok)(`${providerName} ${portStr}`.padEnd(20));
45
+ break;
46
+ case 'occupied':
47
+ statusIcon = (0, ui_1.warn)(`${providerName} ${portStr}`.padEnd(20));
48
+ break;
49
+ default:
50
+ statusIcon = (0, ui_1.info)(`${providerName} ${portStr}`.padEnd(20));
51
+ }
52
+ console.log(` ${statusIcon} ${diag.message}`);
53
+ if (diag.recommendation && diag.status === 'occupied') {
54
+ console.log(` ${''.padEnd(24)} Fix: ${diag.recommendation}`);
55
+ }
56
+ }
57
+ }
58
+ }
59
+ exports.OAuthPortsChecker = OAuthPortsChecker;
60
+ /**
61
+ * Run OAuth port checks
62
+ */
63
+ async function runOAuthChecks(results) {
64
+ const checker = new OAuthPortsChecker();
65
+ await checker.run(results);
66
+ }
67
+ exports.runOAuthChecks = runOAuthChecks;
68
+ //# sourceMappingURL=oauth-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-check.js","sourceRoot":"","sources":["../../../src/management/checks/oauth-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Profile and Delegation Health Checks
3
+ */
4
+ import { HealthCheck, IHealthChecker } from './types';
5
+ /**
6
+ * Check profile configurations in config.json
7
+ */
8
+ export declare class ProfilesChecker implements IHealthChecker {
9
+ name: string;
10
+ private readonly ccsDir;
11
+ constructor();
12
+ run(results: HealthCheck): void;
13
+ }
14
+ /**
15
+ * Check instance directories (account-based profiles)
16
+ */
17
+ export declare class InstancesChecker implements IHealthChecker {
18
+ name: string;
19
+ private readonly ccsDir;
20
+ constructor();
21
+ run(results: HealthCheck): void;
22
+ }
23
+ /**
24
+ * Check delegation system (commands and ready profiles)
25
+ */
26
+ export declare class DelegationChecker implements IHealthChecker {
27
+ name: string;
28
+ private readonly ccsDir;
29
+ constructor();
30
+ run(results: HealthCheck): void;
31
+ }
32
+ /**
33
+ * Run all profile checks
34
+ */
35
+ export declare function runProfileChecks(results: HealthCheck): void;
36
+ //# sourceMappingURL=profile-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-check.d.ts","sourceRoot":"","sources":["../../../src/management/checks/profile-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAIrE;;GAEG;AACH,qBAAa,eAAgB,YAAW,cAAc;IACpD,IAAI,SAAc;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CA4ChC;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,cAAc;IACrD,IAAI,SAAe;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CA0BhC;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,IAAI,SAAgB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAyDhC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAQ3D"}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ /**
3
+ * Profile and Delegation Health Checks
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.runProfileChecks = exports.DelegationChecker = exports.InstancesChecker = exports.ProfilesChecker = void 0;
30
+ const fs = __importStar(require("fs"));
31
+ const path = __importStar(require("path"));
32
+ const os = __importStar(require("os"));
33
+ const ui_1 = require("../../utils/ui");
34
+ const types_1 = require("./types");
35
+ const ora = (0, types_1.createSpinner)();
36
+ /**
37
+ * Check profile configurations in config.json
38
+ */
39
+ class ProfilesChecker {
40
+ constructor() {
41
+ this.name = 'Profiles';
42
+ this.ccsDir = path.join(os.homedir(), '.ccs');
43
+ }
44
+ run(results) {
45
+ const spinner = ora('Checking profiles').start();
46
+ const configPath = path.join(this.ccsDir, 'config.json');
47
+ if (!fs.existsSync(configPath)) {
48
+ spinner.info();
49
+ console.log(` ${(0, ui_1.info)('Profiles'.padEnd(22))} config.json not found`);
50
+ return;
51
+ }
52
+ try {
53
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
54
+ if (!config.profiles || typeof config.profiles !== 'object') {
55
+ spinner.fail();
56
+ console.log(` ${(0, ui_1.fail)('Profiles'.padEnd(22))} Missing profiles object`);
57
+ results.addCheck('Profiles', 'error', 'config.json missing profiles object', 'Run: npm install -g @kaitranntt/ccs --force', { status: 'ERROR', info: 'Missing profiles object' });
58
+ return;
59
+ }
60
+ const profileCount = Object.keys(config.profiles).length;
61
+ const profileNames = Object.keys(config.profiles).join(', ');
62
+ spinner.succeed();
63
+ console.log(` ${(0, ui_1.ok)('Profiles'.padEnd(22))} ${profileCount} configured (${profileNames})`);
64
+ results.addCheck('Profiles', 'success', `${profileCount} profiles configured`, undefined, {
65
+ status: 'OK',
66
+ info: `${profileCount} configured (${profileNames.length > 30 ? profileNames.substring(0, 27) + '...' : profileNames})`,
67
+ });
68
+ }
69
+ catch (e) {
70
+ spinner.fail();
71
+ console.log(` ${(0, ui_1.fail)('Profiles'.padEnd(22))} ${e.message}`);
72
+ results.addCheck('Profiles', 'error', e.message, undefined, {
73
+ status: 'ERROR',
74
+ info: e.message,
75
+ });
76
+ }
77
+ }
78
+ }
79
+ exports.ProfilesChecker = ProfilesChecker;
80
+ /**
81
+ * Check instance directories (account-based profiles)
82
+ */
83
+ class InstancesChecker {
84
+ constructor() {
85
+ this.name = 'Instances';
86
+ this.ccsDir = path.join(os.homedir(), '.ccs');
87
+ }
88
+ run(results) {
89
+ const spinner = ora('Checking instances').start();
90
+ const instancesDir = path.join(this.ccsDir, 'instances');
91
+ if (!fs.existsSync(instancesDir)) {
92
+ spinner.info();
93
+ console.log(` ${(0, ui_1.info)('Instances'.padEnd(22))} No account profiles`);
94
+ results.addCheck('Instances', 'success', 'No account profiles configured');
95
+ return;
96
+ }
97
+ const instances = fs.readdirSync(instancesDir).filter((name) => {
98
+ return fs.statSync(path.join(instancesDir, name)).isDirectory();
99
+ });
100
+ if (instances.length === 0) {
101
+ spinner.info();
102
+ console.log(` ${(0, ui_1.info)('Instances'.padEnd(22))} No account profiles`);
103
+ results.addCheck('Instances', 'success', 'No account profiles');
104
+ return;
105
+ }
106
+ spinner.succeed();
107
+ console.log(` ${(0, ui_1.ok)('Instances'.padEnd(22))} ${instances.length} account profiles`);
108
+ results.addCheck('Instances', 'success', `${instances.length} account profiles`);
109
+ }
110
+ }
111
+ exports.InstancesChecker = InstancesChecker;
112
+ /**
113
+ * Check delegation system (commands and ready profiles)
114
+ */
115
+ class DelegationChecker {
116
+ constructor() {
117
+ this.name = 'Delegation';
118
+ this.ccsDir = path.join(os.homedir(), '.ccs');
119
+ }
120
+ run(results) {
121
+ const spinner = ora('Checking delegation').start();
122
+ // Check if delegation commands exist in ~/.ccs/.claude/commands/
123
+ const ccsClaudeCommandsDir = path.join(this.ccsDir, '.claude', 'commands');
124
+ const hasCcsCommand = fs.existsSync(path.join(ccsClaudeCommandsDir, 'ccs.md'));
125
+ const hasContinueCommand = fs.existsSync(path.join(ccsClaudeCommandsDir, 'ccs', 'continue.md'));
126
+ if (!hasCcsCommand || !hasContinueCommand) {
127
+ spinner.warn();
128
+ console.log(` ${(0, ui_1.warn)('Delegation'.padEnd(22))} Not installed`);
129
+ results.addCheck('Delegation', 'warning', 'Delegation commands not found', 'Install with: npm install -g @kaitranntt/ccs --force', { status: 'WARN', info: 'Not installed' });
130
+ return;
131
+ }
132
+ // Check profile validity using DelegationValidator
133
+ const { DelegationValidator } = require('../../utils/delegation-validator');
134
+ const readyProfiles = [];
135
+ for (const profile of ['glm', 'kimi']) {
136
+ const validation = DelegationValidator.validate(profile);
137
+ if (validation.valid) {
138
+ readyProfiles.push(profile);
139
+ }
140
+ }
141
+ if (readyProfiles.length === 0) {
142
+ spinner.warn();
143
+ console.log(` ${(0, ui_1.warn)('Delegation'.padEnd(22))} No profiles ready`);
144
+ results.addCheck('Delegation', 'warning', 'Delegation installed but no profiles configured', 'Configure profiles with valid API keys (not placeholders)', { status: 'WARN', info: 'No profiles ready' });
145
+ return;
146
+ }
147
+ spinner.succeed();
148
+ console.log(` ${(0, ui_1.ok)('Delegation'.padEnd(22))} ${readyProfiles.length} profiles ready (${readyProfiles.join(', ')})`);
149
+ results.addCheck('Delegation', 'success', `${readyProfiles.length} profile(s) ready: ${readyProfiles.join(', ')}`, undefined, { status: 'OK', info: `${readyProfiles.length} profiles ready` });
150
+ }
151
+ }
152
+ exports.DelegationChecker = DelegationChecker;
153
+ /**
154
+ * Run all profile checks
155
+ */
156
+ function runProfileChecks(results) {
157
+ const profilesChecker = new ProfilesChecker();
158
+ const instancesChecker = new InstancesChecker();
159
+ const delegationChecker = new DelegationChecker();
160
+ profilesChecker.run(results);
161
+ instancesChecker.run(results);
162
+ delegationChecker.run(results);
163
+ }
164
+ exports.runProfileChecks = runProfileChecks;
165
+ //# sourceMappingURL=profile-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-check.js","sourceRoot":"","sources":["../../../src/management/checks/profile-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Symlink and Permission Health Checks
3
+ */
4
+ import { HealthCheck, IHealthChecker } from './types';
5
+ /**
6
+ * Check file permissions on ~/.ccs/
7
+ */
8
+ export declare class PermissionsChecker implements IHealthChecker {
9
+ name: string;
10
+ run(results: HealthCheck): void;
11
+ }
12
+ /**
13
+ * Check CCS symlinks to ~/.claude/
14
+ */
15
+ export declare class CcsSymlinksChecker implements IHealthChecker {
16
+ name: string;
17
+ run(results: HealthCheck): void;
18
+ }
19
+ /**
20
+ * Check settings.json symlinks for instances
21
+ */
22
+ export declare class SettingsSymlinksChecker implements IHealthChecker {
23
+ name: string;
24
+ run(results: HealthCheck): void;
25
+ }
26
+ /**
27
+ * Run all symlink checks
28
+ */
29
+ export declare function runSymlinkChecks(results: HealthCheck): void;
30
+ //# sourceMappingURL=symlink-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symlink-check.d.ts","sourceRoot":"","sources":["../../../src/management/checks/symlink-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAOrE;;GAEG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,IAAI,SAAiB;IAErB,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAyBhC;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,IAAI,SAAkB;IAEtB,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAoChC;AAgBD;;GAEG;AACH,qBAAa,uBAAwB,YAAW,cAAc;IAC5D,IAAI,SAAuB;IAE3B,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAgGhC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAI3D"}