oh-my-claude-sisyphus 3.7.4 → 3.7.6

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 (427) hide show
  1. package/commands/hud.md +3 -1
  2. package/dist/__tests__/analytics/output-estimator.test.js +18 -0
  3. package/dist/__tests__/analytics/output-estimator.test.js.map +1 -1
  4. package/dist/__tests__/analytics/token-extractor.test.js +44 -0
  5. package/dist/__tests__/analytics/token-extractor.test.js.map +1 -1
  6. package/dist/__tests__/analytics/token-tracker.test.d.ts +2 -0
  7. package/dist/__tests__/analytics/token-tracker.test.d.ts.map +1 -0
  8. package/dist/__tests__/analytics/token-tracker.test.js +189 -0
  9. package/dist/__tests__/analytics/token-tracker.test.js.map +1 -0
  10. package/dist/__tests__/hud/analytics-display.test.js +3 -8
  11. package/dist/__tests__/hud/analytics-display.test.js.map +1 -1
  12. package/dist/__tests__/hud/top-agents.test.d.ts +8 -0
  13. package/dist/__tests__/hud/top-agents.test.d.ts.map +1 -0
  14. package/dist/__tests__/hud/top-agents.test.js +157 -0
  15. package/dist/__tests__/hud/top-agents.test.js.map +1 -0
  16. package/dist/__tests__/installer.test.js +1 -1
  17. package/dist/analytics/output-estimator.d.ts.map +1 -1
  18. package/dist/analytics/output-estimator.js +5 -1
  19. package/dist/analytics/output-estimator.js.map +1 -1
  20. package/dist/analytics/token-extractor.js +2 -2
  21. package/dist/analytics/token-extractor.js.map +1 -1
  22. package/dist/cli/analytics.js +0 -0
  23. package/dist/cli/index.js +0 -0
  24. package/dist/hooks/pre-compact/index.d.ts +2 -4
  25. package/dist/hooks/pre-compact/index.d.ts.map +1 -1
  26. package/dist/hooks/pre-compact/index.js +3 -4
  27. package/dist/hooks/pre-compact/index.js.map +1 -1
  28. package/dist/hud/analytics-display.d.ts.map +1 -1
  29. package/dist/hud/analytics-display.js +0 -1
  30. package/dist/hud/analytics-display.js.map +1 -1
  31. package/dist/hud/index.js +52 -3
  32. package/dist/hud/index.js.map +1 -1
  33. package/dist/installer/index.d.ts +1 -1
  34. package/dist/installer/index.js +1 -1
  35. package/dist/tools/ast-tools.d.ts.map +1 -1
  36. package/dist/tools/ast-tools.js +39 -19
  37. package/dist/tools/ast-tools.js.map +1 -1
  38. package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts +5 -0
  39. package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts.map +1 -0
  40. package/dist/tools/diagnostics/__tests__/detectProjectType.test.js +42 -0
  41. package/dist/tools/diagnostics/__tests__/detectProjectType.test.js.map +1 -0
  42. package/dist/tools/diagnostics/__tests__/integration.test.d.ts +5 -0
  43. package/dist/tools/diagnostics/__tests__/integration.test.d.ts.map +1 -0
  44. package/dist/tools/diagnostics/__tests__/integration.test.js +66 -0
  45. package/dist/tools/diagnostics/__tests__/integration.test.js.map +1 -0
  46. package/dist/tools/diagnostics/__tests__/parser-tests.d.ts +5 -0
  47. package/dist/tools/diagnostics/__tests__/parser-tests.d.ts.map +1 -0
  48. package/dist/tools/diagnostics/__tests__/parser-tests.js +86 -0
  49. package/dist/tools/diagnostics/__tests__/parser-tests.js.map +1 -0
  50. package/dist/tools/diagnostics/__tests__/parsers.test.d.ts +5 -0
  51. package/dist/tools/diagnostics/__tests__/parsers.test.d.ts.map +1 -0
  52. package/dist/tools/diagnostics/__tests__/parsers.test.js +199 -0
  53. package/dist/tools/diagnostics/__tests__/parsers.test.js.map +1 -0
  54. package/dist/tools/diagnostics/constants.d.ts +9 -0
  55. package/dist/tools/diagnostics/constants.d.ts.map +1 -0
  56. package/dist/tools/diagnostics/constants.js +9 -0
  57. package/dist/tools/diagnostics/constants.js.map +1 -0
  58. package/dist/tools/diagnostics/go-runner.d.ts +31 -0
  59. package/dist/tools/diagnostics/go-runner.d.ts.map +1 -0
  60. package/dist/tools/diagnostics/go-runner.js +78 -0
  61. package/dist/tools/diagnostics/go-runner.js.map +1 -0
  62. package/dist/tools/diagnostics/index.d.ts +32 -7
  63. package/dist/tools/diagnostics/index.d.ts.map +1 -1
  64. package/dist/tools/diagnostics/index.js +171 -41
  65. package/dist/tools/diagnostics/index.js.map +1 -1
  66. package/dist/tools/diagnostics/lsp-aggregator.d.ts +13 -1
  67. package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -1
  68. package/dist/tools/diagnostics/lsp-aggregator.js +32 -4
  69. package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
  70. package/dist/tools/diagnostics/python-runner.d.ts +39 -0
  71. package/dist/tools/diagnostics/python-runner.d.ts.map +1 -0
  72. package/dist/tools/diagnostics/python-runner.js +200 -0
  73. package/dist/tools/diagnostics/python-runner.js.map +1 -0
  74. package/dist/tools/diagnostics/rust-runner.d.ts +34 -0
  75. package/dist/tools/diagnostics/rust-runner.d.ts.map +1 -0
  76. package/dist/tools/diagnostics/rust-runner.js +106 -0
  77. package/dist/tools/diagnostics/rust-runner.js.map +1 -0
  78. package/dist/tools/diagnostics/tsc-runner.d.ts +6 -0
  79. package/dist/tools/diagnostics/tsc-runner.d.ts.map +1 -1
  80. package/dist/tools/diagnostics/tsc-runner.js +32 -5
  81. package/dist/tools/diagnostics/tsc-runner.js.map +1 -1
  82. package/dist/tools/lsp/client.d.ts.map +1 -1
  83. package/dist/tools/lsp/client.js +26 -1
  84. package/dist/tools/lsp/client.js.map +1 -1
  85. package/dist/tools/lsp/servers.d.ts +3 -0
  86. package/dist/tools/lsp/servers.d.ts.map +1 -1
  87. package/dist/tools/lsp/servers.js +111 -4
  88. package/dist/tools/lsp/servers.js.map +1 -1
  89. package/dist/tools/lsp-tools.d.ts +2 -2
  90. package/dist/tools/lsp-tools.d.ts.map +1 -1
  91. package/dist/tools/lsp-tools.js +2 -2
  92. package/dist/tools/lsp-tools.js.map +1 -1
  93. package/package.json +1 -1
  94. package/skills/hud/SKILL.md +3 -1
  95. package/dist/__tests__/analytics/analytics-summary.test.d.ts +0 -2
  96. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +0 -1
  97. package/dist/__tests__/analytics/analytics-summary.test.js +0 -267
  98. package/dist/__tests__/analytics/analytics-summary.test.js.map +0 -1
  99. package/dist/__tests__/analytics/cost-estimator.test.d.ts +0 -2
  100. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +0 -1
  101. package/dist/__tests__/analytics/cost-estimator.test.js +0 -212
  102. package/dist/__tests__/analytics/cost-estimator.test.js.map +0 -1
  103. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +0 -7
  104. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +0 -1
  105. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +0 -374
  106. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +0 -1
  107. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +0 -2
  108. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +0 -1
  109. package/dist/__tests__/hud/auto-tracking.integration.test.js +0 -12
  110. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +0 -1
  111. package/dist/__tests__/learned-skills/config.test.d.ts +0 -2
  112. package/dist/__tests__/learned-skills/config.test.d.ts.map +0 -1
  113. package/dist/__tests__/learned-skills/config.test.js +0 -37
  114. package/dist/__tests__/learned-skills/config.test.js.map +0 -1
  115. package/dist/__tests__/learned-skills/detector.test.d.ts +0 -2
  116. package/dist/__tests__/learned-skills/detector.test.d.ts.map +0 -1
  117. package/dist/__tests__/learned-skills/detector.test.js +0 -99
  118. package/dist/__tests__/learned-skills/detector.test.js.map +0 -1
  119. package/dist/__tests__/learned-skills/finder.test.d.ts +0 -2
  120. package/dist/__tests__/learned-skills/finder.test.d.ts.map +0 -1
  121. package/dist/__tests__/learned-skills/finder.test.js +0 -59
  122. package/dist/__tests__/learned-skills/finder.test.js.map +0 -1
  123. package/dist/__tests__/learned-skills/loader.test.d.ts +0 -2
  124. package/dist/__tests__/learned-skills/loader.test.d.ts.map +0 -1
  125. package/dist/__tests__/learned-skills/loader.test.js +0 -69
  126. package/dist/__tests__/learned-skills/loader.test.js.map +0 -1
  127. package/dist/__tests__/learned-skills/parser.test.d.ts +0 -2
  128. package/dist/__tests__/learned-skills/parser.test.d.ts.map +0 -1
  129. package/dist/__tests__/learned-skills/parser.test.js +0 -81
  130. package/dist/__tests__/learned-skills/parser.test.js.map +0 -1
  131. package/dist/__tests__/learned-skills/validator.test.d.ts +0 -2
  132. package/dist/__tests__/learned-skills/validator.test.d.ts.map +0 -1
  133. package/dist/__tests__/learned-skills/validator.test.js +0 -85
  134. package/dist/__tests__/learned-skills/validator.test.js.map +0 -1
  135. package/dist/agents/codex-agents.d.ts +0 -20
  136. package/dist/agents/codex-agents.d.ts.map +0 -1
  137. package/dist/agents/codex-agents.js +0 -36
  138. package/dist/agents/codex-agents.js.map +0 -1
  139. package/dist/agents/document-writer.d.ts +0 -11
  140. package/dist/agents/document-writer.d.ts.map +0 -1
  141. package/dist/agents/document-writer.js +0 -209
  142. package/dist/agents/document-writer.js.map +0 -1
  143. package/dist/agents/frontend-engineer.d.ts +0 -11
  144. package/dist/agents/frontend-engineer.d.ts.map +0 -1
  145. package/dist/agents/frontend-engineer.js +0 -115
  146. package/dist/agents/frontend-engineer.js.map +0 -1
  147. package/dist/agents/librarian.d.ts +0 -12
  148. package/dist/agents/librarian.d.ts.map +0 -1
  149. package/dist/agents/librarian.js +0 -103
  150. package/dist/agents/librarian.js.map +0 -1
  151. package/dist/agents/metis.d.ts +0 -12
  152. package/dist/agents/metis.d.ts.map +0 -1
  153. package/dist/agents/metis.js +0 -117
  154. package/dist/agents/metis.js.map +0 -1
  155. package/dist/agents/momus.d.ts +0 -12
  156. package/dist/agents/momus.d.ts.map +0 -1
  157. package/dist/agents/momus.js +0 -128
  158. package/dist/agents/momus.js.map +0 -1
  159. package/dist/agents/multimodal-looker.d.ts +0 -11
  160. package/dist/agents/multimodal-looker.d.ts.map +0 -1
  161. package/dist/agents/multimodal-looker.js +0 -70
  162. package/dist/agents/multimodal-looker.js.map +0 -1
  163. package/dist/agents/oracle.d.ts +0 -13
  164. package/dist/agents/oracle.d.ts.map +0 -1
  165. package/dist/agents/oracle.js +0 -191
  166. package/dist/agents/oracle.js.map +0 -1
  167. package/dist/agents/orchestrator-sisyphus.d.ts +0 -11
  168. package/dist/agents/orchestrator-sisyphus.d.ts.map +0 -1
  169. package/dist/agents/orchestrator-sisyphus.js +0 -115
  170. package/dist/agents/orchestrator-sisyphus.js.map +0 -1
  171. package/dist/agents/prometheus.d.ts +0 -12
  172. package/dist/agents/prometheus.d.ts.map +0 -1
  173. package/dist/agents/prometheus.js +0 -195
  174. package/dist/agents/prometheus.js.map +0 -1
  175. package/dist/agents/sisyphus-junior.d.ts +0 -12
  176. package/dist/agents/sisyphus-junior.d.ts.map +0 -1
  177. package/dist/agents/sisyphus-junior.js +0 -93
  178. package/dist/agents/sisyphus-junior.js.map +0 -1
  179. package/dist/cli/components/CostDashboard.d.ts +0 -15
  180. package/dist/cli/components/CostDashboard.d.ts.map +0 -1
  181. package/dist/cli/components/CostDashboard.js +0 -15
  182. package/dist/cli/components/CostDashboard.js.map +0 -1
  183. package/dist/cli/components/LiveStats.d.ts +0 -16
  184. package/dist/cli/components/LiveStats.d.ts.map +0 -1
  185. package/dist/cli/components/LiveStats.js +0 -16
  186. package/dist/cli/components/LiveStats.js.map +0 -1
  187. package/dist/cli/components/SessionBrowser.d.ts +0 -14
  188. package/dist/cli/components/SessionBrowser.d.ts.map +0 -1
  189. package/dist/cli/components/SessionBrowser.js +0 -14
  190. package/dist/cli/components/SessionBrowser.js.map +0 -1
  191. package/dist/cli/tui.d.ts +0 -21
  192. package/dist/cli/tui.d.ts.map +0 -1
  193. package/dist/cli/tui.js +0 -21
  194. package/dist/cli/tui.js.map +0 -1
  195. package/dist/hooks/autopilot/signals.d.ts +0 -20
  196. package/dist/hooks/autopilot/signals.d.ts.map +0 -1
  197. package/dist/hooks/autopilot/signals.js +0 -75
  198. package/dist/hooks/autopilot/signals.js.map +0 -1
  199. package/dist/hooks/autopilot/summary.d.ts +0 -27
  200. package/dist/hooks/autopilot/summary.d.ts.map +0 -1
  201. package/dist/hooks/autopilot/summary.js +0 -160
  202. package/dist/hooks/autopilot/summary.js.map +0 -1
  203. package/dist/hooks/autopilot/transition.d.ts +0 -39
  204. package/dist/hooks/autopilot/transition.d.ts.map +0 -1
  205. package/dist/hooks/autopilot/transition.js +0 -216
  206. package/dist/hooks/autopilot/transition.js.map +0 -1
  207. package/dist/hooks/context-window-limit-recovery/constants.d.ts +0 -28
  208. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +0 -1
  209. package/dist/hooks/context-window-limit-recovery/constants.js +0 -85
  210. package/dist/hooks/context-window-limit-recovery/constants.js.map +0 -1
  211. package/dist/hooks/context-window-limit-recovery/index.d.ts +0 -62
  212. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +0 -1
  213. package/dist/hooks/context-window-limit-recovery/index.js +0 -201
  214. package/dist/hooks/context-window-limit-recovery/index.js.map +0 -1
  215. package/dist/hooks/context-window-limit-recovery/parser.d.ts +0 -31
  216. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +0 -1
  217. package/dist/hooks/context-window-limit-recovery/parser.js +0 -241
  218. package/dist/hooks/context-window-limit-recovery/parser.js.map +0 -1
  219. package/dist/hooks/context-window-limit-recovery/types.d.ts +0 -84
  220. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +0 -1
  221. package/dist/hooks/context-window-limit-recovery/types.js +0 -34
  222. package/dist/hooks/context-window-limit-recovery/types.js.map +0 -1
  223. package/dist/hooks/edit-error-recovery/index.d.ts +0 -62
  224. package/dist/hooks/edit-error-recovery/index.d.ts.map +0 -1
  225. package/dist/hooks/edit-error-recovery/index.js +0 -89
  226. package/dist/hooks/edit-error-recovery/index.js.map +0 -1
  227. package/dist/hooks/github-auto-responder/classifier.d.ts +0 -43
  228. package/dist/hooks/github-auto-responder/classifier.d.ts.map +0 -1
  229. package/dist/hooks/github-auto-responder/classifier.js +0 -150
  230. package/dist/hooks/github-auto-responder/classifier.js.map +0 -1
  231. package/dist/hooks/github-auto-responder/config.d.ts +0 -109
  232. package/dist/hooks/github-auto-responder/config.d.ts.map +0 -1
  233. package/dist/hooks/github-auto-responder/config.js +0 -69
  234. package/dist/hooks/github-auto-responder/config.js.map +0 -1
  235. package/dist/hooks/github-auto-responder/constants.d.ts +0 -45
  236. package/dist/hooks/github-auto-responder/constants.d.ts.map +0 -1
  237. package/dist/hooks/github-auto-responder/constants.js +0 -60
  238. package/dist/hooks/github-auto-responder/constants.js.map +0 -1
  239. package/dist/hooks/github-auto-responder/filters.d.ts +0 -95
  240. package/dist/hooks/github-auto-responder/filters.d.ts.map +0 -1
  241. package/dist/hooks/github-auto-responder/filters.js +0 -174
  242. package/dist/hooks/github-auto-responder/filters.js.map +0 -1
  243. package/dist/hooks/github-auto-responder/github-client.d.ts +0 -65
  244. package/dist/hooks/github-auto-responder/github-client.d.ts.map +0 -1
  245. package/dist/hooks/github-auto-responder/github-client.js +0 -128
  246. package/dist/hooks/github-auto-responder/github-client.js.map +0 -1
  247. package/dist/hooks/github-auto-responder/idempotency.d.ts +0 -68
  248. package/dist/hooks/github-auto-responder/idempotency.d.ts.map +0 -1
  249. package/dist/hooks/github-auto-responder/idempotency.js +0 -147
  250. package/dist/hooks/github-auto-responder/idempotency.js.map +0 -1
  251. package/dist/hooks/github-auto-responder/index.d.ts +0 -140
  252. package/dist/hooks/github-auto-responder/index.d.ts.map +0 -1
  253. package/dist/hooks/github-auto-responder/index.js +0 -145
  254. package/dist/hooks/github-auto-responder/index.js.map +0 -1
  255. package/dist/hooks/github-auto-responder/persona.d.ts +0 -40
  256. package/dist/hooks/github-auto-responder/persona.d.ts.map +0 -1
  257. package/dist/hooks/github-auto-responder/persona.js +0 -99
  258. package/dist/hooks/github-auto-responder/persona.js.map +0 -1
  259. package/dist/hooks/github-auto-responder/responder.d.ts +0 -122
  260. package/dist/hooks/github-auto-responder/responder.d.ts.map +0 -1
  261. package/dist/hooks/github-auto-responder/responder.js +0 -264
  262. package/dist/hooks/github-auto-responder/responder.js.map +0 -1
  263. package/dist/hooks/github-auto-responder/server.d.ts +0 -140
  264. package/dist/hooks/github-auto-responder/server.d.ts.map +0 -1
  265. package/dist/hooks/github-auto-responder/server.js +0 -301
  266. package/dist/hooks/github-auto-responder/server.js.map +0 -1
  267. package/dist/hooks/github-auto-responder/signature.d.ts +0 -34
  268. package/dist/hooks/github-auto-responder/signature.d.ts.map +0 -1
  269. package/dist/hooks/github-auto-responder/signature.js +0 -79
  270. package/dist/hooks/github-auto-responder/signature.js.map +0 -1
  271. package/dist/hooks/github-auto-responder/templates.d.ts +0 -16
  272. package/dist/hooks/github-auto-responder/templates.d.ts.map +0 -1
  273. package/dist/hooks/github-auto-responder/templates.js +0 -93
  274. package/dist/hooks/github-auto-responder/templates.js.map +0 -1
  275. package/dist/hooks/github-auto-responder/types.d.ts +0 -246
  276. package/dist/hooks/github-auto-responder/types.d.ts.map +0 -1
  277. package/dist/hooks/github-auto-responder/types.js +0 -7
  278. package/dist/hooks/github-auto-responder/types.js.map +0 -1
  279. package/dist/hooks/learned-skills/config.d.ts +0 -53
  280. package/dist/hooks/learned-skills/config.d.ts.map +0 -1
  281. package/dist/hooks/learned-skills/config.js +0 -103
  282. package/dist/hooks/learned-skills/config.js.map +0 -1
  283. package/dist/hooks/learned-skills/constants.d.ts +0 -24
  284. package/dist/hooks/learned-skills/constants.d.ts.map +0 -1
  285. package/dist/hooks/learned-skills/constants.js +0 -26
  286. package/dist/hooks/learned-skills/constants.js.map +0 -1
  287. package/dist/hooks/learned-skills/detection-hook.d.ts +0 -39
  288. package/dist/hooks/learned-skills/detection-hook.d.ts.map +0 -1
  289. package/dist/hooks/learned-skills/detection-hook.js +0 -83
  290. package/dist/hooks/learned-skills/detection-hook.js.map +0 -1
  291. package/dist/hooks/learned-skills/detector.d.ts +0 -30
  292. package/dist/hooks/learned-skills/detector.d.ts.map +0 -1
  293. package/dist/hooks/learned-skills/detector.js +0 -150
  294. package/dist/hooks/learned-skills/detector.js.map +0 -1
  295. package/dist/hooks/learned-skills/finder.d.ts +0 -21
  296. package/dist/hooks/learned-skills/finder.d.ts.map +0 -1
  297. package/dist/hooks/learned-skills/finder.js +0 -117
  298. package/dist/hooks/learned-skills/finder.js.map +0 -1
  299. package/dist/hooks/learned-skills/index.d.ts +0 -62
  300. package/dist/hooks/learned-skills/index.d.ts.map +0 -1
  301. package/dist/hooks/learned-skills/index.js +0 -137
  302. package/dist/hooks/learned-skills/index.js.map +0 -1
  303. package/dist/hooks/learned-skills/loader.d.ts +0 -20
  304. package/dist/hooks/learned-skills/loader.d.ts.map +0 -1
  305. package/dist/hooks/learned-skills/loader.js +0 -107
  306. package/dist/hooks/learned-skills/loader.js.map +0 -1
  307. package/dist/hooks/learned-skills/parser.d.ts +0 -21
  308. package/dist/hooks/learned-skills/parser.d.ts.map +0 -1
  309. package/dist/hooks/learned-skills/parser.js +0 -190
  310. package/dist/hooks/learned-skills/parser.js.map +0 -1
  311. package/dist/hooks/learned-skills/promotion.d.ts +0 -29
  312. package/dist/hooks/learned-skills/promotion.d.ts.map +0 -1
  313. package/dist/hooks/learned-skills/promotion.js +0 -87
  314. package/dist/hooks/learned-skills/promotion.js.map +0 -1
  315. package/dist/hooks/learned-skills/types.d.ts +0 -109
  316. package/dist/hooks/learned-skills/types.d.ts.map +0 -1
  317. package/dist/hooks/learned-skills/types.js +0 -8
  318. package/dist/hooks/learned-skills/types.js.map +0 -1
  319. package/dist/hooks/learned-skills/validator.d.ts +0 -15
  320. package/dist/hooks/learned-skills/validator.d.ts.map +0 -1
  321. package/dist/hooks/learned-skills/validator.js +0 -87
  322. package/dist/hooks/learned-skills/validator.js.map +0 -1
  323. package/dist/hooks/learned-skills/writer.d.ts +0 -27
  324. package/dist/hooks/learned-skills/writer.d.ts.map +0 -1
  325. package/dist/hooks/learned-skills/writer.js +0 -126
  326. package/dist/hooks/learned-skills/writer.js.map +0 -1
  327. package/dist/hooks/mnemosyne/config.d.ts +0 -53
  328. package/dist/hooks/mnemosyne/config.d.ts.map +0 -1
  329. package/dist/hooks/mnemosyne/config.js +0 -103
  330. package/dist/hooks/mnemosyne/config.js.map +0 -1
  331. package/dist/hooks/mnemosyne/constants.d.ts +0 -24
  332. package/dist/hooks/mnemosyne/constants.d.ts.map +0 -1
  333. package/dist/hooks/mnemosyne/constants.js +0 -26
  334. package/dist/hooks/mnemosyne/constants.js.map +0 -1
  335. package/dist/hooks/mnemosyne/detection-hook.d.ts +0 -39
  336. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +0 -1
  337. package/dist/hooks/mnemosyne/detection-hook.js +0 -83
  338. package/dist/hooks/mnemosyne/detection-hook.js.map +0 -1
  339. package/dist/hooks/mnemosyne/detector.d.ts +0 -30
  340. package/dist/hooks/mnemosyne/detector.d.ts.map +0 -1
  341. package/dist/hooks/mnemosyne/detector.js +0 -150
  342. package/dist/hooks/mnemosyne/detector.js.map +0 -1
  343. package/dist/hooks/mnemosyne/finder.d.ts +0 -21
  344. package/dist/hooks/mnemosyne/finder.d.ts.map +0 -1
  345. package/dist/hooks/mnemosyne/finder.js +0 -117
  346. package/dist/hooks/mnemosyne/finder.js.map +0 -1
  347. package/dist/hooks/mnemosyne/index.d.ts +0 -62
  348. package/dist/hooks/mnemosyne/index.d.ts.map +0 -1
  349. package/dist/hooks/mnemosyne/index.js +0 -137
  350. package/dist/hooks/mnemosyne/index.js.map +0 -1
  351. package/dist/hooks/mnemosyne/loader.d.ts +0 -20
  352. package/dist/hooks/mnemosyne/loader.d.ts.map +0 -1
  353. package/dist/hooks/mnemosyne/loader.js +0 -113
  354. package/dist/hooks/mnemosyne/loader.js.map +0 -1
  355. package/dist/hooks/mnemosyne/parser.d.ts +0 -21
  356. package/dist/hooks/mnemosyne/parser.d.ts.map +0 -1
  357. package/dist/hooks/mnemosyne/parser.js +0 -190
  358. package/dist/hooks/mnemosyne/parser.js.map +0 -1
  359. package/dist/hooks/mnemosyne/promotion.d.ts +0 -29
  360. package/dist/hooks/mnemosyne/promotion.d.ts.map +0 -1
  361. package/dist/hooks/mnemosyne/promotion.js +0 -87
  362. package/dist/hooks/mnemosyne/promotion.js.map +0 -1
  363. package/dist/hooks/mnemosyne/types.d.ts +0 -109
  364. package/dist/hooks/mnemosyne/types.d.ts.map +0 -1
  365. package/dist/hooks/mnemosyne/types.js +0 -8
  366. package/dist/hooks/mnemosyne/types.js.map +0 -1
  367. package/dist/hooks/mnemosyne/validator.d.ts +0 -15
  368. package/dist/hooks/mnemosyne/validator.d.ts.map +0 -1
  369. package/dist/hooks/mnemosyne/validator.js +0 -87
  370. package/dist/hooks/mnemosyne/validator.js.map +0 -1
  371. package/dist/hooks/mnemosyne/writer.d.ts +0 -27
  372. package/dist/hooks/mnemosyne/writer.d.ts.map +0 -1
  373. package/dist/hooks/mnemosyne/writer.js +0 -126
  374. package/dist/hooks/mnemosyne/writer.js.map +0 -1
  375. package/dist/hooks/ralph-loop/index.d.ts +0 -116
  376. package/dist/hooks/ralph-loop/index.d.ts.map +0 -1
  377. package/dist/hooks/ralph-loop/index.js +0 -322
  378. package/dist/hooks/ralph-loop/index.js.map +0 -1
  379. package/dist/hooks/ralph-prd/index.d.ts +0 -130
  380. package/dist/hooks/ralph-prd/index.d.ts.map +0 -1
  381. package/dist/hooks/ralph-prd/index.js +0 -310
  382. package/dist/hooks/ralph-prd/index.js.map +0 -1
  383. package/dist/hooks/ralph-progress/index.d.ts +0 -102
  384. package/dist/hooks/ralph-progress/index.d.ts.map +0 -1
  385. package/dist/hooks/ralph-progress/index.js +0 -408
  386. package/dist/hooks/ralph-progress/index.js.map +0 -1
  387. package/dist/hooks/ralph-verifier/index.d.ts +0 -72
  388. package/dist/hooks/ralph-verifier/index.d.ts.map +0 -1
  389. package/dist/hooks/ralph-verifier/index.js +0 -223
  390. package/dist/hooks/ralph-verifier/index.js.map +0 -1
  391. package/dist/hooks/session-recovery/constants.d.ts +0 -56
  392. package/dist/hooks/session-recovery/constants.d.ts.map +0 -1
  393. package/dist/hooks/session-recovery/constants.js +0 -78
  394. package/dist/hooks/session-recovery/constants.js.map +0 -1
  395. package/dist/hooks/session-recovery/index.d.ts +0 -53
  396. package/dist/hooks/session-recovery/index.d.ts.map +0 -1
  397. package/dist/hooks/session-recovery/index.js +0 -321
  398. package/dist/hooks/session-recovery/index.js.map +0 -1
  399. package/dist/hooks/session-recovery/storage.d.ts +0 -76
  400. package/dist/hooks/session-recovery/storage.d.ts.map +0 -1
  401. package/dist/hooks/session-recovery/storage.js +0 -383
  402. package/dist/hooks/session-recovery/storage.js.map +0 -1
  403. package/dist/hooks/session-recovery/types.d.ts +0 -145
  404. package/dist/hooks/session-recovery/types.d.ts.map +0 -1
  405. package/dist/hooks/session-recovery/types.js +0 -8
  406. package/dist/hooks/session-recovery/types.js.map +0 -1
  407. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +0 -23
  408. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +0 -1
  409. package/dist/hooks/sisyphus-orchestrator/constants.js +0 -142
  410. package/dist/hooks/sisyphus-orchestrator/constants.js.map +0 -1
  411. package/dist/hooks/sisyphus-orchestrator/index.d.ts +0 -113
  412. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +0 -1
  413. package/dist/hooks/sisyphus-orchestrator/index.js +0 -309
  414. package/dist/hooks/sisyphus-orchestrator/index.js.map +0 -1
  415. package/dist/hooks/ultraqa-loop/index.d.ts +0 -94
  416. package/dist/hooks/ultraqa-loop/index.d.ts.map +0 -1
  417. package/dist/hooks/ultraqa-loop/index.js +0 -216
  418. package/dist/hooks/ultraqa-loop/index.js.map +0 -1
  419. package/dist/hooks/ultrawork-state/index.d.ts +0 -62
  420. package/dist/hooks/ultrawork-state/index.d.ts.map +0 -1
  421. package/dist/hooks/ultrawork-state/index.js +0 -208
  422. package/dist/hooks/ultrawork-state/index.js.map +0 -1
  423. package/dist/hud/sisyphus-state.d.ts +0 -31
  424. package/dist/hud/sisyphus-state.d.ts.map +0 -1
  425. package/dist/hud/sisyphus-state.js +0 -163
  426. package/dist/hud/sisyphus-state.js.map +0 -1
  427. package/scripts/github-webhook-server.ts +0 -141
