oh-my-claude-sisyphus 3.8.8 → 3.8.10

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 (460) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -1
  4. package/agents/architect.md +78 -0
  5. package/agents/explore.md +15 -0
  6. package/agents/qa-tester.md +159 -1
  7. package/agents/writer.md +20 -0
  8. package/commands/help.md +1 -1
  9. package/commands/omc-setup.md +1 -1
  10. package/dist/__tests__/agent-registry.test.d.ts +2 -0
  11. package/dist/__tests__/agent-registry.test.d.ts.map +1 -0
  12. package/dist/__tests__/agent-registry.test.js +39 -0
  13. package/dist/__tests__/agent-registry.test.js.map +1 -0
  14. package/dist/__tests__/hooks.test.js +6 -6
  15. package/dist/__tests__/hooks.test.js.map +1 -1
  16. package/dist/__tests__/load-agent-prompt.test.d.ts +2 -0
  17. package/dist/__tests__/load-agent-prompt.test.d.ts.map +1 -0
  18. package/dist/__tests__/load-agent-prompt.test.js +68 -0
  19. package/dist/__tests__/load-agent-prompt.test.js.map +1 -0
  20. package/dist/__tests__/model-routing.test.js +5 -34
  21. package/dist/__tests__/model-routing.test.js.map +1 -1
  22. package/dist/agents/analyst.d.ts.map +1 -1
  23. package/dist/agents/analyst.js +2 -77
  24. package/dist/agents/analyst.js.map +1 -1
  25. package/dist/agents/architect.d.ts.map +1 -1
  26. package/dist/agents/architect.js +3 -148
  27. package/dist/agents/architect.js.map +1 -1
  28. package/dist/agents/coordinator-deprecated.d.ts +18 -0
  29. package/dist/agents/coordinator-deprecated.d.ts.map +1 -0
  30. package/dist/agents/coordinator-deprecated.js +34 -0
  31. package/dist/agents/coordinator-deprecated.js.map +1 -0
  32. package/dist/agents/critic.d.ts.map +1 -1
  33. package/dist/agents/critic.js +2 -90
  34. package/dist/agents/critic.js.map +1 -1
  35. package/dist/agents/definitions.d.ts +2 -0
  36. package/dist/agents/definitions.d.ts.map +1 -1
  37. package/dist/agents/definitions.js +3 -32
  38. package/dist/agents/definitions.js.map +1 -1
  39. package/dist/agents/designer.d.ts.map +1 -1
  40. package/dist/agents/designer.js +2 -73
  41. package/dist/agents/designer.js.map +1 -1
  42. package/dist/agents/executor.d.ts +1 -0
  43. package/dist/agents/executor.d.ts.map +1 -1
  44. package/dist/agents/executor.js +3 -56
  45. package/dist/agents/executor.js.map +1 -1
  46. package/dist/agents/explore.d.ts.map +1 -1
  47. package/dist/agents/explore.js +2 -64
  48. package/dist/agents/explore.js.map +1 -1
  49. package/dist/agents/index.d.ts +4 -3
  50. package/dist/agents/index.d.ts.map +1 -1
  51. package/dist/agents/index.js +6 -3
  52. package/dist/agents/index.js.map +1 -1
  53. package/dist/agents/planner.d.ts.map +1 -1
  54. package/dist/agents/planner.js +2 -157
  55. package/dist/agents/planner.js.map +1 -1
  56. package/dist/agents/qa-tester.d.ts.map +1 -1
  57. package/dist/agents/qa-tester.js +2 -324
  58. package/dist/agents/qa-tester.js.map +1 -1
  59. package/dist/agents/researcher.d.ts.map +1 -1
  60. package/dist/agents/researcher.js +2 -65
  61. package/dist/agents/researcher.js.map +1 -1
  62. package/dist/agents/scientist.d.ts.map +1 -1
  63. package/dist/agents/scientist.js +2 -293
  64. package/dist/agents/scientist.js.map +1 -1
  65. package/dist/agents/utils.d.ts +7 -0
  66. package/dist/agents/utils.d.ts.map +1 -1
  67. package/dist/agents/utils.js +50 -0
  68. package/dist/agents/utils.js.map +1 -1
  69. package/dist/agents/vision.d.ts.map +1 -1
  70. package/dist/agents/vision.js +2 -32
  71. package/dist/agents/vision.js.map +1 -1
  72. package/dist/agents/writer.d.ts.map +1 -1
  73. package/dist/agents/writer.js +2 -171
  74. package/dist/agents/writer.js.map +1 -1
  75. package/dist/cli/analytics.js +0 -0
  76. package/dist/cli/index.js +0 -0
  77. package/dist/features/model-routing/index.d.ts +1 -1
  78. package/dist/features/model-routing/index.d.ts.map +1 -1
  79. package/dist/features/model-routing/index.js +1 -1
  80. package/dist/features/model-routing/index.js.map +1 -1
  81. package/dist/features/model-routing/router.d.ts +1 -15
  82. package/dist/features/model-routing/router.d.ts.map +1 -1
  83. package/dist/features/model-routing/router.js +2 -33
  84. package/dist/features/model-routing/router.js.map +1 -1
  85. package/dist/features/model-routing/rules.d.ts.map +1 -1
  86. package/dist/features/model-routing/rules.js +0 -8
  87. package/dist/features/model-routing/rules.js.map +1 -1
  88. package/dist/features/model-routing/types.d.ts +1 -2
  89. package/dist/features/model-routing/types.d.ts.map +1 -1
  90. package/dist/features/model-routing/types.js +2 -6
  91. package/dist/features/model-routing/types.js.map +1 -1
  92. package/dist/features/task-decomposer/index.d.ts +1 -1
  93. package/dist/features/task-decomposer/index.d.ts.map +1 -1
  94. package/dist/features/task-decomposer/index.js +5 -8
  95. package/dist/features/task-decomposer/index.js.map +1 -1
  96. package/dist/features/task-decomposer/types.d.ts +4 -4
  97. package/dist/features/task-decomposer/types.d.ts.map +1 -1
  98. package/dist/hooks/bridge.d.ts.map +1 -1
  99. package/dist/hooks/bridge.js +10 -2
  100. package/dist/hooks/bridge.js.map +1 -1
  101. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  102. package/dist/hooks/persistent-mode/index.js +14 -12
  103. package/dist/hooks/persistent-mode/index.js.map +1 -1
  104. package/dist/hooks/todo-continuation/index.d.ts +9 -0
  105. package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
  106. package/dist/hooks/todo-continuation/index.js +19 -0
  107. package/dist/hooks/todo-continuation/index.js.map +1 -1
  108. package/dist/hooks/ultrapilot/decomposer.d.ts +1 -1
  109. package/dist/hooks/ultrapilot/decomposer.js +2 -2
  110. package/dist/index.d.ts +1 -1
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +4 -2
  113. package/dist/index.js.map +1 -1
  114. package/docs/CLAUDE.md +44 -4
  115. package/docs/FEATURES.md +1 -1
  116. package/docs/MIGRATION.md +5 -5
  117. package/docs/REFERENCE.md +6 -2
  118. package/package.json +1 -1
  119. package/scripts/persistent-mode.mjs +27 -12
  120. package/skills/help/SKILL.md +1 -1
  121. package/skills/omc-setup/SKILL.md +1 -1
  122. package/templates/hooks/persistent-mode.mjs +26 -12
  123. package/templates/hooks/stop-continuation.mjs +30 -0
  124. package/dist/__tests__/analytics/analytics-summary.test.d.ts +0 -2
  125. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +0 -1
  126. package/dist/__tests__/analytics/analytics-summary.test.js +0 -267
  127. package/dist/__tests__/analytics/analytics-summary.test.js.map +0 -1
  128. package/dist/__tests__/analytics/cost-estimator.test.d.ts +0 -2
  129. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +0 -1
  130. package/dist/__tests__/analytics/cost-estimator.test.js +0 -212
  131. package/dist/__tests__/analytics/cost-estimator.test.js.map +0 -1
  132. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +0 -7
  133. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +0 -1
  134. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +0 -374
  135. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +0 -1
  136. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +0 -2
  137. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +0 -1
  138. package/dist/__tests__/hud/auto-tracking.integration.test.js +0 -12
  139. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +0 -1
  140. package/dist/__tests__/learned-skills/config.test.d.ts +0 -2
  141. package/dist/__tests__/learned-skills/config.test.d.ts.map +0 -1
  142. package/dist/__tests__/learned-skills/config.test.js +0 -37
  143. package/dist/__tests__/learned-skills/config.test.js.map +0 -1
  144. package/dist/__tests__/learned-skills/detector.test.d.ts +0 -2
  145. package/dist/__tests__/learned-skills/detector.test.d.ts.map +0 -1
  146. package/dist/__tests__/learned-skills/detector.test.js +0 -99
  147. package/dist/__tests__/learned-skills/detector.test.js.map +0 -1
  148. package/dist/__tests__/learned-skills/finder.test.d.ts +0 -2
  149. package/dist/__tests__/learned-skills/finder.test.d.ts.map +0 -1
  150. package/dist/__tests__/learned-skills/finder.test.js +0 -59
  151. package/dist/__tests__/learned-skills/finder.test.js.map +0 -1
  152. package/dist/__tests__/learned-skills/loader.test.d.ts +0 -2
  153. package/dist/__tests__/learned-skills/loader.test.d.ts.map +0 -1
  154. package/dist/__tests__/learned-skills/loader.test.js +0 -69
  155. package/dist/__tests__/learned-skills/loader.test.js.map +0 -1
  156. package/dist/__tests__/learned-skills/parser.test.d.ts +0 -2
  157. package/dist/__tests__/learned-skills/parser.test.d.ts.map +0 -1
  158. package/dist/__tests__/learned-skills/parser.test.js +0 -81
  159. package/dist/__tests__/learned-skills/parser.test.js.map +0 -1
  160. package/dist/__tests__/learned-skills/validator.test.d.ts +0 -2
  161. package/dist/__tests__/learned-skills/validator.test.d.ts.map +0 -1
  162. package/dist/__tests__/learned-skills/validator.test.js +0 -85
  163. package/dist/__tests__/learned-skills/validator.test.js.map +0 -1
  164. package/dist/agents/codex-agents.d.ts +0 -20
  165. package/dist/agents/codex-agents.d.ts.map +0 -1
  166. package/dist/agents/codex-agents.js +0 -36
  167. package/dist/agents/codex-agents.js.map +0 -1
  168. package/dist/agents/coordinator.d.ts +0 -11
  169. package/dist/agents/coordinator.d.ts.map +0 -1
  170. package/dist/agents/coordinator.js +0 -115
  171. package/dist/agents/coordinator.js.map +0 -1
  172. package/dist/agents/document-writer.d.ts +0 -11
  173. package/dist/agents/document-writer.d.ts.map +0 -1
  174. package/dist/agents/document-writer.js +0 -209
  175. package/dist/agents/document-writer.js.map +0 -1
  176. package/dist/agents/frontend-engineer.d.ts +0 -11
  177. package/dist/agents/frontend-engineer.d.ts.map +0 -1
  178. package/dist/agents/frontend-engineer.js +0 -115
  179. package/dist/agents/frontend-engineer.js.map +0 -1
  180. package/dist/agents/librarian.d.ts +0 -12
  181. package/dist/agents/librarian.d.ts.map +0 -1
  182. package/dist/agents/librarian.js +0 -103
  183. package/dist/agents/librarian.js.map +0 -1
  184. package/dist/agents/metis.d.ts +0 -12
  185. package/dist/agents/metis.d.ts.map +0 -1
  186. package/dist/agents/metis.js +0 -117
  187. package/dist/agents/metis.js.map +0 -1
  188. package/dist/agents/momus.d.ts +0 -12
  189. package/dist/agents/momus.d.ts.map +0 -1
  190. package/dist/agents/momus.js +0 -128
  191. package/dist/agents/momus.js.map +0 -1
  192. package/dist/agents/multimodal-looker.d.ts +0 -11
  193. package/dist/agents/multimodal-looker.d.ts.map +0 -1
  194. package/dist/agents/multimodal-looker.js +0 -70
  195. package/dist/agents/multimodal-looker.js.map +0 -1
  196. package/dist/agents/oracle.d.ts +0 -13
  197. package/dist/agents/oracle.d.ts.map +0 -1
  198. package/dist/agents/oracle.js +0 -191
  199. package/dist/agents/oracle.js.map +0 -1
  200. package/dist/agents/orchestrator-sisyphus.d.ts +0 -11
  201. package/dist/agents/orchestrator-sisyphus.d.ts.map +0 -1
  202. package/dist/agents/orchestrator-sisyphus.js +0 -115
  203. package/dist/agents/orchestrator-sisyphus.js.map +0 -1
  204. package/dist/agents/prometheus.d.ts +0 -12
  205. package/dist/agents/prometheus.d.ts.map +0 -1
  206. package/dist/agents/prometheus.js +0 -195
  207. package/dist/agents/prometheus.js.map +0 -1
  208. package/dist/agents/sisyphus-junior.d.ts +0 -12
  209. package/dist/agents/sisyphus-junior.d.ts.map +0 -1
  210. package/dist/agents/sisyphus-junior.js +0 -93
  211. package/dist/agents/sisyphus-junior.js.map +0 -1
  212. package/dist/cli/components/CostDashboard.d.ts +0 -15
  213. package/dist/cli/components/CostDashboard.d.ts.map +0 -1
  214. package/dist/cli/components/CostDashboard.js +0 -15
  215. package/dist/cli/components/CostDashboard.js.map +0 -1
  216. package/dist/cli/components/LiveStats.d.ts +0 -16
  217. package/dist/cli/components/LiveStats.d.ts.map +0 -1
  218. package/dist/cli/components/LiveStats.js +0 -16
  219. package/dist/cli/components/LiveStats.js.map +0 -1
  220. package/dist/cli/components/SessionBrowser.d.ts +0 -14
  221. package/dist/cli/components/SessionBrowser.d.ts.map +0 -1
  222. package/dist/cli/components/SessionBrowser.js +0 -14
  223. package/dist/cli/components/SessionBrowser.js.map +0 -1
  224. package/dist/cli/tui.d.ts +0 -21
  225. package/dist/cli/tui.d.ts.map +0 -1
  226. package/dist/cli/tui.js +0 -21
  227. package/dist/cli/tui.js.map +0 -1
  228. package/dist/hooks/autopilot/signals.d.ts +0 -20
  229. package/dist/hooks/autopilot/signals.d.ts.map +0 -1
  230. package/dist/hooks/autopilot/signals.js +0 -75
  231. package/dist/hooks/autopilot/signals.js.map +0 -1
  232. package/dist/hooks/autopilot/summary.d.ts +0 -27
  233. package/dist/hooks/autopilot/summary.d.ts.map +0 -1
  234. package/dist/hooks/autopilot/summary.js +0 -160
  235. package/dist/hooks/autopilot/summary.js.map +0 -1
  236. package/dist/hooks/autopilot/transition.d.ts +0 -39
  237. package/dist/hooks/autopilot/transition.d.ts.map +0 -1
  238. package/dist/hooks/autopilot/transition.js +0 -216
  239. package/dist/hooks/autopilot/transition.js.map +0 -1
  240. package/dist/hooks/context-window-limit-recovery/constants.d.ts +0 -28
  241. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +0 -1
  242. package/dist/hooks/context-window-limit-recovery/constants.js +0 -85
  243. package/dist/hooks/context-window-limit-recovery/constants.js.map +0 -1
  244. package/dist/hooks/context-window-limit-recovery/index.d.ts +0 -62
  245. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +0 -1
  246. package/dist/hooks/context-window-limit-recovery/index.js +0 -201
  247. package/dist/hooks/context-window-limit-recovery/index.js.map +0 -1
  248. package/dist/hooks/context-window-limit-recovery/parser.d.ts +0 -31
  249. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +0 -1
  250. package/dist/hooks/context-window-limit-recovery/parser.js +0 -241
  251. package/dist/hooks/context-window-limit-recovery/parser.js.map +0 -1
  252. package/dist/hooks/context-window-limit-recovery/types.d.ts +0 -84
  253. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +0 -1
  254. package/dist/hooks/context-window-limit-recovery/types.js +0 -34
  255. package/dist/hooks/context-window-limit-recovery/types.js.map +0 -1
  256. package/dist/hooks/edit-error-recovery/index.d.ts +0 -62
  257. package/dist/hooks/edit-error-recovery/index.d.ts.map +0 -1
  258. package/dist/hooks/edit-error-recovery/index.js +0 -89
  259. package/dist/hooks/edit-error-recovery/index.js.map +0 -1
  260. package/dist/hooks/github-auto-responder/classifier.d.ts +0 -43
  261. package/dist/hooks/github-auto-responder/classifier.d.ts.map +0 -1
  262. package/dist/hooks/github-auto-responder/classifier.js +0 -150
  263. package/dist/hooks/github-auto-responder/classifier.js.map +0 -1
  264. package/dist/hooks/github-auto-responder/config.d.ts +0 -109
  265. package/dist/hooks/github-auto-responder/config.d.ts.map +0 -1
  266. package/dist/hooks/github-auto-responder/config.js +0 -69
  267. package/dist/hooks/github-auto-responder/config.js.map +0 -1
  268. package/dist/hooks/github-auto-responder/constants.d.ts +0 -45
  269. package/dist/hooks/github-auto-responder/constants.d.ts.map +0 -1
  270. package/dist/hooks/github-auto-responder/constants.js +0 -60
  271. package/dist/hooks/github-auto-responder/constants.js.map +0 -1
  272. package/dist/hooks/github-auto-responder/filters.d.ts +0 -95
  273. package/dist/hooks/github-auto-responder/filters.d.ts.map +0 -1
  274. package/dist/hooks/github-auto-responder/filters.js +0 -174
  275. package/dist/hooks/github-auto-responder/filters.js.map +0 -1
  276. package/dist/hooks/github-auto-responder/github-client.d.ts +0 -65
  277. package/dist/hooks/github-auto-responder/github-client.d.ts.map +0 -1
  278. package/dist/hooks/github-auto-responder/github-client.js +0 -128
  279. package/dist/hooks/github-auto-responder/github-client.js.map +0 -1
  280. package/dist/hooks/github-auto-responder/idempotency.d.ts +0 -68
  281. package/dist/hooks/github-auto-responder/idempotency.d.ts.map +0 -1
  282. package/dist/hooks/github-auto-responder/idempotency.js +0 -147
  283. package/dist/hooks/github-auto-responder/idempotency.js.map +0 -1
  284. package/dist/hooks/github-auto-responder/index.d.ts +0 -140
  285. package/dist/hooks/github-auto-responder/index.d.ts.map +0 -1
  286. package/dist/hooks/github-auto-responder/index.js +0 -145
  287. package/dist/hooks/github-auto-responder/index.js.map +0 -1
  288. package/dist/hooks/github-auto-responder/persona.d.ts +0 -40
  289. package/dist/hooks/github-auto-responder/persona.d.ts.map +0 -1
  290. package/dist/hooks/github-auto-responder/persona.js +0 -99
  291. package/dist/hooks/github-auto-responder/persona.js.map +0 -1
  292. package/dist/hooks/github-auto-responder/responder.d.ts +0 -122
  293. package/dist/hooks/github-auto-responder/responder.d.ts.map +0 -1
  294. package/dist/hooks/github-auto-responder/responder.js +0 -264
  295. package/dist/hooks/github-auto-responder/responder.js.map +0 -1
  296. package/dist/hooks/github-auto-responder/server.d.ts +0 -140
  297. package/dist/hooks/github-auto-responder/server.d.ts.map +0 -1
  298. package/dist/hooks/github-auto-responder/server.js +0 -301
  299. package/dist/hooks/github-auto-responder/server.js.map +0 -1
  300. package/dist/hooks/github-auto-responder/signature.d.ts +0 -34
  301. package/dist/hooks/github-auto-responder/signature.d.ts.map +0 -1
  302. package/dist/hooks/github-auto-responder/signature.js +0 -79
  303. package/dist/hooks/github-auto-responder/signature.js.map +0 -1
  304. package/dist/hooks/github-auto-responder/templates.d.ts +0 -16
  305. package/dist/hooks/github-auto-responder/templates.d.ts.map +0 -1
  306. package/dist/hooks/github-auto-responder/templates.js +0 -93
  307. package/dist/hooks/github-auto-responder/templates.js.map +0 -1
  308. package/dist/hooks/github-auto-responder/types.d.ts +0 -246
  309. package/dist/hooks/github-auto-responder/types.d.ts.map +0 -1
  310. package/dist/hooks/github-auto-responder/types.js +0 -7
  311. package/dist/hooks/github-auto-responder/types.js.map +0 -1
  312. package/dist/hooks/learned-skills/config.d.ts +0 -53
  313. package/dist/hooks/learned-skills/config.d.ts.map +0 -1
  314. package/dist/hooks/learned-skills/config.js +0 -103
  315. package/dist/hooks/learned-skills/config.js.map +0 -1
  316. package/dist/hooks/learned-skills/constants.d.ts +0 -24
  317. package/dist/hooks/learned-skills/constants.d.ts.map +0 -1
  318. package/dist/hooks/learned-skills/constants.js +0 -26
  319. package/dist/hooks/learned-skills/constants.js.map +0 -1
  320. package/dist/hooks/learned-skills/detection-hook.d.ts +0 -39
  321. package/dist/hooks/learned-skills/detection-hook.d.ts.map +0 -1
  322. package/dist/hooks/learned-skills/detection-hook.js +0 -83
  323. package/dist/hooks/learned-skills/detection-hook.js.map +0 -1
  324. package/dist/hooks/learned-skills/detector.d.ts +0 -30
  325. package/dist/hooks/learned-skills/detector.d.ts.map +0 -1
  326. package/dist/hooks/learned-skills/detector.js +0 -150
  327. package/dist/hooks/learned-skills/detector.js.map +0 -1
  328. package/dist/hooks/learned-skills/finder.d.ts +0 -21
  329. package/dist/hooks/learned-skills/finder.d.ts.map +0 -1
  330. package/dist/hooks/learned-skills/finder.js +0 -117
  331. package/dist/hooks/learned-skills/finder.js.map +0 -1
  332. package/dist/hooks/learned-skills/index.d.ts +0 -62
  333. package/dist/hooks/learned-skills/index.d.ts.map +0 -1
  334. package/dist/hooks/learned-skills/index.js +0 -137
  335. package/dist/hooks/learned-skills/index.js.map +0 -1
  336. package/dist/hooks/learned-skills/loader.d.ts +0 -20
  337. package/dist/hooks/learned-skills/loader.d.ts.map +0 -1
  338. package/dist/hooks/learned-skills/loader.js +0 -107
  339. package/dist/hooks/learned-skills/loader.js.map +0 -1
  340. package/dist/hooks/learned-skills/parser.d.ts +0 -21
  341. package/dist/hooks/learned-skills/parser.d.ts.map +0 -1
  342. package/dist/hooks/learned-skills/parser.js +0 -190
  343. package/dist/hooks/learned-skills/parser.js.map +0 -1
  344. package/dist/hooks/learned-skills/promotion.d.ts +0 -29
  345. package/dist/hooks/learned-skills/promotion.d.ts.map +0 -1
  346. package/dist/hooks/learned-skills/promotion.js +0 -87
  347. package/dist/hooks/learned-skills/promotion.js.map +0 -1
  348. package/dist/hooks/learned-skills/types.d.ts +0 -109
  349. package/dist/hooks/learned-skills/types.d.ts.map +0 -1
  350. package/dist/hooks/learned-skills/types.js +0 -8
  351. package/dist/hooks/learned-skills/types.js.map +0 -1
  352. package/dist/hooks/learned-skills/validator.d.ts +0 -15
  353. package/dist/hooks/learned-skills/validator.d.ts.map +0 -1
  354. package/dist/hooks/learned-skills/validator.js +0 -87
  355. package/dist/hooks/learned-skills/validator.js.map +0 -1
  356. package/dist/hooks/learned-skills/writer.d.ts +0 -27
  357. package/dist/hooks/learned-skills/writer.d.ts.map +0 -1
  358. package/dist/hooks/learned-skills/writer.js +0 -126
  359. package/dist/hooks/learned-skills/writer.js.map +0 -1
  360. package/dist/hooks/mnemosyne/config.d.ts +0 -53
  361. package/dist/hooks/mnemosyne/config.d.ts.map +0 -1
  362. package/dist/hooks/mnemosyne/config.js +0 -103
  363. package/dist/hooks/mnemosyne/config.js.map +0 -1
  364. package/dist/hooks/mnemosyne/constants.d.ts +0 -24
  365. package/dist/hooks/mnemosyne/constants.d.ts.map +0 -1
  366. package/dist/hooks/mnemosyne/constants.js +0 -26
  367. package/dist/hooks/mnemosyne/constants.js.map +0 -1
  368. package/dist/hooks/mnemosyne/detection-hook.d.ts +0 -39
  369. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +0 -1
  370. package/dist/hooks/mnemosyne/detection-hook.js +0 -83
  371. package/dist/hooks/mnemosyne/detection-hook.js.map +0 -1
  372. package/dist/hooks/mnemosyne/detector.d.ts +0 -30
  373. package/dist/hooks/mnemosyne/detector.d.ts.map +0 -1
  374. package/dist/hooks/mnemosyne/detector.js +0 -150
  375. package/dist/hooks/mnemosyne/detector.js.map +0 -1
  376. package/dist/hooks/mnemosyne/finder.d.ts +0 -21
  377. package/dist/hooks/mnemosyne/finder.d.ts.map +0 -1
  378. package/dist/hooks/mnemosyne/finder.js +0 -117
  379. package/dist/hooks/mnemosyne/finder.js.map +0 -1
  380. package/dist/hooks/mnemosyne/index.d.ts +0 -62
  381. package/dist/hooks/mnemosyne/index.d.ts.map +0 -1
  382. package/dist/hooks/mnemosyne/index.js +0 -137
  383. package/dist/hooks/mnemosyne/index.js.map +0 -1
  384. package/dist/hooks/mnemosyne/loader.d.ts +0 -20
  385. package/dist/hooks/mnemosyne/loader.d.ts.map +0 -1
  386. package/dist/hooks/mnemosyne/loader.js +0 -113
  387. package/dist/hooks/mnemosyne/loader.js.map +0 -1
  388. package/dist/hooks/mnemosyne/parser.d.ts +0 -21
  389. package/dist/hooks/mnemosyne/parser.d.ts.map +0 -1
  390. package/dist/hooks/mnemosyne/parser.js +0 -190
  391. package/dist/hooks/mnemosyne/parser.js.map +0 -1
  392. package/dist/hooks/mnemosyne/promotion.d.ts +0 -29
  393. package/dist/hooks/mnemosyne/promotion.d.ts.map +0 -1
  394. package/dist/hooks/mnemosyne/promotion.js +0 -87
  395. package/dist/hooks/mnemosyne/promotion.js.map +0 -1
  396. package/dist/hooks/mnemosyne/types.d.ts +0 -109
  397. package/dist/hooks/mnemosyne/types.d.ts.map +0 -1
  398. package/dist/hooks/mnemosyne/types.js +0 -8
  399. package/dist/hooks/mnemosyne/types.js.map +0 -1
  400. package/dist/hooks/mnemosyne/validator.d.ts +0 -15
  401. package/dist/hooks/mnemosyne/validator.d.ts.map +0 -1
  402. package/dist/hooks/mnemosyne/validator.js +0 -87
  403. package/dist/hooks/mnemosyne/validator.js.map +0 -1
  404. package/dist/hooks/mnemosyne/writer.d.ts +0 -27
  405. package/dist/hooks/mnemosyne/writer.d.ts.map +0 -1
  406. package/dist/hooks/mnemosyne/writer.js +0 -126
  407. package/dist/hooks/mnemosyne/writer.js.map +0 -1
  408. package/dist/hooks/ralph-loop/index.d.ts +0 -116
  409. package/dist/hooks/ralph-loop/index.d.ts.map +0 -1
  410. package/dist/hooks/ralph-loop/index.js +0 -322
  411. package/dist/hooks/ralph-loop/index.js.map +0 -1
  412. package/dist/hooks/ralph-prd/index.d.ts +0 -130
  413. package/dist/hooks/ralph-prd/index.d.ts.map +0 -1
  414. package/dist/hooks/ralph-prd/index.js +0 -310
  415. package/dist/hooks/ralph-prd/index.js.map +0 -1
  416. package/dist/hooks/ralph-progress/index.d.ts +0 -102
  417. package/dist/hooks/ralph-progress/index.d.ts.map +0 -1
  418. package/dist/hooks/ralph-progress/index.js +0 -408
  419. package/dist/hooks/ralph-progress/index.js.map +0 -1
  420. package/dist/hooks/ralph-verifier/index.d.ts +0 -72
  421. package/dist/hooks/ralph-verifier/index.d.ts.map +0 -1
  422. package/dist/hooks/ralph-verifier/index.js +0 -223
  423. package/dist/hooks/ralph-verifier/index.js.map +0 -1
  424. package/dist/hooks/session-recovery/constants.d.ts +0 -56
  425. package/dist/hooks/session-recovery/constants.d.ts.map +0 -1
  426. package/dist/hooks/session-recovery/constants.js +0 -78
  427. package/dist/hooks/session-recovery/constants.js.map +0 -1
  428. package/dist/hooks/session-recovery/index.d.ts +0 -53
  429. package/dist/hooks/session-recovery/index.d.ts.map +0 -1
  430. package/dist/hooks/session-recovery/index.js +0 -321
  431. package/dist/hooks/session-recovery/index.js.map +0 -1
  432. package/dist/hooks/session-recovery/storage.d.ts +0 -76
  433. package/dist/hooks/session-recovery/storage.d.ts.map +0 -1
  434. package/dist/hooks/session-recovery/storage.js +0 -383
  435. package/dist/hooks/session-recovery/storage.js.map +0 -1
  436. package/dist/hooks/session-recovery/types.d.ts +0 -145
  437. package/dist/hooks/session-recovery/types.d.ts.map +0 -1
  438. package/dist/hooks/session-recovery/types.js +0 -8
  439. package/dist/hooks/session-recovery/types.js.map +0 -1
  440. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +0 -23
  441. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +0 -1
  442. package/dist/hooks/sisyphus-orchestrator/constants.js +0 -142
  443. package/dist/hooks/sisyphus-orchestrator/constants.js.map +0 -1
  444. package/dist/hooks/sisyphus-orchestrator/index.d.ts +0 -113
  445. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +0 -1
  446. package/dist/hooks/sisyphus-orchestrator/index.js +0 -309
  447. package/dist/hooks/sisyphus-orchestrator/index.js.map +0 -1
  448. package/dist/hooks/ultraqa-loop/index.d.ts +0 -94
  449. package/dist/hooks/ultraqa-loop/index.d.ts.map +0 -1
  450. package/dist/hooks/ultraqa-loop/index.js +0 -216
  451. package/dist/hooks/ultraqa-loop/index.js.map +0 -1
  452. package/dist/hooks/ultrawork-state/index.d.ts +0 -62
  453. package/dist/hooks/ultrawork-state/index.d.ts.map +0 -1
  454. package/dist/hooks/ultrawork-state/index.js +0 -208
  455. package/dist/hooks/ultrawork-state/index.js.map +0 -1
  456. package/dist/hud/sisyphus-state.d.ts +0 -31
  457. package/dist/hud/sisyphus-state.d.ts.map +0 -1
  458. package/dist/hud/sisyphus-state.js +0 -163
  459. package/dist/hud/sisyphus-state.js.map +0 -1
  460. package/dist/mcp/standalone-server.cjs +0 -19135
