@kaitranntt/ccs 6.7.0 → 6.7.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,54 @@
1
+ "use strict";
2
+ /**
3
+ * Usage Module Barrel Export
4
+ *
5
+ * Re-exports all usage analytics functionality for convenient imports.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.summarizeAnomalies = exports.detectAnomalies = exports.fillHourlyGaps = exports.calculateTokenBreakdownCosts = exports.filterByDateRange = exports.validateOffset = exports.validateLimit = exports.validateDate = exports.usageRoutes = exports.mergeSessionData = exports.mergeHourlyData = exports.mergeMonthlyData = exports.mergeDailyData = exports.getLastFetchTimestamp = exports.prewarmUsageCache = exports.clearUsageCache = exports.getCachedHourlyData = exports.getCachedSessionData = exports.getCachedMonthlyData = exports.getCachedDailyData = exports.loadAllUsageData = exports.loadSessionData = exports.loadMonthlyUsageData = exports.loadHourlyUsageData = exports.loadDailyUsageData = exports.aggregateSessionUsage = exports.aggregateMonthlyUsage = exports.aggregateHourlyUsage = exports.aggregateDailyUsage = exports.getCacheAge = exports.clearDiskCache = exports.isDiskCacheStale = exports.isDiskCacheFresh = exports.writeDiskCache = exports.readDiskCache = void 0;
9
+ // Disk cache
10
+ var disk_cache_1 = require("./disk-cache");
11
+ Object.defineProperty(exports, "readDiskCache", { enumerable: true, get: function () { return disk_cache_1.readDiskCache; } });
12
+ Object.defineProperty(exports, "writeDiskCache", { enumerable: true, get: function () { return disk_cache_1.writeDiskCache; } });
13
+ Object.defineProperty(exports, "isDiskCacheFresh", { enumerable: true, get: function () { return disk_cache_1.isDiskCacheFresh; } });
14
+ Object.defineProperty(exports, "isDiskCacheStale", { enumerable: true, get: function () { return disk_cache_1.isDiskCacheStale; } });
15
+ Object.defineProperty(exports, "clearDiskCache", { enumerable: true, get: function () { return disk_cache_1.clearDiskCache; } });
16
+ Object.defineProperty(exports, "getCacheAge", { enumerable: true, get: function () { return disk_cache_1.getCacheAge; } });
17
+ // Data aggregator - aggregation functions
18
+ var data_aggregator_1 = require("./data-aggregator");
19
+ Object.defineProperty(exports, "aggregateDailyUsage", { enumerable: true, get: function () { return data_aggregator_1.aggregateDailyUsage; } });
20
+ Object.defineProperty(exports, "aggregateHourlyUsage", { enumerable: true, get: function () { return data_aggregator_1.aggregateHourlyUsage; } });
21
+ Object.defineProperty(exports, "aggregateMonthlyUsage", { enumerable: true, get: function () { return data_aggregator_1.aggregateMonthlyUsage; } });
22
+ Object.defineProperty(exports, "aggregateSessionUsage", { enumerable: true, get: function () { return data_aggregator_1.aggregateSessionUsage; } });
23
+ Object.defineProperty(exports, "loadDailyUsageData", { enumerable: true, get: function () { return data_aggregator_1.loadDailyUsageData; } });
24
+ Object.defineProperty(exports, "loadHourlyUsageData", { enumerable: true, get: function () { return data_aggregator_1.loadHourlyUsageData; } });
25
+ Object.defineProperty(exports, "loadMonthlyUsageData", { enumerable: true, get: function () { return data_aggregator_1.loadMonthlyUsageData; } });
26
+ Object.defineProperty(exports, "loadSessionData", { enumerable: true, get: function () { return data_aggregator_1.loadSessionData; } });
27
+ Object.defineProperty(exports, "loadAllUsageData", { enumerable: true, get: function () { return data_aggregator_1.loadAllUsageData; } });
28
+ // Usage aggregator service - caching layer
29
+ var aggregator_1 = require("./aggregator");
30
+ Object.defineProperty(exports, "getCachedDailyData", { enumerable: true, get: function () { return aggregator_1.getCachedDailyData; } });
31
+ Object.defineProperty(exports, "getCachedMonthlyData", { enumerable: true, get: function () { return aggregator_1.getCachedMonthlyData; } });
32
+ Object.defineProperty(exports, "getCachedSessionData", { enumerable: true, get: function () { return aggregator_1.getCachedSessionData; } });
33
+ Object.defineProperty(exports, "getCachedHourlyData", { enumerable: true, get: function () { return aggregator_1.getCachedHourlyData; } });
34
+ Object.defineProperty(exports, "clearUsageCache", { enumerable: true, get: function () { return aggregator_1.clearUsageCache; } });
35
+ Object.defineProperty(exports, "prewarmUsageCache", { enumerable: true, get: function () { return aggregator_1.prewarmUsageCache; } });
36
+ Object.defineProperty(exports, "getLastFetchTimestamp", { enumerable: true, get: function () { return aggregator_1.getLastFetchTimestamp; } });
37
+ Object.defineProperty(exports, "mergeDailyData", { enumerable: true, get: function () { return aggregator_1.mergeDailyData; } });
38
+ Object.defineProperty(exports, "mergeMonthlyData", { enumerable: true, get: function () { return aggregator_1.mergeMonthlyData; } });
39
+ Object.defineProperty(exports, "mergeHourlyData", { enumerable: true, get: function () { return aggregator_1.mergeHourlyData; } });
40
+ Object.defineProperty(exports, "mergeSessionData", { enumerable: true, get: function () { return aggregator_1.mergeSessionData; } });
41
+ // Routes
42
+ var routes_1 = require("./routes");
43
+ Object.defineProperty(exports, "usageRoutes", { enumerable: true, get: function () { return routes_1.usageRoutes; } });
44
+ // Handlers (for testing)
45
+ var handlers_1 = require("./handlers");
46
+ Object.defineProperty(exports, "validateDate", { enumerable: true, get: function () { return handlers_1.validateDate; } });
47
+ Object.defineProperty(exports, "validateLimit", { enumerable: true, get: function () { return handlers_1.validateLimit; } });
48
+ Object.defineProperty(exports, "validateOffset", { enumerable: true, get: function () { return handlers_1.validateOffset; } });
49
+ Object.defineProperty(exports, "filterByDateRange", { enumerable: true, get: function () { return handlers_1.filterByDateRange; } });
50
+ Object.defineProperty(exports, "calculateTokenBreakdownCosts", { enumerable: true, get: function () { return handlers_1.calculateTokenBreakdownCosts; } });
51
+ Object.defineProperty(exports, "fillHourlyGaps", { enumerable: true, get: function () { return handlers_1.fillHourlyGaps; } });
52
+ Object.defineProperty(exports, "detectAnomalies", { enumerable: true, get: function () { return handlers_1.detectAnomalies; } });
53
+ Object.defineProperty(exports, "summarizeAnomalies", { enumerable: true, get: function () { return handlers_1.summarizeAnomalies; } });
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web-server/usage/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAkBH,aAAa;AACb,2CAQsB;AAPpB,2GAAA,aAAa,OAAA;AACb,4GAAA,cAAc,OAAA;AACd,8GAAA,gBAAgB,OAAA;AAChB,8GAAA,gBAAgB,OAAA;AAChB,4GAAA,cAAc,OAAA;AACd,yGAAA,WAAW,OAAA;AAIb,0CAA0C;AAC1C,qDAU2B;AATzB,sHAAA,mBAAmB,OAAA;AACnB,uHAAA,oBAAoB,OAAA;AACpB,wHAAA,qBAAqB,OAAA;AACrB,wHAAA,qBAAqB,OAAA;AACrB,qHAAA,kBAAkB,OAAA;AAClB,sHAAA,mBAAmB,OAAA;AACnB,uHAAA,oBAAoB,OAAA;AACpB,kHAAA,eAAe,OAAA;AACf,mHAAA,gBAAgB,OAAA;AAGlB,2CAA2C;AAC3C,2CAYsB;AAXpB,gHAAA,kBAAkB,OAAA;AAClB,kHAAA,oBAAoB,OAAA;AACpB,kHAAA,oBAAoB,OAAA;AACpB,iHAAA,mBAAmB,OAAA;AACnB,6GAAA,eAAe,OAAA;AACf,+GAAA,iBAAiB,OAAA;AACjB,mHAAA,qBAAqB,OAAA;AACrB,4GAAA,cAAc,OAAA;AACd,8GAAA,gBAAgB,OAAA;AAChB,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAGlB,SAAS;AACT,mCAAuC;AAA9B,qGAAA,WAAW,OAAA;AAEpB,yBAAyB;AACzB,uCAUoB;AATlB,wGAAA,YAAY,OAAA;AACZ,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,wHAAA,4BAA4B,OAAA;AAC5B,0GAAA,cAAc,OAAA;AACd,2GAAA,eAAe,OAAA;AACf,8GAAA,kBAAkB,OAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Usage Analytics API Routes
3
+ *
4
+ * Provides REST endpoints for Claude Code usage analytics.
5
+ * Supports daily, monthly, and session-based usage data aggregation.
6
+ *
7
+ * Route handlers are in ./handlers.ts
8
+ */
9
+ export { prewarmUsageCache, clearUsageCache, getLastFetchTimestamp } from './aggregator';
10
+ export declare const usageRoutes: import("express-serve-static-core").Router;
11
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEzF,eAAO,MAAM,WAAW,4CAAW,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * Usage Analytics API Routes
4
+ *
5
+ * Provides REST endpoints for Claude Code usage analytics.
6
+ * Supports daily, monthly, and session-based usage data aggregation.
7
+ *
8
+ * Route handlers are in ./handlers.ts
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.usageRoutes = exports.getLastFetchTimestamp = exports.clearUsageCache = exports.prewarmUsageCache = void 0;
12
+ const express_1 = require("express");
13
+ const handlers_1 = require("./handlers");
14
+ var aggregator_1 = require("./aggregator");
15
+ Object.defineProperty(exports, "prewarmUsageCache", { enumerable: true, get: function () { return aggregator_1.prewarmUsageCache; } });
16
+ Object.defineProperty(exports, "clearUsageCache", { enumerable: true, get: function () { return aggregator_1.clearUsageCache; } });
17
+ Object.defineProperty(exports, "getLastFetchTimestamp", { enumerable: true, get: function () { return aggregator_1.getLastFetchTimestamp; } });
18
+ exports.usageRoutes = (0, express_1.Router)();
19
+ // Summary endpoint
20
+ exports.usageRoutes.get('/summary', handlers_1.handleSummary);
21
+ // Daily usage endpoint
22
+ exports.usageRoutes.get('/daily', handlers_1.handleDaily);
23
+ // Hourly usage endpoint
24
+ exports.usageRoutes.get('/hourly', handlers_1.handleHourly);
25
+ // Models usage endpoint
26
+ exports.usageRoutes.get('/models', handlers_1.handleModels);
27
+ // Sessions endpoint
28
+ exports.usageRoutes.get('/sessions', handlers_1.handleSessions);
29
+ // Monthly usage endpoint
30
+ exports.usageRoutes.get('/monthly', handlers_1.handleMonthly);
31
+ // Cache refresh endpoint
32
+ exports.usageRoutes.post('/refresh', handlers_1.handleRefresh);
33
+ // Status endpoint
34
+ exports.usageRoutes.get('/status', handlers_1.handleStatus);
35
+ // Insights endpoint (anomaly detection)
36
+ exports.usageRoutes.get('/insights', handlers_1.handleInsights);
37
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/web-server/usage/routes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,qCAAiC;AACjC,yCAUoB;AAEpB,2CAAyF;AAAhF,+GAAA,iBAAiB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAErD,QAAA,WAAW,GAAG,IAAA,gBAAM,GAAE,CAAC;AAEpC,mBAAmB;AACnB,mBAAW,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAa,CAAC,CAAC;AAE3C,uBAAuB;AACvB,mBAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAW,CAAC,CAAC;AAEvC,wBAAwB;AACxB,mBAAW,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAY,CAAC,CAAC;AAEzC,wBAAwB;AACxB,mBAAW,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAY,CAAC,CAAC;AAEzC,oBAAoB;AACpB,mBAAW,CAAC,GAAG,CAAC,WAAW,EAAE,yBAAc,CAAC,CAAC;AAE7C,yBAAyB;AACzB,mBAAW,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAa,CAAC,CAAC;AAE3C,yBAAyB;AACzB,mBAAW,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAa,CAAC,CAAC;AAE5C,kBAAkB;AAClB,mBAAW,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAY,CAAC,CAAC;AAEzC,wCAAwC;AACxC,mBAAW,CAAC,GAAG,CAAC,WAAW,EAAE,yBAAc,CAAC,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Usage Data Types
3
+ *
4
+ * Type definitions for aggregated usage data.
5
+ * Compatible with better-ccusage interfaces for drop-in replacement.
6
+ */
7
+ /** Per-model token and cost breakdown */
8
+ export interface ModelBreakdown {
9
+ modelName: string;
10
+ inputTokens: number;
11
+ outputTokens: number;
12
+ cacheCreationTokens: number;
13
+ cacheReadTokens: number;
14
+ cost: number;
15
+ }
16
+ /** Daily usage aggregation (YYYY-MM-DD) */
17
+ export interface DailyUsage {
18
+ date: string;
19
+ source: string;
20
+ inputTokens: number;
21
+ outputTokens: number;
22
+ cacheCreationTokens: number;
23
+ cacheReadTokens: number;
24
+ cost: number;
25
+ totalCost: number;
26
+ modelsUsed: string[];
27
+ modelBreakdowns: ModelBreakdown[];
28
+ }
29
+ /** Hourly usage aggregation (YYYY-MM-DD HH:00) */
30
+ export interface HourlyUsage {
31
+ hour: string;
32
+ source: string;
33
+ inputTokens: number;
34
+ outputTokens: number;
35
+ cacheCreationTokens: number;
36
+ cacheReadTokens: number;
37
+ cost: number;
38
+ totalCost: number;
39
+ modelsUsed: string[];
40
+ modelBreakdowns: ModelBreakdown[];
41
+ }
42
+ /** Monthly usage aggregation (YYYY-MM) */
43
+ export interface MonthlyUsage {
44
+ month: string;
45
+ source: string;
46
+ inputTokens: number;
47
+ outputTokens: number;
48
+ cacheCreationTokens: number;
49
+ cacheReadTokens: number;
50
+ totalCost: number;
51
+ modelsUsed: string[];
52
+ modelBreakdowns: ModelBreakdown[];
53
+ }
54
+ /** Session-level usage aggregation */
55
+ export interface SessionUsage {
56
+ sessionId: string;
57
+ projectPath: string;
58
+ inputTokens: number;
59
+ outputTokens: number;
60
+ cacheCreationTokens: number;
61
+ cacheReadTokens: number;
62
+ cost: number;
63
+ totalCost: number;
64
+ lastActivity: string;
65
+ versions: string[];
66
+ modelsUsed: string[];
67
+ modelBreakdowns: ModelBreakdown[];
68
+ source: string;
69
+ }
70
+ /** Token category with count and cost */
71
+ export interface TokenCategoryCost {
72
+ tokens: number;
73
+ cost: number;
74
+ }
75
+ /** Breakdown of tokens by type with individual costs */
76
+ export interface TokenBreakdown {
77
+ input: TokenCategoryCost;
78
+ output: TokenCategoryCost;
79
+ cacheCreation: TokenCategoryCost;
80
+ cacheRead: TokenCategoryCost;
81
+ }
82
+ /** Anomaly types for usage pattern detection */
83
+ export type AnomalyType = 'high_input' | 'high_io_ratio' | 'cost_spike' | 'high_cache_read';
84
+ /** Single anomaly detection result */
85
+ export interface Anomaly {
86
+ date: string;
87
+ type: AnomalyType;
88
+ model?: string;
89
+ value: number;
90
+ threshold: number;
91
+ message: string;
92
+ }
93
+ /** Summary of all detected anomalies */
94
+ export interface AnomalySummary {
95
+ totalAnomalies: number;
96
+ highInputDays: number;
97
+ highIoRatioDays: number;
98
+ costSpikeDays: number;
99
+ highCacheReadDays: number;
100
+ }
101
+ /** Insights API response */
102
+ export interface UsageInsights {
103
+ anomalies: Anomaly[];
104
+ summary: AnomalySummary;
105
+ }
106
+ /** Extended model usage with cost breakdown */
107
+ export interface ExtendedModelUsage {
108
+ model: string;
109
+ inputTokens: number;
110
+ outputTokens: number;
111
+ cacheCreationTokens: number;
112
+ cacheReadTokens: number;
113
+ tokens: number;
114
+ cost: number;
115
+ percentage: number;
116
+ costBreakdown: TokenBreakdown;
117
+ ioRatio: number;
118
+ }
119
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Usage Data Types
4
+ *
5
+ * Type definitions for aggregated usage data.
6
+ * Compatible with better-ccusage interfaces for drop-in replacement.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/web-server/usage/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -1,46 +1,7 @@
1
1
  /**
2
- * Persistent Disk Cache for Usage Data
2
+ * Usage Disk Cache - Re-export from modularized location
3
3
  *
4
- * Caches aggregated usage data to disk to avoid re-parsing 6000+ JSONL files
5
- * on every dashboard startup. Uses TTL-based invalidation with stale-while-revalidate.
6
- *
7
- * Cache location: ~/.ccs/cache/usage.json
8
- * Default TTL: 5 minutes (configurable)
9
- */
10
- import type { DailyUsage, HourlyUsage, MonthlyUsage, SessionUsage } from './usage-types';
11
- /** Structure of the disk cache file */
12
- export interface UsageDiskCache {
13
- version: number;
14
- timestamp: number;
15
- daily: DailyUsage[];
16
- hourly: HourlyUsage[];
17
- monthly: MonthlyUsage[];
18
- session: SessionUsage[];
19
- }
20
- /**
21
- * Read usage data from disk cache
22
- * Returns null if cache is missing, corrupted, or has incompatible version
23
- * NOTE: Does NOT reject based on age - caller handles staleness via SWR pattern
24
- */
25
- export declare function readDiskCache(): UsageDiskCache | null;
26
- /**
27
- * Check if disk cache is fresh (within TTL)
28
- */
29
- export declare function isDiskCacheFresh(cache: UsageDiskCache | null): boolean;
30
- /**
31
- * Check if disk cache is stale but usable (between TTL and STALE_TTL)
32
- */
33
- export declare function isDiskCacheStale(cache: UsageDiskCache | null): boolean;
34
- /**
35
- * Write usage data to disk cache
36
- */
37
- export declare function writeDiskCache(daily: DailyUsage[], hourly: HourlyUsage[], monthly: MonthlyUsage[], session: SessionUsage[]): void;
38
- /**
39
- * Get cache age in human-readable format
40
- */
41
- export declare function getCacheAge(cache: UsageDiskCache | null): string;
42
- /**
43
- * Delete disk cache (for manual refresh)
4
+ * @deprecated Import from './usage/disk-cache' instead
44
5
  */
