rafcode 3.0.0 → 3.8.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 (235) hide show
  1. package/.claude/settings.local.json +3 -1
  2. package/CLAUDE.md +0 -1
  3. package/RAF/38-dual-wielder/decisions.md +9 -0
  4. package/RAF/38-dual-wielder/input.md +6 -1
  5. package/RAF/38-dual-wielder/outcomes/8-e2e-test-codex-provider.md +139 -0
  6. package/RAF/38-dual-wielder/plans/8-e2e-test-codex-provider.md +95 -0
  7. package/RAF/39-pathless-rover/decisions.md +16 -0
  8. package/RAF/39-pathless-rover/input.md +2 -0
  9. package/RAF/39-pathless-rover/outcomes/1-fix-codex-stream-renderer.md +21 -0
  10. package/RAF/39-pathless-rover/outcomes/2-wire-provider-flag.md +28 -0
  11. package/RAF/39-pathless-rover/outcomes/3-remove-worktree-flag-do.md +41 -0
  12. package/RAF/39-pathless-rover/outcomes/4-remove-worktree-flag-plan-amend.md +30 -0
  13. package/RAF/39-pathless-rover/outcomes/5-update-prompts-and-docs.md +26 -0
  14. package/RAF/39-pathless-rover/plans/1-fix-codex-stream-renderer.md +43 -0
  15. package/RAF/39-pathless-rover/plans/2-wire-provider-flag.md +48 -0
  16. package/RAF/39-pathless-rover/plans/3-remove-worktree-flag-do.md +41 -0
  17. package/RAF/39-pathless-rover/plans/4-remove-worktree-flag-plan-amend.md +43 -0
  18. package/RAF/39-pathless-rover/plans/5-update-prompts-and-docs.md +31 -0
  19. package/RAF/40-numeric-order-fix/decisions.md +7 -0
  20. package/RAF/40-numeric-order-fix/input.md +19 -0
  21. package/RAF/40-numeric-order-fix/outcomes/1-fix-numeric-sort-order.md +18 -0
  22. package/RAF/40-numeric-order-fix/outcomes/2-add-npm-keywords.md +10 -0
  23. package/RAF/40-numeric-order-fix/plans/1-fix-numeric-sort-order.md +48 -0
  24. package/RAF/40-numeric-order-fix/plans/2-add-npm-keywords.md +23 -0
  25. package/RAF/41-echo-chamber/decisions.md +13 -0
  26. package/RAF/41-echo-chamber/input.md +4 -0
  27. package/RAF/41-echo-chamber/outcomes/1-update-codex-model-defaults.md +24 -0
  28. package/RAF/41-echo-chamber/outcomes/2-e2e-test-codex-provider.md +74 -0
  29. package/RAF/41-echo-chamber/plans/1-update-codex-model-defaults.md +28 -0
  30. package/RAF/41-echo-chamber/plans/2-e2e-test-codex-provider.md +103 -0
  31. package/RAF/42-patch-parade/decisions.md +29 -0
  32. package/RAF/42-patch-parade/input.md +9 -0
  33. package/RAF/42-patch-parade/outcomes/1-fix-codex-model-resolution.md +36 -0
  34. package/RAF/42-patch-parade/outcomes/2-fix-provider-aware-name-generation.md +31 -0
  35. package/RAF/42-patch-parade/outcomes/3-fix-codex-error-event-rendering.md +32 -0
  36. package/RAF/42-patch-parade/outcomes/4-update-cli-help-docs.md +28 -0
  37. package/RAF/42-patch-parade/outcomes/5-update-default-codex-models-to-gpt-5-4.md +33 -0
  38. package/RAF/42-patch-parade/outcomes/6-unify-model-config-schema.md +89 -0
  39. package/RAF/42-patch-parade/plans/1-fix-codex-model-resolution.md +35 -0
  40. package/RAF/42-patch-parade/plans/2-fix-provider-aware-name-generation.md +38 -0
  41. package/RAF/42-patch-parade/plans/3-fix-codex-error-event-rendering.md +32 -0
  42. package/RAF/42-patch-parade/plans/4-update-cli-help-docs.md +31 -0
  43. package/RAF/42-patch-parade/plans/5-update-default-codex-models-to-gpt-5-4.md +35 -0
  44. package/RAF/42-patch-parade/plans/6-unify-model-config-schema.md +46 -0
  45. package/RAF/43-swiss-army/decisions.md +34 -0
  46. package/RAF/43-swiss-army/input.md +7 -0
  47. package/RAF/43-swiss-army/outcomes/1-fix-model-validation.md +21 -0
  48. package/RAF/43-swiss-army/outcomes/2-update-commit-format.md +31 -0
  49. package/RAF/43-swiss-army/outcomes/3-wire-reasoning-effort.md +28 -0
  50. package/RAF/43-swiss-army/outcomes/4-remove-provider-flag.md +27 -0
  51. package/RAF/43-swiss-army/outcomes/5-config-wizard-validation.md +23 -0
  52. package/RAF/43-swiss-army/outcomes/6-add-fast-mode.md +32 -0
  53. package/RAF/43-swiss-army/outcomes/7-config-preset.md +31 -0
  54. package/RAF/43-swiss-army/plans/1-fix-model-validation.md +38 -0
  55. package/RAF/43-swiss-army/plans/2-update-commit-format.md +46 -0
  56. package/RAF/43-swiss-army/plans/3-wire-reasoning-effort.md +39 -0
  57. package/RAF/43-swiss-army/plans/4-remove-provider-flag.md +43 -0
  58. package/RAF/43-swiss-army/plans/5-config-wizard-validation.md +42 -0
  59. package/RAF/43-swiss-army/plans/6-add-fast-mode.md +46 -0
  60. package/RAF/43-swiss-army/plans/7-config-preset.md +51 -0
  61. package/RAF/44-config-api-change/decisions.md +22 -0
  62. package/RAF/44-config-api-change/input.md +5 -0
  63. package/RAF/44-config-api-change/outcomes/1-restructure-config-subcommands.md +19 -0
  64. package/RAF/44-config-api-change/outcomes/2-move-preset-under-config.md +17 -0
  65. package/RAF/44-config-api-change/outcomes/3-update-existing-tests-for-config-api.md +14 -0
  66. package/RAF/44-config-api-change/outcomes/4-update-config-command-docs.md +11 -0
  67. package/RAF/44-config-api-change/outcomes/5-fix-codex-name-generation.md +18 -0
  68. package/RAF/44-config-api-change/plans/1-restructure-config-subcommands.md +37 -0
  69. package/RAF/44-config-api-change/plans/2-move-preset-under-config.md +38 -0
  70. package/RAF/44-config-api-change/plans/3-update-existing-tests-for-config-api.md +38 -0
  71. package/RAF/44-config-api-change/plans/4-update-config-command-docs.md +36 -0
  72. package/RAF/44-config-api-change/plans/5-fix-codex-name-generation.md +49 -0
  73. package/RAF/45-signal-cairn/decisions.md +7 -0
  74. package/RAF/45-signal-cairn/input.md +2 -0
  75. package/RAF/45-signal-cairn/outcomes/1-rename-provider-to-harness.md +19 -0
  76. package/RAF/45-signal-cairn/outcomes/2-normalize-model-display-names.md +18 -0
  77. package/RAF/45-signal-cairn/plans/1-rename-provider-to-harness.md +40 -0
  78. package/RAF/45-signal-cairn/plans/2-normalize-model-display-names.md +41 -0
  79. package/RAF/45-signal-lantern/decisions.md +10 -0
  80. package/RAF/45-signal-lantern/input.md +2 -0
  81. package/RAF/45-signal-lantern/outcomes/1-add-effort-and-fast-to-do-model-display.md +15 -0
  82. package/RAF/45-signal-lantern/outcomes/2-capture-codex-post-run-token-usage.md +15 -0
  83. package/RAF/45-signal-lantern/outcomes/3-show-codex-token-summaries-without-fake-cost.md +14 -0
  84. package/RAF/45-signal-lantern/plans/1-add-effort-and-fast-to-do-model-display.md +38 -0
  85. package/RAF/45-signal-lantern/plans/2-capture-codex-post-run-token-usage.md +37 -0
  86. package/RAF/45-signal-lantern/plans/3-show-codex-token-summaries-without-fake-cost.md +40 -0
  87. package/RAF/46-lantern-arc/decisions.md +19 -0
  88. package/RAF/46-lantern-arc/input.md +6 -0
  89. package/RAF/46-lantern-arc/outcomes/1-remove-spark-alias.md +16 -0
  90. package/RAF/46-lantern-arc/outcomes/2-clean-up-worktree-plan-command.md +30 -0
  91. package/RAF/46-lantern-arc/outcomes/3-fix-token-usage-accumulation.md +32 -0
  92. package/RAF/46-lantern-arc/outcomes/4-display-effort-in-compact-mode.md +22 -0
  93. package/RAF/46-lantern-arc/outcomes/5-codex-fast-mode-research.md +38 -0
  94. package/RAF/46-lantern-arc/outcomes/6-optimize-llm-prompts.md +39 -0
  95. package/RAF/46-lantern-arc/plans/1-remove-spark-alias.md +38 -0
  96. package/RAF/46-lantern-arc/plans/2-clean-up-worktree-plan-command.md +33 -0
  97. package/RAF/46-lantern-arc/plans/3-fix-token-usage-accumulation.md +33 -0
  98. package/RAF/46-lantern-arc/plans/4-display-effort-in-compact-mode.md +28 -0
  99. package/RAF/46-lantern-arc/plans/5-codex-fast-mode-research.md +34 -0
  100. package/RAF/46-lantern-arc/plans/6-optimize-llm-prompts.md +48 -0
  101. package/RAF/47-signal-trim/decisions.md +13 -0
  102. package/RAF/47-signal-trim/input.md +2 -0
  103. package/RAF/47-signal-trim/plans/1-remove-cache-from-status.md +73 -0
  104. package/README.md +50 -63
  105. package/dist/commands/config.d.ts.map +1 -1
  106. package/dist/commands/config.js +47 -49
  107. package/dist/commands/config.js.map +1 -1
  108. package/dist/commands/do.d.ts +2 -0
  109. package/dist/commands/do.d.ts.map +1 -1
  110. package/dist/commands/do.js +91 -230
  111. package/dist/commands/do.js.map +1 -1
  112. package/dist/commands/plan.d.ts.map +1 -1
  113. package/dist/commands/plan.js +54 -259
  114. package/dist/commands/plan.js.map +1 -1
  115. package/dist/commands/preset.d.ts +3 -0
  116. package/dist/commands/preset.d.ts.map +1 -0
  117. package/dist/commands/preset.js +158 -0
  118. package/dist/commands/preset.js.map +1 -0
  119. package/dist/core/claude-runner.d.ts +2 -0
  120. package/dist/core/claude-runner.d.ts.map +1 -1
  121. package/dist/core/claude-runner.js +36 -12
  122. package/dist/core/claude-runner.js.map +1 -1
  123. package/dist/core/codex-runner.d.ts +1 -0
  124. package/dist/core/codex-runner.d.ts.map +1 -1
  125. package/dist/core/codex-runner.js +26 -7
  126. package/dist/core/codex-runner.js.map +1 -1
  127. package/dist/core/failure-analyzer.js +2 -1
  128. package/dist/core/failure-analyzer.js.map +1 -1
  129. package/dist/core/git.d.ts +2 -2
  130. package/dist/core/git.d.ts.map +1 -1
  131. package/dist/core/git.js +53 -3
  132. package/dist/core/git.js.map +1 -1
  133. package/dist/core/project-manager.d.ts.map +1 -1
  134. package/dist/core/project-manager.js +2 -2
  135. package/dist/core/project-manager.js.map +1 -1
  136. package/dist/core/pull-request.js +5 -5
  137. package/dist/core/pull-request.js.map +1 -1
  138. package/dist/core/runner-factory.d.ts +4 -4
  139. package/dist/core/runner-factory.d.ts.map +1 -1
  140. package/dist/core/runner-factory.js +8 -8
  141. package/dist/core/runner-factory.js.map +1 -1
  142. package/dist/core/runner-interface.d.ts +1 -1
  143. package/dist/core/runner-types.d.ts +17 -4
  144. package/dist/core/runner-types.d.ts.map +1 -1
  145. package/dist/core/state-derivation.js +3 -3
  146. package/dist/core/state-derivation.js.map +1 -1
  147. package/dist/parsers/codex-stream-renderer.d.ts +28 -4
  148. package/dist/parsers/codex-stream-renderer.d.ts.map +1 -1
  149. package/dist/parsers/codex-stream-renderer.js +110 -0
  150. package/dist/parsers/codex-stream-renderer.js.map +1 -1
  151. package/dist/prompts/amend.d.ts +0 -1
  152. package/dist/prompts/amend.d.ts.map +1 -1
  153. package/dist/prompts/amend.js +31 -104
  154. package/dist/prompts/amend.js.map +1 -1
  155. package/dist/prompts/execution.d.ts.map +1 -1
  156. package/dist/prompts/execution.js +17 -34
  157. package/dist/prompts/execution.js.map +1 -1
  158. package/dist/prompts/planning.d.ts.map +1 -1
  159. package/dist/prompts/planning.js +23 -123
  160. package/dist/prompts/planning.js.map +1 -1
  161. package/dist/types/config.d.ts +33 -32
  162. package/dist/types/config.d.ts.map +1 -1
  163. package/dist/types/config.js +14 -28
  164. package/dist/types/config.js.map +1 -1
  165. package/dist/utils/config.d.ts +36 -16
  166. package/dist/utils/config.d.ts.map +1 -1
  167. package/dist/utils/config.js +209 -104
  168. package/dist/utils/config.js.map +1 -1
  169. package/dist/utils/name-generator.d.ts.map +1 -1
  170. package/dist/utils/name-generator.js +25 -12
  171. package/dist/utils/name-generator.js.map +1 -1
  172. package/dist/utils/paths.d.ts +5 -0
  173. package/dist/utils/paths.d.ts.map +1 -1
  174. package/dist/utils/paths.js +9 -0
  175. package/dist/utils/paths.js.map +1 -1
  176. package/dist/utils/terminal-symbols.d.ts +15 -2
  177. package/dist/utils/terminal-symbols.d.ts.map +1 -1
  178. package/dist/utils/terminal-symbols.js +36 -4
  179. package/dist/utils/terminal-symbols.js.map +1 -1
  180. package/dist/utils/token-tracker.d.ts +6 -1
  181. package/dist/utils/token-tracker.d.ts.map +1 -1
  182. package/dist/utils/token-tracker.js +84 -51
  183. package/dist/utils/token-tracker.js.map +1 -1
  184. package/dist/utils/validation.d.ts +1 -2
  185. package/dist/utils/validation.d.ts.map +1 -1
  186. package/dist/utils/validation.js +4 -25
  187. package/dist/utils/validation.js.map +1 -1
  188. package/package.json +7 -2
  189. package/src/commands/config.ts +60 -63
  190. package/src/commands/do.ts +96 -262
  191. package/src/commands/plan.ts +55 -279
  192. package/src/commands/preset.ts +186 -0
  193. package/src/core/claude-runner.ts +45 -5
  194. package/src/core/codex-runner.ts +32 -7
  195. package/src/core/failure-analyzer.ts +2 -1
  196. package/src/core/git.ts +57 -3
  197. package/src/core/project-manager.ts +2 -1
  198. package/src/core/pull-request.ts +5 -5
  199. package/src/core/runner-factory.ts +9 -9
  200. package/src/core/runner-interface.ts +1 -1
  201. package/src/core/runner-types.ts +17 -4
  202. package/src/core/state-derivation.ts +3 -3
  203. package/src/parsers/codex-stream-renderer.ts +149 -4
  204. package/src/prompts/amend.ts +30 -105
  205. package/src/prompts/config-docs.md +206 -62
  206. package/src/prompts/execution.ts +17 -34
  207. package/src/prompts/planning.ts +23 -124
  208. package/src/types/config.ts +47 -59
  209. package/src/utils/config.ts +248 -115
  210. package/src/utils/name-generator.ts +29 -13
  211. package/src/utils/paths.ts +10 -0
  212. package/src/utils/terminal-symbols.ts +46 -6
  213. package/src/utils/token-tracker.ts +96 -57
  214. package/src/utils/validation.ts +5 -30
  215. package/tests/unit/amend-prompt.test.ts +3 -2
  216. package/tests/unit/claude-runner-interactive.test.ts +21 -3
  217. package/tests/unit/claude-runner.test.ts +39 -0
  218. package/tests/unit/codex-runner.test.ts +163 -0
  219. package/tests/unit/codex-stream-renderer.test.ts +127 -0
  220. package/tests/unit/command-output.test.ts +57 -0
  221. package/tests/unit/commit-planning-artifacts-worktree.test.ts +24 -7
  222. package/tests/unit/commit-planning-artifacts.test.ts +26 -4
  223. package/tests/unit/config-command.test.ts +215 -303
  224. package/tests/unit/config.test.ts +319 -235
  225. package/tests/unit/dependency-integration.test.ts +27 -1
  226. package/tests/unit/do-model-display.test.ts +35 -0
  227. package/tests/unit/execution-prompt.test.ts +49 -19
  228. package/tests/unit/name-generator.test.ts +82 -12
  229. package/tests/unit/plan-command-auto-flag.test.ts +7 -10
  230. package/tests/unit/plan-command.test.ts +14 -17
  231. package/tests/unit/planning-prompt.test.ts +9 -8
  232. package/tests/unit/terminal-symbols.test.ts +94 -3
  233. package/tests/unit/token-tracker.test.ts +180 -1
  234. package/tests/unit/validation.test.ts +9 -41
  235. package/tests/unit/worktree-flag-override.test.ts +0 -186
