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
package/dist/index.js ADDED
@@ -0,0 +1,281 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Steroids CLI - Automated task execution system
5
+ * Entry point for the CLI
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ const node_fs_1 = require("node:fs");
9
+ const node_path_1 = require("node:path");
10
+ const flags_js_1 = require("./cli/flags.js");
11
+ const errors_js_1 = require("./cli/errors.js");
12
+ const output_js_1 = require("./cli/output.js");
13
+ const init_js_1 = require("./commands/init.js");
14
+ const tasks_js_1 = require("./commands/tasks.js");
15
+ const sections_js_1 = require("./commands/sections.js");
16
+ const loop_js_1 = require("./commands/loop.js");
17
+ const runners_js_1 = require("./commands/runners.js");
18
+ const config_js_1 = require("./commands/config.js");
19
+ const health_js_1 = require("./commands/health.js");
20
+ const scan_js_1 = require("./commands/scan.js");
21
+ const backup_js_1 = require("./commands/backup.js");
22
+ const logs_js_1 = require("./commands/logs.js");
23
+ const gc_js_1 = require("./commands/gc.js");
24
+ const completion_js_1 = require("./commands/completion.js");
25
+ const locks_js_1 = require("./commands/locks.js");
26
+ const disputes_js_1 = require("./commands/disputes.js");
27
+ const purge_js_1 = require("./commands/purge.js");
28
+ const git_js_1 = require("./commands/git.js");
29
+ const about_js_1 = require("./commands/about.js");
30
+ const projects_js_1 = require("./commands/projects.js");
31
+ const llm_js_1 = require("./commands/llm.js");
32
+ const stats_js_1 = require("./commands/stats.js");
33
+ const hooks_js_1 = require("./commands/hooks.js");
34
+ const ai_js_1 = require("./commands/ai.js");
35
+ const web_js_1 = require("./commands/web.js");
36
+ // Read version from package.json - search up from dist folder
37
+ function getVersion() {
38
+ // When running from dist/, package.json is one level up
39
+ const paths = [
40
+ (0, node_path_1.join)(__dirname, '..', 'package.json'),
41
+ (0, node_path_1.join)(__dirname, 'package.json'),
42
+ (0, node_path_1.join)(process.cwd(), 'package.json'),
43
+ ];
44
+ for (const p of paths) {
45
+ if ((0, node_fs_1.existsSync)(p)) {
46
+ try {
47
+ const pkg = JSON.parse((0, node_fs_1.readFileSync)(p, 'utf-8'));
48
+ if (pkg.name === 'steroids-cli')
49
+ return pkg.version;
50
+ }
51
+ catch { /* ignore */ }
52
+ }
53
+ }
54
+ return '0.0.0';
55
+ }
56
+ const VERSION = getVersion();
57
+ const HELP = `
58
+ steroids - Automated task execution with coder/reviewer loop
59
+
60
+ USAGE:
61
+ steroids <command> [options]
62
+
63
+ COMMANDS:
64
+ about Explain what Steroids is (for LLMs discovering this tool)
65
+ llm Compact instructions for LLM agents (call when context lost)
66
+
67
+ init Initialize steroids in current directory
68
+ sections Manage task sections
69
+ tasks Manage tasks
70
+ stats Global activity statistics
71
+ projects Manage global project registry
72
+ dispute Manage coder/reviewer disputes
73
+ loop Run the orchestrator loop
74
+ runners Manage runner daemons
75
+ config Manage configuration
76
+ ai Manage AI providers and models
77
+ hooks Manage event hooks
78
+ health Check project health
79
+ scan Scan directory for projects
80
+ backup Manage backups
81
+ logs View invocation logs
82
+ gc Garbage collection
83
+ purge Purge old data
84
+ git Git integration commands
85
+ completion Generate shell completions
86
+ web Launch the web dashboard (auto-clones on first run)
87
+ locks Manage task and section locks
88
+
89
+ GLOBAL OPTIONS:
90
+ -h, --help Show help
91
+ --version Show version
92
+ -j, --json Output as JSON
93
+ -q, --quiet Minimal output
94
+ -v, --verbose Detailed output
95
+ --no-color Disable colored output
96
+ --config <path> Custom config file path
97
+ --dry-run Preview without executing
98
+ --timeout <dur> Command timeout (e.g., 30s, 5m)
99
+ --no-hooks Skip hook execution
100
+
101
+ ENVIRONMENT VARIABLES:
102
+ STEROIDS_CONFIG Custom config path
103
+ STEROIDS_JSON Output as JSON (1, true)
104
+ STEROIDS_QUIET Minimal output (1, true)
105
+ STEROIDS_VERBOSE Detailed output (1, true)
106
+ STEROIDS_NO_HOOKS Skip hooks (1, true)
107
+ STEROIDS_NO_COLOR Disable colors (1, true)
108
+ STEROIDS_AUTO_MIGRATE Auto-migrate database (1, true)
109
+ STEROIDS_TIMEOUT Command timeout (duration)
110
+ NO_COLOR Standard no-color variable
111
+ CI CI environment detected
112
+
113
+ EXAMPLES:
114
+ steroids init
115
+ steroids sections add "Phase 1"
116
+ steroids tasks add "Implement feature" --section "Phase 1"
117
+ steroids tasks list --json
118
+ steroids loop --verbose
119
+ STEROIDS_QUIET=1 steroids tasks list
120
+ `;
121
+ async function main() {
122
+ try {
123
+ const args = process.argv.slice(2);
124
+ // Parse global flags first
125
+ const { flags, remaining } = (0, flags_js_1.parseGlobalFlags)(args);
126
+ // Apply global flags (e.g., set NO_COLOR)
127
+ (0, flags_js_1.applyGlobalFlags)(flags);
128
+ // Handle --help at top level
129
+ if (flags.help && remaining.length === 0) {
130
+ console.log(HELP);
131
+ process.exit(0);
132
+ }
133
+ // Handle --version at top level
134
+ if (flags.version && remaining.length === 0) {
135
+ if (flags.json) {
136
+ console.log(JSON.stringify({ version: VERSION }, null, 2));
137
+ }
138
+ else {
139
+ console.log(`steroids v${VERSION}`);
140
+ }
141
+ process.exit(0);
142
+ }
143
+ // No command provided
144
+ if (remaining.length === 0) {
145
+ console.log(HELP);
146
+ process.exit(0);
147
+ }
148
+ const command = remaining[0];
149
+ const commandArgs = remaining.slice(1);
150
+ // Execute command - pass flags to all commands
151
+ switch (command) {
152
+ case 'about':
153
+ await (0, about_js_1.aboutCommand)(commandArgs, flags);
154
+ break;
155
+ case 'init':
156
+ await (0, init_js_1.initCommand)(commandArgs, flags);
157
+ break;
158
+ case 'sections':
159
+ await (0, sections_js_1.sectionsCommand)(commandArgs, flags);
160
+ break;
161
+ case 'tasks':
162
+ await (0, tasks_js_1.tasksCommand)(commandArgs, flags);
163
+ break;
164
+ case 'loop':
165
+ await (0, loop_js_1.loopCommand)(commandArgs, flags);
166
+ break;
167
+ case 'runners':
168
+ await (0, runners_js_1.runnersCommand)(commandArgs, flags);
169
+ break;
170
+ case 'config':
171
+ await (0, config_js_1.configCommand)(commandArgs, flags);
172
+ break;
173
+ case 'ai':
174
+ await (0, ai_js_1.aiCommand)(commandArgs, flags);
175
+ break;
176
+ case 'hooks':
177
+ await (0, hooks_js_1.hooksCommand)(commandArgs, flags);
178
+ break;
179
+ case 'health':
180
+ await (0, health_js_1.healthCommand)(commandArgs, flags);
181
+ break;
182
+ case 'scan':
183
+ await (0, scan_js_1.scanCommand)(commandArgs, flags);
184
+ break;
185
+ case 'backup':
186
+ await (0, backup_js_1.backupCommand)(commandArgs, flags);
187
+ break;
188
+ case 'logs':
189
+ await (0, logs_js_1.logsCommand)(commandArgs, flags);
190
+ break;
191
+ case 'gc':
192
+ await (0, gc_js_1.gcCommand)(commandArgs, flags);
193
+ break;
194
+ case 'completion':
195
+ await (0, completion_js_1.completionCommand)(commandArgs, flags);
196
+ break;
197
+ case 'locks':
198
+ await (0, locks_js_1.locksCommand)(commandArgs, flags);
199
+ break;
200
+ case 'dispute':
201
+ await (0, disputes_js_1.disputeCommand)(commandArgs, flags);
202
+ break;
203
+ case 'purge':
204
+ await (0, purge_js_1.purgeCommand)(commandArgs, flags);
205
+ break;
206
+ case 'git':
207
+ await (0, git_js_1.gitCommand)(commandArgs, flags);
208
+ break;
209
+ case 'projects':
210
+ await (0, projects_js_1.projectsCommand)(commandArgs, flags);
211
+ break;
212
+ case 'stats':
213
+ await (0, stats_js_1.statsCommand)(commandArgs, flags);
214
+ break;
215
+ case 'llm':
216
+ await (0, llm_js_1.llmCommand)(commandArgs, flags);
217
+ break;
218
+ case 'web':
219
+ await (0, web_js_1.webCommand)(commandArgs, flags);
220
+ break;
221
+ default:
222
+ if (flags.json) {
223
+ (0, output_js_1.outputJsonError)(command, null, errors_js_1.ErrorCode.INVALID_ARGUMENTS, `Unknown command: ${command}`, { command });
224
+ }
225
+ else {
226
+ console.error(`Error: Unknown command: ${command}`);
227
+ console.error(`Run 'steroids --help' for usage information.`);
228
+ }
229
+ process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.INVALID_ARGUMENTS));
230
+ }
231
+ }
232
+ catch (error) {
233
+ // Get flags for error output (re-parse if needed, as we may have thrown before parsing)
234
+ let errorFlags = { json: false, verbose: false };
235
+ try {
236
+ const { flags } = (0, flags_js_1.parseGlobalFlags)(process.argv.slice(2));
237
+ errorFlags = { json: flags.json, verbose: flags.verbose };
238
+ }
239
+ catch {
240
+ // If parsing fails, use env vars as fallback
241
+ errorFlags.json = process.env.STEROIDS_JSON === '1' || process.env.STEROIDS_JSON === 'true';
242
+ errorFlags.verbose = process.env.STEROIDS_VERBOSE === '1';
243
+ }
244
+ // Handle CliError with proper exit codes
245
+ if (error instanceof errors_js_1.CliError) {
246
+ if (errorFlags.json) {
247
+ (0, output_js_1.outputJsonError)('steroids', null, error.code, error.message, error.details);
248
+ }
249
+ else {
250
+ console.error(`Error: ${error.message}`);
251
+ if (errorFlags.verbose && error.details) {
252
+ console.error('Details:', JSON.stringify(error.details, null, 2));
253
+ }
254
+ }
255
+ process.exit(error.exitCode);
256
+ }
257
+ // Handle generic errors
258
+ if (error instanceof Error) {
259
+ if (errorFlags.json) {
260
+ (0, output_js_1.outputJsonError)('steroids', null, errors_js_1.ErrorCode.GENERAL_ERROR, error.message);
261
+ }
262
+ else {
263
+ console.error(`Error: ${error.message}`);
264
+ if (errorFlags.verbose) {
265
+ console.error(error.stack);
266
+ }
267
+ }
268
+ }
269
+ else {
270
+ if (errorFlags.json) {
271
+ (0, output_js_1.outputJsonError)('steroids', null, errors_js_1.ErrorCode.GENERAL_ERROR, 'An unexpected error occurred');
272
+ }
273
+ else {
274
+ console.error('An unexpected error occurred');
275
+ }
276
+ }
277
+ process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.GENERAL_ERROR));
278
+ }
279
+ }
280
+ main();
281
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;GAGG;;AAEH,qCAAmD;AACnD,yCAAiC;AACjC,6CAAoE;AACpE,+CAAmE;AACnE,+CAAkD;AAClD,gDAAiD;AACjD,kDAAmD;AACnD,wDAAyD;AACzD,gDAAiD;AACjD,sDAAuD;AACvD,oDAAqD;AACrD,oDAAqD;AACrD,gDAAiD;AACjD,oDAAqD;AACrD,gDAAiD;AACjD,4CAA6C;AAC7C,4DAA6D;AAC7D,kDAAmD;AACnD,wDAAwD;AACxD,kDAAmD;AACnD,8CAA+C;AAC/C,kDAAmD;AACnD,wDAAyD;AACzD,8CAA+C;AAC/C,kDAAmD;AACnD,kDAAmD;AACnD,4CAA6C;AAC7C,8CAA+C;AAE/C,8DAA8D;AAC9D,SAAS,UAAU;IACjB,wDAAwD;IACxD,MAAM,KAAK,GAAG;QACZ,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC;QACrC,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC;QAC/B,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;KACpC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,IAAA,oBAAU,EAAC,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;oBAAE,OAAO,GAAG,CAAC,OAAO,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEnC,2BAA2B;QAC3B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAA,2BAAgB,EAAC,IAAI,CAAC,CAAC;QAEpD,0CAA0C;QAC1C,IAAA,2BAAgB,EAAC,KAAK,CAAC,CAAC;QAExB,6BAA6B;QAC7B,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gCAAgC;QAChC,IAAI,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,sBAAsB;QACtB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEvC,+CAA+C;QAC/C,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,OAAO;gBACV,MAAM,IAAA,uBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,IAAA,qBAAW,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,IAAA,6BAAe,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,IAAA,uBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,IAAA,qBAAW,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,IAAA,2BAAc,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAA,yBAAa,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,IAAI;gBACP,MAAM,IAAA,iBAAS,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,IAAA,uBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAA,yBAAa,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,IAAA,qBAAW,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAA,yBAAa,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,IAAA,qBAAW,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,IAAI;gBACP,MAAM,IAAA,iBAAS,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,YAAY;gBACf,MAAM,IAAA,iCAAiB,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,IAAA,uBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,IAAA,4BAAc,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,IAAA,uBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,IAAA,mBAAU,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,IAAA,6BAAe,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,IAAA,uBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,IAAA,mBAAU,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,IAAA,mBAAU,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM;YACR;gBACE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAA,2BAAe,EACb,OAAO,EACP,IAAI,EACJ,qBAAS,CAAC,iBAAiB,EAC3B,oBAAoB,OAAO,EAAE,EAC7B,EAAE,OAAO,EAAE,CACZ,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;oBACpD,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAChE,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,IAAA,uBAAW,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wFAAwF;QACxF,IAAI,UAAU,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,2BAAgB,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,UAAU,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;YAC7C,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;YAC5F,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC;QAC5D,CAAC;QAED,yCAAyC;QACzC,IAAI,KAAK,YAAY,oBAAQ,EAAE,CAAC;YAC9B,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAA,2BAAe,EAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzC,IAAI,UAAU,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACxC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,wBAAwB;QACxB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAA,2BAAe,EAAC,UAAU,EAAE,IAAI,EAAE,qBAAS,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAA,2BAAe,EAAC,UAAU,EAAE,IAAI,EAAE,qBAAS,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAA,uBAAW,EAAC,qBAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Lock cleanup for expired locks
3
+ * Called periodically by cron to release stale locks
4
+ */
5
+ import type Database from 'better-sqlite3';
6
+ import { type TaskLock, type SectionLock } from './queries.js';
7
+ export interface CleanupResult {
8
+ success: boolean;
9
+ taskLocks: {
10
+ found: number;
11
+ cleaned: number;
12
+ locks: TaskLock[];
13
+ };
14
+ sectionLocks: {
15
+ found: number;
16
+ cleaned: number;
17
+ locks: SectionLock[];
18
+ };
19
+ }
20
+ export interface CleanupOptions {
21
+ dryRun?: boolean;
22
+ verbose?: boolean;
23
+ }
24
+ /**
25
+ * Find all expired locks without removing them
26
+ * Useful for reporting or dry-run mode
27
+ */
28
+ export declare function findExpiredLocks(db: Database.Database): {
29
+ taskLocks: TaskLock[];
30
+ sectionLocks: SectionLock[];
31
+ };
32
+ /**
33
+ * Clean up expired task locks
34
+ * Returns the number of locks cleaned
35
+ */
36
+ export declare function cleanupTaskLocks(db: Database.Database, options?: CleanupOptions): {
37
+ found: TaskLock[];
38
+ cleaned: number;
39
+ };
40
+ /**
41
+ * Clean up expired section locks
42
+ * Returns the number of locks cleaned
43
+ */
44
+ export declare function cleanupSectionLocks(db: Database.Database, options?: CleanupOptions): {
45
+ found: SectionLock[];
46
+ cleaned: number;
47
+ };
48
+ /**
49
+ * Clean up all expired locks (both task and section)
50
+ * Main entry point for lock cleanup
51
+ */
52
+ export declare function cleanupAllExpiredLocks(db: Database.Database, options?: CleanupOptions): CleanupResult;
53
+ export interface CleanupScheduler {
54
+ start: () => void;
55
+ stop: () => void;
56
+ runNow: () => CleanupResult;
57
+ }
58
+ /**
59
+ * Create a scheduled cleanup runner
60
+ * Automatically cleans up expired locks at regular intervals
61
+ */
62
+ export declare function createCleanupScheduler(db: Database.Database, intervalMs?: number, onCleanup?: (result: CleanupResult) => void): CleanupScheduler;
63
+ /**
64
+ * Format cleanup result for JSON output
65
+ */
66
+ export declare function formatCleanupResultJson(result: CleanupResult): object;
67
+ export declare const CLEANUP_CONSTANTS: {
68
+ readonly DEFAULT_INTERVAL_MS: number;
69
+ };
70
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/locking/cleanup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAKL,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;KACnB,CAAC;IACF,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,WAAW,EAAE,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG;IACvD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAKA;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,cAAmB,GAC3B;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAexC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,cAAmB,GAC3B;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAe3C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAiBf;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,aAAa,CAAC;CAC7B;AAKD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,GAAE,MAAoC,EAChD,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAC1C,gBAAgB,CAiClB;AAID;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA8BrE;AAID,eAAO,MAAM,iBAAiB;;CAEpB,CAAC"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ /**
3
+ * Lock cleanup for expired locks
4
+ * Called periodically by cron to release stale locks
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CLEANUP_CONSTANTS = void 0;
8
+ exports.findExpiredLocks = findExpiredLocks;
9
+ exports.cleanupTaskLocks = cleanupTaskLocks;
10
+ exports.cleanupSectionLocks = cleanupSectionLocks;
11
+ exports.cleanupAllExpiredLocks = cleanupAllExpiredLocks;
12
+ exports.createCleanupScheduler = createCleanupScheduler;
13
+ exports.formatCleanupResultJson = formatCleanupResultJson;
14
+ const queries_js_1 = require("./queries.js");
15
+ // ============ Cleanup Functions ============
16
+ /**
17
+ * Find all expired locks without removing them
18
+ * Useful for reporting or dry-run mode
19
+ */
20
+ function findExpiredLocks(db) {
21
+ return {
22
+ taskLocks: (0, queries_js_1.findExpiredTaskLocks)(db),
23
+ sectionLocks: (0, queries_js_1.findExpiredSectionLocks)(db),
24
+ };
25
+ }
26
+ /**
27
+ * Clean up expired task locks
28
+ * Returns the number of locks cleaned
29
+ */
30
+ function cleanupTaskLocks(db, options = {}) {
31
+ const expired = (0, queries_js_1.findExpiredTaskLocks)(db);
32
+ if (options.dryRun || expired.length === 0) {
33
+ return {
34
+ found: expired,
35
+ cleaned: 0,
36
+ };
37
+ }
38
+ const cleaned = (0, queries_js_1.cleanupExpiredTaskLocks)(db);
39
+ return {
40
+ found: expired,
41
+ cleaned,
42
+ };
43
+ }
44
+ /**
45
+ * Clean up expired section locks
46
+ * Returns the number of locks cleaned
47
+ */
48
+ function cleanupSectionLocks(db, options = {}) {
49
+ const expired = (0, queries_js_1.findExpiredSectionLocks)(db);
50
+ if (options.dryRun || expired.length === 0) {
51
+ return {
52
+ found: expired,
53
+ cleaned: 0,
54
+ };
55
+ }
56
+ const cleaned = (0, queries_js_1.cleanupExpiredSectionLocks)(db);
57
+ return {
58
+ found: expired,
59
+ cleaned,
60
+ };
61
+ }
62
+ /**
63
+ * Clean up all expired locks (both task and section)
64
+ * Main entry point for lock cleanup
65
+ */
66
+ function cleanupAllExpiredLocks(db, options = {}) {
67
+ const taskResult = cleanupTaskLocks(db, options);
68
+ const sectionResult = cleanupSectionLocks(db, options);
69
+ return {
70
+ success: true,
71
+ taskLocks: {
72
+ found: taskResult.found.length,
73
+ cleaned: taskResult.cleaned,
74
+ locks: taskResult.found,
75
+ },
76
+ sectionLocks: {
77
+ found: sectionResult.found.length,
78
+ cleaned: sectionResult.cleaned,
79
+ locks: sectionResult.found,
80
+ },
81
+ };
82
+ }
83
+ // Default cleanup interval: 5 minutes
84
+ const DEFAULT_CLEANUP_INTERVAL_MS = 5 * 60 * 1000;
85
+ /**
86
+ * Create a scheduled cleanup runner
87
+ * Automatically cleans up expired locks at regular intervals
88
+ */
89
+ function createCleanupScheduler(db, intervalMs = DEFAULT_CLEANUP_INTERVAL_MS, onCleanup) {
90
+ let intervalId = null;
91
+ const runCleanup = () => {
92
+ const result = cleanupAllExpiredLocks(db);
93
+ if (onCleanup) {
94
+ onCleanup(result);
95
+ }
96
+ return result;
97
+ };
98
+ const start = () => {
99
+ if (intervalId)
100
+ return; // Already running
101
+ // Run immediately
102
+ runCleanup();
103
+ // Schedule periodic cleanup
104
+ intervalId = setInterval(runCleanup, intervalMs);
105
+ };
106
+ const stop = () => {
107
+ if (intervalId) {
108
+ clearInterval(intervalId);
109
+ intervalId = null;
110
+ }
111
+ };
112
+ return {
113
+ start,
114
+ stop,
115
+ runNow: runCleanup,
116
+ };
117
+ }
118
+ // ============ JSON Output ============
119
+ /**
120
+ * Format cleanup result for JSON output
121
+ */
122
+ function formatCleanupResultJson(result) {
123
+ return {
124
+ success: result.success,
125
+ command: 'locks',
126
+ subcommand: 'cleanup',
127
+ data: {
128
+ task_locks: {
129
+ found: result.taskLocks.found,
130
+ cleaned: result.taskLocks.cleaned,
131
+ locks: result.taskLocks.locks.map(lock => ({
132
+ task_id: lock.task_id,
133
+ runner_id: lock.runner_id,
134
+ acquired_at: lock.acquired_at,
135
+ expires_at: lock.expires_at,
136
+ heartbeat_at: lock.heartbeat_at,
137
+ })),
138
+ },
139
+ section_locks: {
140
+ found: result.sectionLocks.found,
141
+ cleaned: result.sectionLocks.cleaned,
142
+ locks: result.sectionLocks.locks.map(lock => ({
143
+ section_id: lock.section_id,
144
+ runner_id: lock.runner_id,
145
+ acquired_at: lock.acquired_at,
146
+ expires_at: lock.expires_at,
147
+ })),
148
+ },
149
+ },
150
+ error: null,
151
+ };
152
+ }
153
+ // ============ Constants Export ============
154
+ exports.CLEANUP_CONSTANTS = {
155
+ DEFAULT_INTERVAL_MS: DEFAULT_CLEANUP_INTERVAL_MS,
156
+ };
157
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/locking/cleanup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Database queries for task and section lock management
3
+ * All lock operations are atomic using SQLite transactions
4
+ */
5
+ import type Database from 'better-sqlite3';
6
+ export interface TaskLock {
7
+ task_id: string;
8
+ runner_id: string;
9
+ acquired_at: string;
10
+ expires_at: string;
11
+ heartbeat_at: string;
12
+ }
13
+ export interface SectionLock {
14
+ section_id: string;
15
+ runner_id: string;
16
+ acquired_at: string;
17
+ expires_at: string;
18
+ }
19
+ export interface LockInfo {
20
+ isLocked: boolean;
21
+ lock: TaskLock | null;
22
+ isExpired: boolean;
23
+ isOwnedByUs: boolean;
24
+ }
25
+ /**
26
+ * Get task lock by task ID
27
+ */
28
+ export declare function getTaskLock(db: Database.Database, taskId: string): TaskLock | null;
29
+ /**
30
+ * Check if a task lock is expired
31
+ */
32
+ export declare function isTaskLockExpired(lock: TaskLock): boolean;
33
+ /**
34
+ * Get task lock info with ownership and expiry status
35
+ */
36
+ export declare function getTaskLockInfo(db: Database.Database, taskId: string, runnerId: string): LockInfo;
37
+ /**
38
+ * Try to insert a new task lock (atomic)
39
+ * Returns true if lock was acquired, false if already exists
40
+ */
41
+ export declare function tryInsertTaskLock(db: Database.Database, taskId: string, runnerId: string, timeoutMinutes: number): boolean;
42
+ /**
43
+ * Claim an expired lock atomically
44
+ * Only succeeds if the lock is actually expired at execution time
45
+ */
46
+ export declare function claimExpiredTaskLock(db: Database.Database, taskId: string, runnerId: string, timeoutMinutes: number): boolean;
47
+ /**
48
+ * Release a task lock (only if owned by the specified runner)
49
+ * Returns true if lock was released, false if not owned
50
+ */
51
+ export declare function releaseTaskLock(db: Database.Database, taskId: string, runnerId: string): boolean;
52
+ /**
53
+ * Force release a task lock (admin operation)
54
+ * Returns true if lock was released
55
+ */
56
+ export declare function forceReleaseTaskLock(db: Database.Database, taskId: string): boolean;
57
+ /**
58
+ * Update heartbeat for a task lock
59
+ * Returns true if heartbeat was updated, false if lock not found or not owned
60
+ */
61
+ export declare function updateTaskLockHeartbeat(db: Database.Database, taskId: string, runnerId: string): boolean;
62
+ /**
63
+ * Extend a task lock's expiry time
64
+ * Returns true if extended, false if lock not found or not owned
65
+ */
66
+ export declare function extendTaskLock(db: Database.Database, taskId: string, runnerId: string, additionalMinutes: number): boolean;
67
+ /**
68
+ * List all task locks
69
+ */
70
+ export declare function listTaskLocks(db: Database.Database): TaskLock[];
71
+ /**
72
+ * Find all expired task locks
73
+ */
74
+ export declare function findExpiredTaskLocks(db: Database.Database): TaskLock[];
75
+ /**
76
+ * Delete all expired task locks
77
+ * Returns the number of locks deleted
78
+ */
79
+ export declare function cleanupExpiredTaskLocks(db: Database.Database): number;
80
+ /**
81
+ * Get section lock by section ID
82
+ */
83
+ export declare function getSectionLock(db: Database.Database, sectionId: string): SectionLock | null;
84
+ /**
85
+ * Check if a section lock is expired
86
+ */
87
+ export declare function isSectionLockExpired(lock: SectionLock): boolean;
88
+ /**
89
+ * Try to insert a new section lock (atomic)
90
+ */
91
+ export declare function tryInsertSectionLock(db: Database.Database, sectionId: string, runnerId: string, timeoutMinutes: number): boolean;
92
+ /**
93
+ * Claim an expired section lock atomically
94
+ */
95
+ export declare function claimExpiredSectionLock(db: Database.Database, sectionId: string, runnerId: string, timeoutMinutes: number): boolean;
96
+ /**
97
+ * Release a section lock
98
+ */
99
+ export declare function releaseSectionLock(db: Database.Database, sectionId: string, runnerId: string): boolean;
100
+ /**
101
+ * Force release a section lock
102
+ */
103
+ export declare function forceReleaseSectionLock(db: Database.Database, sectionId: string): boolean;
104
+ /**
105
+ * List all section locks
106
+ */
107
+ export declare function listSectionLocks(db: Database.Database): SectionLock[];
108
+ /**
109
+ * Find all expired section locks
110
+ */
111
+ export declare function findExpiredSectionLocks(db: Database.Database): SectionLock[];
112
+ /**
113
+ * Delete all expired section locks
114
+ */
115
+ export declare function cleanupExpiredSectionLocks(db: Database.Database): number;
116
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/locking/queries.ts"],"names":[],"mappings":"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"}