@promptwheel/cli 0.6.0

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 (530) hide show
  1. package/README.md +215 -0
  2. package/dist/bin/promptwheel.d.ts +17 -0
  3. package/dist/bin/promptwheel.d.ts.map +1 -0
  4. package/dist/bin/promptwheel.js +90 -0
  5. package/dist/bin/promptwheel.js.map +1 -0
  6. package/dist/commands/auto-auth.d.ts +26 -0
  7. package/dist/commands/auto-auth.d.ts.map +1 -0
  8. package/dist/commands/auto-auth.js +216 -0
  9. package/dist/commands/auto-auth.js.map +1 -0
  10. package/dist/commands/auto-ci-mode.d.ts +9 -0
  11. package/dist/commands/auto-ci-mode.d.ts.map +1 -0
  12. package/dist/commands/auto-ci-mode.js +176 -0
  13. package/dist/commands/auto-ci-mode.js.map +1 -0
  14. package/dist/commands/solo-analytics.d.ts +6 -0
  15. package/dist/commands/solo-analytics.d.ts.map +1 -0
  16. package/dist/commands/solo-analytics.js +267 -0
  17. package/dist/commands/solo-analytics.js.map +1 -0
  18. package/dist/commands/solo-auto.d.ts +6 -0
  19. package/dist/commands/solo-auto.d.ts.map +1 -0
  20. package/dist/commands/solo-auto.js +135 -0
  21. package/dist/commands/solo-auto.js.map +1 -0
  22. package/dist/commands/solo-daemon.d.ts +12 -0
  23. package/dist/commands/solo-daemon.d.ts.map +1 -0
  24. package/dist/commands/solo-daemon.js +177 -0
  25. package/dist/commands/solo-daemon.js.map +1 -0
  26. package/dist/commands/solo-exec.d.ts +6 -0
  27. package/dist/commands/solo-exec.d.ts.map +1 -0
  28. package/dist/commands/solo-exec.js +656 -0
  29. package/dist/commands/solo-exec.js.map +1 -0
  30. package/dist/commands/solo-inspect.d.ts +6 -0
  31. package/dist/commands/solo-inspect.d.ts.map +1 -0
  32. package/dist/commands/solo-inspect.js +765 -0
  33. package/dist/commands/solo-inspect.js.map +1 -0
  34. package/dist/commands/solo-lifecycle.d.ts +6 -0
  35. package/dist/commands/solo-lifecycle.d.ts.map +1 -0
  36. package/dist/commands/solo-lifecycle.js +226 -0
  37. package/dist/commands/solo-lifecycle.js.map +1 -0
  38. package/dist/commands/solo-nudge.d.ts +6 -0
  39. package/dist/commands/solo-nudge.d.ts.map +1 -0
  40. package/dist/commands/solo-nudge.js +49 -0
  41. package/dist/commands/solo-nudge.js.map +1 -0
  42. package/dist/commands/solo-qa.d.ts +6 -0
  43. package/dist/commands/solo-qa.d.ts.map +1 -0
  44. package/dist/commands/solo-qa.js +253 -0
  45. package/dist/commands/solo-qa.js.map +1 -0
  46. package/dist/commands/solo-trajectory.d.ts +6 -0
  47. package/dist/commands/solo-trajectory.d.ts.map +1 -0
  48. package/dist/commands/solo-trajectory.js +268 -0
  49. package/dist/commands/solo-trajectory.js.map +1 -0
  50. package/dist/commands/solo.d.ts +11 -0
  51. package/dist/commands/solo.d.ts.map +1 -0
  52. package/dist/commands/solo.js +52 -0
  53. package/dist/commands/solo.js.map +1 -0
  54. package/dist/index.d.ts +18 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +18 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/lib/artifacts.d.ts +136 -0
  59. package/dist/lib/artifacts.d.ts.map +1 -0
  60. package/dist/lib/artifacts.js +147 -0
  61. package/dist/lib/artifacts.js.map +1 -0
  62. package/dist/lib/codebase-index.d.ts +5 -0
  63. package/dist/lib/codebase-index.d.ts.map +1 -0
  64. package/dist/lib/codebase-index.js +5 -0
  65. package/dist/lib/codebase-index.js.map +1 -0
  66. package/dist/lib/cycle-context.d.ts +62 -0
  67. package/dist/lib/cycle-context.d.ts.map +1 -0
  68. package/dist/lib/cycle-context.js +141 -0
  69. package/dist/lib/cycle-context.js.map +1 -0
  70. package/dist/lib/daemon-fork.d.ts +39 -0
  71. package/dist/lib/daemon-fork.d.ts.map +1 -0
  72. package/dist/lib/daemon-fork.js +164 -0
  73. package/dist/lib/daemon-fork.js.map +1 -0
  74. package/dist/lib/daemon-notifier.d.ts +29 -0
  75. package/dist/lib/daemon-notifier.d.ts.map +1 -0
  76. package/dist/lib/daemon-notifier.js +147 -0
  77. package/dist/lib/daemon-notifier.js.map +1 -0
  78. package/dist/lib/daemon.d.ts +75 -0
  79. package/dist/lib/daemon.d.ts.map +1 -0
  80. package/dist/lib/daemon.js +265 -0
  81. package/dist/lib/daemon.js.map +1 -0
  82. package/dist/lib/dedup-memory.d.ts +46 -0
  83. package/dist/lib/dedup-memory.d.ts.map +1 -0
  84. package/dist/lib/dedup-memory.js +190 -0
  85. package/dist/lib/dedup-memory.js.map +1 -0
  86. package/dist/lib/dedup.d.ts +37 -0
  87. package/dist/lib/dedup.d.ts.map +1 -0
  88. package/dist/lib/dedup.js +85 -0
  89. package/dist/lib/dedup.js.map +1 -0
  90. package/dist/lib/display-adapter-log.d.ts +26 -0
  91. package/dist/lib/display-adapter-log.d.ts.map +1 -0
  92. package/dist/lib/display-adapter-log.js +63 -0
  93. package/dist/lib/display-adapter-log.js.map +1 -0
  94. package/dist/lib/display-adapter-spinner.d.ts +28 -0
  95. package/dist/lib/display-adapter-spinner.d.ts.map +1 -0
  96. package/dist/lib/display-adapter-spinner.js +93 -0
  97. package/dist/lib/display-adapter-spinner.js.map +1 -0
  98. package/dist/lib/display-adapter-tui.d.ts +32 -0
  99. package/dist/lib/display-adapter-tui.d.ts.map +1 -0
  100. package/dist/lib/display-adapter-tui.js +77 -0
  101. package/dist/lib/display-adapter-tui.js.map +1 -0
  102. package/dist/lib/display-adapter.d.ts +40 -0
  103. package/dist/lib/display-adapter.d.ts.map +1 -0
  104. package/dist/lib/display-adapter.js +9 -0
  105. package/dist/lib/display-adapter.js.map +1 -0
  106. package/dist/lib/doctor.d.ts +45 -0
  107. package/dist/lib/doctor.d.ts.map +1 -0
  108. package/dist/lib/doctor.js +382 -0
  109. package/dist/lib/doctor.js.map +1 -0
  110. package/dist/lib/exclusion-index.d.ts +50 -0
  111. package/dist/lib/exclusion-index.d.ts.map +1 -0
  112. package/dist/lib/exclusion-index.js +249 -0
  113. package/dist/lib/exclusion-index.js.map +1 -0
  114. package/dist/lib/exec.d.ts +24 -0
  115. package/dist/lib/exec.d.ts.map +1 -0
  116. package/dist/lib/exec.js +295 -0
  117. package/dist/lib/exec.js.map +1 -0
  118. package/dist/lib/execution-backends/claude.d.ts +27 -0
  119. package/dist/lib/execution-backends/claude.d.ts.map +1 -0
  120. package/dist/lib/execution-backends/claude.js +161 -0
  121. package/dist/lib/execution-backends/claude.js.map +1 -0
  122. package/dist/lib/execution-backends/codex.d.ts +28 -0
  123. package/dist/lib/execution-backends/codex.d.ts.map +1 -0
  124. package/dist/lib/execution-backends/codex.js +216 -0
  125. package/dist/lib/execution-backends/codex.js.map +1 -0
  126. package/dist/lib/execution-backends/index.d.ts +10 -0
  127. package/dist/lib/execution-backends/index.d.ts.map +1 -0
  128. package/dist/lib/execution-backends/index.js +9 -0
  129. package/dist/lib/execution-backends/index.js.map +1 -0
  130. package/dist/lib/execution-backends/kimi.d.ts +25 -0
  131. package/dist/lib/execution-backends/kimi.d.ts.map +1 -0
  132. package/dist/lib/execution-backends/kimi.js +76 -0
  133. package/dist/lib/execution-backends/kimi.js.map +1 -0
  134. package/dist/lib/execution-backends/types.d.ts +38 -0
  135. package/dist/lib/execution-backends/types.d.ts.map +1 -0
  136. package/dist/lib/execution-backends/types.js +5 -0
  137. package/dist/lib/execution-backends/types.js.map +1 -0
  138. package/dist/lib/failure-classifier.d.ts +11 -0
  139. package/dist/lib/failure-classifier.d.ts.map +1 -0
  140. package/dist/lib/failure-classifier.js +24 -0
  141. package/dist/lib/failure-classifier.js.map +1 -0
  142. package/dist/lib/file-cooldown.d.ts +9 -0
  143. package/dist/lib/file-cooldown.d.ts.map +1 -0
  144. package/dist/lib/file-cooldown.js +75 -0
  145. package/dist/lib/file-cooldown.js.map +1 -0
  146. package/dist/lib/formulas.d.ts +52 -0
  147. package/dist/lib/formulas.d.ts.map +1 -0
  148. package/dist/lib/formulas.js +123 -0
  149. package/dist/lib/formulas.js.map +1 -0
  150. package/dist/lib/git.d.ts +9 -0
  151. package/dist/lib/git.d.ts.map +1 -0
  152. package/dist/lib/git.js +60 -0
  153. package/dist/lib/git.js.map +1 -0
  154. package/dist/lib/goals.d.ts +59 -0
  155. package/dist/lib/goals.d.ts.map +1 -0
  156. package/dist/lib/goals.js +216 -0
  157. package/dist/lib/goals.js.map +1 -0
  158. package/dist/lib/guidelines.d.ts +32 -0
  159. package/dist/lib/guidelines.d.ts.map +1 -0
  160. package/dist/lib/guidelines.js +102 -0
  161. package/dist/lib/guidelines.js.map +1 -0
  162. package/dist/lib/learnings.d.ts +65 -0
  163. package/dist/lib/learnings.d.ts.map +1 -0
  164. package/dist/lib/learnings.js +193 -0
  165. package/dist/lib/learnings.js.map +1 -0
  166. package/dist/lib/logger.d.ts +17 -0
  167. package/dist/lib/logger.d.ts.map +1 -0
  168. package/dist/lib/logger.js +42 -0
  169. package/dist/lib/logger.js.map +1 -0
  170. package/dist/lib/meta-learnings.d.ts +27 -0
  171. package/dist/lib/meta-learnings.d.ts.map +1 -0
  172. package/dist/lib/meta-learnings.js +270 -0
  173. package/dist/lib/meta-learnings.js.map +1 -0
  174. package/dist/lib/metrics.d.ts +48 -0
  175. package/dist/lib/metrics.d.ts.map +1 -0
  176. package/dist/lib/metrics.js +107 -0
  177. package/dist/lib/metrics.js.map +1 -0
  178. package/dist/lib/openai-local-execution.d.ts +29 -0
  179. package/dist/lib/openai-local-execution.d.ts.map +1 -0
  180. package/dist/lib/openai-local-execution.js +282 -0
  181. package/dist/lib/openai-local-execution.js.map +1 -0
  182. package/dist/lib/project-metadata/csharp.d.ts +6 -0
  183. package/dist/lib/project-metadata/csharp.d.ts.map +1 -0
  184. package/dist/lib/project-metadata/csharp.js +19 -0
  185. package/dist/lib/project-metadata/csharp.js.map +1 -0
  186. package/dist/lib/project-metadata/elixir.d.ts +6 -0
  187. package/dist/lib/project-metadata/elixir.d.ts.map +1 -0
  188. package/dist/lib/project-metadata/elixir.js +23 -0
  189. package/dist/lib/project-metadata/elixir.js.map +1 -0
  190. package/dist/lib/project-metadata/go.d.ts +6 -0
  191. package/dist/lib/project-metadata/go.d.ts.map +1 -0
  192. package/dist/lib/project-metadata/go.js +30 -0
  193. package/dist/lib/project-metadata/go.js.map +1 -0
  194. package/dist/lib/project-metadata/index.d.ts +13 -0
  195. package/dist/lib/project-metadata/index.d.ts.map +1 -0
  196. package/dist/lib/project-metadata/index.js +111 -0
  197. package/dist/lib/project-metadata/index.js.map +1 -0
  198. package/dist/lib/project-metadata/java.d.ts +6 -0
  199. package/dist/lib/project-metadata/java.d.ts.map +1 -0
  200. package/dist/lib/project-metadata/java.js +37 -0
  201. package/dist/lib/project-metadata/java.js.map +1 -0
  202. package/dist/lib/project-metadata/node.d.ts +6 -0
  203. package/dist/lib/project-metadata/node.d.ts.map +1 -0
  204. package/dist/lib/project-metadata/node.js +135 -0
  205. package/dist/lib/project-metadata/node.js.map +1 -0
  206. package/dist/lib/project-metadata/php.d.ts +6 -0
  207. package/dist/lib/project-metadata/php.d.ts.map +1 -0
  208. package/dist/lib/project-metadata/php.js +29 -0
  209. package/dist/lib/project-metadata/php.js.map +1 -0
  210. package/dist/lib/project-metadata/python.d.ts +6 -0
  211. package/dist/lib/project-metadata/python.d.ts.map +1 -0
  212. package/dist/lib/project-metadata/python.js +79 -0
  213. package/dist/lib/project-metadata/python.js.map +1 -0
  214. package/dist/lib/project-metadata/ruby.d.ts +6 -0
  215. package/dist/lib/project-metadata/ruby.d.ts.map +1 -0
  216. package/dist/lib/project-metadata/ruby.js +38 -0
  217. package/dist/lib/project-metadata/ruby.js.map +1 -0
  218. package/dist/lib/project-metadata/rust.d.ts +6 -0
  219. package/dist/lib/project-metadata/rust.d.ts.map +1 -0
  220. package/dist/lib/project-metadata/rust.js +33 -0
  221. package/dist/lib/project-metadata/rust.js.map +1 -0
  222. package/dist/lib/project-metadata/swift.d.ts +6 -0
  223. package/dist/lib/project-metadata/swift.d.ts.map +1 -0
  224. package/dist/lib/project-metadata/swift.js +19 -0
  225. package/dist/lib/project-metadata/swift.js.map +1 -0
  226. package/dist/lib/project-metadata/types.d.ts +37 -0
  227. package/dist/lib/project-metadata/types.d.ts.map +1 -0
  228. package/dist/lib/project-metadata/types.js +5 -0
  229. package/dist/lib/project-metadata/types.js.map +1 -0
  230. package/dist/lib/proposal-review.d.ts +9 -0
  231. package/dist/lib/proposal-review.d.ts.map +1 -0
  232. package/dist/lib/proposal-review.js +9 -0
  233. package/dist/lib/proposal-review.js.map +1 -0
  234. package/dist/lib/providers/claude.d.ts +6 -0
  235. package/dist/lib/providers/claude.d.ts.map +1 -0
  236. package/dist/lib/providers/claude.js +21 -0
  237. package/dist/lib/providers/claude.js.map +1 -0
  238. package/dist/lib/providers/codex.d.ts +6 -0
  239. package/dist/lib/providers/codex.d.ts.map +1 -0
  240. package/dist/lib/providers/codex.js +26 -0
  241. package/dist/lib/providers/codex.js.map +1 -0
  242. package/dist/lib/providers/index.d.ts +22 -0
  243. package/dist/lib/providers/index.d.ts.map +1 -0
  244. package/dist/lib/providers/index.js +39 -0
  245. package/dist/lib/providers/index.js.map +1 -0
  246. package/dist/lib/providers/kimi.d.ts +6 -0
  247. package/dist/lib/providers/kimi.d.ts.map +1 -0
  248. package/dist/lib/providers/kimi.js +22 -0
  249. package/dist/lib/providers/kimi.js.map +1 -0
  250. package/dist/lib/providers/openai-local.d.ts +8 -0
  251. package/dist/lib/providers/openai-local.d.ts.map +1 -0
  252. package/dist/lib/providers/openai-local.js +30 -0
  253. package/dist/lib/providers/openai-local.js.map +1 -0
  254. package/dist/lib/providers/types.d.ts +37 -0
  255. package/dist/lib/providers/types.d.ts.map +1 -0
  256. package/dist/lib/providers/types.js +5 -0
  257. package/dist/lib/providers/types.js.map +1 -0
  258. package/dist/lib/qa-stats.d.ts +113 -0
  259. package/dist/lib/qa-stats.d.ts.map +1 -0
  260. package/dist/lib/qa-stats.js +311 -0
  261. package/dist/lib/qa-stats.js.map +1 -0
  262. package/dist/lib/retention.d.ts +125 -0
  263. package/dist/lib/retention.d.ts.map +1 -0
  264. package/dist/lib/retention.js +767 -0
  265. package/dist/lib/retention.js.map +1 -0
  266. package/dist/lib/run-history.d.ts +52 -0
  267. package/dist/lib/run-history.d.ts.map +1 -0
  268. package/dist/lib/run-history.js +116 -0
  269. package/dist/lib/run-history.js.map +1 -0
  270. package/dist/lib/run-state.d.ts +129 -0
  271. package/dist/lib/run-state.d.ts.map +1 -0
  272. package/dist/lib/run-state.js +312 -0
  273. package/dist/lib/run-state.js.map +1 -0
  274. package/dist/lib/scope.d.ts +8 -0
  275. package/dist/lib/scope.d.ts.map +1 -0
  276. package/dist/lib/scope.js +8 -0
  277. package/dist/lib/scope.js.map +1 -0
  278. package/dist/lib/scout-prompt-builder.d.ts +22 -0
  279. package/dist/lib/scout-prompt-builder.d.ts.map +1 -0
  280. package/dist/lib/scout-prompt-builder.js +97 -0
  281. package/dist/lib/scout-prompt-builder.js.map +1 -0
  282. package/dist/lib/sectors.d.ts +21 -0
  283. package/dist/lib/sectors.d.ts.map +1 -0
  284. package/dist/lib/sectors.js +96 -0
  285. package/dist/lib/sectors.js.map +1 -0
  286. package/dist/lib/selection.d.ts +35 -0
  287. package/dist/lib/selection.d.ts.map +1 -0
  288. package/dist/lib/selection.js +110 -0
  289. package/dist/lib/selection.js.map +1 -0
  290. package/dist/lib/session-report.d.ts +26 -0
  291. package/dist/lib/session-report.d.ts.map +1 -0
  292. package/dist/lib/session-report.js +143 -0
  293. package/dist/lib/session-report.js.map +1 -0
  294. package/dist/lib/solo-auto-between-cycles.d.ts +10 -0
  295. package/dist/lib/solo-auto-between-cycles.d.ts.map +1 -0
  296. package/dist/lib/solo-auto-between-cycles.js +577 -0
  297. package/dist/lib/solo-auto-between-cycles.js.map +1 -0
  298. package/dist/lib/solo-auto-execute.d.ts +22 -0
  299. package/dist/lib/solo-auto-execute.d.ts.map +1 -0
  300. package/dist/lib/solo-auto-execute.js +530 -0
  301. package/dist/lib/solo-auto-execute.js.map +1 -0
  302. package/dist/lib/solo-auto-filter.d.ts +14 -0
  303. package/dist/lib/solo-auto-filter.d.ts.map +1 -0
  304. package/dist/lib/solo-auto-filter.js +311 -0
  305. package/dist/lib/solo-auto-filter.js.map +1 -0
  306. package/dist/lib/solo-auto-finalize.d.ts +6 -0
  307. package/dist/lib/solo-auto-finalize.d.ts.map +1 -0
  308. package/dist/lib/solo-auto-finalize.js +242 -0
  309. package/dist/lib/solo-auto-finalize.js.map +1 -0
  310. package/dist/lib/solo-auto-init-qa.d.ts +23 -0
  311. package/dist/lib/solo-auto-init-qa.d.ts.map +1 -0
  312. package/dist/lib/solo-auto-init-qa.js +183 -0
  313. package/dist/lib/solo-auto-init-qa.js.map +1 -0
  314. package/dist/lib/solo-auto-planning.d.ts +40 -0
  315. package/dist/lib/solo-auto-planning.d.ts.map +1 -0
  316. package/dist/lib/solo-auto-planning.js +171 -0
  317. package/dist/lib/solo-auto-planning.js.map +1 -0
  318. package/dist/lib/solo-auto-scout.d.ts +18 -0
  319. package/dist/lib/solo-auto-scout.d.ts.map +1 -0
  320. package/dist/lib/solo-auto-scout.js +269 -0
  321. package/dist/lib/solo-auto-scout.js.map +1 -0
  322. package/dist/lib/solo-auto-state.d.ts +20 -0
  323. package/dist/lib/solo-auto-state.d.ts.map +1 -0
  324. package/dist/lib/solo-auto-state.js +859 -0
  325. package/dist/lib/solo-auto-state.js.map +1 -0
  326. package/dist/lib/solo-auto-types.d.ts +197 -0
  327. package/dist/lib/solo-auto-types.d.ts.map +1 -0
  328. package/dist/lib/solo-auto-types.js +11 -0
  329. package/dist/lib/solo-auto-types.js.map +1 -0
  330. package/dist/lib/solo-auto-utils.d.ts +23 -0
  331. package/dist/lib/solo-auto-utils.d.ts.map +1 -0
  332. package/dist/lib/solo-auto-utils.js +53 -0
  333. package/dist/lib/solo-auto-utils.js.map +1 -0
  334. package/dist/lib/solo-auto.d.ts +25 -0
  335. package/dist/lib/solo-auto.d.ts.map +1 -0
  336. package/dist/lib/solo-auto.js +345 -0
  337. package/dist/lib/solo-auto.js.map +1 -0
  338. package/dist/lib/solo-ci.d.ts +84 -0
  339. package/dist/lib/solo-ci.d.ts.map +1 -0
  340. package/dist/lib/solo-ci.js +306 -0
  341. package/dist/lib/solo-ci.js.map +1 -0
  342. package/dist/lib/solo-config.d.ts +242 -0
  343. package/dist/lib/solo-config.d.ts.map +1 -0
  344. package/dist/lib/solo-config.js +354 -0
  345. package/dist/lib/solo-config.js.map +1 -0
  346. package/dist/lib/solo-cycle-formula.d.ts +36 -0
  347. package/dist/lib/solo-cycle-formula.d.ts.map +1 -0
  348. package/dist/lib/solo-cycle-formula.js +90 -0
  349. package/dist/lib/solo-cycle-formula.js.map +1 -0
  350. package/dist/lib/solo-git.d.ts +87 -0
  351. package/dist/lib/solo-git.d.ts.map +1 -0
  352. package/dist/lib/solo-git.js +365 -0
  353. package/dist/lib/solo-git.js.map +1 -0
  354. package/dist/lib/solo-hints.d.ts +32 -0
  355. package/dist/lib/solo-hints.d.ts.map +1 -0
  356. package/dist/lib/solo-hints.js +98 -0
  357. package/dist/lib/solo-hints.js.map +1 -0
  358. package/dist/lib/solo-prompt-builder.d.ts +12 -0
  359. package/dist/lib/solo-prompt-builder.d.ts.map +1 -0
  360. package/dist/lib/solo-prompt-builder.js +53 -0
  361. package/dist/lib/solo-prompt-builder.js.map +1 -0
  362. package/dist/lib/solo-qa-retry.d.ts +43 -0
  363. package/dist/lib/solo-qa-retry.d.ts.map +1 -0
  364. package/dist/lib/solo-qa-retry.js +125 -0
  365. package/dist/lib/solo-qa-retry.js.map +1 -0
  366. package/dist/lib/solo-remote.d.ts +14 -0
  367. package/dist/lib/solo-remote.d.ts.map +1 -0
  368. package/dist/lib/solo-remote.js +48 -0
  369. package/dist/lib/solo-remote.js.map +1 -0
  370. package/dist/lib/solo-session-summary.d.ts +52 -0
  371. package/dist/lib/solo-session-summary.d.ts.map +1 -0
  372. package/dist/lib/solo-session-summary.js +188 -0
  373. package/dist/lib/solo-session-summary.js.map +1 -0
  374. package/dist/lib/solo-stdin.d.ts +33 -0
  375. package/dist/lib/solo-stdin.d.ts.map +1 -0
  376. package/dist/lib/solo-stdin.js +299 -0
  377. package/dist/lib/solo-stdin.js.map +1 -0
  378. package/dist/lib/solo-ticket-qa.d.ts +19 -0
  379. package/dist/lib/solo-ticket-qa.d.ts.map +1 -0
  380. package/dist/lib/solo-ticket-qa.js +68 -0
  381. package/dist/lib/solo-ticket-qa.js.map +1 -0
  382. package/dist/lib/solo-ticket-types.d.ts +146 -0
  383. package/dist/lib/solo-ticket-types.d.ts.map +1 -0
  384. package/dist/lib/solo-ticket-types.js +26 -0
  385. package/dist/lib/solo-ticket-types.js.map +1 -0
  386. package/dist/lib/solo-ticket.d.ts +12 -0
  387. package/dist/lib/solo-ticket.d.ts.map +1 -0
  388. package/dist/lib/solo-ticket.js +192 -0
  389. package/dist/lib/solo-ticket.js.map +1 -0
  390. package/dist/lib/solo-utils.d.ts +130 -0
  391. package/dist/lib/solo-utils.d.ts.map +1 -0
  392. package/dist/lib/solo-utils.js +277 -0
  393. package/dist/lib/solo-utils.js.map +1 -0
  394. package/dist/lib/spindle/failure-patterns.d.ts +15 -0
  395. package/dist/lib/spindle/failure-patterns.d.ts.map +1 -0
  396. package/dist/lib/spindle/failure-patterns.js +22 -0
  397. package/dist/lib/spindle/failure-patterns.js.map +1 -0
  398. package/dist/lib/spindle/format.d.ts +9 -0
  399. package/dist/lib/spindle/format.d.ts.map +1 -0
  400. package/dist/lib/spindle/format.js +37 -0
  401. package/dist/lib/spindle/format.js.map +1 -0
  402. package/dist/lib/spindle/index.d.ts +33 -0
  403. package/dist/lib/spindle/index.d.ts.map +1 -0
  404. package/dist/lib/spindle/index.js +231 -0
  405. package/dist/lib/spindle/index.js.map +1 -0
  406. package/dist/lib/spindle/oscillation.d.ts +17 -0
  407. package/dist/lib/spindle/oscillation.d.ts.map +1 -0
  408. package/dist/lib/spindle/oscillation.js +96 -0
  409. package/dist/lib/spindle/oscillation.js.map +1 -0
  410. package/dist/lib/spindle/repetition.d.ts +16 -0
  411. package/dist/lib/spindle/repetition.d.ts.map +1 -0
  412. package/dist/lib/spindle/repetition.js +52 -0
  413. package/dist/lib/spindle/repetition.js.map +1 -0
  414. package/dist/lib/spindle/similarity.d.ts +14 -0
  415. package/dist/lib/spindle/similarity.d.ts.map +1 -0
  416. package/dist/lib/spindle/similarity.js +58 -0
  417. package/dist/lib/spindle/similarity.js.map +1 -0
  418. package/dist/lib/spindle/types.d.ts +97 -0
  419. package/dist/lib/spindle/types.d.ts.map +1 -0
  420. package/dist/lib/spindle/types.js +46 -0
  421. package/dist/lib/spindle/types.js.map +1 -0
  422. package/dist/lib/spinner.d.ts +41 -0
  423. package/dist/lib/spinner.d.ts.map +1 -0
  424. package/dist/lib/spinner.js +186 -0
  425. package/dist/lib/spinner.js.map +1 -0
  426. package/dist/lib/taste-profile.d.ts +26 -0
  427. package/dist/lib/taste-profile.d.ts.map +1 -0
  428. package/dist/lib/taste-profile.js +121 -0
  429. package/dist/lib/taste-profile.js.map +1 -0
  430. package/dist/lib/ticket-steps/index.d.ts +14 -0
  431. package/dist/lib/ticket-steps/index.d.ts.map +1 -0
  432. package/dist/lib/ticket-steps/index.js +13 -0
  433. package/dist/lib/ticket-steps/index.js.map +1 -0
  434. package/dist/lib/ticket-steps/step-agent.d.ts +6 -0
  435. package/dist/lib/ticket-steps/step-agent.d.ts.map +1 -0
  436. package/dist/lib/ticket-steps/step-agent.js +122 -0
  437. package/dist/lib/ticket-steps/step-agent.js.map +1 -0
  438. package/dist/lib/ticket-steps/step-cleanup.d.ts +6 -0
  439. package/dist/lib/ticket-steps/step-cleanup.d.ts.map +1 -0
  440. package/dist/lib/ticket-steps/step-cleanup.js +11 -0
  441. package/dist/lib/ticket-steps/step-cleanup.js.map +1 -0
  442. package/dist/lib/ticket-steps/step-commit.d.ts +6 -0
  443. package/dist/lib/ticket-steps/step-commit.d.ts.map +1 -0
  444. package/dist/lib/ticket-steps/step-commit.js +31 -0
  445. package/dist/lib/ticket-steps/step-commit.js.map +1 -0
  446. package/dist/lib/ticket-steps/step-pr.d.ts +6 -0
  447. package/dist/lib/ticket-steps/step-pr.d.ts.map +1 -0
  448. package/dist/lib/ticket-steps/step-pr.js +38 -0
  449. package/dist/lib/ticket-steps/step-pr.js.map +1 -0
  450. package/dist/lib/ticket-steps/step-push.d.ts +6 -0
  451. package/dist/lib/ticket-steps/step-push.d.ts.map +1 -0
  452. package/dist/lib/ticket-steps/step-push.js +35 -0
  453. package/dist/lib/ticket-steps/step-push.js.map +1 -0
  454. package/dist/lib/ticket-steps/step-qa.d.ts +6 -0
  455. package/dist/lib/ticket-steps/step-qa.d.ts.map +1 -0
  456. package/dist/lib/ticket-steps/step-qa.js +300 -0
  457. package/dist/lib/ticket-steps/step-qa.js.map +1 -0
  458. package/dist/lib/ticket-steps/step-scope.d.ts +6 -0
  459. package/dist/lib/ticket-steps/step-scope.d.ts.map +1 -0
  460. package/dist/lib/ticket-steps/step-scope.js +121 -0
  461. package/dist/lib/ticket-steps/step-scope.js.map +1 -0
  462. package/dist/lib/ticket-steps/step-spindle.d.ts +9 -0
  463. package/dist/lib/ticket-steps/step-spindle.d.ts.map +1 -0
  464. package/dist/lib/ticket-steps/step-spindle.js +160 -0
  465. package/dist/lib/ticket-steps/step-spindle.js.map +1 -0
  466. package/dist/lib/ticket-steps/step-worktree.d.ts +6 -0
  467. package/dist/lib/ticket-steps/step-worktree.d.ts.map +1 -0
  468. package/dist/lib/ticket-steps/step-worktree.js +157 -0
  469. package/dist/lib/ticket-steps/step-worktree.js.map +1 -0
  470. package/dist/lib/ticket-steps/types.d.ts +70 -0
  471. package/dist/lib/ticket-steps/types.d.ts.map +1 -0
  472. package/dist/lib/ticket-steps/types.js +8 -0
  473. package/dist/lib/ticket-steps/types.js.map +1 -0
  474. package/dist/lib/tool-command-map.d.ts +11 -0
  475. package/dist/lib/tool-command-map.d.ts.map +1 -0
  476. package/dist/lib/tool-command-map.js +24 -0
  477. package/dist/lib/tool-command-map.js.map +1 -0
  478. package/dist/lib/trajectory-generate.d.ts +24 -0
  479. package/dist/lib/trajectory-generate.d.ts.map +1 -0
  480. package/dist/lib/trajectory-generate.js +163 -0
  481. package/dist/lib/trajectory-generate.js.map +1 -0
  482. package/dist/lib/trajectory.d.ts +20 -0
  483. package/dist/lib/trajectory.d.ts.map +1 -0
  484. package/dist/lib/trajectory.js +104 -0
  485. package/dist/lib/trajectory.js.map +1 -0
  486. package/dist/lib/trigger-config.d.ts +12 -0
  487. package/dist/lib/trigger-config.d.ts.map +1 -0
  488. package/dist/lib/trigger-config.js +37 -0
  489. package/dist/lib/trigger-config.js.map +1 -0
  490. package/dist/lib/update-check.d.ts +28 -0
  491. package/dist/lib/update-check.d.ts.map +1 -0
  492. package/dist/lib/update-check.js +178 -0
  493. package/dist/lib/update-check.js.map +1 -0
  494. package/dist/lib/wave-scheduling.d.ts +18 -0
  495. package/dist/lib/wave-scheduling.d.ts.map +1 -0
  496. package/dist/lib/wave-scheduling.js +29 -0
  497. package/dist/lib/wave-scheduling.js.map +1 -0
  498. package/dist/tui/app.d.ts +17 -0
  499. package/dist/tui/app.d.ts.map +1 -0
  500. package/dist/tui/app.js +139 -0
  501. package/dist/tui/app.js.map +1 -0
  502. package/dist/tui/index.d.ts +10 -0
  503. package/dist/tui/index.d.ts.map +1 -0
  504. package/dist/tui/index.js +9 -0
  505. package/dist/tui/index.js.map +1 -0
  506. package/dist/tui/poller.d.ts +42 -0
  507. package/dist/tui/poller.d.ts.map +1 -0
  508. package/dist/tui/poller.js +62 -0
  509. package/dist/tui/poller.js.map +1 -0
  510. package/dist/tui/screens/auto.d.ts +85 -0
  511. package/dist/tui/screens/auto.d.ts.map +1 -0
  512. package/dist/tui/screens/auto.js +440 -0
  513. package/dist/tui/screens/auto.js.map +1 -0
  514. package/dist/tui/screens/overview.d.ts +9 -0
  515. package/dist/tui/screens/overview.d.ts.map +1 -0
  516. package/dist/tui/screens/overview.js +189 -0
  517. package/dist/tui/screens/overview.js.map +1 -0
  518. package/dist/tui/state.d.ts +93 -0
  519. package/dist/tui/state.d.ts.map +1 -0
  520. package/dist/tui/state.js +169 -0
  521. package/dist/tui/state.js.map +1 -0
  522. package/dist/tui/ticket-output-buffer.d.ts +23 -0
  523. package/dist/tui/ticket-output-buffer.d.ts.map +1 -0
  524. package/dist/tui/ticket-output-buffer.js +60 -0
  525. package/dist/tui/ticket-output-buffer.js.map +1 -0
  526. package/dist/tui/types.d.ts +18 -0
  527. package/dist/tui/types.d.ts.map +1 -0
  528. package/dist/tui/types.js +5 -0
  529. package/dist/tui/types.js.map +1 -0
  530. package/package.json +70 -0