@@ -9,41 +9,26 @@ import { shutdownHandler } from '../core/shutdown-handler.js';
9
9
  import { commitPlanningArtifacts } from '../core/git.js';
10
10
  import { getPlanningPrompt } from '../prompts/planning.js';
11
11
  import { getAmendPrompt } from '../prompts/amend.js';
12
- import { validateEnvironment, reportValidation, validateProjectName, resolveModelOption, } from '../utils/validation.js';
12
+ import { validateEnvironment, reportValidation, validateProjectName, } from '../utils/validation.js';
13
13
  import { logger } from '../utils/logger.js';
14
- import { getWorktreeDefault, getModel, getModelShortName, getSyncMainBranch } from '../utils/config.js';
14
+ import { formatModelDisplay, getModel } from '../utils/config.js';
15
15
  import { generateProjectNames } from '../utils/name-generator.js';
16
16
  import { pickProjectName } from '../ui/name-picker.js';
17
- import { getPlansDir, getRafDir, getNextProjectNumber, formatProjectNumber, resolveProjectIdentifierWithDetails, getInputPath, getDecisionsPath, getOutcomesDir, extractTaskNameFromPlanFile, decodeTaskId, encodeTaskId, TASK_ID_PATTERN, } from '../utils/paths.js';
18
- import { sanitizeProjectName } from '../utils/validation.js';
17
+ import { getPlansDir, getRafDir, resolveProjectIdentifierWithDetails, getInputPath, extractTaskNameFromPlanFile, decodeTaskId, encodeTaskId, TASK_ID_PATTERN, numericFileSort, } from '../utils/paths.js';
19
18
  import { deriveProjectState, isProjectComplete, } from '../core/state-derivation.js';
