@kaitranntt/ccs 7.71.0 → 7.72.1-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/README.md +39 -2
  2. package/config/base-codebuddy.settings.json +10 -0
  3. package/config/base-codex.settings.json +4 -4
  4. package/config/base-cursor.settings.json +10 -0
  5. package/config/base-gitlab.settings.json +10 -0
  6. package/config/base-kilo.settings.json +10 -0
  7. package/dist/auth/profile-detector.d.ts +2 -3
  8. package/dist/auth/profile-detector.d.ts.map +1 -1
  9. package/dist/auth/profile-detector.js +19 -19
  10. package/dist/auth/profile-detector.js.map +1 -1
  11. package/dist/ccs.js +89 -27
  12. package/dist/ccs.js.map +1 -1
  13. package/dist/cliproxy/accounts/email-account-identity.d.ts.map +1 -1
  14. package/dist/cliproxy/accounts/email-account-identity.js +22 -2
  15. package/dist/cliproxy/accounts/email-account-identity.js.map +1 -1
  16. package/dist/cliproxy/auth/auth-types.d.ts +10 -0
  17. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  18. package/dist/cliproxy/auth/auth-types.js +32 -0
  19. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  20. package/dist/cliproxy/auth/gitlab-pat-response.d.ts +9 -0
  21. package/dist/cliproxy/auth/gitlab-pat-response.d.ts.map +1 -0
  22. package/dist/cliproxy/auth/gitlab-pat-response.js +64 -0
  23. package/dist/cliproxy/auth/gitlab-pat-response.js.map +1 -0
  24. package/dist/cliproxy/auth/kiro-import.js +1 -1
  25. package/dist/cliproxy/auth/kiro-import.js.map +1 -1
  26. package/dist/cliproxy/auth/oauth-handler.d.ts +3 -0
  27. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  28. package/dist/cliproxy/auth/oauth-handler.js +120 -4
  29. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  30. package/dist/cliproxy/auth/provider-refreshers/index.d.ts +1 -2
  31. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
  32. package/dist/cliproxy/auth/provider-refreshers/index.js +6 -25
  33. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
  34. package/dist/cliproxy/auth/token-manager.d.ts +1 -1
  35. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  36. package/dist/cliproxy/auth/token-manager.js +9 -6
  37. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  38. package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
  39. package/dist/cliproxy/binary/lifecycle.js +12 -1
  40. package/dist/cliproxy/binary/lifecycle.js.map +1 -1
  41. package/dist/cliproxy/binary-manager.d.ts +5 -1
  42. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  43. package/dist/cliproxy/binary-manager.js +10 -2
  44. package/dist/cliproxy/binary-manager.js.map +1 -1
  45. package/dist/cliproxy/codex-plan-compatibility.d.ts.map +1 -1
  46. package/dist/cliproxy/codex-plan-compatibility.js +6 -6
  47. package/dist/cliproxy/codex-plan-compatibility.js.map +1 -1
  48. package/dist/cliproxy/config/env-builder.d.ts +5 -0
  49. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  50. package/dist/cliproxy/config/env-builder.js +56 -4
  51. package/dist/cliproxy/config/env-builder.js.map +1 -1
  52. package/dist/cliproxy/config/generator.d.ts +6 -1
  53. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  54. package/dist/cliproxy/config/generator.js +4 -3
  55. package/dist/cliproxy/config/generator.js.map +1 -1
  56. package/dist/cliproxy/config/path-resolver.d.ts +21 -0
  57. package/dist/cliproxy/config/path-resolver.d.ts.map +1 -1
  58. package/dist/cliproxy/config/path-resolver.js +42 -2
  59. package/dist/cliproxy/config/path-resolver.js.map +1 -1
  60. package/dist/cliproxy/executor/index.d.ts +1 -0
  61. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  62. package/dist/cliproxy/executor/index.js +42 -12
  63. package/dist/cliproxy/executor/index.js.map +1 -1
  64. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  65. package/dist/cliproxy/model-catalog.js +14 -59
  66. package/dist/cliproxy/model-catalog.js.map +1 -1
  67. package/dist/cliproxy/model-config.js +4 -4
  68. package/dist/cliproxy/model-config.js.map +1 -1
  69. package/dist/cliproxy/model-id-normalizer.d.ts +2 -0
  70. package/dist/cliproxy/model-id-normalizer.d.ts.map +1 -1
  71. package/dist/cliproxy/model-id-normalizer.js +25 -1
  72. package/dist/cliproxy/model-id-normalizer.js.map +1 -1
  73. package/dist/cliproxy/provider-capabilities.d.ts.map +1 -1
  74. package/dist/cliproxy/provider-capabilities.js +49 -1
  75. package/dist/cliproxy/provider-capabilities.js.map +1 -1
  76. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts +1 -5
  77. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts.map +1 -1
  78. package/dist/cliproxy/quota-fetcher-claude-normalizer.js +33 -6
  79. package/dist/cliproxy/quota-fetcher-claude-normalizer.js.map +1 -1
  80. package/dist/cliproxy/quota-fetcher-claude.d.ts +2 -2
  81. package/dist/cliproxy/quota-fetcher-claude.d.ts.map +1 -1
  82. package/dist/cliproxy/quota-fetcher-claude.js +18 -32
  83. package/dist/cliproxy/quota-fetcher-claude.js.map +1 -1
  84. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +1 -1
  85. package/dist/cliproxy/quota-fetcher-codex.js +2 -0
  86. package/dist/cliproxy/quota-fetcher-codex.js.map +1 -1
  87. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +1 -1
  88. package/dist/cliproxy/quota-fetcher-gemini-cli.js +221 -99
  89. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +1 -1
  90. package/dist/cliproxy/quota-types.d.ts +2 -2
  91. package/dist/cliproxy/quota-types.d.ts.map +1 -1
  92. package/dist/cliproxy/routing-strategy.d.ts.map +1 -1
  93. package/dist/cliproxy/routing-strategy.js +4 -1
  94. package/dist/cliproxy/routing-strategy.js.map +1 -1
  95. package/dist/cliproxy/service-manager.d.ts.map +1 -1
  96. package/dist/cliproxy/service-manager.js +4 -1
  97. package/dist/cliproxy/service-manager.js.map +1 -1
  98. package/dist/cliproxy/types.d.ts +11 -3
  99. package/dist/cliproxy/types.d.ts.map +1 -1
  100. package/dist/cliproxy/types.js +8 -1
  101. package/dist/cliproxy/types.js.map +1 -1
  102. package/dist/commands/browser-command.d.ts +5 -0
  103. package/dist/commands/browser-command.d.ts.map +1 -0
  104. package/dist/commands/browser-command.js +118 -0
  105. package/dist/commands/browser-command.js.map +1 -0
  106. package/dist/commands/command-catalog.d.ts +3 -2
  107. package/dist/commands/command-catalog.d.ts.map +1 -1
  108. package/dist/commands/command-catalog.js +29 -4
  109. package/dist/commands/command-catalog.js.map +1 -1
  110. package/dist/commands/completion-backend.d.ts.map +1 -1
  111. package/dist/commands/completion-backend.js +4 -0
  112. package/dist/commands/completion-backend.js.map +1 -1
  113. package/dist/commands/cursor-command-display.d.ts.map +1 -1
  114. package/dist/commands/cursor-command-display.js +43 -30
  115. package/dist/commands/cursor-command-display.js.map +1 -1
  116. package/dist/commands/cursor-command.d.ts.map +1 -1
  117. package/dist/commands/cursor-command.js +30 -13
  118. package/dist/commands/cursor-command.js.map +1 -1
  119. package/dist/commands/help-command.d.ts +2 -0
  120. package/dist/commands/help-command.d.ts.map +1 -1
  121. package/dist/commands/help-command.js +62 -3
  122. package/dist/commands/help-command.js.map +1 -1
  123. package/dist/commands/index.d.ts +1 -0
  124. package/dist/commands/index.d.ts.map +1 -1
  125. package/dist/commands/index.js +3 -1
  126. package/dist/commands/index.js.map +1 -1
  127. package/dist/commands/proxy-command.d.ts +2 -0
  128. package/dist/commands/proxy-command.d.ts.map +1 -0
  129. package/dist/commands/proxy-command.js +156 -0
  130. package/dist/commands/proxy-command.js.map +1 -0
  131. package/dist/commands/root-command-router.d.ts.map +1 -1
  132. package/dist/commands/root-command-router.js +14 -0
  133. package/dist/commands/root-command-router.js.map +1 -1
  134. package/dist/config/reserved-names.d.ts +1 -1
  135. package/dist/config/reserved-names.d.ts.map +1 -1
  136. package/dist/config/reserved-names.js +10 -0
  137. package/dist/config/reserved-names.js.map +1 -1
  138. package/dist/config/unified-config-loader.d.ts +6 -1
  139. package/dist/config/unified-config-loader.d.ts.map +1 -1
  140. package/dist/config/unified-config-loader.js +67 -1
  141. package/dist/config/unified-config-loader.js.map +1 -1
  142. package/dist/config/unified-config-types.d.ts +37 -0
  143. package/dist/config/unified-config-types.d.ts.map +1 -1
  144. package/dist/config/unified-config-types.js +25 -1
  145. package/dist/config/unified-config-types.js.map +1 -1
  146. package/dist/cursor/constants.d.ts +3 -0
  147. package/dist/cursor/constants.d.ts.map +1 -1
  148. package/dist/cursor/constants.js +26 -1
  149. package/dist/cursor/constants.js.map +1 -1
  150. package/dist/cursor/cursor-anthropic-response.d.ts +1 -6
  151. package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -1
  152. package/dist/cursor/cursor-anthropic-response.js +3 -186
  153. package/dist/cursor/cursor-anthropic-response.js.map +1 -1
  154. package/dist/cursor/cursor-daemon-entry.js +2 -2
  155. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  156. package/dist/cursor/cursor-profile-executor.js +4 -4
  157. package/dist/cursor/cursor-profile-executor.js.map +1 -1
  158. package/dist/cursor/cursor-runtime-probe.js +3 -3
  159. package/dist/cursor/cursor-runtime-probe.js.map +1 -1
  160. package/dist/glmt/sse-parser.d.ts.map +1 -1
  161. package/dist/glmt/sse-parser.js +46 -41
  162. package/dist/glmt/sse-parser.js.map +1 -1
  163. package/dist/management/shared-manager.d.ts +2 -0
  164. package/dist/management/shared-manager.d.ts.map +1 -1
  165. package/dist/management/shared-manager.js +25 -10
  166. package/dist/management/shared-manager.js.map +1 -1
  167. package/dist/proxy/index.d.ts +8 -0
  168. package/dist/proxy/index.d.ts.map +1 -0
  169. package/dist/proxy/index.js +24 -0
  170. package/dist/proxy/index.js.map +1 -0
  171. package/dist/proxy/profile-router.d.ts +28 -0
  172. package/dist/proxy/profile-router.d.ts.map +1 -0
  173. package/dist/proxy/profile-router.js +43 -0
  174. package/dist/proxy/profile-router.js.map +1 -0
  175. package/dist/proxy/proxy-daemon-entry.d.ts +2 -0
  176. package/dist/proxy/proxy-daemon-entry.d.ts.map +1 -0
  177. package/dist/proxy/proxy-daemon-entry.js +68 -0
  178. package/dist/proxy/proxy-daemon-entry.js.map +1 -0
  179. package/dist/proxy/proxy-daemon-paths.d.ts +6 -0
  180. package/dist/proxy/proxy-daemon-paths.d.ts.map +1 -0
  181. package/dist/proxy/proxy-daemon-paths.js +43 -0
  182. package/dist/proxy/proxy-daemon-paths.js.map +1 -0
  183. package/dist/proxy/proxy-daemon-state.d.ts +18 -0
  184. package/dist/proxy/proxy-daemon-state.d.ts.map +1 -0
  185. package/dist/proxy/proxy-daemon-state.js +92 -0
  186. package/dist/proxy/proxy-daemon-state.js.map +1 -0
  187. package/dist/proxy/proxy-daemon.d.ts +26 -0
  188. package/dist/proxy/proxy-daemon.d.ts.map +1 -0
  189. package/dist/proxy/proxy-daemon.js +350 -0
  190. package/dist/proxy/proxy-daemon.js.map +1 -0
  191. package/dist/proxy/proxy-env.d.ts +3 -0
  192. package/dist/proxy/proxy-env.d.ts.map +1 -0
  193. package/dist/proxy/proxy-env.js +26 -0
  194. package/dist/proxy/proxy-env.js.map +1 -0
  195. package/dist/proxy/request-router.d.ts +12 -0
  196. package/dist/proxy/request-router.d.ts.map +1 -0
  197. package/dist/proxy/request-router.js +163 -0
  198. package/dist/proxy/request-router.js.map +1 -0
  199. package/dist/proxy/routing-config.d.ts +10 -0
  200. package/dist/proxy/routing-config.d.ts.map +1 -0
  201. package/dist/proxy/routing-config.js +79 -0
  202. package/dist/proxy/routing-config.js.map +1 -0
  203. package/dist/proxy/server/http-helpers.d.ts +8 -0
  204. package/dist/proxy/server/http-helpers.d.ts.map +1 -0
  205. package/dist/proxy/server/http-helpers.js +73 -0
  206. package/dist/proxy/server/http-helpers.js.map +1 -0
  207. package/dist/proxy/server/messages-route.d.ts +12 -0
  208. package/dist/proxy/server/messages-route.d.ts.map +1 -0
  209. package/dist/proxy/server/messages-route.js +208 -0
  210. package/dist/proxy/server/messages-route.js.map +1 -0
  211. package/dist/proxy/server/proxy-server.d.ts +12 -0
  212. package/dist/proxy/server/proxy-server.d.ts.map +1 -0
  213. package/dist/proxy/server/proxy-server.js +110 -0
  214. package/dist/proxy/server/proxy-server.js.map +1 -0
  215. package/dist/proxy/transformers/request-transformer.d.ts +52 -0
  216. package/dist/proxy/transformers/request-transformer.d.ts.map +1 -0
  217. package/dist/proxy/transformers/request-transformer.js +254 -0
  218. package/dist/proxy/transformers/request-transformer.js.map +1 -0
  219. package/dist/proxy/transformers/sse-stream-transformer.d.ts +11 -0
  220. package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -0
  221. package/dist/proxy/transformers/sse-stream-transformer.js +199 -0
  222. package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -0
  223. package/dist/proxy/upstream-url.d.ts +3 -0
  224. package/dist/proxy/upstream-url.d.ts.map +1 -0
  225. package/dist/proxy/upstream-url.js +35 -0
  226. package/dist/proxy/upstream-url.js.map +1 -0
  227. package/dist/shared/claude-extension-setup.js +1 -1
  228. package/dist/shared/claude-extension-setup.js.map +1 -1
  229. package/dist/targets/codex-detector.d.ts.map +1 -1
  230. package/dist/targets/codex-detector.js +20 -9
  231. package/dist/targets/codex-detector.js.map +1 -1
  232. package/dist/targets/droid-provider.d.ts.map +1 -1
  233. package/dist/targets/droid-provider.js +2 -0
  234. package/dist/targets/droid-provider.js.map +1 -1
  235. package/dist/types/config.d.ts +13 -0
  236. package/dist/types/config.d.ts.map +1 -1
  237. package/dist/types/config.js.map +1 -1
  238. package/dist/types/index.d.ts +1 -1
  239. package/dist/types/index.d.ts.map +1 -1
  240. package/dist/types/index.js.map +1 -1
  241. package/dist/ui/assets/{accounts-B8EmUjf7.js → accounts-DfkqFx14.js} +1 -1
  242. package/dist/ui/assets/{alert-dialog-zvnFuSZG.js → alert-dialog-BJ9GwHLZ.js} +1 -1
  243. package/dist/ui/assets/{api-vTHvDFg5.js → api-BVo8Vm1B.js} +1 -1
  244. package/dist/ui/assets/{auth-section-Dg3AdWQR.js → auth-section-B-Ms1O_M.js} +1 -1
  245. package/dist/ui/assets/{backups-section-CuRlCk7U.js → backups-section-f8hvkPfH.js} +1 -1
  246. package/dist/ui/assets/{channels-ByIXpMal.js → channels-Bgvry5fT.js} +1 -1
  247. package/dist/ui/assets/{checkbox-DoV2JinM.js → checkbox-CbI3Vbww.js} +1 -1
  248. package/dist/ui/assets/{claude-extension-B-Ofp87Z.js → claude-extension-lDT7lp8C.js} +1 -1
  249. package/dist/ui/assets/cliproxy-D50Owb9u.js +3 -0
  250. package/dist/ui/assets/{cliproxy-ai-providers-BVOtMT7b.js → cliproxy-ai-providers-Cjrk90aJ.js} +8 -8
  251. package/dist/ui/assets/{cliproxy-control-panel-qL0R878z.js → cliproxy-control-panel-DL8JoyKU.js} +1 -1
  252. package/dist/ui/assets/codex-B3bW7lzx.js +27 -0
  253. package/dist/ui/assets/{confirm-dialog-BcfzKHj3.js → confirm-dialog-Bm2Y3ArL.js} +1 -1
  254. package/dist/ui/assets/{copilot-Dti40Uv-.js → copilot-CPLBRpFA.js} +1 -1
  255. package/dist/ui/assets/cursor-D1xhqEEF.js +1 -0
  256. package/dist/ui/assets/{droid-BmuIeDFh.js → droid-DiFtSJkl.js} +2 -2
  257. package/dist/ui/assets/{globalenv-section-CGbpkbpW.js → globalenv-section-BadlR8mm.js} +1 -1
  258. package/dist/ui/assets/{health-DryU1jzv.js → health-Bxol1p1X.js} +1 -1
  259. package/dist/ui/assets/{icons-KVCk4_U8.js → icons-Dmi9qMuE.js} +1 -1
  260. package/dist/ui/assets/{index-Dgu-LYP_.js → index-BPCsEKJ8.js} +1 -1
  261. package/dist/ui/assets/{index-B_vdNMI1.js → index-BZYBDV6A.js} +1 -1
  262. package/dist/ui/assets/index-C2-J9AKi.js +1 -0
  263. package/dist/ui/assets/{index-DUCkRc_D.js → index-CA4r5qY8.js} +1 -1
  264. package/dist/ui/assets/index-CXRoMyUA.js +9 -0
  265. package/dist/ui/assets/index-DM7Qb4kd.js +72 -0
  266. package/dist/ui/assets/index-DuTB1_9r.css +1 -0
  267. package/dist/ui/assets/{index-Cu--MLG0.js → index-x07V45Iw.js} +1 -1
  268. package/dist/ui/assets/{logs-CtIgaS7y.js → logs-kvpMF-pw.js} +1 -1
  269. package/dist/ui/assets/{masked-input-Dm8T-Vtr.js → masked-input-CFQ05toP.js} +1 -1
  270. package/dist/ui/assets/providers/codebuddy.png +0 -0
  271. package/dist/ui/assets/providers/cursor.svg +5 -0
  272. package/dist/ui/assets/providers/gitlab.svg +22 -0
  273. package/dist/ui/assets/providers/kilo.png +0 -0
  274. package/dist/ui/assets/{proxy-status-widget-BXghaDz7.js → proxy-status-widget-Df_-wCR0.js} +1 -1
  275. package/dist/ui/assets/{raw-json-settings-editor-panel-DhhcWn5Q.js → raw-json-settings-editor-panel-DeWgWDSP.js} +1 -1
  276. package/dist/ui/assets/{searchable-select-DiGUiefs.js → searchable-select-CPbVBSoE.js} +1 -1
  277. package/dist/ui/assets/{separator-DnQqlaL0.js → separator--T-CzItG.js} +1 -1
  278. package/dist/ui/assets/{shared-BPuiJsYO.js → shared-Dx_5pa5N.js} +1 -1
  279. package/dist/ui/assets/{table-BDsTJlxT.js → table-wE_LUUUQ.js} +1 -1
  280. package/dist/ui/assets/{updates-DQxYQBCf.js → updates-mWDqf-fm.js} +1 -1
  281. package/dist/ui/index.html +3 -3
  282. package/dist/utils/browser/browser-settings.d.ts +27 -0
  283. package/dist/utils/browser/browser-settings.d.ts.map +1 -0
  284. package/dist/utils/browser/browser-settings.js +127 -0
  285. package/dist/utils/browser/browser-settings.js.map +1 -0
  286. package/dist/utils/browser/browser-status.d.ts +39 -0
  287. package/dist/utils/browser/browser-status.d.ts.map +1 -0
  288. package/dist/utils/browser/browser-status.js +134 -0
  289. package/dist/utils/browser/browser-status.js.map +1 -0
  290. package/dist/utils/browser/chrome-reuse.d.ts +1 -0
  291. package/dist/utils/browser/chrome-reuse.d.ts.map +1 -1
  292. package/dist/utils/browser/chrome-reuse.js.map +1 -1
  293. package/dist/utils/browser/index.d.ts +4 -0
  294. package/dist/utils/browser/index.d.ts.map +1 -1
  295. package/dist/utils/browser/index.js +8 -1
  296. package/dist/utils/browser/index.js.map +1 -1
  297. package/dist/utils/browser/platform.d.ts +4 -0
  298. package/dist/utils/browser/platform.d.ts.map +1 -0
  299. package/dist/utils/browser/platform.js +12 -0
  300. package/dist/utils/browser/platform.js.map +1 -0
  301. package/dist/utils/hooks/image-analysis-backend-resolver.js +1 -1
  302. package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
  303. package/dist/web-server/routes/browser-routes.d.ts +3 -0
  304. package/dist/web-server/routes/browser-routes.d.ts.map +1 -0
  305. package/dist/web-server/routes/browser-routes.js +116 -0
  306. package/dist/web-server/routes/browser-routes.js.map +1 -0
  307. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  308. package/dist/web-server/routes/cliproxy-auth-routes.js +124 -1
  309. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  310. package/dist/web-server/routes/config-routes.d.ts.map +1 -1
  311. package/dist/web-server/routes/config-routes.js +3 -0
  312. package/dist/web-server/routes/config-routes.js.map +1 -1
  313. package/dist/web-server/routes/index.d.ts.map +1 -1
  314. package/dist/web-server/routes/index.js +3 -0
  315. package/dist/web-server/routes/index.js.map +1 -1
  316. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  317. package/dist/web-server/routes/settings-routes.js +8 -0
  318. package/dist/web-server/routes/settings-routes.js.map +1 -1
  319. package/dist/web-server/services/compatible-cli-docs-registry.d.ts.map +1 -1
  320. package/dist/web-server/services/compatible-cli-docs-registry.js +1 -0
  321. package/dist/web-server/services/compatible-cli-docs-registry.js.map +1 -1
  322. package/package.json +1 -1
  323. package/dist/cliproxy/auth/gemini-token-refresh.d.ts +0 -40
  324. package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +0 -1
  325. package/dist/cliproxy/auth/gemini-token-refresh.js +0 -371
  326. package/dist/cliproxy/auth/gemini-token-refresh.js.map +0 -1
  327. package/dist/ui/assets/cliproxy-Bhu0JvIb.js +0 -3
  328. package/dist/ui/assets/codex-BCHZ-0dx.js +0 -27
  329. package/dist/ui/assets/cursor-BG0Y8Z5F.js +0 -1
  330. package/dist/ui/assets/index-B1mN7ZR-.js +0 -72
  331. package/dist/ui/assets/index-BBVoDJnl.js +0 -1
  332. package/dist/ui/assets/index-BMC5Tudw.css +0 -1
