oh-my-claude-sisyphus 3.7.3 → 3.7.5

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 (387) 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/commands/hud.md +3 -1
  10. package/dist/__tests__/analytics/analytics-summary.test.d.ts +2 -0
  11. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +1 -0
  12. package/dist/__tests__/analytics/analytics-summary.test.js +267 -0
  13. package/dist/__tests__/analytics/analytics-summary.test.js.map +1 -0
  14. package/dist/__tests__/analytics/cost-estimator.test.d.ts +2 -0
  15. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +1 -0
  16. package/dist/__tests__/analytics/cost-estimator.test.js +212 -0
  17. package/dist/__tests__/analytics/cost-estimator.test.js.map +1 -0
  18. package/dist/__tests__/analytics/output-estimator.test.js +18 -0
  19. package/dist/__tests__/analytics/output-estimator.test.js.map +1 -1
  20. package/dist/__tests__/analytics/token-extractor.test.js +44 -0
  21. package/dist/__tests__/analytics/token-extractor.test.js.map +1 -1
  22. package/dist/__tests__/analytics/token-tracker.test.d.ts +2 -0
  23. package/dist/__tests__/analytics/token-tracker.test.d.ts.map +1 -0
  24. package/dist/__tests__/analytics/token-tracker.test.js +189 -0
  25. package/dist/__tests__/analytics/token-tracker.test.js.map +1 -0
  26. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +7 -0
  27. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +1 -0
  28. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +374 -0
  29. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +1 -0
  30. package/dist/__tests__/hud/analytics-display.test.js +3 -8
  31. package/dist/__tests__/hud/analytics-display.test.js.map +1 -1
  32. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +2 -0
  33. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +1 -0
  34. package/dist/__tests__/hud/auto-tracking.integration.test.js +12 -0
  35. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +1 -0
  36. package/dist/__tests__/hud/top-agents.test.d.ts +8 -0
  37. package/dist/__tests__/hud/top-agents.test.d.ts.map +1 -0
  38. package/dist/__tests__/hud/top-agents.test.js +157 -0
  39. package/dist/__tests__/hud/top-agents.test.js.map +1 -0
  40. package/dist/__tests__/installer.test.js +1 -1
  41. package/dist/__tests__/learned-skills/config.test.d.ts +2 -0
  42. package/dist/__tests__/learned-skills/config.test.d.ts.map +1 -0
  43. package/dist/__tests__/learned-skills/config.test.js +37 -0
  44. package/dist/__tests__/learned-skills/config.test.js.map +1 -0
  45. package/dist/__tests__/learned-skills/detector.test.d.ts +2 -0
  46. package/dist/__tests__/learned-skills/detector.test.d.ts.map +1 -0
  47. package/dist/__tests__/learned-skills/detector.test.js +99 -0
  48. package/dist/__tests__/learned-skills/detector.test.js.map +1 -0
  49. package/dist/__tests__/learned-skills/finder.test.d.ts +2 -0
  50. package/dist/__tests__/learned-skills/finder.test.d.ts.map +1 -0
  51. package/dist/__tests__/learned-skills/finder.test.js +59 -0
  52. package/dist/__tests__/learned-skills/finder.test.js.map +1 -0
  53. package/dist/__tests__/learned-skills/loader.test.d.ts +2 -0
  54. package/dist/__tests__/learned-skills/loader.test.d.ts.map +1 -0
  55. package/dist/__tests__/learned-skills/loader.test.js +69 -0
  56. package/dist/__tests__/learned-skills/loader.test.js.map +1 -0
  57. package/dist/__tests__/learned-skills/parser.test.d.ts +2 -0
  58. package/dist/__tests__/learned-skills/parser.test.d.ts.map +1 -0
  59. package/dist/__tests__/learned-skills/parser.test.js +81 -0
  60. package/dist/__tests__/learned-skills/parser.test.js.map +1 -0
  61. package/dist/__tests__/learned-skills/validator.test.d.ts +2 -0
  62. package/dist/__tests__/learned-skills/validator.test.d.ts.map +1 -0
  63. package/dist/__tests__/learned-skills/validator.test.js +85 -0
  64. package/dist/__tests__/learned-skills/validator.test.js.map +1 -0
  65. package/dist/__tests__/skills.test.js +6 -5
  66. package/dist/__tests__/skills.test.js.map +1 -1
  67. package/dist/agents/codex-agents.d.ts +20 -0
  68. package/dist/agents/codex-agents.d.ts.map +1 -0
  69. package/dist/agents/codex-agents.js +36 -0
  70. package/dist/agents/codex-agents.js.map +1 -0
  71. package/dist/agents/definitions.js +1 -1
  72. package/dist/agents/definitions.js.map +1 -1
  73. package/dist/agents/document-writer.d.ts +11 -0
  74. package/dist/agents/document-writer.d.ts.map +1 -0
  75. package/dist/agents/document-writer.js +209 -0
  76. package/dist/agents/document-writer.js.map +1 -0
  77. package/dist/agents/frontend-engineer.d.ts +11 -0
  78. package/dist/agents/frontend-engineer.d.ts.map +1 -0
  79. package/dist/agents/frontend-engineer.js +115 -0
  80. package/dist/agents/frontend-engineer.js.map +1 -0
  81. package/dist/agents/librarian.d.ts +12 -0
  82. package/dist/agents/librarian.d.ts.map +1 -0
  83. package/dist/agents/librarian.js +103 -0
  84. package/dist/agents/librarian.js.map +1 -0
  85. package/dist/agents/metis.d.ts +12 -0
  86. package/dist/agents/metis.d.ts.map +1 -0
  87. package/dist/agents/metis.js +117 -0
  88. package/dist/agents/metis.js.map +1 -0
  89. package/dist/agents/momus.d.ts +12 -0
  90. package/dist/agents/momus.d.ts.map +1 -0
  91. package/dist/agents/momus.js +128 -0
  92. package/dist/agents/momus.js.map +1 -0
  93. package/dist/agents/multimodal-looker.d.ts +11 -0
  94. package/dist/agents/multimodal-looker.d.ts.map +1 -0
  95. package/dist/agents/multimodal-looker.js +70 -0
  96. package/dist/agents/multimodal-looker.js.map +1 -0
  97. package/dist/agents/oracle.d.ts +13 -0
  98. package/dist/agents/oracle.d.ts.map +1 -0
  99. package/dist/agents/oracle.js +191 -0
  100. package/dist/agents/oracle.js.map +1 -0
  101. package/dist/agents/orchestrator-sisyphus.d.ts +11 -0
  102. package/dist/agents/orchestrator-sisyphus.d.ts.map +1 -0
  103. package/dist/agents/orchestrator-sisyphus.js +115 -0
  104. package/dist/agents/orchestrator-sisyphus.js.map +1 -0
  105. package/dist/agents/prometheus.d.ts +12 -0
  106. package/dist/agents/prometheus.d.ts.map +1 -0
  107. package/dist/agents/prometheus.js +195 -0
  108. package/dist/agents/prometheus.js.map +1 -0
  109. package/dist/agents/sisyphus-junior.d.ts +12 -0
  110. package/dist/agents/sisyphus-junior.d.ts.map +1 -0
  111. package/dist/agents/sisyphus-junior.js +93 -0
  112. package/dist/agents/sisyphus-junior.js.map +1 -0
  113. package/dist/analytics/output-estimator.d.ts.map +1 -1
  114. package/dist/analytics/output-estimator.js +5 -1
  115. package/dist/analytics/output-estimator.js.map +1 -1
  116. package/dist/analytics/token-extractor.js +2 -2
  117. package/dist/analytics/token-extractor.js.map +1 -1
  118. package/dist/cli/analytics.js +0 -0
  119. package/dist/cli/components/CostDashboard.d.ts +15 -0
  120. package/dist/cli/components/CostDashboard.d.ts.map +1 -0
  121. package/dist/cli/components/CostDashboard.js +15 -0
  122. package/dist/cli/components/CostDashboard.js.map +1 -0
  123. package/dist/cli/components/LiveStats.d.ts +16 -0
  124. package/dist/cli/components/LiveStats.d.ts.map +1 -0
  125. package/dist/cli/components/LiveStats.js +16 -0
  126. package/dist/cli/components/LiveStats.js.map +1 -0
  127. package/dist/cli/components/SessionBrowser.d.ts +14 -0
  128. package/dist/cli/components/SessionBrowser.d.ts.map +1 -0
  129. package/dist/cli/components/SessionBrowser.js +14 -0
  130. package/dist/cli/components/SessionBrowser.js.map +1 -0
  131. package/dist/cli/index.js +0 -0
  132. package/dist/cli/tui.d.ts +21 -0
  133. package/dist/cli/tui.d.ts.map +1 -0
  134. package/dist/cli/tui.js +21 -0
  135. package/dist/cli/tui.js.map +1 -0
  136. package/dist/compatibility/discovery.d.ts.map +1 -1
  137. package/dist/compatibility/discovery.js +3 -1
  138. package/dist/compatibility/discovery.js.map +1 -1
  139. package/dist/hooks/autopilot/prompts.d.ts.map +1 -1
  140. package/dist/hooks/autopilot/prompts.js +17 -3
  141. package/dist/hooks/autopilot/prompts.js.map +1 -1
  142. package/dist/hooks/autopilot/signals.d.ts +20 -0
  143. package/dist/hooks/autopilot/signals.d.ts.map +1 -0
  144. package/dist/hooks/autopilot/signals.js +75 -0
  145. package/dist/hooks/autopilot/signals.js.map +1 -0
  146. package/dist/hooks/autopilot/summary.d.ts +27 -0
  147. package/dist/hooks/autopilot/summary.d.ts.map +1 -0
  148. package/dist/hooks/autopilot/summary.js +160 -0
  149. package/dist/hooks/autopilot/summary.js.map +1 -0
  150. package/dist/hooks/autopilot/transition.d.ts +39 -0
  151. package/dist/hooks/autopilot/transition.d.ts.map +1 -0
  152. package/dist/hooks/autopilot/transition.js +216 -0
  153. package/dist/hooks/autopilot/transition.js.map +1 -0
  154. package/dist/hooks/context-window-limit-recovery/constants.d.ts +28 -0
  155. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +1 -0
  156. package/dist/hooks/context-window-limit-recovery/constants.js +85 -0
  157. package/dist/hooks/context-window-limit-recovery/constants.js.map +1 -0
  158. package/dist/hooks/context-window-limit-recovery/index.d.ts +62 -0
  159. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +1 -0
  160. package/dist/hooks/context-window-limit-recovery/index.js +201 -0
  161. package/dist/hooks/context-window-limit-recovery/index.js.map +1 -0
  162. package/dist/hooks/context-window-limit-recovery/parser.d.ts +31 -0
  163. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +1 -0
  164. package/dist/hooks/context-window-limit-recovery/parser.js +241 -0
  165. package/dist/hooks/context-window-limit-recovery/parser.js.map +1 -0
  166. package/dist/hooks/context-window-limit-recovery/types.d.ts +84 -0
  167. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +1 -0
  168. package/dist/hooks/context-window-limit-recovery/types.js +34 -0
  169. package/dist/hooks/context-window-limit-recovery/types.js.map +1 -0
  170. package/dist/hooks/edit-error-recovery/index.d.ts +62 -0
  171. package/dist/hooks/edit-error-recovery/index.d.ts.map +1 -0
  172. package/dist/hooks/edit-error-recovery/index.js +89 -0
  173. package/dist/hooks/edit-error-recovery/index.js.map +1 -0
  174. package/dist/hooks/github-auto-responder/classifier.d.ts +43 -0
  175. package/dist/hooks/github-auto-responder/classifier.d.ts.map +1 -0
  176. package/dist/hooks/github-auto-responder/classifier.js +150 -0
  177. package/dist/hooks/github-auto-responder/classifier.js.map +1 -0
  178. package/dist/hooks/github-auto-responder/config.d.ts +109 -0
  179. package/dist/hooks/github-auto-responder/config.d.ts.map +1 -0
  180. package/dist/hooks/github-auto-responder/config.js +69 -0
  181. package/dist/hooks/github-auto-responder/config.js.map +1 -0
  182. package/dist/hooks/github-auto-responder/constants.d.ts +45 -0
  183. package/dist/hooks/github-auto-responder/constants.d.ts.map +1 -0
  184. package/dist/hooks/github-auto-responder/constants.js +60 -0
  185. package/dist/hooks/github-auto-responder/constants.js.map +1 -0
  186. package/dist/hooks/github-auto-responder/filters.d.ts +95 -0
  187. package/dist/hooks/github-auto-responder/filters.d.ts.map +1 -0
  188. package/dist/hooks/github-auto-responder/filters.js +174 -0
  189. package/dist/hooks/github-auto-responder/filters.js.map +1 -0
  190. package/dist/hooks/github-auto-responder/github-client.d.ts +65 -0
  191. package/dist/hooks/github-auto-responder/github-client.d.ts.map +1 -0
  192. package/dist/hooks/github-auto-responder/github-client.js +128 -0
  193. package/dist/hooks/github-auto-responder/github-client.js.map +1 -0
  194. package/dist/hooks/github-auto-responder/idempotency.d.ts +68 -0
  195. package/dist/hooks/github-auto-responder/idempotency.d.ts.map +1 -0
  196. package/dist/hooks/github-auto-responder/idempotency.js +147 -0
  197. package/dist/hooks/github-auto-responder/idempotency.js.map +1 -0
  198. package/dist/hooks/github-auto-responder/index.d.ts +140 -0
  199. package/dist/hooks/github-auto-responder/index.d.ts.map +1 -0
  200. package/dist/hooks/github-auto-responder/index.js +145 -0
  201. package/dist/hooks/github-auto-responder/index.js.map +1 -0
  202. package/dist/hooks/github-auto-responder/persona.d.ts +40 -0
  203. package/dist/hooks/github-auto-responder/persona.d.ts.map +1 -0
  204. package/dist/hooks/github-auto-responder/persona.js +99 -0
  205. package/dist/hooks/github-auto-responder/persona.js.map +1 -0
  206. package/dist/hooks/github-auto-responder/responder.d.ts +122 -0
  207. package/dist/hooks/github-auto-responder/responder.d.ts.map +1 -0
  208. package/dist/hooks/github-auto-responder/responder.js +264 -0
  209. package/dist/hooks/github-auto-responder/responder.js.map +1 -0
  210. package/dist/hooks/github-auto-responder/server.d.ts +140 -0
  211. package/dist/hooks/github-auto-responder/server.d.ts.map +1 -0
  212. package/dist/hooks/github-auto-responder/server.js +301 -0
  213. package/dist/hooks/github-auto-responder/server.js.map +1 -0
  214. package/dist/hooks/github-auto-responder/signature.d.ts +34 -0
  215. package/dist/hooks/github-auto-responder/signature.d.ts.map +1 -0
  216. package/dist/hooks/github-auto-responder/signature.js +79 -0
  217. package/dist/hooks/github-auto-responder/signature.js.map +1 -0
  218. package/dist/hooks/github-auto-responder/templates.d.ts +16 -0
  219. package/dist/hooks/github-auto-responder/templates.d.ts.map +1 -0
  220. package/dist/hooks/github-auto-responder/templates.js +93 -0
  221. package/dist/hooks/github-auto-responder/templates.js.map +1 -0
  222. package/dist/hooks/github-auto-responder/types.d.ts +246 -0
  223. package/dist/hooks/github-auto-responder/types.d.ts.map +1 -0
  224. package/dist/hooks/github-auto-responder/types.js +7 -0
  225. package/dist/hooks/github-auto-responder/types.js.map +1 -0
  226. package/dist/hooks/learned-skills/config.d.ts +53 -0
  227. package/dist/hooks/learned-skills/config.d.ts.map +1 -0
  228. package/dist/hooks/learned-skills/config.js +103 -0
  229. package/dist/hooks/learned-skills/config.js.map +1 -0
  230. package/dist/hooks/learned-skills/constants.d.ts +24 -0
  231. package/dist/hooks/learned-skills/constants.d.ts.map +1 -0
  232. package/dist/hooks/learned-skills/constants.js +26 -0
  233. package/dist/hooks/learned-skills/constants.js.map +1 -0
  234. package/dist/hooks/learned-skills/detection-hook.d.ts +39 -0
  235. package/dist/hooks/learned-skills/detection-hook.d.ts.map +1 -0
  236. package/dist/hooks/learned-skills/detection-hook.js +83 -0
  237. package/dist/hooks/learned-skills/detection-hook.js.map +1 -0
  238. package/dist/hooks/learned-skills/detector.d.ts +30 -0
  239. package/dist/hooks/learned-skills/detector.d.ts.map +1 -0
  240. package/dist/hooks/learned-skills/detector.js +150 -0
  241. package/dist/hooks/learned-skills/detector.js.map +1 -0
  242. package/dist/hooks/learned-skills/finder.d.ts +21 -0
  243. package/dist/hooks/learned-skills/finder.d.ts.map +1 -0
  244. package/dist/hooks/learned-skills/finder.js +117 -0
  245. package/dist/hooks/learned-skills/finder.js.map +1 -0
  246. package/dist/hooks/learned-skills/index.d.ts +62 -0
  247. package/dist/hooks/learned-skills/index.d.ts.map +1 -0
  248. package/dist/hooks/learned-skills/index.js +137 -0
  249. package/dist/hooks/learned-skills/index.js.map +1 -0
  250. package/dist/hooks/learned-skills/loader.d.ts +20 -0
  251. package/dist/hooks/learned-skills/loader.d.ts.map +1 -0
  252. package/dist/hooks/learned-skills/loader.js +107 -0
  253. package/dist/hooks/learned-skills/loader.js.map +1 -0
  254. package/dist/hooks/learned-skills/parser.d.ts +21 -0
  255. package/dist/hooks/learned-skills/parser.d.ts.map +1 -0
  256. package/dist/hooks/learned-skills/parser.js +190 -0
  257. package/dist/hooks/learned-skills/parser.js.map +1 -0
  258. package/dist/hooks/learned-skills/promotion.d.ts +29 -0
  259. package/dist/hooks/learned-skills/promotion.d.ts.map +1 -0
  260. package/dist/hooks/learned-skills/promotion.js +87 -0
  261. package/dist/hooks/learned-skills/promotion.js.map +1 -0
  262. package/dist/hooks/learned-skills/types.d.ts +109 -0
  263. package/dist/hooks/learned-skills/types.d.ts.map +1 -0
  264. package/dist/hooks/learned-skills/types.js +8 -0
  265. package/dist/hooks/learned-skills/types.js.map +1 -0
  266. package/dist/hooks/learned-skills/validator.d.ts +15 -0
  267. package/dist/hooks/learned-skills/validator.d.ts.map +1 -0
  268. package/dist/hooks/learned-skills/validator.js +87 -0
  269. package/dist/hooks/learned-skills/validator.js.map +1 -0
  270. package/dist/hooks/learned-skills/writer.d.ts +27 -0
  271. package/dist/hooks/learned-skills/writer.d.ts.map +1 -0
  272. package/dist/hooks/learned-skills/writer.js +126 -0
  273. package/dist/hooks/learned-skills/writer.js.map +1 -0
  274. package/dist/hooks/mnemosyne/config.d.ts +53 -0
  275. package/dist/hooks/mnemosyne/config.d.ts.map +1 -0
  276. package/dist/hooks/mnemosyne/config.js +103 -0
  277. package/dist/hooks/mnemosyne/config.js.map +1 -0
  278. package/dist/hooks/mnemosyne/constants.d.ts +24 -0
  279. package/dist/hooks/mnemosyne/constants.d.ts.map +1 -0
  280. package/dist/hooks/mnemosyne/constants.js +26 -0
  281. package/dist/hooks/mnemosyne/constants.js.map +1 -0
  282. package/dist/hooks/mnemosyne/detection-hook.d.ts +39 -0
  283. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +1 -0
  284. package/dist/hooks/mnemosyne/detection-hook.js +83 -0
  285. package/dist/hooks/mnemosyne/detection-hook.js.map +1 -0
  286. package/dist/hooks/mnemosyne/detector.d.ts +30 -0
  287. package/dist/hooks/mnemosyne/detector.d.ts.map +1 -0
  288. package/dist/hooks/mnemosyne/detector.js +150 -0
  289. package/dist/hooks/mnemosyne/detector.js.map +1 -0
  290. package/dist/hooks/mnemosyne/finder.d.ts +21 -0
  291. package/dist/hooks/mnemosyne/finder.d.ts.map +1 -0
  292. package/dist/hooks/mnemosyne/finder.js +117 -0
  293. package/dist/hooks/mnemosyne/finder.js.map +1 -0
  294. package/dist/hooks/mnemosyne/index.d.ts +62 -0
  295. package/dist/hooks/mnemosyne/index.d.ts.map +1 -0
  296. package/dist/hooks/mnemosyne/index.js +137 -0
  297. package/dist/hooks/mnemosyne/index.js.map +1 -0
  298. package/dist/hooks/mnemosyne/loader.d.ts +20 -0
  299. package/dist/hooks/mnemosyne/loader.d.ts.map +1 -0
  300. package/dist/hooks/mnemosyne/loader.js +113 -0
  301. package/dist/hooks/mnemosyne/loader.js.map +1 -0
  302. package/dist/hooks/mnemosyne/parser.d.ts +21 -0
  303. package/dist/hooks/mnemosyne/parser.d.ts.map +1 -0
  304. package/dist/hooks/mnemosyne/parser.js +190 -0
  305. package/dist/hooks/mnemosyne/parser.js.map +1 -0
  306. package/dist/hooks/mnemosyne/promotion.d.ts +29 -0
  307. package/dist/hooks/mnemosyne/promotion.d.ts.map +1 -0
  308. package/dist/hooks/mnemosyne/promotion.js +87 -0
  309. package/dist/hooks/mnemosyne/promotion.js.map +1 -0
  310. package/dist/hooks/mnemosyne/types.d.ts +109 -0
  311. package/dist/hooks/mnemosyne/types.d.ts.map +1 -0
  312. package/dist/hooks/mnemosyne/types.js +8 -0
  313. package/dist/hooks/mnemosyne/types.js.map +1 -0
  314. package/dist/hooks/mnemosyne/validator.d.ts +15 -0
  315. package/dist/hooks/mnemosyne/validator.d.ts.map +1 -0
  316. package/dist/hooks/mnemosyne/validator.js +87 -0
  317. package/dist/hooks/mnemosyne/validator.js.map +1 -0
  318. package/dist/hooks/mnemosyne/writer.d.ts +27 -0
  319. package/dist/hooks/mnemosyne/writer.d.ts.map +1 -0
  320. package/dist/hooks/mnemosyne/writer.js +126 -0
  321. package/dist/hooks/mnemosyne/writer.js.map +1 -0
  322. package/dist/hooks/pre-compact/index.d.ts +2 -4
  323. package/dist/hooks/pre-compact/index.d.ts.map +1 -1
  324. package/dist/hooks/pre-compact/index.js +3 -4
  325. package/dist/hooks/pre-compact/index.js.map +1 -1
  326. package/dist/hooks/ralph-loop/index.d.ts +116 -0
  327. package/dist/hooks/ralph-loop/index.d.ts.map +1 -0
  328. package/dist/hooks/ralph-loop/index.js +322 -0
  329. package/dist/hooks/ralph-loop/index.js.map +1 -0
  330. package/dist/hooks/ralph-prd/index.d.ts +130 -0
  331. package/dist/hooks/ralph-prd/index.d.ts.map +1 -0
  332. package/dist/hooks/ralph-prd/index.js +310 -0
  333. package/dist/hooks/ralph-prd/index.js.map +1 -0
  334. package/dist/hooks/ralph-progress/index.d.ts +102 -0
  335. package/dist/hooks/ralph-progress/index.d.ts.map +1 -0
  336. package/dist/hooks/ralph-progress/index.js +408 -0
  337. package/dist/hooks/ralph-progress/index.js.map +1 -0
  338. package/dist/hooks/ralph-verifier/index.d.ts +72 -0
  339. package/dist/hooks/ralph-verifier/index.d.ts.map +1 -0
  340. package/dist/hooks/ralph-verifier/index.js +223 -0
  341. package/dist/hooks/ralph-verifier/index.js.map +1 -0
  342. package/dist/hooks/session-recovery/constants.d.ts +56 -0
  343. package/dist/hooks/session-recovery/constants.d.ts.map +1 -0
  344. package/dist/hooks/session-recovery/constants.js +78 -0
  345. package/dist/hooks/session-recovery/constants.js.map +1 -0
  346. package/dist/hooks/session-recovery/index.d.ts +53 -0
  347. package/dist/hooks/session-recovery/index.d.ts.map +1 -0
  348. package/dist/hooks/session-recovery/index.js +321 -0
  349. package/dist/hooks/session-recovery/index.js.map +1 -0
  350. package/dist/hooks/session-recovery/storage.d.ts +76 -0
  351. package/dist/hooks/session-recovery/storage.d.ts.map +1 -0
  352. package/dist/hooks/session-recovery/storage.js +383 -0
  353. package/dist/hooks/session-recovery/storage.js.map +1 -0
  354. package/dist/hooks/session-recovery/types.d.ts +145 -0
  355. package/dist/hooks/session-recovery/types.d.ts.map +1 -0
  356. package/dist/hooks/session-recovery/types.js +8 -0
  357. package/dist/hooks/session-recovery/types.js.map +1 -0
  358. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +23 -0
  359. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +1 -0
  360. package/dist/hooks/sisyphus-orchestrator/constants.js +142 -0
  361. package/dist/hooks/sisyphus-orchestrator/constants.js.map +1 -0
  362. package/dist/hooks/sisyphus-orchestrator/index.d.ts +113 -0
  363. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +1 -0
  364. package/dist/hooks/sisyphus-orchestrator/index.js +309 -0
  365. package/dist/hooks/sisyphus-orchestrator/index.js.map +1 -0
  366. package/dist/hooks/ultraqa-loop/index.d.ts +94 -0
  367. package/dist/hooks/ultraqa-loop/index.d.ts.map +1 -0
  368. package/dist/hooks/ultraqa-loop/index.js +216 -0
  369. package/dist/hooks/ultraqa-loop/index.js.map +1 -0
  370. package/dist/hooks/ultrawork-state/index.d.ts +62 -0
  371. package/dist/hooks/ultrawork-state/index.d.ts.map +1 -0
  372. package/dist/hooks/ultrawork-state/index.js +208 -0
  373. package/dist/hooks/ultrawork-state/index.js.map +1 -0
  374. package/dist/hud/analytics-display.d.ts.map +1 -1
  375. package/dist/hud/analytics-display.js +0 -1
  376. package/dist/hud/analytics-display.js.map +1 -1
  377. package/dist/hud/index.js +52 -3
  378. package/dist/hud/index.js.map +1 -1
  379. package/dist/hud/sisyphus-state.d.ts +31 -0
  380. package/dist/hud/sisyphus-state.d.ts.map +1 -0
  381. package/dist/hud/sisyphus-state.js +163 -0
  382. package/dist/hud/sisyphus-state.js.map +1 -0
  383. package/dist/installer/index.d.ts +1 -1
  384. package/dist/installer/index.js +1 -1
  385. package/package.json +1 -1
  386. package/scripts/github-webhook-server.ts +141 -0
  387. package/skills/hud/SKILL.md +3 -1