45
- export declare function clearDiskCache(): void;
6
+ export * from './usage/disk-cache';
46
7
  //# sourceMappingURL=usage-disk-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-disk-cache.d.ts","sourceRoot":"","sources":["../../src/web-server/usage-disk-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAUzF,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAeD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,cAAc,GAAG,IAAI,CAsBrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAItE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAItE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,YAAY,EAAE,GACtB,IAAI,CAuBN;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,CAWhE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CASrC"}
1
+ {"version":3,"file":"usage-disk-cache.d.ts","sourceRoot":"","sources":["../../src/web-server/usage-disk-cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC"}
@@ -1,12 +1,8 @@
1
1
  "use strict";
2
2
  /**
3
- * Persistent Disk Cache for Usage Data
3
+ * Usage Disk Cache - Re-export from modularized location
4
4
  *
5
- * Caches aggregated usage data to disk to avoid re-parsing 6000+ JSONL files
6
- * on every dashboard startup. Uses TTL-based invalidation with stale-while-revalidate.
7
- *
8
- * Cache location: ~/.ccs/cache/usage.json
9
- * Default TTL: 5 minutes (configurable)
5
+ * @deprecated Import from './usage/disk-cache' instead
10
6
  */
11
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
8
  if (k2 === undefined) k2 = k;
@@ -19,144 +15,9 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
19
15
  if (k2 === undefined) k2 = k;
20
16
  o[k2] = m[k];
21
17
  }));
