ccjk 15.27.5 → 15.28.0

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 (427) hide show
  1. package/dist/commands/edit.js +3 -2
  2. package/dist/commands/edit.js.map +1 -1
  3. package/dist/commands/init.js +137 -254
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/migrate.js +7 -4
  6. package/dist/commands/migrate.js.map +1 -1
  7. package/dist/commands/profile.js +3 -5
  8. package/dist/commands/profile.js.map +1 -1
  9. package/dist/commands/quick.js +22 -24
  10. package/dist/commands/quick.js.map +1 -1
  11. package/dist/commands/status.js +25 -2
  12. package/dist/commands/status.js.map +1 -1
  13. package/dist/core/codex-auth.js +63 -0
  14. package/dist/core/codex-auth.js.map +1 -0
  15. package/dist/core/perms.js +86 -96
  16. package/dist/core/perms.js.map +1 -1
  17. package/dist/core/profiles.js +49 -8
  18. package/dist/core/profiles.js.map +1 -1
  19. package/dist/core/providers.js +77 -71
  20. package/dist/core/providers.js.map +1 -1
  21. package/dist/core/quick-parse.js +7 -1
  22. package/dist/core/quick-parse.js.map +1 -1
  23. package/package.json +1 -1
  24. package/dist/chunks/agent-teams.mjs +0 -145
  25. package/dist/chunks/agent.mjs +0 -1439
  26. package/dist/chunks/agents.mjs +0 -3783
  27. package/dist/chunks/api-cli.mjs +0 -135
  28. package/dist/chunks/api-config-selector.mjs +0 -159
  29. package/dist/chunks/api-providers.mjs +0 -144
  30. package/dist/chunks/api.mjs +0 -115
  31. package/dist/chunks/auto-bootstrap.mjs +0 -358
  32. package/dist/chunks/auto-fixer.mjs +0 -95
  33. package/dist/chunks/auto-updater.mjs +0 -507
  34. package/dist/chunks/banner.mjs +0 -173
  35. package/dist/chunks/bash.mjs +0 -187
  36. package/dist/chunks/boost.mjs +0 -474
  37. package/dist/chunks/brain-config.mjs +0 -75
  38. package/dist/chunks/brain-status.mjs +0 -89
  39. package/dist/chunks/ccjk-agents.mjs +0 -416
  40. package/dist/chunks/ccjk-all.mjs +0 -1046
  41. package/dist/chunks/ccjk-config.mjs +0 -445
  42. package/dist/chunks/ccjk-hooks.mjs +0 -1074
  43. package/dist/chunks/ccjk-mcp.mjs +0 -763
  44. package/dist/chunks/ccjk-setup.mjs +0 -765
  45. package/dist/chunks/ccjk-skills.mjs +0 -518
  46. package/dist/chunks/ccr.mjs +0 -109
  47. package/dist/chunks/ccu.mjs +0 -40
  48. package/dist/chunks/check-updates.mjs +0 -117
  49. package/dist/chunks/claude-code-incremental-manager.mjs +0 -761
  50. package/dist/chunks/claude-config.mjs +0 -606
  51. package/dist/chunks/claude-config2.mjs +0 -62
  52. package/dist/chunks/claude-wrapper.mjs +0 -85
  53. package/dist/chunks/clavue-config.mjs +0 -1454
  54. package/dist/chunks/cleanup-migration.mjs +0 -20
  55. package/dist/chunks/cli-hook.mjs +0 -4096
  56. package/dist/chunks/cloud-sync.mjs +0 -29
  57. package/dist/chunks/code-type-resolver.mjs +0 -880
  58. package/dist/chunks/codex-config-switch.mjs +0 -452
  59. package/dist/chunks/codex-provider-manager.mjs +0 -238
  60. package/dist/chunks/codex-uninstaller.mjs +0 -404
  61. package/dist/chunks/codex.mjs +0 -2141
  62. package/dist/chunks/commands.mjs +0 -108
  63. package/dist/chunks/commands2.mjs +0 -421
  64. package/dist/chunks/commit.mjs +0 -140
  65. package/dist/chunks/completion.mjs +0 -517
  66. package/dist/chunks/config-consolidator.mjs +0 -172
  67. package/dist/chunks/config-switch.mjs +0 -334
  68. package/dist/chunks/config.mjs +0 -558
  69. package/dist/chunks/config2.mjs +0 -484
  70. package/dist/chunks/config3.mjs +0 -486
  71. package/dist/chunks/constants.mjs +0 -323
  72. package/dist/chunks/context-opt.mjs +0 -444
  73. package/dist/chunks/context.mjs +0 -974
  74. package/dist/chunks/dashboard.mjs +0 -481
  75. package/dist/chunks/doctor.mjs +0 -1301
  76. package/dist/chunks/eval.mjs +0 -502
  77. package/dist/chunks/evolution.mjs +0 -322
  78. package/dist/chunks/features.mjs +0 -715
  79. package/dist/chunks/fish.mjs +0 -181
  80. package/dist/chunks/fs-operations.mjs +0 -180
  81. package/dist/chunks/health-alerts.mjs +0 -830
  82. package/dist/chunks/help.mjs +0 -341
  83. package/dist/chunks/hook-installer.mjs +0 -48
  84. package/dist/chunks/impact.mjs +0 -651
  85. package/dist/chunks/index.mjs +0 -23
  86. package/dist/chunks/index10.mjs +0 -19
  87. package/dist/chunks/index11.mjs +0 -1171
  88. package/dist/chunks/index12.mjs +0 -218
  89. package/dist/chunks/index13.mjs +0 -679
  90. package/dist/chunks/index14.mjs +0 -1009
  91. package/dist/chunks/index15.mjs +0 -194
  92. package/dist/chunks/index2.mjs +0 -7637
  93. package/dist/chunks/index3.mjs +0 -171
  94. package/dist/chunks/index4.mjs +0 -26
  95. package/dist/chunks/index5.mjs +0 -19
  96. package/dist/chunks/index6.mjs +0 -19092
  97. package/dist/chunks/index7.mjs +0 -616
  98. package/dist/chunks/index8.mjs +0 -1602
  99. package/dist/chunks/index9.mjs +0 -5384
  100. package/dist/chunks/init.mjs +0 -1911
  101. package/dist/chunks/installer.mjs +0 -757
  102. package/dist/chunks/installer2.mjs +0 -103
  103. package/dist/chunks/interview.mjs +0 -2927
  104. package/dist/chunks/json-config.mjs +0 -60
  105. package/dist/chunks/linux.mjs +0 -3863
  106. package/dist/chunks/macos.mjs +0 -69
  107. package/dist/chunks/main.mjs +0 -635
  108. package/dist/chunks/manager.mjs +0 -1048
  109. package/dist/chunks/marketplace.mjs +0 -265
  110. package/dist/chunks/mcp-cli.mjs +0 -205
  111. package/dist/chunks/mcp-performance.mjs +0 -187
  112. package/dist/chunks/mcp.mjs +0 -667
  113. package/dist/chunks/memory-check.mjs +0 -2973
  114. package/dist/chunks/memory-paths.mjs +0 -259
  115. package/dist/chunks/memory-sync.mjs +0 -209
  116. package/dist/chunks/memory.mjs +0 -354
  117. package/dist/chunks/metrics-display.mjs +0 -153
  118. package/dist/chunks/monitor.mjs +0 -1856
  119. package/dist/chunks/notification.mjs +0 -1864
  120. package/dist/chunks/onboarding.mjs +0 -386
  121. package/dist/chunks/package.mjs +0 -3
  122. package/dist/chunks/paradigm.mjs +0 -74
  123. package/dist/chunks/permission-manager.mjs +0 -250
  124. package/dist/chunks/permissions.mjs +0 -265
  125. package/dist/chunks/persistence-manager.mjs +0 -801
  126. package/dist/chunks/persistence.mjs +0 -707
  127. package/dist/chunks/platform.mjs +0 -395
  128. package/dist/chunks/plugin.mjs +0 -1936
  129. package/dist/chunks/powershell.mjs +0 -213
  130. package/dist/chunks/prompts.mjs +0 -244
  131. package/dist/chunks/providers.mjs +0 -263
  132. package/dist/chunks/quick-actions.mjs +0 -335
  133. package/dist/chunks/quick-provider.mjs +0 -755
  134. package/dist/chunks/quick-setup.mjs +0 -421
  135. package/dist/chunks/remote.mjs +0 -497
  136. package/dist/chunks/research.mjs +0 -1904
  137. package/dist/chunks/rollback.mjs +0 -38
  138. package/dist/chunks/session-manager.mjs +0 -1371
  139. package/dist/chunks/session.mjs +0 -878
  140. package/dist/chunks/sessions.mjs +0 -106
  141. package/dist/chunks/silent-updater.mjs +0 -396
  142. package/dist/chunks/simple-config.mjs +0 -122
  143. package/dist/chunks/skill.mjs +0 -117
  144. package/dist/chunks/skill2.mjs +0 -9052
  145. package/dist/chunks/skills-sync.mjs +0 -1343
  146. package/dist/chunks/skills.mjs +0 -577
  147. package/dist/chunks/slash-commands.mjs +0 -208
  148. package/dist/chunks/smart-guide.mjs +0 -247
  149. package/dist/chunks/snapshot.mjs +0 -58
  150. package/dist/chunks/startup.mjs +0 -487
  151. package/dist/chunks/stats.mjs +0 -191
  152. package/dist/chunks/status.mjs +0 -471
  153. package/dist/chunks/team.mjs +0 -63
  154. package/dist/chunks/thinking.mjs +0 -626
  155. package/dist/chunks/trace.mjs +0 -57
  156. package/dist/chunks/uninstall.mjs +0 -852
  157. package/dist/chunks/update.mjs +0 -174
  158. package/dist/chunks/upgrade-manager.mjs +0 -204
  159. package/dist/chunks/upgrade.mjs +0 -133
  160. package/dist/chunks/version-checker.mjs +0 -891
  161. package/dist/chunks/vim.mjs +0 -903
  162. package/dist/chunks/windows.mjs +0 -14
  163. package/dist/chunks/workflows.mjs +0 -633
  164. package/dist/chunks/wsl.mjs +0 -129
  165. package/dist/chunks/zero-config.mjs +0 -871
  166. package/dist/chunks/zsh.mjs +0 -182
  167. package/dist/cli.d.mts +0 -1
  168. package/dist/cli.d.ts +0 -1
  169. package/dist/cli.mjs +0 -2684
  170. package/dist/i18n/locales/en/agent-teams.json +0 -18
  171. package/dist/i18n/locales/en/agentBrowser.json +0 -80
  172. package/dist/i18n/locales/en/agents.json +0 -135
  173. package/dist/i18n/locales/en/api.json +0 -63
  174. package/dist/i18n/locales/en/ccjk-agents.json +0 -33
  175. package/dist/i18n/locales/en/ccjk-all.json +0 -23
  176. package/dist/i18n/locales/en/ccjk-skills.json +0 -22
  177. package/dist/i18n/locales/en/ccjk.json +0 -276
  178. package/dist/i18n/locales/en/ccr.json +0 -65
  179. package/dist/i18n/locales/en/claude-md.json +0 -73
  180. package/dist/i18n/locales/en/cli.json +0 -148
  181. package/dist/i18n/locales/en/cloud-setup.json +0 -31
  182. package/dist/i18n/locales/en/cloud-sync.json +0 -147
  183. package/dist/i18n/locales/en/cloud.json +0 -40
  184. package/dist/i18n/locales/en/cloudPlugins.json +0 -118
  185. package/dist/i18n/locales/en/codex.json +0 -184
  186. package/dist/i18n/locales/en/cometix.json +0 -29
  187. package/dist/i18n/locales/en/common.json +0 -68
  188. package/dist/i18n/locales/en/config.json +0 -108
  189. package/dist/i18n/locales/en/configuration.json +0 -236
  190. package/dist/i18n/locales/en/context.json +0 -85
  191. package/dist/i18n/locales/en/dashboard.json +0 -78
  192. package/dist/i18n/locales/en/errors.json +0 -26
  193. package/dist/i18n/locales/en/evolution.json +0 -54
  194. package/dist/i18n/locales/en/hooks.json +0 -74
  195. package/dist/i18n/locales/en/hooksSync.json +0 -133
  196. package/dist/i18n/locales/en/installation.json +0 -83
  197. package/dist/i18n/locales/en/interview.json +0 -104
  198. package/dist/i18n/locales/en/language.json +0 -19
  199. package/dist/i18n/locales/en/lsp.json +0 -78
  200. package/dist/i18n/locales/en/marketplace.json +0 -116
  201. package/dist/i18n/locales/en/mcp.json +0 -180
  202. package/dist/i18n/locales/en/memory.json +0 -23
  203. package/dist/i18n/locales/en/menu.json +0 -299
  204. package/dist/i18n/locales/en/multi-config.json +0 -79
  205. package/dist/i18n/locales/en/notification.json +0 -307
  206. package/dist/i18n/locales/en/permissions.json +0 -95
  207. package/dist/i18n/locales/en/persistence.json +0 -127
  208. package/dist/i18n/locales/en/plugins.json +0 -146
  209. package/dist/i18n/locales/en/quick-actions.json +0 -78
  210. package/dist/i18n/locales/en/registry.json +0 -54
  211. package/dist/i18n/locales/en/remote.json +0 -93
  212. package/dist/i18n/locales/en/sandbox.json +0 -44
  213. package/dist/i18n/locales/en/setup.json +0 -44
  214. package/dist/i18n/locales/en/shencha.json +0 -14
  215. package/dist/i18n/locales/en/skills.json +0 -100
  216. package/dist/i18n/locales/en/skillsSync.json +0 -74
  217. package/dist/i18n/locales/en/smartGuide.json +0 -49
  218. package/dist/i18n/locales/en/stats.json +0 -20
  219. package/dist/i18n/locales/en/subagent.json +0 -69
  220. package/dist/i18n/locales/en/superpowers.json +0 -117
  221. package/dist/i18n/locales/en/team.json +0 -7
  222. package/dist/i18n/locales/en/thinking.json +0 -65
  223. package/dist/i18n/locales/en/tools.json +0 -42
  224. package/dist/i18n/locales/en/uninstall.json +0 -56
  225. package/dist/i18n/locales/en/updater.json +0 -29
  226. package/dist/i18n/locales/en/vim.json +0 -169
  227. package/dist/i18n/locales/en/workflow.json +0 -55
  228. package/dist/i18n/locales/en/workspace.json +0 -108
  229. package/dist/i18n/locales/zh-CN/agent-teams.json +0 -18
  230. package/dist/i18n/locales/zh-CN/agentBrowser.json +0 -80
  231. package/dist/i18n/locales/zh-CN/agents.json +0 -135
  232. package/dist/i18n/locales/zh-CN/api.json +0 -63
  233. package/dist/i18n/locales/zh-CN/ccjk-agents.json +0 -33
  234. package/dist/i18n/locales/zh-CN/ccjk-all.json +0 -23
  235. package/dist/i18n/locales/zh-CN/ccjk-skills.json +0 -22
  236. package/dist/i18n/locales/zh-CN/ccjk.json +0 -276
  237. package/dist/i18n/locales/zh-CN/ccr.json +0 -65
  238. package/dist/i18n/locales/zh-CN/claude-md.json +0 -73
  239. package/dist/i18n/locales/zh-CN/cli.json +0 -148
  240. package/dist/i18n/locales/zh-CN/cloud-setup.json +0 -31
  241. package/dist/i18n/locales/zh-CN/cloud-sync.json +0 -147
  242. package/dist/i18n/locales/zh-CN/cloud.json +0 -40
  243. package/dist/i18n/locales/zh-CN/cloudPlugins.json +0 -118
  244. package/dist/i18n/locales/zh-CN/codex.json +0 -184
  245. package/dist/i18n/locales/zh-CN/cometix.json +0 -29
  246. package/dist/i18n/locales/zh-CN/common.json +0 -68
  247. package/dist/i18n/locales/zh-CN/config.json +0 -108
  248. package/dist/i18n/locales/zh-CN/configuration.json +0 -234
  249. package/dist/i18n/locales/zh-CN/context.json +0 -85
  250. package/dist/i18n/locales/zh-CN/dashboard.json +0 -78
  251. package/dist/i18n/locales/zh-CN/errors.json +0 -26
  252. package/dist/i18n/locales/zh-CN/evolution.json +0 -54
  253. package/dist/i18n/locales/zh-CN/hooks.json +0 -74
  254. package/dist/i18n/locales/zh-CN/hooksSync.json +0 -133
  255. package/dist/i18n/locales/zh-CN/installation.json +0 -83
  256. package/dist/i18n/locales/zh-CN/interview.json +0 -104
  257. package/dist/i18n/locales/zh-CN/language.json +0 -19
  258. package/dist/i18n/locales/zh-CN/lsp.json +0 -78
  259. package/dist/i18n/locales/zh-CN/marketplace.json +0 -116
  260. package/dist/i18n/locales/zh-CN/mcp.json +0 -180
  261. package/dist/i18n/locales/zh-CN/memory.json +0 -23
  262. package/dist/i18n/locales/zh-CN/menu.json +0 -299
  263. package/dist/i18n/locales/zh-CN/multi-config.json +0 -79
  264. package/dist/i18n/locales/zh-CN/notification.json +0 -307
  265. package/dist/i18n/locales/zh-CN/permissions.json +0 -95
  266. package/dist/i18n/locales/zh-CN/persistence.json +0 -127
  267. package/dist/i18n/locales/zh-CN/plugins.json +0 -146
  268. package/dist/i18n/locales/zh-CN/quick-actions.json +0 -78
  269. package/dist/i18n/locales/zh-CN/registry.json +0 -54
  270. package/dist/i18n/locales/zh-CN/remote.json +0 -93
  271. package/dist/i18n/locales/zh-CN/sandbox.json +0 -44
  272. package/dist/i18n/locales/zh-CN/setup.json +0 -44
  273. package/dist/i18n/locales/zh-CN/shencha.json +0 -14
  274. package/dist/i18n/locales/zh-CN/skills.json +0 -100
  275. package/dist/i18n/locales/zh-CN/skillsSync.json +0 -74
  276. package/dist/i18n/locales/zh-CN/smartGuide.json +0 -49
  277. package/dist/i18n/locales/zh-CN/stats.json +0 -20
  278. package/dist/i18n/locales/zh-CN/subagent.json +0 -69
  279. package/dist/i18n/locales/zh-CN/superpowers.json +0 -117
  280. package/dist/i18n/locales/zh-CN/team.json +0 -7
  281. package/dist/i18n/locales/zh-CN/thinking.json +0 -65
  282. package/dist/i18n/locales/zh-CN/tools.json +0 -42
  283. package/dist/i18n/locales/zh-CN/uninstall.json +0 -56
  284. package/dist/i18n/locales/zh-CN/updater.json +0 -29
  285. package/dist/i18n/locales/zh-CN/vim.json +0 -169
  286. package/dist/i18n/locales/zh-CN/workflow.json +0 -55
  287. package/dist/i18n/locales/zh-CN/workspace.json +0 -108
  288. package/dist/index.d.mts +0 -5658
  289. package/dist/index.d.ts +0 -5658
  290. package/dist/index.mjs +0 -3732
  291. package/dist/shared/ccjk.5bEolFrk.mjs +0 -254
  292. package/dist/shared/ccjk.8oaxX4iR.mjs +0 -90
  293. package/dist/shared/ccjk.B2U7DsPy.mjs +0 -31
  294. package/dist/shared/ccjk.B2f-cwUP.mjs +0 -468
  295. package/dist/shared/ccjk.BAGoDD49.mjs +0 -36
  296. package/dist/shared/ccjk.BBtCGd_g.mjs +0 -899
  297. package/dist/shared/ccjk.BFQ7yr5S.mjs +0 -16
  298. package/dist/shared/ccjk.BLsIiTqO.mjs +0 -449
  299. package/dist/shared/ccjk.BXv8aYs1.mjs +0 -170
  300. package/dist/shared/ccjk.BnsY5WxD.mjs +0 -171
  301. package/dist/shared/ccjk.BoApaI4j.mjs +0 -28
  302. package/dist/shared/ccjk.Bq8TqZG_.mjs +0 -189
  303. package/dist/shared/ccjk.BtrioX1Z.mjs +0 -25
  304. package/dist/shared/ccjk.Bx_rmYfN.mjs +0 -69
  305. package/dist/shared/ccjk.BzPbSEP2.mjs +0 -115
  306. package/dist/shared/ccjk.C0WLUnFV.mjs +0 -293
  307. package/dist/shared/ccjk.C1hANZTu.mjs +0 -19
  308. package/dist/shared/ccjk.C2jHOZVP.mjs +0 -52
  309. package/dist/shared/ccjk.CNhnT6uQ.mjs +0 -636
  310. package/dist/shared/ccjk.COweQ1RR.mjs +0 -5
  311. package/dist/shared/ccjk.CfKKcvWy.mjs +0 -126
  312. package/dist/shared/ccjk.Cjgrln_h.mjs +0 -297
  313. package/dist/shared/ccjk.CoCHVXl3.mjs +0 -3951
  314. package/dist/shared/ccjk.CwGZSTAK.mjs +0 -319
  315. package/dist/shared/ccjk.CxpGa6MC.mjs +0 -2724
  316. package/dist/shared/ccjk.D-magaEx.mjs +0 -763
  317. package/dist/shared/ccjk.D0g2ABGg.mjs +0 -171
  318. package/dist/shared/ccjk.D6ycHbak.mjs +0 -270
  319. package/dist/shared/ccjk.D75wivnp.mjs +0 -142
  320. package/dist/shared/ccjk.DDL-4C-k.mjs +0 -100
  321. package/dist/shared/ccjk.DFRPtmK_.mjs +0 -75
  322. package/dist/shared/ccjk.DMV3x5Sd.mjs +0 -299
  323. package/dist/shared/ccjk.DZ2LLOa-.mjs +0 -2195
  324. package/dist/shared/ccjk.DbigonEQ.mjs +0 -698
  325. package/dist/shared/ccjk.DcMvE7lf.mjs +0 -618
  326. package/dist/shared/ccjk.DeWpAShp.mjs +0 -1828
  327. package/dist/shared/ccjk.DhJ1kyDR.mjs +0 -30
  328. package/dist/shared/ccjk.DlTXS9rP.mjs +0 -224
  329. package/dist/shared/ccjk.DopKzo3z.mjs +0 -305
  330. package/dist/shared/ccjk.DsZsc4LR.mjs +0 -1280
  331. package/dist/shared/ccjk.DuzJZlgj.mjs +0 -418
  332. package/dist/shared/ccjk.Dxgd2vjc.mjs +0 -444
  333. package/dist/shared/ccjk.J8YiPsOw.mjs +0 -259
  334. package/dist/shared/ccjk.KfSWcGlE.mjs +0 -38
  335. package/dist/shared/ccjk.L7yC58_i.mjs +0 -225
  336. package/dist/shared/ccjk.MwtjAULc.mjs +0 -1447
  337. package/dist/shared/ccjk.OJKHVSOb.mjs +0 -2005
  338. package/dist/shared/ccjk.OTnevPNE.mjs +0 -225
  339. package/dist/shared/ccjk.RyizuzOI.mjs +0 -21
  340. package/dist/shared/ccjk.T_cX87dY.mjs +0 -15
  341. package/dist/shared/ccjk.bQ7Dh1g4.mjs +0 -249
  342. package/dist/shared/ccjk.gDEDGD_t.mjs +0 -38
  343. package/dist/shared/ccjk.hoqrwWdN.mjs +0 -333
  344. package/dist/shared/ccjk.i_vn-9C3.mjs +0 -317
  345. package/dist/shared/ccjk.lG3ccFjm.mjs +0 -885
  346. package/dist/shared/ccjk.wLJHO0Af.mjs +0 -244
  347. package/dist/shared/ccjk.y-a_1vK4.mjs +0 -5127
  348. package/dist/templates/agents/README.md +0 -78
  349. package/dist/templates/agents/fullstack-developer.json +0 -70
  350. package/dist/templates/agents/go-expert.json +0 -69
  351. package/dist/templates/agents/index.json +0 -64
  352. package/dist/templates/agents/python-expert.json +0 -69
  353. package/dist/templates/agents/react-specialist.json +0 -69
  354. package/dist/templates/agents/testing-automation-expert.json +0 -70
  355. package/dist/templates/agents/typescript-architect.json +0 -69
  356. package/dist/templates/claude-code/common/settings.json +0 -109
  357. package/dist/templates/common/error-prevention.md +0 -267
  358. package/dist/templates/common/karpathy-baseline.md +0 -83
  359. package/dist/templates/common/output-styles/zh-CN/carmack-mode.md +0 -381
  360. package/dist/templates/common/output-styles/zh-CN/codex-rigor-mode.md +0 -114
  361. package/dist/templates/common/output-styles/zh-CN/dhh-mode.md +0 -265
  362. package/dist/templates/common/output-styles/zh-CN/evan-you-mode.md +0 -539
  363. package/dist/templates/common/output-styles/zh-CN/jobs-mode.md +0 -369
  364. package/dist/templates/common/output-styles/zh-CN/linus-mode.md +0 -135
  365. package/dist/templates/common/output-styles/zh-CN/uncle-bob-mode.md +0 -221
  366. package/dist/templates/common/workflow/continuousDelivery/en/continuous-delivery.md +0 -628
  367. package/dist/templates/common/workflow/continuousDelivery/zh-CN/continuous-delivery.md +0 -628
  368. package/dist/templates/common/workflow/essential/en/agents/ccjk-config-agent.md +0 -187
  369. package/dist/templates/common/workflow/essential/en/agents/ccjk-mcp-agent.md +0 -191
  370. package/dist/templates/common/workflow/essential/en/agents/ccjk-skill-agent.md +0 -249
  371. package/dist/templates/common/workflow/essential/en/agents/ccjk-workflow-agent.md +0 -277
  372. package/dist/templates/common/workflow/essential/en/agents/get-current-datetime.md +0 -29
  373. package/dist/templates/common/workflow/essential/en/agents/init-architect.md +0 -115
  374. package/dist/templates/common/workflow/essential/en/agents/ui-ux-designer.md +0 -91
  375. package/dist/templates/common/workflow/essential/en/feat.md +0 -92
  376. package/dist/templates/common/workflow/essential/en/goal.md +0 -147
  377. package/dist/templates/common/workflow/essential/en/init-project.md +0 -53
  378. package/dist/templates/common/workflow/essential/zh-CN/agents/get-current-datetime.md +0 -29
  379. package/dist/templates/common/workflow/essential/zh-CN/agents/init-architect.md +0 -115
  380. package/dist/templates/common/workflow/essential/zh-CN/agents/ui-ux-designer.md +0 -91
  381. package/dist/templates/common/workflow/essential/zh-CN/feat.md +0 -315
  382. package/dist/templates/common/workflow/essential/zh-CN/goal.md +0 -146
  383. package/dist/templates/common/workflow/essential/zh-CN/init-project.md +0 -53
  384. package/dist/templates/common/workflow/git/en/git-cleanBranches.md +0 -102
  385. package/dist/templates/common/workflow/git/en/git-commit.md +0 -205
  386. package/dist/templates/common/workflow/git/en/git-rollback.md +0 -90
  387. package/dist/templates/common/workflow/git/en/git-worktree.md +0 -276
  388. package/dist/templates/common/workflow/git/zh-CN/git-cleanBranches.md +0 -102
  389. package/dist/templates/common/workflow/git/zh-CN/git-commit.md +0 -205
  390. package/dist/templates/common/workflow/git/zh-CN/git-rollback.md +0 -90
  391. package/dist/templates/common/workflow/git/zh-CN/git-worktree.md +0 -276
  392. package/dist/templates/common/workflow/interview/en/interview.md +0 -67
  393. package/dist/templates/common/workflow/interview/zh-CN/interview.md +0 -67
  394. package/dist/templates/common/workflow/linearMethod/en/linear-method.md +0 -651
  395. package/dist/templates/common/workflow/linearMethod/zh-CN/linear-method.md +0 -752
  396. package/dist/templates/common/workflow/refactoringMaster/en/refactoring-master.md +0 -516
  397. package/dist/templates/common/workflow/refactoringMaster/zh-CN/refactoring-master.md +0 -812
  398. package/dist/templates/common/workflow/sixStep/en/workflow.md +0 -83
  399. package/dist/templates/common/workflow/sixStep/zh-CN/workflow.md +0 -359
  400. package/dist/templates/common/workflow/specFirstTDD/en/spec-first-tdd.md +0 -364
  401. package/dist/templates/common/workflow/specFirstTDD/zh-CN/spec-first-tdd.md +0 -366
  402. package/dist/templates/hooks/README.md +0 -212
  403. package/dist/templates/hooks/git-workflow-hooks.md +0 -551
  404. package/dist/templates/hooks/post-test/coverage.json +0 -21
  405. package/dist/templates/hooks/post-test/summary.json +0 -21
  406. package/dist/templates/hooks/post-test-coverage.md +0 -434
  407. package/dist/templates/hooks/pre-commit/eslint.json +0 -22
  408. package/dist/templates/hooks/pre-commit/prettier.json +0 -22
  409. package/dist/templates/hooks/pre-commit-black.md +0 -274
  410. package/dist/templates/hooks/pre-commit-eslint.md +0 -153
  411. package/dist/templates/hooks/pre-commit-gofmt.md +0 -284
  412. package/dist/templates/hooks/pre-commit-prettier.md +0 -212
  413. package/dist/templates/hooks/pre-commit-type-check.md +0 -377
  414. package/dist/templates/skills/ccjk-init.md +0 -154
  415. package/dist/templates/skills/ccjk-mcp-setup.md +0 -205
  416. package/dist/templates/skills/ccjk-troubleshoot.md +0 -228
  417. package/dist/templates/skills/django-patterns.md +0 -1016
  418. package/dist/templates/skills/git-workflow.md +0 -748
  419. package/dist/templates/skills/go-idioms.md +0 -963
  420. package/dist/templates/skills/index.json +0 -132
  421. package/dist/templates/skills/nextjs-optimization.md +0 -694
  422. package/dist/templates/skills/python-pep8.md +0 -852
  423. package/dist/templates/skills/react-patterns.md +0 -686
  424. package/dist/templates/skills/rust-patterns.md +0 -1057
  425. package/dist/templates/skills/security-best-practices.md +0 -1413
  426. package/dist/templates/skills/testing-best-practices.md +0 -1315
  427. package/dist/templates/skills/ts-best-practices.md +0 -354
