@kaitranntt/ccs 8.4.0-dev.9 → 8.5.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/README.md +4 -1
  2. package/config/base-claude.settings.json +1 -1
  3. package/config/base-glm.settings.json +4 -4
  4. package/config/base-glmt.settings.json +4 -4
  5. package/config/base-km.settings.json +4 -4
  6. package/config/base-mm.settings.json +4 -4
  7. package/dist/api/services/cliproxy-profile-bridge.d.ts.map +1 -1
  8. package/dist/api/services/cliproxy-profile-bridge.js +20 -9
  9. package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
  10. package/dist/api/services/profile-lifecycle-validation.d.ts.map +1 -1
  11. package/dist/api/services/profile-lifecycle-validation.js +2 -0
  12. package/dist/api/services/profile-lifecycle-validation.js.map +1 -1
  13. package/dist/auth/commands/backup-command.d.ts.map +1 -1
  14. package/dist/auth/commands/backup-command.js +0 -1
  15. package/dist/auth/commands/backup-command.js.map +1 -1
  16. package/dist/auth/commands/create-command.d.ts.map +1 -1
  17. package/dist/auth/commands/create-command.js +4 -14
  18. package/dist/auth/commands/create-command.js.map +1 -1
  19. package/dist/auth/commands/default-command.d.ts.map +1 -1
  20. package/dist/auth/commands/default-command.js +0 -1
  21. package/dist/auth/commands/default-command.js.map +1 -1
  22. package/dist/auth/commands/index.d.ts +2 -1
  23. package/dist/auth/commands/index.d.ts.map +1 -1
  24. package/dist/auth/commands/index.js +0 -1
  25. package/dist/auth/commands/index.js.map +1 -1
  26. package/dist/auth/commands/remove-command.d.ts.map +1 -1
  27. package/dist/auth/commands/remove-command.js +0 -2
  28. package/dist/auth/commands/remove-command.js.map +1 -1
  29. package/dist/auth/commands/resources-command.d.ts.map +1 -1
  30. package/dist/auth/commands/resources-command.js +0 -1
  31. package/dist/auth/commands/resources-command.js.map +1 -1
  32. package/dist/auth/commands/show-command.d.ts.map +1 -1
  33. package/dist/auth/commands/show-command.js +0 -1
  34. package/dist/auth/commands/show-command.js.map +1 -1
  35. package/dist/auth/commands/types.d.ts.map +1 -1
  36. package/dist/auth/commands/types.js +0 -1
  37. package/dist/auth/commands/types.js.map +1 -1
  38. package/dist/auth/profile-registry.d.ts +3 -1
  39. package/dist/auth/profile-registry.d.ts.map +1 -1
  40. package/dist/auth/profile-registry.js +21 -15
  41. package/dist/auth/profile-registry.js.map +1 -1
  42. package/dist/ccs.js +27 -21
  43. package/dist/ccs.js.map +1 -1
  44. package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -1
  45. package/dist/cliproxy/accounts/account-safety.js +56 -56
  46. package/dist/cliproxy/accounts/account-safety.js.map +1 -1
  47. package/dist/cliproxy/auth/antigravity-responsibility.d.ts.map +1 -1
  48. package/dist/cliproxy/auth/antigravity-responsibility.js +15 -15
  49. package/dist/cliproxy/auth/antigravity-responsibility.js.map +1 -1
  50. package/dist/cliproxy/auth/auth-token-manager.d.ts.map +1 -1
  51. package/dist/cliproxy/auth/auth-token-manager.js +2 -1
  52. package/dist/cliproxy/auth/auth-token-manager.js.map +1 -1
  53. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  54. package/dist/cliproxy/auth/auth-types.js +3 -2
  55. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  56. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  57. package/dist/cliproxy/auth/oauth-handler.js +16 -5
  58. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  59. package/dist/cliproxy/auth/provider-refreshers/index.d.ts +2 -1
  60. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
  61. package/dist/cliproxy/auth/provider-refreshers/index.js +4 -2
  62. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
  63. package/dist/cliproxy/auth/token-manager.d.ts +2 -1
  64. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  65. package/dist/cliproxy/auth/token-manager.js +2 -1
  66. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  67. package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
  68. package/dist/cliproxy/binary/lifecycle.js +3 -2
  69. package/dist/cliproxy/binary/lifecycle.js.map +1 -1
  70. package/dist/cliproxy/config/env-builder.d.ts +19 -2
  71. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  72. package/dist/cliproxy/config/env-builder.js +40 -5
  73. package/dist/cliproxy/config/env-builder.js.map +1 -1
  74. package/dist/cliproxy/config/model-config.d.ts.map +1 -1
  75. package/dist/cliproxy/config/model-config.js +32 -32
  76. package/dist/cliproxy/config/model-config.js.map +1 -1
  77. package/dist/cliproxy/executor/arg-parser.d.ts.map +1 -1
  78. package/dist/cliproxy/executor/arg-parser.js +26 -26
  79. package/dist/cliproxy/executor/arg-parser.js.map +1 -1
  80. package/dist/cliproxy/executor/auth-coordinator.d.ts.map +1 -1
  81. package/dist/cliproxy/executor/auth-coordinator.js +15 -14
  82. package/dist/cliproxy/executor/auth-coordinator.js.map +1 -1
  83. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  84. package/dist/cliproxy/executor/index.js +27 -17
  85. package/dist/cliproxy/executor/index.js.map +1 -1
  86. package/dist/cliproxy/executor/lifecycle-manager.d.ts.map +1 -1
  87. package/dist/cliproxy/executor/lifecycle-manager.js +18 -16
  88. package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -1
  89. package/dist/cliproxy/executor/model-warnings.d.ts.map +1 -1
  90. package/dist/cliproxy/executor/model-warnings.js +24 -13
  91. package/dist/cliproxy/executor/model-warnings.js.map +1 -1
  92. package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -1
  93. package/dist/cliproxy/executor/retry-handler.js +13 -11
  94. package/dist/cliproxy/executor/retry-handler.js.map +1 -1
  95. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
  96. package/dist/cliproxy/executor/session-bridge.js +18 -10
  97. package/dist/cliproxy/executor/session-bridge.js.map +1 -1
  98. package/dist/cliproxy/management/remote-token-uploader.d.ts.map +1 -1
  99. package/dist/cliproxy/management/remote-token-uploader.js +11 -11
  100. package/dist/cliproxy/management/remote-token-uploader.js.map +1 -1
  101. package/dist/cliproxy/provider-capabilities.d.ts +6 -0
  102. package/dist/cliproxy/provider-capabilities.d.ts.map +1 -1
  103. package/dist/cliproxy/provider-capabilities.js +28 -3
  104. package/dist/cliproxy/provider-capabilities.js.map +1 -1
  105. package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts +5 -1
  106. package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts.map +1 -1
  107. package/dist/cliproxy/proxy/https-tunnel-proxy.js +22 -10
  108. package/dist/cliproxy/proxy/https-tunnel-proxy.js.map +1 -1
  109. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +0 -12
  110. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -1
  111. package/dist/cliproxy/proxy/tool-sanitization-proxy.js +42 -72
  112. package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -1
  113. package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.d.ts +21 -0
  114. package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.d.ts.map +1 -0
  115. package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.js +154 -0
  116. package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.js.map +1 -0
  117. package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.d.ts +35 -0
  118. package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.d.ts.map +1 -0
  119. package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.js +98 -0
  120. package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.js.map +1 -0
  121. package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.d.ts +22 -0
  122. package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.d.ts.map +1 -0
  123. package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.js +111 -0
  124. package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.js.map +1 -0
  125. package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.d.ts +17 -0
  126. package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.d.ts.map +1 -0
  127. package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.js +85 -0
  128. package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.js.map +1 -0
  129. package/dist/cliproxy/quota/quota-fetcher/constants.d.ts +25 -0
  130. package/dist/cliproxy/quota/quota-fetcher/constants.d.ts.map +1 -0
  131. package/dist/cliproxy/quota/quota-fetcher/constants.js +31 -0
  132. package/dist/cliproxy/quota/quota-fetcher/constants.js.map +1 -0
  133. package/dist/cliproxy/quota/quota-fetcher/http-client.d.ts +29 -0
  134. package/dist/cliproxy/quota/quota-fetcher/http-client.d.ts.map +1 -0
  135. package/dist/cliproxy/quota/quota-fetcher/http-client.js +199 -0
  136. package/dist/cliproxy/quota/quota-fetcher/http-client.js.map +1 -0
  137. package/dist/cliproxy/quota/quota-fetcher/project-lookup.d.ts +16 -0
  138. package/dist/cliproxy/quota/quota-fetcher/project-lookup.d.ts.map +1 -0
  139. package/dist/cliproxy/quota/quota-fetcher/project-lookup.js +89 -0
  140. package/dist/cliproxy/quota/quota-fetcher/project-lookup.js.map +1 -0
  141. package/dist/cliproxy/quota/quota-fetcher/status-classifier.d.ts +29 -0
  142. package/dist/cliproxy/quota/quota-fetcher/status-classifier.d.ts.map +1 -0
  143. package/dist/cliproxy/quota/quota-fetcher/status-classifier.js +168 -0
  144. package/dist/cliproxy/quota/quota-fetcher/status-classifier.js.map +1 -0
  145. package/dist/cliproxy/quota/quota-fetcher/types.d.ts +165 -0
  146. package/dist/cliproxy/quota/quota-fetcher/types.d.ts.map +1 -0
  147. package/dist/cliproxy/quota/quota-fetcher/types.js +9 -0
  148. package/dist/cliproxy/quota/quota-fetcher/types.js.map +1 -0
  149. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
  150. package/dist/cliproxy/quota/quota-fetcher-claude.js +14 -3
  151. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
  152. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -1
  153. package/dist/cliproxy/quota/quota-fetcher-codex.js +36 -9
  154. package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -1
  155. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.d.ts +26 -0
  156. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.d.ts.map +1 -0
  157. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.js +132 -0
  158. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.js.map +1 -0
  159. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.d.ts +23 -0
  160. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.d.ts.map +1 -0
  161. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.js +54 -0
  162. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.js.map +1 -0
  163. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.d.ts +26 -0
  164. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.d.ts.map +1 -0
  165. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.js +29 -0
  166. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.js.map +1 -0
  167. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.d.ts +61 -0
  168. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.d.ts.map +1 -0
  169. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.js +259 -0
  170. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.js.map +1 -0
  171. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.d.ts +20 -0
  172. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.d.ts.map +1 -0
  173. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.js +38 -0
  174. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.js.map +1 -0
  175. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.d.ts +82 -0
  176. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.d.ts.map +1 -0
  177. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.js +263 -0
  178. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.js.map +1 -0
  179. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.d.ts +46 -0
  180. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.d.ts.map +1 -0
  181. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.js +188 -0
  182. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.js.map +1 -0
  183. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.d.ts +35 -0
  184. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.d.ts.map +1 -0
  185. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.js +65 -0
  186. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.js.map +1 -0
  187. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.d.ts +37 -0
  188. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.d.ts.map +1 -0
  189. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.js +117 -0
  190. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.js.map +1 -0
  191. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.d.ts +31 -0
  192. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.d.ts.map +1 -0
  193. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.js +77 -0
  194. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.js.map +1 -0
  195. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.d.ts +114 -0
  196. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.d.ts.map +1 -0
  197. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.js +10 -0
  198. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.js.map +1 -0
  199. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts +13 -58
  200. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts.map +1 -1
  201. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js +20 -819
  202. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js.map +1 -1
  203. package/dist/cliproxy/quota/quota-fetcher-ghcp.d.ts.map +1 -1
  204. package/dist/cliproxy/quota/quota-fetcher-ghcp.js +19 -4
  205. package/dist/cliproxy/quota/quota-fetcher-ghcp.js.map +1 -1
  206. package/dist/cliproxy/quota/quota-fetcher.d.ts +12 -108
  207. package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -1
  208. package/dist/cliproxy/quota/quota-fetcher.js +23 -766
  209. package/dist/cliproxy/quota/quota-fetcher.js.map +1 -1
  210. package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -1
  211. package/dist/cliproxy/routing/routing-strategy.js +11 -3
  212. package/dist/cliproxy/routing/routing-strategy.js.map +1 -1
  213. package/dist/commands/api-command/create-command.d.ts.map +1 -1
  214. package/dist/commands/api-command/create-command.js +17 -8
  215. package/dist/commands/api-command/create-command.js.map +1 -1
  216. package/dist/commands/bar/help-subcommand.d.ts.map +1 -1
  217. package/dist/commands/bar/help-subcommand.js +1 -0
  218. package/dist/commands/bar/help-subcommand.js.map +1 -1
  219. package/dist/commands/bar/index.d.ts.map +1 -1
  220. package/dist/commands/bar/index.js +1 -0
  221. package/dist/commands/bar/index.js.map +1 -1
  222. package/dist/commands/cliproxy/help-subcommand.js +5 -5
  223. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  224. package/dist/commands/cliproxy/index.d.ts.map +1 -1
  225. package/dist/commands/cliproxy/index.js +7 -2
  226. package/dist/commands/cliproxy/index.js.map +1 -1
  227. package/dist/commands/cliproxy/pool-subcommand.d.ts.map +1 -1
  228. package/dist/commands/cliproxy/pool-subcommand.js +4 -2
  229. package/dist/commands/cliproxy/pool-subcommand.js.map +1 -1
  230. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +1 -1
  231. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +1 -1
  232. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +13 -1
  233. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
  234. package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts +26 -0
  235. package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts.map +1 -0
  236. package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js +82 -0
  237. package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js.map +1 -0
  238. package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.d.ts +41 -0
  239. package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.d.ts.map +1 -0
  240. package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.js +202 -0
  241. package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.js.map +1 -0
  242. package/dist/commands/cliproxy/quota-subcommand/format-helpers.d.ts +32 -0
  243. package/dist/commands/cliproxy/quota-subcommand/format-helpers.d.ts.map +1 -0
  244. package/dist/commands/cliproxy/quota-subcommand/format-helpers.js +90 -0
  245. package/dist/commands/cliproxy/quota-subcommand/format-helpers.js.map +1 -0
  246. package/dist/commands/cliproxy/quota-subcommand/handlers.d.ts +25 -0
  247. package/dist/commands/cliproxy/quota-subcommand/handlers.d.ts.map +1 -0
  248. package/dist/commands/cliproxy/quota-subcommand/handlers.js +245 -0
  249. package/dist/commands/cliproxy/quota-subcommand/handlers.js.map +1 -0
  250. package/dist/commands/cliproxy/quota-subcommand/profile-args.d.ts +10 -0
  251. package/dist/commands/cliproxy/quota-subcommand/profile-args.d.ts.map +1 -0
  252. package/dist/commands/cliproxy/quota-subcommand/profile-args.js +37 -0
  253. package/dist/commands/cliproxy/quota-subcommand/profile-args.js.map +1 -0
  254. package/dist/commands/cliproxy/quota-subcommand/provider-runtime.d.ts +12 -0
  255. package/dist/commands/cliproxy/quota-subcommand/provider-runtime.d.ts.map +1 -0
  256. package/dist/commands/cliproxy/quota-subcommand/provider-runtime.js +64 -0
  257. package/dist/commands/cliproxy/quota-subcommand/provider-runtime.js.map +1 -0
  258. package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.d.ts +27 -0
  259. package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.d.ts.map +1 -0
  260. package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.js +74 -0
  261. package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.js.map +1 -0
  262. package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.d.ts +10 -0
  263. package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.d.ts.map +1 -0
  264. package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.js +46 -0
  265. package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.js.map +1 -0
  266. package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts +14 -0
  267. package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts.map +1 -0
  268. package/dist/commands/cliproxy/quota-subcommand/sections/claude.js +68 -0
  269. package/dist/commands/cliproxy/quota-subcommand/sections/claude.js.map +1 -0
  270. package/dist/commands/cliproxy/quota-subcommand/sections/codex.d.ts +14 -0
  271. package/dist/commands/cliproxy/quota-subcommand/sections/codex.d.ts.map +1 -0
  272. package/dist/commands/cliproxy/quota-subcommand/sections/codex.js +82 -0
  273. package/dist/commands/cliproxy/quota-subcommand/sections/codex.js.map +1 -0
  274. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.d.ts +14 -0
  275. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.d.ts.map +1 -0
  276. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.js +61 -0
  277. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.js.map +1 -0
  278. package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.d.ts +13 -0
  279. package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.d.ts.map +1 -0
  280. package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.js +63 -0
  281. package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.js.map +1 -0
  282. package/dist/commands/cliproxy/quota-subcommand/test-exports.d.ts +19 -0
  283. package/dist/commands/cliproxy/quota-subcommand/test-exports.d.ts.map +1 -0
  284. package/dist/commands/cliproxy/quota-subcommand/test-exports.js +22 -0
  285. package/dist/commands/cliproxy/quota-subcommand/test-exports.js.map +1 -0
  286. package/dist/commands/cliproxy/quota-subcommand/types.d.ts +42 -0
  287. package/dist/commands/cliproxy/quota-subcommand/types.d.ts.map +1 -0
  288. package/dist/commands/cliproxy/quota-subcommand/types.js +9 -0
  289. package/dist/commands/cliproxy/quota-subcommand/types.js.map +1 -0
  290. package/dist/commands/cliproxy/quota-subcommand.d.ts +14 -36
  291. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  292. package/dist/commands/cliproxy/quota-subcommand.js +21 -872
  293. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  294. package/dist/commands/command-catalog.js +1 -1
  295. package/dist/commands/command-catalog.js.map +1 -1
  296. package/dist/commands/persist-command/arg-parsing.d.ts +14 -0
  297. package/dist/commands/persist-command/arg-parsing.d.ts.map +1 -0
  298. package/dist/commands/persist-command/arg-parsing.js +84 -0
  299. package/dist/commands/persist-command/arg-parsing.js.map +1 -0
  300. package/dist/commands/persist-command/backup-rotation.d.ts +23 -0
  301. package/dist/commands/persist-command/backup-rotation.d.ts.map +1 -0
  302. package/dist/commands/persist-command/backup-rotation.js +265 -0
  303. package/dist/commands/persist-command/backup-rotation.js.map +1 -0
  304. package/dist/commands/persist-command/handler.d.ts +10 -0
  305. package/dist/commands/persist-command/handler.d.ts.map +1 -0
  306. package/dist/commands/persist-command/handler.js +267 -0
  307. package/dist/commands/persist-command/handler.js.map +1 -0
  308. package/dist/commands/persist-command/help.d.ts +9 -0
  309. package/dist/commands/persist-command/help.d.ts.map +1 -0
  310. package/dist/commands/persist-command/help.js +86 -0
  311. package/dist/commands/persist-command/help.js.map +1 -0
  312. package/dist/commands/persist-command/receipt.d.ts +13 -0
  313. package/dist/commands/persist-command/receipt.d.ts.map +1 -0
  314. package/dist/commands/persist-command/receipt.js +102 -0
  315. package/dist/commands/persist-command/receipt.js.map +1 -0
  316. package/dist/commands/persist-command/secret-detection.d.ts +11 -0
  317. package/dist/commands/persist-command/secret-detection.d.ts.map +1 -0
  318. package/dist/commands/persist-command/secret-detection.js +54 -0
  319. package/dist/commands/persist-command/secret-detection.js.map +1 -0
  320. package/dist/commands/persist-command/secure-file.d.ts +21 -0
  321. package/dist/commands/persist-command/secure-file.d.ts.map +1 -0
  322. package/dist/commands/persist-command/secure-file.js +231 -0
  323. package/dist/commands/persist-command/secure-file.js.map +1 -0
  324. package/dist/commands/persist-command/types.d.ts +42 -0
  325. package/dist/commands/persist-command/types.d.ts.map +1 -0
  326. package/dist/commands/persist-command/types.js +34 -0
  327. package/dist/commands/persist-command/types.js.map +1 -0
  328. package/dist/commands/persist-command.d.ts +7 -2
  329. package/dist/commands/persist-command.d.ts.map +1 -1
  330. package/dist/commands/persist-command.js +17 -933
  331. package/dist/commands/persist-command.js.map +1 -1
  332. package/dist/commands/proxy-command.d.ts.map +1 -1
  333. package/dist/commands/proxy-command.js +7 -1
  334. package/dist/commands/proxy-command.js.map +1 -1
  335. package/dist/commands/setup-command.d.ts.map +1 -1
  336. package/dist/commands/setup-command.js +11 -1
  337. package/dist/commands/setup-command.js.map +1 -1
  338. package/dist/commands/tokens-command.d.ts.map +1 -1
  339. package/dist/commands/tokens-command.js +6 -0
  340. package/dist/commands/tokens-command.js.map +1 -1
  341. package/dist/config/unified-config-loader.d.ts.map +1 -1
  342. package/dist/config/unified-config-loader.js +22 -12
  343. package/dist/config/unified-config-loader.js.map +1 -1
  344. package/dist/copilot/copilot-executor.js +25 -25
  345. package/dist/copilot/copilot-executor.js.map +1 -1
  346. package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
  347. package/dist/cursor/cursor-daemon-entry.js +34 -9
  348. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  349. package/dist/cursor/cursor-daemon.d.ts.map +1 -1
  350. package/dist/cursor/cursor-daemon.js +1 -0
  351. package/dist/cursor/cursor-daemon.js.map +1 -1
  352. package/dist/cursor/cursor-profile-executor.d.ts.map +1 -1
  353. package/dist/cursor/cursor-profile-executor.js +18 -17
  354. package/dist/cursor/cursor-profile-executor.js.map +1 -1
  355. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  356. package/dist/delegation/delegation-handler.js +29 -23
  357. package/dist/delegation/delegation-handler.js.map +1 -1
  358. package/dist/delegation/headless-executor.d.ts +1 -0
  359. package/dist/delegation/headless-executor.d.ts.map +1 -1
  360. package/dist/delegation/headless-executor.js +36 -15
  361. package/dist/delegation/headless-executor.js.map +1 -1
  362. package/dist/delegation/session-manager.d.ts.map +1 -1
  363. package/dist/delegation/session-manager.js +12 -4
  364. package/dist/delegation/session-manager.js.map +1 -1
  365. package/dist/dispatcher/cli-argument-parser.d.ts +1 -1
  366. package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -1
  367. package/dist/dispatcher/cli-argument-parser.js +24 -23
  368. package/dist/dispatcher/cli-argument-parser.js.map +1 -1
  369. package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -1
  370. package/dist/dispatcher/flows/cliproxy-flow.js +12 -15
  371. package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -1
  372. package/dist/dispatcher/flows/copilot-flow.js +1 -1
  373. package/dist/dispatcher/flows/copilot-flow.js.map +1 -1
  374. package/dist/dispatcher/flows/cursor-flow.js +1 -1
  375. package/dist/dispatcher/flows/cursor-flow.js.map +1 -1
  376. package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
  377. package/dist/dispatcher/flows/settings-flow.js +32 -29
  378. package/dist/dispatcher/flows/settings-flow.js.map +1 -1
  379. package/dist/dispatcher/pre-dispatch.d.ts.map +1 -1
  380. package/dist/dispatcher/pre-dispatch.js +26 -10
  381. package/dist/dispatcher/pre-dispatch.js.map +1 -1
  382. package/dist/dispatcher/profile-resolver.d.ts.map +1 -1
  383. package/dist/dispatcher/profile-resolver.js +16 -16
  384. package/dist/dispatcher/profile-resolver.js.map +1 -1
  385. package/dist/docker/supervisord-lifecycle.d.ts.map +1 -1
  386. package/dist/docker/supervisord-lifecycle.js +5 -1
  387. package/dist/docker/supervisord-lifecycle.js.map +1 -1
  388. package/dist/errors/error-types.d.ts +26 -22
  389. package/dist/errors/error-types.d.ts.map +1 -1
  390. package/dist/errors/error-types.js +15 -12
  391. package/dist/errors/error-types.js.map +1 -1
  392. package/dist/errors/exit-codes.d.ts +20 -13
  393. package/dist/errors/exit-codes.d.ts.map +1 -1
  394. package/dist/errors/exit-codes.js +32 -28
  395. package/dist/errors/exit-codes.js.map +1 -1
  396. package/dist/glmt/delta-accumulator.d.ts +1 -0
  397. package/dist/glmt/delta-accumulator.d.ts.map +1 -1
  398. package/dist/glmt/delta-accumulator.js +12 -4
  399. package/dist/glmt/delta-accumulator.js.map +1 -1
  400. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  401. package/dist/glmt/glmt-proxy.js +39 -10
  402. package/dist/glmt/glmt-proxy.js.map +1 -1
  403. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  404. package/dist/glmt/glmt-transformer.js +1 -4
  405. package/dist/glmt/glmt-transformer.js.map +1 -1
  406. package/dist/glmt/pipeline/request-transformer.d.ts.map +1 -1
  407. package/dist/glmt/pipeline/request-transformer.js +5 -1
  408. package/dist/glmt/pipeline/request-transformer.js.map +1 -1
  409. package/dist/glmt/pipeline/response-builder.d.ts.map +1 -1
  410. package/dist/glmt/pipeline/response-builder.js +7 -3
  411. package/dist/glmt/pipeline/response-builder.js.map +1 -1
  412. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -1
  413. package/dist/glmt/pipeline/stream-parser.js +11 -5
  414. package/dist/glmt/pipeline/stream-parser.js.map +1 -1
  415. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -1
  416. package/dist/glmt/pipeline/tool-call-handler.js +7 -1
  417. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -1
  418. package/dist/glmt/sse-parser.d.ts +1 -0
  419. package/dist/glmt/sse-parser.d.ts.map +1 -1
  420. package/dist/glmt/sse-parser.js +7 -3
  421. package/dist/glmt/sse-parser.js.map +1 -1
  422. package/dist/management/checks/cliproxy-check.d.ts.map +1 -1
  423. package/dist/management/checks/cliproxy-check.js +15 -1
  424. package/dist/management/checks/cliproxy-check.js.map +1 -1
  425. package/dist/management/checks/config-check.d.ts.map +1 -1
  426. package/dist/management/checks/config-check.js +4 -1
  427. package/dist/management/checks/config-check.js.map +1 -1
  428. package/dist/management/checks/profile-check.d.ts.map +1 -1
  429. package/dist/management/checks/profile-check.js +10 -6
  430. package/dist/management/checks/profile-check.js.map +1 -1
  431. package/dist/management/doctor.d.ts +7 -0
  432. package/dist/management/doctor.d.ts.map +1 -1
  433. package/dist/management/doctor.js +31 -9
  434. package/dist/management/doctor.js.map +1 -1
  435. package/dist/management/shared-manager/fs-helpers.d.ts +69 -0
  436. package/dist/management/shared-manager/fs-helpers.d.ts.map +1 -0
  437. package/dist/management/shared-manager/fs-helpers.js +241 -0
  438. package/dist/management/shared-manager/fs-helpers.js.map +1 -0
  439. package/dist/management/shared-manager/migrations.d.ts +21 -0
  440. package/dist/management/shared-manager/migrations.d.ts.map +1 -0
  441. package/dist/management/shared-manager/migrations.js +187 -0
  442. package/dist/management/shared-manager/migrations.js.map +1 -0
  443. package/dist/management/shared-manager/orchestrator.d.ts +87 -0
  444. package/dist/management/shared-manager/orchestrator.d.ts.map +1 -0
  445. package/dist/management/shared-manager/orchestrator.js +161 -0
  446. package/dist/management/shared-manager/orchestrator.js.map +1 -0
  447. package/dist/management/shared-manager/plugin-layout-internals.d.ts +42 -0
  448. package/dist/management/shared-manager/plugin-layout-internals.d.ts.map +1 -0
  449. package/dist/management/shared-manager/plugin-layout-internals.js +192 -0
  450. package/dist/management/shared-manager/plugin-layout-internals.js.map +1 -0
  451. package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts +53 -0
  452. package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts.map +1 -0
  453. package/dist/management/shared-manager/plugin-metadata-normalizer.js +253 -0
  454. package/dist/management/shared-manager/plugin-metadata-normalizer.js.map +1 -0
  455. package/dist/management/shared-manager/project-context-sync.d.ts +36 -0
  456. package/dist/management/shared-manager/project-context-sync.d.ts.map +1 -0
  457. package/dist/management/shared-manager/project-context-sync.js +204 -0
  458. package/dist/management/shared-manager/project-context-sync.js.map +1 -0
  459. package/dist/management/shared-manager/project-memory-sync.d.ts +21 -0
  460. package/dist/management/shared-manager/project-memory-sync.d.ts.map +1 -0
  461. package/dist/management/shared-manager/project-memory-sync.js +113 -0
  462. package/dist/management/shared-manager/project-memory-sync.js.map +1 -0
  463. package/dist/management/shared-manager/shared-dir-linker.d.ts +41 -0
  464. package/dist/management/shared-manager/shared-dir-linker.d.ts.map +1 -0
  465. package/dist/management/shared-manager/shared-dir-linker.js +227 -0
  466. package/dist/management/shared-manager/shared-dir-linker.js.map +1 -0
  467. package/dist/management/shared-manager/symlink-helpers.d.ts +61 -0
  468. package/dist/management/shared-manager/symlink-helpers.d.ts.map +1 -0
  469. package/dist/management/shared-manager/symlink-helpers.js +243 -0
  470. package/dist/management/shared-manager/symlink-helpers.js.map +1 -0
  471. package/dist/management/shared-manager/types.d.ts +45 -0
  472. package/dist/management/shared-manager/types.d.ts.map +1 -0
  473. package/dist/management/shared-manager/types.js +57 -0
  474. package/dist/management/shared-manager/types.js.map +1 -0
  475. package/dist/management/shared-manager.d.ts +13 -160
  476. package/dist/management/shared-manager.d.ts.map +1 -1
  477. package/dist/management/shared-manager.js +18 -1294
  478. package/dist/management/shared-manager.js.map +1 -1
  479. package/dist/proxy/proxy-daemon-entry.js +1 -1
  480. package/dist/proxy/proxy-daemon-entry.js.map +1 -1
  481. package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -1
  482. package/dist/proxy/transformers/sse-stream-transformer.js +12 -17
  483. package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -1
  484. package/dist/services/logging/index.d.ts +1 -1
  485. package/dist/services/logging/index.d.ts.map +1 -1
  486. package/dist/services/logging/index.js +6 -1
  487. package/dist/services/logging/index.js.map +1 -1
  488. package/dist/services/logging/log-context.d.ts +27 -2
  489. package/dist/services/logging/log-context.d.ts.map +1 -1
  490. package/dist/services/logging/log-context.js +43 -4
  491. package/dist/services/logging/log-context.js.map +1 -1
  492. package/dist/services/logging/log-redaction.d.ts +9 -0
  493. package/dist/services/logging/log-redaction.d.ts.map +1 -1
  494. package/dist/services/logging/log-redaction.js +31 -3
  495. package/dist/services/logging/log-redaction.js.map +1 -1
  496. package/dist/services/logging/logger.js +2 -2
  497. package/dist/services/logging/logger.js.map +1 -1
  498. package/dist/shared/provider-preset-catalog.js +7 -7
  499. package/dist/shared/provider-preset-catalog.js.map +1 -1
  500. package/dist/targets/codex-adapter.d.ts.map +1 -1
  501. package/dist/targets/codex-adapter.js +11 -10
  502. package/dist/targets/codex-adapter.js.map +1 -1
  503. package/dist/targets/droid-adapter.d.ts.map +1 -1
  504. package/dist/targets/droid-adapter.js +12 -12
  505. package/dist/targets/droid-adapter.js.map +1 -1
  506. package/dist/ui/assets/{Trans-BXjW_Rw3.js → Trans-GYzYLs2D.js} +1 -1
  507. package/dist/ui/assets/{accounts-C7JMc-UL.js → accounts-DC1QuyI9.js} +1 -1
  508. package/dist/ui/assets/{alert-dialog-BSSHnWG_.js → alert-dialog-6SiedqmE.js} +1 -1
  509. package/dist/ui/assets/{api-GzEZNvOJ.js → api-3s21dbNJ.js} +1 -1
  510. package/dist/ui/assets/{auth-section-B6k7LWIq.js → auth-section-XBfNgVN4.js} +1 -1
  511. package/dist/ui/assets/{backups-section-Cr3g01YN.js → backups-section-BidiiVlq.js} +1 -1
  512. package/dist/ui/assets/{channels-CMyh1yhN.js → channels-pfgPUDGt.js} +1 -1
  513. package/dist/ui/assets/{checkbox-BkqYXiER.js → checkbox-CJw_-nvC.js} +1 -1
  514. package/dist/ui/assets/{claude-extension-BzYl3zcz.js → claude-extension-BIIUOvTJ.js} +1 -1
  515. package/dist/ui/assets/{cliproxy-DwzKzuZI.js → cliproxy-Cq8OX0Pu.js} +1 -1
  516. package/dist/ui/assets/{cliproxy-ai-providers-DL95SYNa.js → cliproxy-ai-providers-DI760ZF0.js} +1 -1
  517. package/dist/ui/assets/{cliproxy-control-panel-Ba2Rgzdo.js → cliproxy-control-panel-CBqvpOqj.js} +1 -1
  518. package/dist/ui/assets/{codex-ClTEGCnr.js → codex-DL4OLBUu.js} +1 -1
  519. package/dist/ui/assets/{confirm-dialog-BPAO4ILr.js → confirm-dialog-CC_Cc3EO.js} +1 -1
  520. package/dist/ui/assets/{copilot-CymHD4gl.js → copilot-D2kEhTXR.js} +1 -1
  521. package/dist/ui/assets/{cursor-DAiPXs8h.js → cursor-BashLrYk.js} +1 -1
  522. package/dist/ui/assets/{droid-CAhLWDOj.js → droid-DaKTINFL.js} +1 -1
  523. package/dist/ui/assets/{globalenv-section-BK5x_uXG.js → globalenv-section-BQicL8L0.js} +1 -1
  524. package/dist/ui/assets/{health-D_ErMvYv.js → health-bRbE_ADg.js} +1 -1
  525. package/dist/ui/assets/{index-BcfwoMDm.js → index-B2JEyN3d.js} +36 -36
  526. package/dist/ui/assets/{index-B4cUkPwc.js → index-BwZdl1HU.js} +1 -1
  527. package/dist/ui/assets/{index-BZMyk4bI.js → index-CgeAb1-K.js} +1 -1
  528. package/dist/ui/assets/{index-BmbKPprT.js → index-DAQ0qIQ_.js} +1 -1
  529. package/dist/ui/assets/{index-CEjVNSjg.js → index-O2x1grGh.js} +1 -1
  530. package/dist/ui/assets/{index-DCC80SZ0.js → index-WA7tK6np.js} +1 -1
  531. package/dist/ui/assets/{index-CFDjAXOB.js → index-mf2X1GwS.js} +1 -1
  532. package/dist/ui/assets/{logs-DwhXr-9Y.js → logs-qrBHUJ0H.js} +1 -1
  533. package/dist/ui/assets/{masked-input-DWJTe7jh.js → masked-input-CXwQ4E-g.js} +1 -1
  534. package/dist/ui/assets/{proxy-status-widget-CJXi8yui.js → proxy-status-widget-DPz4nCzR.js} +1 -1
  535. package/dist/ui/assets/{raw-json-settings-editor-panel-DWhAi0kI.js → raw-json-settings-editor-panel-CcvsWVh1.js} +1 -1
  536. package/dist/ui/assets/{searchable-select-CYC4Y8pS.js → searchable-select-EXSjNCRu.js} +1 -1
  537. package/dist/ui/assets/{separator-JhuNwVKE.js → separator-D2CTfWBQ.js} +1 -1
  538. package/dist/ui/assets/{shared-Hpgs7l5G.js → shared-DpgzhFqe.js} +1 -1
  539. package/dist/ui/assets/{table-DDJTZfyL.js → table-DwbiGRYk.js} +1 -1
  540. package/dist/ui/assets/{updates-CtygOHUO.js → updates-D8jfIb2y.js} +1 -1
  541. package/dist/ui/assets/{use-accounts-CaptC8AS.js → use-accounts-Bwtpnx-x.js} +1 -1
  542. package/dist/ui/index.html +1 -1
  543. package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -1
  544. package/dist/utils/image-analysis/mcp-installer.js +16 -13
  545. package/dist/utils/image-analysis/mcp-installer.js.map +1 -1
  546. package/dist/utils/websearch/index.d.ts +1 -1
  547. package/dist/utils/websearch/index.d.ts.map +1 -1
  548. package/dist/utils/websearch/index.js +2 -1
  549. package/dist/utils/websearch/index.js.map +1 -1
  550. package/dist/utils/websearch/mcp-installer.d.ts +8 -0
  551. package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
  552. package/dist/utils/websearch/mcp-installer.js +34 -13
  553. package/dist/utils/websearch/mcp-installer.js.map +1 -1
  554. package/dist/utils/websearch-manager.d.ts +1 -1
  555. package/dist/utils/websearch-manager.d.ts.map +1 -1
  556. package/dist/utils/websearch-manager.js +2 -1
  557. package/dist/utils/websearch-manager.js.map +1 -1
  558. package/dist/web-server/middleware/request-logging-middleware.d.ts.map +1 -1
  559. package/dist/web-server/middleware/request-logging-middleware.js +14 -9
  560. package/dist/web-server/middleware/request-logging-middleware.js.map +1 -1
  561. package/dist/web-server/model-pricing.d.ts.map +1 -1
  562. package/dist/web-server/model-pricing.js +22 -2
  563. package/dist/web-server/model-pricing.js.map +1 -1
  564. package/dist/web-server/routes/bar-routes.d.ts +12 -1
  565. package/dist/web-server/routes/bar-routes.d.ts.map +1 -1
  566. package/dist/web-server/routes/bar-routes.js +22 -6
  567. package/dist/web-server/routes/bar-routes.js.map +1 -1
  568. package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
  569. package/dist/web-server/routes/claude-extension-routes.js +3 -2
  570. package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
  571. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +1 -0
  572. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  573. package/dist/web-server/routes/cliproxy-auth-routes.js +20 -5
  574. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  575. package/dist/web-server/routes/cliproxy-stats-routes/config-routes.d.ts +16 -0
  576. package/dist/web-server/routes/cliproxy-stats-routes/config-routes.d.ts.map +1 -0
  577. package/dist/web-server/routes/cliproxy-stats-routes/config-routes.js +219 -0
  578. package/dist/web-server/routes/cliproxy-stats-routes/config-routes.js.map +1 -0
  579. package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.d.ts +12 -0
  580. package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.d.ts.map +1 -0
  581. package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.js +153 -0
  582. package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.js.map +1 -0
  583. package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.d.ts +19 -0
  584. package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.d.ts.map +1 -0
  585. package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.js +38 -0
  586. package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.js.map +1 -0
  587. package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.d.ts +13 -0
  588. package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.d.ts.map +1 -0
  589. package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.js +195 -0
  590. package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.js.map +1 -0
  591. package/dist/web-server/routes/cliproxy-stats-routes/restart-route.d.ts +17 -0
  592. package/dist/web-server/routes/cliproxy-stats-routes/restart-route.d.ts.map +1 -0
  593. package/dist/web-server/routes/cliproxy-stats-routes/restart-route.js +34 -0
  594. package/dist/web-server/routes/cliproxy-stats-routes/restart-route.js.map +1 -0
  595. package/dist/web-server/routes/cliproxy-stats-routes/router.d.ts +10 -0
  596. package/dist/web-server/routes/cliproxy-stats-routes/router.d.ts.map +1 -0
  597. package/dist/web-server/routes/cliproxy-stats-routes/router.js +245 -0
  598. package/dist/web-server/routes/cliproxy-stats-routes/router.js.map +1 -0
  599. package/dist/web-server/routes/cliproxy-stats-routes/shared.d.ts +35 -0
  600. package/dist/web-server/routes/cliproxy-stats-routes/shared.d.ts.map +1 -0
  601. package/dist/web-server/routes/cliproxy-stats-routes/shared.js +59 -0
  602. package/dist/web-server/routes/cliproxy-stats-routes/shared.js.map +1 -0
  603. package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.d.ts +44 -0
  604. package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.d.ts.map +1 -0
  605. package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.js +66 -0
  606. package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.js.map +1 -0
  607. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +16 -57
  608. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  609. package/dist/web-server/routes/cliproxy-stats-routes.js +25 -926
  610. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  611. package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -1
  612. package/dist/web-server/routes/cliproxy-sync-routes.js +9 -2
  613. package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -1
  614. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -1
  615. package/dist/web-server/routes/copilot-settings-routes.js +2 -1
  616. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -1
  617. package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
  618. package/dist/web-server/routes/image-analysis-routes.js +2 -1
  619. package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
  620. package/dist/web-server/routes/persist-routes.d.ts.map +1 -1
  621. package/dist/web-server/routes/persist-routes.js +8 -1
  622. package/dist/web-server/routes/persist-routes.js.map +1 -1
  623. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
  624. package/dist/web-server/routes/proxy-routes.js +33 -5
  625. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  626. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  627. package/dist/web-server/routes/route-helpers.js +10 -6
  628. package/dist/web-server/routes/route-helpers.js.map +1 -1
  629. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  630. package/dist/web-server/routes/settings-routes.js +7 -6
  631. package/dist/web-server/routes/settings-routes.js.map +1 -1
  632. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  633. package/dist/web-server/usage/aggregator.js +8 -8
  634. package/dist/web-server/usage/aggregator.js.map +1 -1
  635. package/dist/web-server/usage/bar-analytics.d.ts +21 -0
  636. package/dist/web-server/usage/bar-analytics.d.ts.map +1 -1
  637. package/dist/web-server/usage/bar-analytics.js +78 -9
  638. package/dist/web-server/usage/bar-analytics.js.map +1 -1
  639. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  640. package/dist/web-server/usage/handlers.js +1 -1
  641. package/dist/web-server/usage/handlers.js.map +1 -1
  642. package/dist/web-server/usage/native-quota-collector.d.ts +37 -9
  643. package/dist/web-server/usage/native-quota-collector.d.ts.map +1 -1
  644. package/dist/web-server/usage/native-quota-collector.js +226 -23
  645. package/dist/web-server/usage/native-quota-collector.js.map +1 -1
  646. package/package.json +1 -1
  647. package/scripts/ci-parity-gate.sh +31 -0
  648. package/scripts/generate-throw-error-baseline.js +103 -0
  649. package/scripts/hardening-inventory.js +62 -4
  650. package/scripts/maintainability-metrics.js +356 -0
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Claude window classification + display helpers.
3
+ *
4
+ * Claude quota results include multiple policy windows (5h, weekly, weekly
5
+ * per-model variants like Opus/Sonnet, overage, etc.). These helpers classify
6
+ * each window and extract the two "core usage" windows for the summary line.
7
+ */
8
+ import type { ClaudeQuotaResult } from '../../../cliproxy/quota/quota-types';
9
+ import type { ClaudeDisplayWindow } from './types';
10
+ /** Human-readable label for a Claude window based on its rate-limit type. */
11
+ export declare function getClaudeWindowDisplayLabel(window: Pick<ClaudeDisplayWindow, 'rateLimitType' | 'label'>): string;
12
+ /** Convert a raw Claude quota window into the normalized display shape. */
13
+ export declare function toClaudeDisplayWindow(window: ClaudeQuotaResult['windows'][number]): ClaudeDisplayWindow;
14
+ /** Convert a coreUsage 5h/weekly sub-window into the display shape (or null). */
15
+ export declare function toClaudeCoreDisplayWindow(window: NonNullable<ClaudeQuotaResult['coreUsage']>['fiveHour']): ClaudeDisplayWindow | null;
16
+ /**
17
+ * Pick the two "core usage" windows (5h + weekly) for a Claude result.
18
+ *
19
+ * Prefers the explicit coreUsage metadata. Falls back to the 'five_hour'
20
+ * window and the most restrictive weekly window when metadata is absent.
21
+ */
22
+ export declare function getClaudeCoreUsageWindows(quota: ClaudeQuotaResult): {
23
+ fiveHourWindow: ClaudeDisplayWindow | null;
24
+ weeklyWindow: ClaudeDisplayWindow | null;
25
+ };
26
+ //# sourceMappingURL=claude-window-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-window-helpers.d.ts","sourceRoot":"","sources":["../../../../src/commands/cliproxy/quota-subcommand/claude-window-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,6EAA6E;AAC7E,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,GAAG,OAAO,CAAC,GAC3D,MAAM,CAmBR;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAC3C,mBAAmB,CAQrB;AAED,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,GAC9D,mBAAmB,GAAG,IAAI,CAS5B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG;IACnE,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC1C,CAmBA"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * Claude window classification + display helpers.
4
+ *
5
+ * Claude quota results include multiple policy windows (5h, weekly, weekly
6
+ * per-model variants like Opus/Sonnet, overage, etc.). These helpers classify
7
+ * each window and extract the two "core usage" windows for the summary line.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getClaudeCoreUsageWindows = exports.toClaudeCoreDisplayWindow = exports.toClaudeDisplayWindow = exports.getClaudeWindowDisplayLabel = void 0;
11
+ const quota_fetcher_claude_normalizer_1 = require("../../../cliproxy/quota/quota-fetcher-claude-normalizer");
12
+ /** Human-readable label for a Claude window based on its rate-limit type. */
13
+ function getClaudeWindowDisplayLabel(window) {
14
+ switch (window.rateLimitType) {
15
+ case 'five_hour':
16
+ return '5h usage limit';
17
+ case 'seven_day':
18
+ return 'Weekly usage limit';
19
+ case 'seven_day_opus':
20
+ return 'Weekly usage (Opus)';
21
+ case 'seven_day_sonnet':
22
+ return 'Weekly usage (Sonnet)';
23
+ case 'seven_day_oauth_apps':
24
+ return 'Weekly usage (OAuth apps)';
25
+ case 'seven_day_cowork':
26
+ return 'Weekly usage (Cowork)';
27
+ case 'overage':
28
+ return 'Extra usage';
29
+ default:
30
+ return window.label;
31
+ }
32
+ }
33
+ exports.getClaudeWindowDisplayLabel = getClaudeWindowDisplayLabel;
34
+ /** Convert a raw Claude quota window into the normalized display shape. */
35
+ function toClaudeDisplayWindow(window) {
36
+ return {
37
+ rateLimitType: window.rateLimitType,
38
+ label: window.label,
39
+ remainingPercent: window.remainingPercent,
40
+ resetAt: window.resetAt,
41
+ status: window.status,
42
+ };
43
+ }
44
+ exports.toClaudeDisplayWindow = toClaudeDisplayWindow;
45
+ /** Convert a coreUsage 5h/weekly sub-window into the display shape (or null). */
46
+ function toClaudeCoreDisplayWindow(window) {
47
+ if (!window)
48
+ return null;
49
+ return {
50
+ rateLimitType: window.rateLimitType,
51
+ label: window.label,
52
+ remainingPercent: window.remainingPercent,
53
+ resetAt: window.resetAt,
54
+ status: window.status,
55
+ };
56
+ }
57
+ exports.toClaudeCoreDisplayWindow = toClaudeCoreDisplayWindow;
58
+ /**
59
+ * Pick the two "core usage" windows (5h + weekly) for a Claude result.
60
+ *
61
+ * Prefers the explicit coreUsage metadata. Falls back to the 'five_hour'
62
+ * window and the most restrictive weekly window when metadata is absent.
63
+ */
64
+ function getClaudeCoreUsageWindows(quota) {
65
+ const coreUsage = quota.coreUsage;
66
+ const fiveHourFromCore = toClaudeCoreDisplayWindow(coreUsage?.fiveHour ?? null);
67
+ const weeklyFromCore = toClaudeCoreDisplayWindow(coreUsage?.weekly ?? null);
68
+ if (fiveHourFromCore || weeklyFromCore) {
69
+ return {
70
+ fiveHourWindow: fiveHourFromCore,
71
+ weeklyWindow: weeklyFromCore,
72
+ };
73
+ }
74
+ const fiveHourPolicy = quota.windows.find((window) => window.rateLimitType === 'five_hour') ?? null;
75
+ const weeklyPolicy = (0, quota_fetcher_claude_normalizer_1.pickMostRestrictiveClaudeWeeklyWindow)(quota.windows);
76
+ return {
77
+ fiveHourWindow: fiveHourPolicy ? toClaudeDisplayWindow(fiveHourPolicy) : null,
78
+ weeklyWindow: weeklyPolicy ? toClaudeDisplayWindow(weeklyPolicy) : null,
79
+ };
80
+ }
81
+ exports.getClaudeCoreUsageWindows = getClaudeCoreUsageWindows;
82
+ //# sourceMappingURL=claude-window-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-window-helpers.js","sourceRoot":"","sources":["../../../../src/commands/cliproxy/quota-subcommand/claude-window-helpers.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAGH,6GAAgH;AAGhH,6EAA6E;AAC7E,SAAgB,2BAA2B,CACzC,MAA4D;IAE5D,QAAQ,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7B,KAAK,WAAW;YACd,OAAO,gBAAgB,CAAC;QAC1B,KAAK,WAAW;YACd,OAAO,oBAAoB,CAAC;QAC9B,KAAK,gBAAgB;YACnB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,kBAAkB;YACrB,OAAO,uBAAuB,CAAC;QACjC,KAAK,sBAAsB;YACzB,OAAO,2BAA2B,CAAC;QACrC,KAAK,kBAAkB;YACrB,OAAO,uBAAuB,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC;QACvB;YACE,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;AACH,CAAC;AArBD,kEAqBC;AAED,2EAA2E;AAC3E,SAAgB,qBAAqB,CACnC,MAA4C;IAE5C,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAVD,sDAUC;AAED,iFAAiF;AACjF,SAAgB,yBAAyB,CACvC,MAA+D;IAE/D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAXD,8DAWC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,KAAwB;IAIhE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,SAAS,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;IAChF,MAAM,cAAc,GAAG,yBAAyB,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IAC5E,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAAC;QACvC,OAAO;YACL,cAAc,EAAE,gBAAgB;YAChC,YAAY,EAAE,cAAc;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAClB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC;IAC/E,MAAM,YAAY,GAAG,IAAA,uEAAqC,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE1E,OAAO;QACL,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7E,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;KACxE,CAAC;AACJ,CAAC;AAtBD,8DAsBC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Codex window classification + display helpers.
3
+ *
4
+ * Codex quota results include multiple rate-limit windows (5h usage, weekly
5
+ * usage, code review, and "additional" feature windows like Codex Spark).
6
+ * These helpers classify each window, pick display labels, and identify the
7
+ * two "core usage" windows used in the per-account summary.
8
+ */
9
+ import type { CodexQuotaResult } from '../../../cliproxy/quota/quota-types';
10
+ import type { CodexWindowKind } from './types';
11
+ /** Subset of a Codex window used by label classification (for test ergonomics). */
12
+ export type CodexWindowSummary = Pick<CodexQuotaResult['windows'][number], 'label' | 'resetAfterSeconds' | 'category' | 'cadence' | 'featureLabel'>;
13
+ /** Render the reset time for a Codex window as either a relative or absolute label. */
14
+ export declare function formatCodexWindowReset(window: Pick<CodexQuotaResult['windows'][number], 'resetAfterSeconds' | 'resetAt'>): string | null;
15
+ /** Classify a Codex window label into a known kind. */
16
+ export declare function getCodexWindowKind(label: string): CodexWindowKind;
17
+ /**
18
+ * Infer whether a code-review window resets on the 5h or weekly cadence by
19
+ * comparing its reset time against the 5h and weekly usage windows. Returns
20
+ * null when no inference is possible.
21
+ */
22
+ export declare function inferCodeReviewCadence(window: CodexWindowSummary, allWindows: CodexWindowSummary[]): '5h' | 'weekly' | null;
23
+ /**
24
+ * Strip a leading "GPT-X.Y-Codex-" prefix from a feature label and turn the
25
+ * remainder into a Codex-prefixed display name. Other labels pass through unchanged.
26
+ */
27
+ export declare function prettifyCodexFeatureLabel(featureLabel: unknown, fallbackLabel?: unknown): string;
28
+ /** Human-readable label for a Codex window, using metadata when available. */
29
+ export declare function getCodexWindowDisplayLabel(window: CodexWindowSummary, allWindows?: CodexWindowSummary[]): string;
30
+ /**
31
+ * Pick the two "core usage" windows (5h + weekly) out of a Codex result.
32
+ *
33
+ * Prefers explicit category metadata. Falls back to label sniffing for cached
34
+ * windows, and finally to a best-effort guess based on reset times so the
35
+ * summary line always has something useful to show.
36
+ */
37
+ export declare function getCodexCoreUsageWindows(windows: CodexQuotaResult['windows']): {
38
+ fiveHourWindow: CodexQuotaResult['windows'][number] | null;
39
+ weeklyWindow: CodexQuotaResult['windows'][number] | null;
40
+ };
41
+ //# sourceMappingURL=codex-window-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-window-helpers.d.ts","sourceRoot":"","sources":["../../../../src/commands/cliproxy/quota-subcommand/codex-window-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EACnC,OAAO,GAAG,mBAAmB,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CACxE,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC,GACjF,MAAM,GAAG,IAAI,CAef;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAejE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,kBAAkB,EAAE,GAC/B,IAAI,GAAG,QAAQ,GAAG,IAAI,CA2BxB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAWhG;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,kBAAkB,EAC1B,UAAU,GAAE,kBAAkB,EAAO,GACpC,MAAM,CAuCR;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG;IAC9E,cAAc,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC3D,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC1D,CAuDA"}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ /**
3
+ * Codex window classification + display helpers.
4
+ *
5
+ * Codex quota results include multiple rate-limit windows (5h usage, weekly
6
+ * usage, code review, and "additional" feature windows like Codex Spark).
7
+ * These helpers classify each window, pick display labels, and identify the
8
+ * two "core usage" windows used in the per-account summary.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.getCodexCoreUsageWindows = exports.getCodexWindowDisplayLabel = exports.prettifyCodexFeatureLabel = exports.inferCodeReviewCadence = exports.getCodexWindowKind = exports.formatCodexWindowReset = void 0;
12
+ const quota_label_sanitizer_1 = require("../../../cliproxy/quota/quota-label-sanitizer");
13
+ const format_helpers_1 = require("./format-helpers");
14
+ /** Render the reset time for a Codex window as either a relative or absolute label. */
15
+ function formatCodexWindowReset(window) {
16
+ if (typeof window.resetAfterSeconds === 'number' && isFinite(window.resetAfterSeconds)) {
17
+ const relative = (0, format_helpers_1.formatResetTime)(Math.max(0, window.resetAfterSeconds));
18
+ if (window.resetAfterSeconds >= 86400 && window.resetAt) {
19
+ const absolute = (0, format_helpers_1.formatAbsoluteResetTime)(window.resetAt);
20
+ return absolute ? `${relative} (${absolute})` : relative;
21
+ }
22
+ return relative;
23
+ }
24
+ if (window.resetAt) {
25
+ return (0, format_helpers_1.formatResetTimeISO)(window.resetAt);
26
+ }
27
+ return null;
28
+ }
29
+ exports.formatCodexWindowReset = formatCodexWindowReset;
30
+ /** Classify a Codex window label into a known kind. */
31
+ function getCodexWindowKind(label) {
32
+ const lower = (label || '').toLowerCase();
33
+ const isCodeReview = lower.includes('code review') || lower.includes('code_review');
34
+ const isPrimary = lower.includes('primary');
35
+ const isSecondary = lower.includes('secondary');
36
+ if (isCodeReview) {
37
+ if (isPrimary)
38
+ return 'code-review-5h';
39
+ if (isSecondary)
40
+ return 'code-review-weekly';
41
+ return 'code-review';
42
+ }
43
+ if (isPrimary)
44
+ return 'usage-5h';
45
+ if (isSecondary)
46
+ return 'usage-weekly';
47
+ return 'unknown';
48
+ }
49
+ exports.getCodexWindowKind = getCodexWindowKind;
50
+ /**
51
+ * Infer whether a code-review window resets on the 5h or weekly cadence by
52
+ * comparing its reset time against the 5h and weekly usage windows. Returns
53
+ * null when no inference is possible.
54
+ */
55
+ function inferCodeReviewCadence(window, allWindows) {
56
+ const kind = getCodexWindowKind(window.label);
57
+ if (kind === 'code-review-weekly')
58
+ return 'weekly';
59
+ const reset = window.resetAfterSeconds;
60
+ if (typeof reset !== 'number' || !isFinite(reset) || reset <= 0)
61
+ return null;
62
+ const usage5h = allWindows.find((w) => getCodexWindowKind(w.label) === 'usage-5h' &&
63
+ typeof w.resetAfterSeconds === 'number' &&
64
+ isFinite(w.resetAfterSeconds) &&
65
+ w.resetAfterSeconds > 0);
66
+ const usageWeekly = allWindows.find((w) => getCodexWindowKind(w.label) === 'usage-weekly' &&
67
+ typeof w.resetAfterSeconds === 'number' &&
68
+ isFinite(w.resetAfterSeconds) &&
69
+ w.resetAfterSeconds > 0);
70
+ if (!usage5h || !usageWeekly)
71
+ return null;
72
+ const diffTo5h = Math.abs(reset - usage5h.resetAfterSeconds);
73
+ const diffToWeekly = Math.abs(reset - usageWeekly.resetAfterSeconds);
74
+ return diffToWeekly <= diffTo5h ? 'weekly' : '5h';
75
+ }
76
+ exports.inferCodeReviewCadence = inferCodeReviewCadence;
77
+ /**
78
+ * Strip a leading "GPT-X.Y-Codex-" prefix from a feature label and turn the
79
+ * remainder into a Codex-prefixed display name. Other labels pass through unchanged.
80
+ */
81
+ function prettifyCodexFeatureLabel(featureLabel, fallbackLabel) {
82
+ const trimmed = (0, quota_label_sanitizer_1.sanitizeCodexFeatureLabelOrNull)(featureLabel) ??
83
+ (fallbackLabel === undefined
84
+ ? (0, quota_label_sanitizer_1.sanitizeCodexFeatureLabel)(featureLabel)
85
+ : (0, quota_label_sanitizer_1.sanitizeCodexFeatureLabel)(fallbackLabel));
86
+ const stripped = trimmed.replace(/^GPT-[\d.]+-Codex-/i, '');
87
+ if (stripped !== trimmed && stripped.length > 0) {
88
+ return `Codex ${stripped}`;
89
+ }
90
+ return trimmed;
91
+ }
92
+ exports.prettifyCodexFeatureLabel = prettifyCodexFeatureLabel;
93
+ /** Human-readable label for a Codex window, using metadata when available. */
94
+ function getCodexWindowDisplayLabel(window, allWindows = []) {
95
+ const context = allWindows.length > 0 ? allWindows : [window];
96
+ // Prefer explicit category metadata when present (post-2026-04 windows).
97
+ if (window.category === 'usage') {
98
+ if (window.cadence === '5h')
99
+ return '5h usage limit';
100
+ if (window.cadence === 'weekly')
101
+ return 'Weekly usage limit';
102
+ }
103
+ if (window.category === 'additional') {
104
+ const pretty = prettifyCodexFeatureLabel(window.featureLabel, window.label);
105
+ if (window.cadence === '5h')
106
+ return `${pretty} (5h)`;
107
+ if (window.cadence === 'weekly')
108
+ return `${pretty} (weekly)`;
109
+ return pretty;
110
+ }
111
+ if (window.category === 'code-review') {
112
+ if (window.cadence === '5h')
113
+ return 'Code review (5h)';
114
+ if (window.cadence === 'weekly')
115
+ return 'Code review (weekly)';
116
+ return 'Code review';
117
+ }
118
+ // Legacy fallback: classify via label sniffing for cached windows without metadata.
119
+ switch (getCodexWindowKind(window.label)) {
120
+ case 'usage-5h':
121
+ return '5h usage limit';
122
+ case 'usage-weekly':
123
+ return 'Weekly usage limit';
124
+ case 'code-review-5h':
125
+ case 'code-review-weekly':
126
+ case 'code-review': {
127
+ const inferred = inferCodeReviewCadence(window, context);
128
+ if (inferred === '5h')
129
+ return 'Code review (5h)';
130
+ if (inferred === 'weekly')
131
+ return 'Code review (weekly)';
132
+ return 'Code review';
133
+ }
134
+ case 'unknown':
135
+ return window.label;
136
+ }
137
+ }
138
+ exports.getCodexWindowDisplayLabel = getCodexWindowDisplayLabel;
139
+ /**
140
+ * Pick the two "core usage" windows (5h + weekly) out of a Codex result.
141
+ *
142
+ * Prefers explicit category metadata. Falls back to label sniffing for cached
143
+ * windows, and finally to a best-effort guess based on reset times so the
144
+ * summary line always has something useful to show.
145
+ */
146
+ function getCodexCoreUsageWindows(windows) {
147
+ let fiveHourWindow = null;
148
+ let weeklyWindow = null;
149
+ const nonCodeReviewWindows = [];
150
+ // Prefer explicit category metadata when present so 'additional' windows
151
+ // (e.g. GPT-5.3 Codex Spark) do not displace core usage windows in the summary.
152
+ const hasCategoryMetadata = windows.some((window) => Boolean(window.category));
153
+ if (hasCategoryMetadata) {
154
+ for (const window of windows) {
155
+ if (window.category === 'usage') {
156
+ if (window.cadence === '5h' && !fiveHourWindow)
157
+ fiveHourWindow = window;
158
+ else if (window.cadence === 'weekly' && !weeklyWindow)
159
+ weeklyWindow = window;
160
+ nonCodeReviewWindows.push(window);
161
+ }
162
+ // 'code-review' and 'additional' are excluded from the core usage summary.
163
+ }
164
+ }
165
+ else {
166
+ for (const window of windows) {
167
+ const kind = getCodexWindowKind(window.label);
168
+ if (kind === 'usage-5h') {
169
+ if (!fiveHourWindow)
170
+ fiveHourWindow = window;
171
+ nonCodeReviewWindows.push(window);
172
+ continue;
173
+ }
174
+ if (kind === 'usage-weekly') {
175
+ if (!weeklyWindow)
176
+ weeklyWindow = window;
177
+ nonCodeReviewWindows.push(window);
178
+ continue;
179
+ }
180
+ if (kind === 'unknown') {
181
+ nonCodeReviewWindows.push(window);
182
+ }
183
+ }
184
+ }
185
+ if ((!fiveHourWindow || !weeklyWindow) && nonCodeReviewWindows.length > 0) {
186
+ const withReset = nonCodeReviewWindows
187
+ .filter((w) => typeof w.resetAfterSeconds === 'number' && w.resetAfterSeconds >= 0)
188
+ .sort((a, b) => (a.resetAfterSeconds || 0) - (b.resetAfterSeconds || 0));
189
+ if (!fiveHourWindow) {
190
+ fiveHourWindow = withReset[0] || nonCodeReviewWindows[0] || null;
191
+ }
192
+ if (!weeklyWindow) {
193
+ weeklyWindow =
194
+ withReset.length > 1
195
+ ? withReset[withReset.length - 1]
196
+ : nonCodeReviewWindows.find((w) => w !== fiveHourWindow) || null;
197
+ }
198
+ }
199
+ return { fiveHourWindow, weeklyWindow };
200
+ }
201
+ exports.getCodexCoreUsageWindows = getCodexCoreUsageWindows;
202
+ //# sourceMappingURL=codex-window-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-window-helpers.js","sourceRoot":"","sources":["../../../../src/commands/cliproxy/quota-subcommand/codex-window-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Generic formatting helpers for quota CLI output.
3
+ *
4
+ * These helpers are pure (no I/O, no side effects) so they can be unit tested
5
+ * in isolation and reused across provider sections.
6
+ */
7
+ import { color, dim } from '../../../utils/ui';
8
+ /** Render a 20-char wide ASCII quota bar for the given percentage. */
9
+ export declare function formatQuotaBar(percentage: number): string;
10
+ /** Render a human-readable relative reset time from a seconds offset. */
11
+ export declare function formatResetTime(seconds: number): string;
12
+ /** Render a relative reset time from an ISO timestamp. Returns 'unknown' if invalid. */
13
+ export declare function formatResetTimeISO(isoTime: string): string;
14
+ /** Render an absolute reset time (MM/DD HH:MM) from ISO, or null if invalid. */
15
+ export declare function formatAbsoluteResetTime(isoTime: string): string | null;
16
+ /**
17
+ * Display label for an account: shows nickname + canonical email-style label
18
+ * when a nickname is present, otherwise just the canonical label.
19
+ */
20
+ export declare function formatCliAccountLabel(account: {
21
+ id: string;
22
+ email?: string;
23
+ nickname?: string;
24
+ }): string;
25
+ /**
26
+ * Pick the tier to display for an account. A live (freshly fetched) tier wins
27
+ * over a stale account-config tier unless the live tier is 'unknown'. Returns
28
+ * 'unknown' when neither source provides a value.
29
+ */
30
+ export declare function resolveDisplayedTier(accountTier: string | undefined, liveTier: string | undefined): string;
31
+ export { color, dim };
32
+ //# sourceMappingURL=format-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../../../src/commands/cliproxy/quota-subcommand/format-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE/C,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWvD;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAatE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAGT;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,CAER;AAID,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /**
3
+ * Generic formatting helpers for quota CLI output.
4
+ *
5
+ * These helpers are pure (no I/O, no side effects) so they can be unit tested
6
+ * in isolation and reused across provider sections.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.dim = exports.color = exports.resolveDisplayedTier = exports.formatCliAccountLabel = exports.formatAbsoluteResetTime = exports.formatResetTimeISO = exports.formatResetTime = exports.formatQuotaBar = void 0;
10
+ const email_account_identity_1 = require("../../../cliproxy/accounts/email-account-identity");
11
+ const ui_1 = require("../../../utils/ui");
12
+ Object.defineProperty(exports, "color", { enumerable: true, get: function () { return ui_1.color; } });
13
+ Object.defineProperty(exports, "dim", { enumerable: true, get: function () { return ui_1.dim; } });
14
+ /** Render a 20-char wide ASCII quota bar for the given percentage. */
15
+ function formatQuotaBar(percentage) {
16
+ const width = 20;
17
+ const clampedPct = Math.max(0, Math.min(100, percentage));
18
+ const filled = Math.round((clampedPct / 100) * width);
19
+ const empty = width - filled;
20
+ const filledChar = clampedPct > 50 ? '█' : clampedPct > 10 ? '▓' : '░';
21
+ return `[${filledChar.repeat(filled)}${' '.repeat(empty)}]`;
22
+ }
23
+ exports.formatQuotaBar = formatQuotaBar;
24
+ /** Render a human-readable relative reset time from a seconds offset. */
25
+ function formatResetTime(seconds) {
26
+ if (seconds <= 0)
27
+ return 'now';
28
+ if (seconds < 60)
29
+ return `in ${seconds}s`;
30
+ if (seconds < 3600)
31
+ return `in ${Math.round(seconds / 60)}m`;
32
+ if (seconds < 86400)
33
+ return `in ${Math.round(seconds / 3600)}h`;
34
+ const days = Math.floor(seconds / 86400);
35
+ const hours = Math.round((seconds % 86400) / 3600);
36
+ if (hours <= 0)
37
+ return `in ${days}d`;
38
+ if (hours >= 24)
39
+ return `in ${days + 1}d`;
40
+ return `in ${days}d ${hours}h`;
41
+ }
42
+ exports.formatResetTime = formatResetTime;
43
+ /** Render a relative reset time from an ISO timestamp. Returns 'unknown' if invalid. */
44
+ function formatResetTimeISO(isoTime) {
45
+ if (!isoTime)
46
+ return 'unknown';
47
+ const resetDate = new Date(isoTime);
48
+ if (isNaN(resetDate.getTime()))
49
+ return 'unknown';
50
+ const seconds = Math.max(0, Math.round((resetDate.getTime() - Date.now()) / 1000));
51
+ return formatResetTime(seconds);
52
+ }
53
+ exports.formatResetTimeISO = formatResetTimeISO;
54
+ /** Render an absolute reset time (MM/DD HH:MM) from ISO, or null if invalid. */
55
+ function formatAbsoluteResetTime(isoTime) {
56
+ if (!isoTime)
57
+ return null;
58
+ const resetDate = new Date(isoTime);
59
+ if (isNaN(resetDate.getTime()))
60
+ return null;
61
+ const date = resetDate.toLocaleDateString(undefined, {
62
+ month: '2-digit',
63
+ day: '2-digit',
64
+ });
65
+ const time = resetDate.toLocaleTimeString(undefined, {
66
+ hour: '2-digit',
67
+ minute: '2-digit',
68
+ });
69
+ return `${date} ${time}`;
70
+ }
71
+ exports.formatAbsoluteResetTime = formatAbsoluteResetTime;
72
+ /**
73
+ * Display label for an account: shows nickname + canonical email-style label
74
+ * when a nickname is present, otherwise just the canonical label.
75
+ */
76
+ function formatCliAccountLabel(account) {
77
+ const displayName = (0, email_account_identity_1.formatAccountDisplayName)(account);
78
+ return account.nickname ? `${account.nickname} (${displayName})` : displayName;
79
+ }
80
+ exports.formatCliAccountLabel = formatCliAccountLabel;
81
+ /**
82
+ * Pick the tier to display for an account. A live (freshly fetched) tier wins
83
+ * over a stale account-config tier unless the live tier is 'unknown'. Returns
84
+ * 'unknown' when neither source provides a value.
85
+ */
86
+ function resolveDisplayedTier(accountTier, liveTier) {
87
+ return (liveTier && liveTier !== 'unknown' ? liveTier : accountTier) || 'unknown';
88
+ }
89
+ exports.resolveDisplayedTier = resolveDisplayedTier;
90
+ //# sourceMappingURL=format-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-helpers.js","sourceRoot":"","sources":["../../../../src/commands/cliproxy/quota-subcommand/format-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Quota CLI subcommand handlers.
3
+ *
4
+ * Public entry points consumed by src/commands/cliproxy/index.ts:
5
+ * - handleQuotaStatus (`ccs cliproxy quota`)
6
+ * - handleDoctor (`ccs cliproxy doctor` / `diag`)
7
+ * - handleSetDefault (`ccs cliproxy default <account>`)
8
+ * - handlePauseAccount (`ccs cliproxy pause <account>`)
9
+ * - handleResumeAccount (`ccs cliproxy resume <account>`)
10
+ *
11
+ * Behavior is preserved verbatim from the original god file; only the
12
+ * module boundaries changed.
13
+ */
14
+ import { type QuotaSupportedProvider } from '../../../cliproxy/provider-capabilities';
15
+ /** `ccs cliproxy quota [--provider <name>]` */
16
+ export declare function handleQuotaStatus(verbose?: boolean, providerFilter?: QuotaSupportedProvider | 'all'): Promise<void>;
17
+ /** `ccs cliproxy doctor` (alias: `diag`) - Antigravity diagnostics. */
18
+ export declare function handleDoctor(verbose?: boolean): Promise<void>;
19
+ /** `ccs cliproxy default <account> [--provider <provider>]` */
20
+ export declare function handleSetDefault(args: string[]): Promise<void>;
21
+ /** `ccs cliproxy pause <account> [--provider <provider>]` */
22
+ export declare function handlePauseAccount(args: string[]): Promise<void>;
23
+ /** `ccs cliproxy resume <account> [--provider <provider>]` */
24
+ export declare function handleResumeAccount(args: string[]): Promise<void>;
25
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../src/commands/cliproxy/quota-subcommand/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,yCAAyC,CAAC;AASjD,+CAA+C;AAC/C,wBAAsB,iBAAiB,CACrC,OAAO,UAAQ,EACf,cAAc,GAAE,sBAAsB,GAAG,KAAa,GACrD,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,uEAAuE;AACvE,wBAAsB,YAAY,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwFjE;AAED,+DAA+D;AAC/D,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CpE;AAED,6DAA6D;AAC7D,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCtE;AAED,8DAA8D;AAC9D,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCvE"}