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,251 @@
1
+ "use strict";
2
+ /**
3
+ * Git status and diff utilities
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getCurrentCommitSha = getCurrentCommitSha;
7
+ exports.getShortCommitSha = getShortCommitSha;
8
+ exports.getGitStatus = getGitStatus;
9
+ exports.getGitDiff = getGitDiff;
10
+ exports.getModifiedFiles = getModifiedFiles;
11
+ exports.hasUncommittedChanges = hasUncommittedChanges;
12
+ exports.isGitRepo = isGitRepo;
13
+ exports.findTaskCommit = findTaskCommit;
14
+ exports.getCommitDiff = getCommitDiff;
15
+ exports.getCommitFiles = getCommitFiles;
16
+ exports.isFileTracked = isFileTracked;
17
+ exports.isFileDirty = isFileDirty;
18
+ exports.getFileLastCommit = getFileLastCommit;
19
+ exports.getFileContentHash = getFileContentHash;
20
+ const node_child_process_1 = require("node:child_process");
21
+ /**
22
+ * Get the current HEAD commit SHA
23
+ */
24
+ function getCurrentCommitSha(projectPath = process.cwd()) {
25
+ try {
26
+ return (0, node_child_process_1.execSync)('git rev-parse HEAD', {
27
+ cwd: projectPath,
28
+ encoding: 'utf-8',
29
+ stdio: ['pipe', 'pipe', 'pipe'],
30
+ }).trim();
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ /**
37
+ * Get short (7 char) commit SHA
38
+ */
39
+ function getShortCommitSha(projectPath = process.cwd()) {
40
+ try {
41
+ return (0, node_child_process_1.execSync)('git rev-parse --short HEAD', {
42
+ cwd: projectPath,
43
+ encoding: 'utf-8',
44
+ stdio: ['pipe', 'pipe', 'pipe'],
45
+ }).trim();
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ /**
52
+ * Get git status output
53
+ */
54
+ function getGitStatus(projectPath = process.cwd()) {
55
+ try {
56
+ return (0, node_child_process_1.execSync)('git status --porcelain', {
57
+ cwd: projectPath,
58
+ encoding: 'utf-8',
59
+ stdio: ['pipe', 'pipe', 'pipe'],
60
+ });
61
+ }
62
+ catch {
63
+ return '';
64
+ }
65
+ }
66
+ /**
67
+ * Get git diff output
68
+ */
69
+ function getGitDiff(projectPath = process.cwd(), ref) {
70
+ try {
71
+ const cmd = ref ? `git diff ${ref}` : 'git diff';
72
+ return (0, node_child_process_1.execSync)(cmd, {
73
+ cwd: projectPath,
74
+ encoding: 'utf-8',
75
+ stdio: ['pipe', 'pipe', 'pipe'],
76
+ maxBuffer: 10 * 1024 * 1024, // 10MB
77
+ });
78
+ }
79
+ catch {
80
+ return '';
81
+ }
82
+ }
83
+ /**
84
+ * Get list of modified files
85
+ */
86
+ function getModifiedFiles(projectPath = process.cwd(), ref) {
87
+ try {
88
+ const cmd = ref ? `git diff --name-only ${ref}` : 'git diff --name-only HEAD~1';
89
+ const output = (0, node_child_process_1.execSync)(cmd, {
90
+ cwd: projectPath,
91
+ encoding: 'utf-8',
92
+ stdio: ['pipe', 'pipe', 'pipe'],
93
+ });
94
+ return output.trim().split('\n').filter(Boolean);
95
+ }
96
+ catch {
97
+ return [];
98
+ }
99
+ }
100
+ /**
101
+ * Check if there are uncommitted changes
102
+ */
103
+ function hasUncommittedChanges(projectPath = process.cwd()) {
104
+ const status = getGitStatus(projectPath);
105
+ return status.trim().length > 0;
106
+ }
107
+ /**
108
+ * Check if we're in a git repository
109
+ */
110
+ function isGitRepo(projectPath = process.cwd()) {
111
+ try {
112
+ (0, node_child_process_1.execSync)('git rev-parse --git-dir', {
113
+ cwd: projectPath,
114
+ encoding: 'utf-8',
115
+ stdio: ['pipe', 'pipe', 'pipe'],
116
+ });
117
+ return true;
118
+ }
119
+ catch {
120
+ return false;
121
+ }
122
+ }
123
+ /**
124
+ * Find the commit hash for a task by searching commit messages
125
+ * Returns the most recent commit that mentions the task title
126
+ */
127
+ function findTaskCommit(projectPath, taskTitle) {
128
+ try {
129
+ // Search last 20 commits for one mentioning the task
130
+ const log = (0, node_child_process_1.execSync)('git log --oneline -20', {
131
+ cwd: projectPath,
132
+ encoding: 'utf-8',
133
+ stdio: ['pipe', 'pipe', 'pipe'],
134
+ });
135
+ // Look for commit message containing key words from task title
136
+ const titleWords = taskTitle.toLowerCase().split(/\s+/).filter(w => w.length > 3);
137
+ const lines = log.trim().split('\n');
138
+ for (const line of lines) {
139
+ const [hash, ...messageParts] = line.split(' ');
140
+ const message = messageParts.join(' ').toLowerCase();
141
+ // Check if at least 2 significant words match
142
+ let matches = 0;
143
+ for (const word of titleWords) {
144
+ if (message.includes(word))
145
+ matches++;
146
+ }
147
+ if (matches >= 2 || (titleWords.length <= 2 && matches >= 1)) {
148
+ return hash;
149
+ }
150
+ }
151
+ return null;
152
+ }
153
+ catch {
154
+ return null;
155
+ }
156
+ }
157
+ /**
158
+ * Get the diff of a specific commit
159
+ */
160
+ function getCommitDiff(projectPath, commitHash) {
161
+ try {
162
+ return (0, node_child_process_1.execSync)(`git show ${commitHash} --stat --patch`, {
163
+ cwd: projectPath,
164
+ encoding: 'utf-8',
165
+ stdio: ['pipe', 'pipe', 'pipe'],
166
+ maxBuffer: 10 * 1024 * 1024,
167
+ });
168
+ }
169
+ catch {
170
+ return '';
171
+ }
172
+ }
173
+ /**
174
+ * Get files changed in a specific commit
175
+ */
176
+ function getCommitFiles(projectPath, commitHash) {
177
+ try {
178
+ const output = (0, node_child_process_1.execSync)(`git show --name-only --pretty=format: ${commitHash}`, {
179
+ cwd: projectPath,
180
+ encoding: 'utf-8',
181
+ stdio: ['pipe', 'pipe', 'pipe'],
182
+ });
183
+ return output.trim().split('\n').filter(Boolean);
184
+ }
185
+ catch {
186
+ return [];
187
+ }
188
+ }
189
+ /**
190
+ * Check if a specific file is tracked by git
191
+ */
192
+ function isFileTracked(filePath, projectPath = process.cwd()) {
193
+ try {
194
+ (0, node_child_process_1.execFileSync)('git', ['ls-files', '--error-unmatch', filePath], {
195
+ cwd: projectPath,
196
+ encoding: 'utf-8',
197
+ stdio: ['pipe', 'pipe', 'pipe'],
198
+ });
199
+ return true;
200
+ }
201
+ catch {
202
+ return false;
203
+ }
204
+ }
205
+ /**
206
+ * Check if a specific file has uncommitted changes (staged or unstaged)
207
+ */
208
+ function isFileDirty(filePath, projectPath = process.cwd()) {
209
+ try {
210
+ const status = (0, node_child_process_1.execFileSync)('git', ['status', '--porcelain', '--', filePath], {
211
+ cwd: projectPath,
212
+ encoding: 'utf-8',
213
+ stdio: ['pipe', 'pipe', 'pipe'],
214
+ }).trim();
215
+ return status.length > 0;
216
+ }
217
+ catch {
218
+ return true;
219
+ }
220
+ }
221
+ /**
222
+ * Get the SHA of the most recent commit that modified a file
223
+ */
224
+ function getFileLastCommit(filePath, projectPath = process.cwd()) {
225
+ try {
226
+ return (0, node_child_process_1.execFileSync)('git', ['log', '-1', '--format=%H', '--', filePath], {
227
+ cwd: projectPath,
228
+ encoding: 'utf-8',
229
+ stdio: ['pipe', 'pipe', 'pipe'],
230
+ }).trim() || null;
231
+ }
232
+ catch {
233
+ return null;
234
+ }
235
+ }
236
+ /**
237
+ * Get the git blob hash of a file at HEAD (content-addressable hash)
238
+ */
239
+ function getFileContentHash(filePath, projectPath = process.cwd()) {
240
+ try {
241
+ return (0, node_child_process_1.execFileSync)('git', ['rev-parse', `HEAD:${filePath}`], {
242
+ cwd: projectPath,
243
+ encoding: 'utf-8',
244
+ stdio: ['pipe', 'pipe', 'pipe'],
245
+ }).trim() || null;
246
+ }
247
+ catch {
248
+ return null;
249
+ }
250
+ }
251
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/git/status.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAOH,kDAUC;AAKD,8CAUC;AAKD,oCAUC;AAKD,gCAeC;AAKD,4CAeC;AAKD,sDAKC;AAKD,8BAWC;AAMD,wCAkCC;AAKD,sCAcC;AAKD,wCAcC;AAKD,sCAcC;AAKD,kCAcC;AAKD,8CAaC;AAKD,gDAaC;AAvQD,2DAA4D;AAE5D;;GAEG;AACH,SAAgB,mBAAmB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACrE,IAAI,CAAC;QACH,OAAO,IAAA,6BAAQ,EAAC,oBAAoB,EAAE;YACpC,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACnE,IAAI,CAAC;QACH,OAAO,IAAA,6BAAQ,EAAC,4BAA4B,EAAE;YAC5C,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAC9D,IAAI,CAAC;QACH,OAAO,IAAA,6BAAQ,EAAC,wBAAwB,EAAE;YACxC,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CACxB,cAAsB,OAAO,CAAC,GAAG,EAAE,EACnC,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QACjD,OAAO,IAAA,6BAAQ,EAAC,GAAG,EAAE;YACnB,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;SACrC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,cAAsB,OAAO,CAAC,GAAG,EAAE,EACnC,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAChF,MAAM,MAAM,GAAG,IAAA,6BAAQ,EAAC,GAAG,EAAE;YAC3B,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAC3D,IAAI,CAAC;QACH,IAAA,6BAAQ,EAAC,yBAAyB,EAAE;YAClC,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,WAAmB,EACnB,SAAiB;IAEjB,IAAI,CAAC;QACH,qDAAqD;QACrD,MAAM,GAAG,GAAG,IAAA,6BAAQ,EAAC,uBAAuB,EAAE;YAC5C,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,+DAA+D;QAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAErD,8CAA8C;YAC9C,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO,EAAE,CAAC;YACxC,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC7D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAC3B,WAAmB,EACnB,UAAkB;IAElB,IAAI,CAAC;QACH,OAAO,IAAA,6BAAQ,EAAC,YAAY,UAAU,iBAAiB,EAAE;YACvD,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,WAAmB,EACnB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,6BAAQ,EAAC,yCAAyC,UAAU,EAAE,EAAE;YAC7E,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAC3B,QAAgB,EAChB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,IAAA,iCAAY,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE;YAC7D,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,QAAgB,EAChB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,iCAAY,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;YAC5E,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,QAAgB,EAChB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,OAAO,IAAA,iCAAY,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;YACvE,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,OAAO,IAAA,iCAAY,EAAC,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,QAAQ,EAAE,CAAC,EAAE;YAC5D,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Hook Event Types
3
+ *
4
+ * Defines all hook events that can trigger scripts or webhooks.
5
+ * Events are emitted when state changes occur in the system.
6
+ */
7
+ /**
8
+ * All supported hook event names
9
+ */
10
+ export declare const HOOK_EVENTS: readonly ["task.created", "task.updated", "task.completed", "task.failed", "section.completed", "project.completed", "health.changed", "health.critical", "dispute.created", "dispute.resolved"];
11
+ /**
12
+ * Hook event type (union of all event names)
13
+ */
14
+ export type HookEvent = (typeof HOOK_EVENTS)[number];
15
+ /**
16
+ * Task-related events
17
+ */
18
+ export declare const TASK_EVENTS: readonly ["task.created", "task.updated", "task.completed", "task.failed"];
19
+ export type TaskEvent = (typeof TASK_EVENTS)[number];
20
+ /**
21
+ * Section-related events
22
+ */
23
+ export declare const SECTION_EVENTS: readonly ["section.completed"];
24
+ export type SectionEvent = (typeof SECTION_EVENTS)[number];
25
+ /**
26
+ * Project-related events
27
+ */
28
+ export declare const PROJECT_EVENTS: readonly ["project.completed"];
29
+ export type ProjectEvent = (typeof PROJECT_EVENTS)[number];
30
+ /**
31
+ * Health-related events
32
+ */
33
+ export declare const HEALTH_EVENTS: readonly ["health.changed", "health.critical"];
34
+ export type HealthEvent = (typeof HEALTH_EVENTS)[number];
35
+ /**
36
+ * Dispute-related events
37
+ */
38
+ export declare const DISPUTE_EVENTS: readonly ["dispute.created", "dispute.resolved"];
39
+ export type DisputeEvent = (typeof DISPUTE_EVENTS)[number];
40
+ /**
41
+ * Event descriptions for documentation and help text
42
+ */
43
+ export declare const EVENT_DESCRIPTIONS: Record<HookEvent, string>;
44
+ /**
45
+ * Check if a string is a valid hook event
46
+ */
47
+ export declare function isValidHookEvent(event: string): event is HookEvent;
48
+ /**
49
+ * Check if an event is a task event
50
+ */
51
+ export declare function isTaskEvent(event: HookEvent): event is TaskEvent;
52
+ /**
53
+ * Check if an event is a section event
54
+ */
55
+ export declare function isSectionEvent(event: HookEvent): event is SectionEvent;
56
+ /**
57
+ * Check if an event is a project event
58
+ */
59
+ export declare function isProjectEvent(event: HookEvent): event is ProjectEvent;
60
+ /**
61
+ * Check if an event is a health event
62
+ */
63
+ export declare function isHealthEvent(event: HookEvent): event is HealthEvent;
64
+ /**
65
+ * Check if an event is a dispute event
66
+ */
67
+ export declare function isDisputeEvent(event: HookEvent): event is DisputeEvent;
68
+ /**
69
+ * Get all events in a category
70
+ */
71
+ export declare function getEventsByCategory(): Record<string, HookEvent[]>;
72
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/hooks/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,kMAWd,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,WAAW,4EAKd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,cAAc,gCAAiC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,cAAc,gCAAiC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,aAAa,gDAAiD,CAAC;AAE5E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,cAAc,kDAAmD,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAWxD,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,SAAS,CAElE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,YAAY,CAEtE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,YAAY,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,WAAW,CAEpE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,YAAY,CAEtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAQjE"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * Hook Event Types
4
+ *
5
+ * Defines all hook events that can trigger scripts or webhooks.
6
+ * Events are emitted when state changes occur in the system.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.EVENT_DESCRIPTIONS = exports.DISPUTE_EVENTS = exports.HEALTH_EVENTS = exports.PROJECT_EVENTS = exports.SECTION_EVENTS = exports.TASK_EVENTS = exports.HOOK_EVENTS = void 0;
10
+ exports.isValidHookEvent = isValidHookEvent;
11
+ exports.isTaskEvent = isTaskEvent;
12
+ exports.isSectionEvent = isSectionEvent;
13
+ exports.isProjectEvent = isProjectEvent;
14
+ exports.isHealthEvent = isHealthEvent;
15
+ exports.isDisputeEvent = isDisputeEvent;
16
+ exports.getEventsByCategory = getEventsByCategory;
17
+ /**
18
+ * All supported hook event names
19
+ */
20
+ exports.HOOK_EVENTS = [
21
+ 'task.created',
22
+ 'task.updated',
23
+ 'task.completed',
24
+ 'task.failed',
25
+ 'section.completed',
26
+ 'project.completed',
27
+ 'health.changed',
28
+ 'health.critical',
29
+ 'dispute.created',
30
+ 'dispute.resolved',
31
+ ];
32
+ /**
33
+ * Task-related events
34
+ */
35
+ exports.TASK_EVENTS = [
36
+ 'task.created',
37
+ 'task.updated',
38
+ 'task.completed',
39
+ 'task.failed',
40
+ ];
41
+ /**
42
+ * Section-related events
43
+ */
44
+ exports.SECTION_EVENTS = ['section.completed'];
45
+ /**
46
+ * Project-related events
47
+ */
48
+ exports.PROJECT_EVENTS = ['project.completed'];
49
+ /**
50
+ * Health-related events
51
+ */
52
+ exports.HEALTH_EVENTS = ['health.changed', 'health.critical'];
53
+ /**
54
+ * Dispute-related events
55
+ */
56
+ exports.DISPUTE_EVENTS = ['dispute.created', 'dispute.resolved'];
57
+ /**
58
+ * Event descriptions for documentation and help text
59
+ */
60
+ exports.EVENT_DESCRIPTIONS = {
61
+ 'task.created': 'Triggered when a new task is added',
62
+ 'task.updated': 'Triggered when a task status changes',
63
+ 'task.completed': 'Triggered when a task is marked complete',
64
+ 'task.failed': 'Triggered when a task fails (max rejections reached)',
65
+ 'section.completed': 'Triggered when all tasks in a section are done',
66
+ 'project.completed': 'Triggered when all tasks in the project are done',
67
+ 'health.changed': 'Triggered when the project health score changes',
68
+ 'health.critical': 'Triggered when health drops below threshold',
69
+ 'dispute.created': 'Triggered when a dispute is opened',
70
+ 'dispute.resolved': 'Triggered when a dispute is resolved',
71
+ };
72
+ /**
73
+ * Check if a string is a valid hook event
74
+ */
75
+ function isValidHookEvent(event) {
76
+ return exports.HOOK_EVENTS.includes(event);
77
+ }
78
+ /**
79
+ * Check if an event is a task event
80
+ */
81
+ function isTaskEvent(event) {
82
+ return exports.TASK_EVENTS.includes(event);
83
+ }
84
+ /**
85
+ * Check if an event is a section event
86
+ */
87
+ function isSectionEvent(event) {
88
+ return exports.SECTION_EVENTS.includes(event);
89
+ }
90
+ /**
91
+ * Check if an event is a project event
92
+ */
93
+ function isProjectEvent(event) {
94
+ return exports.PROJECT_EVENTS.includes(event);
95
+ }
96
+ /**
97
+ * Check if an event is a health event
98
+ */
99
+ function isHealthEvent(event) {
100
+ return exports.HEALTH_EVENTS.includes(event);
101
+ }
102
+ /**
103
+ * Check if an event is a dispute event
104
+ */
105
+ function isDisputeEvent(event) {
106
+ return exports.DISPUTE_EVENTS.includes(event);
107
+ }
108
+ /**
109
+ * Get all events in a category
110
+ */
111
+ function getEventsByCategory() {
112
+ return {
113
+ task: [...exports.TASK_EVENTS],
114
+ section: [...exports.SECTION_EVENTS],
115
+ project: [...exports.PROJECT_EVENTS],
116
+ health: [...exports.HEALTH_EVENTS],
117
+ dispute: [...exports.DISPUTE_EVENTS],
118
+ };
119
+ }
120
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/hooks/events.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkFH,4CAEC;AAKD,kCAEC;AAKD,wCAEC;AAKD,wCAEC;AAKD,sCAEC;AAKD,wCAEC;AAKD,kDAQC;AAlID;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;CACV,CAAC;AAOX;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,aAAa;CACL,CAAC;AAIX;;GAEG;AACU,QAAA,cAAc,GAAG,CAAC,mBAAmB,CAAU,CAAC;AAI7D;;GAEG;AACU,QAAA,cAAc,GAAG,CAAC,mBAAmB,CAAU,CAAC;AAI7D;;GAEG;AACU,QAAA,aAAa,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAU,CAAC;AAI5E;;GAEG;AACU,QAAA,cAAc,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAU,CAAC;AAI/E;;GAEG;AACU,QAAA,kBAAkB,GAA8B;IAC3D,cAAc,EAAE,oCAAoC;IACpD,cAAc,EAAE,sCAAsC;IACtD,gBAAgB,EAAE,0CAA0C;IAC5D,aAAa,EAAE,sDAAsD;IACrE,mBAAmB,EAAE,gDAAgD;IACrE,mBAAmB,EAAE,kDAAkD;IACvE,gBAAgB,EAAE,iDAAiD;IACnE,iBAAiB,EAAE,6CAA6C;IAChE,iBAAiB,EAAE,oCAAoC;IACvD,kBAAkB,EAAE,sCAAsC;CAC3D,CAAC;AAEF;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,mBAAW,CAAC,QAAQ,CAAC,KAAkB,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAgB;IAC1C,OAAO,mBAAW,CAAC,QAAQ,CAAC,KAAkB,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAgB;IAC7C,OAAO,sBAAc,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAgB;IAC7C,OAAO,sBAAc,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAgB;IAC5C,OAAO,qBAAa,CAAC,QAAQ,CAAC,KAAoB,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAgB;IAC7C,OAAO,sBAAc,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO;QACL,IAAI,EAAE,CAAC,GAAG,mBAAW,CAAC;QACtB,OAAO,EAAE,CAAC,GAAG,sBAAc,CAAC;QAC5B,OAAO,EAAE,CAAC,GAAG,sBAAc,CAAC;QAC5B,MAAM,EAAE,CAAC,GAAG,qBAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,GAAG,sBAAc,CAAC;KAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Hooks System
3
+ *
4
+ * Complete hooks implementation including:
5
+ * - Event definitions
6
+ * - Payload schemas
7
+ * - Template variable resolution
8
+ * - Script and webhook runners
9
+ * - Hook merging and orchestration
10
+ */
11
+ export * from './events.js';
12
+ export * from './payload.js';
13
+ export * from './templates.js';
14
+ export { type ScriptHookConfig, type ScriptResult, executeScript, validateScriptConfig, } from './script-runner.js';
15
+ export { type HttpMethod, type WebhookHookConfig, type WebhookResult, executeWebhook, validateWebhookConfig, parseTimeout, } from './webhook-runner.js';
16
+ export * from './merge.js';
17
+ export * from './orchestrator.js';
18
+ export * from './integration.js';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,aAAa,EACb,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,cAAc,EACd,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B,cAAc,YAAY,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Hooks System
4
+ *
5
+ * Complete hooks implementation including:
6
+ * - Event definitions
7
+ * - Payload schemas
8
+ * - Template variable resolution
9
+ * - Script and webhook runners
10
+ * - Hook merging and orchestration
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
24
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.parseTimeout = exports.validateWebhookConfig = exports.executeWebhook = exports.validateScriptConfig = exports.executeScript = void 0;
28
+ // Events
29
+ __exportStar(require("./events.js"), exports);
30
+ // Payloads
31
+ __exportStar(require("./payload.js"), exports);
32
+ // Templates
33
+ __exportStar(require("./templates.js"), exports);
34
+ // Runners
35
+ var script_runner_js_1 = require("./script-runner.js");
36
+ Object.defineProperty(exports, "executeScript", { enumerable: true, get: function () { return script_runner_js_1.executeScript; } });
37
+ Object.defineProperty(exports, "validateScriptConfig", { enumerable: true, get: function () { return script_runner_js_1.validateScriptConfig; } });
38
+ var webhook_runner_js_1 = require("./webhook-runner.js");
39
+ Object.defineProperty(exports, "executeWebhook", { enumerable: true, get: function () { return webhook_runner_js_1.executeWebhook; } });
40
+ Object.defineProperty(exports, "validateWebhookConfig", { enumerable: true, get: function () { return webhook_runner_js_1.validateWebhookConfig; } });
41
+ Object.defineProperty(exports, "parseTimeout", { enumerable: true, get: function () { return webhook_runner_js_1.parseTimeout; } });
42
+ // Merge logic
43
+ __exportStar(require("./merge.js"), exports);
44
+ // Orchestrator
45
+ __exportStar(require("./orchestrator.js"), exports);
46
+ // Integration helpers
47
+ __exportStar(require("./integration.js"), exports);
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,SAAS;AACT,8CAA4B;AAE5B,WAAW;AACX,+CAA6B;AAE7B,YAAY;AACZ,iDAA+B;AAE/B,UAAU;AACV,uDAK4B;AAF1B,iHAAA,aAAa,OAAA;AACb,wHAAA,oBAAoB,OAAA;AAGtB,yDAO6B;AAH3B,mHAAA,cAAc,OAAA;AACd,0HAAA,qBAAqB,OAAA;AACrB,iHAAA,YAAY,OAAA;AAGd,cAAc;AACd,6CAA2B;AAE3B,eAAe;AACf,oDAAkC;AAElC,sBAAsB;AACtB,mDAAiC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Hook Integration
3
+ *
4
+ * Helper functions to trigger hooks from CLI commands.
5
+ * Loads and merges global/project hooks, then executes them.
6
+ */
7
+ import { type HookExecutionResult } from './orchestrator.js';
8
+ import type { SectionData } from './payload.js';
9
+ import { type TaskSummary, type ProjectSummary } from './payload.js';
10
+ import type { Task } from '../database/queries.js';
11
+ /**
12
+ * Trigger task.created hooks
13
+ */
14
+ export declare function triggerTaskCreated(task: Task, options?: {
15
+ verbose?: boolean;
16
+ projectPath?: string;
17
+ }): Promise<HookExecutionResult[]>;
18
+ /**
19
+ * Trigger task.updated hooks
20
+ */
21
+ export declare function triggerTaskUpdated(task: Task, previousStatus?: string, options?: {
22
+ verbose?: boolean;
23
+ projectPath?: string;
24
+ }): Promise<HookExecutionResult[]>;
25
+ /**
26
+ * Trigger task.completed hooks
27
+ */
28
+ export declare function triggerTaskCompleted(task: Task, options?: {
29
+ verbose?: boolean;
30
+ projectPath?: string;
31
+ }): Promise<HookExecutionResult[]>;
32
+ /**
33
+ * Trigger task.failed hooks
34
+ */
35
+ export declare function triggerTaskFailed(task: Task, maxRejections: number, options?: {
36
+ verbose?: boolean;
37
+ projectPath?: string;
38
+ }): Promise<HookExecutionResult[]>;
39
+ /**
40
+ * Trigger section.completed hooks
41
+ */
42
+ export declare function triggerSectionCompleted(section: SectionData, tasks: TaskSummary[], options?: {
43
+ verbose?: boolean;
44
+ projectPath?: string;
45
+ }): Promise<HookExecutionResult[]>;
46
+ /**
47
+ * Trigger project.completed hooks
48
+ */
49
+ export declare function triggerProjectCompleted(summary: ProjectSummary, options?: {
50
+ verbose?: boolean;
51
+ projectPath?: string;
52
+ }): Promise<HookExecutionResult[]>;
53
+ /**
54
+ * Check if hooks should be skipped
55
+ *
56
+ * Checks environment variable and CLI flags
57
+ */
58
+ export declare function shouldSkipHooks(flags?: {
59
+ noHooks?: boolean;
60
+ }): boolean;
61
+ /**
62
+ * Silently trigger hooks (don't throw on failure)
63
+ *
64
+ * Logs errors but doesn't block the main operation
65
+ */
66
+ export declare function triggerHooksSafely(triggerFn: () => Promise<HookExecutionResult[]>, options?: {
67
+ verbose?: boolean;
68
+ }): Promise<void>;
69
+ //# sourceMappingURL=integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/hooks/integration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,KAAK,EAAyC,WAAW,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAyEnD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAMhC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAWhC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAMhC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAMhC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,WAAW,EAAE,EACpB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAKhC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAKhC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAatE;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,EAC/C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CAoBf"}