rafcode 2.2.0 → 2.4.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 (125) hide show
  1. package/CLAUDE.md +19 -4
  2. package/RAF/ahtahs-token-reaper/decisions.md +37 -0
  3. package/RAF/ahtahs-token-reaper/input.md +20 -0
  4. package/RAF/ahtahs-token-reaper/outcomes/01-extend-token-tracker-data-model.md +42 -0
  5. package/RAF/ahtahs-token-reaper/outcomes/02-accumulate-usage-in-retry-loop.md +31 -0
  6. package/RAF/ahtahs-token-reaper/outcomes/03-per-attempt-display-formatting.md +60 -0
  7. package/RAF/ahtahs-token-reaper/outcomes/04-add-model-name-to-claude-call-logs.md +57 -0
  8. package/RAF/ahtahs-token-reaper/outcomes/05-handle-invalid-config-in-raf-config.md +46 -0
  9. package/RAF/ahtahs-token-reaper/outcomes/06-fix-verbose-toggle-timer-display.md +38 -0
  10. package/RAF/ahtahs-token-reaper/plans/01-extend-token-tracker-data-model.md +36 -0
  11. package/RAF/ahtahs-token-reaper/plans/02-accumulate-usage-in-retry-loop.md +36 -0
  12. package/RAF/ahtahs-token-reaper/plans/03-per-attempt-display-formatting.md +43 -0
  13. package/RAF/ahtahs-token-reaper/plans/04-add-model-name-to-claude-call-logs.md +38 -0
  14. package/RAF/ahtahs-token-reaper/plans/05-handle-invalid-config-in-raf-config.md +36 -0
  15. package/RAF/ahtahs-token-reaper/plans/06-fix-verbose-toggle-timer-display.md +40 -0
  16. package/RAF/ahvrih-rate-forge/decisions.md +70 -0
  17. package/RAF/ahvrih-rate-forge/input.md +44 -0
  18. package/RAF/ahvrih-rate-forge/outcomes/01-remove-claude-command-config.md +58 -0
  19. package/RAF/ahvrih-rate-forge/outcomes/02-fix-mixed-attempt-cost.md +46 -0
  20. package/RAF/ahvrih-rate-forge/outcomes/03-rate-limit-estimation.md +82 -0
  21. package/RAF/ahvrih-rate-forge/outcomes/04-show-version-in-do-logs.md +45 -0
  22. package/RAF/ahvrih-rate-forge/outcomes/05-sync-main-before-worktree.md +96 -0
  23. package/RAF/ahvrih-rate-forge/outcomes/06-sync-readme-with-codebase.md +45 -0
  24. package/RAF/ahvrih-rate-forge/outcomes/07-no-session-persistence.md +26 -0
  25. package/RAF/ahvrih-rate-forge/outcomes/08-plan-execution-metadata.md +130 -0
  26. package/RAF/ahvrih-rate-forge/plans/01-remove-claude-command-config.md +36 -0
  27. package/RAF/ahvrih-rate-forge/plans/02-fix-mixed-attempt-cost.md +33 -0
  28. package/RAF/ahvrih-rate-forge/plans/03-rate-limit-estimation.md +82 -0
  29. package/RAF/ahvrih-rate-forge/plans/04-show-version-in-do-logs.md +32 -0
  30. package/RAF/ahvrih-rate-forge/plans/05-sync-main-before-worktree.md +40 -0
  31. package/RAF/ahvrih-rate-forge/plans/06-sync-readme-with-codebase.md +61 -0
  32. package/RAF/ahvrih-rate-forge/plans/07-no-session-persistence.md +28 -0
  33. package/RAF/ahvrih-rate-forge/plans/08-plan-execution-metadata.md +123 -0
  34. package/README.md +27 -7
  35. package/dist/commands/config.d.ts.map +1 -1
  36. package/dist/commands/config.js +24 -7
  37. package/dist/commands/config.js.map +1 -1
  38. package/dist/commands/do.d.ts.map +1 -1
  39. package/dist/commands/do.js +122 -27
  40. package/dist/commands/do.js.map +1 -1
  41. package/dist/commands/plan.d.ts.map +1 -1
  42. package/dist/commands/plan.js +79 -3
  43. package/dist/commands/plan.js.map +1 -1
  44. package/dist/core/claude-runner.d.ts +6 -6
  45. package/dist/core/claude-runner.d.ts.map +1 -1
  46. package/dist/core/claude-runner.js +9 -10
  47. package/dist/core/claude-runner.js.map +1 -1
  48. package/dist/core/failure-analyzer.d.ts.map +1 -1
  49. package/dist/core/failure-analyzer.js +3 -3
  50. package/dist/core/failure-analyzer.js.map +1 -1
  51. package/dist/core/pull-request.d.ts.map +1 -1
  52. package/dist/core/pull-request.js +5 -3
  53. package/dist/core/pull-request.js.map +1 -1
  54. package/dist/core/state-derivation.d.ts +5 -0
  55. package/dist/core/state-derivation.d.ts.map +1 -1
  56. package/dist/core/state-derivation.js +14 -4
  57. package/dist/core/state-derivation.js.map +1 -1
  58. package/dist/core/worktree.d.ts +32 -0
  59. package/dist/core/worktree.d.ts.map +1 -1
  60. package/dist/core/worktree.js +215 -0
  61. package/dist/core/worktree.js.map +1 -1
  62. package/dist/prompts/amend.d.ts.map +1 -1
  63. package/dist/prompts/amend.js +26 -11
  64. package/dist/prompts/amend.js.map +1 -1
  65. package/dist/prompts/planning.d.ts.map +1 -1
  66. package/dist/prompts/planning.js +26 -11
  67. package/dist/prompts/planning.js.map +1 -1
  68. package/dist/types/config.d.ts +30 -13
  69. package/dist/types/config.d.ts.map +1 -1
  70. package/dist/types/config.js +14 -10
  71. package/dist/types/config.js.map +1 -1
  72. package/dist/utils/config.d.ts +53 -4
  73. package/dist/utils/config.d.ts.map +1 -1
  74. package/dist/utils/config.js +197 -30
  75. package/dist/utils/config.js.map +1 -1
  76. package/dist/utils/frontmatter.d.ts +43 -0
  77. package/dist/utils/frontmatter.d.ts.map +1 -0
  78. package/dist/utils/frontmatter.js +85 -0
  79. package/dist/utils/frontmatter.js.map +1 -0
  80. package/dist/utils/name-generator.d.ts.map +1 -1
  81. package/dist/utils/name-generator.js +2 -3
  82. package/dist/utils/name-generator.js.map +1 -1
  83. package/dist/utils/session-parser.d.ts +44 -0
  84. package/dist/utils/session-parser.d.ts.map +1 -0
  85. package/dist/utils/session-parser.js +122 -0
  86. package/dist/utils/session-parser.js.map +1 -0
  87. package/dist/utils/terminal-symbols.d.ts +28 -5
  88. package/dist/utils/terminal-symbols.d.ts.map +1 -1
  89. package/dist/utils/terminal-symbols.js +77 -18
  90. package/dist/utils/terminal-symbols.js.map +1 -1
  91. package/dist/utils/token-tracker.d.ts +31 -1
  92. package/dist/utils/token-tracker.d.ts.map +1 -1
  93. package/dist/utils/token-tracker.js +94 -4
  94. package/dist/utils/token-tracker.js.map +1 -1
  95. package/package.json +1 -1
  96. package/src/commands/config.ts +26 -7
  97. package/src/commands/do.ts +157 -29
  98. package/src/commands/plan.ts +89 -2
  99. package/src/core/claude-runner.ts +16 -17
  100. package/src/core/failure-analyzer.ts +3 -3
  101. package/src/core/pull-request.ts +5 -3
  102. package/src/core/state-derivation.ts +20 -4
  103. package/src/core/worktree.ts +230 -0
  104. package/src/prompts/amend.ts +26 -11
  105. package/src/prompts/config-docs.md +91 -29
  106. package/src/prompts/planning.ts +26 -11
  107. package/src/types/config.ts +46 -21
  108. package/src/utils/config.ts +222 -33
  109. package/src/utils/frontmatter.ts +110 -0
  110. package/src/utils/name-generator.ts +2 -3
  111. package/src/utils/session-parser.ts +161 -0
  112. package/src/utils/terminal-symbols.ts +105 -18
  113. package/src/utils/token-tracker.ts +109 -4
  114. package/tests/unit/claude-runner-interactive.test.ts +8 -6
  115. package/tests/unit/claude-runner.test.ts +5 -66
  116. package/tests/unit/config-command.test.ts +84 -5
  117. package/tests/unit/config.test.ts +292 -45
  118. package/tests/unit/frontmatter.test.ts +182 -0
  119. package/tests/unit/post-execution-picker.test.ts +5 -0
  120. package/tests/unit/session-parser.test.ts +301 -0
  121. package/tests/unit/terminal-symbols.test.ts +263 -33
  122. package/tests/unit/timer-verbose-integration.test.ts +170 -0
  123. package/tests/unit/token-tracker.test.ts +653 -17
  124. package/tests/unit/validation.test.ts +6 -4
  125. package/tests/unit/worktree.test.ts +242 -0