20
- import { getRepoBasename, getRepoRoot, createWorktree, createWorktreeFromBranch, branchExists, validateWorktree, removeWorktree, computeWorktreeBaseDir, pullMainBranch, resolveWorktreeProjectByIdentifier, } from '../core/worktree.js';
19
+ import { getRepoBasename, getRepoRoot, validateWorktree, resolveWorktreeProjectByIdentifier, } from '../core/worktree.js';
21
20
  export function createPlanCommand() {
22
21
  const command = new Command('plan')
23
22
  .description('Create a new project and interactively plan tasks')
24
23
  .argument('[projectName]', 'Optional project name (will be prompted if not provided)')
25
24
  .option('-a, --amend', 'Add tasks to an existing project (requires project identifier as argument)')
26
- .option('-m, --model <name>', 'Model to use (sonnet, haiku, opus)')
27
- .option('--sonnet', 'Use Sonnet model (shorthand for --model sonnet)')
28
25
  .option('-y, --auto', 'Skip permission prompts for file operations')
29
- .option('-w, --worktree', 'Create a git worktree for isolated planning')
30
- .option('--no-worktree', 'Disable worktree mode (overrides config)')
31
26
  .option('-r, --resume <identifier>', 'Resume a planning session for an existing project')
32
- .option('-p, --provider <provider>', 'CLI provider to use (claude, codex)')
33
27
  .action(async (projectName, options) => {
34
- // Validate and resolve model option
35
- let model;
36
- try {
37
- model = resolveModelOption(options.model, options.sonnet, 'plan');
38
- }
39
- catch (error) {
40
- logger.error(error.message);
41
- process.exit(1);
42
- }
28
+ const modelEntry = getModel('plan');
43
29
  const autoMode = options.auto ?? false;
44
- const worktreeMode = options.worktree ?? getWorktreeDefault();
45
30
  if (options.resume) {
46
- await runResumeCommand(options.resume, model);
31
+ await runResumeCommand(options.resume, modelEntry);
47
32
  }
48
33
  else if (options.amend) {
49
34
  if (!projectName) {
@@ -52,15 +37,15 @@ export function createPlanCommand() {
52
37
  logger.error(' or: raf plan --amend <project>');
53
38
  process.exit(1);
54
39
  }
55
- await runAmendCommand(projectName, model, autoMode, worktreeMode);
40
+ await runAmendCommand(projectName, modelEntry, autoMode);
56
41
  }
57
42
  else {
58
- await runPlanCommand(projectName, model, autoMode, worktreeMode);
43
+ await runPlanCommand(projectName, modelEntry, autoMode);
59
44
  }
60
45
  });
61
46
  return command;
62
47
  }
63
- async function runPlanCommand(projectName, model, autoMode = false, worktreeMode = false) {
48
+ async function runPlanCommand(projectName, modelEntry, autoMode = false) {
64
49
  // Validate environment
65
50
  const validation = validateEnvironment();
66
51
  reportValidation(validation);
@@ -73,7 +58,6 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
73
58
  const rafDir = getRafDir();
74
59
  const mainResult = resolveProjectIdentifierWithDetails(rafDir, projectName);
75
60
  let existingFolder = null;
76
- let existingWorktreeMode = false;
77
61
  if (mainResult.path) {
78
62
  existingFolder = path.basename(mainResult.path);
79
63
  }
@@ -83,7 +67,6 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
83
67
  const wtResult = resolveWorktreeProjectByIdentifier(repoBasename, projectName);
84
68
  if (wtResult) {
85
69
  existingFolder = wtResult.folder;
86
- existingWorktreeMode = true;
87
70
  }
88
71
  }
89
72
  }
@@ -99,7 +82,7 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
99
82
  ],