22
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
- Object.defineProperty(o, "default", { enumerable: true, value: v });
24
- }) : function(o, v) {
25
- o["default"] = v;
26
- });
27
- var __importStar = (this && this.__importStar) || function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
31
- __setModuleDefault(result, mod);
32
- return result;
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
33
20
  };
34
21
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.clearDiskCache = exports.getCacheAge = exports.writeDiskCache = exports.isDiskCacheStale = exports.isDiskCacheFresh = exports.readDiskCache = void 0;
36
- const fs = __importStar(require("fs"));
37
- const path = __importStar(require("path"));
38
- const os = __importStar(require("os"));
39
- const ui_1 = require("../utils/ui");
40
- // Cache configuration
41
- const CCS_DIR = path.join(os.homedir(), '.ccs');
42
- const CACHE_DIR = path.join(CCS_DIR, 'cache');
43
- const CACHE_FILE = path.join(CACHE_DIR, 'usage.json');
44
- const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
45
- const STALE_TTL_MS = 7 * 24 * 60 * 60 * 1000; // 7 days (max age for stale data)
46
- // Current cache version - increment to invalidate old caches
47
- // v3: Added hourly data to cache
48
- const CACHE_VERSION = 3;
49
- /**
50
- * Ensure ~/.ccs/cache directory exists
51
- */
52
- function ensureCacheDir() {
53
- if (!fs.existsSync(CACHE_DIR)) {
54
- fs.mkdirSync(CACHE_DIR, { recursive: true });
55
- }
56
- }
57
- /**
58
- * Read usage data from disk cache
59
- * Returns null if cache is missing, corrupted, or has incompatible version
60
- * NOTE: Does NOT reject based on age - caller handles staleness via SWR pattern
61
- */
62
- function readDiskCache() {
63
- try {
64
- if (!fs.existsSync(CACHE_FILE)) {
65
- return null;
66
- }
67
- const data = fs.readFileSync(CACHE_FILE, 'utf-8');
68
- const cache = JSON.parse(data);
69
- // Version check - invalidate if schema changed
70
- if (cache.version !== CACHE_VERSION) {
71
- console.log((0, ui_1.info)('Cache version mismatch, will refresh'));
72
- return null;
73
- }
74
- // Always return cache regardless of age - SWR pattern handles staleness
75
- return cache;
76
- }
77
- catch (err) {
78
- // Cache corrupted or unreadable - treat as miss
79
- console.log((0, ui_1.info)('Cache read failed, will refresh:') + ` ${err.message}`);
80
- return null;
81
- }
82
- }
83
- exports.readDiskCache = readDiskCache;
84
- /**
85
- * Check if disk cache is fresh (within TTL)
86
- */
87
- function isDiskCacheFresh(cache) {
88
- if (!cache)
89
- return false;
90
- const age = Date.now() - cache.timestamp;
91
- return age < CACHE_TTL_MS;
92
- }
93
- exports.isDiskCacheFresh = isDiskCacheFresh;
94
- /**
95
- * Check if disk cache is stale but usable (between TTL and STALE_TTL)
96
- */
97
- function isDiskCacheStale(cache) {
98
- if (!cache)
99
- return false;
100
- const age = Date.now() - cache.timestamp;
101
- return age >= CACHE_TTL_MS && age < STALE_TTL_MS;
102
- }
103
- exports.isDiskCacheStale = isDiskCacheStale;
104
- /**
105
- * Write usage data to disk cache
106
- */
107
- function writeDiskCache(daily, hourly, monthly, session) {
108
- try {
109
- ensureCacheDir();
110
- const cache = {
111
- version: CACHE_VERSION,
112
- timestamp: Date.now(),
113
- daily,
114
- hourly,
115
- monthly,
116
- session,
117
- };
118
- // Write atomically using temp file + rename
119
- const tempFile = CACHE_FILE + '.tmp';
120
- fs.writeFileSync(tempFile, JSON.stringify(cache), 'utf-8');
121
- fs.renameSync(tempFile, CACHE_FILE);
122
- console.log((0, ui_1.ok)('Disk cache updated'));
123
- }
124
- catch (err) {
125
- // Non-fatal - we can still serve from memory
126
- console.log((0, ui_1.warn)('Failed to write disk cache:') + ` ${err.message}`);
127
- }
128
- }
129
- exports.writeDiskCache = writeDiskCache;
130
- /**
131
- * Get cache age in human-readable format
132
- */
133
- function getCacheAge(cache) {
134
- if (!cache)
135
- return 'never';
136
- const age = Date.now() - cache.timestamp;
137
- const seconds = Math.floor(age / 1000);
138
- const minutes = Math.floor(seconds / 60);
139
- const hours = Math.floor(minutes / 60);
140
- if (hours > 0)
141
- return `${hours}h ${minutes % 60}m ago`;
142
- if (minutes > 0)
143
- return `${minutes}m ${seconds % 60}s ago`;
144
- return `${seconds}s ago`;
145
- }
146
- exports.getCacheAge = getCacheAge;
147
- /**
148
- * Delete disk cache (for manual refresh)
149
- */
150
- function clearDiskCache() {
151
- try {
152
- if (fs.existsSync(CACHE_FILE)) {
153
- fs.unlinkSync(CACHE_FILE);
154
- console.log((0, ui_1.ok)('Disk cache cleared'));
155
- }
156
- }
157
- catch (err) {
158
- console.log((0, ui_1.warn)('Failed to clear disk cache:') + ` ${err.message}`);
159
- }
160
- }
161
- exports.clearDiskCache = clearDiskCache;
22
+ __exportStar(require("./usage/disk-cache"), exports);
162
23
  //# sourceMappingURL=usage-disk-cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-disk-cache.js","sourceRoot":"","sources":["../../src/web-server/usage-disk-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage-disk-cache.js","sourceRoot":"","sources":["../../src/web-server/usage-disk-cache.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,qDAAmC"}