@@ -12,7 +12,8 @@ import { validatePlansExist, resolveModelOption } from '../utils/validation.js';
12
12
  import { getRafDir, extractProjectNumber, extractProjectName, extractTaskNameFromPlanFile, resolveProjectIdentifierWithDetails, getOutcomeFilePath, parseProjectPrefix } from '../utils/paths.js';
13
13
  import { pickPendingProject, getPendingProjects, getPendingWorktreeProjects } from '../ui/project-picker.js';
14
14
  import { logger } from '../utils/logger.js';
15
- import { getConfig, getEffort, getWorktreeDefault } from '../utils/config.js';
15
+ import { getConfig, getWorktreeDefault, getModel, getModelShortName, resolveFullModelId, getSyncMainBranch, resolveEffortToModel, applyModelCeiling } from '../utils/config.js';
16
+ import { getVersion } from '../utils/version.js';
16
17
  import { createTaskTimer, formatElapsedTime } from '../utils/timer.js';
17
18
  import { createStatusLine } from '../utils/status-line.js';
18
19
  import { formatProjectHeader, formatSummary, formatTaskProgress, formatTaskTokenSummary, formatTokenTotalSummary, } from '../utils/terminal-symbols.js';
@@ -20,8 +21,53 @@ import { TokenTracker } from '../utils/token-tracker.js';
20
21
  import { VerboseToggle } from '../utils/verbose-toggle.js';
