steroids-cli 0.4.47

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 (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +640 -0
  3. package/dist/cli/colors.d.ts +110 -0
  4. package/dist/cli/colors.d.ts.map +1 -0
  5. package/dist/cli/colors.js +228 -0
  6. package/dist/cli/colors.js.map +1 -0
  7. package/dist/cli/env.d.ts +159 -0
  8. package/dist/cli/env.d.ts.map +1 -0
  9. package/dist/cli/env.js +227 -0
  10. package/dist/cli/env.js.map +1 -0
  11. package/dist/cli/errors.d.ts +166 -0
  12. package/dist/cli/errors.d.ts.map +1 -0
  13. package/dist/cli/errors.js +244 -0
  14. package/dist/cli/errors.js.map +1 -0
  15. package/dist/cli/flags.d.ts +75 -0
  16. package/dist/cli/flags.d.ts.map +1 -0
  17. package/dist/cli/flags.js +232 -0
  18. package/dist/cli/flags.js.map +1 -0
  19. package/dist/cli/help.d.ts +97 -0
  20. package/dist/cli/help.d.ts.map +1 -0
  21. package/dist/cli/help.js +275 -0
  22. package/dist/cli/help.js.map +1 -0
  23. package/dist/cli/index.d.ts +13 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +29 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/cli/interactive.d.ts +58 -0
  28. package/dist/cli/interactive.d.ts.map +1 -0
  29. package/dist/cli/interactive.js +127 -0
  30. package/dist/cli/interactive.js.map +1 -0
  31. package/dist/cli/output.d.ts +116 -0
  32. package/dist/cli/output.d.ts.map +1 -0
  33. package/dist/cli/output.js +178 -0
  34. package/dist/cli/output.js.map +1 -0
  35. package/dist/commands/about.d.ts +7 -0
  36. package/dist/commands/about.d.ts.map +1 -0
  37. package/dist/commands/about.js +259 -0
  38. package/dist/commands/about.js.map +1 -0
  39. package/dist/commands/ai.d.ts +6 -0
  40. package/dist/commands/ai.d.ts.map +1 -0
  41. package/dist/commands/ai.js +382 -0
  42. package/dist/commands/ai.js.map +1 -0
  43. package/dist/commands/backup.d.ts +3 -0
  44. package/dist/commands/backup.d.ts.map +1 -0
  45. package/dist/commands/backup.js +528 -0
  46. package/dist/commands/backup.js.map +1 -0
  47. package/dist/commands/completion.d.ts +3 -0
  48. package/dist/commands/completion.d.ts.map +1 -0
  49. package/dist/commands/completion.js +405 -0
  50. package/dist/commands/completion.js.map +1 -0
  51. package/dist/commands/config.d.ts +3 -0
  52. package/dist/commands/config.d.ts.map +1 -0
  53. package/dist/commands/config.js +665 -0
  54. package/dist/commands/config.js.map +1 -0
  55. package/dist/commands/disputes.d.ts +3 -0
  56. package/dist/commands/disputes.d.ts.map +1 -0
  57. package/dist/commands/disputes.js +499 -0
  58. package/dist/commands/disputes.js.map +1 -0
  59. package/dist/commands/gc.d.ts +3 -0
  60. package/dist/commands/gc.d.ts.map +1 -0
  61. package/dist/commands/gc.js +300 -0
  62. package/dist/commands/gc.js.map +1 -0
  63. package/dist/commands/git.d.ts +3 -0
  64. package/dist/commands/git.d.ts.map +1 -0
  65. package/dist/commands/git.js +458 -0
  66. package/dist/commands/git.js.map +1 -0
  67. package/dist/commands/health.d.ts +3 -0
  68. package/dist/commands/health.d.ts.map +1 -0
  69. package/dist/commands/health.js +604 -0
  70. package/dist/commands/health.js.map +1 -0
  71. package/dist/commands/hooks.d.ts +6 -0
  72. package/dist/commands/hooks.d.ts.map +1 -0
  73. package/dist/commands/hooks.js +529 -0
  74. package/dist/commands/hooks.js.map +1 -0
  75. package/dist/commands/init.d.ts +6 -0
  76. package/dist/commands/init.d.ts.map +1 -0
  77. package/dist/commands/init.js +200 -0
  78. package/dist/commands/init.js.map +1 -0
  79. package/dist/commands/llm.d.ts +7 -0
  80. package/dist/commands/llm.d.ts.map +1 -0
  81. package/dist/commands/llm.js +285 -0
  82. package/dist/commands/llm.js.map +1 -0
  83. package/dist/commands/locks.d.ts +3 -0
  84. package/dist/commands/locks.d.ts.map +1 -0
  85. package/dist/commands/locks.js +431 -0
  86. package/dist/commands/locks.js.map +1 -0
  87. package/dist/commands/logs.d.ts +3 -0
  88. package/dist/commands/logs.d.ts.map +1 -0
  89. package/dist/commands/logs.js +487 -0
  90. package/dist/commands/logs.js.map +1 -0
  91. package/dist/commands/loop-phases.d.ts +11 -0
  92. package/dist/commands/loop-phases.d.ts.map +1 -0
  93. package/dist/commands/loop-phases.js +204 -0
  94. package/dist/commands/loop-phases.js.map +1 -0
  95. package/dist/commands/loop.d.ts +3 -0
  96. package/dist/commands/loop.d.ts.map +1 -0
  97. package/dist/commands/loop.js +396 -0
  98. package/dist/commands/loop.js.map +1 -0
  99. package/dist/commands/projects.d.ts +6 -0
  100. package/dist/commands/projects.d.ts.map +1 -0
  101. package/dist/commands/projects.js +362 -0
  102. package/dist/commands/projects.js.map +1 -0
  103. package/dist/commands/purge.d.ts +3 -0
  104. package/dist/commands/purge.d.ts.map +1 -0
  105. package/dist/commands/purge.js +516 -0
  106. package/dist/commands/purge.js.map +1 -0
  107. package/dist/commands/runners.d.ts +3 -0
  108. package/dist/commands/runners.d.ts.map +1 -0
  109. package/dist/commands/runners.js +1076 -0
  110. package/dist/commands/runners.js.map +1 -0
  111. package/dist/commands/scan.d.ts +3 -0
  112. package/dist/commands/scan.d.ts.map +1 -0
  113. package/dist/commands/scan.js +291 -0
  114. package/dist/commands/scan.js.map +1 -0
  115. package/dist/commands/sections-commands.d.ts +9 -0
  116. package/dist/commands/sections-commands.d.ts.map +1 -0
  117. package/dist/commands/sections-commands.js +282 -0
  118. package/dist/commands/sections-commands.js.map +1 -0
  119. package/dist/commands/sections-graph.d.ts +25 -0
  120. package/dist/commands/sections-graph.d.ts.map +1 -0
  121. package/dist/commands/sections-graph.js +180 -0
  122. package/dist/commands/sections-graph.js.map +1 -0
  123. package/dist/commands/sections.d.ts +3 -0
  124. package/dist/commands/sections.d.ts.map +1 -0
  125. package/dist/commands/sections.js +376 -0
  126. package/dist/commands/sections.js.map +1 -0
  127. package/dist/commands/stats.d.ts +6 -0
  128. package/dist/commands/stats.d.ts.map +1 -0
  129. package/dist/commands/stats.js +324 -0
  130. package/dist/commands/stats.js.map +1 -0
  131. package/dist/commands/tasks.d.ts +3 -0
  132. package/dist/commands/tasks.d.ts.map +1 -0
  133. package/dist/commands/tasks.js +1115 -0
  134. package/dist/commands/tasks.js.map +1 -0
  135. package/dist/commands/web.d.ts +7 -0
  136. package/dist/commands/web.d.ts.map +1 -0
  137. package/dist/commands/web.js +204 -0
  138. package/dist/commands/web.js.map +1 -0
  139. package/dist/config/ai-setup.d.ts +27 -0
  140. package/dist/config/ai-setup.d.ts.map +1 -0
  141. package/dist/config/ai-setup.js +432 -0
  142. package/dist/config/ai-setup.js.map +1 -0
  143. package/dist/config/browser.d.ts +9 -0
  144. package/dist/config/browser.d.ts.map +1 -0
  145. package/dist/config/browser.js +200 -0
  146. package/dist/config/browser.js.map +1 -0
  147. package/dist/config/json-schema.d.ts +28 -0
  148. package/dist/config/json-schema.d.ts.map +1 -0
  149. package/dist/config/json-schema.js +84 -0
  150. package/dist/config/json-schema.js.map +1 -0
  151. package/dist/config/loader.d.ts +152 -0
  152. package/dist/config/loader.d.ts.map +1 -0
  153. package/dist/config/loader.js +270 -0
  154. package/dist/config/loader.js.map +1 -0
  155. package/dist/config/schema.d.ts +34 -0
  156. package/dist/config/schema.d.ts.map +1 -0
  157. package/dist/config/schema.js +437 -0
  158. package/dist/config/schema.js.map +1 -0
  159. package/dist/config/validator.d.ts +32 -0
  160. package/dist/config/validator.d.ts.map +1 -0
  161. package/dist/config/validator.js +187 -0
  162. package/dist/config/validator.js.map +1 -0
  163. package/dist/database/connection.d.ts +35 -0
  164. package/dist/database/connection.d.ts.map +1 -0
  165. package/dist/database/connection.js +208 -0
  166. package/dist/database/connection.js.map +1 -0
  167. package/dist/database/queries.d.ts +218 -0
  168. package/dist/database/queries.d.ts.map +1 -0
  169. package/dist/database/queries.js +613 -0
  170. package/dist/database/queries.js.map +1 -0
  171. package/dist/database/schema.d.ts +8 -0
  172. package/dist/database/schema.d.ts.map +1 -0
  173. package/dist/database/schema.js +160 -0
  174. package/dist/database/schema.js.map +1 -0
  175. package/dist/disputes/behavior.d.ts +106 -0
  176. package/dist/disputes/behavior.d.ts.map +1 -0
  177. package/dist/disputes/behavior.js +150 -0
  178. package/dist/disputes/behavior.js.map +1 -0
  179. package/dist/disputes/create.d.ts +59 -0
  180. package/dist/disputes/create.d.ts.map +1 -0
  181. package/dist/disputes/create.js +222 -0
  182. package/dist/disputes/create.js.map +1 -0
  183. package/dist/disputes/index.d.ts +21 -0
  184. package/dist/disputes/index.d.ts.map +1 -0
  185. package/dist/disputes/index.js +76 -0
  186. package/dist/disputes/index.js.map +1 -0
  187. package/dist/disputes/markdown.d.ts +41 -0
  188. package/dist/disputes/markdown.d.ts.map +1 -0
  189. package/dist/disputes/markdown.js +261 -0
  190. package/dist/disputes/markdown.js.map +1 -0
  191. package/dist/disputes/queries.d.ts +83 -0
  192. package/dist/disputes/queries.d.ts.map +1 -0
  193. package/dist/disputes/queries.js +180 -0
  194. package/dist/disputes/queries.js.map +1 -0
  195. package/dist/disputes/resolve.d.ts +57 -0
  196. package/dist/disputes/resolve.d.ts.map +1 -0
  197. package/dist/disputes/resolve.js +171 -0
  198. package/dist/disputes/resolve.js.map +1 -0
  199. package/dist/disputes/stale.d.ts +98 -0
  200. package/dist/disputes/stale.d.ts.map +1 -0
  201. package/dist/disputes/stale.js +205 -0
  202. package/dist/disputes/stale.js.map +1 -0
  203. package/dist/disputes/types.d.ts +92 -0
  204. package/dist/disputes/types.d.ts.map +1 -0
  205. package/dist/disputes/types.js +100 -0
  206. package/dist/disputes/types.js.map +1 -0
  207. package/dist/git/push.d.ts +26 -0
  208. package/dist/git/push.d.ts.map +1 -0
  209. package/dist/git/push.js +97 -0
  210. package/dist/git/push.js.map +1 -0
  211. package/dist/git/status.d.ts +61 -0
  212. package/dist/git/status.d.ts.map +1 -0
  213. package/dist/git/status.js +251 -0
  214. package/dist/git/status.js.map +1 -0
  215. package/dist/hooks/events.d.ts +72 -0
  216. package/dist/hooks/events.d.ts.map +1 -0
  217. package/dist/hooks/events.js +120 -0
  218. package/dist/hooks/events.js.map +1 -0
  219. package/dist/hooks/index.d.ts +19 -0
  220. package/dist/hooks/index.d.ts.map +1 -0
  221. package/dist/hooks/index.js +48 -0
  222. package/dist/hooks/index.js.map +1 -0
  223. package/dist/hooks/integration.d.ts +69 -0
  224. package/dist/hooks/integration.d.ts.map +1 -0
  225. package/dist/hooks/integration.js +179 -0
  226. package/dist/hooks/integration.js.map +1 -0
  227. package/dist/hooks/merge.d.ts +115 -0
  228. package/dist/hooks/merge.d.ts.map +1 -0
  229. package/dist/hooks/merge.js +161 -0
  230. package/dist/hooks/merge.js.map +1 -0
  231. package/dist/hooks/orchestrator.d.ts +115 -0
  232. package/dist/hooks/orchestrator.d.ts.map +1 -0
  233. package/dist/hooks/orchestrator.js +226 -0
  234. package/dist/hooks/orchestrator.js.map +1 -0
  235. package/dist/hooks/payload.d.ts +294 -0
  236. package/dist/hooks/payload.d.ts.map +1 -0
  237. package/dist/hooks/payload.js +267 -0
  238. package/dist/hooks/payload.js.map +1 -0
  239. package/dist/hooks/script-runner.d.ts +63 -0
  240. package/dist/hooks/script-runner.d.ts.map +1 -0
  241. package/dist/hooks/script-runner.js +221 -0
  242. package/dist/hooks/script-runner.js.map +1 -0
  243. package/dist/hooks/templates.d.ts +104 -0
  244. package/dist/hooks/templates.d.ts.map +1 -0
  245. package/dist/hooks/templates.js +327 -0
  246. package/dist/hooks/templates.js.map +1 -0
  247. package/dist/hooks/webhook-runner.d.ts +69 -0
  248. package/dist/hooks/webhook-runner.d.ts.map +1 -0
  249. package/dist/hooks/webhook-runner.js +208 -0
  250. package/dist/hooks/webhook-runner.js.map +1 -0
  251. package/dist/index.d.ts +7 -0
  252. package/dist/index.d.ts.map +1 -0
  253. package/dist/index.js +281 -0
  254. package/dist/index.js.map +1 -0
  255. package/dist/locking/cleanup.d.ts +70 -0
  256. package/dist/locking/cleanup.d.ts.map +1 -0
  257. package/dist/locking/cleanup.js +157 -0
  258. package/dist/locking/cleanup.js.map +1 -0
  259. package/dist/locking/queries.d.ts +116 -0
  260. package/dist/locking/queries.d.ts.map +1 -0
  261. package/dist/locking/queries.js +255 -0
  262. package/dist/locking/queries.js.map +1 -0
  263. package/dist/locking/section-lock.d.ts +74 -0
  264. package/dist/locking/section-lock.d.ts.map +1 -0
  265. package/dist/locking/section-lock.js +207 -0
  266. package/dist/locking/section-lock.js.map +1 -0
  267. package/dist/locking/task-lock.d.ts +92 -0
  268. package/dist/locking/task-lock.d.ts.map +1 -0
  269. package/dist/locking/task-lock.js +246 -0
  270. package/dist/locking/task-lock.js.map +1 -0
  271. package/dist/migrations/index.d.ts +7 -0
  272. package/dist/migrations/index.d.ts.map +1 -0
  273. package/dist/migrations/index.js +37 -0
  274. package/dist/migrations/index.js.map +1 -0
  275. package/dist/migrations/manifest.d.ts +92 -0
  276. package/dist/migrations/manifest.d.ts.map +1 -0
  277. package/dist/migrations/manifest.js +270 -0
  278. package/dist/migrations/manifest.js.map +1 -0
  279. package/dist/migrations/runner.d.ts +84 -0
  280. package/dist/migrations/runner.d.ts.map +1 -0
  281. package/dist/migrations/runner.js +351 -0
  282. package/dist/migrations/runner.js.map +1 -0
  283. package/dist/orchestrator/coder.d.ts +32 -0
  284. package/dist/orchestrator/coder.d.ts.map +1 -0
  285. package/dist/orchestrator/coder.js +174 -0
  286. package/dist/orchestrator/coder.js.map +1 -0
  287. package/dist/orchestrator/coordinator.d.ts +28 -0
  288. package/dist/orchestrator/coordinator.d.ts.map +1 -0
  289. package/dist/orchestrator/coordinator.js +256 -0
  290. package/dist/orchestrator/coordinator.js.map +1 -0
  291. package/dist/orchestrator/reviewer.d.ts +35 -0
  292. package/dist/orchestrator/reviewer.d.ts.map +1 -0
  293. package/dist/orchestrator/reviewer.js +241 -0
  294. package/dist/orchestrator/reviewer.js.map +1 -0
  295. package/dist/orchestrator/task-selector.d.ts +102 -0
  296. package/dist/orchestrator/task-selector.d.ts.map +1 -0
  297. package/dist/orchestrator/task-selector.js +341 -0
  298. package/dist/orchestrator/task-selector.js.map +1 -0
  299. package/dist/prompts/coder.d.ts +36 -0
  300. package/dist/prompts/coder.d.ts.map +1 -0
  301. package/dist/prompts/coder.js +315 -0
  302. package/dist/prompts/coder.js.map +1 -0
  303. package/dist/prompts/prompt-helpers.d.ts +51 -0
  304. package/dist/prompts/prompt-helpers.d.ts.map +1 -0
  305. package/dist/prompts/prompt-helpers.js +312 -0
  306. package/dist/prompts/prompt-helpers.js.map +1 -0
  307. package/dist/prompts/reviewer.d.ts +40 -0
  308. package/dist/prompts/reviewer.d.ts.map +1 -0
  309. package/dist/prompts/reviewer.js +438 -0
  310. package/dist/prompts/reviewer.js.map +1 -0
  311. package/dist/providers/api-models.d.ts +65 -0
  312. package/dist/providers/api-models.d.ts.map +1 -0
  313. package/dist/providers/api-models.js +323 -0
  314. package/dist/providers/api-models.js.map +1 -0
  315. package/dist/providers/claude.d.ts +53 -0
  316. package/dist/providers/claude.d.ts.map +1 -0
  317. package/dist/providers/claude.js +229 -0
  318. package/dist/providers/claude.js.map +1 -0
  319. package/dist/providers/codex.d.ts +53 -0
  320. package/dist/providers/codex.d.ts.map +1 -0
  321. package/dist/providers/codex.js +214 -0
  322. package/dist/providers/codex.js.map +1 -0
  323. package/dist/providers/gemini.d.ts +58 -0
  324. package/dist/providers/gemini.d.ts.map +1 -0
  325. package/dist/providers/gemini.js +242 -0
  326. package/dist/providers/gemini.js.map +1 -0
  327. package/dist/providers/index.d.ts +13 -0
  328. package/dist/providers/index.d.ts.map +1 -0
  329. package/dist/providers/index.js +49 -0
  330. package/dist/providers/index.js.map +1 -0
  331. package/dist/providers/interface.d.ts +173 -0
  332. package/dist/providers/interface.d.ts.map +1 -0
  333. package/dist/providers/interface.js +96 -0
  334. package/dist/providers/interface.js.map +1 -0
  335. package/dist/providers/invocation-logger.d.ts +114 -0
  336. package/dist/providers/invocation-logger.d.ts.map +1 -0
  337. package/dist/providers/invocation-logger.js +298 -0
  338. package/dist/providers/invocation-logger.js.map +1 -0
  339. package/dist/providers/openai.d.ts +53 -0
  340. package/dist/providers/openai.d.ts.map +1 -0
  341. package/dist/providers/openai.js +232 -0
  342. package/dist/providers/openai.js.map +1 -0
  343. package/dist/providers/registry.d.ts +100 -0
  344. package/dist/providers/registry.d.ts.map +1 -0
  345. package/dist/providers/registry.js +178 -0
  346. package/dist/providers/registry.js.map +1 -0
  347. package/dist/runners/activity-log.d.ts +65 -0
  348. package/dist/runners/activity-log.d.ts.map +1 -0
  349. package/dist/runners/activity-log.js +148 -0
  350. package/dist/runners/activity-log.js.map +1 -0
  351. package/dist/runners/cron.d.ts +26 -0
  352. package/dist/runners/cron.d.ts.map +1 -0
  353. package/dist/runners/cron.js +176 -0
  354. package/dist/runners/cron.js.map +1 -0
  355. package/dist/runners/daemon.d.ts +71 -0
  356. package/dist/runners/daemon.d.ts.map +1 -0
  357. package/dist/runners/daemon.js +245 -0
  358. package/dist/runners/daemon.js.map +1 -0
  359. package/dist/runners/global-db.d.ts +31 -0
  360. package/dist/runners/global-db.d.ts.map +1 -0
  361. package/dist/runners/global-db.js +230 -0
  362. package/dist/runners/global-db.js.map +1 -0
  363. package/dist/runners/hang-detector.d.ts +38 -0
  364. package/dist/runners/hang-detector.d.ts.map +1 -0
  365. package/dist/runners/hang-detector.js +136 -0
  366. package/dist/runners/hang-detector.js.map +1 -0
  367. package/dist/runners/heartbeat.d.ts +39 -0
  368. package/dist/runners/heartbeat.d.ts.map +1 -0
  369. package/dist/runners/heartbeat.js +79 -0
  370. package/dist/runners/heartbeat.js.map +1 -0
  371. package/dist/runners/lock.d.ts +47 -0
  372. package/dist/runners/lock.d.ts.map +1 -0
  373. package/dist/runners/lock.js +150 -0
  374. package/dist/runners/lock.js.map +1 -0
  375. package/dist/runners/orchestrator-loop.d.ts +20 -0
  376. package/dist/runners/orchestrator-loop.d.ts.map +1 -0
  377. package/dist/runners/orchestrator-loop.js +285 -0
  378. package/dist/runners/orchestrator-loop.js.map +1 -0
  379. package/dist/runners/projects.d.ts +96 -0
  380. package/dist/runners/projects.d.ts.map +1 -0
  381. package/dist/runners/projects.js +255 -0
  382. package/dist/runners/projects.js.map +1 -0
  383. package/dist/runners/wakeup.d.ts +34 -0
  384. package/dist/runners/wakeup.d.ts.map +1 -0
  385. package/dist/runners/wakeup.js +291 -0
  386. package/dist/runners/wakeup.js.map +1 -0
  387. package/migrations/001_initial_schema.sql +106 -0
  388. package/migrations/002_add_commit_sha.sql +12 -0
  389. package/migrations/003_add_section_priority.sql +13 -0
  390. package/migrations/004_add_section_dependencies.sql +18 -0
  391. package/migrations/005_add_audit_actor_model.sql +10 -0
  392. package/migrations/006_add_task_invocations.sql +33 -0
  393. package/migrations/007_add_file_anchor.sql +14 -0
  394. package/migrations/manifest.json +62 -0
  395. package/package.json +49 -0
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ /**
3
+ * Hook Orchestrator
4
+ *
5
+ * Coordinates hook execution by:
6
+ * 1. Loading hooks from config
7
+ * 2. Matching events to hooks
8
+ * 3. Executing matching hooks (script or webhook)
9
+ * 4. Logging execution results
10
+ * 5. Handling failures gracefully (non-blocking)
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.HookOrchestrator = void 0;
14
+ exports.createOrchestrator = createOrchestrator;
15
+ const merge_js_1 = require("./merge.js");
16
+ const script_runner_js_1 = require("./script-runner.js");
17
+ const webhook_runner_js_1 = require("./webhook-runner.js");
18
+ /**
19
+ * Hook Orchestrator
20
+ *
21
+ * Manages hook lifecycle and execution
22
+ */
23
+ class HookOrchestrator {
24
+ hooks = [];
25
+ config;
26
+ constructor(hooks = [], config = {}) {
27
+ this.hooks = hooks;
28
+ this.config = {
29
+ verbose: config.verbose ?? false,
30
+ continueOnError: config.continueOnError ?? true,
31
+ };
32
+ }
33
+ /**
34
+ * Load hooks from configuration
35
+ */
36
+ setHooks(hooks) {
37
+ this.hooks = hooks;
38
+ }
39
+ /**
40
+ * Get all loaded hooks
41
+ */
42
+ getHooks() {
43
+ return [...this.hooks];
44
+ }
45
+ /**
46
+ * Get hooks for a specific event
47
+ */
48
+ getHooksForEvent(event) {
49
+ return (0, merge_js_1.filterHooksByEvent)(this.hooks, event);
50
+ }
51
+ /**
52
+ * Execute all hooks for an event
53
+ *
54
+ * @param event - Event name
55
+ * @param payload - Event payload
56
+ * @returns Array of execution results
57
+ */
58
+ async executeHooksForEvent(event, payload) {
59
+ const matchingHooks = this.getHooksForEvent(event);
60
+ if (matchingHooks.length === 0) {
61
+ return [];
62
+ }
63
+ if (this.config.verbose) {
64
+ console.log(`[Hooks] Executing ${matchingHooks.length} hook(s) for event: ${event}`);
65
+ }
66
+ const results = [];
67
+ for (const hook of matchingHooks) {
68
+ try {
69
+ // Validate hook configuration
70
+ const validation = (0, merge_js_1.validateHook)(hook);
71
+ if (!validation.valid) {
72
+ const error = `Invalid hook configuration: ${validation.errors.join(', ')}`;
73
+ results.push({
74
+ hookName: hook.name,
75
+ hookType: hook.type,
76
+ success: false,
77
+ duration: 0,
78
+ error,
79
+ });
80
+ if (this.config.verbose) {
81
+ console.error(`[Hooks] ${hook.name}: ${error}`);
82
+ }
83
+ if (!this.config.continueOnError) {
84
+ break;
85
+ }
86
+ continue;
87
+ }
88
+ // Execute hook based on type
89
+ const result = await this.executeHook(hook, payload);
90
+ results.push(result);
91
+ if (this.config.verbose) {
92
+ if (result.success) {
93
+ console.log(`[Hooks] ${hook.name}: ✓ Success (${result.duration}ms)`);
94
+ }
95
+ else {
96
+ console.error(`[Hooks] ${hook.name}: ✗ Failed - ${result.error}`);
97
+ }
98
+ }
99
+ // Stop if continueOnError is false and hook failed
100
+ if (!result.success && !this.config.continueOnError) {
101
+ break;
102
+ }
103
+ }
104
+ catch (error) {
105
+ const errorMsg = error instanceof Error ? error.message : String(error);
106
+ results.push({
107
+ hookName: hook.name,
108
+ hookType: hook.type,
109
+ success: false,
110
+ duration: 0,
111
+ error: errorMsg,
112
+ });
113
+ if (this.config.verbose) {
114
+ console.error(`[Hooks] ${hook.name}: ✗ Exception - ${errorMsg}`);
115
+ }
116
+ if (!this.config.continueOnError) {
117
+ break;
118
+ }
119
+ }
120
+ }
121
+ return results;
122
+ }
123
+ /**
124
+ * Execute a single hook
125
+ */
126
+ async executeHook(hook, payload) {
127
+ if (hook.type === 'script') {
128
+ return this.executeScriptHook(hook, payload);
129
+ }
130
+ else if (hook.type === 'webhook') {
131
+ return this.executeWebhookHook(hook, payload);
132
+ }
133
+ // This should never happen due to TypeScript's discriminated union
134
+ const _exhaustive = hook;
135
+ return {
136
+ hookName: hook.name,
137
+ hookType: hook.type,
138
+ success: false,
139
+ duration: 0,
140
+ error: `Unknown hook type: ${hook.type}`,
141
+ };
142
+ }
143
+ /**
144
+ * Execute a script hook
145
+ */
146
+ async executeScriptHook(hook, payload) {
147
+ const config = (0, merge_js_1.toScriptRunnerConfig)(hook);
148
+ const scriptResult = await (0, script_runner_js_1.executeScript)(config, payload);
149
+ return {
150
+ hookName: hook.name,
151
+ hookType: 'script',
152
+ success: scriptResult.success,
153
+ duration: scriptResult.duration,
154
+ error: scriptResult.error,
155
+ scriptResult,
156
+ };
157
+ }
158
+ /**
159
+ * Execute a webhook hook
160
+ */
161
+ async executeWebhookHook(hook, payload) {
162
+ const config = (0, merge_js_1.toWebhookRunnerConfig)(hook);
163
+ const webhookResult = await (0, webhook_runner_js_1.executeWebhook)(config, payload);
164
+ return {
165
+ hookName: hook.name,
166
+ hookType: 'webhook',
167
+ success: webhookResult.success,
168
+ duration: webhookResult.duration,
169
+ error: webhookResult.error,
170
+ webhookResult,
171
+ };
172
+ }
173
+ /**
174
+ * Validate all loaded hooks
175
+ *
176
+ * @returns Validation results for each hook
177
+ */
178
+ validateAllHooks() {
179
+ return this.hooks.map((hook) => {
180
+ const validation = (0, merge_js_1.validateHook)(hook);
181
+ return {
182
+ hook: hook.name,
183
+ valid: validation.valid,
184
+ errors: validation.errors,
185
+ };
186
+ });
187
+ }
188
+ /**
189
+ * Get statistics about loaded hooks
190
+ */
191
+ getStats() {
192
+ const stats = {
193
+ total: this.hooks.length,
194
+ enabled: 0,
195
+ disabled: 0,
196
+ byType: {},
197
+ byEvent: {},
198
+ };
199
+ for (const hook of this.hooks) {
200
+ if (hook.enabled === false) {
201
+ stats.disabled++;
202
+ }
203
+ else {
204
+ stats.enabled++;
205
+ }
206
+ stats.byType[hook.type] = (stats.byType[hook.type] || 0) + 1;
207
+ stats.byEvent[hook.event] = (stats.byEvent[hook.event] || 0) + 1;
208
+ }
209
+ return stats;
210
+ }
211
+ }
212
+ exports.HookOrchestrator = HookOrchestrator;
213
+ /**
214
+ * Create a hook orchestrator from global and project hooks
215
+ *
216
+ * @param globalHooks - Hooks from ~/.steroids/config.yaml
217
+ * @param projectHooks - Hooks from .steroids/config.yaml
218
+ * @param config - Orchestrator configuration
219
+ * @returns Configured hook orchestrator
220
+ */
221
+ function createOrchestrator(globalHooks, projectHooks, config) {
222
+ const { mergeHooks } = require('./merge.js');
223
+ const merged = mergeHooks(globalHooks, projectHooks);
224
+ return new HookOrchestrator(merged, config);
225
+ }
226
+ //# sourceMappingURL=orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/hooks/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,294 @@
1
+ /**
2
+ * Hook Payload Schemas
3
+ *
4
+ * Defines the payload structures for each hook event type.
5
+ * Payloads contain all context needed by hook handlers.
6
+ */
7
+ import type { HookEvent } from './events';
8
+ /**
9
+ * Task status values
10
+ */
11
+ export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'review';
12
+ /**
13
+ * Health status values
14
+ */
15
+ export type HealthStatus = 'healthy' | 'warning' | 'critical';
16
+ /**
17
+ * Dispute status values
18
+ */
19
+ export type DisputeStatus = 'open' | 'resolved';
20
+ /**
21
+ * Dispute type values
22
+ */
23
+ export type DisputeType = 'scope' | 'quality' | 'requirements' | 'other';
24
+ /**
25
+ * Dispute resolution values
26
+ */
27
+ export type DisputeResolution = 'coder_wins' | 'reviewer_wins' | 'compromise' | 'escalated';
28
+ /**
29
+ * Base payload structure for all events
30
+ */
31
+ export interface BasePayload {
32
+ /** Event name that triggered this hook */
33
+ event: HookEvent;
34
+ /** ISO 8601 timestamp of when the event occurred */
35
+ timestamp: string;
36
+ }
37
+ /**
38
+ * Project context included in all payloads
39
+ */
40
+ export interface ProjectContext {
41
+ /** Project name (directory name) */
42
+ name: string;
43
+ /** Absolute path to project root */
44
+ path: string;
45
+ }
46
+ /**
47
+ * Task data for task-related events
48
+ */
49
+ export interface TaskData {
50
+ /** Unique task identifier */
51
+ id: string;
52
+ /** Task title/description */
53
+ title: string;
54
+ /** Current task status */
55
+ status: TaskStatus;
56
+ /** Previous status (for update events) */
57
+ previousStatus?: TaskStatus;
58
+ /** Section name the task belongs to */
59
+ section?: string | null;
60
+ /** Section ID the task belongs to */
61
+ sectionId?: string | null;
62
+ /** File where task is defined */
63
+ file?: string;
64
+ /** Line number in source file */
65
+ line?: number;
66
+ /** Original source file for synced tasks */
67
+ sourceFile?: string | null;
68
+ /** Number of times task was rejected */
69
+ rejectionCount?: number;
70
+ }
71
+ /**
72
+ * Section data for section-related events
73
+ */
74
+ export interface SectionData {
75
+ /** Unique section identifier */
76
+ id: string;
77
+ /** Section name */
78
+ name: string;
79
+ /** Number of tasks in section */
80
+ taskCount: number;
81
+ /** File where section is defined */
82
+ file?: string;
83
+ }
84
+ /**
85
+ * Task summary for section/project completion
86
+ */
87
+ export interface TaskSummary {
88
+ /** Task ID */
89
+ id: string;
90
+ /** Task title */
91
+ title: string;
92
+ }
93
+ /**
94
+ * Health data for health-related events
95
+ */
96
+ export interface HealthData {
97
+ /** Current health score (0-100) */
98
+ score: number;
99
+ /** Previous health score (for change events) */
100
+ previousScore?: number;
101
+ /** Health status category */
102
+ status: HealthStatus;
103
+ /** List of failed check names */
104
+ failedChecks?: string[];
105
+ }
106
+ /**
107
+ * Dispute data for dispute-related events
108
+ */
109
+ export interface DisputeData {
110
+ /** Unique dispute identifier */
111
+ id: string;
112
+ /** Task ID the dispute is about */
113
+ taskId: string;
114
+ /** Type of dispute */
115
+ type: DisputeType;
116
+ /** Dispute status */
117
+ status: DisputeStatus;
118
+ /** Reason for opening dispute */
119
+ reason: string;
120
+ /** Coder's position */
121
+ coderPosition?: string;
122
+ /** Reviewer's position */
123
+ reviewerPosition?: string;
124
+ /** Resolution (for resolved disputes) */
125
+ resolution?: DisputeResolution;
126
+ /** Resolution notes */
127
+ resolutionNotes?: string;
128
+ /** Who created the dispute */
129
+ createdBy: string;
130
+ /** Who resolved the dispute (if resolved) */
131
+ resolvedBy?: string;
132
+ }
133
+ /**
134
+ * Project summary for project completion
135
+ */
136
+ export interface ProjectSummary {
137
+ /** Total number of tasks in project */
138
+ totalTasks: number;
139
+ /** List of files containing tasks */
140
+ files: string[];
141
+ /** Number of sections */
142
+ sectionCount?: number;
143
+ }
144
+ /**
145
+ * Payload for task.created event
146
+ */
147
+ export interface TaskCreatedPayload extends BasePayload {
148
+ event: 'task.created';
149
+ task: TaskData;
150
+ project: ProjectContext;
151
+ }
152
+ /**
153
+ * Payload for task.updated event
154
+ */
155
+ export interface TaskUpdatedPayload extends BasePayload {
156
+ event: 'task.updated';
157
+ task: TaskData;
158
+ project: ProjectContext;
159
+ }
160
+ /**
161
+ * Payload for task.completed event
162
+ */
163
+ export interface TaskCompletedPayload extends BasePayload {
164
+ event: 'task.completed';
165
+ task: TaskData;
166
+ project: ProjectContext;
167
+ }
168
+ /**
169
+ * Payload for task.failed event
170
+ */
171
+ export interface TaskFailedPayload extends BasePayload {
172
+ event: 'task.failed';
173
+ task: TaskData;
174
+ project: ProjectContext;
175
+ /** Maximum rejections reached */
176
+ maxRejections: number;
177
+ }
178
+ /**
179
+ * Payload for section.completed event
180
+ */
181
+ export interface SectionCompletedPayload extends BasePayload {
182
+ event: 'section.completed';
183
+ section: SectionData;
184
+ tasks: TaskSummary[];
185
+ project: ProjectContext;
186
+ }
187
+ /**
188
+ * Payload for project.completed event
189
+ */
190
+ export interface ProjectCompletedPayload extends BasePayload {
191
+ event: 'project.completed';
192
+ project: ProjectContext;
193
+ summary: ProjectSummary;
194
+ }
195
+ /**
196
+ * Payload for health.changed event
197
+ */
198
+ export interface HealthChangedPayload extends BasePayload {
199
+ event: 'health.changed';
200
+ project: ProjectContext;
201
+ health: HealthData;
202
+ }
203
+ /**
204
+ * Payload for health.critical event
205
+ */
206
+ export interface HealthCriticalPayload extends BasePayload {
207
+ event: 'health.critical';
208
+ project: ProjectContext;
209
+ health: HealthData;
210
+ /** Threshold that was violated */
211
+ threshold: number;
212
+ }
213
+ /**
214
+ * Payload for dispute.created event
215
+ */
216
+ export interface DisputeCreatedPayload extends BasePayload {
217
+ event: 'dispute.created';
218
+ dispute: DisputeData;
219
+ task: TaskData;
220
+ project: ProjectContext;
221
+ }
222
+ /**
223
+ * Payload for dispute.resolved event
224
+ */
225
+ export interface DisputeResolvedPayload extends BasePayload {
226
+ event: 'dispute.resolved';
227
+ dispute: DisputeData;
228
+ task: TaskData;
229
+ project: ProjectContext;
230
+ }
231
+ /**
232
+ * Union of all task event payloads
233
+ */
234
+ export type TaskEventPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskFailedPayload;
235
+ /**
236
+ * Union of all health event payloads
237
+ */
238
+ export type HealthEventPayload = HealthChangedPayload | HealthCriticalPayload;
239
+ /**
240
+ * Union of all dispute event payloads
241
+ */
242
+ export type DisputeEventPayload = DisputeCreatedPayload | DisputeResolvedPayload;
243
+ /**
244
+ * Union of all possible hook payloads
245
+ */
246
+ export type HookPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskFailedPayload | SectionCompletedPayload | ProjectCompletedPayload | HealthChangedPayload | HealthCriticalPayload | DisputeCreatedPayload | DisputeResolvedPayload;
247
+ /**
248
+ * Create a task.created payload
249
+ */
250
+ export declare function createTaskCreatedPayload(task: TaskData, project: ProjectContext): TaskCreatedPayload;
251
+ /**
252
+ * Create a task.updated payload
253
+ */
254
+ export declare function createTaskUpdatedPayload(task: TaskData, project: ProjectContext): TaskUpdatedPayload;
255
+ /**
256
+ * Create a task.completed payload
257
+ */
258
+ export declare function createTaskCompletedPayload(task: TaskData, project: ProjectContext): TaskCompletedPayload;
259
+ /**
260
+ * Create a task.failed payload
261
+ */
262
+ export declare function createTaskFailedPayload(task: TaskData, project: ProjectContext, maxRejections: number): TaskFailedPayload;
263
+ /**
264
+ * Create a section.completed payload
265
+ */
266
+ export declare function createSectionCompletedPayload(section: SectionData, tasks: TaskSummary[], project: ProjectContext): SectionCompletedPayload;
267
+ /**
268
+ * Create a project.completed payload
269
+ */
270
+ export declare function createProjectCompletedPayload(project: ProjectContext, summary: ProjectSummary): ProjectCompletedPayload;
271
+ /**
272
+ * Create a health.changed payload
273
+ */
274
+ export declare function createHealthChangedPayload(project: ProjectContext, health: HealthData): HealthChangedPayload;
275
+ /**
276
+ * Create a health.critical payload
277
+ */
278
+ export declare function createHealthCriticalPayload(project: ProjectContext, health: HealthData, threshold: number): HealthCriticalPayload;
279
+ /**
280
+ * Create a dispute.created payload
281
+ */
282
+ export declare function createDisputeCreatedPayload(dispute: DisputeData, task: TaskData, project: ProjectContext): DisputeCreatedPayload;
283
+ /**
284
+ * Create a dispute.resolved payload
285
+ */
286
+ export declare function createDisputeResolvedPayload(dispute: DisputeData, task: TaskData, project: ProjectContext): DisputeResolvedPayload;
287
+ /**
288
+ * Validate that a payload has required fields for its event type
289
+ */
290
+ export declare function validatePayload(payload: HookPayload): {
291
+ valid: boolean;
292
+ errors: string[];
293
+ };
294
+ //# sourceMappingURL=payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/hooks/payload.ts"],"names":[],"mappings":"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"}