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,264 +0,0 @@
1
- /**
2
- * GitHub Auto Responder - Main Orchestrator
3
- *
4
- * Core pipeline that ties together filtering, classification, prompt building,
5
- * LLM generation, template fallbacks, and GitHub comment posting.
6
- *
7
- * Processing pipeline:
8
- * 1. Idempotency check (skip duplicates)
9
- * 2. Filter pipeline (bot, self, action, label, spam)
10
- * 3. Classify event (bug, feature, question, pr)
11
- * 4. Build persona-driven prompts
12
- * 5. Generate response via Anthropic API (with template fallback)
13
- * 6. Post comment to GitHub (auto mode) or log (draft mode)
14
- * 7. Mark as processed for deduplication
15
- */
16
- import { ANTHROPIC_API_URL, RESPONSE_TIMEOUT_MS } from './constants.js';
17
- import { createFilterPipeline } from './filters.js';
18
- import { classify } from './classifier.js';
19
- import { buildPrompt } from './persona.js';
20
- import { getTemplate } from './templates.js';
21
- import { GitHubClient } from './github-client.js';
22
- import { IdempotencyStore } from './idempotency.js';
23
- import { isIssuePayload } from './filters.js';
24
- /**
25
- * Call the Anthropic Messages API to generate a response.
26
- *
27
- * Uses native fetch with an AbortController timeout. Returns null on any
28
- * failure so the caller can fall back to a static template.
29
- *
30
- * @param config - Auto responder configuration (API key, model, max tokens)
31
- * @param systemPrompt - System prompt encoding persona and guidelines
32
- * @param userPrompt - User prompt with issue/PR context
33
- * @returns Generated response text, or null if the API call fails
34
- */
35
- async function callAnthropicAPI(config, systemPrompt, userPrompt) {
36
- const controller = new AbortController();
37
- const timeout = setTimeout(() => controller.abort(), RESPONSE_TIMEOUT_MS);
38
- try {
39
- const response = await fetch(ANTHROPIC_API_URL, {
40
- method: 'POST',
41
- headers: {
42
- 'x-api-key': config.anthropicApiKey,
43
- 'anthropic-version': '2023-06-01',
44
- 'content-type': 'application/json',
45
- },
46
- body: JSON.stringify({
47
- model: config.llmModel,
48
- max_tokens: config.maxResponseTokens,
49
- system: systemPrompt,
50
- messages: [{ role: 'user', content: userPrompt }],
51
- }),
52
- signal: controller.signal,
53
- });
54
- if (!response.ok) {
55
- const errorText = await response.text();
56
- console.error(`[auto-responder] Anthropic API error (${response.status}): ${errorText}`);
57
- return null;
58
- }
59
- const data = (await response.json());
60
- const textBlock = data.content?.find((block) => block.type === 'text');
61
- return textBlock?.text ?? null;
62
- }
63
- catch (error) {
64
- if (error instanceof Error && error.name === 'AbortError') {
65
- console.error(`[auto-responder] Anthropic API timed out after ${RESPONSE_TIMEOUT_MS}ms`);
66
- }
67
- else {
68
- console.error('[auto-responder] Anthropic API call failed:', error);
69
- }
70
- return null;
71
- }
72
- finally {
73
- clearTimeout(timeout);
74
- }
75
- }
76
- /**
77
- * Main auto-responder orchestrator.
78
- *
79
- * Manages the full lifecycle of webhook processing: initialization,
80
- * filtering, classification, response generation, and posting.
81
- *
82
- * @example
83
- * ```typescript
84
- * const responder = createAutoResponder(config);
85
- * await responder.init();
86
- *
87
- * const result = await responder.processWebhook(deliveryId, payload);
88
- * if (result.processed) {
89
- * console.log('Response posted:', result.responseUrl);
90
- * }
91
- *
92
- * await responder.close();
93
- * ```
94
- */
95
- export class AutoResponder {
96
- config;
97
- /** Idempotency store for deduplication */
98
- idempotencyStore;
99
- /** GitHub API client */
100
- githubClient;
101
- /** Filter pipeline function */
102
- filterPipeline;
103
- /** Whether the responder has been initialized */
104
- initialized = false;
105
- /**
106
- * Create a new AutoResponder instance.
107
- *
108
- * @param config - Full auto-responder configuration
109
- */
110
- constructor(config) {
111
- this.config = config;
112
- this.idempotencyStore = new IdempotencyStore(config.idempotencyDbPath);
113
- this.githubClient = new GitHubClient(config.githubToken);
114
- this.filterPipeline = createFilterPipeline(config.selfLogin, config.skipLabels, config.spamPatterns
115
- ? config.spamPatterns.map((p) => typeof p === 'string' ? new RegExp(p, 'i') : p)
116
- : undefined);
117
- }
118
- /**
119
- * Initialize the responder (must be called before processing webhooks).
120
- *
121
- * Sets up the idempotency store database connection and schema.
122
- * Safe to call multiple times (no-op after first initialization).
123
- */
124
- async init() {
125
- if (this.initialized) {
126
- return;
127
- }
128
- await this.idempotencyStore.init();
129
- this.initialized = true;
130
- console.log(`[auto-responder] Initialized (mode=${this.config.mode}, model=${this.config.llmModel})`);
131
- }
132
- /**
133
- * Process a single GitHub webhook delivery through the full pipeline.
134
- *
135
- * Pipeline stages:
136
- * 1. **Idempotency** - Skip if delivery ID already processed
137
- * 2. **Filter** - Skip bots, self, non-opened actions, excluded labels, spam
138
- * 3. **Classify** - Determine response category (bug/feature/question/pr)
139
- * 4. **Prompt** - Build persona-driven system and user prompts
140
- * 5. **Generate** - Call Anthropic API (fall back to template on failure)
141
- * 6. **Post** - Post comment to GitHub (auto mode) or log (draft mode)
142
- * 7. **Record** - Mark delivery ID as processed
143
- *
144
- * @param deliveryId - GitHub webhook delivery ID (for idempotency)
145
- * @param payload - Parsed webhook payload
146
- * @returns Processing result with status, category, and response details
147
- */
148
- async processWebhook(deliveryId, payload) {
149
- if (!this.initialized) {
150
- return {
151
- processed: false,
152
- skipped: false,
153
- error: 'AutoResponder not initialized. Call init() first.',
154
- };
155
- }
156
- // Step 1: Idempotency check
157
- if (this.idempotencyStore.isProcessed(deliveryId)) {
158
- return {
159
- processed: false,
160
- skipped: true,
161
- skipReason: `Delivery ${deliveryId} already processed`,
162
- };
163
- }
164
- // Step 2: Run filter pipeline
165
- const filterResult = await this.filterPipeline(payload);
166
- if (filterResult.skip) {
167
- // Mark as processed even when skipped to avoid re-evaluation
168
- this.idempotencyStore.markProcessed(deliveryId);
169
- return {
170
- processed: true,
171
- skipped: true,
172
- skipReason: filterResult.reason,
173
- };
174
- }
175
- // Step 3: Classify the event
176
- const classification = classify(payload);
177
- const category = classification.category;
178
- console.log(`[auto-responder] Classified as "${category}" (confidence=${classification.confidence.toFixed(2)}, reason="${classification.reason}")`);
179
- // Step 4: Build prompts
180
- const prompts = buildPrompt(this.config.persona, category, payload);
181
- // Step 5: Try LLM generation, fall back to template
182
- let responseText;
183
- let usedFallback = false;
184
- const llmResponse = await callAnthropicAPI(this.config, prompts.system, prompts.user);
185
- if (llmResponse) {
186
- responseText = llmResponse;
187
- }
188
- else {
189
- responseText = getTemplate(category, this.config.persona);
190
- usedFallback = true;
191
- console.warn('[auto-responder] LLM generation failed, using fallback template');
192
- }
193
- // Step 6: Post comment or log in draft mode
194
- let responsePosted = false;
195
- let responseUrl;
196
- let postError;
197
- if (this.config.mode === 'auto') {
198
- const repo = payload.repository.full_name;
199
- const itemNumber = isIssuePayload(payload)
200
- ? payload.issue.number
201
- : payload.pull_request.number;
202
- const commentResult = isIssuePayload(payload)
203
- ? await this.githubClient.postIssueComment(repo, itemNumber, responseText)
204
- : await this.githubClient.postPRComment(repo, itemNumber, responseText);
205
- if (commentResult.success) {
206
- responsePosted = true;
207
- responseUrl = commentResult.url;
208
- console.log(`[auto-responder] Posted comment: ${responseUrl}`);
209
- }
210
- else {
211
- postError = commentResult.error;
212
- console.error(`[auto-responder] Failed to post comment: ${postError}`);
213
- }
214
- }
215
- else {
216
- // Draft mode: log the response without posting
217
- console.log(`[auto-responder] [DRAFT] Would post to ${payload.repository.full_name}:`);
218
- console.log(`[auto-responder] [DRAFT] Category: ${category}`);
219
- console.log(`[auto-responder] [DRAFT] Response (${usedFallback ? 'template' : 'LLM'}):\n${responseText}`);
220
- }
221
- // Step 7: Mark as processed
222
- this.idempotencyStore.markProcessed(deliveryId);
223
- return {
224
- processed: true,
225
- skipped: false,
226
- category,
227
- responsePosted,
228
- responseUrl,
229
- usedFallback,
230
- error: postError,
231
- };
232
- }
233
- /**
234
- * Gracefully shut down the responder.
235
- *
236
- * Closes the idempotency store database connection. Safe to call
237
- * multiple times. Should be called when the server shuts down.
238
- */
239
- async close() {
240
- this.idempotencyStore.close();
241
- this.initialized = false;
242
- console.log('[auto-responder] Closed');
243
- }
244
- }
245
- /**
246
- * Factory function to create a new AutoResponder instance.
247
- *
248
- * @param config - Full auto-responder configuration
249
- * @returns New AutoResponder instance (call init() before use)
250
- *
251
- * @example
252
- * ```typescript
253
- * import { loadConfig } from './config.js';
254
- * import { createAutoResponder } from './responder.js';
255
- *
256
- * const config = loadConfig();
257
- * const responder = createAutoResponder(config);
258
- * await responder.init();
259
- * ```
260
- */
261
- export function createAutoResponder(config) {
262
- return new AutoResponder(config);
263
- }
264
- //# sourceMappingURL=responder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responder.js","sourceRoot":"","sources":["../../../src/hooks/github-auto-responder/responder.ts"],"names":[],"mappings":"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"}
@@ -1,140 +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 type { AutoResponder } from './responder.js';
16
- import type { AutoResponderConfig } from './types.js';
17
- /**
18
- * HTTP webhook server for GitHub events.
19
- *
20
- * Endpoints:
21
- * - GET /health - Health check (returns 200 with status)
22
- * - POST /webhook - Webhook receiver (signature verification + processing)
23
- * - Other routes - 404 Not Found
24
- *
25
- * Webhook processing is fire-and-forget: the server responds 200 immediately
26
- * after signature verification, then processes asynchronously. Errors during
27
- * processing are logged but don't affect the HTTP response.
28
- *
29
- * @example
30
- * ```typescript
31
- * const responder = createAutoResponder(config);
32
- * await responder.init();
33
- *
34
- * const server = createWebhookServer(responder, config);
35
- * await server.start();
36
- *
37
- * // Later...
38
- * await server.stop();
39
- * ```
40
- */
41
- export declare class WebhookServer {
42
- private readonly responder;
43
- private readonly config;
44
- /** HTTP server instance */
45
- private server;
46
- /** Whether the server is currently running */
47
- private running;
48
- /**
49
- * Create a new webhook server.
50
- *
51
- * @param responder - AutoResponder instance for webhook processing
52
- * @param config - Server configuration (port, webhook secret, etc.)
53
- */
54
- constructor(responder: AutoResponder, config: AutoResponderConfig);
55
- /**
56
- * Start the HTTP server and listen on configured port.
57
- *
58
- * @throws Error if server is already running or fails to bind
59
- */
60
- start(): Promise<void>;
61
- /**
62
- * Route incoming requests to appropriate handlers.
63
- *
64
- * Routes:
65
- * - GET /health → handleHealth()
66
- * - POST /webhook → handleWebhook()
67
- * - Other → 404
68
- *
69
- * @param req - HTTP request
70
- * @param res - HTTP response
71
- */
72
- private handleRequest;
73
- /**
74
- * Handle health check requests.
75
- *
76
- * Returns 200 with JSON status payload.
77
- *
78
- * @param res - HTTP response
79
- */
80
- private handleHealth;
81
- /**
82
- * Handle webhook POST requests.
83
- *
84
- * Processing pipeline:
85
- * 1. Read raw request body as Buffer
86
- * 2. Verify HMAC-SHA256 signature
87
- * 3. Parse JSON payload
88
- * 4. Extract event type and delivery ID from headers
89
- * 5. Respond 200 OK immediately
90
- * 6. Process webhook asynchronously (fire-and-forget)
91
- *
92
- * Errors during validation return appropriate HTTP status codes.
93
- * Errors during async processing are logged but don't affect the response.
94
- *
95
- * @param req - HTTP request
96
- * @param res - HTTP response
97
- */
98
- private handleWebhook;
99
- /**
100
- * Gracefully shut down the server.
101
- *
102
- * Stops accepting new connections and waits for existing requests
103
- * to complete. Also closes the AutoResponder.
104
- *
105
- * Safe to call multiple times.
106
- */
107
- stop(): Promise<void>;
108
- }
109
- /**
110
- * Factory function to create a new webhook server.
111
- *
112
- * @param responder - AutoResponder instance for webhook processing
113
- * @param config - Server configuration
114
- * @returns New WebhookServer instance (call start() to begin listening)
115
- *
116
- * @example
117
- * ```typescript
118
- * import { loadConfig } from './config.js';
119
- * import { createAutoResponder } from './responder.js';
120
- * import { createWebhookServer } from './server.js';
121
- *
122
- * const config = loadConfig();
123
- * const responder = createAutoResponder(config);
124
- * await responder.init();
125
- *
126
- * const server = createWebhookServer(responder, config);
127
- * await server.start();
128
- * ```
129
- */
130
- export declare function createWebhookServer(responder: AutoResponder, config: AutoResponderConfig): WebhookServer;
131
- /**
132
- * Register signal handlers for graceful shutdown.
133
- *
134
- * Listens for SIGTERM and SIGINT (Ctrl+C) and gracefully shuts down
135
- * the server before exiting.
136
- *
137
- * @param server - Webhook server to shut down
138
- */
139
- export declare function registerShutdownHandlers(server: WebhookServer): void;
140
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/hooks/github-auto-responder/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,YAAY,CAAC;AAyCtE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbzB,2BAA2B;IAC3B,OAAO,CAAC,MAAM,CAAc;IAC5B,8CAA8C;IAC9C,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;OAKG;gBAEgB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,mBAAmB;IAK9C;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,aAAa;IAmBrB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;;;;;;;;;;;OAgBG;YACW,aAAa;IAkF3B;;;;;;;OAOG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB5B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,mBAAmB,GAC1B,aAAa,CAEf;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAcpE"}