100
83
  });
101
84
  if (answer === 'amend') {
102
- await runAmendCommand(existingFolder, model, autoMode, existingWorktreeMode);
85
+ await runAmendCommand(existingFolder, modelEntry, autoMode);
103
86
  return;
104
87
  }
105
88
  else if (answer === 'cancel') {
@@ -109,14 +92,6 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
109
92
  // 'create': fall through to normal project creation
110
93
  }
111
94
  }
112
- // Validate git repo for worktree mode
113
- if (worktreeMode) {
114
- const repoRoot = getRepoRoot();
115
- if (!repoRoot) {
116
- logger.error('--worktree requires a git repository');
117
- process.exit(1);
118
- }
119
- }
120
95
  // Open editor for user input
121
96
  logger.info('Opening editor for project description...');
122
97
  logger.info('(Save and close the editor when done)');
@@ -141,7 +116,8 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
141
116
  // Get or generate project name
142
117
  let finalProjectName = projectName;
143
118
  if (!finalProjectName) {
144
- const nameModel = getModelShortName(getModel('nameGeneration'));
119
+ const nameEntry = getModel('nameGeneration');
120
+ const nameModel = formatModelDisplay(nameEntry.model);
145
121
  logger.info(`Generating project name suggestions with ${nameModel}...`);
146
122
  const suggestedNames = await generateProjectNames(cleanInput);
147
123
  logger.newline();
@@ -159,93 +135,27 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
159
135
  logger.error('Invalid project name. Use only letters, numbers, hyphens, and underscores.');
160
136
  process.exit(1);
161
137
  }
