@kaitranntt/ccs 8.4.0-dev.1 → 8.4.0-dev.11

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 (620) hide show
  1. package/README.md +1 -1
  2. package/config/base-claude.settings.json +1 -1
  3. package/dist/api/services/cliproxy-profile-bridge.d.ts.map +1 -1
  4. package/dist/api/services/cliproxy-profile-bridge.js +20 -9
  5. package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
  6. package/dist/auth/profile-registry.d.ts.map +1 -1
  7. package/dist/auth/profile-registry.js +13 -12
  8. package/dist/auth/profile-registry.js.map +1 -1
  9. package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -1
  10. package/dist/cliproxy/accounts/account-safety.js +56 -56
  11. package/dist/cliproxy/accounts/account-safety.js.map +1 -1
  12. package/dist/cliproxy/auth/antigravity-responsibility.d.ts.map +1 -1
  13. package/dist/cliproxy/auth/antigravity-responsibility.js +15 -15
  14. package/dist/cliproxy/auth/antigravity-responsibility.js.map +1 -1
  15. package/dist/cliproxy/auth/auth-token-manager.d.ts.map +1 -1
  16. package/dist/cliproxy/auth/auth-token-manager.js +2 -1
  17. package/dist/cliproxy/auth/auth-token-manager.js.map +1 -1
  18. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  19. package/dist/cliproxy/auth/auth-types.js +3 -2
  20. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  21. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  22. package/dist/cliproxy/auth/oauth-handler.js +6 -5
  23. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  24. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
  25. package/dist/cliproxy/auth/provider-refreshers/index.js +2 -1
  26. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
  27. package/dist/cliproxy/config/env-builder.d.ts +19 -2
  28. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  29. package/dist/cliproxy/config/env-builder.js +58 -9
  30. package/dist/cliproxy/config/env-builder.js.map +1 -1
  31. package/dist/cliproxy/config/model-config.d.ts.map +1 -1
  32. package/dist/cliproxy/config/model-config.js +32 -32
  33. package/dist/cliproxy/config/model-config.js.map +1 -1
  34. package/dist/cliproxy/executor/arg-parser.d.ts.map +1 -1
  35. package/dist/cliproxy/executor/arg-parser.js +26 -26
  36. package/dist/cliproxy/executor/arg-parser.js.map +1 -1
  37. package/dist/cliproxy/executor/auth-coordinator.d.ts.map +1 -1
  38. package/dist/cliproxy/executor/auth-coordinator.js +15 -14
  39. package/dist/cliproxy/executor/auth-coordinator.js.map +1 -1
  40. package/dist/cliproxy/executor/browser-launch-setup.d.ts.map +1 -1
  41. package/dist/cliproxy/executor/browser-launch-setup.js +6 -2
  42. package/dist/cliproxy/executor/browser-launch-setup.js.map +1 -1
  43. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  44. package/dist/cliproxy/executor/index.js +17 -13
  45. package/dist/cliproxy/executor/index.js.map +1 -1
  46. package/dist/cliproxy/executor/lifecycle-manager.d.ts.map +1 -1
  47. package/dist/cliproxy/executor/lifecycle-manager.js +18 -16
  48. package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -1
  49. package/dist/cliproxy/executor/model-warnings.d.ts.map +1 -1
  50. package/dist/cliproxy/executor/model-warnings.js +24 -13
  51. package/dist/cliproxy/executor/model-warnings.js.map +1 -1
  52. package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -1
  53. package/dist/cliproxy/executor/retry-handler.js +13 -11
  54. package/dist/cliproxy/executor/retry-handler.js.map +1 -1
  55. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
  56. package/dist/cliproxy/executor/session-bridge.js +18 -10
  57. package/dist/cliproxy/executor/session-bridge.js.map +1 -1
  58. package/dist/cliproxy/management/remote-token-uploader.d.ts.map +1 -1
  59. package/dist/cliproxy/management/remote-token-uploader.js +11 -11
  60. package/dist/cliproxy/management/remote-token-uploader.js.map +1 -1
  61. package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts +5 -1
  62. package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts.map +1 -1
  63. package/dist/cliproxy/proxy/https-tunnel-proxy.js +22 -10
  64. package/dist/cliproxy/proxy/https-tunnel-proxy.js.map +1 -1
  65. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +0 -12
  66. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -1
  67. package/dist/cliproxy/proxy/tool-sanitization-proxy.js +42 -72
  68. package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -1
  69. package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.d.ts +21 -0
  70. package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.d.ts.map +1 -0
  71. package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.js +154 -0
  72. package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.js.map +1 -0
  73. package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.d.ts +35 -0
  74. package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.d.ts.map +1 -0
  75. package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.js +98 -0
  76. package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.js.map +1 -0
  77. package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.d.ts +22 -0
  78. package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.d.ts.map +1 -0
  79. package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.js +111 -0
  80. package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.js.map +1 -0
  81. package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.d.ts +17 -0
  82. package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.d.ts.map +1 -0
  83. package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.js +85 -0
  84. package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.js.map +1 -0
  85. package/dist/cliproxy/quota/quota-fetcher/constants.d.ts +25 -0
  86. package/dist/cliproxy/quota/quota-fetcher/constants.d.ts.map +1 -0
  87. package/dist/cliproxy/quota/quota-fetcher/constants.js +31 -0
  88. package/dist/cliproxy/quota/quota-fetcher/constants.js.map +1 -0
  89. package/dist/cliproxy/quota/quota-fetcher/http-client.d.ts +29 -0
  90. package/dist/cliproxy/quota/quota-fetcher/http-client.d.ts.map +1 -0
  91. package/dist/cliproxy/quota/quota-fetcher/http-client.js +199 -0
  92. package/dist/cliproxy/quota/quota-fetcher/http-client.js.map +1 -0
  93. package/dist/cliproxy/quota/quota-fetcher/project-lookup.d.ts +16 -0
  94. package/dist/cliproxy/quota/quota-fetcher/project-lookup.d.ts.map +1 -0
  95. package/dist/cliproxy/quota/quota-fetcher/project-lookup.js +89 -0
  96. package/dist/cliproxy/quota/quota-fetcher/project-lookup.js.map +1 -0
  97. package/dist/cliproxy/quota/quota-fetcher/status-classifier.d.ts +29 -0
  98. package/dist/cliproxy/quota/quota-fetcher/status-classifier.d.ts.map +1 -0
  99. package/dist/cliproxy/quota/quota-fetcher/status-classifier.js +168 -0
  100. package/dist/cliproxy/quota/quota-fetcher/status-classifier.js.map +1 -0
  101. package/dist/cliproxy/quota/quota-fetcher/types.d.ts +165 -0
  102. package/dist/cliproxy/quota/quota-fetcher/types.d.ts.map +1 -0
  103. package/dist/cliproxy/quota/quota-fetcher/types.js +9 -0
  104. package/dist/cliproxy/quota/quota-fetcher/types.js.map +1 -0
  105. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
  106. package/dist/cliproxy/quota/quota-fetcher-claude.js +14 -3
  107. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
  108. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -1
  109. package/dist/cliproxy/quota/quota-fetcher-codex.js +36 -9
  110. package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -1
  111. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.d.ts +26 -0
  112. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.d.ts.map +1 -0
  113. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.js +132 -0
  114. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.js.map +1 -0
  115. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.d.ts +23 -0
  116. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.d.ts.map +1 -0
  117. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.js +54 -0
  118. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.js.map +1 -0
  119. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.d.ts +26 -0
  120. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.d.ts.map +1 -0
  121. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.js +29 -0
  122. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.js.map +1 -0
  123. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.d.ts +61 -0
  124. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.d.ts.map +1 -0
  125. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.js +259 -0
  126. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.js.map +1 -0
  127. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.d.ts +20 -0
  128. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.d.ts.map +1 -0
  129. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.js +38 -0
  130. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.js.map +1 -0
  131. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.d.ts +82 -0
  132. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.d.ts.map +1 -0
  133. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.js +263 -0
  134. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.js.map +1 -0
  135. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.d.ts +46 -0
  136. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.d.ts.map +1 -0
  137. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.js +188 -0
  138. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.js.map +1 -0
  139. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.d.ts +35 -0
  140. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.d.ts.map +1 -0
  141. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.js +65 -0
  142. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.js.map +1 -0
  143. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.d.ts +37 -0
  144. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.d.ts.map +1 -0
  145. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.js +117 -0
  146. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.js.map +1 -0
  147. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.d.ts +31 -0
  148. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.d.ts.map +1 -0
  149. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.js +77 -0
  150. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.js.map +1 -0
  151. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.d.ts +114 -0
  152. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.d.ts.map +1 -0
  153. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.js +10 -0
  154. package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.js.map +1 -0
  155. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts +13 -58
  156. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts.map +1 -1
  157. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js +20 -819
  158. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js.map +1 -1
  159. package/dist/cliproxy/quota/quota-fetcher-ghcp.d.ts.map +1 -1
  160. package/dist/cliproxy/quota/quota-fetcher-ghcp.js +19 -4
  161. package/dist/cliproxy/quota/quota-fetcher-ghcp.js.map +1 -1
  162. package/dist/cliproxy/quota/quota-fetcher.d.ts +12 -108
  163. package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -1
  164. package/dist/cliproxy/quota/quota-fetcher.js +23 -766
  165. package/dist/cliproxy/quota/quota-fetcher.js.map +1 -1
  166. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
  167. package/dist/cliproxy/quota/quota-manager.js +7 -3
  168. package/dist/cliproxy/quota/quota-manager.js.map +1 -1
  169. package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -1
  170. package/dist/cliproxy/routing/routing-strategy.js +11 -3
  171. package/dist/cliproxy/routing/routing-strategy.js.map +1 -1
  172. package/dist/commands/bar/bar-server-probe.d.ts +16 -3
  173. package/dist/commands/bar/bar-server-probe.d.ts.map +1 -1
  174. package/dist/commands/bar/bar-server-probe.js +83 -18
  175. package/dist/commands/bar/bar-server-probe.js.map +1 -1
  176. package/dist/commands/bar/help-subcommand.d.ts.map +1 -1
  177. package/dist/commands/bar/help-subcommand.js +2 -2
  178. package/dist/commands/bar/help-subcommand.js.map +1 -1
  179. package/dist/commands/bar/install-subcommand.d.ts +4 -10
  180. package/dist/commands/bar/install-subcommand.d.ts.map +1 -1
  181. package/dist/commands/bar/install-subcommand.js +44 -53
  182. package/dist/commands/bar/install-subcommand.js.map +1 -1
  183. package/dist/commands/bar/launch-subcommand.d.ts +11 -1
  184. package/dist/commands/bar/launch-subcommand.d.ts.map +1 -1
  185. package/dist/commands/bar/launch-subcommand.js +82 -15
  186. package/dist/commands/bar/launch-subcommand.js.map +1 -1
  187. package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts +26 -0
  188. package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts.map +1 -0
  189. package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js +82 -0
  190. package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js.map +1 -0
  191. package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.d.ts +41 -0
  192. package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.d.ts.map +1 -0
  193. package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.js +202 -0
  194. package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.js.map +1 -0
  195. package/dist/commands/cliproxy/quota-subcommand/format-helpers.d.ts +32 -0
  196. package/dist/commands/cliproxy/quota-subcommand/format-helpers.d.ts.map +1 -0
  197. package/dist/commands/cliproxy/quota-subcommand/format-helpers.js +90 -0
  198. package/dist/commands/cliproxy/quota-subcommand/format-helpers.js.map +1 -0
  199. package/dist/commands/cliproxy/quota-subcommand/handlers.d.ts +25 -0
  200. package/dist/commands/cliproxy/quota-subcommand/handlers.d.ts.map +1 -0
  201. package/dist/commands/cliproxy/quota-subcommand/handlers.js +245 -0
  202. package/dist/commands/cliproxy/quota-subcommand/handlers.js.map +1 -0
  203. package/dist/commands/cliproxy/quota-subcommand/profile-args.d.ts +10 -0
  204. package/dist/commands/cliproxy/quota-subcommand/profile-args.d.ts.map +1 -0
  205. package/dist/commands/cliproxy/quota-subcommand/profile-args.js +37 -0
  206. package/dist/commands/cliproxy/quota-subcommand/profile-args.js.map +1 -0
  207. package/dist/commands/cliproxy/quota-subcommand/provider-runtime.d.ts +12 -0
  208. package/dist/commands/cliproxy/quota-subcommand/provider-runtime.d.ts.map +1 -0
  209. package/dist/commands/cliproxy/quota-subcommand/provider-runtime.js +64 -0
  210. package/dist/commands/cliproxy/quota-subcommand/provider-runtime.js.map +1 -0
  211. package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.d.ts +27 -0
  212. package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.d.ts.map +1 -0
  213. package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.js +74 -0
  214. package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.js.map +1 -0
  215. package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.d.ts +10 -0
  216. package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.d.ts.map +1 -0
  217. package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.js +46 -0
  218. package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.js.map +1 -0
  219. package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts +14 -0
  220. package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts.map +1 -0
  221. package/dist/commands/cliproxy/quota-subcommand/sections/claude.js +68 -0
  222. package/dist/commands/cliproxy/quota-subcommand/sections/claude.js.map +1 -0
  223. package/dist/commands/cliproxy/quota-subcommand/sections/codex.d.ts +14 -0
  224. package/dist/commands/cliproxy/quota-subcommand/sections/codex.d.ts.map +1 -0
  225. package/dist/commands/cliproxy/quota-subcommand/sections/codex.js +82 -0
  226. package/dist/commands/cliproxy/quota-subcommand/sections/codex.js.map +1 -0
  227. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.d.ts +14 -0
  228. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.d.ts.map +1 -0
  229. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.js +61 -0
  230. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.js.map +1 -0
  231. package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.d.ts +13 -0
  232. package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.d.ts.map +1 -0
  233. package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.js +63 -0
  234. package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.js.map +1 -0
  235. package/dist/commands/cliproxy/quota-subcommand/test-exports.d.ts +19 -0
  236. package/dist/commands/cliproxy/quota-subcommand/test-exports.d.ts.map +1 -0
  237. package/dist/commands/cliproxy/quota-subcommand/test-exports.js +22 -0
  238. package/dist/commands/cliproxy/quota-subcommand/test-exports.js.map +1 -0
  239. package/dist/commands/cliproxy/quota-subcommand/types.d.ts +42 -0
  240. package/dist/commands/cliproxy/quota-subcommand/types.d.ts.map +1 -0
  241. package/dist/commands/cliproxy/quota-subcommand/types.js +9 -0
  242. package/dist/commands/cliproxy/quota-subcommand/types.js.map +1 -0
  243. package/dist/commands/cliproxy/quota-subcommand.d.ts +14 -36
  244. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  245. package/dist/commands/cliproxy/quota-subcommand.js +21 -872
  246. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  247. package/dist/commands/config-channels-command.d.ts +1 -1
  248. package/dist/commands/config-channels-command.d.ts.map +1 -1
  249. package/dist/commands/config-channels-command.js +3 -3
  250. package/dist/commands/config-channels-command.js.map +1 -1
  251. package/dist/commands/config-command-options.d.ts.map +1 -1
  252. package/dist/commands/config-command-options.js +11 -2
  253. package/dist/commands/config-command-options.js.map +1 -1
  254. package/dist/commands/persist-command/arg-parsing.d.ts +14 -0
  255. package/dist/commands/persist-command/arg-parsing.d.ts.map +1 -0
  256. package/dist/commands/persist-command/arg-parsing.js +84 -0
  257. package/dist/commands/persist-command/arg-parsing.js.map +1 -0
  258. package/dist/commands/persist-command/backup-rotation.d.ts +23 -0
  259. package/dist/commands/persist-command/backup-rotation.d.ts.map +1 -0
  260. package/dist/commands/persist-command/backup-rotation.js +260 -0
  261. package/dist/commands/persist-command/backup-rotation.js.map +1 -0
  262. package/dist/commands/persist-command/handler.d.ts +10 -0
  263. package/dist/commands/persist-command/handler.d.ts.map +1 -0
  264. package/dist/commands/persist-command/handler.js +267 -0
  265. package/dist/commands/persist-command/handler.js.map +1 -0
  266. package/dist/commands/persist-command/help.d.ts +9 -0
  267. package/dist/commands/persist-command/help.d.ts.map +1 -0
  268. package/dist/commands/persist-command/help.js +86 -0
  269. package/dist/commands/persist-command/help.js.map +1 -0
  270. package/dist/commands/persist-command/receipt.d.ts +13 -0
  271. package/dist/commands/persist-command/receipt.d.ts.map +1 -0
  272. package/dist/commands/persist-command/receipt.js +102 -0
  273. package/dist/commands/persist-command/receipt.js.map +1 -0
  274. package/dist/commands/persist-command/secret-detection.d.ts +11 -0
  275. package/dist/commands/persist-command/secret-detection.d.ts.map +1 -0
  276. package/dist/commands/persist-command/secret-detection.js +54 -0
  277. package/dist/commands/persist-command/secret-detection.js.map +1 -0
  278. package/dist/commands/persist-command/secure-file.d.ts +21 -0
  279. package/dist/commands/persist-command/secure-file.d.ts.map +1 -0
  280. package/dist/commands/persist-command/secure-file.js +231 -0
  281. package/dist/commands/persist-command/secure-file.js.map +1 -0
  282. package/dist/commands/persist-command/types.d.ts +42 -0
  283. package/dist/commands/persist-command/types.d.ts.map +1 -0
  284. package/dist/commands/persist-command/types.js +34 -0
  285. package/dist/commands/persist-command/types.js.map +1 -0
  286. package/dist/commands/persist-command.d.ts +7 -2
  287. package/dist/commands/persist-command.d.ts.map +1 -1
  288. package/dist/commands/persist-command.js +17 -933
  289. package/dist/commands/persist-command.js.map +1 -1
  290. package/dist/config/config-loader-facade.d.ts +1 -1
  291. package/dist/config/config-loader-facade.d.ts.map +1 -1
  292. package/dist/config/config-loader-facade.js +3 -1
  293. package/dist/config/config-loader-facade.js.map +1 -1
  294. package/dist/config/loader/config-getters.d.ts +16 -0
  295. package/dist/config/loader/config-getters.d.ts.map +1 -1
  296. package/dist/config/loader/config-getters.js +33 -1
  297. package/dist/config/loader/config-getters.js.map +1 -1
  298. package/dist/config/loader/defaults-merger.d.ts.map +1 -1
  299. package/dist/config/loader/defaults-merger.js +4 -0
  300. package/dist/config/loader/defaults-merger.js.map +1 -1
  301. package/dist/config/loader/yaml-serializer.d.ts.map +1 -1
  302. package/dist/config/loader/yaml-serializer.js +13 -0
  303. package/dist/config/loader/yaml-serializer.js.map +1 -1
  304. package/dist/config/schemas/index.d.ts +2 -0
  305. package/dist/config/schemas/index.d.ts.map +1 -1
  306. package/dist/config/schemas/index.js +5 -1
  307. package/dist/config/schemas/index.js.map +1 -1
  308. package/dist/config/schemas/runtime.d.ts +57 -0
  309. package/dist/config/schemas/runtime.d.ts.map +1 -0
  310. package/dist/config/schemas/runtime.js +51 -0
  311. package/dist/config/schemas/runtime.js.map +1 -0
  312. package/dist/config/schemas/unified-config.d.ts +3 -0
  313. package/dist/config/schemas/unified-config.d.ts.map +1 -1
  314. package/dist/config/schemas/unified-config.js.map +1 -1
  315. package/dist/config/unified-config-loader.d.ts +1 -1
  316. package/dist/config/unified-config-loader.d.ts.map +1 -1
  317. package/dist/config/unified-config-loader.js +3 -1
  318. package/dist/config/unified-config-loader.js.map +1 -1
  319. package/dist/copilot/copilot-executor.js +25 -25
  320. package/dist/copilot/copilot-executor.js.map +1 -1
  321. package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
  322. package/dist/cursor/cursor-daemon-entry.js +34 -9
  323. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  324. package/dist/cursor/cursor-daemon.d.ts.map +1 -1
  325. package/dist/cursor/cursor-daemon.js +1 -0
  326. package/dist/cursor/cursor-daemon.js.map +1 -1
  327. package/dist/cursor/cursor-profile-executor.d.ts.map +1 -1
  328. package/dist/cursor/cursor-profile-executor.js +18 -17
  329. package/dist/cursor/cursor-profile-executor.js.map +1 -1
  330. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  331. package/dist/delegation/delegation-handler.js +29 -23
  332. package/dist/delegation/delegation-handler.js.map +1 -1
  333. package/dist/delegation/headless-executor.d.ts +1 -0
  334. package/dist/delegation/headless-executor.d.ts.map +1 -1
  335. package/dist/delegation/headless-executor.js +35 -14
  336. package/dist/delegation/headless-executor.js.map +1 -1
  337. package/dist/delegation/session-manager.d.ts.map +1 -1
  338. package/dist/delegation/session-manager.js +12 -4
  339. package/dist/delegation/session-manager.js.map +1 -1
  340. package/dist/dispatcher/cli-argument-parser.d.ts +1 -1
  341. package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -1
  342. package/dist/dispatcher/cli-argument-parser.js +24 -23
  343. package/dist/dispatcher/cli-argument-parser.js.map +1 -1
  344. package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -1
  345. package/dist/dispatcher/flows/cliproxy-flow.js +12 -11
  346. package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -1
  347. package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
  348. package/dist/dispatcher/flows/settings-flow.js +27 -27
  349. package/dist/dispatcher/flows/settings-flow.js.map +1 -1
  350. package/dist/dispatcher/profile-resolver.d.ts +1 -1
  351. package/dist/dispatcher/profile-resolver.d.ts.map +1 -1
  352. package/dist/dispatcher/profile-resolver.js +36 -23
  353. package/dist/dispatcher/profile-resolver.js.map +1 -1
  354. package/dist/docker/supervisord-lifecycle.d.ts.map +1 -1
  355. package/dist/docker/supervisord-lifecycle.js +5 -1
  356. package/dist/docker/supervisord-lifecycle.js.map +1 -1
  357. package/dist/errors/error-types.d.ts +26 -22
  358. package/dist/errors/error-types.d.ts.map +1 -1
  359. package/dist/errors/error-types.js +15 -12
  360. package/dist/errors/error-types.js.map +1 -1
  361. package/dist/errors/exit-codes.d.ts +20 -13
  362. package/dist/errors/exit-codes.d.ts.map +1 -1
  363. package/dist/errors/exit-codes.js +32 -28
  364. package/dist/errors/exit-codes.js.map +1 -1
  365. package/dist/glmt/delta-accumulator.d.ts +1 -0
  366. package/dist/glmt/delta-accumulator.d.ts.map +1 -1
  367. package/dist/glmt/delta-accumulator.js +12 -4
  368. package/dist/glmt/delta-accumulator.js.map +1 -1
  369. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  370. package/dist/glmt/glmt-proxy.js +39 -10
  371. package/dist/glmt/glmt-proxy.js.map +1 -1
  372. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  373. package/dist/glmt/glmt-transformer.js +1 -4
  374. package/dist/glmt/glmt-transformer.js.map +1 -1
  375. package/dist/glmt/pipeline/request-transformer.d.ts.map +1 -1
  376. package/dist/glmt/pipeline/request-transformer.js +5 -1
  377. package/dist/glmt/pipeline/request-transformer.js.map +1 -1
  378. package/dist/glmt/pipeline/response-builder.d.ts.map +1 -1
  379. package/dist/glmt/pipeline/response-builder.js +7 -3
  380. package/dist/glmt/pipeline/response-builder.js.map +1 -1
  381. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -1
  382. package/dist/glmt/pipeline/stream-parser.js +11 -5
  383. package/dist/glmt/pipeline/stream-parser.js.map +1 -1
  384. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -1
  385. package/dist/glmt/pipeline/tool-call-handler.js +7 -1
  386. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -1
  387. package/dist/glmt/sse-parser.d.ts +1 -0
  388. package/dist/glmt/sse-parser.d.ts.map +1 -1
  389. package/dist/glmt/sse-parser.js +7 -3
  390. package/dist/glmt/sse-parser.js.map +1 -1
  391. package/dist/management/shared-manager/fs-helpers.d.ts +69 -0
  392. package/dist/management/shared-manager/fs-helpers.d.ts.map +1 -0
  393. package/dist/management/shared-manager/fs-helpers.js +241 -0
  394. package/dist/management/shared-manager/fs-helpers.js.map +1 -0
  395. package/dist/management/shared-manager/migrations.d.ts +21 -0
  396. package/dist/management/shared-manager/migrations.d.ts.map +1 -0
  397. package/dist/management/shared-manager/migrations.js +187 -0
  398. package/dist/management/shared-manager/migrations.js.map +1 -0
  399. package/dist/management/shared-manager/orchestrator.d.ts +87 -0
  400. package/dist/management/shared-manager/orchestrator.d.ts.map +1 -0
  401. package/dist/management/shared-manager/orchestrator.js +161 -0
  402. package/dist/management/shared-manager/orchestrator.js.map +1 -0
  403. package/dist/management/shared-manager/plugin-layout-internals.d.ts +42 -0
  404. package/dist/management/shared-manager/plugin-layout-internals.d.ts.map +1 -0
  405. package/dist/management/shared-manager/plugin-layout-internals.js +192 -0
  406. package/dist/management/shared-manager/plugin-layout-internals.js.map +1 -0
  407. package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts +53 -0
  408. package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts.map +1 -0
  409. package/dist/management/shared-manager/plugin-metadata-normalizer.js +253 -0
  410. package/dist/management/shared-manager/plugin-metadata-normalizer.js.map +1 -0
  411. package/dist/management/shared-manager/project-context-sync.d.ts +36 -0
  412. package/dist/management/shared-manager/project-context-sync.d.ts.map +1 -0
  413. package/dist/management/shared-manager/project-context-sync.js +204 -0
  414. package/dist/management/shared-manager/project-context-sync.js.map +1 -0
  415. package/dist/management/shared-manager/project-memory-sync.d.ts +21 -0
  416. package/dist/management/shared-manager/project-memory-sync.d.ts.map +1 -0
  417. package/dist/management/shared-manager/project-memory-sync.js +113 -0
  418. package/dist/management/shared-manager/project-memory-sync.js.map +1 -0
  419. package/dist/management/shared-manager/shared-dir-linker.d.ts +41 -0
  420. package/dist/management/shared-manager/shared-dir-linker.d.ts.map +1 -0
  421. package/dist/management/shared-manager/shared-dir-linker.js +227 -0
  422. package/dist/management/shared-manager/shared-dir-linker.js.map +1 -0
  423. package/dist/management/shared-manager/symlink-helpers.d.ts +61 -0
  424. package/dist/management/shared-manager/symlink-helpers.d.ts.map +1 -0
  425. package/dist/management/shared-manager/symlink-helpers.js +243 -0
  426. package/dist/management/shared-manager/symlink-helpers.js.map +1 -0
  427. package/dist/management/shared-manager/types.d.ts +45 -0
  428. package/dist/management/shared-manager/types.d.ts.map +1 -0
  429. package/dist/management/shared-manager/types.js +57 -0
  430. package/dist/management/shared-manager/types.js.map +1 -0
  431. package/dist/management/shared-manager.d.ts +13 -160
  432. package/dist/management/shared-manager.d.ts.map +1 -1
  433. package/dist/management/shared-manager.js +18 -1294
  434. package/dist/management/shared-manager.js.map +1 -1
  435. package/dist/proxy/proxy-daemon-entry.js +1 -1
  436. package/dist/proxy/proxy-daemon-entry.js.map +1 -1
  437. package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -1
  438. package/dist/proxy/transformers/sse-stream-transformer.js +12 -17
  439. package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -1
  440. package/dist/services/logging/index.d.ts +1 -1
  441. package/dist/services/logging/index.d.ts.map +1 -1
  442. package/dist/services/logging/index.js +6 -1
  443. package/dist/services/logging/index.js.map +1 -1
  444. package/dist/services/logging/log-context.d.ts +27 -2
  445. package/dist/services/logging/log-context.d.ts.map +1 -1
  446. package/dist/services/logging/log-context.js +43 -4
  447. package/dist/services/logging/log-context.js.map +1 -1
  448. package/dist/services/logging/log-redaction.d.ts +9 -0
  449. package/dist/services/logging/log-redaction.d.ts.map +1 -1
  450. package/dist/services/logging/log-redaction.js +31 -3
  451. package/dist/services/logging/log-redaction.js.map +1 -1
  452. package/dist/services/logging/logger.js +2 -2
  453. package/dist/services/logging/logger.js.map +1 -1
  454. package/dist/shared/provider-preset-catalog.d.ts +1 -1
  455. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  456. package/dist/shared/provider-preset-catalog.js +14 -0
  457. package/dist/shared/provider-preset-catalog.js.map +1 -1
  458. package/dist/targets/claude-adapter.d.ts.map +1 -1
  459. package/dist/targets/claude-adapter.js +5 -0
  460. package/dist/targets/claude-adapter.js.map +1 -1
  461. package/dist/targets/codex-adapter.d.ts.map +1 -1
  462. package/dist/targets/codex-adapter.js +11 -10
  463. package/dist/targets/codex-adapter.js.map +1 -1
  464. package/dist/targets/codex-detector.d.ts.map +1 -1
  465. package/dist/targets/codex-detector.js +14 -0
  466. package/dist/targets/codex-detector.js.map +1 -1
  467. package/dist/targets/droid-adapter.d.ts.map +1 -1
  468. package/dist/targets/droid-adapter.js +12 -12
  469. package/dist/targets/droid-adapter.js.map +1 -1
  470. package/dist/ui/assets/{Trans-RG_sMDEu.js → Trans-BXjW_Rw3.js} +1 -1
  471. package/dist/ui/assets/{accounts-yTXURc-q.js → accounts-C7JMc-UL.js} +1 -1
  472. package/dist/ui/assets/{alert-dialog-DjvPgzFs.js → alert-dialog-BSSHnWG_.js} +1 -1
  473. package/dist/ui/assets/{api-Ck1dtNEM.js → api-GzEZNvOJ.js} +1 -1
  474. package/dist/ui/assets/{auth-section-DBnY_LPz.js → auth-section-B6k7LWIq.js} +1 -1
  475. package/dist/ui/assets/{backups-section-Ci-uL4Of.js → backups-section-Cr3g01YN.js} +1 -1
  476. package/dist/ui/assets/{channels-BeS9O5q0.js → channels-CMyh1yhN.js} +1 -1
  477. package/dist/ui/assets/{checkbox-DFeFDZBp.js → checkbox-BkqYXiER.js} +1 -1
  478. package/dist/ui/assets/{claude-extension-DS5qN19Z.js → claude-extension-BzYl3zcz.js} +1 -1
  479. package/dist/ui/assets/{cliproxy-D7HJH4mZ.js → cliproxy-DwzKzuZI.js} +1 -1
  480. package/dist/ui/assets/{cliproxy-ai-providers-oJQZXrtc.js → cliproxy-ai-providers-DL95SYNa.js} +1 -1
  481. package/dist/ui/assets/{cliproxy-control-panel-2mRPEcRj.js → cliproxy-control-panel-Ba2Rgzdo.js} +1 -1
  482. package/dist/ui/assets/{codex-D0AUQ6jA.js → codex-ClTEGCnr.js} +1 -1
  483. package/dist/ui/assets/{confirm-dialog-B37-CVuq.js → confirm-dialog-BPAO4ILr.js} +1 -1
  484. package/dist/ui/assets/{copilot-KaaW-mko.js → copilot-CymHD4gl.js} +1 -1
  485. package/dist/ui/assets/{cursor-BKiTgYi5.js → cursor-DAiPXs8h.js} +1 -1
  486. package/dist/ui/assets/{droid-DHdqGnFw.js → droid-CAhLWDOj.js} +1 -1
  487. package/dist/ui/assets/{globalenv-section-SfZO97nU.js → globalenv-section-BK5x_uXG.js} +1 -1
  488. package/dist/ui/assets/{health-CSRS9O0D.js → health-D_ErMvYv.js} +1 -1
  489. package/dist/ui/assets/{index-Cu_F55_O.js → index-B4cUkPwc.js} +1 -1
  490. package/dist/ui/assets/{index-DWUuSBUe.js → index-BZMyk4bI.js} +1 -1
  491. package/dist/ui/assets/{index-CGgavq2X.js → index-BcfwoMDm.js} +3 -3
  492. package/dist/ui/assets/{index-iQuEEGbH.js → index-BmbKPprT.js} +1 -1
  493. package/dist/ui/assets/{index-ChTYEBCZ.js → index-CEjVNSjg.js} +1 -1
  494. package/dist/ui/assets/{index-DJ66NrBH.js → index-CFDjAXOB.js} +1 -1
  495. package/dist/ui/assets/{index-DycwEe96.js → index-DCC80SZ0.js} +1 -1
  496. package/dist/ui/assets/{logs-tiZ_51mo.js → logs-DwhXr-9Y.js} +1 -1
  497. package/dist/ui/assets/{masked-input-D9FVoeMA.js → masked-input-DWJTe7jh.js} +1 -1
  498. package/dist/ui/assets/{proxy-status-widget-2k26d8pS.js → proxy-status-widget-CJXi8yui.js} +1 -1
  499. package/dist/ui/assets/{raw-json-settings-editor-panel-CguBh93H.js → raw-json-settings-editor-panel-DWhAi0kI.js} +1 -1
  500. package/dist/ui/assets/{searchable-select-C4wShshD.js → searchable-select-CYC4Y8pS.js} +1 -1
  501. package/dist/ui/assets/{separator-mvGlDdEW.js → separator-JhuNwVKE.js} +1 -1
  502. package/dist/ui/assets/{shared-Ck0yAwbs.js → shared-Hpgs7l5G.js} +1 -1
  503. package/dist/ui/assets/{table-DrUJOxKL.js → table-DDJTZfyL.js} +1 -1
  504. package/dist/ui/assets/{updates-BVHBFcq8.js → updates-CtygOHUO.js} +1 -1
  505. package/dist/ui/assets/{use-accounts-DLtuaniS.js → use-accounts-CaptC8AS.js} +1 -1
  506. package/dist/ui/index.html +1 -1
  507. package/dist/utils/bar-auth-token.d.ts +4 -0
  508. package/dist/utils/bar-auth-token.d.ts.map +1 -0
  509. package/dist/utils/bar-auth-token.js +60 -0
  510. package/dist/utils/bar-auth-token.js.map +1 -0
  511. package/dist/utils/browser/browser-settings.d.ts +3 -1
  512. package/dist/utils/browser/browser-settings.d.ts.map +1 -1
  513. package/dist/utils/browser/browser-settings.js +2 -2
  514. package/dist/utils/browser/browser-settings.js.map +1 -1
  515. package/dist/utils/browser/browser-setup.d.ts.map +1 -1
  516. package/dist/utils/browser/browser-setup.js +3 -1
  517. package/dist/utils/browser/browser-setup.js.map +1 -1
  518. package/dist/utils/browser/browser-status.d.ts.map +1 -1
  519. package/dist/utils/browser/browser-status.js +4 -2
  520. package/dist/utils/browser/browser-status.js.map +1 -1
  521. package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -1
  522. package/dist/utils/image-analysis/mcp-installer.js +16 -13
  523. package/dist/utils/image-analysis/mcp-installer.js.map +1 -1
  524. package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
  525. package/dist/utils/websearch/mcp-installer.js +14 -12
  526. package/dist/utils/websearch/mcp-installer.js.map +1 -1
  527. package/dist/web-server/middleware/request-logging-middleware.d.ts.map +1 -1
  528. package/dist/web-server/middleware/request-logging-middleware.js +14 -9
  529. package/dist/web-server/middleware/request-logging-middleware.js.map +1 -1
  530. package/dist/web-server/routes/bar-routes.d.ts.map +1 -1
  531. package/dist/web-server/routes/bar-routes.js +11 -2
  532. package/dist/web-server/routes/bar-routes.js.map +1 -1
  533. package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
  534. package/dist/web-server/routes/claude-extension-routes.js +3 -2
  535. package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
  536. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  537. package/dist/web-server/routes/cliproxy-auth-routes.js +6 -4
  538. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  539. package/dist/web-server/routes/cliproxy-stats-routes/config-routes.d.ts +16 -0
  540. package/dist/web-server/routes/cliproxy-stats-routes/config-routes.d.ts.map +1 -0
  541. package/dist/web-server/routes/cliproxy-stats-routes/config-routes.js +219 -0
  542. package/dist/web-server/routes/cliproxy-stats-routes/config-routes.js.map +1 -0
  543. package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.d.ts +12 -0
  544. package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.d.ts.map +1 -0
  545. package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.js +153 -0
  546. package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.js.map +1 -0
  547. package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.d.ts +19 -0
  548. package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.d.ts.map +1 -0
  549. package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.js +38 -0
  550. package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.js.map +1 -0
  551. package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.d.ts +13 -0
  552. package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.d.ts.map +1 -0
  553. package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.js +195 -0
  554. package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.js.map +1 -0
  555. package/dist/web-server/routes/cliproxy-stats-routes/restart-route.d.ts +17 -0
  556. package/dist/web-server/routes/cliproxy-stats-routes/restart-route.d.ts.map +1 -0
  557. package/dist/web-server/routes/cliproxy-stats-routes/restart-route.js +34 -0
  558. package/dist/web-server/routes/cliproxy-stats-routes/restart-route.js.map +1 -0
  559. package/dist/web-server/routes/cliproxy-stats-routes/router.d.ts +10 -0
  560. package/dist/web-server/routes/cliproxy-stats-routes/router.d.ts.map +1 -0
  561. package/dist/web-server/routes/cliproxy-stats-routes/router.js +245 -0
  562. package/dist/web-server/routes/cliproxy-stats-routes/router.js.map +1 -0
  563. package/dist/web-server/routes/cliproxy-stats-routes/shared.d.ts +35 -0
  564. package/dist/web-server/routes/cliproxy-stats-routes/shared.d.ts.map +1 -0
  565. package/dist/web-server/routes/cliproxy-stats-routes/shared.js +59 -0
  566. package/dist/web-server/routes/cliproxy-stats-routes/shared.js.map +1 -0
  567. package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.d.ts +44 -0
  568. package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.d.ts.map +1 -0
  569. package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.js +66 -0
  570. package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.js.map +1 -0
  571. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +16 -57
  572. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  573. package/dist/web-server/routes/cliproxy-stats-routes.js +25 -926
  574. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  575. package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -1
  576. package/dist/web-server/routes/cliproxy-sync-routes.js +9 -2
  577. package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -1
  578. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -1
  579. package/dist/web-server/routes/copilot-settings-routes.js +2 -1
  580. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -1
  581. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
  582. package/dist/web-server/routes/cursor-routes.js +3 -1
  583. package/dist/web-server/routes/cursor-routes.js.map +1 -1
  584. package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
  585. package/dist/web-server/routes/image-analysis-routes.js +2 -1
  586. package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
  587. package/dist/web-server/routes/index.d.ts.map +1 -1
  588. package/dist/web-server/routes/index.js +6 -0
  589. package/dist/web-server/routes/index.js.map +1 -1
  590. package/dist/web-server/routes/persist-routes.d.ts.map +1 -1
  591. package/dist/web-server/routes/persist-routes.js +8 -1
  592. package/dist/web-server/routes/persist-routes.js.map +1 -1
  593. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
  594. package/dist/web-server/routes/proxy-routes.js +33 -5
  595. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  596. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  597. package/dist/web-server/routes/route-helpers.js +18 -6
  598. package/dist/web-server/routes/route-helpers.js.map +1 -1
  599. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  600. package/dist/web-server/routes/settings-routes.js +7 -6
  601. package/dist/web-server/routes/settings-routes.js.map +1 -1
  602. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  603. package/dist/web-server/usage/aggregator.js +8 -8
  604. package/dist/web-server/usage/aggregator.js.map +1 -1
  605. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  606. package/dist/web-server/usage/cliproxy-usage-transformer.js +9 -4
  607. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  608. package/dist/web-server/usage/codex-local-quota-collector.d.ts +2 -2
  609. package/dist/web-server/usage/codex-local-quota-collector.d.ts.map +1 -1
  610. package/dist/web-server/usage/codex-local-quota-collector.js +39 -11
  611. package/dist/web-server/usage/codex-local-quota-collector.js.map +1 -1
  612. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  613. package/dist/web-server/usage/handlers.js +1 -1
  614. package/dist/web-server/usage/handlers.js.map +1 -1
  615. package/package.json +1 -1
  616. package/scripts/ci-parity-gate.sh +31 -0
  617. package/scripts/generate-throw-error-baseline.js +103 -0
  618. package/scripts/github/stable-release-issue-cleanup-lib.mjs +51 -11
  619. package/scripts/hardening-inventory.js +62 -4
  620. package/scripts/maintainability-metrics.js +356 -0
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ /**
3
+ * Auth file discovery for the Gemini CLI quota fetcher (direct-path credentials).
4
+ *
5
+ * Locates and parses the on-disk Gemini CLI auth file for a given account,
6
+ * supporting both the legacy `gemini-<sanitized>.json` filename and the newer
7
+ * `<email>-gen-lang-client-<projectId>.json` pattern. Scans both the active
8
+ * auth directory and the paused-account directory.
9
+ *
10
+ * Returns the access token, project ID, expiry, and expired flag. The live
11
+ * token is returned only so the caller can place it in an Authorization header;
12
+ * it is never logged by this module or its callers.
13
+ */
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.readGeminiCliAuthData = void 0;
39
+ const fs = __importStar(require("node:fs"));
40
+ const path = __importStar(require("node:path"));
41
+ const config_generator_1 = require("../../config/config-generator");
42
+ const account_manager_1 = require("../../accounts/account-manager");
43
+ const auth_utils_1 = require("../../auth/auth-utils");
44
+ const auth_utils_2 = require("../../auth/auth-utils");
45
+ const managed_request_1 = require("./managed-request");
46
+ const token_parsing_1 = require("./token-parsing");
47
+ /**
48
+ * Read auth data from a Gemini CLI auth file on disk.
49
+ *
50
+ * Resolution order per auth directory:
51
+ * 1. Exact legacy match: `gemini-<sanitized-account>.json`
52
+ * 2. Directory scan for files matching {@link isGeminiAuthFile}, filtered
53
+ * by account email/filename and Gemini type.
54
+ *
55
+ * Scans both the active auth dir and the paused-account dir. Returns null if
56
+ * no usable auth file (with an access token) is found.
57
+ */
58
+ function readGeminiCliAuthData(accountId) {
59
+ const authDirs = [(0, config_generator_1.getAuthDir)(), (0, account_manager_1.getPausedDir)()];
60
+ const sanitizedId = (0, auth_utils_2.sanitizeEmail)(accountId);
61
+ const expectedFiles = [
62
+ `gemini-${sanitizedId}.json`, // Legacy format
63
+ `${accountId}-gen-lang-client-`, // New format prefix (partial match)
64
+ ];
65
+ for (const authDir of authDirs) {
66
+ if (!fs.existsSync(authDir))
67
+ continue;
68
+ // Try exact legacy match first
69
+ const legacyPath = path.join(authDir, expectedFiles[0]);
70
+ if (fs.existsSync(legacyPath)) {
71
+ try {
72
+ const content = fs.readFileSync(legacyPath, 'utf-8');
73
+ const data = JSON.parse(content);
74
+ const accessToken = (0, token_parsing_1.extractAccessToken)(data);
75
+ if (accessToken) {
76
+ const projectId = typeof data.project_id === 'string'
77
+ ? data.project_id
78
+ : (0, token_parsing_1.resolveGeminiCliProjectId)(String(data.account || ''));
79
+ const expiry = (0, token_parsing_1.extractExpiry)(data);
80
+ return {
81
+ accessToken,
82
+ projectId,
83
+ isExpired: (0, auth_utils_1.isTokenExpired)(expiry ?? undefined),
84
+ expiresAt: expiry,
85
+ };
86
+ }
87
+ }
88
+ catch {
89
+ // Continue to fallback
90
+ }
91
+ }
92
+ // Scan directory for matching files
93
+ const files = fs.readdirSync(authDir);
94
+ for (const file of files) {
95
+ if (!(0, managed_request_1.isGeminiAuthFile)(file))
96
+ continue;
97
+ const candidatePath = path.join(authDir, file);
98
+ try {
99
+ const content = fs.readFileSync(candidatePath, 'utf-8');
100
+ const data = JSON.parse(content);
101
+ // Check if this file matches our account
102
+ const fileEmail = typeof data.email === 'string' ? data.email : null;
103
+ const fileType = typeof data.type === 'string' ? data.type : null;
104
+ const matchesEmail = fileEmail === accountId;
105
+ const matchesFilename = file.startsWith(`${accountId}-`) || file.includes(sanitizedId);
106
+ const isGeminiType = fileType === 'gemini' || fileType === 'gemini-cli';
107
+ // Must match account AND be gemini type (or legacy gemini- prefix)
108
+ if ((matchesEmail || matchesFilename) && (isGeminiType || file.startsWith('gemini-'))) {
109
+ const accessToken = (0, token_parsing_1.extractAccessToken)(data);
110
+ if (accessToken) {
111
+ const projectId = typeof data.project_id === 'string'
112
+ ? data.project_id
113
+ : (0, token_parsing_1.resolveGeminiCliProjectId)(String(data.account || ''));
114
+ const expiry = (0, token_parsing_1.extractExpiry)(data);
115
+ return {
116
+ accessToken,
117
+ projectId,
118
+ isExpired: (0, auth_utils_1.isTokenExpired)(expiry ?? undefined),
119
+ expiresAt: expiry,
120
+ };
121
+ }
122
+ }
123
+ }
124
+ catch {
125
+ continue;
126
+ }
127
+ }
128
+ }
129
+ return null;
130
+ }
131
+ exports.readGeminiCliAuthData = readGeminiCliAuthData;
132
+ //# sourceMappingURL=auth-file-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-file-discovery.js","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Bucket building for the Gemini CLI quota fetcher.
3
+ *
4
+ * Translates raw upstream quota buckets (snake_case and camelCase tolerant)
5
+ * into the normalized {@link GeminiCliBucket} array grouped by model series
6
+ * and token type. Delegates the grouping to the shared
7
+ * `gemini-cli-quota-normalizer` so the grouping rules stay in one place.
8
+ */
9
+ import type { GeminiCliBucket } from '../quota-types';
10
+ import type { RawGeminiCliBucket } from './types';
11
+ /**
12
+ * Build a {@link GeminiCliBucket} array from raw upstream quota buckets.
13
+ *
14
+ * Each raw bucket is normalized into a {@link GeminiCliParsedBucket}:
15
+ * - skips buckets with no resolvable model id
16
+ * - coalesces remaining_fraction / remaining_amount / reset_time across
17
+ * naming variants, with a fallback of `1` (full) when none are present
18
+ * but a reset time or non-positive amount implies exhaustion
19
+ * Then delegates to {@link buildGeminiCliBucketsFromParsedBuckets} for the
20
+ * model-series and token-type grouping.
21
+ */
22
+ export declare function buildGeminiCliBuckets(rawBuckets: RawGeminiCliBucket[]): GeminiCliBucket[];
23
+ //# sourceMappingURL=bucket-building.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bucket-building.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,eAAe,EAAE,CAiCzF"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * Bucket building for the Gemini CLI quota fetcher.
4
+ *
5
+ * Translates raw upstream quota buckets (snake_case and camelCase tolerant)
6
+ * into the normalized {@link GeminiCliBucket} array grouped by model series
7
+ * and token type. Delegates the grouping to the shared
8
+ * `gemini-cli-quota-normalizer` so the grouping rules stay in one place.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.buildGeminiCliBuckets = void 0;
12
+ const gemini_cli_quota_normalizer_1 = require("../gemini-cli-quota-normalizer");
13
+ const shared_utils_1 = require("./shared-utils");
14
+ /**
15
+ * Build a {@link GeminiCliBucket} array from raw upstream quota buckets.
16
+ *
17
+ * Each raw bucket is normalized into a {@link GeminiCliParsedBucket}:
18
+ * - skips buckets with no resolvable model id
19
+ * - coalesces remaining_fraction / remaining_amount / reset_time across
20
+ * naming variants, with a fallback of `1` (full) when none are present
21
+ * but a reset time or non-positive amount implies exhaustion
22
+ * Then delegates to {@link buildGeminiCliBucketsFromParsedBuckets} for the
23
+ * model-series and token-type grouping.
24
+ */
25
+ function buildGeminiCliBuckets(rawBuckets) {
26
+ const parsedBuckets = rawBuckets
27
+ .map((bucket) => {
28
+ const modelId = (0, shared_utils_1.normalizeStringValue)(bucket.model_id ?? bucket.modelId);
29
+ if (!modelId)
30
+ return null;
31
+ const tokenType = (0, shared_utils_1.normalizeStringValue)(bucket.token_type ?? bucket.tokenType);
32
+ const remainingFractionRaw = (0, shared_utils_1.normalizeNumberValue)(bucket.remaining_fraction ?? bucket.remainingFraction);
33
+ const remainingAmount = (0, shared_utils_1.normalizeNumberValue)(bucket.remaining_amount ?? bucket.remainingAmount);
34
+ const resetTime = (0, shared_utils_1.normalizeStringValue)(bucket.reset_time ?? bucket.resetTime);
35
+ let fallbackFraction = null;
36
+ if (remainingAmount !== null) {
37
+ fallbackFraction = remainingAmount <= 0 ? 0 : null;
38
+ }
39
+ else if (resetTime) {
40
+ fallbackFraction = 0;
41
+ }
42
+ return {
43
+ modelId,
44
+ tokenType,
45
+ remainingFraction: remainingFractionRaw ?? fallbackFraction ?? 1,
46
+ remainingAmount,
47
+ resetTime,
48
+ };
49
+ })
50
+ .filter((bucket) => bucket !== null);
51
+ return (0, gemini_cli_quota_normalizer_1.buildGeminiCliBucketsFromParsedBuckets)(parsedBuckets);
52
+ }
53
+ exports.buildGeminiCliBuckets = buildGeminiCliBuckets;
54
+ //# sourceMappingURL=bucket-building.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bucket-building.js","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,gFAGwC;AAGxC,iDAA4E;AAE5E;;;;;;;;;;GAUG;AACH,SAAgB,qBAAqB,CAAC,UAAgC;IACpE,MAAM,aAAa,GAAG,UAAU;SAC7B,GAAG,CAAC,CAAC,MAAM,EAAgC,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAA,mCAAoB,EAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,SAAS,GAAG,IAAA,mCAAoB,EAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,oBAAoB,GAAG,IAAA,mCAAoB,EAC/C,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CACtD,CAAC;QACF,MAAM,eAAe,GAAG,IAAA,mCAAoB,EAC1C,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAClD,CAAC;QACF,MAAM,SAAS,GAAG,IAAA,mCAAoB,EAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;QAE9E,IAAI,gBAAgB,GAAkB,IAAI,CAAC;QAC3C,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,gBAAgB,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,gBAAgB,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,OAAO;YACL,OAAO;YACP,SAAS;YACT,iBAAiB,EAAE,oBAAoB,IAAI,gBAAgB,IAAI,CAAC;YAChE,eAAe;YACf,SAAS;SACV,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAExE,OAAO,IAAA,oEAAsC,EAAC,aAAa,CAAC,CAAC;AAC/D,CAAC;AAjCD,sDAiCC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Constants for the Gemini CLI quota fetcher submodule.
3
+ *
4
+ * Google Cloud Code API endpoints, error-detail sanitization limits, and
5
+ * upstream request timeouts. Extracted verbatim from the original god file;
6
+ * do not change values without coordinating with callers and tests.
7
+ */
8
+ /** Google Cloud Code internal API base URL. */
9
+ export declare const GEMINI_CLI_API_BASE = "https://cloudcode-pa.googleapis.com";
10
+ /** Google Cloud Code API version path segment. */
11
+ export declare const GEMINI_CLI_API_VERSION = "v1internal";
12
+ /** retrieveUserQuota endpoint - returns bucket-based model quotas. */
13
+ export declare const GEMINI_CLI_QUOTA_URL = "https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota";
14
+ /** loadCodeAssist endpoint - returns tier/credit metadata. */
15
+ export declare const GEMINI_CLI_CODE_ASSIST_URL = "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist";
16
+ /** Max characters retained from a sanitized upstream error detail. */
17
+ export declare const GEMINI_CLI_ERROR_DETAIL_MAX_LENGTH = 320;
18
+ /** Suffix appended when an error detail is truncated. */
19
+ export declare const GEMINI_CLI_ERROR_DETAIL_TRUNCATION_SUFFIX = "...[truncated]";
20
+ /** Credit type identifying Google One AI (paid tier) credits. */
21
+ export declare const GEMINI_CLI_G1_CREDIT_TYPE = "GOOGLE_ONE_AI";
22
+ /** Timeout for the primary (preferred) management API attempt, in ms. */
23
+ export declare const MANAGEMENT_API_TIMEOUT_MS = 5000;
24
+ /** Timeout for the secondary / fallback upstream request, in ms. */
25
+ export declare const SECONDARY_REQUEST_TIMEOUT_MS = 2000;
26
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,wCAAwC,CAAC;AAEzE,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAEnD,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,qEAAuE,CAAC;AAEzG,8DAA8D;AAC9D,eAAO,MAAM,0BAA0B,kEAAoE,CAAC;AAE5G,sEAAsE;AACtE,eAAO,MAAM,kCAAkC,MAAM,CAAC;AAEtD,yDAAyD;AACzD,eAAO,MAAM,yCAAyC,mBAAmB,CAAC;AAE1E,iEAAiE;AACjE,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,OAAO,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * Constants for the Gemini CLI quota fetcher submodule.
4
+ *
5
+ * Google Cloud Code API endpoints, error-detail sanitization limits, and
6
+ * upstream request timeouts. Extracted verbatim from the original god file;
7
+ * do not change values without coordinating with callers and tests.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SECONDARY_REQUEST_TIMEOUT_MS = exports.MANAGEMENT_API_TIMEOUT_MS = exports.GEMINI_CLI_G1_CREDIT_TYPE = exports.GEMINI_CLI_ERROR_DETAIL_TRUNCATION_SUFFIX = exports.GEMINI_CLI_ERROR_DETAIL_MAX_LENGTH = exports.GEMINI_CLI_CODE_ASSIST_URL = exports.GEMINI_CLI_QUOTA_URL = exports.GEMINI_CLI_API_VERSION = exports.GEMINI_CLI_API_BASE = void 0;
11
+ /** Google Cloud Code internal API base URL. */
12
+ exports.GEMINI_CLI_API_BASE = 'https://cloudcode-pa.googleapis.com';
13
+ /** Google Cloud Code API version path segment. */
14
+ exports.GEMINI_CLI_API_VERSION = 'v1internal';
15
+ /** retrieveUserQuota endpoint - returns bucket-based model quotas. */
16
+ exports.GEMINI_CLI_QUOTA_URL = `${exports.GEMINI_CLI_API_BASE}/${exports.GEMINI_CLI_API_VERSION}:retrieveUserQuota`;
17
+ /** loadCodeAssist endpoint - returns tier/credit metadata. */
18
+ exports.GEMINI_CLI_CODE_ASSIST_URL = `${exports.GEMINI_CLI_API_BASE}/${exports.GEMINI_CLI_API_VERSION}:loadCodeAssist`;
19
+ /** Max characters retained from a sanitized upstream error detail. */
20
+ exports.GEMINI_CLI_ERROR_DETAIL_MAX_LENGTH = 320;
21
+ /** Suffix appended when an error detail is truncated. */
22
+ exports.GEMINI_CLI_ERROR_DETAIL_TRUNCATION_SUFFIX = '...[truncated]';
23
+ /** Credit type identifying Google One AI (paid tier) credits. */
24
+ exports.GEMINI_CLI_G1_CREDIT_TYPE = 'GOOGLE_ONE_AI';
25
+ /** Timeout for the primary (preferred) management API attempt, in ms. */
26
+ exports.MANAGEMENT_API_TIMEOUT_MS = 5000;
27
+ /** Timeout for the secondary / fallback upstream request, in ms. */
28
+ exports.SECONDARY_REQUEST_TIMEOUT_MS = 2000;
29
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/constants.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,+CAA+C;AAClC,QAAA,mBAAmB,GAAG,qCAAqC,CAAC;AAEzE,kDAAkD;AACrC,QAAA,sBAAsB,GAAG,YAAY,CAAC;AAEnD,sEAAsE;AACzD,QAAA,oBAAoB,GAAG,GAAG,2BAAmB,IAAI,8BAAsB,oBAAoB,CAAC;AAEzG,8DAA8D;AACjD,QAAA,0BAA0B,GAAG,GAAG,2BAAmB,IAAI,8BAAsB,iBAAiB,CAAC;AAE5G,sEAAsE;AACzD,QAAA,kCAAkC,GAAG,GAAG,CAAC;AAEtD,yDAAyD;AAC5C,QAAA,yCAAyC,GAAG,gBAAgB,CAAC;AAE1E,iEAAiE;AACpD,QAAA,yBAAyB,GAAG,eAAe,CAAC;AAEzD,yEAAyE;AAC5D,QAAA,yBAAyB,GAAG,IAAI,CAAC;AAE9C,oEAAoE;AACvD,QAAA,4BAA4B,GAAG,IAAI,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Error parsing and failure-result builders for the Gemini CLI quota fetcher.
3
+ *
4
+ * Translates non-200 upstream responses into structured {@link GeminiCliQuotaResult}
5
+ * failure payloads with sanitized error details, recovery hints, and provider
6
+ * entitlement evidence. Token values in error bodies are always redacted before
7
+ * being surfaced (see {@link sanitizeGeminiCliErrorDetail}).
8
+ */
9
+ import type { GeminiCliFailureResultOptions, GeminiCliQuotaResult, ParsedGeminiCliErrorBody } from './types';
10
+ /**
11
+ * Build a structured failure {@link GeminiCliQuotaResult} with empty buckets.
12
+ * Centralizes the common failure shape so each HTTP-status branch only needs
13
+ * to supply its specific error/hint/entitlement fields.
14
+ */
15
+ export declare function buildGeminiCliFailureResult(accountId: string, projectId: string | null, options: GeminiCliFailureResultOptions): GeminiCliQuotaResult;
16
+ /**
17
+ * Sanitize an upstream error body for safe inclusion in a quota result.
18
+ *
19
+ * - Collapses HTML responses to a placeholder (never leaks provider HTML).
20
+ * - Redacts common token/credential/secret field names and `Bearer <token>`.
21
+ * - Collapses internal whitespace to single spaces.
22
+ * - Truncates to {@link GEMINI_CLI_ERROR_DETAIL_MAX_LENGTH} with a sentinel suffix.
23
+ *
24
+ * Returns undefined for empty input. Token values are never preserved.
25
+ */
26
+ export declare function sanitizeGeminiCliErrorDetail(bodyText: string): string | undefined;
27
+ /**
28
+ * Recursively extract the first non-empty message-like field from a nested
29
+ * error `details` array/object. Looks for `message`, `localizedMessage`,
30
+ * `description`, `reason`, and `error` keys at any level.
31
+ */
32
+ export declare function extractGeminiCliNestedMessage(value: unknown): string | undefined;
33
+ /**
34
+ * Parse an upstream error body into a structured {@link ParsedGeminiCliErrorBody}.
35
+ *
36
+ * Extracts a top-level code/status, a message (looking inside `error` objects
37
+ * and nested `details`), and a sanitized error detail. Non-JSON bodies fall
38
+ * back to the raw (sanitized) trimmed text as the message. HTML bodies surface
39
+ * only as the sanitized detail placeholder, never as the message.
40
+ */
41
+ export declare function parseGeminiCliErrorBody(bodyText: string): ParsedGeminiCliErrorBody;
42
+ /**
43
+ * Build a user-facing recovery hint for a 403 (forbidden) upstream response.
44
+ * Inspects the parsed message/detail for verification, project, or generic
45
+ * access signals and returns the matching recovery instruction.
46
+ */
47
+ export declare function buildGeminiCliForbiddenActionHint(parsed: ParsedGeminiCliErrorBody): string;
48
+ /**
49
+ * Build a structured failure result from an HTTP non-200 upstream response.
50
+ *
51
+ * Status-specific behavior:
52
+ * - 401: marks the result as needsReauth (user must re-run `ccs gemini --auth`)
53
+ * - 403: marks forbidden with runtime-inferred not_entitled evidence and a
54
+ * context-aware action hint
55
+ * - 429: distinguishes MODEL_CAPACITY_EXHAUSTED (entitled but capacity-stressed)
56
+ * from generic rate limiting
57
+ * - >=500: retryable provider-unavailable result
58
+ * - other: generic non-retryable quota_request_failed
59
+ */
60
+ export declare function buildGeminiCliHttpFailureResult(accountId: string, projectId: string | null, status: number, bodyText: string): GeminiCliQuotaResult;
61
+ //# sourceMappingURL=error-parsing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-parsing.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAMjB;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,6BAA6B,GACrC,oBAAoB,CAoBtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA0BjF;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA4BhF;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CAwDlF;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CAS1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,oBAAoB,CA2FtB"}
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ /**
3
+ * Error parsing and failure-result builders for the Gemini CLI quota fetcher.
4
+ *
5
+ * Translates non-200 upstream responses into structured {@link GeminiCliQuotaResult}
6
+ * failure payloads with sanitized error details, recovery hints, and provider
7
+ * entitlement evidence. Token values in error bodies are always redacted before
8
+ * being surfaced (see {@link sanitizeGeminiCliErrorDetail}).
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.buildGeminiCliHttpFailureResult = exports.buildGeminiCliForbiddenActionHint = exports.parseGeminiCliErrorBody = exports.extractGeminiCliNestedMessage = exports.sanitizeGeminiCliErrorDetail = exports.buildGeminiCliFailureResult = void 0;
12
+ const provider_entitlement_evidence_1 = require("../../auth/provider-entitlement-evidence");
13
+ const constants_1 = require("./constants");
14
+ /**
15
+ * Build a structured failure {@link GeminiCliQuotaResult} with empty buckets.
16
+ * Centralizes the common failure shape so each HTTP-status branch only needs
17
+ * to supply its specific error/hint/entitlement fields.
18
+ */
19
+ function buildGeminiCliFailureResult(accountId, projectId, options) {
20
+ return {
21
+ success: false,
22
+ buckets: [],
23
+ projectId,
24
+ tierLabel: null,
25
+ tierId: null,
26
+ creditBalance: null,
27
+ lastUpdated: Date.now(),
28
+ accountId,
29
+ error: options.error,
30
+ httpStatus: options.httpStatus,
31
+ errorCode: options.errorCode,
32
+ errorDetail: options.errorDetail,
33
+ actionHint: options.actionHint,
34
+ retryable: options.retryable,
35
+ needsReauth: options.needsReauth,
36
+ isForbidden: options.isForbidden,
37
+ entitlement: options.entitlement,
38
+ };
39
+ }
40
+ exports.buildGeminiCliFailureResult = buildGeminiCliFailureResult;
41
+ /**
42
+ * Sanitize an upstream error body for safe inclusion in a quota result.
43
+ *
44
+ * - Collapses HTML responses to a placeholder (never leaks provider HTML).
45
+ * - Redacts common token/credential/secret field names and `Bearer <token>`.
46
+ * - Collapses internal whitespace to single spaces.
47
+ * - Truncates to {@link GEMINI_CLI_ERROR_DETAIL_MAX_LENGTH} with a sentinel suffix.
48
+ *
49
+ * Returns undefined for empty input. Token values are never preserved.
50
+ */
51
+ function sanitizeGeminiCliErrorDetail(bodyText) {
52
+ const trimmed = bodyText.trim();
53
+ if (!trimmed) {
54
+ return undefined;
55
+ }
56
+ if (/^<!doctype html/i.test(trimmed) || /^<html/i.test(trimmed) || /^<[^>]+>/.test(trimmed)) {
57
+ return '[HTML error response omitted]';
58
+ }
59
+ let sanitized = trimmed
60
+ .replace(/"(access[_-]?token|refresh[_-]?token|authorization|cookie|set-cookie|api[_-]?key|session[_-]?token|token)"\s*:\s*"[^"]*"/gi, '"$1":"[redacted]"')
61
+ .replace(/Bearer\s+[A-Za-z0-9._-]+/g, 'Bearer [redacted]')
62
+ .replace(/\s+/g, ' ');
63
+ if (sanitized.length > constants_1.GEMINI_CLI_ERROR_DETAIL_MAX_LENGTH) {
64
+ sanitized = `${sanitized.slice(0, constants_1.GEMINI_CLI_ERROR_DETAIL_MAX_LENGTH - constants_1.GEMINI_CLI_ERROR_DETAIL_TRUNCATION_SUFFIX.length)}${constants_1.GEMINI_CLI_ERROR_DETAIL_TRUNCATION_SUFFIX}`;
65
+ }
66
+ return sanitized;
67
+ }
68
+ exports.sanitizeGeminiCliErrorDetail = sanitizeGeminiCliErrorDetail;
69
+ /**
70
+ * Recursively extract the first non-empty message-like field from a nested
71
+ * error `details` array/object. Looks for `message`, `localizedMessage`,
72
+ * `description`, `reason`, and `error` keys at any level.
73
+ */
74
+ function extractGeminiCliNestedMessage(value) {
75
+ if (Array.isArray(value)) {
76
+ for (const entry of value) {
77
+ const nested = extractGeminiCliNestedMessage(entry);
78
+ if (nested)
79
+ return nested;
80
+ }
81
+ return undefined;
82
+ }
83
+ if (!value || typeof value !== 'object') {
84
+ return undefined;
85
+ }
86
+ const record = value;
87
+ const directMessage = [
88
+ record.message,
89
+ record.localizedMessage,
90
+ record.description,
91
+ record.reason,
92
+ record.error,
93
+ ].find((candidate) => typeof candidate === 'string' && candidate.trim().length > 0);
94
+ if (directMessage) {
95
+ return directMessage;
96
+ }
97
+ return undefined;
98
+ }
99
+ exports.extractGeminiCliNestedMessage = extractGeminiCliNestedMessage;
100
+ /**
101
+ * Parse an upstream error body into a structured {@link ParsedGeminiCliErrorBody}.
102
+ *
103
+ * Extracts a top-level code/status, a message (looking inside `error` objects
104
+ * and nested `details`), and a sanitized error detail. Non-JSON bodies fall
105
+ * back to the raw (sanitized) trimmed text as the message. HTML bodies surface
106
+ * only as the sanitized detail placeholder, never as the message.
107
+ */
108
+ function parseGeminiCliErrorBody(bodyText) {
109
+ const trimmed = bodyText.trim();
110
+ if (!trimmed) {
111
+ return {};
112
+ }
113
+ const sanitizedDetail = sanitizeGeminiCliErrorDetail(trimmed);
114
+ try {
115
+ const parsed = JSON.parse(trimmed);
116
+ const topLevelMessage = [parsed.message, parsed.error].find((candidate) => typeof candidate === 'string' && candidate.trim().length > 0);
117
+ const topLevelCode = [parsed.code, parsed.status].find((candidate) => typeof candidate === 'string' && candidate.trim().length > 0);
118
+ if (parsed.error && typeof parsed.error === 'object') {
119
+ const error = parsed.error;
120
+ return {
121
+ errorCode: [error.status, error.code, topLevelCode].find((candidate) => typeof candidate === 'string' && candidate.trim().length > 0) || undefined,
122
+ errorDetail: sanitizedDetail,
123
+ message: [
124
+ error.message,
125
+ error.error,
126
+ extractGeminiCliNestedMessage(error.details),
127
+ topLevelMessage,
128
+ ].find((candidate) => typeof candidate === 'string' && candidate.trim().length > 0) || undefined,
129
+ };
130
+ }
131
+ return {
132
+ errorCode: topLevelCode,
133
+ errorDetail: sanitizedDetail,
134
+ message: [topLevelMessage, extractGeminiCliNestedMessage(parsed.details)].find((candidate) => typeof candidate === 'string' && candidate.trim().length > 0) || undefined,
135
+ };
136
+ }
137
+ catch {
138
+ return {
139
+ errorDetail: sanitizedDetail,
140
+ message: sanitizedDetail === '[HTML error response omitted]' ? undefined : trimmed,
141
+ };
142
+ }
143
+ }
144
+ exports.parseGeminiCliErrorBody = parseGeminiCliErrorBody;
145
+ /**
146
+ * Build a user-facing recovery hint for a 403 (forbidden) upstream response.
147
+ * Inspects the parsed message/detail for verification, project, or generic
148
+ * access signals and returns the matching recovery instruction.
149
+ */
150
+ function buildGeminiCliForbiddenActionHint(parsed) {
151
+ const combined = `${parsed.message || ''} ${parsed.errorDetail || ''}`.toLowerCase();
152
+ if (combined.includes('verify') || combined.includes('verification')) {
153
+ return 'Complete the Google account verification mentioned above, then retry quota refresh.';
154
+ }
155
+ if (combined.includes('project')) {
156
+ return 'Confirm this Google project still has Gemini CLI quota access, then retry.';
157
+ }
158
+ return 'Check the Google account or workspace access shown above, then retry quota refresh.';
159
+ }
160
+ exports.buildGeminiCliForbiddenActionHint = buildGeminiCliForbiddenActionHint;
161
+ /**
162
+ * Build a structured failure result from an HTTP non-200 upstream response.
163
+ *
164
+ * Status-specific behavior:
165
+ * - 401: marks the result as needsReauth (user must re-run `ccs gemini --auth`)
166
+ * - 403: marks forbidden with runtime-inferred not_entitled evidence and a
167
+ * context-aware action hint
168
+ * - 429: distinguishes MODEL_CAPACITY_EXHAUSTED (entitled but capacity-stressed)
169
+ * from generic rate limiting
170
+ * - >=500: retryable provider-unavailable result
171
+ * - other: generic non-retryable quota_request_failed
172
+ */
173
+ function buildGeminiCliHttpFailureResult(accountId, projectId, status, bodyText) {
174
+ const parsed = parseGeminiCliErrorBody(bodyText);
175
+ if (status === 401) {
176
+ return buildGeminiCliFailureResult(accountId, projectId, {
177
+ error: parsed.message || 'Token expired or invalid',
178
+ httpStatus: 401,
179
+ errorCode: parsed.errorCode || 'reauth_required',
180
+ errorDetail: parsed.errorDetail,
181
+ actionHint: 'Run ccs gemini --auth to reconnect this account.',
182
+ needsReauth: true,
183
+ retryable: false,
184
+ });
185
+ }
186
+ if (status === 403) {
187
+ return buildGeminiCliFailureResult(accountId, projectId, {
188
+ error: parsed.message || 'Quota access forbidden for this account',
189
+ httpStatus: 403,
190
+ errorCode: parsed.errorCode || 'quota_api_forbidden',
191
+ errorDetail: parsed.errorDetail,
192
+ actionHint: buildGeminiCliForbiddenActionHint(parsed),
193
+ isForbidden: true,
194
+ retryable: false,
195
+ entitlement: (0, provider_entitlement_evidence_1.buildProviderEntitlementEvidence)({
196
+ normalizedTier: 'unknown',
197
+ source: 'runtime_inference',
198
+ confidence: 'medium',
199
+ accessState: 'not_entitled',
200
+ capacityState: 'unknown',
201
+ }),
202
+ });
203
+ }
204
+ if (status === 429) {
205
+ if ((0, provider_entitlement_evidence_1.isModelCapacityExhausted)(parsed.message, parsed.errorDetail, parsed.errorCode)) {
206
+ return buildGeminiCliFailureResult(accountId, projectId, {
207
+ error: parsed.message || 'Model capacity exhausted for this account right now',
208
+ httpStatus: 429,
209
+ errorCode: 'capacity_exhausted',
210
+ errorDetail: parsed.errorDetail,
211
+ actionHint: 'Retry later or switch to another Gemini model. This indicates temporary model capacity, not an authentication failure.',
212
+ retryable: true,
213
+ entitlement: (0, provider_entitlement_evidence_1.buildProviderEntitlementEvidence)({
214
+ normalizedTier: 'unknown',
215
+ source: 'runtime_inference',
216
+ confidence: 'medium',
217
+ accessState: 'entitled',
218
+ capacityState: 'capacity_exhausted',
219
+ notes: 'Upstream returned MODEL_CAPACITY_EXHAUSTED for this model.',
220
+ }),
221
+ });
222
+ }
223
+ return buildGeminiCliFailureResult(accountId, projectId, {
224
+ error: parsed.message || 'Rate limited - try again later',
225
+ httpStatus: 429,
226
+ errorCode: parsed.errorCode || 'rate_limited',
227
+ errorDetail: parsed.errorDetail,
228
+ actionHint: 'Retry after a short delay.',
229
+ retryable: true,
230
+ entitlement: (0, provider_entitlement_evidence_1.buildProviderEntitlementEvidence)({
231
+ normalizedTier: 'unknown',
232
+ source: 'runtime_inference',
233
+ confidence: 'low',
234
+ accessState: 'unknown',
235
+ capacityState: 'rate_limited',
236
+ }),
237
+ });
238
+ }
239
+ if (status >= 500) {
240
+ return buildGeminiCliFailureResult(accountId, projectId, {
241
+ error: parsed.message || `Gemini quota service unavailable (HTTP ${status})`,
242
+ httpStatus: status,
243
+ errorCode: parsed.errorCode || 'provider_unavailable',
244
+ errorDetail: parsed.errorDetail,
245
+ actionHint: 'Retry later. This looks like a temporary Google upstream problem.',
246
+ retryable: true,
247
+ });
248
+ }
249
+ return buildGeminiCliFailureResult(accountId, projectId, {
250
+ error: parsed.message || `Gemini quota request failed (HTTP ${status})`,
251
+ httpStatus: status,
252
+ errorCode: parsed.errorCode || 'quota_request_failed',
253
+ errorDetail: parsed.errorDetail,
254
+ actionHint: 'Inspect the upstream response details and retry if appropriate.',
255
+ retryable: false,
256
+ });
257
+ }
258
+ exports.buildGeminiCliHttpFailureResult = buildGeminiCliHttpFailureResult;
259
+ //# sourceMappingURL=error-parsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-parsing.js","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.ts"],"names":[],"mappings":"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"}