@jeger-ai/opengantry 3.2.6 → 3.4.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 +12 -2
- package/dist/cli/commands/contract.d.ts +21 -0
- package/dist/cli/commands/contract.d.ts.map +1 -0
- package/dist/cli/commands/contract.js +113 -0
- package/dist/cli/commands/contract.js.map +1 -0
- package/dist/cli/commands/deps.d.ts +18 -0
- package/dist/cli/commands/deps.d.ts.map +1 -0
- package/dist/cli/commands/deps.js +63 -0
- package/dist/cli/commands/deps.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +3 -6
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +8 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/interrogate.js +3 -3
- package/dist/cli/commands/interrogate.js.map +1 -1
- package/dist/cli/commands/ledger.d.ts +24 -0
- package/dist/cli/commands/ledger.d.ts.map +1 -0
- package/dist/cli/commands/ledger.js +88 -0
- package/dist/cli/commands/ledger.js.map +1 -0
- package/dist/cli/commands/mission.d.ts +6 -0
- package/dist/cli/commands/mission.d.ts.map +1 -1
- package/dist/cli/commands/mission.js +43 -3
- package/dist/cli/commands/mission.js.map +1 -1
- package/dist/cli/commands/perimeter.d.ts.map +1 -1
- package/dist/cli/commands/perimeter.js +4 -0
- package/dist/cli/commands/perimeter.js.map +1 -1
- package/dist/cli/commands/policy.d.ts +10 -0
- package/dist/cli/commands/policy.d.ts.map +1 -0
- package/dist/cli/commands/policy.js +49 -0
- package/dist/cli/commands/policy.js.map +1 -0
- package/dist/cli/commands/tmvc-guard.d.ts.map +1 -1
- package/dist/cli/commands/tmvc-guard.js +1 -0
- package/dist/cli/commands/tmvc-guard.js.map +1 -1
- package/dist/cli/commands/triage.d.ts.map +1 -1
- package/dist/cli/commands/triage.js +2 -1
- package/dist/cli/commands/triage.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +2 -11
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/kernel.d.ts +10 -3
- package/dist/cli/kernel.d.ts.map +1 -1
- package/dist/cli/kernel.js +18 -2
- package/dist/cli/kernel.js.map +1 -1
- package/dist/cli/lib/adapter-preflight-checks.d.ts +55 -0
- package/dist/cli/lib/adapter-preflight-checks.d.ts.map +1 -0
- package/dist/cli/lib/adapter-preflight-checks.js +275 -0
- package/dist/cli/lib/adapter-preflight-checks.js.map +1 -0
- package/dist/cli/lib/attest-mission.d.ts.map +1 -1
- package/dist/cli/lib/attest-mission.js +7 -0
- package/dist/cli/lib/attest-mission.js.map +1 -1
- package/dist/cli/lib/break-glass.d.ts +1 -1
- package/dist/cli/lib/break-glass.d.ts.map +1 -1
- package/dist/cli/lib/break-glass.js +6 -0
- package/dist/cli/lib/break-glass.js.map +1 -1
- package/dist/cli/lib/command-boundary.d.ts +7 -3
- package/dist/cli/lib/command-boundary.d.ts.map +1 -1
- package/dist/cli/lib/command-boundary.js +20 -4
- package/dist/cli/lib/command-boundary.js.map +1 -1
- package/dist/cli/lib/constants.d.ts +13 -0
- package/dist/cli/lib/constants.d.ts.map +1 -1
- package/dist/cli/lib/constants.js +13 -0
- package/dist/cli/lib/constants.js.map +1 -1
- package/dist/cli/lib/contract/approve-prompt.d.ts +22 -0
- package/dist/cli/lib/contract/approve-prompt.d.ts.map +1 -0
- package/dist/cli/lib/contract/approve-prompt.js +71 -0
- package/dist/cli/lib/contract/approve-prompt.js.map +1 -0
- package/dist/cli/lib/contract/contract-hash.d.ts +19 -0
- package/dist/cli/lib/contract/contract-hash.d.ts.map +1 -0
- package/dist/cli/lib/contract/contract-hash.js +67 -0
- package/dist/cli/lib/contract/contract-hash.js.map +1 -0
- package/dist/cli/lib/contract/contract-scan.d.ts +27 -0
- package/dist/cli/lib/contract/contract-scan.d.ts.map +1 -0
- package/dist/cli/lib/contract/contract-scan.js +167 -0
- package/dist/cli/lib/contract/contract-scan.js.map +1 -0
- package/dist/cli/lib/contract/contract-types.d.ts +38 -0
- package/dist/cli/lib/contract/contract-types.d.ts.map +1 -0
- package/dist/cli/lib/contract/contract-types.js +11 -0
- package/dist/cli/lib/contract/contract-types.js.map +1 -0
- package/dist/cli/lib/contract/effective-scope.d.ts +21 -0
- package/dist/cli/lib/contract/effective-scope.d.ts.map +1 -0
- package/dist/cli/lib/contract/effective-scope.js +77 -0
- package/dist/cli/lib/contract/effective-scope.js.map +1 -0
- package/dist/cli/lib/contract/format.d.ts +20 -0
- package/dist/cli/lib/contract/format.d.ts.map +1 -0
- package/dist/cli/lib/contract/format.js +48 -0
- package/dist/cli/lib/contract/format.js.map +1 -0
- package/dist/cli/lib/contract/propose-gate.d.ts +21 -0
- package/dist/cli/lib/contract/propose-gate.d.ts.map +1 -0
- package/dist/cli/lib/contract/propose-gate.js +57 -0
- package/dist/cli/lib/contract/propose-gate.js.map +1 -0
- package/dist/cli/lib/contract/propose-imports.d.ts +26 -0
- package/dist/cli/lib/contract/propose-imports.d.ts.map +1 -0
- package/dist/cli/lib/contract/propose-imports.js +128 -0
- package/dist/cli/lib/contract/propose-imports.js.map +1 -0
- package/dist/cli/lib/contract/propose.d.ts +25 -0
- package/dist/cli/lib/contract/propose.d.ts.map +1 -0
- package/dist/cli/lib/contract/propose.js +100 -0
- package/dist/cli/lib/contract/propose.js.map +1 -0
- package/dist/cli/lib/contract/resolve-specifier.d.ts +34 -0
- package/dist/cli/lib/contract/resolve-specifier.d.ts.map +1 -0
- package/dist/cli/lib/contract/resolve-specifier.js +93 -0
- package/dist/cli/lib/contract/resolve-specifier.js.map +1 -0
- package/dist/cli/lib/defensive-profile-presets.d.ts +6 -0
- package/dist/cli/lib/defensive-profile-presets.d.ts.map +1 -1
- package/dist/cli/lib/defensive-profile-presets.js +15 -1
- package/dist/cli/lib/defensive-profile-presets.js.map +1 -1
- package/dist/cli/lib/deps/deps-fetch.d.ts +4 -0
- package/dist/cli/lib/deps/deps-fetch.d.ts.map +1 -0
- package/dist/cli/lib/deps/deps-fetch.js +16 -0
- package/dist/cli/lib/deps/deps-fetch.js.map +1 -0
- package/dist/cli/lib/deps/deps-resolve.d.ts +18 -0
- package/dist/cli/lib/deps/deps-resolve.d.ts.map +1 -0
- package/dist/cli/lib/deps/deps-resolve.js +66 -0
- package/dist/cli/lib/deps/deps-resolve.js.map +1 -0
- package/dist/cli/lib/deps/deps-slug.d.ts +5 -0
- package/dist/cli/lib/deps/deps-slug.d.ts.map +1 -0
- package/dist/cli/lib/deps/deps-slug.js +44 -0
- package/dist/cli/lib/deps/deps-slug.js.map +1 -0
- package/dist/cli/lib/doctor-adapter-preflight.d.ts +24 -0
- package/dist/cli/lib/doctor-adapter-preflight.d.ts.map +1 -0
- package/dist/cli/lib/doctor-adapter-preflight.js +98 -0
- package/dist/cli/lib/doctor-adapter-preflight.js.map +1 -0
- package/dist/cli/lib/doctor-core.d.ts +7 -1
- package/dist/cli/lib/doctor-core.d.ts.map +1 -1
- package/dist/cli/lib/doctor-core.js +36 -5
- package/dist/cli/lib/doctor-core.js.map +1 -1
- package/dist/cli/lib/doctor-integration.d.ts +2 -0
- package/dist/cli/lib/doctor-integration.d.ts.map +1 -1
- package/dist/cli/lib/doctor-integration.js +4 -2
- package/dist/cli/lib/doctor-integration.js.map +1 -1
- package/dist/cli/lib/doctor-preflight/eslint.d.ts +4 -0
- package/dist/cli/lib/doctor-preflight/eslint.d.ts.map +1 -0
- package/dist/cli/lib/doctor-preflight/eslint.js +41 -0
- package/dist/cli/lib/doctor-preflight/eslint.js.map +1 -0
- package/dist/cli/lib/doctor-preflight/index.d.ts +3 -0
- package/dist/cli/lib/doctor-preflight/index.d.ts.map +1 -0
- package/dist/cli/lib/doctor-preflight/index.js +3 -0
- package/dist/cli/lib/doctor-preflight/index.js.map +1 -0
- package/dist/cli/lib/doctor-preflight/tsc.d.ts +4 -0
- package/dist/cli/lib/doctor-preflight/tsc.d.ts.map +1 -0
- package/dist/cli/lib/doctor-preflight/tsc.js +42 -0
- package/dist/cli/lib/doctor-preflight/tsc.js.map +1 -0
- package/dist/cli/lib/doctor-substrate.d.ts +2 -2
- package/dist/cli/lib/doctor-substrate.d.ts.map +1 -1
- package/dist/cli/lib/doctor-types.d.ts +4 -4
- package/dist/cli/lib/doctor-types.d.ts.map +1 -1
- package/dist/cli/lib/draft-token.d.ts +7 -1
- package/dist/cli/lib/draft-token.d.ts.map +1 -1
- package/dist/cli/lib/draft-token.js +25 -3
- package/dist/cli/lib/draft-token.js.map +1 -1
- package/dist/cli/lib/errors.d.ts +2 -0
- package/dist/cli/lib/errors.d.ts.map +1 -1
- package/dist/cli/lib/errors.js +15 -2
- package/dist/cli/lib/errors.js.map +1 -1
- package/dist/cli/lib/gate-adapters/adapter-findings.d.ts +41 -0
- package/dist/cli/lib/gate-adapters/adapter-findings.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/adapter-findings.js +99 -0
- package/dist/cli/lib/gate-adapters/adapter-findings.js.map +1 -0
- package/dist/cli/lib/gate-adapters/eslint-json-adapter.d.ts +14 -0
- package/dist/cli/lib/gate-adapters/eslint-json-adapter.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/eslint-json-adapter.js +63 -0
- package/dist/cli/lib/gate-adapters/eslint-json-adapter.js.map +1 -0
- package/dist/cli/lib/gate-adapters/gate-adapter-id.d.ts +10 -0
- package/dist/cli/lib/gate-adapters/gate-adapter-id.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/gate-adapter-id.js +12 -0
- package/dist/cli/lib/gate-adapters/gate-adapter-id.js.map +1 -0
- package/dist/cli/lib/gate-adapters/gate-adapter-types.d.ts +17 -0
- package/dist/cli/lib/gate-adapters/gate-adapter-types.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/gate-adapter-types.js +2 -0
- package/dist/cli/lib/gate-adapters/gate-adapter-types.js.map +1 -0
- package/dist/cli/lib/gate-adapters/generic-spawn-adapter.d.ts +4 -0
- package/dist/cli/lib/gate-adapters/generic-spawn-adapter.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/generic-spawn-adapter.js +12 -0
- package/dist/cli/lib/gate-adapters/generic-spawn-adapter.js.map +1 -0
- package/dist/cli/lib/gate-adapters/parsing-adapter.d.ts +5 -0
- package/dist/cli/lib/gate-adapters/parsing-adapter.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/parsing-adapter.js +13 -0
- package/dist/cli/lib/gate-adapters/parsing-adapter.js.map +1 -0
- package/dist/cli/lib/gate-adapters/registry.d.ts +6 -0
- package/dist/cli/lib/gate-adapters/registry.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/registry.js +13 -0
- package/dist/cli/lib/gate-adapters/registry.js.map +1 -0
- package/dist/cli/lib/gate-adapters/spawn-stream-core.d.ts +36 -0
- package/dist/cli/lib/gate-adapters/spawn-stream-core.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/spawn-stream-core.js +99 -0
- package/dist/cli/lib/gate-adapters/spawn-stream-core.js.map +1 -0
- package/dist/cli/lib/gate-adapters/tsc-adapter.d.ts +16 -0
- package/dist/cli/lib/gate-adapters/tsc-adapter.d.ts.map +1 -0
- package/dist/cli/lib/gate-adapters/tsc-adapter.js +51 -0
- package/dist/cli/lib/gate-adapters/tsc-adapter.js.map +1 -0
- package/dist/cli/lib/gate-log-writer.d.ts +8 -0
- package/dist/cli/lib/gate-log-writer.d.ts.map +1 -1
- package/dist/cli/lib/gate-log-writer.js +35 -0
- package/dist/cli/lib/gate-log-writer.js.map +1 -1
- package/dist/cli/lib/gate.d.ts +2 -0
- package/dist/cli/lib/gate.d.ts.map +1 -1
- package/dist/cli/lib/gate.js +2 -2
- package/dist/cli/lib/gate.js.map +1 -1
- package/dist/cli/lib/git.d.ts +14 -2
- package/dist/cli/lib/git.d.ts.map +1 -1
- package/dist/cli/lib/git.js +22 -7
- package/dist/cli/lib/git.js.map +1 -1
- package/dist/cli/lib/gxt-config.d.ts +9 -0
- package/dist/cli/lib/gxt-config.d.ts.map +1 -1
- package/dist/cli/lib/gxt-config.js +16 -0
- package/dist/cli/lib/gxt-config.js.map +1 -1
- package/dist/cli/lib/gxt-error-codes.d.ts +17 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +18 -0
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/import-scanner.d.ts +13 -3
- package/dist/cli/lib/import-scanner.d.ts.map +1 -1
- package/dist/cli/lib/import-scanner.js +185 -23
- package/dist/cli/lib/import-scanner.js.map +1 -1
- package/dist/cli/lib/init-tutorial.js +3 -4
- package/dist/cli/lib/init-tutorial.js.map +1 -1
- package/dist/cli/lib/interrogate/gaps.d.ts +2 -0
- package/dist/cli/lib/interrogate/gaps.d.ts.map +1 -1
- package/dist/cli/lib/interrogate/gaps.js +3 -4
- package/dist/cli/lib/interrogate/gaps.js.map +1 -1
- package/dist/cli/lib/interrogate/run.d.ts +1 -0
- package/dist/cli/lib/interrogate/run.d.ts.map +1 -1
- package/dist/cli/lib/interrogate/run.js +1 -0
- package/dist/cli/lib/interrogate/run.js.map +1 -1
- package/dist/cli/lib/kpi-scan.js +5 -1
- package/dist/cli/lib/kpi-scan.js.map +1 -1
- package/dist/cli/lib/ledger/ledger-append.d.ts +14 -0
- package/dist/cli/lib/ledger/ledger-append.d.ts.map +1 -0
- package/dist/cli/lib/ledger/ledger-append.js +63 -0
- package/dist/cli/lib/ledger/ledger-append.js.map +1 -0
- package/dist/cli/lib/ledger/ledger-chain.d.ts +24 -0
- package/dist/cli/lib/ledger/ledger-chain.d.ts.map +1 -0
- package/dist/cli/lib/ledger/ledger-chain.js +101 -0
- package/dist/cli/lib/ledger/ledger-chain.js.map +1 -0
- package/dist/cli/lib/ledger/ledger-entry.d.ts +79 -0
- package/dist/cli/lib/ledger/ledger-entry.d.ts.map +1 -0
- package/dist/cli/lib/ledger/ledger-entry.js +36 -0
- package/dist/cli/lib/ledger/ledger-entry.js.map +1 -0
- package/dist/cli/lib/ledger/ledger-export.d.ts +28 -0
- package/dist/cli/lib/ledger/ledger-export.d.ts.map +1 -0
- package/dist/cli/lib/ledger/ledger-export.js +36 -0
- package/dist/cli/lib/ledger/ledger-export.js.map +1 -0
- package/dist/cli/lib/legislate-from-intent.d.ts +9 -0
- package/dist/cli/lib/legislate-from-intent.d.ts.map +1 -0
- package/dist/cli/lib/legislate-from-intent.js +59 -0
- package/dist/cli/lib/legislate-from-intent.js.map +1 -0
- package/dist/cli/lib/legislate-gate-options.d.ts +3 -4
- package/dist/cli/lib/legislate-gate-options.d.ts.map +1 -1
- package/dist/cli/lib/legislate-gate-options.js +9 -4
- package/dist/cli/lib/legislate-gate-options.js.map +1 -1
- package/dist/cli/lib/legislate-policy-warn.d.ts +3 -0
- package/dist/cli/lib/legislate-policy-warn.d.ts.map +1 -0
- package/dist/cli/lib/legislate-policy-warn.js +17 -0
- package/dist/cli/lib/legislate-policy-warn.js.map +1 -0
- package/dist/cli/lib/legislate.d.ts +5 -1
- package/dist/cli/lib/legislate.d.ts.map +1 -1
- package/dist/cli/lib/legislate.js +38 -12
- package/dist/cli/lib/legislate.js.map +1 -1
- package/dist/cli/lib/mcp-doctor.d.ts +18 -0
- package/dist/cli/lib/mcp-doctor.d.ts.map +1 -0
- package/dist/cli/lib/mcp-doctor.js +35 -0
- package/dist/cli/lib/mcp-doctor.js.map +1 -0
- package/dist/cli/lib/mcp-draft-legislation.d.ts.map +1 -1
- package/dist/cli/lib/mcp-draft-legislation.js +39 -16
- package/dist/cli/lib/mcp-draft-legislation.js.map +1 -1
- package/dist/cli/lib/mcp-execute-legislation.d.ts.map +1 -1
- package/dist/cli/lib/mcp-execute-legislation.js +2 -0
- package/dist/cli/lib/mcp-execute-legislation.js.map +1 -1
- package/dist/cli/lib/mcp-governance-shared.d.ts +4 -1
- package/dist/cli/lib/mcp-governance-shared.d.ts.map +1 -1
- package/dist/cli/lib/mcp-governance-shared.js.map +1 -1
- package/dist/cli/lib/mcp-interrogate.js +3 -3
- package/dist/cli/lib/mcp-interrogate.js.map +1 -1
- package/dist/cli/lib/mcp-org.d.ts +19 -0
- package/dist/cli/lib/mcp-org.d.ts.map +1 -0
- package/dist/cli/lib/mcp-org.js +51 -0
- package/dist/cli/lib/mcp-org.js.map +1 -0
- package/dist/cli/lib/mcp-propose-contract.d.ts +22 -0
- package/dist/cli/lib/mcp-propose-contract.d.ts.map +1 -0
- package/dist/cli/lib/mcp-propose-contract.js +51 -0
- package/dist/cli/lib/mcp-propose-contract.js.map +1 -0
- package/dist/cli/lib/mcp-runtime.d.ts +1 -1
- package/dist/cli/lib/mcp-runtime.d.ts.map +1 -1
- package/dist/cli/lib/mcp-runtime.js +1 -1
- package/dist/cli/lib/mcp-runtime.js.map +1 -1
- package/dist/cli/lib/mcp-start-orchestration.d.ts.map +1 -1
- package/dist/cli/lib/mcp-start-orchestration.js +1 -0
- package/dist/cli/lib/mcp-start-orchestration.js.map +1 -1
- package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -1
- package/dist/cli/lib/mcp-tools-register.js +110 -17
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/mission-changed.d.ts +27 -0
- package/dist/cli/lib/mission-changed.d.ts.map +1 -0
- package/dist/cli/lib/mission-changed.js +107 -0
- package/dist/cli/lib/mission-changed.js.map +1 -0
- package/dist/cli/lib/missions/formatter.d.ts +1 -1
- package/dist/cli/lib/missions/formatter.d.ts.map +1 -1
- package/dist/cli/lib/missions/formatter.js +5 -0
- package/dist/cli/lib/missions/formatter.js.map +1 -1
- package/dist/cli/lib/missions/parser.d.ts +3 -1
- package/dist/cli/lib/missions/parser.d.ts.map +1 -1
- package/dist/cli/lib/missions/parser.js +30 -0
- package/dist/cli/lib/missions/parser.js.map +1 -1
- package/dist/cli/lib/msn-allocate.d.ts.map +1 -1
- package/dist/cli/lib/msn-allocate.js +17 -24
- package/dist/cli/lib/msn-allocate.js.map +1 -1
- package/dist/cli/lib/planner-signature.d.ts +7 -0
- package/dist/cli/lib/planner-signature.d.ts.map +1 -1
- package/dist/cli/lib/planner-signature.js +18 -1
- package/dist/cli/lib/planner-signature.js.map +1 -1
- package/dist/cli/lib/policy/policy-bundle.d.ts +6 -0
- package/dist/cli/lib/policy/policy-bundle.d.ts.map +1 -0
- package/dist/cli/lib/policy/policy-bundle.js +62 -0
- package/dist/cli/lib/policy/policy-bundle.js.map +1 -0
- package/dist/cli/lib/policy/policy-doctor.d.ts +4 -0
- package/dist/cli/lib/policy/policy-doctor.d.ts.map +1 -0
- package/dist/cli/lib/policy/policy-doctor.js +34 -0
- package/dist/cli/lib/policy/policy-doctor.js.map +1 -0
- package/dist/cli/lib/policy/policy-fetch.d.ts +10 -0
- package/dist/cli/lib/policy/policy-fetch.d.ts.map +1 -0
- package/dist/cli/lib/policy/policy-fetch.js +78 -0
- package/dist/cli/lib/policy/policy-fetch.js.map +1 -0
- package/dist/cli/lib/policy/policy-resolve.d.ts +38 -0
- package/dist/cli/lib/policy/policy-resolve.d.ts.map +1 -0
- package/dist/cli/lib/policy/policy-resolve.js +194 -0
- package/dist/cli/lib/policy/policy-resolve.js.map +1 -0
- package/dist/cli/lib/policy/policy-types.d.ts +76 -0
- package/dist/cli/lib/policy/policy-types.d.ts.map +1 -0
- package/dist/cli/lib/policy/policy-types.js +3 -0
- package/dist/cli/lib/policy/policy-types.js.map +1 -0
- package/dist/cli/lib/policy-digest-doctor.d.ts +1 -0
- package/dist/cli/lib/policy-digest-doctor.d.ts.map +1 -1
- package/dist/cli/lib/policy-digest-doctor.js +4 -2
- package/dist/cli/lib/policy-digest-doctor.js.map +1 -1
- package/dist/cli/lib/runtime-env.d.ts +3 -0
- package/dist/cli/lib/runtime-env.d.ts.map +1 -1
- package/dist/cli/lib/runtime-env.js +12 -2
- package/dist/cli/lib/runtime-env.js.map +1 -1
- package/dist/cli/lib/runtime-exec.d.ts +5 -1
- package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
- package/dist/cli/lib/runtime-exec.js +18 -1
- package/dist/cli/lib/runtime-exec.js.map +1 -1
- package/dist/cli/lib/staged-tmvc-guard.d.ts +3 -0
- package/dist/cli/lib/staged-tmvc-guard.d.ts.map +1 -1
- package/dist/cli/lib/staged-tmvc-guard.js +4 -2
- package/dist/cli/lib/staged-tmvc-guard.js.map +1 -1
- package/dist/cli/lib/start-orchestration.d.ts +2 -1
- package/dist/cli/lib/start-orchestration.d.ts.map +1 -1
- package/dist/cli/lib/start-orchestration.js +5 -3
- package/dist/cli/lib/start-orchestration.js.map +1 -1
- package/dist/cli/lib/surgeons/banned-import.js +1 -1
- package/dist/cli/lib/surgeons/banned-import.js.map +1 -1
- package/dist/cli/lib/surgeons/import-layer.d.ts.map +1 -1
- package/dist/cli/lib/surgeons/import-layer.js +1 -1
- package/dist/cli/lib/surgeons/import-layer.js.map +1 -1
- package/dist/cli/lib/surgeons/registry.d.ts.map +1 -1
- package/dist/cli/lib/surgeons/registry.js +2 -4
- package/dist/cli/lib/surgeons/registry.js.map +1 -1
- package/dist/cli/lib/types.d.ts +30 -0
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/types.js +5 -1
- package/dist/cli/lib/types.js.map +1 -1
- package/dist/cli/lib/verify-contract.d.ts +22 -0
- package/dist/cli/lib/verify-contract.d.ts.map +1 -0
- package/dist/cli/lib/verify-contract.js +110 -0
- package/dist/cli/lib/verify-contract.js.map +1 -0
- package/dist/cli/lib/verify-engine.d.ts +1 -1
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +38 -17
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-evidence-snippet.d.ts +7 -0
- package/dist/cli/lib/verify-evidence-snippet.d.ts.map +1 -0
- package/dist/cli/lib/verify-evidence-snippet.js +29 -0
- package/dist/cli/lib/verify-evidence-snippet.js.map +1 -0
- package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.js +30 -4
- package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
- package/dist/cli/lib/verify-failure.d.ts +27 -5
- package/dist/cli/lib/verify-failure.d.ts.map +1 -1
- package/dist/cli/lib/verify-finding-gate-projector.d.ts +1 -1
- package/dist/cli/lib/verify-finding-gate-projector.d.ts.map +1 -1
- package/dist/cli/lib/verify-finding-gate-projector.js +6 -28
- package/dist/cli/lib/verify-finding-gate-projector.js.map +1 -1
- package/dist/cli/lib/verify-finding.d.ts +1 -1
- package/dist/cli/lib/verify-finding.d.ts.map +1 -1
- package/dist/cli/lib/verify-finding.js.map +1 -1
- package/dist/cli/lib/verify-hints.d.ts.map +1 -1
- package/dist/cli/lib/verify-hints.js +27 -3
- package/dist/cli/lib/verify-hints.js.map +1 -1
- package/dist/cli/lib/verify-interrogation.d.ts +2 -0
- package/dist/cli/lib/verify-interrogation.d.ts.map +1 -1
- package/dist/cli/lib/verify-interrogation.js +2 -2
- package/dist/cli/lib/verify-interrogation.js.map +1 -1
- package/dist/cli/lib/verify-options.d.ts +5 -14
- package/dist/cli/lib/verify-options.d.ts.map +1 -1
- package/dist/cli/lib/verify-org-phases.d.ts +18 -0
- package/dist/cli/lib/verify-org-phases.d.ts.map +1 -0
- package/dist/cli/lib/verify-org-phases.js +61 -0
- package/dist/cli/lib/verify-org-phases.js.map +1 -0
- package/dist/cli/lib/verify-payload.d.ts +1 -1
- package/dist/cli/lib/verify-payload.d.ts.map +1 -1
- package/dist/cli/lib/verify-payload.js +49 -27
- package/dist/cli/lib/verify-payload.js.map +1 -1
- package/dist/cli/lib/verify-phase-clock.d.ts +3 -2
- package/dist/cli/lib/verify-phase-clock.d.ts.map +1 -1
- package/dist/cli/lib/verify-phase-clock.js +17 -5
- package/dist/cli/lib/verify-phase-clock.js.map +1 -1
- package/dist/cli/lib/verify-phase-steps.d.ts +14 -7
- package/dist/cli/lib/verify-phase-steps.d.ts.map +1 -1
- package/dist/cli/lib/verify-phase-steps.js +33 -24
- package/dist/cli/lib/verify-phase-steps.js.map +1 -1
- package/dist/cli/lib/verify-presenters.d.ts +1 -0
- package/dist/cli/lib/verify-presenters.d.ts.map +1 -1
- package/dist/cli/lib/verify-presenters.js +15 -4
- package/dist/cli/lib/verify-presenters.js.map +1 -1
- package/dist/cli/lib/verify-remediation-pipeline.d.ts +2 -0
- package/dist/cli/lib/verify-remediation-pipeline.d.ts.map +1 -1
- package/dist/cli/lib/verify-remediation-pipeline.js +5 -2
- package/dist/cli/lib/verify-remediation-pipeline.js.map +1 -1
- package/dist/cli/lib/verify-run.d.ts +2 -2
- package/dist/cli/lib/verify-run.d.ts.map +1 -1
- package/dist/cli/lib/verify-run.js +27 -13
- package/dist/cli/lib/verify-run.js.map +1 -1
- package/dist/cli/lib/version.gen.d.ts +1 -1
- package/dist/cli/lib/version.gen.js +1 -1
- package/dist/cli/program-core.d.ts +1 -1
- package/dist/cli/program-core.d.ts.map +1 -1
- package/dist/cli/program-core.js +62 -5
- 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 +97 -35
- package/dist/cli/program-mission.js.map +1 -1
- package/dist/cli/program-org.d.ts +3 -0
- package/dist/cli/program-org.d.ts.map +1 -0
- package/dist/cli/program-org.js +119 -0
- package/dist/cli/program-org.js.map +1 -0
- package/dist/cli/program-workflow.d.ts +6 -2
- package/dist/cli/program-workflow.d.ts.map +1 -1
- package/dist/cli/program-workflow.js +63 -6
- package/dist/cli/program-workflow.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +11 -0
- package/dist/cli/program.js.map +1 -1
- package/package.json +2 -1
- package/templates/.gitagent/config.json +4 -0
- package/templates/.gitagent/foreman/MANIFEST.json +1 -0
- package/templates/.gitagent/foreman/PLANNER.signing.pub +3 -0
- package/templates/.gitagent/foreman/POLICY.pointer.json +11 -0
- package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
- package/templates/.gitagent/planner/MISSION-ARCHITECT.md +26 -5
- package/templates/.gitagent/planner/MISSION.schema.yaml +103 -0
- package/templates/.gitagent/planner/ORG-POLICY.schema.yaml +174 -0
- package/templates/.gitagent/planner/RULES.md +75 -22
- package/templates/.githooks/pre-commit +12 -0
- package/templates/.github/workflows/gxt-attest-ingest.yml +56 -6
- package/templates/.github/workflows/gxt-validate.yml +33 -0
- package/templates/.gitignore.gxt +1 -0
- package/templates/integrations/asset-catalog.json +2 -0
- package/templates/integrations/compatibility.json +1 -1
- package/templates/scripts/validate-mcp-dogfood.mjs +5 -0
- package/templates/scripts/verify-pr-missions.sh +20 -41
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared subprocess core for gate adapters: spawn via shell, stream stdout+stderr
|
|
3
|
+
* to `gateLogPath`, and optionally capture stdout in memory (bounded by
|
|
4
|
+
* MAX_IO_BUFFER_BYTES, truncation flagged). Success-substring is checked after
|
|
5
|
+
* close against the written log (fixes multibyte chunk-split false negatives).
|
|
6
|
+
*
|
|
7
|
+
* Adapter-layer module: imports only gate.ts, gate-log-writer, and sibling types.
|
|
8
|
+
*/
|
|
9
|
+
import { spawn, type ChildProcess } from "node:child_process";
|
|
10
|
+
import fs from "node:fs";
|
|
11
|
+
import type { GateExecContext } from "./gate-adapter-types.js";
|
|
12
|
+
export interface SpawnStreamOptions {
|
|
13
|
+
/** Keep a bounded copy of stdout in memory for structured parsing. */
|
|
14
|
+
captureStdout?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface SpawnStreamResult {
|
|
17
|
+
exitCode: number | null;
|
|
18
|
+
successSubstringMatched: boolean;
|
|
19
|
+
/** Captured stdout (UTF-8); empty when capture disabled. */
|
|
20
|
+
stdout: string;
|
|
21
|
+
/** True when stdout byte count reached MAX_IO_BUFFER_BYTES and capture stopped. */
|
|
22
|
+
stdoutTruncated: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function spawnOrDestroyStream(spawnFn: typeof spawn, writeStream: fs.WriteStream, command: string, options: Parameters<typeof spawn>[2]): ChildProcess;
|
|
25
|
+
export declare class BoundedStdoutCapture {
|
|
26
|
+
private readonly enabled;
|
|
27
|
+
private readonly limit;
|
|
28
|
+
private readonly chunks;
|
|
29
|
+
private bytes;
|
|
30
|
+
truncated: boolean;
|
|
31
|
+
constructor(enabled: boolean, limit: number);
|
|
32
|
+
push(chunk: Buffer): void;
|
|
33
|
+
text(): string;
|
|
34
|
+
}
|
|
35
|
+
export declare function spawnGateStreaming(command: string, ctx: GateExecContext, options?: SpawnStreamOptions): Promise<SpawnStreamResult>;
|
|
36
|
+
//# sourceMappingURL=spawn-stream-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-stream-core.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/spawn-stream-core.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAkBD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,KAAK,EACrB,WAAW,EAAE,EAAE,CAAC,WAAW,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GACnC,YAAY,CAOd;AAED,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,KAAK,CAAK;IAClB,SAAS,UAAS;gBAGC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM;IAGhC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAazB,IAAI,IAAI,MAAM;CAGf;AAMD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,eAAe,EACpB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAqC5B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared subprocess core for gate adapters: spawn via shell, stream stdout+stderr
|
|
3
|
+
* to `gateLogPath`, and optionally capture stdout in memory (bounded by
|
|
4
|
+
* MAX_IO_BUFFER_BYTES, truncation flagged). Success-substring is checked after
|
|
5
|
+
* close against the written log (fixes multibyte chunk-split false negatives).
|
|
6
|
+
*
|
|
7
|
+
* Adapter-layer module: imports only gate.ts, gate-log-writer, and sibling types.
|
|
8
|
+
*/
|
|
9
|
+
import { spawn } from "node:child_process";
|
|
10
|
+
import fs from "node:fs";
|
|
11
|
+
import { MAX_IO_BUFFER_BYTES, shellForPlatform } from "../gate.js";
|
|
12
|
+
import { readGateLogAbs } from "../gate-log-writer.js";
|
|
13
|
+
function waitForChildClose(child) {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
child.once("error", reject);
|
|
16
|
+
child.once("close", (code, signal) => resolve({ exitCode: code, signal }));
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function endWriteStream(stream) {
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
stream.once("error", reject);
|
|
22
|
+
stream.end(() => resolve());
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function spawnOrDestroyStream(spawnFn, writeStream, command, options) {
|
|
26
|
+
try {
|
|
27
|
+
return spawnFn(command, [], options);
|
|
28
|
+
}
|
|
29
|
+
catch (spawnErr) {
|
|
30
|
+
writeStream.destroy();
|
|
31
|
+
throw spawnErr;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class BoundedStdoutCapture {
|
|
35
|
+
enabled;
|
|
36
|
+
limit;
|
|
37
|
+
chunks = [];
|
|
38
|
+
bytes = 0;
|
|
39
|
+
truncated = false;
|
|
40
|
+
constructor(enabled, limit) {
|
|
41
|
+
this.enabled = enabled;
|
|
42
|
+
this.limit = limit;
|
|
43
|
+
}
|
|
44
|
+
push(chunk) {
|
|
45
|
+
if (!this.enabled || this.truncated)
|
|
46
|
+
return;
|
|
47
|
+
const remaining = this.limit - this.bytes;
|
|
48
|
+
if (chunk.length >= remaining) {
|
|
49
|
+
this.chunks.push(chunk.subarray(0, remaining));
|
|
50
|
+
this.bytes = this.limit;
|
|
51
|
+
this.truncated = true;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.chunks.push(chunk);
|
|
55
|
+
this.bytes += chunk.length;
|
|
56
|
+
}
|
|
57
|
+
text() {
|
|
58
|
+
return this.enabled ? Buffer.concat(this.chunks).toString("utf8") : "";
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function toBuffer(chunk) {
|
|
62
|
+
return Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
|
|
63
|
+
}
|
|
64
|
+
export async function spawnGateStreaming(command, ctx, options = {}) {
|
|
65
|
+
const capture = new BoundedStdoutCapture(options.captureStdout === true, MAX_IO_BUFFER_BYTES);
|
|
66
|
+
const stream = fs.createWriteStream(ctx.gateLogPath, { flags: "w" });
|
|
67
|
+
try {
|
|
68
|
+
const child = spawnOrDestroyStream(spawn, stream, command, {
|
|
69
|
+
cwd: ctx.cwd,
|
|
70
|
+
shell: shellForPlatform(),
|
|
71
|
+
env: process.env,
|
|
72
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
73
|
+
});
|
|
74
|
+
const forward = (chunk) => {
|
|
75
|
+
stream.write(toBuffer(chunk));
|
|
76
|
+
};
|
|
77
|
+
child.stdout?.on("data", (chunk) => {
|
|
78
|
+
const buf = toBuffer(chunk);
|
|
79
|
+
capture.push(buf);
|
|
80
|
+
forward(buf);
|
|
81
|
+
});
|
|
82
|
+
child.stderr?.on("data", forward);
|
|
83
|
+
const { exitCode } = await waitForChildClose(child);
|
|
84
|
+
await endWriteStream(stream);
|
|
85
|
+
const needle = ctx.successSubstring ?? "";
|
|
86
|
+
const logText = readGateLogAbs(ctx.gateLogPath);
|
|
87
|
+
return {
|
|
88
|
+
exitCode,
|
|
89
|
+
successSubstringMatched: needle.length === 0 || logText.includes(needle),
|
|
90
|
+
stdout: capture.text(),
|
|
91
|
+
stdoutTruncated: capture.truncated,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
stream.destroy();
|
|
96
|
+
throw e;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=spawn-stream-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-stream-core.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/spawn-stream-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript compiler adapter (ADR-0041): parses plain `tsc` diagnostics
|
|
3
|
+
* path(line,col): error TS2322: message
|
|
4
|
+
* into envelope v3 findings. Line-oriented and noise tolerant: paths may
|
|
5
|
+
* contain parentheses (the `(line,col): error TSnnnn:` tail is the anchor),
|
|
6
|
+
* indented lines extend the active diagnostic, anything else is skipped.
|
|
7
|
+
* Selected only via `gate_adapter: tsc`.
|
|
8
|
+
*/
|
|
9
|
+
import type { VerifyFinding } from "../verify-finding.js";
|
|
10
|
+
import { type GateRunSnapshot, type ParsedDiagnostic } from "./adapter-findings.js";
|
|
11
|
+
import type { GateExecContext } from "./gate-adapter-types.js";
|
|
12
|
+
/** Pure parser for tsc stdout; never throws on noise. */
|
|
13
|
+
export declare function parseTscOutput(stdout: string): ParsedDiagnostic[];
|
|
14
|
+
export declare function tscFindingsFromRun(ctx: GateExecContext, run: GateRunSnapshot): VerifyFinding[];
|
|
15
|
+
export declare const tscAdapter: import("./gate-adapter-types.js").GateExecAdapter;
|
|
16
|
+
//# sourceMappingURL=tsc-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsc-adapter.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/tsc-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAyB/D,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAiBjE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa,EAAE,CAE9F;AAED,eAAO,MAAM,UAAU,mDAGpB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { findingsFromRun, } from "./adapter-findings.js";
|
|
2
|
+
import { parsingAdapter } from "./parsing-adapter.js";
|
|
3
|
+
/** `path(line,col): error TS1234: message` — greedy path, right-anchored tail. */
|
|
4
|
+
const PAREN_DIAGNOSTIC = /^(.*)\((\d+),(\d+)\): (error|warning) (TS\d+): (.*)$/;
|
|
5
|
+
/** `path:line:col - error TS1234: message` (pretty output with colors stripped). */
|
|
6
|
+
const COLON_DIAGNOSTIC = /^(.*?):(\d+):(\d+) - (error|warning) (TS\d+): (.*)$/;
|
|
7
|
+
// eslint-disable-next-line no-control-regex
|
|
8
|
+
const ANSI_ESCAPES = /\u001b\[[0-9;]*m/g;
|
|
9
|
+
function matchDiagnosticLine(line) {
|
|
10
|
+
const m = PAREN_DIAGNOSTIC.exec(line) ?? COLON_DIAGNOSTIC.exec(line);
|
|
11
|
+
if (m === null)
|
|
12
|
+
return null;
|
|
13
|
+
const [, file, lineNo, col, level, code, message] = m;
|
|
14
|
+
if (file === undefined || file.trim().length === 0)
|
|
15
|
+
return null;
|
|
16
|
+
return {
|
|
17
|
+
file: file.trim(),
|
|
18
|
+
line: Number.parseInt(lineNo ?? "0", 10),
|
|
19
|
+
column: Number.parseInt(col ?? "0", 10),
|
|
20
|
+
severity: level === "warning" ? "warning" : "error",
|
|
21
|
+
ruleId: code ?? "TS0000",
|
|
22
|
+
message: (message ?? "").trim(),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** Pure parser for tsc stdout; never throws on noise. */
|
|
26
|
+
export function parseTscOutput(stdout) {
|
|
27
|
+
const diagnostics = [];
|
|
28
|
+
let active = null;
|
|
29
|
+
for (const raw of stdout.replace(ANSI_ESCAPES, "").split(/\r?\n/)) {
|
|
30
|
+
const diagnostic = matchDiagnosticLine(raw);
|
|
31
|
+
if (diagnostic !== null) {
|
|
32
|
+
diagnostics.push(diagnostic);
|
|
33
|
+
active = diagnostic;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (active !== null && /^\s+\S/.test(raw)) {
|
|
37
|
+
active.message = `${active.message} ${raw.trim()}`;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
active = null;
|
|
41
|
+
}
|
|
42
|
+
return diagnostics;
|
|
43
|
+
}
|
|
44
|
+
export function tscFindingsFromRun(ctx, run) {
|
|
45
|
+
return findingsFromRun("tsc", ctx, run, (stdout) => ({ ok: true, diagnostics: parseTscOutput(stdout) }));
|
|
46
|
+
}
|
|
47
|
+
export const tscAdapter = parsingAdapter("tsc", (stdout) => ({
|
|
48
|
+
ok: true,
|
|
49
|
+
diagnostics: parseTscOutput(stdout),
|
|
50
|
+
}));
|
|
51
|
+
//# sourceMappingURL=tsc-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsc-adapter.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/tsc-adapter.ts"],"names":[],"mappings":"AASA,OAAO,EACL,eAAe,GAGhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,kFAAkF;AAClF,MAAM,gBAAgB,GAAG,sDAAsD,CAAC;AAChF,oFAAoF;AACpF,MAAM,gBAAgB,GAAG,qDAAqD,CAAC;AAC/E,4CAA4C;AAC5C,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;QACvC,QAAQ,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QACnD,MAAM,EAAE,IAAI,IAAI,QAAQ;QACxB,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,IAAI,MAAM,GAA4B,IAAI,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,MAAM,GAAG,UAAU,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAoB,EAAE,GAAoB;IAC3E,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3D,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC;CACpC,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
export declare const REL_GATE_LOGS_DIR: ".gitagent/tmp/gate-logs";
|
|
2
2
|
export declare function gateLogRelPath(msnId: string): string;
|
|
3
|
+
export declare function ensureGateLogPath(root: string, msnId: string): {
|
|
4
|
+
abs: string;
|
|
5
|
+
rel: string;
|
|
6
|
+
};
|
|
7
|
+
/** Read an absolute gate log; tail-capped at MAX_IO_BUFFER_BYTES to avoid V8 OOM. */
|
|
8
|
+
export declare function readGateLogAbs(absPath: string): string;
|
|
9
|
+
/** Read gate log from disk; tail-capped at MAX_IO_BUFFER_BYTES to avoid V8 OOM. */
|
|
10
|
+
export declare function readGateLogText(root: string, gateLogRel: string | undefined): string;
|
|
3
11
|
/** Write combined gate stdout/stderr; returns repo-relative POSIX path. */
|
|
4
12
|
export declare function writeGateLog(root: string, msnId: string | undefined, stdout: string | undefined, stderr: string | undefined): string | undefined;
|
|
5
13
|
//# sourceMappingURL=gate-log-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-log-writer.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gate-log-writer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gate-log-writer.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gate-log-writer.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,EAAG,yBAAkC,CAAC;AAEpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAK3F;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkBtD;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGpF;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAkBpB"}
|
|
@@ -1,10 +1,45 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { MAX_IO_BUFFER_BYTES } from "./gate.js";
|
|
3
4
|
export const REL_GATE_LOGS_DIR = ".gitagent/tmp/gate-logs";
|
|
4
5
|
export function gateLogRelPath(msnId) {
|
|
5
6
|
const safe = msnId.replace(/[^A-Za-z0-9-]/g, "_");
|
|
6
7
|
return `${REL_GATE_LOGS_DIR}/${safe}.last.log`;
|
|
7
8
|
}
|
|
9
|
+
export function ensureGateLogPath(root, msnId) {
|
|
10
|
+
const rel = gateLogRelPath(msnId);
|
|
11
|
+
const absDir = path.join(root, REL_GATE_LOGS_DIR);
|
|
12
|
+
fs.mkdirSync(absDir, { recursive: true });
|
|
13
|
+
return { abs: path.join(root, rel), rel: rel.replace(/\\/g, "/") };
|
|
14
|
+
}
|
|
15
|
+
/** Read an absolute gate log; tail-capped at MAX_IO_BUFFER_BYTES to avoid V8 OOM. */
|
|
16
|
+
export function readGateLogAbs(absPath) {
|
|
17
|
+
try {
|
|
18
|
+
const stat = fs.statSync(absPath);
|
|
19
|
+
if (stat.size <= MAX_IO_BUFFER_BYTES) {
|
|
20
|
+
return fs.readFileSync(absPath, "utf8");
|
|
21
|
+
}
|
|
22
|
+
const fd = fs.openSync(absPath, "r");
|
|
23
|
+
try {
|
|
24
|
+
const buffer = Buffer.alloc(MAX_IO_BUFFER_BYTES);
|
|
25
|
+
const start = stat.size - MAX_IO_BUFFER_BYTES;
|
|
26
|
+
const bytesRead = fs.readSync(fd, buffer, 0, MAX_IO_BUFFER_BYTES, start);
|
|
27
|
+
return buffer.subarray(0, bytesRead).toString("utf8");
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
fs.closeSync(fd);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return "";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Read gate log from disk; tail-capped at MAX_IO_BUFFER_BYTES to avoid V8 OOM. */
|
|
38
|
+
export function readGateLogText(root, gateLogRel) {
|
|
39
|
+
if (!gateLogRel)
|
|
40
|
+
return "";
|
|
41
|
+
return readGateLogAbs(path.join(root, gateLogRel));
|
|
42
|
+
}
|
|
8
43
|
/** Write combined gate stdout/stderr; returns repo-relative POSIX path. */
|
|
9
44
|
export function writeGateLog(root, msnId, stdout, stderr) {
|
|
10
45
|
if (!msnId?.trim())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-log-writer.js","sourceRoot":"","sources":["../../../src/cli/lib/gate-log-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gate-log-writer.js","sourceRoot":"","sources":["../../../src/cli/lib/gate-log-writer.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/lib/gate.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GateSpec } from "./types.js";
|
|
2
|
+
export declare const MAX_IO_BUFFER_BYTES: number;
|
|
2
3
|
export interface GateWorkDirOptions {
|
|
3
4
|
cwd?: string;
|
|
4
5
|
}
|
|
@@ -10,6 +11,7 @@ export interface GateRunResult {
|
|
|
10
11
|
stderr: string;
|
|
11
12
|
combined: string;
|
|
12
13
|
}
|
|
14
|
+
export declare function shellForPlatform(): boolean | string;
|
|
13
15
|
export declare function runGate(workingDirectory: string, spec: GateSpec): GateRunResult;
|
|
14
16
|
export declare function gatePassed(result: GateRunResult, successSubstring: string | null): boolean;
|
|
15
17
|
//# sourceMappingURL=gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAEzF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,IAAI,OAAO,GAAG,MAAM,CAEnD;AAED,wBAAgB,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,aAAa,CAgB/E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAI1F"}
|
package/dist/cli/lib/gate.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
const MAX_IO_BUFFER_BYTES = 20 * 1024 * 1024;
|
|
3
|
+
export const MAX_IO_BUFFER_BYTES = 20 * 1024 * 1024;
|
|
4
4
|
/** Resolve working directory for gate/scan subprocess execution. */
|
|
5
5
|
export function resolveGateWorkDir(root, options = {}) {
|
|
6
6
|
return options.cwd ? path.resolve(root, options.cwd) : root;
|
|
7
7
|
}
|
|
8
|
-
function shellForPlatform() {
|
|
8
|
+
export function shellForPlatform() {
|
|
9
9
|
return process.platform === "win32" ? true : "/bin/sh";
|
|
10
10
|
}
|
|
11
11
|
export function runGate(workingDirectory, spec) {
|
package/dist/cli/lib/gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/cli/lib/gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/cli/lib/gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAMpD,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,UAA8B,EAAE;IAC/E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AASD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,gBAAwB,EAAE,IAAc;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;QACnC,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,gBAAgB,EAAE;QACzB,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,mBAAmB;QAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,MAAM;QACrB,MAAM;QACN,MAAM;QACN,QAAQ,EAAE,GAAG,MAAM,KAAK,MAAM,EAAE;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAqB,EAAE,gBAA+B;IAC/E,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/cli/lib/git.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copy of the process env for a git child. `GIT_DIR` / `GIT_WORK_TREE` are removed from the
|
|
3
|
+
* copy only (never from `process.env`) so `git -C <root>` is authoritative and cannot resolve
|
|
4
|
+
* into a parent repository.
|
|
5
|
+
*/
|
|
6
|
+
export declare function gitChildEnv(extra?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
7
|
+
export interface GitRunOptions {
|
|
8
|
+
maxBuffer?: number;
|
|
9
|
+
input?: string;
|
|
10
|
+
env?: NodeJS.ProcessEnv;
|
|
11
|
+
}
|
|
1
12
|
export declare function getRepoRoot(cwd?: string): string;
|
|
2
13
|
export interface GitRunResult {
|
|
3
14
|
ok: boolean;
|
|
@@ -5,8 +16,8 @@ export interface GitRunResult {
|
|
|
5
16
|
stderr: string;
|
|
6
17
|
status: number | null;
|
|
7
18
|
}
|
|
8
|
-
/** Run git in repository root (`git -C root ...args`). */
|
|
9
|
-
export declare function gitRun(repoRoot: string, args: string[],
|
|
19
|
+
/** Run git in repository root (`git -C root ...args`). Third arg is maxBuffer or options. */
|
|
20
|
+
export declare function gitRun(repoRoot: string, args: string[], maxBufferOrOpts?: number | GitRunOptions): GitRunResult;
|
|
10
21
|
export declare function gitRunOk(repoRoot: string, args: string[], maxBuffer?: number): {
|
|
11
22
|
ok: boolean;
|
|
12
23
|
stdout: string;
|
|
@@ -15,6 +26,7 @@ export declare function gitRevParse(repoRoot: string, ref: string): string | nul
|
|
|
15
26
|
export declare function gitHead(repoRoot: string): string | null;
|
|
16
27
|
export declare function gitLogSubjects(repoRoot: string, grep: string, limit: number): string[];
|
|
17
28
|
export declare function gitConfigGet(repoRoot: string, key: string): string | null;
|
|
29
|
+
export declare function gitConfigSet(repoRoot: string, key: string, value: string): boolean;
|
|
18
30
|
export type GitDiffSinceCommitResult = {
|
|
19
31
|
ok: true;
|
|
20
32
|
paths: string[];
|
|
@@ -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":"AAIA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAKxE;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,GAAG,SAAgB,GAAG,MAAM,CAavD;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,6FAA6F;AAC7F,wBAAgB,MAAM,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,eAAe,GAAE,MAAM,GAAG,aAAgC,GACzD,YAAY,CAgBd;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,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAElF;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,15 +1,24 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
1
|
+
import { execSync, spawnSync } from "node:child_process";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { spawnSync } from "node:child_process";
|
|
4
3
|
import { CLI_NAME } from "./constants.js";
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Copy of the process env for a git child. `GIT_DIR` / `GIT_WORK_TREE` are removed from the
|
|
6
|
+
* copy only (never from `process.env`) so `git -C <root>` is authoritative and cannot resolve
|
|
7
|
+
* into a parent repository.
|
|
8
|
+
*/
|
|
9
|
+
export function gitChildEnv(extra) {
|
|
10
|
+
const env = { ...process.env, GIT_OPTIONAL_LOCKS: "0", ...extra };
|
|
11
|
+
delete env.GIT_DIR;
|
|
12
|
+
delete env.GIT_WORK_TREE;
|
|
13
|
+
return env;
|
|
14
|
+
}
|
|
6
15
|
export function getRepoRoot(cwd = process.cwd()) {
|
|
7
16
|
try {
|
|
8
17
|
const out = execSync("git rev-parse --show-toplevel", {
|
|
9
18
|
cwd,
|
|
10
19
|
encoding: "utf8",
|
|
11
20
|
stdio: ["ignore", "pipe", "pipe"],
|
|
12
|
-
env:
|
|
21
|
+
env: gitChildEnv(),
|
|
13
22
|
}).trim();
|
|
14
23
|
if (!out)
|
|
15
24
|
throw new Error("empty root");
|
|
@@ -19,12 +28,15 @@ export function getRepoRoot(cwd = process.cwd()) {
|
|
|
19
28
|
throw new Error(`${CLI_NAME}: not inside a git repository`);
|
|
20
29
|
}
|
|
21
30
|
}
|
|
22
|
-
/** Run git in repository root (`git -C root ...args`). */
|
|
23
|
-
export function gitRun(repoRoot, args,
|
|
31
|
+
/** Run git in repository root (`git -C root ...args`). Third arg is maxBuffer or options. */
|
|
32
|
+
export function gitRun(repoRoot, args, maxBufferOrOpts = 32 * 1024 * 1024) {
|
|
33
|
+
const opts = typeof maxBufferOrOpts === "number" ? { maxBuffer: maxBufferOrOpts } : maxBufferOrOpts;
|
|
34
|
+
const maxBuffer = opts.maxBuffer ?? 32 * 1024 * 1024;
|
|
24
35
|
const r = spawnSync("git", ["-C", repoRoot, ...args], {
|
|
25
36
|
encoding: "utf8",
|
|
26
37
|
maxBuffer,
|
|
27
|
-
env:
|
|
38
|
+
env: gitChildEnv(opts.env),
|
|
39
|
+
...(opts.input !== undefined ? { input: opts.input } : {}),
|
|
28
40
|
});
|
|
29
41
|
return {
|
|
30
42
|
ok: r.status === 0,
|
|
@@ -57,6 +69,9 @@ export function gitConfigGet(repoRoot, key) {
|
|
|
57
69
|
return null;
|
|
58
70
|
return r.stdout.trim();
|
|
59
71
|
}
|
|
72
|
+
export function gitConfigSet(repoRoot, key, value) {
|
|
73
|
+
return gitRunOk(repoRoot, ["config", key, value]).ok;
|
|
74
|
+
}
|
|
60
75
|
/** Paths under tmvcRoots that differ between ref and the working tree; empty paths = fresh. */
|
|
61
76
|
export function gitDiffNameOnlySinceCommit(repoRoot, commit, tmvcRoots) {
|
|
62
77
|
const roots = tmvcRoots.map((r) => r.trim()).filter((r) => r.length > 0);
|
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;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,24 @@ export declare const FLIGHT_TELEMETRY_BODY_MODES: readonly FlightTelemetryBodyMo
|
|
|
8
8
|
export interface FlightTelemetryConfig {
|
|
9
9
|
body_mode?: FlightTelemetryBodyMode;
|
|
10
10
|
}
|
|
11
|
+
export type LedgerMode = "off" | "local";
|
|
12
|
+
export declare const LEDGER_MODES: readonly LedgerMode[];
|
|
13
|
+
export interface LedgerConfig {
|
|
14
|
+
mode?: LedgerMode;
|
|
15
|
+
signature?: ReceiptSignatureTier;
|
|
16
|
+
}
|
|
11
17
|
export interface GxtConfig {
|
|
12
18
|
planner_signature?: PlannerSignatureTier;
|
|
13
19
|
receipt_signature?: ReceiptSignatureTier;
|
|
14
20
|
flight_telemetry?: FlightTelemetryConfig;
|
|
15
21
|
trusted_automation?: unknown;
|
|
16
22
|
defensive_profile?: DefensiveProfileConfig;
|
|
23
|
+
ledger?: LedgerConfig;
|
|
17
24
|
}
|
|
18
25
|
export declare function loadGxtConfig(root: string): GxtConfig;
|
|
19
26
|
export declare function resolvePlannerSignatureTier(config: GxtConfig): PlannerSignatureTier;
|
|
20
27
|
export declare function resolveReceiptSignatureTier(config: GxtConfig): ReceiptSignatureTier;
|
|
21
28
|
export declare function resolveFlightTelemetryBodyMode(config: GxtConfig): FlightTelemetryBodyMode;
|
|
29
|
+
export declare function resolveLedgerMode(config: GxtConfig): LedgerMode;
|
|
30
|
+
export declare function resolveLedgerSignatureTier(config: GxtConfig): ReceiptSignatureTier;
|
|
22
31
|
//# sourceMappingURL=gxt-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gxt-config.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"gxt-config.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIrE,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACxD,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,MAAM,CAAC;AAE3D,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAA+B,CAAC;AACnG,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAA4B,CAAC;AAChG,eAAO,MAAM,2BAA2B,EAAE,SAAS,uBAAuB,EAA0B,CAAC;AAErG,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;AACzC,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAqB,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;IACzC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;IACzC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAarD;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,CAGnF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,CAGnF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,GAAG,uBAAuB,CAGzF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAS/D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,CAGlF"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { validateDefensiveProfile } from "./defensive-profile.js";
|
|
4
|
+
import { isDefensiveProfilePresetName, presetConfigDefaults } from "./defensive-profile-presets.js";
|
|
4
5
|
export const PLANNER_SIGNATURE_TIERS = ["off", "warn", "require"];
|
|
5
6
|
export const RECEIPT_SIGNATURE_TIERS = PLANNER_SIGNATURE_TIERS;
|
|
6
7
|
export const FLIGHT_TELEMETRY_BODY_MODES = ["hash_only", "full"];
|
|
8
|
+
export const LEDGER_MODES = ["off", "local"];
|
|
7
9
|
export function loadGxtConfig(root) {
|
|
8
10
|
const configPath = path.join(root, ".gitagent", "config.json");
|
|
9
11
|
if (!fs.existsSync(configPath))
|
|
@@ -32,4 +34,18 @@ export function resolveFlightTelemetryBodyMode(config) {
|
|
|
32
34
|
const mode = config.flight_telemetry?.body_mode ?? "hash_only";
|
|
33
35
|
return FLIGHT_TELEMETRY_BODY_MODES.includes(mode) ? mode : "hash_only";
|
|
34
36
|
}
|
|
37
|
+
export function resolveLedgerMode(config) {
|
|
38
|
+
if (config.ledger?.mode !== undefined) {
|
|
39
|
+
return LEDGER_MODES.includes(config.ledger.mode) ? config.ledger.mode : "off";
|
|
40
|
+
}
|
|
41
|
+
const preset = config.defensive_profile?.preset;
|
|
42
|
+
if (preset && isDefensiveProfilePresetName(preset)) {
|
|
43
|
+
return presetConfigDefaults(preset).ledger?.mode ?? "off";
|
|
44
|
+
}
|
|
45
|
+
return "off";
|
|
46
|
+
}
|
|
47
|
+
export function resolveLedgerSignatureTier(config) {
|
|
48
|
+
const tier = config.ledger?.signature ?? "off";
|
|
49
|
+
return RECEIPT_SIGNATURE_TIERS.includes(tier) ? tier : "off";
|
|
50
|
+
}
|
|
35
51
|
//# sourceMappingURL=gxt-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gxt-config.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"gxt-config.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,23 @@ export declare const GXT_ERROR: {
|
|
|
30
30
|
readonly INTERROGATION_REQUIRED: "GXT_INTERROGATION_REQUIRED";
|
|
31
31
|
readonly INTERROGATION_SHALLOW_HISTORY: "GXT_INTERROGATION_SHALLOW_HISTORY";
|
|
32
32
|
readonly FINDINGS_RECURRED: "GXT_FINDINGS_RECURRED";
|
|
33
|
+
readonly POLICY_UNPINNED: "GXT_POLICY_UNPINNED";
|
|
34
|
+
readonly POLICY_DRIFT: "GXT_POLICY_DRIFT";
|
|
35
|
+
readonly POLICY_SIGNATURE_INVALID: "GXT_POLICY_SIGNATURE_INVALID";
|
|
36
|
+
readonly POLICY_FLOOR_VIOLATION: "GXT_POLICY_FLOOR_VIOLATION";
|
|
37
|
+
readonly LEDGER_CAS_EXHAUSTED: "GXT_LEDGER_CAS_EXHAUSTED";
|
|
38
|
+
readonly LEDGER_CHAIN_BROKEN: "GXT_LEDGER_CHAIN_BROKEN";
|
|
39
|
+
readonly LEDGER_UNSIGNED: "GXT_LEDGER_UNSIGNED";
|
|
40
|
+
readonly DEPENDENCY_UNFETCHED: "GXT_DEPENDENCY_UNFETCHED";
|
|
41
|
+
readonly DEPENDENCY_UNSATISFIED: "GXT_DEPENDENCY_UNSATISFIED";
|
|
42
|
+
readonly DEPENDENCY_UNSIGNED: "GXT_DEPENDENCY_UNSIGNED";
|
|
43
|
+
readonly DEPENDENCY_STALE: "GXT_DEPENDENCY_STALE";
|
|
44
|
+
readonly DEPENDENCY_ORG_MISMATCH: "GXT_DEPENDENCY_ORG_MISMATCH";
|
|
45
|
+
readonly CONTRACT_TAMPERED: "GXT_CONTRACT_TAMPERED";
|
|
46
|
+
readonly CONTRACT_SCOPE_ESCAPE: "GXT_CONTRACT_SCOPE_ESCAPE";
|
|
47
|
+
readonly CONTRACT_IMPORT_BANNED: "GXT_CONTRACT_IMPORT_BANNED";
|
|
48
|
+
readonly CONTRACT_IMPORT_UNLISTED: "GXT_CONTRACT_IMPORT_UNLISTED";
|
|
49
|
+
readonly CONTRACT_IMPORT_DYNAMIC: "GXT_CONTRACT_IMPORT_DYNAMIC";
|
|
33
50
|
};
|
|
34
51
|
export type GxtErrorCode = (typeof GXT_ERROR)[keyof typeof GXT_ERROR];
|
|
35
52
|
/** Map runtime exec / MCP error codes to stable GXT codes. */
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAiCtE,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"}
|
|
@@ -30,6 +30,23 @@ export const GXT_ERROR = {
|
|
|
30
30
|
INTERROGATION_REQUIRED: "GXT_INTERROGATION_REQUIRED",
|
|
31
31
|
INTERROGATION_SHALLOW_HISTORY: "GXT_INTERROGATION_SHALLOW_HISTORY",
|
|
32
32
|
FINDINGS_RECURRED: "GXT_FINDINGS_RECURRED",
|
|
33
|
+
POLICY_UNPINNED: "GXT_POLICY_UNPINNED",
|
|
34
|
+
POLICY_DRIFT: "GXT_POLICY_DRIFT",
|
|
35
|
+
POLICY_SIGNATURE_INVALID: "GXT_POLICY_SIGNATURE_INVALID",
|
|
36
|
+
POLICY_FLOOR_VIOLATION: "GXT_POLICY_FLOOR_VIOLATION",
|
|
37
|
+
LEDGER_CAS_EXHAUSTED: "GXT_LEDGER_CAS_EXHAUSTED",
|
|
38
|
+
LEDGER_CHAIN_BROKEN: "GXT_LEDGER_CHAIN_BROKEN",
|
|
39
|
+
LEDGER_UNSIGNED: "GXT_LEDGER_UNSIGNED",
|
|
40
|
+
DEPENDENCY_UNFETCHED: "GXT_DEPENDENCY_UNFETCHED",
|
|
41
|
+
DEPENDENCY_UNSATISFIED: "GXT_DEPENDENCY_UNSATISFIED",
|
|
42
|
+
DEPENDENCY_UNSIGNED: "GXT_DEPENDENCY_UNSIGNED",
|
|
43
|
+
DEPENDENCY_STALE: "GXT_DEPENDENCY_STALE",
|
|
44
|
+
DEPENDENCY_ORG_MISMATCH: "GXT_DEPENDENCY_ORG_MISMATCH",
|
|
45
|
+
CONTRACT_TAMPERED: "GXT_CONTRACT_TAMPERED",
|
|
46
|
+
CONTRACT_SCOPE_ESCAPE: "GXT_CONTRACT_SCOPE_ESCAPE",
|
|
47
|
+
CONTRACT_IMPORT_BANNED: "GXT_CONTRACT_IMPORT_BANNED",
|
|
48
|
+
CONTRACT_IMPORT_UNLISTED: "GXT_CONTRACT_IMPORT_UNLISTED",
|
|
49
|
+
CONTRACT_IMPORT_DYNAMIC: "GXT_CONTRACT_IMPORT_DYNAMIC",
|
|
33
50
|
};
|
|
34
51
|
const GIT_PROOF_TO_GXT = {
|
|
35
52
|
MISSION_MISSING_MSN: GXT_ERROR.MISSION_UNSTAMPED,
|
|
@@ -58,6 +75,7 @@ const GANTRY_USER_ERROR_TO_GXT = {
|
|
|
58
75
|
RUNTIME_ENV_FAILED: GXT_ERROR.VERIFY_FAILED,
|
|
59
76
|
INVALID_ARGUMENT: GXT_ERROR.INVALID_ARGUMENT,
|
|
60
77
|
MCP_WRITE_DENIED: GXT_ERROR.MCP_WRITE_DENIED,
|
|
78
|
+
CONTRACT_VIOLATION: GXT_ERROR.CONTRACT_IMPORT_BANNED,
|
|
61
79
|
};
|
|
62
80
|
/** Map runtime exec / MCP error codes to stable GXT codes. */
|
|
63
81
|
export function mapRuntimeErrorCodeToGxt(code) {
|