162
- let projectPath;
163
- let worktreePath = null;
164
- let worktreeBranch = null;
165
- if (worktreeMode) {
166
- // Worktree mode: create worktree, then project folder inside it
167
- const repoBasename = getRepoBasename();
168
- const repoRoot = getRepoRoot();
169
- const rafDir = getRafDir();
170
- // Sync main branch before creating worktree (if enabled)
171
- if (getSyncMainBranch()) {
172
- const syncResult = pullMainBranch();
173
- if (syncResult.success) {
174
- if (syncResult.hadChanges) {
175
- logger.info(`Synced ${syncResult.mainBranch} from remote`);
176
- }
177
- }
178
- else {
179
- logger.warn(`Could not sync main branch: ${syncResult.error}`);
180
- }
181
- }
182
- // Compute project number from main repo's RAF directory (scan worktrees too)
183
- const projectNumber = getNextProjectNumber(rafDir, repoBasename);
184
- const sanitizedName = sanitizeProjectName(finalProjectName);
185
- const folderName = `${formatProjectNumber(projectNumber)}-${sanitizedName}`;
186
- // Create worktree
187
- const result = createWorktree(repoBasename, folderName);
188
- if (!result.success) {
189
- logger.error(`Failed to create worktree: ${result.error}`);
190
- process.exit(1);
191
- }
192
- worktreePath = result.worktreePath;
193
- worktreeBranch = result.branch;
194
- // Compute project path inside worktree at the same relative path
195
- const rafRelativePath = path.relative(repoRoot, rafDir);
196
- projectPath = path.join(worktreePath, rafRelativePath, folderName);
197
- // Create project folder structure inside the worktree
198
- fs.mkdirSync(projectPath, { recursive: true });
199
- fs.mkdirSync(getPlansDir(projectPath), { recursive: true });
200
- fs.mkdirSync(getOutcomesDir(projectPath), { recursive: true });
201
- fs.writeFileSync(getDecisionsPath(projectPath), '# Project Decisions\n');
202
- // Save input inside worktree project folder
203
- fs.writeFileSync(getInputPath(projectPath), userInput);
204
- logger.success(`Created worktree: ${worktreePath}`);
205
- logger.success(`Branch: ${worktreeBranch}`);
206
- logger.success(`Project: ${projectPath}`);
207
- logger.newline();
208
- }
209
- else {
210
- // Standard mode: create project in main repo
211
- const projectManager = new ProjectManager();
212
- projectPath = projectManager.createProject(finalProjectName);
213
- logger.success(`Created project: ${projectPath}`);
214
- logger.newline();
215
- // Save input
216
- projectManager.saveInput(projectPath, userInput);
217
- }
138
+ // Standard mode: create project in main repo
139
+ const projectManager = new ProjectManager();
140
+ const projectPath = projectManager.createProject(finalProjectName);
141
+ logger.success(`Created project: ${projectPath}`);
142
+ logger.newline();
143
+ // Save input
144
+ projectManager.saveInput(projectPath, userInput);
218
145
  // Set up shutdown handler
