@jeger-ai/opengantry 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -14
- package/dist/cli/commands/audit-rigor.d.ts +8 -0
- package/dist/cli/commands/audit-rigor.d.ts.map +1 -0
- package/dist/cli/commands/audit-rigor.js +24 -0
- package/dist/cli/commands/audit-rigor.js.map +1 -0
- package/dist/cli/commands/context-feed.d.ts +6 -0
- package/dist/cli/commands/context-feed.d.ts.map +1 -0
- package/dist/cli/commands/context-feed.js +48 -0
- package/dist/cli/commands/context-feed.js.map +1 -0
- package/dist/cli/commands/context-request.d.ts +11 -0
- package/dist/cli/commands/context-request.d.ts.map +1 -0
- package/dist/cli/commands/context-request.js +74 -0
- package/dist/cli/commands/context-request.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +1 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +6 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/legislate.d.ts +1 -1
- package/dist/cli/commands/legislate.d.ts.map +1 -1
- package/dist/cli/commands/legislate.js +1 -1
- package/dist/cli/commands/legislate.js.map +1 -1
- package/dist/cli/commands/mission.js +3 -3
- package/dist/cli/commands/mission.js.map +1 -1
- package/dist/cli/commands/onboarding.d.ts.map +1 -1
- package/dist/cli/commands/onboarding.js +12 -9
- package/dist/cli/commands/onboarding.js.map +1 -1
- package/dist/cli/commands/perimeter.js +1 -1
- package/dist/cli/commands/perimeter.js.map +1 -1
- package/dist/cli/commands/runtime.js +1 -1
- package/dist/cli/commands/runtime.js.map +1 -1
- package/dist/cli/commands/scan.js +1 -1
- package/dist/cli/commands/scan.js.map +1 -1
- package/dist/cli/commands/tmvc-guard.d.ts +7 -0
- package/dist/cli/commands/tmvc-guard.d.ts.map +1 -0
- package/dist/cli/commands/tmvc-guard.js +63 -0
- package/dist/cli/commands/tmvc-guard.js.map +1 -0
- package/dist/cli/commands/triage.js +2 -2
- package/dist/cli/commands/triage.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +3 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/verify.d.ts +2 -2
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +7 -7
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/architecture-pointer.d.ts +33 -5
- package/dist/cli/lib/architecture-pointer.d.ts.map +1 -1
- package/dist/cli/lib/architecture-pointer.js +304 -5
- package/dist/cli/lib/architecture-pointer.js.map +1 -1
- package/dist/cli/lib/ast-discovery.d.ts.map +1 -1
- package/dist/cli/lib/ast-discovery.js +7 -16
- package/dist/cli/lib/ast-discovery.js.map +1 -1
- package/dist/cli/lib/audit-rigor.d.ts +18 -0
- package/dist/cli/lib/audit-rigor.d.ts.map +1 -0
- package/dist/cli/lib/audit-rigor.js +189 -0
- package/dist/cli/lib/audit-rigor.js.map +1 -0
- package/dist/cli/lib/banned-import-violation.d.ts +8 -0
- package/dist/cli/lib/banned-import-violation.d.ts.map +1 -0
- package/dist/cli/lib/banned-import-violation.js +15 -0
- package/dist/cli/lib/banned-import-violation.js.map +1 -0
- package/dist/cli/lib/break-glass.d.ts +17 -0
- package/dist/cli/lib/break-glass.d.ts.map +1 -1
- package/dist/cli/lib/break-glass.js +28 -1
- package/dist/cli/lib/break-glass.js.map +1 -1
- package/dist/cli/lib/cli-io.d.ts +8 -0
- package/dist/cli/lib/cli-io.d.ts.map +1 -1
- package/dist/cli/lib/cli-io.js +16 -0
- package/dist/cli/lib/cli-io.js.map +1 -1
- package/dist/cli/lib/command-reporter.d.ts +3 -3
- package/dist/cli/lib/command-reporter.d.ts.map +1 -1
- package/dist/cli/lib/constants.d.ts +6 -0
- package/dist/cli/lib/constants.d.ts.map +1 -1
- package/dist/cli/lib/constants.js +6 -0
- package/dist/cli/lib/constants.js.map +1 -1
- package/dist/cli/lib/context-feed-remediation.d.ts +12 -0
- package/dist/cli/lib/context-feed-remediation.d.ts.map +1 -0
- package/dist/cli/lib/context-feed-remediation.js +88 -0
- package/dist/cli/lib/context-feed-remediation.js.map +1 -0
- package/dist/cli/lib/context-feed-store.d.ts +33 -0
- package/dist/cli/lib/context-feed-store.d.ts.map +1 -0
- package/dist/cli/lib/context-feed-store.js +110 -0
- package/dist/cli/lib/context-feed-store.js.map +1 -0
- package/dist/cli/lib/context-request.d.ts +22 -0
- package/dist/cli/lib/context-request.d.ts.map +1 -0
- package/dist/cli/lib/context-request.js +45 -0
- package/dist/cli/lib/context-request.js.map +1 -0
- package/dist/cli/lib/dirty-missions.js +1 -1
- package/dist/cli/lib/dirty-missions.js.map +1 -1
- package/dist/cli/lib/doctor-core.d.ts +5 -0
- package/dist/cli/lib/doctor-core.d.ts.map +1 -0
- package/dist/cli/lib/{doctor-checks.js → doctor-core.js} +34 -9
- package/dist/cli/lib/doctor-core.js.map +1 -0
- package/dist/cli/lib/doctor-integration.d.ts +13 -0
- package/dist/cli/lib/doctor-integration.d.ts.map +1 -0
- package/dist/cli/lib/{doctor-integration-checks.js → doctor-integration.js} +38 -7
- package/dist/cli/lib/doctor-integration.js.map +1 -0
- package/dist/cli/lib/doctor-substrate.d.ts +3 -0
- package/dist/cli/lib/doctor-substrate.d.ts.map +1 -0
- package/dist/cli/lib/{doctor-substrate-drift.js → doctor-substrate.js} +1 -1
- package/dist/cli/lib/doctor-substrate.js.map +1 -0
- package/dist/cli/lib/{doctor-checks.d.ts → doctor-types.d.ts} +11 -3
- package/dist/cli/lib/doctor-types.d.ts.map +1 -0
- package/dist/cli/lib/doctor-types.js +7 -0
- package/dist/cli/lib/doctor-types.js.map +1 -0
- package/dist/cli/lib/doctor.d.ts +5 -0
- package/dist/cli/lib/doctor.d.ts.map +1 -0
- package/dist/cli/lib/doctor.js +5 -0
- package/dist/cli/lib/doctor.js.map +1 -0
- package/dist/cli/lib/draft-token.js +1 -1
- package/dist/cli/lib/draft-token.js.map +1 -1
- package/dist/cli/lib/{user-error.d.ts → errors.d.ts} +20 -1
- package/dist/cli/lib/errors.d.ts.map +1 -0
- package/dist/cli/lib/{agent-error.js → errors.js} +64 -1
- package/dist/cli/lib/errors.js.map +1 -0
- package/dist/cli/lib/fix-hints.d.ts +1 -1
- package/dist/cli/lib/fix-hints.d.ts.map +1 -1
- package/dist/cli/lib/gate-work-dir.d.ts +6 -0
- package/dist/cli/lib/gate-work-dir.d.ts.map +1 -0
- package/dist/cli/lib/gate-work-dir.js +6 -0
- package/dist/cli/lib/gate-work-dir.js.map +1 -0
- package/dist/cli/lib/git-metrics.d.ts +34 -0
- package/dist/cli/lib/git-metrics.d.ts.map +1 -1
- package/dist/cli/lib/git-metrics.js +199 -3
- package/dist/cli/lib/git-metrics.js.map +1 -1
- package/dist/cli/lib/git-proof.d.ts +4 -0
- package/dist/cli/lib/git-proof.d.ts.map +1 -1
- package/dist/cli/lib/git-proof.js +22 -8
- package/dist/cli/lib/git-proof.js.map +1 -1
- package/dist/cli/lib/git-staged.d.ts +20 -0
- package/dist/cli/lib/git-staged.d.ts.map +1 -0
- package/dist/cli/lib/git-staged.js +37 -0
- package/dist/cli/lib/git-staged.js.map +1 -0
- package/dist/cli/lib/git.d.ts +25 -0
- package/dist/cli/lib/git.d.ts.map +1 -1
- package/dist/cli/lib/git.js +52 -0
- package/dist/cli/lib/git.js.map +1 -1
- package/dist/cli/lib/gxt-error-codes.d.ts +4 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +4 -0
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/import-scanner.d.ts +14 -0
- package/dist/cli/lib/import-scanner.d.ts.map +1 -0
- package/dist/cli/lib/import-scanner.js +67 -0
- package/dist/cli/lib/import-scanner.js.map +1 -0
- package/dist/cli/lib/{init-compose-arch-pointer.d.ts → init-compose.d.ts} +4 -1
- package/dist/cli/lib/init-compose.d.ts.map +1 -0
- package/dist/cli/lib/{init-compose-arch-pointer.js → init-compose.js} +37 -1
- package/dist/cli/lib/init-compose.js.map +1 -0
- package/dist/cli/lib/init-interactive.js +2 -2
- package/dist/cli/lib/init-interactive.js.map +1 -1
- package/dist/cli/lib/init-tutorial.d.ts.map +1 -1
- package/dist/cli/lib/init-tutorial.js +10 -10
- package/dist/cli/lib/init-tutorial.js.map +1 -1
- package/dist/cli/lib/integration-compat.d.ts +7 -0
- package/dist/cli/lib/integration-compat.d.ts.map +1 -1
- package/dist/cli/lib/integration-compat.js +14 -0
- package/dist/cli/lib/integration-compat.js.map +1 -1
- package/dist/cli/lib/kpi-engine.d.ts +32 -0
- package/dist/cli/lib/kpi-engine.d.ts.map +1 -0
- package/dist/cli/lib/kpi-engine.js +279 -0
- package/dist/cli/lib/kpi-engine.js.map +1 -0
- package/dist/cli/lib/kpi-scan.d.ts +2 -0
- package/dist/cli/lib/kpi-scan.d.ts.map +1 -1
- package/dist/cli/lib/kpi-scan.js +8 -4
- package/dist/cli/lib/kpi-scan.js.map +1 -1
- package/dist/cli/lib/legislate.d.ts +39 -0
- package/dist/cli/lib/legislate.d.ts.map +1 -0
- package/dist/cli/lib/{legislate-core.js → legislate.js} +31 -6
- package/dist/cli/lib/legislate.js.map +1 -0
- package/dist/cli/lib/mcp-governance.d.ts +124 -0
- package/dist/cli/lib/mcp-governance.d.ts.map +1 -0
- package/dist/cli/lib/mcp-governance.js +231 -0
- package/dist/cli/lib/mcp-governance.js.map +1 -0
- package/dist/cli/lib/mcp-runtime.d.ts +4 -4
- package/dist/cli/lib/mcp-runtime.d.ts.map +1 -1
- package/dist/cli/lib/mcp-runtime.js +3 -3
- package/dist/cli/lib/mcp-runtime.js.map +1 -1
- package/dist/cli/lib/mcp-tools-register.js +2 -3
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/mcp-upgrade.d.ts +11 -2
- package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
- package/dist/cli/lib/mcp-upgrade.js +6 -2
- package/dist/cli/lib/mcp-upgrade.js.map +1 -1
- package/dist/cli/lib/missions/formatter.d.ts +17 -0
- package/dist/cli/lib/missions/formatter.d.ts.map +1 -0
- package/dist/cli/lib/{mission-markdown.js → missions/formatter.js} +58 -2
- package/dist/cli/lib/missions/formatter.js.map +1 -0
- package/dist/cli/lib/missions/parser.d.ts +45 -0
- package/dist/cli/lib/missions/parser.d.ts.map +1 -0
- package/dist/cli/lib/missions/parser.js +271 -0
- package/dist/cli/lib/missions/parser.js.map +1 -0
- package/dist/cli/lib/{mission-schema-validate.d.ts → missions/validator.d.ts} +1 -1
- package/dist/cli/lib/missions/validator.d.ts.map +1 -0
- package/dist/cli/lib/{mission-schema-validate.js → missions/validator.js} +4 -3
- package/dist/cli/lib/missions/validator.js.map +1 -0
- package/dist/cli/lib/msn-allocate.js +3 -3
- package/dist/cli/lib/msn-allocate.js.map +1 -1
- package/dist/cli/lib/perimeter.d.ts +19 -1
- package/dist/cli/lib/perimeter.d.ts.map +1 -1
- package/dist/cli/lib/perimeter.js +139 -51
- package/dist/cli/lib/perimeter.js.map +1 -1
- package/dist/cli/lib/register-proposals.d.ts +1 -1
- package/dist/cli/lib/register-proposals.d.ts.map +1 -1
- package/dist/cli/lib/register-proposals.js +5 -1
- package/dist/cli/lib/register-proposals.js.map +1 -1
- package/dist/cli/lib/runtime-env.js +2 -2
- package/dist/cli/lib/runtime-env.js.map +1 -1
- package/dist/cli/lib/runtime-exec.d.ts +48 -4
- package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
- package/dist/cli/lib/runtime-exec.js +218 -4
- package/dist/cli/lib/runtime-exec.js.map +1 -1
- package/dist/cli/lib/staged-tmvc-guard.d.ts +26 -0
- package/dist/cli/lib/staged-tmvc-guard.d.ts.map +1 -0
- package/dist/cli/lib/staged-tmvc-guard.js +58 -0
- package/dist/cli/lib/staged-tmvc-guard.js.map +1 -0
- package/dist/cli/lib/start-orchestration.d.ts.map +1 -1
- package/dist/cli/lib/start-orchestration.js +20 -41
- package/dist/cli/lib/start-orchestration.js.map +1 -1
- package/dist/cli/lib/{start-state.d.ts → start-snapshot.d.ts} +1 -1
- package/dist/cli/lib/start-snapshot.d.ts.map +1 -0
- package/dist/cli/lib/{start-state.js → start-snapshot.js} +3 -8
- package/dist/cli/lib/start-snapshot.js.map +1 -0
- package/dist/cli/lib/status-report.d.ts +1 -1
- package/dist/cli/lib/status-report.d.ts.map +1 -1
- package/dist/cli/lib/status-report.js +2 -2
- package/dist/cli/lib/status-report.js.map +1 -1
- package/dist/cli/lib/surgeon.d.ts +23 -0
- package/dist/cli/lib/surgeon.d.ts.map +1 -0
- package/dist/cli/lib/surgeon.js +63 -0
- package/dist/cli/lib/surgeon.js.map +1 -0
- package/dist/cli/lib/surgeons/banned-import.d.ts +4 -0
- package/dist/cli/lib/surgeons/banned-import.d.ts.map +1 -0
- package/dist/cli/lib/surgeons/banned-import.js +37 -0
- package/dist/cli/lib/surgeons/banned-import.js.map +1 -0
- package/dist/cli/lib/surgeons/import-layer.d.ts +3 -0
- package/dist/cli/lib/surgeons/import-layer.d.ts.map +1 -0
- package/dist/cli/lib/surgeons/import-layer.js +74 -0
- package/dist/cli/lib/surgeons/import-layer.js.map +1 -0
- package/dist/cli/lib/surgeons/quarantine-import.d.ts +24 -0
- package/dist/cli/lib/surgeons/quarantine-import.d.ts.map +1 -0
- package/dist/cli/lib/surgeons/quarantine-import.js +128 -0
- package/dist/cli/lib/surgeons/quarantine-import.js.map +1 -0
- package/dist/cli/lib/surgeons/registry.d.ts +22 -0
- package/dist/cli/lib/surgeons/registry.d.ts.map +1 -0
- package/dist/cli/lib/surgeons/registry.js +27 -0
- package/dist/cli/lib/surgeons/registry.js.map +1 -0
- package/dist/cli/lib/surgeons/typescript-workspace.d.ts +7 -0
- package/dist/cli/lib/surgeons/typescript-workspace.d.ts.map +1 -0
- package/dist/cli/lib/surgeons/typescript-workspace.js +41 -0
- package/dist/cli/lib/surgeons/typescript-workspace.js.map +1 -0
- package/dist/cli/lib/teacher-identity.js +1 -1
- package/dist/cli/lib/teacher-identity.js.map +1 -1
- package/dist/cli/lib/tmvc-path.d.ts +12 -0
- package/dist/cli/lib/tmvc-path.d.ts.map +1 -0
- package/dist/cli/lib/tmvc-path.js +47 -0
- package/dist/cli/lib/tmvc-path.js.map +1 -0
- package/dist/cli/lib/trace.d.ts +28 -1
- package/dist/cli/lib/trace.d.ts.map +1 -1
- package/dist/cli/lib/trace.js +153 -3
- package/dist/cli/lib/trace.js.map +1 -1
- package/dist/cli/lib/types.d.ts +4 -1
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-apply.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-apply.js +6 -2
- package/dist/cli/lib/upgrade-apply.js.map +1 -1
- package/dist/cli/lib/upgrade-plan-payload.d.ts +31 -0
- package/dist/cli/lib/upgrade-plan-payload.d.ts.map +1 -0
- package/dist/cli/lib/upgrade-plan-payload.js +109 -0
- package/dist/cli/lib/upgrade-plan-payload.js.map +1 -0
- package/dist/cli/lib/upgrade-plan.d.ts +19 -1
- package/dist/cli/lib/upgrade-plan.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-plan.js +78 -6
- package/dist/cli/lib/upgrade-plan.js.map +1 -1
- package/dist/cli/lib/verify-changed-missions.js +1 -1
- package/dist/cli/lib/verify-changed-missions.js.map +1 -1
- package/dist/cli/lib/verify-engine.d.ts +36 -6
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +74 -25
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/{verify-failure-presentation.d.ts → verify-failure-format.d.ts} +3 -4
- package/dist/cli/lib/verify-failure-format.d.ts.map +1 -0
- package/dist/cli/lib/{verify-failure-presentation.js → verify-failure-format.js} +2 -2
- package/dist/cli/lib/verify-failure-format.js.map +1 -0
- package/dist/cli/lib/verify-hints.d.ts +32 -0
- package/dist/cli/lib/verify-hints.d.ts.map +1 -0
- package/dist/cli/lib/verify-hints.js +161 -0
- package/dist/cli/lib/verify-hints.js.map +1 -0
- package/dist/cli/lib/{verify-result-payload.d.ts → verify-payload.d.ts} +2 -8
- package/dist/cli/lib/verify-payload.d.ts.map +1 -0
- package/dist/cli/lib/{verify-result-payload.js → verify-payload.js} +9 -26
- package/dist/cli/lib/verify-payload.js.map +1 -0
- package/dist/cli/lib/verify-present.d.ts +6 -19
- package/dist/cli/lib/verify-present.d.ts.map +1 -1
- package/dist/cli/lib/verify-present.js +3 -122
- package/dist/cli/lib/verify-present.js.map +1 -1
- package/dist/cli/lib/verify-presentation.d.ts +8 -0
- package/dist/cli/lib/verify-presentation.d.ts.map +1 -0
- package/dist/cli/lib/verify-presentation.js +5 -0
- package/dist/cli/lib/verify-presentation.js.map +1 -0
- package/dist/cli/lib/verify-presenters.d.ts +19 -0
- package/dist/cli/lib/verify-presenters.d.ts.map +1 -0
- package/dist/cli/lib/verify-presenters.js +173 -0
- package/dist/cli/lib/verify-presenters.js.map +1 -0
- package/dist/cli/lib/verify-remediation.d.ts +4 -30
- package/dist/cli/lib/verify-remediation.d.ts.map +1 -1
- package/dist/cli/lib/verify-remediation.js +2 -149
- package/dist/cli/lib/verify-remediation.js.map +1 -1
- package/dist/cli/lib/verify-run.d.ts +6 -4
- package/dist/cli/lib/verify-run.d.ts.map +1 -1
- package/dist/cli/lib/verify-run.js +23 -8
- package/dist/cli/lib/verify-run.js.map +1 -1
- package/dist/cli/lib/verify-sinks.d.ts +4 -0
- package/dist/cli/lib/verify-sinks.d.ts.map +1 -0
- package/dist/cli/lib/verify-sinks.js +12 -0
- package/dist/cli/lib/verify-sinks.js.map +1 -0
- package/dist/cli/lib/version.gen.d.ts +1 -1
- package/dist/cli/lib/version.gen.js +1 -1
- package/dist/cli/lib/virtual-scratch-store.d.ts +37 -0
- package/dist/cli/lib/virtual-scratch-store.d.ts.map +1 -0
- package/dist/cli/lib/virtual-scratch-store.js +132 -0
- package/dist/cli/lib/virtual-scratch-store.js.map +1 -0
- package/dist/cli/program-core.d.ts.map +1 -1
- package/dist/cli/program-core.js +52 -29
- package/dist/cli/program-core.js.map +1 -1
- package/dist/cli/program-mission.d.ts.map +1 -1
- package/dist/cli/program-mission.js +38 -1
- package/dist/cli/program-mission.js.map +1 -1
- package/dist/cli/program-workflow.d.ts.map +1 -1
- package/dist/cli/program-workflow.js +30 -20
- package/dist/cli/program-workflow.js.map +1 -1
- package/package.json +3 -2
- package/templates/.cursor/rules/opengantry-gxt-substrate.mdc +1 -0
- package/templates/.gitagent/teacher/MISSION.schema.yaml +6 -0
- package/templates/.gitagent/teacher/WORKER_LOG.template.md +1 -0
- package/templates/.githooks/pre-commit +26 -0
- package/templates/.github/workflows/gxt-validate.yml +5 -0
- package/templates/.gitignore.gxt +2 -0
- package/templates/AGENTS.md +4 -0
- package/templates/integrations/asset-catalog.json +30 -28
- package/templates/integrations/compatibility.json +10 -1
- package/templates/integrations/recipes/_footer.md +4 -0
- package/templates/integrations/recipes/claude-code.md +6 -4
- package/templates/integrations/recipes/codex-cli.md +6 -4
- package/templates/integrations/recipes/opencode.md +8 -2
- package/templates/scripts/gxt-shell-agent.sh +62 -0
- package/dist/cli/lib/agent-error.d.ts +0 -20
- package/dist/cli/lib/agent-error.d.ts.map +0 -1
- package/dist/cli/lib/agent-error.js.map +0 -1
- package/dist/cli/lib/architecture-pointer-discovery.d.ts +0 -7
- package/dist/cli/lib/architecture-pointer-discovery.d.ts.map +0 -1
- package/dist/cli/lib/architecture-pointer-discovery.js +0 -60
- package/dist/cli/lib/architecture-pointer-discovery.js.map +0 -1
- package/dist/cli/lib/architecture-pointer-doctor.d.ts +0 -3
- package/dist/cli/lib/architecture-pointer-doctor.d.ts.map +0 -1
- package/dist/cli/lib/architecture-pointer-doctor.js +0 -115
- package/dist/cli/lib/architecture-pointer-doctor.js.map +0 -1
- package/dist/cli/lib/architecture-pointer-schema.d.ts +0 -5
- package/dist/cli/lib/architecture-pointer-schema.d.ts.map +0 -1
- package/dist/cli/lib/architecture-pointer-schema.js +0 -138
- package/dist/cli/lib/architecture-pointer-schema.js.map +0 -1
- package/dist/cli/lib/architecture-pointer-types.d.ts +0 -24
- package/dist/cli/lib/architecture-pointer-types.d.ts.map +0 -1
- package/dist/cli/lib/architecture-pointer-types.js +0 -7
- package/dist/cli/lib/architecture-pointer-types.js.map +0 -1
- package/dist/cli/lib/break-glass-flow.d.ts +0 -18
- package/dist/cli/lib/break-glass-flow.d.ts.map +0 -1
- package/dist/cli/lib/break-glass-flow.js +0 -29
- package/dist/cli/lib/break-glass-flow.js.map +0 -1
- package/dist/cli/lib/cli-timeout.d.ts +0 -9
- package/dist/cli/lib/cli-timeout.d.ts.map +0 -1
- package/dist/cli/lib/cli-timeout.js +0 -17
- package/dist/cli/lib/cli-timeout.js.map +0 -1
- package/dist/cli/lib/doctor-checks.d.ts.map +0 -1
- package/dist/cli/lib/doctor-checks.js.map +0 -1
- package/dist/cli/lib/doctor-integration-checks.d.ts +0 -5
- package/dist/cli/lib/doctor-integration-checks.d.ts.map +0 -1
- package/dist/cli/lib/doctor-integration-checks.js.map +0 -1
- package/dist/cli/lib/doctor-orchestration.d.ts +0 -10
- package/dist/cli/lib/doctor-orchestration.d.ts.map +0 -1
- package/dist/cli/lib/doctor-orchestration.js +0 -32
- package/dist/cli/lib/doctor-orchestration.js.map +0 -1
- package/dist/cli/lib/doctor-substrate-drift.d.ts +0 -7
- package/dist/cli/lib/doctor-substrate-drift.d.ts.map +0 -1
- package/dist/cli/lib/doctor-substrate-drift.js.map +0 -1
- package/dist/cli/lib/git-metrics-missions.d.ts +0 -3
- package/dist/cli/lib/git-metrics-missions.d.ts.map +0 -1
- package/dist/cli/lib/git-metrics-missions.js +0 -51
- package/dist/cli/lib/git-metrics-missions.js.map +0 -1
- package/dist/cli/lib/git-metrics-stream.d.ts +0 -24
- package/dist/cli/lib/git-metrics-stream.d.ts.map +0 -1
- package/dist/cli/lib/git-metrics-stream.js +0 -137
- package/dist/cli/lib/git-metrics-stream.js.map +0 -1
- package/dist/cli/lib/git-repo.d.ts +0 -26
- package/dist/cli/lib/git-repo.d.ts.map +0 -1
- package/dist/cli/lib/git-repo.js +0 -53
- package/dist/cli/lib/git-repo.js.map +0 -1
- package/dist/cli/lib/init-compose-arch-pointer.d.ts.map +0 -1
- package/dist/cli/lib/init-compose-arch-pointer.js.map +0 -1
- package/dist/cli/lib/init-compose-doc.d.ts +0 -5
- package/dist/cli/lib/init-compose-doc.d.ts.map +0 -1
- package/dist/cli/lib/init-compose-doc.js +0 -37
- package/dist/cli/lib/init-compose-doc.js.map +0 -1
- package/dist/cli/lib/kpi-phase.d.ts +0 -7
- package/dist/cli/lib/kpi-phase.d.ts.map +0 -1
- package/dist/cli/lib/kpi-phase.js +0 -80
- package/dist/cli/lib/kpi-phase.js.map +0 -1
- package/dist/cli/lib/kpi-report-stale.d.ts +0 -18
- package/dist/cli/lib/kpi-report-stale.d.ts.map +0 -1
- package/dist/cli/lib/kpi-report-stale.js +0 -91
- package/dist/cli/lib/kpi-report-stale.js.map +0 -1
- package/dist/cli/lib/kpi-report.d.ts +0 -13
- package/dist/cli/lib/kpi-report.d.ts.map +0 -1
- package/dist/cli/lib/kpi-report.js +0 -115
- package/dist/cli/lib/kpi-report.js.map +0 -1
- package/dist/cli/lib/legislate-core.d.ts +0 -21
- package/dist/cli/lib/legislate-core.d.ts.map +0 -1
- package/dist/cli/lib/legislate-core.js.map +0 -1
- package/dist/cli/lib/legislate-skill.d.ts +0 -20
- package/dist/cli/lib/legislate-skill.d.ts.map +0 -1
- package/dist/cli/lib/legislate-skill.js +0 -30
- package/dist/cli/lib/legislate-skill.js.map +0 -1
- package/dist/cli/lib/mcp-legislation-draft.d.ts +0 -6
- package/dist/cli/lib/mcp-legislation-draft.d.ts.map +0 -1
- package/dist/cli/lib/mcp-legislation-draft.js +0 -62
- package/dist/cli/lib/mcp-legislation-draft.js.map +0 -1
- package/dist/cli/lib/mcp-legislation-execute.d.ts +0 -6
- package/dist/cli/lib/mcp-legislation-execute.d.ts.map +0 -1
- package/dist/cli/lib/mcp-legislation-execute.js +0 -43
- package/dist/cli/lib/mcp-legislation-execute.js.map +0 -1
- package/dist/cli/lib/mcp-legislation-mission.d.ts +0 -12
- package/dist/cli/lib/mcp-legislation-mission.d.ts.map +0 -1
- package/dist/cli/lib/mcp-legislation-mission.js +0 -82
- package/dist/cli/lib/mcp-legislation-mission.js.map +0 -1
- package/dist/cli/lib/mcp-legislation-types.d.ts +0 -69
- package/dist/cli/lib/mcp-legislation-types.d.ts.map +0 -1
- package/dist/cli/lib/mcp-legislation-types.js +0 -4
- package/dist/cli/lib/mcp-legislation-types.js.map +0 -1
- package/dist/cli/lib/mcp-legislation.d.ts +0 -5
- package/dist/cli/lib/mcp-legislation.d.ts.map +0 -1
- package/dist/cli/lib/mcp-legislation.js +0 -4
- package/dist/cli/lib/mcp-legislation.js.map +0 -1
- package/dist/cli/lib/mcp-orchestration-types.d.ts +0 -28
- package/dist/cli/lib/mcp-orchestration-types.d.ts.map +0 -1
- package/dist/cli/lib/mcp-orchestration-types.js +0 -2
- package/dist/cli/lib/mcp-orchestration-types.js.map +0 -1
- package/dist/cli/lib/mcp-orchestration.d.ts +0 -14
- package/dist/cli/lib/mcp-orchestration.d.ts.map +0 -1
- package/dist/cli/lib/mcp-orchestration.js +0 -54
- package/dist/cli/lib/mcp-orchestration.js.map +0 -1
- package/dist/cli/lib/mcp-upgrade-types.d.ts +0 -12
- package/dist/cli/lib/mcp-upgrade-types.d.ts.map +0 -1
- package/dist/cli/lib/mcp-upgrade-types.js +0 -2
- package/dist/cli/lib/mcp-upgrade-types.js.map +0 -1
- package/dist/cli/lib/mission-emit.d.ts +0 -7
- package/dist/cli/lib/mission-emit.d.ts.map +0 -1
- package/dist/cli/lib/mission-emit.js +0 -23
- package/dist/cli/lib/mission-emit.js.map +0 -1
- package/dist/cli/lib/mission-legislative-stub.d.ts +0 -9
- package/dist/cli/lib/mission-legislative-stub.d.ts.map +0 -1
- package/dist/cli/lib/mission-legislative-stub.js +0 -37
- package/dist/cli/lib/mission-legislative-stub.js.map +0 -1
- package/dist/cli/lib/mission-markdown.d.ts +0 -6
- package/dist/cli/lib/mission-markdown.d.ts.map +0 -1
- package/dist/cli/lib/mission-markdown.js.map +0 -1
- package/dist/cli/lib/mission-msn.d.ts +0 -9
- package/dist/cli/lib/mission-msn.d.ts.map +0 -1
- package/dist/cli/lib/mission-msn.js +0 -86
- package/dist/cli/lib/mission-msn.js.map +0 -1
- package/dist/cli/lib/mission-parser.d.ts +0 -6
- package/dist/cli/lib/mission-parser.d.ts.map +0 -1
- package/dist/cli/lib/mission-parser.js +0 -29
- package/dist/cli/lib/mission-parser.js.map +0 -1
- package/dist/cli/lib/mission-path.d.ts +0 -4
- package/dist/cli/lib/mission-path.d.ts.map +0 -1
- package/dist/cli/lib/mission-path.js +0 -28
- package/dist/cli/lib/mission-path.js.map +0 -1
- package/dist/cli/lib/mission-resolution.d.ts +0 -14
- package/dist/cli/lib/mission-resolution.d.ts.map +0 -1
- package/dist/cli/lib/mission-resolution.js +0 -60
- package/dist/cli/lib/mission-resolution.js.map +0 -1
- package/dist/cli/lib/mission-schema-validate.d.ts.map +0 -1
- package/dist/cli/lib/mission-schema-validate.js.map +0 -1
- package/dist/cli/lib/mission-yaml.d.ts +0 -18
- package/dist/cli/lib/mission-yaml.d.ts.map +0 -1
- package/dist/cli/lib/mission-yaml.js +0 -228
- package/dist/cli/lib/mission-yaml.js.map +0 -1
- package/dist/cli/lib/register-proposals-format.d.ts +0 -2
- package/dist/cli/lib/register-proposals-format.d.ts.map +0 -1
- package/dist/cli/lib/register-proposals-format.js +0 -6
- package/dist/cli/lib/register-proposals-format.js.map +0 -1
- package/dist/cli/lib/runtime-exec-orchestrator.d.ts +0 -14
- package/dist/cli/lib/runtime-exec-orchestrator.d.ts.map +0 -1
- package/dist/cli/lib/runtime-exec-orchestrator.js +0 -132
- package/dist/cli/lib/runtime-exec-orchestrator.js.map +0 -1
- package/dist/cli/lib/runtime-exec-result.d.ts +0 -21
- package/dist/cli/lib/runtime-exec-result.d.ts.map +0 -1
- package/dist/cli/lib/runtime-exec-result.js +0 -42
- package/dist/cli/lib/runtime-exec-result.js.map +0 -1
- package/dist/cli/lib/runtime-exec-worker.d.ts +0 -18
- package/dist/cli/lib/runtime-exec-worker.d.ts.map +0 -1
- package/dist/cli/lib/runtime-exec-worker.js +0 -49
- package/dist/cli/lib/runtime-exec-worker.js.map +0 -1
- package/dist/cli/lib/start-state.d.ts.map +0 -1
- package/dist/cli/lib/start-state.js.map +0 -1
- package/dist/cli/lib/trace-evidence.d.ts +0 -23
- package/dist/cli/lib/trace-evidence.d.ts.map +0 -1
- package/dist/cli/lib/trace-evidence.js +0 -118
- package/dist/cli/lib/trace-evidence.js.map +0 -1
- package/dist/cli/lib/trace-failure-kind.d.ts +0 -4
- package/dist/cli/lib/trace-failure-kind.d.ts.map +0 -1
- package/dist/cli/lib/trace-failure-kind.js +0 -25
- package/dist/cli/lib/trace-failure-kind.js.map +0 -1
- package/dist/cli/lib/trace-status.d.ts +0 -7
- package/dist/cli/lib/trace-status.d.ts.map +0 -1
- package/dist/cli/lib/trace-status.js +0 -20
- package/dist/cli/lib/trace-status.js.map +0 -1
- package/dist/cli/lib/upgrade-eligible-assets.d.ts +0 -5
- package/dist/cli/lib/upgrade-eligible-assets.d.ts.map +0 -1
- package/dist/cli/lib/upgrade-eligible-assets.js +0 -9
- package/dist/cli/lib/upgrade-eligible-assets.js.map +0 -1
- package/dist/cli/lib/upgrade-plan-preview.d.ts +0 -13
- package/dist/cli/lib/upgrade-plan-preview.d.ts.map +0 -1
- package/dist/cli/lib/upgrade-plan-preview.js +0 -51
- package/dist/cli/lib/upgrade-plan-preview.js.map +0 -1
- package/dist/cli/lib/upgrade-profile.d.ts +0 -4
- package/dist/cli/lib/upgrade-profile.d.ts.map +0 -1
- package/dist/cli/lib/upgrade-profile.js +0 -27
- package/dist/cli/lib/upgrade-profile.js.map +0 -1
- package/dist/cli/lib/user-error.d.ts.map +0 -1
- package/dist/cli/lib/user-error.js +0 -64
- package/dist/cli/lib/user-error.js.map +0 -1
- package/dist/cli/lib/verify-failure-presentation.d.ts.map +0 -1
- package/dist/cli/lib/verify-failure-presentation.js.map +0 -1
- package/dist/cli/lib/verify-result-payload.d.ts.map +0 -1
- package/dist/cli/lib/verify-result-payload.js.map +0 -1
- package/dist/cli/lib/verify-types.d.ts +0 -31
- package/dist/cli/lib/verify-types.d.ts.map +0 -1
- package/dist/cli/lib/verify-types.js +0 -2
- package/dist/cli/lib/verify-types.js.map +0 -1
|
@@ -1,6 +1,200 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import YAML from "yaml";
|
|
2
|
+
import { GXT_BYPASS_NOTES_REF } from "./break-glass.js";
|
|
3
|
+
import { MSN_ID_PATTERN, WORKER_LOG_FILENAME } from "./constants.js";
|
|
4
|
+
import { parseTeacherEmailsFromEnv, commitSubjectHasMsnPrefix } from "./git-proof.js";
|
|
5
|
+
import { gitRevParse, gitRunOk } from "./git.js";
|
|
6
|
+
const MISSIONS_PREFIX = ".gitagent/missions/";
|
|
7
|
+
const diffCache = new Map();
|
|
8
|
+
/** Namespaced extension block for additive metrics semantics (strict-parser safe). */
|
|
9
|
+
export const GXT_METRICS_CLASSIFICATION_MODE = "PATH_TOUCH_PROXY";
|
|
10
|
+
export const GXT_METRICS_EXTENSION_SCHEMA_VERSION = 1;
|
|
11
|
+
export function buildGxtExtensionMetadata() {
|
|
12
|
+
return {
|
|
13
|
+
classification_mode: GXT_METRICS_CLASSIFICATION_MODE,
|
|
14
|
+
schema_version: GXT_METRICS_EXTENSION_SCHEMA_VERSION,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function parseMsnFromYamlContent(content) {
|
|
18
|
+
try {
|
|
19
|
+
const data = YAML.parse(content);
|
|
20
|
+
const raw = data.msn_id ?? data.msnId;
|
|
21
|
+
if (typeof raw === "string" && MSN_ID_PATTERN.test(raw.trim()))
|
|
22
|
+
return raw.trim();
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
/* skip */
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
export function msnFromMissionPath(rel) {
|
|
30
|
+
const norm = rel.trim().replace(/\\/g, "/");
|
|
31
|
+
if (!norm.startsWith(MISSIONS_PREFIX))
|
|
32
|
+
return null;
|
|
33
|
+
if (!/\.(ya?ml|md)$/i.test(norm))
|
|
34
|
+
return null;
|
|
35
|
+
const fromName = norm.match(/MSN-\d{4}/)?.[0];
|
|
36
|
+
if (fromName && MSN_ID_PATTERN.test(fromName))
|
|
37
|
+
return fromName;
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
export function listMissionMsnIdsAtRef(root, ref) {
|
|
41
|
+
const ids = new Set();
|
|
42
|
+
const tree = gitRunOk(root, ["ls-tree", "-r", "--name-only", ref, MISSIONS_PREFIX]);
|
|
43
|
+
if (!tree.ok)
|
|
44
|
+
return ids;
|
|
45
|
+
for (const rel of tree.stdout.split("\n")) {
|
|
46
|
+
const norm = rel.trim().replace(/\\/g, "/");
|
|
47
|
+
if (!norm)
|
|
48
|
+
continue;
|
|
49
|
+
const fromName = msnFromMissionPath(norm);
|
|
50
|
+
if (fromName) {
|
|
51
|
+
ids.add(fromName);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
const show = gitRunOk(root, ["show", `${ref}:${norm}`]);
|
|
55
|
+
if (!show.ok)
|
|
56
|
+
continue;
|
|
57
|
+
const parsed = parseMsnFromYamlContent(show.stdout);
|
|
58
|
+
if (parsed)
|
|
59
|
+
ids.add(parsed);
|
|
60
|
+
}
|
|
61
|
+
return ids;
|
|
62
|
+
}
|
|
63
|
+
export function streamLogRecords(root, ref) {
|
|
64
|
+
const r = gitRunOk(root, ["log", ref, "-z", "--reverse", "--format=%H%x1f%s%x1f%aE%x1f%cI"], 64 * 1024 * 1024);
|
|
65
|
+
if (!r.ok || !r.stdout.trim())
|
|
66
|
+
return [];
|
|
67
|
+
const records = [];
|
|
68
|
+
for (const chunk of r.stdout.split("\0").filter((c) => c.length > 0)) {
|
|
69
|
+
const parts = chunk.split("\x1f");
|
|
70
|
+
if (parts.length < 4)
|
|
71
|
+
continue;
|
|
72
|
+
const [hash, subject, email, ts] = parts;
|
|
73
|
+
if (!hash || !subject || !email || !ts)
|
|
74
|
+
continue;
|
|
75
|
+
records.push({ hash, subject, email, ts });
|
|
76
|
+
}
|
|
77
|
+
return records;
|
|
78
|
+
}
|
|
79
|
+
export function countBypassNotes(root) {
|
|
80
|
+
const r = gitRunOk(root, ["notes", `--ref=${GXT_BYPASS_NOTES_REF}`, "list"]);
|
|
81
|
+
if (!r.ok || !r.stdout.trim())
|
|
82
|
+
return 0;
|
|
83
|
+
return r.stdout.split("\n").filter((l) => l.trim().length > 0).length;
|
|
84
|
+
}
|
|
85
|
+
function commitChangedPaths(root, hash) {
|
|
86
|
+
const cached = diffCache.get(hash);
|
|
87
|
+
if (cached)
|
|
88
|
+
return cached;
|
|
89
|
+
const r = gitRunOk(root, ["diff-tree", "--no-commit-id", "--name-only", "-r", hash]);
|
|
90
|
+
const paths = r.ok
|
|
91
|
+
? r.stdout
|
|
92
|
+
.split("\n")
|
|
93
|
+
.map((p) => p.trim().replace(/\\/g, "/"))
|
|
94
|
+
.filter((p) => p.length > 0)
|
|
95
|
+
: [];
|
|
96
|
+
diffCache.set(hash, paths);
|
|
97
|
+
return paths;
|
|
98
|
+
}
|
|
99
|
+
function isTeacherEmail(email) {
|
|
100
|
+
const normalizedAuthor = email.trim().toLowerCase();
|
|
101
|
+
if (!normalizedAuthor)
|
|
102
|
+
return false;
|
|
103
|
+
const allow = parseTeacherEmailsFromEnv();
|
|
104
|
+
if (allow.length === 0)
|
|
105
|
+
return false;
|
|
106
|
+
return allow.some((teacherEmail) => teacherEmail.length > 0 && teacherEmail === normalizedAuthor);
|
|
107
|
+
}
|
|
108
|
+
function subjectMsnId(subject) {
|
|
109
|
+
const m = subject.trim().match(/^\[(MSN-\d{4})\]/);
|
|
110
|
+
const id = m?.[1];
|
|
111
|
+
return id && MSN_ID_PATTERN.test(id) ? id : null;
|
|
112
|
+
}
|
|
113
|
+
export function median(values) {
|
|
114
|
+
if (values.length === 0)
|
|
115
|
+
return null;
|
|
116
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
117
|
+
const mid = Math.floor(sorted.length / 2);
|
|
118
|
+
if (sorted.length % 2 === 0) {
|
|
119
|
+
const a = sorted[mid - 1];
|
|
120
|
+
const b = sorted[mid];
|
|
121
|
+
if (a === undefined || b === undefined)
|
|
122
|
+
return null;
|
|
123
|
+
return (a + b) / 2;
|
|
124
|
+
}
|
|
125
|
+
return sorted[mid] ?? null;
|
|
126
|
+
}
|
|
127
|
+
export function clearMetricsDiffCache() {
|
|
128
|
+
diffCache.clear();
|
|
129
|
+
}
|
|
130
|
+
export function aggregateFromLogStream(root, records) {
|
|
131
|
+
const missionIdsFromLog = new Set();
|
|
132
|
+
let legislative = 0;
|
|
133
|
+
let worker_trace = 0;
|
|
134
|
+
let bypass_audit = 0;
|
|
135
|
+
const firstSeen = new Map();
|
|
136
|
+
const lastSeen = new Map();
|
|
137
|
+
for (const rec of records) {
|
|
138
|
+
const ts = Date.parse(rec.ts);
|
|
139
|
+
if (!Number.isFinite(ts))
|
|
140
|
+
continue;
|
|
141
|
+
if (rec.subject.trim().startsWith("[GXT-AUDIT] break-glass:")) {
|
|
142
|
+
bypass_audit++;
|
|
143
|
+
}
|
|
144
|
+
const msnFromSubject = subjectMsnId(rec.subject);
|
|
145
|
+
if (msnFromSubject)
|
|
146
|
+
missionIdsFromLog.add(msnFromSubject);
|
|
147
|
+
const paths = commitChangedPaths(root, rec.hash);
|
|
148
|
+
let touchesMission = false;
|
|
149
|
+
let touchesWorkerLog = false;
|
|
150
|
+
for (const p of paths) {
|
|
151
|
+
if (p === WORKER_LOG_FILENAME)
|
|
152
|
+
touchesWorkerLog = true;
|
|
153
|
+
const msnFromPath = msnFromMissionPath(p);
|
|
154
|
+
if (msnFromPath) {
|
|
155
|
+
touchesMission = true;
|
|
156
|
+
if (!firstSeen.has(msnFromPath))
|
|
157
|
+
firstSeen.set(msnFromPath, ts);
|
|
158
|
+
missionIdsFromLog.add(msnFromPath);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
const isLegislative = msnFromSubject !== null &&
|
|
162
|
+
commitSubjectHasMsnPrefix(rec.subject, msnFromSubject) &&
|
|
163
|
+
isTeacherEmail(rec.email) &&
|
|
164
|
+
touchesMission;
|
|
165
|
+
if (isLegislative) {
|
|
166
|
+
legislative++;
|
|
167
|
+
}
|
|
168
|
+
else if (touchesWorkerLog && !touchesMission) {
|
|
169
|
+
worker_trace++;
|
|
170
|
+
}
|
|
171
|
+
if (msnFromSubject)
|
|
172
|
+
lastSeen.set(msnFromSubject, ts);
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
missionIdsFromLog,
|
|
176
|
+
legislative,
|
|
177
|
+
worker_trace,
|
|
178
|
+
bypass_audit,
|
|
179
|
+
firstSeen,
|
|
180
|
+
lastSeen,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
export function computeTurnaround(firstSeen, lastSeen) {
|
|
184
|
+
const deltas = [];
|
|
185
|
+
for (const [msn, end] of lastSeen) {
|
|
186
|
+
const start = firstSeen.get(msn);
|
|
187
|
+
if (start === undefined)
|
|
188
|
+
continue;
|
|
189
|
+
const delta = (end - start) / 1000;
|
|
190
|
+
if (Number.isFinite(delta) && delta >= 0)
|
|
191
|
+
deltas.push(delta);
|
|
192
|
+
}
|
|
193
|
+
if (deltas.length === 0)
|
|
194
|
+
return { mean: null, median: null, samples: 0 };
|
|
195
|
+
const sum = deltas.reduce((a, b) => a + b, 0);
|
|
196
|
+
return { mean: sum / deltas.length, median: median(deltas), samples: deltas.length };
|
|
197
|
+
}
|
|
4
198
|
/** Stable key order for cross-clone identical JSON. */
|
|
5
199
|
export function collectGitMetrics(root, refName) {
|
|
6
200
|
clearMetricsDiffCache();
|
|
@@ -20,6 +214,7 @@ export function collectGitMetrics(root, refName) {
|
|
|
20
214
|
worker_trace_commits: stream.worker_trace,
|
|
21
215
|
turnaround_seconds: computeTurnaround(stream.firstSeen, stream.lastSeen),
|
|
22
216
|
mission_ids: missionIds,
|
|
217
|
+
gxt_extension_metadata: buildGxtExtensionMetadata(),
|
|
23
218
|
};
|
|
24
219
|
}
|
|
25
220
|
export function formatGitMetricsHuman(report) {
|
|
@@ -28,6 +223,7 @@ export function formatGitMetricsHuman(report) {
|
|
|
28
223
|
` missions_completed: ${String(report.missions_completed)}`,
|
|
29
224
|
` bypass_count (git notes): ${String(report.bypass_count)}`,
|
|
30
225
|
` bypass_audit_commits: ${String(report.bypass_audit_commits)}`,
|
|
226
|
+
` classification_mode: ${report.gxt_extension_metadata.classification_mode}`,
|
|
31
227
|
` legislative_commits (proxy): ${String(report.legislative_commits)}`,
|
|
32
228
|
` worker_trace_commits (proxy): ${String(report.worker_trace_commits)}`,
|
|
33
229
|
` turnaround_seconds.mean: ${report.turnaround_seconds.mean === null ? "n/a" : report.turnaround_seconds.mean.toFixed(1)}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-metrics.js","sourceRoot":"","sources":["../../../src/cli/lib/git-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"git-metrics.js","sourceRoot":"","sources":["../../../src/cli/lib/git-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/** Missions verified by `gapman verify` must live under this repo-relative prefix. */
|
|
2
2
|
export declare const REL_MISSIONS_PREFIX: ".gitagent/missions/";
|
|
3
3
|
export { ENV_TEACHER_EMAILS, parseTeacherEmailsFromEnv } from "./teacher-identity.js";
|
|
4
|
+
export declare const ENV_MSN_SCAN_DEPTH: "GXT_MSN_SCAN_DEPTH";
|
|
5
|
+
export declare const DEFAULT_MSN_SCAN_DEPTH = 200;
|
|
6
|
+
/** Resolve git-proof scan depth: explicit option, then env, then default. */
|
|
7
|
+
export declare function resolveMsnScanDepth(explicit?: number): number;
|
|
4
8
|
export declare function missionPathRepoRelative(root: string, missionAbsolutePath: string): string;
|
|
5
9
|
export declare function assertMissionUnderMissionsDir(repoRelMissionPath: string): void;
|
|
6
10
|
export interface MsnCommitRow {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-proof.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"AAqBA,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,EAAG,qBAA8B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"git-proof.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"AAqBA,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,EAAG,qBAA8B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,eAAO,MAAM,kBAAkB,EAAG,oBAA6B,CAAC;AAChE,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAUzF;AAED,wBAAgB,6BAA6B,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAS9E;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,EAAE,CA0BhB;AAMD,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW3E;AAWD,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,MAAM,CAkER;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAOT"}
|
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { CLI_NAME, MSN_ID_PATTERN } from "./constants.js";
|
|
3
3
|
import { toPosixRel } from "./cli-io.js";
|
|
4
|
-
import { gitRun } from "./git
|
|
4
|
+
import { gitRun } from "./git.js";
|
|
5
5
|
import { hintGitProof } from "./fix-hints.js";
|
|
6
|
-
import { GapmanUserError } from "./
|
|
6
|
+
import { GapmanUserError } from "./errors.js";
|
|
7
7
|
function throwGitProofError(code, detail, ctx = {}) {
|
|
8
8
|
throw new GapmanUserError(code, `${CLI_NAME} verify: git-proof: ${code} — ${detail}`, hintGitProof(code, ctx));
|
|
9
9
|
}
|
|
10
|
-
import { extractMsnIdFromMissionPath } from "./
|
|
10
|
+
import { extractMsnIdFromMissionPath } from "./missions/parser.js";
|
|
11
11
|
import { resolveTeacherEmails } from "./teacher-identity.js";
|
|
12
12
|
/** Missions verified by `gapman verify` must live under this repo-relative prefix. */
|
|
13
13
|
export const REL_MISSIONS_PREFIX = ".gitagent/missions/";
|
|
14
14
|
export { ENV_TEACHER_EMAILS, parseTeacherEmailsFromEnv } from "./teacher-identity.js";
|
|
15
|
-
const
|
|
15
|
+
export const ENV_MSN_SCAN_DEPTH = "GXT_MSN_SCAN_DEPTH";
|
|
16
|
+
export const DEFAULT_MSN_SCAN_DEPTH = 200;
|
|
17
|
+
/** Resolve git-proof scan depth: explicit option, then env, then default. */
|
|
18
|
+
export function resolveMsnScanDepth(explicit) {
|
|
19
|
+
if (explicit !== undefined && Number.isFinite(explicit) && explicit > 0) {
|
|
20
|
+
return Math.floor(explicit);
|
|
21
|
+
}
|
|
22
|
+
const envRaw = process.env[ENV_MSN_SCAN_DEPTH];
|
|
23
|
+
if (envRaw !== undefined && envRaw.trim() !== "") {
|
|
24
|
+
const envParsed = Number.parseInt(envRaw.trim(), 10);
|
|
25
|
+
if (Number.isFinite(envParsed) && envParsed > 0) {
|
|
26
|
+
return envParsed;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return DEFAULT_MSN_SCAN_DEPTH;
|
|
30
|
+
}
|
|
16
31
|
export function missionPathRepoRelative(root, missionAbsolutePath) {
|
|
17
32
|
const absMission = path.resolve(missionAbsolutePath);
|
|
18
33
|
const absRoot = path.resolve(root);
|
|
@@ -43,8 +58,8 @@ export function commitSubjectHasMsnPrefix(subject, msnId) {
|
|
|
43
58
|
* Newest-first commits among the last `scanDepth` history entries whose **subject** (%s) starts
|
|
44
59
|
* with `[msnId]`. Uses plain `git log` (no `--grep`) so matches cannot come from the body alone.
|
|
45
60
|
*/
|
|
46
|
-
export function listMsnSubjectCommits(root, msnId, scanDepth
|
|
47
|
-
const depth =
|
|
61
|
+
export function listMsnSubjectCommits(root, msnId, scanDepth) {
|
|
62
|
+
const depth = resolveMsnScanDepth(scanDepth);
|
|
48
63
|
const { ok, stdout, stderr } = gitRun(root, [
|
|
49
64
|
"log",
|
|
50
65
|
"-z",
|
|
@@ -113,8 +128,7 @@ export function assertTeacherMissionProof(root, missionAbsolutePath, options) {
|
|
|
113
128
|
}
|
|
114
129
|
const repoRelMission = missionPathRepoRelative(root, missionAbsolutePath);
|
|
115
130
|
assertMissionUnderMissionsDir(repoRelMission);
|
|
116
|
-
const
|
|
117
|
-
const rows = listMsnSubjectCommits(root, msnId, scanDepth);
|
|
131
|
+
const rows = listMsnSubjectCommits(root, msnId, resolveMsnScanDepth(options?.scanDepth));
|
|
118
132
|
if (rows.length === 0) {
|
|
119
133
|
throwGitProofError("NO_MSN_COMMITS", `No commits found starting with [${msnId}]. Did you commit the mission?`, { root, missionPath, msnId, repoRelMission });
|
|
120
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-proof.js","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"git-proof.js","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Staged paths from the index (not working tree). */
|
|
2
|
+
export declare function gitStagedNameOnly(repoRoot: string): string[];
|
|
3
|
+
export type GitStagedBlobResult = {
|
|
4
|
+
ok: true;
|
|
5
|
+
content: Buffer;
|
|
6
|
+
} | {
|
|
7
|
+
ok: false;
|
|
8
|
+
reason: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Read staged index bytes for a repo-relative path (`git show :path`).
|
|
12
|
+
* Never reads the working tree — index-fidelity for pre-commit guards.
|
|
13
|
+
*/
|
|
14
|
+
export declare function gitReadStagedBlob(repoRoot: string, repoRel: string): GitStagedBlobResult;
|
|
15
|
+
/** Stage a repo-relative path (`git add -- path`). */
|
|
16
|
+
export declare function gitStagePath(repoRoot: string, repoRel: string): {
|
|
17
|
+
ok: boolean;
|
|
18
|
+
stderr: string;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=git-staged.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-staged.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git-staged.ts"],"names":[],"mappings":"AAGA,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAO5D;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAcxF;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAG/F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { gitRun } from "./git.js";
|
|
3
|
+
/** Staged paths from the index (not working tree). */
|
|
4
|
+
export function gitStagedNameOnly(repoRoot) {
|
|
5
|
+
const r = gitRun(repoRoot, ["diff", "--cached", "--name-only", "--diff-filter=ACMR"]);
|
|
6
|
+
if (!r.ok)
|
|
7
|
+
return [];
|
|
8
|
+
return r.stdout
|
|
9
|
+
.split(/\r?\n/)
|
|
10
|
+
.map((line) => line.trim())
|
|
11
|
+
.filter(Boolean);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Read staged index bytes for a repo-relative path (`git show :path`).
|
|
15
|
+
* Never reads the working tree — index-fidelity for pre-commit guards.
|
|
16
|
+
*/
|
|
17
|
+
export function gitReadStagedBlob(repoRoot, repoRel) {
|
|
18
|
+
const r = spawnSync("git", ["-C", repoRoot, "show", `:${repoRel}`], {
|
|
19
|
+
encoding: "buffer",
|
|
20
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
21
|
+
});
|
|
22
|
+
if (r.status !== 0) {
|
|
23
|
+
const stderr = typeof r.stderr === "string" ? r.stderr : r.stderr?.toString("utf8") ?? "";
|
|
24
|
+
return { ok: false, reason: stderr.trim() || `git show :${repoRel} failed` };
|
|
25
|
+
}
|
|
26
|
+
const buf = r.stdout;
|
|
27
|
+
if (!Buffer.isBuffer(buf)) {
|
|
28
|
+
return { ok: false, reason: `git show :${repoRel} returned no buffer` };
|
|
29
|
+
}
|
|
30
|
+
return { ok: true, content: buf };
|
|
31
|
+
}
|
|
32
|
+
/** Stage a repo-relative path (`git add -- path`). */
|
|
33
|
+
export function gitStagePath(repoRoot, repoRel) {
|
|
34
|
+
const r = gitRun(repoRoot, ["add", "--", repoRel]);
|
|
35
|
+
return { ok: r.ok, stderr: r.stderr.trim() };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=git-staged.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-staged.js","sourceRoot":"","sources":["../../../src/cli/lib/git-staged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,sDAAsD;AACtD,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACtF,IAAI,CAAC,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,CAAC,MAAM;SACZ,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAMD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,OAAe;IACjE,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC,EAAE;QAClE,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAC5B,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,aAAa,OAAO,SAAS,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,OAAO,qBAAqB,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAe;IAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/C,CAAC"}
|
package/dist/cli/lib/git.d.ts
CHANGED
|
@@ -1,2 +1,27 @@
|
|
|
1
1
|
export declare function getRepoRoot(cwd?: string): string;
|
|
2
|
+
export interface GitRunResult {
|
|
3
|
+
ok: boolean;
|
|
4
|
+
stdout: string;
|
|
5
|
+
stderr: string;
|
|
6
|
+
status: number | null;
|
|
7
|
+
}
|
|
8
|
+
/** Run git in repository root (`git -C root ...args`). */
|
|
9
|
+
export declare function gitRun(repoRoot: string, args: string[], maxBuffer?: number): GitRunResult;
|
|
10
|
+
export declare function gitRunOk(repoRoot: string, args: string[], maxBuffer?: number): {
|
|
11
|
+
ok: boolean;
|
|
12
|
+
stdout: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function gitRevParse(repoRoot: string, ref: string): string | null;
|
|
15
|
+
export declare function gitHead(repoRoot: string): string | null;
|
|
16
|
+
export declare function gitLogSubjects(repoRoot: string, grep: string, limit: number): string[];
|
|
17
|
+
export declare function gitConfigGet(repoRoot: string, key: string): string | null;
|
|
18
|
+
export type GitDiffSinceCommitResult = {
|
|
19
|
+
ok: true;
|
|
20
|
+
paths: string[];
|
|
21
|
+
} | {
|
|
22
|
+
ok: false;
|
|
23
|
+
stderr: string;
|
|
24
|
+
};
|
|
25
|
+
/** Paths under tmvcRoots that differ between ref and the working tree; empty paths = fresh. */
|
|
26
|
+
export declare function gitDiffNameOnlySinceCommit(repoRoot: string, commit: string, tmvcRoots: readonly string[]): GitDiffSinceCommitResult;
|
|
2
27
|
//# sourceMappingURL=git.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"AAKA,wBAAgB,WAAW,CAAC,GAAG,SAAgB,GAAG,MAAM,CAYvD;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,0DAA0D;AAC1D,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,SAAmB,GAAG,YAAY,CAWnG;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,SAAmB,GAC3B;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAGjC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAItF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzE;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,+FAA+F;AAC/F,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,wBAAwB,CAW1B"}
|
package/dist/cli/lib/git.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { execSync } from "node:child_process";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
3
4
|
import { CLI_NAME } from "./constants.js";
|
|
4
5
|
export function getRepoRoot(cwd = process.cwd()) {
|
|
5
6
|
try {
|
|
@@ -16,4 +17,55 @@ export function getRepoRoot(cwd = process.cwd()) {
|
|
|
16
17
|
throw new Error(`${CLI_NAME}: not inside a git repository`);
|
|
17
18
|
}
|
|
18
19
|
}
|
|
20
|
+
/** Run git in repository root (`git -C root ...args`). */
|
|
21
|
+
export function gitRun(repoRoot, args, maxBuffer = 32 * 1024 * 1024) {
|
|
22
|
+
const r = spawnSync("git", ["-C", repoRoot, ...args], {
|
|
23
|
+
encoding: "utf8",
|
|
24
|
+
maxBuffer,
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
ok: r.status === 0,
|
|
28
|
+
stdout: typeof r.stdout === "string" ? r.stdout : "",
|
|
29
|
+
stderr: typeof r.stderr === "string" ? r.stderr : "",
|
|
30
|
+
status: r.status,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function gitRunOk(repoRoot, args, maxBuffer = 32 * 1024 * 1024) {
|
|
34
|
+
const r = gitRun(repoRoot, args, maxBuffer);
|
|
35
|
+
return { ok: r.ok, stdout: r.stdout };
|
|
36
|
+
}
|
|
37
|
+
export function gitRevParse(repoRoot, ref) {
|
|
38
|
+
const r = gitRunOk(repoRoot, ["rev-parse", "--verify", `${ref}^{commit}`]);
|
|
39
|
+
return r.ok && r.stdout.trim() ? r.stdout.trim() : null;
|
|
40
|
+
}
|
|
41
|
+
export function gitHead(repoRoot) {
|
|
42
|
+
const r = gitRunOk(repoRoot, ["rev-parse", "HEAD"]);
|
|
43
|
+
return r.ok && r.stdout.trim() ? r.stdout.trim() : null;
|
|
44
|
+
}
|
|
45
|
+
export function gitLogSubjects(repoRoot, grep, limit) {
|
|
46
|
+
const r = gitRunOk(repoRoot, ["log", `--grep=${grep}`, `-${limit}`, "--format=%s"]);
|
|
47
|
+
if (!r.ok || !r.stdout.trim())
|
|
48
|
+
return [];
|
|
49
|
+
return r.stdout.split("\n").filter(Boolean);
|
|
50
|
+
}
|
|
51
|
+
export function gitConfigGet(repoRoot, key) {
|
|
52
|
+
const r = gitRunOk(repoRoot, ["config", "--get", key]);
|
|
53
|
+
if (!r.ok || !r.stdout.trim())
|
|
54
|
+
return null;
|
|
55
|
+
return r.stdout.trim();
|
|
56
|
+
}
|
|
57
|
+
/** Paths under tmvcRoots that differ between ref and the working tree; empty paths = fresh. */
|
|
58
|
+
export function gitDiffNameOnlySinceCommit(repoRoot, commit, tmvcRoots) {
|
|
59
|
+
const roots = tmvcRoots.map((r) => r.trim()).filter((r) => r.length > 0);
|
|
60
|
+
if (roots.length === 0)
|
|
61
|
+
return { ok: true, paths: [] };
|
|
62
|
+
const r = gitRun(repoRoot, ["diff", "--name-only", commit, "--", ...roots]);
|
|
63
|
+
if (!r.ok)
|
|
64
|
+
return { ok: false, stderr: r.stderr.trim() || "git diff failed" };
|
|
65
|
+
const paths = r.stdout
|
|
66
|
+
.split(/\r?\n/)
|
|
67
|
+
.map((line) => line.trim())
|
|
68
|
+
.filter(Boolean);
|
|
69
|
+
return { ok: true, paths };
|
|
70
|
+
}
|
|
19
71
|
//# sourceMappingURL=git.js.map
|
package/dist/cli/lib/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,+BAA+B,EAAE;YACpD,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,+BAA+B,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,11 @@ export declare const GXT_ERROR: {
|
|
|
10
10
|
readonly KPI_REPORT_MISSING: "GXT_KPI_REPORT_MISSING";
|
|
11
11
|
readonly KPI_REPORT_INVALID: "GXT_KPI_REPORT_INVALID";
|
|
12
12
|
readonly KPI_REPORT_STALE: "GXT_KPI_REPORT_STALE";
|
|
13
|
+
readonly BANNED_IMPORT_DETECTED: "GXT_BANNED_IMPORT_DETECTED";
|
|
14
|
+
readonly IMPORT_LAYER_VIOLATION: "GXT_IMPORT_LAYER_VIOLATION";
|
|
13
15
|
readonly PERIMETER_VIOLATION: "GXT_PERIMETER_VIOLATION";
|
|
16
|
+
readonly PERIMETER_SHALLOW_HISTORY: "GXT_PERIMETER_SHALLOW_HISTORY";
|
|
17
|
+
readonly MISSION_SCHEMA_INVALID: "GXT_MISSION_SCHEMA_INVALID";
|
|
14
18
|
readonly FORBIDDEN_ZONE: "GXT_FORBIDDEN_ZONE";
|
|
15
19
|
readonly RUNTIME_EXEC_FAILED: "GXT_RUNTIME_EXEC_FAILED";
|
|
16
20
|
readonly VERIFY_FAILED: "GXT_VERIFY_FAILED";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gxt-error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"gxt-error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AA2BtE,8DAA8D;AAC9D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMrE;AAED,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE"}
|
|
@@ -10,7 +10,11 @@ export const GXT_ERROR = {
|
|
|
10
10
|
KPI_REPORT_MISSING: "GXT_KPI_REPORT_MISSING",
|
|
11
11
|
KPI_REPORT_INVALID: "GXT_KPI_REPORT_INVALID",
|
|
12
12
|
KPI_REPORT_STALE: "GXT_KPI_REPORT_STALE",
|
|
13
|
+
BANNED_IMPORT_DETECTED: "GXT_BANNED_IMPORT_DETECTED",
|
|
14
|
+
IMPORT_LAYER_VIOLATION: "GXT_IMPORT_LAYER_VIOLATION",
|
|
13
15
|
PERIMETER_VIOLATION: "GXT_PERIMETER_VIOLATION",
|
|
16
|
+
PERIMETER_SHALLOW_HISTORY: "GXT_PERIMETER_SHALLOW_HISTORY",
|
|
17
|
+
MISSION_SCHEMA_INVALID: "GXT_MISSION_SCHEMA_INVALID",
|
|
14
18
|
FORBIDDEN_ZONE: "GXT_FORBIDDEN_ZONE",
|
|
15
19
|
RUNTIME_EXEC_FAILED: "GXT_RUNTIME_EXEC_FAILED",
|
|
16
20
|
VERIFY_FAILED: "GXT_VERIFY_FAILED",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,uBAAuB;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,qBAAqB;IACtC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,mBAAmB,EAAE,yBAAyB;IAC9C,cAAc,EAAE,oBAAoB;IACpC,mBAAmB,EAAE,yBAAyB;IAC9C,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,sBAAsB;CAChC,CAAC;AAIX,MAAM,gBAAgB,GAAiC;IACrD,mBAAmB,EAAE,SAAS,CAAC,iBAAiB;IAChD,6BAA6B,EAAE,SAAS,CAAC,iBAAiB;IAC1D,cAAc,EAAE,SAAS,CAAC,iBAAiB;IAC3C,qBAAqB,EAAE,SAAS,CAAC,iBAAiB;IAClD,oCAAoC,EAAE,SAAS,CAAC,iBAAiB;IACjE,4BAA4B,EAAE,SAAS,CAAC,iBAAiB;IACzD,eAAe,EAAE,SAAS,CAAC,iBAAiB;CAC7C,CAAC;AAEF,gEAAgE;AAChE,MAAM,wBAAwB,GAAiC;IAC7D,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,sBAAsB,EAAE,SAAS,CAAC,aAAa;IAC/C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,iBAAiB,EAAE,SAAS,CAAC,WAAW;IACxC,wBAAwB,EAAE,SAAS,CAAC,aAAa;IACjD,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,wBAAwB,EAAE,SAAS,CAAC,cAAc;IAClD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;IAClD,kBAAkB,EAAE,SAAS,CAAC,aAAa;IAC3C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;CAC7C,CAAC;AAEF,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC/E,OAAO,SAAS,CAAC,cAAc,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC,mBAAmB,CAAC;IACzE,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAoB,CAAC;IACzD,IAAI,IAAI,IAAI,gBAAgB;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,SAAS,CAAC,aAAa,CAAC;AACjC,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,wBAAwB,CAAC;AACjG,CAAC"}
|
|
1
|
+
{"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,uBAAuB;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,qBAAqB;IACtC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,mBAAmB,EAAE,yBAAyB;IAC9C,yBAAyB,EAAE,+BAA+B;IAC1D,sBAAsB,EAAE,4BAA4B;IACpD,cAAc,EAAE,oBAAoB;IACpC,mBAAmB,EAAE,yBAAyB;IAC9C,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,sBAAsB;CAChC,CAAC;AAIX,MAAM,gBAAgB,GAAiC;IACrD,mBAAmB,EAAE,SAAS,CAAC,iBAAiB;IAChD,6BAA6B,EAAE,SAAS,CAAC,iBAAiB;IAC1D,cAAc,EAAE,SAAS,CAAC,iBAAiB;IAC3C,qBAAqB,EAAE,SAAS,CAAC,iBAAiB;IAClD,oCAAoC,EAAE,SAAS,CAAC,iBAAiB;IACjE,4BAA4B,EAAE,SAAS,CAAC,iBAAiB;IACzD,eAAe,EAAE,SAAS,CAAC,iBAAiB;CAC7C,CAAC;AAEF,gEAAgE;AAChE,MAAM,wBAAwB,GAAiC;IAC7D,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,sBAAsB,EAAE,SAAS,CAAC,aAAa;IAC/C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,iBAAiB,EAAE,SAAS,CAAC,WAAW;IACxC,wBAAwB,EAAE,SAAS,CAAC,aAAa;IACjD,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,wBAAwB,EAAE,SAAS,CAAC,cAAc;IAClD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;IAClD,kBAAkB,EAAE,SAAS,CAAC,aAAa;IAC3C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;CAC7C,CAAC;AAEF,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC/E,OAAO,SAAS,CAAC,cAAc,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC,mBAAmB,CAAC;IACzE,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAoB,CAAC;IACzD,IAAI,IAAI,IAAI,gBAAgB;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,SAAS,CAAC,aAAa,CAAC;AACjC,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,wBAAwB,CAAC;AACjG,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Pure import-specifier extraction shared by CLI discovery and check-import-layers gate. */
|
|
2
|
+
export declare function stripSurgeonQuarantineRegions(source: string): string;
|
|
3
|
+
export interface ImportMeta {
|
|
4
|
+
spec: string;
|
|
5
|
+
line: number;
|
|
6
|
+
column: number;
|
|
7
|
+
snippet: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function extractImportsWithMeta(source: string, scrubQuarantine?: boolean): ImportMeta[];
|
|
10
|
+
/** Extract runtime binding identifiers from an import statement snippet. */
|
|
11
|
+
export declare function extractBindingsFromSnippet(snippet: string): string[];
|
|
12
|
+
/** Collect unique import specifiers from TypeScript source (includes export-from re-exports). */
|
|
13
|
+
export declare function extractImportSpecifiers(source: string): string[];
|
|
14
|
+
//# sourceMappingURL=import-scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-scanner.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/import-scanner.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,UAAO,GAAG,UAAU,EAAE,CAc3F;AAUD,4EAA4E;AAC5E,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBpE;AAED,iGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYhE"}
|