oh-my-claude-sisyphus 3.7.2 → 3.7.3

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 (325) hide show
  1. package/dist/__tests__/compatibility-security.test.d.ts +13 -0
  2. package/dist/__tests__/compatibility-security.test.d.ts.map +1 -0
  3. package/dist/__tests__/compatibility-security.test.js +403 -0
  4. package/dist/__tests__/compatibility-security.test.js.map +1 -0
  5. package/dist/__tests__/compatibility.test.d.ts +7 -0
  6. package/dist/__tests__/compatibility.test.d.ts.map +1 -0
  7. package/dist/__tests__/compatibility.test.js +484 -0
  8. package/dist/__tests__/compatibility.test.js.map +1 -0
  9. package/dist/__tests__/hud/analytics-display.test.js +4 -0
  10. package/dist/__tests__/hud/analytics-display.test.js.map +1 -1
  11. package/dist/cli/analytics.js +0 -0
  12. package/dist/cli/index.js +0 -0
  13. package/dist/compatibility/discovery.d.ts +58 -0
  14. package/dist/compatibility/discovery.d.ts.map +1 -0
  15. package/dist/compatibility/discovery.js +619 -0
  16. package/dist/compatibility/discovery.js.map +1 -0
  17. package/dist/compatibility/index.d.ts +51 -0
  18. package/dist/compatibility/index.d.ts.map +1 -0
  19. package/dist/compatibility/index.js +72 -0
  20. package/dist/compatibility/index.js.map +1 -0
  21. package/dist/compatibility/mcp-bridge.d.ts +138 -0
  22. package/dist/compatibility/mcp-bridge.d.ts.map +1 -0
  23. package/dist/compatibility/mcp-bridge.js +524 -0
  24. package/dist/compatibility/mcp-bridge.js.map +1 -0
  25. package/dist/compatibility/permission-adapter.d.ts +79 -0
  26. package/dist/compatibility/permission-adapter.d.ts.map +1 -0
  27. package/dist/compatibility/permission-adapter.js +369 -0
  28. package/dist/compatibility/permission-adapter.js.map +1 -0
  29. package/dist/compatibility/registry.d.ts +161 -0
  30. package/dist/compatibility/registry.d.ts.map +1 -0
  31. package/dist/compatibility/registry.js +389 -0
  32. package/dist/compatibility/registry.js.map +1 -0
  33. package/dist/compatibility/types.d.ts +249 -0
  34. package/dist/compatibility/types.d.ts.map +1 -0
  35. package/dist/compatibility/types.js +8 -0
  36. package/dist/compatibility/types.js.map +1 -0
  37. package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
  38. package/dist/features/rate-limit-wait/daemon.js +3 -0
  39. package/dist/features/rate-limit-wait/daemon.js.map +1 -1
  40. package/dist/hud/analytics-display.d.ts +1 -1
  41. package/dist/hud/analytics-display.d.ts.map +1 -1
  42. package/dist/hud/analytics-display.js +24 -7
  43. package/dist/hud/analytics-display.js.map +1 -1
  44. package/docs/COMPATIBILITY.md +1051 -0
  45. package/package.json +3 -1
  46. package/dist/__tests__/analytics/analytics-summary.test.d.ts +0 -2
  47. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +0 -1
  48. package/dist/__tests__/analytics/analytics-summary.test.js +0 -267
  49. package/dist/__tests__/analytics/analytics-summary.test.js.map +0 -1
  50. package/dist/__tests__/analytics/cost-estimator.test.d.ts +0 -2
  51. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +0 -1
  52. package/dist/__tests__/analytics/cost-estimator.test.js +0 -212
  53. package/dist/__tests__/analytics/cost-estimator.test.js.map +0 -1
  54. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +0 -7
  55. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +0 -1
  56. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +0 -374
  57. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +0 -1
  58. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +0 -2
  59. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +0 -1
  60. package/dist/__tests__/hud/auto-tracking.integration.test.js +0 -12
  61. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +0 -1
  62. package/dist/__tests__/learned-skills/config.test.d.ts +0 -2
  63. package/dist/__tests__/learned-skills/config.test.d.ts.map +0 -1
  64. package/dist/__tests__/learned-skills/config.test.js +0 -37
  65. package/dist/__tests__/learned-skills/config.test.js.map +0 -1
  66. package/dist/__tests__/learned-skills/detector.test.d.ts +0 -2
  67. package/dist/__tests__/learned-skills/detector.test.d.ts.map +0 -1
  68. package/dist/__tests__/learned-skills/detector.test.js +0 -99
  69. package/dist/__tests__/learned-skills/detector.test.js.map +0 -1
  70. package/dist/__tests__/learned-skills/finder.test.d.ts +0 -2
  71. package/dist/__tests__/learned-skills/finder.test.d.ts.map +0 -1
  72. package/dist/__tests__/learned-skills/finder.test.js +0 -59
  73. package/dist/__tests__/learned-skills/finder.test.js.map +0 -1
  74. package/dist/__tests__/learned-skills/loader.test.d.ts +0 -2
  75. package/dist/__tests__/learned-skills/loader.test.d.ts.map +0 -1
  76. package/dist/__tests__/learned-skills/loader.test.js +0 -69
  77. package/dist/__tests__/learned-skills/loader.test.js.map +0 -1
  78. package/dist/__tests__/learned-skills/parser.test.d.ts +0 -2
  79. package/dist/__tests__/learned-skills/parser.test.d.ts.map +0 -1
  80. package/dist/__tests__/learned-skills/parser.test.js +0 -81
  81. package/dist/__tests__/learned-skills/parser.test.js.map +0 -1
  82. package/dist/__tests__/learned-skills/validator.test.d.ts +0 -2
  83. package/dist/__tests__/learned-skills/validator.test.d.ts.map +0 -1
  84. package/dist/__tests__/learned-skills/validator.test.js +0 -85
  85. package/dist/__tests__/learned-skills/validator.test.js.map +0 -1
  86. package/dist/agents/codex-agents.d.ts +0 -20
  87. package/dist/agents/codex-agents.d.ts.map +0 -1
  88. package/dist/agents/codex-agents.js +0 -36
  89. package/dist/agents/codex-agents.js.map +0 -1
  90. package/dist/agents/document-writer.d.ts +0 -11
  91. package/dist/agents/document-writer.d.ts.map +0 -1
  92. package/dist/agents/document-writer.js +0 -209
  93. package/dist/agents/document-writer.js.map +0 -1
  94. package/dist/agents/frontend-engineer.d.ts +0 -11
  95. package/dist/agents/frontend-engineer.d.ts.map +0 -1
  96. package/dist/agents/frontend-engineer.js +0 -115
  97. package/dist/agents/frontend-engineer.js.map +0 -1
  98. package/dist/agents/librarian.d.ts +0 -12
  99. package/dist/agents/librarian.d.ts.map +0 -1
  100. package/dist/agents/librarian.js +0 -103
  101. package/dist/agents/librarian.js.map +0 -1
  102. package/dist/agents/metis.d.ts +0 -12
  103. package/dist/agents/metis.d.ts.map +0 -1
  104. package/dist/agents/metis.js +0 -117
  105. package/dist/agents/metis.js.map +0 -1
  106. package/dist/agents/momus.d.ts +0 -12
  107. package/dist/agents/momus.d.ts.map +0 -1
  108. package/dist/agents/momus.js +0 -128
  109. package/dist/agents/momus.js.map +0 -1
  110. package/dist/agents/multimodal-looker.d.ts +0 -11
  111. package/dist/agents/multimodal-looker.d.ts.map +0 -1
  112. package/dist/agents/multimodal-looker.js +0 -70
  113. package/dist/agents/multimodal-looker.js.map +0 -1
  114. package/dist/agents/oracle.d.ts +0 -13
  115. package/dist/agents/oracle.d.ts.map +0 -1
  116. package/dist/agents/oracle.js +0 -191
  117. package/dist/agents/oracle.js.map +0 -1
  118. package/dist/agents/orchestrator-sisyphus.d.ts +0 -11
  119. package/dist/agents/orchestrator-sisyphus.d.ts.map +0 -1
  120. package/dist/agents/orchestrator-sisyphus.js +0 -115
  121. package/dist/agents/orchestrator-sisyphus.js.map +0 -1
  122. package/dist/agents/prometheus.d.ts +0 -12
  123. package/dist/agents/prometheus.d.ts.map +0 -1
  124. package/dist/agents/prometheus.js +0 -195
  125. package/dist/agents/prometheus.js.map +0 -1
  126. package/dist/agents/sisyphus-junior.d.ts +0 -12
  127. package/dist/agents/sisyphus-junior.d.ts.map +0 -1
  128. package/dist/agents/sisyphus-junior.js +0 -93
  129. package/dist/agents/sisyphus-junior.js.map +0 -1
  130. package/dist/cli/components/CostDashboard.d.ts +0 -15
  131. package/dist/cli/components/CostDashboard.d.ts.map +0 -1
  132. package/dist/cli/components/CostDashboard.js +0 -15
  133. package/dist/cli/components/CostDashboard.js.map +0 -1
  134. package/dist/cli/components/LiveStats.d.ts +0 -16
  135. package/dist/cli/components/LiveStats.d.ts.map +0 -1
  136. package/dist/cli/components/LiveStats.js +0 -16
  137. package/dist/cli/components/LiveStats.js.map +0 -1
  138. package/dist/cli/components/SessionBrowser.d.ts +0 -14
  139. package/dist/cli/components/SessionBrowser.d.ts.map +0 -1
  140. package/dist/cli/components/SessionBrowser.js +0 -14
  141. package/dist/cli/components/SessionBrowser.js.map +0 -1
  142. package/dist/cli/tui.d.ts +0 -21
  143. package/dist/cli/tui.d.ts.map +0 -1
  144. package/dist/cli/tui.js +0 -21
  145. package/dist/cli/tui.js.map +0 -1
  146. package/dist/hooks/autopilot/signals.d.ts +0 -20
  147. package/dist/hooks/autopilot/signals.d.ts.map +0 -1
  148. package/dist/hooks/autopilot/signals.js +0 -75
  149. package/dist/hooks/autopilot/signals.js.map +0 -1
  150. package/dist/hooks/autopilot/summary.d.ts +0 -27
  151. package/dist/hooks/autopilot/summary.d.ts.map +0 -1
  152. package/dist/hooks/autopilot/summary.js +0 -160
  153. package/dist/hooks/autopilot/summary.js.map +0 -1
  154. package/dist/hooks/autopilot/transition.d.ts +0 -39
  155. package/dist/hooks/autopilot/transition.d.ts.map +0 -1
  156. package/dist/hooks/autopilot/transition.js +0 -216
  157. package/dist/hooks/autopilot/transition.js.map +0 -1
  158. package/dist/hooks/context-window-limit-recovery/constants.d.ts +0 -28
  159. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +0 -1
  160. package/dist/hooks/context-window-limit-recovery/constants.js +0 -85
  161. package/dist/hooks/context-window-limit-recovery/constants.js.map +0 -1
  162. package/dist/hooks/context-window-limit-recovery/index.d.ts +0 -62
  163. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +0 -1
  164. package/dist/hooks/context-window-limit-recovery/index.js +0 -201
  165. package/dist/hooks/context-window-limit-recovery/index.js.map +0 -1
  166. package/dist/hooks/context-window-limit-recovery/parser.d.ts +0 -31
  167. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +0 -1
  168. package/dist/hooks/context-window-limit-recovery/parser.js +0 -241
  169. package/dist/hooks/context-window-limit-recovery/parser.js.map +0 -1
  170. package/dist/hooks/context-window-limit-recovery/types.d.ts +0 -84
  171. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +0 -1
  172. package/dist/hooks/context-window-limit-recovery/types.js +0 -34
  173. package/dist/hooks/context-window-limit-recovery/types.js.map +0 -1
  174. package/dist/hooks/edit-error-recovery/index.d.ts +0 -62
  175. package/dist/hooks/edit-error-recovery/index.d.ts.map +0 -1
  176. package/dist/hooks/edit-error-recovery/index.js +0 -89
  177. package/dist/hooks/edit-error-recovery/index.js.map +0 -1
  178. package/dist/hooks/learned-skills/config.d.ts +0 -53
  179. package/dist/hooks/learned-skills/config.d.ts.map +0 -1
  180. package/dist/hooks/learned-skills/config.js +0 -103
  181. package/dist/hooks/learned-skills/config.js.map +0 -1
  182. package/dist/hooks/learned-skills/constants.d.ts +0 -24
  183. package/dist/hooks/learned-skills/constants.d.ts.map +0 -1
  184. package/dist/hooks/learned-skills/constants.js +0 -26
  185. package/dist/hooks/learned-skills/constants.js.map +0 -1
  186. package/dist/hooks/learned-skills/detection-hook.d.ts +0 -39
  187. package/dist/hooks/learned-skills/detection-hook.d.ts.map +0 -1
  188. package/dist/hooks/learned-skills/detection-hook.js +0 -83
  189. package/dist/hooks/learned-skills/detection-hook.js.map +0 -1
  190. package/dist/hooks/learned-skills/detector.d.ts +0 -30
  191. package/dist/hooks/learned-skills/detector.d.ts.map +0 -1
  192. package/dist/hooks/learned-skills/detector.js +0 -150
  193. package/dist/hooks/learned-skills/detector.js.map +0 -1
  194. package/dist/hooks/learned-skills/finder.d.ts +0 -21
  195. package/dist/hooks/learned-skills/finder.d.ts.map +0 -1
  196. package/dist/hooks/learned-skills/finder.js +0 -117
  197. package/dist/hooks/learned-skills/finder.js.map +0 -1
  198. package/dist/hooks/learned-skills/index.d.ts +0 -62
  199. package/dist/hooks/learned-skills/index.d.ts.map +0 -1
  200. package/dist/hooks/learned-skills/index.js +0 -137
  201. package/dist/hooks/learned-skills/index.js.map +0 -1
  202. package/dist/hooks/learned-skills/loader.d.ts +0 -20
  203. package/dist/hooks/learned-skills/loader.d.ts.map +0 -1
  204. package/dist/hooks/learned-skills/loader.js +0 -107
  205. package/dist/hooks/learned-skills/loader.js.map +0 -1
  206. package/dist/hooks/learned-skills/parser.d.ts +0 -21
  207. package/dist/hooks/learned-skills/parser.d.ts.map +0 -1
  208. package/dist/hooks/learned-skills/parser.js +0 -190
  209. package/dist/hooks/learned-skills/parser.js.map +0 -1
  210. package/dist/hooks/learned-skills/promotion.d.ts +0 -29
  211. package/dist/hooks/learned-skills/promotion.d.ts.map +0 -1
  212. package/dist/hooks/learned-skills/promotion.js +0 -87
  213. package/dist/hooks/learned-skills/promotion.js.map +0 -1
  214. package/dist/hooks/learned-skills/types.d.ts +0 -109
  215. package/dist/hooks/learned-skills/types.d.ts.map +0 -1
  216. package/dist/hooks/learned-skills/types.js +0 -8
  217. package/dist/hooks/learned-skills/types.js.map +0 -1
  218. package/dist/hooks/learned-skills/validator.d.ts +0 -15
  219. package/dist/hooks/learned-skills/validator.d.ts.map +0 -1
  220. package/dist/hooks/learned-skills/validator.js +0 -87
  221. package/dist/hooks/learned-skills/validator.js.map +0 -1
  222. package/dist/hooks/learned-skills/writer.d.ts +0 -27
  223. package/dist/hooks/learned-skills/writer.d.ts.map +0 -1
  224. package/dist/hooks/learned-skills/writer.js +0 -126
  225. package/dist/hooks/learned-skills/writer.js.map +0 -1
  226. package/dist/hooks/mnemosyne/config.d.ts +0 -53
  227. package/dist/hooks/mnemosyne/config.d.ts.map +0 -1
  228. package/dist/hooks/mnemosyne/config.js +0 -103
  229. package/dist/hooks/mnemosyne/config.js.map +0 -1
  230. package/dist/hooks/mnemosyne/constants.d.ts +0 -24
  231. package/dist/hooks/mnemosyne/constants.d.ts.map +0 -1
  232. package/dist/hooks/mnemosyne/constants.js +0 -26
  233. package/dist/hooks/mnemosyne/constants.js.map +0 -1
  234. package/dist/hooks/mnemosyne/detection-hook.d.ts +0 -39
  235. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +0 -1
  236. package/dist/hooks/mnemosyne/detection-hook.js +0 -83
  237. package/dist/hooks/mnemosyne/detection-hook.js.map +0 -1
  238. package/dist/hooks/mnemosyne/detector.d.ts +0 -30
  239. package/dist/hooks/mnemosyne/detector.d.ts.map +0 -1
  240. package/dist/hooks/mnemosyne/detector.js +0 -150
  241. package/dist/hooks/mnemosyne/detector.js.map +0 -1
  242. package/dist/hooks/mnemosyne/finder.d.ts +0 -21
  243. package/dist/hooks/mnemosyne/finder.d.ts.map +0 -1
  244. package/dist/hooks/mnemosyne/finder.js +0 -117
  245. package/dist/hooks/mnemosyne/finder.js.map +0 -1
  246. package/dist/hooks/mnemosyne/index.d.ts +0 -62
  247. package/dist/hooks/mnemosyne/index.d.ts.map +0 -1
  248. package/dist/hooks/mnemosyne/index.js +0 -137
  249. package/dist/hooks/mnemosyne/index.js.map +0 -1
  250. package/dist/hooks/mnemosyne/loader.d.ts +0 -20
  251. package/dist/hooks/mnemosyne/loader.d.ts.map +0 -1
  252. package/dist/hooks/mnemosyne/loader.js +0 -113
  253. package/dist/hooks/mnemosyne/loader.js.map +0 -1
  254. package/dist/hooks/mnemosyne/parser.d.ts +0 -21
  255. package/dist/hooks/mnemosyne/parser.d.ts.map +0 -1
  256. package/dist/hooks/mnemosyne/parser.js +0 -190
  257. package/dist/hooks/mnemosyne/parser.js.map +0 -1
  258. package/dist/hooks/mnemosyne/promotion.d.ts +0 -29
  259. package/dist/hooks/mnemosyne/promotion.d.ts.map +0 -1
  260. package/dist/hooks/mnemosyne/promotion.js +0 -87
  261. package/dist/hooks/mnemosyne/promotion.js.map +0 -1
  262. package/dist/hooks/mnemosyne/types.d.ts +0 -109
  263. package/dist/hooks/mnemosyne/types.d.ts.map +0 -1
  264. package/dist/hooks/mnemosyne/types.js +0 -8
  265. package/dist/hooks/mnemosyne/types.js.map +0 -1
  266. package/dist/hooks/mnemosyne/validator.d.ts +0 -15
  267. package/dist/hooks/mnemosyne/validator.d.ts.map +0 -1
  268. package/dist/hooks/mnemosyne/validator.js +0 -87
  269. package/dist/hooks/mnemosyne/validator.js.map +0 -1
  270. package/dist/hooks/mnemosyne/writer.d.ts +0 -27
  271. package/dist/hooks/mnemosyne/writer.d.ts.map +0 -1
  272. package/dist/hooks/mnemosyne/writer.js +0 -126
  273. package/dist/hooks/mnemosyne/writer.js.map +0 -1
  274. package/dist/hooks/ralph-loop/index.d.ts +0 -116
  275. package/dist/hooks/ralph-loop/index.d.ts.map +0 -1
  276. package/dist/hooks/ralph-loop/index.js +0 -322
  277. package/dist/hooks/ralph-loop/index.js.map +0 -1
  278. package/dist/hooks/ralph-prd/index.d.ts +0 -130
  279. package/dist/hooks/ralph-prd/index.d.ts.map +0 -1
  280. package/dist/hooks/ralph-prd/index.js +0 -310
  281. package/dist/hooks/ralph-prd/index.js.map +0 -1
  282. package/dist/hooks/ralph-progress/index.d.ts +0 -102
  283. package/dist/hooks/ralph-progress/index.d.ts.map +0 -1
  284. package/dist/hooks/ralph-progress/index.js +0 -408
  285. package/dist/hooks/ralph-progress/index.js.map +0 -1
  286. package/dist/hooks/ralph-verifier/index.d.ts +0 -72
  287. package/dist/hooks/ralph-verifier/index.d.ts.map +0 -1
  288. package/dist/hooks/ralph-verifier/index.js +0 -223
  289. package/dist/hooks/ralph-verifier/index.js.map +0 -1
  290. package/dist/hooks/session-recovery/constants.d.ts +0 -56
  291. package/dist/hooks/session-recovery/constants.d.ts.map +0 -1
  292. package/dist/hooks/session-recovery/constants.js +0 -78
  293. package/dist/hooks/session-recovery/constants.js.map +0 -1
  294. package/dist/hooks/session-recovery/index.d.ts +0 -53
  295. package/dist/hooks/session-recovery/index.d.ts.map +0 -1
  296. package/dist/hooks/session-recovery/index.js +0 -321
  297. package/dist/hooks/session-recovery/index.js.map +0 -1
  298. package/dist/hooks/session-recovery/storage.d.ts +0 -76
  299. package/dist/hooks/session-recovery/storage.d.ts.map +0 -1
  300. package/dist/hooks/session-recovery/storage.js +0 -383
  301. package/dist/hooks/session-recovery/storage.js.map +0 -1
  302. package/dist/hooks/session-recovery/types.d.ts +0 -145
  303. package/dist/hooks/session-recovery/types.d.ts.map +0 -1
  304. package/dist/hooks/session-recovery/types.js +0 -8
  305. package/dist/hooks/session-recovery/types.js.map +0 -1
  306. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +0 -23
  307. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +0 -1
  308. package/dist/hooks/sisyphus-orchestrator/constants.js +0 -142
  309. package/dist/hooks/sisyphus-orchestrator/constants.js.map +0 -1
  310. package/dist/hooks/sisyphus-orchestrator/index.d.ts +0 -113
  311. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +0 -1
  312. package/dist/hooks/sisyphus-orchestrator/index.js +0 -309
  313. package/dist/hooks/sisyphus-orchestrator/index.js.map +0 -1
  314. package/dist/hooks/ultraqa-loop/index.d.ts +0 -94
  315. package/dist/hooks/ultraqa-loop/index.d.ts.map +0 -1
  316. package/dist/hooks/ultraqa-loop/index.js +0 -216
  317. package/dist/hooks/ultraqa-loop/index.js.map +0 -1
  318. package/dist/hooks/ultrawork-state/index.d.ts +0 -62
  319. package/dist/hooks/ultrawork-state/index.d.ts.map +0 -1
  320. package/dist/hooks/ultrawork-state/index.js +0 -208
  321. package/dist/hooks/ultrawork-state/index.js.map +0 -1
  322. package/dist/hud/sisyphus-state.d.ts +0 -31
  323. package/dist/hud/sisyphus-state.d.ts.map +0 -1
  324. package/dist/hud/sisyphus-state.js +0 -163
  325. package/dist/hud/sisyphus-state.js.map +0 -1
