ccjk 15.31.1 → 16.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. package/README.md +1 -1
  2. package/bin/ccjk.mjs +2 -0
  3. package/dist/chunks/api-providers.mjs +145 -113
  4. package/dist/chunks/claude-code-config-manager.mjs +731 -0
  5. package/dist/chunks/claude-code-incremental-manager.mjs +126 -286
  6. package/dist/chunks/codex-config-switch.mjs +52 -110
  7. package/dist/chunks/codex-provider-manager.mjs +41 -82
  8. package/dist/chunks/codex-uninstaller.mjs +24 -23
  9. package/dist/chunks/commands.mjs +38 -28
  10. package/dist/chunks/features.mjs +287 -370
  11. package/dist/chunks/simple-config.mjs +8037 -62
  12. package/dist/cli.mjs +2354 -2563
  13. package/dist/i18n/locales/en/api.json +1 -11
  14. package/dist/i18n/locales/en/cli.json +2 -95
  15. package/dist/i18n/locales/en/codex.json +3 -64
  16. package/dist/i18n/locales/en/common.json +1 -49
  17. package/dist/i18n/locales/en/configuration.json +23 -174
  18. package/dist/i18n/locales/en/errors.json +11 -11
  19. package/dist/i18n/locales/en/installation.json +1 -4
  20. package/dist/i18n/locales/en/language.json +1 -1
  21. package/dist/i18n/locales/en/mcp.json +6 -162
  22. package/dist/i18n/locales/en/menu.json +49 -297
  23. package/dist/i18n/locales/en/multi-config.json +1 -1
  24. package/dist/i18n/locales/en/tools.json +1 -28
  25. package/dist/i18n/locales/en/updater.json +2 -6
  26. package/dist/i18n/locales/en/workflow.json +12 -44
  27. package/dist/i18n/locales/zh-CN/api.json +1 -11
  28. package/dist/i18n/locales/zh-CN/cli.json +1 -94
  29. package/dist/i18n/locales/zh-CN/codex.json +3 -64
  30. package/dist/i18n/locales/zh-CN/common.json +1 -49
  31. package/dist/i18n/locales/zh-CN/configuration.json +23 -172
  32. package/dist/i18n/locales/zh-CN/errors.json +11 -11
  33. package/dist/i18n/locales/zh-CN/installation.json +1 -4
  34. package/dist/i18n/locales/zh-CN/language.json +1 -1
  35. package/dist/i18n/locales/zh-CN/mcp.json +6 -162
  36. package/dist/i18n/locales/zh-CN/menu.json +49 -297
  37. package/dist/i18n/locales/zh-CN/multi-config.json +1 -1
  38. package/dist/i18n/locales/zh-CN/tools.json +1 -28
  39. package/dist/i18n/locales/zh-CN/updater.json +1 -5
  40. package/dist/i18n/locales/zh-CN/workflow.json +12 -44
  41. package/dist/index.d.mts +241 -5574
  42. package/dist/index.d.ts +241 -5574
  43. package/dist/index.mjs +17 -3730
  44. package/dist/shared/ccjk.DGjQxTq_.mjs +34 -0
  45. package/package.json +34 -14
  46. package/templates/CLAUDE.md +221 -0
  47. package/templates/claude-code/CLAUDE.md +250 -0
  48. package/templates/claude-code/common/settings.json +48 -0
  49. package/templates/claude-code/en/workflow/bmad/commands/bmad-init.md +275 -0
  50. package/templates/claude-code/en/workflow/common/agents/get-current-datetime.md +29 -0
  51. package/templates/claude-code/en/workflow/common/agents/init-architect.md +114 -0
  52. package/templates/claude-code/en/workflow/common/commands/init-project.md +53 -0
  53. package/templates/claude-code/en/workflow/plan/agents/planner.md +116 -0
  54. package/templates/claude-code/en/workflow/plan/agents/ui-ux-designer.md +91 -0
  55. package/templates/claude-code/en/workflow/plan/commands/feat.md +105 -0
  56. package/templates/claude-code/zh-CN/workflow/bmad/commands/bmad-init.md +275 -0
  57. package/{dist/templates/common/workflow/essential/en → templates/claude-code/zh-CN/workflow/common}/agents/init-architect.md +0 -1
  58. package/templates/claude-code/zh-CN/workflow/plan/agents/planner.md +116 -0
  59. package/templates/claude-code/zh-CN/workflow/plan/commands/feat.md +105 -0
  60. package/templates/codex/common/config.toml +0 -0
  61. package/templates/common/output-styles/en/engineer-professional.md +88 -0
  62. package/templates/common/output-styles/en/laowang-engineer.md +127 -0
  63. package/templates/common/output-styles/en/leibus-engineer.md +251 -0
  64. package/templates/common/output-styles/en/nekomata-engineer.md +120 -0
  65. package/templates/common/output-styles/en/ojousama-engineer.md +121 -0
  66. package/templates/common/output-styles/en/rem-engineer.md +173 -0
  67. package/templates/common/output-styles/zh-CN/engineer-professional.md +89 -0
  68. package/templates/common/output-styles/zh-CN/laowang-engineer.md +127 -0
  69. package/templates/common/output-styles/zh-CN/leibus-engineer.md +251 -0
  70. package/templates/common/output-styles/zh-CN/nekomata-engineer.md +120 -0
  71. package/templates/common/output-styles/zh-CN/ojousama-engineer.md +121 -0
  72. package/templates/common/output-styles/zh-CN/rem-engineer.md +179 -0
  73. package/templates/common/workflow/git/en/git-cleanBranches.md +102 -0
  74. package/templates/common/workflow/git/en/git-commit.md +205 -0
  75. package/templates/common/workflow/git/en/git-rollback.md +90 -0
  76. package/templates/common/workflow/git/en/git-worktree.md +276 -0
  77. package/templates/common/workflow/sixStep/en/workflow.md +251 -0
  78. package/{dist/templates → templates}/common/workflow/sixStep/zh-CN/workflow.md +10 -154
  79. package/dist/chunks/agent-teams.mjs +0 -145
  80. package/dist/chunks/agent.mjs +0 -1439
  81. package/dist/chunks/agents.mjs +0 -3783
  82. package/dist/chunks/api-cli.mjs +0 -135
  83. package/dist/chunks/api-config-selector.mjs +0 -159
  84. package/dist/chunks/api.mjs +0 -115
  85. package/dist/chunks/auto-bootstrap.mjs +0 -358
  86. package/dist/chunks/auto-fixer.mjs +0 -95
  87. package/dist/chunks/auto-updater.mjs +0 -507
  88. package/dist/chunks/banner.mjs +0 -173
  89. package/dist/chunks/bash.mjs +0 -187
  90. package/dist/chunks/boost.mjs +0 -474
  91. package/dist/chunks/brain-config.mjs +0 -75
  92. package/dist/chunks/brain-status.mjs +0 -89
  93. package/dist/chunks/ccjk-agents.mjs +0 -416
  94. package/dist/chunks/ccjk-all.mjs +0 -1046
  95. package/dist/chunks/ccjk-config.mjs +0 -445
  96. package/dist/chunks/ccjk-hooks.mjs +0 -1074
  97. package/dist/chunks/ccjk-mcp.mjs +0 -763
  98. package/dist/chunks/ccjk-setup.mjs +0 -765
  99. package/dist/chunks/ccjk-skills.mjs +0 -518
  100. package/dist/chunks/ccr.mjs +0 -109
  101. package/dist/chunks/ccu.mjs +0 -40
  102. package/dist/chunks/check-updates.mjs +0 -117
  103. package/dist/chunks/claude-config.mjs +0 -606
  104. package/dist/chunks/claude-config2.mjs +0 -62
  105. package/dist/chunks/claude-wrapper.mjs +0 -85
  106. package/dist/chunks/clavue-config.mjs +0 -1454
  107. package/dist/chunks/cleanup-migration.mjs +0 -20
  108. package/dist/chunks/cli-hook.mjs +0 -4096
  109. package/dist/chunks/cloud-sync.mjs +0 -29
  110. package/dist/chunks/code-type-resolver.mjs +0 -880
  111. package/dist/chunks/codex.mjs +0 -2141
  112. package/dist/chunks/commands2.mjs +0 -421
  113. package/dist/chunks/commit.mjs +0 -140
  114. package/dist/chunks/completion.mjs +0 -517
  115. package/dist/chunks/config-consolidator.mjs +0 -172
  116. package/dist/chunks/config-switch.mjs +0 -334
  117. package/dist/chunks/config.mjs +0 -558
  118. package/dist/chunks/config2.mjs +0 -484
  119. package/dist/chunks/config3.mjs +0 -486
  120. package/dist/chunks/constants.mjs +0 -323
  121. package/dist/chunks/context-opt.mjs +0 -444
  122. package/dist/chunks/context.mjs +0 -974
  123. package/dist/chunks/dashboard.mjs +0 -481
  124. package/dist/chunks/doctor.mjs +0 -1301
  125. package/dist/chunks/eval.mjs +0 -502
  126. package/dist/chunks/evolution.mjs +0 -322
  127. package/dist/chunks/fish.mjs +0 -181
  128. package/dist/chunks/fs-operations.mjs +0 -180
  129. package/dist/chunks/health-alerts.mjs +0 -830
  130. package/dist/chunks/help.mjs +0 -341
  131. package/dist/chunks/hook-installer.mjs +0 -48
  132. package/dist/chunks/impact.mjs +0 -651
  133. package/dist/chunks/index.mjs +0 -23
  134. package/dist/chunks/index10.mjs +0 -19
  135. package/dist/chunks/index11.mjs +0 -1171
  136. package/dist/chunks/index12.mjs +0 -218
  137. package/dist/chunks/index13.mjs +0 -679
  138. package/dist/chunks/index14.mjs +0 -1009
  139. package/dist/chunks/index15.mjs +0 -194
  140. package/dist/chunks/index2.mjs +0 -7637
  141. package/dist/chunks/index3.mjs +0 -171
  142. package/dist/chunks/index4.mjs +0 -26
  143. package/dist/chunks/index5.mjs +0 -19
  144. package/dist/chunks/index6.mjs +0 -19092
  145. package/dist/chunks/index7.mjs +0 -616
  146. package/dist/chunks/index8.mjs +0 -1602
  147. package/dist/chunks/index9.mjs +0 -5384
  148. package/dist/chunks/init.mjs +0 -1911
  149. package/dist/chunks/installer.mjs +0 -757
  150. package/dist/chunks/installer2.mjs +0 -103
  151. package/dist/chunks/interview.mjs +0 -2927
  152. package/dist/chunks/json-config.mjs +0 -60
  153. package/dist/chunks/linux.mjs +0 -3863
  154. package/dist/chunks/macos.mjs +0 -69
  155. package/dist/chunks/main.mjs +0 -635
  156. package/dist/chunks/manager.mjs +0 -1048
  157. package/dist/chunks/marketplace.mjs +0 -265
  158. package/dist/chunks/mcp-cli.mjs +0 -205
  159. package/dist/chunks/mcp-performance.mjs +0 -187
  160. package/dist/chunks/mcp.mjs +0 -667
  161. package/dist/chunks/memory-check.mjs +0 -2973
  162. package/dist/chunks/memory-paths.mjs +0 -259
  163. package/dist/chunks/memory-sync.mjs +0 -209
  164. package/dist/chunks/memory.mjs +0 -354
  165. package/dist/chunks/metrics-display.mjs +0 -153
  166. package/dist/chunks/monitor.mjs +0 -1856
  167. package/dist/chunks/notification.mjs +0 -1864
  168. package/dist/chunks/onboarding.mjs +0 -386
  169. package/dist/chunks/package.mjs +0 -3
  170. package/dist/chunks/paradigm.mjs +0 -74
  171. package/dist/chunks/permission-manager.mjs +0 -250
  172. package/dist/chunks/permissions.mjs +0 -265
  173. package/dist/chunks/persistence-manager.mjs +0 -801
  174. package/dist/chunks/persistence.mjs +0 -707
  175. package/dist/chunks/platform.mjs +0 -395
  176. package/dist/chunks/plugin.mjs +0 -1936
  177. package/dist/chunks/powershell.mjs +0 -213
  178. package/dist/chunks/prompts.mjs +0 -244
  179. package/dist/chunks/providers.mjs +0 -263
  180. package/dist/chunks/quick-actions.mjs +0 -335
  181. package/dist/chunks/quick-provider.mjs +0 -755
  182. package/dist/chunks/quick-setup.mjs +0 -421
  183. package/dist/chunks/remote.mjs +0 -497
  184. package/dist/chunks/research.mjs +0 -1904
  185. package/dist/chunks/rollback.mjs +0 -38
  186. package/dist/chunks/session-manager.mjs +0 -1371
  187. package/dist/chunks/session.mjs +0 -878
  188. package/dist/chunks/sessions.mjs +0 -106
  189. package/dist/chunks/silent-updater.mjs +0 -396
  190. package/dist/chunks/skill.mjs +0 -117
  191. package/dist/chunks/skill2.mjs +0 -9052
  192. package/dist/chunks/skills-sync.mjs +0 -1343
  193. package/dist/chunks/skills.mjs +0 -577
  194. package/dist/chunks/slash-commands.mjs +0 -208
  195. package/dist/chunks/smart-guide.mjs +0 -247
  196. package/dist/chunks/snapshot.mjs +0 -58
  197. package/dist/chunks/startup.mjs +0 -487
  198. package/dist/chunks/stats.mjs +0 -191
  199. package/dist/chunks/status.mjs +0 -471
  200. package/dist/chunks/team.mjs +0 -63
  201. package/dist/chunks/thinking.mjs +0 -626
  202. package/dist/chunks/trace.mjs +0 -57
  203. package/dist/chunks/uninstall.mjs +0 -852
  204. package/dist/chunks/update.mjs +0 -174
  205. package/dist/chunks/upgrade-manager.mjs +0 -204
  206. package/dist/chunks/upgrade.mjs +0 -133
  207. package/dist/chunks/version-checker.mjs +0 -891
  208. package/dist/chunks/vim.mjs +0 -903
  209. package/dist/chunks/windows.mjs +0 -14
  210. package/dist/chunks/workflows.mjs +0 -633
  211. package/dist/chunks/wsl.mjs +0 -129
  212. package/dist/chunks/zero-config.mjs +0 -871
  213. package/dist/chunks/zsh.mjs +0 -182
  214. package/dist/cli.js +0 -358
  215. package/dist/cli.js.map +0 -1
  216. package/dist/commands/bench.js +0 -178
  217. package/dist/commands/bench.js.map +0 -1
  218. package/dist/commands/completion.js +0 -183
  219. package/dist/commands/completion.js.map +0 -1
  220. package/dist/commands/detect.js +0 -16
  221. package/dist/commands/detect.js.map +0 -1
  222. package/dist/commands/doctor.js +0 -334
  223. package/dist/commands/doctor.js.map +0 -1
  224. package/dist/commands/edit.js +0 -263
  225. package/dist/commands/edit.js.map +0 -1
  226. package/dist/commands/env-perm.js +0 -197
  227. package/dist/commands/env-perm.js.map +0 -1
  228. package/dist/commands/git-install.js +0 -46
  229. package/dist/commands/git-install.js.map +0 -1
  230. package/dist/commands/grok.js +0 -77
  231. package/dist/commands/grok.js.map +0 -1
  232. package/dist/commands/init.js +0 -477
  233. package/dist/commands/init.js.map +0 -1
  234. package/dist/commands/mcp.js +0 -208
  235. package/dist/commands/mcp.js.map +0 -1
  236. package/dist/commands/menu.js +0 -274
  237. package/dist/commands/menu.js.map +0 -1
  238. package/dist/commands/migrate.js +0 -154
  239. package/dist/commands/migrate.js.map +0 -1
  240. package/dist/commands/mode.js +0 -140
  241. package/dist/commands/mode.js.map +0 -1
  242. package/dist/commands/onboard.js +0 -28
  243. package/dist/commands/onboard.js.map +0 -1
  244. package/dist/commands/perms.js +0 -210
  245. package/dist/commands/perms.js.map +0 -1
  246. package/dist/commands/probe.js +0 -135
  247. package/dist/commands/probe.js.map +0 -1
  248. package/dist/commands/profile-diff.js +0 -78
  249. package/dist/commands/profile-diff.js.map +0 -1
  250. package/dist/commands/profile-pack.js +0 -150
  251. package/dist/commands/profile-pack.js.map +0 -1
  252. package/dist/commands/profile.js +0 -405
  253. package/dist/commands/profile.js.map +0 -1
  254. package/dist/commands/quick.js +0 -251
  255. package/dist/commands/quick.js.map +0 -1
  256. package/dist/commands/rollback.js +0 -103
  257. package/dist/commands/rollback.js.map +0 -1
  258. package/dist/commands/status.js +0 -320
  259. package/dist/commands/status.js.map +0 -1
  260. package/dist/commands/statusline.js +0 -118
  261. package/dist/commands/statusline.js.map +0 -1
  262. package/dist/commands/uninstall.js +0 -160
  263. package/dist/commands/uninstall.js.map +0 -1
  264. package/dist/commands/version.js +0 -316
  265. package/dist/commands/version.js.map +0 -1
  266. package/dist/commands/workflow.js +0 -142
  267. package/dist/commands/workflow.js.map +0 -1
  268. package/dist/core/banner.js +0 -125
  269. package/dist/core/banner.js.map +0 -1
  270. package/dist/core/codex-config.js +0 -208
  271. package/dist/core/codex-config.js.map +0 -1
  272. package/dist/core/detect.js +0 -24
  273. package/dist/core/detect.js.map +0 -1
  274. package/dist/core/env-recommend.js +0 -34
  275. package/dist/core/env-recommend.js.map +0 -1
  276. package/dist/core/grok-config.js +0 -110
  277. package/dist/core/grok-config.js.map +0 -1
  278. package/dist/core/lint.js +0 -245
  279. package/dist/core/lint.js.map +0 -1
  280. package/dist/core/mcp.js +0 -41
  281. package/dist/core/mcp.js.map +0 -1
  282. package/dist/core/modes.js +0 -128
  283. package/dist/core/modes.js.map +0 -1
  284. package/dist/core/paths.js +0 -9
  285. package/dist/core/paths.js.map +0 -1
  286. package/dist/core/perms.js +0 -353
  287. package/dist/core/perms.js.map +0 -1
  288. package/dist/core/profile-pack.js +0 -101
  289. package/dist/core/profile-pack.js.map +0 -1
  290. package/dist/core/profiles.js +0 -238
  291. package/dist/core/profiles.js.map +0 -1
  292. package/dist/core/providers.js +0 -133
  293. package/dist/core/providers.js.map +0 -1
  294. package/dist/core/quick-parse.js +0 -187
  295. package/dist/core/quick-parse.js.map +0 -1
  296. package/dist/core/runtime-env.js +0 -92
  297. package/dist/core/runtime-env.js.map +0 -1
  298. package/dist/core/settings.js +0 -31
  299. package/dist/core/settings.js.map +0 -1
  300. package/dist/core/slash-templates.js +0 -56
  301. package/dist/core/slash-templates.js.map +0 -1
  302. package/dist/core/statusline.js +0 -238
  303. package/dist/core/statusline.js.map +0 -1
  304. package/dist/core/term.js +0 -98
  305. package/dist/core/term.js.map +0 -1
  306. package/dist/core/toml.js +0 -241
  307. package/dist/core/toml.js.map +0 -1
  308. package/dist/core/tools.js +0 -63
  309. package/dist/core/tools.js.map +0 -1
  310. package/dist/core/versions.js +0 -126
  311. package/dist/core/versions.js.map +0 -1
  312. package/dist/core/workflows.js +0 -80
  313. package/dist/core/workflows.js.map +0 -1
  314. package/dist/i18n/locales/en/agent-teams.json +0 -18
  315. package/dist/i18n/locales/en/agentBrowser.json +0 -80
  316. package/dist/i18n/locales/en/agents.json +0 -135
  317. package/dist/i18n/locales/en/ccjk-agents.json +0 -33
  318. package/dist/i18n/locales/en/ccjk-all.json +0 -23
  319. package/dist/i18n/locales/en/ccjk-skills.json +0 -22
  320. package/dist/i18n/locales/en/ccjk.json +0 -276
  321. package/dist/i18n/locales/en/claude-md.json +0 -73
  322. package/dist/i18n/locales/en/cloud-setup.json +0 -31
  323. package/dist/i18n/locales/en/cloud-sync.json +0 -147
  324. package/dist/i18n/locales/en/cloud.json +0 -40
  325. package/dist/i18n/locales/en/cloudPlugins.json +0 -118
  326. package/dist/i18n/locales/en/config.json +0 -108
  327. package/dist/i18n/locales/en/context.json +0 -85
  328. package/dist/i18n/locales/en/dashboard.json +0 -78
  329. package/dist/i18n/locales/en/evolution.json +0 -54
  330. package/dist/i18n/locales/en/hooks.json +0 -74
  331. package/dist/i18n/locales/en/hooksSync.json +0 -133
  332. package/dist/i18n/locales/en/interview.json +0 -104
  333. package/dist/i18n/locales/en/lsp.json +0 -78
  334. package/dist/i18n/locales/en/marketplace.json +0 -116
  335. package/dist/i18n/locales/en/memory.json +0 -23
  336. package/dist/i18n/locales/en/notification.json +0 -307
  337. package/dist/i18n/locales/en/permissions.json +0 -95
  338. package/dist/i18n/locales/en/persistence.json +0 -127
  339. package/dist/i18n/locales/en/plugins.json +0 -146
  340. package/dist/i18n/locales/en/quick-actions.json +0 -78
  341. package/dist/i18n/locales/en/registry.json +0 -54
  342. package/dist/i18n/locales/en/remote.json +0 -93
  343. package/dist/i18n/locales/en/sandbox.json +0 -44
  344. package/dist/i18n/locales/en/setup.json +0 -44
  345. package/dist/i18n/locales/en/shencha.json +0 -14
  346. package/dist/i18n/locales/en/skills.json +0 -100
  347. package/dist/i18n/locales/en/skillsSync.json +0 -74
  348. package/dist/i18n/locales/en/smartGuide.json +0 -49
  349. package/dist/i18n/locales/en/stats.json +0 -20
  350. package/dist/i18n/locales/en/subagent.json +0 -69
  351. package/dist/i18n/locales/en/superpowers.json +0 -117
  352. package/dist/i18n/locales/en/team.json +0 -7
  353. package/dist/i18n/locales/en/thinking.json +0 -65
  354. package/dist/i18n/locales/en/vim.json +0 -169
  355. package/dist/i18n/locales/en/workspace.json +0 -108
  356. package/dist/i18n/locales/zh-CN/agent-teams.json +0 -18
  357. package/dist/i18n/locales/zh-CN/agentBrowser.json +0 -80
  358. package/dist/i18n/locales/zh-CN/agents.json +0 -135
  359. package/dist/i18n/locales/zh-CN/ccjk-agents.json +0 -33
  360. package/dist/i18n/locales/zh-CN/ccjk-all.json +0 -23
  361. package/dist/i18n/locales/zh-CN/ccjk-skills.json +0 -22
  362. package/dist/i18n/locales/zh-CN/ccjk.json +0 -276
  363. package/dist/i18n/locales/zh-CN/claude-md.json +0 -73
  364. package/dist/i18n/locales/zh-CN/cloud-setup.json +0 -31
  365. package/dist/i18n/locales/zh-CN/cloud-sync.json +0 -147
  366. package/dist/i18n/locales/zh-CN/cloud.json +0 -40
  367. package/dist/i18n/locales/zh-CN/cloudPlugins.json +0 -118
  368. package/dist/i18n/locales/zh-CN/config.json +0 -108
  369. package/dist/i18n/locales/zh-CN/context.json +0 -85
  370. package/dist/i18n/locales/zh-CN/dashboard.json +0 -78
  371. package/dist/i18n/locales/zh-CN/evolution.json +0 -54
  372. package/dist/i18n/locales/zh-CN/hooks.json +0 -74
  373. package/dist/i18n/locales/zh-CN/hooksSync.json +0 -133
  374. package/dist/i18n/locales/zh-CN/interview.json +0 -104
  375. package/dist/i18n/locales/zh-CN/lsp.json +0 -78
  376. package/dist/i18n/locales/zh-CN/marketplace.json +0 -116
  377. package/dist/i18n/locales/zh-CN/memory.json +0 -23
  378. package/dist/i18n/locales/zh-CN/notification.json +0 -307
  379. package/dist/i18n/locales/zh-CN/permissions.json +0 -95
  380. package/dist/i18n/locales/zh-CN/persistence.json +0 -127
  381. package/dist/i18n/locales/zh-CN/plugins.json +0 -146
  382. package/dist/i18n/locales/zh-CN/quick-actions.json +0 -78
  383. package/dist/i18n/locales/zh-CN/registry.json +0 -54
  384. package/dist/i18n/locales/zh-CN/remote.json +0 -93
  385. package/dist/i18n/locales/zh-CN/sandbox.json +0 -44
  386. package/dist/i18n/locales/zh-CN/setup.json +0 -44
  387. package/dist/i18n/locales/zh-CN/shencha.json +0 -14
  388. package/dist/i18n/locales/zh-CN/skills.json +0 -100
  389. package/dist/i18n/locales/zh-CN/skillsSync.json +0 -74
  390. package/dist/i18n/locales/zh-CN/smartGuide.json +0 -49
  391. package/dist/i18n/locales/zh-CN/stats.json +0 -20
  392. package/dist/i18n/locales/zh-CN/subagent.json +0 -69
  393. package/dist/i18n/locales/zh-CN/superpowers.json +0 -117
  394. package/dist/i18n/locales/zh-CN/team.json +0 -7
  395. package/dist/i18n/locales/zh-CN/thinking.json +0 -65
  396. package/dist/i18n/locales/zh-CN/vim.json +0 -169
  397. package/dist/i18n/locales/zh-CN/workspace.json +0 -108
  398. package/dist/shared/ccjk.5bEolFrk.mjs +0 -254
  399. package/dist/shared/ccjk.8oaxX4iR.mjs +0 -90
  400. package/dist/shared/ccjk.B2U7DsPy.mjs +0 -31
  401. package/dist/shared/ccjk.B2f-cwUP.mjs +0 -468
  402. package/dist/shared/ccjk.BAGoDD49.mjs +0 -36
  403. package/dist/shared/ccjk.BBtCGd_g.mjs +0 -899
  404. package/dist/shared/ccjk.BFQ7yr5S.mjs +0 -16
  405. package/dist/shared/ccjk.BLsIiTqO.mjs +0 -449
  406. package/dist/shared/ccjk.BXv8aYs1.mjs +0 -170
  407. package/dist/shared/ccjk.BnsY5WxD.mjs +0 -171
  408. package/dist/shared/ccjk.BoApaI4j.mjs +0 -28
  409. package/dist/shared/ccjk.Bq8TqZG_.mjs +0 -189
  410. package/dist/shared/ccjk.BtrioX1Z.mjs +0 -25
  411. package/dist/shared/ccjk.Bx_rmYfN.mjs +0 -69
  412. package/dist/shared/ccjk.BzPbSEP2.mjs +0 -115
  413. package/dist/shared/ccjk.C0WLUnFV.mjs +0 -293
  414. package/dist/shared/ccjk.C1hANZTu.mjs +0 -19
  415. package/dist/shared/ccjk.C2jHOZVP.mjs +0 -52
  416. package/dist/shared/ccjk.CNhnT6uQ.mjs +0 -636
  417. package/dist/shared/ccjk.COweQ1RR.mjs +0 -5
  418. package/dist/shared/ccjk.CfKKcvWy.mjs +0 -126
  419. package/dist/shared/ccjk.Cjgrln_h.mjs +0 -297
  420. package/dist/shared/ccjk.CoCHVXl3.mjs +0 -3951
  421. package/dist/shared/ccjk.CwGZSTAK.mjs +0 -319
  422. package/dist/shared/ccjk.CxpGa6MC.mjs +0 -2724
  423. package/dist/shared/ccjk.D-magaEx.mjs +0 -763
  424. package/dist/shared/ccjk.D0g2ABGg.mjs +0 -171
  425. package/dist/shared/ccjk.D6ycHbak.mjs +0 -270
  426. package/dist/shared/ccjk.D75wivnp.mjs +0 -142
  427. package/dist/shared/ccjk.DDL-4C-k.mjs +0 -100
  428. package/dist/shared/ccjk.DFRPtmK_.mjs +0 -75
  429. package/dist/shared/ccjk.DMV3x5Sd.mjs +0 -299
  430. package/dist/shared/ccjk.DZ2LLOa-.mjs +0 -2195
  431. package/dist/shared/ccjk.DbigonEQ.mjs +0 -698
  432. package/dist/shared/ccjk.DcMvE7lf.mjs +0 -618
  433. package/dist/shared/ccjk.DeWpAShp.mjs +0 -1828
  434. package/dist/shared/ccjk.DhJ1kyDR.mjs +0 -30
  435. package/dist/shared/ccjk.DlTXS9rP.mjs +0 -224
  436. package/dist/shared/ccjk.DopKzo3z.mjs +0 -305
  437. package/dist/shared/ccjk.DsZsc4LR.mjs +0 -1280
  438. package/dist/shared/ccjk.DuzJZlgj.mjs +0 -418
  439. package/dist/shared/ccjk.Dxgd2vjc.mjs +0 -444
  440. package/dist/shared/ccjk.J8YiPsOw.mjs +0 -259
  441. package/dist/shared/ccjk.KfSWcGlE.mjs +0 -38
  442. package/dist/shared/ccjk.L7yC58_i.mjs +0 -225
  443. package/dist/shared/ccjk.MwtjAULc.mjs +0 -1447
  444. package/dist/shared/ccjk.OJKHVSOb.mjs +0 -2005
  445. package/dist/shared/ccjk.OTnevPNE.mjs +0 -225
  446. package/dist/shared/ccjk.RyizuzOI.mjs +0 -21
  447. package/dist/shared/ccjk.T_cX87dY.mjs +0 -15
  448. package/dist/shared/ccjk.bQ7Dh1g4.mjs +0 -249
  449. package/dist/shared/ccjk.gDEDGD_t.mjs +0 -38
  450. package/dist/shared/ccjk.hoqrwWdN.mjs +0 -333
  451. package/dist/shared/ccjk.i_vn-9C3.mjs +0 -317
  452. package/dist/shared/ccjk.lG3ccFjm.mjs +0 -885
  453. package/dist/shared/ccjk.wLJHO0Af.mjs +0 -244
  454. package/dist/shared/ccjk.y-a_1vK4.mjs +0 -5127
  455. package/dist/templates/agents/README.md +0 -78
  456. package/dist/templates/agents/fullstack-developer.json +0 -70
  457. package/dist/templates/agents/go-expert.json +0 -69
  458. package/dist/templates/agents/index.json +0 -64
  459. package/dist/templates/agents/python-expert.json +0 -69
  460. package/dist/templates/agents/react-specialist.json +0 -69
  461. package/dist/templates/agents/testing-automation-expert.json +0 -70
  462. package/dist/templates/agents/typescript-architect.json +0 -69
  463. package/dist/templates/claude-code/common/settings.json +0 -109
  464. package/dist/templates/common/error-prevention.md +0 -267
  465. package/dist/templates/common/karpathy-baseline.md +0 -83
  466. package/dist/templates/common/output-styles/zh-CN/carmack-mode.md +0 -381
  467. package/dist/templates/common/output-styles/zh-CN/codex-rigor-mode.md +0 -114
  468. package/dist/templates/common/output-styles/zh-CN/dhh-mode.md +0 -265
  469. package/dist/templates/common/output-styles/zh-CN/evan-you-mode.md +0 -539
  470. package/dist/templates/common/output-styles/zh-CN/jobs-mode.md +0 -369
  471. package/dist/templates/common/output-styles/zh-CN/linus-mode.md +0 -135
  472. package/dist/templates/common/output-styles/zh-CN/uncle-bob-mode.md +0 -221
  473. package/dist/templates/common/workflow/continuousDelivery/en/continuous-delivery.md +0 -628
  474. package/dist/templates/common/workflow/continuousDelivery/zh-CN/continuous-delivery.md +0 -628
  475. package/dist/templates/common/workflow/essential/en/agents/ccjk-config-agent.md +0 -187
  476. package/dist/templates/common/workflow/essential/en/agents/ccjk-mcp-agent.md +0 -191
  477. package/dist/templates/common/workflow/essential/en/agents/ccjk-skill-agent.md +0 -249
  478. package/dist/templates/common/workflow/essential/en/agents/ccjk-workflow-agent.md +0 -277
  479. package/dist/templates/common/workflow/essential/en/feat.md +0 -92
  480. package/dist/templates/common/workflow/essential/en/goal.md +0 -147
  481. package/dist/templates/common/workflow/essential/zh-CN/agents/get-current-datetime.md +0 -29
  482. package/dist/templates/common/workflow/essential/zh-CN/agents/init-architect.md +0 -115
  483. package/dist/templates/common/workflow/essential/zh-CN/agents/ui-ux-designer.md +0 -91
  484. package/dist/templates/common/workflow/essential/zh-CN/feat.md +0 -315
  485. package/dist/templates/common/workflow/essential/zh-CN/goal.md +0 -146
  486. package/dist/templates/common/workflow/essential/zh-CN/init-project.md +0 -53
  487. package/dist/templates/common/workflow/git/zh-CN/git-cleanBranches.md +0 -102
  488. package/dist/templates/common/workflow/git/zh-CN/git-commit.md +0 -205
  489. package/dist/templates/common/workflow/git/zh-CN/git-rollback.md +0 -90
  490. package/dist/templates/common/workflow/git/zh-CN/git-worktree.md +0 -276
  491. package/dist/templates/common/workflow/interview/en/interview.md +0 -67
  492. package/dist/templates/common/workflow/interview/zh-CN/interview.md +0 -67
  493. package/dist/templates/common/workflow/linearMethod/en/linear-method.md +0 -651
  494. package/dist/templates/common/workflow/linearMethod/zh-CN/linear-method.md +0 -752
  495. package/dist/templates/common/workflow/refactoringMaster/en/refactoring-master.md +0 -516
  496. package/dist/templates/common/workflow/refactoringMaster/zh-CN/refactoring-master.md +0 -812
  497. package/dist/templates/common/workflow/sixStep/en/workflow.md +0 -83
  498. package/dist/templates/common/workflow/specFirstTDD/en/spec-first-tdd.md +0 -364
  499. package/dist/templates/common/workflow/specFirstTDD/zh-CN/spec-first-tdd.md +0 -366
  500. package/dist/templates/hooks/README.md +0 -212
  501. package/dist/templates/hooks/git-workflow-hooks.md +0 -551
  502. package/dist/templates/hooks/post-test/coverage.json +0 -21
  503. package/dist/templates/hooks/post-test/summary.json +0 -21
  504. package/dist/templates/hooks/post-test-coverage.md +0 -434
  505. package/dist/templates/hooks/pre-commit/eslint.json +0 -22
  506. package/dist/templates/hooks/pre-commit/prettier.json +0 -22
  507. package/dist/templates/hooks/pre-commit-black.md +0 -274
  508. package/dist/templates/hooks/pre-commit-eslint.md +0 -153
  509. package/dist/templates/hooks/pre-commit-gofmt.md +0 -284
  510. package/dist/templates/hooks/pre-commit-prettier.md +0 -212
  511. package/dist/templates/hooks/pre-commit-type-check.md +0 -377
  512. package/dist/templates/skills/ccjk-init.md +0 -154
  513. package/dist/templates/skills/ccjk-mcp-setup.md +0 -205
  514. package/dist/templates/skills/ccjk-troubleshoot.md +0 -228
  515. package/dist/templates/skills/django-patterns.md +0 -1016
  516. package/dist/templates/skills/git-workflow.md +0 -748
  517. package/dist/templates/skills/go-idioms.md +0 -963
  518. package/dist/templates/skills/index.json +0 -132
  519. package/dist/templates/skills/nextjs-optimization.md +0 -694
  520. package/dist/templates/skills/python-pep8.md +0 -852
  521. package/dist/templates/skills/react-patterns.md +0 -686
  522. package/dist/templates/skills/rust-patterns.md +0 -1057
  523. package/dist/templates/skills/security-best-practices.md +0 -1413
  524. package/dist/templates/skills/testing-best-practices.md +0 -1315
  525. package/dist/templates/skills/ts-best-practices.md +0 -354
  526. /package/{dist/templates/common/workflow/essential/en → templates/claude-code/zh-CN/workflow/common}/agents/get-current-datetime.md +0 -0
  527. /package/{dist/templates/common/workflow/essential/en → templates/claude-code/zh-CN/workflow/common/commands}/init-project.md +0 -0
  528. /package/{dist/templates/common/workflow/essential/en → templates/claude-code/zh-CN/workflow/plan}/agents/ui-ux-designer.md +0 -0
  529. /package/{dist/templates/common/workflow/git/en → templates/common/workflow/git/zh-CN}/git-cleanBranches.md +0 -0
  530. /package/{dist/templates/common/workflow/git/en → templates/common/workflow/git/zh-CN}/git-commit.md +0 -0
  531. /package/{dist/templates/common/workflow/git/en → templates/common/workflow/git/zh-CN}/git-rollback.md +0 -0
  532. /package/{dist/templates/common/workflow/git/en → templates/common/workflow/git/zh-CN}/git-worktree.md +0 -0
