@pennyfarthing/core 11.2.0 → 11.2.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 (403) hide show
  1. package/README.md +1 -1
  2. package/package.json +2 -1
  3. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  4. package/packages/core/dist/cli/commands/doctor.js +381 -66
  5. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  6. package/packages/core/dist/cli/commands/init.js +4 -4
  7. package/packages/core/dist/cli/commands/init.js.map +1 -1
  8. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  9. package/packages/core/dist/cli/commands/update.js +4 -5
  10. package/packages/core/dist/cli/commands/update.js.map +1 -1
  11. package/packages/core/dist/cli/utils/constants.d.ts +3 -8
  12. package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
  13. package/packages/core/dist/cli/utils/constants.js +3 -4
  14. package/packages/core/dist/cli/utils/constants.js.map +1 -1
  15. package/packages/core/dist/cli/utils/settings.d.ts +11 -0
  16. package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
  17. package/packages/core/dist/cli/utils/settings.js +65 -29
  18. package/packages/core/dist/cli/utils/settings.js.map +1 -1
  19. package/packages/core/dist/cli/utils/symlinks.js +16 -16
  20. package/packages/core/dist/cli/utils/symlinks.js.map +1 -1
  21. package/packages/core/dist/consultation/tandem-metrics.d.ts +91 -0
  22. package/packages/core/dist/consultation/tandem-metrics.d.ts.map +1 -0
  23. package/packages/core/dist/consultation/tandem-metrics.js +131 -0
  24. package/packages/core/dist/consultation/tandem-metrics.js.map +1 -0
  25. package/packages/core/dist/consultation/tandem-metrics.test.d.ts +18 -0
  26. package/packages/core/dist/consultation/tandem-metrics.test.d.ts.map +1 -0
  27. package/packages/core/dist/consultation/tandem-metrics.test.js +457 -0
  28. package/packages/core/dist/consultation/tandem-metrics.test.js.map +1 -0
  29. package/packages/core/dist/public/js/react/react.js +14 -14
  30. package/packages/core/dist/scripts/benchmark-integration.d.ts +182 -0
  31. package/packages/core/dist/scripts/benchmark-integration.d.ts.map +1 -0
  32. package/packages/core/dist/scripts/benchmark-integration.js +691 -0
  33. package/packages/core/dist/scripts/benchmark-integration.js.map +1 -0
  34. package/packages/core/dist/scripts/job-fair-aggregator.d.ts +150 -0
  35. package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +1 -0
  36. package/packages/core/dist/scripts/job-fair-aggregator.js +547 -0
  37. package/packages/core/dist/scripts/job-fair-aggregator.js.map +1 -0
  38. package/packages/core/dist/server/api/agent-load.js +1 -1
  39. package/packages/core/dist/server/api/agent-load.js.map +1 -1
  40. package/packages/core/dist/server/server.d.ts +0 -3
  41. package/packages/core/dist/server/server.d.ts.map +1 -1
  42. package/packages/core/dist/server/server.js +3 -37
  43. package/packages/core/dist/server/server.js.map +1 -1
  44. package/packages/core/dist/server/server.test.d.ts +1 -1
  45. package/packages/core/dist/server/server.test.js +12 -23
  46. package/packages/core/dist/server/server.test.js.map +1 -1
  47. package/packages/core/dist/shared/capabilities.d.ts +88 -0
  48. package/packages/core/dist/shared/capabilities.d.ts.map +1 -0
  49. package/packages/core/dist/shared/capabilities.js +133 -0
  50. package/packages/core/dist/shared/capabilities.js.map +1 -0
  51. package/packages/core/dist/shared/capabilities.test.d.ts +2 -0
  52. package/packages/core/dist/shared/capabilities.test.d.ts.map +1 -0
  53. package/packages/core/dist/shared/capabilities.test.js +217 -0
  54. package/packages/core/dist/shared/capabilities.test.js.map +1 -0
  55. package/packages/core/dist/shared/spawn-prompt.d.ts +47 -0
  56. package/packages/core/dist/shared/spawn-prompt.d.ts.map +1 -0
  57. package/packages/core/dist/shared/spawn-prompt.js +82 -0
  58. package/packages/core/dist/shared/spawn-prompt.js.map +1 -0
  59. package/packages/core/dist/shared/spawn-prompt.test.d.ts +2 -0
  60. package/packages/core/dist/shared/spawn-prompt.test.d.ts.map +1 -0
  61. package/packages/core/dist/shared/spawn-prompt.test.js +251 -0
  62. package/packages/core/dist/shared/spawn-prompt.test.js.map +1 -0
  63. package/packages/core/dist/workflow/tandem-workflow-templates.test.d.ts +18 -0
  64. package/packages/core/dist/workflow/tandem-workflow-templates.test.d.ts.map +1 -0
  65. package/packages/core/dist/workflow/tandem-workflow-templates.test.js +434 -0
  66. package/packages/core/dist/workflow/tandem-workflow-templates.test.js.map +1 -0
  67. package/packages/core/dist/workflow/workflow-schema.d.ts +32 -0
  68. package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -1
  69. package/packages/core/dist/workflow/workflow-schema.js +120 -0
  70. package/packages/core/dist/workflow/workflow-schema.js.map +1 -1
  71. package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +1 -1
  72. package/packages/core/dist/workflow/workflow-schema.test.js +570 -1
  73. package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -1
  74. package/pennyfarthing-dist/agents/dev.md +6 -10
  75. package/pennyfarthing-dist/agents/reviewer.md +8 -2
  76. package/pennyfarthing-dist/agents/sm-finish.md +18 -1
  77. package/pennyfarthing-dist/commands/pf-git.md +4 -2
  78. package/pennyfarthing-dist/gates/approval.md +63 -0
  79. package/pennyfarthing-dist/gates/confidence-sm.md +71 -0
  80. package/pennyfarthing-dist/gates/context-ok.md +56 -0
  81. package/pennyfarthing-dist/gates/evaluations/confidence-sm.md +54 -0
  82. package/pennyfarthing-dist/gates/quality-pass.md +67 -0
  83. package/pennyfarthing-dist/gates/tests-fail.md +84 -0
  84. package/pennyfarthing-dist/gates/tests-pass.md +79 -0
  85. package/pennyfarthing-dist/guides/agent-behavior.md +23 -19
  86. package/pennyfarthing-dist/guides/bell-mode.md +1 -1
  87. package/pennyfarthing-dist/guides/hooks.md +28 -28
  88. package/pennyfarthing-dist/guides/reflector.md +1 -1
  89. package/pennyfarthing-dist/guides/tandem-protocol.md +3 -3
  90. package/pennyfarthing-dist/scripts/core/check-context.sh +2 -0
  91. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +5 -87
  92. package/pennyfarthing-dist/scripts/hooks/README.md +5 -5
  93. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  94. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +4 -183
  95. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +4 -95
  96. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +4 -65
  97. package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +3 -31
  98. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +27 -33
  99. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +4 -71
  100. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +3 -19
  101. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +4 -30
  102. package/pennyfarthing-dist/scripts/hooks/session-start.sh +3 -32
  103. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +4 -65
  104. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +4 -78
  105. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +4 -93
  106. package/pennyfarthing-dist/scripts/misc/README.md +1 -1
  107. package/pennyfarthing-dist/scripts/misc/statusline.sh +4 -301
  108. package/pennyfarthing-dist/templates/settings.local.json.template +19 -10
  109. package/pennyfarthing-dist/workflows/tdd.yaml +11 -2
  110. package/pennyfarthing_scripts/CLAUDE.md +19 -10
  111. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  112. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  113. package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
  114. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  115. package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
  116. package/pennyfarthing_scripts/__pycache__/context.cpython-314.pyc +0 -0
  117. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  118. package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
  119. package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
  120. package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  121. package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
  122. package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  123. package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
  124. package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
  125. package/pennyfarthing_scripts/__pycache__/pretooluse_hook.cpython-314.pyc +0 -0
  126. package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  127. package/pennyfarthing_scripts/__pycache__/session_start_hook.cpython-314.pyc +0 -0
  128. package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
  129. package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
  130. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  131. package/pennyfarthing_scripts/bc/__pycache__/__init__.cpython-314.pyc +0 -0
  132. package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
  133. package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-314.pyc +0 -0
  134. package/pennyfarthing_scripts/bellmode_hook.py +12 -296
  135. package/pennyfarthing_scripts/bikerack/__pycache__/__init__.cpython-314.pyc +0 -0
  136. package/pennyfarthing_scripts/bikerack/__pycache__/__main__.cpython-314.pyc +0 -0
  137. package/pennyfarthing_scripts/bikerack/__pycache__/audit_log_panel.cpython-314.pyc +0 -0
  138. package/pennyfarthing_scripts/bikerack/__pycache__/background_panel.cpython-314.pyc +0 -0
  139. package/pennyfarthing_scripts/bikerack/__pycache__/base_panel.cpython-314.pyc +0 -0
  140. package/pennyfarthing_scripts/bikerack/__pycache__/changed_panel.cpython-314.pyc +0 -0
  141. package/pennyfarthing_scripts/bikerack/__pycache__/cli.cpython-314.pyc +0 -0
  142. package/pennyfarthing_scripts/bikerack/__pycache__/context_meter_footer.cpython-314.pyc +0 -0
  143. package/pennyfarthing_scripts/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
  144. package/pennyfarthing_scripts/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
  145. package/pennyfarthing_scripts/bikerack/__pycache__/events.cpython-314.pyc +0 -0
  146. package/pennyfarthing_scripts/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
  147. package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
  148. package/pennyfarthing_scripts/bikerack/__pycache__/portrait_resolver.cpython-314.pyc +0 -0
  149. package/pennyfarthing_scripts/bikerack/__pycache__/progress_panel.cpython-314.pyc +0 -0
  150. package/pennyfarthing_scripts/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
  151. package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_data.cpython-314.pyc +0 -0
  152. package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_screen.cpython-314.pyc +0 -0
  153. package/pennyfarthing_scripts/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
  154. package/pennyfarthing_scripts/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
  155. package/pennyfarthing_scripts/bikerack/audit_log_panel.py +119 -0
  156. package/pennyfarthing_scripts/bikerack/base_panel.py +27 -4
  157. package/pennyfarthing_scripts/bikerack/changed_panel.py +96 -4
  158. package/pennyfarthing_scripts/bikerack/context_meter_footer.py +88 -0
  159. package/pennyfarthing_scripts/bikerack/debug_panel.py +1 -1
  160. package/pennyfarthing_scripts/bikerack/diffs_panel.py +30 -0
  161. package/pennyfarthing_scripts/bikerack/events.py +28 -0
  162. package/pennyfarthing_scripts/bikerack/portrait_resolver.py +139 -0
  163. package/pennyfarthing_scripts/bikerack/sprint_panel.py +373 -142
  164. package/pennyfarthing_scripts/bikerack/story_detail_data.py +244 -0
  165. package/pennyfarthing_scripts/bikerack/story_detail_screen.py +176 -0
  166. package/pennyfarthing_scripts/bikerack/tui.py +293 -61
  167. package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  168. package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  169. package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  170. package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  171. package/pennyfarthing_scripts/cli.py +5 -0
  172. package/pennyfarthing_scripts/codemarkers/__pycache__/__init__.cpython-314.pyc +0 -0
  173. package/pennyfarthing_scripts/codemarkers/__pycache__/__main__.cpython-314.pyc +0 -0
  174. package/pennyfarthing_scripts/codemarkers/__pycache__/analyze.cpython-314.pyc +0 -0
  175. package/pennyfarthing_scripts/codemarkers/__pycache__/cli.cpython-314.pyc +0 -0
  176. package/pennyfarthing_scripts/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
  177. package/pennyfarthing_scripts/codemarkers/__pycache__/models.cpython-314.pyc +0 -0
  178. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
  179. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  180. package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
  181. package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
  182. package/pennyfarthing_scripts/common/pr_config.py +38 -0
  183. package/pennyfarthing_scripts/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
  184. package/pennyfarthing_scripts/complexity/__pycache__/__main__.cpython-314.pyc +0 -0
  185. package/pennyfarthing_scripts/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
  186. package/pennyfarthing_scripts/complexity/__pycache__/cli.cpython-314.pyc +0 -0
  187. package/pennyfarthing_scripts/complexity/__pycache__/formatters.cpython-314.pyc +0 -0
  188. package/pennyfarthing_scripts/complexity/__pycache__/models.cpython-314.pyc +0 -0
  189. package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
  190. package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-314.pyc +0 -0
  191. package/pennyfarthing_scripts/consultation/__pycache__/dialogue_manager.cpython-314.pyc +0 -0
  192. package/pennyfarthing_scripts/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
  193. package/pennyfarthing_scripts/deadcode/__pycache__/__main__.cpython-314.pyc +0 -0
  194. package/pennyfarthing_scripts/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
  195. package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
  196. package/pennyfarthing_scripts/deadcode/__pycache__/formatters.cpython-314.pyc +0 -0
  197. package/pennyfarthing_scripts/deadcode/__pycache__/models.cpython-314.pyc +0 -0
  198. package/pennyfarthing_scripts/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
  199. package/pennyfarthing_scripts/dependencies/__pycache__/__main__.cpython-314.pyc +0 -0
  200. package/pennyfarthing_scripts/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
  201. package/pennyfarthing_scripts/dependencies/__pycache__/cli.cpython-314.pyc +0 -0
  202. package/pennyfarthing_scripts/dependencies/__pycache__/formatters.cpython-314.pyc +0 -0
  203. package/pennyfarthing_scripts/dependencies/__pycache__/models.cpython-314.pyc +0 -0
  204. package/pennyfarthing_scripts/epic/__pycache__/__init__.cpython-314.pyc +0 -0
  205. package/pennyfarthing_scripts/epic/__pycache__/cli.cpython-314.pyc +0 -0
  206. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  207. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  208. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  209. package/pennyfarthing_scripts/git_group/__pycache__/__init__.cpython-314.pyc +0 -0
  210. package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-314.pyc +0 -0
  211. package/pennyfarthing_scripts/handoff/__pycache__/__init__.cpython-314.pyc +0 -0
  212. package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-314.pyc +0 -0
  213. package/pennyfarthing_scripts/handoff/__pycache__/complete_phase.cpython-314.pyc +0 -0
  214. package/pennyfarthing_scripts/handoff/__pycache__/gate_file.cpython-314.pyc +0 -0
  215. package/pennyfarthing_scripts/handoff/__pycache__/gate_runner.cpython-314.pyc +0 -0
  216. package/pennyfarthing_scripts/handoff/__pycache__/marker.cpython-314.pyc +0 -0
  217. package/pennyfarthing_scripts/handoff/__pycache__/resolve_gate.cpython-314.pyc +0 -0
  218. package/pennyfarthing_scripts/handoff/cli.py +33 -1
  219. package/pennyfarthing_scripts/handoff/complete_phase.py +28 -0
  220. package/pennyfarthing_scripts/handoff/marker.py +15 -15
  221. package/pennyfarthing_scripts/handoff/phase_check.py +96 -0
  222. package/pennyfarthing_scripts/handoff/resolve_gate.py +13 -1
  223. package/pennyfarthing_scripts/healthscore/__pycache__/__init__.cpython-314.pyc +0 -0
  224. package/pennyfarthing_scripts/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
  225. package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
  226. package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
  227. package/pennyfarthing_scripts/healthscore/__pycache__/formatters.cpython-314.pyc +0 -0
  228. package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-314.pyc +0 -0
  229. package/pennyfarthing_scripts/hooks/__init__.py +437 -0
  230. package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
  231. package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
  232. package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-314.pyc +0 -0
  233. package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
  234. package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
  235. package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
  236. package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-314.pyc +0 -0
  237. package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-314.pyc +0 -0
  238. package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-314.pyc +0 -0
  239. package/pennyfarthing_scripts/hooks/__pycache__/session_start.cpython-314.pyc +0 -0
  240. package/pennyfarthing_scripts/hooks/__pycache__/session_stop.cpython-314.pyc +0 -0
  241. package/pennyfarthing_scripts/hooks/__pycache__/sprint_yaml_validation.cpython-314.pyc +0 -0
  242. package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
  243. package/pennyfarthing_scripts/hooks/bell_mode.py +215 -0
  244. package/pennyfarthing_scripts/hooks/cli.py +96 -0
  245. package/pennyfarthing_scripts/hooks/context_breaker.py +104 -0
  246. package/pennyfarthing_scripts/hooks/context_warning.py +66 -0
  247. package/pennyfarthing_scripts/hooks/cyclist_pretooluse.py +129 -0
  248. package/pennyfarthing_scripts/hooks/pre_edit_check.py +78 -0
  249. package/pennyfarthing_scripts/hooks/reflector_check.py +271 -0
  250. package/pennyfarthing_scripts/hooks/schema_validation.py +203 -0
  251. package/pennyfarthing_scripts/hooks/session_start.py +296 -0
  252. package/pennyfarthing_scripts/hooks/session_stop.py +111 -0
  253. package/pennyfarthing_scripts/hooks/sprint_yaml_validation.py +97 -0
  254. package/pennyfarthing_scripts/hooks/statusline.py +420 -0
  255. package/pennyfarthing_scripts/hooks.py +27 -432
  256. package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
  257. package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
  258. package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
  259. package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
  260. package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
  261. package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-314.pyc +0 -0
  262. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  263. package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  264. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  265. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
  266. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  267. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  268. package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
  269. package/pennyfarthing_scripts/jira/__pycache__/create.cpython-314.pyc +0 -0
  270. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
  271. package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  272. package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
  273. package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-314.pyc +0 -0
  274. package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
  275. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
  276. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
  277. package/pennyfarthing_scripts/launch/__pycache__/__init__.cpython-314.pyc +0 -0
  278. package/pennyfarthing_scripts/launch/__pycache__/cli.cpython-314.pyc +0 -0
  279. package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
  280. package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
  281. package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
  282. package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
  283. package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
  284. package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
  285. package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
  286. package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  287. package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  288. package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  289. package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  290. package/pennyfarthing_scripts/pretooluse_hook.py +3 -185
  291. package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  292. package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  293. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  294. package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
  295. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  296. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  297. package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
  298. package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  299. package/pennyfarthing_scripts/prime/__pycache__/version_sentinel.cpython-314.pyc +0 -0
  300. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  301. package/pennyfarthing_scripts/prime/workflow.py +2 -1
  302. package/pennyfarthing_scripts/schema_validation_hook.py +3 -298
  303. package/pennyfarthing_scripts/session/__pycache__/__init__.cpython-314.pyc +0 -0
  304. package/pennyfarthing_scripts/session/__pycache__/cli.cpython-314.pyc +0 -0
  305. package/pennyfarthing_scripts/session_start_hook.py +4 -186
  306. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  307. package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  308. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  309. package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
  310. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  311. package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
  312. package/pennyfarthing_scripts/sprint/__pycache__/epic_update.cpython-314.pyc +0 -0
  313. package/pennyfarthing_scripts/sprint/__pycache__/import_epic.cpython-314.pyc +0 -0
  314. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  315. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
  316. package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
  317. package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
  318. package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
  319. package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
  320. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  321. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  322. package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
  323. package/pennyfarthing_scripts/sprint/story_update.py +19 -0
  324. package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
  325. package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
  326. package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
  327. package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
  328. package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
  329. package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
  330. package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  331. package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  332. package/pennyfarthing_scripts/tests/__pycache__/test_108_1_gate_migration.cpython-314-pytest-9.0.2.pyc +0 -0
  333. package/pennyfarthing_scripts/tests/__pycache__/test_archive_epic.cpython-314-pytest-9.0.2.pyc +0 -0
  334. package/pennyfarthing_scripts/tests/__pycache__/test_bc.cpython-314-pytest-9.0.2.pyc +0 -0
  335. package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.cpython-314-pytest-9.0.2.pyc +0 -0
  336. package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  337. package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
  338. package/pennyfarthing_scripts/tests/__pycache__/test_cli_normalization.cpython-314-pytest-9.0.2.pyc +0 -0
  339. package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
  340. package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
  341. package/pennyfarthing_scripts/tests/__pycache__/test_confidence_sm_evaluation.cpython-314-pytest-9.0.2.pyc +0 -0
  342. package/pennyfarthing_scripts/tests/__pycache__/test_confidence_sm_gate.cpython-314-pytest-9.0.2.pyc +0 -0
  343. package/pennyfarthing_scripts/tests/__pycache__/test_dialogue_manager.cpython-314-pytest-9.0.2.pyc +0 -0
  344. package/pennyfarthing_scripts/tests/__pycache__/test_epic_shard_validation.cpython-314-pytest-9.0.2.pyc +0 -0
  345. package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  346. package/pennyfarthing_scripts/tests/__pycache__/test_handoff_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  347. package/pennyfarthing_scripts/tests/__pycache__/test_handoff_e2e.cpython-314-pytest-9.0.2.pyc +0 -0
  348. package/pennyfarthing_scripts/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
  349. package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
  350. package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
  351. package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
  352. package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  353. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
  354. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_panel.cpython-314-pytest-9.0.2.pyc +0 -0
  355. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  356. package/pennyfarthing_scripts/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
  357. package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
  358. package/pennyfarthing_scripts/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
  359. package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
  360. package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
  361. package/pennyfarthing_scripts/tests/__pycache__/test_topology_loader.cpython-314-pytest-9.0.2.pyc +0 -0
  362. package/pennyfarthing_scripts/tests/__pycache__/test_tui_focus.cpython-314-pytest-9.0.2.pyc +0 -0
  363. package/pennyfarthing_scripts/tests/__pycache__/test_tui_panel_persistence.cpython-314-pytest-9.0.2.pyc +0 -0
  364. package/pennyfarthing_scripts/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
  365. package/pennyfarthing_scripts/tests/__pycache__/test_version_sentinel.cpython-314-pytest-9.0.2.pyc +0 -0
  366. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
  367. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  368. package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
  369. package/pennyfarthing_scripts/tests/test_sprint_panel.py +344 -265
  370. package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-314.pyc +0 -0
  371. package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
  372. package/pennyfarthing_scripts/validate/__pycache__/__init__.cpython-314.pyc +0 -0
  373. package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
  374. package/pennyfarthing_scripts/validate/adapters/__pycache__/__init__.cpython-314.pyc +0 -0
  375. package/pennyfarthing_scripts/validate/adapters/__pycache__/agent.cpython-314.pyc +0 -0
  376. package/pennyfarthing_scripts/validate/adapters/__pycache__/schema.cpython-314.pyc +0 -0
  377. package/pennyfarthing_scripts/validate/adapters/__pycache__/skill_command.cpython-314.pyc +0 -0
  378. package/pennyfarthing_scripts/validate/adapters/__pycache__/sprint.cpython-314.pyc +0 -0
  379. package/pennyfarthing_scripts/validate/adapters/__pycache__/tandem_awareness.cpython-314.pyc +0 -0
  380. package/pennyfarthing_scripts/validate/adapters/__pycache__/workflow.cpython-314.pyc +0 -0
  381. package/pennyfarthing_scripts/validate/adapters/workflow.py +19 -0
  382. package/pennyfarthing_scripts/welcome_hook.py +3 -149
  383. package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
  384. package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-314.pyc +0 -0
  385. package/pennyfarthing_scripts/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
  386. package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-314.pyc +0 -0
  387. package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-314.pyc +0 -0
  388. package/pennyfarthing_scripts/workflow/cli.py +7 -6
  389. package/pennyfarthing_scripts/workflow/team_lifecycle.py +257 -0
  390. package/packages/core/dist/scripts/theme-detail.test.d.ts +0 -10
  391. package/packages/core/dist/scripts/theme-detail.test.js +0 -199
  392. package/pennyfarthing_scripts/bikerack/__pycache__/portrait.cpython-314.pyc +0 -0
  393. package/pennyfarthing_scripts/gate/__pycache__/__init__.cpython-314.pyc +0 -0
  394. package/pennyfarthing_scripts/gate/__pycache__/cli.cpython-314.pyc +0 -0
  395. package/pennyfarthing_scripts/gate/__pycache__/validate.cpython-314.pyc +0 -0
  396. package/pennyfarthing_scripts/git/__pycache__/hooks_installer.cpython-314.pyc +0 -0
  397. package/pennyfarthing_scripts/git/__pycache__/repos.cpython-314.pyc +0 -0
  398. package/pennyfarthing_scripts/git/__pycache__/worktree.cpython-314.pyc +0 -0
  399. package/pennyfarthing_scripts/prime/__pycache__/heatmap.cpython-314.pyc +0 -0
  400. package/pennyfarthing_scripts/tests/__pycache__/test_108_2_remove_handoff_fallback.cpython-314-pytest-9.0.2.pyc +0 -0
  401. package/pennyfarthing_scripts/tests/__pycache__/test_gate_file_resolution.cpython-314-pytest-9.0.2.pyc +0 -0
  402. package/pennyfarthing_scripts/tests/__pycache__/test_gate_runner.cpython-314-pytest-9.0.2.pyc +0 -0
  403. package/pennyfarthing_scripts/tests/__pycache__/test_resolve_gate_file_field.cpython-314-pytest-9.0.2.pyc +0 -0
