aicodeman 0.2.9 → 0.3.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 (374) hide show
  1. package/README.md +118 -4
  2. package/dist/ai-idle-checker.d.ts.map +1 -1
  3. package/dist/ai-idle-checker.js +3 -2
  4. package/dist/ai-idle-checker.js.map +1 -1
  5. package/dist/ai-plan-checker.d.ts.map +1 -1
  6. package/dist/ai-plan-checker.js +3 -2
  7. package/dist/ai-plan-checker.js.map +1 -1
  8. package/dist/bash-tool-parser.d.ts +2 -3
  9. package/dist/bash-tool-parser.d.ts.map +1 -1
  10. package/dist/bash-tool-parser.js +14 -31
  11. package/dist/bash-tool-parser.js.map +1 -1
  12. package/dist/config/ai-defaults.d.ts +16 -0
  13. package/dist/config/ai-defaults.d.ts.map +1 -0
  14. package/dist/config/ai-defaults.js +16 -0
  15. package/dist/config/ai-defaults.js.map +1 -0
  16. package/dist/config/auth-config.d.ts +19 -0
  17. package/dist/config/auth-config.d.ts.map +1 -0
  18. package/dist/config/auth-config.js +28 -0
  19. package/dist/config/auth-config.js.map +1 -0
  20. package/dist/config/exec-timeout.d.ts +10 -0
  21. package/dist/config/exec-timeout.d.ts.map +1 -0
  22. package/dist/config/exec-timeout.js +10 -0
  23. package/dist/config/exec-timeout.js.map +1 -0
  24. package/dist/config/map-limits.d.ts +4 -0
  25. package/dist/config/map-limits.d.ts.map +1 -1
  26. package/dist/config/map-limits.js +7 -0
  27. package/dist/config/map-limits.js.map +1 -1
  28. package/dist/config/server-timing.d.ts +42 -0
  29. package/dist/config/server-timing.d.ts.map +1 -0
  30. package/dist/config/server-timing.js +57 -0
  31. package/dist/config/server-timing.js.map +1 -0
  32. package/dist/config/team-config.d.ts +16 -0
  33. package/dist/config/team-config.d.ts.map +1 -0
  34. package/dist/config/team-config.js +16 -0
  35. package/dist/config/team-config.js.map +1 -0
  36. package/dist/config/terminal-limits.d.ts +18 -0
  37. package/dist/config/terminal-limits.d.ts.map +1 -0
  38. package/dist/config/terminal-limits.js +18 -0
  39. package/dist/config/terminal-limits.js.map +1 -0
  40. package/dist/config/tunnel-config.d.ts +27 -0
  41. package/dist/config/tunnel-config.d.ts.map +1 -0
  42. package/dist/config/tunnel-config.js +36 -0
  43. package/dist/config/tunnel-config.js.map +1 -0
  44. package/dist/hooks-config.d.ts +21 -6
  45. package/dist/hooks-config.d.ts.map +1 -1
  46. package/dist/hooks-config.js +28 -12
  47. package/dist/hooks-config.js.map +1 -1
  48. package/dist/image-watcher.d.ts +4 -4
  49. package/dist/image-watcher.d.ts.map +1 -1
  50. package/dist/image-watcher.js +17 -30
  51. package/dist/image-watcher.js.map +1 -1
  52. package/dist/index.js +1 -2
  53. package/dist/index.js.map +1 -1
  54. package/dist/plan-orchestrator.d.ts +2 -24
  55. package/dist/plan-orchestrator.d.ts.map +1 -1
  56. package/dist/plan-orchestrator.js.map +1 -1
  57. package/dist/prompts/planner.d.ts +7 -8
  58. package/dist/prompts/planner.d.ts.map +1 -1
  59. package/dist/prompts/planner.js +7 -8
  60. package/dist/prompts/planner.js.map +1 -1
  61. package/dist/prompts/research-agent.d.ts +6 -4
  62. package/dist/prompts/research-agent.d.ts.map +1 -1
  63. package/dist/prompts/research-agent.js +6 -4
  64. package/dist/prompts/research-agent.js.map +1 -1
  65. package/dist/push-store.d.ts +1 -1
  66. package/dist/push-store.d.ts.map +1 -1
  67. package/dist/push-store.js +4 -12
  68. package/dist/push-store.js.map +1 -1
  69. package/dist/ralph-fix-plan-watcher.d.ts +91 -0
  70. package/dist/ralph-fix-plan-watcher.d.ts.map +1 -0
  71. package/dist/ralph-fix-plan-watcher.js +326 -0
  72. package/dist/ralph-fix-plan-watcher.js.map +1 -0
  73. package/dist/ralph-loop.d.ts +14 -4
  74. package/dist/ralph-loop.d.ts.map +1 -1
  75. package/dist/ralph-loop.js +14 -4
  76. package/dist/ralph-loop.js.map +1 -1
  77. package/dist/ralph-plan-tracker.d.ts +201 -0
  78. package/dist/ralph-plan-tracker.d.ts.map +1 -0
  79. package/dist/ralph-plan-tracker.js +325 -0
  80. package/dist/ralph-plan-tracker.js.map +1 -0
  81. package/dist/ralph-stall-detector.d.ts +84 -0
  82. package/dist/ralph-stall-detector.d.ts.map +1 -0
  83. package/dist/ralph-stall-detector.js +139 -0
  84. package/dist/ralph-stall-detector.js.map +1 -0
  85. package/dist/ralph-status-parser.d.ts +141 -0
  86. package/dist/ralph-status-parser.d.ts.map +1 -0
  87. package/dist/ralph-status-parser.js +478 -0
  88. package/dist/ralph-status-parser.js.map +1 -0
  89. package/dist/ralph-tracker.d.ts +218 -692
  90. package/dist/ralph-tracker.d.ts.map +1 -1
  91. package/dist/ralph-tracker.js +389 -1723
  92. package/dist/ralph-tracker.js.map +1 -1
  93. package/dist/respawn-adaptive-timing.d.ts +61 -0
  94. package/dist/respawn-adaptive-timing.d.ts.map +1 -0
  95. package/dist/respawn-adaptive-timing.js +105 -0
  96. package/dist/respawn-adaptive-timing.js.map +1 -0
  97. package/dist/respawn-controller.d.ts +35 -115
  98. package/dist/respawn-controller.d.ts.map +1 -1
  99. package/dist/respawn-controller.js +167 -607
  100. package/dist/respawn-controller.js.map +1 -1
  101. package/dist/respawn-health.d.ts +54 -0
  102. package/dist/respawn-health.d.ts.map +1 -0
  103. package/dist/respawn-health.js +183 -0
  104. package/dist/respawn-health.js.map +1 -0
  105. package/dist/respawn-metrics.d.ts +81 -0
  106. package/dist/respawn-metrics.d.ts.map +1 -0
  107. package/dist/respawn-metrics.js +198 -0
  108. package/dist/respawn-metrics.js.map +1 -0
  109. package/dist/respawn-patterns.d.ts +45 -0
  110. package/dist/respawn-patterns.d.ts.map +1 -0
  111. package/dist/respawn-patterns.js +125 -0
  112. package/dist/respawn-patterns.js.map +1 -0
  113. package/dist/session-auto-ops.d.ts +89 -0
  114. package/dist/session-auto-ops.d.ts.map +1 -0
  115. package/dist/session-auto-ops.js +224 -0
  116. package/dist/session-auto-ops.js.map +1 -0
  117. package/dist/session-cli-builder.d.ts +62 -0
  118. package/dist/session-cli-builder.d.ts.map +1 -0
  119. package/dist/session-cli-builder.js +121 -0
  120. package/dist/session-cli-builder.js.map +1 -0
  121. package/dist/session-manager.d.ts +17 -5
  122. package/dist/session-manager.d.ts.map +1 -1
  123. package/dist/session-manager.js +17 -5
  124. package/dist/session-manager.js.map +1 -1
  125. package/dist/session-task-cache.d.ts +52 -0
  126. package/dist/session-task-cache.d.ts.map +1 -0
  127. package/dist/session-task-cache.js +90 -0
  128. package/dist/session-task-cache.js.map +1 -0
  129. package/dist/session.d.ts +23 -41
  130. package/dist/session.d.ts.map +1 -1
  131. package/dist/session.js +79 -317
  132. package/dist/session.js.map +1 -1
  133. package/dist/state-store.d.ts +19 -9
  134. package/dist/state-store.d.ts.map +1 -1
  135. package/dist/state-store.js +29 -30
  136. package/dist/state-store.js.map +1 -1
  137. package/dist/subagent-watcher.d.ts +26 -7
  138. package/dist/subagent-watcher.d.ts.map +1 -1
  139. package/dist/subagent-watcher.js +47 -64
  140. package/dist/subagent-watcher.js.map +1 -1
  141. package/dist/team-watcher.d.ts.map +1 -1
  142. package/dist/team-watcher.js +2 -5
  143. package/dist/team-watcher.js.map +1 -1
  144. package/dist/tmux-manager.d.ts.map +1 -1
  145. package/dist/tmux-manager.js +1 -2
  146. package/dist/tmux-manager.js.map +1 -1
  147. package/dist/tunnel-manager.d.ts +26 -0
  148. package/dist/tunnel-manager.d.ts.map +1 -1
  149. package/dist/tunnel-manager.js +126 -7
  150. package/dist/tunnel-manager.js.map +1 -1
  151. package/dist/types/api.d.ts +108 -0
  152. package/dist/types/api.d.ts.map +1 -0
  153. package/dist/types/api.js +98 -0
  154. package/dist/types/api.js.map +1 -0
  155. package/dist/types/app-state.d.ts +117 -0
  156. package/dist/types/app-state.d.ts.map +1 -0
  157. package/dist/types/app-state.js +76 -0
  158. package/dist/types/app-state.js.map +1 -0
  159. package/dist/types/common.d.ts +79 -0
  160. package/dist/types/common.d.ts.map +1 -0
  161. package/dist/types/common.js +17 -0
  162. package/dist/types/common.js.map +1 -0
  163. package/dist/types/index.d.ts +66 -0
  164. package/dist/types/index.d.ts.map +1 -0
  165. package/dist/types/index.js +66 -0
  166. package/dist/types/index.js.map +1 -0
  167. package/dist/types/lifecycle.d.ts +28 -0
  168. package/dist/types/lifecycle.d.ts.map +1 -0
  169. package/dist/types/lifecycle.js +16 -0
  170. package/dist/types/lifecycle.js.map +1 -0
  171. package/dist/types/plan.d.ts +45 -0
  172. package/dist/types/plan.d.ts.map +1 -0
  173. package/dist/types/plan.js +18 -0
  174. package/dist/types/plan.js.map +1 -0
  175. package/dist/types/push.d.ts +36 -0
  176. package/dist/types/push.d.ts.map +1 -0
  177. package/dist/types/push.js +18 -0
  178. package/dist/types/push.js.map +1 -0
  179. package/dist/types/ralph.d.ts +262 -0
  180. package/dist/types/ralph.d.ts.map +1 -0
  181. package/dist/types/ralph.js +70 -0
  182. package/dist/types/ralph.js.map +1 -0
  183. package/dist/types/respawn.d.ts +271 -0
  184. package/dist/types/respawn.d.ts.map +1 -0
  185. package/dist/types/respawn.js +26 -0
  186. package/dist/types/respawn.js.map +1 -0
  187. package/dist/types/run-summary.d.ts +96 -0
  188. package/dist/types/run-summary.d.ts.map +1 -0
  189. package/dist/types/run-summary.js +37 -0
  190. package/dist/types/run-summary.js.map +1 -0
  191. package/dist/types/session.d.ts +152 -0
  192. package/dist/types/session.d.ts.map +1 -0
  193. package/dist/types/session.js +27 -0
  194. package/dist/types/session.js.map +1 -0
  195. package/dist/types/task.d.ts +72 -0
  196. package/dist/types/task.d.ts.map +1 -0
  197. package/dist/types/task.js +19 -0
  198. package/dist/types/task.js.map +1 -0
  199. package/dist/types/teams.d.ts +73 -0
  200. package/dist/types/teams.d.ts.map +1 -0
  201. package/dist/types/teams.js +23 -0
  202. package/dist/types/teams.js.map +1 -0
  203. package/dist/types/tools.d.ts +61 -0
  204. package/dist/types/tools.d.ts.map +1 -0
  205. package/dist/types/tools.js +20 -0
  206. package/dist/types/tools.js.map +1 -0
  207. package/dist/types.d.ts +8 -1134
  208. package/dist/types.d.ts.map +1 -1
  209. package/dist/types.js +8 -210
  210. package/dist/types.js.map +1 -1
  211. package/dist/utils/claude-cli-resolver.d.ts.map +1 -1
  212. package/dist/utils/claude-cli-resolver.js +1 -2
  213. package/dist/utils/claude-cli-resolver.js.map +1 -1
  214. package/dist/utils/debouncer.d.ts +111 -0
  215. package/dist/utils/debouncer.d.ts.map +1 -0
  216. package/dist/utils/debouncer.js +162 -0
  217. package/dist/utils/debouncer.js.map +1 -0
  218. package/dist/utils/index.d.ts +3 -2
  219. package/dist/utils/index.d.ts.map +1 -1
  220. package/dist/utils/index.js +3 -2
  221. package/dist/utils/index.js.map +1 -1
  222. package/dist/utils/opencode-cli-resolver.d.ts.map +1 -1
  223. package/dist/utils/opencode-cli-resolver.js +1 -2
  224. package/dist/utils/opencode-cli-resolver.js.map +1 -1
  225. package/dist/utils/string-similarity.d.ts +0 -57
  226. package/dist/utils/string-similarity.d.ts.map +1 -1
  227. package/dist/utils/string-similarity.js +3 -18
  228. package/dist/utils/string-similarity.js.map +1 -1
  229. package/dist/web/middleware/auth.d.ts +31 -0
  230. package/dist/web/middleware/auth.d.ts.map +1 -0
  231. package/dist/web/middleware/auth.js +154 -0
  232. package/dist/web/middleware/auth.js.map +1 -0
  233. package/dist/web/ports/auth-port.d.ts +18 -0
  234. package/dist/web/ports/auth-port.d.ts.map +1 -0
  235. package/dist/web/ports/auth-port.js +6 -0
  236. package/dist/web/ports/auth-port.js.map +1 -0
  237. package/dist/web/ports/config-port.d.ts +28 -0
  238. package/dist/web/ports/config-port.d.ts.map +1 -0
  239. package/dist/web/ports/config-port.js +6 -0
  240. package/dist/web/ports/config-port.js.map +1 -0
  241. package/dist/web/ports/event-port.d.ts +13 -0
  242. package/dist/web/ports/event-port.d.ts.map +1 -0
  243. package/dist/web/ports/event-port.js +6 -0
  244. package/dist/web/ports/event-port.js.map +1 -0
  245. package/dist/web/ports/index.d.ts +14 -0
  246. package/dist/web/ports/index.d.ts.map +1 -0
  247. package/dist/web/ports/index.js +9 -0
  248. package/dist/web/ports/index.js.map +1 -0
  249. package/dist/web/ports/infra-port.d.ts +36 -0
  250. package/dist/web/ports/infra-port.d.ts.map +1 -0
  251. package/dist/web/ports/infra-port.js +6 -0
  252. package/dist/web/ports/infra-port.js.map +1 -0
  253. package/dist/web/ports/respawn-port.d.ts +20 -0
  254. package/dist/web/ports/respawn-port.d.ts.map +1 -0
  255. package/dist/web/ports/respawn-port.js +6 -0
  256. package/dist/web/ports/respawn-port.js.map +1 -0
  257. package/dist/web/ports/session-port.d.ts +15 -0
  258. package/dist/web/ports/session-port.d.ts.map +1 -0
  259. package/dist/web/ports/session-port.js +6 -0
  260. package/dist/web/ports/session-port.js.map +1 -0
  261. package/dist/web/public/api-client.js +82 -0
  262. package/dist/web/public/api-client.js.br +0 -0
  263. package/dist/web/public/api-client.js.gz +0 -0
  264. package/dist/web/public/app.js +117 -201
  265. package/dist/web/public/app.js.br +0 -0
  266. package/dist/web/public/app.js.gz +0 -0
  267. package/dist/web/public/constants.js +365 -0
  268. package/dist/web/public/constants.js.br +0 -0
  269. package/dist/web/public/constants.js.gz +0 -0
  270. package/dist/web/public/index.html +15 -3
  271. package/dist/web/public/index.html.br +0 -0
  272. package/dist/web/public/index.html.gz +0 -0
  273. package/dist/web/public/keyboard-accessory.js +302 -0
  274. package/dist/web/public/keyboard-accessory.js.br +0 -0
  275. package/dist/web/public/keyboard-accessory.js.gz +0 -0
  276. package/dist/web/public/mobile-handlers.js +491 -0
  277. package/dist/web/public/mobile-handlers.js.br +0 -0
  278. package/dist/web/public/mobile-handlers.js.gz +0 -0
  279. package/dist/web/public/mobile.css.gz +0 -0
  280. package/dist/web/public/notification-manager.js +472 -0
  281. package/dist/web/public/notification-manager.js.br +0 -0
  282. package/dist/web/public/notification-manager.js.gz +0 -0
  283. package/dist/web/public/ralph-wizard.js +33 -9
  284. package/dist/web/public/ralph-wizard.js.br +0 -0
  285. package/dist/web/public/ralph-wizard.js.gz +0 -0
  286. package/dist/web/public/styles.css.gz +0 -0
  287. package/dist/web/public/subagent-windows.js +1149 -0
  288. package/dist/web/public/subagent-windows.js.br +0 -0
  289. package/dist/web/public/subagent-windows.js.gz +0 -0
  290. package/dist/web/public/sw.js +15 -0
  291. package/dist/web/public/sw.js.br +0 -0
  292. package/dist/web/public/sw.js.gz +0 -0
  293. package/dist/web/public/upload.html.gz +0 -0
  294. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  295. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  296. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  297. package/dist/web/public/vendor/xterm-zerolag-input.js +4 -0
  298. package/dist/web/public/vendor/xterm-zerolag-input.js.br +0 -0
  299. package/dist/web/public/vendor/xterm-zerolag-input.js.gz +0 -0
  300. package/dist/web/public/vendor/xterm.css.gz +0 -0
  301. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  302. package/dist/web/public/voice-input.js +882 -0
  303. package/dist/web/public/voice-input.js.br +0 -0
  304. package/dist/web/public/voice-input.js.gz +0 -0
  305. package/dist/web/route-helpers.d.ts +38 -0
  306. package/dist/web/route-helpers.d.ts.map +1 -0
  307. package/dist/web/route-helpers.js +144 -0
  308. package/dist/web/route-helpers.js.map +1 -0
  309. package/dist/web/routes/case-routes.d.ts +9 -0
  310. package/dist/web/routes/case-routes.d.ts.map +1 -0
  311. package/dist/web/routes/case-routes.js +426 -0
  312. package/dist/web/routes/case-routes.js.map +1 -0
  313. package/dist/web/routes/file-routes.d.ts +8 -0
  314. package/dist/web/routes/file-routes.d.ts.map +1 -0
  315. package/dist/web/routes/file-routes.js +337 -0
  316. package/dist/web/routes/file-routes.js.map +1 -0
  317. package/dist/web/routes/hook-event-routes.d.ts +9 -0
  318. package/dist/web/routes/hook-event-routes.d.ts.map +1 -0
  319. package/dist/web/routes/hook-event-routes.js +57 -0
  320. package/dist/web/routes/hook-event-routes.js.map +1 -0
  321. package/dist/web/routes/index.d.ts +16 -0
  322. package/dist/web/routes/index.d.ts.map +1 -0
  323. package/dist/web/routes/index.js +16 -0
  324. package/dist/web/routes/index.js.map +1 -0
  325. package/dist/web/routes/mux-routes.d.ts +8 -0
  326. package/dist/web/routes/mux-routes.d.ts.map +1 -0
  327. package/dist/web/routes/mux-routes.js +32 -0
  328. package/dist/web/routes/mux-routes.js.map +1 -0
  329. package/dist/web/routes/plan-routes.d.ts +9 -0
  330. package/dist/web/routes/plan-routes.d.ts.map +1 -0
  331. package/dist/web/routes/plan-routes.js +385 -0
  332. package/dist/web/routes/plan-routes.js.map +1 -0
  333. package/dist/web/routes/push-routes.d.ts +8 -0
  334. package/dist/web/routes/push-routes.d.ts.map +1 -0
  335. package/dist/web/routes/push-routes.js +49 -0
  336. package/dist/web/routes/push-routes.js.map +1 -0
  337. package/dist/web/routes/ralph-routes.d.ts +9 -0
  338. package/dist/web/routes/ralph-routes.d.ts.map +1 -0
  339. package/dist/web/routes/ralph-routes.js +485 -0
  340. package/dist/web/routes/ralph-routes.js.map +1 -0
  341. package/dist/web/routes/respawn-routes.d.ts +8 -0
  342. package/dist/web/routes/respawn-routes.d.ts.map +1 -0
  343. package/dist/web/routes/respawn-routes.js +270 -0
  344. package/dist/web/routes/respawn-routes.js.map +1 -0
  345. package/dist/web/routes/scheduled-routes.d.ts +8 -0
  346. package/dist/web/routes/scheduled-routes.d.ts.map +1 -0
  347. package/dist/web/routes/scheduled-routes.js +51 -0
  348. package/dist/web/routes/scheduled-routes.js.map +1 -0
  349. package/dist/web/routes/session-routes.d.ts +9 -0
  350. package/dist/web/routes/session-routes.d.ts.map +1 -0
  351. package/dist/web/routes/session-routes.js +751 -0
  352. package/dist/web/routes/session-routes.js.map +1 -0
  353. package/dist/web/routes/system-routes.d.ts +9 -0
  354. package/dist/web/routes/system-routes.d.ts.map +1 -0
  355. package/dist/web/routes/system-routes.js +699 -0
  356. package/dist/web/routes/system-routes.js.map +1 -0
  357. package/dist/web/routes/team-routes.d.ts +8 -0
  358. package/dist/web/routes/team-routes.d.ts.map +1 -0
  359. package/dist/web/routes/team-routes.js +14 -0
  360. package/dist/web/routes/team-routes.js.map +1 -0
  361. package/dist/web/schemas.d.ts +43 -3
  362. package/dist/web/schemas.d.ts.map +1 -1
  363. package/dist/web/schemas.js +6 -2
  364. package/dist/web/schemas.js.map +1 -1
  365. package/dist/web/server.d.ts +35 -15
  366. package/dist/web/server.d.ts.map +1 -1
  367. package/dist/web/server.js +563 -3971
  368. package/dist/web/server.js.map +1 -1
  369. package/dist/web/sse-events.d.ts +361 -0
  370. package/dist/web/sse-events.d.ts.map +1 -0
  371. package/dist/web/sse-events.js +396 -0
  372. package/dist/web/sse-events.js.map +1 -0
  373. package/package.json +2 -1
  374. package/scripts/postinstall.js +58 -0