@@ -1,301 +0,0 @@
1
- /**
2
- * GitHub Auto Responder - HTTP Webhook Server
3
- *
4
- * HTTP server that receives GitHub webhook events, verifies signatures,
5
- * and delegates to the AutoResponder for processing.
6
- *
7
- * Features:
8
- * - HMAC-SHA256 signature verification for security
9
- * - 1MB body size limit to prevent memory exhaustion
10
- * - Graceful shutdown on SIGTERM/SIGINT
11
- * - Health check endpoint for monitoring
12
- * - Fire-and-forget webhook processing (responds 200 immediately)
13
- * - JSON responses for all endpoints
14
- */
15
- import http from 'node:http';
16
- import { verifySignature } from './signature.js';
17
- /** Maximum request body size (1MB) */
18
- const MAX_BODY_SIZE = 1024 * 1024;
19
- /**
20
- * Read the full request body as a Buffer.
21
- *
22
- * Enforces a maximum size limit to prevent memory exhaustion attacks.
23
- *
24
- * @param req - HTTP request
25
- * @returns Request body as Buffer
26
- * @throws Error if body exceeds MAX_BODY_SIZE
27
- */
28
- async function readBody(req) {
29
- return new Promise((resolve, reject) => {
30
- const chunks = [];
31
- let totalSize = 0;
32
- req.on('data', (chunk) => {
33
- totalSize += chunk.length;
34
- if (totalSize > MAX_BODY_SIZE) {
35
- req.destroy();
36
- reject(new Error(`Request body exceeds ${MAX_BODY_SIZE} bytes`));
37
- return;
38
- }
39
- chunks.push(chunk);
40
- });
41
- req.on('end', () => {
42
- resolve(Buffer.concat(chunks));
43
- });
44
- req.on('error', (err) => {
45
- reject(err);
46
- });
47
- });
48
- }
49
- /**
50
- * HTTP webhook server for GitHub events.
51
- *
52
- * Endpoints:
53
- * - GET /health - Health check (returns 200 with status)
54
- * - POST /webhook - Webhook receiver (signature verification + processing)
55
- * - Other routes - 404 Not Found
56
- *
57
- * Webhook processing is fire-and-forget: the server responds 200 immediately
58
- * after signature verification, then processes asynchronously. Errors during
59
- * processing are logged but don't affect the HTTP response.
60
- *
61
- * @example
62
- * ```typescript
63
- * const responder = createAutoResponder(config);
64
- * await responder.init();
65
- *
66
- * const server = createWebhookServer(responder, config);
67
- * await server.start();
68
- *
69
- * // Later...
70
- * await server.stop();
71
- * ```
72
- */
73
- export class WebhookServer {
74
- responder;
75
- config;
76
- /** HTTP server instance */
77
- server;
78
- /** Whether the server is currently running */
79
- running = false;
80
- /**
81
- * Create a new webhook server.
82
- *
83
- * @param responder - AutoResponder instance for webhook processing
84
- * @param config - Server configuration (port, webhook secret, etc.)
85
- */
86
- constructor(responder, config) {
87
- this.responder = responder;
88
- this.config = config;
89
- this.server = http.createServer((req, res) => this.handleRequest(req, res));
90
- }
91
- /**
92
- * Start the HTTP server and listen on configured port.
93
- *
94
- * @throws Error if server is already running or fails to bind
95
- */
96
- async start() {
97
- if (this.running) {
98
- throw new Error('Server is already running');
99
- }
100
- return new Promise((resolve, reject) => {
101
- this.server.once('error', reject);
102
- this.server.listen(this.config.port, () => {
103
- this.running = true;
104
- console.log(`[webhook-server] Listening on http://localhost:${this.config.port}`);
105
- resolve();
106
- });
107
- });
108
- }
109
- /**
110
- * Route incoming requests to appropriate handlers.
111
- *
112
- * Routes:
113
- * - GET /health → handleHealth()
114
- * - POST /webhook → handleWebhook()
115
- * - Other → 404
116
- *
117
- * @param req - HTTP request
118
- * @param res - HTTP response
119
- */
120
- handleRequest(req, res) {
121
- const { method, url } = req;
122
- if (method === 'GET' && url === '/health') {
123
- this.handleHealth(res);
124
- }
125
- else if (method === 'POST' && url === '/webhook') {
126
- this.handleWebhook(req, res).catch((err) => {
127
- console.error('[webhook-server] Unhandled error in webhook handler:', err);
128
- if (!res.headersSent) {
129
- res.writeHead(500, { 'Content-Type': 'application/json' });
130
- res.end(JSON.stringify({ error: 'Internal server error' }));
131
- }
132
- });
133
- }
134
- else {
135
- res.writeHead(404, { 'Content-Type': 'application/json' });
136
- res.end(JSON.stringify({ error: 'Not found' }));
137
- }
138
- }
139
- /**
140
- * Handle health check requests.
141
- *
142
- * Returns 200 with JSON status payload.
143
- *
144
- * @param res - HTTP response
145
- */
146
- handleHealth(res) {
147
- res.writeHead(200, { 'Content-Type': 'application/json' });
148
- res.end(JSON.stringify({ status: 'healthy' }));
149
- }
150
- /**
151
- * Handle webhook POST requests.
152
- *
153
- * Processing pipeline:
154
- * 1. Read raw request body as Buffer
155
- * 2. Verify HMAC-SHA256 signature
156
- * 3. Parse JSON payload
157
- * 4. Extract event type and delivery ID from headers
158
- * 5. Respond 200 OK immediately
159
- * 6. Process webhook asynchronously (fire-and-forget)
160
- *
161
- * Errors during validation return appropriate HTTP status codes.
162
- * Errors during async processing are logged but don't affect the response.
163
- *
164
- * @param req - HTTP request
165
- * @param res - HTTP response
166
- */
167
- async handleWebhook(req, res) {
168
- try {
169
- // Step 1: Read raw body (needed for signature verification)
170
- const rawBody = await readBody(req);
171
- // Step 2: Verify signature
172
- const signature = req.headers['x-hub-signature-256'];
173
- if (!signature) {
174
- res.writeHead(400, { 'Content-Type': 'application/json' });
175
- res.end(JSON.stringify({ error: 'Missing X-Hub-Signature-256 header' }));
176
- return;
177
- }
178
- const isValid = verifySignature(rawBody, signature, this.config.webhookSecret);
179
- if (!isValid) {
180
- console.error('[webhook-server] Invalid signature');
181
- res.writeHead(401, { 'Content-Type': 'application/json' });
182
- res.end(JSON.stringify({ error: 'Invalid signature' }));
183
- return;
184
- }
185
- // Step 3: Parse JSON payload
186
- let payload;
187
- try {
188
- payload = JSON.parse(rawBody.toString('utf-8'));
189
- }
190
- catch (err) {
191
- console.error('[webhook-server] Invalid JSON:', err);
192
- res.writeHead(400, { 'Content-Type': 'application/json' });
193
- res.end(JSON.stringify({ error: 'Invalid JSON payload' }));
194
- return;
195
- }
196
- // Step 4: Extract metadata from headers
197
- const eventType = req.headers['x-github-event'];
198
- const deliveryId = req.headers['x-github-delivery'];
199
- if (!eventType) {
200
- res.writeHead(400, { 'Content-Type': 'application/json' });
201
- res.end(JSON.stringify({ error: 'Missing X-GitHub-Event header' }));
202
- return;
203
- }
204
- if (!deliveryId) {
205
- res.writeHead(400, { 'Content-Type': 'application/json' });
206
- res.end(JSON.stringify({ error: 'Missing X-GitHub-Delivery header' }));
207
- return;
208
- }
209
- console.log(`[webhook-server] Received ${eventType} event (delivery: ${deliveryId})`);
210
- // Step 5: Respond 200 immediately (GitHub expects quick response)
211
- res.writeHead(200, { 'Content-Type': 'application/json' });
212
- res.end(JSON.stringify({ status: 'accepted' }));
213
- // Step 6: Process webhook asynchronously (fire-and-forget)
214
- this.responder.processWebhook(deliveryId, payload).catch((err) => {
215
- console.error(`[webhook-server] Error processing webhook ${deliveryId}:`, err);
216
- });
217
- }
218
- catch (err) {
219
- // Errors during validation (before response sent)
220
- console.error('[webhook-server] Webhook validation error:', err);
221
- if (!res.headersSent) {
222
- res.writeHead(500, { 'Content-Type': 'application/json' });
223
- res.end(JSON.stringify({ error: 'Internal server error' }));
224
- }
225
- }
226
- }
227
- /**
228
- * Gracefully shut down the server.
229
- *
230
- * Stops accepting new connections and waits for existing requests
231
- * to complete. Also closes the AutoResponder.
232
- *
233
- * Safe to call multiple times.
234
- */
235
- async stop() {
236
- if (!this.running) {
237
- return;
238
- }
239
- return new Promise((resolve, reject) => {
240
- this.server.close((err) => {
241
- if (err) {
242
- reject(err);
243
- }
244
- else {
245
- this.running = false;
246
- console.log('[webhook-server] Server stopped');
247
- // Close the responder (shuts down idempotency store)
248
- this.responder.close().then(resolve).catch(reject);
249
- }
250
- });
251
- });
252
- }
253
- }
254
- /**
255
- * Factory function to create a new webhook server.
256
- *
257
- * @param responder - AutoResponder instance for webhook processing
258
- * @param config - Server configuration
259
- * @returns New WebhookServer instance (call start() to begin listening)
260
- *
261
- * @example
262
- * ```typescript
263
- * import { loadConfig } from './config.js';
264
- * import { createAutoResponder } from './responder.js';
265
- * import { createWebhookServer } from './server.js';
266
- *
267
- * const config = loadConfig();
268
- * const responder = createAutoResponder(config);
269
- * await responder.init();
270
- *
271
- * const server = createWebhookServer(responder, config);
272
- * await server.start();
273
- * ```
274
- */
275
- export function createWebhookServer(responder, config) {
276
- return new WebhookServer(responder, config);
277
- }
278
- /**
279
- * Register signal handlers for graceful shutdown.
280
- *
281
- * Listens for SIGTERM and SIGINT (Ctrl+C) and gracefully shuts down
282
- * the server before exiting.
283
- *
284
- * @param server - Webhook server to shut down
285
- */
286
- export function registerShutdownHandlers(server) {
287
- const shutdown = async (signal) => {
288
- console.log(`[webhook-server] Received ${signal}, shutting down gracefully...`);
289
- try {
290
- await server.stop();
291
- process.exit(0);
292
- }
293
- catch (err) {
294
- console.error('[webhook-server] Error during shutdown:', err);
295
- process.exit(1);
296
- }
297
- };
298
- process.on('SIGTERM', () => shutdown('SIGTERM'));
299
- process.on('SIGINT', () => shutdown('SIGINT'));
300
- }
301
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/hooks/github-auto-responder/server.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Extracts the HMAC signature from the GitHub webhook signature header.
3
- *
4
- * @param header - The X-Hub-Signature-256 header value (format: "sha256=...")
5
- * @returns The hex digest string if valid, null if malformed or missing
6
- *
7
- * @example
8
- * ```ts
9
- * extractSignature("sha256=abc123") // => "abc123"
10
- * extractSignature("invalid") // => null
11
- * ```
12
- */
13
- export declare function extractSignature(header: string): string | null;
14
- /**
15
- * Verifies a GitHub webhook signature using HMAC-SHA256.
16
- *
17
- * Uses constant-time comparison to prevent timing attacks.
18
- *
19
- * @param payload - The raw request body as a Buffer
20
- * @param signature - The X-Hub-Signature-256 header value (format: "sha256=...")
21
- * @param secret - The webhook secret configured in GitHub
22
- * @returns true if signature is valid, false otherwise
23
- *
24
- * @example
25
- * ```ts
26
- * const isValid = verifySignature(
27
- * Buffer.from(requestBody),
28
- * req.headers['x-hub-signature-256'],
29
- * process.env.GITHUB_WEBHOOK_SECRET
30
- * );
31
- * ```
32
- */
33
- export declare function verifySignature(payload: Buffer, signature: string, secret: string): boolean;
34
- //# sourceMappingURL=signature.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/hooks/github-auto-responder/signature.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB9D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAmCT"}
@@ -1,79 +0,0 @@
1
- import { createHmac, timingSafeEqual } from 'node:crypto';
2
- /**
3
- * Extracts the HMAC signature from the GitHub webhook signature header.
4
- *
5
- * @param header - The X-Hub-Signature-256 header value (format: "sha256=...")
6
- * @returns The hex digest string if valid, null if malformed or missing
7
- *
8
- * @example
9
- * ```ts
10
- * extractSignature("sha256=abc123") // => "abc123"
11
- * extractSignature("invalid") // => null
12
- * ```
13
- */
14
- export function extractSignature(header) {
15
- if (!header || typeof header !== 'string') {
16
- return null;
17
- }
18
- const parts = header.split('=');
19
- if (parts.length !== 2 || parts[0] !== 'sha256') {
20
- return null;
21
- }
22
- const digest = parts[1];
23
- // Validate hex format (64 chars for SHA256)
24
- if (!/^[a-f0-9]{64}$/i.test(digest)) {
25
- return null;
26
- }
27
- return digest;
28
- }
29
- /**
30
- * Verifies a GitHub webhook signature using HMAC-SHA256.
31
- *
32
- * Uses constant-time comparison to prevent timing attacks.
33
- *
34
- * @param payload - The raw request body as a Buffer
35
- * @param signature - The X-Hub-Signature-256 header value (format: "sha256=...")
36
- * @param secret - The webhook secret configured in GitHub
37
- * @returns true if signature is valid, false otherwise
38
- *
39
- * @example
40
- * ```ts
41
- * const isValid = verifySignature(
42
- * Buffer.from(requestBody),
43
- * req.headers['x-hub-signature-256'],
44
- * process.env.GITHUB_WEBHOOK_SECRET
45
- * );
46
- * ```
47
- */
48
- export function verifySignature(payload, signature, secret) {
49
- // Validate inputs
50
- if (!payload || !Buffer.isBuffer(payload)) {
51
- return false;
52
- }
53
- if (!secret || typeof secret !== 'string') {
54
- return false;
55
- }
56
- // Extract signature from header
57
- const expectedDigest = extractSignature(signature);
58
- if (!expectedDigest) {
59
- return false;
60
- }
61
- // Compute HMAC-SHA256 of payload
62
- const hmac = createHmac('sha256', secret);
63
- hmac.update(payload);
64
- const actualDigest = hmac.digest('hex');
65
- // Constant-time comparison to prevent timing attacks
66
- try {
67
- const expectedBuffer = Buffer.from(expectedDigest, 'hex');
68
- const actualBuffer = Buffer.from(actualDigest, 'hex');
69
- if (expectedBuffer.length !== actualBuffer.length) {
70
- return false;
71
- }
72
- return timingSafeEqual(expectedBuffer, actualBuffer);
73
- }
74
- catch {
75
- // Buffer conversion or comparison failed
76
- return false;
77
- }
78
- }
79
- //# sourceMappingURL=signature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/hooks/github-auto-responder/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,4CAA4C;IAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,SAAiB,EACjB,MAAc;IAEd,kBAAkB;IAClB,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gCAAgC;IAChC,MAAM,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iCAAiC;IACjC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExC,qDAAqD;IACrD,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAEtD,IAAI,cAAc,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * GitHub Auto Responder Templates
3
- *
4
- * Static fallback response templates for different issue/PR categories.
5
- * These are used when LLM generation is not available or as a basis for LLM-enhanced responses.
6
- */
7
- import type { ResponseCategory, PersonaConfig } from './types.js';
8
- /**
9
- * Get static template for a given response category
10
- *
11
- * @param category - The category of response needed
12
- * @param persona - Persona configuration for customization
13
- * @returns Template string with {emoji} placeholder
14
- */
15
- export declare function getTemplate(category: ResponseCategory, persona: PersonaConfig): string;
16
- //# sourceMappingURL=templates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/hooks/github-auto-responder/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,aAAa,GACrB,MAAM,CAeR"}
@@ -1,93 +0,0 @@
1
- /**
2
- * GitHub Auto Responder Templates
3
- *
4
- * Static fallback response templates for different issue/PR categories.
5
- * These are used when LLM generation is not available or as a basis for LLM-enhanced responses.
6
- */
7
- /**
8
- * Get static template for a given response category
9
- *
10
- * @param category - The category of response needed
11
- * @param persona - Persona configuration for customization
12
- * @returns Template string with {emoji} placeholder
13
- */
14
- export function getTemplate(category, persona) {
15
- const emoji = persona.signatureEmoji;
16
- switch (category) {
17
- case 'bug':
18
- return getBugReportTemplate(emoji);
19
- case 'feature':
20
- return getFeatureRequestTemplate(emoji);
21
- case 'question':
22
- return getQuestionTemplate(emoji);
23
- case 'pr':
24
- return getPRTemplate(emoji);
25
- default:
26
- return getGenericTemplate(emoji);
27
- }
28
- }
29
- /**
30
- * Bug report template
31
- */
32
- function getBugReportTemplate(emoji) {
33
- return `Thanks for reporting! ${emoji}
34
-
35
- To help us fix this faster:
36
- 1. Steps to reproduce
37
- 2. Expected vs actual behavior
38
- 3. OMC version (\`omc --version\`)
39
- 4. OS & Node version
40
-
41
- 잘 부탁드립니다!`;
42
- }
43
- /**
44
- * Feature request template
45
- */
46
- function getFeatureRequestTemplate(emoji) {
47
- return `Interesting idea! ${emoji}
48
-
49
- 몇 가지 궁금한 점:
50
- - What's your use case?
51
- - Have you tried existing alternatives?
52
- - How should it integrate with current features?
53
-
54
- Thanks for the suggestion!`;
55
- }
56
- /**
57
- * Question template
58
- */
59
- function getQuestionTemplate(emoji) {
60
- return `Thanks for asking! ${emoji}
61
-
62
- Check out our docs first: [README](../../README.md)
63
- If that doesn't help, please share:
64
- - What you're trying to do
65
- - What you've tried
66
- - Error messages (if any)
67
-
68
- 질문 감사합니다!`;
69
- }
70
- /**
71
- * Pull request template
72
- */
73
- function getPRTemplate(emoji) {
74
- return `Thanks for the PR! ${emoji}
75
-
76
- Quick checklist:
77
- - [ ] Tests added/updated?
78
- - [ ] Docs updated if needed?
79
- - [ ] Breaking changes noted?
80
-
81
- Will review in detail soon. 감사합니다!`;
82
- }
83
- /**
84
- * Generic fallback template
85
- */
86
- function getGenericTemplate(emoji) {
87
- return `Thanks for your contribution! ${emoji}
88
-
89
- We'll take a look and get back to you soon.
90
-
91
- 감사합니다!`;
92
- }
93
- //# sourceMappingURL=templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/hooks/github-auto-responder/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,QAA0B,EAC1B,OAAsB;IAEtB,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;IAErC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACrC,KAAK,SAAS;YACZ,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,IAAI;YACP,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B;YACE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,yBAAyB,KAAK;;;;;;;;UAQ7B,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,KAAa;IAC9C,OAAO,qBAAqB,KAAK;;;;;;;2BAOR,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,sBAAsB,KAAK;;;;;;;;UAQ1B,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,sBAAsB,KAAK;;;;;;;mCAOD,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,iCAAiC,KAAK;;;;OAIxC,CAAC;AACR,CAAC"}