@jokerized/getresearchdone 0.4.1

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 (711) hide show
  1. package/.claude-plugin/plugin.json +103 -0
  2. package/README.md +211 -0
  3. package/agents/grd-baseline-assessor.md +684 -0
  4. package/agents/grd-code-reviewer.md +300 -0
  5. package/agents/grd-codebase-mapper.md +355 -0
  6. package/agents/grd-critique-agent.md +119 -0
  7. package/agents/grd-debugger.md +519 -0
  8. package/agents/grd-deep-diver.md +737 -0
  9. package/agents/grd-eval-planner.md +913 -0
  10. package/agents/grd-eval-reporter.md +717 -0
  11. package/agents/grd-executor.md +683 -0
  12. package/agents/grd-feasibility-analyst.md +624 -0
  13. package/agents/grd-integration-checker.md +367 -0
  14. package/agents/grd-knowledge-miner.md +81 -0
  15. package/agents/grd-migrator.md +88 -0
  16. package/agents/grd-phase-researcher.md +697 -0
  17. package/agents/grd-plan-checker.md +443 -0
  18. package/agents/grd-planner.md +1532 -0
  19. package/agents/grd-product-owner.md +562 -0
  20. package/agents/grd-project-researcher.md +513 -0
  21. package/agents/grd-research-synthesizer.md +273 -0
  22. package/agents/grd-roadmapper.md +798 -0
  23. package/agents/grd-surveyor.md +566 -0
  24. package/agents/grd-verifier.md +893 -0
  25. package/bin/gd.js +4 -0
  26. package/bin/gd.ts +227 -0
  27. package/bin/grd-manifest.js +4 -0
  28. package/bin/grd-manifest.ts +286 -0
  29. package/bin/grd-mcp-server.js +4 -0
  30. package/bin/grd-mcp-server.ts +124 -0
  31. package/bin/grd-tools.js +4 -0
  32. package/bin/grd-tools.ts +2471 -0
  33. package/bin/postinstall.js +4 -0
  34. package/bin/postinstall.ts +80 -0
  35. package/commands/add-phase.md +123 -0
  36. package/commands/add-todo.md +87 -0
  37. package/commands/assess-baseline.md +289 -0
  38. package/commands/autopilot.md +100 -0
  39. package/commands/autoplan.md +55 -0
  40. package/commands/check-todos.md +87 -0
  41. package/commands/compare-methods.md +262 -0
  42. package/commands/complete-milestone.md +225 -0
  43. package/commands/debug.md +372 -0
  44. package/commands/deep-dive.md +288 -0
  45. package/commands/discover.md +281 -0
  46. package/commands/discuss-phase.md +188 -0
  47. package/commands/discuss.md +55 -0
  48. package/commands/eval-report.md +310 -0
  49. package/commands/evolve.md +79 -0
  50. package/commands/execute-phase.md +1017 -0
  51. package/commands/feasibility.md +292 -0
  52. package/commands/help.md +407 -0
  53. package/commands/init.md +1508 -0
  54. package/commands/insert-phase.md +113 -0
  55. package/commands/iterate.md +327 -0
  56. package/commands/list-phase-assumptions.md +217 -0
  57. package/commands/long-term-roadmap.md +202 -0
  58. package/commands/map-codebase.md +111 -0
  59. package/commands/migrate.md +159 -0
  60. package/commands/new-milestone.md +169 -0
  61. package/commands/pause-work.md +83 -0
  62. package/commands/plan-milestone-gaps.md +373 -0
  63. package/commands/plan-phase.md +655 -0
  64. package/commands/principles.md +328 -0
  65. package/commands/product-plan.md +319 -0
  66. package/commands/progress.md +481 -0
  67. package/commands/quick.md +167 -0
  68. package/commands/reapply-patches.md +154 -0
  69. package/commands/remove-phase.md +97 -0
  70. package/commands/requirement.md +96 -0
  71. package/commands/resume-project.md +113 -0
  72. package/commands/settings.md +1144 -0
  73. package/commands/survey.md +242 -0
  74. package/commands/sync.md +246 -0
  75. package/commands/tracker-setup.md +322 -0
  76. package/commands/update.md +202 -0
  77. package/commands/verify-phase.md +335 -0
  78. package/commands/verify-work.md +701 -0
  79. package/commands/wireup.md +29 -0
  80. package/dist/bin/gd.d.ts +3 -0
  81. package/dist/bin/gd.d.ts.map +1 -0
  82. package/dist/bin/gd.js +178 -0
  83. package/dist/bin/gd.js.map +1 -0
  84. package/dist/bin/grd-manifest.d.ts +3 -0
  85. package/dist/bin/grd-manifest.d.ts.map +1 -0
  86. package/dist/bin/grd-manifest.js +202 -0
  87. package/dist/bin/grd-manifest.js.map +1 -0
  88. package/dist/bin/grd-mcp-server.d.ts +3 -0
  89. package/dist/bin/grd-mcp-server.d.ts.map +1 -0
  90. package/dist/bin/grd-mcp-server.js +71 -0
  91. package/dist/bin/grd-mcp-server.js.map +1 -0
  92. package/dist/bin/grd-tools.d.ts +3 -0
  93. package/dist/bin/grd-tools.d.ts.map +1 -0
  94. package/dist/bin/grd-tools.js +1680 -0
  95. package/dist/bin/grd-tools.js.map +1 -0
  96. package/dist/bin/postinstall.d.ts +3 -0
  97. package/dist/bin/postinstall.d.ts.map +1 -0
  98. package/dist/bin/postinstall.js +61 -0
  99. package/dist/bin/postinstall.js.map +1 -0
  100. package/dist/lib/autopilot-milestone.d.ts +2 -0
  101. package/dist/lib/autopilot-milestone.d.ts.map +1 -0
  102. package/dist/lib/autopilot-milestone.js +94 -0
  103. package/dist/lib/autopilot-milestone.js.map +1 -0
  104. package/dist/lib/autopilot-pipeline.d.ts +2 -0
  105. package/dist/lib/autopilot-pipeline.d.ts.map +1 -0
  106. package/dist/lib/autopilot-pipeline.js +830 -0
  107. package/dist/lib/autopilot-pipeline.js.map +1 -0
  108. package/dist/lib/autopilot-waves.d.ts +2 -0
  109. package/dist/lib/autopilot-waves.d.ts.map +1 -0
  110. package/dist/lib/autopilot-waves.js +266 -0
  111. package/dist/lib/autopilot-waves.js.map +1 -0
  112. package/dist/lib/autopilot.d.ts +2 -0
  113. package/dist/lib/autopilot.d.ts.map +1 -0
  114. package/dist/lib/autopilot.js +1314 -0
  115. package/dist/lib/autopilot.js.map +1 -0
  116. package/dist/lib/autoplan.d.ts +2 -0
  117. package/dist/lib/autoplan.d.ts.map +1 -0
  118. package/dist/lib/autoplan.js +198 -0
  119. package/dist/lib/autoplan.js.map +1 -0
  120. package/dist/lib/autoresearch.d.ts +2 -0
  121. package/dist/lib/autoresearch.d.ts.map +1 -0
  122. package/dist/lib/autoresearch.js +626 -0
  123. package/dist/lib/autoresearch.js.map +1 -0
  124. package/dist/lib/backend.d.ts +2 -0
  125. package/dist/lib/backend.d.ts.map +1 -0
  126. package/dist/lib/backend.js +1036 -0
  127. package/dist/lib/backend.js.map +1 -0
  128. package/dist/lib/benchmark.d.ts +99 -0
  129. package/dist/lib/benchmark.d.ts.map +1 -0
  130. package/dist/lib/benchmark.js +278 -0
  131. package/dist/lib/benchmark.js.map +1 -0
  132. package/dist/lib/citations.d.ts +2 -0
  133. package/dist/lib/citations.d.ts.map +1 -0
  134. package/dist/lib/citations.js +642 -0
  135. package/dist/lib/citations.js.map +1 -0
  136. package/dist/lib/cleanup.d.ts +2 -0
  137. package/dist/lib/cleanup.d.ts.map +1 -0
  138. package/dist/lib/cleanup.js +1222 -0
  139. package/dist/lib/cleanup.js.map +1 -0
  140. package/dist/lib/cli/adapters.d.ts +10 -0
  141. package/dist/lib/cli/adapters.d.ts.map +1 -0
  142. package/dist/lib/cli/adapters.js +27 -0
  143. package/dist/lib/cli/adapters.js.map +1 -0
  144. package/dist/lib/cli/agent.d.ts +17 -0
  145. package/dist/lib/cli/agent.d.ts.map +1 -0
  146. package/dist/lib/cli/agent.js +53 -0
  147. package/dist/lib/cli/agent.js.map +1 -0
  148. package/dist/lib/cli/index.d.ts +21 -0
  149. package/dist/lib/cli/index.d.ts.map +1 -0
  150. package/dist/lib/cli/index.js +264 -0
  151. package/dist/lib/cli/index.js.map +1 -0
  152. package/dist/lib/cli/output.d.ts +20 -0
  153. package/dist/lib/cli/output.d.ts.map +1 -0
  154. package/dist/lib/cli/output.js +22 -0
  155. package/dist/lib/cli/output.js.map +1 -0
  156. package/dist/lib/cli/scan-dispatch.d.ts +9 -0
  157. package/dist/lib/cli/scan-dispatch.d.ts.map +1 -0
  158. package/dist/lib/cli/scan-dispatch.js +107 -0
  159. package/dist/lib/cli/scan-dispatch.js.map +1 -0
  160. package/dist/lib/cli/tools.d.ts +16 -0
  161. package/dist/lib/cli/tools.d.ts.map +1 -0
  162. package/dist/lib/cli/tools.js +168 -0
  163. package/dist/lib/cli/tools.js.map +1 -0
  164. package/dist/lib/commands/_dashboard-parsers.d.ts +2 -0
  165. package/dist/lib/commands/_dashboard-parsers.d.ts.map +1 -0
  166. package/dist/lib/commands/_dashboard-parsers.js +192 -0
  167. package/dist/lib/commands/_dashboard-parsers.js.map +1 -0
  168. package/dist/lib/commands/analysis.d.ts +2 -0
  169. package/dist/lib/commands/analysis.d.ts.map +1 -0
  170. package/dist/lib/commands/analysis.js +1418 -0
  171. package/dist/lib/commands/analysis.js.map +1 -0
  172. package/dist/lib/commands/assumptions.d.ts +2 -0
  173. package/dist/lib/commands/assumptions.d.ts.map +1 -0
  174. package/dist/lib/commands/assumptions.js +166 -0
  175. package/dist/lib/commands/assumptions.js.map +1 -0
  176. package/dist/lib/commands/blame.d.ts +2 -0
  177. package/dist/lib/commands/blame.d.ts.map +1 -0
  178. package/dist/lib/commands/blame.js +133 -0
  179. package/dist/lib/commands/blame.js.map +1 -0
  180. package/dist/lib/commands/budget.d.ts +2 -0
  181. package/dist/lib/commands/budget.d.ts.map +1 -0
  182. package/dist/lib/commands/budget.js +100 -0
  183. package/dist/lib/commands/budget.js.map +1 -0
  184. package/dist/lib/commands/check-plans.d.ts +2 -0
  185. package/dist/lib/commands/check-plans.d.ts.map +1 -0
  186. package/dist/lib/commands/check-plans.js +190 -0
  187. package/dist/lib/commands/check-plans.js.map +1 -0
  188. package/dist/lib/commands/config.d.ts +2 -0
  189. package/dist/lib/commands/config.d.ts.map +1 -0
  190. package/dist/lib/commands/config.js +188 -0
  191. package/dist/lib/commands/config.js.map +1 -0
  192. package/dist/lib/commands/dashboard.d.ts +2 -0
  193. package/dist/lib/commands/dashboard.d.ts.map +1 -0
  194. package/dist/lib/commands/dashboard.js +466 -0
  195. package/dist/lib/commands/dashboard.js.map +1 -0
  196. package/dist/lib/commands/estimate.d.ts +2 -0
  197. package/dist/lib/commands/estimate.d.ts.map +1 -0
  198. package/dist/lib/commands/estimate.js +148 -0
  199. package/dist/lib/commands/estimate.js.map +1 -0
  200. package/dist/lib/commands/eval-diff.d.ts +2 -0
  201. package/dist/lib/commands/eval-diff.d.ts.map +1 -0
  202. package/dist/lib/commands/eval-diff.js +213 -0
  203. package/dist/lib/commands/eval-diff.js.map +1 -0
  204. package/dist/lib/commands/freshness.d.ts +2 -0
  205. package/dist/lib/commands/freshness.d.ts.map +1 -0
  206. package/dist/lib/commands/freshness.js +163 -0
  207. package/dist/lib/commands/freshness.js.map +1 -0
  208. package/dist/lib/commands/health.d.ts +2 -0
  209. package/dist/lib/commands/health.d.ts.map +1 -0
  210. package/dist/lib/commands/health.js +435 -0
  211. package/dist/lib/commands/health.js.map +1 -0
  212. package/dist/lib/commands/index.d.ts +2 -0
  213. package/dist/lib/commands/index.d.ts.map +1 -0
  214. package/dist/lib/commands/index.js +128 -0
  215. package/dist/lib/commands/index.js.map +1 -0
  216. package/dist/lib/commands/install.d.ts +56 -0
  217. package/dist/lib/commands/install.d.ts.map +1 -0
  218. package/dist/lib/commands/install.js +214 -0
  219. package/dist/lib/commands/install.js.map +1 -0
  220. package/dist/lib/commands/knowhow-aggregator.d.ts +2 -0
  221. package/dist/lib/commands/knowhow-aggregator.d.ts.map +1 -0
  222. package/dist/lib/commands/knowhow-aggregator.js +279 -0
  223. package/dist/lib/commands/knowhow-aggregator.js.map +1 -0
  224. package/dist/lib/commands/knowledge-search.d.ts +2 -0
  225. package/dist/lib/commands/knowledge-search.d.ts.map +1 -0
  226. package/dist/lib/commands/knowledge-search.js +113 -0
  227. package/dist/lib/commands/knowledge-search.js.map +1 -0
  228. package/dist/lib/commands/long-term-roadmap.d.ts +2 -0
  229. package/dist/lib/commands/long-term-roadmap.d.ts.map +1 -0
  230. package/dist/lib/commands/long-term-roadmap.js +272 -0
  231. package/dist/lib/commands/long-term-roadmap.js.map +1 -0
  232. package/dist/lib/commands/patterns.d.ts +91 -0
  233. package/dist/lib/commands/patterns.d.ts.map +1 -0
  234. package/dist/lib/commands/patterns.js +391 -0
  235. package/dist/lib/commands/patterns.js.map +1 -0
  236. package/dist/lib/commands/phase-info.d.ts +2 -0
  237. package/dist/lib/commands/phase-info.d.ts.map +1 -0
  238. package/dist/lib/commands/phase-info.js +509 -0
  239. package/dist/lib/commands/phase-info.js.map +1 -0
  240. package/dist/lib/commands/plan-lint.d.ts +56 -0
  241. package/dist/lib/commands/plan-lint.d.ts.map +1 -0
  242. package/dist/lib/commands/plan-lint.js +481 -0
  243. package/dist/lib/commands/plan-lint.js.map +1 -0
  244. package/dist/lib/commands/plan-phase.d.ts +53 -0
  245. package/dist/lib/commands/plan-phase.d.ts.map +1 -0
  246. package/dist/lib/commands/plan-phase.js +288 -0
  247. package/dist/lib/commands/plan-phase.js.map +1 -0
  248. package/dist/lib/commands/progress.d.ts +2 -0
  249. package/dist/lib/commands/progress.d.ts.map +1 -0
  250. package/dist/lib/commands/progress.js +266 -0
  251. package/dist/lib/commands/progress.js.map +1 -0
  252. package/dist/lib/commands/quality.d.ts +2 -0
  253. package/dist/lib/commands/quality.d.ts.map +1 -0
  254. package/dist/lib/commands/quality.js +80 -0
  255. package/dist/lib/commands/quality.js.map +1 -0
  256. package/dist/lib/commands/rollback.d.ts +2 -0
  257. package/dist/lib/commands/rollback.d.ts.map +1 -0
  258. package/dist/lib/commands/rollback.js +145 -0
  259. package/dist/lib/commands/rollback.js.map +1 -0
  260. package/dist/lib/commands/scan.d.ts +25 -0
  261. package/dist/lib/commands/scan.d.ts.map +1 -0
  262. package/dist/lib/commands/scan.js +28 -0
  263. package/dist/lib/commands/scan.js.map +1 -0
  264. package/dist/lib/commands/search.d.ts +2 -0
  265. package/dist/lib/commands/search.d.ts.map +1 -0
  266. package/dist/lib/commands/search.js +212 -0
  267. package/dist/lib/commands/search.js.map +1 -0
  268. package/dist/lib/commands/select-candidate.d.ts +128 -0
  269. package/dist/lib/commands/select-candidate.d.ts.map +1 -0
  270. package/dist/lib/commands/select-candidate.js +518 -0
  271. package/dist/lib/commands/select-candidate.js.map +1 -0
  272. package/dist/lib/commands/singularity.d.ts +2 -0
  273. package/dist/lib/commands/singularity.d.ts.map +1 -0
  274. package/dist/lib/commands/singularity.js +185 -0
  275. package/dist/lib/commands/singularity.js.map +1 -0
  276. package/dist/lib/commands/slug-timestamp.d.ts +2 -0
  277. package/dist/lib/commands/slug-timestamp.d.ts.map +1 -0
  278. package/dist/lib/commands/slug-timestamp.js +54 -0
  279. package/dist/lib/commands/slug-timestamp.js.map +1 -0
  280. package/dist/lib/commands/tail.d.ts +2 -0
  281. package/dist/lib/commands/tail.d.ts.map +1 -0
  282. package/dist/lib/commands/tail.js +100 -0
  283. package/dist/lib/commands/tail.js.map +1 -0
  284. package/dist/lib/commands/todo.d.ts +2 -0
  285. package/dist/lib/commands/todo.d.ts.map +1 -0
  286. package/dist/lib/commands/todo.js +200 -0
  287. package/dist/lib/commands/todo.js.map +1 -0
  288. package/dist/lib/commands/watch.d.ts +2 -0
  289. package/dist/lib/commands/watch.d.ts.map +1 -0
  290. package/dist/lib/commands/watch.js +72 -0
  291. package/dist/lib/commands/watch.js.map +1 -0
  292. package/dist/lib/complexity.d.ts +55 -0
  293. package/dist/lib/complexity.d.ts.map +1 -0
  294. package/dist/lib/complexity.js +80 -0
  295. package/dist/lib/complexity.js.map +1 -0
  296. package/dist/lib/context/agents.d.ts +2 -0
  297. package/dist/lib/context/agents.d.ts.map +1 -0
  298. package/dist/lib/context/agents.js +344 -0
  299. package/dist/lib/context/agents.js.map +1 -0
  300. package/dist/lib/context/base.d.ts +2 -0
  301. package/dist/lib/context/base.d.ts.map +1 -0
  302. package/dist/lib/context/base.js +81 -0
  303. package/dist/lib/context/base.js.map +1 -0
  304. package/dist/lib/context/execute.d.ts +2 -0
  305. package/dist/lib/context/execute.d.ts.map +1 -0
  306. package/dist/lib/context/execute.js +753 -0
  307. package/dist/lib/context/execute.js.map +1 -0
  308. package/dist/lib/context/index.d.ts +2 -0
  309. package/dist/lib/context/index.d.ts.map +1 -0
  310. package/dist/lib/context/index.js +88 -0
  311. package/dist/lib/context/index.js.map +1 -0
  312. package/dist/lib/context/progress.d.ts +2 -0
  313. package/dist/lib/context/progress.d.ts.map +1 -0
  314. package/dist/lib/context/progress.js +178 -0
  315. package/dist/lib/context/progress.js.map +1 -0
  316. package/dist/lib/context/project.d.ts +2 -0
  317. package/dist/lib/context/project.d.ts.map +1 -0
  318. package/dist/lib/context/project.js +413 -0
  319. package/dist/lib/context/project.js.map +1 -0
  320. package/dist/lib/context/research.d.ts +2 -0
  321. package/dist/lib/context/research.d.ts.map +1 -0
  322. package/dist/lib/context/research.js +466 -0
  323. package/dist/lib/context/research.js.map +1 -0
  324. package/dist/lib/dead-ends.d.ts +28 -0
  325. package/dist/lib/dead-ends.d.ts.map +1 -0
  326. package/dist/lib/dead-ends.js +451 -0
  327. package/dist/lib/dead-ends.js.map +1 -0
  328. package/dist/lib/deps.d.ts +2 -0
  329. package/dist/lib/deps.d.ts.map +1 -0
  330. package/dist/lib/deps.js +630 -0
  331. package/dist/lib/deps.js.map +1 -0
  332. package/dist/lib/discussion.d.ts +2 -0
  333. package/dist/lib/discussion.d.ts.map +1 -0
  334. package/dist/lib/discussion.js +1041 -0
  335. package/dist/lib/discussion.js.map +1 -0
  336. package/dist/lib/drift.d.ts +36 -0
  337. package/dist/lib/drift.d.ts.map +1 -0
  338. package/dist/lib/drift.js +481 -0
  339. package/dist/lib/drift.js.map +1 -0
  340. package/dist/lib/evolve/_dimensions-features.d.ts +2 -0
  341. package/dist/lib/evolve/_dimensions-features.d.ts.map +1 -0
  342. package/dist/lib/evolve/_dimensions-features.js +369 -0
  343. package/dist/lib/evolve/_dimensions-features.js.map +1 -0
  344. package/dist/lib/evolve/_dimensions.d.ts +2 -0
  345. package/dist/lib/evolve/_dimensions.d.ts.map +1 -0
  346. package/dist/lib/evolve/_dimensions.js +358 -0
  347. package/dist/lib/evolve/_dimensions.js.map +1 -0
  348. package/dist/lib/evolve/_product-ideation.d.ts +2 -0
  349. package/dist/lib/evolve/_product-ideation.d.ts.map +1 -0
  350. package/dist/lib/evolve/_product-ideation.js +281 -0
  351. package/dist/lib/evolve/_product-ideation.js.map +1 -0
  352. package/dist/lib/evolve/_prompts.d.ts +2 -0
  353. package/dist/lib/evolve/_prompts.d.ts.map +1 -0
  354. package/dist/lib/evolve/_prompts.js +153 -0
  355. package/dist/lib/evolve/_prompts.js.map +1 -0
  356. package/dist/lib/evolve/cli.d.ts +2 -0
  357. package/dist/lib/evolve/cli.d.ts.map +1 -0
  358. package/dist/lib/evolve/cli.js +224 -0
  359. package/dist/lib/evolve/cli.js.map +1 -0
  360. package/dist/lib/evolve/discovery.d.ts +2 -0
  361. package/dist/lib/evolve/discovery.d.ts.map +1 -0
  362. package/dist/lib/evolve/discovery.js +391 -0
  363. package/dist/lib/evolve/discovery.js.map +1 -0
  364. package/dist/lib/evolve/index.d.ts +2 -0
  365. package/dist/lib/evolve/index.d.ts.map +1 -0
  366. package/dist/lib/evolve/index.js +88 -0
  367. package/dist/lib/evolve/index.js.map +1 -0
  368. package/dist/lib/evolve/orchestrator.d.ts +2 -0
  369. package/dist/lib/evolve/orchestrator.d.ts.map +1 -0
  370. package/dist/lib/evolve/orchestrator.js +851 -0
  371. package/dist/lib/evolve/orchestrator.js.map +1 -0
  372. package/dist/lib/evolve/scoring.d.ts +2 -0
  373. package/dist/lib/evolve/scoring.d.ts.map +1 -0
  374. package/dist/lib/evolve/scoring.js +118 -0
  375. package/dist/lib/evolve/scoring.js.map +1 -0
  376. package/dist/lib/evolve/state.d.ts +2 -0
  377. package/dist/lib/evolve/state.d.ts.map +1 -0
  378. package/dist/lib/evolve/state.js +264 -0
  379. package/dist/lib/evolve/state.js.map +1 -0
  380. package/dist/lib/evolve/types.d.ts +249 -0
  381. package/dist/lib/evolve/types.d.ts.map +1 -0
  382. package/dist/lib/evolve/types.js +3 -0
  383. package/dist/lib/evolve/types.js.map +1 -0
  384. package/dist/lib/frontmatter.d.ts +2 -0
  385. package/dist/lib/frontmatter.d.ts.map +1 -0
  386. package/dist/lib/frontmatter.js +513 -0
  387. package/dist/lib/frontmatter.js.map +1 -0
  388. package/dist/lib/gates.d.ts +2 -0
  389. package/dist/lib/gates.d.ts.map +1 -0
  390. package/dist/lib/gates.js +578 -0
  391. package/dist/lib/gates.js.map +1 -0
  392. package/dist/lib/genome.d.ts +10 -0
  393. package/dist/lib/genome.d.ts.map +1 -0
  394. package/dist/lib/genome.js +368 -0
  395. package/dist/lib/genome.js.map +1 -0
  396. package/dist/lib/got.d.ts +2 -0
  397. package/dist/lib/got.d.ts.map +1 -0
  398. package/dist/lib/got.js +280 -0
  399. package/dist/lib/got.js.map +1 -0
  400. package/dist/lib/invariants.d.ts +2 -0
  401. package/dist/lib/invariants.d.ts.map +1 -0
  402. package/dist/lib/invariants.js +298 -0
  403. package/dist/lib/invariants.js.map +1 -0
  404. package/dist/lib/knowledge.d.ts +2 -0
  405. package/dist/lib/knowledge.d.ts.map +1 -0
  406. package/dist/lib/knowledge.js +658 -0
  407. package/dist/lib/knowledge.js.map +1 -0
  408. package/dist/lib/long-term-roadmap.d.ts +2 -0
  409. package/dist/lib/long-term-roadmap.d.ts.map +1 -0
  410. package/dist/lib/long-term-roadmap.js +602 -0
  411. package/dist/lib/long-term-roadmap.js.map +1 -0
  412. package/dist/lib/markdown-split.d.ts +2 -0
  413. package/dist/lib/markdown-split.d.ts.map +1 -0
  414. package/dist/lib/markdown-split.js +199 -0
  415. package/dist/lib/markdown-split.js.map +1 -0
  416. package/dist/lib/mcp-server.d.ts +2 -0
  417. package/dist/lib/mcp-server.d.ts.map +1 -0
  418. package/dist/lib/mcp-server.js +2424 -0
  419. package/dist/lib/mcp-server.js.map +1 -0
  420. package/dist/lib/metrics.d.ts +16 -0
  421. package/dist/lib/metrics.d.ts.map +1 -0
  422. package/dist/lib/metrics.js +48 -0
  423. package/dist/lib/metrics.js.map +1 -0
  424. package/dist/lib/overstory.d.ts +2 -0
  425. package/dist/lib/overstory.d.ts.map +1 -0
  426. package/dist/lib/overstory.js +211 -0
  427. package/dist/lib/overstory.js.map +1 -0
  428. package/dist/lib/parallel.d.ts +2 -0
  429. package/dist/lib/parallel.d.ts.map +1 -0
  430. package/dist/lib/parallel.js +349 -0
  431. package/dist/lib/parallel.js.map +1 -0
  432. package/dist/lib/paths.d.ts +2 -0
  433. package/dist/lib/paths.d.ts.map +1 -0
  434. package/dist/lib/paths.js +254 -0
  435. package/dist/lib/paths.js.map +1 -0
  436. package/dist/lib/phase-complete-llm.d.ts +22 -0
  437. package/dist/lib/phase-complete-llm.d.ts.map +1 -0
  438. package/dist/lib/phase-complete-llm.js +331 -0
  439. package/dist/lib/phase-complete-llm.js.map +1 -0
  440. package/dist/lib/phase-complete.d.ts +46 -0
  441. package/dist/lib/phase-complete.d.ts.map +1 -0
  442. package/dist/lib/phase-complete.js +278 -0
  443. package/dist/lib/phase-complete.js.map +1 -0
  444. package/dist/lib/phase-io.d.ts +2 -0
  445. package/dist/lib/phase-io.d.ts.map +1 -0
  446. package/dist/lib/phase-io.js +126 -0
  447. package/dist/lib/phase-io.js.map +1 -0
  448. package/dist/lib/phase.d.ts +2 -0
  449. package/dist/lib/phase.d.ts.map +1 -0
  450. package/dist/lib/phase.js +1344 -0
  451. package/dist/lib/phase.js.map +1 -0
  452. package/dist/lib/plan-tournament.d.ts +63 -0
  453. package/dist/lib/plan-tournament.d.ts.map +1 -0
  454. package/dist/lib/plan-tournament.js +353 -0
  455. package/dist/lib/plan-tournament.js.map +1 -0
  456. package/dist/lib/refinement.d.ts +74 -0
  457. package/dist/lib/refinement.d.ts.map +1 -0
  458. package/dist/lib/refinement.js +283 -0
  459. package/dist/lib/refinement.js.map +1 -0
  460. package/dist/lib/requirements.d.ts +2 -0
  461. package/dist/lib/requirements.d.ts.map +1 -0
  462. package/dist/lib/requirements.js +355 -0
  463. package/dist/lib/requirements.js.map +1 -0
  464. package/dist/lib/research-bundle.d.ts +2 -0
  465. package/dist/lib/research-bundle.d.ts.map +1 -0
  466. package/dist/lib/research-bundle.js +246 -0
  467. package/dist/lib/research-bundle.js.map +1 -0
  468. package/dist/lib/roadmap.d.ts +2 -0
  469. package/dist/lib/roadmap.d.ts.map +1 -0
  470. package/dist/lib/roadmap.js +541 -0
  471. package/dist/lib/roadmap.js.map +1 -0
  472. package/dist/lib/sample.d.ts +16 -0
  473. package/dist/lib/sample.d.ts.map +1 -0
  474. package/dist/lib/sample.js +20 -0
  475. package/dist/lib/sample.js.map +1 -0
  476. package/dist/lib/scaffold.d.ts +2 -0
  477. package/dist/lib/scaffold.d.ts.map +1 -0
  478. package/dist/lib/scaffold.js +355 -0
  479. package/dist/lib/scaffold.js.map +1 -0
  480. package/dist/lib/scan/_utils.d.ts +11 -0
  481. package/dist/lib/scan/_utils.d.ts.map +1 -0
  482. package/dist/lib/scan/_utils.js +36 -0
  483. package/dist/lib/scan/_utils.js.map +1 -0
  484. package/dist/lib/scan/base64.d.ts +15 -0
  485. package/dist/lib/scan/base64.d.ts.map +1 -0
  486. package/dist/lib/scan/base64.js +66 -0
  487. package/dist/lib/scan/base64.js.map +1 -0
  488. package/dist/lib/scan/ignorefile.d.ts +30 -0
  489. package/dist/lib/scan/ignorefile.d.ts.map +1 -0
  490. package/dist/lib/scan/ignorefile.js +101 -0
  491. package/dist/lib/scan/ignorefile.js.map +1 -0
  492. package/dist/lib/scan/injection.d.ts +14 -0
  493. package/dist/lib/scan/injection.d.ts.map +1 -0
  494. package/dist/lib/scan/injection.js +39 -0
  495. package/dist/lib/scan/injection.js.map +1 -0
  496. package/dist/lib/scan/patterns.d.ts +17 -0
  497. package/dist/lib/scan/patterns.d.ts.map +1 -0
  498. package/dist/lib/scan/patterns.js +123 -0
  499. package/dist/lib/scan/patterns.js.map +1 -0
  500. package/dist/lib/scan/strip-markdown.d.ts +7 -0
  501. package/dist/lib/scan/strip-markdown.d.ts.map +1 -0
  502. package/dist/lib/scan/strip-markdown.js +38 -0
  503. package/dist/lib/scan/strip-markdown.js.map +1 -0
  504. package/dist/lib/scan/types.d.ts +23 -0
  505. package/dist/lib/scan/types.d.ts.map +1 -0
  506. package/dist/lib/scan/types.js +3 -0
  507. package/dist/lib/scan/types.js.map +1 -0
  508. package/dist/lib/scheduler-wait.d.ts +2 -0
  509. package/dist/lib/scheduler-wait.d.ts.map +1 -0
  510. package/dist/lib/scheduler-wait.js +59 -0
  511. package/dist/lib/scheduler-wait.js.map +1 -0
  512. package/dist/lib/scheduler.d.ts +254 -0
  513. package/dist/lib/scheduler.d.ts.map +1 -0
  514. package/dist/lib/scheduler.js +1147 -0
  515. package/dist/lib/scheduler.js.map +1 -0
  516. package/dist/lib/state.d.ts +2 -0
  517. package/dist/lib/state.d.ts.map +1 -0
  518. package/dist/lib/state.js +744 -0
  519. package/dist/lib/state.js.map +1 -0
  520. package/dist/lib/think.d.ts +18 -0
  521. package/dist/lib/think.d.ts.map +1 -0
  522. package/dist/lib/think.js +317 -0
  523. package/dist/lib/think.js.map +1 -0
  524. package/dist/lib/tracker.d.ts +2 -0
  525. package/dist/lib/tracker.d.ts.map +1 -0
  526. package/dist/lib/tracker.js +1121 -0
  527. package/dist/lib/tracker.js.map +1 -0
  528. package/dist/lib/types.d.ts +1514 -0
  529. package/dist/lib/types.d.ts.map +1 -0
  530. package/dist/lib/types.js +4 -0
  531. package/dist/lib/types.js.map +1 -0
  532. package/dist/lib/utils.d.ts +2 -0
  533. package/dist/lib/utils.d.ts.map +1 -0
  534. package/dist/lib/utils.js +1363 -0
  535. package/dist/lib/utils.js.map +1 -0
  536. package/dist/lib/verify.d.ts +2 -0
  537. package/dist/lib/verify.d.ts.map +1 -0
  538. package/dist/lib/verify.js +1153 -0
  539. package/dist/lib/verify.js.map +1 -0
  540. package/dist/lib/wireup/autofix.d.ts +2 -0
  541. package/dist/lib/wireup/autofix.d.ts.map +1 -0
  542. package/dist/lib/wireup/autofix.js +188 -0
  543. package/dist/lib/wireup/autofix.js.map +1 -0
  544. package/dist/lib/wireup/cli.d.ts +2 -0
  545. package/dist/lib/wireup/cli.d.ts.map +1 -0
  546. package/dist/lib/wireup/cli.js +194 -0
  547. package/dist/lib/wireup/cli.js.map +1 -0
  548. package/dist/lib/wireup/detection.d.ts +47 -0
  549. package/dist/lib/wireup/detection.d.ts.map +1 -0
  550. package/dist/lib/wireup/detection.js +410 -0
  551. package/dist/lib/wireup/detection.js.map +1 -0
  552. package/dist/lib/wireup/discovery.d.ts +2 -0
  553. package/dist/lib/wireup/discovery.d.ts.map +1 -0
  554. package/dist/lib/wireup/discovery.js +934 -0
  555. package/dist/lib/wireup/discovery.js.map +1 -0
  556. package/dist/lib/wireup/execution.d.ts +2 -0
  557. package/dist/lib/wireup/execution.d.ts.map +1 -0
  558. package/dist/lib/wireup/execution.js +573 -0
  559. package/dist/lib/wireup/execution.js.map +1 -0
  560. package/dist/lib/wireup/index.d.ts +2 -0
  561. package/dist/lib/wireup/index.d.ts.map +1 -0
  562. package/dist/lib/wireup/index.js +85 -0
  563. package/dist/lib/wireup/index.js.map +1 -0
  564. package/dist/lib/wireup/orchestrator.d.ts +2 -0
  565. package/dist/lib/wireup/orchestrator.d.ts.map +1 -0
  566. package/dist/lib/wireup/orchestrator.js +366 -0
  567. package/dist/lib/wireup/orchestrator.js.map +1 -0
  568. package/dist/lib/wireup/report.d.ts +47 -0
  569. package/dist/lib/wireup/report.d.ts.map +1 -0
  570. package/dist/lib/wireup/report.js +201 -0
  571. package/dist/lib/wireup/report.js.map +1 -0
  572. package/dist/lib/wireup/scenarios.d.ts +2 -0
  573. package/dist/lib/wireup/scenarios.d.ts.map +1 -0
  574. package/dist/lib/wireup/scenarios.js +516 -0
  575. package/dist/lib/wireup/scenarios.js.map +1 -0
  576. package/dist/lib/wireup/state.d.ts +2 -0
  577. package/dist/lib/wireup/state.d.ts.map +1 -0
  578. package/dist/lib/wireup/state.js +102 -0
  579. package/dist/lib/wireup/state.js.map +1 -0
  580. package/dist/lib/wireup/types.d.ts +376 -0
  581. package/dist/lib/wireup/types.d.ts.map +1 -0
  582. package/dist/lib/wireup/types.js +3 -0
  583. package/dist/lib/wireup/types.js.map +1 -0
  584. package/dist/lib/worktree.d.ts +2 -0
  585. package/dist/lib/worktree.d.ts.map +1 -0
  586. package/dist/lib/worktree.js +999 -0
  587. package/dist/lib/worktree.js.map +1 -0
  588. package/lib/autopilot-milestone.ts +136 -0
  589. package/lib/autopilot-pipeline.ts +1179 -0
  590. package/lib/autopilot-waves.ts +361 -0
  591. package/lib/autopilot.ts +1874 -0
  592. package/lib/autoplan.ts +280 -0
  593. package/lib/autoresearch.js +4 -0
  594. package/lib/autoresearch.ts +886 -0
  595. package/lib/backend.ts +1252 -0
  596. package/lib/benchmark.ts +341 -0
  597. package/lib/citations.ts +760 -0
  598. package/lib/cleanup.ts +1588 -0
  599. package/lib/cli/adapters.ts +41 -0
  600. package/lib/cli/agent.ts +83 -0
  601. package/lib/cli/index.ts +273 -0
  602. package/lib/cli/output.ts +33 -0
  603. package/lib/cli/scan-dispatch.ts +130 -0
  604. package/lib/cli/tools.ts +198 -0
  605. package/lib/commands/_dashboard-parsers.ts +275 -0
  606. package/lib/commands/analysis.ts +1851 -0
  607. package/lib/commands/assumptions.ts +232 -0
  608. package/lib/commands/blame.ts +174 -0
  609. package/lib/commands/budget.ts +148 -0
  610. package/lib/commands/check-plans.ts +233 -0
  611. package/lib/commands/config.ts +287 -0
  612. package/lib/commands/dashboard.ts +680 -0
  613. package/lib/commands/estimate.ts +204 -0
  614. package/lib/commands/eval-diff.ts +252 -0
  615. package/lib/commands/freshness.ts +213 -0
  616. package/lib/commands/health.ts +607 -0
  617. package/lib/commands/index.ts +266 -0
  618. package/lib/commands/install.ts +307 -0
  619. package/lib/commands/knowhow-aggregator.ts +345 -0
  620. package/lib/commands/knowledge-search.ts +153 -0
  621. package/lib/commands/long-term-roadmap.ts +390 -0
  622. package/lib/commands/patterns.ts +465 -0
  623. package/lib/commands/phase-info.ts +698 -0
  624. package/lib/commands/plan-lint.ts +546 -0
  625. package/lib/commands/plan-phase.ts +375 -0
  626. package/lib/commands/progress.ts +319 -0
  627. package/lib/commands/quality.ts +138 -0
  628. package/lib/commands/rollback.ts +195 -0
  629. package/lib/commands/scan.ts +72 -0
  630. package/lib/commands/search.ts +300 -0
  631. package/lib/commands/select-candidate.ts +687 -0
  632. package/lib/commands/singularity.ts +222 -0
  633. package/lib/commands/slug-timestamp.ts +74 -0
  634. package/lib/commands/tail.ts +129 -0
  635. package/lib/commands/todo.ts +273 -0
  636. package/lib/commands/watch.ts +80 -0
  637. package/lib/complexity.ts +117 -0
  638. package/lib/context/agents.ts +505 -0
  639. package/lib/context/base.ts +123 -0
  640. package/lib/context/execute.ts +977 -0
  641. package/lib/context/index.ts +110 -0
  642. package/lib/context/progress.ts +278 -0
  643. package/lib/context/project.ts +531 -0
  644. package/lib/context/research.ts +646 -0
  645. package/lib/dead-ends.ts +506 -0
  646. package/lib/deps.ts +773 -0
  647. package/lib/discussion.ts +1275 -0
  648. package/lib/drift.ts +519 -0
  649. package/lib/evolve/_dimensions-features.ts +525 -0
  650. package/lib/evolve/_dimensions.ts +511 -0
  651. package/lib/evolve/_product-ideation.ts +405 -0
  652. package/lib/evolve/_prompts.ts +178 -0
  653. package/lib/evolve/cli.ts +330 -0
  654. package/lib/evolve/discovery.ts +571 -0
  655. package/lib/evolve/index.ts +105 -0
  656. package/lib/evolve/orchestrator.ts +1139 -0
  657. package/lib/evolve/scoring.ts +167 -0
  658. package/lib/evolve/state.ts +330 -0
  659. package/lib/evolve/types.ts +290 -0
  660. package/lib/frontmatter.ts +615 -0
  661. package/lib/gates.ts +695 -0
  662. package/lib/genome.ts +402 -0
  663. package/lib/got.js +4 -0
  664. package/lib/got.ts +361 -0
  665. package/lib/invariants.ts +378 -0
  666. package/lib/knowledge.ts +768 -0
  667. package/lib/long-term-roadmap.ts +806 -0
  668. package/lib/markdown-split.ts +273 -0
  669. package/lib/mcp-server.ts +3292 -0
  670. package/lib/metrics.ts +49 -0
  671. package/lib/overstory.ts +270 -0
  672. package/lib/parallel.ts +570 -0
  673. package/lib/paths.ts +293 -0
  674. package/lib/phase-complete-llm.ts +376 -0
  675. package/lib/phase-complete.ts +366 -0
  676. package/lib/phase-io.ts +101 -0
  677. package/lib/phase.ts +1981 -0
  678. package/lib/plan-tournament.ts +426 -0
  679. package/lib/refinement.ts +349 -0
  680. package/lib/requirements.ts +469 -0
  681. package/lib/research-bundle.ts +300 -0
  682. package/lib/roadmap.ts +775 -0
  683. package/lib/scaffold.ts +480 -0
  684. package/lib/scan/_utils.ts +37 -0
  685. package/lib/scan/base64.ts +90 -0
  686. package/lib/scan/ignorefile.ts +109 -0
  687. package/lib/scan/injection.ts +67 -0
  688. package/lib/scan/patterns.ts +139 -0
  689. package/lib/scan/strip-markdown.ts +39 -0
  690. package/lib/scan/types.ts +28 -0
  691. package/lib/scheduler-wait.ts +58 -0
  692. package/lib/scheduler.ts +1370 -0
  693. package/lib/state.ts +1000 -0
  694. package/lib/think.ts +365 -0
  695. package/lib/tracker.ts +1591 -0
  696. package/lib/types.ts +1663 -0
  697. package/lib/utils.ts +1479 -0
  698. package/lib/verify.ts +1434 -0
  699. package/lib/wireup/autofix.ts +241 -0
  700. package/lib/wireup/cli.ts +278 -0
  701. package/lib/wireup/detection.ts +542 -0
  702. package/lib/wireup/discovery.ts +1063 -0
  703. package/lib/wireup/execution.ts +686 -0
  704. package/lib/wireup/index.ts +117 -0
  705. package/lib/wireup/orchestrator.ts +519 -0
  706. package/lib/wireup/report.ts +286 -0
  707. package/lib/wireup/scenarios.ts +616 -0
  708. package/lib/wireup/state.ts +139 -0
  709. package/lib/wireup/types.ts +436 -0
  710. package/lib/worktree.ts +1309 -0
  711. package/package.json +67 -0
