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,227 @@
1
+ "use strict";
2
+ /**
3
+ * Environment variable support for Steroids CLI
4
+ *
5
+ * Provides centralized access to environment variables and their mappings
6
+ * to CLI flags and configuration options.
7
+ *
8
+ * Environment variables override defaults but are themselves overridden by
9
+ * explicit CLI flags.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ENV_VAR_DOCS = exports.ENV_VARS = void 0;
13
+ exports.isTruthy = isTruthy;
14
+ exports.isFalsy = isFalsy;
15
+ exports.getEnv = getEnv;
16
+ exports.isEnvTrue = isEnvTrue;
17
+ exports.isEnvFalse = isEnvFalse;
18
+ exports.getEnvString = getEnvString;
19
+ exports.isCI = isCI;
20
+ exports.getCISystem = getCISystem;
21
+ exports.shouldDisableColors = shouldDisableColors;
22
+ exports.isAutoMigrateEnabled = isAutoMigrateEnabled;
23
+ exports.getEnvSnapshot = getEnvSnapshot;
24
+ /**
25
+ * All supported environment variables for Steroids CLI
26
+ */
27
+ exports.ENV_VARS = {
28
+ /** Custom config path (maps to --config) */
29
+ STEROIDS_CONFIG: 'STEROIDS_CONFIG',
30
+ /** Output as JSON (maps to --json) */
31
+ STEROIDS_JSON: 'STEROIDS_JSON',
32
+ /** Minimal output (maps to --quiet) */
33
+ STEROIDS_QUIET: 'STEROIDS_QUIET',
34
+ /** Detailed output (maps to --verbose) */
35
+ STEROIDS_VERBOSE: 'STEROIDS_VERBOSE',
36
+ /** Skip hook execution (maps to --no-hooks) */
37
+ STEROIDS_NO_HOOKS: 'STEROIDS_NO_HOOKS',
38
+ /** Disable colors (maps to --no-color) */
39
+ STEROIDS_NO_COLOR: 'STEROIDS_NO_COLOR',
40
+ /** Auto-migrate database without prompting */
41
+ STEROIDS_AUTO_MIGRATE: 'STEROIDS_AUTO_MIGRATE',
42
+ /** Command timeout duration (maps to --timeout) */
43
+ STEROIDS_TIMEOUT: 'STEROIDS_TIMEOUT',
44
+ /** Don't wait for locks (maps to --no-wait) */
45
+ STEROIDS_NO_WAIT: 'STEROIDS_NO_WAIT',
46
+ /** Standard NO_COLOR env var (also maps to --no-color) */
47
+ NO_COLOR: 'NO_COLOR',
48
+ /** CI environment detection (various systems set this) */
49
+ CI: 'CI',
50
+ /** Continuous Integration (legacy) */
51
+ CONTINUOUS_INTEGRATION: 'CONTINUOUS_INTEGRATION',
52
+ /** GitHub Actions */
53
+ GITHUB_ACTIONS: 'GITHUB_ACTIONS',
54
+ /** GitLab CI */
55
+ GITLAB_CI: 'GITLAB_CI',
56
+ /** CircleCI */
57
+ CIRCLECI: 'CIRCLECI',
58
+ /** Travis CI */
59
+ TRAVIS: 'TRAVIS',
60
+ /** Jenkins */
61
+ JENKINS_URL: 'JENKINS_URL',
62
+ };
63
+ /**
64
+ * Check if a value is truthy for boolean environment variables
65
+ *
66
+ * Accepts: '1', 'true' (case-insensitive), 'yes', 'on'
67
+ * Rejects: '0', 'false', 'no', 'off', undefined, empty string
68
+ */
69
+ function isTruthy(value) {
70
+ if (!value)
71
+ return false;
72
+ const normalized = value.toLowerCase().trim();
73
+ return normalized === '1' || normalized === 'true' || normalized === 'yes' || normalized === 'on';
74
+ }
75
+ /**
76
+ * Check if a value is falsy for boolean environment variables
77
+ *
78
+ * Accepts: '0', 'false' (case-insensitive), 'no', 'off'
79
+ * Empty string and undefined are treated as "not set" (returns false)
80
+ */
81
+ function isFalsy(value) {
82
+ if (!value)
83
+ return false;
84
+ const normalized = value.toLowerCase().trim();
85
+ return normalized === '0' || normalized === 'false' || normalized === 'no' || normalized === 'off';
86
+ }
87
+ /**
88
+ * Get environment variable value
89
+ */
90
+ function getEnv(key) {
91
+ return process.env[exports.ENV_VARS[key]];
92
+ }
93
+ /**
94
+ * Check if environment variable is set to truthy value
95
+ */
96
+ function isEnvTrue(key) {
97
+ return isTruthy(getEnv(key));
98
+ }
99
+ /**
100
+ * Check if environment variable is set to falsy value
101
+ */
102
+ function isEnvFalse(key) {
103
+ return isFalsy(getEnv(key));
104
+ }
105
+ /**
106
+ * Get environment variable as string or default
107
+ */
108
+ function getEnvString(key, defaultValue) {
109
+ return getEnv(key) ?? defaultValue;
110
+ }
111
+ /**
112
+ * Detect if running in CI environment
113
+ */
114
+ function isCI() {
115
+ return !!(getEnv('CI') ||
116
+ getEnv('CONTINUOUS_INTEGRATION') ||
117
+ getEnv('GITHUB_ACTIONS') ||
118
+ getEnv('GITLAB_CI') ||
119
+ getEnv('CIRCLECI') ||
120
+ getEnv('TRAVIS') ||
121
+ getEnv('JENKINS_URL'));
122
+ }
123
+ /**
124
+ * Detect which CI system is running (if any)
125
+ */
126
+ function getCISystem() {
127
+ if (getEnv('GITHUB_ACTIONS'))
128
+ return 'GitHub Actions';
129
+ if (getEnv('GITLAB_CI'))
130
+ return 'GitLab CI';
131
+ if (getEnv('CIRCLECI'))
132
+ return 'CircleCI';
133
+ if (getEnv('TRAVIS'))
134
+ return 'Travis CI';
135
+ if (getEnv('JENKINS_URL'))
136
+ return 'Jenkins';
137
+ if (getEnv('CI'))
138
+ return 'Generic CI';
139
+ return null;
140
+ }
141
+ /**
142
+ * Check if colors should be disabled based on env vars
143
+ */
144
+ function shouldDisableColors() {
145
+ return !!(getEnv('NO_COLOR') !== undefined ||
146
+ isEnvTrue('STEROIDS_NO_COLOR'));
147
+ }
148
+ /**
149
+ * Check if auto-migration is enabled
150
+ */
151
+ function isAutoMigrateEnabled() {
152
+ return isEnvTrue('STEROIDS_AUTO_MIGRATE');
153
+ }
154
+ /**
155
+ * Get all relevant environment variables for debugging
156
+ */
157
+ function getEnvSnapshot() {
158
+ const snapshot = {};
159
+ for (const key of Object.keys(exports.ENV_VARS)) {
160
+ const value = getEnv(key);
161
+ if (value !== undefined) {
162
+ snapshot[key] = value;
163
+ }
164
+ }
165
+ return snapshot;
166
+ }
167
+ /**
168
+ * Environment variable documentation for help text
169
+ */
170
+ exports.ENV_VAR_DOCS = {
171
+ [exports.ENV_VARS.STEROIDS_CONFIG]: {
172
+ description: 'Custom config file path',
173
+ values: 'Path to config file',
174
+ mapsTo: '--config',
175
+ },
176
+ [exports.ENV_VARS.STEROIDS_JSON]: {
177
+ description: 'Output as JSON',
178
+ values: '1, true',
179
+ mapsTo: '--json',
180
+ },
181
+ [exports.ENV_VARS.STEROIDS_QUIET]: {
182
+ description: 'Minimal output',
183
+ values: '1, true',
184
+ mapsTo: '--quiet',
185
+ },
186
+ [exports.ENV_VARS.STEROIDS_VERBOSE]: {
187
+ description: 'Detailed output',
188
+ values: '1, true',
189
+ mapsTo: '--verbose',
190
+ },
191
+ [exports.ENV_VARS.STEROIDS_NO_HOOKS]: {
192
+ description: 'Skip hook execution',
193
+ values: '1, true',
194
+ mapsTo: '--no-hooks',
195
+ },
196
+ [exports.ENV_VARS.STEROIDS_NO_COLOR]: {
197
+ description: 'Disable colored output',
198
+ values: '1, true',
199
+ mapsTo: '--no-color',
200
+ },
201
+ [exports.ENV_VARS.STEROIDS_AUTO_MIGRATE]: {
202
+ description: 'Auto-migrate database without prompting',
203
+ values: '1, true',
204
+ mapsTo: 'auto-migrate behavior',
205
+ },
206
+ [exports.ENV_VARS.STEROIDS_TIMEOUT]: {
207
+ description: 'Command timeout duration',
208
+ values: 'Duration (e.g., 30s, 5m, 1h)',
209
+ mapsTo: '--timeout',
210
+ },
211
+ [exports.ENV_VARS.STEROIDS_NO_WAIT]: {
212
+ description: "Don't wait for locks to be released",
213
+ values: '1, true',
214
+ mapsTo: '--no-wait',
215
+ },
216
+ [exports.ENV_VARS.NO_COLOR]: {
217
+ description: 'Standard no-color.org variable',
218
+ values: 'Any value',
219
+ mapsTo: '--no-color',
220
+ },
221
+ [exports.ENV_VARS.CI]: {
222
+ description: 'Detected CI environment',
223
+ values: 'Any value',
224
+ mapsTo: 'Non-interactive mode',
225
+ },
226
+ };
227
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Error codes and exit codes for Steroids CLI
3
+ *
4
+ * Provides consistent, semantic error codes that map to appropriate
5
+ * exit codes for shell scripting and automation.
6
+ *
7
+ * Error codes are used in JSON output for machine-parseable errors.
8
+ * Exit codes follow standard Unix conventions.
9
+ */
10
+ /**
11
+ * Standard error codes used throughout the CLI
12
+ *
13
+ * These codes appear in the JSON error.code field and are mapped
14
+ * to appropriate exit codes for process termination.
15
+ */
16
+ export declare enum ErrorCode {
17
+ /** Operation completed successfully */
18
+ SUCCESS = "SUCCESS",
19
+ /** Unspecified error (generic fallback) */
20
+ GENERAL_ERROR = "GENERAL_ERROR",
21
+ /** Invalid command arguments or flags */
22
+ INVALID_ARGUMENTS = "INVALID_ARGUMENTS",
23
+ /** Configuration file error or invalid config */
24
+ CONFIG_ERROR = "CONFIG_ERROR",
25
+ /** Requested resource not found (generic) */
26
+ NOT_FOUND = "NOT_FOUND",
27
+ /** Access denied or insufficient permissions */
28
+ PERMISSION_DENIED = "PERMISSION_DENIED",
29
+ /** Resource is locked by another process */
30
+ RESOURCE_LOCKED = "RESOURCE_LOCKED",
31
+ /** Health check failed */
32
+ HEALTH_FAILED = "HEALTH_FAILED",
33
+ /** Specific: Task not found */
34
+ TASK_NOT_FOUND = "TASK_NOT_FOUND",
35
+ /** Specific: Section not found */
36
+ SECTION_NOT_FOUND = "SECTION_NOT_FOUND",
37
+ /** Specific: Task is locked by a runner */
38
+ TASK_LOCKED = "TASK_LOCKED",
39
+ /** Steroids not initialized in this directory */
40
+ NOT_INITIALIZED = "NOT_INITIALIZED",
41
+ /** Database migration required */
42
+ MIGRATION_REQUIRED = "MIGRATION_REQUIRED",
43
+ /** Hook execution failed */
44
+ HOOK_FAILED = "HOOK_FAILED",
45
+ /** Validation error */
46
+ VALIDATION_ERROR = "VALIDATION_ERROR",
47
+ /** Internal error */
48
+ INTERNAL_ERROR = "INTERNAL_ERROR",
49
+ /** Feature not implemented */
50
+ NOT_IMPLEMENTED = "NOT_IMPLEMENTED"
51
+ }
52
+ /**
53
+ * Unix exit codes for process termination
54
+ *
55
+ * These follow standard Unix conventions:
56
+ * - 0: Success
57
+ * - 1: General error
58
+ * - 2-125: Specific errors
59
+ * - 126-255: Reserved by shell
60
+ */
61
+ export declare enum ExitCode {
62
+ /** Success - operation completed without errors */
63
+ SUCCESS = 0,
64
+ /** General error - unspecified failure */
65
+ GENERAL_ERROR = 1,
66
+ /** Invalid arguments - bad command line input */
67
+ INVALID_ARGUMENTS = 2,
68
+ /** Configuration error - config file or settings problem */
69
+ CONFIG_ERROR = 3,
70
+ /** Not found - requested resource doesn't exist */
71
+ NOT_FOUND = 4,
72
+ /** Permission denied - access not allowed */
73
+ PERMISSION_DENIED = 5,
74
+ /** Resource locked - locked by another process */
75
+ RESOURCE_LOCKED = 6,
76
+ /** Health check failed - system health issues */
77
+ HEALTH_FAILED = 7
78
+ }
79
+ /**
80
+ * Map error codes to exit codes
81
+ *
82
+ * This mapping determines what exit code the process should use
83
+ * when terminating due to a specific error.
84
+ */
85
+ export declare const ERROR_CODE_TO_EXIT_CODE: Record<ErrorCode, ExitCode>;
86
+ /**
87
+ * Get the exit code for a given error code
88
+ *
89
+ * @param errorCode - The error code to map
90
+ * @returns The corresponding exit code
91
+ */
92
+ export declare function getExitCode(errorCode: ErrorCode): ExitCode;
93
+ /**
94
+ * Get the exit code for an error code string
95
+ *
96
+ * Useful when you have a string error code from JSON or user input.
97
+ *
98
+ * @param errorCodeStr - The error code as a string
99
+ * @returns The corresponding exit code, or GENERAL_ERROR if unknown
100
+ */
101
+ export declare function getExitCodeFromString(errorCodeStr: string): ExitCode;
102
+ /**
103
+ * CLI Error class that includes error code and exit code
104
+ *
105
+ * Use this for errors that should result in process termination
106
+ * with a specific exit code.
107
+ */
108
+ export declare class CliError extends Error {
109
+ readonly code: ErrorCode;
110
+ readonly exitCode: ExitCode;
111
+ readonly details?: Record<string, unknown>;
112
+ constructor(code: ErrorCode, message: string, details?: Record<string, unknown>);
113
+ /**
114
+ * Check if this error should terminate the process
115
+ */
116
+ shouldExit(): boolean;
117
+ /**
118
+ * Exit the process with this error's exit code
119
+ */
120
+ exit(): never;
121
+ /**
122
+ * Convert error to JSON-serializable object
123
+ */
124
+ toJSON(): {
125
+ code: string;
126
+ message: string;
127
+ details?: Record<string, unknown>;
128
+ };
129
+ }
130
+ /**
131
+ * Create a CliError for task not found
132
+ */
133
+ export declare function taskNotFoundError(taskId: string): CliError;
134
+ /**
135
+ * Create a CliError for section not found
136
+ */
137
+ export declare function sectionNotFoundError(sectionId: string): CliError;
138
+ /**
139
+ * Create a CliError for task locked
140
+ */
141
+ export declare function taskLockedError(taskId: string, lockedBy?: string): CliError;
142
+ /**
143
+ * Create a CliError for not initialized
144
+ */
145
+ export declare function notInitializedError(): CliError;
146
+ /**
147
+ * Create a CliError for migration required
148
+ */
149
+ export declare function migrationRequiredError(): CliError;
150
+ /**
151
+ * Create a CliError for invalid arguments
152
+ */
153
+ export declare function invalidArgumentsError(message: string): CliError;
154
+ /**
155
+ * Create a CliError for config error
156
+ */
157
+ export declare function configError(message: string, details?: Record<string, unknown>): CliError;
158
+ /**
159
+ * Create a CliError for permission denied
160
+ */
161
+ export declare function permissionDeniedError(message: string): CliError;
162
+ /**
163
+ * Create a CliError for hook failed
164
+ */
165
+ export declare function hookFailedError(hookName: string, exitCode?: number): CliError;
166
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ /**
3
+ * Error codes and exit codes for Steroids CLI
4
+ *
5
+ * Provides consistent, semantic error codes that map to appropriate
6
+ * exit codes for shell scripting and automation.
7
+ *
8
+ * Error codes are used in JSON output for machine-parseable errors.
9
+ * Exit codes follow standard Unix conventions.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CliError = exports.ERROR_CODE_TO_EXIT_CODE = exports.ExitCode = exports.ErrorCode = void 0;
13
+ exports.getExitCode = getExitCode;
14
+ exports.getExitCodeFromString = getExitCodeFromString;
15
+ exports.taskNotFoundError = taskNotFoundError;
16
+ exports.sectionNotFoundError = sectionNotFoundError;
17
+ exports.taskLockedError = taskLockedError;
18
+ exports.notInitializedError = notInitializedError;
19
+ exports.migrationRequiredError = migrationRequiredError;
20
+ exports.invalidArgumentsError = invalidArgumentsError;
21
+ exports.configError = configError;
22
+ exports.permissionDeniedError = permissionDeniedError;
23
+ exports.hookFailedError = hookFailedError;
24
+ /**
25
+ * Standard error codes used throughout the CLI
26
+ *
27
+ * These codes appear in the JSON error.code field and are mapped
28
+ * to appropriate exit codes for process termination.
29
+ */
30
+ var ErrorCode;
31
+ (function (ErrorCode) {
32
+ /** Operation completed successfully */
33
+ ErrorCode["SUCCESS"] = "SUCCESS";
34
+ /** Unspecified error (generic fallback) */
35
+ ErrorCode["GENERAL_ERROR"] = "GENERAL_ERROR";
36
+ /** Invalid command arguments or flags */
37
+ ErrorCode["INVALID_ARGUMENTS"] = "INVALID_ARGUMENTS";
38
+ /** Configuration file error or invalid config */
39
+ ErrorCode["CONFIG_ERROR"] = "CONFIG_ERROR";
40
+ /** Requested resource not found (generic) */
41
+ ErrorCode["NOT_FOUND"] = "NOT_FOUND";
42
+ /** Access denied or insufficient permissions */
43
+ ErrorCode["PERMISSION_DENIED"] = "PERMISSION_DENIED";
44
+ /** Resource is locked by another process */
45
+ ErrorCode["RESOURCE_LOCKED"] = "RESOURCE_LOCKED";
46
+ /** Health check failed */
47
+ ErrorCode["HEALTH_FAILED"] = "HEALTH_FAILED";
48
+ /** Specific: Task not found */
49
+ ErrorCode["TASK_NOT_FOUND"] = "TASK_NOT_FOUND";
50
+ /** Specific: Section not found */
51
+ ErrorCode["SECTION_NOT_FOUND"] = "SECTION_NOT_FOUND";
52
+ /** Specific: Task is locked by a runner */
53
+ ErrorCode["TASK_LOCKED"] = "TASK_LOCKED";
54
+ /** Steroids not initialized in this directory */
55
+ ErrorCode["NOT_INITIALIZED"] = "NOT_INITIALIZED";
56
+ /** Database migration required */
57
+ ErrorCode["MIGRATION_REQUIRED"] = "MIGRATION_REQUIRED";
58
+ /** Hook execution failed */
59
+ ErrorCode["HOOK_FAILED"] = "HOOK_FAILED";
60
+ /** Validation error */
61
+ ErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
62
+ /** Internal error */
63
+ ErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
64
+ /** Feature not implemented */
65
+ ErrorCode["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED";
66
+ })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
67
+ /**
68
+ * Unix exit codes for process termination
69
+ *
70
+ * These follow standard Unix conventions:
71
+ * - 0: Success
72
+ * - 1: General error
73
+ * - 2-125: Specific errors
74
+ * - 126-255: Reserved by shell
75
+ */
76
+ var ExitCode;
77
+ (function (ExitCode) {
78
+ /** Success - operation completed without errors */
79
+ ExitCode[ExitCode["SUCCESS"] = 0] = "SUCCESS";
80
+ /** General error - unspecified failure */
81
+ ExitCode[ExitCode["GENERAL_ERROR"] = 1] = "GENERAL_ERROR";
82
+ /** Invalid arguments - bad command line input */
83
+ ExitCode[ExitCode["INVALID_ARGUMENTS"] = 2] = "INVALID_ARGUMENTS";
84
+ /** Configuration error - config file or settings problem */
85
+ ExitCode[ExitCode["CONFIG_ERROR"] = 3] = "CONFIG_ERROR";
86
+ /** Not found - requested resource doesn't exist */
87
+ ExitCode[ExitCode["NOT_FOUND"] = 4] = "NOT_FOUND";
88
+ /** Permission denied - access not allowed */
89
+ ExitCode[ExitCode["PERMISSION_DENIED"] = 5] = "PERMISSION_DENIED";
90
+ /** Resource locked - locked by another process */
91
+ ExitCode[ExitCode["RESOURCE_LOCKED"] = 6] = "RESOURCE_LOCKED";
92
+ /** Health check failed - system health issues */
93
+ ExitCode[ExitCode["HEALTH_FAILED"] = 7] = "HEALTH_FAILED";
94
+ })(ExitCode || (exports.ExitCode = ExitCode = {}));
95
+ /**
96
+ * Map error codes to exit codes
97
+ *
98
+ * This mapping determines what exit code the process should use
99
+ * when terminating due to a specific error.
100
+ */
101
+ exports.ERROR_CODE_TO_EXIT_CODE = {
102
+ [ErrorCode.SUCCESS]: ExitCode.SUCCESS,
103
+ [ErrorCode.GENERAL_ERROR]: ExitCode.GENERAL_ERROR,
104
+ [ErrorCode.INVALID_ARGUMENTS]: ExitCode.INVALID_ARGUMENTS,
105
+ [ErrorCode.CONFIG_ERROR]: ExitCode.CONFIG_ERROR,
106
+ [ErrorCode.NOT_FOUND]: ExitCode.NOT_FOUND,
107
+ [ErrorCode.PERMISSION_DENIED]: ExitCode.PERMISSION_DENIED,
108
+ [ErrorCode.RESOURCE_LOCKED]: ExitCode.RESOURCE_LOCKED,
109
+ [ErrorCode.HEALTH_FAILED]: ExitCode.HEALTH_FAILED,
110
+ // Specific error codes map to generic exit codes
111
+ [ErrorCode.TASK_NOT_FOUND]: ExitCode.NOT_FOUND,
112
+ [ErrorCode.SECTION_NOT_FOUND]: ExitCode.NOT_FOUND,
113
+ [ErrorCode.TASK_LOCKED]: ExitCode.RESOURCE_LOCKED,
114
+ [ErrorCode.NOT_INITIALIZED]: ExitCode.CONFIG_ERROR,
115
+ [ErrorCode.MIGRATION_REQUIRED]: ExitCode.CONFIG_ERROR,
116
+ [ErrorCode.HOOK_FAILED]: ExitCode.GENERAL_ERROR,
117
+ [ErrorCode.VALIDATION_ERROR]: ExitCode.INVALID_ARGUMENTS,
118
+ [ErrorCode.INTERNAL_ERROR]: ExitCode.GENERAL_ERROR,
119
+ [ErrorCode.NOT_IMPLEMENTED]: ExitCode.GENERAL_ERROR,
120
+ };
121
+ /**
122
+ * Get the exit code for a given error code
123
+ *
124
+ * @param errorCode - The error code to map
125
+ * @returns The corresponding exit code
126
+ */
127
+ function getExitCode(errorCode) {
128
+ return exports.ERROR_CODE_TO_EXIT_CODE[errorCode] ?? ExitCode.GENERAL_ERROR;
129
+ }
130
+ /**
131
+ * Get the exit code for an error code string
132
+ *
133
+ * Useful when you have a string error code from JSON or user input.
134
+ *
135
+ * @param errorCodeStr - The error code as a string
136
+ * @returns The corresponding exit code, or GENERAL_ERROR if unknown
137
+ */
138
+ function getExitCodeFromString(errorCodeStr) {
139
+ const errorCode = errorCodeStr;
140
+ if (errorCode in exports.ERROR_CODE_TO_EXIT_CODE) {
141
+ return exports.ERROR_CODE_TO_EXIT_CODE[errorCode];
142
+ }
143
+ return ExitCode.GENERAL_ERROR;
144
+ }
145
+ /**
146
+ * CLI Error class that includes error code and exit code
147
+ *
148
+ * Use this for errors that should result in process termination
149
+ * with a specific exit code.
150
+ */
151
+ class CliError extends Error {
152
+ code;
153
+ exitCode;
154
+ details;
155
+ constructor(code, message, details) {
156
+ super(message);
157
+ this.name = 'CliError';
158
+ this.code = code;
159
+ this.exitCode = getExitCode(code);
160
+ this.details = details;
161
+ // Maintains proper stack trace for where error was thrown (V8 only)
162
+ if (Error.captureStackTrace) {
163
+ Error.captureStackTrace(this, CliError);
164
+ }
165
+ }
166
+ /**
167
+ * Check if this error should terminate the process
168
+ */
169
+ shouldExit() {
170
+ return this.exitCode !== ExitCode.SUCCESS;
171
+ }
172
+ /**
173
+ * Exit the process with this error's exit code
174
+ */
175
+ exit() {
176
+ process.exit(this.exitCode);
177
+ }
178
+ /**
179
+ * Convert error to JSON-serializable object
180
+ */
181
+ toJSON() {
182
+ return {
183
+ code: this.code,
184
+ message: this.message,
185
+ details: this.details,
186
+ };
187
+ }
188
+ }
189
+ exports.CliError = CliError;
190
+ /**
191
+ * Create a CliError for task not found
192
+ */
193
+ function taskNotFoundError(taskId) {
194
+ return new CliError(ErrorCode.TASK_NOT_FOUND, `Task not found: ${taskId}`, { taskId });
195
+ }
196
+ /**
197
+ * Create a CliError for section not found
198
+ */
199
+ function sectionNotFoundError(sectionId) {
200
+ return new CliError(ErrorCode.SECTION_NOT_FOUND, `Section not found: ${sectionId}`, { sectionId });
201
+ }
202
+ /**
203
+ * Create a CliError for task locked
204
+ */
205
+ function taskLockedError(taskId, lockedBy) {
206
+ return new CliError(ErrorCode.TASK_LOCKED, `Task is locked: ${taskId}${lockedBy ? ` (locked by: ${lockedBy})` : ''}`, { taskId, lockedBy });
207
+ }
208
+ /**
209
+ * Create a CliError for not initialized
210
+ */
211
+ function notInitializedError() {
212
+ return new CliError(ErrorCode.NOT_INITIALIZED, 'Steroids not initialized. Run: steroids init');
213
+ }
214
+ /**
215
+ * Create a CliError for migration required
216
+ */
217
+ function migrationRequiredError() {
218
+ return new CliError(ErrorCode.MIGRATION_REQUIRED, 'Database migration required. Run: steroids migrate');
219
+ }
220
+ /**
221
+ * Create a CliError for invalid arguments
222
+ */
223
+ function invalidArgumentsError(message) {
224
+ return new CliError(ErrorCode.INVALID_ARGUMENTS, message);
225
+ }
226
+ /**
227
+ * Create a CliError for config error
228
+ */
229
+ function configError(message, details) {
230
+ return new CliError(ErrorCode.CONFIG_ERROR, message, details);
231
+ }
232
+ /**
233
+ * Create a CliError for permission denied
234
+ */
235
+ function permissionDeniedError(message) {
236
+ return new CliError(ErrorCode.PERMISSION_DENIED, message);
237
+ }
238
+ /**
239
+ * Create a CliError for hook failed
240
+ */
241
+ function hookFailedError(hookName, exitCode) {
242
+ return new CliError(ErrorCode.HOOK_FAILED, `Hook failed: ${hookName}${exitCode !== undefined ? ` (exit code: ${exitCode})` : ''}`, { hookName, exitCode });
243
+ }
244
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"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"}