@kaitranntt/ccs 6.7.0 → 6.7.1-dev.2

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 (628) 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/remote-proxy-client.d.ts +3 -0
  153. package/dist/cliproxy/remote-proxy-client.d.ts.map +1 -1
  154. package/dist/cliproxy/remote-proxy-client.js +7 -3
  155. package/dist/cliproxy/remote-proxy-client.js.map +1 -1
  156. package/dist/cliproxy/services/binary-service.d.ts +65 -0
  157. package/dist/cliproxy/services/binary-service.d.ts.map +1 -0
  158. package/dist/cliproxy/services/binary-service.js +140 -0
  159. package/dist/cliproxy/services/binary-service.js.map +1 -0
  160. package/dist/cliproxy/services/index.d.ts +8 -0
  161. package/dist/cliproxy/services/index.d.ts.map +1 -0
  162. package/dist/cliproxy/services/index.js +31 -0
  163. package/dist/cliproxy/services/index.js.map +1 -0
  164. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +38 -0
  165. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -0
  166. package/dist/cliproxy/services/proxy-lifecycle-service.js +41 -0
  167. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -0
  168. package/dist/cliproxy/services/variant-config-adapter.d.ts +38 -0
  169. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -0
  170. package/dist/cliproxy/services/variant-config-adapter.js +172 -0
  171. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -0
  172. package/dist/cliproxy/services/variant-service.d.ts +37 -0
  173. package/dist/cliproxy/services/variant-service.d.ts.map +1 -0
  174. package/dist/cliproxy/services/variant-service.js +128 -0
  175. package/dist/cliproxy/services/variant-service.js.map +1 -0
  176. package/dist/cliproxy/services/variant-settings.d.ts +32 -0
  177. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -0
  178. package/dist/cliproxy/services/variant-settings.js +128 -0
  179. package/dist/cliproxy/services/variant-settings.js.map +1 -0
  180. package/dist/commands/api-command.d.ts +3 -6
  181. package/dist/commands/api-command.d.ts.map +1 -1
  182. package/dist/commands/api-command.js +84 -445
  183. package/dist/commands/api-command.js.map +1 -1
  184. package/dist/commands/cliproxy-command.d.ts +0 -3
  185. package/dist/commands/cliproxy-command.d.ts.map +1 -1
  186. package/dist/commands/cliproxy-command.js +182 -621
  187. package/dist/commands/cliproxy-command.js.map +1 -1
  188. package/dist/commands/index.d.ts +17 -0
  189. package/dist/commands/index.d.ts.map +1 -0
  190. package/dist/commands/index.js +33 -0
  191. package/dist/commands/index.js.map +1 -0
  192. package/dist/config/unified-config-loader.d.ts +7 -0
  193. package/dist/config/unified-config-loader.d.ts.map +1 -1
  194. package/dist/config/unified-config-loader.js +11 -1
  195. package/dist/config/unified-config-loader.js.map +1 -1
  196. package/dist/delegation/executor/index.d.ts +7 -0
  197. package/dist/delegation/executor/index.d.ts.map +1 -0
  198. package/dist/delegation/executor/index.js +28 -0
  199. package/dist/delegation/executor/index.js.map +1 -0
  200. package/dist/delegation/executor/result-aggregator.d.ts +30 -0
  201. package/dist/delegation/executor/result-aggregator.d.ts.map +1 -0
  202. package/dist/delegation/executor/result-aggregator.js +66 -0
  203. package/dist/delegation/executor/result-aggregator.js.map +1 -0
  204. package/dist/delegation/executor/stream-parser.d.ts +28 -0
  205. package/dist/delegation/executor/stream-parser.d.ts.map +1 -0
  206. package/dist/delegation/executor/stream-parser.js +140 -0
  207. package/dist/delegation/executor/stream-parser.js.map +1 -0
  208. package/dist/delegation/executor/types.d.ts +121 -0
  209. package/dist/delegation/executor/types.d.ts.map +1 -0
  210. package/dist/delegation/executor/types.js +6 -0
  211. package/dist/delegation/executor/types.js.map +1 -0
  212. package/dist/delegation/headless-executor.d.ts +13 -91
  213. package/dist/delegation/headless-executor.d.ts.map +1 -1
  214. package/dist/delegation/headless-executor.js +84 -291
  215. package/dist/delegation/headless-executor.js.map +1 -1
  216. package/dist/delegation/index.d.ts +11 -0
  217. package/dist/delegation/index.d.ts.map +1 -0
  218. package/dist/delegation/index.js +33 -0
  219. package/dist/delegation/index.js.map +1 -0
  220. package/dist/delegation/result-formatter.d.ts +1 -30
  221. package/dist/delegation/result-formatter.d.ts.map +1 -1
  222. package/dist/delegation/result-formatter.js.map +1 -1
  223. package/dist/errors/cleanup-registry.d.ts +64 -0
  224. package/dist/errors/cleanup-registry.d.ts.map +1 -0
  225. package/dist/errors/cleanup-registry.js +141 -0
  226. package/dist/errors/cleanup-registry.js.map +1 -0
  227. package/dist/errors/error-handler.d.ts +45 -0
  228. package/dist/errors/error-handler.d.ts.map +1 -0
  229. package/dist/errors/error-handler.js +150 -0
  230. package/dist/errors/error-handler.js.map +1 -0
  231. package/dist/errors/error-types.d.ts +102 -0
  232. package/dist/errors/error-types.d.ts.map +1 -0
  233. package/dist/errors/error-types.js +158 -0
  234. package/dist/errors/error-types.js.map +1 -0
  235. package/dist/errors/exit-codes.d.ts +49 -0
  236. package/dist/errors/exit-codes.d.ts.map +1 -0
  237. package/dist/errors/exit-codes.js +72 -0
  238. package/dist/errors/exit-codes.js.map +1 -0
  239. package/dist/errors/index.d.ts +29 -0
  240. package/dist/errors/index.d.ts.map +1 -0
  241. package/dist/errors/index.js +62 -0
  242. package/dist/errors/index.js.map +1 -0
  243. package/dist/glmt/glmt-transformer.d.ts +29 -248
  244. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  245. package/dist/glmt/glmt-transformer.js +63 -718
  246. package/dist/glmt/glmt-transformer.js.map +1 -1
  247. package/dist/glmt/index.d.ts +14 -0
  248. package/dist/glmt/index.d.ts.map +1 -0
  249. package/dist/glmt/index.js +41 -0
  250. package/dist/glmt/index.js.map +1 -0
  251. package/dist/glmt/pipeline/content-transformer.d.ts +39 -0
  252. package/dist/glmt/pipeline/content-transformer.d.ts.map +1 -0
  253. package/dist/glmt/pipeline/content-transformer.js +162 -0
  254. package/dist/glmt/pipeline/content-transformer.js.map +1 -0
  255. package/dist/glmt/pipeline/index.d.ts +12 -0
  256. package/dist/glmt/pipeline/index.d.ts.map +1 -0
  257. package/dist/glmt/pipeline/index.js +20 -0
  258. package/dist/glmt/pipeline/index.js.map +1 -0
  259. package/dist/glmt/pipeline/request-transformer.d.ts +31 -0
  260. package/dist/glmt/pipeline/request-transformer.d.ts.map +1 -0
  261. package/dist/glmt/pipeline/request-transformer.js +116 -0
  262. package/dist/glmt/pipeline/request-transformer.js.map +1 -0
  263. package/dist/glmt/pipeline/response-builder.d.ts +52 -0
  264. package/dist/glmt/pipeline/response-builder.d.ts.map +1 -0
  265. package/dist/glmt/pipeline/response-builder.js +205 -0
  266. package/dist/glmt/pipeline/response-builder.js.map +1 -0
  267. package/dist/glmt/pipeline/stream-parser.d.ts +59 -0
  268. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -0
  269. package/dist/glmt/pipeline/stream-parser.js +241 -0
  270. package/dist/glmt/pipeline/stream-parser.js.map +1 -0
  271. package/dist/glmt/pipeline/tool-call-handler.d.ts +22 -0
  272. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -0
  273. package/dist/glmt/pipeline/tool-call-handler.js +87 -0
  274. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -0
  275. package/dist/glmt/pipeline/types.d.ts +159 -0
  276. package/dist/glmt/pipeline/types.d.ts.map +1 -0
  277. package/dist/glmt/pipeline/types.js +6 -0
  278. package/dist/glmt/pipeline/types.js.map +1 -0
  279. package/dist/management/checks/cliproxy-check.d.ts +37 -0
  280. package/dist/management/checks/cliproxy-check.d.ts.map +1 -0
  281. package/dist/management/checks/cliproxy-check.js +187 -0
  282. package/dist/management/checks/cliproxy-check.js.map +1 -0
  283. package/dist/management/checks/config-check.d.ts +27 -0
  284. package/dist/management/checks/config-check.d.ts.map +1 -0
  285. package/dist/management/checks/config-check.js +158 -0
  286. package/dist/management/checks/config-check.js.map +1 -0
  287. package/dist/management/checks/env-check.d.ts +17 -0
  288. package/dist/management/checks/env-check.d.ts.map +1 -0
  289. package/dist/management/checks/env-check.js +71 -0
  290. package/dist/management/checks/env-check.js.map +1 -0
  291. package/dist/management/checks/index.d.ts +12 -0
  292. package/dist/management/checks/index.d.ts.map +1 -0
  293. package/dist/management/checks/index.js +48 -0
  294. package/dist/management/checks/index.js.map +1 -0
  295. package/dist/management/checks/oauth-check.d.ts +16 -0
  296. package/dist/management/checks/oauth-check.d.ts.map +1 -0
  297. package/dist/management/checks/oauth-check.js +68 -0
  298. package/dist/management/checks/oauth-check.js.map +1 -0
  299. package/dist/management/checks/profile-check.d.ts +36 -0
  300. package/dist/management/checks/profile-check.d.ts.map +1 -0
  301. package/dist/management/checks/profile-check.js +165 -0
  302. package/dist/management/checks/profile-check.js.map +1 -0
  303. package/dist/management/checks/symlink-check.d.ts +30 -0
  304. package/dist/management/checks/symlink-check.d.ts.map +1 -0
  305. package/dist/management/checks/symlink-check.js +204 -0
  306. package/dist/management/checks/symlink-check.js.map +1 -0
  307. package/dist/management/checks/system-check.d.ts +25 -0
  308. package/dist/management/checks/system-check.d.ts.map +1 -0
  309. package/dist/management/checks/system-check.js +136 -0
  310. package/dist/management/checks/system-check.js.map +1 -0
  311. package/dist/management/checks/types.d.ts +64 -0
  312. package/dist/management/checks/types.d.ts.map +1 -0
  313. package/dist/management/checks/types.js +63 -0
  314. package/dist/management/checks/types.js.map +1 -0
  315. package/dist/management/doctor.d.ts +3 -92
  316. package/dist/management/doctor.d.ts.map +1 -1
  317. package/dist/management/doctor.js +15 -831
  318. package/dist/management/doctor.js.map +1 -1
  319. package/dist/management/index.d.ts +15 -0
  320. package/dist/management/index.d.ts.map +1 -0
  321. package/dist/management/index.js +56 -0
  322. package/dist/management/index.js.map +1 -0
  323. package/dist/management/repair/auto-repair.d.ts +13 -0
  324. package/dist/management/repair/auto-repair.d.ts.map +1 -0
  325. package/dist/management/repair/auto-repair.js +170 -0
  326. package/dist/management/repair/auto-repair.js.map +1 -0
  327. package/dist/management/repair/index.d.ts +5 -0
  328. package/dist/management/repair/index.d.ts.map +1 -0
  329. package/dist/management/repair/index.js +9 -0
  330. package/dist/management/repair/index.js.map +1 -0
  331. package/dist/types/delegation.d.ts +1 -13
  332. package/dist/types/delegation.d.ts.map +1 -1
  333. package/dist/types/utils.d.ts +27 -0
  334. package/dist/types/utils.d.ts.map +1 -1
  335. package/dist/ui/assets/{accounts-p1_nf0Jy.js → accounts--0JKEYYO.js} +1 -1
  336. package/dist/ui/assets/analytics-CX5PurM9.js +1 -0
  337. package/dist/ui/assets/api-D80tfZOx.js +1 -0
  338. package/dist/ui/assets/{card-CCDc-Mx9.js → card-B-DPlvgo.js} +1 -1
  339. package/dist/ui/assets/cliproxy-D4AoDTZB.js +3 -0
  340. package/dist/ui/assets/cliproxy-control-panel-CJ2CfYod.js +1 -0
  341. package/dist/ui/assets/{code-editor-Br9x-r-E.js → code-editor-DIj6qdUG.js} +1 -1
  342. package/dist/ui/assets/confirm-dialog-DZkzZLrs.js +1 -0
  343. package/dist/ui/assets/copilot-Q9tyCgYD.js +4 -0
  344. package/dist/ui/assets/form-utils-DP6ILe7Z.js +20 -0
  345. package/dist/ui/assets/health-Cw76uZRy.js +1 -0
  346. package/dist/ui/assets/{icons-BOsxPbiD.js → icons-ZmwVoUeR.js} +1 -1
  347. package/dist/ui/assets/index-C1W0iP_Z.js +46 -0
  348. package/dist/ui/assets/index-It66SkKf.css +1 -0
  349. package/dist/ui/assets/{radix-ui-DFHQr9A5.js → radix-ui-CV3R9pD6.js} +3 -3
  350. package/dist/ui/assets/settings-CDdHW_gU.js +1 -0
  351. package/dist/ui/assets/{shared-BfYhSN4-.js → shared--pI8rTbP.js} +1 -1
  352. package/dist/ui/assets/{switch-CMk95lwf.js → switch-BP6SzLyZ.js} +1 -1
  353. package/dist/ui/assets/{tanstack-C4gT2P7V.js → tanstack-Df9bCj5R.js} +1 -1
  354. package/dist/ui/index.html +6 -6
  355. package/dist/utils/claude-spawner.d.ts +54 -0
  356. package/dist/utils/claude-spawner.d.ts.map +1 -0
  357. package/dist/utils/claude-spawner.js +118 -0
  358. package/dist/utils/claude-spawner.js.map +1 -0
  359. package/dist/utils/delegation-validator.d.ts +8 -4
  360. package/dist/utils/delegation-validator.d.ts.map +1 -1
  361. package/dist/utils/delegation-validator.js.map +1 -1
  362. package/dist/utils/helpers.d.ts +0 -11
  363. package/dist/utils/helpers.d.ts.map +1 -1
  364. package/dist/utils/helpers.js +1 -57
  365. package/dist/utils/helpers.js.map +1 -1
  366. package/dist/utils/index.d.ts +15 -0
  367. package/dist/utils/index.d.ts.map +1 -0
  368. package/dist/utils/index.js +50 -0
  369. package/dist/utils/index.js.map +1 -0
  370. package/dist/utils/time.d.ts +10 -0
  371. package/dist/utils/time.d.ts.map +1 -0
  372. package/dist/utils/time.js +27 -0
  373. package/dist/utils/time.js.map +1 -0
  374. package/dist/utils/ui/boxes.d.ts +24 -0
  375. package/dist/utils/ui/boxes.d.ts.map +1 -0
  376. package/dist/utils/ui/boxes.js +108 -0
  377. package/dist/utils/ui/boxes.js.map +1 -0
  378. package/dist/utils/ui/colors.d.ts +25 -0
  379. package/dist/utils/ui/colors.d.ts.map +1 -0
  380. package/dist/utils/ui/colors.js +70 -0
  381. package/dist/utils/ui/colors.js.map +1 -0
  382. package/dist/utils/ui/index.d.ts +51 -0
  383. package/dist/utils/ui/index.d.ts.map +1 -0
  384. package/dist/utils/ui/index.js +96 -0
  385. package/dist/utils/ui/index.js.map +1 -0
  386. package/dist/utils/ui/indicators.d.ts +23 -0
  387. package/dist/utils/ui/indicators.d.ts.map +1 -0
  388. package/dist/utils/ui/indicators.js +39 -0
  389. package/dist/utils/ui/indicators.js.map +1 -0
  390. package/dist/utils/ui/init.d.ts +30 -0
  391. package/dist/utils/ui/init.d.ts.map +1 -0
  392. package/dist/utils/ui/init.js +102 -0
  393. package/dist/utils/ui/init.js.map +1 -0
  394. package/dist/utils/ui/spinner.d.ts +13 -0
  395. package/dist/utils/ui/spinner.d.ts.map +1 -0
  396. package/dist/utils/ui/spinner.js +89 -0
  397. package/dist/utils/ui/spinner.js.map +1 -0
  398. package/dist/utils/ui/tables.d.ts +12 -0
  399. package/dist/utils/ui/tables.d.ts.map +1 -0
  400. package/dist/utils/ui/tables.js +69 -0
  401. package/dist/utils/ui/tables.js.map +1 -0
  402. package/dist/utils/ui/tasks.d.ts +26 -0
  403. package/dist/utils/ui/tasks.d.ts.map +1 -0
  404. package/dist/utils/ui/tasks.js +102 -0
  405. package/dist/utils/ui/tasks.js.map +1 -0
  406. package/dist/utils/ui/text.d.ts +24 -0
  407. package/dist/utils/ui/text.d.ts.map +1 -0
  408. package/dist/utils/ui/text.js +60 -0
  409. package/dist/utils/ui/text.js.map +1 -0
  410. package/dist/utils/ui/types.d.ts +36 -0
  411. package/dist/utils/ui/types.d.ts.map +1 -0
  412. package/dist/utils/ui/types.js +33 -0
  413. package/dist/utils/ui/types.js.map +1 -0
  414. package/dist/utils/ui.d.ts +3 -138
  415. package/dist/utils/ui.d.ts.map +1 -1
  416. package/dist/utils/ui.js +40 -567
  417. package/dist/utils/ui.js.map +1 -1
  418. package/dist/utils/websearch/gemini-cli.d.ts +36 -0
  419. package/dist/utils/websearch/gemini-cli.d.ts.map +1 -0
  420. package/dist/utils/websearch/gemini-cli.js +132 -0
  421. package/dist/utils/websearch/gemini-cli.js.map +1 -0
  422. package/dist/utils/websearch/grok-cli.d.ts +26 -0
  423. package/dist/utils/websearch/grok-cli.d.ts.map +1 -0
  424. package/dist/utils/websearch/grok-cli.js +81 -0
  425. package/dist/utils/websearch/grok-cli.js.map +1 -0
  426. package/dist/utils/websearch/hook-config.d.ts +21 -0
  427. package/dist/utils/websearch/hook-config.d.ts.map +1 -0
  428. package/dist/utils/websearch/hook-config.js +183 -0
  429. package/dist/utils/websearch/hook-config.js.map +1 -0
  430. package/dist/utils/websearch/hook-env.d.ts +16 -0
  431. package/dist/utils/websearch/hook-env.d.ts.map +1 -0
  432. package/dist/utils/websearch/hook-env.js +62 -0
  433. package/dist/utils/websearch/hook-env.js.map +1 -0
  434. package/dist/utils/websearch/hook-installer.d.ts +27 -0
  435. package/dist/utils/websearch/hook-installer.d.ts.map +1 -0
  436. package/dist/utils/websearch/hook-installer.js +141 -0
  437. package/dist/utils/websearch/hook-installer.js.map +1 -0
  438. package/dist/utils/websearch/index.d.ts +15 -0
  439. package/dist/utils/websearch/index.d.ts.map +1 -0
  440. package/dist/utils/websearch/index.js +44 -0
  441. package/dist/utils/websearch/index.js.map +1 -0
  442. package/dist/utils/websearch/opencode-cli.d.ts +26 -0
  443. package/dist/utils/websearch/opencode-cli.d.ts.map +1 -0
  444. package/dist/utils/websearch/opencode-cli.js +81 -0
  445. package/dist/utils/websearch/opencode-cli.js.map +1 -0
  446. package/dist/utils/websearch/status.d.ts +35 -0
  447. package/dist/utils/websearch/status.d.ts.map +1 -0
  448. package/dist/utils/websearch/status.js +185 -0
  449. package/dist/utils/websearch/status.js.map +1 -0
  450. package/dist/utils/websearch/types.d.ts +85 -0
  451. package/dist/utils/websearch/types.d.ts.map +1 -0
  452. package/dist/utils/websearch/types.js +10 -0
  453. package/dist/utils/websearch/types.js.map +1 -0
  454. package/dist/utils/websearch-manager.d.ts +7 -186
  455. package/dist/utils/websearch-manager.d.ts.map +1 -1
  456. package/dist/utils/websearch-manager.js +37 -710
  457. package/dist/utils/websearch-manager.js.map +1 -1
  458. package/dist/web-server/data-aggregator.d.ts +3 -51
  459. package/dist/web-server/data-aggregator.d.ts.map +1 -1
  460. package/dist/web-server/data-aggregator.js +18 -386
  461. package/dist/web-server/data-aggregator.js.map +1 -1
  462. package/dist/web-server/health/cliproxy-checks.d.ts +23 -0
  463. package/dist/web-server/health/cliproxy-checks.d.ts.map +1 -0
  464. package/dist/web-server/health/cliproxy-checks.js +145 -0
  465. package/dist/web-server/health/cliproxy-checks.js.map +1 -0
  466. package/dist/web-server/health/config-checks.d.ts +19 -0
  467. package/dist/web-server/health/config-checks.d.ts.map +1 -0
  468. package/dist/web-server/health/config-checks.js +174 -0
  469. package/dist/web-server/health/config-checks.js.map +1 -0
  470. package/dist/web-server/health/environment-checks.d.ts +11 -0
  471. package/dist/web-server/health/environment-checks.d.ts.map +1 -0
  472. package/dist/web-server/health/environment-checks.js +40 -0
  473. package/dist/web-server/health/environment-checks.js.map +1 -0
  474. package/dist/web-server/health/index.d.ts +13 -0
  475. package/dist/web-server/health/index.d.ts.map +1 -0
  476. package/dist/web-server/health/index.js +41 -0
  477. package/dist/web-server/health/index.js.map +1 -0
  478. package/dist/web-server/health/oauth-checks.d.ts +11 -0
  479. package/dist/web-server/health/oauth-checks.d.ts.map +1 -0
  480. package/dist/web-server/health/oauth-checks.js +34 -0
  481. package/dist/web-server/health/oauth-checks.js.map +1 -0
  482. package/dist/web-server/health/profile-checks.d.ts +19 -0
  483. package/dist/web-server/health/profile-checks.d.ts.map +1 -0
  484. package/dist/web-server/health/profile-checks.js +152 -0
  485. package/dist/web-server/health/profile-checks.js.map +1 -0
  486. package/dist/web-server/health/symlink-checks.d.ts +15 -0
  487. package/dist/web-server/health/symlink-checks.d.ts.map +1 -0
  488. package/dist/web-server/health/symlink-checks.js +173 -0
  489. package/dist/web-server/health/symlink-checks.js.map +1 -0
  490. package/dist/web-server/health/system-checks.d.ts +19 -0
  491. package/dist/web-server/health/system-checks.d.ts.map +1 -0
  492. package/dist/web-server/health/system-checks.js +127 -0
  493. package/dist/web-server/health/system-checks.js.map +1 -0
  494. package/dist/web-server/health/types.d.ts +34 -0
  495. package/dist/web-server/health/types.d.ts.map +1 -0
  496. package/dist/web-server/health/types.js +8 -0
  497. package/dist/web-server/health/types.js.map +1 -0
  498. package/dist/web-server/health/websearch-checks.d.ts +11 -0
  499. package/dist/web-server/health/websearch-checks.d.ts.map +1 -0
  500. package/dist/web-server/health/websearch-checks.js +53 -0
  501. package/dist/web-server/health/websearch-checks.js.map +1 -0
  502. package/dist/web-server/health-service.d.ts +4 -30
  503. package/dist/web-server/health-service.d.ts.map +1 -1
  504. package/dist/web-server/health-service.js +28 -695
  505. package/dist/web-server/health-service.js.map +1 -1
  506. package/dist/web-server/index.d.ts.map +1 -1
  507. package/dist/web-server/index.js +2 -5
  508. package/dist/web-server/index.js.map +1 -1
  509. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +6 -0
  510. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -0
  511. package/dist/web-server/routes/cliproxy-auth-routes.js +202 -0
  512. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -0
  513. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +6 -0
  514. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -0
  515. package/dist/web-server/routes/cliproxy-stats-routes.js +253 -0
  516. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -0
  517. package/dist/web-server/routes/config-routes.d.ts +6 -0
  518. package/dist/web-server/routes/config-routes.d.ts.map +1 -0
  519. package/dist/web-server/routes/config-routes.js +145 -0
  520. package/dist/web-server/routes/config-routes.js.map +1 -0
  521. package/dist/web-server/routes/copilot-routes.d.ts +6 -0
  522. package/dist/web-server/routes/copilot-routes.d.ts.map +1 -0
  523. package/dist/web-server/routes/copilot-routes.js +195 -0
  524. package/dist/web-server/routes/copilot-routes.js.map +1 -0
  525. package/dist/web-server/routes/copilot-settings-routes.d.ts +6 -0
  526. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -0
  527. package/dist/web-server/routes/copilot-settings-routes.js +122 -0
  528. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -0
  529. package/dist/web-server/routes/health-routes.d.ts +6 -0
  530. package/dist/web-server/routes/health-routes.d.ts.map +1 -0
  531. package/dist/web-server/routes/health-routes.js +30 -0
  532. package/dist/web-server/routes/health-routes.js.map +1 -0
  533. package/dist/web-server/routes/index.d.ts +8 -0
  534. package/dist/web-server/routes/index.d.ts.map +1 -0
  535. package/dist/web-server/routes/index.js +54 -0
  536. package/dist/web-server/routes/index.js.map +1 -0
  537. package/dist/web-server/routes/misc-routes.d.ts +6 -0
  538. package/dist/web-server/routes/misc-routes.d.ts.map +1 -0
  539. package/dist/web-server/routes/misc-routes.js +219 -0
  540. package/dist/web-server/routes/misc-routes.js.map +1 -0
  541. package/dist/web-server/routes/profile-routes.d.ts +6 -0
  542. package/dist/web-server/routes/profile-routes.d.ts.map +1 -0
  543. package/dist/web-server/routes/profile-routes.js +164 -0
  544. package/dist/web-server/routes/profile-routes.js.map +1 -0
  545. package/dist/web-server/routes/provider-routes.d.ts +6 -0
  546. package/dist/web-server/routes/provider-routes.d.ts.map +1 -0
  547. package/dist/web-server/routes/provider-routes.js +146 -0
  548. package/dist/web-server/routes/provider-routes.js.map +1 -0
  549. package/dist/web-server/routes/route-helpers.d.ts +55 -0
  550. package/dist/web-server/routes/route-helpers.d.ts.map +1 -0
  551. package/dist/web-server/routes/route-helpers.js +201 -0
  552. package/dist/web-server/routes/route-helpers.js.map +1 -0
  553. package/dist/web-server/routes/settings-routes.d.ts +6 -0
  554. package/dist/web-server/routes/settings-routes.d.ts.map +1 -0
  555. package/dist/web-server/routes/settings-routes.js +207 -0
  556. package/dist/web-server/routes/settings-routes.js.map +1 -0
  557. package/dist/web-server/routes/variant-routes.d.ts +6 -0
  558. package/dist/web-server/routes/variant-routes.d.ts.map +1 -0
  559. package/dist/web-server/routes/variant-routes.js +158 -0
  560. package/dist/web-server/routes/variant-routes.js.map +1 -0
  561. package/dist/web-server/routes/websearch-routes.d.ts +6 -0
  562. package/dist/web-server/routes/websearch-routes.d.ts.map +1 -0
  563. package/dist/web-server/routes/websearch-routes.js +130 -0
  564. package/dist/web-server/routes/websearch-routes.js.map +1 -0
  565. package/dist/web-server/services/index.d.ts +7 -0
  566. package/dist/web-server/services/index.d.ts.map +1 -0
  567. package/dist/web-server/services/index.js +21 -0
  568. package/dist/web-server/services/index.js.map +1 -0
  569. package/dist/web-server/services/usage-aggregator.d.ts +7 -0
  570. package/dist/web-server/services/usage-aggregator.d.ts.map +1 -0
  571. package/dist/web-server/services/usage-aggregator.js +23 -0
  572. package/dist/web-server/services/usage-aggregator.js.map +1 -0
  573. package/dist/web-server/usage/aggregator.d.ts +54 -0
  574. package/dist/web-server/usage/aggregator.d.ts.map +1 -0
  575. package/dist/web-server/usage/aggregator.js +470 -0
  576. package/dist/web-server/usage/aggregator.js.map +1 -0
  577. package/dist/web-server/usage/data-aggregator.d.ts +55 -0
  578. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -0
  579. package/dist/web-server/usage/data-aggregator.js +391 -0
  580. package/dist/web-server/usage/data-aggregator.js.map +1 -0
  581. package/dist/web-server/usage/disk-cache.d.ts +46 -0
  582. package/dist/web-server/usage/disk-cache.d.ts.map +1 -0
  583. package/dist/web-server/usage/disk-cache.js +162 -0
  584. package/dist/web-server/usage/disk-cache.js.map +1 -0
  585. package/dist/web-server/usage/handlers.d.ts +50 -0
  586. package/dist/web-server/usage/handlers.d.ts.map +1 -0
  587. package/dist/web-server/usage/handlers.js +524 -0
  588. package/dist/web-server/usage/handlers.js.map +1 -0
  589. package/dist/web-server/usage/index.d.ts +12 -0
  590. package/dist/web-server/usage/index.d.ts.map +1 -0
  591. package/dist/web-server/usage/index.js +54 -0
  592. package/dist/web-server/usage/index.js.map +1 -0
  593. package/dist/web-server/usage/routes.d.ts +11 -0
  594. package/dist/web-server/usage/routes.d.ts.map +1 -0
  595. package/dist/web-server/usage/routes.js +37 -0
  596. package/dist/web-server/usage/routes.js.map +1 -0
  597. package/dist/web-server/usage/types.d.ts +119 -0
  598. package/dist/web-server/usage/types.d.ts.map +1 -0
  599. package/dist/web-server/usage/types.js +9 -0
  600. package/dist/web-server/usage/types.js.map +1 -0
  601. package/dist/web-server/usage-disk-cache.d.ts +3 -42
  602. package/dist/web-server/usage-disk-cache.d.ts.map +1 -1
  603. package/dist/web-server/usage-disk-cache.js +5 -144
  604. package/dist/web-server/usage-disk-cache.js.map +1 -1
  605. package/dist/web-server/usage-routes.d.ts +3 -31
  606. package/dist/web-server/usage-routes.d.ts.map +1 -1
  607. package/dist/web-server/usage-routes.js +8 -1139
  608. package/dist/web-server/usage-routes.js.map +1 -1
  609. package/dist/web-server/usage-types.d.ts +3 -115
  610. package/dist/web-server/usage-types.d.ts.map +1 -1
  611. package/dist/web-server/usage-types.js +17 -3
  612. package/dist/web-server/usage-types.js.map +1 -1
  613. package/package.json +1 -1
  614. package/scripts/dev-release.sh +113 -0
  615. package/dist/ui/assets/analytics-D1k2nYcF.js +0 -1
  616. package/dist/ui/assets/api-D9VVmZ1j.js +0 -1
  617. package/dist/ui/assets/cliproxy-CTt_Nsft.js +0 -1
  618. package/dist/ui/assets/cliproxy-control-panel-DKMAi4_4.js +0 -1
  619. package/dist/ui/assets/copilot-C6F8PT_L.js +0 -4
  620. package/dist/ui/assets/form-utils-BuXDJb0w.js +0 -20
  621. package/dist/ui/assets/health-DiAvJaSn.js +0 -1
  622. package/dist/ui/assets/index-Brq6EBKZ.css +0 -1
  623. package/dist/ui/assets/index-ByU8ZhED.js +0 -48
  624. package/dist/ui/assets/settings-CEomZLGl.js +0 -1
  625. package/dist/web-server/routes.d.ts +0 -7
  626. package/dist/web-server/routes.d.ts.map +0 -1
  627. package/dist/web-server/routes.js +0 -1891
  628. package/dist/web-server/routes.js.map +0 -1
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ /**
3
+ * WebSearch Hook Installer
4
+ *
5
+ * Manages installation and uninstallation of the WebSearch hook.
6
+ *
7
+ * @module utils/websearch/hook-installer
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.uninstallWebSearchHook = exports.installWebSearchHook = exports.hasWebSearchHook = exports.getWebSearchHookConfig = exports.getHookPath = void 0;
34
+ const fs = __importStar(require("fs"));
35
+ const path = __importStar(require("path"));
36
+ const os = __importStar(require("os"));
37
+ const ui_1 = require("../ui");
38
+ const unified_config_loader_1 = require("../../config/unified-config-loader");
39
+ const hook_config_1 = require("./hook-config");
40
+ // Re-export from hook-config for backward compatibility
41
+ var hook_config_2 = require("./hook-config");
42
+ Object.defineProperty(exports, "getHookPath", { enumerable: true, get: function () { return hook_config_2.getHookPath; } });
43
+ Object.defineProperty(exports, "getWebSearchHookConfig", { enumerable: true, get: function () { return hook_config_2.getWebSearchHookConfig; } });
44
+ // CCS hooks directory
45
+ const CCS_HOOKS_DIR = path.join(os.homedir(), '.ccs', 'hooks');
46
+ // Hook file name
47
+ const WEBSEARCH_HOOK = 'websearch-transformer.cjs';
48
+ /**
49
+ * Check if WebSearch hook is installed
50
+ */
51
+ function hasWebSearchHook() {
52
+ return fs.existsSync((0, hook_config_1.getHookPath)());
53
+ }
54
+ exports.hasWebSearchHook = hasWebSearchHook;
55
+ /**
56
+ * Install WebSearch hook to ~/.ccs/hooks/
57
+ *
58
+ * This hook intercepts WebSearch and executes via Gemini CLI.
59
+ *
60
+ * @returns true if hook installed successfully
61
+ */
62
+ function installWebSearchHook() {
63
+ try {
64
+ const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
65
+ // Skip if disabled
66
+ if (!wsConfig.enabled) {
67
+ if (process.env.CCS_DEBUG) {
68
+ console.error((0, ui_1.info)('WebSearch disabled - skipping hook install'));
69
+ }
70
+ return false;
71
+ }
72
+ // Ensure hooks directory exists
73
+ if (!fs.existsSync(CCS_HOOKS_DIR)) {
74
+ fs.mkdirSync(CCS_HOOKS_DIR, { recursive: true, mode: 0o700 });
75
+ }
76
+ const hookPath = (0, hook_config_1.getHookPath)();
77
+ // Find the bundled hook script
78
+ // In npm package: node_modules/ccs/lib/hooks/
79
+ // In development: lib/hooks/
80
+ const possiblePaths = [
81
+ path.join(__dirname, '..', '..', '..', 'lib', 'hooks', WEBSEARCH_HOOK),
82
+ path.join(__dirname, '..', '..', 'lib', 'hooks', WEBSEARCH_HOOK),
83
+ path.join(__dirname, '..', 'lib', 'hooks', WEBSEARCH_HOOK),
84
+ ];
85
+ let sourcePath = null;
86
+ for (const p of possiblePaths) {
87
+ if (fs.existsSync(p)) {
88
+ sourcePath = p;
89
+ break;
90
+ }
91
+ }
92
+ if (!sourcePath) {
93
+ if (process.env.CCS_DEBUG) {
94
+ console.error((0, ui_1.warn)(`WebSearch hook source not found: ${WEBSEARCH_HOOK}`));
95
+ }
96
+ return false;
97
+ }
98
+ // Copy hook to ~/.ccs/hooks/
99
+ fs.copyFileSync(sourcePath, hookPath);
100
+ fs.chmodSync(hookPath, 0o755);
101
+ if (process.env.CCS_DEBUG) {
102
+ console.error((0, ui_1.info)(`Installed WebSearch hook: ${hookPath}`));
103
+ }
104
+ // Ensure hook is configured in settings.json
105
+ (0, hook_config_1.ensureHookConfig)();
106
+ return true;
107
+ }
108
+ catch (error) {
109
+ if (process.env.CCS_DEBUG) {
110
+ console.error((0, ui_1.warn)(`Failed to install WebSearch hook: ${error.message}`));
111
+ }
112
+ return false;
113
+ }
114
+ }
115
+ exports.installWebSearchHook = installWebSearchHook;
116
+ /**
117
+ * Uninstall WebSearch hook from ~/.ccs/hooks/
118
+ *
119
+ * @returns true if hook uninstalled successfully
120
+ */
121
+ function uninstallWebSearchHook() {
122
+ try {
123
+ const hookPath = (0, hook_config_1.getHookPath)();
124
+ if (fs.existsSync(hookPath)) {
125
+ fs.unlinkSync(hookPath);
126
+ if (process.env.CCS_DEBUG) {
127
+ console.error((0, ui_1.info)(`Uninstalled WebSearch hook: ${hookPath}`));
128
+ }
129
+ }
130
+ // TODO: Optionally remove from settings.json
131
+ return true;
132
+ }
133
+ catch (error) {
134
+ if (process.env.CCS_DEBUG) {
135
+ console.error((0, ui_1.warn)(`Failed to uninstall WebSearch hook: ${error.message}`));
136
+ }
137
+ return false;
138
+ }
139
+ }
140
+ exports.uninstallWebSearchHook = uninstallWebSearchHook;
141
+ //# sourceMappingURL=hook-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-installer.js","sourceRoot":"","sources":["../../../src/utils/websearch/hook-installer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * WebSearch Module Barrel Export
3
+ *
4
+ * Re-exports all WebSearch functionality from submodules.
5
+ *
6
+ * @module utils/websearch
7
+ */
8
+ export type { GeminiCliStatus, GrokCliStatus, OpenCodeCliStatus, WebSearchReadiness, WebSearchStatus, WebSearchCliInfo, WebSearchProviderConfig, WebSearchConfig, } from './types';
9
+ export { getGeminiCliStatus, hasGeminiCli, isGeminiAuthenticated, clearGeminiCliCache, } from './gemini-cli';
10
+ export { getGrokCliStatus, hasGrokCli, clearGrokCliCache } from './grok-cli';
11
+ export { getOpenCodeCliStatus, hasOpenCodeCli, clearOpenCodeCliCache } from './opencode-cli';
12
+ export { getHookPath, hasWebSearchHook, getWebSearchHookConfig, installWebSearchHook, uninstallWebSearchHook, } from './hook-installer';
13
+ export { getWebSearchHookEnv } from './hook-env';
14
+ export { getWebSearchCliProviders, hasAnyWebSearchCli, getCliInstallHints, getWebSearchReadiness, displayWebSearchStatus, } from './status';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG7E,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * WebSearch Module Barrel Export
4
+ *
5
+ * Re-exports all WebSearch functionality from submodules.
6
+ *
7
+ * @module utils/websearch
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.displayWebSearchStatus = exports.getWebSearchReadiness = exports.getCliInstallHints = exports.hasAnyWebSearchCli = exports.getWebSearchCliProviders = exports.getWebSearchHookEnv = exports.uninstallWebSearchHook = exports.installWebSearchHook = exports.getWebSearchHookConfig = exports.hasWebSearchHook = exports.getHookPath = exports.clearOpenCodeCliCache = exports.hasOpenCodeCli = exports.getOpenCodeCliStatus = exports.clearGrokCliCache = exports.hasGrokCli = exports.getGrokCliStatus = exports.clearGeminiCliCache = exports.isGeminiAuthenticated = exports.hasGeminiCli = exports.getGeminiCliStatus = void 0;
11
+ // Gemini CLI
12
+ var gemini_cli_1 = require("./gemini-cli");
13
+ Object.defineProperty(exports, "getGeminiCliStatus", { enumerable: true, get: function () { return gemini_cli_1.getGeminiCliStatus; } });
14
+ Object.defineProperty(exports, "hasGeminiCli", { enumerable: true, get: function () { return gemini_cli_1.hasGeminiCli; } });
15
+ Object.defineProperty(exports, "isGeminiAuthenticated", { enumerable: true, get: function () { return gemini_cli_1.isGeminiAuthenticated; } });
16
+ Object.defineProperty(exports, "clearGeminiCliCache", { enumerable: true, get: function () { return gemini_cli_1.clearGeminiCliCache; } });
17
+ // Grok CLI
18
+ var grok_cli_1 = require("./grok-cli");
19
+ Object.defineProperty(exports, "getGrokCliStatus", { enumerable: true, get: function () { return grok_cli_1.getGrokCliStatus; } });
20
+ Object.defineProperty(exports, "hasGrokCli", { enumerable: true, get: function () { return grok_cli_1.hasGrokCli; } });
21
+ Object.defineProperty(exports, "clearGrokCliCache", { enumerable: true, get: function () { return grok_cli_1.clearGrokCliCache; } });
22
+ // OpenCode CLI
23
+ var opencode_cli_1 = require("./opencode-cli");
24
+ Object.defineProperty(exports, "getOpenCodeCliStatus", { enumerable: true, get: function () { return opencode_cli_1.getOpenCodeCliStatus; } });
25
+ Object.defineProperty(exports, "hasOpenCodeCli", { enumerable: true, get: function () { return opencode_cli_1.hasOpenCodeCli; } });
26
+ Object.defineProperty(exports, "clearOpenCodeCliCache", { enumerable: true, get: function () { return opencode_cli_1.clearOpenCodeCliCache; } });
27
+ // Hook Installation
28
+ var hook_installer_1 = require("./hook-installer");
29
+ Object.defineProperty(exports, "getHookPath", { enumerable: true, get: function () { return hook_installer_1.getHookPath; } });
30
+ Object.defineProperty(exports, "hasWebSearchHook", { enumerable: true, get: function () { return hook_installer_1.hasWebSearchHook; } });
31
+ Object.defineProperty(exports, "getWebSearchHookConfig", { enumerable: true, get: function () { return hook_installer_1.getWebSearchHookConfig; } });
32
+ Object.defineProperty(exports, "installWebSearchHook", { enumerable: true, get: function () { return hook_installer_1.installWebSearchHook; } });
33
+ Object.defineProperty(exports, "uninstallWebSearchHook", { enumerable: true, get: function () { return hook_installer_1.uninstallWebSearchHook; } });
34
+ // Hook Environment
35
+ var hook_env_1 = require("./hook-env");
36
+ Object.defineProperty(exports, "getWebSearchHookEnv", { enumerable: true, get: function () { return hook_env_1.getWebSearchHookEnv; } });
37
+ // Status and Readiness
38
+ var status_1 = require("./status");
39
+ Object.defineProperty(exports, "getWebSearchCliProviders", { enumerable: true, get: function () { return status_1.getWebSearchCliProviders; } });
40
+ Object.defineProperty(exports, "hasAnyWebSearchCli", { enumerable: true, get: function () { return status_1.hasAnyWebSearchCli; } });
41
+ Object.defineProperty(exports, "getCliInstallHints", { enumerable: true, get: function () { return status_1.getCliInstallHints; } });
42
+ Object.defineProperty(exports, "getWebSearchReadiness", { enumerable: true, get: function () { return status_1.getWebSearchReadiness; } });
43
+ Object.defineProperty(exports, "displayWebSearchStatus", { enumerable: true, get: function () { return status_1.displayWebSearchStatus; } });
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/websearch/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAcH,aAAa;AACb,2CAKsB;AAJpB,gHAAA,kBAAkB,OAAA;AAClB,0GAAA,YAAY,OAAA;AACZ,mHAAA,qBAAqB,OAAA;AACrB,iHAAA,mBAAmB,OAAA;AAGrB,WAAW;AACX,uCAA6E;AAApE,4GAAA,gBAAgB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAExD,eAAe;AACf,+CAA6F;AAApF,oHAAA,oBAAoB,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,qHAAA,qBAAqB,OAAA;AAEpE,oBAAoB;AACpB,mDAM0B;AALxB,6GAAA,WAAW,OAAA;AACX,kHAAA,gBAAgB,OAAA;AAChB,wHAAA,sBAAsB,OAAA;AACtB,sHAAA,oBAAoB,OAAA;AACpB,wHAAA,sBAAsB,OAAA;AAGxB,mBAAmB;AACnB,uCAAiD;AAAxC,+GAAA,mBAAmB,OAAA;AAE5B,uBAAuB;AACvB,mCAMkB;AALhB,kHAAA,wBAAwB,OAAA;AACxB,4GAAA,kBAAkB,OAAA;AAClB,4GAAA,kBAAkB,OAAA;AAClB,+GAAA,qBAAqB,OAAA;AACrB,gHAAA,sBAAsB,OAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * OpenCode CLI Detection
3
+ *
4
+ * Detects and manages OpenCode CLI installation status.
5
+ *
6
+ * @module utils/websearch/opencode-cli
7
+ */
8
+ import type { OpenCodeCliStatus } from './types';
9
+ /**
10
+ * Check if OpenCode CLI is installed globally
11
+ *
12
+ * OpenCode provides built-in web search via opencode/grok-code model.
13
+ * Install: curl -fsSL https://opencode.ai/install | bash
14
+ *
15
+ * @returns OpenCode CLI status with path and version
16
+ */
17
+ export declare function getOpenCodeCliStatus(): OpenCodeCliStatus;
18
+ /**
19
+ * Check if OpenCode CLI is available (quick boolean check)
20
+ */
21
+ export declare function hasOpenCodeCli(): boolean;
22
+ /**
23
+ * Clear OpenCode CLI cache (for testing or after installation)
24
+ */
25
+ export declare function clearOpenCodeCliCache(): void;
26
+ //# sourceMappingURL=opencode-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-cli.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/opencode-cli.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAgDxD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /**
3
+ * OpenCode CLI Detection
4
+ *
5
+ * Detects and manages OpenCode CLI installation status.
6
+ *
7
+ * @module utils/websearch/opencode-cli
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.clearOpenCodeCliCache = exports.hasOpenCodeCli = exports.getOpenCodeCliStatus = void 0;
11
+ const child_process_1 = require("child_process");
12
+ // Cache for OpenCode CLI status (per process)
13
+ let opencodeCliCache = null;
14
+ /**
15
+ * Check if OpenCode CLI is installed globally
16
+ *
17
+ * OpenCode provides built-in web search via opencode/grok-code model.
18
+ * Install: curl -fsSL https://opencode.ai/install | bash
19
+ *
20
+ * @returns OpenCode CLI status with path and version
21
+ */
22
+ function getOpenCodeCliStatus() {
23
+ // Return cached result if available
24
+ if (opencodeCliCache) {
25
+ return opencodeCliCache;
26
+ }
27
+ const result = {
28
+ installed: false,
29
+ path: undefined,
30
+ version: undefined,
31
+ };
32
+ try {
33
+ const isWindows = process.platform === 'win32';
34
+ const whichCmd = isWindows ? 'where opencode' : 'which opencode';
35
+ const pathResult = (0, child_process_1.execSync)(whichCmd, {
36
+ encoding: 'utf8',
37
+ timeout: 5000,
38
+ stdio: ['pipe', 'pipe', 'pipe'],
39
+ });
40
+ const opencodePath = pathResult.trim().split('\n')[0]; // First result on Windows
41
+ if (opencodePath) {
42
+ result.installed = true;
43
+ result.path = opencodePath;
44
+ // Try to get version
45
+ try {
46
+ const versionResult = (0, child_process_1.execSync)('opencode --version', {
47
+ encoding: 'utf8',
48
+ timeout: 5000,
49
+ stdio: ['pipe', 'pipe', 'pipe'],
50
+ });
51
+ result.version = versionResult.trim();
52
+ }
53
+ catch {
54
+ // Version check failed, but CLI is installed
55
+ result.version = 'unknown';
56
+ }
57
+ }
58
+ }
59
+ catch {
60
+ // Command not found - OpenCode CLI not installed
61
+ }
62
+ // Cache result
63
+ opencodeCliCache = result;
64
+ return result;
65
+ }
66
+ exports.getOpenCodeCliStatus = getOpenCodeCliStatus;
67
+ /**
68
+ * Check if OpenCode CLI is available (quick boolean check)
69
+ */
70
+ function hasOpenCodeCli() {
71
+ return getOpenCodeCliStatus().installed;
72
+ }
73
+ exports.hasOpenCodeCli = hasOpenCodeCli;
74
+ /**
75
+ * Clear OpenCode CLI cache (for testing or after installation)
76
+ */
77
+ function clearOpenCodeCliCache() {
78
+ opencodeCliCache = null;
79
+ }
80
+ exports.clearOpenCodeCliCache = clearOpenCodeCliCache;
81
+ //# sourceMappingURL=opencode-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-cli.js","sourceRoot":"","sources":["../../../src/utils/websearch/opencode-cli.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,iDAAyC;AAGzC,8CAA8C;AAC9C,IAAI,gBAAgB,GAA6B,IAAI,CAAC;AAEtD;;;;;;;GAOG;AACH,SAAgB,oBAAoB;IAClC,oCAAoC;IACpC,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAsB;QAChC,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;KACnB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAEjE,MAAM,UAAU,GAAG,IAAA,wBAAQ,EAAC,QAAQ,EAAE;YACpC,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;QAEjF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;YAE3B,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAAC,oBAAoB,EAAE;oBACnD,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC;gBACH,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,6CAA6C;gBAC7C,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;IAED,eAAe;IACf,gBAAgB,GAAG,MAAM,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAhDD,oDAgDC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,oBAAoB,EAAE,CAAC,SAAS,CAAC;AAC1C,CAAC;AAFD,wCAEC;AAED;;GAEG;AACH,SAAgB,qBAAqB;IACnC,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAFD,sDAEC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * WebSearch Status and Readiness
3
+ *
4
+ * Provides status checking and display functions for WebSearch.
5
+ *
6
+ * @module utils/websearch/status
7
+ */
8
+ import type { WebSearchCliInfo, WebSearchStatus } from './types';
9
+ /**
10
+ * Get all WebSearch CLI providers with their status
11
+ */
12
+ export declare function getWebSearchCliProviders(): WebSearchCliInfo[];
13
+ /**
14
+ * Check if any WebSearch CLI is available
15
+ */
16
+ export declare function hasAnyWebSearchCli(): boolean;
17
+ /**
18
+ * Get install hints for CLI-only users when no WebSearch CLI is installed
19
+ */
20
+ export declare function getCliInstallHints(): string[];
21
+ /**
22
+ * Get WebSearch readiness status for display
23
+ *
24
+ * Called on third-party profile startup to inform user.
25
+ * Checks both installation AND authentication status for Gemini CLI.
26
+ */
27
+ export declare function getWebSearchReadiness(): WebSearchStatus;
28
+ /**
29
+ * Display WebSearch status (single line, equilibrium UX)
30
+ *
31
+ * Only call for third-party profiles.
32
+ * Shows detailed install hints when no CLI is installed.
33
+ */
34
+ export declare function displayWebSearchStatus(): void;
35
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,gBAAgB,EAAE,CA4C7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAW7C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAqEvD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAoB7C"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ /**
3
+ * WebSearch Status and Readiness
4
+ *
5
+ * Provides status checking and display functions for WebSearch.
6
+ *
7
+ * @module utils/websearch/status
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.displayWebSearchStatus = exports.getWebSearchReadiness = exports.getCliInstallHints = exports.hasAnyWebSearchCli = exports.getWebSearchCliProviders = void 0;
11
+ const ui_1 = require("../ui");
12
+ const unified_config_loader_1 = require("../../config/unified-config-loader");
13
+ const gemini_cli_1 = require("./gemini-cli");
14
+ const grok_cli_1 = require("./grok-cli");
15
+ const opencode_cli_1 = require("./opencode-cli");
16
+ /**
17
+ * Get all WebSearch CLI providers with their status
18
+ */
19
+ function getWebSearchCliProviders() {
20
+ const geminiStatus = (0, gemini_cli_1.getGeminiCliStatus)();
21
+ const grokStatus = (0, grok_cli_1.getGrokCliStatus)();
22
+ const opencodeStatus = (0, opencode_cli_1.getOpenCodeCliStatus)();
23
+ return [
24
+ {
25
+ id: 'gemini',
26
+ name: 'Gemini CLI',
27
+ command: 'gemini',
28
+ installed: geminiStatus.installed,
29
+ version: geminiStatus.version ?? null,
30
+ installCommand: 'npm install -g @google/gemini-cli',
31
+ docsUrl: 'https://github.com/google-gemini/gemini-cli',
32
+ requiresApiKey: false,
33
+ description: 'Google Gemini with web search (FREE tier: 1000 req/day)',
34
+ freeTier: true,
35
+ },
36
+ {
37
+ id: 'opencode',
38
+ name: 'OpenCode',
39
+ command: 'opencode',
40
+ installed: opencodeStatus.installed,
41
+ version: opencodeStatus.version ?? null,
42
+ installCommand: 'curl -fsSL https://opencode.ai/install | bash',
43
+ docsUrl: 'https://github.com/sst/opencode',
44
+ requiresApiKey: false,
45
+ description: 'OpenCode with built-in web search (FREE via Zen)',
46
+ freeTier: true,
47
+ },
48
+ {
49
+ id: 'grok',
50
+ name: 'Grok CLI',
51
+ command: 'grok',
52
+ installed: grokStatus.installed,
53
+ version: grokStatus.version ?? null,
54
+ installCommand: 'npm install -g @vibe-kit/grok-cli',
55
+ docsUrl: 'https://github.com/superagent-ai/grok-cli',
56
+ requiresApiKey: true,
57
+ apiKeyEnvVar: 'GROK_API_KEY',
58
+ description: 'xAI Grok CLI with AI coding agent capabilities',
59
+ freeTier: false,
60
+ },
61
+ ];
62
+ }
63
+ exports.getWebSearchCliProviders = getWebSearchCliProviders;
64
+ /**
65
+ * Check if any WebSearch CLI is available
66
+ */
67
+ function hasAnyWebSearchCli() {
68
+ return (0, gemini_cli_1.hasGeminiCli)() || (0, grok_cli_1.hasGrokCli)() || (0, opencode_cli_1.hasOpenCodeCli)();
69
+ }
70
+ exports.hasAnyWebSearchCli = hasAnyWebSearchCli;
71
+ /**
72
+ * Get install hints for CLI-only users when no WebSearch CLI is installed
73
+ */
74
+ function getCliInstallHints() {
75
+ if (hasAnyWebSearchCli()) {
76
+ return [];
77
+ }
78
+ return [
79
+ '[i] WebSearch: No CLI tools installed',
80
+ ' Gemini CLI (FREE): npm i -g @google/gemini-cli',
81
+ ' OpenCode (FREE): curl -fsSL https://opencode.ai/install | bash',
82
+ ' Grok CLI (paid): npm i -g @vibe-kit/grok-cli',
83
+ ];
84
+ }
85
+ exports.getCliInstallHints = getCliInstallHints;
86
+ /**
87
+ * Get WebSearch readiness status for display
88
+ *
89
+ * Called on third-party profile startup to inform user.
90
+ * Checks both installation AND authentication status for Gemini CLI.
91
+ */
92
+ function getWebSearchReadiness() {
93
+ const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
94
+ // Check if WebSearch is disabled entirely
95
+ if (!wsConfig.enabled) {
96
+ return {
97
+ readiness: 'unavailable',
98
+ geminiCli: false,
99
+ geminiAuthenticated: false,
100
+ grokCli: false,
101
+ opencodeCli: false,
102
+ message: 'Disabled in config',
103
+ };
104
+ }
105
+ // Check all CLIs
106
+ const geminiInstalled = (0, gemini_cli_1.hasGeminiCli)();
107
+ const geminiAuthed = geminiInstalled && (0, gemini_cli_1.isGeminiAuthenticated)();
108
+ const grokInstalled = (0, grok_cli_1.hasGrokCli)();
109
+ const opencodeInstalled = (0, opencode_cli_1.hasOpenCodeCli)();
110
+ // Build message based on installed + authenticated CLIs
111
+ const readyClis = [];
112
+ const needsAuthClis = [];
113
+ // Gemini requires auth check
114
+ if (geminiInstalled) {
115
+ if (geminiAuthed) {
116
+ readyClis.push('Gemini');
117
+ }
118
+ else {
119
+ needsAuthClis.push('Gemini');
120
+ }
121
+ }
122
+ // Other CLIs don't require auth check (for now)
123
+ if (grokInstalled)
124
+ readyClis.push('Grok');
125
+ if (opencodeInstalled)
126
+ readyClis.push('OpenCode');
127
+ // Determine overall status
128
+ if (readyClis.length > 0) {
129
+ return {
130
+ readiness: 'ready',
131
+ geminiCli: geminiInstalled,
132
+ geminiAuthenticated: geminiAuthed,
133
+ grokCli: grokInstalled,
134
+ opencodeCli: opencodeInstalled,
135
+ message: `Ready (${readyClis.join(' + ')})`,
136
+ };
137
+ }
138
+ if (needsAuthClis.length > 0) {
139
+ return {
140
+ readiness: 'needs_auth',
141
+ geminiCli: geminiInstalled,
142
+ geminiAuthenticated: false,
143
+ grokCli: grokInstalled,
144
+ opencodeCli: opencodeInstalled,
145
+ message: `Gemini: run 'gemini' to login`,
146
+ };
147
+ }
148
+ return {
149
+ readiness: 'unavailable',
150
+ geminiCli: false,
151
+ geminiAuthenticated: false,
152
+ grokCli: false,
153
+ opencodeCli: false,
154
+ message: 'Install: npm i -g @google/gemini-cli',
155
+ };
156
+ }
157
+ exports.getWebSearchReadiness = getWebSearchReadiness;
158
+ /**
159
+ * Display WebSearch status (single line, equilibrium UX)
160
+ *
161
+ * Only call for third-party profiles.
162
+ * Shows detailed install hints when no CLI is installed.
163
+ */
164
+ function displayWebSearchStatus() {
165
+ const status = getWebSearchReadiness();
166
+ switch (status.readiness) {
167
+ case 'ready':
168
+ console.error((0, ui_1.ok)(`WebSearch: ${status.message}`));
169
+ break;
170
+ case 'needs_auth':
171
+ console.error((0, ui_1.warn)(`WebSearch: ${status.message}`));
172
+ break;
173
+ case 'unavailable':
174
+ console.error((0, ui_1.fail)(`WebSearch: ${status.message}`));
175
+ const hints = getCliInstallHints();
176
+ if (hints.length > 0) {
177
+ for (const hint of hints) {
178
+ console.error((0, ui_1.info)(hint));
179
+ }
180
+ }
181
+ break;
182
+ }
183
+ }
184
+ exports.displayWebSearchStatus = displayWebSearchStatus;
185
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/utils/websearch/status.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,8BAA6C;AAC7C,8EAAwE;AACxE,6CAAuF;AACvF,yCAA0D;AAC1D,iDAAsE;AAGtE;;GAEG;AACH,SAAgB,wBAAwB;IACtC,MAAM,YAAY,GAAG,IAAA,+BAAkB,GAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAA,2BAAgB,GAAE,CAAC;IACtC,MAAM,cAAc,GAAG,IAAA,mCAAoB,GAAE,CAAC;IAE9C,OAAO;QACL;YACE,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,IAAI;YACrC,cAAc,EAAE,mCAAmC;YACnD,OAAO,EAAE,6CAA6C;YACtD,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,IAAI;YACvC,cAAc,EAAE,+CAA+C;YAC/D,OAAO,EAAE,iCAAiC;YAC1C,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,IAAI;SACf;QACD;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI;YACnC,cAAc,EAAE,mCAAmC;YACnD,OAAO,EAAE,2CAA2C;YACpD,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,cAAc;YAC5B,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;AACJ,CAAC;AA5CD,4DA4CC;AAED;;GAEG;AACH,SAAgB,kBAAkB;IAChC,OAAO,IAAA,yBAAY,GAAE,IAAI,IAAA,qBAAU,GAAE,IAAI,IAAA,6BAAc,GAAE,CAAC;AAC5D,CAAC;AAFD,gDAEC;AAED;;GAEG;AACH,SAAgB,kBAAkB;IAChC,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,uCAAuC;QACvC,oDAAoD;QACpD,sEAAsE;QACtE,oDAAoD;KACrD,CAAC;AACJ,CAAC;AAXD,gDAWC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAA,0CAAkB,GAAE,CAAC;IAEtC,0CAA0C;IAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO;YACL,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE,KAAK;YAChB,mBAAmB,EAAE,KAAK;YAC1B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,oBAAoB;SAC9B,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,MAAM,eAAe,GAAG,IAAA,yBAAY,GAAE,CAAC;IACvC,MAAM,YAAY,GAAG,eAAe,IAAI,IAAA,kCAAqB,GAAE,CAAC;IAChE,MAAM,aAAa,GAAG,IAAA,qBAAU,GAAE,CAAC;IACnC,MAAM,iBAAiB,GAAG,IAAA,6BAAc,GAAE,CAAC;IAE3C,wDAAwD;IACxD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,6BAA6B;IAC7B,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,aAAa;QAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,iBAAiB;QAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,2BAA2B;IAC3B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,eAAe;YAC1B,mBAAmB,EAAE,YAAY;YACjC,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,iBAAiB;YAC9B,OAAO,EAAE,UAAU,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;SAC5C,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,eAAe;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,iBAAiB;YAC9B,OAAO,EAAE,+BAA+B;SACzC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,KAAK;QAChB,mBAAmB,EAAE,KAAK;QAC1B,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,sCAAsC;KAChD,CAAC;AACJ,CAAC;AArED,sDAqEC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB;IACpC,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAEvC,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,IAAA,OAAE,EAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,YAAY;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM;QACR,KAAK,aAAa;YAChB,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC;AApBD,wDAoBC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * WebSearch Type Definitions
3
+ *
4
+ * Contains all type definitions for WebSearch CLI providers and status.
5
+ *
6
+ * @module utils/websearch/types
7
+ */
8
+ import type { ComponentStatus } from '../../types/utils';
9
+ /**
10
+ * Gemini CLI installation status
11
+ * @deprecated Use ComponentStatus directly
12
+ */
13
+ export type GeminiCliStatus = ComponentStatus;
14
+ /**
15
+ * Grok CLI installation status
16
+ * @deprecated Use ComponentStatus directly
17
+ */
18
+ export type GrokCliStatus = ComponentStatus;
19
+ /**
20
+ * OpenCode CLI installation status
21
+ * @deprecated Use ComponentStatus directly
22
+ */
23
+ export type OpenCodeCliStatus = ComponentStatus;
24
+ /**
25
+ * WebSearch availability status for third-party profiles
26
+ */
27
+ export type WebSearchReadiness = 'ready' | 'needs_auth' | 'unavailable';
28
+ /**
29
+ * WebSearch status for display
30
+ */
31
+ export interface WebSearchStatus {
32
+ readiness: WebSearchReadiness;
33
+ geminiCli: boolean;
34
+ geminiAuthenticated: boolean;
35
+ grokCli: boolean;
36
+ opencodeCli: boolean;
37
+ message: string;
38
+ }
39
+ /**
40
+ * WebSearch CLI provider information for health checks and UI
41
+ */
42
+ export interface WebSearchCliInfo {
43
+ /** Provider ID */
44
+ id: 'gemini' | 'grok' | 'opencode';
45
+ /** Display name */
46
+ name: string;
47
+ /** CLI command name */
48
+ command: string;
49
+ /** Whether CLI is installed */
50
+ installed: boolean;
51
+ /** CLI version if installed */
52
+ version: string | null;
53
+ /** Install command */
54
+ installCommand: string;
55
+ /** Docs URL */
56
+ docsUrl: string;
57
+ /** Whether this provider requires an API key */
58
+ requiresApiKey: boolean;
59
+ /** API key environment variable name */
60
+ apiKeyEnvVar?: string;
61
+ /** Brief description */
62
+ description: string;
63
+ /** Free tier available? */
64
+ freeTier: boolean;
65
+ }
66
+ /**
67
+ * WebSearch provider configuration from config.yaml
68
+ */
69
+ export interface WebSearchProviderConfig {
70
+ enabled?: boolean;
71
+ model?: string;
72
+ timeout?: number;
73
+ }
74
+ /**
75
+ * WebSearch configuration from config.yaml
76
+ */
77
+ export interface WebSearchConfig {
78
+ enabled: boolean;
79
+ providers?: {
80
+ gemini?: WebSearchProviderConfig;
81
+ opencode?: WebSearchProviderConfig;
82
+ grok?: WebSearchProviderConfig;
83
+ };
84
+ }
85
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACnC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,uBAAuB,CAAC;QACjC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;QACnC,IAAI,CAAC,EAAE,uBAAuB,CAAC;KAChC,CAAC;CACH"}