@kaitranntt/ccs 7.75.0-dev.4 → 7.75.0-dev.6

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 (572) hide show
  1. package/dist/api/services/cliproxy-profile-bridge.js +4 -4
  2. package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
  3. package/dist/api/services/profile-lifecycle-validation.js +1 -1
  4. package/dist/api/services/profile-lifecycle-validation.js.map +1 -1
  5. package/dist/api/services/profile-writer.js +1 -1
  6. package/dist/api/services/profile-writer.js.map +1 -1
  7. package/dist/cliproxy/{account-manager.d.ts → accounts/account-manager.d.ts} +2 -2
  8. package/dist/cliproxy/accounts/account-manager.d.ts.map +1 -0
  9. package/dist/cliproxy/{account-manager.js → accounts/account-manager.js} +34 -34
  10. package/dist/cliproxy/accounts/account-manager.js.map +1 -0
  11. package/dist/cliproxy/{account-safety.d.ts → accounts/account-safety.d.ts} +1 -1
  12. package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -0
  13. package/dist/cliproxy/{account-safety.js → accounts/account-safety.js} +5 -5
  14. package/dist/cliproxy/accounts/account-safety.js.map +1 -0
  15. package/dist/cliproxy/accounts/account-stats-key.d.ts.map +1 -0
  16. package/dist/cliproxy/accounts/account-stats-key.js.map +1 -0
  17. package/dist/cliproxy/accounts/registry.js +1 -1
  18. package/dist/cliproxy/accounts/registry.js.map +1 -1
  19. package/dist/cliproxy/accounts/token-file-ops.js +1 -1
  20. package/dist/cliproxy/accounts/token-file-ops.js.map +1 -1
  21. package/dist/cliproxy/{codex-plan-compatibility.d.ts → ai-providers/codex-plan-compatibility.d.ts} +4 -4
  22. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -0
  23. package/dist/cliproxy/{codex-plan-compatibility.js → ai-providers/codex-plan-compatibility.js} +5 -5
  24. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -0
  25. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -0
  26. package/dist/cliproxy/{codex-reasoning-proxy.js → ai-providers/codex-reasoning-proxy.js} +1 -1
  27. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -0
  28. package/dist/cliproxy/ai-providers/config-store.js +3 -3
  29. package/dist/cliproxy/ai-providers/config-store.js.map +1 -1
  30. package/dist/cliproxy/{managed-model-prefixes.d.ts → ai-providers/managed-model-prefixes.d.ts} +1 -1
  31. package/dist/cliproxy/ai-providers/managed-model-prefixes.d.ts.map +1 -0
  32. package/dist/cliproxy/{managed-model-prefixes.js → ai-providers/managed-model-prefixes.js} +3 -3
  33. package/dist/cliproxy/ai-providers/managed-model-prefixes.js.map +1 -0
  34. package/dist/cliproxy/{model-id-normalizer.d.ts → ai-providers/model-id-normalizer.d.ts} +1 -1
  35. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -0
  36. package/dist/cliproxy/{model-id-normalizer.js → ai-providers/model-id-normalizer.js} +1 -1
  37. package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -0
  38. package/dist/cliproxy/ai-providers/openai-compat-manager.d.ts.map +1 -0
  39. package/dist/cliproxy/{openai-compat-manager.js → ai-providers/openai-compat-manager.js} +7 -6
  40. package/dist/cliproxy/ai-providers/openai-compat-manager.js.map +1 -0
  41. package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts.map +1 -0
  42. package/dist/cliproxy/ai-providers/schema-sanitizer.js.map +1 -0
  43. package/dist/cliproxy/{tool-name-mapper.d.ts → ai-providers/tool-name-mapper.d.ts} +7 -2
  44. package/dist/cliproxy/ai-providers/tool-name-mapper.d.ts.map +1 -0
  45. package/dist/cliproxy/{tool-name-mapper.js → ai-providers/tool-name-mapper.js} +35 -21
  46. package/dist/cliproxy/ai-providers/tool-name-mapper.js.map +1 -0
  47. package/dist/cliproxy/{tool-name-sanitizer.d.ts → ai-providers/tool-name-sanitizer.d.ts} +2 -1
  48. package/dist/cliproxy/ai-providers/tool-name-sanitizer.d.ts.map +1 -0
  49. package/dist/cliproxy/{tool-name-sanitizer.js → ai-providers/tool-name-sanitizer.js} +23 -3
  50. package/dist/cliproxy/ai-providers/tool-name-sanitizer.js.map +1 -0
  51. package/dist/cliproxy/auth/antigravity-responsibility.d.ts.map +1 -0
  52. package/dist/cliproxy/{antigravity-responsibility.js → auth/antigravity-responsibility.js} +2 -2
  53. package/dist/cliproxy/auth/antigravity-responsibility.js.map +1 -0
  54. package/dist/cliproxy/{auth-handler.d.ts → auth/auth-handler.d.ts} +5 -5
  55. package/dist/cliproxy/auth/auth-handler.d.ts.map +1 -0
  56. package/dist/cliproxy/{auth-handler.js → auth/auth-handler.js} +23 -23
  57. package/dist/cliproxy/auth/auth-handler.js.map +1 -0
  58. package/dist/cliproxy/{auth-session-manager.d.ts → auth/auth-session-manager.d.ts} +1 -1
  59. package/dist/cliproxy/auth/auth-session-manager.d.ts.map +1 -0
  60. package/dist/cliproxy/{auth-session-manager.js → auth/auth-session-manager.js} +16 -9
  61. package/dist/cliproxy/auth/auth-session-manager.js.map +1 -0
  62. package/dist/cliproxy/auth/auth-token-manager.d.ts.map +1 -0
  63. package/dist/cliproxy/{auth-token-manager.js → auth/auth-token-manager.js} +6 -6
  64. package/dist/cliproxy/auth/auth-token-manager.js.map +1 -0
  65. package/dist/cliproxy/auth/auth-types.d.ts +1 -1
  66. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  67. package/dist/cliproxy/auth/auth-utils.d.ts.map +1 -0
  68. package/dist/cliproxy/auth/auth-utils.js.map +1 -0
  69. package/dist/cliproxy/auth/device-code-handler.d.ts.map +1 -0
  70. package/dist/cliproxy/auth/device-code-handler.js.map +1 -0
  71. package/dist/cliproxy/auth/kiro-import.js +1 -1
  72. package/dist/cliproxy/auth/kiro-import.js.map +1 -1
  73. package/dist/cliproxy/auth/oauth-handler.d.ts +2 -2
  74. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  75. package/dist/cliproxy/auth/oauth-handler.js +5 -5
  76. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  77. package/dist/cliproxy/auth/oauth-process.d.ts +1 -1
  78. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
  79. package/dist/cliproxy/auth/oauth-process.js +3 -3
  80. package/dist/cliproxy/auth/oauth-process.js.map +1 -1
  81. package/dist/cliproxy/auth/project-selection-handler.d.ts.map +1 -0
  82. package/dist/cliproxy/auth/project-selection-handler.js.map +1 -0
  83. package/dist/cliproxy/{provider-entitlement-evidence.d.ts → auth/provider-entitlement-evidence.d.ts} +1 -1
  84. package/dist/cliproxy/auth/provider-entitlement-evidence.d.ts.map +1 -0
  85. package/dist/cliproxy/auth/provider-entitlement-evidence.js.map +1 -0
  86. package/dist/cliproxy/{provider-entitlement-types.d.ts → auth/provider-entitlement-types.d.ts} +1 -1
  87. package/dist/cliproxy/auth/provider-entitlement-types.d.ts.map +1 -0
  88. package/dist/cliproxy/auth/provider-entitlement-types.js.map +1 -0
  89. package/dist/cliproxy/auth/provider-refreshers/index.js +1 -1
  90. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
  91. package/dist/cliproxy/auth/token-expiry-checker.js +1 -1
  92. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
  93. package/dist/cliproxy/auth/token-manager.d.ts +1 -1
  94. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  95. package/dist/cliproxy/auth/token-manager.js +4 -4
  96. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  97. package/dist/cliproxy/binary/extractor.js +1 -1
  98. package/dist/cliproxy/binary/extractor.js.map +1 -1
  99. package/dist/cliproxy/binary/installer.d.ts +1 -1
  100. package/dist/cliproxy/binary/installer.d.ts.map +1 -1
  101. package/dist/cliproxy/binary/installer.js +1 -1
  102. package/dist/cliproxy/binary/installer.js.map +1 -1
  103. package/dist/cliproxy/binary/lifecycle.js +3 -3
  104. package/dist/cliproxy/binary/lifecycle.js.map +1 -1
  105. package/dist/cliproxy/{platform-detector.d.ts → binary/platform-detector.d.ts} +1 -1
  106. package/dist/cliproxy/binary/platform-detector.d.ts.map +1 -0
  107. package/dist/cliproxy/binary/platform-detector.js.map +1 -0
  108. package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -1
  109. package/dist/cliproxy/binary/tar-extractor.js +1 -1
  110. package/dist/cliproxy/binary/tar-extractor.js.map +1 -1
  111. package/dist/cliproxy/binary/version-cache.js +2 -2
  112. package/dist/cliproxy/binary/version-cache.js.map +1 -1
  113. package/dist/cliproxy/binary/version-checker.js +1 -1
  114. package/dist/cliproxy/binary/version-checker.js.map +1 -1
  115. package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -1
  116. package/dist/cliproxy/binary/zip-extractor.js +1 -1
  117. package/dist/cliproxy/binary/zip-extractor.js.map +1 -1
  118. package/dist/cliproxy/binary-manager.js +2 -2
  119. package/dist/cliproxy/binary-manager.js.map +1 -1
  120. package/dist/cliproxy/{base-config-loader.d.ts → config/base-config-loader.d.ts} +1 -1
  121. package/dist/cliproxy/config/base-config-loader.d.ts.map +1 -0
  122. package/dist/cliproxy/{base-config-loader.js → config/base-config-loader.js} +1 -1
  123. package/dist/cliproxy/config/base-config-loader.js.map +1 -0
  124. package/dist/cliproxy/config/composite-validator.d.ts.map +1 -0
  125. package/dist/cliproxy/{composite-validator.js → config/composite-validator.js} +2 -2
  126. package/dist/cliproxy/config/composite-validator.js.map +1 -0
  127. package/dist/cliproxy/{config-generator.d.ts → config/config-generator.d.ts} +1 -1
  128. package/dist/cliproxy/config/config-generator.d.ts.map +1 -0
  129. package/dist/cliproxy/{config-generator.js → config/config-generator.js} +1 -1
  130. package/dist/cliproxy/config/config-generator.js.map +1 -0
  131. package/dist/cliproxy/config/env-builder.js +3 -3
  132. package/dist/cliproxy/config/env-builder.js.map +1 -1
  133. package/dist/cliproxy/config/generator.js +3 -3
  134. package/dist/cliproxy/config/generator.js.map +1 -1
  135. package/dist/cliproxy/{model-config.d.ts → config/model-config.d.ts} +1 -1
  136. package/dist/cliproxy/config/model-config.d.ts.map +1 -0
  137. package/dist/cliproxy/{model-config.js → config/model-config.js} +5 -5
  138. package/dist/cliproxy/config/model-config.js.map +1 -0
  139. package/dist/cliproxy/config/thinking-config.js +1 -1
  140. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  141. package/dist/cliproxy/{cliproxy-executor.d.ts → executor/cliproxy-executor.d.ts} +2 -2
  142. package/dist/cliproxy/executor/cliproxy-executor.d.ts.map +1 -0
  143. package/dist/cliproxy/{cliproxy-executor.js → executor/cliproxy-executor.js} +6 -6
  144. package/dist/cliproxy/executor/cliproxy-executor.js.map +1 -0
  145. package/dist/cliproxy/executor/env-resolver.d.ts +5 -5
  146. package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
  147. package/dist/cliproxy/executor/env-resolver.js +3 -3
  148. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  149. package/dist/cliproxy/executor/index.d.ts +1 -1
  150. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  151. package/dist/cliproxy/executor/index.js +18 -18
  152. package/dist/cliproxy/executor/index.js.map +1 -1
  153. package/dist/cliproxy/executor/lifecycle-manager.js +1 -1
  154. package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -1
  155. package/dist/cliproxy/executor/retry-handler.js +3 -3
  156. package/dist/cliproxy/executor/retry-handler.js.map +1 -1
  157. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
  158. package/dist/cliproxy/executor/session-bridge.js +3 -3
  159. package/dist/cliproxy/executor/session-bridge.js.map +1 -1
  160. package/dist/cliproxy/index.d.ts +31 -31
  161. package/dist/cliproxy/index.d.ts.map +1 -1
  162. package/dist/cliproxy/index.js +20 -20
  163. package/dist/cliproxy/index.js.map +1 -1
  164. package/dist/cliproxy/{management-api-client.d.ts → management/management-api-client.d.ts} +1 -1
  165. package/dist/cliproxy/management/management-api-client.d.ts.map +1 -0
  166. package/dist/cliproxy/{management-api-client.js → management/management-api-client.js} +1 -1
  167. package/dist/cliproxy/management/management-api-client.js.map +1 -0
  168. package/dist/cliproxy/management/management-api-types.d.ts.map +1 -0
  169. package/dist/cliproxy/management/management-api-types.js.map +1 -0
  170. package/dist/cliproxy/management/remote-token-uploader.d.ts.map +1 -0
  171. package/dist/cliproxy/{remote-token-uploader.js → management/remote-token-uploader.js} +2 -2
  172. package/dist/cliproxy/management/remote-token-uploader.js.map +1 -0
  173. package/dist/cliproxy/model-catalog.js +1 -1
  174. package/dist/cliproxy/model-catalog.js.map +1 -1
  175. package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts.map +1 -0
  176. package/dist/cliproxy/{https-tunnel-proxy.js → proxy/https-tunnel-proxy.js} +7 -2
  177. package/dist/cliproxy/proxy/https-tunnel-proxy.js.map +1 -0
  178. package/dist/cliproxy/{proxy-config-resolver.d.ts → proxy/proxy-config-resolver.d.ts} +1 -1
  179. package/dist/cliproxy/proxy/proxy-config-resolver.d.ts.map +1 -0
  180. package/dist/cliproxy/{proxy-config-resolver.js → proxy/proxy-config-resolver.js} +3 -3
  181. package/dist/cliproxy/proxy/proxy-config-resolver.js.map +1 -0
  182. package/dist/cliproxy/{proxy-detector.d.ts → proxy/proxy-detector.d.ts} +1 -1
  183. package/dist/cliproxy/proxy/proxy-detector.d.ts.map +1 -0
  184. package/dist/cliproxy/{proxy-detector.js → proxy/proxy-detector.js} +7 -7
  185. package/dist/cliproxy/proxy/proxy-detector.js.map +1 -0
  186. package/dist/cliproxy/proxy/proxy-target-resolver.d.ts.map +1 -0
  187. package/dist/cliproxy/{proxy-target-resolver.js → proxy/proxy-target-resolver.js} +7 -7
  188. package/dist/cliproxy/proxy/proxy-target-resolver.js.map +1 -0
  189. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -0
  190. package/dist/cliproxy/{tool-sanitization-proxy.js → proxy/tool-sanitization-proxy.js} +6 -6
  191. package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -0
  192. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.d.ts.map +1 -0
  193. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.js.map +1 -0
  194. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts.map +1 -0
  195. package/dist/cliproxy/{quota-fetcher-claude-normalizer.js → quota/quota-fetcher-claude-normalizer.js} +1 -1
  196. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js.map +1 -0
  197. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -0
  198. package/dist/cliproxy/{quota-fetcher-claude.js → quota/quota-fetcher-claude.js} +3 -3
  199. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -0
  200. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -0
  201. package/dist/cliproxy/{quota-fetcher-codex.js → quota/quota-fetcher-codex.js} +4 -4
  202. package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -0
  203. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts.map +1 -0
  204. package/dist/cliproxy/{quota-fetcher-gemini-cli.js → quota/quota-fetcher-gemini-cli.js} +6 -6
  205. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js.map +1 -0
  206. package/dist/cliproxy/quota/quota-fetcher-ghcp.d.ts.map +1 -0
  207. package/dist/cliproxy/{quota-fetcher-ghcp.js → quota/quota-fetcher-ghcp.js} +2 -2
  208. package/dist/cliproxy/quota/quota-fetcher-ghcp.js.map +1 -0
  209. package/dist/cliproxy/{quota-fetcher.d.ts → quota/quota-fetcher.d.ts} +3 -3
  210. package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -0
  211. package/dist/cliproxy/{quota-fetcher.js → quota/quota-fetcher.js} +5 -5
  212. package/dist/cliproxy/quota/quota-fetcher.js.map +1 -0
  213. package/dist/cliproxy/{quota-manager.d.ts → quota/quota-manager.d.ts} +2 -2
  214. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -0
  215. package/dist/cliproxy/{quota-manager.js → quota/quota-manager.js} +7 -7
  216. package/dist/cliproxy/quota/quota-manager.js.map +1 -0
  217. package/dist/cliproxy/quota/quota-response-cache.d.ts.map +1 -0
  218. package/dist/cliproxy/quota/quota-response-cache.js.map +1 -0
  219. package/dist/cliproxy/{quota-types.d.ts → quota/quota-types.d.ts} +1 -1
  220. package/dist/cliproxy/quota/quota-types.d.ts.map +1 -0
  221. package/dist/cliproxy/quota/quota-types.js.map +1 -0
  222. package/dist/cliproxy/{routing-strategy-http.d.ts → routing/routing-strategy-http.d.ts} +1 -1
  223. package/dist/cliproxy/routing/routing-strategy-http.d.ts.map +1 -0
  224. package/dist/cliproxy/{routing-strategy-http.js → routing/routing-strategy-http.js} +1 -1
  225. package/dist/cliproxy/routing/routing-strategy-http.js.map +1 -0
  226. package/dist/cliproxy/{routing-strategy.d.ts → routing/routing-strategy.d.ts} +1 -1
  227. package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -0
  228. package/dist/cliproxy/{routing-strategy.js → routing/routing-strategy.js} +3 -3
  229. package/dist/cliproxy/routing/routing-strategy.js.map +1 -0
  230. package/dist/cliproxy/service-manager.d.ts +3 -3
  231. package/dist/cliproxy/service-manager.d.ts.map +1 -1
  232. package/dist/cliproxy/service-manager.js +5 -5
  233. package/dist/cliproxy/service-manager.js.map +1 -1
  234. package/dist/cliproxy/services/binary-service.js +1 -1
  235. package/dist/cliproxy/services/binary-service.js.map +1 -1
  236. package/dist/cliproxy/{catalog-cache.d.ts → services/catalog-cache.d.ts} +3 -3
  237. package/dist/cliproxy/services/catalog-cache.d.ts.map +1 -0
  238. package/dist/cliproxy/{catalog-cache.js → services/catalog-cache.js} +4 -4
  239. package/dist/cliproxy/services/catalog-cache.js.map +1 -0
  240. package/dist/cliproxy/{catalog-routing.d.ts → services/catalog-routing.d.ts} +3 -3
  241. package/dist/cliproxy/services/catalog-routing.d.ts.map +1 -0
  242. package/dist/cliproxy/{catalog-routing.js → services/catalog-routing.js} +1 -1
  243. package/dist/cliproxy/services/catalog-routing.js.map +1 -0
  244. package/dist/cliproxy/services/proxy-lifecycle-service.js +1 -1
  245. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -1
  246. package/dist/cliproxy/{remote-auth-fetcher.d.ts → services/remote-auth-fetcher.d.ts} +2 -2
  247. package/dist/cliproxy/services/remote-auth-fetcher.d.ts.map +1 -0
  248. package/dist/cliproxy/{remote-auth-fetcher.js → services/remote-auth-fetcher.js} +2 -2
  249. package/dist/cliproxy/services/remote-auth-fetcher.js.map +1 -0
  250. package/dist/cliproxy/services/remote-proxy-client.d.ts.map +1 -0
  251. package/dist/cliproxy/{remote-proxy-client.js → services/remote-proxy-client.js} +1 -1
  252. package/dist/cliproxy/services/remote-proxy-client.js.map +1 -0
  253. package/dist/cliproxy/services/startup-lock.d.ts.map +1 -0
  254. package/dist/cliproxy/{startup-lock.js → services/startup-lock.js} +2 -2
  255. package/dist/cliproxy/services/startup-lock.js.map +1 -0
  256. package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -0
  257. package/dist/cliproxy/{stats-fetcher.js → services/stats-fetcher.js} +2 -2
  258. package/dist/cliproxy/services/stats-fetcher.js.map +1 -0
  259. package/dist/cliproxy/services/stats-transformer.d.ts.map +1 -0
  260. package/dist/cliproxy/{stats-transformer.js → services/stats-transformer.js} +3 -3
  261. package/dist/cliproxy/services/stats-transformer.js.map +1 -0
  262. package/dist/cliproxy/services/variant-config-adapter.js +1 -1
  263. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  264. package/dist/cliproxy/services/variant-service.js +3 -3
  265. package/dist/cliproxy/services/variant-service.js.map +1 -1
  266. package/dist/cliproxy/services/variant-settings.js +3 -3
  267. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  268. package/dist/cliproxy/session-tracker.js +2 -2
  269. package/dist/cliproxy/session-tracker.js.map +1 -1
  270. package/dist/cliproxy/sync/local-config-sync.js +1 -1
  271. package/dist/cliproxy/sync/local-config-sync.js.map +1 -1
  272. package/dist/cliproxy/sync/profile-mapper.d.ts +1 -1
  273. package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -1
  274. package/dist/cliproxy/types/binary-types.d.ts +48 -0
  275. package/dist/cliproxy/types/binary-types.d.ts.map +1 -0
  276. package/dist/cliproxy/types/binary-types.js +6 -0
  277. package/dist/cliproxy/types/binary-types.js.map +1 -0
  278. package/dist/cliproxy/types/config-types.d.ts +89 -0
  279. package/dist/cliproxy/types/config-types.d.ts.map +1 -0
  280. package/dist/cliproxy/types/config-types.js +6 -0
  281. package/dist/cliproxy/types/config-types.js.map +1 -0
  282. package/dist/cliproxy/types/index.d.ts +5 -0
  283. package/dist/cliproxy/types/index.d.ts.map +1 -0
  284. package/dist/cliproxy/types/index.js +21 -0
  285. package/dist/cliproxy/types/index.js.map +1 -0
  286. package/dist/cliproxy/types/platform-types.d.ts +17 -0
  287. package/dist/cliproxy/types/platform-types.d.ts.map +1 -0
  288. package/dist/cliproxy/types/platform-types.js +6 -0
  289. package/dist/cliproxy/types/platform-types.js.map +1 -0
  290. package/dist/cliproxy/types/provider-types.d.ts +27 -0
  291. package/dist/cliproxy/types/provider-types.d.ts.map +1 -0
  292. package/dist/cliproxy/types/provider-types.js +16 -0
  293. package/dist/cliproxy/types/provider-types.js.map +1 -0
  294. package/dist/cliproxy/types.d.ts +4 -284
  295. package/dist/cliproxy/types.d.ts.map +1 -1
  296. package/dist/cliproxy/types.js +18 -14
  297. package/dist/cliproxy/types.js.map +1 -1
  298. package/dist/commands/cleanup-command.js +1 -1
  299. package/dist/commands/cleanup-command.js.map +1 -1
  300. package/dist/commands/cliproxy/auth-subcommand.js +1 -1
  301. package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
  302. package/dist/commands/cliproxy/catalog-subcommand.js +4 -4
  303. package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
  304. package/dist/commands/cliproxy/help-subcommand.js +1 -1
  305. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  306. package/dist/commands/cliproxy/install-subcommand.js +1 -1
  307. package/dist/commands/cliproxy/install-subcommand.js.map +1 -1
  308. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +1 -1
  309. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
  310. package/dist/commands/cliproxy/quota-subcommand.d.ts +1 -1
  311. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  312. package/dist/commands/cliproxy/quota-subcommand.js +8 -8
  313. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  314. package/dist/commands/cliproxy/routing-subcommand.js +1 -1
  315. package/dist/commands/cliproxy/routing-subcommand.js.map +1 -1
  316. package/dist/commands/cliproxy/variant-subcommand.js +4 -4
  317. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  318. package/dist/commands/config-command.js +1 -1
  319. package/dist/commands/config-command.js.map +1 -1
  320. package/dist/commands/tokens-command.js +1 -1
  321. package/dist/commands/tokens-command.js.map +1 -1
  322. package/dist/config/unified-config-loader.js +1 -1
  323. package/dist/config/unified-config-loader.js.map +1 -1
  324. package/dist/copilot/copilot-executor.d.ts +1 -1
  325. package/dist/copilot/copilot-executor.d.ts.map +1 -1
  326. package/dist/copilot/copilot-executor.js +1 -1
  327. package/dist/copilot/copilot-executor.js.map +1 -1
  328. package/dist/docker/docker-bootstrap.js +1 -1
  329. package/dist/docker/docker-bootstrap.js.map +1 -1
  330. package/dist/management/checks/image-analysis-check.js +2 -2
  331. package/dist/management/checks/image-analysis-check.js.map +1 -1
  332. package/dist/management/plugin-path-normalizer.d.ts +7 -0
  333. package/dist/management/plugin-path-normalizer.d.ts.map +1 -0
  334. package/dist/management/plugin-path-normalizer.js +82 -0
  335. package/dist/management/plugin-path-normalizer.js.map +1 -0
  336. package/dist/management/shared-manager.d.ts +1 -2
  337. package/dist/management/shared-manager.d.ts.map +1 -1
  338. package/dist/management/shared-manager.js +8 -56
  339. package/dist/management/shared-manager.js.map +1 -1
  340. package/dist/shared/claude-extension-setup.js +1 -1
  341. package/dist/shared/claude-extension-setup.js.map +1 -1
  342. package/dist/ui/assets/{accounts-CP_Nosd7.js → accounts-C11yNnFn.js} +1 -1
  343. package/dist/ui/assets/{alert-dialog-CjnZBDj3.js → alert-dialog-BDhZ9T12.js} +1 -1
  344. package/dist/ui/assets/{api-B7mmrAjt.js → api-DXFMasvG.js} +1 -1
  345. package/dist/ui/assets/{auth-section-BFQ8Mu15.js → auth-section-BQpO_21y.js} +1 -1
  346. package/dist/ui/assets/{backups-section-CPwm9q19.js → backups-section-BM2lP-ap.js} +1 -1
  347. package/dist/ui/assets/{channels-B2colnY7.js → channels-qstH8YTZ.js} +1 -1
  348. package/dist/ui/assets/{checkbox-BAMXPp68.js → checkbox-BPx7K8To.js} +1 -1
  349. package/dist/ui/assets/{claude-extension-BDVoXHr-.js → claude-extension-BD6uQlc-.js} +1 -1
  350. package/dist/ui/assets/{cliproxy-CuLlmDu7.js → cliproxy-5-BIu9Wb.js} +1 -1
  351. package/dist/ui/assets/{cliproxy-ai-providers-8dH1cHVk.js → cliproxy-ai-providers-BNffQh5X.js} +1 -1
  352. package/dist/ui/assets/{cliproxy-control-panel-CC8HzA8e.js → cliproxy-control-panel-CjExrU2o.js} +1 -1
  353. package/dist/ui/assets/{codex-C6Q9rOwp.js → codex-Dd2XIT8b.js} +1 -1
  354. package/dist/ui/assets/{confirm-dialog-D0VQlM7B.js → confirm-dialog-BZP3xwZi.js} +1 -1
  355. package/dist/ui/assets/{copilot-CgG2oaRV.js → copilot-gf-rTcY8.js} +1 -1
  356. package/dist/ui/assets/{cursor-CE1giQU2.js → cursor-CJGCGy-H.js} +1 -1
  357. package/dist/ui/assets/{droid-FG2w7nRu.js → droid-D1Wq6rRO.js} +1 -1
  358. package/dist/ui/assets/{globalenv-section-BJbBud4W.js → globalenv-section-DBqYbsuu.js} +1 -1
  359. package/dist/ui/assets/{health-Dh7o4wt7.js → health-DW8M92nq.js} +1 -1
  360. package/dist/ui/assets/{index-B6bIHdvz.js → index-B0dun58L.js} +1 -1
  361. package/dist/ui/assets/{index-DTAdzUUA.js → index-B5cw5Mhf.js} +1 -1
  362. package/dist/ui/assets/index-Bbiq6Xkt.css +1 -0
  363. package/dist/ui/assets/{index-Bj8UFR7b.js → index-BczU222d.js} +1 -1
  364. package/dist/ui/assets/{index-BNW5qVXZ.js → index-CoeauyY0.js} +1 -1
  365. package/dist/ui/assets/{index-X21iqV9e.js → index-IiaQMFco.js} +1 -1
  366. package/dist/ui/assets/{index-BNTqP5R7.js → index-JIaHpwil.js} +1 -1
  367. package/dist/ui/assets/{index-0mNJhDEG.js → index-ubH9RpKo.js} +29 -29
  368. package/dist/ui/assets/{logs-CxwEaeVS.js → logs-DbWcj2t5.js} +1 -1
  369. package/dist/ui/assets/{masked-input-DygH0M2a.js → masked-input-Bmo6mlTB.js} +1 -1
  370. package/dist/ui/assets/{proxy-status-widget-BWjGFUas.js → proxy-status-widget-EX_Raok7.js} +1 -1
  371. package/dist/ui/assets/{raw-json-settings-editor-panel-DYpsr-1d.js → raw-json-settings-editor-panel-C4DFuY4g.js} +1 -1
  372. package/dist/ui/assets/{searchable-select-BKx31cCH.js → searchable-select-CLhlrHkQ.js} +1 -1
  373. package/dist/ui/assets/{separator-mG07scBE.js → separator-BEJQ4e4O.js} +1 -1
  374. package/dist/ui/assets/{shared-hbFOfnWU.js → shared-4QlIu64T.js} +1 -1
  375. package/dist/ui/assets/{table-DoECcNZ-.js → table-B6xzmyfm.js} +1 -1
  376. package/dist/ui/assets/{updates-BSeFQRwL.js → updates-DBkXWRpR.js} +1 -1
  377. package/dist/ui/index.html +2 -2
  378. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +1 -1
  379. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -1
  380. package/dist/utils/hooks/get-image-analysis-hook-env.js +2 -2
  381. package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -1
  382. package/dist/utils/hooks/image-analysis-backend-resolver.js +1 -1
  383. package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
  384. package/dist/utils/hooks/image-analysis-runtime-status.d.ts +4 -4
  385. package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
  386. package/dist/utils/hooks/image-analysis-runtime-status.js +5 -5
  387. package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
  388. package/dist/web-server/health/cliproxy-checks.js +2 -2
  389. package/dist/web-server/health/cliproxy-checks.js.map +1 -1
  390. package/dist/web-server/index.js +2 -2
  391. package/dist/web-server/index.js.map +1 -1
  392. package/dist/web-server/overview-routes.js +1 -1
  393. package/dist/web-server/overview-routes.js.map +1 -1
  394. package/dist/web-server/routes/account-routes.js +1 -1
  395. package/dist/web-server/routes/account-routes.js.map +1 -1
  396. package/dist/web-server/routes/catalog-routes.js +1 -1
  397. package/dist/web-server/routes/catalog-routes.js.map +1 -1
  398. package/dist/web-server/routes/cliproxy-auth-routes.js +10 -10
  399. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  400. package/dist/web-server/routes/cliproxy-routing-routes.js +1 -1
  401. package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -1
  402. package/dist/web-server/routes/cliproxy-stats-routes.js +10 -10
  403. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  404. package/dist/web-server/routes/image-analysis-routes.js +1 -1
  405. package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
  406. package/dist/web-server/routes/provider-routes.js +1 -1
  407. package/dist/web-server/routes/provider-routes.js.map +1 -1
  408. package/dist/web-server/routes/proxy-routes.js +2 -2
  409. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  410. package/dist/web-server/routes/route-helpers.js +1 -1
  411. package/dist/web-server/routes/route-helpers.js.map +1 -1
  412. package/dist/web-server/routes/settings-routes.js +2 -2
  413. package/dist/web-server/routes/settings-routes.js.map +1 -1
  414. package/dist/web-server/routes/variant-routes.js +1 -1
  415. package/dist/web-server/routes/variant-routes.js.map +1 -1
  416. package/dist/web-server/services/cliproxy-dashboard-install-service.js +1 -1
  417. package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
  418. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +1 -1
  419. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -1
  420. package/dist/web-server/usage/cliproxy-usage-syncer.js +1 -1
  421. package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -1
  422. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +1 -1
  423. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  424. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  425. package/dist/web-server/websocket.js +2 -2
  426. package/dist/web-server/websocket.js.map +1 -1
  427. package/package.json +1 -1
  428. package/dist/cliproxy/account-manager.d.ts.map +0 -1
  429. package/dist/cliproxy/account-manager.js.map +0 -1
  430. package/dist/cliproxy/account-safety.d.ts.map +0 -1
  431. package/dist/cliproxy/account-safety.js.map +0 -1
  432. package/dist/cliproxy/account-stats-key.d.ts.map +0 -1
  433. package/dist/cliproxy/account-stats-key.js.map +0 -1
  434. package/dist/cliproxy/antigravity-responsibility.d.ts.map +0 -1
  435. package/dist/cliproxy/antigravity-responsibility.js.map +0 -1
  436. package/dist/cliproxy/auth-handler.d.ts.map +0 -1
  437. package/dist/cliproxy/auth-handler.js.map +0 -1
  438. package/dist/cliproxy/auth-session-manager.d.ts.map +0 -1
  439. package/dist/cliproxy/auth-session-manager.js.map +0 -1
  440. package/dist/cliproxy/auth-token-manager.d.ts.map +0 -1
  441. package/dist/cliproxy/auth-token-manager.js.map +0 -1
  442. package/dist/cliproxy/auth-utils.d.ts.map +0 -1
  443. package/dist/cliproxy/auth-utils.js.map +0 -1
  444. package/dist/cliproxy/base-config-loader.d.ts.map +0 -1
  445. package/dist/cliproxy/base-config-loader.js.map +0 -1
  446. package/dist/cliproxy/catalog-cache.d.ts.map +0 -1
  447. package/dist/cliproxy/catalog-cache.js.map +0 -1
  448. package/dist/cliproxy/catalog-routing.d.ts.map +0 -1
  449. package/dist/cliproxy/catalog-routing.js.map +0 -1
  450. package/dist/cliproxy/cliproxy-executor.d.ts.map +0 -1
  451. package/dist/cliproxy/cliproxy-executor.js.map +0 -1
  452. package/dist/cliproxy/codex-plan-compatibility.d.ts.map +0 -1
  453. package/dist/cliproxy/codex-plan-compatibility.js.map +0 -1
  454. package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +0 -1
  455. package/dist/cliproxy/codex-reasoning-proxy.js.map +0 -1
  456. package/dist/cliproxy/composite-validator.d.ts.map +0 -1
  457. package/dist/cliproxy/composite-validator.js.map +0 -1
  458. package/dist/cliproxy/config-generator.d.ts.map +0 -1
  459. package/dist/cliproxy/config-generator.js.map +0 -1
  460. package/dist/cliproxy/device-code-handler.d.ts.map +0 -1
  461. package/dist/cliproxy/device-code-handler.js.map +0 -1
  462. package/dist/cliproxy/gemini-cli-quota-normalizer.d.ts.map +0 -1
  463. package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +0 -1
  464. package/dist/cliproxy/https-tunnel-proxy.d.ts.map +0 -1
  465. package/dist/cliproxy/https-tunnel-proxy.js.map +0 -1
  466. package/dist/cliproxy/managed-model-prefixes.d.ts.map +0 -1
  467. package/dist/cliproxy/managed-model-prefixes.js.map +0 -1
  468. package/dist/cliproxy/management-api-client.d.ts.map +0 -1
  469. package/dist/cliproxy/management-api-client.js.map +0 -1
  470. package/dist/cliproxy/management-api-types.d.ts.map +0 -1
  471. package/dist/cliproxy/management-api-types.js.map +0 -1
  472. package/dist/cliproxy/model-config.d.ts.map +0 -1
  473. package/dist/cliproxy/model-config.js.map +0 -1
  474. package/dist/cliproxy/model-id-normalizer.d.ts.map +0 -1
  475. package/dist/cliproxy/model-id-normalizer.js.map +0 -1
  476. package/dist/cliproxy/openai-compat-manager.d.ts.map +0 -1
  477. package/dist/cliproxy/openai-compat-manager.js.map +0 -1
  478. package/dist/cliproxy/platform-detector.d.ts.map +0 -1
  479. package/dist/cliproxy/platform-detector.js.map +0 -1
  480. package/dist/cliproxy/project-selection-handler.d.ts.map +0 -1
  481. package/dist/cliproxy/project-selection-handler.js.map +0 -1
  482. package/dist/cliproxy/provider-entitlement-evidence.d.ts.map +0 -1
  483. package/dist/cliproxy/provider-entitlement-evidence.js.map +0 -1
  484. package/dist/cliproxy/provider-entitlement-types.d.ts.map +0 -1
  485. package/dist/cliproxy/provider-entitlement-types.js.map +0 -1
  486. package/dist/cliproxy/proxy-config-resolver.d.ts.map +0 -1
  487. package/dist/cliproxy/proxy-config-resolver.js.map +0 -1
  488. package/dist/cliproxy/proxy-detector.d.ts.map +0 -1
  489. package/dist/cliproxy/proxy-detector.js.map +0 -1
  490. package/dist/cliproxy/proxy-target-resolver.d.ts.map +0 -1
  491. package/dist/cliproxy/proxy-target-resolver.js.map +0 -1
  492. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts.map +0 -1
  493. package/dist/cliproxy/quota-fetcher-claude-normalizer.js.map +0 -1
  494. package/dist/cliproxy/quota-fetcher-claude.d.ts.map +0 -1
  495. package/dist/cliproxy/quota-fetcher-claude.js.map +0 -1
  496. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +0 -1
  497. package/dist/cliproxy/quota-fetcher-codex.js.map +0 -1
  498. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +0 -1
  499. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +0 -1
  500. package/dist/cliproxy/quota-fetcher-ghcp.d.ts.map +0 -1
  501. package/dist/cliproxy/quota-fetcher-ghcp.js.map +0 -1
  502. package/dist/cliproxy/quota-fetcher.d.ts.map +0 -1
  503. package/dist/cliproxy/quota-fetcher.js.map +0 -1
  504. package/dist/cliproxy/quota-manager.d.ts.map +0 -1
  505. package/dist/cliproxy/quota-manager.js.map +0 -1
  506. package/dist/cliproxy/quota-response-cache.d.ts.map +0 -1
  507. package/dist/cliproxy/quota-response-cache.js.map +0 -1
  508. package/dist/cliproxy/quota-types.d.ts.map +0 -1
  509. package/dist/cliproxy/quota-types.js.map +0 -1
  510. package/dist/cliproxy/remote-auth-fetcher.d.ts.map +0 -1
  511. package/dist/cliproxy/remote-auth-fetcher.js.map +0 -1
  512. package/dist/cliproxy/remote-proxy-client.d.ts.map +0 -1
  513. package/dist/cliproxy/remote-proxy-client.js.map +0 -1
  514. package/dist/cliproxy/remote-token-uploader.d.ts.map +0 -1
  515. package/dist/cliproxy/remote-token-uploader.js.map +0 -1
  516. package/dist/cliproxy/routing-strategy-http.d.ts.map +0 -1
  517. package/dist/cliproxy/routing-strategy-http.js.map +0 -1
  518. package/dist/cliproxy/routing-strategy.d.ts.map +0 -1
  519. package/dist/cliproxy/routing-strategy.js.map +0 -1
  520. package/dist/cliproxy/schema-sanitizer.d.ts.map +0 -1
  521. package/dist/cliproxy/schema-sanitizer.js.map +0 -1
  522. package/dist/cliproxy/startup-lock.d.ts.map +0 -1
  523. package/dist/cliproxy/startup-lock.js.map +0 -1
  524. package/dist/cliproxy/stats-fetcher.d.ts.map +0 -1
  525. package/dist/cliproxy/stats-fetcher.js.map +0 -1
  526. package/dist/cliproxy/stats-transformer.d.ts.map +0 -1
  527. package/dist/cliproxy/stats-transformer.js.map +0 -1
  528. package/dist/cliproxy/tool-name-mapper.d.ts.map +0 -1
  529. package/dist/cliproxy/tool-name-mapper.js.map +0 -1
  530. package/dist/cliproxy/tool-name-sanitizer.d.ts.map +0 -1
  531. package/dist/cliproxy/tool-name-sanitizer.js.map +0 -1
  532. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +0 -1
  533. package/dist/cliproxy/tool-sanitization-proxy.js.map +0 -1
  534. package/dist/ui/assets/index-DM5Khyln.css +0 -1
  535. /package/dist/cliproxy/{account-stats-key.d.ts → accounts/account-stats-key.d.ts} +0 -0
  536. /package/dist/cliproxy/{account-stats-key.js → accounts/account-stats-key.js} +0 -0
  537. /package/dist/cliproxy/{codex-reasoning-proxy.d.ts → ai-providers/codex-reasoning-proxy.d.ts} +0 -0
  538. /package/dist/cliproxy/{openai-compat-manager.d.ts → ai-providers/openai-compat-manager.d.ts} +0 -0
  539. /package/dist/cliproxy/{schema-sanitizer.d.ts → ai-providers/schema-sanitizer.d.ts} +0 -0
  540. /package/dist/cliproxy/{schema-sanitizer.js → ai-providers/schema-sanitizer.js} +0 -0
  541. /package/dist/cliproxy/{antigravity-responsibility.d.ts → auth/antigravity-responsibility.d.ts} +0 -0
  542. /package/dist/cliproxy/{auth-token-manager.d.ts → auth/auth-token-manager.d.ts} +0 -0
  543. /package/dist/cliproxy/{auth-utils.d.ts → auth/auth-utils.d.ts} +0 -0
  544. /package/dist/cliproxy/{auth-utils.js → auth/auth-utils.js} +0 -0
  545. /package/dist/cliproxy/{device-code-handler.d.ts → auth/device-code-handler.d.ts} +0 -0
  546. /package/dist/cliproxy/{device-code-handler.js → auth/device-code-handler.js} +0 -0
  547. /package/dist/cliproxy/{project-selection-handler.d.ts → auth/project-selection-handler.d.ts} +0 -0
  548. /package/dist/cliproxy/{project-selection-handler.js → auth/project-selection-handler.js} +0 -0
  549. /package/dist/cliproxy/{provider-entitlement-evidence.js → auth/provider-entitlement-evidence.js} +0 -0
  550. /package/dist/cliproxy/{provider-entitlement-types.js → auth/provider-entitlement-types.js} +0 -0
  551. /package/dist/cliproxy/{platform-detector.js → binary/platform-detector.js} +0 -0
  552. /package/dist/cliproxy/{composite-validator.d.ts → config/composite-validator.d.ts} +0 -0
  553. /package/dist/cliproxy/{management-api-types.d.ts → management/management-api-types.d.ts} +0 -0
  554. /package/dist/cliproxy/{management-api-types.js → management/management-api-types.js} +0 -0
  555. /package/dist/cliproxy/{remote-token-uploader.d.ts → management/remote-token-uploader.d.ts} +0 -0
  556. /package/dist/cliproxy/{https-tunnel-proxy.d.ts → proxy/https-tunnel-proxy.d.ts} +0 -0
  557. /package/dist/cliproxy/{proxy-target-resolver.d.ts → proxy/proxy-target-resolver.d.ts} +0 -0
  558. /package/dist/cliproxy/{tool-sanitization-proxy.d.ts → proxy/tool-sanitization-proxy.d.ts} +0 -0
  559. /package/dist/cliproxy/{gemini-cli-quota-normalizer.d.ts → quota/gemini-cli-quota-normalizer.d.ts} +0 -0
  560. /package/dist/cliproxy/{gemini-cli-quota-normalizer.js → quota/gemini-cli-quota-normalizer.js} +0 -0
  561. /package/dist/cliproxy/{quota-fetcher-claude-normalizer.d.ts → quota/quota-fetcher-claude-normalizer.d.ts} +0 -0
  562. /package/dist/cliproxy/{quota-fetcher-claude.d.ts → quota/quota-fetcher-claude.d.ts} +0 -0
  563. /package/dist/cliproxy/{quota-fetcher-codex.d.ts → quota/quota-fetcher-codex.d.ts} +0 -0
  564. /package/dist/cliproxy/{quota-fetcher-gemini-cli.d.ts → quota/quota-fetcher-gemini-cli.d.ts} +0 -0
  565. /package/dist/cliproxy/{quota-fetcher-ghcp.d.ts → quota/quota-fetcher-ghcp.d.ts} +0 -0
  566. /package/dist/cliproxy/{quota-response-cache.d.ts → quota/quota-response-cache.d.ts} +0 -0
  567. /package/dist/cliproxy/{quota-response-cache.js → quota/quota-response-cache.js} +0 -0
  568. /package/dist/cliproxy/{quota-types.js → quota/quota-types.js} +0 -0
  569. /package/dist/cliproxy/{remote-proxy-client.d.ts → services/remote-proxy-client.d.ts} +0 -0
  570. /package/dist/cliproxy/{startup-lock.d.ts → services/startup-lock.d.ts} +0 -0
  571. /package/dist/cliproxy/{stats-fetcher.d.ts → services/stats-fetcher.d.ts} +0 -0
  572. /package/dist/cliproxy/{stats-transformer.d.ts → services/stats-transformer.d.ts} +0 -0
