oh-my-claude-sisyphus 3.7.3 → 3.7.4

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 (357) hide show
  1. package/agents/build-fixer-low.md +2 -2
  2. package/agents/build-fixer.md +74 -19
  3. package/agents/code-reviewer.md +7 -7
  4. package/agents/designer-high.md +2 -2
  5. package/agents/designer-low.md +1 -1
  6. package/agents/designer.md +17 -2
  7. package/agents/security-reviewer.md +86 -17
  8. package/agents/tdd-guide.md +151 -12
  9. package/dist/__tests__/analytics/analytics-summary.test.d.ts +2 -0
  10. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +1 -0
  11. package/dist/__tests__/analytics/analytics-summary.test.js +267 -0
  12. package/dist/__tests__/analytics/analytics-summary.test.js.map +1 -0
  13. package/dist/__tests__/analytics/cost-estimator.test.d.ts +2 -0
  14. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +1 -0
  15. package/dist/__tests__/analytics/cost-estimator.test.js +212 -0
  16. package/dist/__tests__/analytics/cost-estimator.test.js.map +1 -0
  17. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +7 -0
  18. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +1 -0
  19. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +374 -0
  20. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +1 -0
  21. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +2 -0
  22. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +1 -0
  23. package/dist/__tests__/hud/auto-tracking.integration.test.js +12 -0
  24. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +1 -0
  25. package/dist/__tests__/installer.test.js +1 -1
  26. package/dist/__tests__/learned-skills/config.test.d.ts +2 -0
  27. package/dist/__tests__/learned-skills/config.test.d.ts.map +1 -0
  28. package/dist/__tests__/learned-skills/config.test.js +37 -0
  29. package/dist/__tests__/learned-skills/config.test.js.map +1 -0
  30. package/dist/__tests__/learned-skills/detector.test.d.ts +2 -0
  31. package/dist/__tests__/learned-skills/detector.test.d.ts.map +1 -0
  32. package/dist/__tests__/learned-skills/detector.test.js +99 -0
  33. package/dist/__tests__/learned-skills/detector.test.js.map +1 -0
  34. package/dist/__tests__/learned-skills/finder.test.d.ts +2 -0
  35. package/dist/__tests__/learned-skills/finder.test.d.ts.map +1 -0
  36. package/dist/__tests__/learned-skills/finder.test.js +59 -0
  37. package/dist/__tests__/learned-skills/finder.test.js.map +1 -0
  38. package/dist/__tests__/learned-skills/loader.test.d.ts +2 -0
  39. package/dist/__tests__/learned-skills/loader.test.d.ts.map +1 -0
  40. package/dist/__tests__/learned-skills/loader.test.js +69 -0
  41. package/dist/__tests__/learned-skills/loader.test.js.map +1 -0
  42. package/dist/__tests__/learned-skills/parser.test.d.ts +2 -0
  43. package/dist/__tests__/learned-skills/parser.test.d.ts.map +1 -0
  44. package/dist/__tests__/learned-skills/parser.test.js +81 -0
  45. package/dist/__tests__/learned-skills/parser.test.js.map +1 -0
  46. package/dist/__tests__/learned-skills/validator.test.d.ts +2 -0
  47. package/dist/__tests__/learned-skills/validator.test.d.ts.map +1 -0
  48. package/dist/__tests__/learned-skills/validator.test.js +85 -0
  49. package/dist/__tests__/learned-skills/validator.test.js.map +1 -0
  50. package/dist/__tests__/skills.test.js +6 -5
  51. package/dist/__tests__/skills.test.js.map +1 -1
  52. package/dist/agents/codex-agents.d.ts +20 -0
  53. package/dist/agents/codex-agents.d.ts.map +1 -0
  54. package/dist/agents/codex-agents.js +36 -0
  55. package/dist/agents/codex-agents.js.map +1 -0
  56. package/dist/agents/definitions.js +1 -1
  57. package/dist/agents/definitions.js.map +1 -1
  58. package/dist/agents/document-writer.d.ts +11 -0
  59. package/dist/agents/document-writer.d.ts.map +1 -0
  60. package/dist/agents/document-writer.js +209 -0
  61. package/dist/agents/document-writer.js.map +1 -0
  62. package/dist/agents/frontend-engineer.d.ts +11 -0
  63. package/dist/agents/frontend-engineer.d.ts.map +1 -0
  64. package/dist/agents/frontend-engineer.js +115 -0
  65. package/dist/agents/frontend-engineer.js.map +1 -0
  66. package/dist/agents/librarian.d.ts +12 -0
  67. package/dist/agents/librarian.d.ts.map +1 -0
  68. package/dist/agents/librarian.js +103 -0
  69. package/dist/agents/librarian.js.map +1 -0
  70. package/dist/agents/metis.d.ts +12 -0
  71. package/dist/agents/metis.d.ts.map +1 -0
  72. package/dist/agents/metis.js +117 -0
  73. package/dist/agents/metis.js.map +1 -0
  74. package/dist/agents/momus.d.ts +12 -0
  75. package/dist/agents/momus.d.ts.map +1 -0
  76. package/dist/agents/momus.js +128 -0
  77. package/dist/agents/momus.js.map +1 -0
  78. package/dist/agents/multimodal-looker.d.ts +11 -0
  79. package/dist/agents/multimodal-looker.d.ts.map +1 -0
  80. package/dist/agents/multimodal-looker.js +70 -0
  81. package/dist/agents/multimodal-looker.js.map +1 -0
  82. package/dist/agents/oracle.d.ts +13 -0
  83. package/dist/agents/oracle.d.ts.map +1 -0
  84. package/dist/agents/oracle.js +191 -0
  85. package/dist/agents/oracle.js.map +1 -0
  86. package/dist/agents/orchestrator-sisyphus.d.ts +11 -0
  87. package/dist/agents/orchestrator-sisyphus.d.ts.map +1 -0
  88. package/dist/agents/orchestrator-sisyphus.js +115 -0
  89. package/dist/agents/orchestrator-sisyphus.js.map +1 -0
  90. package/dist/agents/prometheus.d.ts +12 -0
  91. package/dist/agents/prometheus.d.ts.map +1 -0
  92. package/dist/agents/prometheus.js +195 -0
  93. package/dist/agents/prometheus.js.map +1 -0
  94. package/dist/agents/sisyphus-junior.d.ts +12 -0
  95. package/dist/agents/sisyphus-junior.d.ts.map +1 -0
  96. package/dist/agents/sisyphus-junior.js +93 -0
  97. package/dist/agents/sisyphus-junior.js.map +1 -0
  98. package/dist/cli/analytics.js +0 -0
  99. package/dist/cli/components/CostDashboard.d.ts +15 -0
  100. package/dist/cli/components/CostDashboard.d.ts.map +1 -0
  101. package/dist/cli/components/CostDashboard.js +15 -0
  102. package/dist/cli/components/CostDashboard.js.map +1 -0
  103. package/dist/cli/components/LiveStats.d.ts +16 -0
  104. package/dist/cli/components/LiveStats.d.ts.map +1 -0
  105. package/dist/cli/components/LiveStats.js +16 -0
  106. package/dist/cli/components/LiveStats.js.map +1 -0
  107. package/dist/cli/components/SessionBrowser.d.ts +14 -0
  108. package/dist/cli/components/SessionBrowser.d.ts.map +1 -0
  109. package/dist/cli/components/SessionBrowser.js +14 -0
  110. package/dist/cli/components/SessionBrowser.js.map +1 -0
  111. package/dist/cli/index.js +0 -0
  112. package/dist/cli/tui.d.ts +21 -0
  113. package/dist/cli/tui.d.ts.map +1 -0
  114. package/dist/cli/tui.js +21 -0
  115. package/dist/cli/tui.js.map +1 -0
  116. package/dist/compatibility/discovery.d.ts.map +1 -1
  117. package/dist/compatibility/discovery.js +3 -1
  118. package/dist/compatibility/discovery.js.map +1 -1
  119. package/dist/hooks/autopilot/prompts.d.ts.map +1 -1
  120. package/dist/hooks/autopilot/prompts.js +17 -3
  121. package/dist/hooks/autopilot/prompts.js.map +1 -1
  122. package/dist/hooks/autopilot/signals.d.ts +20 -0
  123. package/dist/hooks/autopilot/signals.d.ts.map +1 -0
  124. package/dist/hooks/autopilot/signals.js +75 -0
  125. package/dist/hooks/autopilot/signals.js.map +1 -0
  126. package/dist/hooks/autopilot/summary.d.ts +27 -0
  127. package/dist/hooks/autopilot/summary.d.ts.map +1 -0
  128. package/dist/hooks/autopilot/summary.js +160 -0
  129. package/dist/hooks/autopilot/summary.js.map +1 -0
  130. package/dist/hooks/autopilot/transition.d.ts +39 -0
  131. package/dist/hooks/autopilot/transition.d.ts.map +1 -0
  132. package/dist/hooks/autopilot/transition.js +216 -0
  133. package/dist/hooks/autopilot/transition.js.map +1 -0
  134. package/dist/hooks/context-window-limit-recovery/constants.d.ts +28 -0
  135. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +1 -0
  136. package/dist/hooks/context-window-limit-recovery/constants.js +85 -0
  137. package/dist/hooks/context-window-limit-recovery/constants.js.map +1 -0
  138. package/dist/hooks/context-window-limit-recovery/index.d.ts +62 -0
  139. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +1 -0
  140. package/dist/hooks/context-window-limit-recovery/index.js +201 -0
  141. package/dist/hooks/context-window-limit-recovery/index.js.map +1 -0
  142. package/dist/hooks/context-window-limit-recovery/parser.d.ts +31 -0
  143. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +1 -0
  144. package/dist/hooks/context-window-limit-recovery/parser.js +241 -0
  145. package/dist/hooks/context-window-limit-recovery/parser.js.map +1 -0
  146. package/dist/hooks/context-window-limit-recovery/types.d.ts +84 -0
  147. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +1 -0
  148. package/dist/hooks/context-window-limit-recovery/types.js +34 -0
  149. package/dist/hooks/context-window-limit-recovery/types.js.map +1 -0
  150. package/dist/hooks/edit-error-recovery/index.d.ts +62 -0
  151. package/dist/hooks/edit-error-recovery/index.d.ts.map +1 -0
  152. package/dist/hooks/edit-error-recovery/index.js +89 -0
  153. package/dist/hooks/edit-error-recovery/index.js.map +1 -0
  154. package/dist/hooks/github-auto-responder/classifier.d.ts +43 -0
  155. package/dist/hooks/github-auto-responder/classifier.d.ts.map +1 -0
  156. package/dist/hooks/github-auto-responder/classifier.js +150 -0
  157. package/dist/hooks/github-auto-responder/classifier.js.map +1 -0
  158. package/dist/hooks/github-auto-responder/config.d.ts +109 -0
  159. package/dist/hooks/github-auto-responder/config.d.ts.map +1 -0
  160. package/dist/hooks/github-auto-responder/config.js +69 -0
  161. package/dist/hooks/github-auto-responder/config.js.map +1 -0
  162. package/dist/hooks/github-auto-responder/constants.d.ts +45 -0
  163. package/dist/hooks/github-auto-responder/constants.d.ts.map +1 -0
  164. package/dist/hooks/github-auto-responder/constants.js +60 -0
  165. package/dist/hooks/github-auto-responder/constants.js.map +1 -0
  166. package/dist/hooks/github-auto-responder/filters.d.ts +95 -0
  167. package/dist/hooks/github-auto-responder/filters.d.ts.map +1 -0
  168. package/dist/hooks/github-auto-responder/filters.js +174 -0
  169. package/dist/hooks/github-auto-responder/filters.js.map +1 -0
  170. package/dist/hooks/github-auto-responder/github-client.d.ts +65 -0
  171. package/dist/hooks/github-auto-responder/github-client.d.ts.map +1 -0
  172. package/dist/hooks/github-auto-responder/github-client.js +128 -0
  173. package/dist/hooks/github-auto-responder/github-client.js.map +1 -0
  174. package/dist/hooks/github-auto-responder/idempotency.d.ts +68 -0
  175. package/dist/hooks/github-auto-responder/idempotency.d.ts.map +1 -0
  176. package/dist/hooks/github-auto-responder/idempotency.js +147 -0
  177. package/dist/hooks/github-auto-responder/idempotency.js.map +1 -0
  178. package/dist/hooks/github-auto-responder/index.d.ts +140 -0
  179. package/dist/hooks/github-auto-responder/index.d.ts.map +1 -0
  180. package/dist/hooks/github-auto-responder/index.js +145 -0
  181. package/dist/hooks/github-auto-responder/index.js.map +1 -0
  182. package/dist/hooks/github-auto-responder/persona.d.ts +40 -0
  183. package/dist/hooks/github-auto-responder/persona.d.ts.map +1 -0
  184. package/dist/hooks/github-auto-responder/persona.js +99 -0
  185. package/dist/hooks/github-auto-responder/persona.js.map +1 -0
  186. package/dist/hooks/github-auto-responder/responder.d.ts +122 -0
  187. package/dist/hooks/github-auto-responder/responder.d.ts.map +1 -0
  188. package/dist/hooks/github-auto-responder/responder.js +264 -0
  189. package/dist/hooks/github-auto-responder/responder.js.map +1 -0
  190. package/dist/hooks/github-auto-responder/server.d.ts +140 -0
  191. package/dist/hooks/github-auto-responder/server.d.ts.map +1 -0
  192. package/dist/hooks/github-auto-responder/server.js +301 -0
  193. package/dist/hooks/github-auto-responder/server.js.map +1 -0
  194. package/dist/hooks/github-auto-responder/signature.d.ts +34 -0
  195. package/dist/hooks/github-auto-responder/signature.d.ts.map +1 -0
  196. package/dist/hooks/github-auto-responder/signature.js +79 -0
  197. package/dist/hooks/github-auto-responder/signature.js.map +1 -0
  198. package/dist/hooks/github-auto-responder/templates.d.ts +16 -0
  199. package/dist/hooks/github-auto-responder/templates.d.ts.map +1 -0
  200. package/dist/hooks/github-auto-responder/templates.js +93 -0
  201. package/dist/hooks/github-auto-responder/templates.js.map +1 -0
  202. package/dist/hooks/github-auto-responder/types.d.ts +246 -0
  203. package/dist/hooks/github-auto-responder/types.d.ts.map +1 -0
  204. package/dist/hooks/github-auto-responder/types.js +7 -0
  205. package/dist/hooks/github-auto-responder/types.js.map +1 -0
  206. package/dist/hooks/learned-skills/config.d.ts +53 -0
  207. package/dist/hooks/learned-skills/config.d.ts.map +1 -0
  208. package/dist/hooks/learned-skills/config.js +103 -0
  209. package/dist/hooks/learned-skills/config.js.map +1 -0
  210. package/dist/hooks/learned-skills/constants.d.ts +24 -0
  211. package/dist/hooks/learned-skills/constants.d.ts.map +1 -0
  212. package/dist/hooks/learned-skills/constants.js +26 -0
  213. package/dist/hooks/learned-skills/constants.js.map +1 -0
  214. package/dist/hooks/learned-skills/detection-hook.d.ts +39 -0
  215. package/dist/hooks/learned-skills/detection-hook.d.ts.map +1 -0
  216. package/dist/hooks/learned-skills/detection-hook.js +83 -0
  217. package/dist/hooks/learned-skills/detection-hook.js.map +1 -0
  218. package/dist/hooks/learned-skills/detector.d.ts +30 -0
  219. package/dist/hooks/learned-skills/detector.d.ts.map +1 -0
  220. package/dist/hooks/learned-skills/detector.js +150 -0
  221. package/dist/hooks/learned-skills/detector.js.map +1 -0
  222. package/dist/hooks/learned-skills/finder.d.ts +21 -0
  223. package/dist/hooks/learned-skills/finder.d.ts.map +1 -0
  224. package/dist/hooks/learned-skills/finder.js +117 -0
  225. package/dist/hooks/learned-skills/finder.js.map +1 -0
  226. package/dist/hooks/learned-skills/index.d.ts +62 -0
  227. package/dist/hooks/learned-skills/index.d.ts.map +1 -0
  228. package/dist/hooks/learned-skills/index.js +137 -0
  229. package/dist/hooks/learned-skills/index.js.map +1 -0
  230. package/dist/hooks/learned-skills/loader.d.ts +20 -0
  231. package/dist/hooks/learned-skills/loader.d.ts.map +1 -0
  232. package/dist/hooks/learned-skills/loader.js +107 -0
  233. package/dist/hooks/learned-skills/loader.js.map +1 -0
  234. package/dist/hooks/learned-skills/parser.d.ts +21 -0
  235. package/dist/hooks/learned-skills/parser.d.ts.map +1 -0
  236. package/dist/hooks/learned-skills/parser.js +190 -0
  237. package/dist/hooks/learned-skills/parser.js.map +1 -0
  238. package/dist/hooks/learned-skills/promotion.d.ts +29 -0
  239. package/dist/hooks/learned-skills/promotion.d.ts.map +1 -0
  240. package/dist/hooks/learned-skills/promotion.js +87 -0
  241. package/dist/hooks/learned-skills/promotion.js.map +1 -0
  242. package/dist/hooks/learned-skills/types.d.ts +109 -0
  243. package/dist/hooks/learned-skills/types.d.ts.map +1 -0
  244. package/dist/hooks/learned-skills/types.js +8 -0
  245. package/dist/hooks/learned-skills/types.js.map +1 -0
  246. package/dist/hooks/learned-skills/validator.d.ts +15 -0
  247. package/dist/hooks/learned-skills/validator.d.ts.map +1 -0
  248. package/dist/hooks/learned-skills/validator.js +87 -0
  249. package/dist/hooks/learned-skills/validator.js.map +1 -0
  250. package/dist/hooks/learned-skills/writer.d.ts +27 -0
  251. package/dist/hooks/learned-skills/writer.d.ts.map +1 -0
  252. package/dist/hooks/learned-skills/writer.js +126 -0
  253. package/dist/hooks/learned-skills/writer.js.map +1 -0
  254. package/dist/hooks/mnemosyne/config.d.ts +53 -0
  255. package/dist/hooks/mnemosyne/config.d.ts.map +1 -0
  256. package/dist/hooks/mnemosyne/config.js +103 -0
  257. package/dist/hooks/mnemosyne/config.js.map +1 -0
  258. package/dist/hooks/mnemosyne/constants.d.ts +24 -0
  259. package/dist/hooks/mnemosyne/constants.d.ts.map +1 -0
  260. package/dist/hooks/mnemosyne/constants.js +26 -0
  261. package/dist/hooks/mnemosyne/constants.js.map +1 -0
  262. package/dist/hooks/mnemosyne/detection-hook.d.ts +39 -0
  263. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +1 -0
  264. package/dist/hooks/mnemosyne/detection-hook.js +83 -0
  265. package/dist/hooks/mnemosyne/detection-hook.js.map +1 -0
  266. package/dist/hooks/mnemosyne/detector.d.ts +30 -0
  267. package/dist/hooks/mnemosyne/detector.d.ts.map +1 -0
  268. package/dist/hooks/mnemosyne/detector.js +150 -0
  269. package/dist/hooks/mnemosyne/detector.js.map +1 -0
  270. package/dist/hooks/mnemosyne/finder.d.ts +21 -0
  271. package/dist/hooks/mnemosyne/finder.d.ts.map +1 -0
  272. package/dist/hooks/mnemosyne/finder.js +117 -0
  273. package/dist/hooks/mnemosyne/finder.js.map +1 -0
  274. package/dist/hooks/mnemosyne/index.d.ts +62 -0
  275. package/dist/hooks/mnemosyne/index.d.ts.map +1 -0
  276. package/dist/hooks/mnemosyne/index.js +137 -0
  277. package/dist/hooks/mnemosyne/index.js.map +1 -0
  278. package/dist/hooks/mnemosyne/loader.d.ts +20 -0
  279. package/dist/hooks/mnemosyne/loader.d.ts.map +1 -0
  280. package/dist/hooks/mnemosyne/loader.js +113 -0
  281. package/dist/hooks/mnemosyne/loader.js.map +1 -0
  282. package/dist/hooks/mnemosyne/parser.d.ts +21 -0
  283. package/dist/hooks/mnemosyne/parser.d.ts.map +1 -0
  284. package/dist/hooks/mnemosyne/parser.js +190 -0
  285. package/dist/hooks/mnemosyne/parser.js.map +1 -0
  286. package/dist/hooks/mnemosyne/promotion.d.ts +29 -0
  287. package/dist/hooks/mnemosyne/promotion.d.ts.map +1 -0
  288. package/dist/hooks/mnemosyne/promotion.js +87 -0
  289. package/dist/hooks/mnemosyne/promotion.js.map +1 -0
  290. package/dist/hooks/mnemosyne/types.d.ts +109 -0
  291. package/dist/hooks/mnemosyne/types.d.ts.map +1 -0
  292. package/dist/hooks/mnemosyne/types.js +8 -0
  293. package/dist/hooks/mnemosyne/types.js.map +1 -0
  294. package/dist/hooks/mnemosyne/validator.d.ts +15 -0
  295. package/dist/hooks/mnemosyne/validator.d.ts.map +1 -0
  296. package/dist/hooks/mnemosyne/validator.js +87 -0
  297. package/dist/hooks/mnemosyne/validator.js.map +1 -0
  298. package/dist/hooks/mnemosyne/writer.d.ts +27 -0
  299. package/dist/hooks/mnemosyne/writer.d.ts.map +1 -0
  300. package/dist/hooks/mnemosyne/writer.js +126 -0
  301. package/dist/hooks/mnemosyne/writer.js.map +1 -0
  302. package/dist/hooks/ralph-loop/index.d.ts +116 -0
  303. package/dist/hooks/ralph-loop/index.d.ts.map +1 -0
  304. package/dist/hooks/ralph-loop/index.js +322 -0
  305. package/dist/hooks/ralph-loop/index.js.map +1 -0
  306. package/dist/hooks/ralph-prd/index.d.ts +130 -0
  307. package/dist/hooks/ralph-prd/index.d.ts.map +1 -0
  308. package/dist/hooks/ralph-prd/index.js +310 -0
  309. package/dist/hooks/ralph-prd/index.js.map +1 -0
  310. package/dist/hooks/ralph-progress/index.d.ts +102 -0
  311. package/dist/hooks/ralph-progress/index.d.ts.map +1 -0
  312. package/dist/hooks/ralph-progress/index.js +408 -0
  313. package/dist/hooks/ralph-progress/index.js.map +1 -0
  314. package/dist/hooks/ralph-verifier/index.d.ts +72 -0
  315. package/dist/hooks/ralph-verifier/index.d.ts.map +1 -0
  316. package/dist/hooks/ralph-verifier/index.js +223 -0
  317. package/dist/hooks/ralph-verifier/index.js.map +1 -0
  318. package/dist/hooks/session-recovery/constants.d.ts +56 -0
  319. package/dist/hooks/session-recovery/constants.d.ts.map +1 -0
  320. package/dist/hooks/session-recovery/constants.js +78 -0
  321. package/dist/hooks/session-recovery/constants.js.map +1 -0
  322. package/dist/hooks/session-recovery/index.d.ts +53 -0
  323. package/dist/hooks/session-recovery/index.d.ts.map +1 -0
  324. package/dist/hooks/session-recovery/index.js +321 -0
  325. package/dist/hooks/session-recovery/index.js.map +1 -0
  326. package/dist/hooks/session-recovery/storage.d.ts +76 -0
  327. package/dist/hooks/session-recovery/storage.d.ts.map +1 -0
  328. package/dist/hooks/session-recovery/storage.js +383 -0
  329. package/dist/hooks/session-recovery/storage.js.map +1 -0
  330. package/dist/hooks/session-recovery/types.d.ts +145 -0
  331. package/dist/hooks/session-recovery/types.d.ts.map +1 -0
  332. package/dist/hooks/session-recovery/types.js +8 -0
  333. package/dist/hooks/session-recovery/types.js.map +1 -0
  334. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +23 -0
  335. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +1 -0
  336. package/dist/hooks/sisyphus-orchestrator/constants.js +142 -0
  337. package/dist/hooks/sisyphus-orchestrator/constants.js.map +1 -0
  338. package/dist/hooks/sisyphus-orchestrator/index.d.ts +113 -0
  339. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +1 -0
  340. package/dist/hooks/sisyphus-orchestrator/index.js +309 -0
  341. package/dist/hooks/sisyphus-orchestrator/index.js.map +1 -0
  342. package/dist/hooks/ultraqa-loop/index.d.ts +94 -0
  343. package/dist/hooks/ultraqa-loop/index.d.ts.map +1 -0
  344. package/dist/hooks/ultraqa-loop/index.js +216 -0
  345. package/dist/hooks/ultraqa-loop/index.js.map +1 -0
  346. package/dist/hooks/ultrawork-state/index.d.ts +62 -0
  347. package/dist/hooks/ultrawork-state/index.d.ts.map +1 -0
  348. package/dist/hooks/ultrawork-state/index.js +208 -0
  349. package/dist/hooks/ultrawork-state/index.js.map +1 -0
  350. package/dist/hud/sisyphus-state.d.ts +31 -0
  351. package/dist/hud/sisyphus-state.d.ts.map +1 -0
  352. package/dist/hud/sisyphus-state.js +163 -0
  353. package/dist/hud/sisyphus-state.js.map +1 -0
  354. package/dist/installer/index.d.ts +1 -1
  355. package/dist/installer/index.js +1 -1
  356. package/package.json +1 -1
  357. package/scripts/github-webhook-server.ts +141 -0
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Sisyphus HUD - State Readers
3
+ *
4
+ * Read ralph, ultrawork, and PRD state from existing Sisyphus files.
5
+ * These are read-only functions that don't modify the state files.
6
+ */
7
+ import { existsSync, readFileSync, statSync } from 'fs';
8
+ import { join } from 'path';
9
+ /**
10
+ * Maximum age for state files to be considered "active".
11
+ * Files older than this are treated as stale/abandoned.
12
+ */
13
+ const MAX_STATE_AGE_MS = 2 * 60 * 60 * 1000; // 2 hours
14
+ /**
15
+ * Check if a state file is stale based on file modification time.
16
+ */
17
+ function isStateFileStale(filePath) {
18
+ try {
19
+ const stat = statSync(filePath);
20
+ const age = Date.now() - stat.mtimeMs;
21
+ return age > MAX_STATE_AGE_MS;
22
+ }
23
+ catch {
24
+ return true; // Treat errors as stale
25
+ }
26
+ }
27
+ /**
28
+ * Read Ralph Loop state for HUD display.
29
+ * Returns null if no state file exists or on error.
30
+ */
31
+ export function readRalphStateForHud(directory) {
32
+ const stateFile = join(directory, '.sisyphus', 'ralph-state.json');
33
+ if (!existsSync(stateFile)) {
34
+ return null;
35
+ }
36
+ // Check for stale state file (abandoned session)
37
+ if (isStateFileStale(stateFile)) {
38
+ return null;
39
+ }
40
+ try {
41
+ const content = readFileSync(stateFile, 'utf-8');
42
+ const state = JSON.parse(content);
43
+ if (!state.active) {
44
+ return null;
45
+ }
46
+ return {
47
+ active: state.active,
48
+ iteration: state.iteration,
49
+ maxIterations: state.max_iterations,
50
+ prdMode: state.prd_mode,
51
+ currentStoryId: state.current_story_id,
52
+ };
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Read Ultrawork state for HUD display.
60
+ * Checks both local .sisyphus and global ~/.claude locations.
61
+ */
62
+ export function readUltraworkStateForHud(directory) {
63
+ // Check local state first
64
+ const localFile = join(directory, '.sisyphus', 'ultrawork-state.json');
65
+ let state = null;
66
+ let stateFile = null;
67
+ if (existsSync(localFile) && !isStateFileStale(localFile)) {
68
+ try {
69
+ const content = readFileSync(localFile, 'utf-8');
70
+ state = JSON.parse(content);
71
+ stateFile = localFile;
72
+ }
73
+ catch {
74
+ // Try global
75
+ }
76
+ }
77
+ // Check global state if local not found or stale
78
+ if (!state) {
79
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
80
+ const globalFile = join(homeDir, '.claude', 'ultrawork-state.json');
81
+ if (existsSync(globalFile) && !isStateFileStale(globalFile)) {
82
+ try {
83
+ const content = readFileSync(globalFile, 'utf-8');
84
+ state = JSON.parse(content);
85
+ stateFile = globalFile;
86
+ }
87
+ catch {
88
+ return null;
89
+ }
90
+ }
91
+ }
92
+ if (!state || !state.active) {
93
+ return null;
94
+ }
95
+ return {
96
+ active: state.active,
97
+ reinforcementCount: state.reinforcement_count,
98
+ };
99
+ }
100
+ /**
101
+ * Read PRD state for HUD display.
102
+ * Checks both root prd.json and .sisyphus/prd.json.
103
+ */
104
+ export function readPrdStateForHud(directory) {
105
+ // Check root first
106
+ let prdPath = join(directory, 'prd.json');
107
+ if (!existsSync(prdPath)) {
108
+ // Check .sisyphus
109
+ prdPath = join(directory, '.sisyphus', 'prd.json');
110
+ if (!existsSync(prdPath)) {
111
+ return null;
112
+ }
113
+ }
114
+ try {
115
+ const content = readFileSync(prdPath, 'utf-8');
116
+ const prd = JSON.parse(content);
117
+ if (!prd.userStories || !Array.isArray(prd.userStories)) {
118
+ return null;
119
+ }
120
+ const stories = prd.userStories;
121
+ const completed = stories.filter((s) => s.passes).length;
122
+ const total = stories.length;
123
+ // Find current story (first incomplete, sorted by priority)
124
+ const incomplete = stories
125
+ .filter((s) => !s.passes)
126
+ .sort((a, b) => a.priority - b.priority);
127
+ return {
128
+ currentStoryId: incomplete[0]?.id || null,
129
+ completed,
130
+ total,
131
+ };
132
+ }
133
+ catch {
134
+ return null;
135
+ }
136
+ }
137
+ // ============================================================================
138
+ // Combined State Check
139
+ // ============================================================================
140
+ /**
141
+ * Check if any Sisyphus mode is currently active
142
+ */
143
+ export function isAnyModeActive(directory) {
144
+ const ralph = readRalphStateForHud(directory);
145
+ const ultrawork = readUltraworkStateForHud(directory);
146
+ return (ralph?.active ?? false) || (ultrawork?.active ?? false);
147
+ }
148
+ /**
149
+ * Get active skill names for display
150
+ */
151
+ export function getActiveSkills(directory) {
152
+ const skills = [];
153
+ const ralph = readRalphStateForHud(directory);
154
+ if (ralph?.active) {
155
+ skills.push('ralph');
156
+ }
157
+ const ultrawork = readUltraworkStateForHud(directory);
158
+ if (ultrawork?.active) {
159
+ skills.push('ultrawork');
160
+ }
161
+ return skills;
162
+ }
163
+ //# sourceMappingURL=sisyphus-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sisyphus-state.js","sourceRoot":"","sources":["../../src/hud/sisyphus-state.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export declare const VERSION_FILE: string;
31
31
  */
32
32
  export declare const CORE_COMMANDS: string[];
33
33
  /** Current version */
34
- export declare const VERSION = "3.7.0";
34
+ export declare const VERSION = "3.7.4";
35
35
  /** Installation result */
36
36
  export interface InstallResult {
37
37
  success: boolean;
@@ -37,7 +37,7 @@ export const VERSION_FILE = join(CLAUDE_CONFIG_DIR, '.omc-version.json');
37
37
  */
38
38
  export const CORE_COMMANDS = [];
39
39
  /** Current version */
40
- export const VERSION = '3.7.0';
40
+ export const VERSION = '3.7.4';
41
41
  /**
42
42
  * Check if the current Node.js version meets the minimum requirement
43
43
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-claude-sisyphus",
3
- "version": "3.7.3",
3
+ "version": "3.7.4",
4
4
  "description": "Multi-agent orchestration system for Claude Code - Inspired by oh-my-opencode",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env tsx
2
+
3
+ /**
4
+ * GitHub Webhook Server - Standalone Entry Point
5
+ *
6
+ * Starts an HTTP server that listens for GitHub webhook events and
7
+ * processes them through the auto-responder pipeline.
8
+ *
9
+ * Usage: ./scripts/github-webhook-server.ts
10
+ *
11
+ * Environment Variables:
12
+ * - GITHUB_WEBHOOK_SECRET: Secret for webhook payload verification
13
+ * - GITHUB_TOKEN: GitHub API token for posting comments
14
+ * - ANTHROPIC_API_KEY: Anthropic API key for response generation
15
+ * - GITHUB_SELF_LOGIN: GitHub username of the bot (for self-reply filtering)
16
+ * - AUTO_RESPONDER_MODE: 'draft' or 'auto' (default: 'draft')
17
+ * - AUTO_RESPONDER_PORT: Server port (default: 3000)
18
+ */
19
+
20
+ import { createAutoResponder } from '../src/hooks/github-auto-responder/responder.js';
21
+ import { loadConfig } from '../src/hooks/github-auto-responder/config.js';
22
+ import { verifySignature } from '../src/hooks/github-auto-responder/signature.js';
23
+ import type { WebhookPayload } from '../src/hooks/github-auto-responder/types.js';
24
+
25
+ /**
26
+ * Main server function - starts HTTP listener and initializes auto-responder
27
+ */
28
+ async function main(): Promise<void> {
29
+ try {
30
+ console.log('[webhook-server] Starting GitHub webhook server...');
31
+
32
+ // Load configuration from environment
33
+ const config = loadConfig();
34
+ console.log(`[webhook-server] Loaded config: port=${config.port}, mode=${config.mode}`);
35
+
36
+ // Create and initialize auto-responder
37
+ const responder = createAutoResponder(config);
38
+ await responder.init();
39
+ console.log('[webhook-server] Auto-responder initialized');
40
+
41
+ // Create HTTP server to listen for webhooks
42
+ const server = (
43
+ await import('http')
44
+ ).createServer(async (req, res) => {
45
+ // Only handle POST requests to /webhook
46
+ if (req.method !== 'POST' || req.url !== '/webhook') {
47
+ res.writeHead(404, { 'Content-Type': 'application/json' });
48
+ res.end(JSON.stringify({ error: 'Not found' }));
49
+ return;
50
+ }
51
+
52
+ // Read request body
53
+ let body = '';
54
+ req.on('data', (chunk) => {
55
+ body += chunk.toString();
56
+ });
57
+
58
+ req.on('end', async () => {
59
+ try {
60
+ // Verify webhook signature
61
+ const signature = (
62
+ req.headers['x-hub-signature-256'] as string
63
+ ) || '';
64
+ if (!verifySignature(Buffer.from(body), signature, config.webhookSecret)) {
65
+ res.writeHead(401, { 'Content-Type': 'application/json' });
66
+ res.end(
67
+ JSON.stringify({ error: 'Invalid signature' }),
68
+ );
69
+ return;
70
+ }
71
+
72
+ // Parse payload
73
+ const payload: WebhookPayload = JSON.parse(body);
74
+ const deliveryId = (
75
+ req.headers['x-github-delivery'] as string
76
+ ) || 'unknown';
77
+
78
+ console.log(
79
+ `[webhook-server] Received webhook: delivery=${deliveryId}, action=${payload.action}`,
80
+ );
81
+
82
+ // Process webhook
83
+ const result = await responder.processWebhook(deliveryId, payload);
84
+
85
+ // Send response
86
+ res.writeHead(200, { 'Content-Type': 'application/json' });
87
+ res.end(JSON.stringify(result));
88
+ } catch (error) {
89
+ console.error('[webhook-server] Error processing webhook:', error);
90
+ res.writeHead(500, { 'Content-Type': 'application/json' });
91
+ res.end(
92
+ JSON.stringify({
93
+ error: 'Internal server error',
94
+ message: error instanceof Error ? error.message : 'Unknown error',
95
+ }),
96
+ );
97
+ }
98
+ });
99
+ });
100
+
101
+ // Handle unhandled rejections
102
+ process.on('unhandledRejection', (reason, promise) => {
103
+ console.error('[webhook-server] Unhandled rejection:', reason);
104
+ });
105
+
106
+ // Handle graceful shutdown
107
+ process.on('SIGTERM', async () => {
108
+ console.log('[webhook-server] SIGTERM received, shutting down...');
109
+ server.close(async () => {
110
+ await responder.close();
111
+ process.exit(0);
112
+ });
113
+ });
114
+
115
+ process.on('SIGINT', async () => {
116
+ console.log('[webhook-server] SIGINT received, shutting down...');
117
+ server.close(async () => {
118
+ await responder.close();
119
+ process.exit(0);
120
+ });
121
+ });
122
+
123
+ // Start listening
124
+ server.listen(config.port, () => {
125
+ console.log(
126
+ `[webhook-server] Server started on http://localhost:${config.port}`,
127
+ );
128
+ console.log(`[webhook-server] Listening for webhooks at /webhook`);
129
+ console.log(`[webhook-server] Mode: ${config.mode}`);
130
+ });
131
+ } catch (error) {
132
+ console.error('[webhook-server] Fatal error:', error);
133
+ process.exit(1);
134
+ }
135
+ }
136
+
137
+ // Run main function
138
+ main().catch((error) => {
139
+ console.error('[webhook-server] Uncaught error:', error);
140
+ process.exit(1);
141
+ });