@@ -1,126 +0,0 @@
1
- /**
2
- * Skill Writer
3
- *
4
- * Writes skill files to disk with proper formatting.
5
- */
6
- import { writeFileSync, existsSync } from 'fs';
7
- import { join } from 'path';
8
- import { ensureSkillsDir, getSkillsDir } from './finder.js';
9
- import { generateSkillFrontmatter } from './parser.js';
10
- import { validateExtractionRequest } from './validator.js';
11
- import { DEBUG_ENABLED } from './constants.js';
12
- /**
13
- * Generate a unique skill ID.
14
- */
15
- function generateSkillId() {
16
- const timestamp = Date.now().toString(36);
17
- const random = Math.random().toString(36).slice(2, 6);
18
- return `skill-${timestamp}-${random}`;
19
- }
20
- /**
21
- * Sanitize a string for use as filename.
22
- */
23
- function sanitizeFilename(name) {
24
- return name
25
- .toLowerCase()
26
- .replace(/[^a-z0-9]+/g, '-')
27
- .replace(/^-+|-+$/g, '')
28
- .slice(0, 50);
29
- }
30
- /**
31
- * Write a new skill from extraction request.
32
- */
33
- export function writeSkill(request, projectRoot, skillName) {
34
- // Validate first
35
- const validation = validateExtractionRequest(request);
36
- if (!validation.valid) {
37
- return {
38
- success: false,
39
- error: `Quality validation failed: ${validation.missingFields.join(', ')}`,
40
- validation,
41
- };
42
- }
43
- // Ensure directory exists
44
- if (!ensureSkillsDir(request.targetScope, projectRoot || undefined)) {
45
- return {
46
- success: false,
47
- error: `Failed to create skills directory for scope: ${request.targetScope}`,
48
- validation,
49
- };
50
- }
51
- // Generate metadata
52
- const metadata = {
53
- id: generateSkillId(),
54
- name: skillName,
55
- description: request.problem.slice(0, 200),
56
- source: 'extracted',
57
- createdAt: new Date().toISOString(),
58
- triggers: request.triggers,
59
- tags: request.tags,
60
- quality: validation.score,
61
- usageCount: 0,
62
- };
63
- // Generate content
64
- const frontmatter = generateSkillFrontmatter(metadata);
65
- const content = `${frontmatter}
66
-
67
- # Problem
68
-
69
- ${request.problem}
70
-
71
- # Solution
72
-
73
- ${request.solution}
74
- `;
75
- // Write to file
76
- const filename = `${sanitizeFilename(skillName)}.md`;
77
- const skillsDir = getSkillsDir(request.targetScope, projectRoot || undefined);
78
- const filePath = join(skillsDir, filename);
79
- // Check for duplicates
80
- if (existsSync(filePath)) {
81
- return {
82
- success: false,
83
- error: `Skill file already exists: ${filename}`,
84
- validation,
85
- };
86
- }
87
- try {
88
- writeFileSync(filePath, content);
89
- return {
90
- success: true,
91
- path: filePath,
92
- validation,
93
- };
94
- }
95
- catch (e) {
96
- if (DEBUG_ENABLED) {
97
- console.error('[mnemosyne] Error writing skill file:', e);
98
- }
99
- return {
100
- success: false,
101
- error: `Failed to write skill file: ${e}`,
102
- validation,
103
- };
104
- }
105
- }
106
- /**
107
- * Check if a skill with similar triggers already exists.
108
- */
109
- export function checkDuplicateTriggers(triggers, projectRoot) {
110
- // Import dynamically to avoid circular dependency
111
- const { loadAllSkills } = require('./loader.js');
112
- const skills = loadAllSkills(projectRoot);
113
- const normalizedTriggers = new Set(triggers.map(t => t.toLowerCase()));
114
- for (const skill of skills) {
115
- const skillTriggers = skill.metadata.triggers.map((t) => t.toLowerCase());
116
- const overlap = skillTriggers.filter((t) => normalizedTriggers.has(t));
117
- if (overlap.length >= triggers.length * 0.5) {
118
- return {
119
- isDuplicate: true,
120
- existingSkillId: skill.metadata.id,
121
- };
122
- }
123
- }
124
- return { isDuplicate: false };
125
- }
126
- //# sourceMappingURL=writer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/hooks/mnemosyne/writer.ts"],"names":[],"mappings":"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"}
@@ -1,116 +0,0 @@
1
- /**
2
- * Ralph Hook
3
- *
4
- * Self-referential work loop that continues until a completion promise is detected.
5
- * Named after the character who keeps working until the job is done.
6
- *
7
- * Enhanced with PRD (Product Requirements Document) support for structured task tracking.
8
- * When a prd.json exists, completion is based on all stories having passes: true.
9
- *
10
- * Ported from oh-my-opencode's ralph hook.
11
- */
12
- import { type PRDStatus, type UserStory } from '../ralph-prd/index.js';
13
- export declare function isUltraQAActive(directory: string): boolean;
14
- export interface RalphLoopState {
15
- /** Whether the loop is currently active */
16
- active: boolean;
17
- /** Current iteration number */
18
- iteration: number;
19
- /** Maximum iterations before stopping */
20
- max_iterations: number;
21
- /** The promise phrase to detect for completion */
22
- completion_promise: string;
23
- /** When the loop started */
24
- started_at: string;
25
- /** The original prompt/task */
26
- prompt: string;
27
- /** Session ID the loop is bound to */
28
- session_id?: string;
29
- /** Whether PRD mode is active */
30
- prd_mode?: boolean;
31
- /** Current story being worked on */
32
- current_story_id?: string;
33
- /** Whether ultrawork is linked/auto-activated with ralph */
34
- linked_ultrawork?: boolean;
35
- }
36
- export interface RalphLoopOptions {
37
- /** Maximum iterations (default: 10) */
38
- maxIterations?: number;
39
- /** Custom completion promise (default: "TASK_COMPLETE") */
40
- completionPromise?: string;
41
- /** Disable auto-activation of ultrawork (default: false - ultrawork is enabled) */
42
- disableUltrawork?: boolean;
43
- }
44
- export interface RalphLoopHook {
45
- startLoop: (sessionId: string, prompt: string, options?: RalphLoopOptions) => boolean;
46
- cancelLoop: (sessionId: string) => boolean;
47
- getState: () => RalphLoopState | null;
48
- }
49
- /**
50
- * Read Ralph Loop state from disk
51
- */
52
- export declare function readRalphState(directory: string): RalphLoopState | null;
53
- /**
54
- * Write Ralph Loop state to disk
55
- */
56
- export declare function writeRalphState(directory: string, state: RalphLoopState): boolean;
57
- /**
58
- * Clear Ralph Loop state
59
- */
60
- export declare function clearRalphState(directory: string): boolean;
61
- /**
62
- * Clear ultrawork state (only if linked to ralph)
63
- */
64
- export declare function clearLinkedUltraworkState(directory: string): boolean;
65
- /**
66
- * Increment Ralph Loop iteration
67
- */
68
- export declare function incrementRalphIteration(directory: string): RalphLoopState | null;
69
- /**
70
- * Detect completion promise in session transcript
71
- */
72
- export declare function detectCompletionPromise(sessionId: string, promise: string): boolean;
73
- /**
74
- * Create a Ralph Loop hook instance
75
- */
76
- export declare function createRalphLoopHook(directory: string): RalphLoopHook;
77
- /**
78
- * Check if PRD mode is available (prd.json exists)
79
- */
80
- export declare function hasPrd(directory: string): boolean;
81
- /**
82
- * Get PRD completion status for ralph
83
- */
84
- export declare function getPrdCompletionStatus(directory: string): {
85
- hasPrd: boolean;
86
- allComplete: boolean;
87
- status: PRDStatus | null;
88
- nextStory: UserStory | null;
89
- };
90
- /**
91
- * Get context injection for ralph continuation
92
- * Includes PRD current story and progress memory
93
- */
94
- export declare function getRalphContext(directory: string): string;
95
- /**
96
- * Update ralph state with current story
97
- */
98
- export declare function setCurrentStory(directory: string, storyId: string): boolean;
99
- /**
100
- * Enable PRD mode in ralph state
101
- */
102
- export declare function enablePrdMode(directory: string): boolean;
103
- /**
104
- * Record progress after completing a story
105
- */
106
- export declare function recordStoryProgress(directory: string, storyId: string, implementation: string[], filesChanged: string[], learnings: string[]): boolean;
107
- /**
108
- * Add a codebase pattern discovered during work
109
- */
110
- export declare function recordPattern(directory: string, pattern: string): boolean;
111
- /**
112
- * Check if ralph should complete based on PRD status
113
- */
114
- export declare function shouldCompleteByPrd(directory: string): boolean;
115
- export type { PRD, PRDStatus, UserStory } from '../ralph-prd/index.js';
116
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/ralph-loop/index.ts"],"names":[],"mappings":"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"}
@@ -1,322 +0,0 @@
1
- /**
2
- * Ralph Hook
3
- *
4
- * Self-referential work loop that continues until a completion promise is detected.
5
- * Named after the character who keeps working until the job is done.
6
- *
7
- * Enhanced with PRD (Product Requirements Document) support for structured task tracking.
8
- * When a prd.json exists, completion is based on all stories having passes: true.
9
- *
10
- * Ported from oh-my-opencode's ralph hook.
11
- */
12
- import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from 'fs';
13
- import { join } from 'path';
14
- import { homedir } from 'os';
15
- import { readPrd, getPrdStatus, formatNextStoryPrompt, formatPrdStatus } from '../ralph-prd/index.js';
16
- import { getProgressContext, appendProgress, initProgress, addPattern } from '../ralph-progress/index.js';
17
- import { readUltraworkState as readUltraworkStateFromModule, writeUltraworkState as writeUltraworkStateFromModule } from '../ultrawork-state/index.js';
18
- // Forward declaration to avoid circular import - check ultraqa state file directly
19
- export function isUltraQAActive(directory) {
20
- const omcDir = join(directory, '.omc');
21
- const stateFile = join(omcDir, 'ultraqa-state.json');
22
- if (!existsSync(stateFile)) {
23
- return false;
24
- }
25
- try {
26
- const content = readFileSync(stateFile, 'utf-8');
27
- const state = JSON.parse(content);
28
- return state && state.active === true;
29
- }
30
- catch {
31
- return false;
32
- }
33
- }
34
- const DEFAULT_MAX_ITERATIONS = 10;
35
- const DEFAULT_COMPLETION_PROMISE = 'TASK_COMPLETE';
36
- /**
37
- * Get the state file path for Ralph Loop
38
- */
39
- function getStateFilePath(directory) {
40
- const omcDir = join(directory, '.omc');
41
- return join(omcDir, 'ralph-state.json');
42
- }
43
- /**
44
- * Ensure the .omc directory exists
45
- */
46
- function ensureStateDir(directory) {
47
- const omcDir = join(directory, '.omc');
48
- if (!existsSync(omcDir)) {
49
- mkdirSync(omcDir, { recursive: true });
50
- }
51
- }
52
- /**
53
- * Read Ralph Loop state from disk
54
- */
55
- export function readRalphState(directory) {
56
- const stateFile = getStateFilePath(directory);
57
- if (!existsSync(stateFile)) {
58
- return null;
59
- }
60
- try {
61
- const content = readFileSync(stateFile, 'utf-8');
62
- return JSON.parse(content);
63
- }
64
- catch {
65
- return null;
66
- }
67
- }
68
- /**
69
- * Write Ralph Loop state to disk
70
- */
71
- export function writeRalphState(directory, state) {
72
- try {
73
- ensureStateDir(directory);
74
- const stateFile = getStateFilePath(directory);
75
- writeFileSync(stateFile, JSON.stringify(state, null, 2));
76
- return true;
77
- }
78
- catch {
79
- return false;
80
- }
81
- }
82
- /**
83
- * Clear Ralph Loop state
84
- */
85
- export function clearRalphState(directory) {
86
- const stateFile = getStateFilePath(directory);
87
- if (!existsSync(stateFile)) {
88
- return true;
89
- }
90
- try {
91
- unlinkSync(stateFile);
92
- return true;
93
- }
94
- catch {
95
- return false;
96
- }
97
- }
98
- /**
99
- * Clear ultrawork state (only if linked to ralph)
100
- */
101
- export function clearLinkedUltraworkState(directory) {
102
- const state = readUltraworkStateFromModule(directory);
103
- // Only clear if it was linked to ralph (auto-activated)
104
- if (!state || !state.linked_to_ralph) {
105
- return true;
106
- }
107
- const omcDir = join(directory, '.omc');
108
- const stateFile = join(omcDir, 'ultrawork-state.json');
109
- try {
110
- unlinkSync(stateFile);
111
- return true;
112
- }
113
- catch {
114
- return false;
115
- }
116
- }
117
- /**
118
- * Increment Ralph Loop iteration
119
- */
120
- export function incrementRalphIteration(directory) {
121
- const state = readRalphState(directory);
122
- if (!state || !state.active) {
123
- return null;
124
- }
125
- state.iteration += 1;
126
- if (writeRalphState(directory, state)) {
127
- return state;
128
- }
129
- return null;
130
- }
131
- /**
132
- * Detect completion promise in session transcript
133
- */
134
- export function detectCompletionPromise(sessionId, promise) {
135
- // Try to find transcript in Claude's session directory
136
- const claudeDir = join(homedir(), '.claude');
137
- const possiblePaths = [
138
- join(claudeDir, 'sessions', sessionId, 'transcript.md'),
139
- join(claudeDir, 'sessions', sessionId, 'messages.json'),
140
- join(claudeDir, 'transcripts', `${sessionId}.md`)
141
- ];
142
- for (const transcriptPath of possiblePaths) {
143
- if (existsSync(transcriptPath)) {
144
- try {
145
- const content = readFileSync(transcriptPath, 'utf-8');
146
- const pattern = new RegExp(`<promise>\\s*${escapeRegex(promise)}\\s*</promise>`, 'is');
147
- if (pattern.test(content)) {
148
- return true;
149
- }
150
- }
151
- catch {
152
- continue;
153
- }
154
- }
155
- }
156
- return false;
157
- }
158
- /**
159
- * Escape regex special characters
160
- */
161
- function escapeRegex(str) {
162
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
163
- }
164
- /**
165
- * Create a Ralph Loop hook instance
166
- */
167
- export function createRalphLoopHook(directory) {
168
- const startLoop = (sessionId, prompt, options) => {
169
- // Mutual exclusion check: cannot start Ralph Loop if UltraQA is active
170
- if (isUltraQAActive(directory)) {
171
- console.error('Cannot start Ralph Loop while UltraQA is active. Cancel UltraQA first with /oh-my-claudecode:cancel-ultraqa.');
172
- return false;
173
- }
174
- const enableUltrawork = !options?.disableUltrawork;
175
- const now = new Date().toISOString();
176
- const state = {
177
- active: true,
178
- iteration: 1,
179
- max_iterations: options?.maxIterations ?? DEFAULT_MAX_ITERATIONS,
180
- completion_promise: options?.completionPromise ?? DEFAULT_COMPLETION_PROMISE,
181
- started_at: now,
182
- prompt,
183
- session_id: sessionId,
184
- linked_ultrawork: enableUltrawork
185
- };
186
- const ralphSuccess = writeRalphState(directory, state);
187
- // Auto-activate ultrawork (linked to ralph) by default
188
- if (ralphSuccess && enableUltrawork) {
189
- const ultraworkState = {
190
- active: true,
191
- reinforcement_count: 0,
192
- original_prompt: prompt,
193
- started_at: now,
194
- last_checked_at: now,
195
- linked_to_ralph: true
196
- };
197
- writeUltraworkStateFromModule(ultraworkState, directory);
198
- }
199
- return ralphSuccess;
200
- };
201
- const cancelLoop = (sessionId) => {
202
- const state = readRalphState(directory);
203
- if (!state || state.session_id !== sessionId) {
204
- return false;
205
- }
206
- // Also clear linked ultrawork state if it was auto-activated
207
- if (state.linked_ultrawork) {
208
- clearLinkedUltraworkState(directory);
209
- }
210
- return clearRalphState(directory);
211
- };
212
- const getState = () => {
213
- return readRalphState(directory);
214
- };
215
- return {
216
- startLoop,
217
- cancelLoop,
218
- getState
219
- };
220
- }
221
- // ============================================================================
222
- // PRD Integration
223
- // ============================================================================
224
- /**
225
- * Check if PRD mode is available (prd.json exists)
226
- */
227
- export function hasPrd(directory) {
228
- const prd = readPrd(directory);
229
- return prd !== null;
230
- }
231
- /**
232
- * Get PRD completion status for ralph
233
- */
234
- export function getPrdCompletionStatus(directory) {
235
- const prd = readPrd(directory);
236
- if (!prd) {
237
- return {
238
- hasPrd: false,
239
- allComplete: false,
240
- status: null,
241
- nextStory: null
242
- };
243
- }
244
- const status = getPrdStatus(prd);
245
- return {
246
- hasPrd: true,
247
- allComplete: status.allComplete,
248
- status,
249
- nextStory: status.nextStory
250
- };
251
- }
252
- /**
253
- * Get context injection for ralph continuation
254
- * Includes PRD current story and progress memory
255
- */
256
- export function getRalphContext(directory) {
257
- const parts = [];
258
- // Add progress context (patterns, learnings)
259
- const progressContext = getProgressContext(directory);
260
- if (progressContext) {
261
- parts.push(progressContext);
262
- }
263
- // Add current story from PRD
264
- const prdStatus = getPrdCompletionStatus(directory);
265
- if (prdStatus.hasPrd && prdStatus.nextStory) {
266
- parts.push(formatNextStoryPrompt(prdStatus.nextStory));
267
- }
268
- // Add PRD status summary
269
- if (prdStatus.status) {
270
- parts.push(`<prd-status>\n${formatPrdStatus(prdStatus.status)}\n</prd-status>\n`);
271
- }
272
- return parts.join('\n');
273
- }
274
- /**
275
- * Update ralph state with current story
276
- */
277
- export function setCurrentStory(directory, storyId) {
278
- const state = readRalphState(directory);
279
- if (!state) {
280
- return false;
281
- }
282
- state.current_story_id = storyId;
283
- return writeRalphState(directory, state);
284
- }
285
- /**
286
- * Enable PRD mode in ralph state
287
- */
288
- export function enablePrdMode(directory) {
289
- const state = readRalphState(directory);
290
- if (!state) {
291
- return false;
292
- }
293
- state.prd_mode = true;
294
- // Initialize progress.txt if it doesn't exist
295
- initProgress(directory);
296
- return writeRalphState(directory, state);
297
- }
298
- /**
299
- * Record progress after completing a story
300
- */
301
- export function recordStoryProgress(directory, storyId, implementation, filesChanged, learnings) {
302
- return appendProgress(directory, {
303
- storyId,
304
- implementation,
305
- filesChanged,
306
- learnings
307
- });
308
- }
309
- /**
310
- * Add a codebase pattern discovered during work
311
- */
312
- export function recordPattern(directory, pattern) {
313
- return addPattern(directory, pattern);
314
- }
315
- /**
316
- * Check if ralph should complete based on PRD status
317
- */
318
- export function shouldCompleteByPrd(directory) {
319
- const status = getPrdCompletionStatus(directory);
320
- return status.hasPrd && status.allComplete;
321
- }
322
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/ralph-loop/index.ts"],"names":[],"mappings":"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"}