@kaitranntt/ccs 7.79.1 → 8.0.0-dev.2

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 (353) hide show
  1. package/README.md +29 -11
  2. package/dist/bin/ccsxp-runtime.d.ts.map +1 -1
  3. package/dist/bin/ccsxp-runtime.js +8 -0
  4. package/dist/bin/ccsxp-runtime.js.map +1 -1
  5. package/dist/bin/codex-runtime-router.d.ts +24 -0
  6. package/dist/bin/codex-runtime-router.d.ts.map +1 -0
  7. package/dist/bin/codex-runtime-router.js +117 -0
  8. package/dist/bin/codex-runtime-router.js.map +1 -0
  9. package/dist/bin/codex-runtime.d.ts +1 -0
  10. package/dist/bin/codex-runtime.js +7 -2
  11. package/dist/bin/codex-runtime.js.map +1 -1
  12. package/dist/ccs.js +2 -1
  13. package/dist/ccs.js.map +1 -1
  14. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +2 -2
  15. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -1
  16. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +2 -2
  17. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -1
  18. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +16 -8
  19. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -1
  20. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +8 -0
  21. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -1
  22. package/dist/cliproxy/ai-providers/model-id-normalizer.js +19 -2
  23. package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -1
  24. package/dist/cliproxy/ai-providers/service.d.ts.map +1 -1
  25. package/dist/cliproxy/ai-providers/service.js +39 -12
  26. package/dist/cliproxy/ai-providers/service.js.map +1 -1
  27. package/dist/cliproxy/auth/oauth-handler.d.ts +13 -1
  28. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  29. package/dist/cliproxy/auth/oauth-handler.js +111 -34
  30. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  31. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts.map +1 -1
  32. package/dist/cliproxy/auth/oauth-trace/redactor.js +9 -1
  33. package/dist/cliproxy/auth/oauth-trace/redactor.js.map +1 -1
  34. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  35. package/dist/cliproxy/config/generator.js +5 -2
  36. package/dist/cliproxy/config/generator.js.map +1 -1
  37. package/dist/cliproxy/config/thinking-config.js +6 -6
  38. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  39. package/dist/cliproxy/executor/env-resolver.js +1 -1
  40. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  41. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
  42. package/dist/cliproxy/executor/session-bridge.js +11 -8
  43. package/dist/cliproxy/executor/session-bridge.js.map +1 -1
  44. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
  45. package/dist/cliproxy/quota/quota-fetcher-claude.js +35 -4
  46. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
  47. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -1
  48. package/dist/cliproxy/quota/quota-fetcher-codex.js +4 -1
  49. package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -1
  50. package/dist/cliproxy/quota/quota-manager.d.ts +1 -0
  51. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
  52. package/dist/cliproxy/quota/quota-manager.js +53 -2
  53. package/dist/cliproxy/quota/quota-manager.js.map +1 -1
  54. package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts.map +1 -1
  55. package/dist/cliproxy/services/oauth-usage-log-transformer.js +5 -0
  56. package/dist/cliproxy/services/oauth-usage-log-transformer.js.map +1 -1
  57. package/dist/codex-auth/codex-account-identity.d.ts +8 -0
  58. package/dist/codex-auth/codex-account-identity.d.ts.map +1 -0
  59. package/dist/codex-auth/codex-account-identity.js +53 -0
  60. package/dist/codex-auth/codex-account-identity.js.map +1 -0
  61. package/dist/codex-auth/codex-auth-dashboard-service.d.ts +46 -0
  62. package/dist/codex-auth/codex-auth-dashboard-service.d.ts.map +1 -0
  63. package/dist/codex-auth/codex-auth-dashboard-service.js +228 -0
  64. package/dist/codex-auth/codex-auth-dashboard-service.js.map +1 -0
  65. package/dist/codex-auth/codex-auth-help.d.ts +7 -0
  66. package/dist/codex-auth/codex-auth-help.d.ts.map +1 -0
  67. package/dist/codex-auth/codex-auth-help.js +87 -0
  68. package/dist/codex-auth/codex-auth-help.js.map +1 -0
  69. package/dist/codex-auth/codex-auth-router.d.ts +16 -0
  70. package/dist/codex-auth/codex-auth-router.d.ts.map +1 -0
  71. package/dist/codex-auth/codex-auth-router.js +77 -0
  72. package/dist/codex-auth/codex-auth-router.js.map +1 -0
  73. package/dist/codex-auth/codex-config-symlink.d.ts +14 -0
  74. package/dist/codex-auth/codex-config-symlink.d.ts.map +1 -0
  75. package/dist/codex-auth/codex-config-symlink.js +128 -0
  76. package/dist/codex-auth/codex-config-symlink.js.map +1 -0
  77. package/dist/codex-auth/codex-profile-paths.d.ts +5 -0
  78. package/dist/codex-auth/codex-profile-paths.d.ts.map +1 -0
  79. package/dist/codex-auth/codex-profile-paths.js +58 -0
  80. package/dist/codex-auth/codex-profile-paths.js.map +1 -0
  81. package/dist/codex-auth/codex-profile-registry.d.ts +34 -0
  82. package/dist/codex-auth/codex-profile-registry.d.ts.map +1 -0
  83. package/dist/codex-auth/codex-profile-registry.js +360 -0
  84. package/dist/codex-auth/codex-profile-registry.js.map +1 -0
  85. package/dist/codex-auth/codex-profile-resources.d.ts +6 -0
  86. package/dist/codex-auth/codex-profile-resources.d.ts.map +1 -0
  87. package/dist/codex-auth/codex-profile-resources.js +119 -0
  88. package/dist/codex-auth/codex-profile-resources.js.map +1 -0
  89. package/dist/codex-auth/commands/create-command.d.ts +9 -0
  90. package/dist/codex-auth/commands/create-command.d.ts.map +1 -0
  91. package/dist/codex-auth/commands/create-command.js +203 -0
  92. package/dist/codex-auth/commands/create-command.js.map +1 -0
  93. package/dist/codex-auth/commands/import-default-command.d.ts +18 -0
  94. package/dist/codex-auth/commands/import-default-command.d.ts.map +1 -0
  95. package/dist/codex-auth/commands/import-default-command.js +385 -0
  96. package/dist/codex-auth/commands/import-default-command.js.map +1 -0
  97. package/dist/codex-auth/commands/index.d.ts +13 -0
  98. package/dist/codex-auth/commands/index.d.ts.map +1 -0
  99. package/dist/codex-auth/commands/index.js +27 -0
  100. package/dist/codex-auth/commands/index.js.map +1 -0
  101. package/dist/codex-auth/commands/login-command.d.ts +9 -0
  102. package/dist/codex-auth/commands/login-command.d.ts.map +1 -0
  103. package/dist/codex-auth/commands/login-command.js +152 -0
  104. package/dist/codex-auth/commands/login-command.js.map +1 -0
  105. package/dist/codex-auth/commands/remove-command.d.ts +10 -0
  106. package/dist/codex-auth/commands/remove-command.d.ts.map +1 -0
  107. package/dist/codex-auth/commands/remove-command.js +230 -0
  108. package/dist/codex-auth/commands/remove-command.js.map +1 -0
  109. package/dist/codex-auth/commands/show-command.d.ts +10 -0
  110. package/dist/codex-auth/commands/show-command.d.ts.map +1 -0
  111. package/dist/codex-auth/commands/show-command.js +127 -0
  112. package/dist/codex-auth/commands/show-command.js.map +1 -0
  113. package/dist/codex-auth/commands/show-detail-view.d.ts +7 -0
  114. package/dist/codex-auth/commands/show-detail-view.d.ts.map +1 -0
  115. package/dist/codex-auth/commands/show-detail-view.js +134 -0
  116. package/dist/codex-auth/commands/show-detail-view.js.map +1 -0
  117. package/dist/codex-auth/commands/switch-command.d.ts +7 -0
  118. package/dist/codex-auth/commands/switch-command.d.ts.map +1 -0
  119. package/dist/codex-auth/commands/switch-command.js +48 -0
  120. package/dist/codex-auth/commands/switch-command.js.map +1 -0
  121. package/dist/codex-auth/commands/types.d.ts +45 -0
  122. package/dist/codex-auth/commands/types.d.ts.map +1 -0
  123. package/dist/codex-auth/commands/types.js +85 -0
  124. package/dist/codex-auth/commands/types.js.map +1 -0
  125. package/dist/codex-auth/commands/use-command.d.ts +16 -0
  126. package/dist/codex-auth/commands/use-command.d.ts.map +1 -0
  127. package/dist/codex-auth/commands/use-command.js +86 -0
  128. package/dist/codex-auth/commands/use-command.js.map +1 -0
  129. package/dist/codex-auth/decode-id-token.d.ts +12 -0
  130. package/dist/codex-auth/decode-id-token.d.ts.map +1 -0
  131. package/dist/codex-auth/decode-id-token.js +83 -0
  132. package/dist/codex-auth/decode-id-token.js.map +1 -0
  133. package/dist/codex-auth/index.d.ts +9 -0
  134. package/dist/codex-auth/index.d.ts.map +1 -0
  135. package/dist/codex-auth/index.js +22 -0
  136. package/dist/codex-auth/index.js.map +1 -0
  137. package/dist/codex-auth/resolve-active-profile.d.ts +13 -0
  138. package/dist/codex-auth/resolve-active-profile.d.ts.map +1 -0
  139. package/dist/codex-auth/resolve-active-profile.js +161 -0
  140. package/dist/codex-auth/resolve-active-profile.js.map +1 -0
  141. package/dist/codex-auth/shell-detect.d.ts +19 -0
  142. package/dist/codex-auth/shell-detect.d.ts.map +1 -0
  143. package/dist/codex-auth/shell-detect.js +91 -0
  144. package/dist/codex-auth/shell-detect.js.map +1 -0
  145. package/dist/codex-auth/types.d.ts +26 -0
  146. package/dist/codex-auth/types.d.ts.map +1 -0
  147. package/dist/codex-auth/types.js +34 -0
  148. package/dist/codex-auth/types.js.map +1 -0
  149. package/dist/commands/cliproxy/variant-subcommand.js +1 -1
  150. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  151. package/dist/commands/command-catalog.d.ts +1 -1
  152. package/dist/commands/command-catalog.d.ts.map +1 -1
  153. package/dist/commands/command-catalog.js +10 -1
  154. package/dist/commands/command-catalog.js.map +1 -1
  155. package/dist/commands/completion-backend.d.ts.map +1 -1
  156. package/dist/commands/completion-backend.js +2 -0
  157. package/dist/commands/completion-backend.js.map +1 -1
  158. package/dist/commands/config-command.d.ts +2 -0
  159. package/dist/commands/config-command.d.ts.map +1 -1
  160. package/dist/commands/config-command.js +31 -20
  161. package/dist/commands/config-command.js.map +1 -1
  162. package/dist/commands/docker/finalize-key-rotation-subcommand.d.ts +2 -0
  163. package/dist/commands/docker/finalize-key-rotation-subcommand.d.ts.map +1 -0
  164. package/dist/commands/docker/finalize-key-rotation-subcommand.js +79 -0
  165. package/dist/commands/docker/finalize-key-rotation-subcommand.js.map +1 -0
  166. package/dist/commands/docker/help-subcommand.d.ts.map +1 -1
  167. package/dist/commands/docker/help-subcommand.js +6 -0
  168. package/dist/commands/docker/help-subcommand.js.map +1 -1
  169. package/dist/commands/docker/index.d.ts.map +1 -1
  170. package/dist/commands/docker/index.js +4 -0
  171. package/dist/commands/docker/index.js.map +1 -1
  172. package/dist/commands/docker/show-key-subcommand.d.ts +2 -0
  173. package/dist/commands/docker/show-key-subcommand.d.ts.map +1 -0
  174. package/dist/commands/docker/show-key-subcommand.js +96 -0
  175. package/dist/commands/docker/show-key-subcommand.js.map +1 -0
  176. package/dist/commands/docker/up-subcommand.d.ts.map +1 -1
  177. package/dist/commands/docker/up-subcommand.js +4 -0
  178. package/dist/commands/docker/up-subcommand.js.map +1 -1
  179. package/dist/commands/persist-command.d.ts.map +1 -1
  180. package/dist/commands/persist-command.js +77 -5
  181. package/dist/commands/persist-command.js.map +1 -1
  182. package/dist/dispatcher/cli-argument-parser.d.ts +3 -2
  183. package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -1
  184. package/dist/dispatcher/cli-argument-parser.js +37 -7
  185. package/dist/dispatcher/cli-argument-parser.js.map +1 -1
  186. package/dist/dispatcher/pre-dispatch.d.ts.map +1 -1
  187. package/dist/dispatcher/pre-dispatch.js +7 -0
  188. package/dist/dispatcher/pre-dispatch.js.map +1 -1
  189. package/dist/dispatcher/target-executor.d.ts +2 -2
  190. package/dist/dispatcher/target-executor.d.ts.map +1 -1
  191. package/dist/dispatcher/target-executor.js +5 -5
  192. package/dist/dispatcher/target-executor.js.map +1 -1
  193. package/dist/docker/docker-bootstrap.d.ts +1 -1
  194. package/dist/docker/docker-bootstrap.d.ts.map +1 -1
  195. package/dist/docker/docker-bootstrap.js +99 -3
  196. package/dist/docker/docker-bootstrap.js.map +1 -1
  197. package/dist/docker/docker-executor.d.ts +3 -0
  198. package/dist/docker/docker-executor.d.ts.map +1 -1
  199. package/dist/docker/docker-executor.js +53 -0
  200. package/dist/docker/docker-executor.js.map +1 -1
  201. package/dist/docker/docker-key-rotation.d.ts +48 -0
  202. package/dist/docker/docker-key-rotation.d.ts.map +1 -0
  203. package/dist/docker/docker-key-rotation.js +179 -0
  204. package/dist/docker/docker-key-rotation.js.map +1 -0
  205. package/dist/management/checks/config-check.d.ts.map +1 -1
  206. package/dist/management/checks/config-check.js +10 -1
  207. package/dist/management/checks/config-check.js.map +1 -1
  208. package/dist/management/doctor.d.ts +1 -0
  209. package/dist/management/doctor.d.ts.map +1 -1
  210. package/dist/management/doctor.js +23 -0
  211. package/dist/management/doctor.js.map +1 -1
  212. package/dist/proxy/proxy-daemon.d.ts.map +1 -1
  213. package/dist/proxy/proxy-daemon.js +15 -3
  214. package/dist/proxy/proxy-daemon.js.map +1 -1
  215. package/dist/proxy/server/messages-route.d.ts.map +1 -1
  216. package/dist/proxy/server/messages-route.js +27 -1
  217. package/dist/proxy/server/messages-route.js.map +1 -1
  218. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  219. package/dist/shared/claude-extension-setup.js +21 -1
  220. package/dist/shared/claude-extension-setup.js.map +1 -1
  221. package/dist/shared/stale-codex-translator-settings.d.ts +4 -0
  222. package/dist/shared/stale-codex-translator-settings.d.ts.map +1 -0
  223. package/dist/shared/stale-codex-translator-settings.js +35 -0
  224. package/dist/shared/stale-codex-translator-settings.js.map +1 -0
  225. package/dist/targets/codex-adapter.d.ts.map +1 -1
  226. package/dist/targets/codex-adapter.js +64 -5
  227. package/dist/targets/codex-adapter.js.map +1 -1
  228. package/dist/targets/codex-cliproxy-provider-config.d.ts.map +1 -1
  229. package/dist/targets/codex-cliproxy-provider-config.js +56 -24
  230. package/dist/targets/codex-cliproxy-provider-config.js.map +1 -1
  231. package/dist/ui/assets/Trans-DyZQZ3e2.js +1 -0
  232. package/dist/ui/assets/accounts-BPJltru3.js +1 -0
  233. package/dist/ui/assets/{alert-dialog-DC1l1GRX.js → alert-dialog-DWHL-dqd.js} +1 -1
  234. package/dist/ui/assets/api-BxPN-zy4.js +4 -0
  235. package/dist/ui/assets/auth-section-B4o90dwz.js +1 -0
  236. package/dist/ui/assets/backups-section-1AsdSIJO.js +1 -0
  237. package/dist/ui/assets/channels-CU4Zdsc_.js +1 -0
  238. package/dist/ui/assets/{charts-CeK2xCSo.js → charts-eIPy2oG6.js} +34 -34
  239. package/dist/ui/assets/{checkbox-Dgd2ucy2.js → checkbox-CbCKGH8I.js} +1 -1
  240. package/dist/ui/assets/claude-extension-CWpjmIGt.js +1 -0
  241. package/dist/ui/assets/cliproxy-K6eBb5VO.js +4 -0
  242. package/dist/ui/assets/{cliproxy-ai-providers-DxoCNEaQ.js → cliproxy-ai-providers-Dr4L5NRY.js} +6 -6
  243. package/dist/ui/assets/cliproxy-control-panel-Cz5r7kHP.js +1 -0
  244. package/dist/ui/assets/code-highlight-ClSMkeL5.js +1 -0
  245. package/dist/ui/assets/codex-0HdbW8NR.js +30 -0
  246. package/dist/ui/assets/{confirm-dialog-nDFNrH0F.js → confirm-dialog-b5Dahgnk.js} +1 -1
  247. package/dist/ui/assets/copilot-B1Ojakbt.js +3 -0
  248. package/dist/ui/assets/cursor-PUtNVPx1.js +1 -0
  249. package/dist/ui/assets/droid-S2gclncb.js +2 -0
  250. package/dist/ui/assets/globalenv-section-7wKSmNSG.js +1 -0
  251. package/dist/ui/assets/health-hMLN_gyw.js +1 -0
  252. package/dist/ui/assets/index-BMoGhs28.css +1 -0
  253. package/dist/ui/assets/index-BWboJia4.js +1 -0
  254. package/dist/ui/assets/index-COt1pbk-.js +1 -0
  255. package/dist/ui/assets/index-CcGVqYOy.js +56 -0
  256. package/dist/ui/assets/index-Coc3_ABK.js +1 -0
  257. package/dist/ui/assets/index-Cx0dmbiQ.js +1 -0
  258. package/dist/ui/assets/index-CxvNNHgE.js +1 -0
  259. package/dist/ui/assets/index-DkR2KVhF.js +1 -0
  260. package/dist/ui/assets/logs-BRFVfyLc.js +1 -0
  261. package/dist/ui/assets/{masked-input-5TJ4LSuz.js → masked-input-4L9CIZGb.js} +1 -1
  262. package/dist/ui/assets/proxy-status-widget-s1UWOE23.js +1 -0
  263. package/dist/ui/assets/{raw-json-settings-editor-panel-Fg4WMiuD.js → raw-json-settings-editor-panel-DXh8c8rA.js} +1 -1
  264. package/dist/ui/assets/{searchable-select-CPJn5vA1.js → searchable-select-CtvEQrMo.js} +1 -1
  265. package/dist/ui/assets/{separator-BrQkfpAp.js → separator-E0ISp1SN.js} +1 -1
  266. package/dist/ui/assets/shared-BeYwHeNS.js +8 -0
  267. package/dist/ui/assets/{table-DRzNRkpJ.js → table-BBslZvNP.js} +1 -1
  268. package/dist/ui/assets/updates-CDrm903n.js +1 -0
  269. package/dist/ui/assets/{use-accounts-B6AXtlfF.js → use-accounts-BdalFsdY.js} +1 -1
  270. package/dist/ui/index.html +3 -3
  271. package/dist/utils/claude-subcommand-detector.d.ts +12 -3
  272. package/dist/utils/claude-subcommand-detector.d.ts.map +1 -1
  273. package/dist/utils/claude-subcommand-detector.js +59 -12
  274. package/dist/utils/claude-subcommand-detector.js.map +1 -1
  275. package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -1
  276. package/dist/web-server/middleware/auth-middleware.js +25 -1
  277. package/dist/web-server/middleware/auth-middleware.js.map +1 -1
  278. package/dist/web-server/models-dev/pricing-resolver.d.ts.map +1 -1
  279. package/dist/web-server/models-dev/pricing-resolver.js +7 -0
  280. package/dist/web-server/models-dev/pricing-resolver.js.map +1 -1
  281. package/dist/web-server/models-dev/registry-cache.d.ts.map +1 -1
  282. package/dist/web-server/models-dev/registry-cache.js +14 -4
  283. package/dist/web-server/models-dev/registry-cache.js.map +1 -1
  284. package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
  285. package/dist/web-server/routes/claude-extension-routes.js +5 -0
  286. package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
  287. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +8 -0
  288. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  289. package/dist/web-server/routes/cliproxy-stats-routes.js +13 -26
  290. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  291. package/dist/web-server/routes/codex-routes.d.ts.map +1 -1
  292. package/dist/web-server/routes/codex-routes.js +14 -0
  293. package/dist/web-server/routes/codex-routes.js.map +1 -1
  294. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
  295. package/dist/web-server/routes/proxy-routes.js +1 -1
  296. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  297. package/dist/web-server/services/cliproxy-dashboard-restart-service.d.ts +21 -0
  298. package/dist/web-server/services/cliproxy-dashboard-restart-service.d.ts.map +1 -0
  299. package/dist/web-server/services/cliproxy-dashboard-restart-service.js +49 -0
  300. package/dist/web-server/services/cliproxy-dashboard-restart-service.js.map +1 -0
  301. package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
  302. package/dist/web-server/services/codex-dashboard-service.js +30 -3
  303. package/dist/web-server/services/codex-dashboard-service.js.map +1 -1
  304. package/dist/web-server/usage/aggregator.d.ts +13 -7
  305. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  306. package/dist/web-server/usage/aggregator.js +37 -22
  307. package/dist/web-server/usage/aggregator.js.map +1 -1
  308. package/dist/web-server/usage/handlers.d.ts +1 -0
  309. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  310. package/dist/web-server/usage/handlers.js +16 -8
  311. package/dist/web-server/usage/handlers.js.map +1 -1
  312. package/dist/web-server/usage/profile-filter.d.ts +13 -0
  313. package/dist/web-server/usage/profile-filter.d.ts.map +1 -0
  314. package/dist/web-server/usage/profile-filter.js +30 -0
  315. package/dist/web-server/usage/profile-filter.js.map +1 -0
  316. package/dist/web-server/usage/sqlite-cli.d.ts.map +1 -1
  317. package/dist/web-server/usage/sqlite-cli.js +22 -1
  318. package/dist/web-server/usage/sqlite-cli.js.map +1 -1
  319. package/dist/web-server/usage/types.d.ts +8 -0
  320. package/dist/web-server/usage/types.d.ts.map +1 -1
  321. package/lib/hooks/websearch-transformer.cjs +12 -3
  322. package/lib/mcp/ccs-browser-server.cjs +217 -12
  323. package/package.json +1 -1
  324. package/scripts/docker-dashboard-sunset-guard.js +171 -0
  325. package/scripts/run-test-bucket.js +1 -0
  326. package/scripts/verify-bundle.js +4 -1
  327. package/dist/ui/assets/accounts-BQu3Aeey.js +0 -1
  328. package/dist/ui/assets/api-BTbrbjic.js +0 -4
  329. package/dist/ui/assets/auth-section-BsSVWOMp.js +0 -1
  330. package/dist/ui/assets/backups-section-BGHYHASS.js +0 -1
  331. package/dist/ui/assets/channels-vJ8L4j-z.js +0 -1
  332. package/dist/ui/assets/claude-extension-B3ern4Ad.js +0 -1
  333. package/dist/ui/assets/cliproxy-CGljI0Or.js +0 -4
  334. package/dist/ui/assets/cliproxy-control-panel-BJ3Mliy1.js +0 -1
  335. package/dist/ui/assets/code-highlight-D4E79GKQ.js +0 -3
  336. package/dist/ui/assets/codex-DBGHPn0v.js +0 -30
  337. package/dist/ui/assets/copilot-CE_Z3NB0.js +0 -3
  338. package/dist/ui/assets/cursor-YzGsSR_d.js +0 -1
  339. package/dist/ui/assets/droid-C-ItViCi.js +0 -2
  340. package/dist/ui/assets/globalenv-section-C9gSGyZ8.js +0 -1
  341. package/dist/ui/assets/health-DEeA97sQ.js +0 -1
  342. package/dist/ui/assets/index-B71yJlMj.css +0 -1
  343. package/dist/ui/assets/index-BPVO-QAw.js +0 -1
  344. package/dist/ui/assets/index-BRZp_Csi.js +0 -72
  345. package/dist/ui/assets/index-BYUwpOeA.js +0 -1
  346. package/dist/ui/assets/index-D2r_fAW5.js +0 -1
  347. package/dist/ui/assets/index-DGiziSVQ.js +0 -1
  348. package/dist/ui/assets/index-DwG6bbUr.js +0 -1
  349. package/dist/ui/assets/index-Dwtj4wGT.js +0 -1
  350. package/dist/ui/assets/logs-Mt2W7M3G.js +0 -1
  351. package/dist/ui/assets/proxy-status-widget-BQOAlYsb.js +0 -1
  352. package/dist/ui/assets/shared-BlkDl2HF.js +0 -8
  353. package/dist/ui/assets/updates-BQNeSzLj.js +0 -1
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ /**
3
+ * codex-auth create command.
4
+ * Creates a new profile dir + shared config.toml symlink.
5
+ * After creation, auto-spawns `codex login` with CODEX_HOME pinned (D11).
6
+ * --force: re-link config.toml only, preserve auth.json (D9).
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.handleCreateCodex = void 0;
33
+ const fs = __importStar(require("fs"));
34
+ const path = __importStar(require("path"));
35
+ const childProcess = __importStar(require("child_process"));
36
+ const logging_1 = require("../../services/logging");
37
+ const ui_1 = require("../../utils/ui");
38
+ const errors_1 = require("../../errors");
39
+ const exit_codes_1 = require("../../errors/exit-codes");
40
+ const index_1 = require("../index");
41
+ const codex_account_identity_1 = require("../codex-account-identity");
42
+ const codex_detector_1 = require("../../targets/codex-detector");
43
+ const types_1 = require("./types");
44
+ const logger = (0, logging_1.createLogger)('codex-auth:cmd:create');
45
+ async function handleCreateCodex(ctx, args) {
46
+ await (0, ui_1.initUI)();
47
+ const parsed = (0, types_1.parseArgs)(args);
48
+ (0, types_1.rejectUnsupportedOptions)(parsed, 'ccsx auth create <name> [--force]', { force: true });
49
+ const { profileName, force } = parsed;
50
+ if (!profileName) {
51
+ console.log(`Usage: ccsx auth create <name> [--force]`);
52
+ (0, errors_1.exitWithError)('Profile name required', exit_codes_1.ExitCode.PROFILE_ERROR);
53
+ return;
54
+ }
55
+ const nameError = (0, types_1.getProfileNameError)(profileName);
56
+ if (nameError) {
57
+ (0, errors_1.exitWithError)(nameError, exit_codes_1.ExitCode.PROFILE_ERROR);
58
+ return;
59
+ }
60
+ const { registry } = ctx;
61
+ const profileDir = (0, index_1.resolveCodexProfileDir)(profileName);
62
+ // Idempotent: profile already exists
63
+ if (registry.hasProfile(profileName)) {
64
+ if (force) {
65
+ // --force: only re-link config.toml, preserve auth.json
66
+ console.log((0, ui_1.info)(`Profile already exists: ${profileName} (repairing shared resources)`));
67
+ _ensureProfileResourcesSafe(profileDir, true);
68
+ console.log((0, ui_1.ok)(`Profile shared resources repaired.`));
69
+ console.log(` Profile dir: ${profileDir}`);
70
+ }
71
+ else {
72
+ _ensureProfileResourcesSafe(profileDir);
73
+ console.log((0, ui_1.info)(`Profile already exists: ${profileName}`));
74
+ console.log((0, ui_1.ok)(`Profile shared resources are ready.`));
75
+ console.log(` Profile dir: ${profileDir}`);
76
+ console.log(` Run: ccsx auth login ${profileName}`);
77
+ }
78
+ return;
79
+ }
80
+ // Create profile dir + symlink FIRST (filesystem is more failure-prone than registry write).
81
+ // Avoids registry orphan if mkdir hits EACCES/ENOSPC.
82
+ try {
83
+ fs.mkdirSync(profileDir, { recursive: true, mode: 0o700 });
84
+ _ensureProfileResourcesSafe(profileDir);
85
+ }
86
+ catch (err) {
87
+ const msg = err instanceof Error ? err.message : String(err);
88
+ if (err.code === 'EACCES') {
89
+ (0, errors_1.exitWithError)(msg, exit_codes_1.ExitCode.GENERAL_ERROR);
90
+ return;
91
+ }
92
+ throw err;
93
+ }
94
+ // Now register in the profile registry
95
+ try {
96
+ registry.createProfile(profileName, {
97
+ created: new Date().toISOString(),
98
+ last_used: null,
99
+ email: undefined,
100
+ plan_type: undefined,
101
+ });
102
+ }
103
+ catch (err) {
104
+ const msg = err instanceof Error ? err.message : String(err);
105
+ if (msg.includes('corrupt') || msg.includes('Failed to write')) {
106
+ (0, errors_1.exitWithError)(`Profile registry is corrupt. Backup and remove the file to re-init.\n ${msg}`, exit_codes_1.ExitCode.GENERAL_ERROR);
107
+ return;
108
+ }
109
+ throw err;
110
+ }
111
+ const authJsonPath = path.join(profileDir, 'auth.json');
112
+ const authExists = fs.existsSync(authJsonPath);
113
+ console.log((0, ui_1.info)(`Creating Codex profile: ${profileName}`));
114
+ console.log('');
115
+ console.log(` Profile dir : ${profileDir}`);
116
+ console.log(` Auth state : ${authExists ? 'authenticated' : 'not authenticated'}`);
117
+ console.log('');
118
+ console.log((0, ui_1.ok)('Profile created.'));
119
+ // D11: auto-spawn codex login after creating the profile
120
+ await _spawnLogin(profileName, profileDir, ctx);
121
+ }
122
+ exports.handleCreateCodex = handleCreateCodex;
123
+ function _ensureSymlinkSafe(profileDir, overwriteRegularFile = false) {
124
+ try {
125
+ (0, index_1.ensureSharedConfigSymlink)(profileDir, undefined, { overwriteRegularFile });
126
+ }
127
+ catch (err) {
128
+ const msg = err instanceof Error ? err.message : String(err);
129
+ logger.warn('codex-auth.create.config-repair-failed', 'Config repair failed', {
130
+ profileDir,
131
+ error: msg,
132
+ });
133
+ (0, errors_1.exitWithError)(`Failed to prepare profile config.toml: ${msg}`, exit_codes_1.ExitCode.CONFIG_ERROR);
134
+ }
135
+ }
136
+ function _ensureProfileResourcesSafe(profileDir, overwriteRegularFile = false) {
137
+ _ensureSymlinkSafe(profileDir, overwriteRegularFile);
138
+ try {
139
+ (0, index_1.ensureCodexProfileResources)(profileDir);
140
+ }
141
+ catch (err) {
142
+ const msg = err instanceof Error ? err.message : String(err);
143
+ logger.warn('codex-auth.create.resource-repair-failed', 'Resource repair failed', {
144
+ profileDir,
145
+ error: msg,
146
+ });
147
+ (0, errors_1.exitWithError)(`Failed to prepare profile resources: ${msg}`, exit_codes_1.ExitCode.CONFIG_ERROR);
148
+ }
149
+ }
150
+ async function _spawnLogin(profileName, profileDir, ctx) {
151
+ const codexCli = (0, codex_detector_1.detectCodexCli)();
152
+ if (!codexCli) {
153
+ process.stderr.write(`[!] codex CLI not found — skipping auto-login.\n`);
154
+ process.stderr.write(` Install: npm i -g @openai/codex\n`);
155
+ process.stderr.write(` Then run: ccsx auth login ${profileName}\n`);
156
+ return;
157
+ }
158
+ console.log('');
159
+ console.log(`Next step: logging in to Codex...`);
160
+ console.log(` CODEX_HOME=${profileDir}`);
161
+ console.log('');
162
+ const loginResult = await new Promise((resolve) => {
163
+ const child = childProcess.spawn(codexCli, ['login'], {
164
+ stdio: 'inherit',
165
+ env: { ...process.env, CODEX_HOME: profileDir },
166
+ windowsHide: true,
167
+ });
168
+ child.on('error', (err) => {
169
+ process.stderr.write(`[X] Failed to execute codex: ${err.message}\n`);
170
+ resolve({ code: exit_codes_1.ExitCode.BINARY_ERROR, error: err.message });
171
+ });
172
+ child.on('exit', (code) => {
173
+ resolve({ code: code ?? 1 });
174
+ });
175
+ });
176
+ if (loginResult.error) {
177
+ (0, errors_1.exitWithError)(`codex login failed to start: ${loginResult.error}`, exit_codes_1.ExitCode.BINARY_ERROR);
178
+ return;
179
+ }
180
+ const authJsonPath = path.join(profileDir, 'auth.json');
181
+ if (loginResult.code === 0 && fs.existsSync(authJsonPath)) {
182
+ const identity = (0, codex_account_identity_1.decodeAccountIdentity)(authJsonPath);
183
+ ctx.registry.updateProfile(profileName, {
184
+ last_used: new Date().toISOString(),
185
+ email: identity.email,
186
+ plan_type: identity.plan_type ?? null,
187
+ account_id: identity.account_id,
188
+ });
189
+ const emailStr = identity.email ? ` as ${identity.email}` : '';
190
+ const planStr = identity.plan_type ? ` (plan: ${identity.plan_type})` : '';
191
+ console.log((0, ui_1.ok)(`Logged in${emailStr}${planStr}`));
192
+ }
193
+ else if (loginResult.code === 0) {
194
+ process.stderr.write(`[!] codex login exited cleanly but no auth.json. Skipping registry update.\n`);
195
+ (0, errors_1.exitWithError)('codex login completed without auth.json', exit_codes_1.ExitCode.AUTH_ERROR);
196
+ }
197
+ else {
198
+ process.stderr.write(`[!] Login cancelled or failed. Profile ${profileName} remains unauthenticated.\n`);
199
+ process.stderr.write(` Retry: ccsx auth login ${profileName}\n`);
200
+ (0, errors_1.exitWithError)('codex login failed', exit_codes_1.ExitCode.AUTH_ERROR);
201
+ }
202
+ }
203
+ //# sourceMappingURL=create-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-command.js","sourceRoot":"","sources":["../../../src/codex-auth/commands/create-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * codex-auth import-default command.
3
+ *
4
+ * Migrates legacy ~/.codex/auth.json into a named profile (non-destructive).
5
+ * Implements C3 torn-write protection: read-with-retry + JWT-shape validation
6
+ * + pgrep Codex-running detection + atomic write.
7
+ *
8
+ * Usage: ccsx auth import-default <name> [--with-history] [--force] [--force-while-running]
9
+ */
10
+ import type { CodexCommandContext } from './types';
11
+ export interface ImportDefaultArgs {
12
+ name: string;
13
+ withHistory: boolean;
14
+ force: boolean;
15
+ forceWhileRunning: boolean;
16
+ }
17
+ export declare function handleImportDefaultCodex(ctx: CodexCommandContext, rawArgs: string[]): Promise<void>;
18
+ //# sourceMappingURL=import-default-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-default-command.d.ts","sourceRoot":"","sources":["../../../src/codex-auth/commands/import-default-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA6NnD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAuBD,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAuJf"}
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ /**
3
+ * codex-auth import-default command.
4
+ *
5
+ * Migrates legacy ~/.codex/auth.json into a named profile (non-destructive).
6
+ * Implements C3 torn-write protection: read-with-retry + JWT-shape validation
7
+ * + pgrep Codex-running detection + atomic write.
8
+ *
9
+ * Usage: ccsx auth import-default <name> [--with-history] [--force] [--force-while-running]
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.handleImportDefaultCodex = void 0;
36
+ const fs = __importStar(require("fs"));
37
+ const path = __importStar(require("path"));
38
+ const os = __importStar(require("os"));
39
+ const childProcess = __importStar(require("child_process"));
40
+ const logging_1 = require("../../services/logging");
41
+ const ui_1 = require("../../utils/ui");
42
+ const ui_2 = require("../../utils/ui");
43
+ const errors_1 = require("../../errors");
44
+ const exit_codes_1 = require("../../errors/exit-codes");
45
+ const index_1 = require("../index");
46
+ const decode_id_token_1 = require("../decode-id-token");
47
+ const types_1 = require("./types");
48
+ const logger = (0, logging_1.createLogger)('codex-auth:cmd:import-default');
49
+ // Maximum retries for torn-write detection (C3)
50
+ const MAX_READ_RETRIES = 3;
51
+ const RETRY_DELAY_MS = 100;
52
+ // CLIProxy format marker (reject these with a clear message)
53
+ const CLIPROXY_TYPE_MARKER = 'type';
54
+ const IMPORT_DEFAULT_USAGE = 'ccsx auth import-default <name> [--with-history] [--force] [--force-while-running]';
55
+ // ── helpers ──────────────────────────────────────────────────────────────────
56
+ function sleep(ms) {
57
+ return new Promise((resolve) => setTimeout(resolve, ms));
58
+ }
59
+ /**
60
+ * Detect a running `codex` process via pgrep + ps validation (best-effort, never throws).
61
+ * Returns the PID string if found, null otherwise.
62
+ */
63
+ function detectCodexRunning() {
64
+ try {
65
+ const result = childProcess.spawnSync('pgrep', ['-f', 'codex'], {
66
+ encoding: 'utf8',
67
+ timeout: 2000,
68
+ });
69
+ if (result.status !== 0 || !result.stdout || result.stdout.trim().length === 0) {
70
+ return null;
71
+ }
72
+ const pids = parsePgrepPids(result.stdout);
73
+ if (pids.length === 0)
74
+ return null;
75
+ const psResult = childProcess.spawnSync('ps', ['-p', pids.join(','), '-o', 'pid=', '-o', 'command='], {
76
+ encoding: 'utf8',
77
+ timeout: 2000,
78
+ });
79
+ if (psResult.status !== 0 || !psResult.stdout)
80
+ return null;
81
+ return selectCodexPidFromPsOutput(psResult.stdout, pids);
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ }
87
+ function parsePgrepPids(stdout) {
88
+ return stdout
89
+ .split(/\r?\n/)
90
+ .map((line) => line.trim())
91
+ .filter((pid) => /^\d+$/.test(pid) && pid !== String(process.pid));
92
+ }
93
+ function selectCodexPidFromPsOutput(stdout, candidatePids) {
94
+ const candidates = new Set(candidatePids);
95
+ for (const line of stdout.split(/\r?\n/)) {
96
+ const match = line.match(/^\s*(\d+)\s+(.+?)\s*$/);
97
+ if (!match)
98
+ continue;
99
+ const [, pid, command] = match;
100
+ if (!pid || !command || !candidates.has(pid))
101
+ continue;
102
+ if (isLikelyCodexProcessCommand(command))
103
+ return pid;
104
+ }
105
+ return null;
106
+ }
107
+ function isLikelyCodexProcessCommand(command) {
108
+ const executable = firstCommandToken(command);
109
+ if (isCodexExecutableToken(executable)) {
110
+ return true;
111
+ }
112
+ const normalized = command.replace(/\\/g, '/').toLowerCase();
113
+ if (normalized.includes('/@openai/codex/')) {
114
+ return true;
115
+ }
116
+ return command.split(/\s+/).some((token) => {
117
+ const tokenName = executableTokenBasename(token);
118
+ return tokenName === 'codex.js' || isCodexExecutableName(tokenName);
119
+ });
120
+ }
121
+ function firstCommandToken(command) {
122
+ const trimmed = command.trim();
123
+ const quoted = trimmed.match(/^"([^"]+)"/);
124
+ if (quoted?.[1])
125
+ return quoted[1];
126
+ return trimmed.split(/\s+/)[0] ?? '';
127
+ }
128
+ function isCodexExecutableToken(token) {
129
+ return isCodexExecutableName(executableTokenBasename(token));
130
+ }
131
+ function executableTokenBasename(token) {
132
+ return path.basename(token.replace(/^["']|["']$/g, '').replace(/\\/g, '/')).toLowerCase();
133
+ }
134
+ function isCodexExecutableName(name) {
135
+ return ['codex', 'codex.exe', 'codex.cmd', 'codex.ps1'].includes(name);
136
+ }
137
+ /**
138
+ * Read and validate auth.json with retry on torn-write (C3).
139
+ * Returns parsed auth JSON or throws on persistent failure.
140
+ */
141
+ async function readAuthJsonSafe(authSrcPath) {
142
+ let lastErr = null;
143
+ for (let attempt = 0; attempt < MAX_READ_RETRIES; attempt++) {
144
+ try {
145
+ const buf = fs.readFileSync(authSrcPath, 'utf8');
146
+ const parsed = JSON.parse(buf);
147
+ // Reject cliproxy-format auth files
148
+ if (typeof parsed[CLIPROXY_TYPE_MARKER] === 'string' &&
149
+ (parsed[CLIPROXY_TYPE_MARKER] === 'codex' ||
150
+ parsed[CLIPROXY_TYPE_MARKER] === 'anthropic' ||
151
+ parsed[CLIPROXY_TYPE_MARKER] === 'gemini')) {
152
+ throw new Error(`CLIPROXY_FORMAT: Source is a CLIProxy auth file (type="${parsed[CLIPROXY_TYPE_MARKER]}"); use \`ccs cliproxy ...\` instead.`);
153
+ }
154
+ // Validate JWT shape: must have tokens.id_token with a parseable JWT payload.
155
+ const tokens = parsed['tokens'];
156
+ if (tokens) {
157
+ const idToken = tokens['id_token'];
158
+ if (typeof idToken === 'string' && idToken.length > 0) {
159
+ if (!(0, decode_id_token_1.hasStructurallyValidIdToken)(idToken)) {
160
+ // Torn write mid-JWT — retry
161
+ throw new Error('TORN_JWT: id_token payload is not parseable');
162
+ }
163
+ }
164
+ }
165
+ return parsed;
166
+ }
167
+ catch (err) {
168
+ if (err instanceof Error && err.message.startsWith('CLIPROXY_FORMAT:')) {
169
+ throw err; // never retry CLIProxy format rejection
170
+ }
171
+ lastErr = err instanceof Error ? err : new Error(String(err));
172
+ logger.warn('codex-auth.import-default.torn-read', `Read attempt ${attempt + 1}/${MAX_READ_RETRIES} failed: ${lastErr.message}`);
173
+ if (attempt < MAX_READ_RETRIES - 1) {
174
+ await sleep(RETRY_DELAY_MS);
175
+ }
176
+ }
177
+ }
178
+ throw new Error(`Failed to read a valid auth.json after ${MAX_READ_RETRIES} attempts: ${lastErr?.message ?? 'unknown'}`);
179
+ }
180
+ /**
181
+ * Atomic copy: write to tmp.<pid>.<rand>, fsync, rename to dest.
182
+ * Preserves 0600 permissions.
183
+ */
184
+ function atomicWriteFile(dest, content) {
185
+ const tmpPath = `${dest}.tmp.${process.pid}.${Math.random().toString(36).slice(2)}`;
186
+ try {
187
+ fs.writeFileSync(tmpPath, content, { mode: 0o600 });
188
+ // fsync via close-and-reopen pattern (Bun/Node doesn't expose fd fsync easily)
189
+ const fd = fs.openSync(tmpPath, 'r');
190
+ fs.fsyncSync(fd);
191
+ fs.closeSync(fd);
192
+ fs.renameSync(tmpPath, dest);
193
+ }
194
+ catch (err) {
195
+ try {
196
+ fs.unlinkSync(tmpPath);
197
+ }
198
+ catch {
199
+ // best-effort cleanup
200
+ }
201
+ throw err;
202
+ }
203
+ }
204
+ /**
205
+ * Copy a file if it exists; silently skip if not.
206
+ * Returns 'copied' | 'missing'.
207
+ */
208
+ function copyIfPresent(src, dest) {
209
+ if (!fs.existsSync(src))
210
+ return 'missing';
211
+ const content = fs.readFileSync(src, 'utf8');
212
+ atomicWriteFile(dest, content);
213
+ return 'copied';
214
+ }
215
+ /**
216
+ * Recursively copy a directory if it exists.
217
+ * Returns count of files copied, or -1 if dir missing.
218
+ */
219
+ function copyDirIfPresent(srcDir, destDir) {
220
+ if (!fs.existsSync(srcDir))
221
+ return -1;
222
+ fs.mkdirSync(destDir, { recursive: true, mode: 0o700 });
223
+ let count = 0;
224
+ for (const entry of fs.readdirSync(srcDir)) {
225
+ const srcEntry = path.join(srcDir, entry);
226
+ const destEntry = path.join(destDir, entry);
227
+ const stat = fs.lstatSync(srcEntry);
228
+ if (stat.isDirectory()) {
229
+ count += copyDirIfPresent(srcEntry, destEntry);
230
+ }
231
+ else if (stat.isFile()) {
232
+ fs.copyFileSync(srcEntry, destEntry);
233
+ count++;
234
+ }
235
+ }
236
+ return count;
237
+ }
238
+ function parseImportDefaultArgs(rawArgs) {
239
+ // --with-history, --force, --force-while-running are distinct flags
240
+ const parsed = (0, types_1.parseArgs)(rawArgs);
241
+ const unknownFlags = parsed.unknownFlags?.filter((flag) => flag !== '--with-history' && flag !== '--force-while-running');
242
+ (0, types_1.rejectUnsupportedOptions)({ ...parsed, unknownFlags }, IMPORT_DEFAULT_USAGE, { force: true });
243
+ const withHistory = rawArgs.includes('--with-history');
244
+ const forceWhileRunning = rawArgs.includes('--force-while-running');
245
+ if (!parsed.profileName)
246
+ return null;
247
+ return {
248
+ name: parsed.profileName,
249
+ withHistory,
250
+ force: parsed.force ?? false,
251
+ forceWhileRunning,
252
+ };
253
+ }
254
+ async function handleImportDefaultCodex(ctx, rawArgs) {
255
+ await (0, ui_2.initUI)();
256
+ const args = parseImportDefaultArgs(rawArgs);
257
+ if (!args) {
258
+ console.log(`Usage: ${IMPORT_DEFAULT_USAGE}`);
259
+ (0, errors_1.exitWithError)('Profile name required', exit_codes_1.ExitCode.PROFILE_ERROR);
260
+ return;
261
+ }
262
+ const nameError = (0, types_1.getProfileNameError)(args.name);
263
+ if (nameError) {
264
+ (0, errors_1.exitWithError)(nameError, exit_codes_1.ExitCode.PROFILE_ERROR);
265
+ return;
266
+ }
267
+ // Resolve legacy Codex home — LEGACY_CODEX_HOME env allows test hermeticity (D decision)
268
+ const legacyCodexHome = process.env['LEGACY_CODEX_HOME'] ?? path.join(os.homedir(), '.codex');
269
+ const legacyAuthPath = path.join(legacyCodexHome, 'auth.json');
270
+ // Check legacy auth.json exists
271
+ if (!fs.existsSync(legacyAuthPath)) {
272
+ console.log(` Use \`ccsx auth login ${args.name}\` to authenticate a new profile instead.`);
273
+ (0, errors_1.exitWithError)('No legacy auth.json', exit_codes_1.ExitCode.PROFILE_ERROR);
274
+ return;
275
+ }
276
+ const { registry } = ctx;
277
+ // Profile collision check
278
+ if (registry.hasProfile(args.name) && !args.force) {
279
+ console.log(` Use --force to overwrite (a .bak-<ts> backup will be created).`);
280
+ (0, errors_1.exitWithError)('Profile already exists', exit_codes_1.ExitCode.PROFILE_ERROR);
281
+ return;
282
+ }
283
+ // Detect Codex running (C3)
284
+ const codexPid = detectCodexRunning();
285
+ if (codexPid && !args.forceWhileRunning) {
286
+ process.stderr.write(`[!] Codex appears to be running (PID ${codexPid}). A token refresh may be in flight.\n`);
287
+ process.stderr.write(` Quit Codex first, then re-run import-default. Or pass --force-while-running to proceed anyway.\n`);
288
+ (0, errors_1.exitWithError)('Codex is running', exit_codes_1.ExitCode.PROFILE_ERROR);
289
+ return;
290
+ }
291
+ if (codexPid && args.forceWhileRunning) {
292
+ process.stderr.write(`[!] Proceeding with Codex running (--force-while-running). Be aware a refresh may race.\n`);
293
+ }
294
+ // Read + validate source (C3 torn-write protection)
295
+ let authData;
296
+ try {
297
+ authData = await readAuthJsonSafe(legacyAuthPath);
298
+ }
299
+ catch (err) {
300
+ if (err instanceof Error && err.message.startsWith('CLIPROXY_FORMAT:')) {
301
+ (0, errors_1.exitWithError)(err.message, exit_codes_1.ExitCode.PROFILE_ERROR);
302
+ return;
303
+ }
304
+ const msg = err instanceof Error ? err.message : String(err);
305
+ (0, errors_1.exitWithError)(msg, exit_codes_1.ExitCode.GENERAL_ERROR);
306
+ return;
307
+ }
308
+ const profileDir = (0, index_1.resolveCodexProfileDir)(args.name);
309
+ // Create dir
310
+ fs.mkdirSync(profileDir, { recursive: true, mode: 0o700 });
311
+ const destAuthPath = path.join(profileDir, 'auth.json');
312
+ // Backup existing auth.json if --force overwrite
313
+ if (args.force && fs.existsSync(destAuthPath)) {
314
+ const bakPath = `${destAuthPath}.bak-${Date.now()}`;
315
+ fs.copyFileSync(destAuthPath, bakPath);
316
+ process.stderr.write(`[i] Backed up existing auth.json to ${path.basename(bakPath)}\n`);
317
+ }
318
+ // Atomic write (C3)
319
+ atomicWriteFile(destAuthPath, JSON.stringify(authData, null, 2));
320
+ logger.stage('dispatch', 'codex-auth.import-default.copied', 'Copied auth.json to profile', {
321
+ name: args.name,
322
+ dest: destAuthPath,
323
+ });
324
+ // Optional: copy history + sessions (D8 default false)
325
+ let historyStatus;
326
+ let sessionsStatus;
327
+ if (args.withHistory) {
328
+ const legacyHistoryPath = path.join(legacyCodexHome, 'history.jsonl');
329
+ const destHistoryPath = path.join(profileDir, 'history.jsonl');
330
+ const historyCopied = copyIfPresent(legacyHistoryPath, destHistoryPath);
331
+ historyStatus = historyCopied === 'copied' ? 'copied' : 'not present';
332
+ const legacySessionsDir = path.join(legacyCodexHome, 'sessions');
333
+ const destSessionsDir = path.join(profileDir, 'sessions');
334
+ const sessionCount = copyDirIfPresent(legacySessionsDir, destSessionsDir);
335
+ sessionsStatus = sessionCount >= 0 ? `copied ${sessionCount} files` : 'not present';
336
+ }
337
+ else {
338
+ historyStatus = 'not requested';
339
+ sessionsStatus = 'not requested';
340
+ }
341
+ // Ensure shared config symlink (reuse Phase 1 helper)
342
+ try {
343
+ (0, index_1.ensureSharedConfigSymlink)(profileDir);
344
+ }
345
+ catch (err) {
346
+ const msg = err instanceof Error ? err.message : String(err);
347
+ logger.warn('codex-auth.import-default.symlink-failed', 'Symlink creation failed', {
348
+ profileDir,
349
+ error: msg,
350
+ });
351
+ (0, errors_1.exitWithError)(`Failed to prepare profile config.toml: ${msg}`, exit_codes_1.ExitCode.CONFIG_ERROR);
352
+ return;
353
+ }
354
+ // Decode email for display (best-effort)
355
+ const tokens = authData['tokens'];
356
+ const idToken = typeof tokens?.['id_token'] === 'string' ? tokens['id_token'] : null;
357
+ const identity = idToken ? (0, index_1.decodeIdToken)(idToken) : {};
358
+ const emailDisplay = identity.email ?? '(unknown)';
359
+ // Register in registry
360
+ if (registry.hasProfile(args.name)) {
361
+ registry.updateProfile(args.name, {
362
+ last_used: new Date().toISOString(),
363
+ email: identity.email,
364
+ plan_type: identity.plan_type ?? null,
365
+ account_id: identity.account_id,
366
+ });
367
+ }
368
+ else {
369
+ registry.createProfile(args.name, {
370
+ created: new Date().toISOString(),
371
+ last_used: new Date().toISOString(),
372
+ email: identity.email,
373
+ plan_type: identity.plan_type ?? null,
374
+ account_id: identity.account_id,
375
+ });
376
+ }
377
+ // Print summary
378
+ console.log((0, ui_1.ok)(`Imported legacy ${legacyAuthPath} -> profile '${args.name}'`));
379
+ console.log(` Email : ${emailDisplay}`);
380
+ console.log(` History : ${historyStatus}`);
381
+ console.log(` Sessions: ${sessionsStatus}`);
382
+ console.log(` Next : ccsx auth switch ${args.name}`);
383
+ }
384
+ exports.handleImportDefaultCodex = handleImportDefaultCodex;
385
+ //# sourceMappingURL=import-default-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-default-command.js","sourceRoot":"","sources":["../../../src/codex-auth/commands/import-default-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Barrel export for codex-auth command handlers.
3
+ */
4
+ export { handleCreateCodex } from './create-command';
5
+ export { handleLoginCodex } from './login-command';
6
+ export { handleSwitchCodex } from './switch-command';
7
+ export { handleUseCodex } from './use-command';
8
+ export { handleShowCodex } from './show-command';
9
+ export { handleRemoveCodex } from './remove-command';
10
+ export { handleImportDefaultCodex } from './import-default-command';
11
+ export type { CodexCommandContext, CodexAuthArgs, CodexProfileOutput } from './types';
12
+ export { parseArgs, rejectUnsupportedOptions, isValidCodexProfileName, getProfileNameError, formatRelativeTime, } from './types';
13
+ //# sourceMappingURL=index.d.ts.map