219
- const claudeRunner = createRunner({ model });
146
+ const claudeRunner = createRunner({ model: modelEntry?.model, harness: modelEntry?.harness, reasoningEffort: modelEntry?.reasoningEffort, fast: modelEntry?.fast });
220
147
  shutdownHandler.init();
221
148
  shutdownHandler.registerClaudeRunner(claudeRunner);
222
149
  // Register cleanup callback
223
150
  shutdownHandler.onShutdown(() => {
224
- if (worktreeMode && worktreePath) {
225
- // Clean up worktree if no plans were created
226
- const plansDir = getPlansDir(projectPath);
227
- const hasPlanFiles = fs.existsSync(plansDir) &&
228
- fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).length > 0;
229
- if (!hasPlanFiles) {
230
- const removal = removeWorktree(worktreePath);
231
- if (removal.success) {
232
- logger.debug(`Cleaned up worktree: ${worktreePath}`);
233
- }
234
- else {
235
- logger.warn(`Failed to clean up worktree: ${removal.error}`);
236
- }
237
- }
238
- }
239
- else {
240
- const projectManager = new ProjectManager();
241
- projectManager.cleanupEmptyProject(projectPath);
242
- }
151
+ const projectManager = new ProjectManager();
152
+ projectManager.cleanupEmptyProject(projectPath);
243
153
  });
244
154
  // Run planning session
245
155
  logger.info('Starting planning session...');
246
156
  logger.info('The planner will interview you about each task.');
247
- if (model) {
248
- logger.info(`Using model: ${model}`);
157
+ if (modelEntry) {
158
+ logger.info(`Using model: ${formatModelDisplay(modelEntry.model, modelEntry.harness, { includeHarness: true })}`);
249
159
  }
250
160
  if (autoMode) {
251
161
  logger.warn('Auto mode enabled: permission prompts will be skipped.');
@@ -254,13 +164,10 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
254
164
  const { systemPrompt, userMessage } = getPlanningPrompt({
255
165
  projectPath,
256
166
  inputContent: userInput,
257
- worktreeMode,
258
167
  });
259
168
  try {
260
169
  const exitCode = await claudeRunner.runInteractive(systemPrompt, userMessage, {
261
170
  dangerouslySkipPermissions: autoMode,
262
- // Run session in the worktree root if in worktree mode
263
- cwd: worktreePath ?? undefined,
264
171
  });
265
172
  if (exitCode !== 0) {
266
173
  logger.warn(`Process exited with code ${exitCode}`);
@@ -268,7 +175,7 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
268
175
  // Check for created plan files
269
176
  const plansDir = getPlansDir(projectPath);
270
177
  const planFiles = fs.existsSync(plansDir)
271
- ? fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).sort()
178
+ ? fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).sort(numericFileSort)
272
179
  : [];
273
180
  if (planFiles.length === 0) {
274
181
  logger.warn('No plan files were created.');
@@ -284,18 +191,10 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
284
191
  // Commit planning artifacts (input.md, decisions.md, and plan files)
285
192
  const planAbsolutePaths = planFiles.map((f) => path.join(plansDir, f));
286
193
  await commitPlanningArtifacts(projectPath, {
287
- cwd: worktreePath ?? undefined,
288
194
  additionalFiles: planAbsolutePaths,
289
195
  });
290
196
  logger.newline();
291
- if (worktreeMode) {
292
- logger.info(`Worktree: ${worktreePath}`);
293
- logger.info(`Branch: ${worktreeBranch}`);
294
- logger.info(`Run 'raf do ${finalProjectName} --worktree' to execute the plans.`);
295
- }
296
- else {
297
- logger.info(`Run 'raf do ${finalProjectName}' to execute the plans.`);
298
- }
197
+ logger.info(`Run 'raf do ${finalProjectName}' to execute the plans.`);
299
198
  }
300
199
  }
301
200
  catch (error) {
@@ -303,133 +202,35 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
303
202
  throw error;
304
203
  }
305
204
  finally {
306
- if (worktreeMode && worktreePath) {
307
- // Clean up worktree if no plans were created
308
- const plansDir = getPlansDir(projectPath);
309
- const hasPlanFiles = fs.existsSync(plansDir) &&
310
- fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).length > 0;
311
- if (!hasPlanFiles) {
312
- const removal = removeWorktree(worktreePath);
313
- if (removal.success) {
314
- logger.debug(`Cleaned up worktree: ${worktreePath}`);
315
- }
316
- else {
317
- logger.warn(`Failed to clean up worktree: ${removal.error}`);
318
- }
319
- }
320
- }
321
- else if (!worktreeMode) {
322
- // Cleanup empty project folder if no plans were created (standard mode only)
323
- const projectManager = new ProjectManager();
324
- projectManager.cleanupEmptyProject(projectPath);
325
- }
205
+ // Cleanup empty project folder if no plans were created
206
+ const projectManager = new ProjectManager();
207
+ projectManager.cleanupEmptyProject(projectPath);
326
208
  }
327
209
  }
