oh-my-claude-sisyphus 3.7.6 → 3.7.8

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 (421) hide show
  1. package/agents/AGENTS.md +144 -0
  2. package/dist/__tests__/analytics/analytics-summary.test.d.ts +2 -0
  3. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +1 -0
  4. package/dist/__tests__/analytics/analytics-summary.test.js +267 -0
  5. package/dist/__tests__/analytics/analytics-summary.test.js.map +1 -0
  6. package/dist/__tests__/analytics/cost-estimator.test.d.ts +2 -0
  7. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +1 -0
  8. package/dist/__tests__/analytics/cost-estimator.test.js +212 -0
  9. package/dist/__tests__/analytics/cost-estimator.test.js.map +1 -0
  10. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +7 -0
  11. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +1 -0
  12. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +374 -0
  13. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +1 -0
  14. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +2 -0
  15. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +1 -0
  16. package/dist/__tests__/hud/auto-tracking.integration.test.js +12 -0
  17. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +1 -0
  18. package/dist/__tests__/learned-skills/config.test.d.ts +2 -0
  19. package/dist/__tests__/learned-skills/config.test.d.ts.map +1 -0
  20. package/dist/__tests__/learned-skills/config.test.js +37 -0
  21. package/dist/__tests__/learned-skills/config.test.js.map +1 -0
  22. package/dist/__tests__/learned-skills/detector.test.d.ts +2 -0
  23. package/dist/__tests__/learned-skills/detector.test.d.ts.map +1 -0
  24. package/dist/__tests__/learned-skills/detector.test.js +99 -0
  25. package/dist/__tests__/learned-skills/detector.test.js.map +1 -0
  26. package/dist/__tests__/learned-skills/finder.test.d.ts +2 -0
  27. package/dist/__tests__/learned-skills/finder.test.d.ts.map +1 -0
  28. package/dist/__tests__/learned-skills/finder.test.js +59 -0
  29. package/dist/__tests__/learned-skills/finder.test.js.map +1 -0
  30. package/dist/__tests__/learned-skills/loader.test.d.ts +2 -0
  31. package/dist/__tests__/learned-skills/loader.test.d.ts.map +1 -0
  32. package/dist/__tests__/learned-skills/loader.test.js +69 -0
  33. package/dist/__tests__/learned-skills/loader.test.js.map +1 -0
  34. package/dist/__tests__/learned-skills/parser.test.d.ts +2 -0
  35. package/dist/__tests__/learned-skills/parser.test.d.ts.map +1 -0
  36. package/dist/__tests__/learned-skills/parser.test.js +81 -0
  37. package/dist/__tests__/learned-skills/parser.test.js.map +1 -0
  38. package/dist/__tests__/learned-skills/validator.test.d.ts +2 -0
  39. package/dist/__tests__/learned-skills/validator.test.d.ts.map +1 -0
  40. package/dist/__tests__/learned-skills/validator.test.js +85 -0
  41. package/dist/__tests__/learned-skills/validator.test.js.map +1 -0
  42. package/dist/__tests__/omc-tools-server.test.d.ts +2 -0
  43. package/dist/__tests__/omc-tools-server.test.d.ts.map +1 -0
  44. package/dist/__tests__/omc-tools-server.test.js +52 -0
  45. package/dist/__tests__/omc-tools-server.test.js.map +1 -0
  46. package/dist/agents/architect.js +1 -1
  47. package/dist/agents/architect.js.map +1 -1
  48. package/dist/agents/codex-agents.d.ts +20 -0
  49. package/dist/agents/codex-agents.d.ts.map +1 -0
  50. package/dist/agents/codex-agents.js +36 -0
  51. package/dist/agents/codex-agents.js.map +1 -0
  52. package/dist/agents/definitions.js +13 -13
  53. package/dist/agents/definitions.js.map +1 -1
  54. package/dist/agents/document-writer.d.ts +11 -0
  55. package/dist/agents/document-writer.d.ts.map +1 -0
  56. package/dist/agents/document-writer.js +209 -0
  57. package/dist/agents/document-writer.js.map +1 -0
  58. package/dist/agents/executor.js +1 -1
  59. package/dist/agents/executor.js.map +1 -1
  60. package/dist/agents/explore.js +1 -1
  61. package/dist/agents/explore.js.map +1 -1
  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/qa-tester.js +1 -1
  95. package/dist/agents/qa-tester.js.map +1 -1
  96. package/dist/agents/sisyphus-junior.d.ts +12 -0
  97. package/dist/agents/sisyphus-junior.d.ts.map +1 -0
  98. package/dist/agents/sisyphus-junior.js +93 -0
  99. package/dist/agents/sisyphus-junior.js.map +1 -0
  100. package/dist/cli/analytics.js +0 -0
  101. package/dist/cli/components/CostDashboard.d.ts +15 -0
  102. package/dist/cli/components/CostDashboard.d.ts.map +1 -0
  103. package/dist/cli/components/CostDashboard.js +15 -0
  104. package/dist/cli/components/CostDashboard.js.map +1 -0
  105. package/dist/cli/components/LiveStats.d.ts +16 -0
  106. package/dist/cli/components/LiveStats.d.ts.map +1 -0
  107. package/dist/cli/components/LiveStats.js +16 -0
  108. package/dist/cli/components/LiveStats.js.map +1 -0
  109. package/dist/cli/components/SessionBrowser.d.ts +14 -0
  110. package/dist/cli/components/SessionBrowser.d.ts.map +1 -0
  111. package/dist/cli/components/SessionBrowser.js +14 -0
  112. package/dist/cli/components/SessionBrowser.js.map +1 -0
  113. package/dist/cli/index.js +0 -0
  114. package/dist/cli/tui.d.ts +21 -0
  115. package/dist/cli/tui.d.ts.map +1 -0
  116. package/dist/cli/tui.js +21 -0
  117. package/dist/cli/tui.js.map +1 -0
  118. package/dist/hooks/autopilot/signals.d.ts +20 -0
  119. package/dist/hooks/autopilot/signals.d.ts.map +1 -0
  120. package/dist/hooks/autopilot/signals.js +75 -0
  121. package/dist/hooks/autopilot/signals.js.map +1 -0
  122. package/dist/hooks/autopilot/summary.d.ts +27 -0
  123. package/dist/hooks/autopilot/summary.d.ts.map +1 -0
  124. package/dist/hooks/autopilot/summary.js +160 -0
  125. package/dist/hooks/autopilot/summary.js.map +1 -0
  126. package/dist/hooks/autopilot/transition.d.ts +39 -0
  127. package/dist/hooks/autopilot/transition.d.ts.map +1 -0
  128. package/dist/hooks/autopilot/transition.js +216 -0
  129. package/dist/hooks/autopilot/transition.js.map +1 -0
  130. package/dist/hooks/context-window-limit-recovery/constants.d.ts +28 -0
  131. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +1 -0
  132. package/dist/hooks/context-window-limit-recovery/constants.js +85 -0
  133. package/dist/hooks/context-window-limit-recovery/constants.js.map +1 -0
  134. package/dist/hooks/context-window-limit-recovery/index.d.ts +62 -0
  135. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +1 -0
  136. package/dist/hooks/context-window-limit-recovery/index.js +201 -0
  137. package/dist/hooks/context-window-limit-recovery/index.js.map +1 -0
  138. package/dist/hooks/context-window-limit-recovery/parser.d.ts +31 -0
  139. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +1 -0
  140. package/dist/hooks/context-window-limit-recovery/parser.js +241 -0
  141. package/dist/hooks/context-window-limit-recovery/parser.js.map +1 -0
  142. package/dist/hooks/context-window-limit-recovery/types.d.ts +84 -0
  143. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +1 -0
  144. package/dist/hooks/context-window-limit-recovery/types.js +34 -0
  145. package/dist/hooks/context-window-limit-recovery/types.js.map +1 -0
  146. package/dist/hooks/edit-error-recovery/index.d.ts +62 -0
  147. package/dist/hooks/edit-error-recovery/index.d.ts.map +1 -0
  148. package/dist/hooks/edit-error-recovery/index.js +89 -0
  149. package/dist/hooks/edit-error-recovery/index.js.map +1 -0
  150. package/dist/hooks/github-auto-responder/classifier.d.ts +43 -0
  151. package/dist/hooks/github-auto-responder/classifier.d.ts.map +1 -0
  152. package/dist/hooks/github-auto-responder/classifier.js +150 -0
  153. package/dist/hooks/github-auto-responder/classifier.js.map +1 -0
  154. package/dist/hooks/github-auto-responder/config.d.ts +109 -0
  155. package/dist/hooks/github-auto-responder/config.d.ts.map +1 -0
  156. package/dist/hooks/github-auto-responder/config.js +69 -0
  157. package/dist/hooks/github-auto-responder/config.js.map +1 -0
  158. package/dist/hooks/github-auto-responder/constants.d.ts +45 -0
  159. package/dist/hooks/github-auto-responder/constants.d.ts.map +1 -0
  160. package/dist/hooks/github-auto-responder/constants.js +60 -0
  161. package/dist/hooks/github-auto-responder/constants.js.map +1 -0
  162. package/dist/hooks/github-auto-responder/filters.d.ts +95 -0
  163. package/dist/hooks/github-auto-responder/filters.d.ts.map +1 -0
  164. package/dist/hooks/github-auto-responder/filters.js +174 -0
  165. package/dist/hooks/github-auto-responder/filters.js.map +1 -0
  166. package/dist/hooks/github-auto-responder/github-client.d.ts +65 -0
  167. package/dist/hooks/github-auto-responder/github-client.d.ts.map +1 -0
  168. package/dist/hooks/github-auto-responder/github-client.js +128 -0
  169. package/dist/hooks/github-auto-responder/github-client.js.map +1 -0
  170. package/dist/hooks/github-auto-responder/idempotency.d.ts +68 -0
  171. package/dist/hooks/github-auto-responder/idempotency.d.ts.map +1 -0
  172. package/dist/hooks/github-auto-responder/idempotency.js +147 -0
  173. package/dist/hooks/github-auto-responder/idempotency.js.map +1 -0
  174. package/dist/hooks/github-auto-responder/index.d.ts +140 -0
  175. package/dist/hooks/github-auto-responder/index.d.ts.map +1 -0
  176. package/dist/hooks/github-auto-responder/index.js +145 -0
  177. package/dist/hooks/github-auto-responder/index.js.map +1 -0
  178. package/dist/hooks/github-auto-responder/persona.d.ts +40 -0
  179. package/dist/hooks/github-auto-responder/persona.d.ts.map +1 -0
  180. package/dist/hooks/github-auto-responder/persona.js +99 -0
  181. package/dist/hooks/github-auto-responder/persona.js.map +1 -0
  182. package/dist/hooks/github-auto-responder/responder.d.ts +122 -0
  183. package/dist/hooks/github-auto-responder/responder.d.ts.map +1 -0
  184. package/dist/hooks/github-auto-responder/responder.js +264 -0
  185. package/dist/hooks/github-auto-responder/responder.js.map +1 -0
  186. package/dist/hooks/github-auto-responder/server.d.ts +140 -0
  187. package/dist/hooks/github-auto-responder/server.d.ts.map +1 -0
  188. package/dist/hooks/github-auto-responder/server.js +301 -0
  189. package/dist/hooks/github-auto-responder/server.js.map +1 -0
  190. package/dist/hooks/github-auto-responder/signature.d.ts +34 -0
  191. package/dist/hooks/github-auto-responder/signature.d.ts.map +1 -0
  192. package/dist/hooks/github-auto-responder/signature.js +79 -0
  193. package/dist/hooks/github-auto-responder/signature.js.map +1 -0
  194. package/dist/hooks/github-auto-responder/templates.d.ts +16 -0
  195. package/dist/hooks/github-auto-responder/templates.d.ts.map +1 -0
  196. package/dist/hooks/github-auto-responder/templates.js +93 -0
  197. package/dist/hooks/github-auto-responder/templates.js.map +1 -0
  198. package/dist/hooks/github-auto-responder/types.d.ts +246 -0
  199. package/dist/hooks/github-auto-responder/types.d.ts.map +1 -0
  200. package/dist/hooks/github-auto-responder/types.js +7 -0
  201. package/dist/hooks/github-auto-responder/types.js.map +1 -0
  202. package/dist/hooks/learned-skills/config.d.ts +53 -0
  203. package/dist/hooks/learned-skills/config.d.ts.map +1 -0
  204. package/dist/hooks/learned-skills/config.js +103 -0
  205. package/dist/hooks/learned-skills/config.js.map +1 -0
  206. package/dist/hooks/learned-skills/constants.d.ts +24 -0
  207. package/dist/hooks/learned-skills/constants.d.ts.map +1 -0
  208. package/dist/hooks/learned-skills/constants.js +26 -0
  209. package/dist/hooks/learned-skills/constants.js.map +1 -0
  210. package/dist/hooks/learned-skills/detection-hook.d.ts +39 -0
  211. package/dist/hooks/learned-skills/detection-hook.d.ts.map +1 -0
  212. package/dist/hooks/learned-skills/detection-hook.js +83 -0
  213. package/dist/hooks/learned-skills/detection-hook.js.map +1 -0
  214. package/dist/hooks/learned-skills/detector.d.ts +30 -0
  215. package/dist/hooks/learned-skills/detector.d.ts.map +1 -0
  216. package/dist/hooks/learned-skills/detector.js +150 -0
  217. package/dist/hooks/learned-skills/detector.js.map +1 -0
  218. package/dist/hooks/learned-skills/finder.d.ts +21 -0
  219. package/dist/hooks/learned-skills/finder.d.ts.map +1 -0
  220. package/dist/hooks/learned-skills/finder.js +117 -0
  221. package/dist/hooks/learned-skills/finder.js.map +1 -0
  222. package/dist/hooks/learned-skills/index.d.ts +62 -0
  223. package/dist/hooks/learned-skills/index.d.ts.map +1 -0
  224. package/dist/hooks/learned-skills/index.js +137 -0
  225. package/dist/hooks/learned-skills/index.js.map +1 -0
  226. package/dist/hooks/learned-skills/loader.d.ts +20 -0
  227. package/dist/hooks/learned-skills/loader.d.ts.map +1 -0
  228. package/dist/hooks/learned-skills/loader.js +107 -0
  229. package/dist/hooks/learned-skills/loader.js.map +1 -0
  230. package/dist/hooks/learned-skills/parser.d.ts +21 -0
  231. package/dist/hooks/learned-skills/parser.d.ts.map +1 -0
  232. package/dist/hooks/learned-skills/parser.js +190 -0
  233. package/dist/hooks/learned-skills/parser.js.map +1 -0
  234. package/dist/hooks/learned-skills/promotion.d.ts +29 -0
  235. package/dist/hooks/learned-skills/promotion.d.ts.map +1 -0
  236. package/dist/hooks/learned-skills/promotion.js +87 -0
  237. package/dist/hooks/learned-skills/promotion.js.map +1 -0
  238. package/dist/hooks/learned-skills/types.d.ts +109 -0
  239. package/dist/hooks/learned-skills/types.d.ts.map +1 -0
  240. package/dist/hooks/learned-skills/types.js +8 -0
  241. package/dist/hooks/learned-skills/types.js.map +1 -0
  242. package/dist/hooks/learned-skills/validator.d.ts +15 -0
  243. package/dist/hooks/learned-skills/validator.d.ts.map +1 -0
  244. package/dist/hooks/learned-skills/validator.js +87 -0
  245. package/dist/hooks/learned-skills/validator.js.map +1 -0
  246. package/dist/hooks/learned-skills/writer.d.ts +27 -0
  247. package/dist/hooks/learned-skills/writer.d.ts.map +1 -0
  248. package/dist/hooks/learned-skills/writer.js +126 -0
  249. package/dist/hooks/learned-skills/writer.js.map +1 -0
  250. package/dist/hooks/mnemosyne/config.d.ts +53 -0
  251. package/dist/hooks/mnemosyne/config.d.ts.map +1 -0
  252. package/dist/hooks/mnemosyne/config.js +103 -0
  253. package/dist/hooks/mnemosyne/config.js.map +1 -0
  254. package/dist/hooks/mnemosyne/constants.d.ts +24 -0
  255. package/dist/hooks/mnemosyne/constants.d.ts.map +1 -0
  256. package/dist/hooks/mnemosyne/constants.js +26 -0
  257. package/dist/hooks/mnemosyne/constants.js.map +1 -0
  258. package/dist/hooks/mnemosyne/detection-hook.d.ts +39 -0
  259. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +1 -0
  260. package/dist/hooks/mnemosyne/detection-hook.js +83 -0
  261. package/dist/hooks/mnemosyne/detection-hook.js.map +1 -0
  262. package/dist/hooks/mnemosyne/detector.d.ts +30 -0
  263. package/dist/hooks/mnemosyne/detector.d.ts.map +1 -0
  264. package/dist/hooks/mnemosyne/detector.js +150 -0
  265. package/dist/hooks/mnemosyne/detector.js.map +1 -0
  266. package/dist/hooks/mnemosyne/finder.d.ts +21 -0
  267. package/dist/hooks/mnemosyne/finder.d.ts.map +1 -0
  268. package/dist/hooks/mnemosyne/finder.js +117 -0
  269. package/dist/hooks/mnemosyne/finder.js.map +1 -0
  270. package/dist/hooks/mnemosyne/index.d.ts +62 -0
  271. package/dist/hooks/mnemosyne/index.d.ts.map +1 -0
  272. package/dist/hooks/mnemosyne/index.js +137 -0
  273. package/dist/hooks/mnemosyne/index.js.map +1 -0
  274. package/dist/hooks/mnemosyne/loader.d.ts +20 -0
  275. package/dist/hooks/mnemosyne/loader.d.ts.map +1 -0
  276. package/dist/hooks/mnemosyne/loader.js +113 -0
  277. package/dist/hooks/mnemosyne/loader.js.map +1 -0
  278. package/dist/hooks/mnemosyne/parser.d.ts +21 -0
  279. package/dist/hooks/mnemosyne/parser.d.ts.map +1 -0
  280. package/dist/hooks/mnemosyne/parser.js +190 -0
  281. package/dist/hooks/mnemosyne/parser.js.map +1 -0
  282. package/dist/hooks/mnemosyne/promotion.d.ts +29 -0
  283. package/dist/hooks/mnemosyne/promotion.d.ts.map +1 -0
  284. package/dist/hooks/mnemosyne/promotion.js +87 -0
  285. package/dist/hooks/mnemosyne/promotion.js.map +1 -0
  286. package/dist/hooks/mnemosyne/types.d.ts +109 -0
  287. package/dist/hooks/mnemosyne/types.d.ts.map +1 -0
  288. package/dist/hooks/mnemosyne/types.js +8 -0
  289. package/dist/hooks/mnemosyne/types.js.map +1 -0
  290. package/dist/hooks/mnemosyne/validator.d.ts +15 -0
  291. package/dist/hooks/mnemosyne/validator.d.ts.map +1 -0
  292. package/dist/hooks/mnemosyne/validator.js +87 -0
  293. package/dist/hooks/mnemosyne/validator.js.map +1 -0
  294. package/dist/hooks/mnemosyne/writer.d.ts +27 -0
  295. package/dist/hooks/mnemosyne/writer.d.ts.map +1 -0
  296. package/dist/hooks/mnemosyne/writer.js +126 -0
  297. package/dist/hooks/mnemosyne/writer.js.map +1 -0
  298. package/dist/hooks/ralph-loop/index.d.ts +116 -0
  299. package/dist/hooks/ralph-loop/index.d.ts.map +1 -0
  300. package/dist/hooks/ralph-loop/index.js +322 -0
  301. package/dist/hooks/ralph-loop/index.js.map +1 -0
  302. package/dist/hooks/ralph-prd/index.d.ts +130 -0
  303. package/dist/hooks/ralph-prd/index.d.ts.map +1 -0
  304. package/dist/hooks/ralph-prd/index.js +310 -0
  305. package/dist/hooks/ralph-prd/index.js.map +1 -0
  306. package/dist/hooks/ralph-progress/index.d.ts +102 -0
  307. package/dist/hooks/ralph-progress/index.d.ts.map +1 -0
  308. package/dist/hooks/ralph-progress/index.js +408 -0
  309. package/dist/hooks/ralph-progress/index.js.map +1 -0
  310. package/dist/hooks/ralph-verifier/index.d.ts +72 -0
  311. package/dist/hooks/ralph-verifier/index.d.ts.map +1 -0
  312. package/dist/hooks/ralph-verifier/index.js +223 -0
  313. package/dist/hooks/ralph-verifier/index.js.map +1 -0
  314. package/dist/hooks/session-recovery/constants.d.ts +56 -0
  315. package/dist/hooks/session-recovery/constants.d.ts.map +1 -0
  316. package/dist/hooks/session-recovery/constants.js +78 -0
  317. package/dist/hooks/session-recovery/constants.js.map +1 -0
  318. package/dist/hooks/session-recovery/index.d.ts +53 -0
  319. package/dist/hooks/session-recovery/index.d.ts.map +1 -0
  320. package/dist/hooks/session-recovery/index.js +321 -0
  321. package/dist/hooks/session-recovery/index.js.map +1 -0
  322. package/dist/hooks/session-recovery/storage.d.ts +76 -0
  323. package/dist/hooks/session-recovery/storage.d.ts.map +1 -0
  324. package/dist/hooks/session-recovery/storage.js +383 -0
  325. package/dist/hooks/session-recovery/storage.js.map +1 -0
  326. package/dist/hooks/session-recovery/types.d.ts +145 -0
  327. package/dist/hooks/session-recovery/types.d.ts.map +1 -0
  328. package/dist/hooks/session-recovery/types.js +8 -0
  329. package/dist/hooks/session-recovery/types.js.map +1 -0
  330. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +23 -0
  331. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +1 -0
  332. package/dist/hooks/sisyphus-orchestrator/constants.js +142 -0
  333. package/dist/hooks/sisyphus-orchestrator/constants.js.map +1 -0
  334. package/dist/hooks/sisyphus-orchestrator/index.d.ts +113 -0
  335. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +1 -0
  336. package/dist/hooks/sisyphus-orchestrator/index.js +309 -0
  337. package/dist/hooks/sisyphus-orchestrator/index.js.map +1 -0
  338. package/dist/hooks/ultraqa-loop/index.d.ts +94 -0
  339. package/dist/hooks/ultraqa-loop/index.d.ts.map +1 -0
  340. package/dist/hooks/ultraqa-loop/index.js +216 -0
  341. package/dist/hooks/ultraqa-loop/index.js.map +1 -0
  342. package/dist/hooks/ultrawork-state/index.d.ts +62 -0
  343. package/dist/hooks/ultrawork-state/index.d.ts.map +1 -0
  344. package/dist/hooks/ultrawork-state/index.js +208 -0
  345. package/dist/hooks/ultrawork-state/index.js.map +1 -0
  346. package/dist/hud/sisyphus-state.d.ts +31 -0
  347. package/dist/hud/sisyphus-state.d.ts.map +1 -0
  348. package/dist/hud/sisyphus-state.js +163 -0
  349. package/dist/hud/sisyphus-state.js.map +1 -0
  350. package/dist/index.d.ts +1 -0
  351. package/dist/index.d.ts.map +1 -1
  352. package/dist/index.js +15 -3
  353. package/dist/index.js.map +1 -1
  354. package/dist/mcp/index.d.ts +1 -0
  355. package/dist/mcp/index.d.ts.map +1 -1
  356. package/dist/mcp/index.js +2 -0
  357. package/dist/mcp/index.js.map +1 -1
  358. package/dist/mcp/omc-tools-server.d.ts +25 -0
  359. package/dist/mcp/omc-tools-server.d.ts.map +1 -0
  360. package/dist/mcp/omc-tools-server.js +49 -0
  361. package/dist/mcp/omc-tools-server.js.map +1 -0
  362. package/dist/tools/ast-tools.d.ts.map +1 -1
  363. package/dist/tools/ast-tools.js +19 -39
  364. package/dist/tools/ast-tools.js.map +1 -1
  365. package/dist/tools/diagnostics/index.d.ts +7 -32
  366. package/dist/tools/diagnostics/index.d.ts.map +1 -1
  367. package/dist/tools/diagnostics/index.js +41 -171
  368. package/dist/tools/diagnostics/index.js.map +1 -1
  369. package/dist/tools/diagnostics/lsp-aggregator.d.ts +1 -13
  370. package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -1
  371. package/dist/tools/diagnostics/lsp-aggregator.js +4 -32
  372. package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
  373. package/dist/tools/diagnostics/tsc-runner.d.ts +0 -6
  374. package/dist/tools/diagnostics/tsc-runner.d.ts.map +1 -1
  375. package/dist/tools/diagnostics/tsc-runner.js +5 -32
  376. package/dist/tools/diagnostics/tsc-runner.js.map +1 -1
  377. package/dist/tools/lsp/client.d.ts.map +1 -1
  378. package/dist/tools/lsp/client.js +1 -26
  379. package/dist/tools/lsp/client.js.map +1 -1
  380. package/dist/tools/lsp/servers.d.ts +0 -3
  381. package/dist/tools/lsp/servers.d.ts.map +1 -1
  382. package/dist/tools/lsp/servers.js +4 -111
  383. package/dist/tools/lsp/servers.js.map +1 -1
  384. package/dist/tools/lsp-tools.d.ts +2 -2
  385. package/dist/tools/lsp-tools.d.ts.map +1 -1
  386. package/dist/tools/lsp-tools.js +2 -2
  387. package/dist/tools/lsp-tools.js.map +1 -1
  388. package/package.json +1 -1
  389. package/skills/AGENTS.md +187 -0
  390. package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts +0 -5
  391. package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts.map +0 -1
  392. package/dist/tools/diagnostics/__tests__/detectProjectType.test.js +0 -42
  393. package/dist/tools/diagnostics/__tests__/detectProjectType.test.js.map +0 -1
  394. package/dist/tools/diagnostics/__tests__/integration.test.d.ts +0 -5
  395. package/dist/tools/diagnostics/__tests__/integration.test.d.ts.map +0 -1
  396. package/dist/tools/diagnostics/__tests__/integration.test.js +0 -66
  397. package/dist/tools/diagnostics/__tests__/integration.test.js.map +0 -1
  398. package/dist/tools/diagnostics/__tests__/parser-tests.d.ts +0 -5
  399. package/dist/tools/diagnostics/__tests__/parser-tests.d.ts.map +0 -1
  400. package/dist/tools/diagnostics/__tests__/parser-tests.js +0 -86
  401. package/dist/tools/diagnostics/__tests__/parser-tests.js.map +0 -1
  402. package/dist/tools/diagnostics/__tests__/parsers.test.d.ts +0 -5
  403. package/dist/tools/diagnostics/__tests__/parsers.test.d.ts.map +0 -1
  404. package/dist/tools/diagnostics/__tests__/parsers.test.js +0 -199
  405. package/dist/tools/diagnostics/__tests__/parsers.test.js.map +0 -1
  406. package/dist/tools/diagnostics/constants.d.ts +0 -9
  407. package/dist/tools/diagnostics/constants.d.ts.map +0 -1
  408. package/dist/tools/diagnostics/constants.js +0 -9
  409. package/dist/tools/diagnostics/constants.js.map +0 -1
  410. package/dist/tools/diagnostics/go-runner.d.ts +0 -31
  411. package/dist/tools/diagnostics/go-runner.d.ts.map +0 -1
  412. package/dist/tools/diagnostics/go-runner.js +0 -78
  413. package/dist/tools/diagnostics/go-runner.js.map +0 -1
  414. package/dist/tools/diagnostics/python-runner.d.ts +0 -39
  415. package/dist/tools/diagnostics/python-runner.d.ts.map +0 -1
  416. package/dist/tools/diagnostics/python-runner.js +0 -200
  417. package/dist/tools/diagnostics/python-runner.js.map +0 -1
  418. package/dist/tools/diagnostics/rust-runner.d.ts +0 -34
  419. package/dist/tools/diagnostics/rust-runner.d.ts.map +0 -1
  420. package/dist/tools/diagnostics/rust-runner.js +0 -106
  421. package/dist/tools/diagnostics/rust-runner.js.map +0 -1
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Autopilot Signal Detection
3
+ *
4
+ * Detects phase completion signals in the session transcript,
5
+ * similar to how ralph-loop/index.ts detects completion promises.
6
+ */
7
+ import type { AutopilotSignal } from './types.js';
8
+ /**
9
+ * Detect a specific signal in the session transcript
10
+ */
11
+ export declare function detectSignal(sessionId: string, signal: AutopilotSignal): boolean;
12
+ /**
13
+ * Get the expected signal for the current phase
14
+ */
15
+ export declare function getExpectedSignalForPhase(phase: string): AutopilotSignal | null;
16
+ /**
17
+ * Detect any autopilot signal in transcript (for phase advancement)
18
+ */
19
+ export declare function detectAnySignal(sessionId: string): AutopilotSignal | null;
20
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../../src/hooks/autopilot/signals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgBlD;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAwBhF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAS/E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAOzE"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Autopilot Signal Detection
3
+ *
4
+ * Detects phase completion signals in the session transcript,
5
+ * similar to how ralph-loop/index.ts detects completion promises.
6
+ */
7
+ import { existsSync, readFileSync } from 'fs';
8
+ import { join } from 'path';
9
+ import { homedir } from 'os';
10
+ /**
11
+ * Signal patterns - each signal can appear in transcript
12
+ */
13
+ const SIGNAL_PATTERNS = {
14
+ 'EXPANSION_COMPLETE': /EXPANSION_COMPLETE/i,
15
+ 'PLANNING_COMPLETE': /PLANNING_COMPLETE/i,
16
+ 'EXECUTION_COMPLETE': /EXECUTION_COMPLETE/i,
17
+ 'QA_COMPLETE': /QA_COMPLETE/i,
18
+ 'VALIDATION_COMPLETE': /VALIDATION_COMPLETE/i,
19
+ 'AUTOPILOT_COMPLETE': /AUTOPILOT_COMPLETE/i,
20
+ 'TRANSITION_TO_QA': /TRANSITION_TO_QA/i,
21
+ 'TRANSITION_TO_VALIDATION': /TRANSITION_TO_VALIDATION/i,
22
+ };
23
+ /**
24
+ * Detect a specific signal in the session transcript
25
+ */
26
+ export function detectSignal(sessionId, signal) {
27
+ const claudeDir = join(homedir(), '.claude');
28
+ const possiblePaths = [
29
+ join(claudeDir, 'sessions', sessionId, 'transcript.md'),
30
+ join(claudeDir, 'sessions', sessionId, 'messages.json'),
31
+ join(claudeDir, 'transcripts', `${sessionId}.md`)
32
+ ];
33
+ const pattern = SIGNAL_PATTERNS[signal];
34
+ if (!pattern)
35
+ return false;
36
+ for (const transcriptPath of possiblePaths) {
37
+ if (existsSync(transcriptPath)) {
38
+ try {
39
+ const content = readFileSync(transcriptPath, 'utf-8');
40
+ if (pattern.test(content)) {
41
+ return true;
42
+ }
43
+ }
44
+ catch {
45
+ continue;
46
+ }
47
+ }
48
+ }
49
+ return false;
50
+ }
51
+ /**
52
+ * Get the expected signal for the current phase
53
+ */
54
+ export function getExpectedSignalForPhase(phase) {
55
+ switch (phase) {
56
+ case 'expansion': return 'EXPANSION_COMPLETE';
57
+ case 'planning': return 'PLANNING_COMPLETE';
58
+ case 'execution': return 'EXECUTION_COMPLETE';
59
+ case 'qa': return 'QA_COMPLETE';
60
+ case 'validation': return 'VALIDATION_COMPLETE';
61
+ default: return null;
62
+ }
63
+ }
64
+ /**
65
+ * Detect any autopilot signal in transcript (for phase advancement)
66
+ */
67
+ export function detectAnySignal(sessionId) {
68
+ for (const signal of Object.keys(SIGNAL_PATTERNS)) {
69
+ if (detectSignal(sessionId, signal)) {
70
+ return signal;
71
+ }
72
+ }
73
+ return null;
74
+ }
75
+ //# sourceMappingURL=signals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../src/hooks/autopilot/signals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAG7B;;GAEG;AACH,MAAM,eAAe,GAAoC;IACvD,oBAAoB,EAAE,qBAAqB;IAC3C,mBAAmB,EAAE,oBAAoB;IACzC,oBAAoB,EAAE,qBAAqB;IAC3C,aAAa,EAAE,cAAc;IAC7B,qBAAqB,EAAE,sBAAsB;IAC7C,oBAAoB,EAAE,qBAAqB;IAC3C,kBAAkB,EAAE,mBAAmB;IACvC,0BAA0B,EAAE,2BAA2B;CACxD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,MAAuB;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,SAAS,KAAK,CAAC;KAClD,CAAC;IAEF,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,KAAK,MAAM,cAAc,IAAI,aAAa,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBACtD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,WAAW,CAAC,CAAC,OAAO,oBAAoB,CAAC;QAC9C,KAAK,UAAU,CAAC,CAAC,OAAO,mBAAmB,CAAC;QAC5C,KAAK,WAAW,CAAC,CAAC,OAAO,oBAAoB,CAAC;QAC9C,KAAK,IAAI,CAAC,CAAC,OAAO,aAAa,CAAC;QAChC,KAAK,YAAY,CAAC,CAAC,OAAO,qBAAqB,CAAC;QAChD,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAsB,EAAE,CAAC;QACvE,IAAI,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Autopilot Summary Generator
3
+ *
4
+ * Generates human-readable summaries when autopilot completes.
5
+ */
6
+ import type { AutopilotState, AutopilotSummary } from './types.js';
7
+ /**
8
+ * Generate a summary of the autopilot run
9
+ */
10
+ export declare function generateSummary(directory: string): AutopilotSummary | null;
11
+ /**
12
+ * Generate formatted summary output
13
+ */
14
+ export declare function formatSummary(summary: AutopilotSummary): string;
15
+ /**
16
+ * Generate a compact summary for HUD display
17
+ */
18
+ export declare function formatCompactSummary(state: AutopilotState): string;
19
+ /**
20
+ * Generate failure summary
21
+ */
22
+ export declare function formatFailureSummary(state: AutopilotState, error?: string): string;
23
+ /**
24
+ * List files for detailed summary
25
+ */
26
+ export declare function formatFileList(files: string[], title: string, maxFiles?: number): string;
27
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/hooks/autopilot/summary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAkB,MAAM,YAAY,CAAC;AAEnF;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAsC1E;AAuBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAiC/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAelE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBlF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAiB5F"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Autopilot Summary Generator
3
+ *
4
+ * Generates human-readable summaries when autopilot completes.
5
+ */
6
+ import { readAutopilotState } from './state.js';
7
+ /**
8
+ * Generate a summary of the autopilot run
9
+ */
10
+ export function generateSummary(directory) {
11
+ const state = readAutopilotState(directory);
12
+ if (!state) {
13
+ return null;
14
+ }
15
+ const startTime = new Date(state.started_at).getTime();
16
+ const endTime = state.completed_at
17
+ ? new Date(state.completed_at).getTime()
18
+ : Date.now();
19
+ const duration = endTime - startTime;
20
+ const phasesCompleted = [];
21
+ if (state.expansion.spec_path)
22
+ phasesCompleted.push('expansion');
23
+ if (state.planning.approved)
24
+ phasesCompleted.push('planning');
25
+ if (state.execution.ralph_completed_at)
26
+ phasesCompleted.push('execution');
27
+ if (state.qa.qa_completed_at)
28
+ phasesCompleted.push('qa');
29
+ if (state.validation.all_approved)
30
+ phasesCompleted.push('validation');
31
+ if (state.phase === 'complete')
32
+ phasesCompleted.push('complete');
33
+ let testsStatus = 'Not run';
34
+ if (state.qa.test_status === 'passing') {
35
+ testsStatus = 'Passing';
36
+ }
37
+ else if (state.qa.test_status === 'failing') {
38
+ testsStatus = 'Failing';
39
+ }
40
+ else if (state.qa.test_status === 'skipped') {
41
+ testsStatus = 'Skipped';
42
+ }
43
+ return {
44
+ originalIdea: state.originalIdea,
45
+ filesCreated: state.execution.files_created,
46
+ filesModified: state.execution.files_modified,
47
+ testsStatus,
48
+ duration,
49
+ agentsSpawned: state.total_agents_spawned,
50
+ phasesCompleted
51
+ };
52
+ }
53
+ /**
54
+ * Format duration in human-readable format
55
+ */
56
+ function formatDuration(ms) {
57
+ const seconds = Math.floor(ms / 1000);
58
+ const minutes = Math.floor(seconds / 60);
59
+ const hours = Math.floor(minutes / 60);
60
+ if (hours > 0) {
61
+ const remainingMinutes = minutes % 60;
62
+ return `${hours}h ${remainingMinutes}m`;
63
+ }
64
+ if (minutes > 0) {
65
+ const remainingSeconds = seconds % 60;
66
+ return `${minutes}m ${remainingSeconds}s`;
67
+ }
68
+ return `${seconds}s`;
69
+ }
70
+ /**
71
+ * Generate formatted summary output
72
+ */
73
+ export function formatSummary(summary) {
74
+ const lines = [
75
+ '',
76
+ '╭──────────────────────────────────────────────────────╮',
77
+ '│ AUTOPILOT COMPLETE │',
78
+ '├──────────────────────────────────────────────────────┤'
79
+ ];
80
+ // Original idea (truncate if too long)
81
+ const ideaDisplay = summary.originalIdea.length > 50
82
+ ? summary.originalIdea.substring(0, 47) + '...'
83
+ : summary.originalIdea;
84
+ lines.push(`│ Original Idea: ${ideaDisplay.padEnd(36)} │`);
85
+ lines.push('│ │');
86
+ // Delivered section
87
+ lines.push('│ Delivered: │');
88
+ lines.push(`│ • ${summary.filesCreated.length} files created${' '.repeat(36 - String(summary.filesCreated.length).length)}│`);
89
+ lines.push(`│ • ${summary.filesModified.length} files modified${' '.repeat(35 - String(summary.filesModified.length).length)}│`);
90
+ lines.push(`│ • Tests: ${summary.testsStatus}${' '.repeat(36 - summary.testsStatus.length)}│`);
91
+ lines.push('│ │');
92
+ // Metrics
93
+ lines.push('│ Metrics: │');
94
+ const durationStr = formatDuration(summary.duration);
95
+ lines.push(`│ • Duration: ${durationStr}${' '.repeat(35 - durationStr.length)}│`);
96
+ lines.push(`│ • Agents spawned: ${summary.agentsSpawned}${' '.repeat(30 - String(summary.agentsSpawned).length)}│`);
97
+ lines.push(`│ • Phases completed: ${summary.phasesCompleted.length}/5${' '.repeat(27)}│`);
98
+ lines.push('╰──────────────────────────────────────────────────────╯');
99
+ lines.push('');
100
+ return lines.join('\n');
101
+ }
102
+ /**
103
+ * Generate a compact summary for HUD display
104
+ */
105
+ export function formatCompactSummary(state) {
106
+ const phase = state.phase.toUpperCase();
107
+ const files = state.execution.files_created.length + state.execution.files_modified.length;
108
+ const agents = state.total_agents_spawned;
109
+ if (state.phase === 'complete') {
110
+ return `[AUTOPILOT ✓] Complete | ${files} files | ${agents} agents`;
111
+ }
112
+ if (state.phase === 'failed') {
113
+ return `[AUTOPILOT ✗] Failed at ${state.phase}`;
114
+ }
115
+ const phaseIndex = ['expansion', 'planning', 'execution', 'qa', 'validation'].indexOf(state.phase);
116
+ return `[AUTOPILOT] Phase ${phaseIndex + 1}/5: ${phase} | ${files} files`;
117
+ }
118
+ /**
119
+ * Generate failure summary
120
+ */
121
+ export function formatFailureSummary(state, error) {
122
+ const lines = [
123
+ '',
124
+ '╭──────────────────────────────────────────────────────╮',
125
+ '│ AUTOPILOT FAILED │',
126
+ '├──────────────────────────────────────────────────────┤',
127
+ `│ Failed at phase: ${state.phase.toUpperCase().padEnd(33)} │`
128
+ ];
129
+ if (error) {
130
+ const errorLines = error.match(/.{1,48}/g) || [error];
131
+ lines.push('│ │');
132
+ lines.push('│ Error: │');
133
+ for (const line of errorLines.slice(0, 3)) {
134
+ lines.push(`│ ${line.padEnd(50)} │`);
135
+ }
136
+ }
137
+ lines.push('│ │');
138
+ lines.push('│ Progress preserved. Run /autopilot to resume. │');
139
+ lines.push('╰──────────────────────────────────────────────────────╯');
140
+ lines.push('');
141
+ return lines.join('\n');
142
+ }
143
+ /**
144
+ * List files for detailed summary
145
+ */
146
+ export function formatFileList(files, title, maxFiles = 10) {
147
+ if (files.length === 0) {
148
+ return '';
149
+ }
150
+ const lines = [`\n### ${title} (${files.length})`];
151
+ const displayFiles = files.slice(0, maxFiles);
152
+ for (const file of displayFiles) {
153
+ lines.push(`- ${file}`);
154
+ }
155
+ if (files.length > maxFiles) {
156
+ lines.push(`- ... and ${files.length - maxFiles} more`);
157
+ }
158
+ return lines.join('\n');
159
+ }
160
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/hooks/autopilot/summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Autopilot Phase Transitions
3
+ *
4
+ * Handles transitions between phases, especially the critical Ralph → UltraQA
5
+ * and UltraQA → Validation transitions that must respect mutual exclusion.
6
+ */
7
+ import type { AutopilotState } from './types.js';
8
+ export interface TransitionResult {
9
+ success: boolean;
10
+ error?: string;
11
+ state?: AutopilotState;
12
+ }
13
+ /**
14
+ * Transition from Ralph (Phase 2: Execution) to UltraQA (Phase 3: QA)
15
+ *
16
+ * This handles the mutual exclusion by:
17
+ * 1. Saving Ralph's progress to autopilot state
18
+ * 2. Cleanly terminating Ralph mode (and linked Ultrawork)
19
+ * 3. Starting UltraQA mode
20
+ * 4. Preserving context for potential rollback
21
+ */
22
+ export declare function transitionRalphToUltraQA(directory: string, sessionId: string): TransitionResult;
23
+ /**
24
+ * Transition from UltraQA (Phase 3: QA) to Validation (Phase 4)
25
+ */
26
+ export declare function transitionUltraQAToValidation(directory: string): TransitionResult;
27
+ /**
28
+ * Transition from Validation (Phase 4) to Complete
29
+ */
30
+ export declare function transitionToComplete(directory: string): TransitionResult;
31
+ /**
32
+ * Transition to failed state
33
+ */
34
+ export declare function transitionToFailed(directory: string, error: string): TransitionResult;
35
+ /**
36
+ * Get a prompt for Claude to execute the transition
37
+ */
38
+ export declare function getTransitionPrompt(fromPhase: string, toPhase: string): string;
39
+ //# sourceMappingURL=transition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../../src/hooks/autopilot/transition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,gBAAgB,CAkElB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,GAChB,gBAAgB,CAyClB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAWxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,gBAAgB,CAWlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CA6ER"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Autopilot Phase Transitions
3
+ *
4
+ * Handles transitions between phases, especially the critical Ralph → UltraQA
5
+ * and UltraQA → Validation transitions that must respect mutual exclusion.
6
+ */
7
+ import { readRalphState, clearRalphState, clearLinkedUltraworkState } from '../ralph-loop/index.js';
8
+ import { startUltraQA, clearUltraQAState, readUltraQAState } from '../ultraqa-loop/index.js';
9
+ import { readAutopilotState, transitionPhase, updateExecution, updateQA } from './state.js';
10
+ /**
11
+ * Transition from Ralph (Phase 2: Execution) to UltraQA (Phase 3: QA)
12
+ *
13
+ * This handles the mutual exclusion by:
14
+ * 1. Saving Ralph's progress to autopilot state
15
+ * 2. Cleanly terminating Ralph mode (and linked Ultrawork)
16
+ * 3. Starting UltraQA mode
17
+ * 4. Preserving context for potential rollback
18
+ */
19
+ export function transitionRalphToUltraQA(directory, sessionId) {
20
+ const autopilotState = readAutopilotState(directory);
21
+ if (!autopilotState || autopilotState.phase !== 'execution') {
22
+ return {
23
+ success: false,
24
+ error: 'Not in execution phase - cannot transition to QA'
25
+ };
26
+ }
27
+ const ralphState = readRalphState(directory);
28
+ // Step 1: Preserve Ralph progress in autopilot state
29
+ const executionUpdated = updateExecution(directory, {
30
+ ralph_iterations: ralphState?.iteration ?? autopilotState.execution.ralph_iterations,
31
+ ralph_completed_at: new Date().toISOString(),
32
+ ultrawork_active: false
33
+ });
34
+ if (!executionUpdated) {
35
+ return {
36
+ success: false,
37
+ error: 'Failed to update execution state'
38
+ };
39
+ }
40
+ // Step 2: Cleanly terminate Ralph (and linked Ultrawork)
41
+ if (ralphState?.linked_ultrawork) {
42
+ clearLinkedUltraworkState(directory);
43
+ }
44
+ const ralphCleared = clearRalphState(directory);
45
+ if (!ralphCleared) {
46
+ return {
47
+ success: false,
48
+ error: 'Failed to clear Ralph state'
49
+ };
50
+ }
51
+ // Step 3: Transition to QA phase
52
+ const newState = transitionPhase(directory, 'qa');
53
+ if (!newState) {
54
+ return {
55
+ success: false,
56
+ error: 'Failed to transition to QA phase'
57
+ };
58
+ }
59
+ // Step 4: Start UltraQA
60
+ const qaResult = startUltraQA(directory, 'tests', sessionId, { maxCycles: 5 });
61
+ if (!qaResult.success) {
62
+ // Rollback on failure - restore execution phase
63
+ transitionPhase(directory, 'execution');
64
+ updateExecution(directory, { ralph_completed_at: undefined });
65
+ return {
66
+ success: false,
67
+ error: qaResult.error || 'Failed to start UltraQA'
68
+ };
69
+ }
70
+ return {
71
+ success: true,
72
+ state: newState
73
+ };
74
+ }
75
+ /**
76
+ * Transition from UltraQA (Phase 3: QA) to Validation (Phase 4)
77
+ */
78
+ export function transitionUltraQAToValidation(directory) {
79
+ const autopilotState = readAutopilotState(directory);
80
+ if (!autopilotState || autopilotState.phase !== 'qa') {
81
+ return {
82
+ success: false,
83
+ error: 'Not in QA phase - cannot transition to validation'
84
+ };
85
+ }
86
+ const qaState = readUltraQAState(directory);
87
+ // Preserve QA progress
88
+ const qaUpdated = updateQA(directory, {
89
+ ultraqa_cycles: qaState?.cycle ?? autopilotState.qa.ultraqa_cycles,
90
+ qa_completed_at: new Date().toISOString()
91
+ });
92
+ if (!qaUpdated) {
93
+ return {
94
+ success: false,
95
+ error: 'Failed to update QA state'
96
+ };
97
+ }
98
+ // Terminate UltraQA
99
+ clearUltraQAState(directory);
100
+ // Transition to validation
101
+ const newState = transitionPhase(directory, 'validation');
102
+ if (!newState) {
103
+ return {
104
+ success: false,
105
+ error: 'Failed to transition to validation phase'
106
+ };
107
+ }
108
+ return {
109
+ success: true,
110
+ state: newState
111
+ };
112
+ }
113
+ /**
114
+ * Transition from Validation (Phase 4) to Complete
115
+ */
116
+ export function transitionToComplete(directory) {
117
+ const state = transitionPhase(directory, 'complete');
118
+ if (!state) {
119
+ return {
120
+ success: false,
121
+ error: 'Failed to transition to complete phase'
122
+ };
123
+ }
124
+ return { success: true, state };
125
+ }
126
+ /**
127
+ * Transition to failed state
128
+ */
129
+ export function transitionToFailed(directory, error) {
130
+ const state = transitionPhase(directory, 'failed');
131
+ if (!state) {
132
+ return {
133
+ success: false,
134
+ error: 'Failed to transition to failed phase'
135
+ };
136
+ }
137
+ return { success: true, state };
138
+ }
139
+ /**
140
+ * Get a prompt for Claude to execute the transition
141
+ */
142
+ export function getTransitionPrompt(fromPhase, toPhase) {
143
+ if (fromPhase === 'execution' && toPhase === 'qa') {
144
+ return `## PHASE TRANSITION: Execution → QA
145
+
146
+ The execution phase is complete. Transitioning to QA phase.
147
+
148
+ **CRITICAL**: Ralph mode must be cleanly terminated before UltraQA can start.
149
+
150
+ The transition handler has:
151
+ 1. Preserved Ralph iteration count and progress
152
+ 2. Cleared Ralph state (and linked Ultrawork)
153
+ 3. Started UltraQA in 'tests' mode
154
+
155
+ You are now in QA phase. Run the QA cycle:
156
+ 1. Build: npm run build (or equivalent)
157
+ 2. Lint: npm run lint (or equivalent)
158
+ 3. Test: npm test (or equivalent)
159
+
160
+ Fix any failures and repeat until all pass.
161
+
162
+ Signal when QA passes: QA_COMPLETE
163
+ `;
164
+ }
165
+ if (fromPhase === 'qa' && toPhase === 'validation') {
166
+ return `## PHASE TRANSITION: QA → Validation
167
+
168
+ All QA checks have passed. Transitioning to validation phase.
169
+
170
+ The transition handler has:
171
+ 1. Preserved UltraQA cycle count
172
+ 2. Cleared UltraQA state
173
+ 3. Updated phase to 'validation'
174
+
175
+ You are now in validation phase. Spawn parallel validation architects:
176
+
177
+ \`\`\`
178
+ // Spawn all three in parallel
179
+ Task(subagent_type="oh-my-claudecode:architect", model="opus",
180
+ prompt="FUNCTIONAL COMPLETENESS REVIEW: Verify all requirements from spec are implemented")
181
+
182
+ Task(subagent_type="oh-my-claudecode:security-reviewer", model="opus",
183
+ prompt="SECURITY REVIEW: Check for vulnerabilities, injection risks, auth issues")
184
+
185
+ Task(subagent_type="oh-my-claudecode:code-reviewer", model="opus",
186
+ prompt="CODE QUALITY REVIEW: Check patterns, maintainability, test coverage")
187
+ \`\`\`
188
+
189
+ Aggregate verdicts:
190
+ - All APPROVED → Signal: AUTOPILOT_COMPLETE
191
+ - Any REJECTED → Fix issues and re-validate (max 3 rounds)
192
+ `;
193
+ }
194
+ if (fromPhase === 'expansion' && toPhase === 'planning') {
195
+ return `## PHASE TRANSITION: Expansion → Planning
196
+
197
+ The idea has been expanded into a detailed specification.
198
+
199
+ Read the spec and create an implementation plan using the Architect agent (direct planning mode).
200
+
201
+ Signal when Critic approves the plan: PLANNING_COMPLETE
202
+ `;
203
+ }
204
+ if (fromPhase === 'planning' && toPhase === 'execution') {
205
+ return `## PHASE TRANSITION: Planning → Execution
206
+
207
+ The plan has been approved. Starting execution phase with Ralph + Ultrawork.
208
+
209
+ Execute tasks from the plan in parallel where possible.
210
+
211
+ Signal when all tasks complete: EXECUTION_COMPLETE
212
+ `;
213
+ }
214
+ return '';
215
+ }
216
+ //# sourceMappingURL=transition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../../src/hooks/autopilot/transition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Context Window Limit Recovery Constants
3
+ *
4
+ * Messages and prompts for recovery from context limit errors.
5
+ *
6
+ * Adapted from oh-my-opencode's anthropic-context-window-limit-recovery hook.
7
+ */
8
+ /**
9
+ * Recovery message when context window limit is hit
10
+ */
11
+ export declare const CONTEXT_LIMIT_RECOVERY_MESSAGE = "CONTEXT WINDOW LIMIT REACHED - IMMEDIATE ACTION REQUIRED\n\nThe conversation has exceeded the model's context window limit. To continue working effectively, you must take one of these actions:\n\n1. SUMMARIZE THE CONVERSATION\n - Use the /compact command if available\n - Or provide a concise summary of what has been accomplished so far\n - Include key decisions, code changes, and remaining tasks\n\n2. START A FRESH CONTEXT\n - If summarization isn't sufficient, suggest starting a new session\n - Provide a handoff message with essential context\n\n3. REDUCE OUTPUT SIZE\n - When showing code, show only relevant portions\n - Use file paths and line numbers instead of full code blocks\n - Be more concise in explanations\n\nIMPORTANT: Do not attempt to continue without addressing this limit.\nThe API will reject further requests until the context is reduced.\n\nCurrent Status:\n- Context limit exceeded\n- Further API calls will fail until context is reduced\n- Action required before continuing\n";
12
+ /**
13
+ * Short notification for context limit
14
+ */
15
+ export declare const CONTEXT_LIMIT_SHORT_MESSAGE = "Context window limit reached. Please use /compact to summarize the conversation or start a new session.";
16
+ /**
17
+ * Recovery message for non-empty content errors
18
+ */
19
+ export declare const NON_EMPTY_CONTENT_RECOVERY_MESSAGE = "API ERROR: Non-empty content validation failed.\n\nThis error typically occurs when:\n- A message has empty text content\n- The conversation structure is invalid\n\nSuggested actions:\n1. Continue with a new message\n2. If the error persists, start a new session\n\nThe system will attempt automatic recovery.\n";
20
+ /**
21
+ * Recovery message when truncation was applied
22
+ */
23
+ export declare const TRUNCATION_APPLIED_MESSAGE = "CONTEXT OPTIMIZATION APPLIED\n\nSome tool outputs have been truncated to fit within the context window.\nThe conversation can now continue normally.\n\nIf you need to see the full output of a previous tool call, you can:\n- Re-run the specific command\n- Ask to see a particular file or section\n\nContinuing with the current task...\n";
24
+ /**
25
+ * Message when recovery fails
26
+ */
27
+ export declare const RECOVERY_FAILED_MESSAGE = "CONTEXT RECOVERY FAILED\n\nAll automatic recovery attempts have been exhausted.\nPlease start a new session to continue.\n\nBefore starting a new session:\n1. Note what has been accomplished\n2. Save any important code changes\n3. Document the current state of the task\n\nYou can copy this conversation summary to continue in a new session.\n";
28
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/context-window-limit-recovery/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B,kgCAyB1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,4GAA4G,CAAC;AAErJ;;GAEG;AACH,eAAO,MAAM,kCAAkC,4TAW9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,oVAUtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,4VAWnC,CAAC"}