21
22
  import { deriveProjectState, discoverProjects, getNextExecutableTask, getDerivedStats, getDerivedStatsForTasks, isProjectComplete, hasProjectFailed, parseOutcomeStatus, } from '../core/state-derivation.js';
22
23
  import { analyzeFailure } from '../core/failure-analyzer.js';
23
- import { getRepoRoot, getRepoBasename, getCurrentBranch, computeWorktreePath, computeWorktreeBaseDir, validateWorktree, listWorktreeProjects, mergeWorktreeBranch, removeWorktree, resolveWorktreeProjectByIdentifier, } from '../core/worktree.js';
24
+ import { getRepoRoot, getRepoBasename, getCurrentBranch, computeWorktreePath, computeWorktreeBaseDir, validateWorktree, listWorktreeProjects, mergeWorktreeBranch, removeWorktree, resolveWorktreeProjectByIdentifier, pushMainBranch, pullMainBranch, } from '../core/worktree.js';
24
25
  import { createPullRequest, prPreflight } from '../core/pull-request.js';
26
+ /**
27
+ * Resolve the execution model for a task from its frontmatter metadata.
28
+ *
29
+ * Resolution order:
30
+ * 1. Explicit `model` in frontmatter (subject to ceiling)
31
+ * 2. `effort` in frontmatter resolved via effortMapping (subject to ceiling)
32
+ * 3. Fallback to models.execute (the ceiling, with a warning)
33
+ *
34
+ * @param frontmatter - Parsed frontmatter from the plan file
35
+ * @param frontmatterWarnings - Warnings from frontmatter parsing
36
+ * @param ceilingModel - The ceiling model (usually models.execute from config)
37
+ * @param isRetry - Whether this is a retry attempt (escalates to ceiling)
38
+ */
39
+ function resolveTaskModel(frontmatter, frontmatterWarnings, ceilingModel, isRetry) {
40
+ const warnings = frontmatterWarnings ? [...frontmatterWarnings] : [];
41
+ // Retry escalation: always use the ceiling model on retry
42
+ if (isRetry) {
43
+ return { model: ceilingModel, missingFrontmatter: false, warnings };
44
+ }
45
+ // No frontmatter - fallback to ceiling with warning
46
+ if (!frontmatter) {
47
+ return {
48
+ model: ceilingModel,
49
+ missingFrontmatter: true,
50
+ warnings,
51
+ };
52
+ }
53
+ // Explicit model in frontmatter - apply ceiling
54
+ if (frontmatter.model) {
55
+ const model = applyModelCeiling(frontmatter.model, ceilingModel);
56
+ return { model, missingFrontmatter: false, warnings };
57
+ }
58
+ // Effort-based resolution - apply ceiling
59
+ if (frontmatter.effort) {
60
+ const mappedModel = resolveEffortToModel(frontmatter.effort);
61
+ const model = applyModelCeiling(mappedModel, ceilingModel);
62
+ return { model, missingFrontmatter: false, warnings };
63
+ }
64
+ // Frontmatter present but no effort or model - fallback to ceiling with warning
65
+ return {
66
+ model: ceilingModel,
67
+ missingFrontmatter: true,
68
+ warnings,
69
+ };
70
+ }
25
71
  /**
26
72
  * Format failure history for console output.
27
73
  * Shows attempts that failed before eventual success or final failure.
@@ -86,6 +132,18 @@ async function runDoCommand(projectIdentifierArg, options) {
86
132
  const rafRelativePath = path.relative(repoRoot, rafDir);
87
133
  // Record original branch before any worktree operations
88
134
  originalBranch = getCurrentBranch() ?? undefined;
135
+ // Sync main branch before worktree operations (if enabled)
136
+ if (getSyncMainBranch()) {
137
+ const syncResult = pullMainBranch();
138
+ if (syncResult.success) {
139
+ if (syncResult.hadChanges) {
140
+ logger.info(`Synced ${syncResult.mainBranch} from remote`);
141
+ }
142
+ }
143
+ else {
144
+ logger.warn(`Could not sync main branch: ${syncResult.error}`);
145
+ }
146
+ }
89
147
  if (!projectIdentifier) {
90
148
  // Auto-discovery flow
91
149
  const selected = await discoverAndPickWorktreeProject(repoBasename, rafDir, rafRelativePath);
@@ -288,7 +346,6 @@ async function runDoCommand(projectIdentifierArg, options) {
288
346
  force,
289
347
  maxRetries,
290
348
  autoCommit,
291
- showModel: true,
292
349
  model,
293
350
  worktreeCwd: worktreeRoot,
294
351
  });
@@ -378,6 +435,18 @@ async function executePostAction(action, worktreeRoot, worktreeBranch, originalB
378
435
  }
379
436
  case 'pr': {
380
437
  logger.newline();
438
+ // Push main branch to remote before PR creation (if enabled)
439
+ if (getSyncMainBranch()) {
440
+ const syncResult = pushMainBranch();
441
+ if (syncResult.success) {
442
+ if (syncResult.hadChanges) {
443
+ logger.info(`Pushed ${syncResult.mainBranch} to remote`);
444
+ }
445
+ }
446
+ else {
447
+ logger.warn(`Could not push main branch: ${syncResult.error}`);
448
+ }
449
+ }
381
450
  logger.info(`Creating PR for branch "${worktreeBranch}"...`);
382
451
  const prResult = await createPullRequest(worktreeBranch, projectPath, { cwd: worktreeRoot });
383
452
  if (prResult.success) {
@@ -506,7 +575,7 @@ async function discoverAndPickWorktreeProject(repoBasename, rafDir, rafRelativeP
506
575
  }
507
576
  }
508
577
  async function executeSingleProject(projectPath, projectName, options) {
509
- const { timeout, verbose, debug, force, maxRetries, autoCommit, showModel, model, worktreeCwd } = options;
578
+ const { timeout, verbose, debug, force, maxRetries, autoCommit, model, worktreeCwd } = options;
510
579
  if (!validatePlansExist(projectPath)) {
511
580
  return {
512
581
  projectName,
@@ -540,11 +609,11 @@ async function executeSingleProject(projectPath, projectName, options) {
540
609
  const sessionTaskIds = new Set(force
541
610
  ? state.tasks.map((t) => t.id)
542
611
  : state.tasks.filter((t) => t.status !== 'completed').map((t) => t.id));
543
- // Set up shutdown handler
544
- const claudeRunner = new ClaudeRunner({ model });
612
+ // Set up shutdown handler - we'll register runners dynamically per-task
545
613
  const projectManager = new ProjectManager();
546
614
  shutdownHandler.init();
547
- shutdownHandler.registerClaudeRunner(claudeRunner);
615
+ // The ceiling model for all tasks (can be overridden per-task, subject to this ceiling)
616
+ const ceilingModel = model;
548
617
  // Initialize token tracker for usage reporting
549
618
  const tokenTracker = new TokenTracker();
550
619
  // Set up runtime verbose toggle (Tab key to toggle during execution)
@@ -552,13 +621,12 @@ async function executeSingleProject(projectPath, projectName, options) {
552
621
  shutdownHandler.onShutdown(() => verboseToggle.stop());
553
622
  // Start project timer
554
623
  const projectStartTime = Date.now();
624
+ // Resolve and display version + ceiling model info (before any tasks run)
625
+ const fullCeilingModelId = resolveFullModelId(ceilingModel);
626
+ logger.dim(`RAF v${getVersion()} | Ceiling: ${fullCeilingModelId}`);
555
627
  if (verbose) {
556
628
  logger.info(`Executing project: ${projectName}`);
557
629
  logger.info(`Tasks: ${state.tasks.length}, Task timeout: ${timeout} minutes`);
558
- // Log Claude model name
559
- if (showModel && model) {
560
- logger.info(`Using model: ${model}`);
561
- }
562
630
  logger.newline();
563
631
  }
564
632
  else {
@@ -710,24 +778,52 @@ async function executeSingleProject(projectPath, projectName, options) {
710
778
  let attempts = 0;
711
779
  let lastOutput = '';
712
780
  let failureReason = '';
713
- let lastUsageData;
781
+ // Collect usage data from all attempts (for accurate token tracking across retries)
782
+ const attemptUsageData = [];
714
783
  // Track failure history for each attempt (attempt number -> reason)
715
784
  const failureHistory = [];
716
785
  // Set up timer for elapsed time tracking
717
786
  const statusLine = createStatusLine();
718
787
  const timer = createTaskTimer(verbose ? undefined : (elapsed) => {
788
+ // When verbose is toggled ON at runtime, clear the status line and skip updates
789
+ if (verboseToggle.isVerbose) {
790
+ statusLine.clear();
791
+ return;
792
+ }
719
793
  // Show running status with task name and timer (updates in place)
720
794
  statusLine.update(formatTaskProgress(taskNumber, totalTasks, 'running', displayName, elapsed, taskId));
721
795
  });
722
796
  timer.start();
797
+ // Log frontmatter warnings once before the retry loop
798
+ if (task.frontmatterWarnings && task.frontmatterWarnings.length > 0) {
799
+ for (const warning of task.frontmatterWarnings) {
800
+ logger.warn(` Frontmatter warning: ${warning}`);
801
+ }
802
+ }
723
803
  while (!success && attempts < maxRetries) {
724
804
  attempts++;
725
- if (verbose && attempts > 1) {
726
- logger.info(` Retry ${attempts}/${maxRetries} for task ${taskLabel}...`);
805
+ const isRetry = attempts > 1;
806
+ // Resolve the model for this attempt (escalates to ceiling on retry)
807
+ const modelResolution = resolveTaskModel(task.frontmatter, undefined, // warnings already logged above
808
+ ceilingModel, isRetry);
809
+ // Log missing frontmatter warning on first attempt only
810
+ if (!isRetry && modelResolution.missingFrontmatter) {
811
+ logger.warn(` No effort frontmatter found — using ceiling model`);
812
+ }
813
+ // Create a runner for this attempt's model
814
+ const taskRunner = new ClaudeRunner({ model: modelResolution.model });
815
+ shutdownHandler.registerClaudeRunner(taskRunner);
816
+ if (verbose && isRetry) {
817
+ const retryModel = resolveFullModelId(modelResolution.model);
818
+ logger.info(` Retry ${attempts}/${maxRetries} for task ${taskLabel} (model: ${retryModel})...`);
819
+ }
820
+ else if (verbose && !isRetry) {
821
+ const taskModel = resolveFullModelId(modelResolution.model);
822
+ logger.info(` Model: ${taskModel}`);
727
823
  }
728
824
  // Build execution prompt (inside loop to include retry context on retries)
729
825
  // Check if previous outcome file exists for retry context
730
- const previousOutcomeFileForRetry = attempts > 1 && fs.existsSync(outcomeFilePath)
826
+ const previousOutcomeFileForRetry = isRetry && fs.existsSync(outcomeFilePath)
731
827
  ? outcomeFilePath
732
828
  : undefined;
733
829
  const prompt = getExecutionPrompt({
@@ -753,21 +849,19 @@ async function executeSingleProject(projectPath, projectName, options) {
753
849
  outcomeFilePath,
754
850
  } : undefined;
755
851
  // Run Claude (use worktree root as cwd if in worktree mode)
756
- const executeEffort = getEffort('execute');
757
852
  const runnerOptions = {
758
853
  timeout,
759
854
  outcomeFilePath,
760
855
  commitContext,
761
856
  cwd: worktreeCwd,
762
- effortLevel: executeEffort,
763
857
  verboseCheck: () => verboseToggle.isVerbose,
764
858
  };
765
859
  const result = verbose
766
- ? await claudeRunner.runVerbose(prompt, runnerOptions)
767
- : await claudeRunner.run(prompt, runnerOptions);
860
+ ? await taskRunner.runVerbose(prompt, runnerOptions)
861
+ : await taskRunner.run(prompt, runnerOptions);
768
862
  lastOutput = result.output;
769
863
  if (result.usageData) {
770
- lastUsageData = result.usageData;
864
+ attemptUsageData.push(result.usageData);
771
865
  }
772
866
  // Parse result
773
867
  const parsed = parseOutput(result.output);
@@ -880,9 +974,9 @@ Task completed. No detailed report provided.
880
974
  logger.info(formatTaskProgress(taskNumber, totalTasks, 'completed', displayName, elapsedMs, task.id));
881
975
  }
882
976
  // Track and display token usage for this task
883
- if (lastUsageData) {
884
- const entry = tokenTracker.addTask(task.id, lastUsageData);
885
- logger.dim(formatTaskTokenSummary(entry.usage, entry.cost));
977
+ if (attemptUsageData.length > 0) {
978
+ const entry = tokenTracker.addTask(task.id, attemptUsageData);
979
+ logger.dim(formatTaskTokenSummary(entry, (u) => tokenTracker.calculateCost(u)));
886
980
  }
887
981
  completedInSession.add(task.id);
888
982
  }
@@ -899,16 +993,17 @@ Task completed. No detailed report provided.
899
993
  }
900
994
  if (verbose) {
901
995
  logger.error(` Task ${taskLabel} failed: ${failureReason} (${elapsedFormatted})`);
902
- logger.info(' Analyzing failure...');
996
+ const analysisModel = getModelShortName(getModel('failureAnalysis'));
997
+ logger.info(` Analyzing failure with ${analysisModel}...`);
903
998
  }
904
999
  else {
905
1000
  // Minimal mode: show failed task line
906
1001
  logger.info(formatTaskProgress(taskNumber, totalTasks, 'failed', displayName, elapsedMs, task.id));
907
1002
  }
908
1003
  // Track token usage even for failed tasks (partial data still useful for totals)
909
- if (lastUsageData) {
910
- const entry = tokenTracker.addTask(task.id, lastUsageData);
911
- logger.dim(formatTaskTokenSummary(entry.usage, entry.cost));
1004
+ if (attemptUsageData.length > 0) {
1005
+ const entry = tokenTracker.addTask(task.id, attemptUsageData);
1006
+ logger.dim(formatTaskTokenSummary(entry, (u) => tokenTracker.calculateCost(u)));
912
1007
  }
913
1008
  // Analyze failure and generate structured report
914
1009
  const analysisReport = await analyzeFailure(lastOutput, failureReason, task.id);
@@ -1 +1 @@
1
- {"version":3,"file":"do.js","sourceRoot":"","sources":["../../src/commands/do.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"do.js","sourceRoot":"","sources":["../../src/commands/do.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0DpC,wBAAgB,iBAAiB,IAAI,OAAO,CAuC3C"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8DpC,wBAAgB,iBAAiB,IAAI,OAAO,CAuC3C"}
@@ -1,5 +1,6 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
+ import * as crypto from 'node:crypto';
3
4
  import { Command } from 'commander';
4
5
  import { ProjectManager } from '../core/project-manager.js';
5
6
  import { ClaudeRunner } from '../core/claude-runner.js';
@@ -10,13 +11,16 @@ import { getPlanningPrompt } from '../prompts/planning.js';
10
11
  import { getAmendPrompt } from '../prompts/amend.js';
11
12
  import { validateEnvironment, reportValidation, validateProjectName, resolveModelOption, } from '../utils/validation.js';
12
13
  import { logger } from '../utils/logger.js';
13
- import { getWorktreeDefault } from '../utils/config.js';
14
+ import { getWorktreeDefault, getModel, getModelShortName, getDisplayConfig, getPricingConfig, getSyncMainBranch } from '../utils/config.js';
15
+ import { TokenTracker } from '../utils/token-tracker.js';
16
+ import { parseSessionById } from '../utils/session-parser.js';
17
+ import { formatTokenTotalSummary } from '../utils/terminal-symbols.js';
14
18
  import { generateProjectNames } from '../utils/name-generator.js';
15
19
  import { pickProjectName } from '../ui/name-picker.js';
16
20
  import { getPlansDir, getRafDir, getNextProjectNumber, formatProjectNumber, resolveProjectIdentifier, resolveProjectIdentifierWithDetails, getInputPath, getDecisionsPath, getOutcomesDir, extractTaskNameFromPlanFile, decodeTaskId, encodeTaskId, TASK_ID_PATTERN, } from '../utils/paths.js';
17
21
  import { sanitizeProjectName } from '../utils/validation.js';
18
22
  import { deriveProjectState, isProjectComplete, } from '../core/state-derivation.js';
19
- import { getRepoBasename, getRepoRoot, createWorktree, createWorktreeFromBranch, branchExists, validateWorktree, removeWorktree, computeWorktreeBaseDir, } from '../core/worktree.js';
23
+ import { getRepoBasename, getRepoRoot, createWorktree, createWorktreeFromBranch, branchExists, validateWorktree, removeWorktree, computeWorktreeBaseDir, pullMainBranch, } from '../core/worktree.js';
20
24
  export function createPlanCommand() {
21
25
  const command = new Command('plan')
22
26
  .description('Create a new project and interactively plan tasks with Claude')
@@ -102,7 +106,8 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
102
106
  // Get or generate project name
103
107
  let finalProjectName = projectName;
104
108
  if (!finalProjectName) {
105
- logger.info('Generating project name suggestions...');
109
+ const nameModel = getModelShortName(getModel('nameGeneration'));
110
+ logger.info(`Generating project name suggestions with ${nameModel}...`);
106
111
  const suggestedNames = await generateProjectNames(cleanInput);
107
112
  logger.newline();
108
113
  if (autoMode) {
@@ -127,6 +132,18 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
127
132
  const repoBasename = getRepoBasename();
128
133
  const repoRoot = getRepoRoot();
129
134
  const rafDir = getRafDir();
135
+ // Sync main branch before creating worktree (if enabled)
136
+ if (getSyncMainBranch()) {
137
+ const syncResult = pullMainBranch();
138
+ if (syncResult.success) {
139
+ if (syncResult.hadChanges) {
140
+ logger.info(`Synced ${syncResult.mainBranch} from remote`);
141
+ }
142
+ }
143
+ else {
144
+ logger.warn(`Could not sync main branch: ${syncResult.error}`);
145
+ }
146
+ }
130
147
  // Compute project number from main repo's RAF directory
131
148
  const projectNumber = getNextProjectNumber(rafDir);
132
149
  const sanitizedName = sanitizeProjectName(finalProjectName);
@@ -204,15 +221,21 @@ async function runPlanCommand(projectName, model, autoMode = false, worktreeMode
204
221
  inputContent: userInput,
205
222
  worktreeMode,
206
223
  });
224
+ // Generate session ID for token tracking
225
+ const sessionId = crypto.randomUUID();
226
+ const sessionCwd = worktreePath ?? process.cwd();
207
227
  try {
208
228
  const exitCode = await claudeRunner.runInteractive(systemPrompt, userMessage, {
209
229
  dangerouslySkipPermissions: autoMode,
210
230
  // Run Claude session in the worktree root if in worktree mode
211
231
  cwd: worktreePath ?? undefined,
232
+ sessionId,
212
233
  });
213
234
  if (exitCode !== 0) {
214
235
  logger.warn(`Claude exited with code ${exitCode}`);
215
236
  }
237
+ // Parse session file and display token usage summary
238
+ displayPlanSessionTokenSummary(sessionId, sessionCwd);
216
239
  // Check for created plan files
217
240
  const plansDir = getPlansDir(projectPath);
218
241
  const planFiles = fs.existsSync(plansDir)
@@ -335,6 +358,18 @@ async function runAmendCommand(identifier, model, autoMode = false, worktreeMode
335
358
  }
336
359
  else {
337
360
  // No branch — create fresh worktree and copy project files
361
+ // Sync main branch before creating worktree (if enabled)
362
+ if (getSyncMainBranch()) {
363
+ const syncResult = pullMainBranch();
364
+ if (syncResult.success) {
365
+ if (syncResult.hadChanges) {
366
+ logger.info(`Synced ${syncResult.mainBranch} from remote`);
367
+ }
368
+ }
369
+ else {
370
+ logger.warn(`Could not sync main branch: ${syncResult.error}`);
371
+ }
372
+ }
338
373
  const result = createWorktree(repoBasename, folderName);
339
374
  if (!result.success) {
340
375
  logger.error(`Failed to create worktree: ${result.error}`);
@@ -468,15 +503,21 @@ async function runAmendCommand(identifier, model, autoMode = false, worktreeMode
468
503
  newTaskDescription: cleanInput,
469
504
  worktreeMode,
470
505
  });
506
+ // Generate session ID for token tracking
507
+ const sessionId = crypto.randomUUID();
508
+ const sessionCwd = worktreePath ?? process.cwd();
471
509
  try {
472
510
  const exitCode = await claudeRunner.runInteractive(systemPrompt, userMessage, {
473
511
  dangerouslySkipPermissions: autoMode,
474
512
  // Run Claude session in the worktree root if in worktree mode
475
513
  cwd: worktreePath ?? undefined,
514
+ sessionId,
476
515
  });
477
516
  if (exitCode !== 0) {
478
517
  logger.warn(`Claude exited with code ${exitCode}`);
479
518
  }
519
+ // Parse session file and display token usage summary
520
+ displayPlanSessionTokenSummary(sessionId, sessionCwd);
480
521
  // Check for new plan files
481
522
  const allPlanFiles = fs.existsSync(plansDir)
482
523
  ? fs.readdirSync(plansDir).filter((f) => f.endsWith('.md')).sort()
@@ -545,4 +586,39 @@ ${taskList}
545
586
  # Describe what you want to add below:
546
587
  `;
547
588
  }
589
+ /**
590
+ * Display token usage summary for a plan/amend session.
591
+ * Parses the Claude session file and displays formatted usage data.
592
+ */
593
+ function displayPlanSessionTokenSummary(sessionId, cwd) {
594
+ const result = parseSessionById(sessionId, cwd);
595
+ if (!result.success) {
596
+ // Session file not found or couldn't be parsed - just log debug and continue
597
+ logger.debug(`Could not parse session file: ${result.error}`);
598
+ return;
599
+ }
600
+ // Check if there's any usage data
601
+ const totalTokens = result.usage.inputTokens + result.usage.outputTokens;
602
+ if (totalTokens === 0) {
603
+ logger.debug('No token usage data found in session file');
604
+ return;
605
+ }
606
+ // Create tracker and add the session as a single "task"
607
+ const pricingConfig = getPricingConfig();
608
+ const tracker = new TokenTracker(pricingConfig);
609
+ const entry = tracker.addTask('plan', [result.usage]);
610
+ // Get display options
611
+ const displayConfig = getDisplayConfig();
612
+ const options = {
613
+ showCacheTokens: displayConfig.showCacheTokens,
614
+ showRateLimitEstimate: displayConfig.showRateLimitEstimate,
615
+ rateLimitPercentage: displayConfig.showRateLimitEstimate
616
+ ? tracker.calculateRateLimitPercentage(entry.cost.totalCost)
617
+ : undefined,
618
+ };
619
+ // Display the summary
620
+ logger.newline();
621
+ const summary = formatTokenTotalSummary(result.usage, entry.cost, options);
622
+ console.log(summary);
623
+ }
548
624
  //# sourceMappingURL=plan.js.map