@@ -173,9 +173,10 @@ async function applyDirectOpts(profile, opts) {
173
173
  return changed;
174
174
  }
175
175
  async function applyInteractive(profile, fields) {
176
- // 如果 profile 的 provider modelCatalog,model / fastModel 编辑用 select
176
+ // 如果 profile 的 provider 在表里且有 claudeCode.defaultModels,model 编辑用 select
177
+ // 否则退化为纯 input
177
178
  const provider = findProvider(profile.provider);
178
- const catalog = provider?.modelCatalog;
179
+ const catalog = provider?.claudeCode?.defaultModels;
179
180
  for (const f of fields) {
180
181
  if (f === 'apiKey') {
181
182
  const v = await password({
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,51 @@
1
1
  import { confirm, input, password, select } from '@inquirer/prompts';
2
2
  import ansis from 'ansis';
3
3
  import { TOOLS } from '../core/tools.js';
4
- import { listProvidersFor } from '../core/providers.js';
4
+ import { defaultClaudeModel, listProvidersFor } from '../core/providers.js';
5
5
  import { readSettings, writeSettings } from '../core/settings.js';
6
6
  import { listProfiles, validateName, writeProfile, writeState } from '../core/profiles.js';
7
7
  import { readTomlFile, writeTomlFile } from '../core/toml.js';
8
- import { applyCodexProfile, listCodexProviders } from '../core/codex-config.js';
8
+ import { applyCodexProfile } from '../core/codex-config.js';
9
+ import { writeAuthFile } from '../core/codex-auth.js';
9
10
  import { lintSettings } from '../core/lint.js';
10
11
  export async function initCommand(opts = {}) {
11
12
  const tool = opts.tool ?? await pickTool();
12
- const meta = TOOLS[tool];
13
13
  if (tool === 'codex') {
14
14
  await initCodex(opts);
15
15
  return;
16
16
  }
17
+ await initClaudeLike(tool, opts);
18
+ }
19
+ async function initClaudeLike(tool, opts) {
20
+ const meta = TOOLS[tool];
17
21
  const provider = opts.provider
18
22
  ? resolveProvider(tool, opts.provider)
19
23
  : await pickProvider(tool);
24
+ if (!provider.claudeCode && provider.id !== 'custom') {
25
+ throw new Error(`provider "${provider.id}" 没有 claude-code 配置`);
26
+ }
27
+ // claudeCode preset 在 custom 时为 undefined → 都向用户问
28
+ const preset = provider.claudeCode;
20
29
  const baseUrl = opts.baseUrl
21
- ?? (provider.baseUrl || await askInput('Base URL (例如 https://api.example.com)'));
22
- const apiKey = opts.apiKey ?? await askInput(provider.authType === 'api_key' ? 'API Key' : 'Auth Token', true);
23
- // 所有 provider 都走 4 槽位(main/haiku/sonnet/opus)
24
- const slots = await collectModelSlots(provider, opts);
30
+ ?? preset?.baseUrl
31
+ ?? await askInput('Base URL (例如 https://api.example.com)');
32
+ const authType = preset?.authType ?? 'auth_token';
33
+ const apiKey = opts.apiKey ?? await askInput(authType === 'api_key' ? 'API Key' : 'Auth Token', true);
34
+ const model = await pickModel(opts, provider);
35
+ // 写 settings.env 时仍按 4 槽位语义;没显式给的 haiku/sonnet/opus 默认 = main,
36
+ // 这样用户启动 Claude Code 不会因为缺槽位走内置回退到非预期 model。
37
+ const slots = {
38
+ ...(model ? { main: model } : {}),
39
+ ...(opts.haikuModel ? { haiku: opts.haikuModel } : model ? { haiku: model } : {}),
40
+ ...(opts.sonnetModel ? { sonnet: opts.sonnetModel } : model ? { sonnet: model } : {}),
41
+ ...(opts.opusModel ? { opus: opts.opusModel } : model ? { opus: model } : {}),
42
+ };
25
43
  console.log(ansis.dim(`\n→ 配置目标: ${meta.settingsFile}`));
26
44
  console.log(ansis.dim(`→ Provider: ${provider.name}`));
27
45
  console.log(ansis.dim(`→ Base URL: ${baseUrl}`));
28
- console.log(ansis.dim(`→ Auth: ${provider.authType}`));
29
- if (slots.main)
30
- console.log(ansis.dim(`→ Main model: ${slots.main}`));
31
- if (slots.haiku)
32
- console.log(ansis.dim(`→ Haiku 槽: ${slots.haiku}`));
33
- if (slots.sonnet)
34
- console.log(ansis.dim(`→ Sonnet 槽: ${slots.sonnet}`));
35
- if (slots.opus)
36
- console.log(ansis.dim(`→ Opus 槽: ${slots.opus}`));
46
+ console.log(ansis.dim(`→ Auth: ${authType}`));
47
+ if (model)
48
+ console.log(ansis.dim(`→ Model: ${model}`));
37
49
  console.log();
38
50
  if (!opts.yes) {
39
51
  const ok = await confirm({ message: '确认写入?', default: true });
@@ -43,13 +55,12 @@ export async function initCommand(opts = {}) {
43
55
  }
44
56
  }
45
57
  const settings = await readSettings(meta.settingsFile);
46
- applyApiToSettings(settings, baseUrl, apiKey, provider, slots);
58
+ applyApiToSettings(settings, baseUrl, apiKey, authType, slots);
47
59
  const backup = await writeSettings(meta.settingsFile, settings);
48
60
  console.log(ansis.green('\n✔ 配置已写入'));
49
61
  if (backup)
50
62
  console.log(ansis.dim(` 备份: ${backup}`));
51
63
  console.log(ansis.dim(` 目标: ${meta.settingsFile}`));
52
- // 写完顺便体检一次:用户可能有上次配置遗留的脏数据
53
64
  const findings = lintSettings(settings);
54
65
  if (findings.length > 0) {
55
66
  const errs = findings.filter(f => f.severity === 'error').length;
@@ -65,151 +76,62 @@ export async function initCommand(opts = {}) {
65
76
  + (fixable > 0 ? ansis.dim(`(${fixable} 项可自动修 — 运行 \`ccjk doctor --fix\`)`) : ''));
66
77
  }
67
78
  }
79
+ warnShellShadow(baseUrl, slots);
68
80
  await maybeSaveProfile({
69
81
  explicitName: opts.profile,
70
82
  yes: opts.yes ?? false,
71
83
  provider,
72
84
  baseUrl,
85
+ authType,
73
86
  apiKey,
74
87
  slots,
75
88
  });
76
89
  console.log();
77
90
  }
78
91
  /**
79
- * 询问 main / haiku / sonnet / opus 四个槽位。
80
- *
81
- * 心智模型:**默认就是单 model**,4 槽位是 advanced 才暴露的能力。
82
- * 历史上 init 强行问 4 次,让用户填一堆其实是同一个 model ID 的礼仪空格——反人性。
92
+ * 让用户挑一个 main model。
83
93
  *
84
- * 新交互:
85
- * 1) simple(默认):只问一个 main model,其它槽不写——适合 80% 用户
86
- * 2) recommended(仅当 provider 自带分级默认时显示):一键写 provider 推荐的 4 槽
87
- * 3) advanced:逐个填 4 个槽,给真要做分级路由的人
88
- * 4) skip:什么都不写,让工具用内置 fallback
94
+ * - `--model` 命令行已传 → 直接用,不交互
95
+ * - provider.claudeCode.defaultModels 非空 select(含「手动输入」「跳过」)
96
+ * - 都没有 一行 input
89
97
  *
90
- * - 命令行参数走完,跳过整个交互(保留向后兼容)。
98
+ * 返回 undefined 表示"不写 model"——settings.env 的 ANTHROPIC_MODEL 会被 delete,
99
+ * Claude Code 走自己的默认。
91
100
  */
92
- async function collectModelSlots(provider, opts) {
93
- // 命令行已经把全部槽位都给了 不交互(保留旧行为)
94
- if (opts.yes || (opts.model && opts.haikuModel && opts.sonnetModel && opts.opusModel)) {
95
- return {
96
- ...(opts.model ?? provider.defaultModel ? { main: opts.model ?? provider.defaultModel } : {}),
97
- ...(opts.haikuModel ?? provider.fastModel ? { haiku: opts.haikuModel ?? provider.fastModel } : {}),
98
- ...(opts.sonnetModel ?? provider.sonnetModel ? { sonnet: opts.sonnetModel ?? provider.sonnetModel } : {}),
99
- ...(opts.opusModel ?? provider.opusModel ? { opus: opts.opusModel ?? provider.opusModel } : {}),
100
- };
101
+ async function pickModel(opts, provider) {
102
+ if (opts.model !== undefined) {
103
+ const t = opts.model.trim();
104
+ return t || undefined;
101
105
  }
102
- // 是否有 provider 推荐的「分级 4 槽」(即 fast/sonnet/opus 至少有一个跟 default 不一样)
103
- const hasGradedDefaults = Boolean(provider.fastModel || provider.sonnetModel || provider.opusModel);
104
- const choices = [
105
- {
106
- name: `单 model(推荐)${ansis.dim('— 只填一个 main,绝大多数 provider 这样就够了')}`,
107
- value: 'simple',
108
- short: '单 model',
109
- },
110
- ];
111
- if (hasGradedDefaults) {
112
- choices.push({
113
- name: `用 ${provider.name} 分级推荐 ${ansis.dim(formatProviderDefaults(provider))}`,
114
- value: 'recommended',
115
- short: '分级推荐',
116
- });
106
+ if (opts.yes) {
107
+ return defaultClaudeModel(provider);
117
108
  }
118
- choices.push({ name: '高级:手动配 4 槽位(main / haiku / sonnet / opus)', value: 'advanced', short: '高级' }, { name: ansis.gray('跳过:不写任何槽位(让工具用内置默认)'), value: 'skip', short: '跳过' });
119
- const strategy = await select({
120
- message: '模型配置',
121
- default: 'simple',
122
- choices,
123
- });
124
- if (strategy === 'skip')
125
- return {};
126
- if (strategy === 'recommended') {
127
- return {
128
- ...(provider.defaultModel ? { main: provider.defaultModel } : {}),
129
- ...(provider.fastModel ? { haiku: provider.fastModel } : {}),
130
- ...(provider.sonnetModel ? { sonnet: provider.sonnetModel } : {}),
131
- ...(provider.opusModel ? { opus: provider.opusModel } : {}),
132
- };
133
- }
134
- if (strategy === 'simple') {
135
- const main = await askModelSlot('Main model', opts.model ?? provider.defaultModel ?? '', provider.modelCatalog);
136
- return main ? { main } : {};
137
- }
138
- // advanced
139
- console.log(ansis.dim('\n配置 model 槽位(直接回车=用建议值;输入空格再回车=该槽不写):\n'));
140
- const main = await askModelSlot('Main model', opts.model ?? provider.defaultModel ?? '', provider.modelCatalog);
141
- const haiku = await askModelSlot('Haiku 槽(快速 / 简单任务)', opts.haikuModel ?? provider.fastModel ?? '', provider.modelCatalog);
142
- const sonnet = await askModelSlot('Sonnet 槽(执行 / 中等任务)', opts.sonnetModel ?? provider.sonnetModel ?? '', provider.modelCatalog);
143
- const opus = await askModelSlot('Opus 槽(规划 / 复杂任务)', opts.opusModel ?? provider.opusModel ?? '', provider.modelCatalog);
144
- return {
145
- ...(main ? { main } : {}),
146
- ...(haiku ? { haiku } : {}),
147
- ...(sonnet ? { sonnet } : {}),
148
- ...(opus ? { opus } : {}),
149
- };
150
- }
151
- /** 把 provider 的默认槽位组装成一行简介,给 select 选项当 hint 用 */
152
- function formatProviderDefaults(provider) {
153
- const parts = [];
154
- if (provider.defaultModel)
155
- parts.push(`main=${provider.defaultModel}`);
156
- if (provider.fastModel)
157
- parts.push(`haiku=${provider.fastModel}`);
158
- if (provider.sonnetModel && provider.sonnetModel !== provider.defaultModel) {
159
- parts.push(`sonnet=${provider.sonnetModel}`);
160
- }
161
- if (provider.opusModel && provider.opusModel !== provider.defaultModel) {
162
- parts.push(`opus=${provider.opusModel}`);
163
- }
164
- return parts.length > 0 ? `(${parts.join(', ')})` : '';
165
- }
166
- /**
167
- * 询问一个槽位。
168
- * - catalog 非空 → select:候选模型 + "其他(手动输入)" + "留空"
169
- * - catalog 为空 → 退化为 input
170
- *
171
- * 返回空字符串表示「不写这个槽位」。
172
- */
173
- async function askModelSlot(message, defaultValue, catalog) {
174
- // 没目录或目录为空 → 走 input
175
- if (!catalog || catalog.length === 0) {
176
- const v = await input({
177
- message,
178
- ...(defaultValue ? { default: defaultValue } : {}),
179
- });
180
- return v.trim();
109
+ const catalog = provider.claudeCode?.defaultModels ?? [];
110
+ if (catalog.length === 0) {
111
+ const v = await input({ message: 'Main model(留空跳过)' });
112
+ return v.trim() || undefined;
181
113
  }
182
- // 目录里没有 default?拼到第一项
183
- const fullCatalog = defaultValue && !catalog.includes(defaultValue)
184
- ? [defaultValue, ...catalog]
185
- : [...catalog];
186
114
  const CUSTOM = '__custom__';
187
115
  const SKIP = '__skip__';
188
116
  const choice = await select({
189
- message,
190
- default: defaultValue || fullCatalog[0],
191
- pageSize: Math.min(10, fullCatalog.length + 2),
117
+ message: 'Main model',
118
+ default: catalog[0],
119
+ pageSize: Math.min(10, catalog.length + 2),
192
120
  choices: [
193
- ...fullCatalog.map(m => ({ name: m, value: m })),
121
+ ...catalog.map(m => ({ name: m, value: m })),
194
122
  { name: ansis.dim('其他… (手动输入)'), value: CUSTOM },
195
- { name: ansis.gray('留空(不写这个槽位)'), value: SKIP },
123
+ { name: ansis.gray('留空(不写 model)'), value: SKIP },
196
124
  ],
197
125
  });
198
126
  if (choice === SKIP)
199
- return '';
127
+ return undefined;
200
128
  if (choice === CUSTOM) {
201
- const v = await input({
202
- message: '输入模型 ID',
203
- ...(defaultValue ? { default: defaultValue } : {}),
204
- });
205
- return v.trim();
129
+ const v = await input({ message: '输入模型 ID' });
130
+ return v.trim() || undefined;
206
131
  }
207
132
  return choice;
208
133
  }
209
134
  async function maybeSaveProfile(args) {
210
- // 默认始终保存为 profile —— 这是核心心智模型:「配 API = 创建 profile」。
211
- // 旧行为多问一步「是否保存」,让 80% 的用户多按一次 Enter,删掉。
212
- // 仍允许 --yes 模式跳过命名询问、直接用建议名。
213
135
  let name = args.explicitName;
214
136
  if (!name) {
215
137
  const suggested = await suggestName(args.provider.id);
@@ -240,7 +162,7 @@ async function maybeSaveProfile(args) {
240
162
  name,
241
163
  provider: args.provider.id,
242
164
  baseUrl: args.baseUrl,
243
- authType: args.provider.authType,
165
+ authType: args.authType,
244
166
  apiKey: args.apiKey,
245
167
  ...(args.slots.main ? { model: args.slots.main } : {}),
246
168
  ...(args.slots.haiku ? { fastModel: args.slots.haiku } : {}),
@@ -268,67 +190,40 @@ function resolveProvider(tool, id) {
268
190
  return found;
269
191
  }
270
192
  /**
271
- * Codex init —— codex 原生 `[profiles.<name>]` 机制。
272
- *
273
- * 心智模型:
274
- * - 顶层 `profile = "<name>"` 只是启动默认,**不是单 model 锁定**。
275
- * - 用户随时 `codex --profile <other>` 现场切,多套 model 并存——这才是 codex
276
- * 的"多 model"正确姿势(developers.openai.com/codex/config-reference)。
277
- *
278
- * 写入策略:
279
- * - 新建 provider:写 `[model_providers.<id>]`(base_url / wire_api / env_key / requires_openai_auth)
280
- * - 复用已有 provider:不动 provider 段,只在新 profile 里引用它
281
- * - profile 段固定写 model + model_provider(+ 可选 reasoning effort)
282
- * - 顶层 profile 指向本次的 profile 名
193
+ * Codex init —— 优先用 provider preset;custom 才询问 baseUrl。
283
194
  *
284
- * API key 仍然不入 toml;这是 codex 的硬限制。
195
+ * 关键差异:API key **写到 `~/.codex/auth.json`**(codex 启动时自动读),
196
+ * 不再强制用户 `export <ENV>=...`。env_key 命名规则:`<PROVIDER_ID>_API_KEY`
197
+ * (大写 + `-`→`_`)。
285
198
  */
286
199
  async function initCodex(opts) {
287
200
  const meta = TOOLS.codex;
288
201
  const doc = await readTomlFile(meta.settingsFile);
289
- const existingProviders = listCodexProviders(doc);
290
- // 第一步:决定用哪个 provider —— 已有的就让用户选;没有就直接走「新建」流程。
291
- let providerId;
292
- let providerFields = {};
293
- let reusedProvider = false;
294
- if (existingProviders.length > 0 && !opts.provider) {
295
- const NEW = '__new__';
296
- const picked = await select({
297
- message: 'Codex provider',
298
- choices: [
299
- ...existingProviders.map(p => ({
300
- name: `复用 ${p} ${ansis.dim(`[model_providers.${p}]`)}`,
301
- value: p,
302
- })),
303
- { name: ansis.dim('新建一个 provider…'), value: NEW },
304
- ],
305
- });
306
- if (picked === NEW) {
307
- providerId = await askProviderId(existingProviders);
308
- providerFields = await askProviderFields(providerId);
309
- }
310
- else {
311
- providerId = picked;
312
- reusedProvider = true;
313
- }
202
+ const provider = opts.provider
203
+ ? resolveProvider('codex', opts.provider)
204
+ : await pickProvider('codex');
205
+ let baseUrl;
206
+ if (provider.codex) {
207
+ baseUrl = opts.baseUrl ?? provider.codex.baseUrl;
314
208
  }
315
209
  else {
316
- providerId = opts.provider ?? await askProviderId(existingProviders);
317
- providerFields = await askProviderFields(providerId);
210
+ // custom:必须用户给
211
+ baseUrl = opts.baseUrl ?? await askInput('Base URL (例如 https://api.openai.com/v1)');
318
212
  }
319
- // 第二步:profile 名(默认建议 providerId;如果重了就 providerId-2)
320
- const profileName = await askProfileName(providerId, doc);
321
- // 第三步:model 必填;reasoning effort 可选
322
- const model = opts.model ?? await askInput('Main model (例如 gpt-5.5 / gpt-4o)');
323
- const reasoningEffort = await askReasoningEffort();
213
+ const envKey = computeEnvKey(provider.id);
214
+ // profile = provider id(重复则 -2/-3)
215
+ const profileName = await askProfileName(provider.id, doc);
216
+ const model = opts.model
217
+ ?? provider.codex?.defaultModel
218
+ ?? await askInput('Main model (例如 gpt-5.2 / gpt-4o)');
219
+ const reasoningEffort = opts.yes ? undefined : await askReasoningEffort();
220
+ const apiKey = opts.apiKey ?? await askInput('API Key', true);
324
221
  // 预览
325
222
  console.log(ansis.dim(`\n→ 配置目标: ${meta.settingsFile}`));
326
- console.log(ansis.dim(`→ Profile: ${profileName} ${ansis.gray('([profiles.' + profileName + '])')}`));
327
- console.log(ansis.dim(`→ Provider: ${providerId}${reusedProvider ? ansis.gray(' (复用现有)') : ''}`));
328
- if (providerFields.baseUrl)
329
- console.log(ansis.dim(`→ Base URL: ${providerFields.baseUrl}`));
330
- if (providerFields.envKey)
331
- console.log(ansis.dim(`→ env_key: ${providerFields.envKey}`));
223
+ console.log(ansis.dim(`→ Profile: ${profileName} ${ansis.gray(`([profiles.${profileName}])`)}`));
224
+ console.log(ansis.dim(`→ Provider: ${provider.id} (${provider.name})`));
225
+ console.log(ansis.dim(`→ Base URL: ${baseUrl}`));
226
+ console.log(ansis.dim(`→ env_key: ${envKey} ${ansis.gray('(写到 ~/.codex/auth.json)')}`));
332
227
  console.log(ansis.dim(`→ Model: ${model}`));
333
228
  if (reasoningEffort)
334
229
  console.log(ansis.dim(`→ Reasoning effort: ${reasoningEffort}`));
@@ -342,61 +237,39 @@ async function initCodex(opts) {
342
237
  }
343
238
  applyCodexProfile(doc, {
344
239
  profileName,
345
- providerId,
240
+ providerId: provider.id,
346
241
  model,
347
242
  ...(reasoningEffort ? { reasoningEffort } : {}),
348
- ...(reusedProvider
349
- ? {}
350
- : {
351
- ...(providerFields.baseUrl !== undefined ? { baseUrl: providerFields.baseUrl } : {}),
352
- wireApi: 'responses', // codex 当前只支持 responses
353
- ...(providerFields.envKey !== undefined ? { envKey: providerFields.envKey } : {}),
354
- ...(providerFields.requiresOpenaiAuth !== undefined
355
- ? { requiresOpenaiAuth: providerFields.requiresOpenaiAuth }
356
- : {}),
357
- }),
243
+ baseUrl,
244
+ wireApi: 'responses',
245
+ envKey,
246
+ requiresOpenaiAuth: false,
358
247
  });
359
248
  const backup = await writeTomlFile(meta.settingsFile, doc);
249
+ // 写 auth.json(含 OPENAI_API_KEY 兜底,匹配 codex CLI 默认查找的 key)
250
+ await writeAuthFile({ [envKey]: apiKey, OPENAI_API_KEY: apiKey });
360
251
  console.log(ansis.green(`\n✔ Codex profile "${profileName}" 已写入`));
361
252
  if (backup)
362
253
  console.log(ansis.dim(` 备份: ${backup}`));
363
- console.log(ansis.dim(` 目标: ${meta.settingsFile}`));
254
+ console.log(ansis.dim(` config: ${meta.settingsFile}`));
255
+ console.log(ansis.dim(` auth: ~/.codex/auth.json`));
364
256
  console.log();
365
- if (!reusedProvider && providerFields.envKey) {
366
- console.log(ansis.yellow(`! API key 不能写入 toml,请在 shell 里导出:`));
367
- console.log(ansis.cyan(` export ${providerFields.envKey}=<your-api-key>`));
368
- console.log(ansis.dim(` (写到 ~/.zshrc 或 ~/.bashrc 里持久化)`));
369
- console.log();
370
- }
371
- console.log(ansis.dim('提示:随时可以 `codex --profile <name>` 切换其它 profile,'));
372
- console.log(ansis.dim('或再次运行 `ccjk init` 新建一个 profile。\n'));
373
- }
374
- async function askProviderId(taken) {
375
- const v = await input({
376
- message: 'Provider 短名(写进 [model_providers.<id>],建议小写无空格,例如 myapi)',
377
- default: 'custom',
378
- validate: (s) => {
379
- const t = s.trim();
380
- if (!/^[a-z0-9_-]+$/.test(t))
381
- return '只允许小写字母、数字、_、-';
382
- if (taken.includes(t))
383
- return `provider "${t}" 已存在;用「复用」选项,或换个名字`;
384
- return true;
385
- },
257
+ console.log(ansis.dim('提示:随时可以 `codex --profile <name>` 切换其它 profile。\n'));
258
+ // 顺便把这次 codex 配置也存为 ccjk profile,方便 `ccjk use` 同步
259
+ await maybeSaveProfile({
260
+ explicitName: opts.profile,
261
+ yes: opts.yes ?? false,
262
+ provider,
263
+ baseUrl,
264
+ authType: 'auth_token',
265
+ apiKey,
266
+ slots: { main: model },
386
267
  });
387
- return v.trim();
388
268
  }
389
- async function askProviderFields(providerId) {
390
- const baseUrl = await askInput('Base URL (例如 https://api.openai.com/v1)');
391
- const envKey = await askEnvKey(providerId);
392
- const requiresOpenaiAuth = await confirm({
393
- message: 'requires_openai_auth?(走 OpenAI 官方鉴权时 true,自建网关多半 false)',
394
- default: false,
395
- });
396
- return { baseUrl, envKey, requiresOpenaiAuth };
269
+ function computeEnvKey(providerId) {
270
+ return `${providerId.toUpperCase().replace(/-/g, '_')}_API_KEY`;
397
271
  }
398
272
  async function askProfileName(providerId, doc) {
399
- // 默认建议 = providerId;若已被占用,加 -2/-3
400
273
  const existing = new Set();
401
274
  for (const k of doc.values.keys()) {
402
275
  const m = /^profiles\.([^.]+)\./.exec(k);
@@ -433,15 +306,6 @@ async function askReasoningEffort() {
433
306
  return undefined;
434
307
  return v;
435
308
  }
436
- async function askEnvKey(providerId) {
437
- const suggested = `${providerId.toUpperCase().replace(/-/g, '_')}_API_KEY`;
438
- const v = await input({
439
- message: 'env_key 名(codex 启动时从此环境变量读取 API key)',
440
- default: suggested,
441
- validate: (s) => /^[A-Z_][A-Z0-9_]*$/.test(s.trim()) || '只允许大写字母、数字、_,且不能数字开头',
442
- });
443
- return v.trim();
444
- }
445
309
  async function pickTool() {
446
310
  return await select({
447
311
  message: '选择目标代码工具',
@@ -449,7 +313,7 @@ async function pickTool() {
449
313
  choices: [
450
314
  { name: `${TOOLS.clavue.displayName} ${ansis.dim('(主推)')}`, value: 'clavue' },
451
315
  { name: TOOLS['claude-code'].displayName, value: 'claude-code' },
452
- { name: `${TOOLS.codex.displayName}`, value: 'codex' },
316
+ { name: TOOLS.codex.displayName, value: 'codex' },
453
317
  ],
454
318
  });
455
319
  }
@@ -457,7 +321,10 @@ async function pickProvider(tool) {
457
321
  const list = listProvidersFor(tool);
458
322
  const id = await select({
459
323
  message: '选择 API provider',
460
- choices: list.map(p => ({ name: `${p.name} ${ansis.dim(p.description)}`, value: p.id })),
324
+ choices: list.map(p => ({
325
+ name: `${p.name} ${ansis.dim(p.description ?? '')}`,
326
+ value: p.id,
327
+ })),
461
328
  });
462
329
  return list.find(p => p.id === id);
463
330
  }
@@ -479,17 +346,14 @@ async function askInput(message, mask = false) {
479
346
  /**
480
347
  * 写 settings.env:
481
348
  * - 总是写 ANTHROPIC_BASE_URL + 凭证
482
- * - main slot → ANTHROPIC_MODEL
483
- * - haiku slot → ANTHROPIC_DEFAULT_HAIKU_MODEL
484
- * - sonnet slot → ANTHROPIC_DEFAULT_SONNET_MODEL
485
- * - opus slot → ANTHROPIC_DEFAULT_OPUS_MODEL
349
+ * - main slot → ANTHROPIC_MODEL(其它 3 个槽位见上方 ModelSlots 说明)
486
350
  *
487
351
  * 没指定的槽位会被 delete,避免上一次配置的旧值残留。
488
352
  */
489
- export function applyApiToSettings(settings, baseUrl, apiKey, provider, slots = {}) {
353
+ export function applyApiToSettings(settings, baseUrl, apiKey, authType, slots = {}) {
490
354
  settings.env = settings.env ?? {};
491
355
  settings.env.ANTHROPIC_BASE_URL = baseUrl;
492
- if (provider.authType === 'auth_token') {
356
+ if (authType === 'auth_token') {
493
357
  settings.env.ANTHROPIC_AUTH_TOKEN = apiKey;
494
358
  delete settings.env.ANTHROPIC_API_KEY;
495
359
  }
@@ -497,15 +361,10 @@ export function applyApiToSettings(settings, baseUrl, apiKey, provider, slots =
497
361
  settings.env.ANTHROPIC_API_KEY = apiKey;
498
362
  delete settings.env.ANTHROPIC_AUTH_TOKEN;
499
363
  }
500
- // 槽位写入:fallback 到 provider 默认值(保持兼容 v15 之前的行为)
501
- const main = slots.main ?? provider.defaultModel;
502
- const haiku = slots.haiku ?? provider.fastModel;
503
- const sonnet = slots.sonnet ?? provider.sonnetModel;
504
- const opus = slots.opus ?? provider.opusModel;
505
- applyOrDelete(settings.env, 'ANTHROPIC_MODEL', main);
506
- applyOrDelete(settings.env, 'ANTHROPIC_DEFAULT_HAIKU_MODEL', haiku);
507
- applyOrDelete(settings.env, 'ANTHROPIC_DEFAULT_SONNET_MODEL', sonnet);
508
- applyOrDelete(settings.env, 'ANTHROPIC_DEFAULT_OPUS_MODEL', opus);
364
+ applyOrDelete(settings.env, 'ANTHROPIC_MODEL', slots.main);
365
+ applyOrDelete(settings.env, 'ANTHROPIC_DEFAULT_HAIKU_MODEL', slots.haiku);
366
+ applyOrDelete(settings.env, 'ANTHROPIC_DEFAULT_SONNET_MODEL', slots.sonnet);
367
+ applyOrDelete(settings.env, 'ANTHROPIC_DEFAULT_OPUS_MODEL', slots.opus);
509
368
  if ('model' in settings)
510
369
  delete settings.model;
511
370
  }
@@ -515,4 +374,28 @@ function applyOrDelete(env, key, value) {
515
374
  else
516
375
  delete env[key];
517
376
  }
377
+ /**
378
+ * 写完 settings 后,立刻警告 shell rc 残留 env shadow。
379
+ *
380
+ * 只比 baseUrl 和 main model(最常被 shadow 的两条)。
381
+ */
382
+ export function warnShellShadow(baseUrl, slots) {
383
+ const shellBase = process.env.ANTHROPIC_BASE_URL;
384
+ const shellModel = process.env.ANTHROPIC_MODEL;
385
+ const conflicts = [];
386
+ if (shellBase && shellBase !== baseUrl) {
387
+ conflicts.push(`ANTHROPIC_BASE_URL(shell="${shellBase}",文件="${baseUrl}")`);
388
+ }
389
+ if (shellModel && slots.main && shellModel !== slots.main) {
390
+ conflicts.push(`ANTHROPIC_MODEL(shell="${shellModel}",文件="${slots.main}")`);
391
+ }
392
+ if (conflicts.length === 0)
393
+ return;
394
+ console.log();
395
+ console.log(ansis.yellow('⚠ 警告:shell 环境变量会 shadow 这次配置'));
396
+ for (const c of conflicts)
397
+ console.log(ansis.yellow(` · ${c}`));
398
+ console.log(ansis.dim(' Claude Code 启动时优先读 shell 环境变量,文件配置会被覆盖。'));
399
+ console.log(ansis.dim(' 打开 ~/.zshrc / ~/.bashrc 删掉对应 export,重开终端即可。'));
400
+ }
518
401
  //# sourceMappingURL=init.js.map