@@ -36,7 +36,7 @@ export function getInstalledSkillNames(projectRoot) {
36
36
  }
37
37
  }
38
38
  /**
39
- * Legacy statusline paths that should be migrated
39
+ * Legacy statusline paths that should be migrated to `pf hooks statusline`
40
40
  */
41
41
  const LEGACY_STATUSLINE_PATHS = [
42
42
  '.claude/core/statusline.sh',
@@ -44,7 +44,9 @@ const LEGACY_STATUSLINE_PATHS = [
44
44
  '.claude/pennyfarthing/statusline.sh',
45
45
  '.claude/pennyfarthing/scripts/statusline.sh',
46
46
  '.claude/scripts/statusline.sh',
47
- '.pennyfarthing/scripts/statusline.sh'
47
+ '.pennyfarthing/scripts/statusline.sh',
48
+ '.pennyfarthing/scripts/misc/statusline.sh',
49
+ 'scripts/misc/statusline.sh'
48
50
  ];
49
51
  /**
50
52
  * Legacy script paths that should be migrated to .pennyfarthing/scripts/
@@ -59,6 +61,24 @@ const LEGACY_SCRIPT_PATHS = [
59
61
  const LEGACY_PROJECT_HOOK_PATHS = [
60
62
  '.claude/project/hooks/'
61
63
  ];
64
+ /**
65
+ * Map of legacy .sh hook commands to their `pf hooks` replacements.
66
+ * Used during init/update/doctor to migrate existing settings.
67
+ */
68
+ export const LEGACY_HOOK_MIGRATIONS = {
69
+ 'session-start.sh': 'pf hooks session-start',
70
+ 'welcome-hook.sh': 'pf hooks session-start',
71
+ 'question-reflector-check.sh': 'pf hooks reflector-check',
72
+ 'session-stop.sh': 'pf hooks session-stop',
73
+ 'pre-edit-check.sh': 'pf hooks pre-edit-check',
74
+ 'context-warning.sh': 'pf hooks context-warning',
75
+ 'context-circuit-breaker.sh': 'pf hooks context-breaker',
76
+ 'cyclist-pretooluse-hook.sh': 'pf hooks cyclist-pretooluse',
77
+ 'schema-validation.sh': 'pf hooks schema-validation',
78
+ 'bell-mode-hook.sh': 'pf hooks bell-mode',
79
+ 'sprint-yaml-validation.sh': 'pf hooks sprint-yaml',
80
+ 'statusline.sh': 'pf hooks statusline',
81
+ };
62
82
  /**
63
83
  * Check if a hook entry contains a specific hook by command substring
64
84
  */
@@ -78,8 +98,9 @@ function findHookEntry(hookArray, substring) {
78
98
  /**
79
99
  * Migrate hook paths from legacy locations to .pennyfarthing/scripts/
80
100
  * and .claude/project/hooks/ to .pennyfarthing/project/hooks/
101
+ * Also migrates .sh hook scripts to `pf hooks` commands.
81
102
  */
82
- function migrateHookPaths(hookArray) {
103
+ export function migrateHookPaths(hookArray) {
83
104
  let migrated = false;
84
105
  for (const entry of hookArray) {
85
106
  if (typeof entry === 'object' && entry !== null) {
@@ -87,6 +108,19 @@ function migrateHookPaths(hookArray) {
87
108
  if (hookEntry.hooks) {
88
109
  for (const h of hookEntry.hooks) {
89
110
  if (h.command) {
111
+ // Migrate .sh hooks to pf hooks commands
112
+ let shMigrated = false;
113
+ for (const [shName, pfCommand] of Object.entries(LEGACY_HOOK_MIGRATIONS)) {
114
+ if (h.command.includes(shName)) {
115
+ h.command = pfCommand;
116
+ migrated = true;
117
+ shMigrated = true;
118
+ break;
119
+ }
120
+ }
121
+ if (shMigrated)
122
+ continue;
123
+ // Legacy directory path migrations (for non-hook scripts)
90
124
  for (const legacyPath of LEGACY_SCRIPT_PATHS) {
91
125
  if (h.command.includes(legacyPath)) {
92
126
  h.command = h.command.replace(legacyPath, '.pennyfarthing/scripts/');
@@ -172,13 +206,13 @@ export async function mergeSettingsLocalJson(projectRoot, assetsPath, options) {
172
206
  logger.info('Added missing SessionStart hooks');
173
207
  }
174
208
  else if (Array.isArray(hooks.SessionStart)) {
175
- const hasSessionStartHook = hooks.SessionStart.some((entry) => hookEntryContains(entry, 'session-start.sh'));
209
+ const hasSessionStartHook = hooks.SessionStart.some((entry) => hookEntryContains(entry, 'session-start.sh') || hookEntryContains(entry, 'pf hooks session-start'));
176
210
  if (!hasSessionStartHook && templateContent.hooks?.SessionStart) {
177
- const sessionStartEntry = findHookEntry(templateContent.hooks.SessionStart, 'session-start.sh');
211
+ const sessionStartEntry = findHookEntry(templateContent.hooks.SessionStart, 'pf hooks session-start');
178
212
  if (sessionStartEntry) {
179
213
  hooks.SessionStart = [sessionStartEntry, ...hooks.SessionStart];
180
214
  modified = true;
181
- logger.info('Added missing session-start.sh hook');
215
+ logger.info('Added missing session-start hook');
182
216
  }
183
217
  }
184
218
  // Check for auto-load-sm hook (auto-invokes /sm on new sessions)
@@ -205,13 +239,13 @@ export async function mergeSettingsLocalJson(projectRoot, assetsPath, options) {
205
239
  logger.info('Added missing Stop hooks');
206
240
  }
207
241
  else if (Array.isArray(hooks.Stop)) {
208
- const hasReflectorHook = hooks.Stop.some((entry) => hookEntryContains(entry, 'question-reflector-check'));
242
+ const hasReflectorHook = hooks.Stop.some((entry) => hookEntryContains(entry, 'question-reflector-check') || hookEntryContains(entry, 'pf hooks reflector-check'));
209
243
  if (!hasReflectorHook && templateContent.hooks?.Stop) {
210
- const reflectorEntry = findHookEntry(templateContent.hooks.Stop, 'question-reflector-check');
244
+ const reflectorEntry = findHookEntry(templateContent.hooks.Stop, 'pf hooks reflector-check');
211
245
  if (reflectorEntry) {
212
246
  hooks.Stop = [reflectorEntry, ...hooks.Stop];
213
247
  modified = true;
214
- logger.info('Added missing question-reflector-check hook');
248
+ logger.info('Added missing reflector-check hook');
215
249
  }
216
250
  }
217
251
  }
@@ -222,13 +256,13 @@ export async function mergeSettingsLocalJson(projectRoot, assetsPath, options) {
222
256
  logger.info('Added missing PostToolUse hooks');
223
257
  }
224
258
  else if (Array.isArray(hooks.PostToolUse)) {
225
- const hasBellModeHook = hooks.PostToolUse.some((entry) => hookEntryContains(entry, 'bell-mode-hook'));
259
+ const hasBellModeHook = hooks.PostToolUse.some((entry) => hookEntryContains(entry, 'bell-mode-hook') || hookEntryContains(entry, 'pf hooks bell-mode'));
226
260
  if (!hasBellModeHook && templateContent.hooks?.PostToolUse) {
227
- const bellModeEntry = findHookEntry(templateContent.hooks.PostToolUse, 'bell-mode-hook');
261
+ const bellModeEntry = findHookEntry(templateContent.hooks.PostToolUse, 'pf hooks bell-mode');
228
262
  if (bellModeEntry) {
229
263
  hooks.PostToolUse = [bellModeEntry, ...hooks.PostToolUse];
230
264
  modified = true;
231
- logger.info('Added missing bell-mode-hook');
265
+ logger.info('Added missing bell-mode hook');
232
266
  }
233
267
  }
234
268
  }
@@ -239,38 +273,38 @@ export async function mergeSettingsLocalJson(projectRoot, assetsPath, options) {
239
273
  logger.info('Added missing PreToolUse hooks');
240
274
  }
241
275
  else if (Array.isArray(hooks.PreToolUse)) {
242
- // Check for context-circuit-breaker
243
- const hasCircuitBreaker = hooks.PreToolUse.some((entry) => hookEntryContains(entry, 'context-circuit-breaker'));
276
+ // Check for context-circuit-breaker / context-breaker
277
+ const hasCircuitBreaker = hooks.PreToolUse.some((entry) => hookEntryContains(entry, 'context-circuit-breaker') || hookEntryContains(entry, 'pf hooks context-breaker'));
244
278
  if (!hasCircuitBreaker && templateContent.hooks?.PreToolUse) {
245
- const circuitBreakerEntry = findHookEntry(templateContent.hooks.PreToolUse, 'context-circuit-breaker');
279
+ const circuitBreakerEntry = findHookEntry(templateContent.hooks.PreToolUse, 'pf hooks context-breaker');
246
280
  if (circuitBreakerEntry) {
247
281
  hooks.PreToolUse = [...hooks.PreToolUse, circuitBreakerEntry];
248
282
  modified = true;
249
- logger.info('Added missing context-circuit-breaker hook');
283
+ logger.info('Added missing context-breaker hook');
250
284
  }
251
285
  }
252
286
  // Check for schema-validation hook
253
287
  const hasSchemaValidation = hooks.PreToolUse.some((entry) => hookEntryContains(entry, 'schema-validation'));
254
288
  if (!hasSchemaValidation && templateContent.hooks?.PreToolUse) {
255
- const schemaValidationEntry = findHookEntry(templateContent.hooks.PreToolUse, 'schema-validation');
289
+ const schemaValidationEntry = findHookEntry(templateContent.hooks.PreToolUse, 'pf hooks schema-validation');
256
290
  if (schemaValidationEntry) {
257
291
  hooks.PreToolUse = [...hooks.PreToolUse, schemaValidationEntry];
258
292
  modified = true;
259
293
  logger.info('Added missing schema-validation hook');
260
294
  }
261
295
  }
262
- // Check for cyclist-pretooluse-hook (Cyclist permissions integration)
263
- const hasCyclistPreToolUse = hooks.PreToolUse.some((entry) => hookEntryContains(entry, 'cyclist-pretooluse-hook'));
296
+ // Check for cyclist-pretooluse hook (Cyclist permissions integration)
297
+ const hasCyclistPreToolUse = hooks.PreToolUse.some((entry) => hookEntryContains(entry, 'cyclist-pretooluse') || hookEntryContains(entry, 'pf hooks cyclist-pretooluse'));
264
298
  if (!hasCyclistPreToolUse && templateContent.hooks?.PreToolUse) {
265
- const cyclistEntry = findHookEntry(templateContent.hooks.PreToolUse, 'cyclist-pretooluse-hook');
299
+ const cyclistEntry = findHookEntry(templateContent.hooks.PreToolUse, 'pf hooks cyclist-pretooluse');
266
300
  if (cyclistEntry) {
267
301
  hooks.PreToolUse = [...hooks.PreToolUse, cyclistEntry];
268
302
  modified = true;
269
- logger.info('Added missing cyclist-pretooluse-hook');
303
+ logger.info('Added missing cyclist-pretooluse hook');
270
304
  }
271
305
  }
272
306
  }
273
- // Ensure statusLine is configured and points to new location
307
+ // Ensure statusLine is configured and points to `pf hooks statusline`
274
308
  const statusLine = existingSettings.statusLine;
275
309
  if (!statusLine) {
276
310
  existingSettings.statusLine = templateContent.statusLine;
@@ -278,13 +312,15 @@ export async function mergeSettingsLocalJson(projectRoot, assetsPath, options) {
278
312
  logger.info('Added missing statusLine configuration');
279
313
  }
280
314
  else if (statusLine.command && typeof statusLine.command === 'string') {
281
- // Migrate from any legacy path to new path
282
- for (const legacyPath of LEGACY_STATUSLINE_PATHS) {
283
- if (statusLine.command.includes(legacyPath)) {
284
- statusLine.command = statusLine.command.replace(legacyPath, '.pennyfarthing/scripts/misc/statusline.sh');
285
- modified = true;
286
- logger.info(`Updated statusLine path from ${legacyPath} to new location`);
287
- break;
315
+ // Migrate from any legacy .sh path to pf hooks statusline
316
+ if (statusLine.command !== 'pf hooks statusline') {
317
+ for (const legacyPath of LEGACY_STATUSLINE_PATHS) {
318
+ if (statusLine.command.includes(legacyPath)) {
319
+ statusLine.command = 'pf hooks statusline';
320
+ modified = true;
321
+ logger.info('Migrated statusLine from .sh to pf hooks statusline');
322
+ break;
323
+ }
288
324
  }
289
325
  }
290
326
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/cli/utils/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACxH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAOxC;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;YACtC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAClC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,uBAAuB,GAAG;IAC9B,4BAA4B;IAC5B,uBAAuB;IACvB,qCAAqC;IACrC,6CAA6C;IAC7C,+BAA+B;IAC/B,sCAAsC;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAG;IAC1B,gCAAgC;IAChC,kBAAkB;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,yBAAyB,GAAG;IAChC,wBAAwB;CACzB,CAAC;AAEF;;GAEG;AACH,SAAS,iBAAiB,CAAC,KAAc,EAAE,SAAiB;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,KAAkB,CAAC;QACrC,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,SAAoB,EAAE,SAAiB;IAC5D,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,SAAoB;IAC5C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,KAAkB,CAAC;YACrC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBAChC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;wBACd,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;4BAC7C,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gCACnC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;gCACrE,QAAQ,GAAG,IAAI,CAAC;gCAChB,MAAM;4BACR,CAAC;wBACH,CAAC;wBACD,KAAK,MAAM,UAAU,IAAI,yBAAyB,EAAE,CAAC;4BACnD,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gCACnC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;gCAC3E,QAAQ,GAAG,IAAI,CAAC;gCAChB,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,UAAkB,EAClB,OAAuD;IAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,wCAAwC,CAAC,CAAC;IAEhF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvE,kDAAkD;IAClD,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1F,0EAA0E;IAC1E,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,MAAM,eAAe,GAAG,SAAS,KAAK,GAAG,CAAC;gBAC1C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC3C,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YACD,eAAe,CAAC,WAAW,GAAG,EAAE,GAAG,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACvF,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACnD,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QACrD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,gBAAgB,eAAe,CAAC,MAAM,wBAAwB,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yBAAyB;IACzB,IAAI,gBAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,6BAA6B;IAC7B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC5B,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5B,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAgC,CAAC;IAEhE,uDAAuD;IACvD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;QAC/D,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,MAAM,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CACrE,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAC7C,CAAC;QAEF,IAAI,CAAC,mBAAmB,IAAI,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;YAChE,MAAM,iBAAiB,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;YAChG,IAAI,iBAAiB,EAAE,CAAC;gBACtB,KAAK,CAAC,YAAY,GAAG,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;gBAChE,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,MAAM,aAAa,GAAI,KAAK,CAAC,YAA0B,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAC9E,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,CACzC,CAAC;QAEF,IAAI,CAAC,aAAa,IAAI,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;YAC1D,MAAM,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAC1F,IAAI,eAAe,EAAE,CAAC;gBACpB,KAAK,CAAC,YAAY,GAAG,CAAC,GAAI,KAAK,CAAC,YAA0B,EAAE,eAAe,CAAC,CAAC;gBAC7E,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;QAC3D,KAAK,CAAC,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;QACpD,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QAC/C,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAC1D,iBAAiB,CAAC,KAAK,EAAE,0BAA0B,CAAC,CACrD,CAAC;QAEF,IAAI,CAAC,gBAAgB,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACrD,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;YAC7F,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7C,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;QAC7D,KAAK,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC;QACtD,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAChE,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAC3C,CAAC;QAEF,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YAC3D,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACzF,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,CAAC,WAAW,GAAG,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC1D,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;QAC3D,KAAK,CAAC,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;QACpD,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,oCAAoC;QACpC,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CACjE,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CACpD,CAAC;QAEF,IAAI,CAAC,iBAAiB,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;YAC5D,MAAM,mBAAmB,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;YACvG,IAAI,mBAAmB,EAAE,CAAC;gBACxB,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;gBAC9D,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,MAAM,mBAAmB,GAAI,KAAK,CAAC,UAAwB,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAClF,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAC9C,CAAC;QAEF,IAAI,CAAC,mBAAmB,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;YAC9D,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YACnG,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,KAAK,CAAC,UAAU,GAAG,CAAC,GAAI,KAAK,CAAC,UAAwB,EAAE,qBAAqB,CAAC,CAAC;gBAC/E,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,MAAM,oBAAoB,GAAI,KAAK,CAAC,UAAwB,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CACnF,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CACpD,CAAC;QAEF,IAAI,CAAC,oBAAoB,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;YAC/D,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;YAChG,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,CAAC,UAAU,GAAG,CAAC,GAAI,KAAK,CAAC,UAAwB,EAAE,YAAY,CAAC,CAAC;gBACtE,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAiD,CAAC;IACtF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,gBAAgB,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;QACzD,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,UAAU,CAAC,OAAO,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACxE,2CAA2C;QAC3C,KAAK,MAAM,UAAU,IAAI,uBAAuB,EAAE,CAAC;YACjD,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAC7C,UAAU,EACV,2CAA2C,CAC5C,CAAC;gBACF,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,gCAAgC,UAAU,kBAAkB,CAAC,CAAC;gBAC1E,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,KAAK,MAAM,QAAQ,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;QAC3F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACnC,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAc,CAAC,EAAE,CAAC;gBACnD,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,6BAA6B,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YAClC,gBAAgB,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC7C,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAsC,CAAC;QAC5E,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACvB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;YACvB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAiB,CAAC;QAEhD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,SAAS,KAAK,GAAG,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACzC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAChC,WAAW,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,cAAc,WAAW,gCAAgC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAChC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,oCAAoC,EAAE,oBAAoB,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,uCAAuC,CAAC;IAE/D,oCAAoC;IACpC,IAAI,CAAC;QACH,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,gFAAgF;QAChF,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;IAExE,kCAAkC;IAClC,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;QAC9C,OAAO;IACT,CAAC;IAED,uCAAuC;IACvC,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,mDAAmD;QACnD,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACnD,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,4DAA4D;QAC5D,UAAU,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,iDAAiD;IACjD,WAAW,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/cli/utils/settings.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { readdirSync, unlinkSync, symlinkSync, lstatSync, rmSync } from 'fs';
1
+ import { readdirSync, unlinkSync, symlinkSync, lstatSync, rmSync, copyFileSync } from 'fs';
2
2
  import { join, relative, dirname } from 'path';
3
3
  import fsExtra from 'fs-extra';
4
- const { ensureDirSync } = fsExtra;
4
+ const { ensureDirSync, copySync } = fsExtra;
5
5
  import { logger } from './logger.js';
6
6
  import { pathExists, isSymlink, isDirectory } from './files.js';
7
7
  /**
@@ -115,23 +115,23 @@ export function createCommandsDirectory(projectRoot, builtInCommandsPath, projec
115
115
  ensureDirSync(commandsDir);
116
116
  }
117
117
  logger.created('.claude/commands/ (directory for built-in + user commands)');
118
- // Symlink each built-in command (only pf-prefixed built-in commands)
118
+ // Copy each built-in command (only pf-prefixed built-in commands)
119
+ // Copies instead of symlinks to avoid drift when node_modules changes
119
120
  if (pathExists(builtInCommandsPath)) {
120
121
  const builtInCommands = readdirSync(builtInCommandsPath).filter(f => f.endsWith('.md') && f.startsWith('pf-'));
121
122
  for (const cmd of builtInCommands) {
122
- const linkPath = join(commandsDir, cmd);
123
- const targetPath = join(builtInCommandsPath, cmd);
124
- const relativeTarget = computeRelativeSymlink(linkPath, targetPath);
123
+ const destPath = join(commandsDir, cmd);
124
+ const sourcePath = join(builtInCommandsPath, cmd);
125
125
  if (!dryRun) {
126
126
  try {
127
- symlinkSync(relativeTarget, linkPath);
127
+ copyFileSync(sourcePath, destPath);
128
128
  }
129
129
  catch (e) {
130
- logger.warning(`Could not create symlink for ${cmd}: ${e}`);
130
+ logger.warning(`Could not copy command ${cmd}: ${e}`);
131
131
  }
132
132
  }
133
133
  }
134
- logger.info(` Linked ${builtInCommands.length} built-in commands`);
134
+ logger.info(` Copied ${builtInCommands.length} built-in commands`);
135
135
  }
136
136
  // Symlink user project commands (if any exist)
137
137
  if (pathExists(projectCommandsPath)) {
@@ -186,26 +186,26 @@ export function createSkillsDirectory(projectRoot, builtInSkillsPath, projectSki
186
186
  ensureDirSync(skillsDir);
187
187
  }
188
188
  logger.created('.claude/skills/ (directory for built-in + user skills)');
189
- // Symlink each built-in skill (only pf-prefixed built-in skills)
189
+ // Copy each built-in skill directory (only pf-prefixed built-in skills)
190
+ // Copies instead of symlinks to avoid drift when node_modules changes
190
191
  if (pathExists(builtInSkillsPath)) {
191
192
  const builtInSkills = readdirSync(builtInSkillsPath).filter(f => {
192
193
  const fullPath = join(builtInSkillsPath, f);
193
194
  return isDirectory(fullPath) && f.startsWith('pf-');
194
195
  });
195
196
  for (const skill of builtInSkills) {
196
- const linkPath = join(skillsDir, skill);
197
- const targetPath = join(builtInSkillsPath, skill);
198
- const relativeTarget = computeRelativeSymlink(linkPath, targetPath);
197
+ const destPath = join(skillsDir, skill);
198
+ const sourcePath = join(builtInSkillsPath, skill);
199
199
  if (!dryRun) {
200
200
  try {
201
- symlinkSync(relativeTarget, linkPath);
201
+ copySync(sourcePath, destPath, { overwrite: true });
202
202
  }
203
203
  catch (e) {
204
- logger.warning(`Could not create symlink for ${skill}: ${e}`);
204
+ logger.warning(`Could not copy skill ${skill}: ${e}`);
205
205
  }
206
206
  }
207
207
  }
208
- logger.info(` Linked ${builtInSkills.length} built-in skills`);
208
+ logger.info(` Copied ${builtInSkills.length} built-in skills`);
209
209
  }
210
210
  // Symlink user project skills (if any exist) - skills are directories
211
211
  if (pathExists(projectSkillsPath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"symlinks.js","sourceRoot":"","sources":["../../../src/cli/utils/symlinks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symlinks.js","sourceRoot":"","sources":["../../../src/cli/utils/symlinks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Tandem Metrics and Token Tracking for Story 86-6
3
+ *
4
+ * Tracks consultation token usage, frequency, and outcomes for overhead analysis.
5
+ * Extends the dialogue manager (86-3) with metrics collection and summary generation.
6
+ *
7
+ * All functions are pure or use simple computation — no external dependencies.
8
+ */
9
+ import type { Outcome } from './dialogue-manager.js';
10
+ /**
11
+ * Token and timing metrics for a single consultation exchange.
12
+ * These are tracked separately from leader session tokens (AC1).
13
+ */
14
+ export interface ExchangeMetrics {
15
+ /** Tokens sent to the consultation partner (request) */
16
+ inputTokens: number;
17
+ /** Tokens received from the consultation partner (response) */
18
+ outputTokens: number;
19
+ /** Time in milliseconds for the partner to respond */
20
+ responseTimeMs: number;
21
+ }
22
+ /**
23
+ * A dialogue exchange extended with metrics fields.
24
+ * Mirrors DialogueExchange from dialogue-manager but adds token tracking.
25
+ */
26
+ export interface MetricsExchange {
27
+ number: number;
28
+ timestamp: string;
29
+ leader: string;
30
+ partner: string;
31
+ question: string;
32
+ recommendation: string;
33
+ confidence: string;
34
+ outcome?: Outcome;
35
+ outcomeNote?: string;
36
+ /** Consultation-specific metrics (absent for exchanges without tracking) */
37
+ metrics?: ExchangeMetrics;
38
+ }
39
+ /**
40
+ * Aggregated metrics across all consultation exchanges in a dialogue.
41
+ */
42
+ export interface TandemMetricsSummary {
43
+ /** Number of consultation exchanges */
44
+ consultationCount: number;
45
+ /** Total input tokens across all exchanges */
46
+ totalInputTokens: number;
47
+ /** Total output tokens across all exchanges */
48
+ totalOutputTokens: number;
49
+ /** Combined total tokens (input + output) */
50
+ totalTokens: number;
51
+ /** Average response time in milliseconds */
52
+ avgResponseTimeMs: number;
53
+ /** Distribution of outcomes: { applied: N, deferred: N, rejected: N, pending: N } */
54
+ outcomeDistribution: Record<string, number>;
55
+ /** Tandem overhead as percentage of baseline, or null if baseline not provided */
56
+ overheadPercent: number | null;
57
+ }
58
+ /**
59
+ * Aggregate metrics from a list of exchanges with metrics data.
60
+ * Exchanges without metrics are counted but excluded from token/timing calculations.
61
+ */
62
+ export declare function aggregateMetrics(exchanges: MetricsExchange[]): TandemMetricsSummary;
63
+ /**
64
+ * Calculate tandem overhead as a percentage of baseline token cost.
65
+ * Returns the percentage (e.g., 12.5 for 12.5%).
66
+ *
67
+ * @param tandemTokens - Total tokens used by tandem consultations
68
+ * @param baselineTokens - Total tokens used by the leader session (non-tandem)
69
+ * @returns Overhead percentage, or null if baselineTokens is zero
70
+ */
71
+ export declare function calculateOverheadPercent(tandemTokens: number, baselineTokens: number): number | null;
72
+ /**
73
+ * Check whether tandem overhead is within the acceptable budget threshold.
74
+ * Default threshold is 25% per story AC5.
75
+ *
76
+ * @param overheadPercent - The calculated overhead percentage
77
+ * @param threshold - Maximum acceptable overhead percentage (default: 25)
78
+ * @returns true if within budget, false if over
79
+ */
80
+ export declare function isWithinBudget(overheadPercent: number | null, threshold?: number): boolean;
81
+ /**
82
+ * Format a TandemMetricsSummary as markdown lines for the dialogue file summary section.
83
+ * Returns an array of markdown bullet lines (without the ## Summary header).
84
+ */
85
+ export declare function formatMetricsSummary(metrics: TandemMetricsSummary): string[];
86
+ /**
87
+ * Parse metrics fields from an existing dialogue file summary section.
88
+ * Returns null if no metrics are found in the summary.
89
+ */
90
+ export declare function parseMetricsFromSummary(summaryContent: string): TandemMetricsSummary | null;
91
+ //# sourceMappingURL=tandem-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tandem-metrics.d.ts","sourceRoot":"","sources":["../../src/consultation/tandem-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMrD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,kFAAkF;IAClF,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAiCnF;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI,CAGf;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAIT;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAmB5E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CA8B3F"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Tandem Metrics and Token Tracking for Story 86-6
3
+ *
4
+ * Tracks consultation token usage, frequency, and outcomes for overhead analysis.
5
+ * Extends the dialogue manager (86-3) with metrics collection and summary generation.
6
+ *
7
+ * All functions are pure or use simple computation — no external dependencies.
8
+ */
9
+ // =============================================================================
10
+ // Metrics Calculation
11
+ // =============================================================================
12
+ /**
13
+ * Aggregate metrics from a list of exchanges with metrics data.
14
+ * Exchanges without metrics are counted but excluded from token/timing calculations.
15
+ */
16
+ export function aggregateMetrics(exchanges) {
17
+ let totalInputTokens = 0;
18
+ let totalOutputTokens = 0;
19
+ let totalResponseTimeMs = 0;
20
+ let metricsCount = 0;
21
+ const outcomeDistribution = {
22
+ applied: 0,
23
+ deferred: 0,
24
+ rejected: 0,
25
+ pending: 0,
26
+ };
27
+ for (const ex of exchanges) {
28
+ if (ex.metrics) {
29
+ totalInputTokens += ex.metrics.inputTokens;
30
+ totalOutputTokens += ex.metrics.outputTokens;
31
+ totalResponseTimeMs += ex.metrics.responseTimeMs;
32
+ metricsCount++;
33
+ }
34
+ const outcome = ex.outcome ?? 'pending';
35
+ outcomeDistribution[outcome] = (outcomeDistribution[outcome] ?? 0) + 1;
36
+ }
37
+ return {
38
+ consultationCount: exchanges.length,
39
+ totalInputTokens,
40
+ totalOutputTokens,
41
+ totalTokens: totalInputTokens + totalOutputTokens,
42
+ avgResponseTimeMs: metricsCount > 0 ? Math.round(totalResponseTimeMs / metricsCount) : 0,
43
+ outcomeDistribution,
44
+ overheadPercent: null,
45
+ };
46
+ }
47
+ /**
48
+ * Calculate tandem overhead as a percentage of baseline token cost.
49
+ * Returns the percentage (e.g., 12.5 for 12.5%).
50
+ *
51
+ * @param tandemTokens - Total tokens used by tandem consultations
52
+ * @param baselineTokens - Total tokens used by the leader session (non-tandem)
53
+ * @returns Overhead percentage, or null if baselineTokens is zero
54
+ */
55
+ export function calculateOverheadPercent(tandemTokens, baselineTokens) {
56
+ if (baselineTokens === 0)
57
+ return null;
58
+ return Math.round((tandemTokens / baselineTokens) * 1000) / 10;
59
+ }
60
+ /**
61
+ * Check whether tandem overhead is within the acceptable budget threshold.
62
+ * Default threshold is 25% per story AC5.
63
+ *
64
+ * @param overheadPercent - The calculated overhead percentage
65
+ * @param threshold - Maximum acceptable overhead percentage (default: 25)
66
+ * @returns true if within budget, false if over
67
+ */
68
+ export function isWithinBudget(overheadPercent, threshold) {
69
+ if (overheadPercent === null)
70
+ return true;
71
+ const limit = threshold ?? 25;
72
+ return overheadPercent < limit;
73
+ }
74
+ // =============================================================================
75
+ // Summary Formatting
76
+ // =============================================================================
77
+ /**
78
+ * Format a TandemMetricsSummary as markdown lines for the dialogue file summary section.
79
+ * Returns an array of markdown bullet lines (without the ## Summary header).
80
+ */
81
+ export function formatMetricsSummary(metrics) {
82
+ const lines = [];
83
+ lines.push(`- **Consultations:** ${metrics.consultationCount}`);
84
+ lines.push(`- **Tokens:** ${metrics.totalTokens} (input: ${metrics.totalInputTokens}, output: ${metrics.totalOutputTokens})`);
85
+ lines.push(`- **Avg Response Time:** ${metrics.avgResponseTimeMs}ms`);
86
+ const dist = metrics.outcomeDistribution;
87
+ const parts = ['applied', 'deferred', 'rejected', 'pending']
88
+ .map(k => `${k}: ${dist[k] ?? 0}`)
89
+ .join(', ');
90
+ lines.push(`- **Outcomes:** ${parts}`);
91
+ if (metrics.overheadPercent !== null) {
92
+ lines.push(`- **Overhead:** ${metrics.overheadPercent}%`);
93
+ }
94
+ else {
95
+ lines.push(`- **Overhead:** N/A`);
96
+ }
97
+ return lines;
98
+ }
99
+ /**
100
+ * Parse metrics fields from an existing dialogue file summary section.
101
+ * Returns null if no metrics are found in the summary.
102
+ */
103
+ export function parseMetricsFromSummary(summaryContent) {
104
+ const consultMatch = summaryContent.match(/\*\*Consultations:\*\*\s*(\d+)/);
105
+ const tokensMatch = summaryContent.match(/\*\*Tokens:\*\*\s*(\d+)\s*\(input:\s*(\d+),\s*output:\s*(\d+)\)/);
106
+ const responseMatch = summaryContent.match(/\*\*Avg Response Time:\*\*\s*(\d+)ms/);
107
+ if (!consultMatch || !tokensMatch)
108
+ return null;
109
+ const outcomesMatch = summaryContent.match(/\*\*Outcomes:\*\*\s*(.+)/);
110
+ const outcomeDistribution = { applied: 0, deferred: 0, rejected: 0, pending: 0 };
111
+ if (outcomesMatch) {
112
+ for (const part of outcomesMatch[1].split(',')) {
113
+ const [key, val] = part.trim().split(':').map(s => s.trim());
114
+ if (key && val !== undefined) {
115
+ outcomeDistribution[key] = parseInt(val, 10);
116
+ }
117
+ }
118
+ }
119
+ const overheadMatch = summaryContent.match(/\*\*Overhead:\*\*\s*([\d.]+)%/);
120
+ const overheadPercent = overheadMatch ? parseFloat(overheadMatch[1]) : null;
121
+ return {
122
+ consultationCount: parseInt(consultMatch[1], 10),
123
+ totalTokens: parseInt(tokensMatch[1], 10),
124
+ totalInputTokens: parseInt(tokensMatch[2], 10),
125
+ totalOutputTokens: parseInt(tokensMatch[3], 10),
126
+ avgResponseTimeMs: responseMatch ? parseInt(responseMatch[1], 10) : 0,
127
+ outcomeDistribution,
128
+ overheadPercent,
129
+ };
130
+ }
131
+ //# sourceMappingURL=tandem-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tandem-metrics.js","sourceRoot":"","sources":["../../src/consultation/tandem-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Tests for Story 86-6: Tandem Metrics and Token Tracking
3
+ *
4
+ * RED state tests for consultation token usage, frequency, and outcome metrics.
5
+ * These metrics are tracked separately from leader session tokens and written
6
+ * to the dialogue file summary section.
7
+ *
8
+ * ACs covered:
9
+ * AC1: Consultation tokens logged separately from leader session tokens
10
+ * AC2: Metrics captured: count, total tokens, avg response time, outcome distribution
11
+ * AC3: Metrics written to dialogue file summary section
12
+ * AC4: Session summary includes tandem overhead percentage
13
+ * AC5: Target: consultation overhead < 25% of baseline story token cost
14
+ *
15
+ * Run with: npm test
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=tandem-metrics.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tandem-metrics.test.d.ts","sourceRoot":"","sources":["../../src/consultation/tandem-metrics.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}