@@ -0,0 +1,241 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * GRD Wireup -- Auto-fix capability with confidence gating and re-run verification
5
+ *
6
+ * Provides infrastructure to automatically fix high-confidence missing connections
7
+ * detected by the wireup detection engine. Low and medium confidence issues are
8
+ * routed to a manual review list rather than risking incorrect automated changes.
9
+ *
10
+ * Fix application is delegated to the wireup orchestrator (which spawns a sonnet-tier
11
+ * subagent). autoFixIssue() returns the fix prompt and metadata; it does NOT spawn
12
+ * subprocesses directly.
13
+ *
14
+ * Model ceiling: SONNET_MODEL imported from ./state — never opus-class.
15
+ *
16
+ * @dependencies ./types, ./state
17
+ */
18
+
19
+ import type { MissingConnection, FixAttempt, AutoFixResult } from './types';
20
+
21
+ const {
22
+ SONNET_MODEL,
23
+ readWireupState,
24
+ writeWireupState,
25
+ }: {
26
+ SONNET_MODEL: string;
27
+ readWireupState: (cwd: string) => import('./types').WireupState | null;
28
+ writeWireupState: (cwd: string, state: import('./types').WireupState) => void;
29
+ } = require('./state');
30
+
31
+ // ─── Model Alias ─────────────────────────────────────────────────────────────
32
+
33
+ /**
34
+ * Model used for all wireup auto-fix subagent spawns.
35
+ * Aliased from SONNET_MODEL — do not redeclare.
36
+ */
37
+ const WIREUP_FIX_MODEL: string = SONNET_MODEL;
38
+
39
+ // ─── Confidence Classification ────────────────────────────────────────────────
40
+
41
+ /**
42
+ * Classify the fix confidence for a given MissingConnection.
43
+ *
44
+ * High confidence (safe to auto-fix):
45
+ * missing-import, missing-export — single-line addition to a known file
46
+ * missing-route — route registration is a mechanical single-line change
47
+ *
48
+ * Medium confidence (may require understanding of app structure):
49
+ * unconnected-handler, missing-middleware
50
+ *
51
+ * Low confidence (may require external config or user input):
52
+ * broken-nav-link, missing-env-var
53
+ *
54
+ * The returned value reflects the confidence of the *fix* action, not the
55
+ * detection confidence stored on the issue itself.
56
+ */
57
+ function classifyFixConfidence(issue: MissingConnection): 'high' | 'medium' | 'low' {
58
+ switch (issue.issue_type) {
59
+ case 'missing-import':
60
+ case 'missing-export':
61
+ case 'missing-route':
62
+ return 'high';
63
+ case 'unconnected-handler':
64
+ case 'missing-middleware':
65
+ return 'medium';
66
+ case 'broken-nav-link':
67
+ case 'missing-env-var':
68
+ return 'low';
69
+ default: {
70
+ // Exhaustiveness guard — TypeScript will catch unhandled cases at compile time
71
+ const _exhaustive: never = issue.issue_type;
72
+ void _exhaustive;
73
+ return 'low';
74
+ }
75
+ }
76
+ }
77
+
78
+ // ─── Fix Prompt Builder ───────────────────────────────────────────────────────
79
+
80
+ /**
81
+ * Build a structured prompt for a sonnet-tier agent to apply the minimal fix
82
+ * for a given MissingConnection.
83
+ *
84
+ * The prompt instructs the agent to:
85
+ * 1. Read the source and target files
86
+ * 2. Apply the minimal fix (add import, register route, add export)
87
+ * 3. Commit with message: wireup: fix <description>
88
+ */
89
+ function buildAutoFixPrompt(issue: MissingConnection): string {
90
+ return [
91
+ `You are applying a minimal code fix to resolve a missing connection.`,
92
+ ``,
93
+ `Issue type: ${issue.issue_type}`,
94
+ `Source file: ${issue.source_file}`,
95
+ `Target file: ${issue.target_file}`,
96
+ ``,
97
+ `Suggested fix:`,
98
+ issue.suggested_fix,
99
+ ``,
100
+ `Instructions:`,
101
+ `1. Read both the source file and the target file.`,
102
+ `2. Apply the minimal fix described above. Do not refactor any existing code.`,
103
+ ` Add only what is needed to resolve the missing connection.`,
104
+ `3. Commit your change with the message: wireup: fix ${issue.issue_type} in ${issue.target_file}`,
105
+ ``,
106
+ `Do not make any changes beyond what is described in the suggested fix.`,
107
+ ].join('\n');
108
+ }
109
+
110
+ // ─── Auto-Fix Attempt ─────────────────────────────────────────────────────────
111
+
112
+ /**
113
+ * Attempt to auto-fix a single MissingConnection.
114
+ *
115
+ * Confidence gate: if issue.confidence !== 'high', returns immediately with
116
+ * fix_status 'skipped' — reRunFn is never called.
117
+ *
118
+ * For high-confidence issues:
119
+ * - Returns the fix prompt and metadata for the orchestrator to act on.
120
+ * - The orchestrator spawns a sonnet-tier subagent using the prompt, then calls
121
+ * reRunFn() to verify the fix.
122
+ * - fix_status is 'verified' if reRunFn returns true, 'failed' otherwise.
123
+ *
124
+ * @param _cwd Working directory (reserved for future state integration)
125
+ * @param issue The missing connection to fix
126
+ * @param reRunFn Callback that re-runs the failed scenario; returns true if it now passes
127
+ */
128
+ async function autoFixIssue(
129
+ _cwd: string,
130
+ issue: MissingConnection,
131
+ reRunFn: () => Promise<boolean>
132
+ ): Promise<FixAttempt> {
133
+ // Confidence gate — only high-confidence issues are auto-fixed
134
+ if (issue.confidence !== 'high') {
135
+ return {
136
+ issue,
137
+ fix_status: 'skipped',
138
+ };
139
+ }
140
+
141
+ const fixDescription = `${issue.issue_type} in ${issue.target_file}`;
142
+
143
+ try {
144
+ // Build fix prompt for orchestrator to pass to the sonnet-tier subagent
145
+ const fixPrompt = buildAutoFixPrompt(issue);
146
+
147
+ const rerunPassed = await reRunFn();
148
+
149
+ return {
150
+ issue,
151
+ fix_status: rerunPassed ? 'verified' : 'failed',
152
+ fix_description: fixDescription,
153
+ rerun_passed: rerunPassed,
154
+ fix_prompt: fixPrompt,
155
+ };
156
+ } catch (err: unknown) {
157
+ const errorMessage = err instanceof Error ? err.message : String(err);
158
+ return {
159
+ issue,
160
+ fix_status: 'failed',
161
+ fix_description: fixDescription,
162
+ rerun_passed: false,
163
+ error: errorMessage,
164
+ };
165
+ }
166
+ }
167
+
168
+ // ─── Partition by Confidence ──────────────────────────────────────────────────
169
+
170
+ /**
171
+ * Split a list of issues into two groups:
172
+ * - High-confidence issues (candidates for auto-fix)
173
+ * - Medium and low confidence issues (manual review required)
174
+ *
175
+ * Returns an AutoFixResult with fixes_applied initially empty (populated by the
176
+ * orchestrator after running autoFixIssue on each high-confidence issue) and
177
+ * requires_manual_review pre-populated with non-high-confidence issues.
178
+ */
179
+ function partitionByConfidence(issues: MissingConnection[]): AutoFixResult & { high_confidence: MissingConnection[] } {
180
+ const requiresManualReview: MissingConnection[] = [];
181
+ const highConfidenceIssues: MissingConnection[] = [];
182
+
183
+ for (const issue of issues) {
184
+ if (issue.confidence === 'high') {
185
+ highConfidenceIssues.push(issue);
186
+ } else {
187
+ requiresManualReview.push(issue);
188
+ }
189
+ }
190
+
191
+ return {
192
+ fixes_applied: [],
193
+ requires_manual_review: requiresManualReview,
194
+ high_confidence: highConfidenceIssues,
195
+ model_used: WIREUP_FIX_MODEL,
196
+ };
197
+ }
198
+
199
+ // ─── Fix Outcome Persistence ──────────────────────────────────────────────────
200
+
201
+ /**
202
+ * Persist a fix attempt outcome to wireup state.
203
+ *
204
+ * Reads WIREUP-STATE.json, appends to fixes_applied counter,
205
+ * then writes the updated state back to disk.
206
+ *
207
+ * No-op if the state file does not exist (graceful degradation).
208
+ *
209
+ * @param cwd Working directory containing .planning/WIREUP-STATE.json
210
+ * @param _scenarioId Scenario ID associated with the fix (for future indexing)
211
+ * @param fixAttempt The FixAttempt to record
212
+ */
213
+ function updateFixOutcome(
214
+ cwd: string,
215
+ _scenarioId: string,
216
+ fixAttempt: FixAttempt
217
+ ): void {
218
+ const state = readWireupState(cwd);
219
+ if (state === null) return;
220
+
221
+ // Only increment fixes_applied for successful (verified) fixes
222
+ const delta = fixAttempt.fix_status === 'verified' ? 1 : 0;
223
+
224
+ const updatedState = {
225
+ ...state,
226
+ fixes_applied: state.fixes_applied + delta,
227
+ timestamp: new Date().toISOString(),
228
+ };
229
+
230
+ writeWireupState(cwd, updatedState);
231
+ }
232
+
233
+ // ─── Exports ──────────────────────────────────────────────────────────────────
234
+
235
+ module.exports = {
236
+ classifyFixConfidence,
237
+ buildAutoFixPrompt,
238
+ autoFixIssue,
239
+ partitionByConfidence,
240
+ updateFixOutcome,
241
+ };
@@ -0,0 +1,278 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * GRD Wireup -- CLI command functions
5
+ *
6
+ * Provides:
7
+ * - cmdInitWireup: pre-flight context builder for /grd:wireup slash command
8
+ * - cmdWireupDiscover: discover unwired features via filesystem analysis
9
+ * - cmdWireupRun: MCP wrapper — runs wireup and outputs JSON only (no human summary)
10
+ * - cmdWireupState: read current wireup iteration state
11
+ * - cmdWireupScenarios: list generated wireup scenarios
12
+ * - cmdWireupReport: get the latest WIREUP-REPORT.md content
13
+ *
14
+ * Follows the cmdInitEvolve / cmdEvolveDiscover / cmdEvolveState patterns
15
+ * from lib/evolve/cli.ts.
16
+ *
17
+ * @dependencies ./types, ./state, ./discovery, ./scenarios, ./orchestrator, ./report,
18
+ * ../utils, ../backend, ../paths
19
+ */
20
+
21
+ import type { WireupState, UnwiredFeature, WireupScenario, WireupOptions } from './types';
22
+ import type { BackendCapabilities, GrdConfig, MilestoneInfo } from '../types';
23
+
24
+ const fs = require('fs');
25
+
26
+ const {
27
+ SONNET_MODEL,
28
+ readWireupState,
29
+ }: {
30
+ SONNET_MODEL: string;
31
+ readWireupState: (cwd: string) => WireupState | null;
32
+ } = require('./state');
33
+
34
+ const {
35
+ discoverUnwiredFeatures,
36
+ }: {
37
+ discoverUnwiredFeatures: (cwd: string) => UnwiredFeature[];
38
+ } = require('./discovery');
39
+
40
+ const {
41
+ generateScenarios,
42
+ }: {
43
+ generateScenarios: (features: UnwiredFeature[], cwd: string) => WireupScenario[];
44
+ } = require('./scenarios');
45
+
46
+ const {
47
+ runWireup,
48
+ }: {
49
+ runWireup: (cwd: string, options?: WireupOptions) => Promise<import('./types').WireupResult>;
50
+ } = require('./orchestrator');
51
+
52
+ const {
53
+ formatReportPath,
54
+ }: {
55
+ formatReportPath: (cwd: string) => string;
56
+ } = require('./report');
57
+
58
+ const {
59
+ loadConfig,
60
+ resolveModelForAgent,
61
+ getMilestoneInfo,
62
+ output,
63
+ }: {
64
+ loadConfig: (cwd: string) => GrdConfig;
65
+ resolveModelForAgent: (config: GrdConfig, agent: string, cwd: string) => string;
66
+ getMilestoneInfo: (cwd: string) => MilestoneInfo;
67
+ output: (result: unknown, raw: boolean, rawValue?: unknown) => never;
68
+ } = require('../utils');
69
+
70
+ const {
71
+ detectBackend,
72
+ getBackendCapabilities,
73
+ }: {
74
+ detectBackend: (cwd: string) => string;
75
+ getBackendCapabilities: (backend: string) => BackendCapabilities;
76
+ } = require('../backend');
77
+
78
+ const {
79
+ planningDir: getPlanningDir,
80
+ }: {
81
+ planningDir: (cwd: string) => string;
82
+ } = require('../paths');
83
+
84
+ // ─── Context Builder ──────────────────────────────────────────────────────────
85
+
86
+ /**
87
+ * Pre-flight context builder for the /grd:wireup slash command.
88
+ *
89
+ * Returns a JSON bundle containing backend, capabilities, models, wireup state,
90
+ * milestone info, and wireup_dir — mirroring the cmdInitEvolve pattern.
91
+ */
92
+ function cmdInitWireup(cwd: string, raw: boolean): void {
93
+ const config: GrdConfig = loadConfig(cwd);
94
+ const backend: string = detectBackend(cwd);
95
+ const capabilities: BackendCapabilities = getBackendCapabilities(backend);
96
+ const wireupState: WireupState | null = readWireupState(cwd);
97
+ const executorModel: string = resolveModelForAgent(config, 'grd-executor', cwd);
98
+ const milestone: MilestoneInfo = getMilestoneInfo(cwd);
99
+ const wireupDir: string = getPlanningDir(cwd);
100
+
101
+ const result = {
102
+ backend,
103
+ capabilities,
104
+ sonnet_model: SONNET_MODEL,
105
+ models: {
106
+ executor: executorModel,
107
+ },
108
+ config: {
109
+ model_profile: config.model_profile || 'balanced',
110
+ autonomous_mode: config.autonomous_mode || false,
111
+ },
112
+ wireup_state: wireupState
113
+ ? {
114
+ exists: true,
115
+ features_discovered: wireupState.features_discovered,
116
+ scenarios_generated: wireupState.scenarios_generated,
117
+ scenarios_passed: wireupState.scenarios_passed,
118
+ scenarios_failed: wireupState.scenarios_failed,
119
+ fixes_applied: wireupState.fixes_applied,
120
+ iteration_count: wireupState.iteration_history.length,
121
+ milestone: wireupState.milestone,
122
+ timestamp: wireupState.timestamp,
123
+ }
124
+ : { exists: false },
125
+ milestone,
126
+ wireup_dir: wireupDir,
127
+ };
128
+
129
+ output(result, raw, raw ? JSON.stringify(result) : undefined);
130
+ // Unreachable — output() calls process.exit()
131
+ }
132
+
133
+ // ─── Sub-Command Wrappers ─────────────────────────────────────────────────────
134
+
135
+ /**
136
+ * Discover unwired features in the project via filesystem analysis.
137
+ * Outputs a list of features grouped by category (exported-but-uncalled,
138
+ * config-without-surface, endpoint-without-integration-test).
139
+ */
140
+ function cmdWireupDiscover(cwd: string, _args: string[], raw: boolean): unknown {
141
+ const features: UnwiredFeature[] = discoverUnwiredFeatures(cwd);
142
+
143
+ const byCategory: Record<string, number> = {};
144
+ for (const f of features) {
145
+ byCategory[f.category] = (byCategory[f.category] ?? 0) + 1;
146
+ }
147
+
148
+ const out = {
149
+ features_found: features.length,
150
+ by_category: byCategory,
151
+ features: features.map((f) => ({
152
+ category: f.category,
153
+ function_name: f.functionName,
154
+ file_path: f.filePath,
155
+ suggested_action: f.suggestedAction,
156
+ })),
157
+ };
158
+
159
+ output(out, raw, raw ? `${features.length} unwired features discovered` : undefined);
160
+ // Unreachable — output() calls process.exit()
161
+ return undefined as never;
162
+ }
163
+
164
+ /**
165
+ * Run a full wireup iteration via MCP — thin wrapper around runWireup().
166
+ *
167
+ * Unlike cmdWireup (orchestrator.ts) which prints a human-readable summary,
168
+ * this outputs only structured JSON — suitable for MCP tool responses.
169
+ */
170
+ async function cmdWireupRun(cwd: string, args: string[], raw: boolean): Promise<unknown> {
171
+ const parsedOptions: WireupOptions = {};
172
+ for (let i = 0; i < args.length; i++) {
173
+ const arg = args[i];
174
+ if (arg === '--target' && args[i + 1]) parsedOptions.target = args[++i];
175
+ else if (arg === '--dry-run') parsedOptions.dryRun = true;
176
+ else if (arg === '--timeout' && args[i + 1]) {
177
+ const t = parseInt(args[++i], 10);
178
+ if (!isNaN(t)) parsedOptions.timeout = t;
179
+ } else if (arg === '--max-turns' && args[i + 1]) {
180
+ const mt = parseInt(args[++i], 10);
181
+ if (!isNaN(mt)) parsedOptions.maxTurns = mt;
182
+ }
183
+ }
184
+ const result = await runWireup(cwd, parsedOptions);
185
+ output(result, raw, raw ? result.pass_fail_summary : undefined);
186
+ return undefined as never;
187
+ }
188
+
189
+ /**
190
+ * Read the current wireup iteration state (features discovered, scenarios, fixes applied).
191
+ */
192
+ function cmdWireupState(cwd: string, _args: string[], raw: boolean): void {
193
+ const state: WireupState | null = readWireupState(cwd);
194
+
195
+ if (state === null) {
196
+ const out = { exists: false, state: null };
197
+ output(out, raw, raw ? 'No wireup state found' : undefined);
198
+ } else {
199
+ const out = { exists: true, state };
200
+ output(out, raw, raw ? JSON.stringify(state) : undefined);
201
+ }
202
+ // Unreachable — output() calls process.exit()
203
+ }
204
+
205
+ /**
206
+ * List generated wireup scenarios for discovered features.
207
+ *
208
+ * Reads persisted state first; falls back to live discovery only if no state exists.
209
+ */
210
+ function cmdWireupScenarios(cwd: string, _args: string[], raw: boolean): void {
211
+ const state = readWireupState(cwd);
212
+
213
+ if (state !== null) {
214
+ const out = {
215
+ scenarios_count: state.scenarios_generated,
216
+ features_count: state.features_discovered,
217
+ source: 'cached' as const,
218
+ milestone: state.milestone,
219
+ };
220
+ output(out, raw, raw ? `${state.scenarios_generated} scenarios for ${state.features_discovered} features (cached)` : undefined);
221
+ return; // Unreachable — output() calls process.exit()
222
+ }
223
+
224
+ const features: UnwiredFeature[] = discoverUnwiredFeatures(cwd);
225
+ const scenarios: WireupScenario[] = generateScenarios(features, cwd);
226
+
227
+ const out = {
228
+ scenarios_count: scenarios.length,
229
+ features_count: features.length,
230
+ source: 'live' as const,
231
+ scenarios: scenarios.map((s) => ({
232
+ feature_function: s.feature.functionName,
233
+ feature_file: s.feature.filePath,
234
+ category: s.feature.category,
235
+ steps_count: s.steps.length,
236
+ test_data_fixture: s.test_data_fixture,
237
+ })),
238
+ };
239
+
240
+ output(out, raw, raw ? `${scenarios.length} scenarios for ${features.length} features` : undefined);
241
+ // Unreachable — output() calls process.exit()
242
+ }
243
+
244
+ /**
245
+ * Get the latest wireup report with pass/fail results and issue summary.
246
+ *
247
+ * Reads WIREUP-REPORT.md from the current milestone wireup directory.
248
+ */
249
+ function cmdWireupReport(cwd: string, _args: string[], raw: boolean): void {
250
+ const reportPath: string = formatReportPath(cwd);
251
+
252
+ let reportContent: string | null = null;
253
+ try {
254
+ reportContent = fs.readFileSync(reportPath, 'utf8') as string;
255
+ } catch {
256
+ // Report doesn't exist yet
257
+ }
258
+
259
+ if (reportContent === null) {
260
+ const out = { exists: false, report_path: reportPath, content: null };
261
+ output(out, raw, raw ? 'No wireup report found' : undefined);
262
+ } else {
263
+ const out = { exists: true, report_path: reportPath, content: reportContent };
264
+ output(out, raw, raw ? reportContent : undefined);
265
+ }
266
+ // Unreachable — output() calls process.exit()
267
+ }
268
+
269
+ // ─── Exports ────────────────────────────────────────────────────────────────
270
+
271
+ module.exports = {
272
+ cmdInitWireup,
273
+ cmdWireupDiscover,
274
+ cmdWireupRun,
275
+ cmdWireupState,
276
+ cmdWireupScenarios,
277
+ cmdWireupReport,
278
+ };