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,173 @@
1
+ /**
2
+ * AI Provider Interface
3
+ * Defines the contract for AI providers (Claude, Gemini, OpenAI, etc.)
4
+ */
5
+ /**
6
+ * Options for invoking an AI provider
7
+ */
8
+ export interface InvokeOptions {
9
+ /** Model identifier (e.g., 'claude-sonnet-4', 'gpt-4') */
10
+ model: string;
11
+ /** Timeout in milliseconds (default: 900000 = 15 minutes) */
12
+ timeout?: number;
13
+ /** Working directory for the invocation */
14
+ cwd?: string;
15
+ /** Path to prompt file (alternative to inline prompt) */
16
+ promptFile?: string;
17
+ /** Role for this invocation (orchestrator, coder, reviewer) */
18
+ role?: 'orchestrator' | 'coder' | 'reviewer';
19
+ /** Custom invocation template (e.g., "claude -p {prompt_file} --model {model}") */
20
+ invocationTemplate?: string;
21
+ /** Whether to stream output to stdout/stderr */
22
+ streamOutput?: boolean;
23
+ }
24
+ /**
25
+ * Result of an AI provider invocation
26
+ */
27
+ export interface InvokeResult {
28
+ /** Whether the invocation succeeded (exit code 0) */
29
+ success: boolean;
30
+ /** Exit code from the CLI process */
31
+ exitCode: number;
32
+ /** Standard output from the process */
33
+ stdout: string;
34
+ /** Standard error from the process */
35
+ stderr: string;
36
+ /** Duration in milliseconds */
37
+ duration: number;
38
+ /** Whether the process was killed due to timeout */
39
+ timedOut: boolean;
40
+ }
41
+ /**
42
+ * Error types that can be classified from provider output
43
+ */
44
+ export type ProviderErrorType = 'rate_limit' | 'auth_error' | 'network_error' | 'model_not_found' | 'context_exceeded' | 'subprocess_hung' | 'unknown';
45
+ /**
46
+ * Classified error from provider invocation
47
+ */
48
+ export interface ProviderError {
49
+ /** Type of error */
50
+ type: ProviderErrorType;
51
+ /** Human-readable error message */
52
+ message: string;
53
+ /** Whether this error is retryable */
54
+ retryable: boolean;
55
+ /** Suggested retry delay in milliseconds */
56
+ retryAfterMs?: number;
57
+ }
58
+ /**
59
+ * Model information
60
+ */
61
+ export interface ModelInfo {
62
+ /** Model identifier used for invocation */
63
+ id: string;
64
+ /** Human-readable name */
65
+ name: string;
66
+ /** Recommended role for this model */
67
+ recommendedFor?: ('orchestrator' | 'coder' | 'reviewer')[];
68
+ /** Whether this model supports streaming */
69
+ supportsStreaming?: boolean;
70
+ }
71
+ /**
72
+ * AI Provider interface
73
+ * All providers must implement this interface
74
+ */
75
+ export interface IAIProvider {
76
+ /** Provider name (e.g., 'claude', 'gemini', 'openai') */
77
+ readonly name: string;
78
+ /** Human-readable display name */
79
+ readonly displayName: string;
80
+ /**
81
+ * Invoke the provider with a prompt
82
+ * @param prompt The prompt text to send
83
+ * @param options Invocation options
84
+ * @returns Promise resolving to the invocation result
85
+ */
86
+ invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
87
+ /**
88
+ * Check if this provider is available (CLI installed and accessible)
89
+ * @returns Promise resolving to true if available
90
+ */
91
+ isAvailable(): Promise<boolean>;
92
+ /**
93
+ * List available models for this provider
94
+ * @returns Array of model identifiers
95
+ */
96
+ listModels(): string[];
97
+ /**
98
+ * Get detailed model information
99
+ * @returns Array of model info objects
100
+ */
101
+ getModelInfo(): ModelInfo[];
102
+ /**
103
+ * Get the default model for a role
104
+ * @param role The role to get default model for
105
+ * @returns Default model ID or undefined
106
+ */
107
+ getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string | undefined;
108
+ /**
109
+ * Classify an error from stderr output
110
+ * @param exitCode The process exit code
111
+ * @param stderr The stderr output
112
+ * @returns Classified error or null if not an error
113
+ */
114
+ classifyError(exitCode: number, stderr: string): ProviderError | null;
115
+ /**
116
+ * Get the CLI path for this provider
117
+ * @returns Path to CLI executable or undefined if using default
118
+ */
119
+ getCliPath(): string | undefined;
120
+ /**
121
+ * Set a custom CLI path
122
+ * @param path Path to CLI executable
123
+ */
124
+ setCliPath(path: string): void;
125
+ /**
126
+ * Get the default invocation template
127
+ * @returns Default template with {prompt_file} and {model} placeholders
128
+ */
129
+ getDefaultInvocationTemplate(): string;
130
+ /**
131
+ * Set a custom invocation template
132
+ * @param template Custom template with {prompt_file} and {model} placeholders
133
+ */
134
+ setInvocationTemplate(template: string): void;
135
+ /**
136
+ * Get the current invocation template
137
+ * @returns Current template (custom or default)
138
+ */
139
+ getInvocationTemplate(): string;
140
+ }
141
+ /**
142
+ * Base abstract class for AI providers
143
+ * Provides common functionality
144
+ */
145
+ export declare abstract class BaseAIProvider implements IAIProvider {
146
+ abstract readonly name: string;
147
+ abstract readonly displayName: string;
148
+ protected cliPath: string | undefined;
149
+ protected invocationTemplate: string | undefined;
150
+ abstract invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
151
+ abstract isAvailable(): Promise<boolean>;
152
+ abstract listModels(): string[];
153
+ abstract getModelInfo(): ModelInfo[];
154
+ abstract getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string | undefined;
155
+ abstract getDefaultInvocationTemplate(): string;
156
+ /**
157
+ * Classify an error based on exit code and stderr
158
+ * Subclasses can override for provider-specific error detection
159
+ */
160
+ classifyError(exitCode: number, stderr: string): ProviderError | null;
161
+ getCliPath(): string | undefined;
162
+ setCliPath(path: string): void;
163
+ setInvocationTemplate(template: string): void;
164
+ getInvocationTemplate(): string;
165
+ /**
166
+ * Build the command from the invocation template
167
+ * @param promptFile Path to the prompt file
168
+ * @param model Model identifier
169
+ * @returns Command string ready for execution
170
+ */
171
+ protected buildCommand(promptFile: string, model: string): string;
172
+ }
173
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * AI Provider Interface
4
+ * Defines the contract for AI providers (Claude, Gemini, OpenAI, etc.)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BaseAIProvider = void 0;
8
+ /**
9
+ * Base abstract class for AI providers
10
+ * Provides common functionality
11
+ */
12
+ class BaseAIProvider {
13
+ cliPath;
14
+ invocationTemplate;
15
+ /**
16
+ * Classify an error based on exit code and stderr
17
+ * Subclasses can override for provider-specific error detection
18
+ */
19
+ classifyError(exitCode, stderr) {
20
+ if (exitCode === 0) {
21
+ return null;
22
+ }
23
+ const stderrLower = stderr.toLowerCase();
24
+ if (stderrLower.includes('rate limit') || stderr.includes('429')) {
25
+ return {
26
+ type: 'rate_limit',
27
+ message: 'Rate limit exceeded',
28
+ retryable: true,
29
+ retryAfterMs: 60000,
30
+ };
31
+ }
32
+ if (stderrLower.includes('unauthorized') || stderrLower.includes('auth')) {
33
+ return {
34
+ type: 'auth_error',
35
+ message: 'Authentication failed',
36
+ retryable: false,
37
+ };
38
+ }
39
+ if (stderrLower.includes('connection') || stderrLower.includes('timeout') ||
40
+ stderrLower.includes('network')) {
41
+ return {
42
+ type: 'network_error',
43
+ message: 'Network error',
44
+ retryable: true,
45
+ };
46
+ }
47
+ if (stderrLower.includes('model') && stderrLower.includes('not found')) {
48
+ return {
49
+ type: 'model_not_found',
50
+ message: 'Model not found',
51
+ retryable: false,
52
+ };
53
+ }
54
+ if (stderrLower.includes('context') || stderrLower.includes('token limit') ||
55
+ stderrLower.includes('too long')) {
56
+ return {
57
+ type: 'context_exceeded',
58
+ message: 'Context limit exceeded',
59
+ retryable: false,
60
+ };
61
+ }
62
+ return {
63
+ type: 'unknown',
64
+ message: stderr.slice(0, 200) || 'Unknown error',
65
+ retryable: true,
66
+ };
67
+ }
68
+ getCliPath() {
69
+ return this.cliPath;
70
+ }
71
+ setCliPath(path) {
72
+ this.cliPath = path;
73
+ }
74
+ setInvocationTemplate(template) {
75
+ this.invocationTemplate = template;
76
+ }
77
+ getInvocationTemplate() {
78
+ return this.invocationTemplate ?? this.getDefaultInvocationTemplate();
79
+ }
80
+ /**
81
+ * Build the command from the invocation template
82
+ * @param promptFile Path to the prompt file
83
+ * @param model Model identifier
84
+ * @returns Command string ready for execution
85
+ */
86
+ buildCommand(promptFile, model) {
87
+ const template = this.getInvocationTemplate();
88
+ const cli = this.cliPath ?? this.name;
89
+ return template
90
+ .replace('{cli}', cli)
91
+ .replace('{prompt_file}', promptFile)
92
+ .replace('{model}', model);
93
+ }
94
+ }
95
+ exports.BaseAIProvider = BaseAIProvider;
96
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmKH;;;GAGG;AACH,MAAsB,cAAc;IAIxB,OAAO,CAAqB;IAC5B,kBAAkB,CAAqB;IASjD;;;OAGG;IACH,aAAa,CAAC,QAAgB,EAAE,MAAc;QAC5C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEzC,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,KAAK;aACpB,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,uBAAuB;gBAChC,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;YACrE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,eAAe;gBACxB,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACvE,OAAO;gBACL,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,iBAAiB;gBAC1B,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,wBAAwB;gBACjC,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,eAAe;YAChD,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,qBAAqB,CAAC,QAAgB;QACpC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACO,YAAY,CAAC,UAAkB,EAAE,KAAa;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;QAEtC,OAAO,QAAQ;aACZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC;aACpC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF;AA1GD,wCA0GC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Invocation Logger
3
+ * Logs all LLM invocations for debugging and audit purposes
4
+ */
5
+ import type { InvokeResult } from './interface.js';
6
+ /**
7
+ * Log entry for an LLM invocation
8
+ */
9
+ export interface InvocationLogEntry {
10
+ /** Timestamp of invocation start */
11
+ timestamp: string;
12
+ /** Role (orchestrator, coder, reviewer) */
13
+ role: 'orchestrator' | 'coder' | 'reviewer';
14
+ /** Provider name (claude, openai, gemini, codex) */
15
+ provider: string;
16
+ /** Model identifier */
17
+ model: string;
18
+ /** Task ID if applicable */
19
+ taskId?: string;
20
+ /** Duration in milliseconds */
21
+ duration: number;
22
+ /** Exit code */
23
+ exitCode: number;
24
+ /** Whether the invocation succeeded */
25
+ success: boolean;
26
+ /** Whether the invocation timed out */
27
+ timedOut: boolean;
28
+ /** Prompt text */
29
+ prompt: string;
30
+ /** Response text (stdout) */
31
+ response: string;
32
+ /** Error text (stderr) */
33
+ error?: string;
34
+ }
35
+ /**
36
+ * Configuration for invocation logging
37
+ */
38
+ export interface InvocationLoggerConfig {
39
+ /** Enable logging (default: true) */
40
+ enabled?: boolean;
41
+ /** Directory to store logs (default: .steroids/logs) */
42
+ logsDir?: string;
43
+ /** Log retention in days (default: 7, 0 = keep forever) */
44
+ retentionDays?: number;
45
+ /** Whether to include prompts in logs (default: true) */
46
+ includePrompts?: boolean;
47
+ /** Whether to include responses in logs (default: true) */
48
+ includeResponses?: boolean;
49
+ }
50
+ /**
51
+ * Invocation Logger
52
+ * Logs LLM invocations to disk for debugging and audit
53
+ */
54
+ export declare class InvocationLogger {
55
+ private config;
56
+ constructor(config?: InvocationLoggerConfig);
57
+ /**
58
+ * Log an invocation
59
+ */
60
+ log(entry: InvocationLogEntry): void;
61
+ /**
62
+ * Create log file name
63
+ */
64
+ private createLogFileName;
65
+ /**
66
+ * Format log entry as text
67
+ */
68
+ private formatLogEntry;
69
+ /**
70
+ * Ensure logs directory exists
71
+ */
72
+ private ensureLogsDirectory;
73
+ /**
74
+ * Clean up old logs based on retention policy
75
+ */
76
+ private cleanupOldLogs;
77
+ /**
78
+ * Get all log files
79
+ */
80
+ getAllLogs(): string[];
81
+ /**
82
+ * Purge all logs
83
+ */
84
+ purgeAll(): void;
85
+ /**
86
+ * Get total size of all logs in bytes
87
+ */
88
+ getTotalSize(): number;
89
+ }
90
+ /**
91
+ * Get the global invocation logger
92
+ */
93
+ export declare function getInvocationLogger(config?: InvocationLoggerConfig): InvocationLogger;
94
+ /**
95
+ * Set the global invocation logger
96
+ */
97
+ export declare function setInvocationLogger(logger: InvocationLogger): void;
98
+ /**
99
+ * Reset the global invocation logger
100
+ */
101
+ export declare function resetInvocationLogger(): void;
102
+ /**
103
+ * Helper to log an invocation result
104
+ * Logs to both file system and database (if taskId provided)
105
+ */
106
+ export declare function logInvocation(prompt: string, result: InvokeResult, metadata: {
107
+ role: 'orchestrator' | 'coder' | 'reviewer';
108
+ provider: string;
109
+ model: string;
110
+ taskId?: string;
111
+ projectPath?: string;
112
+ rejectionNumber?: number;
113
+ }): void;
114
+ //# sourceMappingURL=invocation-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation-logger.d.ts","sourceRoot":"","sources":["../../src/providers/invocation-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAaD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAmC;gBAErC,MAAM,GAAE,sBAA2B;IAI/C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IA2BpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IA6BtB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAWhB;;OAEG;IACH,YAAY,IAAI,MAAM;CAevB;AAOD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,CAKrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE;IACR,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,IAAI,CAkDN"}