@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,642 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const { safeReadFile } = require('./utils');
6
+ // --- Helpers ------------------------------------------------------------------
7
+ /**
8
+ * Extract the content of a named section from markdown.
9
+ * Returns the text after `## Section Name` until the next `##` heading or end of file.
10
+ * The sectionName may be a regex pattern (e.g., 'missing.?components').
11
+ */
12
+ function extractSection(content, sectionName) {
13
+ const pattern = new RegExp(`(?:^|\\n)#{2,3}\\s+${sectionName}[^\\n]*\\n([\\s\\S]*?)(?=\\n#{2,3}\\s|$)`, 'i');
14
+ const match = content.match(pattern);
15
+ return match ? match[1].trim() : '';
16
+ }
17
+ /**
18
+ * Parse a yes/no/true/false string into a boolean.
19
+ */
20
+ function parseBool(value) {
21
+ const lower = value.trim().toLowerCase();
22
+ return lower === 'yes' || lower === 'true';
23
+ }
24
+ // --- parseMissingComponents ---------------------------------------------------
25
+ /**
26
+ * Parse missing_components section from PAPERS.md content.
27
+ *
28
+ * Supports two formats:
29
+ * Table: | Name | Source Paper | Description | Code Available |
30
+ * List: - **Name**: description (source: paper, code: yes/no)
31
+ *
32
+ * Also supports the plan-specified structured list format:
33
+ * - **name:** ComponentName
34
+ * - source_paper: paper-slug-or-title
35
+ * - description: What the component does
36
+ * - code_available: true|false
37
+ *
38
+ * Returns empty array if no section found or no entries parsed.
39
+ *
40
+ * @param content - Raw markdown content of a PAPERS.md entry
41
+ * @returns Array of MissingComponent objects
42
+ */
43
+ function parseMissingComponents(content) {
44
+ const section = extractSection(content, 'missing.?components');
45
+ if (!section)
46
+ return [];
47
+ const results = [];
48
+ // Table format: | Name | Source Paper | Description | Code Available |
49
+ // Skip header row and separator row (contains ---)
50
+ const tableRowPattern = /^\|([^|]+)\|([^|]+)\|([^|]+)\|([^|]+)\|/gm;
51
+ let tableMatch;
52
+ let hasTableRows = false;
53
+ while ((tableMatch = tableRowPattern.exec(section)) !== null) {
54
+ const name = tableMatch[1].trim();
55
+ const sourcePaper = tableMatch[2].trim();
56
+ const description = tableMatch[3].trim();
57
+ const codeAvailableStr = tableMatch[4].trim();
58
+ // Skip header/separator rows
59
+ if (name.toLowerCase() === 'name' || /^[-\s]+$/.test(name))
60
+ continue;
61
+ hasTableRows = true;
62
+ results.push({
63
+ name,
64
+ source_paper: sourcePaper,
65
+ description,
66
+ code_available: parseBool(codeAvailableStr),
67
+ });
68
+ }
69
+ if (hasTableRows)
70
+ return results;
71
+ // Structured list format:
72
+ // - **name:** ComponentName
73
+ // - source_paper: paper-slug
74
+ // - description: text
75
+ // - code_available: true/false
76
+ const structuredBlockPattern = /^-\s+\*\*name:\*\*\s+(.+)\n(?:\s+-\s+source_paper:\s+(.+)\n)?(?:\s+-\s+description:\s+(.+)\n)?(?:\s+-\s+code_available:\s+(.+))?/gim;
77
+ let structuredMatch;
78
+ let hasStructured = false;
79
+ while ((structuredMatch = structuredBlockPattern.exec(section)) !== null) {
80
+ hasStructured = true;
81
+ results.push({
82
+ name: structuredMatch[1].trim(),
83
+ source_paper: structuredMatch[2] ? structuredMatch[2].trim() : '',
84
+ description: structuredMatch[3] ? structuredMatch[3].trim() : '',
85
+ code_available: structuredMatch[4] ? parseBool(structuredMatch[4]) : false,
86
+ });
87
+ }
88
+ if (hasStructured)
89
+ return results;
90
+ // Inline list format: - **Name**: description (source: paper, code: yes/no)
91
+ const listPattern = /^-\s+\*\*([^*]+)\*\*\s*:\s*([^(]+)\(source:\s*([^,]+),\s*code:\s*([^)]+)\)/gm;
92
+ let listMatch;
93
+ while ((listMatch = listPattern.exec(section)) !== null) {
94
+ results.push({
95
+ name: listMatch[1].trim(),
96
+ source_paper: listMatch[3].trim(),
97
+ description: listMatch[2].trim(),
98
+ code_available: parseBool(listMatch[4]),
99
+ });
100
+ }
101
+ return results;
102
+ }
103
+ // --- parseBorrowedComponents --------------------------------------------------
104
+ /**
105
+ * Parse borrowed_components section from PAPERS.md content.
106
+ *
107
+ * Supports two formats:
108
+ * Table: | Name | Source Paper | Description |
109
+ * List: - **Name**: description (source: paper)
110
+ *
111
+ * The code_available field is not relevant for borrowed components.
112
+ * Returns empty array if no section found or no entries parsed.
113
+ *
114
+ * @param content - Raw markdown content of a PAPERS.md entry
115
+ * @returns Array of BorrowedComponent objects
116
+ */
117
+ function parseBorrowedComponents(content) {
118
+ const section = extractSection(content, 'borrowed.?components');
119
+ if (!section)
120
+ return [];
121
+ const results = [];
122
+ // Table format: | Name | Source Paper | Description |
123
+ const tableRowPattern = /^\|([^|]+)\|([^|]+)\|([^|]+)\|/gm;
124
+ let tableMatch;
125
+ let hasTableRows = false;
126
+ while ((tableMatch = tableRowPattern.exec(section)) !== null) {
127
+ const name = tableMatch[1].trim();
128
+ const sourcePaper = tableMatch[2].trim();
129
+ const description = tableMatch[3].trim();
130
+ if (name.toLowerCase() === 'name' || /^[-\s]+$/.test(name))
131
+ continue;
132
+ hasTableRows = true;
133
+ results.push({ name, source_paper: sourcePaper, description });
134
+ }
135
+ if (hasTableRows)
136
+ return results;
137
+ // Structured list format:
138
+ // - **name:** ComponentName
139
+ // - source_paper: paper-slug
140
+ // - description: text
141
+ const structuredBlockPattern = /^-\s+\*\*name:\*\*\s+(.+)\n(?:\s+-\s+source_paper:\s+(.+)\n)?(?:\s+-\s+description:\s+(.+))?/gim;
142
+ let structuredMatch;
143
+ let hasStructured = false;
144
+ while ((structuredMatch = structuredBlockPattern.exec(section)) !== null) {
145
+ hasStructured = true;
146
+ results.push({
147
+ name: structuredMatch[1].trim(),
148
+ source_paper: structuredMatch[2] ? structuredMatch[2].trim() : '',
149
+ description: structuredMatch[3] ? structuredMatch[3].trim() : '',
150
+ });
151
+ }
152
+ if (hasStructured)
153
+ return results;
154
+ // Inline list format: - **Name**: description (source: paper)
155
+ const listPattern = /^-\s+\*\*([^*]+)\*\*\s*:\s*([^(]+)\(source:\s*([^,)]+)[^)]*\)/gm;
156
+ let listMatch;
157
+ while ((listMatch = listPattern.exec(section)) !== null) {
158
+ results.push({
159
+ name: listMatch[1].trim(),
160
+ source_paper: listMatch[3].trim(),
161
+ description: listMatch[2].trim(),
162
+ });
163
+ }
164
+ return results;
165
+ }
166
+ // --- buildCitationGraph -------------------------------------------------------
167
+ /**
168
+ * Read all .md files in papersDir and build a typed CitationGraph.
169
+ *
170
+ * For each file:
171
+ * - Extracts the paper slug from the filename (without .md extension)
172
+ * - Parses missing_components and borrowed_components sections
173
+ * - Creates CitationNode entries for the paper itself and all referenced papers
174
+ * - Creates CitationEdge entries for each dependency relationship
175
+ * - Writes per-paper JSON to {papersDir}/../citations/{paper-slug}.json
176
+ *
177
+ * Priority escalation: MissingComponent with code_available=false => dep node priority='critical'
178
+ * All nodes start with resolved=false.
179
+ * Returns a graph with empty arrays when the directory is empty or missing.
180
+ *
181
+ * @param papersDir - Absolute or relative path to directory containing .md files
182
+ * @returns CitationGraph with nodes, edges, and built_at ISO timestamp
183
+ */
184
+ function buildCitationGraph(papersDir) {
185
+ const built_at = new Date().toISOString();
186
+ // Handle missing or non-directory paths gracefully
187
+ if (!fs.existsSync(papersDir)) {
188
+ return { nodes: [], edges: [], built_at };
189
+ }
190
+ let files;
191
+ try {
192
+ const entries = fs.readdirSync(papersDir);
193
+ files = entries.filter((f) => f.endsWith('.md'));
194
+ }
195
+ catch {
196
+ return { nodes: [], edges: [], built_at };
197
+ }
198
+ if (files.length === 0) {
199
+ return { nodes: [], edges: [], built_at };
200
+ }
201
+ // Track nodes by slug to avoid duplicates; edges are collected in order
202
+ const nodeMap = new Map();
203
+ const edges = [];
204
+ /**
205
+ * Ensure a node exists for slug. Escalates priority to 'critical' if needed.
206
+ * Merges component arrays for the primary paper node.
207
+ */
208
+ function ensureNode(slug, priority = 'normal', missing = [], borrowed = []) {
209
+ if (!nodeMap.has(slug)) {
210
+ nodeMap.set(slug, {
211
+ slug,
212
+ title: slug,
213
+ resolved: false,
214
+ priority,
215
+ technique_summary: '',
216
+ missing_components: missing,
217
+ borrowed_components: borrowed,
218
+ });
219
+ }
220
+ else {
221
+ const existing = nodeMap.get(slug);
222
+ if (priority === 'critical') {
223
+ existing.priority = 'critical';
224
+ }
225
+ // Merge component arrays when the primary paper node is registered
226
+ if (missing.length > 0)
227
+ existing.missing_components = missing;
228
+ if (borrowed.length > 0)
229
+ existing.borrowed_components = borrowed;
230
+ }
231
+ }
232
+ for (const file of files) {
233
+ const slug = path.basename(file, '.md');
234
+ const filePath = path.join(papersDir, file);
235
+ // Use safeReadFile for reading; fall back to empty string on null
236
+ const raw = safeReadFile(filePath);
237
+ const content = raw !== null ? raw : '';
238
+ const missing = parseMissingComponents(content);
239
+ const borrowed = parseBorrowedComponents(content);
240
+ ensureNode(slug, 'normal', missing, borrowed);
241
+ for (const component of missing) {
242
+ const depSlug = component.source_paper;
243
+ const depPriority = component.code_available ? 'normal' : 'critical';
244
+ ensureNode(depSlug, depPriority);
245
+ edges.push({
246
+ from_slug: slug,
247
+ to_slug: depSlug,
248
+ type: 'missing',
249
+ component_name: component.name,
250
+ });
251
+ }
252
+ for (const component of borrowed) {
253
+ const depSlug = component.source_paper;
254
+ ensureNode(depSlug, 'normal');
255
+ edges.push({
256
+ from_slug: slug,
257
+ to_slug: depSlug,
258
+ type: 'borrowed',
259
+ component_name: component.name,
260
+ });
261
+ }
262
+ }
263
+ const graph = {
264
+ nodes: Array.from(nodeMap.values()),
265
+ edges,
266
+ built_at,
267
+ };
268
+ // Write per-paper JSON to {papersDir}/../citations/{paper-slug}.json
269
+ const citationsDir = path.join(papersDir, '..', 'citations');
270
+ try {
271
+ fs.mkdirSync(citationsDir, { recursive: true });
272
+ for (const node of graph.nodes) {
273
+ const jsonPath = path.join(citationsDir, `${node.slug}.json`);
274
+ fs.writeFileSync(jsonPath, JSON.stringify(node, null, 2), 'utf-8');
275
+ }
276
+ }
277
+ catch {
278
+ // Non-fatal: if we cannot write JSON, still return the complete graph
279
+ }
280
+ return graph;
281
+ }
282
+ // --- resolveCitations ---------------------------------------------------------
283
+ /**
284
+ * Default fetch function using Node's built-in https module.
285
+ * Returns the response body as a string, or null on any error.
286
+ */
287
+ function defaultFetchFn(url, _timeoutMs) {
288
+ return new Promise((resolve) => {
289
+ const https = require('https');
290
+ const http = require('http');
291
+ const parsed = new URL(url);
292
+ const transport = parsed.protocol === 'https:' ? https : http;
293
+ try {
294
+ const req = transport.get(url, (res) => {
295
+ if (!res.statusCode || res.statusCode < 200 || res.statusCode >= 300) {
296
+ resolve(null);
297
+ return;
298
+ }
299
+ const chunks = [];
300
+ res.on('data', (chunk) => chunks.push(chunk));
301
+ res.on('end', () => resolve(Buffer.concat(chunks).toString('utf-8')));
302
+ res.on('error', () => resolve(null));
303
+ });
304
+ req.on('error', () => resolve(null));
305
+ req.setTimeout(_timeoutMs, () => {
306
+ req.destroy();
307
+ resolve(null);
308
+ });
309
+ }
310
+ catch {
311
+ resolve(null);
312
+ }
313
+ });
314
+ }
315
+ /**
316
+ * Extract a text summary from an arXiv Atom XML response.
317
+ * Returns the first 200 chars of the summary element, or null.
318
+ */
319
+ function extractArxivSummary(xml) {
320
+ const match = xml.match(/<summary[^>]*>([\s\S]*?)<\/summary>/i);
321
+ if (!match)
322
+ return null;
323
+ const text = match[1].replace(/\s+/g, ' ').trim();
324
+ return text ? text.slice(0, 200) : null;
325
+ }
326
+ /**
327
+ * Extract a text abstract from a Semantic Scholar JSON response.
328
+ * Returns the first 200 chars of the abstract field, or null.
329
+ */
330
+ function extractSemanticAbstract(json) {
331
+ try {
332
+ const data = JSON.parse(json);
333
+ // Response is { data: [ { title, abstract, ... } ] }
334
+ const dataArr = Array.isArray(data.data) ? data.data : null;
335
+ if (dataArr && dataArr.length > 0) {
336
+ const abstract = dataArr[0].abstract;
337
+ if (typeof abstract === 'string' && abstract.trim()) {
338
+ return abstract.slice(0, 200);
339
+ }
340
+ }
341
+ }
342
+ catch {
343
+ // not valid JSON
344
+ }
345
+ return null;
346
+ }
347
+ /**
348
+ * Iterate over unresolved CitationNodes and attempt to fetch metadata from
349
+ * arXiv and/or Semantic Scholar APIs.
350
+ *
351
+ * Accepts an optional fetchFn for dependency injection (enables mocking in tests).
352
+ * The default fetchFn uses Node's built-in https.get.
353
+ *
354
+ * @param graph - The CitationGraph to update (mutated in place)
355
+ * @param apiConfig - Controls which APIs are queried and timeout behaviour
356
+ * @param fetchFn - Optional injectable fetch function for testing
357
+ * @returns The updated CitationGraph (same reference as input)
358
+ */
359
+ async function resolveCitations(graph, apiConfig, fetchFn) {
360
+ const fetch = fetchFn ?? defaultFetchFn;
361
+ const timeoutMs = apiConfig.timeout_ms ?? 5000;
362
+ for (const node of graph.nodes) {
363
+ if (node.resolved)
364
+ continue;
365
+ const titleEncoded = encodeURIComponent(node.title);
366
+ let summary = null;
367
+ if (apiConfig.arxiv_enabled) {
368
+ const arxivUrl = `https://export.arxiv.org/api/query?search_query=ti:${titleEncoded}&max_results=1`;
369
+ try {
370
+ const body = await fetch(arxivUrl, timeoutMs);
371
+ if (body) {
372
+ summary = extractArxivSummary(body);
373
+ }
374
+ }
375
+ catch {
376
+ // non-fatal
377
+ }
378
+ }
379
+ if (!summary && apiConfig.semantic_scholar_enabled) {
380
+ const ssUrl = `https://api.semanticscholar.org/graph/v1/paper/search?query=${titleEncoded}&limit=1`;
381
+ try {
382
+ const body = await fetch(ssUrl, timeoutMs);
383
+ if (body) {
384
+ summary = extractSemanticAbstract(body);
385
+ }
386
+ }
387
+ catch {
388
+ // non-fatal
389
+ }
390
+ }
391
+ if (summary !== null) {
392
+ node.resolved = true;
393
+ node.technique_summary = summary;
394
+ }
395
+ }
396
+ return graph;
397
+ }
398
+ // --- findUnresolved -----------------------------------------------------------
399
+ /**
400
+ * Return all unresolved CitationNodes in the graph.
401
+ * If priority is provided, only nodes with that priority are returned.
402
+ *
403
+ * @param graph - The CitationGraph to search
404
+ * @param priority - Optional priority filter ('critical' | 'normal' | 'low')
405
+ * @returns Array of CitationNode objects where resolved is false
406
+ */
407
+ function findUnresolved(graph, priority) {
408
+ return graph.nodes.filter((node) => {
409
+ if (node.resolved)
410
+ return false;
411
+ if (priority !== undefined)
412
+ return node.priority === priority;
413
+ return true;
414
+ });
415
+ }
416
+ // --- traverseCitationGraph ---------------------------------------------------
417
+ /**
418
+ * Perform BFS traversal of the citation graph from all root nodes (nodes with
419
+ * no incoming edges), respecting depth and node-count limits.
420
+ *
421
+ * Cycle detection: tracks visited slugs in a Set; any slug already visited is
422
+ * skipped, preventing infinite loops on circular citation chains.
423
+ *
424
+ * Limits:
425
+ * - max_depth: BFS depth from root nodes. Nodes at this depth are visited but
426
+ * their children are not enqueued.
427
+ * - max_nodes: Total node visit cap. Processing halts once total_visited
428
+ * reaches this limit.
429
+ *
430
+ * Unresolved leaves: A node with no outgoing edges in the adjacency map and
431
+ * resolved=false is added to unresolved_leaves.
432
+ *
433
+ * @param graph - The CitationGraph to traverse
434
+ * @param options - Optional partial TraversalOptions (merged with defaults)
435
+ * @returns TraversalResult with visited nodes, traversed edges, and statistics
436
+ */
437
+ function traverseCitationGraph(graph, options) {
438
+ const opts = {
439
+ max_depth: options?.max_depth ?? 3,
440
+ max_nodes: options?.max_nodes ?? 50,
441
+ };
442
+ const emptyResult = {
443
+ visited_nodes: [],
444
+ edges_traversed: [],
445
+ unresolved_leaves: [],
446
+ depth_reached: 0,
447
+ total_visited: 0,
448
+ };
449
+ if (graph.nodes.length === 0) {
450
+ return emptyResult;
451
+ }
452
+ // Build adjacency map: slug → outgoing edges
453
+ const adjacency = new Map();
454
+ for (const edge of graph.edges) {
455
+ if (!adjacency.has(edge.from_slug)) {
456
+ adjacency.set(edge.from_slug, []);
457
+ }
458
+ adjacency.get(edge.from_slug).push(edge);
459
+ }
460
+ // Build node lookup map: slug → CitationNode
461
+ const nodeMap = new Map();
462
+ for (const node of graph.nodes) {
463
+ nodeMap.set(node.slug, node);
464
+ }
465
+ // Find root nodes: nodes that appear as from_slug but never as to_slug
466
+ // (i.e., have no incoming edges). If all nodes have incoming edges (e.g., cycle),
467
+ // treat all nodes as roots to avoid empty traversal.
468
+ const hasIncoming = new Set();
469
+ for (const edge of graph.edges) {
470
+ hasIncoming.add(edge.to_slug);
471
+ }
472
+ const rootNodes = graph.nodes.filter((n) => !hasIncoming.has(n.slug));
473
+ const seeds = rootNodes.length > 0 ? rootNodes : graph.nodes;
474
+ // BFS
475
+ const visited = new Set();
476
+ const visitedNodes = [];
477
+ const edgesTraversed = [];
478
+ const unresolvedLeaves = [];
479
+ let depthReached = 0;
480
+ let totalVisited = 0;
481
+ const queue = [];
482
+ for (const seed of seeds) {
483
+ if (!visited.has(seed.slug)) {
484
+ visited.add(seed.slug);
485
+ queue.push({ node: seed, depth: 0 });
486
+ }
487
+ }
488
+ let qi = 0;
489
+ while (qi < queue.length) {
490
+ if (totalVisited >= opts.max_nodes)
491
+ break;
492
+ const { node, depth } = queue[qi++];
493
+ visitedNodes.push(node);
494
+ totalVisited++;
495
+ if (depth > depthReached)
496
+ depthReached = depth;
497
+ if (totalVisited >= opts.max_nodes)
498
+ break;
499
+ const outgoing = adjacency.get(node.slug) ?? [];
500
+ // Check if leaf (no outgoing edges)
501
+ if (outgoing.length === 0 && !node.resolved) {
502
+ unresolvedLeaves.push(node);
503
+ }
504
+ // If at max depth, do not enqueue children
505
+ if (depth >= opts.max_depth)
506
+ continue;
507
+ for (const edge of outgoing) {
508
+ const targetNode = nodeMap.get(edge.to_slug);
509
+ if (!targetNode)
510
+ continue;
511
+ if (visited.has(edge.to_slug))
512
+ continue;
513
+ if (totalVisited + (queue.length - qi) >= opts.max_nodes) {
514
+ // Approximate cap: stop enqueuing if we're near the limit
515
+ // (exact cap enforced at dequeue time above)
516
+ }
517
+ visited.add(edge.to_slug);
518
+ edgesTraversed.push(edge);
519
+ queue.push({ node: targetNode, depth: depth + 1 });
520
+ }
521
+ }
522
+ return {
523
+ visited_nodes: visitedNodes,
524
+ edges_traversed: edgesTraversed,
525
+ unresolved_leaves: unresolvedLeaves,
526
+ depth_reached: depthReached,
527
+ total_visited: totalVisited,
528
+ };
529
+ }
530
+ // --- resolveTransitiveDeps ---------------------------------------------------
531
+ /**
532
+ * Expand a CitationGraph by performing BFS traversal and merging all
533
+ * transitively discovered nodes and edges into the graph.
534
+ *
535
+ * Deduplication:
536
+ * - Nodes: only added if their slug is not already in graph.nodes
537
+ * - Edges: only added if not already present (keyed by from_slug + to_slug + component_name)
538
+ *
539
+ * Returns a new CitationGraph (does not mutate the input).
540
+ *
541
+ * @param graph - The CitationGraph to expand
542
+ * @param options - Optional partial TraversalOptions passed to traverseCitationGraph
543
+ * @returns A new CitationGraph with merged transitive nodes and edges
544
+ */
545
+ function resolveTransitiveDeps(graph, options) {
546
+ const result = traverseCitationGraph(graph, options);
547
+ // Build set of existing node slugs
548
+ const existingSlugs = new Set(graph.nodes.map((n) => n.slug));
549
+ // Merge new nodes (not already in graph)
550
+ const newNodes = result.visited_nodes.filter((n) => !existingSlugs.has(n.slug));
551
+ const mergedNodes = [...graph.nodes, ...newNodes];
552
+ // Build set of existing edge keys for deduplication
553
+ const edgeKey = (e) => `${e.from_slug}::${e.to_slug}::${e.component_name}`;
554
+ const existingEdgeKeys = new Set(graph.edges.map(edgeKey));
555
+ // Merge new edges
556
+ const newEdges = result.edges_traversed.filter((e) => !existingEdgeKeys.has(edgeKey(e)));
557
+ const mergedEdges = [...graph.edges, ...newEdges];
558
+ return {
559
+ nodes: mergedNodes,
560
+ edges: mergedEdges,
561
+ built_at: new Date().toISOString(),
562
+ };
563
+ }
564
+ // --- fetchExternalPaper -------------------------------------------------------
565
+ /**
566
+ * Attempt to auto-retrieve metadata for a single paper slug from external APIs.
567
+ *
568
+ * Uses arXiv-first, Semantic Scholar-fallback strategy (same as resolveCitations),
569
+ * but operates on a single slug rather than iterating over a graph.
570
+ *
571
+ * Accepts an optional fetchFn for dependency injection (enables mocking in tests).
572
+ * The default fetchFn uses Node's built-in https.get with a 5-second timeout.
573
+ *
574
+ * On success: returns a CitationNode with resolved=true and technique_summary populated.
575
+ * On failure (both APIs return null): writes a warning to stderr and returns null.
576
+ * Any thrown error is caught and returns null.
577
+ *
578
+ * @param slug - Paper slug to look up (used as query title)
579
+ * @param fetchFn - Optional injectable fetch function for testing
580
+ * @returns CitationNode with resolved=true on success, null on failure
581
+ */
582
+ async function fetchExternalPaper(slug, fetchFn) {
583
+ const fetch = fetchFn ?? defaultFetchFn;
584
+ const timeoutMs = 5000;
585
+ try {
586
+ const slugEncoded = encodeURIComponent(slug);
587
+ let summary = null;
588
+ // arXiv-first: search by title
589
+ const arxivUrl = `https://export.arxiv.org/api/query?search_query=ti:${slugEncoded}&max_results=1`;
590
+ try {
591
+ const body = await fetch(arxivUrl, timeoutMs);
592
+ if (body) {
593
+ summary = extractArxivSummary(body);
594
+ }
595
+ }
596
+ catch {
597
+ // non-fatal
598
+ }
599
+ // Semantic Scholar fallback: only if arXiv returned no summary
600
+ if (summary === null) {
601
+ const ssUrl = `https://api.semanticscholar.org/graph/v1/paper/search?query=${slugEncoded}&limit=1`;
602
+ try {
603
+ const body = await fetch(ssUrl, timeoutMs);
604
+ if (body) {
605
+ summary = extractSemanticAbstract(body);
606
+ }
607
+ }
608
+ catch {
609
+ // non-fatal
610
+ }
611
+ }
612
+ if (summary !== null) {
613
+ return {
614
+ slug,
615
+ title: slug,
616
+ resolved: true,
617
+ priority: 'normal',
618
+ technique_summary: summary,
619
+ missing_components: [],
620
+ borrowed_components: [],
621
+ };
622
+ }
623
+ // Both APIs failed — warn and return null
624
+ process.stderr.write(`[grd] WARNING: fetchExternalPaper: could not resolve "${slug}" from arXiv or Semantic Scholar\n`);
625
+ return null;
626
+ }
627
+ catch {
628
+ return null;
629
+ }
630
+ }
631
+ // --- Exports -----------------------------------------------------------------
632
+ module.exports = {
633
+ parseMissingComponents,
634
+ parseBorrowedComponents,
635
+ buildCitationGraph,
636
+ resolveCitations,
637
+ findUnresolved,
638
+ traverseCitationGraph,
639
+ resolveTransitiveDeps,
640
+ fetchExternalPaper,
641
+ };
642
+ //# sourceMappingURL=citations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../lib/citations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../lib/cleanup.ts"],"names":[],"mappings":""}