@@ -1,35 +1,7 @@
1
1
  /**
2
- * Usage Analytics API Routes
2
+ * Usage Analytics API Routes - Re-export from modularized location
3
3
  *
4
- * Provides REST endpoints for Claude Code usage analytics.
5
- * Supports daily, monthly, and session-based usage data aggregation.
6
- *
7
- * Performance optimizations:
8
- * - Persistent disk cache to avoid re-parsing JSONL files on startup
9
- * - TTL-based in-memory caching for fast repeated requests
10
- * - Request coalescing to prevent duplicate concurrent requests
11
- * - Non-blocking prewarm with instant stale data serving
12
- */
13
- export declare const usageRoutes: import("express-serve-static-core").Router;
14
- /** Get timestamp of last successful data fetch */
15
- export declare function getLastFetchTimestamp(): number | null;
16
- /**
17
- * Clear all cached data (useful for manual refresh)
18
- */
19
- export declare function clearUsageCache(): void;
20
- /**
21
- * Pre-warm usage caches on server startup
22
- *
23
- * Strategy:
24
- * 1. Check disk cache - if fresh, use it (instant startup)
25
- * 2. If stale, use it immediately but trigger background refresh
26
- * 3. If no cache, return immediately and let first request trigger load
27
- *
28
- * This ensures dashboard opens in <1s regardless of cache state
4
+ * @deprecated Import from './usage/routes' instead
29
5
  */
30
- export declare function prewarmUsageCache(): Promise<{
31
- timestamp: number;
32
- elapsed: number;
33
- source: string;
34
- }>;
6
+ export { usageRoutes, prewarmUsageCache, clearUsageCache, getLastFetchTimestamp, } from './usage/routes';
35
7
  //# sourceMappingURL=usage-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-routes.d.ts","sourceRoot":"","sources":["../../src/web-server/usage-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmOH,eAAO,MAAM,WAAW,4CAAW,CAAC;AAsCpC,kDAAkD;AAClD,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAsHD;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAmGD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAgED"}
1
+ {"version":3,"file":"usage-routes.d.ts","sourceRoot":"","sources":["../../src/web-server/usage-routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,qBAAqB,GACtB,MAAM,gBAAgB,CAAC"}