328
- async function runAmendCommand(identifier, model, autoMode = false, worktreeMode = false) {
210
+ async function runAmendCommand(identifier, modelEntry, autoMode = false) {
329
211
  // Validate environment
330
212
  const validation = validateEnvironment();
331
213
  reportValidation(validation);
332
214
  if (!validation.valid) {
333
215
  process.exit(1);
334
216
  }
217
+ // Auto-detect project location: check worktrees first, then main repo
335
218
  let worktreePath = null;
336
219
  let projectPath;
337
- if (worktreeMode) {
338
- // Worktree mode: resolve project from worktree directory
339
- const repoBasename = getRepoBasename();
340
- if (!repoBasename) {
341
- logger.error('--worktree requires a git repository');
342
- process.exit(1);
343
- }
344
- const repoRoot = getRepoRoot();
345
- const rafDir = getRafDir();
346
- const rafRelativePath = path.relative(repoRoot, rafDir);
347
- const worktreeBaseDir = computeWorktreeBaseDir(repoBasename);
348
- // Search through existing worktree directories for the project
349
- let matchedWorktreeDir = null;
350
- let matchedProjectPath = null;
351
- if (fs.existsSync(worktreeBaseDir)) {
352
- const entries = fs.readdirSync(worktreeBaseDir, { withFileTypes: true });
353
- for (const entry of entries) {
354
- if (!entry.isDirectory())
355
- continue;
356
- const wtPath = path.join(worktreeBaseDir, entry.name);
357
- const wtRafDir = path.join(wtPath, rafRelativePath);
358
- if (!fs.existsSync(wtRafDir))
359
- continue;
360
- const resolution = resolveProjectIdentifierWithDetails(wtRafDir, identifier);
361
- if (resolution.path) {
362
- if (matchedWorktreeDir) {
363
- logger.error(`Ambiguous: project "${identifier}" found in multiple worktrees`);
364
- process.exit(1);
365
- }
366
- matchedWorktreeDir = wtPath;
367
- matchedProjectPath = resolution.path;
368
- }
369
- }
370
- }
371
- if (!matchedWorktreeDir || !matchedProjectPath) {
372
- // Worktree not found — try to recreate it
373
- // First, resolve the project from the main repo to get the folder name
374
- const mainResolution = resolveProjectIdentifierWithDetails(rafDir, identifier);
375
- if (!mainResolution.path) {
376
- logger.error(`Project not found in any worktree or main repo: ${identifier}`);
377
- logger.error(`Searched in: ${worktreeBaseDir}`);
378
- process.exit(1);
379
- }
380
- const folderName = path.basename(mainResolution.path);
381
- if (branchExists(folderName)) {
382
- // Branch exists — recreate worktree from it
383
- const result = createWorktreeFromBranch(repoBasename, folderName);
384
- if (!result.success) {
385
- logger.error(`Failed to recreate worktree from branch: ${result.error}`);
386
- process.exit(1);
387
- }
388
- matchedWorktreeDir = result.worktreePath;
389
- matchedProjectPath = path.join(result.worktreePath, rafRelativePath, folderName);
390
- logger.info(`Recreated worktree from branch: ${folderName}`);
391
- }
392
- else {
393
- // No branch — create fresh worktree and copy project files
394
- // Sync main branch before creating worktree (if enabled)
395
- if (getSyncMainBranch()) {
396
- const syncResult = pullMainBranch();
397
- if (syncResult.success) {
398
- if (syncResult.hadChanges) {
399
- logger.info(`Synced ${syncResult.mainBranch} from remote`);
400
- }
401
- }
402
- else {
403
- logger.warn(`Could not sync main branch: ${syncResult.error}`);
404
- }
405
- }
406
- const result = createWorktree(repoBasename, folderName);
407
- if (!result.success) {
408
- logger.error(`Failed to create worktree: ${result.error}`);
409
- process.exit(1);
410
- }
411
- matchedWorktreeDir = result.worktreePath;
412
- const wtProjectPath = path.join(result.worktreePath, rafRelativePath, folderName);
413
- // Copy project folder from main repo into the new worktree
414
- fs.cpSync(mainResolution.path, wtProjectPath, { recursive: true });
415
- matchedProjectPath = wtProjectPath;
416
- logger.info(`Created fresh worktree and copied project files: ${folderName}`);
417
- }
418
- }
419
- worktreePath = matchedWorktreeDir;
420
- projectPath = matchedProjectPath;
421
- // Validate the worktree is valid
422
- const relProjectPath = path.relative(worktreePath, projectPath);
423
- const wtValidation = validateWorktree(worktreePath, relProjectPath);
424
- if (!wtValidation.isValidWorktree) {
425
- logger.error(`Invalid worktree at: ${worktreePath}`);
426
- logger.error('The worktree may have been removed or corrupted.');
427
- process.exit(1);
220
+ const repoBasename = getRepoBasename();
221
+ const rafDir = getRafDir();
222
+ // 1. Try worktree resolution first (if we're in a git repo)
223
+ if (repoBasename) {
224
+ const wtResult = resolveWorktreeProjectByIdentifier(repoBasename, identifier);
225
+ if (wtResult) {
226
+ const repoRoot = getRepoRoot();
227
+ const rafRelativePath = path.relative(repoRoot, rafDir);
228
+ worktreePath = wtResult.worktreeRoot;
229
+ projectPath = path.join(wtResult.worktreeRoot, rafRelativePath, wtResult.folder);
428
230
  }
429
231
  }
430
- else {
431
- // Standard mode: resolve from main repo
432
- const rafDir = getRafDir();
232
+ // 2. Fall back to main repo
233
+ if (!projectPath) {
433
234
  const resolution = resolveProjectIdentifierWithDetails(rafDir, identifier);
434
235
  if (!resolution.path) {
435
236
  if (resolution.error === 'ambiguous' && resolution.matches) {
@@ -476,7 +277,7 @@ async function runAmendCommand(identifier, model, autoMode = false, worktreeMode
476
277
  // Show existing tasks summary
477
278
  logger.info('Amending existing project:');
478
279
  logger.info(` Path: ${projectPath}`);
479
- if (worktreeMode && worktreePath) {
280
+ if (worktreePath) {
480
281
  logger.info(` Worktree: ${worktreePath}`);
481
282
  }
482
283
  logger.info(` Existing tasks: ${existingTasks.length}`);
@@ -516,14 +317,14 @@ async function runAmendCommand(identifier, model, autoMode = false, worktreeMode
516
317
  : cleanInput;
517
318
  fs.writeFileSync(inputPath, updatedInput);
518
319
  // Set up shutdown handler
519
- const claudeRunner = createRunner({ model });
320
+ const claudeRunner = createRunner({ model: modelEntry?.model, harness: modelEntry?.harness, reasoningEffort: modelEntry?.reasoningEffort, fast: modelEntry?.fast });
520
321
  shutdownHandler.init();
521
322
  shutdownHandler.registerClaudeRunner(claudeRunner);
522
323
  // Run amend planning session
523
324
  logger.info('Starting amendment session...');
524
325
  logger.info('The planner will interview you about each new task.');
525
- if (model) {
526
- logger.info(`Using model: ${model}`);
326
+ if (modelEntry) {
327
+ logger.info(`Using model: ${formatModelDisplay(modelEntry.model, modelEntry.harness, { includeHarness: true })}`);
527
328
  }
528
329
  if (autoMode) {
529
330
  logger.warn('Auto mode enabled: permission prompts will be skipped.');
@@ -534,7 +335,6 @@ async function runAmendCommand(identifier, model, autoMode = false, worktreeMode
534
335
  existingTasks,
535
336
  nextTaskNumber,
536
337
  newTaskDescription: cleanInput,
537
- worktreeMode,
538
338
  });
539
339
  try {
540
340
  const exitCode = await claudeRunner.runInteractive(systemPrompt, userMessage, {
@@ -547,7 +347,7 @@ async function runAmendCommand(identifier, model, autoMode = false, worktreeMode
547
347
  }
548
348
  // Check for new plan files
549
349
  const allPlanFiles = fs.existsSync(plansDir)
550
- ? fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).sort()
350
+ ? fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).sort(numericFileSort)
551
351
  : [];
552
352
  const newPlanFiles = allPlanFiles.filter((f) => {
553
353
  const match = f.match(new RegExp(`^(${TASK_ID_PATTERN})-`));
@@ -579,12 +379,7 @@ async function runAmendCommand(identifier, model, autoMode = false, worktreeMode
579
379
  if (newPlanFiles.length > 0) {
580
380
  logger.newline();
581
381
  logger.info(`Total tasks: ${allPlanFiles.length}`);
582
- if (worktreeMode) {
583
- logger.info(`Run 'raf do ${identifier} --worktree' to execute the new tasks.`);
584
- }
585
- else {
586
- logger.info(`Run 'raf do ${identifier}' to execute the new tasks.`);
587
- }
382
+ logger.info(`Run 'raf do ${identifier}' to execute the new tasks.`);
588
383
  }
589
384
  }
590
385
  catch (error) {
@@ -616,7 +411,7 @@ ${taskList}
616
411
  # Describe what you want to add below:
617
412
  `;
618
413
  }
619
- async function runResumeCommand(identifier, model) {
414
+ async function runResumeCommand(identifier, modelEntry) {
620
415
  // Validate environment
621
416
  const validation = validateEnvironment();
622
417
  reportValidation(validation);
@@ -672,12 +467,12 @@ async function runResumeCommand(identifier, model) {
672
467
  resumeCwd = projectPath; // Use main repo project path as CWD
673
468
  }
674
469
  logger.info(`Project: ${folderName}`);
675
- if (model) {
676
- logger.info(`Model: ${model}`);
470
+ if (modelEntry) {
471
+ logger.info(`Model: ${formatModelDisplay(modelEntry.model, modelEntry.harness, { includeHarness: true })}`);
677
472
  }
678
473
  logger.newline();
679
474
  // Set up shutdown handler
680
- const claudeRunner = createRunner({ model });
475
+ const claudeRunner = createRunner({ model: modelEntry?.model, harness: modelEntry?.harness, reasoningEffort: modelEntry?.reasoningEffort, fast: modelEntry?.fast });
681
476
  shutdownHandler.init();
682
477
  shutdownHandler.registerClaudeRunner(claudeRunner);
683
478
  // Launch session resume picker
@@ -691,7 +486,7 @@ async function runResumeCommand(identifier, model) {
691
486
  // Check for created/updated plan files after resume session
692
487
  const plansDir = getPlansDir(projectPath);
693
488
  const planFiles = fs.existsSync(plansDir)
694
- ? fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).sort()
489
+ ? fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).sort(numericFileSort)
695
490
  : [];
696
491
  if (planFiles.length > 0) {
697
492
  logger.newline();
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createPresetCommand(): Command;
3
+ //# sourceMappingURL=preset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/commands/preset.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6JpC,wBAAgB,mBAAmB,IAAI,OAAO,CAyB7C"}