@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.
- package/.claude-plugin/plugin.json +103 -0
- package/README.md +211 -0
- package/agents/grd-baseline-assessor.md +684 -0
- package/agents/grd-code-reviewer.md +300 -0
- package/agents/grd-codebase-mapper.md +355 -0
- package/agents/grd-critique-agent.md +119 -0
- package/agents/grd-debugger.md +519 -0
- package/agents/grd-deep-diver.md +737 -0
- package/agents/grd-eval-planner.md +913 -0
- package/agents/grd-eval-reporter.md +717 -0
- package/agents/grd-executor.md +683 -0
- package/agents/grd-feasibility-analyst.md +624 -0
- package/agents/grd-integration-checker.md +367 -0
- package/agents/grd-knowledge-miner.md +81 -0
- package/agents/grd-migrator.md +88 -0
- package/agents/grd-phase-researcher.md +697 -0
- package/agents/grd-plan-checker.md +443 -0
- package/agents/grd-planner.md +1532 -0
- package/agents/grd-product-owner.md +562 -0
- package/agents/grd-project-researcher.md +513 -0
- package/agents/grd-research-synthesizer.md +273 -0
- package/agents/grd-roadmapper.md +798 -0
- package/agents/grd-surveyor.md +566 -0
- package/agents/grd-verifier.md +893 -0
- package/bin/gd.js +4 -0
- package/bin/gd.ts +227 -0
- package/bin/grd-manifest.js +4 -0
- package/bin/grd-manifest.ts +286 -0
- package/bin/grd-mcp-server.js +4 -0
- package/bin/grd-mcp-server.ts +124 -0
- package/bin/grd-tools.js +4 -0
- package/bin/grd-tools.ts +2471 -0
- package/bin/postinstall.js +4 -0
- package/bin/postinstall.ts +80 -0
- package/commands/add-phase.md +123 -0
- package/commands/add-todo.md +87 -0
- package/commands/assess-baseline.md +289 -0
- package/commands/autopilot.md +100 -0
- package/commands/autoplan.md +55 -0
- package/commands/check-todos.md +87 -0
- package/commands/compare-methods.md +262 -0
- package/commands/complete-milestone.md +225 -0
- package/commands/debug.md +372 -0
- package/commands/deep-dive.md +288 -0
- package/commands/discover.md +281 -0
- package/commands/discuss-phase.md +188 -0
- package/commands/discuss.md +55 -0
- package/commands/eval-report.md +310 -0
- package/commands/evolve.md +79 -0
- package/commands/execute-phase.md +1017 -0
- package/commands/feasibility.md +292 -0
- package/commands/help.md +407 -0
- package/commands/init.md +1508 -0
- package/commands/insert-phase.md +113 -0
- package/commands/iterate.md +327 -0
- package/commands/list-phase-assumptions.md +217 -0
- package/commands/long-term-roadmap.md +202 -0
- package/commands/map-codebase.md +111 -0
- package/commands/migrate.md +159 -0
- package/commands/new-milestone.md +169 -0
- package/commands/pause-work.md +83 -0
- package/commands/plan-milestone-gaps.md +373 -0
- package/commands/plan-phase.md +655 -0
- package/commands/principles.md +328 -0
- package/commands/product-plan.md +319 -0
- package/commands/progress.md +481 -0
- package/commands/quick.md +167 -0
- package/commands/reapply-patches.md +154 -0
- package/commands/remove-phase.md +97 -0
- package/commands/requirement.md +96 -0
- package/commands/resume-project.md +113 -0
- package/commands/settings.md +1144 -0
- package/commands/survey.md +242 -0
- package/commands/sync.md +246 -0
- package/commands/tracker-setup.md +322 -0
- package/commands/update.md +202 -0
- package/commands/verify-phase.md +335 -0
- package/commands/verify-work.md +701 -0
- package/commands/wireup.md +29 -0
- package/dist/bin/gd.d.ts +3 -0
- package/dist/bin/gd.d.ts.map +1 -0
- package/dist/bin/gd.js +178 -0
- package/dist/bin/gd.js.map +1 -0
- package/dist/bin/grd-manifest.d.ts +3 -0
- package/dist/bin/grd-manifest.d.ts.map +1 -0
- package/dist/bin/grd-manifest.js +202 -0
- package/dist/bin/grd-manifest.js.map +1 -0
- package/dist/bin/grd-mcp-server.d.ts +3 -0
- package/dist/bin/grd-mcp-server.d.ts.map +1 -0
- package/dist/bin/grd-mcp-server.js +71 -0
- package/dist/bin/grd-mcp-server.js.map +1 -0
- package/dist/bin/grd-tools.d.ts +3 -0
- package/dist/bin/grd-tools.d.ts.map +1 -0
- package/dist/bin/grd-tools.js +1680 -0
- package/dist/bin/grd-tools.js.map +1 -0
- package/dist/bin/postinstall.d.ts +3 -0
- package/dist/bin/postinstall.d.ts.map +1 -0
- package/dist/bin/postinstall.js +61 -0
- package/dist/bin/postinstall.js.map +1 -0
- package/dist/lib/autopilot-milestone.d.ts +2 -0
- package/dist/lib/autopilot-milestone.d.ts.map +1 -0
- package/dist/lib/autopilot-milestone.js +94 -0
- package/dist/lib/autopilot-milestone.js.map +1 -0
- package/dist/lib/autopilot-pipeline.d.ts +2 -0
- package/dist/lib/autopilot-pipeline.d.ts.map +1 -0
- package/dist/lib/autopilot-pipeline.js +830 -0
- package/dist/lib/autopilot-pipeline.js.map +1 -0
- package/dist/lib/autopilot-waves.d.ts +2 -0
- package/dist/lib/autopilot-waves.d.ts.map +1 -0
- package/dist/lib/autopilot-waves.js +266 -0
- package/dist/lib/autopilot-waves.js.map +1 -0
- package/dist/lib/autopilot.d.ts +2 -0
- package/dist/lib/autopilot.d.ts.map +1 -0
- package/dist/lib/autopilot.js +1314 -0
- package/dist/lib/autopilot.js.map +1 -0
- package/dist/lib/autoplan.d.ts +2 -0
- package/dist/lib/autoplan.d.ts.map +1 -0
- package/dist/lib/autoplan.js +198 -0
- package/dist/lib/autoplan.js.map +1 -0
- package/dist/lib/autoresearch.d.ts +2 -0
- package/dist/lib/autoresearch.d.ts.map +1 -0
- package/dist/lib/autoresearch.js +626 -0
- package/dist/lib/autoresearch.js.map +1 -0
- package/dist/lib/backend.d.ts +2 -0
- package/dist/lib/backend.d.ts.map +1 -0
- package/dist/lib/backend.js +1036 -0
- package/dist/lib/backend.js.map +1 -0
- package/dist/lib/benchmark.d.ts +99 -0
- package/dist/lib/benchmark.d.ts.map +1 -0
- package/dist/lib/benchmark.js +278 -0
- package/dist/lib/benchmark.js.map +1 -0
- package/dist/lib/citations.d.ts +2 -0
- package/dist/lib/citations.d.ts.map +1 -0
- package/dist/lib/citations.js +642 -0
- package/dist/lib/citations.js.map +1 -0
- package/dist/lib/cleanup.d.ts +2 -0
- package/dist/lib/cleanup.d.ts.map +1 -0
- package/dist/lib/cleanup.js +1222 -0
- package/dist/lib/cleanup.js.map +1 -0
- package/dist/lib/cli/adapters.d.ts +10 -0
- package/dist/lib/cli/adapters.d.ts.map +1 -0
- package/dist/lib/cli/adapters.js +27 -0
- package/dist/lib/cli/adapters.js.map +1 -0
- package/dist/lib/cli/agent.d.ts +17 -0
- package/dist/lib/cli/agent.d.ts.map +1 -0
- package/dist/lib/cli/agent.js +53 -0
- package/dist/lib/cli/agent.js.map +1 -0
- package/dist/lib/cli/index.d.ts +21 -0
- package/dist/lib/cli/index.d.ts.map +1 -0
- package/dist/lib/cli/index.js +264 -0
- package/dist/lib/cli/index.js.map +1 -0
- package/dist/lib/cli/output.d.ts +20 -0
- package/dist/lib/cli/output.d.ts.map +1 -0
- package/dist/lib/cli/output.js +22 -0
- package/dist/lib/cli/output.js.map +1 -0
- package/dist/lib/cli/scan-dispatch.d.ts +9 -0
- package/dist/lib/cli/scan-dispatch.d.ts.map +1 -0
- package/dist/lib/cli/scan-dispatch.js +107 -0
- package/dist/lib/cli/scan-dispatch.js.map +1 -0
- package/dist/lib/cli/tools.d.ts +16 -0
- package/dist/lib/cli/tools.d.ts.map +1 -0
- package/dist/lib/cli/tools.js +168 -0
- package/dist/lib/cli/tools.js.map +1 -0
- package/dist/lib/commands/_dashboard-parsers.d.ts +2 -0
- package/dist/lib/commands/_dashboard-parsers.d.ts.map +1 -0
- package/dist/lib/commands/_dashboard-parsers.js +192 -0
- package/dist/lib/commands/_dashboard-parsers.js.map +1 -0
- package/dist/lib/commands/analysis.d.ts +2 -0
- package/dist/lib/commands/analysis.d.ts.map +1 -0
- package/dist/lib/commands/analysis.js +1418 -0
- package/dist/lib/commands/analysis.js.map +1 -0
- package/dist/lib/commands/assumptions.d.ts +2 -0
- package/dist/lib/commands/assumptions.d.ts.map +1 -0
- package/dist/lib/commands/assumptions.js +166 -0
- package/dist/lib/commands/assumptions.js.map +1 -0
- package/dist/lib/commands/blame.d.ts +2 -0
- package/dist/lib/commands/blame.d.ts.map +1 -0
- package/dist/lib/commands/blame.js +133 -0
- package/dist/lib/commands/blame.js.map +1 -0
- package/dist/lib/commands/budget.d.ts +2 -0
- package/dist/lib/commands/budget.d.ts.map +1 -0
- package/dist/lib/commands/budget.js +100 -0
- package/dist/lib/commands/budget.js.map +1 -0
- package/dist/lib/commands/check-plans.d.ts +2 -0
- package/dist/lib/commands/check-plans.d.ts.map +1 -0
- package/dist/lib/commands/check-plans.js +190 -0
- package/dist/lib/commands/check-plans.js.map +1 -0
- package/dist/lib/commands/config.d.ts +2 -0
- package/dist/lib/commands/config.d.ts.map +1 -0
- package/dist/lib/commands/config.js +188 -0
- package/dist/lib/commands/config.js.map +1 -0
- package/dist/lib/commands/dashboard.d.ts +2 -0
- package/dist/lib/commands/dashboard.d.ts.map +1 -0
- package/dist/lib/commands/dashboard.js +466 -0
- package/dist/lib/commands/dashboard.js.map +1 -0
- package/dist/lib/commands/estimate.d.ts +2 -0
- package/dist/lib/commands/estimate.d.ts.map +1 -0
- package/dist/lib/commands/estimate.js +148 -0
- package/dist/lib/commands/estimate.js.map +1 -0
- package/dist/lib/commands/eval-diff.d.ts +2 -0
- package/dist/lib/commands/eval-diff.d.ts.map +1 -0
- package/dist/lib/commands/eval-diff.js +213 -0
- package/dist/lib/commands/eval-diff.js.map +1 -0
- package/dist/lib/commands/freshness.d.ts +2 -0
- package/dist/lib/commands/freshness.d.ts.map +1 -0
- package/dist/lib/commands/freshness.js +163 -0
- package/dist/lib/commands/freshness.js.map +1 -0
- package/dist/lib/commands/health.d.ts +2 -0
- package/dist/lib/commands/health.d.ts.map +1 -0
- package/dist/lib/commands/health.js +435 -0
- package/dist/lib/commands/health.js.map +1 -0
- package/dist/lib/commands/index.d.ts +2 -0
- package/dist/lib/commands/index.d.ts.map +1 -0
- package/dist/lib/commands/index.js +128 -0
- package/dist/lib/commands/index.js.map +1 -0
- package/dist/lib/commands/install.d.ts +56 -0
- package/dist/lib/commands/install.d.ts.map +1 -0
- package/dist/lib/commands/install.js +214 -0
- package/dist/lib/commands/install.js.map +1 -0
- package/dist/lib/commands/knowhow-aggregator.d.ts +2 -0
- package/dist/lib/commands/knowhow-aggregator.d.ts.map +1 -0
- package/dist/lib/commands/knowhow-aggregator.js +279 -0
- package/dist/lib/commands/knowhow-aggregator.js.map +1 -0
- package/dist/lib/commands/knowledge-search.d.ts +2 -0
- package/dist/lib/commands/knowledge-search.d.ts.map +1 -0
- package/dist/lib/commands/knowledge-search.js +113 -0
- package/dist/lib/commands/knowledge-search.js.map +1 -0
- package/dist/lib/commands/long-term-roadmap.d.ts +2 -0
- package/dist/lib/commands/long-term-roadmap.d.ts.map +1 -0
- package/dist/lib/commands/long-term-roadmap.js +272 -0
- package/dist/lib/commands/long-term-roadmap.js.map +1 -0
- package/dist/lib/commands/patterns.d.ts +91 -0
- package/dist/lib/commands/patterns.d.ts.map +1 -0
- package/dist/lib/commands/patterns.js +391 -0
- package/dist/lib/commands/patterns.js.map +1 -0
- package/dist/lib/commands/phase-info.d.ts +2 -0
- package/dist/lib/commands/phase-info.d.ts.map +1 -0
- package/dist/lib/commands/phase-info.js +509 -0
- package/dist/lib/commands/phase-info.js.map +1 -0
- package/dist/lib/commands/plan-lint.d.ts +56 -0
- package/dist/lib/commands/plan-lint.d.ts.map +1 -0
- package/dist/lib/commands/plan-lint.js +481 -0
- package/dist/lib/commands/plan-lint.js.map +1 -0
- package/dist/lib/commands/plan-phase.d.ts +53 -0
- package/dist/lib/commands/plan-phase.d.ts.map +1 -0
- package/dist/lib/commands/plan-phase.js +288 -0
- package/dist/lib/commands/plan-phase.js.map +1 -0
- package/dist/lib/commands/progress.d.ts +2 -0
- package/dist/lib/commands/progress.d.ts.map +1 -0
- package/dist/lib/commands/progress.js +266 -0
- package/dist/lib/commands/progress.js.map +1 -0
- package/dist/lib/commands/quality.d.ts +2 -0
- package/dist/lib/commands/quality.d.ts.map +1 -0
- package/dist/lib/commands/quality.js +80 -0
- package/dist/lib/commands/quality.js.map +1 -0
- package/dist/lib/commands/rollback.d.ts +2 -0
- package/dist/lib/commands/rollback.d.ts.map +1 -0
- package/dist/lib/commands/rollback.js +145 -0
- package/dist/lib/commands/rollback.js.map +1 -0
- package/dist/lib/commands/scan.d.ts +25 -0
- package/dist/lib/commands/scan.d.ts.map +1 -0
- package/dist/lib/commands/scan.js +28 -0
- package/dist/lib/commands/scan.js.map +1 -0
- package/dist/lib/commands/search.d.ts +2 -0
- package/dist/lib/commands/search.d.ts.map +1 -0
- package/dist/lib/commands/search.js +212 -0
- package/dist/lib/commands/search.js.map +1 -0
- package/dist/lib/commands/select-candidate.d.ts +128 -0
- package/dist/lib/commands/select-candidate.d.ts.map +1 -0
- package/dist/lib/commands/select-candidate.js +518 -0
- package/dist/lib/commands/select-candidate.js.map +1 -0
- package/dist/lib/commands/singularity.d.ts +2 -0
- package/dist/lib/commands/singularity.d.ts.map +1 -0
- package/dist/lib/commands/singularity.js +185 -0
- package/dist/lib/commands/singularity.js.map +1 -0
- package/dist/lib/commands/slug-timestamp.d.ts +2 -0
- package/dist/lib/commands/slug-timestamp.d.ts.map +1 -0
- package/dist/lib/commands/slug-timestamp.js +54 -0
- package/dist/lib/commands/slug-timestamp.js.map +1 -0
- package/dist/lib/commands/tail.d.ts +2 -0
- package/dist/lib/commands/tail.d.ts.map +1 -0
- package/dist/lib/commands/tail.js +100 -0
- package/dist/lib/commands/tail.js.map +1 -0
- package/dist/lib/commands/todo.d.ts +2 -0
- package/dist/lib/commands/todo.d.ts.map +1 -0
- package/dist/lib/commands/todo.js +200 -0
- package/dist/lib/commands/todo.js.map +1 -0
- package/dist/lib/commands/watch.d.ts +2 -0
- package/dist/lib/commands/watch.d.ts.map +1 -0
- package/dist/lib/commands/watch.js +72 -0
- package/dist/lib/commands/watch.js.map +1 -0
- package/dist/lib/complexity.d.ts +55 -0
- package/dist/lib/complexity.d.ts.map +1 -0
- package/dist/lib/complexity.js +80 -0
- package/dist/lib/complexity.js.map +1 -0
- package/dist/lib/context/agents.d.ts +2 -0
- package/dist/lib/context/agents.d.ts.map +1 -0
- package/dist/lib/context/agents.js +344 -0
- package/dist/lib/context/agents.js.map +1 -0
- package/dist/lib/context/base.d.ts +2 -0
- package/dist/lib/context/base.d.ts.map +1 -0
- package/dist/lib/context/base.js +81 -0
- package/dist/lib/context/base.js.map +1 -0
- package/dist/lib/context/execute.d.ts +2 -0
- package/dist/lib/context/execute.d.ts.map +1 -0
- package/dist/lib/context/execute.js +753 -0
- package/dist/lib/context/execute.js.map +1 -0
- package/dist/lib/context/index.d.ts +2 -0
- package/dist/lib/context/index.d.ts.map +1 -0
- package/dist/lib/context/index.js +88 -0
- package/dist/lib/context/index.js.map +1 -0
- package/dist/lib/context/progress.d.ts +2 -0
- package/dist/lib/context/progress.d.ts.map +1 -0
- package/dist/lib/context/progress.js +178 -0
- package/dist/lib/context/progress.js.map +1 -0
- package/dist/lib/context/project.d.ts +2 -0
- package/dist/lib/context/project.d.ts.map +1 -0
- package/dist/lib/context/project.js +413 -0
- package/dist/lib/context/project.js.map +1 -0
- package/dist/lib/context/research.d.ts +2 -0
- package/dist/lib/context/research.d.ts.map +1 -0
- package/dist/lib/context/research.js +466 -0
- package/dist/lib/context/research.js.map +1 -0
- package/dist/lib/dead-ends.d.ts +28 -0
- package/dist/lib/dead-ends.d.ts.map +1 -0
- package/dist/lib/dead-ends.js +451 -0
- package/dist/lib/dead-ends.js.map +1 -0
- package/dist/lib/deps.d.ts +2 -0
- package/dist/lib/deps.d.ts.map +1 -0
- package/dist/lib/deps.js +630 -0
- package/dist/lib/deps.js.map +1 -0
- package/dist/lib/discussion.d.ts +2 -0
- package/dist/lib/discussion.d.ts.map +1 -0
- package/dist/lib/discussion.js +1041 -0
- package/dist/lib/discussion.js.map +1 -0
- package/dist/lib/drift.d.ts +36 -0
- package/dist/lib/drift.d.ts.map +1 -0
- package/dist/lib/drift.js +481 -0
- package/dist/lib/drift.js.map +1 -0
- package/dist/lib/evolve/_dimensions-features.d.ts +2 -0
- package/dist/lib/evolve/_dimensions-features.d.ts.map +1 -0
- package/dist/lib/evolve/_dimensions-features.js +369 -0
- package/dist/lib/evolve/_dimensions-features.js.map +1 -0
- package/dist/lib/evolve/_dimensions.d.ts +2 -0
- package/dist/lib/evolve/_dimensions.d.ts.map +1 -0
- package/dist/lib/evolve/_dimensions.js +358 -0
- package/dist/lib/evolve/_dimensions.js.map +1 -0
- package/dist/lib/evolve/_product-ideation.d.ts +2 -0
- package/dist/lib/evolve/_product-ideation.d.ts.map +1 -0
- package/dist/lib/evolve/_product-ideation.js +281 -0
- package/dist/lib/evolve/_product-ideation.js.map +1 -0
- package/dist/lib/evolve/_prompts.d.ts +2 -0
- package/dist/lib/evolve/_prompts.d.ts.map +1 -0
- package/dist/lib/evolve/_prompts.js +153 -0
- package/dist/lib/evolve/_prompts.js.map +1 -0
- package/dist/lib/evolve/cli.d.ts +2 -0
- package/dist/lib/evolve/cli.d.ts.map +1 -0
- package/dist/lib/evolve/cli.js +224 -0
- package/dist/lib/evolve/cli.js.map +1 -0
- package/dist/lib/evolve/discovery.d.ts +2 -0
- package/dist/lib/evolve/discovery.d.ts.map +1 -0
- package/dist/lib/evolve/discovery.js +391 -0
- package/dist/lib/evolve/discovery.js.map +1 -0
- package/dist/lib/evolve/index.d.ts +2 -0
- package/dist/lib/evolve/index.d.ts.map +1 -0
- package/dist/lib/evolve/index.js +88 -0
- package/dist/lib/evolve/index.js.map +1 -0
- package/dist/lib/evolve/orchestrator.d.ts +2 -0
- package/dist/lib/evolve/orchestrator.d.ts.map +1 -0
- package/dist/lib/evolve/orchestrator.js +851 -0
- package/dist/lib/evolve/orchestrator.js.map +1 -0
- package/dist/lib/evolve/scoring.d.ts +2 -0
- package/dist/lib/evolve/scoring.d.ts.map +1 -0
- package/dist/lib/evolve/scoring.js +118 -0
- package/dist/lib/evolve/scoring.js.map +1 -0
- package/dist/lib/evolve/state.d.ts +2 -0
- package/dist/lib/evolve/state.d.ts.map +1 -0
- package/dist/lib/evolve/state.js +264 -0
- package/dist/lib/evolve/state.js.map +1 -0
- package/dist/lib/evolve/types.d.ts +249 -0
- package/dist/lib/evolve/types.d.ts.map +1 -0
- package/dist/lib/evolve/types.js +3 -0
- package/dist/lib/evolve/types.js.map +1 -0
- package/dist/lib/frontmatter.d.ts +2 -0
- package/dist/lib/frontmatter.d.ts.map +1 -0
- package/dist/lib/frontmatter.js +513 -0
- package/dist/lib/frontmatter.js.map +1 -0
- package/dist/lib/gates.d.ts +2 -0
- package/dist/lib/gates.d.ts.map +1 -0
- package/dist/lib/gates.js +578 -0
- package/dist/lib/gates.js.map +1 -0
- package/dist/lib/genome.d.ts +10 -0
- package/dist/lib/genome.d.ts.map +1 -0
- package/dist/lib/genome.js +368 -0
- package/dist/lib/genome.js.map +1 -0
- package/dist/lib/got.d.ts +2 -0
- package/dist/lib/got.d.ts.map +1 -0
- package/dist/lib/got.js +280 -0
- package/dist/lib/got.js.map +1 -0
- package/dist/lib/invariants.d.ts +2 -0
- package/dist/lib/invariants.d.ts.map +1 -0
- package/dist/lib/invariants.js +298 -0
- package/dist/lib/invariants.js.map +1 -0
- package/dist/lib/knowledge.d.ts +2 -0
- package/dist/lib/knowledge.d.ts.map +1 -0
- package/dist/lib/knowledge.js +658 -0
- package/dist/lib/knowledge.js.map +1 -0
- package/dist/lib/long-term-roadmap.d.ts +2 -0
- package/dist/lib/long-term-roadmap.d.ts.map +1 -0
- package/dist/lib/long-term-roadmap.js +602 -0
- package/dist/lib/long-term-roadmap.js.map +1 -0
- package/dist/lib/markdown-split.d.ts +2 -0
- package/dist/lib/markdown-split.d.ts.map +1 -0
- package/dist/lib/markdown-split.js +199 -0
- package/dist/lib/markdown-split.js.map +1 -0
- package/dist/lib/mcp-server.d.ts +2 -0
- package/dist/lib/mcp-server.d.ts.map +1 -0
- package/dist/lib/mcp-server.js +2424 -0
- package/dist/lib/mcp-server.js.map +1 -0
- package/dist/lib/metrics.d.ts +16 -0
- package/dist/lib/metrics.d.ts.map +1 -0
- package/dist/lib/metrics.js +48 -0
- package/dist/lib/metrics.js.map +1 -0
- package/dist/lib/overstory.d.ts +2 -0
- package/dist/lib/overstory.d.ts.map +1 -0
- package/dist/lib/overstory.js +211 -0
- package/dist/lib/overstory.js.map +1 -0
- package/dist/lib/parallel.d.ts +2 -0
- package/dist/lib/parallel.d.ts.map +1 -0
- package/dist/lib/parallel.js +349 -0
- package/dist/lib/parallel.js.map +1 -0
- package/dist/lib/paths.d.ts +2 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +254 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/phase-complete-llm.d.ts +22 -0
- package/dist/lib/phase-complete-llm.d.ts.map +1 -0
- package/dist/lib/phase-complete-llm.js +331 -0
- package/dist/lib/phase-complete-llm.js.map +1 -0
- package/dist/lib/phase-complete.d.ts +46 -0
- package/dist/lib/phase-complete.d.ts.map +1 -0
- package/dist/lib/phase-complete.js +278 -0
- package/dist/lib/phase-complete.js.map +1 -0
- package/dist/lib/phase-io.d.ts +2 -0
- package/dist/lib/phase-io.d.ts.map +1 -0
- package/dist/lib/phase-io.js +126 -0
- package/dist/lib/phase-io.js.map +1 -0
- package/dist/lib/phase.d.ts +2 -0
- package/dist/lib/phase.d.ts.map +1 -0
- package/dist/lib/phase.js +1344 -0
- package/dist/lib/phase.js.map +1 -0
- package/dist/lib/plan-tournament.d.ts +63 -0
- package/dist/lib/plan-tournament.d.ts.map +1 -0
- package/dist/lib/plan-tournament.js +353 -0
- package/dist/lib/plan-tournament.js.map +1 -0
- package/dist/lib/refinement.d.ts +74 -0
- package/dist/lib/refinement.d.ts.map +1 -0
- package/dist/lib/refinement.js +283 -0
- package/dist/lib/refinement.js.map +1 -0
- package/dist/lib/requirements.d.ts +2 -0
- package/dist/lib/requirements.d.ts.map +1 -0
- package/dist/lib/requirements.js +355 -0
- package/dist/lib/requirements.js.map +1 -0
- package/dist/lib/research-bundle.d.ts +2 -0
- package/dist/lib/research-bundle.d.ts.map +1 -0
- package/dist/lib/research-bundle.js +246 -0
- package/dist/lib/research-bundle.js.map +1 -0
- package/dist/lib/roadmap.d.ts +2 -0
- package/dist/lib/roadmap.d.ts.map +1 -0
- package/dist/lib/roadmap.js +541 -0
- package/dist/lib/roadmap.js.map +1 -0
- package/dist/lib/sample.d.ts +16 -0
- package/dist/lib/sample.d.ts.map +1 -0
- package/dist/lib/sample.js +20 -0
- package/dist/lib/sample.js.map +1 -0
- package/dist/lib/scaffold.d.ts +2 -0
- package/dist/lib/scaffold.d.ts.map +1 -0
- package/dist/lib/scaffold.js +355 -0
- package/dist/lib/scaffold.js.map +1 -0
- package/dist/lib/scan/_utils.d.ts +11 -0
- package/dist/lib/scan/_utils.d.ts.map +1 -0
- package/dist/lib/scan/_utils.js +36 -0
- package/dist/lib/scan/_utils.js.map +1 -0
- package/dist/lib/scan/base64.d.ts +15 -0
- package/dist/lib/scan/base64.d.ts.map +1 -0
- package/dist/lib/scan/base64.js +66 -0
- package/dist/lib/scan/base64.js.map +1 -0
- package/dist/lib/scan/ignorefile.d.ts +30 -0
- package/dist/lib/scan/ignorefile.d.ts.map +1 -0
- package/dist/lib/scan/ignorefile.js +101 -0
- package/dist/lib/scan/ignorefile.js.map +1 -0
- package/dist/lib/scan/injection.d.ts +14 -0
- package/dist/lib/scan/injection.d.ts.map +1 -0
- package/dist/lib/scan/injection.js +39 -0
- package/dist/lib/scan/injection.js.map +1 -0
- package/dist/lib/scan/patterns.d.ts +17 -0
- package/dist/lib/scan/patterns.d.ts.map +1 -0
- package/dist/lib/scan/patterns.js +123 -0
- package/dist/lib/scan/patterns.js.map +1 -0
- package/dist/lib/scan/strip-markdown.d.ts +7 -0
- package/dist/lib/scan/strip-markdown.d.ts.map +1 -0
- package/dist/lib/scan/strip-markdown.js +38 -0
- package/dist/lib/scan/strip-markdown.js.map +1 -0
- package/dist/lib/scan/types.d.ts +23 -0
- package/dist/lib/scan/types.d.ts.map +1 -0
- package/dist/lib/scan/types.js +3 -0
- package/dist/lib/scan/types.js.map +1 -0
- package/dist/lib/scheduler-wait.d.ts +2 -0
- package/dist/lib/scheduler-wait.d.ts.map +1 -0
- package/dist/lib/scheduler-wait.js +59 -0
- package/dist/lib/scheduler-wait.js.map +1 -0
- package/dist/lib/scheduler.d.ts +254 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +1147 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/state.d.ts +2 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +744 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/think.d.ts +18 -0
- package/dist/lib/think.d.ts.map +1 -0
- package/dist/lib/think.js +317 -0
- package/dist/lib/think.js.map +1 -0
- package/dist/lib/tracker.d.ts +2 -0
- package/dist/lib/tracker.d.ts.map +1 -0
- package/dist/lib/tracker.js +1121 -0
- package/dist/lib/tracker.js.map +1 -0
- package/dist/lib/types.d.ts +1514 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +4 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +1363 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/verify.d.ts +2 -0
- package/dist/lib/verify.d.ts.map +1 -0
- package/dist/lib/verify.js +1153 -0
- package/dist/lib/verify.js.map +1 -0
- package/dist/lib/wireup/autofix.d.ts +2 -0
- package/dist/lib/wireup/autofix.d.ts.map +1 -0
- package/dist/lib/wireup/autofix.js +188 -0
- package/dist/lib/wireup/autofix.js.map +1 -0
- package/dist/lib/wireup/cli.d.ts +2 -0
- package/dist/lib/wireup/cli.d.ts.map +1 -0
- package/dist/lib/wireup/cli.js +194 -0
- package/dist/lib/wireup/cli.js.map +1 -0
- package/dist/lib/wireup/detection.d.ts +47 -0
- package/dist/lib/wireup/detection.d.ts.map +1 -0
- package/dist/lib/wireup/detection.js +410 -0
- package/dist/lib/wireup/detection.js.map +1 -0
- package/dist/lib/wireup/discovery.d.ts +2 -0
- package/dist/lib/wireup/discovery.d.ts.map +1 -0
- package/dist/lib/wireup/discovery.js +934 -0
- package/dist/lib/wireup/discovery.js.map +1 -0
- package/dist/lib/wireup/execution.d.ts +2 -0
- package/dist/lib/wireup/execution.d.ts.map +1 -0
- package/dist/lib/wireup/execution.js +573 -0
- package/dist/lib/wireup/execution.js.map +1 -0
- package/dist/lib/wireup/index.d.ts +2 -0
- package/dist/lib/wireup/index.d.ts.map +1 -0
- package/dist/lib/wireup/index.js +85 -0
- package/dist/lib/wireup/index.js.map +1 -0
- package/dist/lib/wireup/orchestrator.d.ts +2 -0
- package/dist/lib/wireup/orchestrator.d.ts.map +1 -0
- package/dist/lib/wireup/orchestrator.js +366 -0
- package/dist/lib/wireup/orchestrator.js.map +1 -0
- package/dist/lib/wireup/report.d.ts +47 -0
- package/dist/lib/wireup/report.d.ts.map +1 -0
- package/dist/lib/wireup/report.js +201 -0
- package/dist/lib/wireup/report.js.map +1 -0
- package/dist/lib/wireup/scenarios.d.ts +2 -0
- package/dist/lib/wireup/scenarios.d.ts.map +1 -0
- package/dist/lib/wireup/scenarios.js +516 -0
- package/dist/lib/wireup/scenarios.js.map +1 -0
- package/dist/lib/wireup/state.d.ts +2 -0
- package/dist/lib/wireup/state.d.ts.map +1 -0
- package/dist/lib/wireup/state.js +102 -0
- package/dist/lib/wireup/state.js.map +1 -0
- package/dist/lib/wireup/types.d.ts +376 -0
- package/dist/lib/wireup/types.d.ts.map +1 -0
- package/dist/lib/wireup/types.js +3 -0
- package/dist/lib/wireup/types.js.map +1 -0
- package/dist/lib/worktree.d.ts +2 -0
- package/dist/lib/worktree.d.ts.map +1 -0
- package/dist/lib/worktree.js +999 -0
- package/dist/lib/worktree.js.map +1 -0
- package/lib/autopilot-milestone.ts +136 -0
- package/lib/autopilot-pipeline.ts +1179 -0
- package/lib/autopilot-waves.ts +361 -0
- package/lib/autopilot.ts +1874 -0
- package/lib/autoplan.ts +280 -0
- package/lib/autoresearch.js +4 -0
- package/lib/autoresearch.ts +886 -0
- package/lib/backend.ts +1252 -0
- package/lib/benchmark.ts +341 -0
- package/lib/citations.ts +760 -0
- package/lib/cleanup.ts +1588 -0
- package/lib/cli/adapters.ts +41 -0
- package/lib/cli/agent.ts +83 -0
- package/lib/cli/index.ts +273 -0
- package/lib/cli/output.ts +33 -0
- package/lib/cli/scan-dispatch.ts +130 -0
- package/lib/cli/tools.ts +198 -0
- package/lib/commands/_dashboard-parsers.ts +275 -0
- package/lib/commands/analysis.ts +1851 -0
- package/lib/commands/assumptions.ts +232 -0
- package/lib/commands/blame.ts +174 -0
- package/lib/commands/budget.ts +148 -0
- package/lib/commands/check-plans.ts +233 -0
- package/lib/commands/config.ts +287 -0
- package/lib/commands/dashboard.ts +680 -0
- package/lib/commands/estimate.ts +204 -0
- package/lib/commands/eval-diff.ts +252 -0
- package/lib/commands/freshness.ts +213 -0
- package/lib/commands/health.ts +607 -0
- package/lib/commands/index.ts +266 -0
- package/lib/commands/install.ts +307 -0
- package/lib/commands/knowhow-aggregator.ts +345 -0
- package/lib/commands/knowledge-search.ts +153 -0
- package/lib/commands/long-term-roadmap.ts +390 -0
- package/lib/commands/patterns.ts +465 -0
- package/lib/commands/phase-info.ts +698 -0
- package/lib/commands/plan-lint.ts +546 -0
- package/lib/commands/plan-phase.ts +375 -0
- package/lib/commands/progress.ts +319 -0
- package/lib/commands/quality.ts +138 -0
- package/lib/commands/rollback.ts +195 -0
- package/lib/commands/scan.ts +72 -0
- package/lib/commands/search.ts +300 -0
- package/lib/commands/select-candidate.ts +687 -0
- package/lib/commands/singularity.ts +222 -0
- package/lib/commands/slug-timestamp.ts +74 -0
- package/lib/commands/tail.ts +129 -0
- package/lib/commands/todo.ts +273 -0
- package/lib/commands/watch.ts +80 -0
- package/lib/complexity.ts +117 -0
- package/lib/context/agents.ts +505 -0
- package/lib/context/base.ts +123 -0
- package/lib/context/execute.ts +977 -0
- package/lib/context/index.ts +110 -0
- package/lib/context/progress.ts +278 -0
- package/lib/context/project.ts +531 -0
- package/lib/context/research.ts +646 -0
- package/lib/dead-ends.ts +506 -0
- package/lib/deps.ts +773 -0
- package/lib/discussion.ts +1275 -0
- package/lib/drift.ts +519 -0
- package/lib/evolve/_dimensions-features.ts +525 -0
- package/lib/evolve/_dimensions.ts +511 -0
- package/lib/evolve/_product-ideation.ts +405 -0
- package/lib/evolve/_prompts.ts +178 -0
- package/lib/evolve/cli.ts +330 -0
- package/lib/evolve/discovery.ts +571 -0
- package/lib/evolve/index.ts +105 -0
- package/lib/evolve/orchestrator.ts +1139 -0
- package/lib/evolve/scoring.ts +167 -0
- package/lib/evolve/state.ts +330 -0
- package/lib/evolve/types.ts +290 -0
- package/lib/frontmatter.ts +615 -0
- package/lib/gates.ts +695 -0
- package/lib/genome.ts +402 -0
- package/lib/got.js +4 -0
- package/lib/got.ts +361 -0
- package/lib/invariants.ts +378 -0
- package/lib/knowledge.ts +768 -0
- package/lib/long-term-roadmap.ts +806 -0
- package/lib/markdown-split.ts +273 -0
- package/lib/mcp-server.ts +3292 -0
- package/lib/metrics.ts +49 -0
- package/lib/overstory.ts +270 -0
- package/lib/parallel.ts +570 -0
- package/lib/paths.ts +293 -0
- package/lib/phase-complete-llm.ts +376 -0
- package/lib/phase-complete.ts +366 -0
- package/lib/phase-io.ts +101 -0
- package/lib/phase.ts +1981 -0
- package/lib/plan-tournament.ts +426 -0
- package/lib/refinement.ts +349 -0
- package/lib/requirements.ts +469 -0
- package/lib/research-bundle.ts +300 -0
- package/lib/roadmap.ts +775 -0
- package/lib/scaffold.ts +480 -0
- package/lib/scan/_utils.ts +37 -0
- package/lib/scan/base64.ts +90 -0
- package/lib/scan/ignorefile.ts +109 -0
- package/lib/scan/injection.ts +67 -0
- package/lib/scan/patterns.ts +139 -0
- package/lib/scan/strip-markdown.ts +39 -0
- package/lib/scan/types.ts +28 -0
- package/lib/scheduler-wait.ts +58 -0
- package/lib/scheduler.ts +1370 -0
- package/lib/state.ts +1000 -0
- package/lib/think.ts +365 -0
- package/lib/tracker.ts +1591 -0
- package/lib/types.ts +1663 -0
- package/lib/utils.ts +1479 -0
- package/lib/verify.ts +1434 -0
- package/lib/wireup/autofix.ts +241 -0
- package/lib/wireup/cli.ts +278 -0
- package/lib/wireup/detection.ts +542 -0
- package/lib/wireup/discovery.ts +1063 -0
- package/lib/wireup/execution.ts +686 -0
- package/lib/wireup/index.ts +117 -0
- package/lib/wireup/orchestrator.ts +519 -0
- package/lib/wireup/report.ts +286 -0
- package/lib/wireup/scenarios.ts +616 -0
- package/lib/wireup/state.ts +139 -0
- package/lib/wireup/types.ts +436 -0
- package/lib/worktree.ts +1309 -0
- 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
|
+
};
|