@@ -0,0 +1,216 @@
1
+ /**
2
+ * UltraQA Loop Hook
3
+ *
4
+ * QA cycling workflow that runs test → architect verify → fix → repeat
5
+ * until the QA goal is met or max cycles reached.
6
+ */
7
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from 'fs';
8
+ import { join } from 'path';
9
+ import { readRalphState } from '../ralph-loop/index.js';
10
+ const DEFAULT_MAX_CYCLES = 5;
11
+ const SAME_FAILURE_THRESHOLD = 3;
12
+ /**
13
+ * Get the state file path for UltraQA
14
+ */
15
+ function getStateFilePath(directory) {
16
+ const omcDir = join(directory, '.omc');
17
+ return join(omcDir, 'ultraqa-state.json');
18
+ }
19
+ /**
20
+ * Ensure the .omc directory exists
21
+ */
22
+ function ensureStateDir(directory) {
23
+ const omcDir = join(directory, '.omc');
24
+ if (!existsSync(omcDir)) {
25
+ mkdirSync(omcDir, { recursive: true });
26
+ }
27
+ }
28
+ /**
29
+ * Read UltraQA state from disk
30
+ */
31
+ export function readUltraQAState(directory) {
32
+ const stateFile = getStateFilePath(directory);
33
+ if (!existsSync(stateFile)) {
34
+ return null;
35
+ }
36
+ try {
37
+ const content = readFileSync(stateFile, 'utf-8');
38
+ return JSON.parse(content);
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
44
+ /**
45
+ * Write UltraQA state to disk
46
+ */
47
+ export function writeUltraQAState(directory, state) {
48
+ try {
49
+ ensureStateDir(directory);
50
+ const stateFile = getStateFilePath(directory);
51
+ writeFileSync(stateFile, JSON.stringify(state, null, 2));
52
+ return true;
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ }
58
+ /**
59
+ * Clear UltraQA state
60
+ */
61
+ export function clearUltraQAState(directory) {
62
+ const stateFile = getStateFilePath(directory);
63
+ if (!existsSync(stateFile)) {
64
+ return true;
65
+ }
66
+ try {
67
+ unlinkSync(stateFile);
68
+ return true;
69
+ }
70
+ catch {
71
+ return false;
72
+ }
73
+ }
74
+ /**
75
+ * Check if Ralph Loop is active (mutual exclusion check)
76
+ */
77
+ export function isRalphLoopActive(directory) {
78
+ const ralphState = readRalphState(directory);
79
+ return ralphState !== null && ralphState.active === true;
80
+ }
81
+ /**
82
+ * Start a new UltraQA cycle
83
+ * Returns false if Ralph Loop is already active (mutual exclusion)
84
+ */
85
+ export function startUltraQA(directory, goalType, sessionId, options) {
86
+ // Mutual exclusion check: cannot start UltraQA if Ralph Loop is active
87
+ if (isRalphLoopActive(directory)) {
88
+ return {
89
+ success: false,
90
+ error: 'Cannot start UltraQA while Ralph Loop is active. Cancel Ralph Loop first with /oh-my-claudecode:cancel-ralph.'
91
+ };
92
+ }
93
+ const state = {
94
+ active: true,
95
+ goal_type: goalType,
96
+ goal_pattern: options?.customPattern ?? null,
97
+ cycle: 1,
98
+ max_cycles: options?.maxCycles ?? DEFAULT_MAX_CYCLES,
99
+ failures: [],
100
+ started_at: new Date().toISOString(),
101
+ session_id: sessionId
102
+ };
103
+ const written = writeUltraQAState(directory, state);
104
+ return { success: written };
105
+ }
106
+ /**
107
+ * Record a failure and increment cycle
108
+ */
109
+ export function recordFailure(directory, failureDescription) {
110
+ const state = readUltraQAState(directory);
111
+ if (!state || !state.active) {
112
+ return { state: null, shouldExit: true, reason: 'not_active' };
113
+ }
114
+ // Add failure to array
115
+ state.failures.push(failureDescription);
116
+ // Check for repeated same failure
117
+ const recentFailures = state.failures.slice(-SAME_FAILURE_THRESHOLD);
118
+ if (recentFailures.length >= SAME_FAILURE_THRESHOLD) {
119
+ const allSame = recentFailures.every(f => normalizeFailure(f) === normalizeFailure(recentFailures[0]));
120
+ if (allSame) {
121
+ return {
122
+ state,
123
+ shouldExit: true,
124
+ reason: `Same failure detected ${SAME_FAILURE_THRESHOLD} times: ${recentFailures[0]}`
125
+ };
126
+ }
127
+ }
128
+ // Increment cycle
129
+ state.cycle += 1;
130
+ // Check max cycles
131
+ if (state.cycle > state.max_cycles) {
132
+ return {
133
+ state,
134
+ shouldExit: true,
135
+ reason: `Max cycles (${state.max_cycles}) reached`
136
+ };
137
+ }
138
+ writeUltraQAState(directory, state);
139
+ return { state, shouldExit: false };
140
+ }
141
+ /**
142
+ * Mark UltraQA as successful
143
+ */
144
+ export function completeUltraQA(directory) {
145
+ const state = readUltraQAState(directory);
146
+ if (!state) {
147
+ return null;
148
+ }
149
+ const result = {
150
+ success: true,
151
+ cycles: state.cycle,
152
+ reason: 'goal_met'
153
+ };
154
+ clearUltraQAState(directory);
155
+ return result;
156
+ }
157
+ /**
158
+ * Stop UltraQA with failure
159
+ */
160
+ export function stopUltraQA(directory, reason, diagnosis) {
161
+ const state = readUltraQAState(directory);
162
+ if (!state) {
163
+ return null;
164
+ }
165
+ const result = {
166
+ success: false,
167
+ cycles: state.cycle,
168
+ reason,
169
+ diagnosis
170
+ };
171
+ clearUltraQAState(directory);
172
+ return result;
173
+ }
174
+ /**
175
+ * Cancel UltraQA
176
+ */
177
+ export function cancelUltraQA(directory) {
178
+ return clearUltraQAState(directory);
179
+ }
180
+ /**
181
+ * Normalize failure description for comparison
182
+ */
183
+ function normalizeFailure(failure) {
184
+ // Remove timestamps, line numbers, and other variable parts
185
+ return failure
186
+ .replace(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/g, '') // ISO timestamps
187
+ .replace(/:\d+:\d+/g, '') // line:col numbers
188
+ .replace(/\d+ms/g, '') // timing
189
+ .replace(/\s+/g, ' ')
190
+ .trim()
191
+ .toLowerCase();
192
+ }
193
+ /**
194
+ * Get goal command based on goal type
195
+ */
196
+ export function getGoalCommand(goalType) {
197
+ switch (goalType) {
198
+ case 'tests':
199
+ return 'npm test';
200
+ case 'build':
201
+ return 'npm run build';
202
+ case 'lint':
203
+ return 'npm run lint';
204
+ case 'typecheck':
205
+ return 'npm run typecheck || tsc --noEmit';
206
+ case 'custom':
207
+ return '# Custom command based on goal pattern';
208
+ }
209
+ }
210
+ /**
211
+ * Format progress message
212
+ */
213
+ export function formatProgressMessage(cycle, maxCycles, status) {
214
+ return `[ULTRAQA Cycle ${cycle}/${maxCycles}] ${status}`;
215
+ }
216
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/ultraqa-loop/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Ultrawork State Management
3
+ *
4
+ * Manages persistent ultrawork mode state across sessions.
5
+ * When ultrawork is activated and todos remain incomplete,
6
+ * this module ensures the mode persists until all work is done.
7
+ */
8
+ export interface UltraworkState {
9
+ /** Whether ultrawork mode is currently active */
10
+ active: boolean;
11
+ /** When ultrawork was activated */
12
+ started_at: string;
13
+ /** The original prompt that triggered ultrawork */
14
+ original_prompt: string;
15
+ /** Session ID the mode is bound to */
16
+ session_id?: string;
17
+ /** Number of times the mode has been reinforced (for metrics) */
18
+ reinforcement_count: number;
19
+ /** Last time the mode was checked/reinforced */
20
+ last_checked_at: string;
21
+ /** Whether this ultrawork session is linked to a ralph-loop session */
22
+ linked_to_ralph?: boolean;
23
+ }
24
+ /**
25
+ * Read Ultrawork state from disk (checks both local and global)
26
+ */
27
+ export declare function readUltraworkState(directory?: string): UltraworkState | null;
28
+ /**
29
+ * Write Ultrawork state to disk (both local and global for redundancy)
30
+ */
31
+ export declare function writeUltraworkState(state: UltraworkState, directory?: string): boolean;
32
+ /**
33
+ * Activate ultrawork mode
34
+ */
35
+ export declare function activateUltrawork(prompt: string, sessionId?: string, directory?: string, linkedToRalph?: boolean): boolean;
36
+ /**
37
+ * Deactivate ultrawork mode
38
+ */
39
+ export declare function deactivateUltrawork(directory?: string): boolean;
40
+ /**
41
+ * Increment reinforcement count (called when mode is reinforced on stop)
42
+ */
43
+ export declare function incrementReinforcement(directory?: string): UltraworkState | null;
44
+ /**
45
+ * Check if ultrawork should be reinforced (active with pending todos)
46
+ */
47
+ export declare function shouldReinforceUltrawork(sessionId?: string, directory?: string): boolean;
48
+ /**
49
+ * Get ultrawork persistence message for injection
50
+ */
51
+ export declare function getUltraworkPersistenceMessage(state: UltraworkState): string;
52
+ /**
53
+ * Create an Ultrawork State hook instance
54
+ */
55
+ export declare function createUltraworkStateHook(directory: string): {
56
+ activate: (prompt: string, sessionId?: string) => boolean;
57
+ deactivate: () => boolean;
58
+ getState: () => UltraworkState | null;
59
+ shouldReinforce: (sessionId?: string) => boolean;
60
+ incrementReinforcement: () => UltraworkState | null;
61
+ };
62
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/ultrawork-state/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA+CD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAwB5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAgBtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAYT;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAuB/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAehF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAaT;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAuB5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM;uBAEnC,MAAM,cAAc,MAAM;;;kCAIf,MAAM;;EAIvC"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Ultrawork State Management
3
+ *
4
+ * Manages persistent ultrawork mode state across sessions.
5
+ * When ultrawork is activated and todos remain incomplete,
6
+ * this module ensures the mode persists until all work is done.
7
+ */
8
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from 'fs';
9
+ import { join } from 'path';
10
+ import { homedir } from 'os';
11
+ const _DEFAULT_STATE = {
12
+ active: false,
13
+ started_at: '',
14
+ original_prompt: '',
15
+ reinforcement_count: 0,
16
+ last_checked_at: ''
17
+ };
18
+ /**
19
+ * Get the state file path for Ultrawork
20
+ */
21
+ function getStateFilePath(directory) {
22
+ const baseDir = directory || process.cwd();
23
+ const omcDir = join(baseDir, '.omc');
24
+ return join(omcDir, 'ultrawork-state.json');
25
+ }
26
+ /**
27
+ * Get global state file path (for cross-session persistence)
28
+ */
29
+ function getGlobalStateFilePath() {
30
+ return join(homedir(), '.claude', 'ultrawork-state.json');
31
+ }
32
+ /**
33
+ * Ensure the .omc directory exists
34
+ */
35
+ function ensureStateDir(directory) {
36
+ const baseDir = directory || process.cwd();
37
+ const omcDir = join(baseDir, '.omc');
38
+ if (!existsSync(omcDir)) {
39
+ mkdirSync(omcDir, { recursive: true });
40
+ }
41
+ }
42
+ /**
43
+ * Ensure the ~/.claude directory exists
44
+ */
45
+ function ensureGlobalStateDir() {
46
+ const claudeDir = join(homedir(), '.claude');
47
+ if (!existsSync(claudeDir)) {
48
+ mkdirSync(claudeDir, { recursive: true });
49
+ }
50
+ }
51
+ /**
52
+ * Read Ultrawork state from disk (checks both local and global)
53
+ */
54
+ export function readUltraworkState(directory) {
55
+ // Check local state first
56
+ const localStateFile = getStateFilePath(directory);
57
+ if (existsSync(localStateFile)) {
58
+ try {
59
+ const content = readFileSync(localStateFile, 'utf-8');
60
+ return JSON.parse(content);
61
+ }
62
+ catch {
63
+ // Fall through to global check
64
+ }
65
+ }
66
+ // Check global state
67
+ const globalStateFile = getGlobalStateFilePath();
68
+ if (existsSync(globalStateFile)) {
69
+ try {
70
+ const content = readFileSync(globalStateFile, 'utf-8');
71
+ return JSON.parse(content);
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ return null;
78
+ }
79
+ /**
80
+ * Write Ultrawork state to disk (both local and global for redundancy)
81
+ */
82
+ export function writeUltraworkState(state, directory) {
83
+ try {
84
+ // Write to local .omc
85
+ ensureStateDir(directory);
86
+ const localStateFile = getStateFilePath(directory);
87
+ writeFileSync(localStateFile, JSON.stringify(state, null, 2));
88
+ // Write to global ~/.claude for cross-session persistence
89
+ ensureGlobalStateDir();
90
+ const globalStateFile = getGlobalStateFilePath();
91
+ writeFileSync(globalStateFile, JSON.stringify(state, null, 2));
92
+ return true;
93
+ }
94
+ catch {
95
+ return false;
96
+ }
97
+ }
98
+ /**
99
+ * Activate ultrawork mode
100
+ */
101
+ export function activateUltrawork(prompt, sessionId, directory, linkedToRalph) {
102
+ const state = {
103
+ active: true,
104
+ started_at: new Date().toISOString(),
105
+ original_prompt: prompt,
106
+ session_id: sessionId,
107
+ reinforcement_count: 0,
108
+ last_checked_at: new Date().toISOString(),
109
+ linked_to_ralph: linkedToRalph
110
+ };
111
+ return writeUltraworkState(state, directory);
112
+ }
113
+ /**
114
+ * Deactivate ultrawork mode
115
+ */
116
+ export function deactivateUltrawork(directory) {
117
+ // Remove local state
118
+ const localStateFile = getStateFilePath(directory);
119
+ if (existsSync(localStateFile)) {
120
+ try {
121
+ unlinkSync(localStateFile);
122
+ }
123
+ catch {
124
+ // Continue to global cleanup
125
+ }
126
+ }
127
+ // Remove global state
128
+ const globalStateFile = getGlobalStateFilePath();
129
+ if (existsSync(globalStateFile)) {
130
+ try {
131
+ unlinkSync(globalStateFile);
132
+ return true;
133
+ }
134
+ catch {
135
+ return false;
136
+ }
137
+ }
138
+ return true;
139
+ }
140
+ /**
141
+ * Increment reinforcement count (called when mode is reinforced on stop)
142
+ */
143
+ export function incrementReinforcement(directory) {
144
+ const state = readUltraworkState(directory);
145
+ if (!state || !state.active) {
146
+ return null;
147
+ }
148
+ state.reinforcement_count += 1;
149
+ state.last_checked_at = new Date().toISOString();
150
+ if (writeUltraworkState(state, directory)) {
151
+ return state;
152
+ }
153
+ return null;
154
+ }
155
+ /**
156
+ * Check if ultrawork should be reinforced (active with pending todos)
157
+ */
158
+ export function shouldReinforceUltrawork(sessionId, directory) {
159
+ const state = readUltraworkState(directory);
160
+ if (!state || !state.active) {
161
+ return false;
162
+ }
163
+ // If bound to a session, only reinforce for that session
164
+ if (state.session_id && sessionId && state.session_id !== sessionId) {
165
+ return false;
166
+ }
167
+ return true;
168
+ }
169
+ /**
170
+ * Get ultrawork persistence message for injection
171
+ */
172
+ export function getUltraworkPersistenceMessage(state) {
173
+ return `<ultrawork-persistence>
174
+
175
+ [ULTRAWORK MODE STILL ACTIVE - Reinforcement #${state.reinforcement_count + 1}]
176
+
177
+ Your ultrawork session is NOT complete. Incomplete todos remain.
178
+
179
+ REMEMBER THE ULTRAWORK RULES:
180
+ - **PARALLEL**: Fire independent calls simultaneously - NEVER wait sequentially
181
+ - **BACKGROUND FIRST**: Use Task(run_in_background=true) for exploration (10+ concurrent)
182
+ - **TODO**: Track EVERY step. Mark complete IMMEDIATELY after each
183
+ - **VERIFY**: Check ALL requirements met before done
184
+ - **NO Premature Stopping**: ALL TODOs must be complete
185
+
186
+ Continue working on the next pending task. DO NOT STOP until all tasks are marked complete.
187
+
188
+ Original task: ${state.original_prompt}
189
+
190
+ </ultrawork-persistence>
191
+
192
+ ---
193
+
194
+ `;
195
+ }
196
+ /**
197
+ * Create an Ultrawork State hook instance
198
+ */
199
+ export function createUltraworkStateHook(directory) {
200
+ return {
201
+ activate: (prompt, sessionId) => activateUltrawork(prompt, sessionId, directory),
202
+ deactivate: () => deactivateUltrawork(directory),
203
+ getState: () => readUltraworkState(directory),
204
+ shouldReinforce: (sessionId) => shouldReinforceUltrawork(sessionId, directory),
205
+ incrementReinforcement: () => incrementReinforcement(directory)
206
+ };
207
+ }
208
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/ultrawork-state/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-display.d.ts","sourceRoot":"","sources":["../../src/hud/analytics-display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA2DrE;AAiCD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAIvE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,OAAO,GACjB,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBtD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,aAAa,GAAG,0BAA0B,CAUtG;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAKjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAUxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAQ1E"}
1
+ {"version":3,"file":"analytics-display.d.ts","sourceRoot":"","sources":["../../src/hud/analytics-display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA2DrE;AAiCD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAIvE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,OAAO,GACjB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBtD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,aAAa,GAAG,0BAA0B,CAUtG;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAKjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAUxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAQ1E"}
@@ -113,7 +113,6 @@ export function renderAnalyticsLineWithConfig(analytics, showCost, showCache) {
113
113
  const costIndicator = getCostColorIndicator(analytics.costColor);
114
114
  parts.push(`${costIndicator} Cost: ${analytics.sessionCost}`);
115
115
  }
116
- parts.push(`Tokens: ${analytics.sessionTokens}`);
117
116
  if (showCache) {
118
117
  parts.push(`Cache: ${analytics.cacheEfficiency}`);
119
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-display.js","sourceRoot":"","sources":["../../src/hud/analytics-display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics-display.js","sourceRoot":"","sources":["../../src/hud/analytics-display.ts"],"names":[],"mappings":"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"}
package/dist/hud/index.js CHANGED
@@ -22,15 +22,35 @@ let previousSnapshot = null;
22
22
  */
23
23
  async function recordTokenUsage(stdin, transcriptData) {
24
24
  try {
25
+ // Debug: Log stdin.context_window data
26
+ if (process.env.OMC_DEBUG) {
27
+ console.error('[TokenRecording] stdin.context_window:', JSON.stringify(stdin.context_window));
28
+ }
25
29
  // Get model name from stdin
26
30
  const modelName = getModelName(stdin);
27
31
  // Get running agents from transcript
28
32
  const runningAgents = transcriptData.agents?.filter((a) => a.status === 'running') ?? [];
29
33
  const agentName = runningAgents.length > 0 ? runningAgents[0].name : undefined;
34
+ if (process.env.OMC_DEBUG) {
35
+ console.error('[TokenRecording] agentName determined:', agentName);
36
+ }
30
37
  // Extract tokens (delta from previous)
31
38
  const extracted = extractTokens(stdin, previousSnapshot, modelName, agentName);
39
+ if (process.env.OMC_DEBUG) {
40
+ console.error('[TokenRecording] extracted tokens:', {
41
+ inputTokens: extracted.inputTokens,
42
+ outputTokens: extracted.outputTokens,
43
+ cacheCreationTokens: extracted.cacheCreationTokens,
44
+ cacheReadTokens: extracted.cacheReadTokens,
45
+ agentName: extracted.agentName,
46
+ modelName: extracted.modelName
47
+ });
48
+ }
32
49
  // Only record if there's actual token usage
33
50
  if (extracted.inputTokens > 0 || extracted.cacheCreationTokens > 0) {
51
+ if (process.env.OMC_DEBUG) {
52
+ console.error('[TokenRecording] Recording condition PASSED - recording usage');
53
+ }
34
54
  // Get session ID
35
55
  const sessionId = extractSessionId(stdin.transcript_path);
36
56
  // Get tracker and record
@@ -43,13 +63,23 @@ async function recordTokenUsage(stdin, transcriptData) {
43
63
  cacheCreationTokens: extracted.cacheCreationTokens,
44
64
  cacheReadTokens: extracted.cacheReadTokens
45
65
  });
66
+ if (process.env.OMC_DEBUG) {
67
+ console.error('[TokenRecording] Successfully recorded usage for agent:', extracted.agentName);
68
+ }
69
+ }
70
+ else {
71
+ if (process.env.OMC_DEBUG) {
72
+ console.error('[TokenRecording] Recording condition FAILED - no token delta detected');
73
+ }
46
74
  }
47
75
  // Update snapshot for next render
48
76
  previousSnapshot = createSnapshot(stdin);
49
77
  }
50
78
  catch (error) {
51
79
  // Silent failure - don't break HUD rendering
52
- // console.error('[Analytics] Token recording failed:', error);
80
+ if (process.env.OMC_DEBUG) {
81
+ console.error('[Analytics] Token recording failed:', error);
82
+ }
53
83
  }
54
84
  }
55
85
  /**
@@ -150,9 +180,28 @@ async function calculateSessionHealth(sessionStart, contextPercent, stdin) {
150
180
  health = 'warning';
151
181
  }
152
182
  }
153
- catch {
183
+ catch (error) {
184
+ if (process.env.OMC_DEBUG) {
185
+ console.error('[HUD] Cost calculation failed:', error);
186
+ }
154
187
  // Cost calculation failed - continue with zeros
155
188
  }
189
+ // Get top agents from tracker
190
+ let topAgents = [];
191
+ try {
192
+ const sessionId = extractSessionId(stdin.transcript_path);
193
+ if (sessionId) {
194
+ const tracker = getTokenTracker(sessionId);
195
+ const agents = await tracker.getTopAgents(3);
196
+ topAgents = agents.map(a => ({ agent: a.agent, cost: a.cost }));
197
+ }
198
+ }
199
+ catch (error) {
200
+ if (process.env.OMC_DEBUG) {
201
+ console.error('[HUD] Top agents fetch failed:', error);
202
+ }
203
+ // Top agents fetch failed - continue with empty
204
+ }
156
205
  return {
157
206
  durationMinutes,
158
207
  messageCount: 0,
@@ -160,7 +209,7 @@ async function calculateSessionHealth(sessionStart, contextPercent, stdin) {
160
209
  sessionCost,
161
210
  totalTokens,
162
211
  cacheHitRate,
163
- topAgents: [],
212
+ topAgents,
164
213
  costPerHour,
165
214
  isEstimated
166
215
  };