@georgedong32/ccs 7.67.1 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1890) hide show
  1. package/.claude/commands/opsx/apply.md +152 -0
  2. package/.claude/commands/opsx/archive.md +157 -0
  3. package/.claude/commands/opsx/continue.md +114 -0
  4. package/.claude/commands/opsx/explore.md +173 -0
  5. package/.claude/commands/opsx/ff.md +97 -0
  6. package/.claude/commands/opsx/new.md +69 -0
  7. package/.claude/commands/opsx/propose.md +106 -0
  8. package/.claude/commands/opsx/sync.md +134 -0
  9. package/.claude/commands/opsx/verify.md +164 -0
  10. package/.claude/settings.local.json +47 -1
  11. package/README.md +49 -4
  12. package/config/base-claude.settings.json +1 -1
  13. package/config/base-codebuddy.settings.json +10 -0
  14. package/config/base-codex.settings.json +4 -4
  15. package/config/base-cursor.settings.json +10 -0
  16. package/config/base-gitlab.settings.json +10 -0
  17. package/config/base-kilo.settings.json +10 -0
  18. package/dist/api/services/cliproxy-profile-bridge.d.ts.map +1 -1
  19. package/dist/api/services/cliproxy-profile-bridge.js +9 -10
  20. package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
  21. package/dist/api/services/index.d.ts +1 -0
  22. package/dist/api/services/index.d.ts.map +1 -1
  23. package/dist/api/services/index.js +3 -1
  24. package/dist/api/services/index.js.map +1 -1
  25. package/dist/api/services/local-runtime-readiness.d.ts +14 -0
  26. package/dist/api/services/local-runtime-readiness.d.ts.map +1 -0
  27. package/dist/api/services/local-runtime-readiness.js +89 -0
  28. package/dist/api/services/local-runtime-readiness.js.map +1 -0
  29. package/dist/api/services/openrouter-catalog.js +2 -2
  30. package/dist/api/services/openrouter-catalog.js.map +1 -1
  31. package/dist/api/services/profile-lifecycle-service.d.ts.map +1 -1
  32. package/dist/api/services/profile-lifecycle-service.js +6 -6
  33. package/dist/api/services/profile-lifecycle-service.js.map +1 -1
  34. package/dist/api/services/profile-lifecycle-validation.js +1 -1
  35. package/dist/api/services/profile-lifecycle-validation.js.map +1 -1
  36. package/dist/api/services/profile-reader.d.ts.map +1 -1
  37. package/dist/api/services/profile-reader.js +14 -15
  38. package/dist/api/services/profile-reader.js.map +1 -1
  39. package/dist/api/services/profile-writer.d.ts +1 -1
  40. package/dist/api/services/profile-writer.d.ts.map +1 -1
  41. package/dist/api/services/profile-writer.js +25 -19
  42. package/dist/api/services/profile-writer.js.map +1 -1
  43. package/dist/auth/account-profile-diagnostics.d.ts +21 -0
  44. package/dist/auth/account-profile-diagnostics.d.ts.map +1 -0
  45. package/dist/auth/account-profile-diagnostics.js +130 -0
  46. package/dist/auth/account-profile-diagnostics.js.map +1 -0
  47. package/dist/auth/auth-commands.d.ts +2 -1
  48. package/dist/auth/auth-commands.d.ts.map +1 -1
  49. package/dist/auth/auth-commands.js +30 -12
  50. package/dist/auth/auth-commands.js.map +1 -1
  51. package/dist/auth/commands/backup-command.d.ts.map +1 -1
  52. package/dist/auth/commands/backup-command.js +7 -2
  53. package/dist/auth/commands/backup-command.js.map +1 -1
  54. package/dist/auth/commands/create-command-env.d.ts +1 -0
  55. package/dist/auth/commands/create-command-env.d.ts.map +1 -1
  56. package/dist/auth/commands/create-command.d.ts.map +1 -1
  57. package/dist/auth/commands/create-command.js +23 -19
  58. package/dist/auth/commands/create-command.js.map +1 -1
  59. package/dist/auth/commands/default-command.d.ts +1 -1
  60. package/dist/auth/commands/default-command.d.ts.map +1 -1
  61. package/dist/auth/commands/default-command.js +13 -5
  62. package/dist/auth/commands/default-command.js.map +1 -1
  63. package/dist/auth/commands/index.d.ts +1 -0
  64. package/dist/auth/commands/index.d.ts.map +1 -1
  65. package/dist/auth/commands/index.js +3 -1
  66. package/dist/auth/commands/index.js.map +1 -1
  67. package/dist/auth/commands/list-command.d.ts.map +1 -1
  68. package/dist/auth/commands/list-command.js +16 -3
  69. package/dist/auth/commands/list-command.js.map +1 -1
  70. package/dist/auth/commands/remove-command.d.ts.map +1 -1
  71. package/dist/auth/commands/remove-command.js +7 -3
  72. package/dist/auth/commands/remove-command.js.map +1 -1
  73. package/dist/auth/commands/resources-command.d.ts +3 -0
  74. package/dist/auth/commands/resources-command.d.ts.map +1 -0
  75. package/dist/auth/commands/resources-command.js +115 -0
  76. package/dist/auth/commands/resources-command.js.map +1 -0
  77. package/dist/auth/commands/show-command.d.ts.map +1 -1
  78. package/dist/auth/commands/show-command.js +54 -3
  79. package/dist/auth/commands/show-command.js.map +1 -1
  80. package/dist/auth/commands/types.d.ts +31 -1
  81. package/dist/auth/commands/types.d.ts.map +1 -1
  82. package/dist/auth/commands/types.js +41 -2
  83. package/dist/auth/commands/types.js.map +1 -1
  84. package/dist/auth/profile-continuity-inheritance.d.ts.map +1 -1
  85. package/dist/auth/profile-continuity-inheritance.js +6 -5
  86. package/dist/auth/profile-continuity-inheritance.js.map +1 -1
  87. package/dist/auth/profile-detector.d.ts +2 -3
  88. package/dist/auth/profile-detector.d.ts.map +1 -1
  89. package/dist/auth/profile-detector.js +25 -25
  90. package/dist/auth/profile-detector.js.map +1 -1
  91. package/dist/auth/profile-registry.d.ts +2 -0
  92. package/dist/auth/profile-registry.d.ts.map +1 -1
  93. package/dist/auth/profile-registry.js +29 -17
  94. package/dist/auth/profile-registry.js.map +1 -1
  95. package/dist/auth/resume-lane-diagnostics.d.ts.map +1 -1
  96. package/dist/auth/resume-lane-diagnostics.js +2 -2
  97. package/dist/auth/resume-lane-diagnostics.js.map +1 -1
  98. package/dist/auth/shared-resource-policy.d.ts +20 -0
  99. package/dist/auth/shared-resource-policy.d.ts.map +1 -0
  100. package/dist/auth/shared-resource-policy.js +69 -0
  101. package/dist/auth/shared-resource-policy.js.map +1 -0
  102. package/dist/bin/ccsxp-runtime.d.ts +9 -0
  103. package/dist/bin/ccsxp-runtime.d.ts.map +1 -1
  104. package/dist/bin/ccsxp-runtime.js +62 -3
  105. package/dist/bin/ccsxp-runtime.js.map +1 -1
  106. package/dist/ccs.js +65 -1024
  107. package/dist/ccs.js.map +1 -1
  108. package/dist/channels/official-channels-ids.d.ts +21 -0
  109. package/dist/channels/official-channels-ids.d.ts.map +1 -0
  110. package/dist/channels/official-channels-ids.js +46 -0
  111. package/dist/channels/official-channels-ids.js.map +1 -0
  112. package/dist/channels/official-channels-runtime.d.ts +3 -5
  113. package/dist/channels/official-channels-runtime.d.ts.map +1 -1
  114. package/dist/channels/official-channels-runtime.js +25 -29
  115. package/dist/channels/official-channels-runtime.js.map +1 -1
  116. package/dist/channels/official-channels-store.d.ts +1 -0
  117. package/dist/channels/official-channels-store.d.ts.map +1 -1
  118. package/dist/channels/official-channels-store.js +5 -6
  119. package/dist/channels/official-channels-store.js.map +1 -1
  120. package/dist/cliproxy/accounts/account-manager.d.ts +16 -0
  121. package/dist/cliproxy/accounts/account-manager.d.ts.map +1 -0
  122. package/dist/cliproxy/accounts/account-manager.js +51 -0
  123. package/dist/cliproxy/accounts/account-manager.js.map +1 -0
  124. package/dist/cliproxy/accounts/account-safety.d.ts +103 -0
  125. package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -0
  126. package/dist/cliproxy/accounts/account-safety.js +614 -0
  127. package/dist/cliproxy/accounts/account-safety.js.map +1 -0
  128. package/dist/cliproxy/accounts/account-stats-key.d.ts.map +1 -0
  129. package/dist/cliproxy/accounts/account-stats-key.js.map +1 -0
  130. package/dist/cliproxy/accounts/email-account-identity.d.ts.map +1 -1
  131. package/dist/cliproxy/accounts/email-account-identity.js +22 -2
  132. package/dist/cliproxy/accounts/email-account-identity.js.map +1 -1
  133. package/dist/cliproxy/accounts/registry.js +1 -1
  134. package/dist/cliproxy/accounts/registry.js.map +1 -1
  135. package/dist/cliproxy/accounts/token-file-ops.js +1 -1
  136. package/dist/cliproxy/accounts/token-file-ops.js.map +1 -1
  137. package/dist/cliproxy/accounts/types.d.ts +1 -1
  138. package/dist/cliproxy/accounts/types.d.ts.map +1 -1
  139. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts +38 -0
  140. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -0
  141. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +131 -0
  142. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -0
  143. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +71 -0
  144. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -0
  145. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +565 -0
  146. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -0
  147. package/dist/cliproxy/ai-providers/config-store.js +3 -3
  148. package/dist/cliproxy/ai-providers/config-store.js.map +1 -1
  149. package/dist/cliproxy/ai-providers/managed-model-prefixes.d.ts +7 -0
  150. package/dist/cliproxy/ai-providers/managed-model-prefixes.d.ts.map +1 -0
  151. package/dist/cliproxy/ai-providers/managed-model-prefixes.js +116 -0
  152. package/dist/cliproxy/ai-providers/managed-model-prefixes.js.map +1 -0
  153. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +108 -0
  154. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -0
  155. package/dist/cliproxy/ai-providers/model-id-normalizer.js +293 -0
  156. package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -0
  157. package/dist/cliproxy/ai-providers/openai-compat-manager.d.ts.map +1 -0
  158. package/dist/cliproxy/ai-providers/openai-compat-manager.js +203 -0
  159. package/dist/cliproxy/ai-providers/openai-compat-manager.js.map +1 -0
  160. package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts.map +1 -0
  161. package/dist/cliproxy/ai-providers/schema-sanitizer.js.map +1 -0
  162. package/dist/cliproxy/ai-providers/service.d.ts.map +1 -1
  163. package/dist/cliproxy/ai-providers/service.js +10 -3
  164. package/dist/cliproxy/ai-providers/service.js.map +1 -1
  165. package/dist/cliproxy/ai-providers/tool-name-mapper.d.ts +108 -0
  166. package/dist/cliproxy/ai-providers/tool-name-mapper.d.ts.map +1 -0
  167. package/dist/cliproxy/ai-providers/tool-name-mapper.js +163 -0
  168. package/dist/cliproxy/ai-providers/tool-name-mapper.js.map +1 -0
  169. package/dist/cliproxy/ai-providers/tool-name-sanitizer.d.ts +66 -0
  170. package/dist/cliproxy/ai-providers/tool-name-sanitizer.d.ts.map +1 -0
  171. package/dist/cliproxy/ai-providers/tool-name-sanitizer.js +138 -0
  172. package/dist/cliproxy/ai-providers/tool-name-sanitizer.js.map +1 -0
  173. package/dist/cliproxy/auth/antigravity-responsibility.d.ts.map +1 -0
  174. package/dist/cliproxy/auth/antigravity-responsibility.js +171 -0
  175. package/dist/cliproxy/auth/antigravity-responsibility.js.map +1 -0
  176. package/dist/cliproxy/auth/auth-handler.d.ts +31 -0
  177. package/dist/cliproxy/auth/auth-handler.d.ts.map +1 -0
  178. package/dist/cliproxy/auth/auth-handler.js +60 -0
  179. package/dist/cliproxy/auth/auth-handler.js.map +1 -0
  180. package/dist/cliproxy/auth/auth-session-manager.d.ts +51 -0
  181. package/dist/cliproxy/auth/auth-session-manager.d.ts.map +1 -0
  182. package/dist/cliproxy/auth/auth-session-manager.js +141 -0
  183. package/dist/cliproxy/auth/auth-session-manager.js.map +1 -0
  184. package/dist/cliproxy/auth/auth-token-manager.d.ts.map +1 -0
  185. package/dist/cliproxy/auth/auth-token-manager.js +184 -0
  186. package/dist/cliproxy/auth/auth-token-manager.js.map +1 -0
  187. package/dist/cliproxy/auth/auth-types.d.ts +40 -7
  188. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  189. package/dist/cliproxy/auth/auth-types.js +90 -10
  190. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  191. package/dist/cliproxy/auth/auth-utils.d.ts +17 -0
  192. package/dist/cliproxy/auth/auth-utils.d.ts.map +1 -0
  193. package/dist/cliproxy/auth/auth-utils.js +58 -0
  194. package/dist/cliproxy/auth/auth-utils.js.map +1 -0
  195. package/dist/cliproxy/auth/device-code-handler.d.ts.map +1 -0
  196. package/dist/cliproxy/auth/device-code-handler.js.map +1 -0
  197. package/dist/cliproxy/auth/gitlab-pat-response.d.ts +9 -0
  198. package/dist/cliproxy/auth/gitlab-pat-response.d.ts.map +1 -0
  199. package/dist/cliproxy/auth/gitlab-pat-response.js +64 -0
  200. package/dist/cliproxy/auth/gitlab-pat-response.js.map +1 -0
  201. package/dist/cliproxy/auth/kiro-import.js +2 -2
  202. package/dist/cliproxy/auth/kiro-import.js.map +1 -1
  203. package/dist/cliproxy/auth/oauth-handler.d.ts +50 -4
  204. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  205. package/dist/cliproxy/auth/oauth-handler.js +443 -51
  206. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  207. package/dist/cliproxy/auth/oauth-process.d.ts +27 -2
  208. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
  209. package/dist/cliproxy/auth/oauth-process.js +409 -53
  210. package/dist/cliproxy/auth/oauth-process.js.map +1 -1
  211. package/dist/cliproxy/auth/oauth-start-failure-guidance.d.ts +22 -0
  212. package/dist/cliproxy/auth/oauth-start-failure-guidance.d.ts.map +1 -0
  213. package/dist/cliproxy/auth/oauth-start-failure-guidance.js +82 -0
  214. package/dist/cliproxy/auth/oauth-start-failure-guidance.js.map +1 -0
  215. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.d.ts +24 -0
  216. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.d.ts.map +1 -0
  217. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.js +159 -0
  218. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.js.map +1 -0
  219. package/dist/cliproxy/auth/oauth-trace/index.d.ts +4 -0
  220. package/dist/cliproxy/auth/oauth-trace/index.d.ts.map +1 -0
  221. package/dist/cliproxy/auth/oauth-trace/index.js +14 -0
  222. package/dist/cliproxy/auth/oauth-trace/index.js.map +1 -0
  223. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts +22 -0
  224. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts.map +1 -0
  225. package/dist/cliproxy/auth/oauth-trace/redactor.js +120 -0
  226. package/dist/cliproxy/auth/oauth-trace/redactor.js.map +1 -0
  227. package/dist/cliproxy/auth/oauth-trace/sink-file.d.ts +18 -0
  228. package/dist/cliproxy/auth/oauth-trace/sink-file.d.ts.map +1 -0
  229. package/dist/cliproxy/auth/oauth-trace/sink-file.js +90 -0
  230. package/dist/cliproxy/auth/oauth-trace/sink-file.js.map +1 -0
  231. package/dist/cliproxy/auth/oauth-trace/sink-memory.d.ts +13 -0
  232. package/dist/cliproxy/auth/oauth-trace/sink-memory.d.ts.map +1 -0
  233. package/dist/cliproxy/auth/oauth-trace/sink-memory.js +31 -0
  234. package/dist/cliproxy/auth/oauth-trace/sink-memory.js.map +1 -0
  235. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.d.ts +11 -0
  236. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.d.ts.map +1 -0
  237. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.js +47 -0
  238. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.js.map +1 -0
  239. package/dist/cliproxy/auth/oauth-trace/trace-events.d.ts +51 -0
  240. package/dist/cliproxy/auth/oauth-trace/trace-events.d.ts.map +1 -0
  241. package/dist/cliproxy/auth/oauth-trace/trace-events.js +44 -0
  242. package/dist/cliproxy/auth/oauth-trace/trace-events.js.map +1 -0
  243. package/dist/cliproxy/auth/oauth-trace/trace-recorder.d.ts +34 -0
  244. package/dist/cliproxy/auth/oauth-trace/trace-recorder.d.ts.map +1 -0
  245. package/dist/cliproxy/auth/oauth-trace/trace-recorder.js +83 -0
  246. package/dist/cliproxy/auth/oauth-trace/trace-recorder.js.map +1 -0
  247. package/dist/cliproxy/auth/project-selection-handler.d.ts.map +1 -0
  248. package/dist/cliproxy/auth/project-selection-handler.js.map +1 -0
  249. package/dist/cliproxy/auth/provider-entitlement-evidence.d.ts +17 -0
  250. package/dist/cliproxy/auth/provider-entitlement-evidence.d.ts.map +1 -0
  251. package/dist/cliproxy/auth/provider-entitlement-evidence.js +55 -0
  252. package/dist/cliproxy/auth/provider-entitlement-evidence.js.map +1 -0
  253. package/dist/cliproxy/auth/provider-entitlement-types.d.ts +16 -0
  254. package/dist/cliproxy/auth/provider-entitlement-types.d.ts.map +1 -0
  255. package/dist/cliproxy/auth/provider-entitlement-types.js +3 -0
  256. package/dist/cliproxy/auth/provider-entitlement-types.js.map +1 -0
  257. package/dist/cliproxy/auth/provider-refreshers/index.d.ts +1 -2
  258. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
  259. package/dist/cliproxy/auth/provider-refreshers/index.js +7 -26
  260. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
  261. package/dist/cliproxy/auth/token-expiry-checker.js +1 -1
  262. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
  263. package/dist/cliproxy/auth/token-manager.d.ts +11 -2
  264. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  265. package/dist/cliproxy/auth/token-manager.js +117 -68
  266. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  267. package/dist/cliproxy/auth/token-refresh-config.d.ts.map +1 -1
  268. package/dist/cliproxy/auth/token-refresh-config.js +2 -2
  269. package/dist/cliproxy/auth/token-refresh-config.js.map +1 -1
  270. package/dist/cliproxy/binary/extractor.js +1 -1
  271. package/dist/cliproxy/binary/extractor.js.map +1 -1
  272. package/dist/cliproxy/binary/installer.d.ts +1 -1
  273. package/dist/cliproxy/binary/installer.d.ts.map +1 -1
  274. package/dist/cliproxy/binary/installer.js +1 -1
  275. package/dist/cliproxy/binary/installer.js.map +1 -1
  276. package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
  277. package/dist/cliproxy/binary/lifecycle.js +18 -6
  278. package/dist/cliproxy/binary/lifecycle.js.map +1 -1
  279. package/dist/cliproxy/binary/platform-detector.d.ts +106 -0
  280. package/dist/cliproxy/binary/platform-detector.d.ts.map +1 -0
  281. package/dist/cliproxy/binary/platform-detector.js +191 -0
  282. package/dist/cliproxy/binary/platform-detector.js.map +1 -0
  283. package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -1
  284. package/dist/cliproxy/binary/tar-extractor.js +1 -1
  285. package/dist/cliproxy/binary/tar-extractor.js.map +1 -1
  286. package/dist/cliproxy/binary/types.d.ts +3 -3
  287. package/dist/cliproxy/binary/types.d.ts.map +1 -1
  288. package/dist/cliproxy/binary/types.js +3 -3
  289. package/dist/cliproxy/binary/types.js.map +1 -1
  290. package/dist/cliproxy/binary/version-cache.d.ts +10 -0
  291. package/dist/cliproxy/binary/version-cache.d.ts.map +1 -1
  292. package/dist/cliproxy/binary/version-cache.js +31 -9
  293. package/dist/cliproxy/binary/version-cache.js.map +1 -1
  294. package/dist/cliproxy/binary/version-checker.d.ts +14 -3
  295. package/dist/cliproxy/binary/version-checker.d.ts.map +1 -1
  296. package/dist/cliproxy/binary/version-checker.js +66 -37
  297. package/dist/cliproxy/binary/version-checker.js.map +1 -1
  298. package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -1
  299. package/dist/cliproxy/binary/zip-extractor.js +1 -1
  300. package/dist/cliproxy/binary/zip-extractor.js.map +1 -1
  301. package/dist/cliproxy/binary-manager.d.ts +22 -1
  302. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  303. package/dist/cliproxy/binary-manager.js +126 -19
  304. package/dist/cliproxy/binary-manager.js.map +1 -1
  305. package/dist/cliproxy/config/base-config-loader.d.ts +43 -0
  306. package/dist/cliproxy/config/base-config-loader.d.ts.map +1 -0
  307. package/dist/cliproxy/config/base-config-loader.js +123 -0
  308. package/dist/cliproxy/config/base-config-loader.js.map +1 -0
  309. package/dist/cliproxy/config/composite-validator.d.ts.map +1 -0
  310. package/dist/cliproxy/config/composite-validator.js +94 -0
  311. package/dist/cliproxy/config/composite-validator.js.map +1 -0
  312. package/dist/cliproxy/config/config-generator.d.ts +15 -0
  313. package/dist/cliproxy/config/config-generator.d.ts.map +1 -0
  314. package/dist/cliproxy/config/config-generator.js +32 -0
  315. package/dist/cliproxy/config/config-generator.js.map +1 -0
  316. package/dist/cliproxy/config/env-builder.d.ts +6 -0
  317. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  318. package/dist/cliproxy/config/env-builder.js +60 -65
  319. package/dist/cliproxy/config/env-builder.js.map +1 -1
  320. package/dist/cliproxy/config/extended-context-config.d.ts +1 -0
  321. package/dist/cliproxy/config/extended-context-config.d.ts.map +1 -1
  322. package/dist/cliproxy/config/generator.d.ts +14 -3
  323. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  324. package/dist/cliproxy/config/generator.js +96 -19
  325. package/dist/cliproxy/config/generator.js.map +1 -1
  326. package/dist/cliproxy/config/model-config.d.ts +31 -0
  327. package/dist/cliproxy/config/model-config.d.ts.map +1 -0
  328. package/dist/cliproxy/config/model-config.js +264 -0
  329. package/dist/cliproxy/config/model-config.js.map +1 -0
  330. package/dist/cliproxy/config/path-resolver.d.ts +21 -0
  331. package/dist/cliproxy/config/path-resolver.d.ts.map +1 -1
  332. package/dist/cliproxy/config/path-resolver.js +45 -5
  333. package/dist/cliproxy/config/path-resolver.js.map +1 -1
  334. package/dist/cliproxy/config/port-manager.d.ts +6 -0
  335. package/dist/cliproxy/config/port-manager.d.ts.map +1 -1
  336. package/dist/cliproxy/config/port-manager.js +19 -1
  337. package/dist/cliproxy/config/port-manager.js.map +1 -1
  338. package/dist/cliproxy/config/thinking-config.d.ts +1 -0
  339. package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
  340. package/dist/cliproxy/config/thinking-config.js +21 -12
  341. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  342. package/dist/cliproxy/executor/account-resolution.d.ts +52 -0
  343. package/dist/cliproxy/executor/account-resolution.d.ts.map +1 -0
  344. package/dist/cliproxy/executor/account-resolution.js +154 -0
  345. package/dist/cliproxy/executor/account-resolution.js.map +1 -0
  346. package/dist/cliproxy/executor/arg-parser.d.ts +96 -0
  347. package/dist/cliproxy/executor/arg-parser.d.ts.map +1 -0
  348. package/dist/cliproxy/executor/arg-parser.js +529 -0
  349. package/dist/cliproxy/executor/arg-parser.js.map +1 -0
  350. package/dist/cliproxy/executor/auth-coordinator.d.ts +96 -0
  351. package/dist/cliproxy/executor/auth-coordinator.d.ts.map +1 -0
  352. package/dist/cliproxy/executor/auth-coordinator.js +342 -0
  353. package/dist/cliproxy/executor/auth-coordinator.js.map +1 -0
  354. package/dist/cliproxy/executor/browser-launch-setup.d.ts +36 -0
  355. package/dist/cliproxy/executor/browser-launch-setup.d.ts.map +1 -0
  356. package/dist/cliproxy/executor/browser-launch-setup.js +80 -0
  357. package/dist/cliproxy/executor/browser-launch-setup.js.map +1 -0
  358. package/dist/cliproxy/executor/claude-launcher.d.ts +55 -0
  359. package/dist/cliproxy/executor/claude-launcher.d.ts.map +1 -0
  360. package/dist/cliproxy/executor/claude-launcher.js +125 -0
  361. package/dist/cliproxy/executor/claude-launcher.js.map +1 -0
  362. package/dist/cliproxy/executor/cliproxy-executor.d.ts +16 -0
  363. package/dist/cliproxy/executor/cliproxy-executor.d.ts.map +1 -0
  364. package/dist/cliproxy/executor/cliproxy-executor.js +27 -0
  365. package/dist/cliproxy/executor/cliproxy-executor.js.map +1 -0
  366. package/dist/cliproxy/executor/env-resolver.d.ts +7 -5
  367. package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
  368. package/dist/cliproxy/executor/env-resolver.js +7 -6
  369. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  370. package/dist/cliproxy/executor/https-tunnel-policy.d.ts +17 -0
  371. package/dist/cliproxy/executor/https-tunnel-policy.d.ts.map +1 -0
  372. package/dist/cliproxy/executor/https-tunnel-policy.js +20 -0
  373. package/dist/cliproxy/executor/https-tunnel-policy.js.map +1 -0
  374. package/dist/cliproxy/executor/index.d.ts +6 -0
  375. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  376. package/dist/cliproxy/executor/index.js +144 -693
  377. package/dist/cliproxy/executor/index.js.map +1 -1
  378. package/dist/cliproxy/executor/lifecycle-manager.js +1 -1
  379. package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -1
  380. package/dist/cliproxy/executor/model-warnings.d.ts +22 -0
  381. package/dist/cliproxy/executor/model-warnings.d.ts.map +1 -0
  382. package/dist/cliproxy/executor/model-warnings.js +67 -0
  383. package/dist/cliproxy/executor/model-warnings.js.map +1 -0
  384. package/dist/cliproxy/executor/proxy-chain-builder.d.ts +71 -0
  385. package/dist/cliproxy/executor/proxy-chain-builder.d.ts.map +1 -0
  386. package/dist/cliproxy/executor/proxy-chain-builder.js +143 -0
  387. package/dist/cliproxy/executor/proxy-chain-builder.js.map +1 -0
  388. package/dist/cliproxy/executor/proxy-resolver.d.ts +44 -0
  389. package/dist/cliproxy/executor/proxy-resolver.d.ts.map +1 -0
  390. package/dist/cliproxy/executor/proxy-resolver.js +173 -0
  391. package/dist/cliproxy/executor/proxy-resolver.js.map +1 -0
  392. package/dist/cliproxy/executor/retry-handler.js +4 -4
  393. package/dist/cliproxy/executor/retry-handler.js.map +1 -1
  394. package/dist/cliproxy/executor/session-bridge.d.ts +16 -1
  395. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
  396. package/dist/cliproxy/executor/session-bridge.js +92 -57
  397. package/dist/cliproxy/executor/session-bridge.js.map +1 -1
  398. package/dist/cliproxy/index.d.ts +32 -32
  399. package/dist/cliproxy/index.d.ts.map +1 -1
  400. package/dist/cliproxy/index.js +20 -20
  401. package/dist/cliproxy/index.js.map +1 -1
  402. package/dist/cliproxy/management/management-api-client.d.ts +90 -0
  403. package/dist/cliproxy/management/management-api-client.d.ts.map +1 -0
  404. package/dist/cliproxy/management/management-api-client.js +396 -0
  405. package/dist/cliproxy/management/management-api-client.js.map +1 -0
  406. package/dist/cliproxy/management/management-api-types.d.ts.map +1 -0
  407. package/dist/cliproxy/management/management-api-types.js.map +1 -0
  408. package/dist/cliproxy/management/remote-token-uploader.d.ts.map +1 -0
  409. package/dist/cliproxy/management/remote-token-uploader.js +178 -0
  410. package/dist/cliproxy/management/remote-token-uploader.js.map +1 -0
  411. package/dist/cliproxy/model-catalog.d.ts +3 -1
  412. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  413. package/dist/cliproxy/model-catalog.js +60 -59
  414. package/dist/cliproxy/model-catalog.js.map +1 -1
  415. package/dist/cliproxy/provider-capabilities.d.ts +3 -0
  416. package/dist/cliproxy/provider-capabilities.d.ts.map +1 -1
  417. package/dist/cliproxy/provider-capabilities.js +63 -3
  418. package/dist/cliproxy/provider-capabilities.js.map +1 -1
  419. package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts.map +1 -0
  420. package/dist/cliproxy/proxy/https-tunnel-proxy.js +229 -0
  421. package/dist/cliproxy/proxy/https-tunnel-proxy.js.map +1 -0
  422. package/dist/cliproxy/proxy/proxy-config-resolver.d.ts +87 -0
  423. package/dist/cliproxy/proxy/proxy-config-resolver.d.ts.map +1 -0
  424. package/dist/cliproxy/proxy/proxy-config-resolver.js +254 -0
  425. package/dist/cliproxy/proxy/proxy-config-resolver.js.map +1 -0
  426. package/dist/cliproxy/proxy/proxy-detector.d.ts +72 -0
  427. package/dist/cliproxy/proxy/proxy-detector.d.ts.map +1 -0
  428. package/dist/cliproxy/proxy/proxy-detector.js +200 -0
  429. package/dist/cliproxy/proxy/proxy-detector.js.map +1 -0
  430. package/dist/cliproxy/proxy/proxy-target-resolver.d.ts.map +1 -0
  431. package/dist/cliproxy/proxy/proxy-target-resolver.js +108 -0
  432. package/dist/cliproxy/proxy/proxy-target-resolver.js.map +1 -0
  433. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +82 -0
  434. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -0
  435. package/dist/cliproxy/proxy/tool-sanitization-proxy.js +668 -0
  436. package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -0
  437. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.d.ts.map +1 -0
  438. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.js +122 -0
  439. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.js.map +1 -0
  440. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts +14 -0
  441. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts.map +1 -0
  442. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js +322 -0
  443. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js.map +1 -0
  444. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts +21 -0
  445. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -0
  446. package/dist/cliproxy/quota/quota-fetcher-claude.js +292 -0
  447. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -0
  448. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts +84 -0
  449. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -0
  450. package/dist/cliproxy/quota/quota-fetcher-codex.js +651 -0
  451. package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -0
  452. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts.map +1 -0
  453. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js +828 -0
  454. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js.map +1 -0
  455. package/dist/cliproxy/quota/quota-fetcher-ghcp.d.ts.map +1 -0
  456. package/dist/cliproxy/quota/quota-fetcher-ghcp.js +218 -0
  457. package/dist/cliproxy/quota/quota-fetcher-ghcp.js.map +1 -0
  458. package/dist/cliproxy/quota/quota-fetcher.d.ts +117 -0
  459. package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -0
  460. package/dist/cliproxy/quota/quota-fetcher.js +771 -0
  461. package/dist/cliproxy/quota/quota-fetcher.js.map +1 -0
  462. package/dist/cliproxy/quota/quota-manager.d.ts +109 -0
  463. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -0
  464. package/dist/cliproxy/quota/quota-manager.js +672 -0
  465. package/dist/cliproxy/quota/quota-manager.js.map +1 -0
  466. package/dist/cliproxy/quota/quota-response-cache.d.ts.map +1 -0
  467. package/dist/cliproxy/quota/quota-response-cache.js.map +1 -0
  468. package/dist/cliproxy/quota/quota-types.d.ts +262 -0
  469. package/dist/cliproxy/quota/quota-types.d.ts.map +1 -0
  470. package/dist/cliproxy/quota/quota-types.js.map +1 -0
  471. package/dist/cliproxy/routing/routing-strategy-http.d.ts +8 -0
  472. package/dist/cliproxy/routing/routing-strategy-http.d.ts.map +1 -0
  473. package/dist/cliproxy/routing/routing-strategy-http.js +120 -0
  474. package/dist/cliproxy/routing/routing-strategy-http.js.map +1 -0
  475. package/dist/cliproxy/routing/routing-strategy.d.ts +41 -0
  476. package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -0
  477. package/dist/cliproxy/routing/routing-strategy.js +272 -0
  478. package/dist/cliproxy/routing/routing-strategy.js.map +1 -0
  479. package/dist/cliproxy/service-manager.d.ts +17 -1
  480. package/dist/cliproxy/service-manager.d.ts.map +1 -1
  481. package/dist/cliproxy/service-manager.js +19 -11
  482. package/dist/cliproxy/service-manager.js.map +1 -1
  483. package/dist/cliproxy/services/binary-service.d.ts.map +1 -1
  484. package/dist/cliproxy/services/binary-service.js +16 -9
  485. package/dist/cliproxy/services/binary-service.js.map +1 -1
  486. package/dist/cliproxy/services/catalog-cache.d.ts +47 -0
  487. package/dist/cliproxy/services/catalog-cache.d.ts.map +1 -0
  488. package/dist/cliproxy/services/catalog-cache.js +347 -0
  489. package/dist/cliproxy/services/catalog-cache.js.map +1 -0
  490. package/dist/cliproxy/services/catalog-routing.d.ts +12 -0
  491. package/dist/cliproxy/services/catalog-routing.d.ts.map +1 -0
  492. package/dist/cliproxy/services/catalog-routing.js +19 -0
  493. package/dist/cliproxy/services/catalog-routing.js.map +1 -0
  494. package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts +4 -0
  495. package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts.map +1 -0
  496. package/dist/cliproxy/services/oauth-usage-log-transformer.js +162 -0
  497. package/dist/cliproxy/services/oauth-usage-log-transformer.js.map +1 -0
  498. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +1 -0
  499. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -1
  500. package/dist/cliproxy/services/proxy-lifecycle-service.js +6 -6
  501. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -1
  502. package/dist/cliproxy/services/remote-auth-fetcher.d.ts +30 -0
  503. package/dist/cliproxy/services/remote-auth-fetcher.d.ts.map +1 -0
  504. package/dist/cliproxy/services/remote-auth-fetcher.js +177 -0
  505. package/dist/cliproxy/services/remote-auth-fetcher.js.map +1 -0
  506. package/dist/cliproxy/services/remote-proxy-client.d.ts.map +1 -0
  507. package/dist/cliproxy/services/remote-proxy-client.js +281 -0
  508. package/dist/cliproxy/services/remote-proxy-client.js.map +1 -0
  509. package/dist/cliproxy/services/startup-lock.d.ts.map +1 -0
  510. package/dist/cliproxy/services/startup-lock.js +220 -0
  511. package/dist/cliproxy/services/startup-lock.js.map +1 -0
  512. package/dist/cliproxy/services/stats-fetcher.d.ts +162 -0
  513. package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -0
  514. package/dist/cliproxy/services/stats-fetcher.js +354 -0
  515. package/dist/cliproxy/services/stats-fetcher.js.map +1 -0
  516. package/dist/cliproxy/services/stats-transformer.d.ts.map +1 -0
  517. package/dist/cliproxy/services/stats-transformer.js +224 -0
  518. package/dist/cliproxy/services/stats-transformer.js.map +1 -0
  519. package/dist/cliproxy/services/usage-compatibility-transformer.d.ts +12 -0
  520. package/dist/cliproxy/services/usage-compatibility-transformer.d.ts.map +1 -0
  521. package/dist/cliproxy/services/usage-compatibility-transformer.js +458 -0
  522. package/dist/cliproxy/services/usage-compatibility-transformer.js.map +1 -0
  523. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
  524. package/dist/cliproxy/services/variant-config-adapter.js +11 -11
  525. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  526. package/dist/cliproxy/services/variant-service.d.ts +2 -1
  527. package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
  528. package/dist/cliproxy/services/variant-service.js +21 -24
  529. package/dist/cliproxy/services/variant-service.js.map +1 -1
  530. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  531. package/dist/cliproxy/services/variant-settings.js +53 -42
  532. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  533. package/dist/cliproxy/session-tracker.js +2 -2
  534. package/dist/cliproxy/session-tracker.js.map +1 -1
  535. package/dist/cliproxy/sync/auto-sync-watcher.js +3 -4
  536. package/dist/cliproxy/sync/auto-sync-watcher.js.map +1 -1
  537. package/dist/cliproxy/sync/local-config-sync.js +1 -1
  538. package/dist/cliproxy/sync/local-config-sync.js.map +1 -1
  539. package/dist/cliproxy/sync/profile-mapper.d.ts +1 -1
  540. package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -1
  541. package/dist/cliproxy/sync/profile-mapper.js +23 -2
  542. package/dist/cliproxy/sync/profile-mapper.js.map +1 -1
  543. package/dist/cliproxy/thinking-validator.d.ts +6 -1
  544. package/dist/cliproxy/thinking-validator.d.ts.map +1 -1
  545. package/dist/cliproxy/thinking-validator.js +22 -2
  546. package/dist/cliproxy/thinking-validator.js.map +1 -1
  547. package/dist/cliproxy/types/binary-types.d.ts +48 -0
  548. package/dist/cliproxy/types/binary-types.d.ts.map +1 -0
  549. package/dist/cliproxy/types/binary-types.js +6 -0
  550. package/dist/cliproxy/types/binary-types.js.map +1 -0
  551. package/dist/cliproxy/types/config-types.d.ts +89 -0
  552. package/dist/cliproxy/types/config-types.d.ts.map +1 -0
  553. package/dist/cliproxy/types/config-types.js +6 -0
  554. package/dist/cliproxy/types/config-types.js.map +1 -0
  555. package/dist/cliproxy/types/index.d.ts +5 -0
  556. package/dist/cliproxy/types/index.d.ts.map +1 -0
  557. package/dist/cliproxy/types/index.js +21 -0
  558. package/dist/cliproxy/types/index.js.map +1 -0
  559. package/dist/cliproxy/types/platform-types.d.ts +17 -0
  560. package/dist/cliproxy/types/platform-types.d.ts.map +1 -0
  561. package/dist/cliproxy/types/platform-types.js +6 -0
  562. package/dist/cliproxy/types/platform-types.js.map +1 -0
  563. package/dist/cliproxy/types/provider-types.d.ts +27 -0
  564. package/dist/cliproxy/types/provider-types.d.ts.map +1 -0
  565. package/dist/cliproxy/types/provider-types.js +16 -0
  566. package/dist/cliproxy/types/provider-types.js.map +1 -0
  567. package/dist/cliproxy/types.d.ts +4 -255
  568. package/dist/cliproxy/types.d.ts.map +1 -1
  569. package/dist/cliproxy/types.js +18 -7
  570. package/dist/cliproxy/types.js.map +1 -1
  571. package/dist/commands/api-command/create-command.d.ts +3 -0
  572. package/dist/commands/api-command/create-command.d.ts.map +1 -1
  573. package/dist/commands/api-command/create-command.js +24 -7
  574. package/dist/commands/api-command/create-command.js.map +1 -1
  575. package/dist/commands/api-command/help.d.ts.map +1 -1
  576. package/dist/commands/api-command/help.js +5 -0
  577. package/dist/commands/api-command/help.js.map +1 -1
  578. package/dist/commands/api-command/shared.d.ts +2 -1
  579. package/dist/commands/api-command/shared.d.ts.map +1 -1
  580. package/dist/commands/api-command/shared.js +9 -0
  581. package/dist/commands/api-command/shared.js.map +1 -1
  582. package/dist/commands/browser-command.d.ts +5 -0
  583. package/dist/commands/browser-command.d.ts.map +1 -0
  584. package/dist/commands/browser-command.js +349 -0
  585. package/dist/commands/browser-command.js.map +1 -0
  586. package/dist/commands/cleanup-command.d.ts +1 -1
  587. package/dist/commands/cleanup-command.d.ts.map +1 -1
  588. package/dist/commands/cleanup-command.js +58 -35
  589. package/dist/commands/cleanup-command.js.map +1 -1
  590. package/dist/commands/cliproxy/auth-subcommand.js +1 -1
  591. package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
  592. package/dist/commands/cliproxy/catalog-subcommand.d.ts +6 -0
  593. package/dist/commands/cliproxy/catalog-subcommand.d.ts.map +1 -1
  594. package/dist/commands/cliproxy/catalog-subcommand.js +112 -46
  595. package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
  596. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
  597. package/dist/commands/cliproxy/help-subcommand.js +15 -4
  598. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  599. package/dist/commands/cliproxy/index.d.ts.map +1 -1
  600. package/dist/commands/cliproxy/index.js +35 -7
  601. package/dist/commands/cliproxy/index.js.map +1 -1
  602. package/dist/commands/cliproxy/install-subcommand.js +2 -2
  603. package/dist/commands/cliproxy/install-subcommand.js.map +1 -1
  604. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +6 -6
  605. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
  606. package/dist/commands/cliproxy/quota-subcommand.d.ts +3 -1
  607. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  608. package/dist/commands/cliproxy/quota-subcommand.js +95 -32
  609. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  610. package/dist/commands/cliproxy/routing-subcommand.d.ts +7 -0
  611. package/dist/commands/cliproxy/routing-subcommand.d.ts.map +1 -0
  612. package/dist/commands/cliproxy/routing-subcommand.js +193 -0
  613. package/dist/commands/cliproxy/routing-subcommand.js.map +1 -0
  614. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  615. package/dist/commands/cliproxy/variant-subcommand.js +86 -13
  616. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  617. package/dist/commands/command-catalog.d.ts +6 -5
  618. package/dist/commands/command-catalog.d.ts.map +1 -1
  619. package/dist/commands/command-catalog.js +45 -8
  620. package/dist/commands/command-catalog.js.map +1 -1
  621. package/dist/commands/completion-backend.d.ts.map +1 -1
  622. package/dist/commands/completion-backend.js +62 -1
  623. package/dist/commands/completion-backend.js.map +1 -1
  624. package/dist/commands/config-auth/disable-command.d.ts.map +1 -1
  625. package/dist/commands/config-auth/disable-command.js +3 -3
  626. package/dist/commands/config-auth/disable-command.js.map +1 -1
  627. package/dist/commands/config-auth/setup-command.d.ts.map +1 -1
  628. package/dist/commands/config-auth/setup-command.js +2 -2
  629. package/dist/commands/config-auth/setup-command.js.map +1 -1
  630. package/dist/commands/config-auth/show-command.js +2 -2
  631. package/dist/commands/config-auth/show-command.js.map +1 -1
  632. package/dist/commands/config-channels-command.d.ts.map +1 -1
  633. package/dist/commands/config-channels-command.js +4 -4
  634. package/dist/commands/config-channels-command.js.map +1 -1
  635. package/dist/commands/config-command-options.d.ts.map +1 -1
  636. package/dist/commands/config-command-options.js +4 -2
  637. package/dist/commands/config-command-options.js.map +1 -1
  638. package/dist/commands/config-command.d.ts +1 -1
  639. package/dist/commands/config-command.d.ts.map +1 -1
  640. package/dist/commands/config-command.js +28 -5
  641. package/dist/commands/config-command.js.map +1 -1
  642. package/dist/commands/config-dashboard-host.d.ts +1 -0
  643. package/dist/commands/config-dashboard-host.d.ts.map +1 -1
  644. package/dist/commands/config-dashboard-host.js +16 -3
  645. package/dist/commands/config-dashboard-host.js.map +1 -1
  646. package/dist/commands/config-image-analysis-command.d.ts.map +1 -1
  647. package/dist/commands/config-image-analysis-command.js +4 -4
  648. package/dist/commands/config-image-analysis-command.js.map +1 -1
  649. package/dist/commands/config-thinking-command.d.ts.map +1 -1
  650. package/dist/commands/config-thinking-command.js +5 -5
  651. package/dist/commands/config-thinking-command.js.map +1 -1
  652. package/dist/commands/copilot-command.d.ts.map +1 -1
  653. package/dist/commands/copilot-command.js +7 -5
  654. package/dist/commands/copilot-command.js.map +1 -1
  655. package/dist/commands/cursor-command-display.d.ts +2 -0
  656. package/dist/commands/cursor-command-display.d.ts.map +1 -1
  657. package/dist/commands/cursor-command-display.js +63 -30
  658. package/dist/commands/cursor-command-display.js.map +1 -1
  659. package/dist/commands/cursor-command.d.ts.map +1 -1
  660. package/dist/commands/cursor-command.js +67 -61
  661. package/dist/commands/cursor-command.js.map +1 -1
  662. package/dist/commands/docker/up-subcommand.js +1 -1
  663. package/dist/commands/docker/up-subcommand.js.map +1 -1
  664. package/dist/commands/doctor-command.d.ts.map +1 -1
  665. package/dist/commands/doctor-command.js +9 -0
  666. package/dist/commands/doctor-command.js.map +1 -1
  667. package/dist/commands/env-command.d.ts.map +1 -1
  668. package/dist/commands/env-command.js +2 -2
  669. package/dist/commands/env-command.js.map +1 -1
  670. package/dist/commands/help-command.d.ts +2 -0
  671. package/dist/commands/help-command.d.ts.map +1 -1
  672. package/dist/commands/help-command.js +126 -5
  673. package/dist/commands/help-command.js.map +1 -1
  674. package/dist/commands/index.d.ts +1 -0
  675. package/dist/commands/index.d.ts.map +1 -1
  676. package/dist/commands/index.js +3 -1
  677. package/dist/commands/index.js.map +1 -1
  678. package/dist/commands/migrate-command.d.ts.map +1 -1
  679. package/dist/commands/migrate-command.js +2 -2
  680. package/dist/commands/migrate-command.js.map +1 -1
  681. package/dist/commands/proxy-command.d.ts +3 -0
  682. package/dist/commands/proxy-command.d.ts.map +1 -0
  683. package/dist/commands/proxy-command.js +237 -0
  684. package/dist/commands/proxy-command.js.map +1 -0
  685. package/dist/commands/root-command-router.d.ts.map +1 -1
  686. package/dist/commands/root-command-router.js +14 -0
  687. package/dist/commands/root-command-router.js.map +1 -1
  688. package/dist/commands/setup-command.d.ts.map +1 -1
  689. package/dist/commands/setup-command.js +6 -7
  690. package/dist/commands/setup-command.js.map +1 -1
  691. package/dist/commands/sync-command.d.ts.map +1 -1
  692. package/dist/commands/sync-command.js +3 -2
  693. package/dist/commands/sync-command.js.map +1 -1
  694. package/dist/commands/tokens-command.d.ts.map +1 -1
  695. package/dist/commands/tokens-command.js +27 -38
  696. package/dist/commands/tokens-command.js.map +1 -1
  697. package/dist/commands/update-command.d.ts +22 -5
  698. package/dist/commands/update-command.d.ts.map +1 -1
  699. package/dist/commands/update-command.js +211 -159
  700. package/dist/commands/update-command.js.map +1 -1
  701. package/dist/commands/version-command.d.ts.map +1 -1
  702. package/dist/commands/version-command.js +2 -1
  703. package/dist/commands/version-command.js.map +1 -1
  704. package/dist/config/config-loader-facade.d.ts +57 -0
  705. package/dist/config/config-loader-facade.d.ts.map +1 -0
  706. package/dist/config/config-loader-facade.js +131 -0
  707. package/dist/config/config-loader-facade.js.map +1 -0
  708. package/dist/config/loader/config-getters.d.ts +121 -0
  709. package/dist/config/loader/config-getters.d.ts.map +1 -0
  710. package/dist/config/loader/config-getters.js +260 -0
  711. package/dist/config/loader/config-getters.js.map +1 -0
  712. package/dist/config/loader/defaults-merger.d.ts +21 -0
  713. package/dist/config/loader/defaults-merger.d.ts.map +1 -0
  714. package/dist/config/loader/defaults-merger.js +278 -0
  715. package/dist/config/loader/defaults-merger.js.map +1 -0
  716. package/dist/config/loader/io-locks.d.ts +76 -0
  717. package/dist/config/loader/io-locks.d.ts.map +1 -0
  718. package/dist/config/loader/io-locks.js +297 -0
  719. package/dist/config/loader/io-locks.js.map +1 -0
  720. package/dist/config/loader/normalizers.d.ts +40 -0
  721. package/dist/config/loader/normalizers.d.ts.map +1 -0
  722. package/dist/config/loader/normalizers.js +172 -0
  723. package/dist/config/loader/normalizers.js.map +1 -0
  724. package/dist/config/loader/yaml-serializer.d.ts +19 -0
  725. package/dist/config/loader/yaml-serializer.d.ts.map +1 -0
  726. package/dist/config/loader/yaml-serializer.js +301 -0
  727. package/dist/config/loader/yaml-serializer.js.map +1 -0
  728. package/dist/config/migration-manager.d.ts.map +1 -1
  729. package/dist/config/migration-manager.js +14 -1
  730. package/dist/config/migration-manager.js.map +1 -1
  731. package/dist/config/reserved-names.d.ts +1 -1
  732. package/dist/config/reserved-names.d.ts.map +1 -1
  733. package/dist/config/reserved-names.js +10 -0
  734. package/dist/config/reserved-names.js.map +1 -1
  735. package/dist/config/schemas/auth.d.ts +99 -0
  736. package/dist/config/schemas/auth.d.ts.map +1 -0
  737. package/dist/config/schemas/auth.js +25 -0
  738. package/dist/config/schemas/auth.js.map +1 -0
  739. package/dist/config/schemas/browser.d.ts +53 -0
  740. package/dist/config/schemas/browser.d.ts.map +1 -0
  741. package/dist/config/schemas/browser.js +27 -0
  742. package/dist/config/schemas/browser.js.map +1 -0
  743. package/dist/config/schemas/channels.d.ts +27 -0
  744. package/dist/config/schemas/channels.d.ts.map +1 -0
  745. package/dist/config/schemas/channels.js +19 -0
  746. package/dist/config/schemas/channels.js.map +1 -0
  747. package/dist/config/schemas/cliproxy.d.ts +142 -0
  748. package/dist/config/schemas/cliproxy.d.ts.map +1 -0
  749. package/dist/config/schemas/cliproxy.js +18 -0
  750. package/dist/config/schemas/cliproxy.js.map +1 -0
  751. package/dist/config/schemas/copilot-cursor.d.ts +75 -0
  752. package/dist/config/schemas/copilot-cursor.d.ts.map +1 -0
  753. package/dist/config/schemas/copilot-cursor.js +36 -0
  754. package/dist/config/schemas/copilot-cursor.js.map +1 -0
  755. package/dist/config/schemas/index.d.ts +28 -0
  756. package/dist/config/schemas/index.d.ts.map +1 -0
  757. package/dist/config/schemas/index.js +51 -0
  758. package/dist/config/schemas/index.js.map +1 -0
  759. package/dist/config/schemas/logging.d.ts +43 -0
  760. package/dist/config/schemas/logging.d.ts.map +1 -0
  761. package/dist/config/schemas/logging.js +23 -0
  762. package/dist/config/schemas/logging.js.map +1 -0
  763. package/dist/config/schemas/providers.d.ts +14 -0
  764. package/dist/config/schemas/providers.d.ts.map +1 -0
  765. package/dist/config/schemas/providers.js +21 -0
  766. package/dist/config/schemas/providers.js.map +1 -0
  767. package/dist/config/schemas/proxy-server.d.ts +141 -0
  768. package/dist/config/schemas/proxy-server.d.ts.map +1 -0
  769. package/dist/config/schemas/proxy-server.js +71 -0
  770. package/dist/config/schemas/proxy-server.js.map +1 -0
  771. package/dist/config/schemas/quota.d.ts +88 -0
  772. package/dist/config/schemas/quota.d.ts.map +1 -0
  773. package/dist/config/schemas/quota.js +47 -0
  774. package/dist/config/schemas/quota.js.map +1 -0
  775. package/dist/config/schemas/thinking.d.ts +50 -0
  776. package/dist/config/schemas/thinking.d.ts.map +1 -0
  777. package/dist/config/schemas/thinking.js +26 -0
  778. package/dist/config/schemas/thinking.js.map +1 -0
  779. package/dist/config/schemas/unified-config.d.ts +74 -0
  780. package/dist/config/schemas/unified-config.d.ts.map +1 -0
  781. package/dist/config/schemas/unified-config.js +131 -0
  782. package/dist/config/schemas/unified-config.js.map +1 -0
  783. package/dist/config/schemas/version.d.ts +23 -0
  784. package/dist/config/schemas/version.d.ts.map +1 -0
  785. package/dist/config/schemas/version.js +26 -0
  786. package/dist/config/schemas/version.js.map +1 -0
  787. package/dist/config/schemas/websearch.d.ts +138 -0
  788. package/dist/config/schemas/websearch.d.ts.map +1 -0
  789. package/dist/config/schemas/websearch.js +12 -0
  790. package/dist/config/schemas/websearch.js.map +1 -0
  791. package/dist/config/unified-config-loader.d.ts +21 -113
  792. package/dist/config/unified-config-loader.d.ts.map +1 -1
  793. package/dist/config/unified-config-loader.js +104 -935
  794. package/dist/config/unified-config-loader.js.map +1 -1
  795. package/dist/config/unified-config-types.d.ts +3 -723
  796. package/dist/config/unified-config-types.d.ts.map +1 -1
  797. package/dist/config/unified-config-types.js +19 -268
  798. package/dist/config/unified-config-types.js.map +1 -1
  799. package/dist/copilot/copilot-auth.d.ts.map +1 -1
  800. package/dist/copilot/copilot-auth.js +22 -0
  801. package/dist/copilot/copilot-auth.js.map +1 -1
  802. package/dist/copilot/copilot-daemon.d.ts.map +1 -1
  803. package/dist/copilot/copilot-daemon.js +28 -2
  804. package/dist/copilot/copilot-daemon.js.map +1 -1
  805. package/dist/copilot/copilot-executor.d.ts +1 -1
  806. package/dist/copilot/copilot-executor.d.ts.map +1 -1
  807. package/dist/copilot/copilot-executor.js +31 -12
  808. package/dist/copilot/copilot-executor.js.map +1 -1
  809. package/dist/copilot/copilot-package-manager.js +2 -2
  810. package/dist/copilot/copilot-package-manager.js.map +1 -1
  811. package/dist/cursor/constants.d.ts +4 -1
  812. package/dist/cursor/constants.d.ts.map +1 -1
  813. package/dist/cursor/constants.js +27 -1
  814. package/dist/cursor/constants.js.map +1 -1
  815. package/dist/cursor/cursor-anthropic-response.d.ts +1 -5
  816. package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -1
  817. package/dist/cursor/cursor-anthropic-response.js +3 -186
  818. package/dist/cursor/cursor-anthropic-response.js.map +1 -1
  819. package/dist/cursor/cursor-anthropic-translator.d.ts.map +1 -1
  820. package/dist/cursor/cursor-anthropic-translator.js +17 -3
  821. package/dist/cursor/cursor-anthropic-translator.js.map +1 -1
  822. package/dist/cursor/cursor-anthropic-types.d.ts +3 -0
  823. package/dist/cursor/cursor-anthropic-types.d.ts.map +1 -1
  824. package/dist/cursor/cursor-auth.d.ts +1 -0
  825. package/dist/cursor/cursor-auth.d.ts.map +1 -1
  826. package/dist/cursor/cursor-auth.js +156 -34
  827. package/dist/cursor/cursor-auth.js.map +1 -1
  828. package/dist/cursor/cursor-daemon-entry.js +2 -2
  829. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  830. package/dist/cursor/cursor-daemon-pid.js +2 -2
  831. package/dist/cursor/cursor-daemon-pid.js.map +1 -1
  832. package/dist/cursor/cursor-daemon.d.ts.map +1 -1
  833. package/dist/cursor/cursor-daemon.js +28 -1
  834. package/dist/cursor/cursor-daemon.js.map +1 -1
  835. package/dist/cursor/cursor-default-models.d.ts +1 -1
  836. package/dist/cursor/cursor-default-models.d.ts.map +1 -1
  837. package/dist/cursor/cursor-default-models.js +11 -1
  838. package/dist/cursor/cursor-default-models.js.map +1 -1
  839. package/dist/cursor/cursor-executor.d.ts +2 -1
  840. package/dist/cursor/cursor-executor.d.ts.map +1 -1
  841. package/dist/cursor/cursor-executor.js +312 -161
  842. package/dist/cursor/cursor-executor.js.map +1 -1
  843. package/dist/cursor/cursor-models.d.ts.map +1 -1
  844. package/dist/cursor/cursor-models.js +26 -4
  845. package/dist/cursor/cursor-models.js.map +1 -1
  846. package/dist/cursor/cursor-profile-executor.d.ts +10 -1
  847. package/dist/cursor/cursor-profile-executor.d.ts.map +1 -1
  848. package/dist/cursor/cursor-profile-executor.js +14 -10
  849. package/dist/cursor/cursor-profile-executor.js.map +1 -1
  850. package/dist/cursor/cursor-protobuf-decoder.d.ts.map +1 -1
  851. package/dist/cursor/cursor-protobuf-decoder.js +1 -3
  852. package/dist/cursor/cursor-protobuf-decoder.js.map +1 -1
  853. package/dist/cursor/cursor-protobuf-schema.d.ts +12 -3
  854. package/dist/cursor/cursor-protobuf-schema.d.ts.map +1 -1
  855. package/dist/cursor/cursor-protobuf-schema.js +23 -5
  856. package/dist/cursor/cursor-protobuf-schema.js.map +1 -1
  857. package/dist/cursor/cursor-protobuf.d.ts +1 -1
  858. package/dist/cursor/cursor-protobuf.d.ts.map +1 -1
  859. package/dist/cursor/cursor-protobuf.js +2 -4
  860. package/dist/cursor/cursor-protobuf.js.map +1 -1
  861. package/dist/cursor/cursor-runtime-probe.d.ts +12 -0
  862. package/dist/cursor/cursor-runtime-probe.d.ts.map +1 -0
  863. package/dist/cursor/cursor-runtime-probe.js +220 -0
  864. package/dist/cursor/cursor-runtime-probe.js.map +1 -0
  865. package/dist/cursor/cursor-stream-parser.d.ts +10 -0
  866. package/dist/cursor/cursor-stream-parser.d.ts.map +1 -1
  867. package/dist/cursor/cursor-stream-parser.js +106 -10
  868. package/dist/cursor/cursor-stream-parser.js.map +1 -1
  869. package/dist/cursor/index.d.ts +1 -0
  870. package/dist/cursor/index.d.ts.map +1 -1
  871. package/dist/cursor/index.js +3 -1
  872. package/dist/cursor/index.js.map +1 -1
  873. package/dist/cursor/types.d.ts +6 -0
  874. package/dist/cursor/types.d.ts.map +1 -1
  875. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  876. package/dist/delegation/delegation-handler.js +113 -36
  877. package/dist/delegation/delegation-handler.js.map +1 -1
  878. package/dist/delegation/headless-executor.d.ts.map +1 -1
  879. package/dist/delegation/headless-executor.js +67 -22
  880. package/dist/delegation/headless-executor.js.map +1 -1
  881. package/dist/delegation/session-manager.js +2 -2
  882. package/dist/delegation/session-manager.js.map +1 -1
  883. package/dist/dispatcher/cli-argument-parser.d.ts +70 -0
  884. package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -0
  885. package/dist/dispatcher/cli-argument-parser.js +285 -0
  886. package/dist/dispatcher/cli-argument-parser.js.map +1 -0
  887. package/dist/dispatcher/dispatcher-context.d.ts +24 -0
  888. package/dist/dispatcher/dispatcher-context.d.ts.map +1 -0
  889. package/dist/dispatcher/dispatcher-context.js +11 -0
  890. package/dist/dispatcher/dispatcher-context.js.map +1 -0
  891. package/dist/dispatcher/environment-builder.d.ts +20 -0
  892. package/dist/dispatcher/environment-builder.d.ts.map +1 -0
  893. package/dist/dispatcher/environment-builder.js +95 -0
  894. package/dist/dispatcher/environment-builder.js.map +1 -0
  895. package/dist/dispatcher/flows/account-flow.d.ts +9 -0
  896. package/dist/dispatcher/flows/account-flow.d.ts.map +1 -0
  897. package/dist/dispatcher/flows/account-flow.js +50 -0
  898. package/dist/dispatcher/flows/account-flow.js.map +1 -0
  899. package/dist/dispatcher/flows/cliproxy-flow.d.ts +8 -0
  900. package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -0
  901. package/dist/dispatcher/flows/cliproxy-flow.js +165 -0
  902. package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -0
  903. package/dist/dispatcher/flows/copilot-flow.d.ts +8 -0
  904. package/dist/dispatcher/flows/copilot-flow.d.ts.map +1 -0
  905. package/dist/dispatcher/flows/copilot-flow.js +72 -0
  906. package/dist/dispatcher/flows/copilot-flow.js.map +1 -0
  907. package/dist/dispatcher/flows/cursor-flow.d.ts +8 -0
  908. package/dist/dispatcher/flows/cursor-flow.d.ts.map +1 -0
  909. package/dist/dispatcher/flows/cursor-flow.js +62 -0
  910. package/dist/dispatcher/flows/cursor-flow.js.map +1 -0
  911. package/dist/dispatcher/flows/default-flow.d.ts +10 -0
  912. package/dist/dispatcher/flows/default-flow.d.ts.map +1 -0
  913. package/dist/dispatcher/flows/default-flow.js +99 -0
  914. package/dist/dispatcher/flows/default-flow.js.map +1 -0
  915. package/dist/dispatcher/flows/settings-flow.d.ts +9 -0
  916. package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -0
  917. package/dist/dispatcher/flows/settings-flow.js +329 -0
  918. package/dist/dispatcher/flows/settings-flow.js.map +1 -0
  919. package/dist/dispatcher/flows/settings-image-analysis-prep.d.ts +28 -0
  920. package/dist/dispatcher/flows/settings-image-analysis-prep.d.ts.map +1 -0
  921. package/dist/dispatcher/flows/settings-image-analysis-prep.js +81 -0
  922. package/dist/dispatcher/flows/settings-image-analysis-prep.js.map +1 -0
  923. package/dist/dispatcher/pre-dispatch.d.ts +23 -0
  924. package/dist/dispatcher/pre-dispatch.d.ts.map +1 -0
  925. package/dist/dispatcher/pre-dispatch.js +156 -0
  926. package/dist/dispatcher/pre-dispatch.js.map +1 -0
  927. package/dist/dispatcher/profile-resolver.d.ts +65 -0
  928. package/dist/dispatcher/profile-resolver.d.ts.map +1 -0
  929. package/dist/dispatcher/profile-resolver.js +303 -0
  930. package/dist/dispatcher/profile-resolver.js.map +1 -0
  931. package/dist/dispatcher/target-executor.d.ts +26 -0
  932. package/dist/dispatcher/target-executor.d.ts.map +1 -0
  933. package/dist/dispatcher/target-executor.js +81 -0
  934. package/dist/dispatcher/target-executor.js.map +1 -0
  935. package/dist/docker/docker-assets.d.ts.map +1 -1
  936. package/dist/docker/docker-assets.js +2 -2
  937. package/dist/docker/docker-assets.js.map +1 -1
  938. package/dist/docker/docker-bootstrap.js +1 -1
  939. package/dist/docker/docker-bootstrap.js.map +1 -1
  940. package/dist/docker/docker-executor.d.ts +1 -0
  941. package/dist/docker/docker-executor.d.ts.map +1 -1
  942. package/dist/docker/supervisord-lifecycle.d.ts +17 -0
  943. package/dist/docker/supervisord-lifecycle.d.ts.map +1 -0
  944. package/dist/docker/supervisord-lifecycle.js +58 -0
  945. package/dist/docker/supervisord-lifecycle.js.map +1 -0
  946. package/dist/errors/error-handler.d.ts.map +1 -1
  947. package/dist/errors/error-handler.js +13 -0
  948. package/dist/errors/error-handler.js.map +1 -1
  949. package/dist/errors/error-types.d.ts +9 -0
  950. package/dist/errors/error-types.d.ts.map +1 -1
  951. package/dist/errors/error-types.js +15 -1
  952. package/dist/errors/error-types.js.map +1 -1
  953. package/dist/errors/index.d.ts +1 -1
  954. package/dist/errors/index.d.ts.map +1 -1
  955. package/dist/errors/index.js +3 -1
  956. package/dist/errors/index.js.map +1 -1
  957. package/dist/glmt/delta-accumulator.d.ts +4 -0
  958. package/dist/glmt/delta-accumulator.d.ts.map +1 -1
  959. package/dist/glmt/delta-accumulator.js +17 -5
  960. package/dist/glmt/delta-accumulator.js.map +1 -1
  961. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  962. package/dist/glmt/glmt-proxy.js +7 -0
  963. package/dist/glmt/glmt-proxy.js.map +1 -1
  964. package/dist/glmt/glmt-transformer.d.ts +1 -0
  965. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  966. package/dist/glmt/glmt-transformer.js +9 -2
  967. package/dist/glmt/glmt-transformer.js.map +1 -1
  968. package/dist/glmt/pipeline/stream-parser.d.ts +0 -3
  969. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -1
  970. package/dist/glmt/pipeline/stream-parser.js +20 -27
  971. package/dist/glmt/pipeline/stream-parser.js.map +1 -1
  972. package/dist/glmt/pipeline/tool-call-handler.d.ts +0 -7
  973. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -1
  974. package/dist/glmt/pipeline/tool-call-handler.js +15 -24
  975. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -1
  976. package/dist/glmt/sse-parser.d.ts.map +1 -1
  977. package/dist/glmt/sse-parser.js +46 -41
  978. package/dist/glmt/sse-parser.js.map +1 -1
  979. package/dist/management/checks/config-check.d.ts.map +1 -1
  980. package/dist/management/checks/config-check.js +2 -2
  981. package/dist/management/checks/config-check.js.map +1 -1
  982. package/dist/management/checks/env-check.d.ts.map +1 -1
  983. package/dist/management/checks/env-check.js +2 -1
  984. package/dist/management/checks/env-check.js.map +1 -1
  985. package/dist/management/checks/image-analysis-check.d.ts.map +1 -1
  986. package/dist/management/checks/image-analysis-check.js +25 -7
  987. package/dist/management/checks/image-analysis-check.js.map +1 -1
  988. package/dist/management/checks/profile-check.d.ts.map +1 -1
  989. package/dist/management/checks/profile-check.js +6 -7
  990. package/dist/management/checks/profile-check.js.map +1 -1
  991. package/dist/management/checks/symlink-check.d.ts.map +1 -1
  992. package/dist/management/checks/symlink-check.js +4 -5
  993. package/dist/management/checks/symlink-check.js.map +1 -1
  994. package/dist/management/checks/system-check.d.ts.map +1 -1
  995. package/dist/management/checks/system-check.js +3 -3
  996. package/dist/management/checks/system-check.js.map +1 -1
  997. package/dist/management/instance-directory.d.ts +4 -0
  998. package/dist/management/instance-directory.d.ts.map +1 -0
  999. package/dist/management/instance-directory.js +54 -0
  1000. package/dist/management/instance-directory.js.map +1 -0
  1001. package/dist/management/instance-manager.d.ts.map +1 -1
  1002. package/dist/management/instance-manager.js +18 -13
  1003. package/dist/management/instance-manager.js.map +1 -1
  1004. package/dist/management/plugin-path-normalizer.d.ts +7 -0
  1005. package/dist/management/plugin-path-normalizer.d.ts.map +1 -0
  1006. package/dist/management/plugin-path-normalizer.js +82 -0
  1007. package/dist/management/plugin-path-normalizer.js.map +1 -0
  1008. package/dist/management/recovery-manager.d.ts +6 -0
  1009. package/dist/management/recovery-manager.d.ts.map +1 -1
  1010. package/dist/management/recovery-manager.js +77 -7
  1011. package/dist/management/recovery-manager.js.map +1 -1
  1012. package/dist/management/repair/auto-repair.d.ts.map +1 -1
  1013. package/dist/management/repair/auto-repair.js +2 -2
  1014. package/dist/management/repair/auto-repair.js.map +1 -1
  1015. package/dist/management/shared-manager.d.ts +3 -2
  1016. package/dist/management/shared-manager.d.ts.map +1 -1
  1017. package/dist/management/shared-manager.js +41 -84
  1018. package/dist/management/shared-manager.js.map +1 -1
  1019. package/dist/proxy/index.d.ts +9 -0
  1020. package/dist/proxy/index.d.ts.map +1 -0
  1021. package/dist/proxy/index.js +25 -0
  1022. package/dist/proxy/index.js.map +1 -0
  1023. package/dist/proxy/profile-router.d.ts +28 -0
  1024. package/dist/proxy/profile-router.d.ts.map +1 -0
  1025. package/dist/proxy/profile-router.js +43 -0
  1026. package/dist/proxy/profile-router.js.map +1 -0
  1027. package/dist/proxy/proxy-daemon-entry.d.ts +2 -0
  1028. package/dist/proxy/proxy-daemon-entry.d.ts.map +1 -0
  1029. package/dist/proxy/proxy-daemon-entry.js +112 -0
  1030. package/dist/proxy/proxy-daemon-entry.js.map +1 -0
  1031. package/dist/proxy/proxy-daemon-paths.d.ts +12 -0
  1032. package/dist/proxy/proxy-daemon-paths.d.ts.map +1 -0
  1033. package/dist/proxy/proxy-daemon-paths.js +58 -0
  1034. package/dist/proxy/proxy-daemon-paths.js.map +1 -0
  1035. package/dist/proxy/proxy-daemon-state.d.ts +25 -0
  1036. package/dist/proxy/proxy-daemon-state.d.ts.map +1 -0
  1037. package/dist/proxy/proxy-daemon-state.js +199 -0
  1038. package/dist/proxy/proxy-daemon-state.js.map +1 -0
  1039. package/dist/proxy/proxy-daemon.d.ts +27 -0
  1040. package/dist/proxy/proxy-daemon.d.ts.map +1 -0
  1041. package/dist/proxy/proxy-daemon.js +614 -0
  1042. package/dist/proxy/proxy-daemon.js.map +1 -0
  1043. package/dist/proxy/proxy-env.d.ts +3 -0
  1044. package/dist/proxy/proxy-env.d.ts.map +1 -0
  1045. package/dist/proxy/proxy-env.js +26 -0
  1046. package/dist/proxy/proxy-env.js.map +1 -0
  1047. package/dist/proxy/proxy-port-resolver.d.ts +9 -0
  1048. package/dist/proxy/proxy-port-resolver.d.ts.map +1 -0
  1049. package/dist/proxy/proxy-port-resolver.js +62 -0
  1050. package/dist/proxy/proxy-port-resolver.js.map +1 -0
  1051. package/dist/proxy/request-router.d.ts +12 -0
  1052. package/dist/proxy/request-router.d.ts.map +1 -0
  1053. package/dist/proxy/request-router.js +163 -0
  1054. package/dist/proxy/request-router.js.map +1 -0
  1055. package/dist/proxy/routing-config.d.ts +10 -0
  1056. package/dist/proxy/routing-config.d.ts.map +1 -0
  1057. package/dist/proxy/routing-config.js +79 -0
  1058. package/dist/proxy/routing-config.js.map +1 -0
  1059. package/dist/proxy/server/http-helpers.d.ts +8 -0
  1060. package/dist/proxy/server/http-helpers.d.ts.map +1 -0
  1061. package/dist/proxy/server/http-helpers.js +73 -0
  1062. package/dist/proxy/server/http-helpers.js.map +1 -0
  1063. package/dist/proxy/server/messages-route.d.ts +12 -0
  1064. package/dist/proxy/server/messages-route.d.ts.map +1 -0
  1065. package/dist/proxy/server/messages-route.js +244 -0
  1066. package/dist/proxy/server/messages-route.js.map +1 -0
  1067. package/dist/proxy/server/proxy-server.d.ts +12 -0
  1068. package/dist/proxy/server/proxy-server.d.ts.map +1 -0
  1069. package/dist/proxy/server/proxy-server.js +140 -0
  1070. package/dist/proxy/server/proxy-server.js.map +1 -0
  1071. package/dist/proxy/transformers/request-transformer.d.ts +60 -0
  1072. package/dist/proxy/transformers/request-transformer.d.ts.map +1 -0
  1073. package/dist/proxy/transformers/request-transformer.js +452 -0
  1074. package/dist/proxy/transformers/request-transformer.js.map +1 -0
  1075. package/dist/proxy/transformers/sse-stream-transformer.d.ts +11 -0
  1076. package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -0
  1077. package/dist/proxy/transformers/sse-stream-transformer.js +200 -0
  1078. package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -0
  1079. package/dist/proxy/upstream-url.d.ts +3 -0
  1080. package/dist/proxy/upstream-url.d.ts.map +1 -0
  1081. package/dist/proxy/upstream-url.js +43 -0
  1082. package/dist/proxy/upstream-url.js.map +1 -0
  1083. package/dist/services/logging/index.d.ts +12 -0
  1084. package/dist/services/logging/index.d.ts.map +1 -0
  1085. package/dist/services/logging/index.js +37 -0
  1086. package/dist/services/logging/index.js.map +1 -0
  1087. package/dist/services/logging/log-buffer.d.ts +5 -0
  1088. package/dist/services/logging/log-buffer.d.ts.map +1 -0
  1089. package/dist/services/logging/log-buffer.js +20 -0
  1090. package/dist/services/logging/log-buffer.js.map +1 -0
  1091. package/dist/services/logging/log-config.d.ts +4 -0
  1092. package/dist/services/logging/log-config.d.ts.map +1 -0
  1093. package/dist/services/logging/log-config.js +68 -0
  1094. package/dist/services/logging/log-config.js.map +1 -0
  1095. package/dist/services/logging/log-context.d.ts +41 -0
  1096. package/dist/services/logging/log-context.d.ts.map +1 -0
  1097. package/dist/services/logging/log-context.js +51 -0
  1098. package/dist/services/logging/log-context.js.map +1 -0
  1099. package/dist/services/logging/log-paths.d.ts +8 -0
  1100. package/dist/services/logging/log-paths.d.ts.map +1 -0
  1101. package/dist/services/logging/log-paths.js +66 -0
  1102. package/dist/services/logging/log-paths.js.map +1 -0
  1103. package/dist/services/logging/log-reader.d.ts +5 -0
  1104. package/dist/services/logging/log-reader.d.ts.map +1 -0
  1105. package/dist/services/logging/log-reader.js +124 -0
  1106. package/dist/services/logging/log-reader.js.map +1 -0
  1107. package/dist/services/logging/log-redaction.d.ts +10 -0
  1108. package/dist/services/logging/log-redaction.d.ts.map +1 -0
  1109. package/dist/services/logging/log-redaction.js +90 -0
  1110. package/dist/services/logging/log-redaction.js.map +1 -0
  1111. package/dist/services/logging/log-storage.d.ts +4 -0
  1112. package/dist/services/logging/log-storage.d.ts.map +1 -0
  1113. package/dist/services/logging/log-storage.js +109 -0
  1114. package/dist/services/logging/log-storage.js.map +1 -0
  1115. package/dist/services/logging/log-types.d.ts +60 -0
  1116. package/dist/services/logging/log-types.d.ts.map +1 -0
  1117. package/dist/services/logging/log-types.js +33 -0
  1118. package/dist/services/logging/log-types.js.map +1 -0
  1119. package/dist/services/logging/logger.d.ts +26 -0
  1120. package/dist/services/logging/logger.d.ts.map +1 -0
  1121. package/dist/services/logging/logger.js +65 -0
  1122. package/dist/services/logging/logger.js.map +1 -0
  1123. package/dist/shared/agy-gemini-pro-compatibility.d.ts +15 -0
  1124. package/dist/shared/agy-gemini-pro-compatibility.d.ts.map +1 -0
  1125. package/dist/shared/agy-gemini-pro-compatibility.js +18 -0
  1126. package/dist/shared/agy-gemini-pro-compatibility.js.map +1 -0
  1127. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  1128. package/dist/shared/claude-extension-setup.js +7 -3
  1129. package/dist/shared/claude-extension-setup.js.map +1 -1
  1130. package/dist/shared/cliproxy-model-routing.d.ts +45 -0
  1131. package/dist/shared/cliproxy-model-routing.d.ts.map +1 -0
  1132. package/dist/shared/cliproxy-model-routing.js +144 -0
  1133. package/dist/shared/cliproxy-model-routing.js.map +1 -0
  1134. package/dist/shared/provider-preset-catalog.d.ts +4 -2
  1135. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  1136. package/dist/shared/provider-preset-catalog.js +17 -1
  1137. package/dist/shared/provider-preset-catalog.js.map +1 -1
  1138. package/dist/shared/toml-object.d.ts.map +1 -1
  1139. package/dist/shared/toml-object.js +6 -2
  1140. package/dist/shared/toml-object.js.map +1 -1
  1141. package/dist/targets/claude-adapter.d.ts +6 -1
  1142. package/dist/targets/claude-adapter.d.ts.map +1 -1
  1143. package/dist/targets/claude-adapter.js +20 -5
  1144. package/dist/targets/claude-adapter.js.map +1 -1
  1145. package/dist/targets/codex-adapter.d.ts +2 -0
  1146. package/dist/targets/codex-adapter.d.ts.map +1 -1
  1147. package/dist/targets/codex-adapter.js +43 -11
  1148. package/dist/targets/codex-adapter.js.map +1 -1
  1149. package/dist/targets/codex-cliproxy-provider-config.d.ts +16 -0
  1150. package/dist/targets/codex-cliproxy-provider-config.d.ts.map +1 -0
  1151. package/dist/targets/codex-cliproxy-provider-config.js +156 -0
  1152. package/dist/targets/codex-cliproxy-provider-config.js.map +1 -0
  1153. package/dist/targets/codex-detector.d.ts.map +1 -1
  1154. package/dist/targets/codex-detector.js +20 -9
  1155. package/dist/targets/codex-detector.js.map +1 -1
  1156. package/dist/targets/droid-adapter.d.ts +3 -2
  1157. package/dist/targets/droid-adapter.d.ts.map +1 -1
  1158. package/dist/targets/droid-adapter.js +15 -10
  1159. package/dist/targets/droid-adapter.js.map +1 -1
  1160. package/dist/targets/droid-config-manager.d.ts.map +1 -1
  1161. package/dist/targets/droid-config-manager.js +40 -0
  1162. package/dist/targets/droid-config-manager.js.map +1 -1
  1163. package/dist/targets/droid-provider.d.ts.map +1 -1
  1164. package/dist/targets/droid-provider.js +10 -5
  1165. package/dist/targets/droid-provider.js.map +1 -1
  1166. package/dist/targets/target-adapter.d.ts +5 -0
  1167. package/dist/targets/target-adapter.d.ts.map +1 -1
  1168. package/dist/targets/target-metadata.js +1 -1
  1169. package/dist/targets/target-metadata.js.map +1 -1
  1170. package/dist/targets/target-resolver.d.ts.map +1 -1
  1171. package/dist/targets/target-resolver.js +15 -0
  1172. package/dist/targets/target-resolver.js.map +1 -1
  1173. package/dist/targets/target-runtime-compatibility.js +1 -1
  1174. package/dist/targets/target-runtime-compatibility.js.map +1 -1
  1175. package/dist/types/cli.d.ts +1 -0
  1176. package/dist/types/cli.d.ts.map +1 -1
  1177. package/dist/types/config.d.ts +15 -0
  1178. package/dist/types/config.d.ts.map +1 -1
  1179. package/dist/types/config.js.map +1 -1
  1180. package/dist/types/index.d.ts +1 -1
  1181. package/dist/types/index.d.ts.map +1 -1
  1182. package/dist/types/index.js.map +1 -1
  1183. package/dist/ui/assets/accounts-BGuXLcVx.js +1 -0
  1184. package/dist/ui/assets/alert-dialog-jF9isdf5.js +1 -0
  1185. package/dist/ui/assets/api-Ci1Bzv_m.js +4 -0
  1186. package/dist/ui/assets/auth-section-sr19LsMn.js +1 -0
  1187. package/dist/ui/assets/backups-section-CM_YkWDa.js +1 -0
  1188. package/dist/ui/assets/channels-DS93mnFK.js +1 -0
  1189. package/dist/ui/assets/charts-eIPy2oG6.js +64 -0
  1190. package/dist/ui/assets/checkbox-sD9xsUKe.js +1 -0
  1191. package/dist/ui/assets/claude-extension-ITdAX2gE.js +1 -0
  1192. package/dist/ui/assets/cliproxy-Cy2nG9Cw.js +4 -0
  1193. package/dist/ui/assets/cliproxy-ai-providers-1HBAFOKl.js +15 -0
  1194. package/dist/ui/assets/cliproxy-control-panel-gTB6KR67.js +1 -0
  1195. package/dist/ui/assets/code-highlight-ClSMkeL5.js +1 -0
  1196. package/dist/ui/assets/codex-BxWQizC_.js +30 -0
  1197. package/dist/ui/assets/confirm-dialog-DyatJXUE.js +1 -0
  1198. package/dist/ui/assets/copilot-CozS5Tdw.js +3 -0
  1199. package/dist/ui/assets/cursor-CDnZVKJR.js +1 -0
  1200. package/dist/ui/assets/droid-C2B8C435.js +2 -0
  1201. package/dist/ui/assets/form-utils-CuHzLhJZ.js +20 -0
  1202. package/dist/ui/assets/globalenv-section-BaI_bbio.js +1 -0
  1203. package/dist/ui/assets/health-F88SuMCJ.js +1 -0
  1204. package/dist/ui/assets/icons-bxdfpJdB.js +1 -0
  1205. package/dist/ui/assets/index-9CEJIHJQ.js +1 -0
  1206. package/dist/ui/assets/index-BiZ2Cm5S.js +1 -0
  1207. package/dist/ui/assets/index-COJHdqX1.js +56 -0
  1208. package/dist/ui/assets/index-CmlrhroD.js +1 -0
  1209. package/dist/ui/assets/index-CsDC6zFL.js +1 -0
  1210. package/dist/ui/assets/index-DrEPnpI3.css +1 -0
  1211. package/dist/ui/assets/index-t3kB7EcJ.js +1 -0
  1212. package/dist/ui/assets/index-vCHZXitE.js +1 -0
  1213. package/dist/ui/assets/logs-D7MNTXPD.js +1 -0
  1214. package/dist/ui/assets/masked-input-P3yXLhDm.js +1 -0
  1215. package/dist/ui/assets/notifications-B4_o8bcr.js +1 -0
  1216. package/dist/ui/assets/providers/codebuddy.png +0 -0
  1217. package/dist/ui/assets/providers/cursor.svg +5 -0
  1218. package/dist/ui/assets/providers/gitlab.svg +22 -0
  1219. package/dist/ui/assets/providers/kilo.png +0 -0
  1220. package/dist/ui/assets/proxy-Br5aAkn0.js +9 -0
  1221. package/dist/ui/assets/proxy-status-widget-CCghVKQX.js +1 -0
  1222. package/dist/ui/assets/radix-ui-DvRtHWGI.js +51 -0
  1223. package/dist/ui/assets/raw-json-settings-editor-panel-DwppyNrK.js +1 -0
  1224. package/dist/ui/assets/react-vendor-Bjx91N7w.js +3 -0
  1225. package/dist/ui/assets/searchable-select-Db7X8GwA.js +1 -0
  1226. package/dist/ui/assets/separator-B-X_NPlM.js +1 -0
  1227. package/dist/ui/assets/shared-BbFiCDYw.js +8 -0
  1228. package/dist/ui/assets/table-BHS4nbeU.js +1 -0
  1229. package/dist/ui/assets/tanstack-Dg84L5cM.js +4 -0
  1230. package/dist/ui/assets/updates-BH08kNan.js +1 -0
  1231. package/dist/ui/assets/use-accounts-D_J-0yRj.js +1 -0
  1232. package/dist/ui/index.html +9 -9
  1233. package/dist/utils/browser/browser-policy.d.ts +22 -0
  1234. package/dist/utils/browser/browser-policy.d.ts.map +1 -0
  1235. package/dist/utils/browser/browser-policy.js +65 -0
  1236. package/dist/utils/browser/browser-policy.js.map +1 -0
  1237. package/dist/utils/browser/browser-settings.d.ts +52 -0
  1238. package/dist/utils/browser/browser-settings.d.ts.map +1 -0
  1239. package/dist/utils/browser/browser-settings.js +257 -0
  1240. package/dist/utils/browser/browser-settings.js.map +1 -0
  1241. package/dist/utils/browser/browser-setup.d.ts +21 -0
  1242. package/dist/utils/browser/browser-setup.d.ts.map +1 -0
  1243. package/dist/utils/browser/browser-setup.js +68 -0
  1244. package/dist/utils/browser/browser-setup.js.map +1 -0
  1245. package/dist/utils/browser/browser-status.d.ts +42 -0
  1246. package/dist/utils/browser/browser-status.d.ts.map +1 -0
  1247. package/dist/utils/browser/browser-status.js +251 -0
  1248. package/dist/utils/browser/browser-status.js.map +1 -0
  1249. package/dist/utils/browser/chrome-reuse.d.ts +18 -0
  1250. package/dist/utils/browser/chrome-reuse.d.ts.map +1 -0
  1251. package/dist/utils/browser/chrome-reuse.js +194 -0
  1252. package/dist/utils/browser/chrome-reuse.js.map +1 -0
  1253. package/dist/utils/browser/claude-tool-args.d.ts +2 -0
  1254. package/dist/utils/browser/claude-tool-args.d.ts.map +1 -0
  1255. package/dist/utils/browser/claude-tool-args.js +22 -0
  1256. package/dist/utils/browser/claude-tool-args.js.map +1 -0
  1257. package/dist/utils/browser/index.d.ts +16 -0
  1258. package/dist/utils/browser/index.d.ts.map +1 -0
  1259. package/dist/utils/browser/index.js +45 -0
  1260. package/dist/utils/browser/index.js.map +1 -0
  1261. package/dist/utils/browser/mcp-installer.d.ts +14 -0
  1262. package/dist/utils/browser/mcp-installer.d.ts.map +1 -0
  1263. package/dist/utils/browser/mcp-installer.js +356 -0
  1264. package/dist/utils/browser/mcp-installer.js.map +1 -0
  1265. package/dist/utils/browser/platform.d.ts +4 -0
  1266. package/dist/utils/browser/platform.d.ts.map +1 -0
  1267. package/dist/utils/browser/platform.js +12 -0
  1268. package/dist/utils/browser/platform.js.map +1 -0
  1269. package/dist/utils/browser-codex-overrides.d.ts +3 -0
  1270. package/dist/utils/browser-codex-overrides.d.ts.map +1 -0
  1271. package/dist/utils/browser-codex-overrides.js +29 -0
  1272. package/dist/utils/browser-codex-overrides.js.map +1 -0
  1273. package/dist/utils/claude-detector.d.ts +1 -0
  1274. package/dist/utils/claude-detector.d.ts.map +1 -1
  1275. package/dist/utils/claude-detector.js +2 -1
  1276. package/dist/utils/claude-detector.js.map +1 -1
  1277. package/dist/utils/claude-spawner.d.ts +1 -0
  1278. package/dist/utils/claude-spawner.d.ts.map +1 -1
  1279. package/dist/utils/claude-spawner.js +1 -1
  1280. package/dist/utils/claude-spawner.js.map +1 -1
  1281. package/dist/utils/claude-subcommand-detector.d.ts +45 -0
  1282. package/dist/utils/claude-subcommand-detector.d.ts.map +1 -0
  1283. package/dist/utils/claude-subcommand-detector.js +179 -0
  1284. package/dist/utils/claude-subcommand-detector.js.map +1 -0
  1285. package/dist/utils/claude-tool-args.d.ts +7 -0
  1286. package/dist/utils/claude-tool-args.d.ts.map +1 -0
  1287. package/dist/utils/claude-tool-args.js +43 -0
  1288. package/dist/utils/claude-tool-args.js.map +1 -0
  1289. package/dist/utils/config-manager.d.ts +5 -0
  1290. package/dist/utils/config-manager.d.ts.map +1 -1
  1291. package/dist/utils/config-manager.js +16 -3
  1292. package/dist/utils/config-manager.js.map +1 -1
  1293. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +1 -1
  1294. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -1
  1295. package/dist/utils/hooks/get-image-analysis-hook-env.js +11 -7
  1296. package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -1
  1297. package/dist/utils/hooks/image-analysis-backend-resolver.js +2 -2
  1298. package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
  1299. package/dist/utils/hooks/image-analysis-runtime-status.d.ts +4 -4
  1300. package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
  1301. package/dist/utils/hooks/image-analysis-runtime-status.js +15 -11
  1302. package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
  1303. package/dist/utils/hooks/image-analyzer-hook-configuration.d.ts.map +1 -1
  1304. package/dist/utils/hooks/image-analyzer-hook-configuration.js +2 -2
  1305. package/dist/utils/hooks/image-analyzer-hook-configuration.js.map +1 -1
  1306. package/dist/utils/hooks/image-analyzer-hook-installer.d.ts.map +1 -1
  1307. package/dist/utils/hooks/image-analyzer-hook-installer.js +2 -2
  1308. package/dist/utils/hooks/image-analyzer-hook-installer.js.map +1 -1
  1309. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts +21 -0
  1310. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts.map +1 -0
  1311. package/dist/utils/hooks/image-analyzer-hook-utils.js +81 -0
  1312. package/dist/utils/hooks/image-analyzer-hook-utils.js.map +1 -0
  1313. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts +1 -0
  1314. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts.map +1 -1
  1315. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js +35 -14
  1316. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js.map +1 -1
  1317. package/dist/utils/hooks/index.d.ts +1 -0
  1318. package/dist/utils/hooks/index.d.ts.map +1 -1
  1319. package/dist/utils/hooks/index.js +3 -1
  1320. package/dist/utils/hooks/index.js.map +1 -1
  1321. package/dist/utils/image-analysis/claude-tool-args.d.ts +3 -0
  1322. package/dist/utils/image-analysis/claude-tool-args.d.ts.map +1 -1
  1323. package/dist/utils/image-analysis/claude-tool-args.js +25 -47
  1324. package/dist/utils/image-analysis/claude-tool-args.js.map +1 -1
  1325. package/dist/utils/image-analysis/index.d.ts +1 -0
  1326. package/dist/utils/image-analysis/index.d.ts.map +1 -1
  1327. package/dist/utils/image-analysis/index.js +6 -1
  1328. package/dist/utils/image-analysis/index.js.map +1 -1
  1329. package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -1
  1330. package/dist/utils/image-analysis/mcp-installer.js +5 -5
  1331. package/dist/utils/image-analysis/mcp-installer.js.map +1 -1
  1332. package/dist/utils/image-analysis/repair.d.ts +12 -0
  1333. package/dist/utils/image-analysis/repair.d.ts.map +1 -0
  1334. package/dist/utils/image-analysis/repair.js +105 -0
  1335. package/dist/utils/image-analysis/repair.js.map +1 -0
  1336. package/dist/utils/openai-compat-launch-settings.d.ts +7 -0
  1337. package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -0
  1338. package/dist/utils/openai-compat-launch-settings.js +61 -0
  1339. package/dist/utils/openai-compat-launch-settings.js.map +1 -0
  1340. package/dist/utils/package-manager-detector.d.ts +31 -4
  1341. package/dist/utils/package-manager-detector.d.ts.map +1 -1
  1342. package/dist/utils/package-manager-detector.js +249 -60
  1343. package/dist/utils/package-manager-detector.js.map +1 -1
  1344. package/dist/utils/prompt-injection-strategy.d.ts +54 -0
  1345. package/dist/utils/prompt-injection-strategy.d.ts.map +1 -0
  1346. package/dist/utils/prompt-injection-strategy.js +128 -0
  1347. package/dist/utils/prompt-injection-strategy.js.map +1 -0
  1348. package/dist/utils/retry-strategy.d.ts +37 -0
  1349. package/dist/utils/retry-strategy.d.ts.map +1 -0
  1350. package/dist/utils/retry-strategy.js +99 -0
  1351. package/dist/utils/retry-strategy.js.map +1 -0
  1352. package/dist/utils/shell-executor.d.ts +32 -1
  1353. package/dist/utils/shell-executor.d.ts.map +1 -1
  1354. package/dist/utils/shell-executor.js +193 -30
  1355. package/dist/utils/shell-executor.js.map +1 -1
  1356. package/dist/utils/update-checker.d.ts +1 -1
  1357. package/dist/utils/update-checker.d.ts.map +1 -1
  1358. package/dist/utils/websearch/claude-tool-args.d.ts +7 -0
  1359. package/dist/utils/websearch/claude-tool-args.d.ts.map +1 -1
  1360. package/dist/utils/websearch/claude-tool-args.js +32 -50
  1361. package/dist/utils/websearch/claude-tool-args.js.map +1 -1
  1362. package/dist/utils/websearch/hook-config.d.ts.map +1 -1
  1363. package/dist/utils/websearch/hook-config.js +3 -3
  1364. package/dist/utils/websearch/hook-config.js.map +1 -1
  1365. package/dist/utils/websearch/hook-env.d.ts.map +1 -1
  1366. package/dist/utils/websearch/hook-env.js +21 -3
  1367. package/dist/utils/websearch/hook-env.js.map +1 -1
  1368. package/dist/utils/websearch/hook-installer.d.ts.map +1 -1
  1369. package/dist/utils/websearch/hook-installer.js +2 -2
  1370. package/dist/utils/websearch/hook-installer.js.map +1 -1
  1371. package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
  1372. package/dist/utils/websearch/mcp-installer.js +5 -5
  1373. package/dist/utils/websearch/mcp-installer.js.map +1 -1
  1374. package/dist/utils/websearch/profile-hook-injector.d.ts.map +1 -1
  1375. package/dist/utils/websearch/profile-hook-injector.js +3 -3
  1376. package/dist/utils/websearch/profile-hook-injector.js.map +1 -1
  1377. package/dist/utils/websearch/provider-secrets.js +2 -2
  1378. package/dist/utils/websearch/provider-secrets.js.map +1 -1
  1379. package/dist/utils/websearch/status.d.ts +1 -1
  1380. package/dist/utils/websearch/status.d.ts.map +1 -1
  1381. package/dist/utils/websearch/status.js +37 -16
  1382. package/dist/utils/websearch/status.js.map +1 -1
  1383. package/dist/utils/websearch/trace.d.ts +1 -0
  1384. package/dist/utils/websearch/trace.d.ts.map +1 -1
  1385. package/dist/utils/websearch/trace.js +27 -5
  1386. package/dist/utils/websearch/trace.js.map +1 -1
  1387. package/dist/utils/websearch/types.d.ts +12 -2
  1388. package/dist/utils/websearch/types.d.ts.map +1 -1
  1389. package/dist/utils/websearch/types.js +38 -0
  1390. package/dist/utils/websearch/types.js.map +1 -1
  1391. package/dist/web-server/file-watcher.js +2 -2
  1392. package/dist/web-server/file-watcher.js.map +1 -1
  1393. package/dist/web-server/health/cliproxy-checks.js +2 -2
  1394. package/dist/web-server/health/cliproxy-checks.js.map +1 -1
  1395. package/dist/web-server/health/config-checks.d.ts.map +1 -1
  1396. package/dist/web-server/health/config-checks.js +3 -3
  1397. package/dist/web-server/health/config-checks.js.map +1 -1
  1398. package/dist/web-server/health/profile-checks.d.ts.map +1 -1
  1399. package/dist/web-server/health/profile-checks.js +5 -6
  1400. package/dist/web-server/health/profile-checks.js.map +1 -1
  1401. package/dist/web-server/health/symlink-checks.d.ts.map +1 -1
  1402. package/dist/web-server/health/symlink-checks.js +2 -3
  1403. package/dist/web-server/health/symlink-checks.js.map +1 -1
  1404. package/dist/web-server/health/websearch-checks.js +1 -1
  1405. package/dist/web-server/health/websearch-checks.js.map +1 -1
  1406. package/dist/web-server/health-service.d.ts.map +1 -1
  1407. package/dist/web-server/health-service.js +7 -6
  1408. package/dist/web-server/health-service.js.map +1 -1
  1409. package/dist/web-server/index.d.ts.map +1 -1
  1410. package/dist/web-server/index.js +102 -18
  1411. package/dist/web-server/index.js.map +1 -1
  1412. package/dist/web-server/jsonl-parser.d.ts.map +1 -1
  1413. package/dist/web-server/jsonl-parser.js +22 -4
  1414. package/dist/web-server/jsonl-parser.js.map +1 -1
  1415. package/dist/web-server/middleware/auth-middleware.d.ts +7 -3
  1416. package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -1
  1417. package/dist/web-server/middleware/auth-middleware.js +103 -8
  1418. package/dist/web-server/middleware/auth-middleware.js.map +1 -1
  1419. package/dist/web-server/middleware/request-logging-middleware.d.ts +3 -0
  1420. package/dist/web-server/middleware/request-logging-middleware.d.ts.map +1 -0
  1421. package/dist/web-server/middleware/request-logging-middleware.js +30 -0
  1422. package/dist/web-server/middleware/request-logging-middleware.js.map +1 -0
  1423. package/dist/web-server/model-pricing.d.ts +8 -6
  1424. package/dist/web-server/model-pricing.d.ts.map +1 -1
  1425. package/dist/web-server/model-pricing.js +184 -54
  1426. package/dist/web-server/model-pricing.js.map +1 -1
  1427. package/dist/web-server/models-dev/pricing-resolver.d.ts +18 -0
  1428. package/dist/web-server/models-dev/pricing-resolver.d.ts.map +1 -0
  1429. package/dist/web-server/models-dev/pricing-resolver.js +160 -0
  1430. package/dist/web-server/models-dev/pricing-resolver.js.map +1 -0
  1431. package/dist/web-server/models-dev/registry-cache.d.ts +19 -0
  1432. package/dist/web-server/models-dev/registry-cache.d.ts.map +1 -0
  1433. package/dist/web-server/models-dev/registry-cache.js +165 -0
  1434. package/dist/web-server/models-dev/registry-cache.js.map +1 -0
  1435. package/dist/web-server/models-dev/types.d.ts +39 -0
  1436. package/dist/web-server/models-dev/types.d.ts.map +1 -0
  1437. package/dist/web-server/models-dev/types.js +3 -0
  1438. package/dist/web-server/models-dev/types.js.map +1 -0
  1439. package/dist/web-server/overview-routes.d.ts.map +1 -1
  1440. package/dist/web-server/overview-routes.js +3 -3
  1441. package/dist/web-server/overview-routes.js.map +1 -1
  1442. package/dist/web-server/routes/account-route-helpers.d.ts +3 -0
  1443. package/dist/web-server/routes/account-route-helpers.d.ts.map +1 -1
  1444. package/dist/web-server/routes/account-route-helpers.js.map +1 -1
  1445. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  1446. package/dist/web-server/routes/account-routes.js +105 -12
  1447. package/dist/web-server/routes/account-routes.js.map +1 -1
  1448. package/dist/web-server/routes/auth-routes.d.ts +10 -0
  1449. package/dist/web-server/routes/auth-routes.d.ts.map +1 -1
  1450. package/dist/web-server/routes/auth-routes.js +37 -10
  1451. package/dist/web-server/routes/auth-routes.js.map +1 -1
  1452. package/dist/web-server/routes/browser-routes.d.ts +3 -0
  1453. package/dist/web-server/routes/browser-routes.d.ts.map +1 -0
  1454. package/dist/web-server/routes/browser-routes.js +182 -0
  1455. package/dist/web-server/routes/browser-routes.js.map +1 -0
  1456. package/dist/web-server/routes/catalog-routes.d.ts.map +1 -1
  1457. package/dist/web-server/routes/catalog-routes.js +9 -8
  1458. package/dist/web-server/routes/catalog-routes.js.map +1 -1
  1459. package/dist/web-server/routes/channels-routes.d.ts.map +1 -1
  1460. package/dist/web-server/routes/channels-routes.js +4 -4
  1461. package/dist/web-server/routes/channels-routes.js.map +1 -1
  1462. package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
  1463. package/dist/web-server/routes/claude-extension-routes.js +5 -0
  1464. package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
  1465. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +8 -0
  1466. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  1467. package/dist/web-server/routes/cliproxy-auth-routes.js +281 -89
  1468. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  1469. package/dist/web-server/routes/cliproxy-local-proxy.d.ts.map +1 -1
  1470. package/dist/web-server/routes/cliproxy-local-proxy.js +27 -17
  1471. package/dist/web-server/routes/cliproxy-local-proxy.js.map +1 -1
  1472. package/dist/web-server/routes/cliproxy-routing-routes.d.ts +3 -0
  1473. package/dist/web-server/routes/cliproxy-routing-routes.d.ts.map +1 -0
  1474. package/dist/web-server/routes/cliproxy-routing-routes.js +69 -0
  1475. package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -0
  1476. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +35 -0
  1477. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  1478. package/dist/web-server/routes/cliproxy-stats-routes.js +86 -42
  1479. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  1480. package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -1
  1481. package/dist/web-server/routes/cliproxy-sync-routes.js +2 -2
  1482. package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -1
  1483. package/dist/web-server/routes/codex-routes.d.ts.map +1 -1
  1484. package/dist/web-server/routes/codex-routes.js +7 -0
  1485. package/dist/web-server/routes/codex-routes.js.map +1 -1
  1486. package/dist/web-server/routes/config-routes.d.ts.map +1 -1
  1487. package/dist/web-server/routes/config-routes.js +9 -6
  1488. package/dist/web-server/routes/config-routes.js.map +1 -1
  1489. package/dist/web-server/routes/copilot-routes.d.ts.map +1 -1
  1490. package/dist/web-server/routes/copilot-routes.js +3 -3
  1491. package/dist/web-server/routes/copilot-routes.js.map +1 -1
  1492. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -1
  1493. package/dist/web-server/routes/copilot-settings-routes.js +6 -7
  1494. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -1
  1495. package/dist/web-server/routes/cursor-routes.d.ts +2 -0
  1496. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
  1497. package/dist/web-server/routes/cursor-routes.js +48 -6
  1498. package/dist/web-server/routes/cursor-routes.js.map +1 -1
  1499. package/dist/web-server/routes/cursor-settings-routes.d.ts.map +1 -1
  1500. package/dist/web-server/routes/cursor-settings-routes.js +8 -9
  1501. package/dist/web-server/routes/cursor-settings-routes.js.map +1 -1
  1502. package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
  1503. package/dist/web-server/routes/image-analysis-routes.js +7 -17
  1504. package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
  1505. package/dist/web-server/routes/index.d.ts.map +1 -1
  1506. package/dist/web-server/routes/index.js +25 -0
  1507. package/dist/web-server/routes/index.js.map +1 -1
  1508. package/dist/web-server/routes/logs-routes.d.ts +3 -0
  1509. package/dist/web-server/routes/logs-routes.d.ts.map +1 -0
  1510. package/dist/web-server/routes/logs-routes.js +75 -0
  1511. package/dist/web-server/routes/logs-routes.js.map +1 -0
  1512. package/dist/web-server/routes/misc-routes.d.ts.map +1 -1
  1513. package/dist/web-server/routes/misc-routes.js +10 -11
  1514. package/dist/web-server/routes/misc-routes.js.map +1 -1
  1515. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  1516. package/dist/web-server/routes/profile-routes.js +21 -3
  1517. package/dist/web-server/routes/profile-routes.js.map +1 -1
  1518. package/dist/web-server/routes/provider-routes.js +1 -1
  1519. package/dist/web-server/routes/provider-routes.js.map +1 -1
  1520. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
  1521. package/dist/web-server/routes/proxy-routes.js +42 -12
  1522. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  1523. package/dist/web-server/routes/route-helpers.d.ts +1 -0
  1524. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  1525. package/dist/web-server/routes/route-helpers.js +19 -7
  1526. package/dist/web-server/routes/route-helpers.js.map +1 -1
  1527. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  1528. package/dist/web-server/routes/settings-routes.js +110 -23
  1529. package/dist/web-server/routes/settings-routes.js.map +1 -1
  1530. package/dist/web-server/routes/variant-routes.js +1 -1
  1531. package/dist/web-server/routes/variant-routes.js.map +1 -1
  1532. package/dist/web-server/routes/websearch-routes.d.ts.map +1 -1
  1533. package/dist/web-server/routes/websearch-routes.js +41 -4
  1534. package/dist/web-server/routes/websearch-routes.js.map +1 -1
  1535. package/dist/web-server/services/claude-extension-binding-service.js +2 -2
  1536. package/dist/web-server/services/claude-extension-binding-service.js.map +1 -1
  1537. package/dist/web-server/services/cliproxy-dashboard-install-service.d.ts.map +1 -1
  1538. package/dist/web-server/services/cliproxy-dashboard-install-service.js +22 -6
  1539. package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
  1540. package/dist/web-server/services/codex-dashboard-service.d.ts +1 -0
  1541. package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
  1542. package/dist/web-server/services/compatible-cli-docs-registry.d.ts.map +1 -1
  1543. package/dist/web-server/services/compatible-cli-docs-registry.js +1 -0
  1544. package/dist/web-server/services/compatible-cli-docs-registry.js.map +1 -1
  1545. package/dist/web-server/services/droid-dashboard-service.d.ts +1 -0
  1546. package/dist/web-server/services/droid-dashboard-service.d.ts.map +1 -1
  1547. package/dist/web-server/services/logs-dashboard-service.d.ts +7 -0
  1548. package/dist/web-server/services/logs-dashboard-service.d.ts.map +1 -0
  1549. package/dist/web-server/services/logs-dashboard-service.js +33 -0
  1550. package/dist/web-server/services/logs-dashboard-service.js.map +1 -0
  1551. package/dist/web-server/shared-routes-collections.d.ts +13 -0
  1552. package/dist/web-server/shared-routes-collections.d.ts.map +1 -0
  1553. package/dist/web-server/shared-routes-collections.js +170 -0
  1554. package/dist/web-server/shared-routes-collections.js.map +1 -0
  1555. package/dist/web-server/shared-routes-content.d.ts +16 -0
  1556. package/dist/web-server/shared-routes-content.d.ts.map +1 -0
  1557. package/dist/web-server/shared-routes-content.js +152 -0
  1558. package/dist/web-server/shared-routes-content.js.map +1 -0
  1559. package/dist/web-server/shared-routes-markdown-walker.d.ts +12 -0
  1560. package/dist/web-server/shared-routes-markdown-walker.d.ts.map +1 -0
  1561. package/dist/web-server/shared-routes-markdown-walker.js +97 -0
  1562. package/dist/web-server/shared-routes-markdown-walker.js.map +1 -0
  1563. package/dist/web-server/shared-routes-markdown.d.ts +18 -0
  1564. package/dist/web-server/shared-routes-markdown.d.ts.map +1 -0
  1565. package/dist/web-server/shared-routes-markdown.js +167 -0
  1566. package/dist/web-server/shared-routes-markdown.js.map +1 -0
  1567. package/dist/web-server/shared-routes-path-guards.d.ts +16 -0
  1568. package/dist/web-server/shared-routes-path-guards.d.ts.map +1 -0
  1569. package/dist/web-server/shared-routes-path-guards.js +93 -0
  1570. package/dist/web-server/shared-routes-path-guards.js.map +1 -0
  1571. package/dist/web-server/shared-routes-plugin-registry-content.d.ts +12 -0
  1572. package/dist/web-server/shared-routes-plugin-registry-content.d.ts.map +1 -0
  1573. package/dist/web-server/shared-routes-plugin-registry-content.js +93 -0
  1574. package/dist/web-server/shared-routes-plugin-registry-content.js.map +1 -0
  1575. package/dist/web-server/shared-routes-plugins.d.ts +21 -0
  1576. package/dist/web-server/shared-routes-plugins.d.ts.map +1 -0
  1577. package/dist/web-server/shared-routes-plugins.js +197 -0
  1578. package/dist/web-server/shared-routes-plugins.js.map +1 -0
  1579. package/dist/web-server/shared-routes-symlink-status.d.ts +27 -0
  1580. package/dist/web-server/shared-routes-symlink-status.d.ts.map +1 -0
  1581. package/dist/web-server/shared-routes-symlink-status.js +135 -0
  1582. package/dist/web-server/shared-routes-symlink-status.js.map +1 -0
  1583. package/dist/web-server/shared-routes-types.d.ts +23 -0
  1584. package/dist/web-server/shared-routes-types.d.ts.map +1 -0
  1585. package/dist/web-server/shared-routes-types.js +15 -0
  1586. package/dist/web-server/shared-routes-types.js.map +1 -0
  1587. package/dist/web-server/shared-routes.d.ts +2 -1
  1588. package/dist/web-server/shared-routes.d.ts.map +1 -1
  1589. package/dist/web-server/shared-routes.js +50 -456
  1590. package/dist/web-server/shared-routes.js.map +1 -1
  1591. package/dist/web-server/usage/aggregator.d.ts +26 -7
  1592. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  1593. package/dist/web-server/usage/aggregator.js +193 -56
  1594. package/dist/web-server/usage/aggregator.js.map +1 -1
  1595. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +1 -16
  1596. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -1
  1597. package/dist/web-server/usage/cliproxy-usage-syncer.js +186 -61
  1598. package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -1
  1599. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +22 -7
  1600. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  1601. package/dist/web-server/usage/cliproxy-usage-transformer.js +278 -28
  1602. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  1603. package/dist/web-server/usage/codex-native-usage-collector.d.ts +13 -0
  1604. package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -0
  1605. package/dist/web-server/usage/codex-native-usage-collector.js +291 -0
  1606. package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -0
  1607. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -1
  1608. package/dist/web-server/usage/data-aggregator.js +45 -46
  1609. package/dist/web-server/usage/data-aggregator.js.map +1 -1
  1610. package/dist/web-server/usage/disk-cache.js +2 -2
  1611. package/dist/web-server/usage/disk-cache.js.map +1 -1
  1612. package/dist/web-server/usage/droid-native-usage-collector.d.ts +14 -0
  1613. package/dist/web-server/usage/droid-native-usage-collector.d.ts.map +1 -0
  1614. package/dist/web-server/usage/droid-native-usage-collector.js +201 -0
  1615. package/dist/web-server/usage/droid-native-usage-collector.js.map +1 -0
  1616. package/dist/web-server/usage/handlers.d.ts +12 -8
  1617. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  1618. package/dist/web-server/usage/handlers.js +213 -81
  1619. package/dist/web-server/usage/handlers.js.map +1 -1
  1620. package/dist/web-server/usage/model-identity.d.ts +16 -0
  1621. package/dist/web-server/usage/model-identity.d.ts.map +1 -0
  1622. package/dist/web-server/usage/model-identity.js +70 -0
  1623. package/dist/web-server/usage/model-identity.js.map +1 -0
  1624. package/dist/web-server/usage/profile-filter.d.ts +13 -0
  1625. package/dist/web-server/usage/profile-filter.d.ts.map +1 -0
  1626. package/dist/web-server/usage/profile-filter.js +35 -0
  1627. package/dist/web-server/usage/profile-filter.js.map +1 -0
  1628. package/dist/web-server/usage/routes.d.ts.map +1 -1
  1629. package/dist/web-server/usage/routes.js +22 -7
  1630. package/dist/web-server/usage/routes.js.map +1 -1
  1631. package/dist/web-server/usage/sqlite-cli.d.ts +27 -0
  1632. package/dist/web-server/usage/sqlite-cli.d.ts.map +1 -0
  1633. package/dist/web-server/usage/sqlite-cli.js +186 -0
  1634. package/dist/web-server/usage/sqlite-cli.js.map +1 -0
  1635. package/dist/web-server/usage/types.d.ts +14 -0
  1636. package/dist/web-server/usage/types.d.ts.map +1 -1
  1637. package/dist/web-server/websocket.d.ts.map +1 -1
  1638. package/dist/web-server/websocket.js +25 -16
  1639. package/dist/web-server/websocket.js.map +1 -1
  1640. package/lib/hooks/image-analyzer-transformer.cjs +54 -3
  1641. package/lib/hooks/websearch-transformer.cjs +136 -0
  1642. package/lib/mcp/ccs-browser-server.cjs +6769 -0
  1643. package/lib/mcp/ccs-websearch-server.cjs +1 -1
  1644. package/package.json +6 -6
  1645. package/scripts/ci-parity-gate.sh +22 -3
  1646. package/scripts/dev-release.sh +4 -2
  1647. package/scripts/ensure-deps.sh +18 -0
  1648. package/scripts/run-test-bucket.js +188 -0
  1649. package/scripts/verify-bundle.js +4 -1
  1650. package/dist/cliproxy/account-manager.d.ts +0 -16
  1651. package/dist/cliproxy/account-manager.d.ts.map +0 -1
  1652. package/dist/cliproxy/account-manager.js +0 -51
  1653. package/dist/cliproxy/account-manager.js.map +0 -1
  1654. package/dist/cliproxy/account-safety.d.ts +0 -92
  1655. package/dist/cliproxy/account-safety.d.ts.map +0 -1
  1656. package/dist/cliproxy/account-safety.js +0 -496
  1657. package/dist/cliproxy/account-safety.js.map +0 -1
  1658. package/dist/cliproxy/account-stats-key.d.ts.map +0 -1
  1659. package/dist/cliproxy/account-stats-key.js.map +0 -1
  1660. package/dist/cliproxy/antigravity-responsibility.d.ts.map +0 -1
  1661. package/dist/cliproxy/antigravity-responsibility.js +0 -171
  1662. package/dist/cliproxy/antigravity-responsibility.js.map +0 -1
  1663. package/dist/cliproxy/auth/gemini-token-refresh.d.ts +0 -40
  1664. package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +0 -1
  1665. package/dist/cliproxy/auth/gemini-token-refresh.js +0 -371
  1666. package/dist/cliproxy/auth/gemini-token-refresh.js.map +0 -1
  1667. package/dist/cliproxy/auth-handler.d.ts +0 -31
  1668. package/dist/cliproxy/auth-handler.d.ts.map +0 -1
  1669. package/dist/cliproxy/auth-handler.js +0 -60
  1670. package/dist/cliproxy/auth-handler.js.map +0 -1
  1671. package/dist/cliproxy/auth-session-manager.d.ts +0 -51
  1672. package/dist/cliproxy/auth-session-manager.d.ts.map +0 -1
  1673. package/dist/cliproxy/auth-session-manager.js +0 -134
  1674. package/dist/cliproxy/auth-session-manager.js.map +0 -1
  1675. package/dist/cliproxy/auth-token-manager.d.ts.map +0 -1
  1676. package/dist/cliproxy/auth-token-manager.js +0 -184
  1677. package/dist/cliproxy/auth-token-manager.js.map +0 -1
  1678. package/dist/cliproxy/auth-utils.d.ts +0 -16
  1679. package/dist/cliproxy/auth-utils.d.ts.map +0 -1
  1680. package/dist/cliproxy/auth-utils.js +0 -33
  1681. package/dist/cliproxy/auth-utils.js.map +0 -1
  1682. package/dist/cliproxy/base-config-loader.d.ts +0 -42
  1683. package/dist/cliproxy/base-config-loader.d.ts.map +0 -1
  1684. package/dist/cliproxy/base-config-loader.js +0 -123
  1685. package/dist/cliproxy/base-config-loader.js.map +0 -1
  1686. package/dist/cliproxy/catalog-cache.d.ts +0 -39
  1687. package/dist/cliproxy/catalog-cache.d.ts.map +0 -1
  1688. package/dist/cliproxy/catalog-cache.js +0 -254
  1689. package/dist/cliproxy/catalog-cache.js.map +0 -1
  1690. package/dist/cliproxy/cliproxy-executor.d.ts +0 -16
  1691. package/dist/cliproxy/cliproxy-executor.d.ts.map +0 -1
  1692. package/dist/cliproxy/cliproxy-executor.js +0 -27
  1693. package/dist/cliproxy/cliproxy-executor.js.map +0 -1
  1694. package/dist/cliproxy/codex-plan-compatibility.d.ts +0 -39
  1695. package/dist/cliproxy/codex-plan-compatibility.d.ts.map +0 -1
  1696. package/dist/cliproxy/codex-plan-compatibility.js +0 -134
  1697. package/dist/cliproxy/codex-plan-compatibility.js.map +0 -1
  1698. package/dist/cliproxy/codex-reasoning-proxy.d.ts +0 -61
  1699. package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +0 -1
  1700. package/dist/cliproxy/codex-reasoning-proxy.js +0 -495
  1701. package/dist/cliproxy/codex-reasoning-proxy.js.map +0 -1
  1702. package/dist/cliproxy/composite-validator.d.ts.map +0 -1
  1703. package/dist/cliproxy/composite-validator.js +0 -94
  1704. package/dist/cliproxy/composite-validator.js.map +0 -1
  1705. package/dist/cliproxy/config-generator.d.ts +0 -15
  1706. package/dist/cliproxy/config-generator.d.ts.map +0 -1
  1707. package/dist/cliproxy/config-generator.js +0 -32
  1708. package/dist/cliproxy/config-generator.js.map +0 -1
  1709. package/dist/cliproxy/device-code-handler.d.ts.map +0 -1
  1710. package/dist/cliproxy/device-code-handler.js.map +0 -1
  1711. package/dist/cliproxy/gemini-cli-quota-normalizer.d.ts.map +0 -1
  1712. package/dist/cliproxy/gemini-cli-quota-normalizer.js +0 -122
  1713. package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +0 -1
  1714. package/dist/cliproxy/https-tunnel-proxy.d.ts.map +0 -1
  1715. package/dist/cliproxy/https-tunnel-proxy.js +0 -224
  1716. package/dist/cliproxy/https-tunnel-proxy.js.map +0 -1
  1717. package/dist/cliproxy/management-api-client.d.ts +0 -81
  1718. package/dist/cliproxy/management-api-client.d.ts.map +0 -1
  1719. package/dist/cliproxy/management-api-client.js +0 -381
  1720. package/dist/cliproxy/management-api-client.js.map +0 -1
  1721. package/dist/cliproxy/management-api-types.d.ts.map +0 -1
  1722. package/dist/cliproxy/management-api-types.js.map +0 -1
  1723. package/dist/cliproxy/model-config.d.ts +0 -31
  1724. package/dist/cliproxy/model-config.d.ts.map +0 -1
  1725. package/dist/cliproxy/model-config.js +0 -271
  1726. package/dist/cliproxy/model-config.js.map +0 -1
  1727. package/dist/cliproxy/model-id-normalizer.d.ts +0 -105
  1728. package/dist/cliproxy/model-id-normalizer.d.ts.map +0 -1
  1729. package/dist/cliproxy/model-id-normalizer.js +0 -241
  1730. package/dist/cliproxy/model-id-normalizer.js.map +0 -1
  1731. package/dist/cliproxy/openai-compat-manager.d.ts.map +0 -1
  1732. package/dist/cliproxy/openai-compat-manager.js +0 -191
  1733. package/dist/cliproxy/openai-compat-manager.js.map +0 -1
  1734. package/dist/cliproxy/platform-detector.d.ts +0 -99
  1735. package/dist/cliproxy/platform-detector.d.ts.map +0 -1
  1736. package/dist/cliproxy/platform-detector.js +0 -174
  1737. package/dist/cliproxy/platform-detector.js.map +0 -1
  1738. package/dist/cliproxy/project-selection-handler.d.ts.map +0 -1
  1739. package/dist/cliproxy/project-selection-handler.js.map +0 -1
  1740. package/dist/cliproxy/proxy-config-resolver.d.ts +0 -87
  1741. package/dist/cliproxy/proxy-config-resolver.d.ts.map +0 -1
  1742. package/dist/cliproxy/proxy-config-resolver.js +0 -254
  1743. package/dist/cliproxy/proxy-config-resolver.js.map +0 -1
  1744. package/dist/cliproxy/proxy-detector.d.ts +0 -72
  1745. package/dist/cliproxy/proxy-detector.d.ts.map +0 -1
  1746. package/dist/cliproxy/proxy-detector.js +0 -196
  1747. package/dist/cliproxy/proxy-detector.js.map +0 -1
  1748. package/dist/cliproxy/proxy-target-resolver.d.ts.map +0 -1
  1749. package/dist/cliproxy/proxy-target-resolver.js +0 -108
  1750. package/dist/cliproxy/proxy-target-resolver.js.map +0 -1
  1751. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts +0 -18
  1752. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts.map +0 -1
  1753. package/dist/cliproxy/quota-fetcher-claude-normalizer.js +0 -291
  1754. package/dist/cliproxy/quota-fetcher-claude-normalizer.js.map +0 -1
  1755. package/dist/cliproxy/quota-fetcher-claude.d.ts +0 -21
  1756. package/dist/cliproxy/quota-fetcher-claude.d.ts.map +0 -1
  1757. package/dist/cliproxy/quota-fetcher-claude.js +0 -306
  1758. package/dist/cliproxy/quota-fetcher-claude.js.map +0 -1
  1759. package/dist/cliproxy/quota-fetcher-codex.d.ts +0 -69
  1760. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +0 -1
  1761. package/dist/cliproxy/quota-fetcher-codex.js +0 -599
  1762. package/dist/cliproxy/quota-fetcher-codex.js.map +0 -1
  1763. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +0 -1
  1764. package/dist/cliproxy/quota-fetcher-gemini-cli.js +0 -661
  1765. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +0 -1
  1766. package/dist/cliproxy/quota-fetcher-ghcp.d.ts.map +0 -1
  1767. package/dist/cliproxy/quota-fetcher-ghcp.js +0 -207
  1768. package/dist/cliproxy/quota-fetcher-ghcp.js.map +0 -1
  1769. package/dist/cliproxy/quota-fetcher.d.ts +0 -107
  1770. package/dist/cliproxy/quota-fetcher.d.ts.map +0 -1
  1771. package/dist/cliproxy/quota-fetcher.js +0 -657
  1772. package/dist/cliproxy/quota-fetcher.js.map +0 -1
  1773. package/dist/cliproxy/quota-manager.d.ts +0 -105
  1774. package/dist/cliproxy/quota-manager.d.ts.map +0 -1
  1775. package/dist/cliproxy/quota-manager.js +0 -485
  1776. package/dist/cliproxy/quota-manager.js.map +0 -1
  1777. package/dist/cliproxy/quota-response-cache.d.ts.map +0 -1
  1778. package/dist/cliproxy/quota-response-cache.js.map +0 -1
  1779. package/dist/cliproxy/quota-types.d.ts +0 -245
  1780. package/dist/cliproxy/quota-types.d.ts.map +0 -1
  1781. package/dist/cliproxy/quota-types.js.map +0 -1
  1782. package/dist/cliproxy/remote-auth-fetcher.d.ts +0 -30
  1783. package/dist/cliproxy/remote-auth-fetcher.d.ts.map +0 -1
  1784. package/dist/cliproxy/remote-auth-fetcher.js +0 -177
  1785. package/dist/cliproxy/remote-auth-fetcher.js.map +0 -1
  1786. package/dist/cliproxy/remote-proxy-client.d.ts.map +0 -1
  1787. package/dist/cliproxy/remote-proxy-client.js +0 -281
  1788. package/dist/cliproxy/remote-proxy-client.js.map +0 -1
  1789. package/dist/cliproxy/remote-token-uploader.d.ts.map +0 -1
  1790. package/dist/cliproxy/remote-token-uploader.js +0 -178
  1791. package/dist/cliproxy/remote-token-uploader.js.map +0 -1
  1792. package/dist/cliproxy/schema-sanitizer.d.ts.map +0 -1
  1793. package/dist/cliproxy/schema-sanitizer.js.map +0 -1
  1794. package/dist/cliproxy/startup-lock.d.ts.map +0 -1
  1795. package/dist/cliproxy/startup-lock.js +0 -216
  1796. package/dist/cliproxy/startup-lock.js.map +0 -1
  1797. package/dist/cliproxy/stats-fetcher.d.ts +0 -158
  1798. package/dist/cliproxy/stats-fetcher.d.ts.map +0 -1
  1799. package/dist/cliproxy/stats-fetcher.js +0 -246
  1800. package/dist/cliproxy/stats-fetcher.js.map +0 -1
  1801. package/dist/cliproxy/stats-transformer.d.ts.map +0 -1
  1802. package/dist/cliproxy/stats-transformer.js +0 -152
  1803. package/dist/cliproxy/stats-transformer.js.map +0 -1
  1804. package/dist/cliproxy/tool-name-mapper.d.ts +0 -103
  1805. package/dist/cliproxy/tool-name-mapper.d.ts.map +0 -1
  1806. package/dist/cliproxy/tool-name-mapper.js +0 -149
  1807. package/dist/cliproxy/tool-name-mapper.js.map +0 -1
  1808. package/dist/cliproxy/tool-name-sanitizer.d.ts +0 -65
  1809. package/dist/cliproxy/tool-name-sanitizer.d.ts.map +0 -1
  1810. package/dist/cliproxy/tool-name-sanitizer.js +0 -118
  1811. package/dist/cliproxy/tool-name-sanitizer.js.map +0 -1
  1812. package/dist/cliproxy/tool-sanitization-proxy.d.ts +0 -77
  1813. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +0 -1
  1814. package/dist/cliproxy/tool-sanitization-proxy.js +0 -643
  1815. package/dist/cliproxy/tool-sanitization-proxy.js.map +0 -1
  1816. package/dist/commands/cliproxy/resolve-lifecycle-port.d.ts +0 -9
  1817. package/dist/commands/cliproxy/resolve-lifecycle-port.d.ts.map +0 -1
  1818. package/dist/commands/cliproxy/resolve-lifecycle-port.js +0 -14
  1819. package/dist/commands/cliproxy/resolve-lifecycle-port.js.map +0 -1
  1820. package/dist/ui/assets/accounts-DhtktAIG.js +0 -1
  1821. package/dist/ui/assets/alert-dialog-DQK2Jxfk.js +0 -1
  1822. package/dist/ui/assets/api-Den1YY2d.js +0 -4
  1823. package/dist/ui/assets/auth-section-BQitOLMK.js +0 -1
  1824. package/dist/ui/assets/backups-section-BLGK5re-.js +0 -1
  1825. package/dist/ui/assets/channels-Dop1axTi.js +0 -1
  1826. package/dist/ui/assets/charts-BBPXh0Ar.js +0 -64
  1827. package/dist/ui/assets/checkbox-DDrDuGxi.js +0 -1
  1828. package/dist/ui/assets/claude-extension-6WjTc0o8.js +0 -1
  1829. package/dist/ui/assets/cliproxy-Ch7RdSMG.js +0 -3
  1830. package/dist/ui/assets/cliproxy-ai-providers-DjybBlb5.js +0 -21
  1831. package/dist/ui/assets/cliproxy-control-panel-DDif_QAT.js +0 -1
  1832. package/dist/ui/assets/code-highlight-BRUf_pqB.js +0 -3
  1833. package/dist/ui/assets/codex-DFAV50Ee.js +0 -27
  1834. package/dist/ui/assets/confirm-dialog-CP26_Zko.js +0 -1
  1835. package/dist/ui/assets/copilot-uZuyhqwv.js +0 -3
  1836. package/dist/ui/assets/cursor-CuaM2FmN.js +0 -1
  1837. package/dist/ui/assets/droid-DdjXJ2lF.js +0 -2
  1838. package/dist/ui/assets/form-utils-Bcoyqxpq.js +0 -20
  1839. package/dist/ui/assets/globalenv-section-D5_-EIlf.js +0 -1
  1840. package/dist/ui/assets/health-BHhVKLNR.js +0 -1
  1841. package/dist/ui/assets/icons-CQ3MLSan.js +0 -1
  1842. package/dist/ui/assets/index-B8bAYHAs.js +0 -1
  1843. package/dist/ui/assets/index-Ba-43jCS.js +0 -1
  1844. package/dist/ui/assets/index-Bb2CPQik.css +0 -1
  1845. package/dist/ui/assets/index-Bm09kGOw.js +0 -1
  1846. package/dist/ui/assets/index-DHY37v8a.js +0 -1
  1847. package/dist/ui/assets/index-DLCFe4s3.js +0 -1
  1848. package/dist/ui/assets/index-TSYtCr3K.js +0 -69
  1849. package/dist/ui/assets/masked-input-CTkIqCMg.js +0 -1
  1850. package/dist/ui/assets/notifications-B2HqRBj7.js +0 -1
  1851. package/dist/ui/assets/proxy-status-widget-DPhKjJFl.js +0 -1
  1852. package/dist/ui/assets/radix-ui-BlliRfHq.js +0 -51
  1853. package/dist/ui/assets/raw-json-settings-editor-panel-DQr_y0E4.js +0 -1
  1854. package/dist/ui/assets/react-vendor-CNOkPC89.js +0 -3
  1855. package/dist/ui/assets/searchable-select-C2sP7JW5.js +0 -1
  1856. package/dist/ui/assets/separator-2lt47Sla.js +0 -1
  1857. package/dist/ui/assets/shared-DPKtsiFQ.js +0 -8
  1858. package/dist/ui/assets/table-DbsFACgT.js +0 -1
  1859. package/dist/ui/assets/tanstack-BjiH4QZq.js +0 -4
  1860. package/dist/ui/assets/updates-C5iL4KNn.js +0 -1
  1861. package/scripts/github/build-ai-review-packet.mjs +0 -242
  1862. package/scripts/github/normalize-ai-review-output.mjs +0 -934
  1863. package/scripts/github/prepare-ai-review-scope.mjs +0 -324
  1864. package/scripts/github/run-ai-review-direct.mjs +0 -349
  1865. /package/dist/cliproxy/{account-stats-key.d.ts → accounts/account-stats-key.d.ts} +0 -0
  1866. /package/dist/cliproxy/{account-stats-key.js → accounts/account-stats-key.js} +0 -0
  1867. /package/dist/cliproxy/{openai-compat-manager.d.ts → ai-providers/openai-compat-manager.d.ts} +0 -0
  1868. /package/dist/cliproxy/{schema-sanitizer.d.ts → ai-providers/schema-sanitizer.d.ts} +0 -0
  1869. /package/dist/cliproxy/{schema-sanitizer.js → ai-providers/schema-sanitizer.js} +0 -0
  1870. /package/dist/cliproxy/{antigravity-responsibility.d.ts → auth/antigravity-responsibility.d.ts} +0 -0
  1871. /package/dist/cliproxy/{auth-token-manager.d.ts → auth/auth-token-manager.d.ts} +0 -0
  1872. /package/dist/cliproxy/{device-code-handler.d.ts → auth/device-code-handler.d.ts} +0 -0
  1873. /package/dist/cliproxy/{device-code-handler.js → auth/device-code-handler.js} +0 -0
  1874. /package/dist/cliproxy/{project-selection-handler.d.ts → auth/project-selection-handler.d.ts} +0 -0
  1875. /package/dist/cliproxy/{project-selection-handler.js → auth/project-selection-handler.js} +0 -0
  1876. /package/dist/cliproxy/{composite-validator.d.ts → config/composite-validator.d.ts} +0 -0
  1877. /package/dist/cliproxy/{management-api-types.d.ts → management/management-api-types.d.ts} +0 -0
  1878. /package/dist/cliproxy/{management-api-types.js → management/management-api-types.js} +0 -0
  1879. /package/dist/cliproxy/{remote-token-uploader.d.ts → management/remote-token-uploader.d.ts} +0 -0
  1880. /package/dist/cliproxy/{https-tunnel-proxy.d.ts → proxy/https-tunnel-proxy.d.ts} +0 -0
  1881. /package/dist/cliproxy/{proxy-target-resolver.d.ts → proxy/proxy-target-resolver.d.ts} +0 -0
  1882. /package/dist/cliproxy/{gemini-cli-quota-normalizer.d.ts → quota/gemini-cli-quota-normalizer.d.ts} +0 -0
  1883. /package/dist/cliproxy/{quota-fetcher-gemini-cli.d.ts → quota/quota-fetcher-gemini-cli.d.ts} +0 -0
  1884. /package/dist/cliproxy/{quota-fetcher-ghcp.d.ts → quota/quota-fetcher-ghcp.d.ts} +0 -0
  1885. /package/dist/cliproxy/{quota-response-cache.d.ts → quota/quota-response-cache.d.ts} +0 -0
  1886. /package/dist/cliproxy/{quota-response-cache.js → quota/quota-response-cache.js} +0 -0
  1887. /package/dist/cliproxy/{quota-types.js → quota/quota-types.js} +0 -0
  1888. /package/dist/cliproxy/{remote-proxy-client.d.ts → services/remote-proxy-client.d.ts} +0 -0
  1889. /package/dist/cliproxy/{startup-lock.d.ts → services/startup-lock.d.ts} +0 -0
  1890. /package/dist/cliproxy/{stats-transformer.d.ts → services/stats-transformer.d.ts} +0 -0
