@jeger-ai/opengantry 3.0.0 → 3.1.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/LICENSE +10 -27
- package/NOTICE +1 -0
- package/README.md +72 -15
- package/dist/cli/commands/arch.d.ts +1 -1
- package/dist/cli/commands/arch.d.ts.map +1 -1
- package/dist/cli/commands/arch.js +4 -4
- package/dist/cli/commands/arch.js.map +1 -1
- package/dist/cli/commands/attest.d.ts +8 -0
- package/dist/cli/commands/attest.d.ts.map +1 -0
- package/dist/cli/commands/attest.js +19 -0
- package/dist/cli/commands/attest.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +4 -2
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +1 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/lib/{architecture-drift-doctor.d.ts → arch/cage/architecture-drift-doctor.d.ts} +1 -1
- package/dist/cli/lib/arch/cage/architecture-drift-doctor.d.ts.map +1 -0
- package/dist/cli/lib/{architecture-drift-doctor.js → arch/cage/architecture-drift-doctor.js} +2 -2
- package/dist/cli/lib/arch/cage/architecture-drift-doctor.js.map +1 -0
- package/dist/cli/lib/{target-architecture-doctor.d.ts → arch/cage/target-architecture-doctor.d.ts} +1 -1
- package/dist/cli/lib/arch/cage/target-architecture-doctor.d.ts.map +1 -0
- package/dist/cli/lib/arch/cage/target-architecture-doctor.js.map +1 -0
- package/dist/cli/lib/arch/cage/target-architecture.d.ts.map +1 -0
- package/dist/cli/lib/{target-architecture.js → arch/cage/target-architecture.js} +19 -21
- package/dist/cli/lib/arch/cage/target-architecture.js.map +1 -0
- package/dist/cli/lib/arch/external/architecture-credential.d.ts.map +1 -0
- package/dist/cli/lib/{architecture-credential.js → arch/external/architecture-credential.js} +2 -2
- package/dist/cli/lib/arch/external/architecture-credential.js.map +1 -0
- package/dist/cli/lib/arch/external/architecture-fetch.d.ts.map +1 -0
- package/dist/cli/lib/{architecture-fetch.js → arch/external/architecture-fetch.js} +1 -1
- package/dist/cli/lib/arch/external/architecture-fetch.js.map +1 -0
- package/dist/cli/lib/{architecture-pointer.d.ts → arch/external/architecture-pointer.d.ts} +1 -1
- package/dist/cli/lib/arch/external/architecture-pointer.d.ts.map +1 -0
- package/dist/cli/lib/{architecture-pointer.js → arch/external/architecture-pointer.js} +2 -2
- package/dist/cli/lib/arch/external/architecture-pointer.js.map +1 -0
- package/dist/cli/lib/attest-mission.d.ts +13 -0
- package/dist/cli/lib/attest-mission.d.ts.map +1 -0
- package/dist/cli/lib/attest-mission.js +22 -0
- package/dist/cli/lib/attest-mission.js.map +1 -0
- package/dist/cli/lib/attestation-receipt.d.ts +40 -0
- package/dist/cli/lib/attestation-receipt.d.ts.map +1 -0
- package/dist/cli/lib/attestation-receipt.js +110 -0
- package/dist/cli/lib/attestation-receipt.js.map +1 -0
- package/dist/cli/lib/blueprint-engine.js +1 -1
- package/dist/cli/lib/blueprint-engine.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/canonical-json.d.ts +3 -0
- package/dist/cli/lib/canonical-json.d.ts.map +1 -0
- package/dist/cli/lib/canonical-json.js +13 -0
- package/dist/cli/lib/canonical-json.js.map +1 -0
- package/dist/cli/lib/constants.d.ts +3 -0
- package/dist/cli/lib/constants.d.ts.map +1 -1
- package/dist/cli/lib/constants.js +3 -0
- package/dist/cli/lib/constants.js.map +1 -1
- package/dist/cli/lib/context-feed-remediation.d.ts +2 -2
- package/dist/cli/lib/context-feed-remediation.d.ts.map +1 -1
- package/dist/cli/lib/discovery-proposal.js +1 -1
- package/dist/cli/lib/discovery-proposal.js.map +1 -1
- package/dist/cli/lib/discovery-scanner.d.ts +3 -39
- package/dist/cli/lib/discovery-scanner.d.ts.map +1 -1
- package/dist/cli/lib/discovery-scanner.js +2 -1
- package/dist/cli/lib/discovery-scanner.js.map +1 -1
- package/dist/cli/lib/discovery-types.d.ts +40 -0
- package/dist/cli/lib/discovery-types.d.ts.map +1 -0
- package/dist/cli/lib/discovery-types.js +3 -0
- package/dist/cli/lib/discovery-types.js.map +1 -0
- package/dist/cli/lib/doctor-core.d.ts +1 -1
- package/dist/cli/lib/doctor-core.d.ts.map +1 -1
- package/dist/cli/lib/doctor-core.js +28 -6
- package/dist/cli/lib/doctor-core.js.map +1 -1
- package/dist/cli/lib/domains/domain-adapter.d.ts +4 -2
- package/dist/cli/lib/domains/domain-adapter.d.ts.map +1 -1
- package/dist/cli/lib/domains/domain-adapter.js.map +1 -1
- package/dist/cli/lib/domains/domain-code.d.ts.map +1 -1
- package/dist/cli/lib/domains/domain-code.js +1 -2
- package/dist/cli/lib/domains/domain-code.js.map +1 -1
- package/dist/cli/lib/domains/domain-content.d.ts.map +1 -1
- package/dist/cli/lib/domains/domain-content.js +1 -2
- package/dist/cli/lib/domains/domain-content.js.map +1 -1
- package/dist/cli/lib/domains/index.d.ts +4 -4
- package/dist/cli/lib/domains/index.d.ts.map +1 -1
- package/dist/cli/lib/domains/index.js +15 -4
- package/dist/cli/lib/domains/index.js.map +1 -1
- package/dist/cli/lib/draft-token.d.ts +1 -2
- package/dist/cli/lib/draft-token.d.ts.map +1 -1
- package/dist/cli/lib/draft-token.js +2 -12
- package/dist/cli/lib/draft-token.js.map +1 -1
- package/dist/cli/lib/flight-telemetry-doctor.d.ts +3 -0
- package/dist/cli/lib/flight-telemetry-doctor.d.ts.map +1 -0
- package/dist/cli/lib/flight-telemetry-doctor.js +25 -0
- package/dist/cli/lib/flight-telemetry-doctor.js.map +1 -0
- package/dist/cli/lib/gxt-config.d.ts +11 -0
- package/dist/cli/lib/gxt-config.d.ts.map +1 -1
- package/dist/cli/lib/gxt-config.js +10 -0
- package/dist/cli/lib/gxt-config.js.map +1 -1
- package/dist/cli/lib/init-compose.d.ts +1 -1
- package/dist/cli/lib/init-compose.d.ts.map +1 -1
- package/dist/cli/lib/kpi-advisory-findings.d.ts +5 -0
- package/dist/cli/lib/kpi-advisory-findings.d.ts.map +1 -0
- package/dist/cli/lib/kpi-advisory-findings.js +16 -0
- package/dist/cli/lib/kpi-advisory-findings.js.map +1 -0
- package/dist/cli/lib/kpi-engine.d.ts +4 -3
- package/dist/cli/lib/kpi-engine.d.ts.map +1 -1
- package/dist/cli/lib/kpi-engine.js +36 -20
- package/dist/cli/lib/kpi-engine.js.map +1 -1
- package/dist/cli/lib/manifest.d.ts +1 -1
- package/dist/cli/lib/manifest.d.ts.map +1 -1
- package/dist/cli/lib/manifest.js +1 -1
- package/dist/cli/lib/manifest.js.map +1 -1
- package/dist/cli/lib/mcp-attest.d.ts +6 -0
- package/dist/cli/lib/mcp-attest.d.ts.map +1 -0
- package/dist/cli/lib/mcp-attest.js +15 -0
- package/dist/cli/lib/mcp-attest.js.map +1 -0
- package/dist/cli/lib/mcp-check-signature.d.ts +6 -0
- package/dist/cli/lib/mcp-check-signature.d.ts.map +1 -0
- package/dist/cli/lib/mcp-check-signature.js +40 -0
- package/dist/cli/lib/mcp-check-signature.js.map +1 -0
- package/dist/cli/lib/mcp-draft-legislation.d.ts +6 -0
- package/dist/cli/lib/mcp-draft-legislation.d.ts.map +1 -0
- package/dist/cli/lib/mcp-draft-legislation.js +63 -0
- package/dist/cli/lib/mcp-draft-legislation.js.map +1 -0
- package/dist/cli/lib/mcp-execute-legislation.d.ts +6 -0
- package/dist/cli/lib/mcp-execute-legislation.d.ts.map +1 -0
- package/dist/cli/lib/mcp-execute-legislation.js +53 -0
- package/dist/cli/lib/mcp-execute-legislation.js.map +1 -0
- package/dist/cli/lib/mcp-governance-shared.d.ts +119 -0
- package/dist/cli/lib/mcp-governance-shared.d.ts.map +1 -0
- package/dist/cli/lib/mcp-governance-shared.js +21 -0
- package/dist/cli/lib/mcp-governance-shared.js.map +1 -0
- package/dist/cli/lib/mcp-governance.d.ts +9 -121
- package/dist/cli/lib/mcp-governance.d.ts.map +1 -1
- package/dist/cli/lib/mcp-governance.js +8 -259
- package/dist/cli/lib/mcp-governance.js.map +1 -1
- package/dist/cli/lib/mcp-last-error.d.ts +3 -0
- package/dist/cli/lib/mcp-last-error.d.ts.map +1 -0
- package/dist/cli/lib/mcp-last-error.js +18 -0
- package/dist/cli/lib/mcp-last-error.js.map +1 -0
- package/dist/cli/lib/mcp-pin-mission.d.ts +6 -0
- package/dist/cli/lib/mcp-pin-mission.d.ts.map +1 -0
- package/dist/cli/lib/mcp-pin-mission.js +21 -0
- package/dist/cli/lib/mcp-pin-mission.js.map +1 -0
- package/dist/cli/lib/mcp-resolve-mission.d.ts +3 -0
- package/dist/cli/lib/mcp-resolve-mission.d.ts.map +1 -0
- package/dist/cli/lib/mcp-resolve-mission.js +18 -0
- package/dist/cli/lib/mcp-resolve-mission.js.map +1 -0
- package/dist/cli/lib/mcp-start-orchestration.d.ts +3 -0
- package/dist/cli/lib/mcp-start-orchestration.d.ts.map +1 -0
- package/dist/cli/lib/mcp-start-orchestration.js +53 -0
- package/dist/cli/lib/mcp-start-orchestration.js.map +1 -0
- package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -1
- package/dist/cli/lib/mcp-tools-register.js +20 -1
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/path-glob.d.ts +8 -0
- package/dist/cli/lib/path-glob.d.ts.map +1 -0
- package/dist/cli/lib/path-glob.js +40 -0
- package/dist/cli/lib/path-glob.js.map +1 -0
- package/dist/cli/lib/perimeter.d.ts +1 -2
- package/dist/cli/lib/perimeter.d.ts.map +1 -1
- package/dist/cli/lib/perimeter.js +2 -10
- package/dist/cli/lib/perimeter.js.map +1 -1
- package/dist/cli/lib/policy-digest-doctor.d.ts +11 -0
- package/dist/cli/lib/policy-digest-doctor.d.ts.map +1 -0
- package/dist/cli/lib/policy-digest-doctor.js +37 -0
- package/dist/cli/lib/policy-digest-doctor.js.map +1 -0
- package/dist/cli/lib/receipt-signing.d.ts +12 -0
- package/dist/cli/lib/receipt-signing.d.ts.map +1 -0
- package/dist/cli/lib/receipt-signing.js +150 -0
- package/dist/cli/lib/receipt-signing.js.map +1 -0
- package/dist/cli/lib/runtime-exec.d.ts +1 -0
- package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
- package/dist/cli/lib/runtime-exec.js +21 -17
- package/dist/cli/lib/runtime-exec.js.map +1 -1
- package/dist/cli/lib/surgeons/registry.d.ts +1 -1
- package/dist/cli/lib/surgeons/registry.d.ts.map +1 -1
- package/dist/cli/lib/trace-evidence.d.ts +21 -0
- package/dist/cli/lib/trace-evidence.d.ts.map +1 -0
- package/dist/cli/lib/trace-evidence.js +113 -0
- package/dist/cli/lib/trace-evidence.js.map +1 -0
- package/dist/cli/lib/trace-quote.d.ts +37 -0
- package/dist/cli/lib/trace-quote.d.ts.map +1 -0
- package/dist/cli/lib/trace-quote.js +177 -0
- package/dist/cli/lib/trace-quote.js.map +1 -0
- package/dist/cli/lib/trace-status.d.ts +7 -0
- package/dist/cli/lib/trace-status.d.ts.map +1 -0
- package/dist/cli/lib/trace-status.js +20 -0
- package/dist/cli/lib/trace-status.js.map +1 -0
- package/dist/cli/lib/trace.d.ts +3 -60
- package/dist/cli/lib/trace.d.ts.map +1 -1
- package/dist/cli/lib/trace.js +3 -304
- package/dist/cli/lib/trace.js.map +1 -1
- package/dist/cli/lib/types.d.ts +1 -0
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-plan-catalog.d.ts +13 -0
- package/dist/cli/lib/upgrade-plan-catalog.d.ts.map +1 -0
- package/dist/cli/lib/upgrade-plan-catalog.js +85 -0
- package/dist/cli/lib/upgrade-plan-catalog.js.map +1 -0
- package/dist/cli/lib/upgrade-plan-payload.d.ts +1 -1
- package/dist/cli/lib/upgrade-plan-payload.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-plan-scaffold.d.ts +15 -0
- package/dist/cli/lib/upgrade-plan-scaffold.d.ts.map +1 -0
- package/dist/cli/lib/upgrade-plan-scaffold.js +109 -0
- package/dist/cli/lib/upgrade-plan-scaffold.js.map +1 -0
- package/dist/cli/lib/upgrade-plan-types.d.ts +43 -0
- package/dist/cli/lib/upgrade-plan-types.d.ts.map +1 -0
- package/dist/cli/lib/upgrade-plan-types.js +3 -0
- package/dist/cli/lib/upgrade-plan-types.js.map +1 -0
- package/dist/cli/lib/upgrade-plan.d.ts +4 -62
- package/dist/cli/lib/upgrade-plan.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-plan.js +7 -181
- package/dist/cli/lib/upgrade-plan.js.map +1 -1
- package/dist/cli/lib/verify-defensive-phase.d.ts +1 -1
- package/dist/cli/lib/verify-defensive-phase.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.d.ts +4 -37
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +13 -2
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-export.d.ts.map +1 -1
- package/dist/cli/lib/verify-export.js +3 -2
- package/dist/cli/lib/verify-export.js.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.d.ts +2 -4
- package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.js +0 -50
- package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
- package/dist/cli/lib/verify-hints.d.ts +1 -1
- package/dist/cli/lib/verify-hints.d.ts.map +1 -1
- package/dist/cli/lib/verify-options.d.ts +44 -0
- package/dist/cli/lib/verify-options.d.ts.map +1 -0
- package/dist/cli/lib/verify-options.js +13 -0
- package/dist/cli/lib/verify-options.js.map +1 -0
- package/dist/cli/lib/verify-payload.d.ts +7 -1
- package/dist/cli/lib/verify-payload.d.ts.map +1 -1
- package/dist/cli/lib/verify-payload.js +55 -1
- package/dist/cli/lib/verify-payload.js.map +1 -1
- package/dist/cli/lib/verify-presenters.d.ts +11 -5
- package/dist/cli/lib/verify-presenters.d.ts.map +1 -1
- package/dist/cli/lib/verify-presenters.js +22 -26
- package/dist/cli/lib/verify-presenters.js.map +1 -1
- package/dist/cli/lib/verify-receipt.d.ts +11 -0
- package/dist/cli/lib/verify-receipt.d.ts.map +1 -0
- package/dist/cli/lib/verify-receipt.js +40 -0
- package/dist/cli/lib/verify-receipt.js.map +1 -0
- 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 +72 -20
- 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/lib/working-digests.d.ts +8 -0
- package/dist/cli/lib/working-digests.d.ts.map +1 -0
- package/dist/cli/lib/working-digests.js +21 -0
- package/dist/cli/lib/working-digests.js.map +1 -0
- package/dist/cli/program-arch.js +1 -1
- package/dist/cli/program-arch.js.map +1 -1
- package/dist/cli/program-core.d.ts.map +1 -1
- package/dist/cli/program-core.js +10 -24
- package/dist/cli/program-core.js.map +1 -1
- package/dist/cli/program-init-options.d.ts +4 -0
- package/dist/cli/program-init-options.d.ts.map +1 -0
- package/dist/cli/program-init-options.js +23 -0
- package/dist/cli/program-init-options.js.map +1 -0
- package/dist/cli/program-workflow.d.ts.map +1 -1
- package/dist/cli/program-workflow.js +21 -1
- package/dist/cli/program-workflow.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +2 -0
- package/dist/cli/program.js.map +1 -1
- package/package.json +3 -3
- package/templates/.gitagent/config.json +3 -0
- package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
- package/templates/.gitagent/planner/KPI-REPORT.schema.yaml +4 -0
- package/templates/.gitagent/planner/PERFORMANCE.md +18 -0
- package/templates/.gitagent/planner/PERFORMANCE_RUBRIC.template.md +32 -0
- package/templates/.githooks/pre-push +5 -5
- package/templates/.github/workflows/gxt-validate.yml +7 -4
- package/templates/integrations/asset-catalog.json +3 -0
- package/templates/integrations/compatibility.json +1 -1
- package/templates/scripts/gxt-manifest-lib.mjs +12 -493
- package/templates/scripts/lib/glob-match.mjs +24 -0
- package/templates/scripts/lib/manifest-validate.mjs +126 -0
- package/templates/scripts/lib/trusted-automation.mjs +407 -0
- package/templates/scripts/verify-pr-missions.sh +3 -3
- package/dist/cli/lib/architecture-credential.d.ts.map +0 -1
- package/dist/cli/lib/architecture-credential.js.map +0 -1
- package/dist/cli/lib/architecture-drift-doctor.d.ts.map +0 -1
- package/dist/cli/lib/architecture-drift-doctor.js.map +0 -1
- package/dist/cli/lib/architecture-fetch.d.ts.map +0 -1
- package/dist/cli/lib/architecture-fetch.js.map +0 -1
- package/dist/cli/lib/architecture-pointer.d.ts.map +0 -1
- package/dist/cli/lib/architecture-pointer.js.map +0 -1
- package/dist/cli/lib/target-architecture-doctor.d.ts.map +0 -1
- package/dist/cli/lib/target-architecture-doctor.js.map +0 -1
- package/dist/cli/lib/target-architecture.d.ts.map +0 -1
- package/dist/cli/lib/target-architecture.js.map +0 -1
- /package/dist/cli/lib/{target-architecture-doctor.js → arch/cage/target-architecture-doctor.js} +0 -0
- /package/dist/cli/lib/{target-architecture.d.ts → arch/cage/target-architecture.d.ts} +0 -0
- /package/dist/cli/lib/{architecture-credential.d.ts → arch/external/architecture-credential.d.ts} +0 -0
- /package/dist/cli/lib/{architecture-fetch.d.ts → arch/external/architecture-fetch.d.ts} +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { normalizePath } from "./glob-match.mjs";
|
|
4
|
+
|
|
5
|
+
const FIXED_MSN_PREFIXES = [
|
|
6
|
+
".gitagent/",
|
|
7
|
+
"EXECUTOR_LOG.md",
|
|
8
|
+
".githooks/",
|
|
9
|
+
".github/workflows/gxt-validate.yml",
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
export function repoRootFromArg(arg) {
|
|
13
|
+
if (arg?.trim()) return path.resolve(arg.trim());
|
|
14
|
+
return process.cwd();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function readManifest(repoRoot) {
|
|
18
|
+
const rel = ".gitagent/foreman/MANIFEST.json";
|
|
19
|
+
const abs = path.join(repoRoot, rel);
|
|
20
|
+
if (!fs.existsSync(abs)) {
|
|
21
|
+
throw new Error(`validate-gxt: missing ${rel}`);
|
|
22
|
+
}
|
|
23
|
+
let parsed;
|
|
24
|
+
try {
|
|
25
|
+
parsed = JSON.parse(fs.readFileSync(abs, "utf8"));
|
|
26
|
+
} catch (e) {
|
|
27
|
+
throw new Error(`validate-gxt: invalid JSON in ${rel}: ${e instanceof Error ? e.message : String(e)}`);
|
|
28
|
+
}
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Validate parsed MANIFEST object shape. Prefix controls error message namespace
|
|
34
|
+
* (validate-gxt for shell gates, MANIFEST for gantry CLI).
|
|
35
|
+
*/
|
|
36
|
+
export function validateManifestObject(m, { prefix = "validate-gxt" } = {}) {
|
|
37
|
+
if (typeof m !== "object" || m === null) {
|
|
38
|
+
throw new Error(`${prefix}: not an object`);
|
|
39
|
+
}
|
|
40
|
+
if (typeof m.schema_version !== "string" || m.schema_version.length === 0) {
|
|
41
|
+
throw new Error(`${prefix}: schema_version must be a non-empty string`);
|
|
42
|
+
}
|
|
43
|
+
const skills = m.skills;
|
|
44
|
+
if (!skills || typeof skills !== "object" || Array.isArray(skills) || Object.keys(skills).length === 0) {
|
|
45
|
+
throw new Error(`${prefix}: skills must be a non-empty object`);
|
|
46
|
+
}
|
|
47
|
+
if (!m.path_risks || typeof m.path_risks !== "object" || Array.isArray(m.path_risks)) {
|
|
48
|
+
throw new Error(`${prefix}: path_risks must be an object`);
|
|
49
|
+
}
|
|
50
|
+
if (!Array.isArray(m.risk_keywords)) {
|
|
51
|
+
throw new Error(`${prefix}: risk_keywords must be an array`);
|
|
52
|
+
}
|
|
53
|
+
if (m.perimeter_protected !== undefined) {
|
|
54
|
+
if (!Array.isArray(m.perimeter_protected)) {
|
|
55
|
+
throw new Error(`${prefix}: perimeter_protected must be an array when present`);
|
|
56
|
+
}
|
|
57
|
+
for (const g of m.perimeter_protected) {
|
|
58
|
+
if (typeof g !== "string" || g.length === 0) {
|
|
59
|
+
throw new Error(`${prefix}: perimeter_protected items must be non-empty strings`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
for (const [key, skill] of Object.entries(skills)) {
|
|
64
|
+
if (!skill || typeof skill !== "object") {
|
|
65
|
+
throw new Error(`${prefix}: skills.${key} must be an object`);
|
|
66
|
+
}
|
|
67
|
+
for (const field of ["trust_threshold", "tmvc_roots", "forbidden_zones"]) {
|
|
68
|
+
if (!(field in skill)) {
|
|
69
|
+
throw new Error(`${prefix}: skills.${key} missing ${field}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!Array.isArray(skill.tmvc_roots)) {
|
|
73
|
+
throw new Error(`${prefix}: skills.${key}.tmvc_roots must be an array`);
|
|
74
|
+
}
|
|
75
|
+
if (!Array.isArray(skill.forbidden_zones)) {
|
|
76
|
+
throw new Error(`${prefix}: skills.${key}.forbidden_zones must be an array`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function validateManifestStructure(repoRoot) {
|
|
82
|
+
validateManifestObject(readManifest(repoRoot), { prefix: "validate-gxt" });
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function listMsnEnforcedPrefixes(repoRoot) {
|
|
86
|
+
const manifest = readManifest(repoRoot);
|
|
87
|
+
const skills = manifest.skills;
|
|
88
|
+
if (!skills || typeof skills !== "object" || Array.isArray(skills)) {
|
|
89
|
+
throw new Error("validate-gxt: MANIFEST skills must be a non-empty object");
|
|
90
|
+
}
|
|
91
|
+
const roots = Object.values(skills).flatMap((s) => {
|
|
92
|
+
if (!s || typeof s !== "object") return [];
|
|
93
|
+
return Array.isArray(s.tmvc_roots) ? s.tmvc_roots : [];
|
|
94
|
+
});
|
|
95
|
+
const out = new Set();
|
|
96
|
+
for (const p of [...FIXED_MSN_PREFIXES, ...roots]) {
|
|
97
|
+
if (typeof p !== "string" || !p.trim()) continue;
|
|
98
|
+
out.add(normalizePath(p));
|
|
99
|
+
}
|
|
100
|
+
return [...out];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function isMsnEnforcedPath(filePath, prefixes) {
|
|
104
|
+
const p = normalizePath(filePath);
|
|
105
|
+
for (const prefix of prefixes) {
|
|
106
|
+
if (!prefix) continue;
|
|
107
|
+
if (p === prefix) return true;
|
|
108
|
+
if (prefix.endsWith("/") && p.startsWith(prefix)) return true;
|
|
109
|
+
if (!prefix.endsWith("/") && p.startsWith(`${prefix}/`)) return true;
|
|
110
|
+
}
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function validateBypassNoteJson(raw) {
|
|
115
|
+
let parsed;
|
|
116
|
+
try {
|
|
117
|
+
parsed = JSON.parse(raw);
|
|
118
|
+
} catch {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return (
|
|
122
|
+
parsed?.v === 1 &&
|
|
123
|
+
typeof parsed.reason === "string" &&
|
|
124
|
+
parsed.reason.length >= 10
|
|
125
|
+
);
|
|
126
|
+
}
|
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { execFileSync } from "node:child_process";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { matchGlob, pathMatchesAllowed } from "./glob-match.mjs";
|
|
7
|
+
import { isMsnEnforcedPath, listMsnEnforcedPrefixes, readManifest } from "./manifest-validate.mjs";
|
|
8
|
+
|
|
9
|
+
const STRUCTURAL_KIND_HARD_MAX_NET_LOC = {
|
|
10
|
+
workflow_version_pin: 5,
|
|
11
|
+
bounded_content: 100,
|
|
12
|
+
};
|
|
13
|
+
const ALLOWED_STRUCTURAL_CHANGES = new Set(Object.keys(STRUCTURAL_KIND_HARD_MAX_NET_LOC));
|
|
14
|
+
const CONFIG_REL = ".gitagent/config.json";
|
|
15
|
+
|
|
16
|
+
function normalizePath(p) {
|
|
17
|
+
return p.replace(/\\/g, "/");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function git(repoRoot, args) {
|
|
21
|
+
return execFileSync("git", args, { cwd: repoRoot, encoding: "utf8" }).trimEnd();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function resolveYamlParser(repoRoot) {
|
|
25
|
+
const candidates = [
|
|
26
|
+
path.join(repoRoot, "node_modules/yaml"),
|
|
27
|
+
path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "node_modules/yaml"),
|
|
28
|
+
];
|
|
29
|
+
for (const dir of candidates) {
|
|
30
|
+
const pkg = path.join(dir, "package.json");
|
|
31
|
+
if (fs.existsSync(pkg)) {
|
|
32
|
+
const req = createRequire(pkg);
|
|
33
|
+
return req("yaml");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
throw new Error("gxt-manifest-lib: yaml package not found (run npm ci)");
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function loadTrustedAutomationRules(repoRoot) {
|
|
40
|
+
const abs = path.join(repoRoot, CONFIG_REL);
|
|
41
|
+
if (!fs.existsSync(abs)) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
let parsed;
|
|
45
|
+
try {
|
|
46
|
+
parsed = JSON.parse(fs.readFileSync(abs, "utf8"));
|
|
47
|
+
} catch (e) {
|
|
48
|
+
throw new Error(
|
|
49
|
+
`gxt-manifest-lib: invalid JSON in ${CONFIG_REL}: ${e instanceof Error ? e.message : String(e)}`,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
const block = parsed?.trusted_automation;
|
|
53
|
+
if (!block) {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
if (!Array.isArray(block.rules) || block.rules.length === 0) {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const rules = [];
|
|
60
|
+
for (const [i, rule] of block.rules.entries()) {
|
|
61
|
+
if (!rule || typeof rule !== "object") {
|
|
62
|
+
throw new Error(`gxt-manifest-lib: trusted_automation.rules[${i}] must be an object`);
|
|
63
|
+
}
|
|
64
|
+
if (typeof rule.id !== "string" || !rule.id.trim()) {
|
|
65
|
+
throw new Error(`gxt-manifest-lib: trusted_automation.rules[${i}] missing id`);
|
|
66
|
+
}
|
|
67
|
+
if (!Array.isArray(rule.allowed_actors) || rule.allowed_actors.length === 0) {
|
|
68
|
+
throw new Error(`gxt-manifest-lib: rule ${rule.id} requires non-empty allowed_actors`);
|
|
69
|
+
}
|
|
70
|
+
if (!Array.isArray(rule.allowed_paths) || rule.allowed_paths.length === 0) {
|
|
71
|
+
throw new Error(`gxt-manifest-lib: rule ${rule.id} requires non-empty allowed_paths`);
|
|
72
|
+
}
|
|
73
|
+
if (!Array.isArray(rule.allowed_structural_changes) || rule.allowed_structural_changes.length === 0) {
|
|
74
|
+
throw new Error(`gxt-manifest-lib: rule ${rule.id} requires allowed_structural_changes`);
|
|
75
|
+
}
|
|
76
|
+
for (const change of rule.allowed_structural_changes) {
|
|
77
|
+
if (!ALLOWED_STRUCTURAL_CHANGES.has(change)) {
|
|
78
|
+
throw new Error(`gxt-manifest-lib: rule ${rule.id} has unsupported structural change: ${change}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (rule.allowed_structural_changes.length !== 1) {
|
|
82
|
+
throw new Error(
|
|
83
|
+
`gxt-manifest-lib: rule ${rule.id} must declare exactly one allowed_structural_changes kind`,
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
const structuralKind = rule.allowed_structural_changes[0];
|
|
87
|
+
const hardCap = STRUCTURAL_KIND_HARD_MAX_NET_LOC[structuralKind];
|
|
88
|
+
if (typeof rule.max_net_loc !== "number" || !Number.isInteger(rule.max_net_loc) || rule.max_net_loc < 1) {
|
|
89
|
+
throw new Error(`gxt-manifest-lib: rule ${rule.id} max_net_loc must be a positive integer`);
|
|
90
|
+
}
|
|
91
|
+
if (rule.max_net_loc > hardCap) {
|
|
92
|
+
throw new Error(`gxt-manifest-lib: rule ${rule.id} max_net_loc exceeds hard cap ${hardCap} for ${structuralKind}`);
|
|
93
|
+
}
|
|
94
|
+
rules.push({
|
|
95
|
+
id: rule.id,
|
|
96
|
+
allowed_actors: rule.allowed_actors.map((a) => String(a).trim().toLowerCase()),
|
|
97
|
+
allowed_paths: rule.allowed_paths.map((p) => normalizePath(String(p))),
|
|
98
|
+
allowed_structural_changes: new Set(rule.allowed_structural_changes),
|
|
99
|
+
max_net_loc: rule.max_net_loc,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return rules;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function parseNumstat(output) {
|
|
106
|
+
let total = 0;
|
|
107
|
+
for (const line of output.split("\n")) {
|
|
108
|
+
if (!line.trim()) continue;
|
|
109
|
+
const [adds, dels] = line.split("\t");
|
|
110
|
+
if (adds === "-" || dels === "-") continue;
|
|
111
|
+
total += Number(adds) + Number(dels);
|
|
112
|
+
}
|
|
113
|
+
return total;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function gitNumstat(repoRoot, args) {
|
|
117
|
+
try {
|
|
118
|
+
return parseNumstat(git(repoRoot, args));
|
|
119
|
+
} catch {
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function commitChangedFiles(repoRoot, commitSha) {
|
|
125
|
+
const out = git(repoRoot, ["diff-tree", "--no-commit-id", "--name-only", "-r", commitSha]);
|
|
126
|
+
return out ? out.split("\n").filter(Boolean).map(normalizePath) : [];
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function rangeChangedFiles(repoRoot, baseSha, headSha) {
|
|
130
|
+
const out = git(repoRoot, ["diff", "--name-only", "--diff-filter=ACMRT", `${baseSha}...${headSha}`]);
|
|
131
|
+
return out ? out.split("\n").filter(Boolean).map(normalizePath) : [];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function commitAuthorEmail(repoRoot, commitSha) {
|
|
135
|
+
return git(repoRoot, ["log", "-1", "--format=%ae", commitSha]).toLowerCase();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function objectKeysEqual(a, b) {
|
|
139
|
+
if (Array.isArray(a) || Array.isArray(b)) {
|
|
140
|
+
return Array.isArray(a) && Array.isArray(b) && a.length === b.length;
|
|
141
|
+
}
|
|
142
|
+
if (a === null || b === null || typeof a !== "object" || typeof b !== "object") {
|
|
143
|
+
return typeof a === typeof b;
|
|
144
|
+
}
|
|
145
|
+
const keysA = Object.keys(a).sort();
|
|
146
|
+
const keysB = Object.keys(b).sort();
|
|
147
|
+
return keysA.length === keysB.length && keysA.every((k, i) => k === keysB[i]);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function collectStructuralDiffs(before, after, keyPath = []) {
|
|
151
|
+
const diffs = [];
|
|
152
|
+
if (Array.isArray(before) && Array.isArray(after)) {
|
|
153
|
+
for (let i = 0; i < before.length; i++) {
|
|
154
|
+
diffs.push(...collectStructuralDiffs(before[i], after[i], [...keyPath, String(i)]));
|
|
155
|
+
}
|
|
156
|
+
return diffs;
|
|
157
|
+
}
|
|
158
|
+
if (before !== null && after !== null && typeof before === "object" && typeof after === "object") {
|
|
159
|
+
const keys = Object.keys(before);
|
|
160
|
+
for (const key of keys) {
|
|
161
|
+
const childPath = [...keyPath, key];
|
|
162
|
+
const bv = before[key];
|
|
163
|
+
const av = after[key];
|
|
164
|
+
if (bv !== null && av !== null && typeof bv === "object" && typeof av === "object") {
|
|
165
|
+
diffs.push(...collectStructuralDiffs(bv, av, childPath));
|
|
166
|
+
} else if (bv !== av) {
|
|
167
|
+
diffs.push({ path: childPath, before: bv, after: av });
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return diffs;
|
|
171
|
+
}
|
|
172
|
+
if (before !== after) {
|
|
173
|
+
diffs.push({ path: keyPath, before, after });
|
|
174
|
+
}
|
|
175
|
+
return diffs;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function isWorkflowVersionPinChange(before, after) {
|
|
179
|
+
if (typeof before !== "string" || typeof after !== "string") return false;
|
|
180
|
+
const usesRe = /^([^@]+@)(.+)$/;
|
|
181
|
+
const bm = before.match(usesRe);
|
|
182
|
+
const am = after.match(usesRe);
|
|
183
|
+
return Boolean(bm && am && bm[1] === am[1] && bm[2] !== am[2]);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function structuresMatch(before, after) {
|
|
187
|
+
if (Array.isArray(before) && Array.isArray(after)) {
|
|
188
|
+
if (before.length !== after.length) return false;
|
|
189
|
+
return before.every((item, i) => structuresMatch(item, after[i]));
|
|
190
|
+
}
|
|
191
|
+
if (before !== null && after !== null && typeof before === "object" && typeof after === "object") {
|
|
192
|
+
if (!objectKeysEqual(before, after)) return false;
|
|
193
|
+
return Object.keys(before).every((k) => structuresMatch(before[k], after[k]));
|
|
194
|
+
}
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
function workflowVersionPinOnly(beforeContent, afterContent, yaml) {
|
|
199
|
+
let beforeDoc;
|
|
200
|
+
let afterDoc;
|
|
201
|
+
try {
|
|
202
|
+
beforeDoc = yaml.parse(beforeContent);
|
|
203
|
+
afterDoc = yaml.parse(afterContent);
|
|
204
|
+
} catch {
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
if (!structuresMatch(beforeDoc, afterDoc)) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
const diffs = collectStructuralDiffs(beforeDoc, afterDoc);
|
|
211
|
+
if (diffs.length === 0) return true;
|
|
212
|
+
return diffs.every((d) => {
|
|
213
|
+
const lastKey = d.path[d.path.length - 1];
|
|
214
|
+
return lastKey === "uses" && isWorkflowVersionPinChange(d.before, d.after);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
function readBlobAt(repoRoot, commitSha, filePath) {
|
|
219
|
+
try {
|
|
220
|
+
return git(repoRoot, ["show", `${commitSha}:${filePath}`]);
|
|
221
|
+
} catch {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
function listPerimeterProtectedGlobs(repoRoot) {
|
|
227
|
+
const manifest = readManifest(repoRoot);
|
|
228
|
+
if (!Array.isArray(manifest.perimeter_protected)) {
|
|
229
|
+
return [];
|
|
230
|
+
}
|
|
231
|
+
return manifest.perimeter_protected.map((g) => normalizePath(String(g)));
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
function isSubstrateHardDeniedPath(filePath, perimeterGlobs) {
|
|
235
|
+
const p = normalizePath(filePath);
|
|
236
|
+
if (p === ".gitagent" || p.startsWith(".gitagent/")) {
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
return perimeterGlobs.some((g) => matchGlob(g, p));
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function validateBoundedContentStructural(repoRoot, files, rule) {
|
|
243
|
+
const perimeterGlobs = listPerimeterProtectedGlobs(repoRoot);
|
|
244
|
+
for (const file of files) {
|
|
245
|
+
if (isSubstrateHardDeniedPath(file, perimeterGlobs)) {
|
|
246
|
+
return {
|
|
247
|
+
ok: false,
|
|
248
|
+
reason: `rule ${rule.id}: substrate hard-deny path not allowed (${file})`,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return { ok: true, reason: "" };
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function validateWorkflowVersionPinStructural(repoRoot, files, rule, baseSha, headSha, mode) {
|
|
256
|
+
const yaml = resolveYamlParser(repoRoot);
|
|
257
|
+
const workflowFiles = files.filter((f) => /\.ya?ml$/i.test(f));
|
|
258
|
+
for (const file of workflowFiles) {
|
|
259
|
+
let beforeContent;
|
|
260
|
+
let afterContent;
|
|
261
|
+
if (mode === "commit") {
|
|
262
|
+
const parent = git(repoRoot, ["rev-parse", `${headSha}^`]);
|
|
263
|
+
beforeContent = readBlobAt(repoRoot, parent, file);
|
|
264
|
+
afterContent = readBlobAt(repoRoot, headSha, file);
|
|
265
|
+
} else {
|
|
266
|
+
beforeContent = readBlobAt(repoRoot, baseSha, file);
|
|
267
|
+
afterContent = readBlobAt(repoRoot, headSha, file);
|
|
268
|
+
}
|
|
269
|
+
if (afterContent === null) continue;
|
|
270
|
+
if (beforeContent === null) {
|
|
271
|
+
return { ok: false, reason: `rule ${rule.id}: new file not allowed (${file})` };
|
|
272
|
+
}
|
|
273
|
+
if (!workflowVersionPinOnly(beforeContent, afterContent, yaml)) {
|
|
274
|
+
return { ok: false, reason: `rule ${rule.id}: structural change outside workflow_version_pin (${file})` };
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return { ok: true, reason: "" };
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
function validateStructuralChanges(repoRoot, files, rule, baseSha, headSha, mode) {
|
|
281
|
+
const kind = [...rule.allowed_structural_changes][0];
|
|
282
|
+
if (kind === "bounded_content") {
|
|
283
|
+
return validateBoundedContentStructural(repoRoot, files, rule);
|
|
284
|
+
}
|
|
285
|
+
if (kind === "workflow_version_pin") {
|
|
286
|
+
return validateWorkflowVersionPinStructural(repoRoot, files, rule, baseSha, headSha, mode);
|
|
287
|
+
}
|
|
288
|
+
return { ok: false, reason: `rule ${rule.id}: no matching structural change policy` };
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
function findMatchingRule(rules, actorEmail) {
|
|
292
|
+
const actor = actorEmail.toLowerCase();
|
|
293
|
+
return rules.filter((rule) => rule.allowed_actors.includes(actor));
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
function evaluateAgainstRule(repoRoot, rule, files, actorEmail, netLoc, structuralCtx) {
|
|
297
|
+
if (!rule.allowed_actors.includes(actorEmail.toLowerCase())) {
|
|
298
|
+
return { eligible: false, reason: `actor ${actorEmail} not in rule ${rule.id} allowed_actors` };
|
|
299
|
+
}
|
|
300
|
+
if (files.length === 0) {
|
|
301
|
+
return { eligible: false, reason: "no changed files" };
|
|
302
|
+
}
|
|
303
|
+
for (const file of files) {
|
|
304
|
+
if (!pathMatchesAllowed(file, rule.allowed_paths)) {
|
|
305
|
+
return { eligible: false, reason: `path ${file} outside rule ${rule.id} allowed_paths` };
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
if (netLoc > rule.max_net_loc) {
|
|
309
|
+
return {
|
|
310
|
+
eligible: false,
|
|
311
|
+
reason: `net_loc ${netLoc} exceeds rule ${rule.id} max_net_loc ${rule.max_net_loc}`,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
const structural = validateStructuralChanges(
|
|
315
|
+
repoRoot,
|
|
316
|
+
files,
|
|
317
|
+
rule,
|
|
318
|
+
structuralCtx.baseSha,
|
|
319
|
+
structuralCtx.headSha,
|
|
320
|
+
structuralCtx.mode,
|
|
321
|
+
);
|
|
322
|
+
if (!structural.ok) {
|
|
323
|
+
return { eligible: false, reason: structural.reason };
|
|
324
|
+
}
|
|
325
|
+
return {
|
|
326
|
+
eligible: true,
|
|
327
|
+
reason: `TRUSTED-AUTOMATION-OK: rule=${rule.id} actor=${actorEmail} paths=${files.join(",")} net_loc=${netLoc}`,
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Evaluate a single commit for trusted automation eligibility.
|
|
333
|
+
* @returns {{ eligible: boolean, reason: string }}
|
|
334
|
+
*/
|
|
335
|
+
export function evaluateTrustedAutomationCommit(repoRoot, commitSha) {
|
|
336
|
+
const rules = loadTrustedAutomationRules(repoRoot);
|
|
337
|
+
if (rules.length === 0) {
|
|
338
|
+
return { eligible: false, reason: "no trusted_automation policy configured" };
|
|
339
|
+
}
|
|
340
|
+
const prefixes = listMsnEnforcedPrefixes(repoRoot);
|
|
341
|
+
const files = commitChangedFiles(repoRoot, commitSha).filter((f) => isMsnEnforcedPath(f, prefixes));
|
|
342
|
+
if (files.length === 0) {
|
|
343
|
+
return { eligible: false, reason: "commit does not touch MSN-enforced paths" };
|
|
344
|
+
}
|
|
345
|
+
const actorEmail = commitAuthorEmail(repoRoot, commitSha);
|
|
346
|
+
const matchingRules = findMatchingRule(rules, actorEmail);
|
|
347
|
+
if (matchingRules.length === 0) {
|
|
348
|
+
return { eligible: false, reason: `actor ${actorEmail} not covered by trusted_automation policy` };
|
|
349
|
+
}
|
|
350
|
+
const netLoc = gitNumstat(repoRoot, ["show", "--numstat", "--format=", commitSha]);
|
|
351
|
+
let lastReason = `commit ${commitSha} failed trusted_automation policy checks`;
|
|
352
|
+
for (const rule of matchingRules) {
|
|
353
|
+
const result = evaluateAgainstRule(repoRoot, rule, files, actorEmail, netLoc, {
|
|
354
|
+
mode: "commit",
|
|
355
|
+
baseSha: null,
|
|
356
|
+
headSha: commitSha,
|
|
357
|
+
});
|
|
358
|
+
if (result.eligible) return result;
|
|
359
|
+
lastReason = result.reason;
|
|
360
|
+
}
|
|
361
|
+
return { eligible: false, reason: lastReason };
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Evaluate a PR commit range for trusted automation eligibility.
|
|
366
|
+
* @returns {{ eligible: boolean, reason: string }}
|
|
367
|
+
*/
|
|
368
|
+
export function evaluateTrustedAutomationRange(repoRoot, baseSha, headSha) {
|
|
369
|
+
const rules = loadTrustedAutomationRules(repoRoot);
|
|
370
|
+
if (rules.length === 0) {
|
|
371
|
+
return { eligible: false, reason: "no trusted_automation policy configured" };
|
|
372
|
+
}
|
|
373
|
+
const prefixes = listMsnEnforcedPrefixes(repoRoot);
|
|
374
|
+
const allFiles = rangeChangedFiles(repoRoot, baseSha, headSha);
|
|
375
|
+
const enforcedFiles = allFiles.filter((f) => isMsnEnforcedPath(f, prefixes));
|
|
376
|
+
if (enforcedFiles.length === 0) {
|
|
377
|
+
return { eligible: false, reason: "range does not touch MSN-enforced paths" };
|
|
378
|
+
}
|
|
379
|
+
const commits = git(repoRoot, ["rev-list", "--no-merges", `${baseSha}..${headSha}`])
|
|
380
|
+
.split("\n")
|
|
381
|
+
.filter(Boolean);
|
|
382
|
+
for (const commit of commits) {
|
|
383
|
+
const files = commitChangedFiles(repoRoot, commit).filter((f) => isMsnEnforcedPath(f, prefixes));
|
|
384
|
+
if (files.length === 0) continue;
|
|
385
|
+
const actorEmail = commitAuthorEmail(repoRoot, commit);
|
|
386
|
+
if (findMatchingRule(rules, actorEmail).length === 0) {
|
|
387
|
+
return {
|
|
388
|
+
eligible: false,
|
|
389
|
+
reason: `commit ${commit.slice(0, 7)}: actor ${actorEmail} not covered by trusted_automation policy`,
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
const netLoc = gitNumstat(repoRoot, ["diff", "--numstat", `${baseSha}...${headSha}`]);
|
|
394
|
+
const actorEmail = commits.length > 0 ? commitAuthorEmail(repoRoot, commits[commits.length - 1]) : "";
|
|
395
|
+
const matchingRules = findMatchingRule(rules, actorEmail);
|
|
396
|
+
let lastReason = "PR diff failed trusted_automation policy checks";
|
|
397
|
+
for (const rule of matchingRules) {
|
|
398
|
+
const result = evaluateAgainstRule(repoRoot, rule, enforcedFiles, actorEmail, netLoc, {
|
|
399
|
+
mode: "range",
|
|
400
|
+
baseSha,
|
|
401
|
+
headSha,
|
|
402
|
+
});
|
|
403
|
+
if (result.eligible) return result;
|
|
404
|
+
lastReason = result.reason;
|
|
405
|
+
}
|
|
406
|
+
return { eligible: false, reason: lastReason };
|
|
407
|
+
}
|
|
@@ -56,9 +56,9 @@ if [[ ${#UNIQUE_MSNS[@]} -gt 1 ]]; then
|
|
|
56
56
|
fi
|
|
57
57
|
|
|
58
58
|
if [[ -f dist/cli/index.js ]]; then
|
|
59
|
-
|
|
59
|
+
GANTRY=(node dist/cli/index.js)
|
|
60
60
|
elif command -v gantry >/dev/null 2>&1; then
|
|
61
|
-
|
|
61
|
+
GANTRY=(gantry)
|
|
62
62
|
else
|
|
63
63
|
echo "verify-pr-missions: build gantry first (npm run build)" >&2
|
|
64
64
|
exit 1
|
|
@@ -141,7 +141,7 @@ fi
|
|
|
141
141
|
|
|
142
142
|
for mission in "${CHANGED_MISSIONS[@]}"; do
|
|
143
143
|
echo "verify-pr-missions: gantry verify --mission ${mission}" >&2
|
|
144
|
-
"${
|
|
144
|
+
"${GANTRY[@]}" verify --mission "$mission" --audience verifier || exit 1
|
|
145
145
|
done
|
|
146
146
|
|
|
147
147
|
echo "verify-pr-missions OK (${#CHANGED_MISSIONS[@]} mission(s))"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-credential.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/architecture-credential.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnF,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,0BAA0B,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAKD,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAKvF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjF;AAaD,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ1E;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,4BAA4B,GAAG,IAAI,CAMrC;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,OAAO,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,4BAA4B,CAgC9B;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,0BAA0B,EAChC,GAAG,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA8CxB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,0BAA0B,EAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAgBN;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKpF;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CAW5D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAoBzE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-credential.js","sourceRoot":"","sources":["../../../src/cli/lib/architecture-credential.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-drift-doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/architecture-drift-doctor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAqBpD,8FAA8F;AAC9F,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAsC3E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-drift-doctor.js","sourceRoot":"","sources":["../../../src/cli/lib/architecture-drift-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAyB,MAAM,wBAAwB,CAAC;AAEtF,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,sBAAsB,CAAC;IAClC,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAqB,CAAC;AACtE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,yGAAyG;SACnH,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1C,MAAM,IAAI,GAAG,CAAC,CAAW,EAAE,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,yCAAyC,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,GAAG;SAChH,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,+EAA+E,EAAE,CAAC,CAAC;IACxH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,yDAAyD,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-fetch.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/architecture-fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,8BAA8B,CAAC;AAOtC,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAI3E,eAAO,MAAM,kBAAkB,EAAE,WAYhC,CAAC;AAMF,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,4BAA4B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBjG;AAWD,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,eAAe,CAAC,CAyD1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-fetch.js","sourceRoot":"","sources":["../../../src/cli/lib/architecture-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-pointer.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACnC;AAED,eAAO,MAAM,mCAAmC,EAAG,OAAgB,CAAC;AAEpE,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,0FAG5B,CAAC;AAOX,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AA4ED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAwC7E;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAY7E;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAEnF;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAEtF;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI/D;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAqBrG;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAgBjF;AAuED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA6CjF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-pointer.js","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"target-architecture-doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/target-architecture-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD,wFAAwF;AACxF,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CA2B5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"target-architecture-doctor.js","sourceRoot":"","sources":["../../../src/cli/lib/target-architecture-doctor.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,wFAAwF;AACxF,MAAM,UAAU,iCAAiC,CAAC,IAAY;IAC5D,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,GAAG,4BAA4B,oFAAoF;SAC7H,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,GAAG,4BAA4B,oBAAoB,IAAI,CAAC,cAAc,GAAG;SACnF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,+BAA+B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClE,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,4BAA4B,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"target-architecture.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/target-architecture.ts"],"names":[],"mappings":"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"}
|