@@ -0,0 +1,326 @@
1
+ /**
2
+ * @fileoverview RalphFixPlanWatcher - Watches @fix_plan.md for changes
3
+ *
4
+ * Monitors the @fix_plan.md file in the session's working directory
5
+ * for changes, parsing todo items from the markdown format.
6
+ *
7
+ * Extracted from ralph-tracker.ts as part of domain splitting.
8
+ *
9
+ * @module ralph-fix-plan-watcher
10
+ */
11
+ import { EventEmitter } from 'node:events';
12
+ import { readFile } from 'node:fs/promises';
13
+ import { existsSync, watch as fsWatch } from 'node:fs';
14
+ import { join } from 'node:path';
15
+ // ========== @fix_plan.md Generation & Import Utility Functions ==========
16
+ /**
17
+ * Generate @fix_plan.md content from todo items.
18
+ * Groups todos by priority and status.
19
+ *
20
+ * @param todos - Array of todo items
21
+ * @returns Markdown content for @fix_plan.md
22
+ */
23
+ export function generateFixPlanMarkdown(todos) {
24
+ const lines = ['# Fix Plan', ''];
25
+ // Group by priority
26
+ const p0 = [];
27
+ const p1 = [];
28
+ const p2 = [];
29
+ const noPriority = [];
30
+ const completed = [];
31
+ for (const todo of todos) {
32
+ if (todo.status === 'completed') {
33
+ completed.push(todo);
34
+ }
35
+ else if (todo.priority === 'P0') {
36
+ p0.push(todo);
37
+ }
38
+ else if (todo.priority === 'P1') {
39
+ p1.push(todo);
40
+ }
41
+ else if (todo.priority === 'P2') {
42
+ p2.push(todo);
43
+ }
44
+ else {
45
+ noPriority.push(todo);
46
+ }
47
+ }
48
+ // High Priority (P0)
49
+ if (p0.length > 0) {
50
+ lines.push('## High Priority (P0)');
51
+ for (const todo of p0) {
52
+ const checkbox = todo.status === 'in_progress' ? '[-]' : '[ ]';
53
+ lines.push(`- ${checkbox} ${todo.content}`);
54
+ }
55
+ lines.push('');
56
+ }
57
+ // Standard (P1)
58
+ if (p1.length > 0) {
59
+ lines.push('## Standard (P1)');
60
+ for (const todo of p1) {
61
+ const checkbox = todo.status === 'in_progress' ? '[-]' : '[ ]';
62
+ lines.push(`- ${checkbox} ${todo.content}`);
63
+ }
64
+ lines.push('');
65
+ }
66
+ // Nice to Have (P2)
67
+ if (p2.length > 0) {
68
+ lines.push('## Nice to Have (P2)');
69
+ for (const todo of p2) {
70
+ const checkbox = todo.status === 'in_progress' ? '[-]' : '[ ]';
71
+ lines.push(`- ${checkbox} ${todo.content}`);
72
+ }
73
+ lines.push('');
74
+ }
75
+ // Tasks (no priority)
76
+ if (noPriority.length > 0) {
77
+ lines.push('## Tasks');
78
+ for (const todo of noPriority) {
79
+ const checkbox = todo.status === 'in_progress' ? '[-]' : '[ ]';
80
+ lines.push(`- ${checkbox} ${todo.content}`);
81
+ }
82
+ lines.push('');
83
+ }
84
+ // Completed
85
+ if (completed.length > 0) {
86
+ lines.push('## Completed');
87
+ for (const todo of completed) {
88
+ lines.push(`- [x] ${todo.content}`);
89
+ }
90
+ lines.push('');
91
+ }
92
+ return lines.join('\n');
93
+ }
94
+ /**
95
+ * Parse @fix_plan.md content and return parsed todo items.
96
+ *
97
+ * @param content - Markdown content from @fix_plan.md
98
+ * @param parsePriority - Function to parse priority from content text
99
+ * @param generateTodoId - Function to generate stable todo ID from content
100
+ * @returns Array of parsed todo items
101
+ */
102
+ export function importFixPlanMarkdown(content, parsePriority, generateTodoId) {
103
+ const lines = content.split('\n');
104
+ const newTodos = [];
105
+ let currentPriority = null;
106
+ // Patterns for section headers
107
+ const p0HeaderPattern = /^##\s*(High Priority|Critical|P0)/i;
108
+ const p1HeaderPattern = /^##\s*(Standard|P1|Medium Priority)/i;
109
+ const p2HeaderPattern = /^##\s*(Nice to Have|P2|Low Priority)/i;
110
+ const completedHeaderPattern = /^##\s*Completed/i;
111
+ const tasksHeaderPattern = /^##\s*Tasks/i;
112
+ // Pattern for todo items
113
+ const todoPattern = /^-\s*\[([ x-])\]\s*(.+)$/;
114
+ let inCompletedSection = false;
115
+ for (const line of lines) {
116
+ const trimmed = line.trim();
117
+ // Check for section headers
118
+ if (p0HeaderPattern.test(trimmed)) {
119
+ currentPriority = 'P0';
120
+ inCompletedSection = false;
121
+ continue;
122
+ }
123
+ if (p1HeaderPattern.test(trimmed)) {
124
+ currentPriority = 'P1';
125
+ inCompletedSection = false;
126
+ continue;
127
+ }
128
+ if (p2HeaderPattern.test(trimmed)) {
129
+ currentPriority = 'P2';
130
+ inCompletedSection = false;
131
+ continue;
132
+ }
133
+ if (completedHeaderPattern.test(trimmed)) {
134
+ inCompletedSection = true;
135
+ continue;
136
+ }
137
+ if (tasksHeaderPattern.test(trimmed)) {
138
+ currentPriority = null;
139
+ inCompletedSection = false;
140
+ continue;
141
+ }
142
+ // Parse todo item
143
+ const match = trimmed.match(todoPattern);
144
+ if (match) {
145
+ const [, checkboxState, todoContent] = match;
146
+ let status;
147
+ if (inCompletedSection || checkboxState === 'x' || checkboxState === 'X') {
148
+ status = 'completed';
149
+ }
150
+ else if (checkboxState === '-') {
151
+ status = 'in_progress';
152
+ }
153
+ else {
154
+ status = 'pending';
155
+ }
156
+ // Parse priority from content if not in a priority section
157
+ const parsedPriority = inCompletedSection ? null : currentPriority || parsePriority(todoContent);
158
+ const id = generateTodoId(todoContent);
159
+ newTodos.push({
160
+ id,
161
+ content: todoContent.trim(),
162
+ status,
163
+ detectedAt: Date.now(),
164
+ priority: parsedPriority,
165
+ });
166
+ }
167
+ }
168
+ return newTodos;
169
+ }
170
+ /**
171
+ * RalphFixPlanWatcher - Watches @fix_plan.md for changes.
172
+ *
173
+ * Events emitted:
174
+ * - `todosLoaded` - Emits parsed todo items when @fix_plan.md is loaded/changed
175
+ * - `enabled` - Emits when tracker should be auto-enabled (todos loaded from file)
176
+ */
177
+ export class RalphFixPlanWatcher extends EventEmitter {
178
+ /** Working directory for @fix_plan.md watching */
179
+ _workingDir = null;
180
+ /** Path to the @fix_plan.md file being watched */
181
+ _fixPlanPath = null;
182
+ /** File watcher for @fix_plan.md */
183
+ _fixPlanWatcher = null;
184
+ /** Error handler for FSWatcher (stored for cleanup to prevent memory leak) */
185
+ _fixPlanWatcherErrorHandler = null;
186
+ /** Debounce timer for file change events */
187
+ _fixPlanReloadTimer = null;
188
+ /** Priority parser injected from parent (for importFixPlanMarkdown) */
189
+ _parsePriority;
190
+ /** Todo ID generator injected from parent */
191
+ _generateTodoId;
192
+ constructor(parsePriority, generateTodoId) {
193
+ super();
194
+ this._parsePriority = parsePriority;
195
+ this._generateTodoId = generateTodoId;
196
+ }
197
+ /**
198
+ * When @fix_plan.md is active, treat it as the source of truth for todo status.
199
+ * This prevents output-based detection from overriding file-based status.
200
+ */
201
+ get isFileAuthoritative() {
202
+ return this._fixPlanPath !== null;
203
+ }
204
+ /**
205
+ * Set the working directory and start watching @fix_plan.md.
206
+ * Automatically loads existing @fix_plan.md if present.
207
+ * @param workingDir - The session's working directory
208
+ */
209
+ setWorkingDir(workingDir) {
210
+ this._workingDir = workingDir;
211
+ this._fixPlanPath = join(workingDir, '@fix_plan.md');
212
+ // Try to load existing @fix_plan.md
213
+ this.loadFixPlanFromDisk();
214
+ // Start watching for changes
215
+ this.startWatchingFixPlan();
216
+ }
217
+ /**
218
+ * Load @fix_plan.md from disk if it exists.
219
+ * Called on initialization and when file changes are detected.
220
+ */
221
+ async loadFixPlanFromDisk() {
222
+ if (!this._fixPlanPath)
223
+ return 0;
224
+ try {
225
+ if (!existsSync(this._fixPlanPath)) {
226
+ return 0;
227
+ }
228
+ const content = await readFile(this._fixPlanPath, 'utf-8');
229
+ const todos = importFixPlanMarkdown(content, this._parsePriority, this._generateTodoId);
230
+ if (todos.length > 0) {
231
+ this.emit('todosLoaded', todos);
232
+ console.log(`[RalphFixPlanWatcher] Loaded ${todos.length} todos from @fix_plan.md`);
233
+ }
234
+ return todos.length;
235
+ }
236
+ catch (err) {
237
+ // File doesn't exist or can't be read - that's OK
238
+ console.log(`[RalphFixPlanWatcher] Could not load @fix_plan.md: ${err}`);
239
+ return 0;
240
+ }
241
+ }
242
+ /**
243
+ * Start watching @fix_plan.md for changes.
244
+ * Reloads todos when the file is modified.
245
+ */
246
+ startWatchingFixPlan() {
247
+ if (!this._fixPlanPath || !this._workingDir)
248
+ return;
249
+ // Stop existing watcher if any
250
+ this.stopWatchingFixPlan();
251
+ try {
252
+ // Only watch if the file exists
253
+ if (!existsSync(this._fixPlanPath)) {
254
+ // Watch the directory instead for file creation
255
+ this._fixPlanWatcher = fsWatch(this._workingDir, (_eventType, filename) => {
256
+ if (filename === '@fix_plan.md') {
257
+ this.handleFixPlanChange();
258
+ }
259
+ });
260
+ }
261
+ else {
262
+ // Watch the file directly
263
+ this._fixPlanWatcher = fsWatch(this._fixPlanPath, () => {
264
+ this.handleFixPlanChange();
265
+ });
266
+ }
267
+ // Add error handler to prevent unhandled errors and clean up on failure
268
+ // Store handler reference for proper cleanup in stopWatchingFixPlan()
269
+ if (this._fixPlanWatcher) {
270
+ this._fixPlanWatcherErrorHandler = (err) => {
271
+ console.log(`[RalphFixPlanWatcher] FSWatcher error for @fix_plan.md: ${err.message}`);
272
+ this.stopWatchingFixPlan();
273
+ };
274
+ this._fixPlanWatcher.on('error', this._fixPlanWatcherErrorHandler);
275
+ }
276
+ }
277
+ catch (err) {
278
+ console.log(`[RalphFixPlanWatcher] Could not watch @fix_plan.md: ${err}`);
279
+ }
280
+ }
281
+ /**
282
+ * Handle @fix_plan.md file change with debouncing.
283
+ */
284
+ handleFixPlanChange() {
285
+ // Debounce rapid changes (e.g., multiple writes)
286
+ if (this._fixPlanReloadTimer) {
287
+ clearTimeout(this._fixPlanReloadTimer);
288
+ }
289
+ this._fixPlanReloadTimer = setTimeout(() => {
290
+ this._fixPlanReloadTimer = null;
291
+ this.loadFixPlanFromDisk();
292
+ }, 500); // 500ms debounce
293
+ }
294
+ /**
295
+ * Stop watching @fix_plan.md.
296
+ */
297
+ stopWatchingFixPlan() {
298
+ if (this._fixPlanWatcher) {
299
+ // Remove error handler before closing to prevent memory leak
300
+ if (this._fixPlanWatcherErrorHandler) {
301
+ this._fixPlanWatcher.off('error', this._fixPlanWatcherErrorHandler);
302
+ this._fixPlanWatcherErrorHandler = null;
303
+ }
304
+ this._fixPlanWatcher.close();
305
+ this._fixPlanWatcher = null;
306
+ }
307
+ if (this._fixPlanReloadTimer) {
308
+ clearTimeout(this._fixPlanReloadTimer);
309
+ this._fixPlanReloadTimer = null;
310
+ }
311
+ }
312
+ /**
313
+ * Stop watching and clean up all resources.
314
+ */
315
+ stop() {
316
+ this.stopWatchingFixPlan();
317
+ }
318
+ /**
319
+ * Clean up all resources.
320
+ */
321
+ destroy() {
322
+ this.stop();
323
+ this.removeAllListeners();
324
+ }
325
+ }
326
+ //# sourceMappingURL=ralph-fix-plan-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ralph-fix-plan-watcher.js","sourceRoot":"","sources":["../src/ralph-fix-plan-watcher.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,24 @@
1
1
  /**
2
- * @fileoverview Ralph Loop - Autonomous task execution engine
2
+ * @fileoverview Ralph Loop - Autonomous task execution engine.
3
3
  *
4
- * The Ralph Loop orchestrates autonomous Claude sessions by:
4
+ * Orchestrates autonomous Claude sessions by:
5
5
  * - Polling for available tasks from the task queue
6
6
  * - Assigning tasks to idle sessions
7
7
  * - Monitoring completion and handling failures
8
8
  * - Auto-generating follow-up tasks when min duration not reached
9
9
  *
10
- * Named after Ralph Wiggum's persistence ("I'm in danger!"),
11
- * this loop keeps Claude working until all tasks are done.
10
+ * Key exports:
11
+ * - `RalphLoop` class the loop engine, extends EventEmitter
12
+ * - `RalphLoopEvents` interface — typed event map
13
+ * - `RalphLoopOptions` interface — configuration options
14
+ *
15
+ * Lifecycle: `start()` → poll loop → `stop()` (when all tasks done + min duration met)
16
+ *
17
+ * @dependencies session-manager (session lifecycle), task-queue (task FIFO),
18
+ * state-store (persistence), session (PTY execution), task (task model)
19
+ * @consumedby web/server (ralph routes, SSE)
20
+ * @emits started, stopped, taskAssigned, taskCompleted, taskFailed, error
21
+ * @persistence Ralph loop state saved to `~/.codeman/state.json` (ralphLoop key)
12
22
  *
13
23
  * @module ralph-loop
14
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ralph-loop.d.ts","sourceRoot":"","sources":["../src/ralph-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,OAAO,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAa;IAEnC,+DAA+D;IAC/D,OAAO,CAAC,oBAAoB,CAKZ;gBAEJ,OAAO,GAAE,gBAAqB;IA2B1C,OAAO,CAAC,kBAAkB;IAuB1B,qDAAqD;IACrD,OAAO,CAAC,oBAAoB;IAU5B,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,SAAS,IAAI,OAAO;IAIpB,YAAY,IAAI,MAAM;IAOtB,eAAe,IAAI,MAAM;IAIzB,oBAAoB,IAAI,OAAO;IAO/B,QAAQ;;;;;;;;;;;;;;;;;IAiBR,sCAAsC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B5B,qCAAqC;IACrC,IAAI,IAAI,IAAI;IAuBZ,wCAAwC;IACxC,KAAK,IAAI,IAAI;IAeb,6BAA6B;IAC7B,MAAM,IAAI,IAAI;IAUd,OAAO,CAAC,OAAO;YAqBD,IAAI;YAoBJ,WAAW;YAiBX,mBAAmB;YAkBnB,aAAa;IAgB3B,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,mBAAmB;YASb,qBAAqB;IA6BnC,OAAO,CAAC,UAAU;IAiBlB,mEAAmE;IACnE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAKhB;AAKD,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAKlE"}
1
+ {"version":3,"file":"ralph-loop.d.ts","sourceRoot":"","sources":["../src/ralph-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,OAAO,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAa;IAEnC,+DAA+D;IAC/D,OAAO,CAAC,oBAAoB,CAKZ;gBAEJ,OAAO,GAAE,gBAAqB;IA2B1C,OAAO,CAAC,kBAAkB;IAuB1B,qDAAqD;IACrD,OAAO,CAAC,oBAAoB;IAU5B,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,SAAS,IAAI,OAAO;IAIpB,YAAY,IAAI,MAAM;IAOtB,eAAe,IAAI,MAAM;IAIzB,oBAAoB,IAAI,OAAO;IAO/B,QAAQ;;;;;;;;;;;;;;;;;IAiBR,sCAAsC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B5B,qCAAqC;IACrC,IAAI,IAAI,IAAI;IAuBZ,wCAAwC;IACxC,KAAK,IAAI,IAAI;IAeb,6BAA6B;IAC7B,MAAM,IAAI,IAAI;IAUd,OAAO,CAAC,OAAO;YAqBD,IAAI;YAoBJ,WAAW;YAiBX,mBAAmB;YAkBnB,aAAa;IAgB3B,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,mBAAmB;YASb,qBAAqB;IA6BnC,OAAO,CAAC,UAAU;IAiBlB,mEAAmE;IACnE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAKhB;AAKD,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAKlE"}
@@ -1,14 +1,24 @@
1
1
  /**
2
- * @fileoverview Ralph Loop - Autonomous task execution engine
2
+ * @fileoverview Ralph Loop - Autonomous task execution engine.
3
3
  *
4
- * The Ralph Loop orchestrates autonomous Claude sessions by:
4
+ * Orchestrates autonomous Claude sessions by:
5
5
  * - Polling for available tasks from the task queue
6
6
  * - Assigning tasks to idle sessions
7
7
  * - Monitoring completion and handling failures
8
8
  * - Auto-generating follow-up tasks when min duration not reached
9
9
  *
10
- * Named after Ralph Wiggum's persistence ("I'm in danger!"),
11
- * this loop keeps Claude working until all tasks are done.
10
+ * Key exports:
11
+ * - `RalphLoop` class the loop engine, extends EventEmitter
12
+ * - `RalphLoopEvents` interface — typed event map
13
+ * - `RalphLoopOptions` interface — configuration options
14
+ *
15
+ * Lifecycle: `start()` → poll loop → `stop()` (when all tasks done + min duration met)
16
+ *
17
+ * @dependencies session-manager (session lifecycle), task-queue (task FIFO),
18
+ * state-store (persistence), session (PTY execution), task (task model)
19
+ * @consumedby web/server (ralph routes, SSE)
20
+ * @emits started, stopped, taskAssigned, taskCompleted, taskFailed, error
21
+ * @persistence Ralph loop state saved to `~/.codeman/state.json` (ralphLoop key)
12
22
  *
13
23
  * @module ralph-loop
14
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ralph-loop.js","sourceRoot":"","sources":["../src/ralph-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ralph-loop.js","sourceRoot":"","sources":["../src/ralph-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * @fileoverview RalphPlanTracker - Enhanced plan task management
3
+ *
4
+ * Manages plan tasks with verification criteria, dependencies,
5
+ * execution tracking, TDD workflow support, and plan versioning.
6
+ *
7
+ * Extracted from ralph-tracker.ts as part of domain splitting.
8
+ *
9
+ * @module ralph-plan-tracker
10
+ */
11
+ import { EventEmitter } from 'node:events';
12
+ import type { PlanTaskStatus, TddPhase } from './types.js';
13
+ /**
14
+ * Enhanced plan task with verification criteria, dependencies, and execution tracking.
15
+ * Supports TDD workflow, failure tracking, and plan versioning.
16
+ */
17
+ export interface EnhancedPlanTask {
18
+ /** Unique identifier (e.g., "P0-001") */
19
+ id: string;
20
+ /** Task description */
21
+ content: string;
22
+ /** Criticality level */
23
+ priority: 'P0' | 'P1' | 'P2' | null;
24
+ /** How to verify completion */
25
+ verificationCriteria?: string;
26
+ /** Command to run for verification */
27
+ testCommand?: string;
28
+ /** IDs of tasks that must complete first */
29
+ dependencies: string[];
30
+ /** Current execution status */
31
+ status: PlanTaskStatus;
32
+ /** How many times attempted */
33
+ attempts: number;
34
+ /** Most recent failure reason */
35
+ lastError?: string;
36
+ /** Timestamp of completion */
37
+ completedAt?: number;
38
+ /** Plan version this belongs to */
39
+ version: number;
40
+ /** TDD phase category */
41
+ tddPhase?: TddPhase;
42
+ /** ID of paired test/impl task */
43
+ pairedWith?: string;
44
+ /** Estimated complexity */
45
+ complexity?: 'low' | 'medium' | 'high';
46
+ /** Checklist items for review tasks (tddPhase: 'review') */
47
+ reviewChecklist?: string[];
48
+ }
49
+ /** Checkpoint review data */
50
+ export interface CheckpointReview {
51
+ iteration: number;
52
+ timestamp: number;
53
+ summary: {
54
+ total: number;
55
+ completed: number;
56
+ failed: number;
57
+ blocked: number;
58
+ pending: number;
59
+ inProgress: number;
60
+ };
61
+ stuckTasks: Array<{
62
+ id: string;
63
+ content: string;
64
+ attempts: number;
65
+ lastError?: string;
66
+ }>;
67
+ recommendations: string[];
68
+ }
69
+ /**
70
+ * RalphPlanTracker - Manages enhanced plan tasks with versioning and checkpoints.
71
+ *
72
+ * Events emitted:
73
+ * - `planInitialized` - When a new plan is initialized
74
+ * - `planTaskUpdate` - When a plan task is updated
75
+ * - `taskBlocked` - When a task becomes blocked after too many failures
76
+ * - `taskUnblocked` - When a task's dependencies are all met
77
+ * - `planCheckpoint` - When a checkpoint review is triggered
78
+ * - `planTaskAdded` - When a new task is added to the plan
79
+ * - `planRollback` - When the plan is rolled back to a previous version
80
+ */
81
+ export declare class RalphPlanTracker extends EventEmitter {
82
+ /** Current version of the plan (incremented on changes) */
83
+ private _planVersion;
84
+ /** History of plan versions for rollback support */
85
+ private _planHistory;
86
+ /** Enhanced plan tasks with execution tracking */
87
+ private _planTasks;
88
+ /** Checkpoint intervals (iterations at which to trigger review) */
89
+ private _checkpointIterations;
90
+ /** Last checkpoint iteration */
91
+ private _lastCheckpointIteration;
92
+ /** Current cycle count (fed by parent via notifyCycleCount) */
93
+ private _cycleCount;
94
+ constructor();
95
+ /**
96
+ * Notify the plan tracker of the current cycle count.
97
+ * Called by parent when iteration changes (for checkpoint detection).
98
+ */
99
+ notifyCycleCount(cycleCount: number): void;
100
+ /**
101
+ * Initialize plan tasks from generated plan items.
102
+ * Called when wizard generates a new plan.
103
+ */
104
+ initializePlanTasks(items: Array<{
105
+ id?: string;
106
+ content: string;
107
+ priority?: 'P0' | 'P1' | 'P2' | null;
108
+ verificationCriteria?: string;
109
+ testCommand?: string;
110
+ dependencies?: string[];
111
+ tddPhase?: TddPhase;
112
+ pairedWith?: string;
113
+ complexity?: 'low' | 'medium' | 'high';
114
+ }>): void;
115
+ /**
116
+ * Update a specific plan task's status, attempts, or error.
117
+ */
118
+ updatePlanTask(taskId: string, update: {
119
+ status?: PlanTaskStatus;
120
+ error?: string;
121
+ incrementAttempts?: boolean;
122
+ }): {
123
+ success: boolean;
124
+ task?: EnhancedPlanTask;
125
+ error?: string;
126
+ };
127
+ /**
128
+ * Add a new task to the plan (for runtime adaptation).
129
+ */
130
+ addPlanTask(task: {
131
+ content: string;
132
+ priority?: 'P0' | 'P1' | 'P2';
133
+ verificationCriteria?: string;
134
+ dependencies?: string[];
135
+ insertAfter?: string;
136
+ }): {
137
+ task: EnhancedPlanTask;
138
+ };
139
+ /**
140
+ * Get all plan tasks.
141
+ */
142
+ getPlanTasks(): EnhancedPlanTask[];
143
+ /**
144
+ * Generate a checkpoint review summarizing plan progress and stuck tasks.
145
+ */
146
+ generateCheckpointReview(): CheckpointReview;
147
+ /**
148
+ * Get plan version history.
149
+ */
150
+ getPlanHistory(): Array<{
151
+ version: number;
152
+ timestamp: number;
153
+ summary: string;
154
+ stats: {
155
+ total: number;
156
+ completed: number;
157
+ failed: number;
158
+ };
159
+ }>;
160
+ /**
161
+ * Rollback to a previous plan version.
162
+ */
163
+ rollbackToVersion(version: number): {
164
+ success: boolean;
165
+ plan?: EnhancedPlanTask[];
166
+ error?: string;
167
+ };
168
+ /**
169
+ * Check if checkpoint review is due for current iteration.
170
+ */
171
+ isCheckpointDue(): boolean;
172
+ /**
173
+ * Get current plan version.
174
+ */
175
+ get planVersion(): number;
176
+ /**
177
+ * Reset plan state (soft reset - keeps version history).
178
+ */
179
+ reset(): void;
180
+ /**
181
+ * Full reset - clears all plan state.
182
+ */
183
+ fullReset(): void;
184
+ /**
185
+ * Clean up all resources.
186
+ */
187
+ destroy(): void;
188
+ /**
189
+ * Unblock tasks that were waiting on a completed dependency.
190
+ */
191
+ private _unblockDependentTasks;
192
+ /**
193
+ * Check if current iteration is a checkpoint and emit review if so.
194
+ */
195
+ private _checkForCheckpoint;
196
+ /**
197
+ * Save current plan state to history.
198
+ */
199
+ private _savePlanToHistory;
200
+ }
201
+ //# sourceMappingURL=ralph-plan-tracker.d.ts.map