@@ -0,0 +1,306 @@
1
+ /**
2
+ * Solo mode CI integration
3
+ */
4
+ import { spawnSync } from 'node:child_process';
5
+ /**
6
+ * Safe spawnSync wrapper
7
+ */
8
+ export function spawnSyncSafe(cmd, args, options) {
9
+ try {
10
+ const result = spawnSync(cmd, args, {
11
+ encoding: 'utf-8',
12
+ timeout: 30000,
13
+ ...options,
14
+ });
15
+ return {
16
+ ok: result.status === 0,
17
+ stdout: result.stdout || '',
18
+ stderr: result.stderr || '',
19
+ };
20
+ }
21
+ catch {
22
+ return { ok: false, stdout: '', stderr: '' };
23
+ }
24
+ }
25
+ /**
26
+ * Get current branch name
27
+ */
28
+ export async function getCurrentBranch(repoRoot) {
29
+ const result = spawnSyncSafe('git', ['rev-parse', '--abbrev-ref', 'HEAD'], { cwd: repoRoot });
30
+ return result.stdout.trim();
31
+ }
32
+ /**
33
+ * Get CI status for a branch
34
+ */
35
+ export async function getCIStatus(repoRoot, branch) {
36
+ const result = spawnSyncSafe('gh', [
37
+ 'run', 'list',
38
+ '--branch', branch,
39
+ '--limit', '1',
40
+ '--json', 'status,conclusion,databaseId,jobs',
41
+ ], { cwd: repoRoot });
42
+ if (!result.ok || !result.stdout) {
43
+ return { status: 'unknown', failedJobs: [] };
44
+ }
45
+ try {
46
+ const runList = JSON.parse(result.stdout);
47
+ if (runList.length === 0) {
48
+ return { status: 'unknown', failedJobs: [] };
49
+ }
50
+ const run = runList[0];
51
+ if (run.status === 'in_progress' || run.status === 'queued') {
52
+ return { status: 'pending', failedJobs: [] };
53
+ }
54
+ if (run.conclusion === 'success') {
55
+ return { status: 'success', failedJobs: [] };
56
+ }
57
+ const failedJobs = [];
58
+ if (run.jobs) {
59
+ for (const job of run.jobs) {
60
+ if (job.conclusion === 'failure') {
61
+ failedJobs.push({ id: String(job.databaseId), name: job.name });
62
+ }
63
+ }
64
+ }
65
+ return {
66
+ status: 'failure',
67
+ conclusion: run.conclusion,
68
+ runId: String(run.databaseId),
69
+ failedJobs,
70
+ };
71
+ }
72
+ catch {
73
+ return { status: 'unknown', failedJobs: [] };
74
+ }
75
+ }
76
+ /**
77
+ * Get failure logs for a job
78
+ */
79
+ export async function getFailureLogs(runId, jobId) {
80
+ if (!runId)
81
+ return null;
82
+ const result = spawnSyncSafe('gh', [
83
+ 'run', 'view', runId,
84
+ '--job', jobId,
85
+ '--log-failed',
86
+ ]);
87
+ return result.ok ? result.stdout : null;
88
+ }
89
+ /**
90
+ * Parse failure from CI logs
91
+ */
92
+ export function parseFailure(logs) {
93
+ // Jest failure pattern
94
+ const jestMatch = logs.match(/FAIL\s+(.+\.(?:test|spec)\.[jt]sx?)/);
95
+ if (jestMatch) {
96
+ const errorMatch = logs.match(/●\s+(.+)\n\n\s+(.+)/);
97
+ return {
98
+ type: 'test',
99
+ framework: 'jest',
100
+ message: errorMatch?.[2] || 'Jest test failed',
101
+ file: jestMatch[1],
102
+ stackTrace: extractStackTrace(logs),
103
+ };
104
+ }
105
+ // Vitest failure pattern
106
+ const vitestMatch = logs.match(/❯\s+(.+\.(?:test|spec)\.[jt]sx?)/);
107
+ if (vitestMatch) {
108
+ return {
109
+ type: 'test',
110
+ framework: 'vitest',
111
+ message: 'Vitest test failed',
112
+ file: vitestMatch[1],
113
+ stackTrace: extractStackTrace(logs),
114
+ };
115
+ }
116
+ // Pytest failure pattern
117
+ const pytestMatch = logs.match(/FAILED\s+(.+\.py)::(.+)/);
118
+ if (pytestMatch) {
119
+ return {
120
+ type: 'test',
121
+ framework: 'pytest',
122
+ message: `Test ${pytestMatch[2]} failed`,
123
+ file: pytestMatch[1],
124
+ stackTrace: extractStackTrace(logs),
125
+ };
126
+ }
127
+ // Go test failure pattern
128
+ const goMatch = logs.match(/---\s+FAIL:\s+(\w+)\s+\(([^)]+)\)/);
129
+ if (goMatch) {
130
+ const fileMatch = logs.match(/(\w+_test\.go):(\d+)/);
131
+ return {
132
+ type: 'test',
133
+ framework: 'go',
134
+ message: `Test ${goMatch[1]} failed`,
135
+ file: fileMatch?.[1],
136
+ line: fileMatch ? parseInt(fileMatch[2], 10) : undefined,
137
+ stackTrace: extractStackTrace(logs),
138
+ };
139
+ }
140
+ // TypeScript error pattern
141
+ const tsMatch = logs.match(/(.+\.tsx?)\((\d+),(\d+)\):\s+error\s+TS\d+:\s+(.+)/);
142
+ if (tsMatch) {
143
+ return {
144
+ type: 'typecheck',
145
+ framework: 'typescript',
146
+ message: tsMatch[4],
147
+ file: tsMatch[1],
148
+ line: parseInt(tsMatch[2], 10),
149
+ };
150
+ }
151
+ // ESLint error pattern
152
+ const eslintMatch = logs.match(/(.+\.(?:js|ts|jsx|tsx))\n\s+(\d+):(\d+)\s+error\s+(.+)/);
153
+ if (eslintMatch) {
154
+ return {
155
+ type: 'lint',
156
+ framework: 'eslint',
157
+ message: eslintMatch[4],
158
+ file: eslintMatch[1],
159
+ line: parseInt(eslintMatch[2], 10),
160
+ };
161
+ }
162
+ // Generic build failure
163
+ if (logs.includes('Build failed') || logs.includes('error:') || logs.includes('Error:')) {
164
+ const errorLine = logs.split('\n').find((l) => l.includes('error') || l.includes('Error'));
165
+ return {
166
+ type: 'build',
167
+ message: errorLine || 'Build failed',
168
+ };
169
+ }
170
+ return null;
171
+ }
172
+ /**
173
+ * Extract stack trace lines from logs
174
+ */
175
+ export function extractStackTrace(logs) {
176
+ const lines = logs.split('\n');
177
+ const stackLines = [];
178
+ for (const line of lines) {
179
+ if (line.match(/^\s+at\s+/) || line.match(/^\s+File\s+"/) || line.match(/^\s+\w+\.go:\d+/)) {
180
+ stackLines.push(line.trim());
181
+ }
182
+ }
183
+ return stackLines.slice(0, 10);
184
+ }
185
+ /**
186
+ * Extract file scope from failure
187
+ */
188
+ export function extractFailureScope(failure) {
189
+ const files = new Set();
190
+ if (failure.file) {
191
+ files.add(failure.file);
192
+ const sourceFile = testToSourceFile(failure.file);
193
+ if (sourceFile) {
194
+ files.add(sourceFile);
195
+ }
196
+ }
197
+ if (failure.stackTrace) {
198
+ for (const line of failure.stackTrace) {
199
+ const extracted = extractFileFromStackLine(line);
200
+ if (extracted && !extracted.includes('node_modules')) {
201
+ files.add(extracted);
202
+ }
203
+ }
204
+ }
205
+ return Array.from(files);
206
+ }
207
+ /**
208
+ * Convert test file path to likely source file path
209
+ */
210
+ export function testToSourceFile(testFile) {
211
+ const jestMatch = testFile.match(/^(.+)\.(test|spec)\.(js|ts|jsx|tsx)$/);
212
+ if (jestMatch) {
213
+ return `${jestMatch[1]}.${jestMatch[3]}`;
214
+ }
215
+ const pytestMatch = testFile.match(/^test_(.+)\.py$/);
216
+ if (pytestMatch) {
217
+ return `${pytestMatch[1]}.py`;
218
+ }
219
+ const goMatch = testFile.match(/^(.+)_test\.go$/);
220
+ if (goMatch) {
221
+ return `${goMatch[1]}.go`;
222
+ }
223
+ return null;
224
+ }
225
+ /**
226
+ * Extract file path from a stack trace line
227
+ */
228
+ export function extractFileFromStackLine(line) {
229
+ const jsMatch = line.match(/\(([^:)]+\.[jt]sx?):\d+:\d+\)/);
230
+ if (jsMatch) {
231
+ return jsMatch[1];
232
+ }
233
+ const pyMatch = line.match(/File "([^"]+\.py)"/);
234
+ if (pyMatch) {
235
+ return pyMatch[1];
236
+ }
237
+ const goMatch = line.match(/([^\s]+\.go):\d+/);
238
+ if (goMatch) {
239
+ return goMatch[1];
240
+ }
241
+ return null;
242
+ }
243
+ /**
244
+ * Generate CI fix ticket description
245
+ */
246
+ export function generateCIFixDescription(failure, scope, _ciStatus) {
247
+ let desc = `## Task\n\nFix the CI failure detected in the latest run.\n\n`;
248
+ desc += `## Failure Details\n\n`;
249
+ desc += `**Type:** ${failure.type}\n`;
250
+ if (failure.framework)
251
+ desc += `**Framework:** ${failure.framework}\n`;
252
+ desc += `**Message:** ${failure.message}\n`;
253
+ if (failure.file)
254
+ desc += `**File:** ${failure.file}${failure.line ? `:${failure.line}` : ''}\n`;
255
+ if (failure.stackTrace?.length) {
256
+ desc += `\n**Stack Trace:**\n\`\`\`\n${failure.stackTrace.join('\n')}\n\`\`\`\n`;
257
+ }
258
+ desc += `\n## Constraints\n\n`;
259
+ desc += `You may ONLY modify these files:\n`;
260
+ for (const file of scope) {
261
+ desc += `- ${file}\n`;
262
+ }
263
+ desc += `\nDo NOT:\n`;
264
+ desc += `- Add new dependencies\n`;
265
+ desc += `- Modify unrelated code\n`;
266
+ desc += `- Change test expectations unless the test itself is wrong\n`;
267
+ desc += `- Skip or disable the failing test\n`;
268
+ desc += `\n## Expected Outcome\n\n`;
269
+ desc += `After your changes:\n`;
270
+ desc += `1. The failing test/check should pass\n`;
271
+ desc += `2. No other tests should break\n`;
272
+ desc += `3. The code should be correct, not just passing\n`;
273
+ return desc;
274
+ }
275
+ /**
276
+ * Generate actionable recommendations for Spindle abort
277
+ */
278
+ export function generateSpindleRecommendations(trigger, ticket, config) {
279
+ const recommendations = [];
280
+ switch (trigger) {
281
+ case 'token_budget':
282
+ recommendations.push(`Increase token limit: config.spindle.tokenBudgetAbort (current: ${config.tokenBudgetAbort})`, 'Break ticket into smaller, focused tasks', 'Narrow scope with more specific allowed_paths');
283
+ break;
284
+ case 'stalling':
285
+ recommendations.push('Agent may be stuck - check if requirements are clear', 'Review ticket description for ambiguity', `Decrease stall threshold: config.spindle.maxStallIterations (current: ${config.maxStallIterations})`);
286
+ break;
287
+ case 'oscillation':
288
+ recommendations.push('Agent is flip-flopping between approaches', 'Clarify the desired solution in ticket description', 'Add constraints to narrow valid solutions');
289
+ break;
290
+ case 'repetition':
291
+ recommendations.push('Agent is repeating similar outputs', 'Check if the task is achievable with current context', `Adjust similarity threshold: config.spindle.similarityThreshold (current: ${config.similarityThreshold})`);
292
+ break;
293
+ case 'spinning':
294
+ recommendations.push('Agent has high activity but no progress', 'Simplify the task requirements', 'Check for circular dependencies in the codebase');
295
+ break;
296
+ case 'qa_ping_pong':
297
+ recommendations.push('QA failures are alternating between two error types', 'Fix one issue fully before addressing the next', 'Check if fixes for one issue are causing the other');
298
+ break;
299
+ case 'command_failure':
300
+ recommendations.push('Same command keeps failing with the same error', 'Manual intervention needed — the issue may be environmental', 'Check test/lint config for issues outside the ticket scope');
301
+ break;
302
+ }
303
+ recommendations.push('View full diagnostics: promptwheel solo artifacts --type spindle', 'Disable Spindle (not recommended): config.spindle.enabled = false');
304
+ return recommendations;
305
+ }
306
+ //# sourceMappingURL=solo-ci.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solo-ci.js","sourceRoot":"","sources":["../../src/lib/solo-ci.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Solo mode configuration
3
+ */
4
+ import { type DatabaseAdapter } from '@promptwheel/core/db';
5
+ import type { ScoutDeps, ScoutProgress } from '@promptwheel/core/services';
6
+ import type { TicketProposal } from '@promptwheel/core/scout';
7
+ import type { SpindleConfig } from './spindle/index.js';
8
+ import type { DaemonConfig } from './daemon.js';
9
+ /**
10
+ * Retention configuration — caps on unbounded state accumulation.
11
+ * All values are item counts (not time-based), except maxStaleBranchDays.
12
+ */
13
+ export interface RetentionConfig {
14
+ /** Keep last N run folders in .promptwheel/runs/ (default 50) */
15
+ maxRuns: number;
16
+ /** Keep last N lines in history.ndjson (default 100) */
17
+ maxHistoryEntries: number;
18
+ /** Keep newest N artifact files per run folder (default 20) */
19
+ maxArtifactsPerRun: number;
20
+ /** Keep last N archived spool files (default 5) */
21
+ maxSpoolArchives: number;
22
+ /** Max deferred proposals in run-state.json (default 20) */
23
+ maxDeferredProposals: number;
24
+ /** Hard-delete oldest completed tickets beyond this cap (default 200) */
25
+ maxCompletedTickets: number;
26
+ /** Cap file_edit_counts keys in spindle state (default 50) */
27
+ maxSpindleFileEditKeys: number;
28
+ /** Keep last N local promptwheel/* branches (default 10) */
29
+ maxMergedBranches: number;
30
+ /** Delete unmerged promptwheel/tkt_* branches older than N days (default 7) */
31
+ maxStaleBranchDays: number;
32
+ /** Rotate tui.log when it exceeds this size in bytes (default 1MB) */
33
+ maxLogSizeBytes: number;
34
+ /** Delete artifact files older than N days (default 14) */
35
+ maxArtifactAgeDays: number;
36
+ /** Keep last N lines in metrics.ndjson (default 500) */
37
+ maxMetricsEntries: number;
38
+ }
39
+ /**
40
+ * Default retention configuration — conservative values.
41
+ */
42
+ export declare const DEFAULT_RETENTION_CONFIG: RetentionConfig;
43
+ /**
44
+ * Auto configuration - the "trust ladder" settings
45
+ */
46
+ export interface AutoConfig {
47
+ allowCategories: string[];
48
+ blockCategories: string[];
49
+ minConfidence: number;
50
+ maxPrs: number;
51
+ docsAudit: boolean;
52
+ docsAuditInterval: number;
53
+ /** Pull from origin every N cycles to stay current with team changes (0 = disabled, default 5) */
54
+ pullEveryNCycles: number;
55
+ /** What to do when pull fails due to divergence: "halt" stops the session, "warn" logs and continues (default "halt") */
56
+ pullPolicy: 'halt' | 'warn';
57
+ /** Re-read guidelines file every N cycles to pick up changes (default 10, 0 = disabled) */
58
+ guidelinesRefreshCycles: number;
59
+ /** Auto-create a baseline guidelines file (AGENTS.md or CLAUDE.md) if none exists (default true) */
60
+ autoCreateGuidelines: boolean;
61
+ /**
62
+ * Custom path to guidelines file, relative to repo root.
63
+ * Overrides the default CLAUDE.md / AGENTS.md search.
64
+ * Set to false to disable guidelines entirely.
65
+ * Examples: "docs/GUIDELINES.md", "CONVENTIONS.md", false
66
+ */
67
+ guidelinesPath: string | false | null;
68
+ /** Enable adversarial proposal review — second-pass critique before acceptance (default: false) */
69
+ adversarialReview: boolean;
70
+ /** Enable cross-run learnings (default: true) */
71
+ learningsEnabled: boolean;
72
+ /** Character budget for learnings injected into prompts (default: 2000) */
73
+ learningsBudget: number;
74
+ /** Weight decay per session (default: 3) */
75
+ learningsDecayRate: number;
76
+ /** Token budget per scout batch (default: auto based on backend — 20k codex, 10k claude) */
77
+ batchTokenBudget?: number;
78
+ /** Timeout per scout batch in ms (default: 0 = no timeout; override to set a hard limit) */
79
+ scoutTimeoutMs?: number;
80
+ /** Maximum files to scan per scout cycle (default: 60) */
81
+ maxFilesPerCycle?: number;
82
+ /** Max parallel scout batches (default: auto — 4 for codex, 3 for claude) */
83
+ scoutConcurrency?: number;
84
+ /** Per-category ticket timeouts in ms (e.g. { test: 300000, refactor: 600000 }) */
85
+ categoryTimeouts?: Record<string, number>;
86
+ /** Delivery mode: how completed work is shipped */
87
+ deliveryMode?: 'direct' | 'pr' | 'auto-merge';
88
+ /** Branch name for direct mode (default: 'promptwheel') */
89
+ directBranch?: string;
90
+ /** End-of-session action for direct mode: pr | merge | none (default: 'pr') */
91
+ directFinalize?: 'pr' | 'merge' | 'none';
92
+ /** Multiplier applied to ticket execution timeouts (e.g. 1.5 for slower backends). Auto-set for non-Claude backends. */
93
+ timeoutMultiplier?: number;
94
+ /** Per-backend overrides */
95
+ claude?: {
96
+ scoutConcurrency?: number;
97
+ batchTokenBudget?: number;
98
+ timeoutMultiplier?: number;
99
+ };
100
+ codex?: {
101
+ scoutConcurrency?: number;
102
+ batchTokenBudget?: number;
103
+ timeoutMultiplier?: number;
104
+ };
105
+ kimi?: {
106
+ scoutConcurrency?: number;
107
+ batchTokenBudget?: number;
108
+ scoutTimeoutMs?: number;
109
+ timeoutMultiplier?: number;
110
+ };
111
+ local?: {
112
+ scoutConcurrency?: number;
113
+ batchTokenBudget?: number;
114
+ scoutTimeoutMs?: number;
115
+ maxIterations?: number;
116
+ timeoutMultiplier?: number;
117
+ };
118
+ /**
119
+ * Wave scheduling conflict sensitivity for parallel execution (default: 'normal'):
120
+ * - 'strict': Any shared directory or package = conflict (safest, most sequential)
121
+ * - 'normal': Sibling files + conflict-prone patterns + same category (balanced)
122
+ * - 'relaxed': Only direct file overlap + glob overlap (most parallel, riskier)
123
+ */
124
+ conflictSensitivity?: 'strict' | 'normal' | 'relaxed';
125
+ }
126
+ /**
127
+ * Default auto config — permissive wheel settings.
128
+ * Let the scout and dedup do their jobs; don't gate artificially.
129
+ */
130
+ export declare const DEFAULT_AUTO_CONFIG: AutoConfig;
131
+ /**
132
+ * Solo config file structure
133
+ */
134
+ export interface SoloConfig {
135
+ version: number;
136
+ repoRoot: string;
137
+ createdAt: string;
138
+ dbPath: string;
139
+ qa?: {
140
+ commands: Array<{
141
+ name: string;
142
+ cmd: string;
143
+ cwd?: string;
144
+ timeoutSec?: number;
145
+ timeoutMs?: number;
146
+ }>;
147
+ retry?: {
148
+ enabled: boolean;
149
+ maxAttempts: number;
150
+ };
151
+ artifacts?: {
152
+ storeDir?: string;
153
+ maxLogBytes?: number;
154
+ tailBytes?: number;
155
+ };
156
+ /** Disable QA baseline capture — all failures treated as real (default: false) */
157
+ disableBaseline?: boolean;
158
+ };
159
+ allowedRemote?: string;
160
+ spindle?: Partial<SpindleConfig>;
161
+ auto?: Partial<AutoConfig>;
162
+ retention?: Partial<RetentionConfig>;
163
+ /** Max parallel tickets for plugin mode (default: 2, max: 5) */
164
+ pluginParallel?: number;
165
+ /** Daemon mode configuration */
166
+ daemon?: Partial<DaemonConfig>;
167
+ /** Saved Codex model choice (persisted across runs) */
168
+ codexModel?: string;
169
+ /**
170
+ * Shell command to run after worktree creation (language-agnostic project setup).
171
+ * Runs in the worktree directory before any ticket execution begins.
172
+ * Examples:
173
+ * "pnpm install --frozen-lockfile && pnpm prisma generate"
174
+ * "pip install -e ."
175
+ * "cargo build"
176
+ */
177
+ setup?: string;
178
+ }
179
+ /**
180
+ * Detected QA command from project configuration
181
+ */
182
+ export interface DetectedQaCommand {
183
+ name: string;
184
+ cmd: string;
185
+ source: 'package.json' | 'detected';
186
+ }
187
+ /**
188
+ * Get the .promptwheel directory path (repo-local or global)
189
+ */
190
+ export declare function getPromptwheelDir(repoRoot?: string): string;
191
+ /**
192
+ * Get database path
193
+ */
194
+ export declare function getDbPath(repoRoot?: string): string;
195
+ /**
196
+ * Check if solo mode is initialized for a repo
197
+ */
198
+ export declare function isInitialized(repoRoot: string): boolean;
199
+ /**
200
+ * Detect QA commands from project configuration
201
+ */
202
+ export declare function detectQaCommands(repoRoot: string): DetectedQaCommand[];
203
+ /**
204
+ * Auto-detect a setup command for worktree initialization.
205
+ * Returns a shell command string or null if nothing detected.
206
+ */
207
+ export declare function detectSetupCommand(repoRoot: string): string | null;
208
+ /**
209
+ * Initialize solo mode for a repository
210
+ */
211
+ export declare function initSolo(repoRoot: string): Promise<{
212
+ config: SoloConfig;
213
+ detectedQa: DetectedQaCommand[];
214
+ }>;
215
+ /**
216
+ * Load solo config
217
+ */
218
+ export declare function loadConfig(repoRoot: string): SoloConfig | null;
219
+ /**
220
+ * Save solo config (merges updates into existing config)
221
+ */
222
+ export declare function saveConfig(repoRoot: string, updates: Partial<SoloConfig>): void;
223
+ /**
224
+ * Get or create database adapter
225
+ */
226
+ export declare function getAdapter(repoRoot?: string): Promise<DatabaseAdapter>;
227
+ /**
228
+ * Create scout dependencies
229
+ */
230
+ export declare function createScoutDeps(db: DatabaseAdapter, opts?: {
231
+ verbose?: boolean;
232
+ quiet?: boolean;
233
+ }): ScoutDeps;
234
+ /**
235
+ * Format progress for display
236
+ */
237
+ export declare function formatProgress(progress: ScoutProgress): string;
238
+ /**
239
+ * Display a proposal summary
240
+ */
241
+ export declare function displayProposal(proposal: TicketProposal, index: number): void;
242
+ //# sourceMappingURL=solo-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solo-config.d.ts","sourceRoot":"","sources":["../../src/lib/solo-config.ts"],"names":[],"mappings":"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"}