@@ -1,310 +0,0 @@
1
- /**
2
- * Ralph PRD (Product Requirements Document) Support
3
- *
4
- * Implements structured task tracking using prd.json format from the original Ralph.
5
- * Each user story has:
6
- * - id: Unique identifier (e.g., "US-001")
7
- * - title: Short description
8
- * - description: User story format
9
- * - acceptanceCriteria: List of criteria to pass
10
- * - priority: Execution order (1 = highest)
11
- * - passes: Boolean indicating completion
12
- * - notes: Optional notes from implementation
13
- */
14
- import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
15
- import { join } from 'path';
16
- // ============================================================================
17
- // Constants
18
- // ============================================================================
19
- export const PRD_FILENAME = 'prd.json';
20
- export const PRD_EXAMPLE_FILENAME = 'prd.example.json';
21
- // ============================================================================
22
- // File Operations
23
- // ============================================================================
24
- /**
25
- * Get the path to the prd.json file in a directory
26
- */
27
- export function getPrdPath(directory) {
28
- return join(directory, PRD_FILENAME);
29
- }
30
- /**
31
- * Get the path to the prd.json in .omc subdirectory
32
- */
33
- export function getOmcPrdPath(directory) {
34
- return join(directory, '.omc', PRD_FILENAME);
35
- }
36
- /**
37
- * Find prd.json in a directory (checks both root and .omc)
38
- */
39
- export function findPrdPath(directory) {
40
- const rootPath = getPrdPath(directory);
41
- if (existsSync(rootPath)) {
42
- return rootPath;
43
- }
44
- const omcPath = getOmcPrdPath(directory);
45
- if (existsSync(omcPath)) {
46
- return omcPath;
47
- }
48
- return null;
49
- }
50
- /**
51
- * Read PRD from disk
52
- */
53
- export function readPrd(directory) {
54
- const prdPath = findPrdPath(directory);
55
- if (!prdPath) {
56
- return null;
57
- }
58
- try {
59
- const content = readFileSync(prdPath, 'utf-8');
60
- const prd = JSON.parse(content);
61
- // Validate structure
62
- if (!prd.userStories || !Array.isArray(prd.userStories)) {
63
- return null;
64
- }
65
- return prd;
66
- }
67
- catch {
68
- return null;
69
- }
70
- }
71
- /**
72
- * Write PRD to disk
73
- */
74
- export function writePrd(directory, prd) {
75
- // Prefer writing to existing location, or .omc by default
76
- let prdPath = findPrdPath(directory);
77
- if (!prdPath) {
78
- const omcDir = join(directory, '.omc');
79
- if (!existsSync(omcDir)) {
80
- try {
81
- mkdirSync(omcDir, { recursive: true });
82
- }
83
- catch {
84
- return false;
85
- }
86
- }
87
- prdPath = getOmcPrdPath(directory);
88
- }
89
- try {
90
- writeFileSync(prdPath, JSON.stringify(prd, null, 2));
91
- return true;
92
- }
93
- catch {
94
- return false;
95
- }
96
- }
97
- // ============================================================================
98
- // PRD Status & Operations
99
- // ============================================================================
100
- /**
101
- * Get the status of a PRD
102
- */
103
- export function getPrdStatus(prd) {
104
- const stories = prd.userStories;
105
- const completed = stories.filter(s => s.passes);
106
- const pending = stories.filter(s => !s.passes);
107
- // Sort pending by priority to find next story
108
- const sortedPending = [...pending].sort((a, b) => a.priority - b.priority);
109
- return {
110
- total: stories.length,
111
- completed: completed.length,
112
- pending: pending.length,
113
- allComplete: pending.length === 0,
114
- nextStory: sortedPending[0] || null,
115
- incompleteIds: pending.map(s => s.id)
116
- };
117
- }
118
- /**
119
- * Mark a story as complete (passes: true)
120
- */
121
- export function markStoryComplete(directory, storyId, notes) {
122
- const prd = readPrd(directory);
123
- if (!prd) {
124
- return false;
125
- }
126
- const story = prd.userStories.find(s => s.id === storyId);
127
- if (!story) {
128
- return false;
129
- }
130
- story.passes = true;
131
- if (notes) {
132
- story.notes = notes;
133
- }
134
- return writePrd(directory, prd);
135
- }
136
- /**
137
- * Mark a story as incomplete (passes: false)
138
- */
139
- export function markStoryIncomplete(directory, storyId, notes) {
140
- const prd = readPrd(directory);
141
- if (!prd) {
142
- return false;
143
- }
144
- const story = prd.userStories.find(s => s.id === storyId);
145
- if (!story) {
146
- return false;
147
- }
148
- story.passes = false;
149
- if (notes) {
150
- story.notes = notes;
151
- }
152
- return writePrd(directory, prd);
153
- }
154
- /**
155
- * Get a specific story by ID
156
- */
157
- export function getStory(directory, storyId) {
158
- const prd = readPrd(directory);
159
- if (!prd) {
160
- return null;
161
- }
162
- return prd.userStories.find(s => s.id === storyId) || null;
163
- }
164
- /**
165
- * Get the next incomplete story (highest priority)
166
- */
167
- export function getNextStory(directory) {
168
- const prd = readPrd(directory);
169
- if (!prd) {
170
- return null;
171
- }
172
- const status = getPrdStatus(prd);
173
- return status.nextStory;
174
- }
175
- /**
176
- * Create a new PRD with user stories from a task description
177
- */
178
- export function createPrd(project, branchName, description, stories) {
179
- return {
180
- project,
181
- branchName,
182
- description,
183
- userStories: stories.map((s, index) => ({
184
- ...s,
185
- priority: s.priority ?? index + 1,
186
- passes: false
187
- }))
188
- };
189
- }
190
- /**
191
- * Create a simple PRD from a task description (single story)
192
- */
193
- export function createSimplePrd(project, branchName, taskDescription) {
194
- return createPrd(project, branchName, taskDescription, [
195
- {
196
- id: 'US-001',
197
- title: taskDescription.slice(0, 50) + (taskDescription.length > 50 ? '...' : ''),
198
- description: taskDescription,
199
- acceptanceCriteria: [
200
- 'Implementation is complete',
201
- 'Code compiles/runs without errors',
202
- 'Tests pass (if applicable)',
203
- 'Changes are committed'
204
- ],
205
- priority: 1
206
- }
207
- ]);
208
- }
209
- /**
210
- * Initialize a PRD in a directory
211
- */
212
- export function initPrd(directory, project, branchName, description, stories) {
213
- const prd = stories
214
- ? createPrd(project, branchName, description, stories)
215
- : createSimplePrd(project, branchName, description);
216
- return writePrd(directory, prd);
217
- }
218
- // ============================================================================
219
- // PRD Formatting
220
- // ============================================================================
221
- /**
222
- * Format PRD status as a string for display
223
- */
224
- export function formatPrdStatus(status) {
225
- const lines = [];
226
- lines.push(`[PRD Status: ${status.completed}/${status.total} stories complete]`);
227
- if (status.allComplete) {
228
- lines.push('All stories are COMPLETE!');
229
- }
230
- else {
231
- lines.push(`Remaining: ${status.incompleteIds.join(', ')}`);
232
- if (status.nextStory) {
233
- lines.push(`Next story: ${status.nextStory.id} - ${status.nextStory.title}`);
234
- }
235
- }
236
- return lines.join('\n');
237
- }
238
- /**
239
- * Format a story for display
240
- */
241
- export function formatStory(story) {
242
- const lines = [];
243
- lines.push(`## ${story.id}: ${story.title}`);
244
- lines.push(`Status: ${story.passes ? 'COMPLETE' : 'PENDING'}`);
245
- lines.push(`Priority: ${story.priority}`);
246
- lines.push('');
247
- lines.push(story.description);
248
- lines.push('');
249
- lines.push('**Acceptance Criteria:**');
250
- story.acceptanceCriteria.forEach((c, i) => {
251
- lines.push(`${i + 1}. ${c}`);
252
- });
253
- if (story.notes) {
254
- lines.push('');
255
- lines.push(`**Notes:** ${story.notes}`);
256
- }
257
- return lines.join('\n');
258
- }
259
- /**
260
- * Format entire PRD for display
261
- */
262
- export function formatPrd(prd) {
263
- const lines = [];
264
- const status = getPrdStatus(prd);
265
- lines.push(`# ${prd.project}`);
266
- lines.push(`Branch: ${prd.branchName}`);
267
- lines.push('');
268
- lines.push(prd.description);
269
- lines.push('');
270
- lines.push(formatPrdStatus(status));
271
- lines.push('');
272
- lines.push('---');
273
- lines.push('');
274
- // Sort by priority for display
275
- const sortedStories = [...prd.userStories].sort((a, b) => a.priority - b.priority);
276
- for (const story of sortedStories) {
277
- lines.push(formatStory(story));
278
- lines.push('');
279
- lines.push('---');
280
- lines.push('');
281
- }
282
- return lines.join('\n');
283
- }
284
- /**
285
- * Format next story prompt for injection into ralph
286
- */
287
- export function formatNextStoryPrompt(story) {
288
- return `<current-story>
289
-
290
- ## Current Story: ${story.id} - ${story.title}
291
-
292
- ${story.description}
293
-
294
- **Acceptance Criteria:**
295
- ${story.acceptanceCriteria.map((c, i) => `${i + 1}. ${c}`).join('\n')}
296
-
297
- **Instructions:**
298
- 1. Implement this story completely
299
- 2. Verify ALL acceptance criteria are met
300
- 3. Run quality checks (tests, typecheck, lint)
301
- 4. When complete, mark story as passes: true in prd.json
302
- 5. If ALL stories are done, output: <promise>DONE</promise>
303
-
304
- </current-story>
305
-
306
- ---
307
-
308
- `;
309
- }
310
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/ralph-prd/index.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- /**
2
- * Ralph Progress Log Support
3
- *
4
- * Implements append-only progress tracking using progress.txt format from original Ralph.
5
- * This provides memory persistence between ralph iterations.
6
- *
7
- * Structure:
8
- * - Codebase Patterns section at top (consolidated learnings)
9
- * - Per-story progress entries appended
10
- * - Learnings captured for future iterations
11
- */
12
- export interface ProgressEntry {
13
- /** ISO timestamp */
14
- timestamp: string;
15
- /** Story ID (e.g., "US-001") */
16
- storyId: string;
17
- /** What was implemented */
18
- implementation: string[];
19
- /** Files changed */
20
- filesChanged: string[];
21
- /** Learnings for future iterations */
22
- learnings: string[];
23
- }
24
- export interface CodebasePattern {
25
- /** The pattern description */
26
- pattern: string;
27
- /** When it was discovered */
28
- discoveredAt?: string;
29
- }
30
- export interface ProgressLog {
31
- /** Consolidated codebase patterns at top */
32
- patterns: CodebasePattern[];
33
- /** Progress entries (append-only) */
34
- entries: ProgressEntry[];
35
- /** When the log was started */
36
- startedAt: string;
37
- }
38
- export declare const PROGRESS_FILENAME = "progress.txt";
39
- export declare const PATTERNS_HEADER = "## Codebase Patterns";
40
- export declare const ENTRY_SEPARATOR = "---";
41
- /**
42
- * Get the path to progress.txt in a directory
43
- */
44
- export declare function getProgressPath(directory: string): string;
45
- /**
46
- * Get the path to progress.txt in .omc subdirectory
47
- */
48
- export declare function getOmcProgressPath(directory: string): string;
49
- /**
50
- * Find progress.txt in a directory (checks both root and .omc)
51
- */
52
- export declare function findProgressPath(directory: string): string | null;
53
- /**
54
- * Read raw progress.txt content
55
- */
56
- export declare function readProgressRaw(directory: string): string | null;
57
- /**
58
- * Parse progress.txt content into structured format
59
- */
60
- export declare function parseProgress(content: string): ProgressLog;
61
- /**
62
- * Read and parse progress.txt
63
- */
64
- export declare function readProgress(directory: string): ProgressLog | null;
65
- /**
66
- * Initialize a new progress.txt file
67
- */
68
- export declare function initProgress(directory: string): boolean;
69
- /**
70
- * Append a progress entry
71
- */
72
- export declare function appendProgress(directory: string, entry: Omit<ProgressEntry, 'timestamp'>): boolean;
73
- /**
74
- * Add a codebase pattern to the patterns section
75
- * @param retryCount - Internal retry counter to prevent infinite recursion
76
- */
77
- export declare function addPattern(directory: string, pattern: string, retryCount?: number): boolean;
78
- /**
79
- * Get patterns from progress.txt for injection into context
80
- */
81
- export declare function getPatterns(directory: string): string[];
82
- /**
83
- * Get recent learnings for context injection
84
- */
85
- export declare function getRecentLearnings(directory: string, limit?: number): string[];
86
- /**
87
- * Format patterns for context injection
88
- */
89
- export declare function formatPatternsForContext(directory: string): string;
90
- /**
91
- * Format recent progress for context injection
92
- */
93
- export declare function formatProgressForContext(directory: string, limit?: number): string;
94
- /**
95
- * Format learnings for context injection
96
- */
97
- export declare function formatLearningsForContext(directory: string): string;
98
- /**
99
- * Get full context injection for ralph
100
- */
101
- export declare function getProgressContext(directory: string): string;
102
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/ralph-progress/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,sCAAsC;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,qCAAqC;IACrC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,eAAe,yBAAyB,CAAC;AACtD,eAAO,MAAM,eAAe,QAAQ,CAAC;AAMrC;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CA+F1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAOlE;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CA6BvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GACtC,OAAO,CAsDT;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO,CA4C9F;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAOvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE,CAcjF;AAMD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAuBlE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CA6BrF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAyBnE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAU5D"}