@@ -1 +0,0 @@
1
- import{j as e}from"./radix-ui-Zb8sVEtn.js";import{r as b}from"./react-vendor-CNOkPC89.js";import{t as o}from"./notifications-B2HqRBj7.js";import{bb as w,bc as us,a as Le,B as A,d as p,c as H,n as G,Q as ms,R as gs,U as le,V as de,L as F,I as ue,aF as Te,bh as hs,ag as xs,ah as fs,ai as ps,aj as js,ak as Ps,aC as bs,bd as ws}from"./index-B1mN7ZR-.js";import{a as ys,u as Q,b as T}from"./tanstack-CrmUhA7Z.js";import{D as Ie}from"./default-ports-1QQSffYX.js";import{S as vs}from"./separator-DnQqlaL0.js";import{S as Ns}from"./searchable-select-DiGUiefs.js";import{R as Re,T as Cs,ah as Ss,K as J,ad as ks,aw as me,aP as Fe,aO as _s,L as R,J as Ms,at as As,aa as Ds,Z as ge,x as Ts,I as Rs}from"./icons-KVCk4_U8.js";import"./utils-CzKF5WmX.js";import"./form-utils-Bcoyqxpq.js";import"./code-highlight-BRUf_pqB.js";function Fs(s){if(!s||typeof s!="object")return!1;const a=s;return typeof a.message=="string"&&typeof a.stage=="string"&&typeof a.status=="number"&&typeof a.duration_ms=="number"&&typeof a.ok=="boolean"}function Ls(s){if(!s||typeof s!="object"||!("error"in s))return null;const a=s;return typeof a.error=="string"?a.error:null}async function Is(){const s=await fetch(w("/cursor/status"));if(!s.ok)throw new Error("Failed to fetch cursor status");return s.json()}async function Os(){const s=await fetch(w("/cursor/settings"));if(!s.ok)throw new Error("Failed to fetch cursor config");return s.json()}async function Es(){const s=await fetch(w("/cursor/models"));if(!s.ok)throw new Error("Failed to fetch cursor models");return s.json()}async function Ks(){const s=await fetch(w("/cursor/settings/raw"));if(!s.ok)throw new Error("Failed to fetch cursor raw settings");return s.json()}async function zs(s){const a=await fetch(w("/cursor/settings"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!a.ok)throw new Error("Failed to update cursor config");return a.json()}async function qs(s){const a=await fetch(w("/cursor/settings/raw"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(a.status===409)throw new us("Cursor raw settings changed externally");if(!a.ok)throw new Error("Failed to save cursor raw settings");return a.json()}async function Gs(){const s=await fetch(w("/cursor/auth/auto-detect"),{method:"POST"});if(!s.ok){const a=await s.json().catch(()=>({error:"Auto-detect failed"}));throw new Error(a.error||"Auto-detect failed")}return s.json()}async function Qs(s){const a=await fetch(w("/cursor/auth/import"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!a.ok){const c=await a.json().catch(()=>({error:"Manual import failed"}));throw new Error(c.error||"Manual import failed")}return a.json()}async function Js(){const s=await fetch(w("/cursor/daemon/start"),{method:"POST"});if(!s.ok)throw new Error("Failed to start cursor daemon");return s.json()}async function Us(){const s=await fetch(w("/cursor/daemon/stop"),{method:"POST"});if(!s.ok)throw new Error("Failed to stop cursor daemon");return s.json()}async function Bs(){const s=await fetch(w("/cursor/probe"),{method:"POST"}),a=await s.json().catch(()=>null);return Fs(a)?a:{ok:!1,stage:"runtime",status:s.status,duration_ms:0,error_type:"runtime_error",message:Ls(a)??"Failed to run live probe"}}function Hs(){const s=ys(),a=Q({queryKey:["cursor-status"],queryFn:Is,refetchInterval:5e3}),c=Q({queryKey:["cursor-config"],queryFn:Os}),d=Q({queryKey:["cursor-models"],queryFn:Es}),l=Q({queryKey:["cursor-raw-settings"],queryFn:Ks}),g=()=>{s.invalidateQueries({queryKey:["cursor-status"]}),s.invalidateQueries({queryKey:["cursor-config"]}),s.invalidateQueries({queryKey:["cursor-models"]}),s.invalidateQueries({queryKey:["cursor-raw-settings"]})},h=T({mutationFn:zs,onSuccess:g}),u=T({mutationFn:qs,onSuccess:g}),r=T({mutationFn:Gs,onSuccess:g}),m=T({mutationFn:Qs,onSuccess:g}),x=T({mutationFn:Js,onSuccess:g}),i=T({mutationFn:Us,onSuccess:g}),P=T({mutationFn:Bs,onSettled:()=>{s.invalidateQueries({queryKey:["cursor-status"]}),s.invalidateQueries({queryKey:["cursor-models"]})}});return b.useMemo(()=>({status:a.data,statusLoading:a.isLoading,statusError:a.error,refetchStatus:a.refetch,config:c.data,configLoading:c.isLoading,refetchConfig:c.refetch,models:d.data?.models??[],currentModel:d.data?.current??null,modelsLoading:d.isLoading,rawSettings:l.data,rawSettingsLoading:l.isLoading,refetchRawSettings:l.refetch,updateConfig:h.mutate,updateConfigAsync:h.mutateAsync,isUpdatingConfig:h.isPending,saveRawSettings:u.mutate,saveRawSettingsAsync:u.mutateAsync,isSavingRawSettings:u.isPending,autoDetectAuth:r.mutate,autoDetectAuthAsync:r.mutateAsync,isAutoDetectingAuth:r.isPending,autoDetectAuthResult:r.data,importManualAuth:m.mutate,importManualAuthAsync:m.mutateAsync,isImportingManualAuth:m.isPending,manualAuthResult:m.data,startDaemon:x.mutate,startDaemonAsync:x.mutateAsync,isStartingDaemon:x.isPending,stopDaemon:i.mutate,stopDaemonAsync:i.mutateAsync,isStoppingDaemon:i.isPending,runProbe:P.mutate,runProbeAsync:P.mutateAsync,isRunningProbe:P.isPending,probeResult:P.data,resetProbe:P.reset}),[a.data,a.isLoading,a.error,a.refetch,c.data,c.isLoading,c.refetch,d.data,d.isLoading,l.data,l.isLoading,l.refetch,h.mutate,h.mutateAsync,h.isPending,u.mutate,u.mutateAsync,u.isPending,r.mutate,r.mutateAsync,r.isPending,r.data,m.mutate,m.mutateAsync,m.isPending,m.data,x.mutate,x.mutateAsync,x.isPending,i.mutate,i.mutateAsync,i.isPending,P.mutate,P.mutateAsync,P.isPending,P.data,P.reset])}function he(s,a){return JSON.stringify({enabled:s?.enabled??null,authenticated:s?.authenticated??null,token_expired:s?.token_expired??null,daemon_running:s?.daemon_running??null,port:s?.port??null,ghost_mode:s?.ghost_mode??null,auto_start:a?.auto_start??null,model:a?.model??null})}function U(s){return{port:String(s?.port??Ie),auto_start:s?.auto_start??!1,ghost_mode:s?.ghost_mode??!0,model:s?.model?.trim()||"gpt-5.3-codex",opus_model:s?.opus_model?.trim()||"",sonnet_model:s?.sonnet_model?.trim()||"",haiku_model:s?.haiku_model?.trim()||""}}function C(s,a,c){return s.find(l=>a.some(g=>g.test(l.id)))?.id??c}function xe(s){return s.toLowerCase().replace(/[^a-z0-9]/g,"")}function S(s,a,c){const d=new Set(a.map(xe)),l=s.find(h=>d.has(xe(h.id)));if(l)return l.id;const g=s.find(h=>d.has(xe(h.name)));return g?g.id:c}function Vs(s){try{const a=JSON.parse(s||"{}");return!a||typeof a!="object"||Array.isArray(a)?{isValid:!1,error:"Raw settings must be a JSON object"}:{isValid:!0,settings:a}}catch(a){return{isValid:!1,error:a.message||"Invalid JSON"}}}function B({label:s,description:a,value:c,models:d,disabled:l,allowDefaultFallback:g=!1,onChange:h}){const{t:u}=Le(),r=c||(g?"__default":""),m=b.useMemo(()=>{const x=d.map(i=>({value:i.id,groupKey:"models",searchText:`${i.name||i.id} ${i.id}`,keywords:[i.provider],triggerContent:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate font-mono text-xs",children:i.name||i.id}),i.provider&&e.jsx(A,{variant:"outline",className:"text-[9px] h-4 px-1 capitalize",children:i.provider})]}),itemContent:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate text-xs font-mono",children:i.name||i.id}),e.jsx(A,{variant:"outline",className:"text-[9px] h-4 px-1 capitalize",children:i.provider})]})}));return g?[{value:"__default",groupKey:"models",searchText:u("cursorPage.useDefaultModel"),triggerContent:e.jsx("span",{className:"truncate font-mono text-xs",children:u("cursorPage.useDefaultModel")}),itemContent:e.jsx("span",{children:u("cursorPage.useDefaultModel")})},...x]:x},[g,d,u]);return e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{children:[e.jsx(F,{className:"text-xs font-medium",children:s}),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:a})]}),e.jsx(Ns,{value:r||void 0,onChange:x=>{if(g&&x==="__default"){h("");return}h(x)},disabled:l,placeholder:u("cursorPage.selectModel"),searchPlaceholder:u("searchableSelect.searchModels"),emptyText:u("searchableSelect.noResults"),triggerClassName:"h-9",groups:[{key:"models",label:u("cursorPage.availableModelCount",{count:d.length})}],options:m})]})}function fe({icon:s,label:a,ok:c,detail:d}){return e.jsxs("div",{className:"flex items-center gap-3 rounded-lg bg-muted/50 px-3 py-2",children:[e.jsx(s,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx("p",{className:"text-sm",children:a})}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[c?e.jsx(Ts,{className:"h-4 w-4 text-green-500"}):e.jsx(Rs,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:H("text-xs",c?"text-green-500":"text-muted-foreground"),title:d,children:d})]})]})}function ia(){const{t:s}=Le(),{status:a,statusLoading:c,refetchStatus:d,config:l,refetchConfig:g,updateConfigAsync:h,isUpdatingConfig:u,models:r,modelsLoading:m,currentModel:x,rawSettings:i,rawSettingsLoading:P,refetchRawSettings:Oe,saveRawSettingsAsync:Ee,isSavingRawSettings:pe,autoDetectAuthAsync:Ke,isAutoDetectingAuth:je,importManualAuthAsync:ze,isImportingManualAuth:Pe,startDaemonAsync:qe,isStartingDaemon:Ge,stopDaemonAsync:Qe,isStoppingDaemon:be,runProbeAsync:Je,isRunningProbe:V,probeResult:W,resetProbe:Ue}=Hs(),[D,X]=b.useState(()=>U()),[y,Z]=b.useState(!1),[we,Be]=b.useState("{}"),[L,$]=b.useState(!1),[He,E]=b.useState(!1),[Y,ye]=b.useState(""),[ee,ve]=b.useState(""),[Ne,Ce]=b.useState(()=>W?he(a,l):null),k=U(l),Se=y?D.port:k.port,se=y?D.auto_start:k.auto_start,ae=y?D.ghost_mode:k.ghost_mode,v=y?D.model:k.model,te=y?D.opus_model:k.opus_model,re=y?D.sonnet_model:k.sonnet_model,ne=y?D.haiku_model:k.haiku_model,oe=L?we:JSON.stringify(i?.settings??{},null,2),ke=!!i,I=b.useMemo(()=>Vs(oe),[oe]),_e=I.isValid,K=y||L,Ve=!L||ke&&_e,We=he(a,l),j=W&&!K&&Ne!==null&&Ne===We?W:null,z=b.useMemo(()=>{const t=new Set,n=[...r].sort((M,ce)=>M.name.localeCompare(ce.name)),f=n.filter(M=>t.has(M.id)?!1:(t.add(M.id),!0));return v&&!n.some(M=>M.id===v)?[{id:v,name:v,provider:"custom"},...f]:f},[r,v]),N=t=>{X(n=>t(y?n:k)),Z(!0)},_=()=>{Ue(),Ce(null)},Xe=(t=l)=>{X(U(t)),Z(!1)},Ze=!!(a?.enabled&&a?.authenticated&&!a?.token_expired),$e=b.useMemo(()=>a?.enabled?e.jsx(A,{children:s("cursorPage.enabled")}):e.jsx(A,{variant:"secondary",children:s("cursorPage.disabled")}),[a?.enabled,s]),Ye=async({suppressSuccessToast:t=!1}={})=>{const n=Number(Se);if(!Number.isInteger(n)||n<1||n>65535)return o.error(s("cursorPage.invalidPort")),!1;if(!v.trim())return o.error(s("cursorPage.defaultModelRequired")),!1;try{return await h({port:n,auto_start:se,ghost_mode:ae,model:v,opus_model:te||void 0,sonnet_model:re||void 0,haiku_model:ne||void 0}),Z(!1),X(U({port:n,auto_start:se,ghost_mode:ae,model:v,opus_model:te||void 0,sonnet_model:re||void 0,haiku_model:ne||void 0})),_(),t||o.success(s("cursorPage.savedConfig")),!0}catch(f){return o.error(f.message||s("cursorPage.failedSaveConfig")),!1}},ie=t=>{if(m){o.error(s("cursorPage.modelsLoadingWait"));return}if(r.length===0){o.error(s("cursorPage.noModelsAvailable"));return}const n=v||x||r[0]?.id||"gpt-5.3-codex",f=S(r,["gpt-5.3-codex","gpt53codex","GPT-5.3 Codex"],C(r,[/gpt[-.]?5.*codex/i],n)),M=S(r,["gpt-5.1-codex-max","gpt51codexmax","GPT-5.1 Codex Max"],C(r,[/gpt[-.]?5.*codex.*max/i],f)),ce=S(r,["gpt-5-fast","gpt5fast","GPT-5 Fast"],C(r,[/gpt[-.]?5.*fast/i],f)),cs=S(r,["gpt-5-mini","gpt5mini","GPT-5 Mini"],C(r,[/gpt[-.]?5.*mini/i],ce)),Ae=S(r,["claude-4.6-opus","claude46opus","Claude 4.6 Opus"],C(r,[/claude[-.]?4\.?6.*opus/i,/claude.*opus/i],f)),De=S(r,["claude-4.5-sonnet","claude45sonnet","Claude 4.5 Sonnet"],C(r,[/claude[-.]?4\.?5.*sonnet/i,/claude.*sonnet/i],f)),ls=S(r,["claude-4.5-haiku","claude45haiku","Claude 4.5 Haiku"],C(r,[/claude[-.]?4\.?5.*haiku/i,/haiku/i],De)),q=S(r,["gemini-3-pro","gemini3pro","Gemini 3 Pro"],C(r,[/gemini[-.]?3.*pro/i],f)),ds=S(r,["gemini-3-flash","gemini3flash","Gemini 3 Flash"],C(r,[/gemini[-.]?3.*flash/i,/gemini[-.]?2\.?5.*flash/i],q));if(t==="codex53"){N(O=>({...O,model:f,opus_model:M,sonnet_model:f,haiku_model:cs})),o.success(s("cursorPage.appliedCodexPreset"));return}if(t==="claude46"){N(O=>({...O,model:Ae,opus_model:Ae,sonnet_model:De,haiku_model:ls})),o.success(s("cursorPage.appliedClaudePreset"));return}N(O=>({...O,model:q,opus_model:q,sonnet_model:q,haiku_model:ds})),o.success(s("cursorPage.appliedGeminiPreset"))},Me=async t=>{try{await h({enabled:t}),_(),o.success(s(t?"cursorPage.integrationEnabled":"cursorPage.integrationDisabled"))}catch(n){o.error(n.message||s("cursorPage.failedUpdateIntegration"))}},es=async()=>{try{await Ke(),_(),o.success(s("cursorPage.credentialsImported"))}catch(t){o.error(t.message||s("cursorPage.autoDetectFailed"))}},ss=async()=>{if(!Y.trim()||!ee.trim()){o.error(s("cursorPage.manualRequired"));return}try{await ze({accessToken:Y.trim(),machineId:ee.trim()}),_(),o.success(s("cursorPage.credentialsImported")),E(!1),ye(""),ve("")}catch(t){o.error(t.message||s("cursorPage.manualImportFailed"))}},as=async()=>{try{const t=await qe();if(!t.success){o.error(t.error||s("cursorPage.failedStartDaemon"));return}_(),o.success(t.pid?s("cursorPage.daemonStartedWithPid",{pid:t.pid}):s("cursorPage.daemonStarted"))}catch(t){o.error(t.message||s("cursorPage.failedStartDaemon"))}},ts=async()=>{try{const t=await Qe();if(!t.success){o.error(t.error||s("cursorPage.failedStopDaemon"));return}_(),o.success(s("cursorPage.daemonStopped"))}catch(t){o.error(t.message||s("cursorPage.failedStopDaemon"))}},rs=async()=>{if(K){o.error(s("cursorPage.probeSaveFirst"));return}try{const t=await Je(),n=await d();if(Ce(he(n.data??a,l)),t.ok){o.success(s("cursorPage.probeSucceeded"));return}o.error(t.message||s("cursorPage.probeFailed"))}catch(t){o.error(t.message||s("cursorPage.probeFailed"))}},ns=async({suppressSuccessToast:t=!1}={})=>{if(!ke)return o.error(s("cursorPage.rawLoading")),!1;if(!I.isValid||!I.settings)return o.error(I.error||s("cursorPage.invalidJson")),!1;try{return await Ee({settings:I.settings,expectedMtime:i?.mtime}),$(!1),_(),t||o.success(s("cursorPage.rawSaved")),!0}catch(n){return ws(n)?o.error(s("cursorPage.rawChanged")):o.error(n.message||s("cursorPage.failedSaveRaw")),!1}},os=async()=>{if(!K)return;const t=y,n=L;t&&!await Ye({suppressSuccessToast:n})||n&&!await ns({suppressSuccessToast:t})||t&&n&&o.success(s("cursorPage.savedAll"))},is=async()=>{$(!1),_();const[,t]=await Promise.all([d(),g(),Oe()]);Xe(t.data??l)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex h-full min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"w-80 border-r flex flex-col bg-muted/30 shrink-0",children:[e.jsxs("div",{className:"p-4 border-b bg-background",children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("img",{src:"/assets/sidebar/cursor.svg",alt:"",className:"w-5 h-5 object-contain shrink-0"}),e.jsx("h1",{className:"font-semibold",children:s("cursorPage.title")}),e.jsx(A,{variant:"outline",className:"h-5 border-amber-500/60 bg-amber-500/10 px-1.5 text-[10px] font-semibold uppercase tracking-wide text-amber-800 dark:text-amber-300",children:s("cursorPage.beta")}),$e]}),e.jsx(p,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>d(),disabled:c,"aria-label":s("cursorPage.refreshStatus"),title:s("cursorPage.refreshStatus"),children:e.jsx(Re,{className:H("w-4 h-4",c&&"animate-spin")})})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("cursorPage.subtitle")})]}),e.jsx(G,{className:"flex-1",children:e.jsxs("div",{className:"p-3 space-y-4",children:[e.jsxs("div",{className:"rounded-md border border-yellow-500/50 bg-yellow-500/15 p-3 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Cs,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-400 shrink-0"}),e.jsx("span",{className:"text-xs font-semibold text-yellow-800 dark:text-yellow-200",children:s("cursorPage.unofficialTitle")})]}),e.jsxs("ul",{className:"text-[11px] text-yellow-700 dark:text-yellow-300 space-y-0.5 pl-6 list-disc",children:[e.jsx("li",{children:s("cursorPage.unofficialItem1")}),e.jsx("li",{children:s("cursorPage.unofficialItem2")}),e.jsx("li",{children:s("cursorPage.unofficialItem3")})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(fe,{icon:Ss,label:s("cursorPage.integration"),ok:!!a?.enabled,detail:a?.enabled?s("cursorPage.enabled"):s("cursorPage.disabled")}),e.jsx(fe,{icon:J,label:s("cursorPage.authentication"),ok:!!(a?.authenticated&&!a?.token_expired),detail:a?.authenticated?a?.token_expired?s("cursorPage.expired"):a.auth_method??s("cursorPage.connected"):s("cursorPage.notConnected")}),e.jsx(fe,{icon:ks,label:s("cursorPage.daemon"),ok:!!a?.daemon_running,detail:a?.daemon_running?s("cursorPage.running"):s("cursorPage.stopped")})]}),e.jsxs("div",{className:"rounded-md border bg-background/80 p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(me,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:s("cursorPage.liveProbe")})]}),e.jsx(A,{variant:j?"outline":"secondary",className:H(j?.ok&&"border-green-500/40 text-green-600 dark:text-green-300",j&&!j.ok&&"border-red-500/40 text-red-600 dark:text-red-300"),children:j?j.ok?s("cursorPage.probeSucceeded"):s("cursorPage.probeFailed"):s("cursorPage.probeNotRun")})]}),j?e.jsxs("div",{className:"space-y-1 text-xs",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{className:"text-muted-foreground",children:s("cursorPage.probeStage")}),e.jsx("span",{className:"font-mono uppercase",children:j.stage})]}),e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{className:"text-muted-foreground",children:s("cursorPage.probeHttpStatus")}),e.jsx("span",{className:"font-mono",children:j.status})]}),e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{className:"text-muted-foreground",children:s("cursorPage.probeDuration")}),e.jsxs("span",{className:"font-mono",children:[j.duration_ms," ms"]})]}),j.model?e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{className:"text-muted-foreground",children:s("cursorPage.probeModel")}),e.jsx("span",{className:"font-mono text-[11px] text-right break-all",children:j.model})]}):null,e.jsxs("div",{className:"space-y-1 pt-1",children:[e.jsx("span",{className:"text-muted-foreground",children:s("cursorPage.probeMessage")}),e.jsx("p",{className:"text-[11px] leading-relaxed break-words",children:j.message})]})]}):e.jsx("p",{className:"text-xs text-muted-foreground",children:s("cursorPage.probeNotRun")}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:s("cursorPage.probeLocalReadinessHint")})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:s("cursorPage.actions")}),a?.enabled?e.jsxs(p,{variant:"outline",size:"sm",className:"w-full",onClick:()=>Me(!1),disabled:u,children:[e.jsx(Fe,{className:"w-3.5 h-3.5 mr-1.5"}),s("cursorPage.disableIntegration")]}):e.jsxs(p,{size:"sm",className:"w-full",onClick:()=>Me(!0),disabled:u,children:[e.jsx(_s,{className:"w-3.5 h-3.5 mr-1.5"}),s("cursorPage.enableIntegration")]}),e.jsxs(p,{variant:"outline",size:"sm",className:"w-full",onClick:es,disabled:je,children:[je?e.jsx(R,{className:"w-3.5 h-3.5 mr-1.5 animate-spin"}):e.jsx(J,{className:"w-3.5 h-3.5 mr-1.5"}),s("cursorPage.autoDetectAuth")]}),e.jsxs(p,{variant:"outline",size:"sm",className:"w-full",onClick:()=>E(!0),children:[e.jsx(J,{className:"w-3.5 h-3.5 mr-1.5"}),s("cursorPage.manualAuthImport")]}),e.jsxs(p,{variant:"outline",size:"sm",className:"w-full",onClick:rs,disabled:V,children:[V?e.jsx(R,{className:"w-3.5 h-3.5 mr-1.5 animate-spin"}):e.jsx(me,{className:"w-3.5 h-3.5 mr-1.5"}),s(V?"cursorPage.probing":j?"cursorPage.rerunLiveProbe":"cursorPage.runLiveProbe")]}),a?.daemon_running?e.jsxs(p,{variant:"outline",size:"sm",className:"w-full",onClick:ts,disabled:be,children:[be?e.jsx(R,{className:"w-3.5 h-3.5 mr-1.5 animate-spin"}):e.jsx(Fe,{className:"w-3.5 h-3.5 mr-1.5"}),s("cursorPage.stopDaemon")]}):e.jsxs(p,{size:"sm",className:"w-full",onClick:as,disabled:!Ze,children:[Ge?e.jsx(R,{className:"w-3.5 h-3.5 mr-1.5 animate-spin"}):e.jsx(Ms,{className:"w-3.5 h-3.5 mr-1.5"}),s("cursorPage.startDaemon")]})]})]})}),e.jsx("div",{className:"p-3 border-t bg-background text-xs text-muted-foreground",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{children:s("cursorPage.port")}),e.jsx("span",{children:a?.port??l?.port??Ie})]})})]}),e.jsx("div",{className:"flex-1 flex flex-col min-w-0 bg-background overflow-hidden",children:e.jsxs("div",{className:"flex-1 min-h-0 flex flex-col overflow-hidden",children:[e.jsxs("div",{className:"px-6 py-4 border-b bg-background flex items-center justify-between shrink-0",children:[e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h2",{className:"text-lg font-semibold",children:s("cursorPage.configuration")}),i&&e.jsx(A,{variant:"outline",className:"text-xs",children:"cursor.settings.json"})]}),i&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-0.5",children:[s("cursorPage.lastModified")," ",i.exists?new Date(i.mtime).toLocaleString():s("cursorPage.neverSaved")]})]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(p,{variant:"ghost",size:"sm",onClick:is,disabled:c||P,"aria-label":s("cursorPage.refreshConfiguration"),title:s("cursorPage.refreshConfiguration"),children:e.jsx(Re,{className:H("w-4 h-4",(c||P)&&"animate-spin")})}),e.jsx(p,{size:"sm",onClick:os,disabled:u||pe||!K||!Ve,children:u||pe?e.jsxs(e.Fragment,{children:[e.jsx(R,{className:"w-4 h-4 mr-1 animate-spin"}),s("cursorPage.saving")]}):e.jsxs(e.Fragment,{children:[e.jsx(As,{className:"w-4 h-4 mr-1"}),s("cursorPage.save")]})})]})]}),e.jsxs("div",{className:"flex-1 min-h-0 flex divide-x overflow-hidden",children:[e.jsx("div",{className:"w-[540px] shrink-0 flex flex-col min-h-0 overflow-hidden bg-muted/5",children:e.jsxs(ms,{defaultValue:"config",className:"h-full flex flex-col",children:[e.jsx("div",{className:"px-4 pt-4 shrink-0",children:e.jsxs(gs,{className:"w-full",children:[e.jsx(le,{value:"config",className:"flex-1",children:s("cursorPage.modelConfig")}),e.jsx(le,{value:"settings",className:"flex-1",children:s("cursorPage.settings")}),e.jsx(le,{value:"info",className:"flex-1",children:s("cursorPage.info")})]})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col",children:[e.jsx(de,{value:"config",className:"flex-1 mt-0 border-0 p-0 data-[state=inactive]:hidden flex flex-col overflow-hidden",children:e.jsx(G,{className:"flex-1",children:e.jsxs("div",{className:"p-4 space-y-6",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-medium mb-2 flex items-center gap-2",children:[e.jsx(Ds,{className:"w-4 h-4"}),s("cursorPage.presets")]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:s("cursorPage.presetsDesc")}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(p,{variant:"outline",size:"sm",className:"text-xs h-7 gap-1",onClick:()=>ie("codex53"),disabled:m||r.length===0,title:"OpenAI-only mapping: GPT-5.3 Codex / Codex Max / GPT-5 Mini",children:[e.jsx(ge,{className:"w-3 h-3"}),"GPT-5.3 Codex"]}),e.jsxs(p,{variant:"outline",size:"sm",className:"text-xs h-7 gap-1",onClick:()=>ie("claude46"),disabled:m||r.length===0,title:"Claude-first mapping: Opus 4.6 / Sonnet 4.5 / Haiku 4.5",children:[e.jsx(ge,{className:"w-3 h-3"}),"Claude 4.6"]}),e.jsxs(p,{variant:"outline",size:"sm",className:"text-xs h-7 gap-1",onClick:()=>ie("gemini3"),disabled:m||r.length===0,title:"Gemini-first mapping: Gemini 3 Pro + Gemini 3 Flash",children:[e.jsx(ge,{className:"w-3 h-3"}),"Gemini 3 Pro"]})]})]}),e.jsx(vs,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium mb-2",children:s("cursorPage.modelMapping")}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:s("cursorPage.modelMappingDesc")}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(B,{label:s("cursorPage.defaultModel"),description:s("cursorPage.defaultModelDesc"),value:v,models:z,disabled:m,onChange:t=>{N(n=>({...n,model:t}))}}),e.jsx(B,{label:s("cursorPage.opusModel"),description:s("cursorPage.opusModelDesc"),value:te,models:z,disabled:m,allowDefaultFallback:!0,onChange:t=>{N(n=>({...n,opus_model:t}))}}),e.jsx(B,{label:s("cursorPage.sonnetModel"),description:s("cursorPage.sonnetModelDesc"),value:re,models:z,disabled:m,allowDefaultFallback:!0,onChange:t=>{N(n=>({...n,sonnet_model:t}))}}),e.jsx(B,{label:s("cursorPage.haikuModel"),description:s("cursorPage.haikuModelDesc"),value:ne,models:z,disabled:m,allowDefaultFallback:!0,onChange:t=>{N(n=>({...n,haiku_model:t}))}})]})]})]})})}),e.jsx(de,{value:"settings",className:"flex-1 mt-0 border-0 p-0 data-[state=inactive]:hidden flex flex-col overflow-hidden",children:e.jsx(G,{className:"flex-1",children:e.jsx("div",{className:"p-4 space-y-6",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-sm font-medium",children:s("cursorPage.runtimeSettings")}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"cursor-port",className:"text-xs",children:s("cursorPage.port")}),e.jsx(ue,{id:"cursor-port",type:"number",min:1,max:65535,className:"max-w-[150px] h-8",value:Se,onChange:t=>{N(n=>({...n,port:t.target.value}))}})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(F,{htmlFor:"cursor-auto-start",className:"text-xs",children:s("cursorPage.autoStartDaemon")}),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:s("cursorPage.autoStartDesc")})]}),e.jsx(Te,{id:"cursor-auto-start",checked:se,onCheckedChange:t=>{N(n=>({...n,auto_start:t}))}})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(F,{htmlFor:"cursor-ghost-mode",className:"text-xs",children:s("cursorPage.ghostMode")}),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:s("cursorPage.ghostModeDesc")})]}),e.jsx(Te,{id:"cursor-ghost-mode",checked:ae,onCheckedChange:t=>{N(n=>({...n,ghost_mode:t}))}})]})]})})})}),e.jsx(de,{value:"info",className:"flex-1 mt-0 border-0 p-0 data-[state=inactive]:hidden flex flex-col overflow-hidden",children:e.jsx(G,{className:"flex-1",children:e.jsxs("div",{className:"p-4 space-y-6",children:[e.jsxs("div",{className:"space-y-3 bg-card rounded-lg border p-4 shadow-sm",children:[e.jsxs("div",{className:"grid grid-cols-[100px_1fr] gap-2 text-sm items-center",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:s("cursorPage.provider")}),e.jsx("span",{className:"font-mono",children:"Cursor IDE"})]}),e.jsxs("div",{className:"grid grid-cols-[100px_1fr] gap-2 text-sm items-center",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:s("cursorPage.filePath")}),e.jsx("code",{className:"bg-muted px-1.5 py-0.5 rounded text-xs break-all",children:i?.path??"~/.ccs/cursor.settings.json"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Model mapping writes `ANTHROPIC_MODEL`, `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, and `ANTHROPIC_DEFAULT_HAIKU_MODEL` in `cursor.settings.json`."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium mb-3",children:s("cursorPage.availableModels")}),m?e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx(R,{className:"w-4 h-4 animate-spin"}),s("cursorPage.loadingModels")]}):r.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:s("cursorPage.noModels")}):e.jsx("div",{className:"space-y-2",children:r.map(t=>e.jsxs("div",{className:"rounded-lg border px-3 py-2 flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:t.id}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[t.name," • ",t.provider]})]}),t.id===x&&e.jsx(A,{children:s("cursorPage.default")})]},t.id))})]})]})})})]})]})}),e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col overflow-hidden",children:[e.jsxs("div",{className:"px-6 py-2 bg-muted/30 border-b flex items-center gap-2 shrink-0 h-[45px]",children:[e.jsx(me,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:s("cursorPage.rawConfiguration")})]}),e.jsx(hs,{rawJsonContent:oe,isRawJsonValid:_e,rawJsonEdits:L?we:null,rawSettingsEnv:i?.settings?.env,onChange:t=>{$(!0),Be(t)}})]})]})]})})]}),e.jsx(xs,{open:He,onOpenChange:E,children:e.jsxs(fs,{children:[e.jsxs(ps,{children:[e.jsx(js,{children:s("cursorPage.manualImportTitle")}),e.jsx(Ps,{children:s("cursorPage.manualImportDesc")})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(F,{htmlFor:"cursor-manual-token",children:s("cursorPage.accessToken")}),e.jsx(ue,{id:"cursor-manual-token",value:Y,onChange:t=>ye(t.target.value),placeholder:s("cursorPage.accessTokenPlaceholder")})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(F,{htmlFor:"cursor-manual-machine-id",children:s("cursorPage.machineId")}),e.jsx(ue,{id:"cursor-manual-machine-id",value:ee,onChange:t=>ve(t.target.value),placeholder:s("cursorPage.machineIdPlaceholder")})]})]}),e.jsxs(bs,{children:[e.jsx(p,{variant:"outline",onClick:()=>E(!1),children:s("cursorPage.cancel")}),e.jsxs(p,{onClick:ss,disabled:Pe,children:[Pe?e.jsx(R,{className:"w-4 h-4 mr-2 animate-spin"}):e.jsx(J,{className:"w-4 h-4 mr-2"}),s("cursorPage.import")]})]})]})})]})}export{ia as CursorPage};