@@ -1,14 +0,0 @@
1
- import { c as chunkedExec } from '../shared/ccjk.T_cX87dY.mjs';
2
- import 'node:util';
3
- import 'node:child_process';
4
- import 'node:url';
5
- import '../shared/ccjk.KfSWcGlE.mjs';
6
-
7
- // Binary source: https://github.com/sindresorhus/recycle-bin
8
- const binary = new URL('windows-trash.exe', import.meta.url);
9
-
10
- async function windows(paths) {
11
- await chunkedExec(binary, paths, 200);
12
- }
13
-
14
- export { windows as default };
@@ -1,633 +0,0 @@
1
- import a from './index5.mjs';
2
- import { EventEmitter } from 'node:events';
3
- import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'node:fs';
4
- import { homedir } from 'node:os';
5
- import { j as join, d as dirname } from '../shared/ccjk.bQ7Dh1g4.mjs';
6
- import '../shared/ccjk.BAGoDD49.mjs';
7
-
8
- const PHASE_CONFIGS = {
9
- brainstorming: {
10
- phase: "brainstorming",
11
- name: {
12
- "en": "Brainstorming",
13
- "zh-CN": "\u5934\u8111\u98CE\u66B4",
14
- "ja-JP": "\u30D6\u30EC\u30A4\u30F3\u30B9\u30C8\u30FC\u30DF\u30F3\u30B0",
15
- "ko-KR": "\uBE0C\uB808\uC778\uC2A4\uD1A0\uBC0D"
16
- },
17
- description: {
18
- "en": "Explore ideas and gather requirements",
19
- "zh-CN": "\u63A2\u7D22\u60F3\u6CD5\uFF0C\u6536\u96C6\u9700\u6C42",
20
- "ja-JP": "\u30A2\u30A4\u30C7\u30A2\u3092\u63A2\u6C42\u3057\u3001\u8981\u4EF6\u3092\u53CE\u96C6\u3059\u308B",
21
- "ko-KR": "\uC544\uC774\uB514\uC5B4 \uD0D0\uC0C9 \uBC0F \uC694\uAD6C\uC0AC\uD56D \uC218\uC9D1"
22
- },
23
- autoActivateSkills: ["brainstorming", "requirements"],
24
- allowedTransitions: ["planning"],
25
- requiresConfirmation: true,
26
- maxDuration: 30
27
- },
28
- planning: {
29
- phase: "planning",
30
- name: {
31
- "en": "Planning",
32
- "zh-CN": "\u89C4\u5212",
33
- "ja-JP": "\u8A08\u753B",
34
- "ko-KR": "\uACC4\uD68D"
35
- },
36
- description: {
37
- "en": "Create detailed implementation plan with bite-sized tasks",
38
- "zh-CN": "\u521B\u5EFA\u8BE6\u7EC6\u7684\u5B9E\u65BD\u8BA1\u5212\uFF0C\u5206\u89E3\u4E3A\u5C0F\u4EFB\u52A1",
39
- "ja-JP": "\u8A73\u7D30\u306A\u5B9F\u88C5\u8A08\u753B\u3092\u4F5C\u6210\u3057\u3001\u5C0F\u3055\u306A\u30BF\u30B9\u30AF\u306B\u5206\u89E3\u3059\u308B",
40
- "ko-KR": "\uC138\uBD80 \uAD6C\uD604 \uACC4\uD68D \uC791\uC131 \uBC0F \uC791\uC740 \uC791\uC5C5\uC73C\uB85C \uBD84\uD574"
41
- },
42
- autoActivateSkills: ["planning", "task-breakdown"],
43
- allowedTransitions: ["implementation", "brainstorming"],
44
- requiresConfirmation: true,
45
- maxDuration: 60
46
- },
47
- implementation: {
48
- phase: "implementation",
49
- name: {
50
- "en": "Implementation",
51
- "zh-CN": "\u5B9E\u73B0",
52
- "ja-JP": "\u5B9F\u88C5",
53
- "ko-KR": "\uAD6C\uD604"
54
- },
55
- description: {
56
- "en": "Execute tasks via subagents with TDD approach",
57
- "zh-CN": "\u901A\u8FC7\u5B50\u4EE3\u7406\u6267\u884C\u4EFB\u52A1\uFF0C\u91C7\u7528 TDD \u65B9\u6CD5",
58
- "ja-JP": "TDD\u30A2\u30D7\u30ED\u30FC\u30C1\u3067\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u4ECB\u3057\u3066\u30BF\u30B9\u30AF\u3092\u5B9F\u884C",
59
- "ko-KR": "TDD \uC811\uADFC \uBC29\uC2DD\uC73C\uB85C \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uB97C \uD1B5\uD574 \uC791\uC5C5 \uC2E4\uD589"
60
- },
61
- autoActivateSkills: ["implementation", "tdd", "coding"],
62
- allowedTransitions: ["review", "planning"],
63
- requiresConfirmation: false,
64
- maxDuration: 0
65
- // Unlimited
66
- },
67
- review: {
68
- phase: "review",
69
- name: {
70
- "en": "Code Review",
71
- "zh-CN": "\u4EE3\u7801\u5BA1\u67E5",
72
- "ja-JP": "\u30B3\u30FC\u30C9\u30EC\u30D3\u30E5\u30FC",
73
- "ko-KR": "\uCF54\uB4DC \uB9AC\uBDF0"
74
- },
75
- description: {
76
- "en": "Two-stage review: spec compliance + code quality",
77
- "zh-CN": "\u4E24\u9636\u6BB5\u5BA1\u67E5\uFF1A\u89C4\u683C\u7B26\u5408\u6027 + \u4EE3\u7801\u8D28\u91CF",
78
- "ja-JP": "2\u6BB5\u968E\u30EC\u30D3\u30E5\u30FC\uFF1A\u4ED5\u69D8\u6E96\u62E0 + \u30B3\u30FC\u30C9\u54C1\u8CEA",
79
- "ko-KR": "2\uB2E8\uACC4 \uAC80\uD1A0: \uC0AC\uC591 \uC900\uC218 + \uCF54\uB4DC \uD488\uC9C8"
80
- },
81
- autoActivateSkills: ["code-review", "quality-check"],
82
- allowedTransitions: ["finishing", "implementation"],
83
- requiresConfirmation: true,
84
- maxDuration: 30
85
- },
86
- finishing: {
87
- phase: "finishing",
88
- name: {
89
- "en": "Finishing",
90
- "zh-CN": "\u6536\u5C3E",
91
- "ja-JP": "\u4ED5\u4E0A\u3052",
92
- "ko-KR": "\uB9C8\uBB34\uB9AC"
93
- },
94
- description: {
95
- "en": "Final cleanup, documentation, and merge",
96
- "zh-CN": "\u6700\u7EC8\u6E05\u7406\u3001\u6587\u6863\u548C\u5408\u5E76",
97
- "ja-JP": "\u6700\u7D42\u30AF\u30EA\u30FC\u30F3\u30A2\u30C3\u30D7\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3001\u30DE\u30FC\u30B8",
98
- "ko-KR": "\uCD5C\uC885 \uC815\uB9AC, \uBB38\uC11C\uD654 \uBC0F \uBCD1\uD569"
99
- },
100
- autoActivateSkills: ["finishing", "documentation"],
101
- allowedTransitions: [],
102
- requiresConfirmation: true,
103
- maxDuration: 15
104
- }
105
- };
106
- const WORKFLOW_PERSISTENCE_VERSION = 1;
107
-
108
- function generateId() {
109
- return `wf-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
110
- }
111
- const DEFAULT_OPTIONS = {
112
- persistPath: join(homedir(), ".ccjk", "workflow-state.json"),
113
- autoSave: true,
114
- verbose: false
115
- };
116
- class WorkflowStateMachine extends EventEmitter {
117
- sessions = /* @__PURE__ */ new Map();
118
- options;
119
- constructor(options = {}) {
120
- super();
121
- this.options = { ...DEFAULT_OPTIONS, ...options };
122
- this.loadState();
123
- }
124
- // ==========================================================================
125
- // Session Management
126
- // ==========================================================================
127
- /**
128
- * Create a new workflow session
129
- *
130
- * @param params - Session parameters
131
- * @param params.name - Session name
132
- * @param params.description - Optional session description
133
- * @param params.initialPhase - Optional initial workflow phase
134
- * @param params.branch - Optional git branch name
135
- * @param params.skills - Optional list of skill IDs to use
136
- * @param params.metadata - Optional additional metadata
137
- * @returns Created session
138
- */
139
- createSession(params) {
140
- const session = {
141
- id: generateId(),
142
- name: params.name,
143
- description: params.description || "",
144
- currentPhase: params.initialPhase || "brainstorming",
145
- status: "active",
146
- tasks: [],
147
- phaseHistory: [{
148
- from: null,
149
- to: params.initialPhase || "brainstorming",
150
- timestamp: /* @__PURE__ */ new Date(),
151
- reason: "Session created",
152
- triggeredBy: "system"
153
- }],
154
- branch: params.branch,
155
- skills: params.skills || [],
156
- metadata: params.metadata || {},
157
- createdAt: /* @__PURE__ */ new Date(),
158
- updatedAt: /* @__PURE__ */ new Date()
159
- };
160
- this.sessions.set(session.id, session);
161
- this.emit("session:created", session);
162
- this.log(`Created session: ${session.id} - ${session.name}`);
163
- this.saveState();
164
- return session;
165
- }
166
- /**
167
- * Get a session by ID
168
- */
169
- getSession(id) {
170
- return this.sessions.get(id) || null;
171
- }
172
- /**
173
- * Get all sessions
174
- */
175
- getAllSessions() {
176
- return Array.from(this.sessions.values());
177
- }
178
- /**
179
- * Get active sessions
180
- */
181
- getActiveSessions() {
182
- return this.getAllSessions().filter((s) => s.status === "active" || s.status === "paused");
183
- }
184
- /**
185
- * Update session metadata
186
- */
187
- updateSession(id, updates) {
188
- const session = this.getSessionOrThrow(id);
189
- Object.assign(session, updates, { updatedAt: /* @__PURE__ */ new Date() });
190
- this.saveState();
191
- return session;
192
- }
193
- /**
194
- * Delete a session
195
- */
196
- deleteSession(id) {
197
- const session = this.sessions.get(id);
198
- if (!session) {
199
- return false;
200
- }
201
- this.sessions.delete(id);
202
- this.log(`Deleted session: ${id}`);
203
- this.saveState();
204
- return true;
205
- }
206
- // ==========================================================================
207
- // Phase Transitions
208
- // ==========================================================================
209
- /**
210
- * Transition to a new phase
211
- *
212
- * @param sessionId - Session ID
213
- * @param targetPhase - Target phase
214
- * @param reason - Reason for transition
215
- * @returns Updated session
216
- * @throws Error if transition is not allowed
217
- */
218
- transitionTo(sessionId, targetPhase, reason) {
219
- const session = this.getSessionOrThrow(sessionId);
220
- this.validateTransition(session, targetPhase);
221
- const oldPhase = session.currentPhase;
222
- const transition = {
223
- from: oldPhase,
224
- to: targetPhase,
225
- timestamp: /* @__PURE__ */ new Date(),
226
- reason: reason || `Transition from ${oldPhase} to ${targetPhase}`,
227
- triggeredBy: "user"
228
- };
229
- session.currentPhase = targetPhase;
230
- session.phaseHistory.push(transition);
231
- session.updatedAt = /* @__PURE__ */ new Date();
232
- this.emit("phase:changed", session, transition);
233
- this.log(`Phase transition: ${oldPhase} -> ${targetPhase} (${session.name})`);
234
- this.saveState();
235
- return session;
236
- }
237
- /**
238
- * Check if a transition is allowed
239
- */
240
- canTransitionTo(sessionId, targetPhase) {
241
- const session = this.sessions.get(sessionId);
242
- if (!session) {
243
- return false;
244
- }
245
- const currentConfig = PHASE_CONFIGS[session.currentPhase];
246
- return currentConfig.allowedTransitions.includes(targetPhase);
247
- }
248
- /**
249
- * Get allowed transitions for a session
250
- */
251
- getAllowedTransitions(sessionId) {
252
- const session = this.sessions.get(sessionId);
253
- if (!session) {
254
- return [];
255
- }
256
- return PHASE_CONFIGS[session.currentPhase].allowedTransitions;
257
- }
258
- /**
259
- * Auto-advance to next phase if conditions are met
260
- */
261
- autoAdvance(sessionId) {
262
- const session = this.getSessionOrThrow(sessionId);
263
- const currentConfig = PHASE_CONFIGS[session.currentPhase];
264
- if (currentConfig.requiresConfirmation) {
265
- return null;
266
- }
267
- const phaseTasks = this.getTasksForPhase(session, session.currentPhase);
268
- const allCompleted = phaseTasks.every((t) => t.status === "completed");
269
- if (!allCompleted || phaseTasks.length === 0) {
270
- return null;
271
- }
272
- const nextPhase = currentConfig.allowedTransitions[0];
273
- if (!nextPhase) {
274
- return null;
275
- }
276
- return this.transitionTo(sessionId, nextPhase, "Auto-advanced after task completion");
277
- }
278
- // ==========================================================================
279
- // Session Status Management
280
- // ==========================================================================
281
- /**
282
- * Pause a session
283
- */
284
- pauseSession(sessionId) {
285
- const session = this.getSessionOrThrow(sessionId);
286
- if (session.status !== "active") {
287
- throw new Error(`Cannot pause session with status: ${session.status}`);
288
- }
289
- return this.changeSessionStatus(session, "paused");
290
- }
291
- /**
292
- * Resume a paused session
293
- */
294
- resumeSession(sessionId) {
295
- const session = this.getSessionOrThrow(sessionId);
296
- if (session.status !== "paused") {
297
- throw new Error(`Cannot resume session with status: ${session.status}`);
298
- }
299
- return this.changeSessionStatus(session, "active");
300
- }
301
- /**
302
- * Complete a session
303
- */
304
- completeSession(sessionId) {
305
- const session = this.getSessionOrThrow(sessionId);
306
- if (session.status !== "active") {
307
- throw new Error(`Cannot complete session with status: ${session.status}`);
308
- }
309
- session.completedAt = /* @__PURE__ */ new Date();
310
- const updated = this.changeSessionStatus(session, "completed");
311
- this.emit("workflow:completed", updated);
312
- return updated;
313
- }
314
- /**
315
- * Fail a session
316
- */
317
- failSession(sessionId, error) {
318
- const session = this.getSessionOrThrow(sessionId);
319
- session.error = error;
320
- const updated = this.changeSessionStatus(session, "failed");
321
- this.emit("workflow:failed", updated, error);
322
- return updated;
323
- }
324
- /**
325
- * Cancel a session
326
- */
327
- cancelSession(sessionId) {
328
- const session = this.getSessionOrThrow(sessionId);
329
- if (session.status === "completed" || session.status === "failed") {
330
- throw new Error(`Cannot cancel session with status: ${session.status}`);
331
- }
332
- return this.changeSessionStatus(session, "cancelled");
333
- }
334
- // ==========================================================================
335
- // Task Management
336
- // ==========================================================================
337
- /**
338
- * Add a task to a session
339
- */
340
- addTask(sessionId, task) {
341
- const session = this.getSessionOrThrow(sessionId);
342
- const newTask = {
343
- ...task,
344
- id: `task-${Date.now()}-${Math.random().toString(36).substring(2, 7)}`,
345
- status: "pending",
346
- createdAt: /* @__PURE__ */ new Date()
347
- };
348
- session.tasks.push(newTask);
349
- session.updatedAt = /* @__PURE__ */ new Date();
350
- this.emit("task:created", session, newTask);
351
- this.saveState();
352
- return newTask;
353
- }
354
- /**
355
- * Update task status
356
- */
357
- updateTaskStatus(sessionId, taskId, status) {
358
- const session = this.getSessionOrThrow(sessionId);
359
- const task = session.tasks.find((t) => t.id === taskId);
360
- if (!task) {
361
- throw new Error(`Task not found: ${taskId}`);
362
- }
363
- const oldStatus = task.status;
364
- task.status = status;
365
- if (status === "running" && !task.startedAt) {
366
- task.startedAt = /* @__PURE__ */ new Date();
367
- }
368
- if (status === "completed" || status === "failed" || status === "cancelled") {
369
- task.completedAt = /* @__PURE__ */ new Date();
370
- if (task.startedAt) {
371
- task.actualMinutes = Math.round((task.completedAt.getTime() - task.startedAt.getTime()) / 6e4);
372
- }
373
- }
374
- session.updatedAt = /* @__PURE__ */ new Date();
375
- this.emit("task:status", session, task, oldStatus, status);
376
- if (status === "completed") {
377
- this.emit("task:completed", session, task);
378
- } else if (status === "failed") {
379
- this.emit("task:failed", session, task, task.error || "Unknown error");
380
- }
381
- this.saveState();
382
- return task;
383
- }
384
- /**
385
- * Get tasks for a specific phase
386
- */
387
- getTasksForPhase(session, phase) {
388
- return session.tasks.filter((t) => t.metadata?.phase === phase);
389
- }
390
- /**
391
- * Get pending tasks
392
- */
393
- getPendingTasks(sessionId) {
394
- const session = this.getSessionOrThrow(sessionId);
395
- return session.tasks.filter((t) => t.status === "pending" || t.status === "queued");
396
- }
397
- /**
398
- * Get running tasks
399
- */
400
- getRunningTasks(sessionId) {
401
- const session = this.getSessionOrThrow(sessionId);
402
- return session.tasks.filter((t) => t.status === "running");
403
- }
404
- // ==========================================================================
405
- // Persistence
406
- // ==========================================================================
407
- /**
408
- * Save state to disk
409
- */
410
- saveState() {
411
- if (!this.options.autoSave) {
412
- return;
413
- }
414
- const state = {
415
- version: WORKFLOW_PERSISTENCE_VERSION,
416
- sessions: Array.from(this.sessions.values()),
417
- lastUpdated: /* @__PURE__ */ new Date()
418
- };
419
- try {
420
- const dir = dirname(this.options.persistPath);
421
- if (!existsSync(dir)) {
422
- mkdirSync(dir, { recursive: true });
423
- }
424
- writeFileSync(
425
- this.options.persistPath,
426
- JSON.stringify(state, null, 2),
427
- "utf-8"
428
- );
429
- this.log(`State saved to ${this.options.persistPath}`);
430
- } catch (error) {
431
- console.error("Failed to save workflow state:", error);
432
- }
433
- }
434
- /**
435
- * Load state from disk
436
- */
437
- loadState() {
438
- try {
439
- if (!existsSync(this.options.persistPath)) {
440
- this.log("No existing state file found");
441
- return;
442
- }
443
- const content = readFileSync(this.options.persistPath, "utf-8");
444
- const state = JSON.parse(content);
445
- if (state.version !== WORKFLOW_PERSISTENCE_VERSION) {
446
- this.log(`Migrating state from version ${state.version} to ${WORKFLOW_PERSISTENCE_VERSION}`);
447
- }
448
- this.sessions.clear();
449
- for (const session of state.sessions) {
450
- session.createdAt = new Date(session.createdAt);
451
- session.updatedAt = new Date(session.updatedAt);
452
- if (session.completedAt) {
453
- session.completedAt = new Date(session.completedAt);
454
- }
455
- for (const task of session.tasks) {
456
- task.createdAt = new Date(task.createdAt);
457
- if (task.startedAt)
458
- task.startedAt = new Date(task.startedAt);
459
- if (task.completedAt)
460
- task.completedAt = new Date(task.completedAt);
461
- }
462
- for (const transition of session.phaseHistory) {
463
- transition.timestamp = new Date(transition.timestamp);
464
- }
465
- this.sessions.set(session.id, session);
466
- }
467
- this.log(`Loaded ${this.sessions.size} sessions from state file`);
468
- } catch (error) {
469
- console.error("Failed to load workflow state:", error);
470
- }
471
- }
472
- /**
473
- * Clear all state
474
- */
475
- clearState() {
476
- this.sessions.clear();
477
- this.saveState();
478
- this.log("State cleared");
479
- }
480
- // ==========================================================================
481
- // Statistics
482
- // ==========================================================================
483
- /**
484
- * Get workflow statistics
485
- */
486
- getStats() {
487
- const sessions = this.getAllSessions();
488
- const allTasks = sessions.flatMap((s) => s.tasks);
489
- const completedTasks = allTasks.filter((t) => t.status === "completed" && t.actualMinutes);
490
- const avgDuration = completedTasks.length > 0 ? completedTasks.reduce((sum, t) => sum + (t.actualMinutes || 0), 0) / completedTasks.length : 0;
491
- return {
492
- totalSessions: sessions.length,
493
- activeSessions: sessions.filter((s) => s.status === "active").length,
494
- completedSessions: sessions.filter((s) => s.status === "completed").length,
495
- failedSessions: sessions.filter((s) => s.status === "failed").length,
496
- totalTasks: allTasks.length,
497
- completedTasks: completedTasks.length,
498
- averageTaskDuration: Math.round(avgDuration * 10) / 10
499
- };
500
- }
501
- // ==========================================================================
502
- // Private Helpers
503
- // ==========================================================================
504
- getSessionOrThrow(id) {
505
- const session = this.sessions.get(id);
506
- if (!session) {
507
- throw new Error(`Session not found: ${id}`);
508
- }
509
- return session;
510
- }
511
- validateTransition(session, targetPhase) {
512
- if (session.status !== "active") {
513
- throw new Error(`Cannot transition session with status: ${session.status}`);
514
- }
515
- const currentConfig = PHASE_CONFIGS[session.currentPhase];
516
- if (!currentConfig.allowedTransitions.includes(targetPhase)) {
517
- throw new Error(
518
- `Invalid transition: ${session.currentPhase} -> ${targetPhase}. Allowed: ${currentConfig.allowedTransitions.join(", ")}`
519
- );
520
- }
521
- }
522
- changeSessionStatus(session, newStatus) {
523
- const oldStatus = session.status;
524
- session.status = newStatus;
525
- session.updatedAt = /* @__PURE__ */ new Date();
526
- this.emit("session:status", session, oldStatus, newStatus);
527
- this.log(`Session status: ${oldStatus} -> ${newStatus} (${session.name})`);
528
- this.saveState();
529
- return session;
530
- }
531
- log(message) {
532
- if (this.options.verbose) {
533
- console.log(`[WorkflowStateMachine] ${message}`);
534
- }
535
- }
536
- // ==========================================================================
537
- // Type-safe Event Emitter
538
- // ==========================================================================
539
- on(event, listener) {
540
- return super.on(event, listener);
541
- }
542
- emit(event, ...args) {
543
- return super.emit(event, ...args);
544
- }
545
- once(event, listener) {
546
- return super.once(event, listener);
547
- }
548
- off(event, listener) {
549
- return super.off(event, listener);
550
- }
551
- }
552
- let instance = null;
553
- function getWorkflowStateMachine(options) {
554
- if (!instance) {
555
- instance = new WorkflowStateMachine(options);
556
- }
557
- return instance;
558
- }
559
-
560
- function listWorkflows() {
561
- const machine = getWorkflowStateMachine();
562
- return machine.getAllSessions();
563
- }
564
-
565
- const PHASE_ICONS = {
566
- brainstorming: "\u{1F4A1}",
567
- planning: "\u{1F4CB}",
568
- implementation: "\u{1F528}",
569
- review: "\u{1F50D}",
570
- finishing: "\u2705"
571
- };
572
- const PHASE_COLORS = {
573
- brainstorming: a.magenta,
574
- planning: a.green,
575
- implementation: a.yellow,
576
- review: a.green,
577
- finishing: a.green
578
- };
579
- const STATUS_ICONS = {
580
- active: "\u{1F504}",
581
- paused: "\u23F8\uFE0F",
582
- completed: "\u2705",
583
- failed: "\u274C",
584
- cancelled: "\u{1F6AB}"
585
- };
586
- function formatPhase(phase) {
587
- const icon = PHASE_ICONS[phase];
588
- const color = PHASE_COLORS[phase];
589
- return `${icon} ${color(phase.charAt(0).toUpperCase() + phase.slice(1))}`;
590
- }
591
- function getTaskCounts(session) {
592
- const tasks = session.tasks || [];
593
- return {
594
- completed: tasks.filter((t) => t.status === "completed").length,
595
- failed: tasks.filter((t) => t.status === "failed").length,
596
- total: tasks.length
597
- };
598
- }
599
- async function listAllWorkflows(options = {}) {
600
- const workflows = listWorkflows();
601
- if (options.format === "json") {
602
- console.log(JSON.stringify(workflows, null, 2));
603
- return;
604
- }
605
- if (workflows.length === 0) {
606
- console.log(a.yellow("\n \u26A0\uFE0F No workflows found\n"));
607
- return;
608
- }
609
- console.log("");
610
- console.log(a.bold.cyan("\u2501".repeat(80)));
611
- console.log(a.bold(` ${"ID".padEnd(10)} ${"Name".padEnd(20)} ${"Phase".padEnd(15)} ${"Status".padEnd(10)} ${"Progress".padEnd(15)}`));
612
- console.log(a.bold.cyan("\u2501".repeat(80)));
613
- for (const wf of workflows) {
614
- const counts = getTaskCounts(wf);
615
- const progress = `${counts.completed}/${counts.total}`;
616
- console.log(
617
- ` ${a.dim(wf.id.slice(0, 8).padEnd(10))} ${wf.name.slice(0, 18).padEnd(20)} ${formatPhase(wf.currentPhase).padEnd(25)} ${STATUS_ICONS[wf.status]} ${wf.status.padEnd(8)} ${progress}`
618
- );
619
- }
620
- console.log(a.bold.cyan("\u2501".repeat(80)));
621
- console.log(a.dim(` Total: ${workflows.length} workflows`));
622
- console.log("");
623
- }
624
-
625
- async function listWorkflowsQuick(options = {}) {
626
- const opts = {
627
- lang: options.lang,
628
- format: options.format
629
- };
630
- await listAllWorkflows(opts);
631
- }
632
-
633
- export { listWorkflowsQuick };