@@ -1 +1 @@
1
- import{j as e}from"./radix-ui-Zb8sVEtn.js";import{r as n}from"./react-vendor-CNOkPC89.js";import{bt as Ue,bu as ze,Y as R,a as oe,I as B,aI as M,r as We,s as Ye,t as Xe,v as Ge,w as ye,d as z,bv as qe,bw as Je,bx as Qe,by as Ze,b6 as he,bz as es,bA as ss,bi as H,bk as V,n as ts}from"./index-0mNJhDEG.js";import{C as W}from"./default-ports-1QQSffYX.js";import{bb as fe,R as ae,h as rs,x as je,W as as,w as os,aA as ns,bc as is,T as re,aH as ls,p as cs,bd as ds}from"./icons-DyorC3Xk.js";import{P as xs}from"./proxy-status-widget-BWjGFUas.js";import{R as U}from"./antigravity-responsibility-constants-Bvh4Ybz0.js";import{t as T}from"./notifications-B2HqRBj7.js";import"./tanstack-CrmUhA7Z.js";import"./utils-CzKF5WmX.js";import"./form-utils-Bcoyqxpq.js";import"./code-highlight-BRUf_pqB.js";import"./alert-dialog-CjnZBDj3.js";function ms(){const{state:s}=Ue(),t=ze(),[g,o]=n.useState(null),[u,f]=n.useState(null),[p,j]=n.useState(null),[y,C]=n.useState(null),[S,P]=n.useState(null),w=n.useCallback(async()=>{try{t.setProxyLoading(!0),t.setProxyError(null);const d=await R.cliproxyServer.get();t.setProxyConfig(d)}catch(d){t.setProxyError(d.message)}finally{t.setProxyLoading(!1)}},[t]),A=n.useCallback(async d=>{const x=s.proxyConfig;if(!x)return;const h={remote:{...x.remote,...d.remote},fallback:{...x.fallback,...d.fallback},local:{...x.local,...d.local}};t.setProxyConfig(h),t.setProxyTestResult(null);try{t.setProxySaving(!0),t.setProxyError(null);const a=await R.cliproxyServer.update(d);t.setProxyConfig(a),t.setProxySuccess(!0),setTimeout(()=>t.setProxySuccess(!1),1500)}catch(a){t.setProxyConfig(x),t.setProxyError(a.message)}finally{t.setProxySaving(!1)}},[s.proxyConfig,t]),E=n.useCallback(async d=>{const{host:x,port:h,protocol:a,authToken:c}=d;if(!x){t.setProxyError("Host is required");return}try{t.setProxyTesting(!0),t.setProxyError(null),t.setProxyTestResult(null);const v=h?parseInt(h,10):void 0,l=await R.cliproxyServer.test({host:x,port:v||void 0,protocol:a,authToken:c||void 0});t.setProxyTestResult(l)}catch(v){t.setProxyError(v.message)}finally{t.setProxyTesting(!1)}},[t]);return{config:s.proxyConfig,loading:s.proxyLoading,saving:s.proxySaving,error:s.proxyError,success:s.proxySuccess,testResult:s.proxyTestResult,testing:s.proxyTesting,editedHost:g,setEditedHost:o,editedPort:u,setEditedPort:f,editedAuthToken:p,setEditedAuthToken:j,editedManagementKey:y,setEditedManagementKey:C,editedLocalPort:S,setEditedLocalPort:P,fetchConfig:w,saveConfig:A,testConnection:E}}function gs({config:s,saving:t,displayLocalPort:g,setEditedLocalPort:o,onSaveLocalPort:u,onSaveConfig:f}){const{t:p}=oe(),j=s.local;return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:p("settingsProxy.localProxy")}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:p("settingsProxy.port")}),e.jsx(B,{type:"text",inputMode:"numeric",value:g,onChange:y=>o(y.target.value.replace(/\D/g,"")),onBlur:u,placeholder:`${W}`,className:"font-mono max-w-32",disabled:t})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:p("settingsProxy.autoStart")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:p("settingsProxy.localAutoStartDesc")})]}),e.jsx(M,{checked:j.auto_start??!0,onCheckedChange:y=>f({local:{...j,auto_start:y}}),disabled:t})]})]})]})}function us({config:s,saving:t,testing:g,testResult:o,displayHost:u,displayPort:f,displayAuthToken:p,displayManagementKey:j,setEditedHost:y,setEditedPort:C,setEditedAuthToken:S,setEditedManagementKey:P,onSaveHost:w,onSavePort:A,onSaveAuthToken:E,onSaveManagementKey:d,onSaveConfig:x,onTestConnection:h}){const{t:a}=oe(),c=s.remote,v=l=>l==="https"?443:W;return e.jsxs("div",{className:"space-y-4 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("h4",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(fe,{className:"w-4 h-4"}),a("settingsProxy.remoteConfigTitle")]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.host")}),e.jsx(B,{value:u,onChange:l=>y(l.target.value),onBlur:w,placeholder:a("settingsProxy.hostPlaceholder"),className:"font-mono",disabled:t})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("label",{className:"text-sm text-muted-foreground",children:[a("settingsProxy.port")," ",e.jsxs("span",{className:"text-xs opacity-70",children:["(",a("settingsProxy.defaultPort",{value:v(s.remote.protocol||"http")}),")"]})]}),e.jsx(B,{type:"text",inputMode:"numeric",value:f,onChange:l=>C(l.target.value.replace(/\D/g,"")),onBlur:A,placeholder:a("settingsProxy.portPlaceholder",{value:v(s.remote.protocol||"http")}),className:"font-mono",disabled:t})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.protocol")}),e.jsxs(We,{value:s.remote.protocol||"http",onValueChange:l=>x({remote:{...c,protocol:l}}),disabled:t,children:[e.jsx(Ye,{children:e.jsx(Xe,{})}),e.jsxs(Ge,{children:[e.jsx(ye,{value:"http",children:a("settingsProxy.http")}),e.jsx(ye,{value:"https",children:a("settingsProxy.https")})]})]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.apiKeyOptional")}),e.jsx(B,{type:"password",value:p,onChange:l=>S(l.target.value),onBlur:E,placeholder:a("settingsProxy.apiKeyPlaceholder"),className:"font-mono",disabled:t}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a("settingsProxy.apiKeyDesc")})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.managementKeyOptional")}),e.jsx(B,{type:"password",value:j,onChange:l=>P(l.target.value),onBlur:d,placeholder:a("settingsProxy.managementKeyPlaceholder"),className:"font-mono",disabled:t}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a("settingsProxy.managementKeyDesc")})]}),e.jsxs("div",{className:"space-y-3 pt-2",children:[e.jsx(z,{onClick:h,disabled:g||!u,variant:"outline",className:"w-full",children:g?e.jsxs(e.Fragment,{children:[e.jsx(ae,{className:"w-4 h-4 mr-2 animate-spin"}),a("settingsProxy.testing")]}):e.jsxs(e.Fragment,{children:[e.jsx(rs,{className:"w-4 h-4 mr-2"}),a("settingsProxy.testConnection")]})}),o&&e.jsx("div",{className:`p-3 rounded-md ${o.reachable?"bg-green-50 border border-green-200 dark:bg-green-900/20 dark:border-green-900/50":"bg-red-50 border border-red-200 dark:bg-red-900/20 dark:border-red-900/50"}`,children:e.jsx("div",{className:"flex items-center gap-2",children:o.reachable?e.jsxs(e.Fragment,{children:[e.jsx(je,{className:"w-4 h-4 text-green-600 dark:text-green-400"}),e.jsx("span",{className:"text-sm font-medium text-green-700 dark:text-green-300",children:a("settingsProxy.connectedLatency",{value:o.latencyMs})})]}):e.jsxs(e.Fragment,{children:[e.jsx(as,{className:"w-4 h-4 text-red-600 dark:text-red-400"}),e.jsx("span",{className:"text-sm font-medium text-red-700 dark:text-red-300",children:o.error||a("settingsProxy.connectionFailed")})]})})})]})]})}const be="ccs_debug_mode";function ps(s){return s.trim().replace(/\s+/g," ").toUpperCase()}function Ts(){const{t:s}=oe(),{config:t,loading:g,saving:o,error:u,success:f,testResult:p,testing:j,editedHost:y,setEditedHost:C,editedPort:S,setEditedPort:P,editedAuthToken:w,setEditedAuthToken:A,editedManagementKey:E,setEditedManagementKey:d,editedLocalPort:x,setEditedLocalPort:h,fetchConfig:a,saveConfig:c,testConnection:v}=ms(),{fetchRawConfig:l}=qe(),[_,Pe]=n.useState(()=>{try{return localStorage.getItem(be)==="true"}catch{return!1}}),[ve,Y]=n.useState(!1),[ke,ne]=n.useState(!0),[b,ie]=n.useState(!1),[Ne,L]=n.useState(!1),[le,I]=n.useState(""),K=n.useRef(!1),X=ps(le)===U,Ce=r=>{Pe(r);try{localStorage.setItem(be,String(r))}catch{}},G=n.useCallback(async()=>{try{ne(!0);const r=await fetch("/api/settings/auth/antigravity-risk");if(!r.ok)throw new Error(s("settingsProxy.failedLoadAgyMode"));const i=await r.json();Y(i.antigravityAckBypass===!0)}catch(r){T.error(r instanceof Error?r.message:s("settingsProxy.failedLoadAgyMode")),Y(!1)}finally{ne(!1)}},[s]),O=n.useCallback(async r=>{if(!(K.current||b||o))try{K.current=!0,ie(!0);const i=await fetch("/api/settings/auth/antigravity-risk",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({antigravityAckBypass:r})}),$=await i.json();if(!i.ok)throw new Error($.error||s("settingsProxy.failedUpdateAgyMode"));const Ve=$.antigravityAckBypass===!0,ue=await fetch("/api/settings/auth/antigravity-risk",{cache:"no-store"});if(!ue.ok)throw new Error(s("settingsProxy.failedVerifyAgyMode"));const pe=(await ue.json()).antigravityAckBypass===!0;if(pe!==r)throw new Error(s("settingsProxy.notPersistedAgyMode"));Y(pe&&Ve),L(!1),I(""),T.success(s(r?"settingsProxy.agyModeEnabled":"settingsProxy.agyModeDisabled")),await l()}catch(i){T.error(i instanceof Error?i.message:s("settingsProxy.failedUpdateAgyMode"))}finally{K.current=!1,ie(!1)}},[b,l,o,s]),Se=n.useCallback(r=>{if(!(K.current||b||o)){if(r){L(!0);return}L(!1),I(""),O(!1)}},[b,O,o]),we=n.useCallback(()=>{if(!X){T.error(s("settingsProxy.typePhraseToContinue",{value:U}));return}O(!0)},[X,O,s]),[k,q]=n.useState("original"),[Ae,Ee]=n.useState(!1),J=Je(),{data:Te}=Qe(),ce=Te?.running??!1,Be=Ze.map(he).join(", "),de=es.map(he).join(", "),Q=n.useCallback(async()=>{try{const r=await R.cliproxyServer.getBackend();q(r.backend)}catch(r){console.error("[Proxy] Failed to fetch backend:",r)}},[]),Z=n.useCallback(async()=>{try{const i=(await R.cliproxy.list()).variants.some($=>ss($));Ee(i)}catch(r){console.error("[Proxy] Failed to check variants:",r)}},[]),xe=r=>{const i=k;q(r),J.mutate({backend:r},{onError:()=>{q(i)}})};if(n.useEffect(()=>{if(_&&t){const r={...t,remote:{...t.remote,auth_token:t.remote.auth_token?"[REDACTED]":void 0,management_key:t.remote.management_key?"[REDACTED]":void 0}};console.log("[CCS Debug] Debug mode enabled - proxy config:",r)}},[_,t]),n.useEffect(()=>{a(),G(),l(),Q(),Z()},[a,G,l,Q,Z]),g||!t)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex items-center gap-3 text-muted-foreground",children:[e.jsx(ae,{className:"w-5 h-5 animate-spin"}),e.jsx("span",{children:s("settings.loading")})]})});const m=t.remote.enabled??!1,F=!m&&ce,N=t.remote,D=t.fallback,De=t.remote.host??"",Me=t.remote.port!==void 0?t.remote.port.toString():"",Re=t.remote.auth_token??"",_e=t.remote.management_key??"",Le=(t.local.port??W).toString(),ee=y??De,se=S??Me,te=w??Re,me=E??_e,ge=x??Le,Ie=()=>{const r=y??ee;r!==t.remote.host&&c({remote:{...N,host:r}}),C(null)},Ke=()=>{const r=(S??se).trim();if(r===""){t.remote.port!==void 0&&c({remote:{...N,port:void 0}}),P(null);return}const i=Number(r);if(!Number.isInteger(i)||i<1||i>65535){T.error(s("settingsProxy.invalidPortOrEmpty")),P(null);return}i!==t.remote.port&&c({remote:{...N,port:i}}),P(null)},Oe=()=>{const r=w??te;r!==t.remote.auth_token&&c({remote:{...N,auth_token:r}}),A(null)},Fe=()=>{const r=E??me;r!==t.remote.management_key&&c({remote:{...N,management_key:r||void 0}}),d(null)},$e=()=>{const r=(x??ge).trim(),i=r===""?W:Number(r);if(!Number.isInteger(i)||i<1||i>65535){T.error(s("settingsProxy.invalidLocalPort")),h(null);return}i!==t.local.port&&c({local:{...t.local,port:i}}),h(null)},He=()=>{v({host:ee,port:se,protocol:t.remote.protocol||"http",authToken:te})};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`absolute left-5 right-5 top-20 z-10 transition-all duration-200 ease-out ${u||f?"opacity-100 translate-y-0":"opacity-0 -translate-y-2 pointer-events-none"}`,children:[u&&e.jsxs(H,{variant:"destructive",className:"py-2 shadow-lg",children:[e.jsx(os,{className:"h-4 w-4"}),e.jsx(V,{children:u})]}),f&&e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-md border border-green-200 bg-green-50 text-green-700 shadow-lg dark:border-green-900/50 dark:bg-green-900/90 dark:text-green-300",children:[e.jsx(je,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"text-sm font-medium",children:s("settings.saved")})]})]}),e.jsx(ts,{className:"flex-1",children:e.jsxs("div",{className:"p-5 space-y-6",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:s("settingsProxy.description",{backend:s(k==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})}),!m&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.instanceStatus")}),e.jsx(xs,{})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.connectionMode")}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("button",{onClick:()=>c({remote:{...N,enabled:!1}}),disabled:o,className:`p-4 rounded-lg border-2 text-left transition-all ${m?"border-border hover:border-muted-foreground/50":"border-primary bg-primary/5"}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(ns,{className:`w-5 h-5 ${m?"text-muted-foreground":"text-primary"}`}),e.jsx("span",{className:"font-medium",children:s("settingsProxy.local")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.localDesc",{backend:s(k==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})})]}),e.jsxs("button",{onClick:()=>c({remote:{...N,enabled:!0}}),disabled:o,className:`p-4 rounded-lg border-2 text-left transition-all ${m?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(fe,{className:`w-5 h-5 ${m?"text-primary":"text-muted-foreground"}`}),e.jsx("span",{className:"font-medium",children:s("settingsProxy.remote")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.remoteDesc",{backend:s(k==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(is,{className:"w-4 h-4"}),s("settingsProxy.backendBinary")]}),!m&&ce&&e.jsxs(H,{className:"py-2 border-amber-200 bg-amber-50 dark:border-amber-900/50 dark:bg-amber-900/20 [&>svg]:top-2.5",children:[e.jsx(re,{className:"h-4 w-4 text-amber-600"}),e.jsx(V,{className:"text-amber-700 dark:text-amber-400",children:s("settingsProxy.stopProxyToSwitch")})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("button",{onClick:()=>xe("plus"),disabled:J.isPending||F,className:`p-4 rounded-lg border-2 text-left transition-all ${k==="plus"?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"} ${F?"opacity-60 cursor-not-allowed":""}`,children:[e.jsx("div",{className:"flex items-center gap-3 mb-2",children:e.jsx("span",{className:"font-medium",children:s("settingsProxy.backendPlusApi")})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.plusDesc")}),e.jsx("p",{className:"mt-2 text-[11px] leading-relaxed text-muted-foreground",children:de})]}),e.jsxs("button",{onClick:()=>xe("original"),disabled:J.isPending||F,className:`p-4 rounded-lg border-2 text-left transition-all ${k==="original"?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"} ${F?"opacity-60 cursor-not-allowed":""}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("span",{className:"font-medium",children:s("settingsProxy.backendApi")}),e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-400",children:s("settingsProxy.default")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.originalDesc")}),e.jsx("p",{className:"mt-2 text-[11px] leading-relaxed text-muted-foreground",children:Be})]})]}),k==="plus"&&e.jsxs(H,{className:"py-2 border-amber-200 bg-amber-50 dark:border-amber-900/50 dark:bg-amber-900/20 [&>svg]:top-2.5",children:[e.jsx(re,{className:"h-4 w-4 text-amber-600"}),e.jsx(V,{className:"text-amber-700 dark:text-amber-400",children:s("settingsProxy.plusFallbackNotice")})]}),k==="original"&&Ae&&e.jsxs(H,{variant:"destructive",className:"py-2",children:[e.jsx(re,{className:"h-4 w-4"}),e.jsx(V,{children:s("settingsProxy.variantsIncompatible",{providers:de})})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(ls,{className:"w-4 h-4 text-amber-700 dark:text-amber-300"}),s("settingsProxy.safety")]}),e.jsxs("div",{className:"space-y-3 rounded-lg border border-amber-400/35 bg-amber-50/70 p-4 dark:border-amber-800/60 dark:bg-amber-950/25",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.agyModeTitle")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.agyModeDesc")})]}),e.jsx(M,{"aria-labelledby":"agy-power-user-mode-label","aria-describedby":"agy-power-user-mode-description",checked:ve,disabled:ke||b||o,onCheckedChange:Se})]}),e.jsx("p",{id:"agy-power-user-mode-description",className:"text-xs text-amber-800/90 dark:text-amber-200/90",children:s("settingsProxy.agyWarning")}),Ne&&e.jsxs("div",{className:"space-y-3 rounded-lg border border-rose-500/40 bg-rose-500/[0.08] p-3.5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"text-xs font-semibold tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.finalConfirm")}),e.jsx("p",{className:"text-xs leading-relaxed text-rose-800/95 dark:text-rose-200/90",children:s("settingsProxy.finalConfirmDesc")})]}),e.jsxs("div",{className:"grid gap-2 md:grid-cols-2",children:[e.jsxs("div",{className:"rounded-md border border-rose-400/30 bg-rose-500/10 p-2.5",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.step1")}),e.jsxs("a",{href:"https://github.com/kaitranntt/ccs/issues/509",target:"_blank",rel:"noreferrer",className:"mt-1 inline-flex items-center gap-1.5 text-xs font-medium text-rose-800 underline decoration-rose-500/60 underline-offset-2 transition-colors hover:text-rose-700 dark:text-rose-200",children:[s("settingsProxy.readIssue"),e.jsx(cs,{className:"h-3.5 w-3.5"})]})]}),e.jsxs("div",{className:"rounded-md border border-rose-400/30 bg-rose-500/10 p-2.5",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.step2")}),e.jsxs("p",{className:"mt-1 text-xs text-rose-800/95 dark:text-rose-200/90",children:[s("settingsProxy.typePrefix")," ",e.jsx("code",{className:"rounded bg-background/80 px-1 py-0.5 font-mono",children:U})," ",s("settingsProxy.typeSuffix")]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(B,{value:le,onChange:r=>I(r.target.value),placeholder:U,disabled:b||o,className:"font-mono text-xs","aria-label":s("settingsProxy.typePhraseAria")}),e.jsx("p",{className:"text-[11px] text-rose-800/90 dark:text-rose-200/80",children:s("settingsProxy.exactPhrase")})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(z,{variant:"outline",size:"sm",onClick:()=>{L(!1),I("")},disabled:b||o,children:s("settingsBackups.cancel")}),e.jsx(z,{size:"sm",variant:"destructive",onClick:we,disabled:!X||b||o,children:s("settingsProxy.enableAgyMode")})]})]}),e.jsx("span",{id:"agy-power-user-mode-label",className:"sr-only",children:s("settingsProxy.toggleAgyMode")})]})]}),m&&e.jsx(us,{config:t,saving:o,testing:j,testResult:p,displayHost:ee,displayPort:se,displayAuthToken:te,displayManagementKey:me,setEditedHost:C,setEditedPort:P,setEditedAuthToken:A,setEditedManagementKey:d,onSaveHost:Ie,onSavePort:Ke,onSaveAuthToken:Oe,onSaveManagementKey:Fe,onSaveConfig:c,onTestConnection:He}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.fallbackSettings")}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.enableFallback")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.enableFallbackDesc")})]}),e.jsx(M,{checked:D.enabled??!0,onCheckedChange:r=>c({fallback:{...D,enabled:r}}),disabled:o||!m})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.autoStartLocal")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.autoStartLocalDesc")})]}),e.jsx(M,{checked:D.auto_start??!1,onCheckedChange:r=>c({fallback:{...D,auto_start:r}}),disabled:o||!m||!D.enabled})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(ds,{className:"w-4 h-4"}),s("settingsProxy.advanced")]}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.debugMode")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.debugModeDesc")})]}),e.jsx(M,{checked:_,onCheckedChange:Ce,disabled:o})]}),_&&e.jsx("p",{className:"text-xs text-amber-600 dark:text-amber-400 pl-0.5",children:s("settingsProxy.debugModeEnabled")})]})]}),!m&&e.jsx(gs,{config:t,saving:o,displayLocalPort:ge,setEditedLocalPort:h,onSaveLocalPort:$e,onSaveConfig:c})]})}),e.jsx("div",{className:"p-4 border-t bg-background",children:e.jsxs(z,{variant:"outline",size:"sm",onClick:()=>{a(),G(),l(),Q(),Z()},disabled:g||o||b,className:"w-full",children:[e.jsx(ae,{className:`w-4 h-4 mr-2 ${g?"animate-spin":""}`}),s("settings.refresh")]})})]})}export{Ts as default};
1
+ import{j as e}from"./radix-ui-Zb8sVEtn.js";import{r as n}from"./react-vendor-CNOkPC89.js";import{bt as Ue,bu as ze,Y as R,a as oe,I as B,aI as M,r as We,s as Ye,t as Xe,v as Ge,w as ye,d as z,bv as qe,bw as Je,bx as Qe,by as Ze,b6 as he,bz as es,bA as ss,bi as H,bk as V,n as ts}from"./index-ubH9RpKo.js";import{C as W}from"./default-ports-1QQSffYX.js";import{bb as fe,R as ae,h as rs,x as je,W as as,w as os,aA as ns,bc as is,T as re,aH as ls,p as cs,bd as ds}from"./icons-DyorC3Xk.js";import{P as xs}from"./proxy-status-widget-EX_Raok7.js";import{R as U}from"./antigravity-responsibility-constants-Bvh4Ybz0.js";import{t as T}from"./notifications-B2HqRBj7.js";import"./tanstack-CrmUhA7Z.js";import"./utils-CzKF5WmX.js";import"./form-utils-Bcoyqxpq.js";import"./code-highlight-BRUf_pqB.js";import"./alert-dialog-BDhZ9T12.js";function ms(){const{state:s}=Ue(),t=ze(),[g,o]=n.useState(null),[u,f]=n.useState(null),[p,j]=n.useState(null),[y,C]=n.useState(null),[S,P]=n.useState(null),w=n.useCallback(async()=>{try{t.setProxyLoading(!0),t.setProxyError(null);const d=await R.cliproxyServer.get();t.setProxyConfig(d)}catch(d){t.setProxyError(d.message)}finally{t.setProxyLoading(!1)}},[t]),A=n.useCallback(async d=>{const x=s.proxyConfig;if(!x)return;const h={remote:{...x.remote,...d.remote},fallback:{...x.fallback,...d.fallback},local:{...x.local,...d.local}};t.setProxyConfig(h),t.setProxyTestResult(null);try{t.setProxySaving(!0),t.setProxyError(null);const a=await R.cliproxyServer.update(d);t.setProxyConfig(a),t.setProxySuccess(!0),setTimeout(()=>t.setProxySuccess(!1),1500)}catch(a){t.setProxyConfig(x),t.setProxyError(a.message)}finally{t.setProxySaving(!1)}},[s.proxyConfig,t]),E=n.useCallback(async d=>{const{host:x,port:h,protocol:a,authToken:c}=d;if(!x){t.setProxyError("Host is required");return}try{t.setProxyTesting(!0),t.setProxyError(null),t.setProxyTestResult(null);const v=h?parseInt(h,10):void 0,l=await R.cliproxyServer.test({host:x,port:v||void 0,protocol:a,authToken:c||void 0});t.setProxyTestResult(l)}catch(v){t.setProxyError(v.message)}finally{t.setProxyTesting(!1)}},[t]);return{config:s.proxyConfig,loading:s.proxyLoading,saving:s.proxySaving,error:s.proxyError,success:s.proxySuccess,testResult:s.proxyTestResult,testing:s.proxyTesting,editedHost:g,setEditedHost:o,editedPort:u,setEditedPort:f,editedAuthToken:p,setEditedAuthToken:j,editedManagementKey:y,setEditedManagementKey:C,editedLocalPort:S,setEditedLocalPort:P,fetchConfig:w,saveConfig:A,testConnection:E}}function gs({config:s,saving:t,displayLocalPort:g,setEditedLocalPort:o,onSaveLocalPort:u,onSaveConfig:f}){const{t:p}=oe(),j=s.local;return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:p("settingsProxy.localProxy")}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:p("settingsProxy.port")}),e.jsx(B,{type:"text",inputMode:"numeric",value:g,onChange:y=>o(y.target.value.replace(/\D/g,"")),onBlur:u,placeholder:`${W}`,className:"font-mono max-w-32",disabled:t})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:p("settingsProxy.autoStart")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:p("settingsProxy.localAutoStartDesc")})]}),e.jsx(M,{checked:j.auto_start??!0,onCheckedChange:y=>f({local:{...j,auto_start:y}}),disabled:t})]})]})]})}function us({config:s,saving:t,testing:g,testResult:o,displayHost:u,displayPort:f,displayAuthToken:p,displayManagementKey:j,setEditedHost:y,setEditedPort:C,setEditedAuthToken:S,setEditedManagementKey:P,onSaveHost:w,onSavePort:A,onSaveAuthToken:E,onSaveManagementKey:d,onSaveConfig:x,onTestConnection:h}){const{t:a}=oe(),c=s.remote,v=l=>l==="https"?443:W;return e.jsxs("div",{className:"space-y-4 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("h4",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(fe,{className:"w-4 h-4"}),a("settingsProxy.remoteConfigTitle")]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.host")}),e.jsx(B,{value:u,onChange:l=>y(l.target.value),onBlur:w,placeholder:a("settingsProxy.hostPlaceholder"),className:"font-mono",disabled:t})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("label",{className:"text-sm text-muted-foreground",children:[a("settingsProxy.port")," ",e.jsxs("span",{className:"text-xs opacity-70",children:["(",a("settingsProxy.defaultPort",{value:v(s.remote.protocol||"http")}),")"]})]}),e.jsx(B,{type:"text",inputMode:"numeric",value:f,onChange:l=>C(l.target.value.replace(/\D/g,"")),onBlur:A,placeholder:a("settingsProxy.portPlaceholder",{value:v(s.remote.protocol||"http")}),className:"font-mono",disabled:t})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.protocol")}),e.jsxs(We,{value:s.remote.protocol||"http",onValueChange:l=>x({remote:{...c,protocol:l}}),disabled:t,children:[e.jsx(Ye,{children:e.jsx(Xe,{})}),e.jsxs(Ge,{children:[e.jsx(ye,{value:"http",children:a("settingsProxy.http")}),e.jsx(ye,{value:"https",children:a("settingsProxy.https")})]})]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.apiKeyOptional")}),e.jsx(B,{type:"password",value:p,onChange:l=>S(l.target.value),onBlur:E,placeholder:a("settingsProxy.apiKeyPlaceholder"),className:"font-mono",disabled:t}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a("settingsProxy.apiKeyDesc")})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.managementKeyOptional")}),e.jsx(B,{type:"password",value:j,onChange:l=>P(l.target.value),onBlur:d,placeholder:a("settingsProxy.managementKeyPlaceholder"),className:"font-mono",disabled:t}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a("settingsProxy.managementKeyDesc")})]}),e.jsxs("div",{className:"space-y-3 pt-2",children:[e.jsx(z,{onClick:h,disabled:g||!u,variant:"outline",className:"w-full",children:g?e.jsxs(e.Fragment,{children:[e.jsx(ae,{className:"w-4 h-4 mr-2 animate-spin"}),a("settingsProxy.testing")]}):e.jsxs(e.Fragment,{children:[e.jsx(rs,{className:"w-4 h-4 mr-2"}),a("settingsProxy.testConnection")]})}),o&&e.jsx("div",{className:`p-3 rounded-md ${o.reachable?"bg-green-50 border border-green-200 dark:bg-green-900/20 dark:border-green-900/50":"bg-red-50 border border-red-200 dark:bg-red-900/20 dark:border-red-900/50"}`,children:e.jsx("div",{className:"flex items-center gap-2",children:o.reachable?e.jsxs(e.Fragment,{children:[e.jsx(je,{className:"w-4 h-4 text-green-600 dark:text-green-400"}),e.jsx("span",{className:"text-sm font-medium text-green-700 dark:text-green-300",children:a("settingsProxy.connectedLatency",{value:o.latencyMs})})]}):e.jsxs(e.Fragment,{children:[e.jsx(as,{className:"w-4 h-4 text-red-600 dark:text-red-400"}),e.jsx("span",{className:"text-sm font-medium text-red-700 dark:text-red-300",children:o.error||a("settingsProxy.connectionFailed")})]})})})]})]})}const be="ccs_debug_mode";function ps(s){return s.trim().replace(/\s+/g," ").toUpperCase()}function Ts(){const{t:s}=oe(),{config:t,loading:g,saving:o,error:u,success:f,testResult:p,testing:j,editedHost:y,setEditedHost:C,editedPort:S,setEditedPort:P,editedAuthToken:w,setEditedAuthToken:A,editedManagementKey:E,setEditedManagementKey:d,editedLocalPort:x,setEditedLocalPort:h,fetchConfig:a,saveConfig:c,testConnection:v}=ms(),{fetchRawConfig:l}=qe(),[_,Pe]=n.useState(()=>{try{return localStorage.getItem(be)==="true"}catch{return!1}}),[ve,Y]=n.useState(!1),[ke,ne]=n.useState(!0),[b,ie]=n.useState(!1),[Ne,L]=n.useState(!1),[le,I]=n.useState(""),K=n.useRef(!1),X=ps(le)===U,Ce=r=>{Pe(r);try{localStorage.setItem(be,String(r))}catch{}},G=n.useCallback(async()=>{try{ne(!0);const r=await fetch("/api/settings/auth/antigravity-risk");if(!r.ok)throw new Error(s("settingsProxy.failedLoadAgyMode"));const i=await r.json();Y(i.antigravityAckBypass===!0)}catch(r){T.error(r instanceof Error?r.message:s("settingsProxy.failedLoadAgyMode")),Y(!1)}finally{ne(!1)}},[s]),O=n.useCallback(async r=>{if(!(K.current||b||o))try{K.current=!0,ie(!0);const i=await fetch("/api/settings/auth/antigravity-risk",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({antigravityAckBypass:r})}),$=await i.json();if(!i.ok)throw new Error($.error||s("settingsProxy.failedUpdateAgyMode"));const Ve=$.antigravityAckBypass===!0,ue=await fetch("/api/settings/auth/antigravity-risk",{cache:"no-store"});if(!ue.ok)throw new Error(s("settingsProxy.failedVerifyAgyMode"));const pe=(await ue.json()).antigravityAckBypass===!0;if(pe!==r)throw new Error(s("settingsProxy.notPersistedAgyMode"));Y(pe&&Ve),L(!1),I(""),T.success(s(r?"settingsProxy.agyModeEnabled":"settingsProxy.agyModeDisabled")),await l()}catch(i){T.error(i instanceof Error?i.message:s("settingsProxy.failedUpdateAgyMode"))}finally{K.current=!1,ie(!1)}},[b,l,o,s]),Se=n.useCallback(r=>{if(!(K.current||b||o)){if(r){L(!0);return}L(!1),I(""),O(!1)}},[b,O,o]),we=n.useCallback(()=>{if(!X){T.error(s("settingsProxy.typePhraseToContinue",{value:U}));return}O(!0)},[X,O,s]),[k,q]=n.useState("original"),[Ae,Ee]=n.useState(!1),J=Je(),{data:Te}=Qe(),ce=Te?.running??!1,Be=Ze.map(he).join(", "),de=es.map(he).join(", "),Q=n.useCallback(async()=>{try{const r=await R.cliproxyServer.getBackend();q(r.backend)}catch(r){console.error("[Proxy] Failed to fetch backend:",r)}},[]),Z=n.useCallback(async()=>{try{const i=(await R.cliproxy.list()).variants.some($=>ss($));Ee(i)}catch(r){console.error("[Proxy] Failed to check variants:",r)}},[]),xe=r=>{const i=k;q(r),J.mutate({backend:r},{onError:()=>{q(i)}})};if(n.useEffect(()=>{if(_&&t){const r={...t,remote:{...t.remote,auth_token:t.remote.auth_token?"[REDACTED]":void 0,management_key:t.remote.management_key?"[REDACTED]":void 0}};console.log("[CCS Debug] Debug mode enabled - proxy config:",r)}},[_,t]),n.useEffect(()=>{a(),G(),l(),Q(),Z()},[a,G,l,Q,Z]),g||!t)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex items-center gap-3 text-muted-foreground",children:[e.jsx(ae,{className:"w-5 h-5 animate-spin"}),e.jsx("span",{children:s("settings.loading")})]})});const m=t.remote.enabled??!1,F=!m&&ce,N=t.remote,D=t.fallback,De=t.remote.host??"",Me=t.remote.port!==void 0?t.remote.port.toString():"",Re=t.remote.auth_token??"",_e=t.remote.management_key??"",Le=(t.local.port??W).toString(),ee=y??De,se=S??Me,te=w??Re,me=E??_e,ge=x??Le,Ie=()=>{const r=y??ee;r!==t.remote.host&&c({remote:{...N,host:r}}),C(null)},Ke=()=>{const r=(S??se).trim();if(r===""){t.remote.port!==void 0&&c({remote:{...N,port:void 0}}),P(null);return}const i=Number(r);if(!Number.isInteger(i)||i<1||i>65535){T.error(s("settingsProxy.invalidPortOrEmpty")),P(null);return}i!==t.remote.port&&c({remote:{...N,port:i}}),P(null)},Oe=()=>{const r=w??te;r!==t.remote.auth_token&&c({remote:{...N,auth_token:r}}),A(null)},Fe=()=>{const r=E??me;r!==t.remote.management_key&&c({remote:{...N,management_key:r||void 0}}),d(null)},$e=()=>{const r=(x??ge).trim(),i=r===""?W:Number(r);if(!Number.isInteger(i)||i<1||i>65535){T.error(s("settingsProxy.invalidLocalPort")),h(null);return}i!==t.local.port&&c({local:{...t.local,port:i}}),h(null)},He=()=>{v({host:ee,port:se,protocol:t.remote.protocol||"http",authToken:te})};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`absolute left-5 right-5 top-20 z-10 transition-all duration-200 ease-out ${u||f?"opacity-100 translate-y-0":"opacity-0 -translate-y-2 pointer-events-none"}`,children:[u&&e.jsxs(H,{variant:"destructive",className:"py-2 shadow-lg",children:[e.jsx(os,{className:"h-4 w-4"}),e.jsx(V,{children:u})]}),f&&e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-md border border-green-200 bg-green-50 text-green-700 shadow-lg dark:border-green-900/50 dark:bg-green-900/90 dark:text-green-300",children:[e.jsx(je,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"text-sm font-medium",children:s("settings.saved")})]})]}),e.jsx(ts,{className:"flex-1",children:e.jsxs("div",{className:"p-5 space-y-6",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:s("settingsProxy.description",{backend:s(k==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})}),!m&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.instanceStatus")}),e.jsx(xs,{})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.connectionMode")}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("button",{onClick:()=>c({remote:{...N,enabled:!1}}),disabled:o,className:`p-4 rounded-lg border-2 text-left transition-all ${m?"border-border hover:border-muted-foreground/50":"border-primary bg-primary/5"}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(ns,{className:`w-5 h-5 ${m?"text-muted-foreground":"text-primary"}`}),e.jsx("span",{className:"font-medium",children:s("settingsProxy.local")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.localDesc",{backend:s(k==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})})]}),e.jsxs("button",{onClick:()=>c({remote:{...N,enabled:!0}}),disabled:o,className:`p-4 rounded-lg border-2 text-left transition-all ${m?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(fe,{className:`w-5 h-5 ${m?"text-primary":"text-muted-foreground"}`}),e.jsx("span",{className:"font-medium",children:s("settingsProxy.remote")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.remoteDesc",{backend:s(k==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(is,{className:"w-4 h-4"}),s("settingsProxy.backendBinary")]}),!m&&ce&&e.jsxs(H,{className:"py-2 border-amber-200 bg-amber-50 dark:border-amber-900/50 dark:bg-amber-900/20 [&>svg]:top-2.5",children:[e.jsx(re,{className:"h-4 w-4 text-amber-600"}),e.jsx(V,{className:"text-amber-700 dark:text-amber-400",children:s("settingsProxy.stopProxyToSwitch")})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("button",{onClick:()=>xe("plus"),disabled:J.isPending||F,className:`p-4 rounded-lg border-2 text-left transition-all ${k==="plus"?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"} ${F?"opacity-60 cursor-not-allowed":""}`,children:[e.jsx("div",{className:"flex items-center gap-3 mb-2",children:e.jsx("span",{className:"font-medium",children:s("settingsProxy.backendPlusApi")})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.plusDesc")}),e.jsx("p",{className:"mt-2 text-[11px] leading-relaxed text-muted-foreground",children:de})]}),e.jsxs("button",{onClick:()=>xe("original"),disabled:J.isPending||F,className:`p-4 rounded-lg border-2 text-left transition-all ${k==="original"?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"} ${F?"opacity-60 cursor-not-allowed":""}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("span",{className:"font-medium",children:s("settingsProxy.backendApi")}),e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-400",children:s("settingsProxy.default")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.originalDesc")}),e.jsx("p",{className:"mt-2 text-[11px] leading-relaxed text-muted-foreground",children:Be})]})]}),k==="plus"&&e.jsxs(H,{className:"py-2 border-amber-200 bg-amber-50 dark:border-amber-900/50 dark:bg-amber-900/20 [&>svg]:top-2.5",children:[e.jsx(re,{className:"h-4 w-4 text-amber-600"}),e.jsx(V,{className:"text-amber-700 dark:text-amber-400",children:s("settingsProxy.plusFallbackNotice")})]}),k==="original"&&Ae&&e.jsxs(H,{variant:"destructive",className:"py-2",children:[e.jsx(re,{className:"h-4 w-4"}),e.jsx(V,{children:s("settingsProxy.variantsIncompatible",{providers:de})})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(ls,{className:"w-4 h-4 text-amber-700 dark:text-amber-300"}),s("settingsProxy.safety")]}),e.jsxs("div",{className:"space-y-3 rounded-lg border border-amber-400/35 bg-amber-50/70 p-4 dark:border-amber-800/60 dark:bg-amber-950/25",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.agyModeTitle")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.agyModeDesc")})]}),e.jsx(M,{"aria-labelledby":"agy-power-user-mode-label","aria-describedby":"agy-power-user-mode-description",checked:ve,disabled:ke||b||o,onCheckedChange:Se})]}),e.jsx("p",{id:"agy-power-user-mode-description",className:"text-xs text-amber-800/90 dark:text-amber-200/90",children:s("settingsProxy.agyWarning")}),Ne&&e.jsxs("div",{className:"space-y-3 rounded-lg border border-rose-500/40 bg-rose-500/[0.08] p-3.5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"text-xs font-semibold tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.finalConfirm")}),e.jsx("p",{className:"text-xs leading-relaxed text-rose-800/95 dark:text-rose-200/90",children:s("settingsProxy.finalConfirmDesc")})]}),e.jsxs("div",{className:"grid gap-2 md:grid-cols-2",children:[e.jsxs("div",{className:"rounded-md border border-rose-400/30 bg-rose-500/10 p-2.5",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.step1")}),e.jsxs("a",{href:"https://github.com/kaitranntt/ccs/issues/509",target:"_blank",rel:"noreferrer",className:"mt-1 inline-flex items-center gap-1.5 text-xs font-medium text-rose-800 underline decoration-rose-500/60 underline-offset-2 transition-colors hover:text-rose-700 dark:text-rose-200",children:[s("settingsProxy.readIssue"),e.jsx(cs,{className:"h-3.5 w-3.5"})]})]}),e.jsxs("div",{className:"rounded-md border border-rose-400/30 bg-rose-500/10 p-2.5",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.step2")}),e.jsxs("p",{className:"mt-1 text-xs text-rose-800/95 dark:text-rose-200/90",children:[s("settingsProxy.typePrefix")," ",e.jsx("code",{className:"rounded bg-background/80 px-1 py-0.5 font-mono",children:U})," ",s("settingsProxy.typeSuffix")]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(B,{value:le,onChange:r=>I(r.target.value),placeholder:U,disabled:b||o,className:"font-mono text-xs","aria-label":s("settingsProxy.typePhraseAria")}),e.jsx("p",{className:"text-[11px] text-rose-800/90 dark:text-rose-200/80",children:s("settingsProxy.exactPhrase")})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(z,{variant:"outline",size:"sm",onClick:()=>{L(!1),I("")},disabled:b||o,children:s("settingsBackups.cancel")}),e.jsx(z,{size:"sm",variant:"destructive",onClick:we,disabled:!X||b||o,children:s("settingsProxy.enableAgyMode")})]})]}),e.jsx("span",{id:"agy-power-user-mode-label",className:"sr-only",children:s("settingsProxy.toggleAgyMode")})]})]}),m&&e.jsx(us,{config:t,saving:o,testing:j,testResult:p,displayHost:ee,displayPort:se,displayAuthToken:te,displayManagementKey:me,setEditedHost:C,setEditedPort:P,setEditedAuthToken:A,setEditedManagementKey:d,onSaveHost:Ie,onSavePort:Ke,onSaveAuthToken:Oe,onSaveManagementKey:Fe,onSaveConfig:c,onTestConnection:He}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.fallbackSettings")}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.enableFallback")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.enableFallbackDesc")})]}),e.jsx(M,{checked:D.enabled??!0,onCheckedChange:r=>c({fallback:{...D,enabled:r}}),disabled:o||!m})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.autoStartLocal")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.autoStartLocalDesc")})]}),e.jsx(M,{checked:D.auto_start??!1,onCheckedChange:r=>c({fallback:{...D,auto_start:r}}),disabled:o||!m||!D.enabled})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(ds,{className:"w-4 h-4"}),s("settingsProxy.advanced")]}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.debugMode")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.debugModeDesc")})]}),e.jsx(M,{checked:_,onCheckedChange:Ce,disabled:o})]}),_&&e.jsx("p",{className:"text-xs text-amber-600 dark:text-amber-400 pl-0.5",children:s("settingsProxy.debugModeEnabled")})]})]}),!m&&e.jsx(gs,{config:t,saving:o,displayLocalPort:ge,setEditedLocalPort:h,onSaveLocalPort:$e,onSaveConfig:c})]})}),e.jsx("div",{className:"p-4 border-t bg-background",children:e.jsxs(z,{variant:"outline",size:"sm",onClick:()=>{a(),G(),l(),Q(),Z()},disabled:g||o||b,className:"w-full",children:[e.jsx(ae,{className:`w-4 h-4 mr-2 ${g?"animate-spin":""}`}),s("settings.refresh")]})})]})}export{Ts as default};