@@ -1 +0,0 @@
1
- import{j as e}from"./radix-ui-BlliRfHq.js";import{r as n}from"./react-vendor-CNOkPC89.js";import{bj as Oe,bk as He,q as L,a as ae,I as B,az as D,v as Ve,w as ze,x as Ue,y as We,z as ue,d as V,bl as Ge,bm as Ye,bn as qe,b5 as se,b7 as te,A as Je}from"./index-TSYtCr3K.js";import{C as z}from"./default-ports-1QQSffYX.js";import{b1 as he,R as re,g as Xe,v as fe,W as Qe,u as Ze,b2 as es,b3 as ss,T as ye,ay as ts,n as rs,b4 as as}from"./icons-CQ3MLSan.js";import{P as os}from"./proxy-status-widget-DPhKjJFl.js";import{R as H}from"./antigravity-responsibility-constants-Bvh4Ybz0.js";import{t as T}from"./notifications-B2HqRBj7.js";import"./tanstack-BjiH4QZq.js";import"./utils-CzKF5WmX.js";import"./form-utils-Bcoyqxpq.js";import"./code-highlight-BRUf_pqB.js";import"./alert-dialog-DQK2Jxfk.js";function ns(){const{state:s}=Oe(),t=He(),[g,o]=n.useState(null),[u,b]=n.useState(null),[y,j]=n.useState(null),[p,C]=n.useState(null),[S,P]=n.useState(null),w=n.useCallback(async()=>{try{t.setProxyLoading(!0),t.setProxyError(null);const d=await L.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 L.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 k=h?parseInt(h,10):void 0,l=await L.cliproxyServer.test({host:x,port:k||void 0,protocol:a,authToken:c||void 0});t.setProxyTestResult(l)}catch(k){t.setProxyError(k.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:b,editedAuthToken:y,setEditedAuthToken:j,editedManagementKey:p,setEditedManagementKey:C,editedLocalPort:S,setEditedLocalPort:P,fetchConfig:w,saveConfig:A,testConnection:E}}function is({config:s,saving:t,displayLocalPort:g,setEditedLocalPort:o,onSaveLocalPort:u,onSaveConfig:b}){const{t:y}=ae(),j=s.local;return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:y("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:y("settingsProxy.port")}),e.jsx(B,{type:"text",inputMode:"numeric",value:g,onChange:p=>o(p.target.value.replace(/\D/g,"")),onBlur:u,placeholder:`${z}`,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:y("settingsProxy.autoStart")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:y("settingsProxy.localAutoStartDesc")})]}),e.jsx(D,{checked:j.auto_start??!0,onCheckedChange:p=>b({local:{...j,auto_start:p}}),disabled:t})]})]})]})}function ls({config:s,saving:t,testing:g,testResult:o,displayHost:u,displayPort:b,displayAuthToken:y,displayManagementKey:j,setEditedHost:p,setEditedPort:C,setEditedAuthToken:S,setEditedManagementKey:P,onSaveHost:w,onSavePort:A,onSaveAuthToken:E,onSaveManagementKey:d,onSaveConfig:x,onTestConnection:h}){const{t:a}=ae(),c=s.remote,k=l=>l==="https"?443:z;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(he,{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=>p(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:k(s.remote.protocol||"http")}),")"]})]}),e.jsx(B,{type:"text",inputMode:"numeric",value:b,onChange:l=>C(l.target.value.replace(/\D/g,"")),onBlur:A,placeholder:a("settingsProxy.portPlaceholder",{value:k(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(Ve,{value:s.remote.protocol||"http",onValueChange:l=>x({remote:{...c,protocol:l}}),disabled:t,children:[e.jsx(ze,{children:e.jsx(Ue,{})}),e.jsxs(We,{children:[e.jsx(ue,{value:"http",children:a("settingsProxy.http")}),e.jsx(ue,{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:y,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(V,{onClick:h,disabled:g||!u,variant:"outline",className:"w-full",children:g?e.jsxs(e.Fragment,{children:[e.jsx(re,{className:"w-4 h-4 mr-2 animate-spin"}),a("settingsProxy.testing")]}):e.jsxs(e.Fragment,{children:[e.jsx(Xe,{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(fe,{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(Qe,{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 pe="ccs_debug_mode",cs=["kiro","ghcp"];function ds(s){return s.trim().replace(/\s+/g," ").toUpperCase()}function Cs(){const{t:s}=ae(),{config:t,loading:g,saving:o,error:u,success:b,testResult:y,testing:j,editedHost:p,setEditedHost:C,editedPort:S,setEditedPort:P,editedAuthToken:w,setEditedAuthToken:A,editedManagementKey:E,setEditedManagementKey:d,editedLocalPort:x,setEditedLocalPort:h,fetchConfig:a,saveConfig:c,testConnection:k}=ns(),{fetchRawConfig:l}=Ge(),[_,be]=n.useState(()=>{try{return localStorage.getItem(pe)==="true"}catch{return!1}}),[je,U]=n.useState(!1),[Pe,oe]=n.useState(!0),[f,ne]=n.useState(!1),[ke,R]=n.useState(!1),[ie,I]=n.useState(""),K=n.useRef(!1),W=ds(ie)===H,ve=r=>{be(r);try{localStorage.setItem(pe,String(r))}catch{}},G=n.useCallback(async()=>{try{oe(!0);const r=await fetch("/api/settings/auth/antigravity-risk");if(!r.ok)throw new Error(s("settingsProxy.failedLoadAgyMode"));const i=await r.json();U(i.antigravityAckBypass===!0)}catch(r){T.error(r instanceof Error?r.message:s("settingsProxy.failedLoadAgyMode")),U(!1)}finally{oe(!1)}},[s]),$=n.useCallback(async r=>{if(!(K.current||f||o))try{K.current=!0,ne(!0);const i=await fetch("/api/settings/auth/antigravity-risk",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({antigravityAckBypass:r})}),O=await i.json();if(!i.ok)throw new Error(O.error||s("settingsProxy.failedUpdateAgyMode"));const Fe=O.antigravityAckBypass===!0,me=await fetch("/api/settings/auth/antigravity-risk",{cache:"no-store"});if(!me.ok)throw new Error(s("settingsProxy.failedVerifyAgyMode"));const ge=(await me.json()).antigravityAckBypass===!0;if(ge!==r)throw new Error(s("settingsProxy.notPersistedAgyMode"));U(ge&&Fe),R(!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,ne(!1)}},[f,l,o,s]),Ne=n.useCallback(r=>{if(!(K.current||f||o)){if(r){R(!0);return}R(!1),I(""),$(!1)}},[f,$,o]),Ce=n.useCallback(()=>{if(!W){T.error(s("settingsProxy.typePhraseToContinue",{value:H}));return}$(!0)},[W,$,s]),[v,Y]=n.useState("plus"),[Se,we]=n.useState(!1),q=Ye(),{data:Ae}=qe(),le=Ae?.running??!1,J=n.useCallback(async()=>{try{const r=await L.cliproxyServer.getBackend();Y(r.backend)}catch(r){console.error("[Proxy] Failed to fetch backend:",r)}},[]),X=n.useCallback(async()=>{try{const i=(await L.cliproxy.list()).variants.some(O=>cs.includes(O.provider));we(i)}catch(r){console.error("[Proxy] Failed to check variants:",r)}},[]),ce=r=>{const i=v;Y(r),q.mutate({backend:r},{onError:()=>{Y(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(),J(),X()},[a,G,l,J,X]),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(re,{className:"w-5 h-5 animate-spin"}),e.jsx("span",{children:s("settings.loading")})]})});const m=t.remote.enabled??!1,F=!m&&le,N=t.remote,M=t.fallback,Ee=t.remote.host??"",Te=t.remote.port!==void 0?t.remote.port.toString():"",Be=t.remote.auth_token??"",Me=t.remote.management_key??"",De=(t.local.port??z).toString(),Q=p??Ee,Z=S??Te,ee=w??Be,de=E??Me,xe=x??De,Le=()=>{const r=p??Q;r!==t.remote.host&&c({remote:{...N,host:r}}),C(null)},_e=()=>{const r=(S??Z).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)},Re=()=>{const r=w??ee;r!==t.remote.auth_token&&c({remote:{...N,auth_token:r}}),A(null)},Ie=()=>{const r=E??de;r!==t.remote.management_key&&c({remote:{...N,management_key:r||void 0}}),d(null)},Ke=()=>{const r=(x??xe).trim(),i=r===""?z: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)},$e=()=>{k({host:Q,port:Z,protocol:t.remote.protocol||"http",authToken:ee})};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||b?"opacity-100 translate-y-0":"opacity-0 -translate-y-2 pointer-events-none"}`,children:[u&&e.jsxs(se,{variant:"destructive",className:"py-2 shadow-lg",children:[e.jsx(Ze,{className:"h-4 w-4"}),e.jsx(te,{children:u})]}),b&&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(fe,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"text-sm font-medium",children:s("settings.saved")})]})]}),e.jsx(Je,{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(v==="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(os,{})]}),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(es,{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(v==="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(he,{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(v==="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(ss,{className:"w-4 h-4"}),s("settingsProxy.backendBinary")]}),!m&&le&&e.jsxs(se,{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(ye,{className:"h-4 w-4 text-amber-600"}),e.jsx(te,{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:()=>ce("plus"),disabled:q.isPending||F,className:`p-4 rounded-lg border-2 text-left transition-all ${v==="plus"?"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.backendPlusApi")}),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.plusDesc")})]}),e.jsxs("button",{onClick:()=>ce("original"),disabled:q.isPending||F,className:`p-4 rounded-lg border-2 text-left transition-all ${v==="original"?"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.backendApi")})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.originalDesc")})]})]}),v==="original"&&Se&&e.jsxs(se,{variant:"destructive",className:"py-2",children:[e.jsx(ye,{className:"h-4 w-4"}),e.jsx(te,{children:s("settingsProxy.variantsIncompatible")})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(ts,{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(D,{"aria-labelledby":"agy-power-user-mode-label","aria-describedby":"agy-power-user-mode-description",checked:je,disabled:Pe||f||o,onCheckedChange:Ne})]}),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")}),ke&&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(rs,{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:H})," ",s("settingsProxy.typeSuffix")]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(B,{value:ie,onChange:r=>I(r.target.value),placeholder:H,disabled:f||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(V,{variant:"outline",size:"sm",onClick:()=>{R(!1),I("")},disabled:f||o,children:s("settingsBackups.cancel")}),e.jsx(V,{size:"sm",variant:"destructive",onClick:Ce,disabled:!W||f||o,children:s("settingsProxy.enableAgyMode")})]})]}),e.jsx("span",{id:"agy-power-user-mode-label",className:"sr-only",children:s("settingsProxy.toggleAgyMode")})]})]}),m&&e.jsx(ls,{config:t,saving:o,testing:j,testResult:y,displayHost:Q,displayPort:Z,displayAuthToken:ee,displayManagementKey:de,setEditedHost:C,setEditedPort:P,setEditedAuthToken:A,setEditedManagementKey:d,onSaveHost:Le,onSavePort:_e,onSaveAuthToken:Re,onSaveManagementKey:Ie,onSaveConfig:c,onTestConnection:$e}),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(D,{checked:M.enabled??!0,onCheckedChange:r=>c({fallback:{...M,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(D,{checked:M.auto_start??!1,onCheckedChange:r=>c({fallback:{...M,auto_start:r}}),disabled:o||!m||!M.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(as,{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(D,{checked:_,onCheckedChange:ve,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(is,{config:t,saving:o,displayLocalPort:xe,setEditedLocalPort:h,onSaveLocalPort:Ke,onSaveConfig:c})]})}),e.jsx("div",{className:"p-4 border-t bg-background",children:e.jsxs(V,{variant:"outline",size:"sm",onClick:()=>{a(),G(),l(),J(),X()},disabled:g||o||f,className:"w-full",children:[e.jsx(re,{className:`w-4 h-4 mr-2 ${g?"animate-spin":""}`}),s("settings.refresh")]})})]})}export{Cs as default};
@@ -1 +0,0 @@
1
- import{j as e}from"./radix-ui-BlliRfHq.js";import{r as d}from"./react-vendor-CNOkPC89.js";import{bl as je,q as re,b5 as ae,b7 as te,d as B,A as Ne,B as c,c as u,az as ye,I as H,v as se,w as ne,x as ie,y as de,z as F}from"./index-TSYtCr3K.js";import{R as G,u as le,v as ke,a4 as oe,as as we,A as Ce,a6 as Be,aj as Me,r as Se,q as _e,a5 as Pe,aC as Ae}from"./icons-CQ3MLSan.js";import"./tanstack-BjiH4QZq.js";import"./notifications-B2HqRBj7.js";import"./utils-CzKF5WmX.js";import"./form-utils-Bcoyqxpq.js";import"./code-highlight-BRUf_pqB.js";const M="__no_backend__";function ce(t){return!!t&&typeof t=="object"&&!Array.isArray(t)&&Object.values(t).every(a=>typeof a=="string")}function Re(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;const a=t;return!!a.config&&typeof a.config.enabled=="boolean"&&typeof a.config.timeout=="number"&&ce(a.config.providerModels)&&(a.config.fallbackBackend===null||typeof a.config.fallbackBackend=="string")&&ce(a.config.profileBackends)&&!!a.summary&&typeof a.summary.state=="string"&&typeof a.summary.title=="string"&&typeof a.summary.detail=="string"&&Array.isArray(a.backends)&&Array.isArray(a.profiles)&&!!a.catalog&&Array.isArray(a.catalog.knownBackends)&&Array.isArray(a.catalog.profileNames)&&typeof a.summary.nativeProfileCount=="number"}function Te(t){return Object.entries(t).sort(([a],[l])=>a.localeCompare(l)).map(([a,l],g)=>({id:`${a}-${l}-${g}`,profileName:a,backendId:l}))}function De(t){switch(t){case"ready":return"border-emerald-500/25 bg-emerald-500/10 text-emerald-900 dark:text-emerald-200";case"partial":return"border-amber-500/25 bg-amber-500/10 text-amber-900 dark:text-amber-200";case"needs_setup":return"border-rose-500/25 bg-rose-500/10 text-rose-900 dark:text-rose-200";case"disabled":return"border-border/80 bg-background/85 text-muted-foreground"}}function Ie(t){switch(t){case"ready":return"border-emerald-500/25 bg-emerald-500/10 text-emerald-800 dark:text-emerald-200";case"starts_on_launch":return"border-sky-500/25 bg-sky-500/10 text-sky-800 dark:text-sky-200";case"needs_auth":return"border-rose-500/25 bg-rose-500/10 text-rose-800 dark:text-rose-200";case"needs_proxy":return"border-amber-500/25 bg-amber-500/10 text-amber-800 dark:text-amber-200";case"review":return"border-border/80 bg-background/85 text-muted-foreground"}}function me(t){switch(t){case"active":return"Active";case"bypassed":return"Bypassed";case"fallback":return"Native fallback";case"setup":return"Needs setup";case"disabled":return"Disabled";case"native":return"Native";case"unresolved":return"Native only"}}function ue(t){switch(t){case"active":return"border-emerald-500/25 bg-emerald-500/10 text-emerald-800 dark:text-emerald-200";case"bypassed":return"border-sky-500/25 bg-sky-500/10 text-sky-800 dark:text-sky-200";case"fallback":case"setup":return"border-amber-500/25 bg-amber-500/10 text-amber-800 dark:text-amber-200";case"native":return"border-emerald-500/25 bg-emerald-500/10 text-emerald-800 dark:text-emerald-200";case"disabled":case"unresolved":return"border-border/80 bg-background/85 text-muted-foreground"}}function Ee(t){switch(t){case"starts_on_launch":return"Starts on launch";case"needs_auth":return"Needs auth";case"needs_proxy":return"Needs proxy";case"review":return"Review";case"ready":return"Ready"}}function $e(t){if(!t)return"No model configured.";switch(t.state){case"needs_auth":return t.authReason||"Authenticate to route here.";case"needs_proxy":return t.proxyReason||"Proxy unavailable.";case"starts_on_launch":return"Auth ready. Launches locally on demand.";case"review":return"Needs manual review.";case"ready":return null}}function ze(t){switch(t){case"profile-backend":return"Explicit mapping";case"fallback-backend":return"Fallback backend";case"cliproxy-provider":return"Provider match";case"cliproxy-bridge":return"Bridge match";case"native-compatible":return"Native path";case"copilot-alias":return"Copilot alias";default:return t.replace(/-/g," ")}}function y(t){return"border-border/50 bg-background/40"}function Oe(t){switch(t){case"ready":return"bg-[linear-gradient(90deg,rgba(16,185,129,0.08),transparent_18%),linear-gradient(180deg,rgba(255,255,255,0.72),rgba(255,255,255,0.46))] dark:bg-[linear-gradient(90deg,rgba(16,185,129,0.12),transparent_18%),linear-gradient(180deg,rgba(15,23,42,0.82),rgba(15,23,42,0.56))]";case"starts_on_launch":return"bg-[linear-gradient(90deg,rgba(14,165,233,0.08),transparent_18%),linear-gradient(180deg,rgba(255,255,255,0.72),rgba(255,255,255,0.46))] dark:bg-[linear-gradient(90deg,rgba(14,165,233,0.12),transparent_18%),linear-gradient(180deg,rgba(15,23,42,0.82),rgba(15,23,42,0.56))]";case"needs_auth":return"bg-[linear-gradient(90deg,rgba(244,63,94,0.08),transparent_18%),linear-gradient(180deg,rgba(255,255,255,0.72),rgba(255,255,255,0.46))] dark:bg-[linear-gradient(90deg,rgba(244,63,94,0.12),transparent_18%),linear-gradient(180deg,rgba(15,23,42,0.82),rgba(15,23,42,0.56))]";case"needs_proxy":return"bg-[linear-gradient(90deg,rgba(245,158,11,0.08),transparent_18%),linear-gradient(180deg,rgba(255,255,255,0.72),rgba(255,255,255,0.46))] dark:bg-[linear-gradient(90deg,rgba(245,158,11,0.12),transparent_18%),linear-gradient(180deg,rgba(15,23,42,0.82),rgba(15,23,42,0.56))]";case"review":default:return"bg-[linear-gradient(180deg,rgba(255,255,255,0.74),rgba(255,255,255,0.5))] dark:bg-[linear-gradient(180deg,rgba(15,23,42,0.8),rgba(15,23,42,0.58))]"}}function Fe(t){switch(t){case"ready":return"from-emerald-500 to-emerald-400/30";case"starts_on_launch":return"from-sky-500 to-sky-400/30";case"needs_auth":return"from-rose-500 to-rose-400/30";case"needs_proxy":return"from-amber-500 to-amber-400/30";case"review":default:return"from-slate-400 to-slate-300/20"}}function Ke(t,a){return a.nativeReadPreference?t%2===0?"bg-emerald-500/[0.06]":"bg-emerald-500/[0.08]":t%2===0?"bg-background/75":"bg-muted/18"}function Le(t){const a=[`${t.activeProfileCount} routed`,`${t.nativeProfileCount} native`];return t.mappedProfileCount>0&&a.push(`${t.mappedProfileCount} override${t.mappedProfileCount===1?"":"s"}`),a.join(" · ")}function Ve(t){return Object.entries(t).reduce((a,[l,g])=>{const j=g.trim();return a[l]=j||null,a},{})}function J(t){return Object.entries(t).filter(([,a])=>a.trim().length>0).map(([a])=>a)}function Ue(t){return t.reduce((a,l)=>{const g=l.profileName.trim();return!g||!l.backendId||(a[g]=l.backendId),a},{})}function ge(t,a){const l=Number.parseInt(t.trim(),10);return Number.isInteger(l)?String(Math.min(600,Math.max(10,l))):a}function T({title:t,description:a,icon:l,meta:g,action:j,children:o,className:D}){return e.jsxs("div",{className:u("relative overflow-hidden rounded-2xl border bg-gradient-to-br from-background via-background to-muted/25 p-4 shadow-sm",D),children:[e.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-primary/40 via-primary/10 to-transparent"}),e.jsxs("div",{className:"relative space-y-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-start md:justify-between",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-primary/20 bg-primary/10 text-primary",children:l}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h3",{className:"text-base font-semibold tracking-tight",children:t}),g]}),e.jsx("p",{className:"mt-0.5 text-sm leading-5 text-muted-foreground",children:a})]})]}),j&&e.jsx("div",{className:"shrink-0",children:j})]}),e.jsx("div",{className:"space-y-3",children:o})]})]})}function er(){const{fetchRawConfig:t}=je(),[a,l]=d.useState(null),[g,j]=d.useState(!0),[o,D]=d.useState(!1),[I,N]=d.useState(null),[S,K]=d.useState(null),[E,Q]=d.useState(!1),[_,W]=d.useState(!0),[L,V]=d.useState("60"),[f,P]=d.useState(""),[k,$]=d.useState({}),[x,z]=d.useState([]),w=d.useCallback(r=>{W(r.config.enabled),V(String(r.config.timeout)),P(r.config.fallbackBackend??""),$(r.catalog.knownBackends.reduce((s,n)=>(s[n]=r.config.providerModels[n]??"",s),{})),z(Te(r.config.profileBackends))},[]),U=d.useCallback(async()=>{try{j(!0),N(null);const r=await re.imageAnalysis.get();if(!Re(r))throw new Error("Image settings returned an unexpected response. Restart the dashboard server so the new API route is available.");l(r),w(r)}catch(r){N(r instanceof Error?r.message:"Failed to load image settings.")}finally{j(!1)}},[w]);d.useEffect(()=>{U(),t()},[U,t]),d.useEffect(()=>{if(!S)return;const r=window.setTimeout(()=>K(null),2500);return()=>window.clearTimeout(r)},[S]),d.useEffect(()=>{a&&Object.keys(a.config.profileBackends).length>0&&Q(!0)},[a]);const m=d.useMemo(()=>J(k),[k]),X=d.useMemo(()=>{if(!a)return[];const r=a.catalog.knownBackends.filter(n=>m.includes(n)),s=a.catalog.knownBackends.filter(n=>!m.includes(n));return[...r,...s]},[m,a]),O=d.useMemo(()=>a?.profiles.filter(r=>r.nativeReadPreference)??[],[a]);d.useEffect(()=>{if(m.length===0){P("");return}m.includes(f)||P(m[0])},[m,f]);const A=d.useCallback(async r=>{if(!a)return!1;const s=r?.enabled??_,n=r?.providerModels??k,i=J(n),b=ge(r?.timeout??L,String(a.config.timeout)),h=r?.fallbackBackend??f,C=i.length===0?"":i.includes(h)?h:i[0],p=r?.mappingDrafts??x,R={enabled:s,timeout:b,fallbackBackend:C,providerModels:Ve(n),profileBackends:Ue(p)},ve={enabled:a.config.enabled,timeout:String(a.config.timeout),fallbackBackend:a.config.fallbackBackend??"",providerModels:a.catalog.knownBackends.reduce((v,ee)=>(v[ee]=a.config.providerModels[ee]??null,v),{}),profileBackends:a.config.profileBackends};if(JSON.stringify(R)===JSON.stringify(ve))return!0;if(s&&i.length===0)return N("Keep at least one provider model configured, or disable Image globally."),w(a),!1;try{D(!0),N(null);const v=await re.imageAnalysis.update({enabled:s,timeout:Number.parseInt(b,10),fallbackBackend:C||null,providerModels:R.providerModels,profileBackends:R.profileBackends});return l(v),w(v),K("Image settings saved."),await t(),!0}catch(v){return N(v instanceof Error?v.message:"Failed to save image settings."),w(a),!1}finally{D(!1)}},[a,_,f,t,w,x,k,L]),Y=async()=>{g||o||(K(null),await Promise.all([U(),t()]))},xe=async r=>{if(!o){if(r&&m.length===0){N("Keep at least one provider model configured, or disable Image globally.");return}W(r),await A({enabled:r})}},be=async r=>{if(!a||o)return;const s=ge(r,String(a.config.timeout));V(s),await A({timeout:s})},pe=async r=>{o||(P(r),await A({fallbackBackend:r}))},Z=async(r,s)=>{if(!a||o)return;const n=s.trim(),i={...k,[r]:n},b=J(i);if(_&&b.length===0){N("Disable Image first or keep one backend configured."),$(C=>({...C,[r]:a.config.providerModels[r]??""}));return}const h=b.length===0?"":b.includes(f)?f:b[0];$(i),P(h),await A({providerModels:i,fallbackBackend:h})},fe=(r,s)=>{z(n=>n.map(i=>i.id===r?{...i,...s}:i))},q=async r=>{o||(z(r),await A({mappingDrafts:r}))},he=x.filter(r=>r.profileName.trim()&&r.backendId).length;return g?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(G,{className:"w-5 h-5 animate-spin"}),e.jsx("span",{children:"Loading image settings..."})]})}):a?e.jsxs("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[e.jsxs("div",{className:`absolute left-5 right-5 top-20 z-10 transition-all duration-200 ease-out ${I||S?"translate-y-0 opacity-100":"pointer-events-none -translate-y-2 opacity-0"}`,children:[I&&e.jsxs(ae,{variant:"destructive",className:"py-2 shadow-lg",children:[e.jsx(le,{className:"h-4 w-4"}),e.jsx(te,{children:I})]}),S&&e.jsxs("div",{className:"flex items-center gap-2 rounded-md border border-green-200 bg-green-50 px-3 py-2 text-green-700 shadow-lg dark:border-green-900/50 dark:bg-green-900/90 dark:text-green-300",children:[e.jsx(ke,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"text-sm font-medium",children:S})]})]}),e.jsx(Ne,{className:"min-h-0 flex-1",children:e.jsxs("div",{className:"space-y-6 p-5",children:[e.jsxs("div",{className:"relative overflow-hidden rounded-2xl border bg-gradient-to-br from-background via-background to-muted/30 p-4 shadow-sm",children:[e.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-primary/70 via-primary/20 to-transparent"}),e.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.035]",style:{backgroundImage:"repeating-linear-gradient(0deg, transparent, transparent 2px, currentColor 2px, currentColor 3px)"}}),e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"inline-flex h-8 w-8 items-center justify-center rounded-xl border border-primary/20 bg-primary/8 text-primary",children:e.jsx(oe,{className:"h-4 w-4"})}),e.jsx("p",{className:"text-sm font-semibold tracking-tight",children:"Image"})]}),e.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(c,{className:u("border",De(a.summary.state)),children:a.summary.title}),e.jsx("span",{children:Le(a.summary)})]})]}),e.jsx(B,{variant:"ghost",size:"sm",onClick:Y,disabled:g||o,"aria-label":"Refresh",title:"Refresh",children:e.jsx(G,{className:`h-4 w-4 ${g?"animate-spin":""}`})})]}),e.jsxs("div",{className:"mt-3 grid gap-2 sm:grid-cols-2",children:[e.jsxs("div",{className:"rounded-[18px] border bg-background/72 px-3 py-2.5 backdrop-blur-sm",children:[e.jsx("div",{className:"text-[10px] font-medium uppercase tracking-[0.14em] text-muted-foreground",children:"Active routes"}),e.jsx("div",{className:"mt-1.5 text-xl font-semibold text-foreground",children:a.summary.activeProfileCount}),e.jsx("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:"Current target path"})]}),e.jsxs("div",{className:"rounded-[18px] border bg-background/72 px-3 py-2.5 backdrop-blur-sm",children:[e.jsx("div",{className:"text-[10px] font-medium uppercase tracking-[0.14em] text-muted-foreground",children:"Native path"}),e.jsx("div",{className:"mt-1.5 text-xl font-semibold text-foreground",children:a.summary.nativeProfileCount}),e.jsx("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:"Skip transformer"})]})]})]})]}),e.jsxs(T,{tone:"amber",eyebrow:"Control deck",title:"Core setup",description:"Global toggle, timeout, and fallback.",icon:e.jsx(we,{className:"h-4 w-4"}),meta:e.jsxs(c,{variant:"outline",className:"border-amber-500/25 bg-amber-500/10 text-[10px]",children:[m.length," configured"]}),children:[e.jsxs("div",{className:"grid gap-2 lg:grid-cols-3",children:[e.jsxs("div",{className:u("rounded-[18px] border px-3.5 py-3 shadow-sm",y()),children:[e.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-[0.14em] text-amber-700/75 dark:text-amber-300/75",children:"Enabled"}),e.jsxs("div",{className:"mt-2.5 flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("div",{className:"text-sm font-semibold text-foreground",children:_?"Transformer on":"Transformer off"}),e.jsx("p",{className:"text-[11px] leading-4 text-muted-foreground",children:"Profile flags stay untouched."})]}),e.jsx(ye,{checked:_,onCheckedChange:r=>{xe(r)},disabled:o})]})]}),e.jsxs("div",{className:u("rounded-[18px] border px-3.5 py-3 shadow-sm",y()),children:[e.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-[0.14em] text-amber-700/75 dark:text-amber-300/75",children:"Timeout"}),e.jsxs("div",{className:"mt-2.5 flex items-center gap-2",children:[e.jsx(H,{value:L,onChange:r=>V(r.target.value),inputMode:"numeric",className:"h-10 border-amber-500/15 bg-background/90 text-base",disabled:o,onBlur:r=>{be(r.currentTarget.value)},onKeyDown:r=>{r.key==="Enter"&&r.currentTarget.blur()}}),e.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"sec"})]}),e.jsx("p",{className:"mt-1.5 text-[11px] leading-4 text-muted-foreground",children:"Keeps large reads from hanging."})]}),e.jsxs("div",{className:u("rounded-[18px] border px-3.5 py-3 shadow-sm",y()),children:[e.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-[0.14em] text-amber-700/75 dark:text-amber-300/75",children:"Fallback backend"}),e.jsx("div",{className:"mt-2.5",children:e.jsxs(se,{value:f||M,onValueChange:r=>{pe(r===M?"":r)},disabled:o,children:[e.jsx(ne,{className:"h-10 border-amber-500/15 bg-background/90",children:e.jsx(ie,{placeholder:"Choose backend"})}),e.jsx(de,{children:m.length===0?e.jsx(F,{value:M,children:"Configure a model first"}):m.map(r=>e.jsx(F,{value:r,children:r},r))})]})}),e.jsx("p",{className:"mt-1.5 text-[11px] leading-4 text-muted-foreground",children:"Used when no direct route exists."})]})]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-1.5",children:[e.jsxs("div",{className:"rounded-full border border-amber-500/15 bg-background/80 px-2.5 py-1 text-[11px] text-muted-foreground",children:[he," overrides"]}),e.jsxs("div",{className:"rounded-full border border-amber-500/15 bg-background/80 px-2.5 py-1 text-[11px] text-muted-foreground",children:[O.length," native"]}),e.jsxs("div",{className:"rounded-full border border-amber-500/15 bg-background/80 px-2.5 py-1 text-[11px] text-muted-foreground",children:[f||"No fallback"," fallback"]})]})]}),e.jsx(T,{tone:"cyan",eyebrow:"Route inventory",title:"Backend routes",description:"Model entry plus route health.",icon:e.jsx(Ce,{className:"h-4 w-4"}),meta:e.jsxs(c,{variant:"outline",className:"border-cyan-500/25 bg-cyan-500/10 text-[10px]",children:[X.length," backends"]}),children:e.jsx("div",{className:"overflow-hidden rounded-[20px] border border-cyan-500/12 bg-background/65 shadow-sm backdrop-blur-sm",children:X.map((r,s)=>{const n=a.backends.find(p=>p.backendId===r),i=n?.displayName||r,b=k[r]??"",h=$e(n),C=b?[`${n?.profilesUsing??0} active`,n?.authReadiness==="missing"?"auth missing":n?.proxyReadiness==="stopped"?"starts on launch":null].filter(Boolean).join(" · "):"No model configured.";return e.jsxs("div",{className:u("relative px-3 py-3 md:px-4",s>0&&"border-t border-cyan-500/10",Oe(n?.state)),children:[e.jsx("div",{className:u("absolute bottom-3 left-0 top-3 w-1 rounded-r-full bg-gradient-to-b",Fe(n?.state))}),e.jsxs("div",{className:"pl-2.5",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h4",{className:"text-sm font-semibold text-foreground",children:i}),e.jsx(c,{variant:"outline",className:"font-mono text-[10px]",children:r}),n?.profilesUsing?e.jsxs(c,{variant:"outline",className:"border-cyan-500/20 bg-cyan-500/10 text-[10px]",children:[n.profilesUsing," active"]}):null]}),e.jsx("p",{className:"mt-0.5 text-[11px] leading-4 text-muted-foreground",children:C})]}),e.jsx(c,{className:u("border",n?Ie(n.state):"border-border/80 bg-background/85 text-muted-foreground"),children:n?Ee(n.state):"Inactive"})]}),e.jsxs("div",{className:"mt-2 flex flex-col gap-2 sm:flex-row",children:[e.jsx(H,{className:"h-10 flex-1 border-cyan-500/15 bg-background/88 text-base",placeholder:"Set model",value:b,disabled:o,onChange:p=>$(R=>({...R,[r]:p.target.value})),onBlur:p=>{Z(r,p.currentTarget.value)},onKeyDown:p=>{p.key==="Enter"&&p.currentTarget.blur()}}),b.trim().length>0&&e.jsx(B,{type:"button",variant:"outline",size:"sm",className:"h-10 sm:self-stretch",disabled:o,onClick:()=>{Z(r,"")},children:"Clear"})]}),h&&e.jsx("p",{className:"mt-1.5 text-[11px] leading-4 text-muted-foreground",children:h})]})]},r)})})}),e.jsx(T,{tone:"emerald",eyebrow:"Native path",title:"Native reading",description:"Profiles that skip the transformer.",icon:e.jsx(Be,{className:"h-4 w-4"}),meta:e.jsxs(c,{variant:"outline",children:[O.length," profiles"]}),children:O.length===0?e.jsx("div",{className:u("rounded-[18px] border border-dashed px-3.5 py-3.5 text-sm text-muted-foreground",y()),children:"No profiles prefer native reading yet."}):e.jsx("div",{className:"grid gap-2 md:grid-cols-2",children:O.map(r=>e.jsx("div",{className:u("rounded-[18px] border px-3.5 py-3 shadow-sm",y()),children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("div",{className:"truncate text-sm font-semibold text-foreground",children:r.name}),e.jsx(c,{variant:"outline",className:"text-[10px]",children:r.kind==="variant"?"Variant":"Profile"}),e.jsx(c,{variant:"outline",className:"text-[10px]",children:r.nativeImageCapable?"Verified":"Review"})]}),e.jsxs("div",{className:"mt-1 text-[11px] leading-4 text-muted-foreground",children:[r.profileModel||"Model not detected"," ·"," ",r.nativeImageReason||"Native read preferred."]})]}),e.jsx(c,{className:u("border",ue(r.currentTargetMode)),children:me(r.currentTargetMode)})]})},`native-${r.kind}-${r.name}`))})}),e.jsxs(T,{tone:"slate",eyebrow:"Override lab",title:"Profile routing",description:"Only for explicit route overrides.",icon:e.jsx(Ae,{className:"h-4 w-4"}),meta:e.jsx(c,{variant:"outline",className:"border-amber-500/25 bg-amber-500/10 text-[10px] text-amber-800 dark:text-amber-200",children:"Advanced"}),action:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(B,{type:"button",variant:"outline",size:"sm",onClick:()=>Q(r=>!r),children:[E?e.jsx(Se,{className:"mr-1 h-4 w-4"}):e.jsx(_e,{className:"mr-1 h-4 w-4"}),E?"Hide":"Show"]}),E&&e.jsxs(B,{type:"button",variant:"outline",size:"sm",onClick:()=>z(r=>[...r,{id:`mapping-${Date.now()}`,profileName:"",backendId:m[0]??""}]),disabled:m.length===0||o,children:[e.jsx(Pe,{className:"mr-1 h-4 w-4"}),"Add mapping"]})]}),className:"border-dashed",children:[e.jsx("datalist",{id:"image-profile-suggestions",children:a.catalog.profileNames.map(r=>e.jsx("option",{value:r},r))}),E?e.jsx("div",{className:"space-y-2",children:x.length===0?e.jsx("div",{className:u("rounded-[18px] border border-dashed px-3.5 py-3.5 text-sm text-muted-foreground",y()),children:"No explicit overrides saved."}):e.jsx("div",{className:"space-y-2",children:x.map(r=>e.jsxs("div",{className:"rounded-[18px] border border-slate-400/20 bg-[linear-gradient(180deg,rgba(255,255,255,0.72),rgba(248,250,252,0.52))] p-3 shadow-sm dark:bg-[linear-gradient(180deg,rgba(15,23,42,0.84),rgba(15,23,42,0.56))]",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[11px] leading-4 text-muted-foreground",children:[e.jsx("span",{children:"Direct override"}),!(r.profileName.trim()&&r.backendId)&&e.jsx(c,{variant:"outline",className:"text-[10px]",children:"Draft"})]}),e.jsxs(B,{type:"button",variant:"ghost",size:"sm",disabled:o,onClick:()=>{const s=x.filter(n=>n.id!==r.id);q(s)},children:[e.jsx(Me,{className:"mr-1 h-4 w-4"}),"Remove"]})]}),e.jsxs("div",{className:"mt-2 grid gap-2 sm:grid-cols-2",children:[e.jsx(H,{value:r.profileName,list:"image-profile-suggestions",disabled:o,placeholder:"Profile or variant name",className:"h-10 border-slate-400/15 bg-background/88 text-base",onChange:s=>{fe(r.id,{profileName:s.target.value})},onBlur:s=>{const n=x.map(i=>i.id===r.id?{...i,profileName:s.currentTarget.value.trim()}:i);q(n)},onKeyDown:s=>{s.key==="Enter"&&s.currentTarget.blur()}}),e.jsxs(se,{value:r.backendId||M,disabled:o,onValueChange:s=>{const n=x.map(i=>i.id===r.id?{...i,backendId:s===M?"":s}:i);q(n)},children:[e.jsx(ne,{className:"h-10 border-slate-400/15 bg-background/88",children:e.jsx(ie,{placeholder:"Choose backend"})}),e.jsx(de,{children:m.length===0?e.jsx(F,{value:M,children:"Configure a model first"}):m.map(s=>e.jsx(F,{value:s,children:s},s))})]})]})]},r.id))})}):e.jsxs("div",{className:u("rounded-[18px] border border-dashed px-3.5 py-3 text-sm text-muted-foreground",y()),children:["Hidden by default.",x.length>0?` ${x.length} override${x.length===1?"":"s"} saved.`:" No overrides saved."]})]}),e.jsx(T,{tone:"slate",eyebrow:"Audit view",title:"Coverage",description:"Read-only routing ledger for the current path.",icon:e.jsx(oe,{className:"h-4 w-4"}),meta:e.jsxs(c,{variant:"outline",children:[a.profiles.length," profiles"]}),children:e.jsx("div",{className:"overflow-hidden rounded-[20px] border border-slate-400/15 bg-background/75 shadow-sm backdrop-blur-sm",children:a.profiles.map((r,s)=>e.jsxs("div",{className:u("grid gap-2 px-3.5 py-2.5 md:grid-cols-[minmax(0,1fr)_auto] md:items-center",s>0&&"border-t border-slate-400/12",Ke(s,r)),children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("div",{className:"truncate text-sm font-semibold text-foreground",children:r.name}),e.jsx(c,{variant:"outline",className:"text-[10px]",children:r.kind==="variant"?"Variant":"Profile"}),e.jsx(c,{variant:"outline",className:"font-mono text-[10px] uppercase",children:r.target}),r.nativeReadPreference&&e.jsx(c,{variant:"outline",className:"border-emerald-500/20 bg-emerald-500/10 text-[10px]",children:"Native"})]}),e.jsxs("div",{className:"mt-0.5 text-[11px] leading-4 text-muted-foreground",children:[r.backendDisplayName||r.profileModel||"Native file access"," ·"," ",ze(r.resolutionSource)]})]}),e.jsxs("div",{className:"flex items-center gap-2 md:justify-end",children:[r.profileModel&&e.jsx(c,{variant:"outline",className:"font-mono text-[10px]",children:r.profileModel}),e.jsx(c,{className:u("border",ue(r.currentTargetMode)),children:me(r.currentTargetMode)})]})]},`${r.kind}-${r.name}`))})})]})})]}):e.jsxs("div",{className:"p-5",children:[e.jsxs(ae,{variant:"destructive",children:[e.jsx(le,{className:"h-4 w-4"}),e.jsx(te,{children:I??"Failed to load image settings."})]}),e.jsx("div",{className:"mt-4",children:e.jsxs(B,{variant:"outline",size:"sm",onClick:Y,children:[e.jsx(G,{className:"mr-1 h-4 w-4"}),"Retry"]})})]})}export{er as default};
@@ -1 +0,0 @@
1
- import{j as e}from"./radix-ui-BlliRfHq.js";import{r as h,c as Ne}from"./react-vendor-CNOkPC89.js";import{u as P,a as F,C,b as D,S as j,c as u,P as b,B as ee,d as B,e as re,f as we,g as le,h as ve,D as be,i as ke,j as Ce,k as De,l as Se,m as Me,n as oe,o as L,p as U,q as Y,I as Le,r as Fe}from"./index-TSYtCr3K.js";import{a0 as ie,ae as W,af as E,ag as ce,_ as de,a6 as Te,G as $e,ah as Z,L as Re,ai as Pe,v as Be,u as qe,aj as Ae,R as Ke,V as se,U as Ue,Z as Ie,t as Ee,ak as Oe,al as He,am as ue,C as _e,an as Qe}from"./icons-CQ3MLSan.js";import{a as G,u as M,b as J}from"./tanstack-BjiH4QZq.js";import{K as q,L as X,f as T,H as We}from"./utils-CzKF5WmX.js";import{R as xe,A as Ge,C as ze,X as Ye,Y as te,T as me,a as ae,P as Ve,b as Ze,c as Xe}from"./charts-BBPXh0Ar.js";import"./notifications-B2HqRBj7.js";import"./form-utils-Bcoyqxpq.js";import"./code-highlight-BRUf_pqB.js";function Je({data:s,isLoading:t}){const{privacyMode:a}=P(),{t:n}=F();if(t)return e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4",children:[1,2,3,4,5].map(r=>e.jsx(C,{children:e.jsx(D,{className:"p-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{className:"h-4 w-[100px]"}),e.jsx(j,{className:"h-8 w-[80px]"})]}),e.jsx(j,{className:"h-8 w-8 rounded-lg"})]})})},r))});const l=(s?.tokenBreakdown?.cacheCreation?.cost??0)+(s?.tokenBreakdown?.cacheRead?.cost??0),c=s?.totalCost?Math.round(l/s.totalCost*100):0,i=[{title:n("analyticsSummary.totalTokens"),value:s?.totalTokens??0,icon:ie,format:r=>K(r),color:"text-blue-600",bgColor:"bg-blue-100 dark:bg-blue-900/20",subtitle:n("analyticsSummary.totalTokensSubtitle",{input:K(s?.totalInputTokens??0),output:K(s?.totalOutputTokens??0)})},{title:n("analyticsSummary.totalCost"),value:s?.totalCost??0,icon:W,format:r=>`$${r.toFixed(2)}`,color:"text-green-600",bgColor:"bg-green-100 dark:bg-green-900/20",subtitle:n("analyticsSummary.totalCostSubtitle",{value:s?.averageCostPerDay?.toFixed(2)??"0.00"})},{title:n("analyticsSummary.cacheTokens"),value:s?.totalCacheTokens??0,icon:E,format:r=>K(r),color:"text-cyan-600",bgColor:"bg-cyan-100 dark:bg-cyan-900/20",subtitle:n("analyticsSummary.cacheTokensSubtitle",{cost:l.toFixed(2),percent:c})},{title:n("analyticsSummary.inputCost"),value:s?.tokenBreakdown?.input?.cost??0,icon:ce,format:r=>`$${r.toFixed(2)}`,color:"text-purple-600",bgColor:"bg-purple-100 dark:bg-purple-900/20",subtitle:n("analyticsSummary.tokensSubtitle",{value:K(s?.tokenBreakdown?.input?.tokens??0)})},{title:n("analyticsSummary.outputCost"),value:s?.tokenBreakdown?.output?.cost??0,icon:de,format:r=>`$${r.toFixed(2)}`,color:"text-orange-600",bgColor:"bg-orange-100 dark:bg-orange-900/20",subtitle:n("analyticsSummary.tokensSubtitle",{value:K(s?.tokenBreakdown?.output?.tokens??0)})}];return e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4",children:i.map((r,o)=>{const x=r.icon;return e.jsx(C,{className:"hover:shadow-md transition-shadow",children:e.jsx(D,{className:"p-4",children:e.jsxs("div",{className:"flex items-center justify-between space-x-2",children:[e.jsxs("div",{className:"space-y-1 min-w-0",children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground truncate",children:r.title}),e.jsx("p",{className:u("text-xl font-bold truncate",a&&b),children:r.format(r.value)}),r.subtitle&&e.jsx("p",{className:u("text-[10px] text-muted-foreground truncate",a&&b),children:r.subtitle})]}),e.jsx("div",{className:u("p-2 rounded-lg shrink-0",r.bgColor),children:e.jsx(x,{className:u("h-4 w-4",r.color)})})]})})},o)})})}function K(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString()}function es({model:s}){const{privacyMode:t}=P(),{t:a}=F(),n=ss(s.ioRatio,a);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Te,{className:"h-4 w-4 text-primary shrink-0"}),e.jsx("h4",{className:"font-semibold leading-none truncate",title:s.model,children:s.model})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(ee,{variant:"secondary",className:"text-[10px] h-5 px-1.5",children:a("analyticsModelDetail.percentUsage",{percent:s.percentage.toFixed(1)})}),e.jsx(ee,{variant:n.variant,className:"text-[10px] h-5 px-1.5",children:a("analyticsModelDetail.ioRatio",{ratio:s.ioRatio.toFixed(0)})})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{className:"p-2 rounded-md bg-muted/50 border text-center",children:[e.jsxs("p",{className:u("text-lg font-bold",t&&b),children:["$",s.cost.toFixed(2)]}),e.jsx("p",{className:"text-[10px] text-muted-foreground uppercase tracking-wider",children:a("analyticsModelDetail.totalCost")})]}),e.jsxs("div",{className:"p-2 rounded-md bg-muted/50 border text-center",children:[e.jsx("p",{className:u("text-lg font-bold",t&&b),children:as(s.tokens)}),e.jsx("p",{className:"text-[10px] text-muted-foreground uppercase tracking-wider",children:a("analyticsModelDetail.totalTokens")})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h5",{className:"text-[11px] font-medium text-muted-foreground uppercase tracking-wider",children:a("analyticsModelDetail.tokenBreakdown")}),e.jsxs("div",{className:u("space-y-1",t&&b),children:[e.jsx(Q,{label:a("analyticsToken.input"),tokens:s.inputTokens,cost:s.costBreakdown.input.cost,color:"#335c67",icon:ce}),e.jsx(Q,{label:a("analyticsToken.output"),tokens:s.outputTokens,cost:s.costBreakdown.output.cost,color:"#fff3b0",icon:de}),e.jsx(Q,{label:a("analyticsToken.cacheWrite"),tokens:s.cacheCreationTokens,cost:s.costBreakdown.cacheCreation.cost,color:"#e09f3e",icon:E}),e.jsx(Q,{label:a("analyticsToken.cacheRead"),tokens:s.cacheReadTokens,cost:s.costBreakdown.cacheRead.cost,color:"#9e2a2b",icon:E})]})]}),e.jsxs("div",{className:"p-2.5 rounded-md border bg-muted/20 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx($e,{className:"h-3.5 w-3.5 text-muted-foreground"}),e.jsx("span",{className:"text-xs font-medium",children:a("analyticsModelDetail.ioRatioTitle")})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground leading-snug",children:n.description})]})]})}function Q({label:s,tokens:t,cost:a,color:n,icon:l}){return t===0?null:e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("div",{className:"w-1 h-6 rounded-full shrink-0",style:{backgroundColor:n}}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"font-medium truncate",children:s}),e.jsxs("span",{className:"font-mono text-muted-foreground",children:["$",a.toFixed(3)]})]}),e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(l,{className:"h-3 w-3 shrink-0"}),e.jsx("span",{children:ts(t)})]})]})]})}function ss(s,t){return s>=200?{variant:"destructive",description:t("analyticsModelDetail.ioDescHigh")}:s>=50?{variant:"secondary",description:t("analyticsModelDetail.ioDescMedHigh")}:s>=5?{variant:"outline",description:t("analyticsModelDetail.ioDescBalanced")}:{variant:"default",description:t("analyticsModelDetail.ioDescHighOutput")}}function ts(s){return s.toLocaleString()}function as(s){return s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toString()}const ns="/api";function S(s){const t=s.getFullYear(),a=String(s.getMonth()+1).padStart(2,"0"),n=String(s.getDate()).padStart(2,"0");return`${t}${a}${n}`}const $={summary:s=>{const t=new URLSearchParams;return s?.startDate&&t.append("since",S(s.startDate)),s?.endDate&&t.append("until",S(s.endDate)),s?.profile&&t.append("profile",s.profile),R(`/usage/summary?${t}`)},trends:s=>{const t=new URLSearchParams;return s?.startDate&&t.append("since",S(s.startDate)),s?.endDate&&t.append("until",S(s.endDate)),s?.profile&&t.append("profile",s.profile),R(`/usage/daily?${t}`)},hourly:s=>{const t=new URLSearchParams;return s?.startDate&&t.append("since",S(s.startDate)),s?.endDate&&t.append("until",S(s.endDate)),R(`/usage/hourly?${t}`)},models:s=>{const t=new URLSearchParams;return s?.startDate&&t.append("since",S(s.startDate)),s?.endDate&&t.append("until",S(s.endDate)),s?.profile&&t.append("profile",s.profile),R(`/usage/models?${t}`)},sessions:s=>{const t=new URLSearchParams;return s?.startDate&&t.append("since",S(s.startDate)),s?.endDate&&t.append("until",S(s.endDate)),s?.profile&&t.append("profile",s.profile),s?.limit&&t.append("limit",s.limit.toString()),s?.offset&&t.append("offset",s.offset.toString()),R(`/usage/sessions?${t}`)},monthly:(s,t)=>{const a=new URLSearchParams;return s&&a.append("months",s.toString()),t&&a.append("profile",t),R(`/usage/monthly?${a}`)},refresh:async()=>{if(!(await fetch(`${ns}/usage/refresh`,{method:"POST",headers:{"Content-Type":"application/json"}})).ok)throw new Error("Failed to refresh usage cache")},status:()=>R("/usage/status"),insights:s=>{const t=new URLSearchParams;return s?.startDate&&t.append("since",S(s.startDate)),s?.endDate&&t.append("until",S(s.endDate)),s?.profile&&t.append("profile",s.profile),R(`/usage/insights?${t}`)},cursorImport:async s=>{const t=new FormData;t.append("file",s);const a=await fetch("/api/usage/cursor/import",{method:"POST",body:t});if(!a.ok){const l=await a.json().catch(()=>({error:"Upload failed"}));throw new Error(l.error||"Failed to import Cursor usage data")}return(await a.json()).data},cursorStatus:async()=>{const s=await fetch("/api/usage/cursor/status");if(!s.ok)throw new Error("Failed to fetch Cursor status");return(await s.json()).data},cursorDataClear:async()=>{const s=await fetch("/api/usage/cursor/data",{method:"DELETE"});if(!s.ok)throw new Error("Failed to clear Cursor data");return(await s.json()).data}};async function R(s){const a=await fetch(`/api${s}`,{headers:{"Content-Type":"application/json"}});if(!a.ok){const l=await a.json().catch(()=>({error:"Unknown error"}));throw new Error(l.error||a.statusText)}const n=await a.json();return n.data||n}function rs(s){return M({queryKey:["usage","summary",s],queryFn:()=>$.summary(s),staleTime:60*1e3})}function ls(s){return M({queryKey:["usage","trends",s],queryFn:()=>$.trends(s),staleTime:60*1e3})}function os(s){return M({queryKey:["usage","hourly",s],queryFn:()=>$.hourly(s),staleTime:60*1e3})}function is(s){return M({queryKey:["usage","models",s],queryFn:()=>$.models(s),staleTime:60*1e3})}function cs(){const s=G();return h.useCallback(async()=>{await $.refresh(),await s.invalidateQueries({queryKey:["usage"]})},[s])}function ds(){return M({queryKey:["usage","status"],queryFn:()=>$.status(),staleTime:10*1e3,refetchInterval:30*1e3})}function us(s){return M({queryKey:["usage","sessions",s],queryFn:()=>$.sessions(s),staleTime:60*1e3})}function xs(){const[s,t]=h.useState({from:q(new Date,30),to:new Date}),[a,n]=h.useState(!1),[l,c]=h.useState(null),[i,r]=h.useState(null),[o,x]=h.useState("daily"),m=cs(),p=h.useCallback(async()=>{n(!0);try{await m()}finally{n(!1)}},[m]),g=h.useMemo(()=>({startDate:s?.from,endDate:s?.to}),[s?.from,s?.to]),{data:k,isLoading:w}=rs(g),{data:d,isLoading:f}=ls(g),{data:N,isLoading:v}=os(g),{data:y,isLoading:I}=is(g),{data:z,isLoading:O}=us({...g,limit:3}),{data:H}=ds(),fe=h.useCallback(()=>{const A=new Date;t({from:q(A,1),to:A}),x("hourly")},[]),he=h.useCallback(A=>{t(A),x("daily")},[]),pe=h.useMemo(()=>H?.lastFetch?X(new Date(H.lastFetch),{addSuffix:!0}):null,[H?.lastFetch]),ge=h.useCallback((A,je)=>{const _=je.currentTarget.getBoundingClientRect();r({x:_.left+_.width/2,y:_.top+_.height/2}),c(A)},[]),ye=h.useCallback(()=>{c(null),r(null)},[]);return{dateRange:s,isRefreshing:a,viewMode:o,selectedModel:l,popoverPosition:i,summary:k,trends:d,hourlyData:N,models:y,sessions:z,status:H,isSummaryLoading:w,isTrendsLoading:f,isHourlyLoading:v,isModelsLoading:I,isSessionsLoading:O,isLoading:w||f||I||O,handleRefresh:p,handleTodayClick:fe,handleDateRangeChange:he,handleModelClick:ge,handlePopoverClose:ye,lastUpdatedText:pe}}function ms({value:s,onChange:t,presets:a=[{label:"Last 7 days",range:{from:q(new Date,7),to:new Date}},{label:"Last 30 days",range:{from:q(new Date,30),to:new Date}},{label:"Last 90 days",range:{from:q(new Date,90),to:new Date}}],className:n}){const[l,c]=Ne.useState(!1),i=r=>!s||!s.from||!s.to||!r.from||!r.to?!1:T(s.from,"yyyy-MM-dd")===T(r.from,"yyyy-MM-dd")&&T(s.to,"yyyy-MM-dd")===T(r.to,"yyyy-MM-dd");return e.jsxs("div",{className:u("flex flex-wrap items-center gap-2",n),children:[a.map(r=>e.jsx(B,{variant:i(r.range)?"default":"outline",size:"sm",onClick:()=>t(r.range),children:r.label},r.label)),e.jsxs(re,{open:l,onOpenChange:c,children:[e.jsx(we,{asChild:!0,children:e.jsxs(B,{id:"date",variant:"outline",className:u("w-auto min-w-[200px] sm:min-w-[240px] justify-start text-left font-normal",!s&&"text-muted-foreground"),children:[e.jsx(Z,{className:"mr-2 h-4 w-4"}),s?.from?s.to?e.jsxs(e.Fragment,{children:[T(s.from,"LLL dd, y")," - ",T(s.to,"LLL dd, y")]}):T(s.from,"LLL dd, y"):e.jsx("span",{children:"Pick a date"})]})}),e.jsx(le,{className:"w-auto p-0",align:"end",children:e.jsx(ve,{initialFocus:!0,mode:"range",defaultMonth:s?.from,selected:s,onSelect:t,numberOfMonths:2})})]})]})}function fs(){const s=G();return J({mutationFn:t=>$.cursorImport(t),onSuccess:()=>{s.invalidateQueries({queryKey:["usage"]}),s.invalidateQueries({queryKey:["cursor-status"]})}})}function hs(){return M({queryKey:["cursor-status"],queryFn:()=>$.cursorStatus(),staleTime:30*1e3})}function ps(){const s=G();return J({mutationFn:()=>$.cursorDataClear(),onSuccess:()=>{s.invalidateQueries({queryKey:["usage"]}),s.invalidateQueries({queryKey:["cursor-status"]})}})}function gs(){const{t:s}=F(),{privacyMode:t}=P(),a=h.useRef(null),[n,l]=h.useState(!1),[c,i]=h.useState(null),r=fs(),{data:o,isLoading:x}=hs(),m=ps(),p=async d=>{const f=d.target.files?.[0];if(f){i(null);try{await r.mutateAsync(f)}catch(N){i(N instanceof Error?N.message:s("analyticsCursor.errorMessage"))}a.current&&(a.current.value="")}},g=async()=>{if(window.confirm(s("analyticsCursor.clearConfirm")))try{await m.mutateAsync()}catch{i(s("analyticsCursor.errorMessage"))}},k=d=>d>=1e6?`${(d/1e6).toFixed(1)}M`:d.toLocaleString(),w=d=>!d||d.length<8?d:`${d.slice(0,4)}-${d.slice(4,6)}-${d.slice(6,8)}`;return e.jsxs(be,{open:n,onOpenChange:l,children:[e.jsx(ke,{asChild:!0,children:e.jsxs(B,{variant:"outline",size:"sm",className:"gap-2 h-8",children:[e.jsx(E,{className:"w-3.5 h-3.5"}),e.jsx("span",{className:"hidden sm:inline",children:s("analytics.importData")})]})}),e.jsxs(Ce,{className:"sm:max-w-md",children:[e.jsxs(De,{children:[e.jsxs(Se,{className:"flex items-center gap-2",children:[e.jsx(E,{className:"w-4 h-4"}),s("analytics.importData")]}),e.jsx(Me,{children:s("analyticsCursor.fileHint")})]}),e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(ie,{className:"w-4 h-4"}),"Cursor IDE"]}),e.jsx("input",{ref:a,type:"file",accept:".csv",className:"hidden",onChange:p}),e.jsx(B,{variant:"outline",size:"sm",className:"w-full",disabled:r.isPending,onClick:()=>a.current?.click(),children:r.isPending?e.jsxs(e.Fragment,{children:[e.jsx(Re,{className:"w-3.5 h-3.5 mr-2 animate-spin"}),s("analyticsCursor.importing")]}):e.jsxs(e.Fragment,{children:[e.jsx(Pe,{className:"w-3.5 h-3.5 mr-2"}),s("analyticsCursor.importButton")]})}),r.isSuccess&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-green-600",children:[e.jsx(Be,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{children:s("analyticsCursor.successMessage")})]}),c&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-destructive",children:[e.jsx(qe,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:c})]}),x?null:o?.hasData?e.jsxs("div",{className:"rounded-md border bg-muted/30 p-3 text-xs space-y-1.5",children:[o.dateRange&&e.jsxs("div",{className:"text-muted-foreground",children:[w(o.dateRange.from)," ~ ",w(o.dateRange.to)]}),e.jsxs("div",{className:u(t&&b),children:[k(o.totalTokens)," tokens · ",o.totalEvents," events"]}),o.models.length>0&&e.jsx("div",{className:"text-muted-foreground truncate",children:o.models.join(", ")})]}):e.jsx("p",{className:"text-xs text-muted-foreground",children:s("analyticsCursor.fileHint")}),o?.hasData&&e.jsxs(B,{variant:"ghost",size:"sm",className:"w-full text-xs text-muted-foreground hover:text-destructive",disabled:m.isPending,onClick:g,children:[e.jsx(Ae,{className:"w-3 h-3 mr-1"}),s("analyticsCursor.clearButton")]})]})})]})]})}function ys({dateRange:s,onDateRangeChange:t,onTodayClick:a,onRefresh:n,isRefreshing:l,lastUpdatedText:c,viewMode:i}){const{t:r}=F();return e.jsxs("div",{className:"flex flex-col gap-3 shrink-0 xl:flex-row xl:items-center xl:justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-semibold",children:r("analytics.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:r("analytics.subtitle")})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2 xl:justify-end",children:[e.jsx(B,{variant:i==="hourly"?"default":"outline",size:"sm",className:"h-8",onClick:a,children:"24H"}),e.jsx(ms,{className:"flex-wrap",value:s,onChange:t,presets:[{label:"7D",range:{from:q(new Date,7),to:new Date}},{label:"30D",range:{from:q(new Date,30),to:new Date}},{label:r("analytics.month"),range:{from:We(new Date),to:new Date}},{label:r("analytics.allTime"),range:{from:void 0,to:new Date}}]}),c&&e.jsx("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:r("analytics.updated",{value:c})}),e.jsx(B,{variant:"outline",size:"sm",className:"gap-2 h-8",onClick:n,disabled:l,children:e.jsx(Ke,{className:`w-3.5 h-3.5 ${l?"animate-spin":""}`})}),e.jsx(gs,{})]})]})}function js({data:s,isLoading:t,granularity:a="daily",className:n}){const{privacyMode:l}=P(),c=h.useMemo(()=>!s||s.length===0?[]:s.map(o=>{const x="hour"in o?o.hour:o.date;return{...o,dateFormatted:Ns(x,a),costRounded:Number(o.cost.toFixed(4))}}),[s,a]);if(t)return e.jsx(j,{className:u("h-full w-full",n)});if(!s||s.length===0)return e.jsx("div",{className:u("h-full flex items-center justify-center",n),children:e.jsx("p",{className:"text-muted-foreground",children:a==="hourly"?"No usage data for today":"No usage data available"})});const i=({x:r,y:o,payload:x,isRight:m})=>{const p=m?`$${x.value}`:ne(Number(x.value));return e.jsx("text",{x:r,y:o,dy:4,textAnchor:m?"start":"end",fontSize:12,fill:"currentColor",className:u("fill-muted-foreground",l&&"blur-[4px]"),children:p})};return e.jsx("div",{className:u("w-full h-full",n),children:e.jsx(xe,{width:"100%",height:"100%",children:e.jsxs(Ge,{data:c,margin:{top:5,right:30,left:20,bottom:5},children:[e.jsxs("defs",{children:[e.jsxs("linearGradient",{id:"tokenGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"5%",stopColor:"#0080FF",stopOpacity:.8}),e.jsx("stop",{offset:"95%",stopColor:"#0080FF",stopOpacity:.1})]}),e.jsxs("linearGradient",{id:"costGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"5%",stopColor:"#00C49F",stopOpacity:.8}),e.jsx("stop",{offset:"95%",stopColor:"#00C49F",stopOpacity:.1})]})]}),e.jsx(ze,{strokeDasharray:"3 3",className:"stroke-muted"}),e.jsx(Ye,{dataKey:"dateFormatted",tick:{fontSize:12},tickLine:!1,axisLine:{className:"stroke-muted"}}),e.jsx(te,{yAxisId:"left",orientation:"left",tick:r=>e.jsx(i,{...r,isRight:!1}),tickLine:!1,axisLine:{className:"stroke-muted"}}),e.jsx(te,{yAxisId:"right",orientation:"right",tick:r=>e.jsx(i,{...r,isRight:!0}),tickLine:!1,axisLine:{className:"stroke-muted"}}),e.jsx(me,{content:({active:r,payload:o,label:x})=>{if(!r||!o||!o.length)return null;const m=o[0].payload;return e.jsxs("div",{className:"rounded-lg border bg-background p-3 shadow-lg",children:[e.jsx("p",{className:"font-medium mb-2",children:x}),o.map((p,g)=>e.jsxs("p",{className:u("text-sm",l&&b),style:{color:p.color},children:[p.name,":"," ",p.name==="Tokens"?ne(Number(p.value)||0):`$${p.value}`]},g)),"requests"in m&&e.jsxs("p",{className:u("text-sm text-muted-foreground mt-1",l&&b),children:["Requests: ",m.requests]})]})}}),e.jsx(ae,{yAxisId:"left",type:"monotone",dataKey:"tokens",stroke:"#0080FF",strokeWidth:2,fillOpacity:1,fill:"url(#tokenGradient)",name:"Tokens"}),e.jsx(ae,{yAxisId:"right",type:"monotone",dataKey:"costRounded",stroke:"#00C49F",strokeWidth:2,fillOpacity:1,fill:"url(#costGradient)",name:"Cost"})]})})})}function Ns(s,t){if(t==="hourly"){const[n,l]=s.split(" ");if(n&&l){const c=new Date(`${n}T${l}:00Z`);return T(c,"HH:mm")}return s}const a=new Date(s);return t==="monthly"?T(a,"MMM yyyy"):T(a,"MMM dd")}function ne(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString()}function ws({data:s,isLoading:t,className:a}){const{privacyMode:n}=P(),{t:l}=F(),c=h.useMemo(()=>!s||s.length===0?[]:s.map(o=>({name:o.model,value:o.tokens,cost:o.cost,percentage:o.percentage,fill:oe(o.model)})),[s]);if(t)return e.jsx(j,{className:u("h-full min-h-[100px] w-full",a)});if(!s||s.length===0)return e.jsx("div",{className:u("h-full min-h-[100px] flex items-center justify-center",a),children:e.jsx("p",{className:"text-muted-foreground",children:l("analyticsModel.emptyState")})});const i=({active:o,payload:x})=>{if(!o||!x)return null;const m=x;if(!m.length)return null;const p=m[0].payload;return e.jsxs("div",{className:"rounded-lg border bg-background p-2 shadow-lg text-xs",children:[e.jsx("p",{className:"font-medium mb-1",children:p.name}),e.jsxs("p",{className:u("text-muted-foreground",n&&b),children:[vs(p.value)," (",p.percentage.toFixed(1),"%)"]}),e.jsxs("p",{className:u("text-muted-foreground",n&&b),children:["$",p.cost.toFixed(4)]})]})},r=o=>o.percentage>5?`${o.percentage.toFixed(1)}%`:"";return e.jsx("div",{className:u("w-full h-full min-h-[100px]",a),children:e.jsx(xe,{width:"100%",height:"100%",children:e.jsxs(Ve,{children:[e.jsx(Ze,{data:c,cx:"50%",cy:"50%",labelLine:!1,label:r,innerRadius:50,outerRadius:70,paddingAngle:2,dataKey:"value",children:c.map((o,x)=>e.jsx(Xe,{fill:o.fill,strokeWidth:1},`cell-${x}`))}),e.jsx(me,{content:i})]})})})}function vs(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString()}function bs(s){if(!s)return"";const a=s.replace(/^\/|\/$/g,"").split("/").filter(n=>n.length>0);return a[a.length-1]||""}function ks({data:s,isLoading:t,className:a}){const{privacyMode:n}=P(),{t:l}=F(),c=h.useMemo(()=>{if(!s?.sessions||s.sessions.length===0)return null;const i=s.sessions,r=s.total,o=i.reduce((w,d)=>w+(d.inputTokens+d.outputTokens),0),x=Math.round(o/i.length),p=i.reduce((w,d)=>w+d.cost,0)/i.length,g=i[0],k=g?X(new Date(g.lastActivity),{addSuffix:!0}):"N/A";return{totalSessions:r,avgTokens:x,avgCost:p,lastActive:k,recentSessions:i.slice(0,3)}},[s]);return t?e.jsxs(C,{className:u("flex flex-col h-full min-h-0 overflow-hidden gap-0 py-0",a),children:[e.jsx(L,{className:"px-3 py-2",children:e.jsx(j,{className:"h-5 w-32"})}),e.jsx(D,{className:"px-3 pb-3 pt-0 flex-1",children:e.jsx(j,{className:"h-full w-full"})})]}):c?e.jsxs(C,{className:u("flex flex-col h-full min-h-0 overflow-hidden gap-0 py-0 shadow-sm",a),children:[e.jsx(L,{className:"px-3 py-2",children:e.jsxs(U,{className:"text-base font-semibold flex items-center gap-2",children:[e.jsx(se,{className:"w-4 h-4"}),l("analyticsSession.title")]})}),e.jsxs(D,{className:"px-3 pb-3 pt-0 flex-1 min-h-0 flex flex-col gap-3",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{className:"p-2 rounded-md bg-muted/50 border text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-blue-600 dark:text-blue-400",children:[e.jsx(Ue,{className:"w-4 h-4"}),e.jsx("span",{className:"text-xl font-bold",children:c.totalSessions})]}),e.jsx("p",{className:"text-[10px] text-muted-foreground uppercase tracking-wider mt-0.5",children:l("analyticsSession.totalSessions")})]}),e.jsxs("div",{className:"p-2 rounded-md bg-muted/50 border text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-green-600 dark:text-green-400",children:[e.jsx(Ie,{className:"w-4 h-4"}),e.jsxs("span",{className:u("text-xl font-bold",n&&b),children:["$",c.avgCost.toFixed(2)]})]}),e.jsx("p",{className:"text-[10px] text-muted-foreground uppercase tracking-wider mt-0.5",children:l("analyticsSession.avgCostPerSession")})]})]}),e.jsxs("div",{className:"flex-1 min-h-0 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground font-medium mb-1",children:[e.jsx(Ee,{className:"w-3 h-3"}),l("analyticsSession.recentActivity")]}),e.jsx("div",{className:"space-y-1.5 max-h-full overflow-y-auto pr-1",children:c.recentSessions.map(i=>e.jsxs("div",{className:"flex items-center justify-between text-xs p-1.5 rounded bg-muted/30 hover:bg-muted/50 transition-colors",children:[e.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"font-medium truncate",title:i.projectPath,children:bs(i.projectPath)}),(i.target??"claude")!=="claude"&&e.jsx("span",{className:"shrink-0 px-1 py-0 text-[9px] font-medium rounded bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-300 uppercase",children:i.target})]}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:X(new Date(i.lastActivity),{addSuffix:!0})})]}),e.jsxs("div",{className:u("text-right shrink-0 ml-2",n&&b),children:[e.jsxs("div",{className:"font-mono",children:["$",i.cost.toFixed(2)]}),e.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[Cs(i.inputTokens+i.outputTokens)," toks"]})]})]},i.sessionId))})]})]})]}):e.jsxs(C,{className:u("flex flex-col h-full min-h-0 overflow-hidden gap-0 py-0",a),children:[e.jsx(L,{className:"px-3 py-2",children:e.jsxs(U,{className:"text-base font-semibold flex items-center gap-2",children:[e.jsx(se,{className:"w-4 h-4"}),l("analyticsSession.title")]})}),e.jsx(D,{className:"px-3 pb-3 pt-0 flex-1 flex items-center justify-center",children:e.jsx("p",{className:"text-sm text-muted-foreground text-center",children:l("analyticsSession.emptyState")})})]})}function Cs(s){return s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toString()}async function V(s,t){try{const a=new URLSearchParams,n=r=>{const o=r.getFullYear(),x=String(r.getMonth()+1).padStart(2,"0"),m=String(r.getDate()).padStart(2,"0");return`${o}${x}${m}`};a.append("since",n(s)),a.append("until",n(t));const l=await fetch(`/api/usage/summary?${a}`,{headers:{"Content-Type":"application/json"}});if(!l.ok)return 0;const c=await l.json();return(c.data||c).totalCost||0}catch{return 0}}function Ds(){const s=new Date;return new Date(s.getFullYear(),s.getMonth()+1,0).getDate()}function Ss(){return new Date().getDate()}function Ms(s,t){return t<=0?"N/A":`${(s/t).toFixed(2)}x`}function Ls(s,t){return t<=0?null:s/t}function Fs(){const s=G(),t=M({queryKey:["cost-leverage-config"],queryFn:async()=>{const N=(await Y.config.get()).preferences?.baseline_cost_30d;return typeof N=="number"?N:void 0},staleTime:30*1e3}),a=t.data,n=h.useMemo(()=>new Date,[]),l=h.useMemo(()=>{const d=new Date(n),f=new Date(n);return f.setDate(f.getDate()-6),{start:f,end:d}},[n]),c=h.useMemo(()=>{const d=new Date(n),f=new Date(n);return f.setDate(f.getDate()-29),{start:f,end:d}},[n]),i=h.useMemo(()=>{const d=new Date(n.getFullYear(),n.getMonth(),1),f=new Date(n);return{start:d,end:f}},[n]),r=M({queryKey:["cost-leverage","7d"],queryFn:()=>V(l.start,l.end),staleTime:60*1e3}),o=M({queryKey:["cost-leverage","30d"],queryFn:()=>V(c.start,c.end),staleTime:60*1e3}),x=M({queryKey:["cost-leverage","month"],queryFn:()=>V(i.start,i.end),staleTime:60*1e3}),m=J({mutationFn:async d=>{const f=await Y.config.get(),v={...f.preferences||{}};d==null?delete v.baseline_cost_30d:v.baseline_cost_30d=d;const y=typeof f.version=="number"?f.version:12;return Y.config.update({version:y,preferences:v})},onSuccess:()=>{s.invalidateQueries({queryKey:["cost-leverage-config"]})}}),p=h.useMemo(()=>{const d=Ss(),f=Ds();return[{label:"7d",cost:r.data??0,windowDays:7,scaleDays:7},{label:"30d",cost:o.data??0,windowDays:30,scaleDays:30},{label:"Month",cost:x.data??0,windowDays:d,scaleDays:f}].map(v=>{const y=a?a*v.scaleDays/30:0;return{label:v.label,estimatedCost:v.cost,scaledBaseline:y,ratio:Ls(v.cost,y),ratioDisplay:Ms(v.cost,y),windowDays:v.windowDays}})},[a,r.data,o.data,x.data]),g=h.useCallback(d=>{const f=d.trim();if(f==="")return m.mutate(void 0),{valid:!0};const N=Number(f);return isNaN(N)||N<=0?{valid:!1,error:"invalid"}:(m.mutate(N),{valid:!0})},[m]),k=t.isLoading||r.isLoading&&o.isLoading&&x.isLoading,w=t.error?.message||m.error?.message||null;return{baselineCost:a,windows:p,isLoading:k,isSaving:m.isPending,error:w,saveBaseline:g,cost7d:r.data,cost30d:o.data,costMonth:x.data}}function Ts({className:s,isLoading:t}){const{privacyMode:a}=P(),{t:n}=F(),{baselineCost:l,windows:c,isLoading:i,isSaving:r,error:o,saveBaseline:x}=Fs(),[m,p]=h.useState(l!==void 0?String(l):""),[g,k]=h.useState(null),[w,d]=h.useState(!1);l!==void 0&&!w&&(p(String(l)),d(!0)),l===void 0&&w&&d(!1);const f=h.useCallback(()=>{x(m).valid?(k(null),m.trim()===""&&(p(""),d(!1))):k(n("analyticsCostLeverage.invalidInput"))},[m,x,n]),N=h.useCallback(y=>{y.key==="Enter"&&(y.preventDefault(),f())},[f]),v=l!==void 0&&l>0;return i||t?e.jsxs(C,{className:u("flex flex-col h-full",s),children:[e.jsx(L,{className:"px-3 py-2",children:e.jsx(j,{className:"h-5 w-36"})}),e.jsx(D,{className:"px-3 pb-3 pt-0 flex-1",children:e.jsx(j,{className:"h-full w-full"})})]}):e.jsxs(C,{className:u("flex flex-col h-full min-h-0 overflow-hidden gap-0 py-0 shadow-sm",s),children:[e.jsx(L,{className:"px-3 py-2 shrink-0",children:e.jsxs(U,{className:"text-base font-semibold flex items-center gap-2",children:[e.jsx(Oe,{className:"w-4 h-4"}),n("analyticsCostLeverage.title")]})}),e.jsxs(D,{className:"px-3 pb-3 pt-0 flex-1 min-h-0 flex flex-col gap-2",children:[v?e.jsx("div",{className:"flex-1 flex flex-col gap-2 justify-center min-h-0",children:c.map(y=>e.jsx($s,{window:y,privacyMode:a,t:n},y.label))}):e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center gap-2",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-muted/50 flex items-center justify-center",children:e.jsx(W,{className:"w-5 h-5 text-muted-foreground"})}),e.jsx("p",{className:"text-xs text-muted-foreground text-center leading-relaxed max-w-[180px]",children:n("analyticsCostLeverage.noBaseline")})]}),e.jsxs("div",{className:"shrink-0 pt-2 mt-auto border-t",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(W,{className:"w-3.5 h-3.5 text-muted-foreground shrink-0"}),e.jsx(Le,{type:"text",inputMode:"decimal",value:m,onChange:y=>{p(y.target.value),k(null)},onBlur:f,onKeyDown:N,placeholder:n("analyticsCostLeverage.baselinePlaceholder"),disabled:r,className:u("h-7 text-xs",g&&"border-destructive focus-visible:ring-destructive")}),r&&e.jsx("span",{className:"text-[10px] text-muted-foreground animate-pulse",children:n("analyticsCostLeverage.saving")})]}),g&&e.jsx("p",{className:"text-[10px] text-destructive mt-1",children:g}),o&&e.jsxs("p",{className:"text-[10px] text-destructive mt-1",children:[n("analyticsCostLeverage.saveError"),": ",o]})]})]})]})}function $s({window:s,privacyMode:t,t:a}){const n=s.label==="7d"?"analyticsCostLeverage.window7d":s.label==="30d"?"analyticsCostLeverage.window30d":"analyticsCostLeverage.windowMonth",l=s.label==="7d"?Z:s.label==="30d"?He:Z,c=s.ratio===null?"text-muted-foreground":s.ratio<2.5?"text-red-600 dark:text-red-400":s.ratio<10?"text-amber-600 dark:text-amber-400":"text-emerald-600 dark:text-emerald-400",i=s.ratio===null?"bg-muted/30":s.ratio<2.5?"bg-red-100/30 dark:bg-red-950/30":s.ratio<10?"bg-amber-100/30 dark:bg-amber-950/30":"bg-emerald-100/30 dark:bg-emerald-950/30";return e.jsxs("div",{className:u("flex items-center gap-2 px-2.5 py-2 rounded-lg border transition-colors",i),children:[e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx(l,{className:"w-3.5 h-3.5 text-muted-foreground"}),e.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:a(n)})]}),e.jsxs("span",{className:u("text-xs text-muted-foreground font-mono",t&&b),children:["$",s.estimatedCost.toFixed(2)]}),e.jsx("div",{className:"flex-1 border-t border-dashed border-muted-foreground/30"}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[s.ratio!==null&&s.ratio>=10&&e.jsx(ue,{className:"w-3.5 h-3.5 text-emerald-500"}),e.jsx("span",{className:u("text-lg font-bold tabular-nums min-w-[56px] text-right",c,t&&b),children:s.ratioDisplay})]})]})}function Rs(s){return s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(0)}K`:s.toString()}function Ps({models:s,isLoading:t,onModelClick:a,privacyMode:n}){const{t:l}=F();return e.jsxs(C,{className:"flex flex-col h-full min-h-0 overflow-hidden gap-0 py-0 shadow-sm lg:col-span-4",children:[e.jsx(L,{className:"px-3 py-2",children:e.jsxs(U,{className:"text-base font-semibold flex items-center gap-2",children:[e.jsx(W,{className:"w-4 h-4"}),l("analyticsCostModel.title")]})}),e.jsx(D,{className:"px-2 pb-2 pt-0 flex-1 min-h-0 overflow-y-auto",children:t?e.jsx(j,{className:"h-full w-full"}):e.jsxs("div",{className:"space-y-0.5",children:[[...s||[]].sort((c,i)=>i.cost-c.cost).map(c=>e.jsxs("button",{className:"group flex items-center text-xs w-full hover:bg-muted/50 rounded px-2 py-1.5 transition-colors cursor-pointer gap-3",onClick:i=>a(c,i),title:l("analyticsCostModel.clickForDetails"),children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0 w-[180px] shrink-0",children:[e.jsx("div",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:oe(c.model)}}),e.jsx("span",{className:"font-medium truncate group-hover:underline underline-offset-2",children:c.model})]}),e.jsx(Bs,{model:c}),e.jsx("span",{className:u("text-[10px] text-muted-foreground w-14 text-right shrink-0",n&&b),children:Rs(c.tokens)}),e.jsxs("span",{className:u("font-mono font-medium w-16 text-right shrink-0",n&&b),children:["$",c.cost.toFixed(2)]}),e.jsx(_e,{className:"w-3 h-3 opacity-0 group-hover:opacity-50 transition-opacity shrink-0"})]},c.model)),e.jsx(qs,{})]})})]})}function Bs({model:s}){const{t}=F(),a={input:"#335c67",output:"#fff3b0",cacheWrite:"#e09f3e",cacheRead:"#9e2a2b"},n=l=>s.cost>0?l/s.cost*100:0;return e.jsx("div",{className:"flex-1 flex items-center gap-1 min-w-0",children:e.jsxs("div",{className:"flex-1 h-2 bg-muted rounded-full overflow-hidden flex",children:[e.jsx("div",{className:"h-full",style:{backgroundColor:a.input,width:`${n(s.costBreakdown.input.cost)}%`},title:`${t("analyticsToken.input")}: $${s.costBreakdown.input.cost.toFixed(2)}`}),e.jsx("div",{className:"h-full",style:{backgroundColor:a.output,width:`${n(s.costBreakdown.output.cost)}%`},title:`${t("analyticsToken.output")}: $${s.costBreakdown.output.cost.toFixed(2)}`}),e.jsx("div",{className:"h-full",style:{backgroundColor:a.cacheWrite,width:`${n(s.costBreakdown.cacheCreation.cost)}%`},title:`${t("analyticsToken.cacheWrite")}: $${s.costBreakdown.cacheCreation.cost.toFixed(2)}`}),e.jsx("div",{className:"h-full",style:{backgroundColor:a.cacheRead,width:`${n(s.costBreakdown.cacheRead.cost)}%`},title:`${t("analyticsToken.cacheRead")}: $${s.costBreakdown.cacheRead.cost.toFixed(2)}`})]})})}function qs(){const{t:s}=F(),t=[{color:"#335c67",label:s("analyticsToken.input")},{color:"#fff3b0",label:s("analyticsToken.output"),hasBorder:!0},{color:"#e09f3e",label:s("analyticsToken.cacheWrite")},{color:"#9e2a2b",label:s("analyticsToken.cacheRead")}];return e.jsx("div",{className:"flex items-center gap-3 pt-2 px-2 text-[10px] text-muted-foreground border-t mt-2",children:t.map(({color:a,label:n,hasBorder:l})=>e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("div",{className:u("w-2 h-2 rounded-full",l&&"border border-muted-foreground/30"),style:{backgroundColor:a}}),n]},n))})}function As({viewMode:s,trends:t,hourlyData:a,models:n,sessions:l,isTrendsLoading:c,isHourlyLoading:i,isModelsLoading:r,isSessionsLoading:o,isSummaryLoading:x,onModelClick:m}){const{privacyMode:p}=P(),{t:g}=F();return e.jsxs("div",{className:"min-h-0 grid gap-4 lg:grid-rows-[minmax(260px,1.2fr)_minmax(220px,0.9fr)]",children:[e.jsxs(C,{className:"flex flex-col h-full min-h-[220px] lg:min-h-[240px] overflow-hidden gap-0 py-0 shadow-sm",children:[e.jsx(L,{className:"px-3 py-2 shrink-0",children:e.jsxs(U,{className:"text-base font-semibold flex items-center gap-2",children:[e.jsx(ue,{className:"w-4 h-4"}),g(s==="hourly"?"analytics.last24Hours":"analytics.usageTrends")]})}),e.jsx(D,{className:"px-3 pb-3 pt-0 flex-1 min-h-0",children:e.jsx(js,{data:s==="hourly"?a||[]:t||[],isLoading:s==="hourly"?i:c,granularity:s==="hourly"?"hourly":"daily"})})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-10 gap-4 h-auto min-h-[220px] lg:h-full lg:min-h-[220px] lg:grid-rows-[minmax(0,1fr)] lg:[&>*]:min-h-0",children:[e.jsx(Ps,{models:n,isLoading:r,onModelClick:m,privacyMode:p}),e.jsxs(C,{className:"flex flex-col h-full min-h-0 overflow-hidden gap-0 py-0 shadow-sm lg:col-span-2",children:[e.jsx(L,{className:"px-3 py-2",children:e.jsxs(U,{className:"text-base font-semibold flex items-center gap-2",children:[e.jsx(Qe,{className:"w-4 h-4"}),g("analytics.modelUsage")]})}),e.jsx(D,{className:"px-2 pb-2 pt-0 flex-1 min-h-0 flex items-center justify-center",children:e.jsx(ws,{data:n||[],isLoading:r,className:"h-full w-full"})})]}),e.jsx(ks,{data:l,isLoading:o,className:"lg:col-span-2"}),e.jsx(Ts,{className:"lg:col-span-2"})]})]})}function zs(){return e.jsxs("div",{className:"space-y-4 h-full overflow-hidden",children:[e.jsxs(C,{className:"flex flex-col min-h-[300px]",children:[e.jsx(L,{className:"p-4 pb-2",children:e.jsx(j,{className:"h-4 w-32"})}),e.jsx(D,{className:"p-4 pt-0 flex-1",children:e.jsx(j,{className:"h-full w-full"})})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs(C,{className:"flex flex-col min-h-[250px]",children:[e.jsx(L,{className:"p-4 pb-2",children:e.jsx(j,{className:"h-4 w-28"})}),e.jsx(D,{className:"p-4 pt-2",children:e.jsx("div",{className:"space-y-3",children:[1,2,3,4,5].map(s=>e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{className:"w-2.5 h-2.5 rounded-full"}),e.jsx(j,{className:"h-3 w-24"})]}),e.jsx(j,{className:"h-3 w-16"})]},s))})})]}),e.jsxs(C,{className:"flex flex-col min-h-[250px]",children:[e.jsx(L,{className:"p-4 pb-2",children:e.jsx(j,{className:"h-4 w-28"})}),e.jsx(D,{className:"p-4 pt-0 flex-1",children:e.jsxs("div",{className:"flex w-full h-full items-center",children:[e.jsx("div",{className:"flex-1 flex justify-center",children:e.jsx(j,{className:"h-[180px] w-[180px] rounded-full"})}),e.jsx("div",{className:"w-[140px] shrink-0 pl-2 space-y-2",children:[1,2,3,4].map(s=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{className:"w-2 h-2 rounded-full"}),e.jsx(j,{className:"h-3 w-20"})]},s))})]})})]})]})]})}function Ys(){const s=h.useRef(null),{dateRange:t,handleDateRangeChange:a,handleTodayClick:n,handleRefresh:l,isRefreshing:c,lastUpdatedText:i,viewMode:r,summary:o,isSummaryLoading:x,trends:m,hourlyData:p,models:g,sessions:k,isTrendsLoading:w,isHourlyLoading:d,isModelsLoading:f,isSessionsLoading:N,handleModelClick:v,selectedModel:y,popoverPosition:I,handlePopoverClose:z}=xs();return e.jsxs("div",{className:"grid h-full min-h-0 grid-rows-[auto_auto_minmax(0,1fr)] gap-4 overflow-y-auto px-4 py-4",children:[e.jsx(ys,{dateRange:t,onDateRangeChange:a,onTodayClick:n,onRefresh:l,isRefreshing:c,lastUpdatedText:i,viewMode:r}),e.jsx(Je,{data:o,isLoading:x}),e.jsx(As,{viewMode:r,trends:m,hourlyData:p,models:g,sessions:k,isTrendsLoading:w,isHourlyLoading:d,isModelsLoading:f,isSessionsLoading:N,isSummaryLoading:x,onModelClick:v}),e.jsxs(re,{open:!!y,onOpenChange:O=>!O&&z(),children:[e.jsx(Fe,{asChild:!0,children:e.jsx("div",{ref:s,className:"fixed pointer-events-none",style:{left:I?.x??0,top:I?.y??0,width:1,height:1}})}),e.jsx(le,{className:"w-80 p-3",side:"top",align:"center",children:y&&e.jsx(es,{model:y})})]})]})}export{Ys as AnalyticsPage,zs as AnalyticsSkeleton};