@harness-engineering/cli 1.23.0 → 1.23.2
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/dist/agents/commands/codex/harness/add-harness-component/SKILL.md +21 -12
- package/dist/agents/commands/codex/harness/cleanup-dead-code/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/commands/codex/harness/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/commands/codex/harness/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/commands/codex/harness/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-code-review/SKILL.md +5 -15
- package/dist/agents/commands/codex/harness/harness-codebase-cleanup/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-debugging/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-dependency-health/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-docs-pipeline/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-execution/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-hotspot-detector/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-impact-analysis/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-integrity/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/commands/codex/harness/harness-perf/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-planning/SKILL.md +10 -0
- package/dist/agents/commands/codex/harness/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-release-readiness/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/commands/codex/harness/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/commands/codex/harness/harness-skill-authoring/SKILL.md +20 -1
- package/dist/agents/commands/codex/harness/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/commands/codex/harness/harness-supply-chain-audit/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-tdd/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-test-advisor/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-verification/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-verify/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/commands/cursor/harness/add-harness-component.mdc +12 -12
- package/dist/agents/commands/cursor/harness/harness-onboarding.mdc +10 -10
- package/dist/agents/commands/cursor/harness/harness-roadmap.mdc +1 -1
- package/dist/agents/commands/cursor/harness/initialize-harness-project.mdc +13 -13
- package/dist/agents/skills/claude-code/add-harness-component/SKILL.md +21 -12
- package/dist/agents/skills/claude-code/align-documentation/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/check-mechanical-constraints/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/cleanup-dead-code/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-accessibility/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-api-design/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-auth/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-caching/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-chaos/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-codebase-cleanup/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/harness-compliance/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-containerization/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-data-pipeline/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-data-validation/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-database/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-debugging/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-dependency-health/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-deployment/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-design/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-design-mobile/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-design-system/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-design-web/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-diagnostics/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-docs-pipeline/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/harness-dx/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-e2e/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-event-driven/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-feature-flags/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-git-workflow/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-hotspot-detector/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-i18n/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-i18n-process/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-i18n-workflow/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-impact-analysis/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-incident-response/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-infrastructure-as-code/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-integration-test/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-integrity/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-knowledge-mapper/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-load-testing/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-ml-ops/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-mobile-patterns/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-mutation-test/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-observability/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/skills/claude-code/harness-parallel-agents/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-perf/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/harness-perf-tdd/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-pre-commit-review/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-product-spec/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-property-test/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-release-readiness/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/harness-resilience/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +8 -0
- package/dist/agents/skills/claude-code/harness-secrets/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-security-review/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-skill-authoring/SKILL.md +29 -1
- package/dist/agents/skills/claude-code/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-sql-review/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-state-management/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-supply-chain-audit/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-tdd/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-test-advisor/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-test-data/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-ux-copy/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-verification/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-verify/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-visual-regression/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/skills/claude-code/validate-context-engineering/SKILL.md +9 -0
- package/dist/agents/skills/codex/add-harness-component/SKILL.md +21 -12
- package/dist/agents/skills/codex/align-documentation/SKILL.md +9 -0
- package/dist/agents/skills/codex/check-mechanical-constraints/SKILL.md +9 -0
- package/dist/agents/skills/codex/cleanup-dead-code/SKILL.md +11 -0
- package/dist/agents/skills/codex/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/skills/codex/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-accessibility/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-api-design/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-auth/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-caching/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-chaos/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-code-review/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-codebase-cleanup/SKILL.md +11 -0
- package/dist/agents/skills/codex/harness-compliance/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-containerization/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-data-pipeline/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-data-validation/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-database/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-debugging/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-dependency-health/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-deployment/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-design/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-design-mobile/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-design-system/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-design-web/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-diagnostics/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-docs-pipeline/SKILL.md +11 -0
- package/dist/agents/skills/codex/harness-dx/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-e2e/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-event-driven/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-execution/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-feature-flags/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-git-workflow/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-hotspot-detector/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-i18n/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-i18n-process/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-i18n-workflow/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-impact-analysis/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-incident-response/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-infrastructure-as-code/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-integration-test/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-integrity/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-knowledge-mapper/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-load-testing/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-ml-ops/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-mobile-patterns/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-mutation-test/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-observability/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-perf/SKILL.md +11 -0
- package/dist/agents/skills/codex/harness-perf-tdd/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-planning/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-pre-commit-review/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-product-spec/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-property-test/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-release-readiness/SKILL.md +11 -0
- package/dist/agents/skills/codex/harness-resilience/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +8 -0
- package/dist/agents/skills/codex/harness-secrets/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-security-review/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-skill-authoring/SKILL.md +29 -1
- package/dist/agents/skills/codex/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-sql-review/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-state-management/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-supply-chain-audit/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-tdd/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-test-advisor/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-test-data/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-ux-copy/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-verification/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-verify/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-visual-regression/SKILL.md +10 -0
- package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/skills/codex/validate-context-engineering/SKILL.md +9 -0
- package/dist/agents/skills/cursor/add-harness-component/SKILL.md +21 -12
- package/dist/agents/skills/cursor/align-documentation/SKILL.md +9 -0
- package/dist/agents/skills/cursor/check-mechanical-constraints/SKILL.md +9 -0
- package/dist/agents/skills/cursor/cleanup-dead-code/SKILL.md +11 -0
- package/dist/agents/skills/cursor/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/skills/cursor/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-accessibility/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-api-design/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-auth/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-caching/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-chaos/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-code-review/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-codebase-cleanup/SKILL.md +11 -0
- package/dist/agents/skills/cursor/harness-compliance/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-containerization/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-data-pipeline/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-data-validation/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-database/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-debugging/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-dependency-health/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-deployment/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-design/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-design-mobile/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-design-system/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-design-web/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-diagnostics/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-docs-pipeline/SKILL.md +11 -0
- package/dist/agents/skills/cursor/harness-dx/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-e2e/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-event-driven/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-feature-flags/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-git-workflow/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-hotspot-detector/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-i18n/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-i18n-process/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-i18n-workflow/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-impact-analysis/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-incident-response/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-infrastructure-as-code/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-integration-test/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-integrity/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-knowledge-mapper/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-load-testing/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-ml-ops/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-mobile-patterns/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-mutation-test/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-observability/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-perf/SKILL.md +11 -0
- package/dist/agents/skills/cursor/harness-perf-tdd/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-planning/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-pre-commit-review/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-product-spec/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-property-test/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-release-readiness/SKILL.md +11 -0
- package/dist/agents/skills/cursor/harness-resilience/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +8 -0
- package/dist/agents/skills/cursor/harness-secrets/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-security-review/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-skill-authoring/SKILL.md +29 -1
- package/dist/agents/skills/cursor/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-sql-review/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-state-management/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-supply-chain-audit/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-tdd/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-test-advisor/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-test-data/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-ux-copy/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-verification/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-verify/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-visual-regression/SKILL.md +10 -0
- package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/skills/cursor/validate-context-engineering/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/add-harness-component/SKILL.md +21 -12
- package/dist/agents/skills/gemini-cli/align-documentation/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/check-mechanical-constraints/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/cleanup-dead-code/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-accessibility/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-api-design/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-auth/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-caching/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-chaos/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/harness-compliance/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-containerization/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-data-pipeline/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-data-validation/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-database/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-debugging/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-dependency-health/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-deployment/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-design/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-design-mobile/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-design-system/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-design-web/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-diagnostics/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-docs-pipeline/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/harness-dx/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-e2e/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-event-driven/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-feature-flags/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-git-workflow/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-hotspot-detector/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-i18n/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-i18n-process/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-i18n-workflow/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-impact-analysis/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-incident-response/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-infrastructure-as-code/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-integration-test/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-integrity/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-knowledge-mapper/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-load-testing/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-ml-ops/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-mobile-patterns/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-mutation-test/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-observability/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/skills/gemini-cli/harness-parallel-agents/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-perf/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/harness-perf-tdd/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-product-spec/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-property-test/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-release-readiness/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/harness-resilience/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +8 -0
- package/dist/agents/skills/gemini-cli/harness-secrets/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-security-review/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-skill-authoring/SKILL.md +29 -1
- package/dist/agents/skills/gemini-cli/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-sql-review/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-state-management/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-tdd/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-test-advisor/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-test-data/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-ux-copy/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-verify/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-visual-regression/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/skills/gemini-cli/validate-context-engineering/SKILL.md +9 -0
- package/dist/agents-md-HCCCO5PK.js +9 -0
- package/dist/{architecture-EDSBAGR4.js → architecture-S2H624W7.js} +5 -5
- package/dist/{assess-project-CEDY4JU3.js → assess-project-XSGK44S5.js} +1 -1
- package/dist/bin/harness-mcp.js +18 -18
- package/dist/bin/harness.js +124 -35
- package/dist/{check-phase-gate-N3DTKFCZ.js → check-phase-gate-UGBJ237T.js} +5 -5
- package/dist/{chunk-AIBAYANF.js → chunk-2DHX6TAP.js} +4 -4
- package/dist/{chunk-ENA4O4WD.js → chunk-2GT3HO2T.js} +3 -3
- package/dist/{chunk-TJ6NLLAY.js → chunk-2YA4XRI3.js} +5 -5
- package/dist/{chunk-GZKSBLQL.js → chunk-35EQ5UEI.js} +1 -1
- package/dist/{chunk-T5QWCVGK.js → chunk-4FHBPA3E.js} +11 -3
- package/dist/{chunk-ERS5EVUZ.js → chunk-5LMZA5LZ.js} +10 -10
- package/dist/{chunk-SM22U22L.js → chunk-BK52Z6DR.js} +869 -419
- package/dist/{chunk-5SWE24IG.js → chunk-CLD4KL7O.js} +342 -72
- package/dist/{chunk-OD3S2NHN.js → chunk-E2GTL3YS.js} +1 -1
- package/dist/{chunk-YLN34N65.js → chunk-FP53DDB5.js} +1 -1
- package/dist/{chunk-TLDCCPUZ.js → chunk-I47JLISV.js} +1 -1
- package/dist/{chunk-AKVG4MMZ.js → chunk-KC5CTCEL.js} +9 -9
- package/dist/{chunk-26AUZBV4.js → chunk-KTL3PHNQ.js} +6445 -6222
- package/dist/{chunk-DBSOCI3G.js → chunk-KV4M6Y5J.js} +1 -1
- package/dist/{chunk-FIAPHX37.js → chunk-LM5Z2WCA.js} +1 -1
- package/dist/{chunk-SD3SQOZ2.js → chunk-LOUH2LIC.js} +1 -1
- package/dist/{chunk-QUKH6QCJ.js → chunk-MHOO7NLG.js} +11 -11
- package/dist/{chunk-HT4VPPB4.js → chunk-MZAHE4DK.js} +12 -12
- package/dist/{chunk-A4AI3H3R.js → chunk-NKL53UBL.js} +6 -6
- package/dist/{chunk-GJRUIXUK.js → chunk-PGF44T2D.js} +6 -6
- package/dist/{chunk-H7Y5CKTM.js → chunk-Q3XYV5UC.js} +1 -1
- package/dist/{chunk-TD6MQUV2.js → chunk-S5ZXT3TZ.js} +1 -1
- package/dist/{chunk-6KWBH4EO.js → chunk-UGD37ECK.js} +5 -5
- package/dist/{chunk-XDAIFVGC.js → chunk-V27WDRYV.js} +603 -525
- package/dist/{chunk-YQ6KC6TE.js → chunk-YDRB55Q4.js} +1 -1
- package/dist/{chunk-2LAEDVOC.js → chunk-ZRYDYDB2.js} +6 -6
- package/dist/{chunk-LIWGCYON.js → chunk-ZYJJUPNE.js} +1 -1
- package/dist/ci-workflow-I3V7FZNV.js +9 -0
- package/dist/{create-skill-U3XCFRZN.js → create-skill-AO25CJFM.js} +2 -2
- package/dist/{dist-USY2C5JL.js → dist-666AAZQ6.js} +1 -1
- package/dist/{dist-DZ63LLUD.js → dist-KQSTRP36.js} +1 -1
- package/dist/{dist-YIKUBJLQ.js → dist-MKWF5CXR.js} +7 -3
- package/dist/{dist-OEXTQQZC.js → dist-WU3TVNNG.js} +7 -1
- package/dist/{docs-F5G7NAFF.js → docs-R7UVQBMQ.js} +5 -5
- package/dist/engine-JGI3MWAC.js +9 -0
- package/dist/{entropy-A5Q2USYX.js → entropy-IDHIG7HS.js} +4 -4
- package/dist/{feedback-2EU25RIW.js → feedback-JZETY4UR.js} +1 -1
- package/dist/{generate-agent-definitions-HNJHO5YQ.js → generate-agent-definitions-D7B25YTM.js} +6 -6
- package/dist/{graph-loader-XULF5QF7.js → graph-loader-BJULJYGG.js} +1 -1
- package/dist/index.d.ts +20 -16
- package/dist/index.js +54 -54
- package/dist/loader-E4KNTOP2.js +11 -0
- package/dist/mcp-67I2DBNM.js +37 -0
- package/dist/{performance-YAY2A6A6.js → performance-744OSR6P.js} +5 -5
- package/dist/{review-pipeline-YD4WI3JM.js → review-pipeline-HIO7HBW4.js} +1 -1
- package/dist/runtime-JXQ26U4Z.js +10 -0
- package/dist/{security-IBSUKMVD.js → security-GDKHVFUC.js} +1 -1
- package/dist/{validate-NHXWKMCR.js → validate-2IUR3OWX.js} +5 -5
- package/dist/validate-cross-check-AM4T6P2K.js +9 -0
- package/package.json +5 -5
- package/dist/agents-md-GLKJSGKT.js +0 -9
- package/dist/ci-workflow-LE3QF4FP.js +0 -9
- package/dist/engine-LX5RVGXN.js +0 -9
- package/dist/loader-GWIEW4HM.js +0 -11
- package/dist/mcp-ID3LR6JB.js +0 -37
- package/dist/runtime-UJ4YO4CA.js +0 -10
- package/dist/validate-cross-check-R3GV2MLM.js +0 -9
- package/dist/{chunk-CJDVBBPB.js → chunk-3ISINLYT.js} +1 -1
|
@@ -174,6 +174,16 @@ function removeFromIndex(index, key, edge) {
|
|
|
174
174
|
if (idx !== -1) list.splice(idx, 1);
|
|
175
175
|
if (list.length === 0) index.delete(key);
|
|
176
176
|
}
|
|
177
|
+
function filterEdges(candidates, query) {
|
|
178
|
+
const results = [];
|
|
179
|
+
for (const edge of candidates) {
|
|
180
|
+
if (query.from !== void 0 && edge.from !== query.from) continue;
|
|
181
|
+
if (query.to !== void 0 && edge.to !== query.to) continue;
|
|
182
|
+
if (query.type !== void 0 && edge.type !== query.type) continue;
|
|
183
|
+
results.push({ ...edge });
|
|
184
|
+
}
|
|
185
|
+
return results;
|
|
186
|
+
}
|
|
177
187
|
var GraphStore = class {
|
|
178
188
|
nodeMap = /* @__PURE__ */ new Map();
|
|
179
189
|
edgeMap = /* @__PURE__ */ new Map();
|
|
@@ -241,27 +251,25 @@ var GraphStore = class {
|
|
|
241
251
|
}
|
|
242
252
|
}
|
|
243
253
|
getEdges(query) {
|
|
244
|
-
let candidates;
|
|
245
254
|
if (query.from !== void 0 && query.to !== void 0 && query.type !== void 0) {
|
|
246
255
|
const edge = this.edgeMap.get(edgeKey(query.from, query.to, query.type));
|
|
247
256
|
return edge ? [{ ...edge }] : [];
|
|
248
|
-
} else if (query.from !== void 0) {
|
|
249
|
-
candidates = this.edgesByFrom.get(query.from) ?? [];
|
|
250
|
-
} else if (query.to !== void 0) {
|
|
251
|
-
candidates = this.edgesByTo.get(query.to) ?? [];
|
|
252
|
-
} else if (query.type !== void 0) {
|
|
253
|
-
candidates = this.edgesByType.get(query.type) ?? [];
|
|
254
|
-
} else {
|
|
255
|
-
candidates = this.edgeMap.values();
|
|
256
257
|
}
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
258
|
+
const candidates = this.selectCandidates(query);
|
|
259
|
+
return filterEdges(candidates, query);
|
|
260
|
+
}
|
|
261
|
+
/** Pick the most selective index to start from. */
|
|
262
|
+
selectCandidates(query) {
|
|
263
|
+
if (query.from !== void 0) {
|
|
264
|
+
return this.edgesByFrom.get(query.from) ?? [];
|
|
263
265
|
}
|
|
264
|
-
|
|
266
|
+
if (query.to !== void 0) {
|
|
267
|
+
return this.edgesByTo.get(query.to) ?? [];
|
|
268
|
+
}
|
|
269
|
+
if (query.type !== void 0) {
|
|
270
|
+
return this.edgesByType.get(query.type) ?? [];
|
|
271
|
+
}
|
|
272
|
+
return this.edgeMap.values();
|
|
265
273
|
}
|
|
266
274
|
getNeighbors(nodeId, direction = "both") {
|
|
267
275
|
const neighborIds = /* @__PURE__ */ new Set();
|
|
@@ -549,6 +557,12 @@ var CODE_TYPES = /* @__PURE__ */ new Set([
|
|
|
549
557
|
"method",
|
|
550
558
|
"variable"
|
|
551
559
|
]);
|
|
560
|
+
function classifyNodeCategory(node) {
|
|
561
|
+
if (TEST_TYPES.has(node.type)) return "tests";
|
|
562
|
+
if (DOC_TYPES.has(node.type)) return "docs";
|
|
563
|
+
if (CODE_TYPES.has(node.type)) return "code";
|
|
564
|
+
return "other";
|
|
565
|
+
}
|
|
552
566
|
function groupNodesByImpact(nodes, excludeId) {
|
|
553
567
|
const tests = [];
|
|
554
568
|
const docs = [];
|
|
@@ -556,15 +570,11 @@ function groupNodesByImpact(nodes, excludeId) {
|
|
|
556
570
|
const other = [];
|
|
557
571
|
for (const node of nodes) {
|
|
558
572
|
if (excludeId && node.id === excludeId) continue;
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
code.push(node);
|
|
565
|
-
} else {
|
|
566
|
-
other.push(node);
|
|
567
|
-
}
|
|
573
|
+
const category = classifyNodeCategory(node);
|
|
574
|
+
if (category === "tests") tests.push(node);
|
|
575
|
+
else if (category === "docs") docs.push(node);
|
|
576
|
+
else if (category === "code") code.push(node);
|
|
577
|
+
else other.push(node);
|
|
568
578
|
}
|
|
569
579
|
return { tests, docs, code, other };
|
|
570
580
|
}
|
|
@@ -1505,7 +1515,7 @@ var RequirementIngestor = class {
|
|
|
1505
1515
|
}
|
|
1506
1516
|
for (const featureDir of featureDirs) {
|
|
1507
1517
|
const featureName = path4.basename(featureDir);
|
|
1508
|
-
const specPath = path4.join(featureDir, "proposal.md");
|
|
1518
|
+
const specPath = path4.join(featureDir, "proposal.md").replaceAll("\\", "/");
|
|
1509
1519
|
let content;
|
|
1510
1520
|
try {
|
|
1511
1521
|
content = await fs3.readFile(specPath, "utf-8");
|
|
@@ -2844,6 +2854,7 @@ var INTENT_SIGNALS = {
|
|
|
2844
2854
|
"depend",
|
|
2845
2855
|
"blast",
|
|
2846
2856
|
"radius",
|
|
2857
|
+
"cascade",
|
|
2847
2858
|
"risk",
|
|
2848
2859
|
"delete",
|
|
2849
2860
|
"remove"
|
|
@@ -2853,6 +2864,7 @@ var INTENT_SIGNALS = {
|
|
|
2853
2864
|
/what\s+(breaks|happens|is affected)/,
|
|
2854
2865
|
/if\s+i\s+(change|modify|remove|delete)/,
|
|
2855
2866
|
/blast\s+radius/,
|
|
2867
|
+
/cascad/,
|
|
2856
2868
|
/what\s+(depend|relies)/
|
|
2857
2869
|
]
|
|
2858
2870
|
},
|
|
@@ -3332,6 +3344,10 @@ var ResponseFormatter = class {
|
|
|
3332
3344
|
}
|
|
3333
3345
|
formatImpact(entityName, data) {
|
|
3334
3346
|
const d = data;
|
|
3347
|
+
if ("sourceNodeId" in d && "summary" in d) {
|
|
3348
|
+
const summary = d.summary;
|
|
3349
|
+
return `Blast radius of **${entityName}**: ${summary.totalAffected} affected nodes (${summary.highRisk} high risk, ${summary.mediumRisk} medium, ${summary.lowRisk} low).`;
|
|
3350
|
+
}
|
|
3335
3351
|
const code = this.safeArrayLength(d?.code);
|
|
3336
3352
|
const tests = this.safeArrayLength(d?.tests);
|
|
3337
3353
|
const docs = this.safeArrayLength(d?.docs);
|
|
@@ -3392,6 +3408,242 @@ var ResponseFormatter = class {
|
|
|
3392
3408
|
return `${count} ${word}`;
|
|
3393
3409
|
}
|
|
3394
3410
|
};
|
|
3411
|
+
var CompositeProbabilityStrategy = class _CompositeProbabilityStrategy {
|
|
3412
|
+
constructor(changeFreqMap, couplingMap) {
|
|
3413
|
+
this.changeFreqMap = changeFreqMap;
|
|
3414
|
+
this.couplingMap = couplingMap;
|
|
3415
|
+
}
|
|
3416
|
+
changeFreqMap;
|
|
3417
|
+
couplingMap;
|
|
3418
|
+
static BASE_WEIGHTS = {
|
|
3419
|
+
imports: 0.7,
|
|
3420
|
+
calls: 0.5,
|
|
3421
|
+
implements: 0.6,
|
|
3422
|
+
inherits: 0.6,
|
|
3423
|
+
co_changes_with: 0.4,
|
|
3424
|
+
references: 0.2,
|
|
3425
|
+
contains: 0.3
|
|
3426
|
+
};
|
|
3427
|
+
static FALLBACK_WEIGHT = 0.1;
|
|
3428
|
+
static EDGE_TYPE_BLEND = 0.5;
|
|
3429
|
+
static CHANGE_FREQ_BLEND = 0.3;
|
|
3430
|
+
static COUPLING_BLEND = 0.2;
|
|
3431
|
+
getEdgeProbability(edge, _fromNode, toNode) {
|
|
3432
|
+
const base = _CompositeProbabilityStrategy.BASE_WEIGHTS[edge.type] ?? _CompositeProbabilityStrategy.FALLBACK_WEIGHT;
|
|
3433
|
+
const changeFreq = this.changeFreqMap.get(toNode.id) ?? 0;
|
|
3434
|
+
const coupling = this.couplingMap.get(toNode.id) ?? 0;
|
|
3435
|
+
return Math.min(
|
|
3436
|
+
1,
|
|
3437
|
+
base * _CompositeProbabilityStrategy.EDGE_TYPE_BLEND + changeFreq * _CompositeProbabilityStrategy.CHANGE_FREQ_BLEND + coupling * _CompositeProbabilityStrategy.COUPLING_BLEND
|
|
3438
|
+
);
|
|
3439
|
+
}
|
|
3440
|
+
};
|
|
3441
|
+
var DEFAULT_PROBABILITY_FLOOR = 0.05;
|
|
3442
|
+
var DEFAULT_MAX_DEPTH = 10;
|
|
3443
|
+
var CascadeSimulator = class {
|
|
3444
|
+
constructor(store) {
|
|
3445
|
+
this.store = store;
|
|
3446
|
+
}
|
|
3447
|
+
store;
|
|
3448
|
+
simulate(sourceNodeId, options = {}) {
|
|
3449
|
+
const sourceNode = this.store.getNode(sourceNodeId);
|
|
3450
|
+
if (!sourceNode) {
|
|
3451
|
+
throw new Error(`Node not found: ${sourceNodeId}. Ensure the file has been ingested.`);
|
|
3452
|
+
}
|
|
3453
|
+
const probabilityFloor = options.probabilityFloor ?? DEFAULT_PROBABILITY_FLOOR;
|
|
3454
|
+
const maxDepth = options.maxDepth ?? DEFAULT_MAX_DEPTH;
|
|
3455
|
+
const edgeTypeFilter = options.edgeTypes ? new Set(options.edgeTypes) : null;
|
|
3456
|
+
const strategy = options.strategy ?? this.buildDefaultStrategy();
|
|
3457
|
+
const visited = /* @__PURE__ */ new Map();
|
|
3458
|
+
const queue = [];
|
|
3459
|
+
const fanOutCount = /* @__PURE__ */ new Map();
|
|
3460
|
+
this.seedQueue(
|
|
3461
|
+
sourceNodeId,
|
|
3462
|
+
sourceNode,
|
|
3463
|
+
strategy,
|
|
3464
|
+
edgeTypeFilter,
|
|
3465
|
+
probabilityFloor,
|
|
3466
|
+
queue,
|
|
3467
|
+
fanOutCount
|
|
3468
|
+
);
|
|
3469
|
+
const truncated = this.runBfs(
|
|
3470
|
+
queue,
|
|
3471
|
+
visited,
|
|
3472
|
+
fanOutCount,
|
|
3473
|
+
sourceNodeId,
|
|
3474
|
+
strategy,
|
|
3475
|
+
edgeTypeFilter,
|
|
3476
|
+
probabilityFloor,
|
|
3477
|
+
maxDepth
|
|
3478
|
+
);
|
|
3479
|
+
return this.buildResult(sourceNodeId, sourceNode.name, visited, fanOutCount, truncated);
|
|
3480
|
+
}
|
|
3481
|
+
seedQueue(sourceNodeId, sourceNode, strategy, edgeTypeFilter, probabilityFloor, queue, fanOutCount) {
|
|
3482
|
+
const sourceEdges = this.store.getEdges({ from: sourceNodeId });
|
|
3483
|
+
for (const edge of sourceEdges) {
|
|
3484
|
+
if (edge.to === sourceNodeId) continue;
|
|
3485
|
+
if (edgeTypeFilter && !edgeTypeFilter.has(edge.type)) continue;
|
|
3486
|
+
const targetNode = this.store.getNode(edge.to);
|
|
3487
|
+
if (!targetNode) continue;
|
|
3488
|
+
const cumProb = strategy.getEdgeProbability(edge, sourceNode, targetNode);
|
|
3489
|
+
if (cumProb < probabilityFloor) continue;
|
|
3490
|
+
queue.push({
|
|
3491
|
+
nodeId: edge.to,
|
|
3492
|
+
cumProb,
|
|
3493
|
+
depth: 1,
|
|
3494
|
+
parentId: sourceNodeId,
|
|
3495
|
+
incomingEdge: edge.type
|
|
3496
|
+
});
|
|
3497
|
+
}
|
|
3498
|
+
fanOutCount.set(
|
|
3499
|
+
sourceNodeId,
|
|
3500
|
+
sourceEdges.filter(
|
|
3501
|
+
(e) => e.to !== sourceNodeId && (!edgeTypeFilter || edgeTypeFilter.has(e.type))
|
|
3502
|
+
).length
|
|
3503
|
+
);
|
|
3504
|
+
}
|
|
3505
|
+
runBfs(queue, visited, fanOutCount, sourceNodeId, strategy, edgeTypeFilter, probabilityFloor, maxDepth) {
|
|
3506
|
+
const MAX_QUEUE_SIZE = 1e4;
|
|
3507
|
+
let head = 0;
|
|
3508
|
+
while (head < queue.length) {
|
|
3509
|
+
if (queue.length > MAX_QUEUE_SIZE) return true;
|
|
3510
|
+
const entry = queue[head++];
|
|
3511
|
+
const existing = visited.get(entry.nodeId);
|
|
3512
|
+
if (existing && existing.cumulativeProbability >= entry.cumProb) continue;
|
|
3513
|
+
const targetNode = this.store.getNode(entry.nodeId);
|
|
3514
|
+
if (!targetNode) continue;
|
|
3515
|
+
visited.set(entry.nodeId, {
|
|
3516
|
+
nodeId: entry.nodeId,
|
|
3517
|
+
name: targetNode.name,
|
|
3518
|
+
...targetNode.path !== void 0 && { path: targetNode.path },
|
|
3519
|
+
type: targetNode.type,
|
|
3520
|
+
cumulativeProbability: entry.cumProb,
|
|
3521
|
+
depth: entry.depth,
|
|
3522
|
+
incomingEdge: entry.incomingEdge,
|
|
3523
|
+
parentId: entry.parentId
|
|
3524
|
+
});
|
|
3525
|
+
if (entry.depth < maxDepth) {
|
|
3526
|
+
const childCount = this.expandNode(
|
|
3527
|
+
entry,
|
|
3528
|
+
targetNode,
|
|
3529
|
+
sourceNodeId,
|
|
3530
|
+
strategy,
|
|
3531
|
+
edgeTypeFilter,
|
|
3532
|
+
probabilityFloor,
|
|
3533
|
+
queue
|
|
3534
|
+
);
|
|
3535
|
+
fanOutCount.set(entry.nodeId, (fanOutCount.get(entry.nodeId) ?? 0) + childCount);
|
|
3536
|
+
}
|
|
3537
|
+
}
|
|
3538
|
+
return false;
|
|
3539
|
+
}
|
|
3540
|
+
expandNode(entry, fromNode, sourceNodeId, strategy, edgeTypeFilter, probabilityFloor, queue) {
|
|
3541
|
+
const outEdges = this.store.getEdges({ from: entry.nodeId });
|
|
3542
|
+
let childCount = 0;
|
|
3543
|
+
for (const edge of outEdges) {
|
|
3544
|
+
if (edgeTypeFilter && !edgeTypeFilter.has(edge.type)) continue;
|
|
3545
|
+
if (edge.to === sourceNodeId) continue;
|
|
3546
|
+
const childNode = this.store.getNode(edge.to);
|
|
3547
|
+
if (!childNode) continue;
|
|
3548
|
+
const newCumProb = entry.cumProb * strategy.getEdgeProbability(edge, fromNode, childNode);
|
|
3549
|
+
if (newCumProb < probabilityFloor) continue;
|
|
3550
|
+
childCount++;
|
|
3551
|
+
queue.push({
|
|
3552
|
+
nodeId: edge.to,
|
|
3553
|
+
cumProb: newCumProb,
|
|
3554
|
+
depth: entry.depth + 1,
|
|
3555
|
+
parentId: entry.nodeId,
|
|
3556
|
+
incomingEdge: edge.type
|
|
3557
|
+
});
|
|
3558
|
+
}
|
|
3559
|
+
return childCount;
|
|
3560
|
+
}
|
|
3561
|
+
buildDefaultStrategy() {
|
|
3562
|
+
return new CompositeProbabilityStrategy(/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map());
|
|
3563
|
+
}
|
|
3564
|
+
buildResult(sourceNodeId, sourceName, visited, fanOutCount, truncated = false) {
|
|
3565
|
+
if (visited.size === 0) {
|
|
3566
|
+
return {
|
|
3567
|
+
sourceNodeId,
|
|
3568
|
+
sourceName,
|
|
3569
|
+
layers: [],
|
|
3570
|
+
flatSummary: [],
|
|
3571
|
+
summary: {
|
|
3572
|
+
totalAffected: 0,
|
|
3573
|
+
maxDepthReached: 0,
|
|
3574
|
+
highRisk: 0,
|
|
3575
|
+
mediumRisk: 0,
|
|
3576
|
+
lowRisk: 0,
|
|
3577
|
+
categoryBreakdown: { code: 0, tests: 0, docs: 0, other: 0 },
|
|
3578
|
+
amplificationPoints: [],
|
|
3579
|
+
truncated
|
|
3580
|
+
}
|
|
3581
|
+
};
|
|
3582
|
+
}
|
|
3583
|
+
const allNodes = Array.from(visited.values());
|
|
3584
|
+
const flatSummary = [...allNodes].sort(
|
|
3585
|
+
(a, b) => b.cumulativeProbability - a.cumulativeProbability
|
|
3586
|
+
);
|
|
3587
|
+
const depthMap = /* @__PURE__ */ new Map();
|
|
3588
|
+
for (const node of allNodes) {
|
|
3589
|
+
let list = depthMap.get(node.depth);
|
|
3590
|
+
if (!list) {
|
|
3591
|
+
list = [];
|
|
3592
|
+
depthMap.set(node.depth, list);
|
|
3593
|
+
}
|
|
3594
|
+
list.push(node);
|
|
3595
|
+
}
|
|
3596
|
+
const layers = [];
|
|
3597
|
+
const depths = Array.from(depthMap.keys()).sort((a, b) => a - b);
|
|
3598
|
+
for (const depth of depths) {
|
|
3599
|
+
const nodes = depthMap.get(depth);
|
|
3600
|
+
const breakdown = { code: 0, tests: 0, docs: 0, other: 0 };
|
|
3601
|
+
for (const n of nodes) {
|
|
3602
|
+
const graphNode = this.store.getNode(n.nodeId);
|
|
3603
|
+
if (graphNode) {
|
|
3604
|
+
breakdown[classifyNodeCategory(graphNode)]++;
|
|
3605
|
+
}
|
|
3606
|
+
}
|
|
3607
|
+
layers.push({ depth, nodes, categoryBreakdown: breakdown });
|
|
3608
|
+
}
|
|
3609
|
+
let highRisk = 0;
|
|
3610
|
+
let mediumRisk = 0;
|
|
3611
|
+
let lowRisk = 0;
|
|
3612
|
+
const catBreakdown = { code: 0, tests: 0, docs: 0, other: 0 };
|
|
3613
|
+
for (const node of allNodes) {
|
|
3614
|
+
if (node.cumulativeProbability >= 0.5) highRisk++;
|
|
3615
|
+
else if (node.cumulativeProbability >= 0.2) mediumRisk++;
|
|
3616
|
+
else lowRisk++;
|
|
3617
|
+
const graphNode = this.store.getNode(node.nodeId);
|
|
3618
|
+
if (graphNode) {
|
|
3619
|
+
catBreakdown[classifyNodeCategory(graphNode)]++;
|
|
3620
|
+
}
|
|
3621
|
+
}
|
|
3622
|
+
const amplificationPoints = [];
|
|
3623
|
+
for (const [nodeId, count] of fanOutCount) {
|
|
3624
|
+
if (count > 3) {
|
|
3625
|
+
amplificationPoints.push(nodeId);
|
|
3626
|
+
}
|
|
3627
|
+
}
|
|
3628
|
+
const maxDepthReached = allNodes.reduce((max, n) => Math.max(max, n.depth), 0);
|
|
3629
|
+
return {
|
|
3630
|
+
sourceNodeId,
|
|
3631
|
+
sourceName,
|
|
3632
|
+
layers,
|
|
3633
|
+
flatSummary,
|
|
3634
|
+
summary: {
|
|
3635
|
+
totalAffected: allNodes.length,
|
|
3636
|
+
maxDepthReached,
|
|
3637
|
+
highRisk,
|
|
3638
|
+
mediumRisk,
|
|
3639
|
+
lowRisk,
|
|
3640
|
+
categoryBreakdown: catBreakdown,
|
|
3641
|
+
amplificationPoints,
|
|
3642
|
+
truncated
|
|
3643
|
+
}
|
|
3644
|
+
};
|
|
3645
|
+
}
|
|
3646
|
+
};
|
|
3395
3647
|
var ENTITY_REQUIRED_INTENTS = /* @__PURE__ */ new Set(["impact", "relationships", "explain"]);
|
|
3396
3648
|
var classifier = new IntentClassifier();
|
|
3397
3649
|
var extractor = new EntityExtractor();
|
|
@@ -3453,6 +3705,11 @@ function executeOperation(store, intent, entities, question, fusion) {
|
|
|
3453
3705
|
switch (intent) {
|
|
3454
3706
|
case "impact": {
|
|
3455
3707
|
const rootId = entities[0].nodeId;
|
|
3708
|
+
const lowerQuestion = question.toLowerCase();
|
|
3709
|
+
if (lowerQuestion.includes("blast radius") || lowerQuestion.includes("cascade")) {
|
|
3710
|
+
const simulator = new CascadeSimulator(store);
|
|
3711
|
+
return simulator.simulate(rootId);
|
|
3712
|
+
}
|
|
3456
3713
|
const result = cql.execute({
|
|
3457
3714
|
rootNodeIds: [rootId],
|
|
3458
3715
|
bidirectional: true,
|
|
@@ -3743,6 +4000,59 @@ var Assembler = class {
|
|
|
3743
4000
|
};
|
|
3744
4001
|
}
|
|
3745
4002
|
};
|
|
4003
|
+
function extractConfidence(edge) {
|
|
4004
|
+
return edge.confidence ?? edge.metadata?.confidence ?? 0;
|
|
4005
|
+
}
|
|
4006
|
+
function extractMethod(edge) {
|
|
4007
|
+
return edge.metadata?.method ?? "convention";
|
|
4008
|
+
}
|
|
4009
|
+
function edgesToTracedFiles(store, edges) {
|
|
4010
|
+
return edges.map((edge) => ({
|
|
4011
|
+
path: store.getNode(edge.to)?.path ?? edge.to,
|
|
4012
|
+
confidence: extractConfidence(edge),
|
|
4013
|
+
method: extractMethod(edge)
|
|
4014
|
+
}));
|
|
4015
|
+
}
|
|
4016
|
+
function determineCoverageStatus(hasCode, hasTests) {
|
|
4017
|
+
if (hasCode && hasTests) return "full";
|
|
4018
|
+
if (hasCode) return "code-only";
|
|
4019
|
+
if (hasTests) return "test-only";
|
|
4020
|
+
return "none";
|
|
4021
|
+
}
|
|
4022
|
+
function computeMaxConfidence(codeFiles, testFiles) {
|
|
4023
|
+
const allConfidences = [
|
|
4024
|
+
...codeFiles.map((f) => f.confidence),
|
|
4025
|
+
...testFiles.map((f) => f.confidence)
|
|
4026
|
+
];
|
|
4027
|
+
return allConfidences.length > 0 ? Math.max(...allConfidences) : 0;
|
|
4028
|
+
}
|
|
4029
|
+
function buildRequirementCoverage(store, req) {
|
|
4030
|
+
const codeFiles = edgesToTracedFiles(store, store.getEdges({ from: req.id, type: "requires" }));
|
|
4031
|
+
const testFiles = edgesToTracedFiles(
|
|
4032
|
+
store,
|
|
4033
|
+
store.getEdges({ from: req.id, type: "verified_by" })
|
|
4034
|
+
);
|
|
4035
|
+
const hasCode = codeFiles.length > 0;
|
|
4036
|
+
const hasTests = testFiles.length > 0;
|
|
4037
|
+
return {
|
|
4038
|
+
requirementId: req.id,
|
|
4039
|
+
requirementName: req.name,
|
|
4040
|
+
index: req.metadata?.index ?? 0,
|
|
4041
|
+
codeFiles,
|
|
4042
|
+
testFiles,
|
|
4043
|
+
status: determineCoverageStatus(hasCode, hasTests),
|
|
4044
|
+
maxConfidence: computeMaxConfidence(codeFiles, testFiles)
|
|
4045
|
+
};
|
|
4046
|
+
}
|
|
4047
|
+
function computeSummary(requirements) {
|
|
4048
|
+
const total = requirements.length;
|
|
4049
|
+
const withCode = requirements.filter((r) => r.codeFiles.length > 0).length;
|
|
4050
|
+
const withTests = requirements.filter((r) => r.testFiles.length > 0).length;
|
|
4051
|
+
const fullyTraced = requirements.filter((r) => r.status === "full").length;
|
|
4052
|
+
const untraceable = requirements.filter((r) => r.status === "none").length;
|
|
4053
|
+
const coveragePercent = total > 0 ? Math.round(fullyTraced / total * 100) : 0;
|
|
4054
|
+
return { total, withCode, withTests, fullyTraced, untraceable, coveragePercent };
|
|
4055
|
+
}
|
|
3746
4056
|
function queryTraceability(store, options) {
|
|
3747
4057
|
const allRequirements = store.findNodes({ type: "requirement" });
|
|
3748
4058
|
const filtered = allRequirements.filter((node) => {
|
|
@@ -3770,56 +4080,13 @@ function queryTraceability(store, options) {
|
|
|
3770
4080
|
const firstMeta = firstReq.metadata;
|
|
3771
4081
|
const specPath = firstMeta?.specPath ?? "";
|
|
3772
4082
|
const featureName = firstMeta?.featureName ?? "";
|
|
3773
|
-
const requirements =
|
|
3774
|
-
for (const req of reqs) {
|
|
3775
|
-
const requiresEdges = store.getEdges({ from: req.id, type: "requires" });
|
|
3776
|
-
const codeFiles = requiresEdges.map((edge) => {
|
|
3777
|
-
const targetNode = store.getNode(edge.to);
|
|
3778
|
-
return {
|
|
3779
|
-
path: targetNode?.path ?? edge.to,
|
|
3780
|
-
confidence: edge.confidence ?? edge.metadata?.confidence ?? 0,
|
|
3781
|
-
method: edge.metadata?.method ?? "convention"
|
|
3782
|
-
};
|
|
3783
|
-
});
|
|
3784
|
-
const verifiedByEdges = store.getEdges({ from: req.id, type: "verified_by" });
|
|
3785
|
-
const testFiles = verifiedByEdges.map((edge) => {
|
|
3786
|
-
const targetNode = store.getNode(edge.to);
|
|
3787
|
-
return {
|
|
3788
|
-
path: targetNode?.path ?? edge.to,
|
|
3789
|
-
confidence: edge.confidence ?? edge.metadata?.confidence ?? 0,
|
|
3790
|
-
method: edge.metadata?.method ?? "convention"
|
|
3791
|
-
};
|
|
3792
|
-
});
|
|
3793
|
-
const hasCode = codeFiles.length > 0;
|
|
3794
|
-
const hasTests = testFiles.length > 0;
|
|
3795
|
-
const status = hasCode && hasTests ? "full" : hasCode ? "code-only" : hasTests ? "test-only" : "none";
|
|
3796
|
-
const allConfidences = [
|
|
3797
|
-
...codeFiles.map((f) => f.confidence),
|
|
3798
|
-
...testFiles.map((f) => f.confidence)
|
|
3799
|
-
];
|
|
3800
|
-
const maxConfidence = allConfidences.length > 0 ? Math.max(...allConfidences) : 0;
|
|
3801
|
-
requirements.push({
|
|
3802
|
-
requirementId: req.id,
|
|
3803
|
-
requirementName: req.name,
|
|
3804
|
-
index: req.metadata?.index ?? 0,
|
|
3805
|
-
codeFiles,
|
|
3806
|
-
testFiles,
|
|
3807
|
-
status,
|
|
3808
|
-
maxConfidence
|
|
3809
|
-
});
|
|
3810
|
-
}
|
|
4083
|
+
const requirements = reqs.map((req) => buildRequirementCoverage(store, req));
|
|
3811
4084
|
requirements.sort((a, b) => a.index - b.index);
|
|
3812
|
-
const total = requirements.length;
|
|
3813
|
-
const withCode = requirements.filter((r) => r.codeFiles.length > 0).length;
|
|
3814
|
-
const withTests = requirements.filter((r) => r.testFiles.length > 0).length;
|
|
3815
|
-
const fullyTraced = requirements.filter((r) => r.status === "full").length;
|
|
3816
|
-
const untraceable = requirements.filter((r) => r.status === "none").length;
|
|
3817
|
-
const coveragePercent = total > 0 ? Math.round(fullyTraced / total * 100) : 0;
|
|
3818
4085
|
results.push({
|
|
3819
4086
|
specPath,
|
|
3820
4087
|
featureName,
|
|
3821
4088
|
requirements,
|
|
3822
|
-
summary:
|
|
4089
|
+
summary: computeSummary(requirements)
|
|
3823
4090
|
});
|
|
3824
4091
|
}
|
|
3825
4092
|
return results;
|
|
@@ -4625,7 +4892,7 @@ var ConflictPredictor = class {
|
|
|
4625
4892
|
return parts.join(" ");
|
|
4626
4893
|
}
|
|
4627
4894
|
};
|
|
4628
|
-
var VERSION = "0.
|
|
4895
|
+
var VERSION = "0.4.0";
|
|
4629
4896
|
|
|
4630
4897
|
export {
|
|
4631
4898
|
NODE_TYPES,
|
|
@@ -4640,6 +4907,7 @@ export {
|
|
|
4640
4907
|
VectorStore,
|
|
4641
4908
|
ContextQL,
|
|
4642
4909
|
project,
|
|
4910
|
+
classifyNodeCategory,
|
|
4643
4911
|
groupNodesByImpact,
|
|
4644
4912
|
CodeIngestor,
|
|
4645
4913
|
GitIngestor,
|
|
@@ -4662,6 +4930,8 @@ export {
|
|
|
4662
4930
|
EntityExtractor,
|
|
4663
4931
|
EntityResolver,
|
|
4664
4932
|
ResponseFormatter,
|
|
4933
|
+
CompositeProbabilityStrategy,
|
|
4934
|
+
CascadeSimulator,
|
|
4665
4935
|
askGraph,
|
|
4666
4936
|
Assembler,
|
|
4667
4937
|
queryTraceability,
|
|
@@ -15,7 +15,7 @@ function evictIfNeeded() {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
async function doLoadGraphStore(projectRoot) {
|
|
18
|
-
const { GraphStore } = await import("./dist-
|
|
18
|
+
const { GraphStore } = await import("./dist-WU3TVNNG.js");
|
|
19
19
|
const graphDir = path.join(projectRoot, ".harness", "graph");
|
|
20
20
|
const store = new GraphStore();
|
|
21
21
|
const loaded = await store.load(graphDir);
|
|
@@ -33,7 +33,7 @@ var createSelfReviewDefinition = {
|
|
|
33
33
|
};
|
|
34
34
|
async function handleCreateSelfReview(input) {
|
|
35
35
|
try {
|
|
36
|
-
const { parseDiff, createSelfReview } = await import("./dist-
|
|
36
|
+
const { parseDiff, createSelfReview } = await import("./dist-MKWF5CXR.js");
|
|
37
37
|
const parseResult = parseDiff(input.diff);
|
|
38
38
|
if (!parseResult.ok) {
|
|
39
39
|
return resultToMcpResponse(parseResult);
|
|
@@ -53,11 +53,11 @@ async function handleCreateSelfReview(input) {
|
|
|
53
53
|
...input.maxFileCount !== void 0 ? { maxChangedFiles: input.maxFileCount } : {}
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
-
const { loadGraphStore } = await import("./graph-loader-
|
|
56
|
+
const { loadGraphStore } = await import("./graph-loader-BJULJYGG.js");
|
|
57
57
|
const store = await loadGraphStore(projectPath);
|
|
58
58
|
let graphData;
|
|
59
59
|
if (store) {
|
|
60
|
-
const { GraphFeedbackAdapter } = await import("./dist-
|
|
60
|
+
const { GraphFeedbackAdapter } = await import("./dist-WU3TVNNG.js");
|
|
61
61
|
const adapter = new GraphFeedbackAdapter(store);
|
|
62
62
|
const changedFiles = parseResult.value.files.map((f) => f.path);
|
|
63
63
|
const impact = adapter.computeImpactData(changedFiles);
|
|
@@ -119,7 +119,7 @@ var analyzeDiffDefinition = {
|
|
|
119
119
|
};
|
|
120
120
|
async function handleAnalyzeDiff(input) {
|
|
121
121
|
try {
|
|
122
|
-
const { parseDiff, analyzeDiff } = await import("./dist-
|
|
122
|
+
const { parseDiff, analyzeDiff } = await import("./dist-MKWF5CXR.js");
|
|
123
123
|
const parseResult = parseDiff(input.diff);
|
|
124
124
|
if (!parseResult.ok) {
|
|
125
125
|
return resultToMcpResponse(parseResult);
|
|
@@ -139,10 +139,10 @@ async function handleAnalyzeDiff(input) {
|
|
|
139
139
|
let graphImpactData;
|
|
140
140
|
if (input.path) {
|
|
141
141
|
try {
|
|
142
|
-
const { loadGraphStore } = await import("./graph-loader-
|
|
142
|
+
const { loadGraphStore } = await import("./graph-loader-BJULJYGG.js");
|
|
143
143
|
const store = await loadGraphStore(sanitizePath(input.path));
|
|
144
144
|
if (store) {
|
|
145
|
-
const { GraphFeedbackAdapter } = await import("./dist-
|
|
145
|
+
const { GraphFeedbackAdapter } = await import("./dist-WU3TVNNG.js");
|
|
146
146
|
const adapter = new GraphFeedbackAdapter(store);
|
|
147
147
|
const changedFiles = parseResult.value.files.map((f) => f.path);
|
|
148
148
|
const impact = adapter.computeImpactData(changedFiles);
|
|
@@ -195,7 +195,7 @@ var requestPeerReviewDefinition = {
|
|
|
195
195
|
};
|
|
196
196
|
async function handleRequestPeerReview(input) {
|
|
197
197
|
try {
|
|
198
|
-
const { parseDiff, requestPeerReview } = await import("./dist-
|
|
198
|
+
const { parseDiff, requestPeerReview } = await import("./dist-MKWF5CXR.js");
|
|
199
199
|
const parseResult = parseDiff(input.diff);
|
|
200
200
|
if (!parseResult.ok) {
|
|
201
201
|
return resultToMcpResponse(parseResult);
|
|
@@ -206,10 +206,10 @@ async function handleRequestPeerReview(input) {
|
|
|
206
206
|
...input.context ? { metadata: { context: input.context } } : {}
|
|
207
207
|
};
|
|
208
208
|
try {
|
|
209
|
-
const { loadGraphStore } = await import("./graph-loader-
|
|
209
|
+
const { loadGraphStore } = await import("./graph-loader-BJULJYGG.js");
|
|
210
210
|
const store = await loadGraphStore(sanitizePath(input.path));
|
|
211
211
|
if (store) {
|
|
212
|
-
const { GraphFeedbackAdapter } = await import("./dist-
|
|
212
|
+
const { GraphFeedbackAdapter } = await import("./dist-WU3TVNNG.js");
|
|
213
213
|
const adapter = new GraphFeedbackAdapter(store);
|
|
214
214
|
const changedFiles = parseResult.value.files.map((f) => f.path);
|
|
215
215
|
const impactData = adapter.computeImpactData(changedFiles);
|