@jeger-ai/opengantry 3.1.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/attest.d.ts +1 -0
- package/dist/cli/commands/attest.d.ts.map +1 -1
- package/dist/cli/commands/attest.js +9 -2
- package/dist/cli/commands/attest.js.map +1 -1
- package/dist/cli/commands/interrogate.d.ts +12 -0
- package/dist/cli/commands/interrogate.d.ts.map +1 -0
- package/dist/cli/commands/interrogate.js +62 -0
- package/dist/cli/commands/interrogate.js.map +1 -0
- package/dist/cli/commands/receipt.d.ts +2 -0
- package/dist/cli/commands/receipt.d.ts.map +1 -1
- package/dist/cli/commands/receipt.js +8 -1
- package/dist/cli/commands/receipt.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +3 -0
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/lib/arch/cage/target-architecture.d.ts +1 -0
- package/dist/cli/lib/arch/cage/target-architecture.d.ts.map +1 -1
- package/dist/cli/lib/arch/cage/target-architecture.js +1 -1
- package/dist/cli/lib/arch/cage/target-architecture.js.map +1 -1
- package/dist/cli/lib/attest-mission.d.ts +4 -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/attestation-export.d.ts +11 -0
- package/dist/cli/lib/attestation-export.d.ts.map +1 -0
- package/dist/cli/lib/attestation-export.js +23 -0
- package/dist/cli/lib/attestation-export.js.map +1 -0
- package/dist/cli/lib/attestation-receipt.d.ts +14 -5
- package/dist/cli/lib/attestation-receipt.d.ts.map +1 -1
- package/dist/cli/lib/attestation-receipt.js +82 -40
- package/dist/cli/lib/attestation-receipt.js.map +1 -1
- package/dist/cli/lib/draft-token.d.ts +5 -1
- package/dist/cli/lib/draft-token.d.ts.map +1 -1
- package/dist/cli/lib/draft-token.js +19 -3
- package/dist/cli/lib/draft-token.js.map +1 -1
- package/dist/cli/lib/errors.d.ts +8 -1
- package/dist/cli/lib/errors.d.ts.map +1 -1
- package/dist/cli/lib/errors.js +28 -10
- package/dist/cli/lib/errors.js.map +1 -1
- package/dist/cli/lib/gxt-error-codes.d.ts +5 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +5 -0
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/interrogate/answers.d.ts +8 -0
- package/dist/cli/lib/interrogate/answers.d.ts.map +1 -0
- package/dist/cli/lib/interrogate/answers.js +50 -0
- package/dist/cli/lib/interrogate/answers.js.map +1 -0
- package/dist/cli/lib/interrogate/findings.d.ts +27 -0
- package/dist/cli/lib/interrogate/findings.d.ts.map +1 -0
- package/dist/cli/lib/interrogate/findings.js +36 -0
- package/dist/cli/lib/interrogate/findings.js.map +1 -0
- package/dist/cli/lib/interrogate/gaps.d.ts +13 -0
- package/dist/cli/lib/interrogate/gaps.d.ts.map +1 -0
- package/dist/cli/lib/interrogate/gaps.js +110 -0
- package/dist/cli/lib/interrogate/gaps.js.map +1 -0
- package/dist/cli/lib/interrogate/gate-integrity.d.ts +7 -0
- package/dist/cli/lib/interrogate/gate-integrity.d.ts.map +1 -0
- package/dist/cli/lib/interrogate/gate-integrity.js +30 -0
- package/dist/cli/lib/interrogate/gate-integrity.js.map +1 -0
- package/dist/cli/lib/interrogate/run.d.ts +26 -0
- package/dist/cli/lib/interrogate/run.d.ts.map +1 -0
- package/dist/cli/lib/interrogate/run.js +43 -0
- package/dist/cli/lib/interrogate/run.js.map +1 -0
- package/dist/cli/lib/legislate-gate-options.d.ts +9 -0
- package/dist/cli/lib/legislate-gate-options.d.ts.map +1 -0
- package/dist/cli/lib/legislate-gate-options.js +11 -0
- package/dist/cli/lib/legislate-gate-options.js.map +1 -0
- package/dist/cli/lib/legislate.d.ts +23 -12
- package/dist/cli/lib/legislate.d.ts.map +1 -1
- package/dist/cli/lib/legislate.js +61 -13
- package/dist/cli/lib/legislate.js.map +1 -1
- package/dist/cli/lib/manifest.d.ts.map +1 -1
- package/dist/cli/lib/manifest.js +10 -0
- package/dist/cli/lib/manifest.js.map +1 -1
- package/dist/cli/lib/mcp-draft-legislation.d.ts.map +1 -1
- package/dist/cli/lib/mcp-draft-legislation.js +49 -5
- 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 +6 -0
- package/dist/cli/lib/mcp-execute-legislation.js.map +1 -1
- package/dist/cli/lib/mcp-governance-shared.d.ts +5 -0
- 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.d.ts +18 -0
- package/dist/cli/lib/mcp-interrogate.d.ts.map +1 -0
- package/dist/cli/lib/mcp-interrogate.js +29 -0
- package/dist/cli/lib/mcp-interrogate.js.map +1 -0
- 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 +22 -1
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/missions/formatter.d.ts.map +1 -1
- package/dist/cli/lib/missions/formatter.js +3 -0
- package/dist/cli/lib/missions/formatter.js.map +1 -1
- package/dist/cli/lib/missions/parser.d.ts.map +1 -1
- package/dist/cli/lib/missions/parser.js +20 -0
- package/dist/cli/lib/missions/parser.js.map +1 -1
- package/dist/cli/lib/org-export-config.d.ts +9 -0
- package/dist/cli/lib/org-export-config.d.ts.map +1 -0
- package/dist/cli/lib/org-export-config.js +45 -0
- package/dist/cli/lib/org-export-config.js.map +1 -0
- package/dist/cli/lib/pepper-keyring.d.ts +18 -0
- package/dist/cli/lib/pepper-keyring.d.ts.map +1 -0
- package/dist/cli/lib/pepper-keyring.js +128 -0
- package/dist/cli/lib/pepper-keyring.js.map +1 -0
- package/dist/cli/lib/perimeter.d.ts +1 -0
- package/dist/cli/lib/perimeter.d.ts.map +1 -1
- package/dist/cli/lib/perimeter.js +1 -1
- package/dist/cli/lib/perimeter.js.map +1 -1
- package/dist/cli/lib/principal-hmac.d.ts +20 -0
- package/dist/cli/lib/principal-hmac.d.ts.map +1 -0
- package/dist/cli/lib/principal-hmac.js +74 -0
- package/dist/cli/lib/principal-hmac.js.map +1 -0
- package/dist/cli/lib/receipt-attribution.d.ts +23 -0
- package/dist/cli/lib/receipt-attribution.d.ts.map +1 -0
- package/dist/cli/lib/receipt-attribution.js +113 -0
- package/dist/cli/lib/receipt-attribution.js.map +1 -0
- package/dist/cli/lib/receipt-inspect.d.ts +2 -1
- package/dist/cli/lib/receipt-inspect.d.ts.map +1 -1
- package/dist/cli/lib/receipt-inspect.js +2 -1
- package/dist/cli/lib/receipt-inspect.js.map +1 -1
- package/dist/cli/lib/receipt-signing.d.ts +18 -1
- package/dist/cli/lib/receipt-signing.d.ts.map +1 -1
- package/dist/cli/lib/receipt-signing.js +34 -8
- package/dist/cli/lib/receipt-signing.js.map +1 -1
- package/dist/cli/lib/start-orchestration.d.ts +1 -0
- package/dist/cli/lib/start-orchestration.d.ts.map +1 -1
- package/dist/cli/lib/start-orchestration.js +55 -4
- package/dist/cli/lib/start-orchestration.js.map +1 -1
- package/dist/cli/lib/tmvc-path.d.ts +2 -0
- package/dist/cli/lib/tmvc-path.d.ts.map +1 -1
- package/dist/cli/lib/tmvc-path.js +16 -0
- package/dist/cli/lib/tmvc-path.js.map +1 -1
- package/dist/cli/lib/triage-logic.d.ts +1 -0
- package/dist/cli/lib/triage-logic.d.ts.map +1 -1
- package/dist/cli/lib/triage-logic.js +3 -0
- package/dist/cli/lib/triage-logic.js.map +1 -1
- package/dist/cli/lib/types.d.ts +16 -0
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +37 -7
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.js +14 -0
- package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
- package/dist/cli/lib/verify-failure.d.ts +8 -2
- package/dist/cli/lib/verify-failure.d.ts.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 +17 -0
- package/dist/cli/lib/verify-hints.js.map +1 -1
- package/dist/cli/lib/verify-interrogation.d.ts +18 -0
- package/dist/cli/lib/verify-interrogation.d.ts.map +1 -0
- package/dist/cli/lib/verify-interrogation.js +205 -0
- package/dist/cli/lib/verify-interrogation.js.map +1 -0
- package/dist/cli/lib/verify-options.d.ts +4 -0
- package/dist/cli/lib/verify-options.d.ts.map +1 -1
- package/dist/cli/lib/verify-receipt.d.ts +5 -1
- package/dist/cli/lib/verify-receipt.d.ts.map +1 -1
- package/dist/cli/lib/verify-receipt.js +27 -7
- package/dist/cli/lib/verify-receipt.js.map +1 -1
- package/dist/cli/lib/verify-run.d.ts.map +1 -1
- package/dist/cli/lib/verify-run.js +36 -7
- 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.map +1 -1
- package/dist/cli/program-core.js +24 -1
- package/dist/cli/program-core.js.map +1 -1
- package/dist/cli/program-mission.js +1 -1
- package/dist/cli/program-mission.js.map +1 -1
- package/dist/cli/program-workflow.d.ts +44 -0
- package/dist/cli/program-workflow.d.ts.map +1 -1
- package/dist/cli/program-workflow.js +66 -4
- package/dist/cli/program-workflow.js.map +1 -1
- package/package.json +1 -1
- package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
- package/templates/.gitagent/planner/MISSION.schema.yaml +54 -0
- package/templates/.github/workflows/gxt-attest-ingest.yml +72 -0
- package/templates/.gitignore.gxt +1 -0
- package/templates/integrations/compatibility.json +1 -1
- package/templates/scripts/validate-mcp-dogfood.mjs +56 -0
|
@@ -5,20 +5,22 @@ import { canonicalJson } from "./canonical-json.js";
|
|
|
5
5
|
import { logWarn } from "./cli-io.js";
|
|
6
6
|
import { CLI_NAME, REL_RECEIPTS_DIR } from "./constants.js";
|
|
7
7
|
import { GantryUserError } from "./errors.js";
|
|
8
|
-
import { listMsnSubjectCommits,
|
|
9
|
-
import { gitRevParse } from "./git.js";
|
|
8
|
+
import { listMsnSubjectCommits, } from "./git-proof.js";
|
|
9
|
+
import { gitConfigGet, gitRevParse } from "./git.js";
|
|
10
10
|
import { loadGxtConfig, resolveReceiptSignatureTier } from "./gxt-config.js";
|
|
11
|
+
import { resolveOrgExportConfig } from "./org-export-config.js";
|
|
11
12
|
import { resolvePlannerEmails } from "./planner-identity.js";
|
|
12
|
-
import {
|
|
13
|
+
import { pseudonymizeEmail, resolveAttestationAgent, resolveBranchHmac, resolveRepositoryHash, hmacSha256Hex, } from "./receipt-attribution.js";
|
|
14
|
+
import { canonicalReceiptUtf8, signReceiptMessage, unsignedReceiptPayload, verifyReceiptAgainstCanonical, } from "./receipt-signing.js";
|
|
13
15
|
import { computeWorkingDigests } from "./working-digests.js";
|
|
14
|
-
export const ATTESTATION_RECEIPT_SCHEMA_VERSION = "0.
|
|
16
|
+
export const ATTESTATION_RECEIPT_SCHEMA_VERSION = "0.2.0";
|
|
15
17
|
function sha256Bytes(buf) {
|
|
16
18
|
return crypto.createHash("sha256").update(buf).digest("hex");
|
|
17
19
|
}
|
|
18
20
|
function isPlannerStamp(row, plannerEmails) {
|
|
19
21
|
return plannerEmails.includes(row.authorEmail.trim().toLowerCase());
|
|
20
22
|
}
|
|
21
|
-
export function resolvePlannerStampForReceipt(root, msnId) {
|
|
23
|
+
export function resolvePlannerStampForReceipt(root, msnId, orgPepper) {
|
|
22
24
|
const plannerEmails = resolvePlannerEmails(root).emails;
|
|
23
25
|
if (plannerEmails.length === 0)
|
|
24
26
|
return null;
|
|
@@ -28,38 +30,102 @@ export function resolvePlannerStampForReceipt(root, msnId) {
|
|
|
28
30
|
return null;
|
|
29
31
|
return {
|
|
30
32
|
commit: stamp.hash,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
author_email_hmac: pseudonymizeEmail(stamp.authorEmail, {
|
|
34
|
+
org_id: "",
|
|
35
|
+
pepper: orgPepper,
|
|
36
|
+
pepper_version: 1,
|
|
37
|
+
}),
|
|
33
38
|
};
|
|
34
39
|
}
|
|
35
|
-
function unsignedReceiptPayload(input) {
|
|
36
|
-
const { receipt_sha256: _receiptSha, signature: _signature, ...rest } = input;
|
|
37
|
-
return { ...rest };
|
|
38
|
-
}
|
|
39
40
|
export function computeReceiptSha256(payload) {
|
|
40
|
-
return crypto
|
|
41
|
+
return crypto
|
|
42
|
+
.createHash("sha256")
|
|
43
|
+
.update(canonicalJson(unsignedReceiptPayload(payload)), "utf8")
|
|
44
|
+
.digest("hex");
|
|
45
|
+
}
|
|
46
|
+
function parseSignerPrincipalKind(raw) {
|
|
47
|
+
const trimmed = raw?.trim().toLowerCase();
|
|
48
|
+
if (trimmed === "email" || trimmed === "github_actor")
|
|
49
|
+
return trimmed;
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
function resolveSignerPrincipal(root, orgPepper) {
|
|
53
|
+
const envPrincipal = process.env.GANTRY_SIGNER_PRINCIPAL?.trim();
|
|
54
|
+
const envKind = parseSignerPrincipalKind(process.env.GANTRY_SIGNER_PRINCIPAL_KIND);
|
|
55
|
+
if (envPrincipal) {
|
|
56
|
+
const kind = envKind ?? "github_actor";
|
|
57
|
+
return {
|
|
58
|
+
hmac: hmacSha256Hex(orgPepper, envPrincipal),
|
|
59
|
+
kind,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const email = gitConfigGet(root, "user.email");
|
|
63
|
+
if (!email?.trim())
|
|
64
|
+
return null;
|
|
65
|
+
return {
|
|
66
|
+
hmac: pseudonymizeEmail(email, { org_id: "", pepper: orgPepper, pepper_version: 1 }),
|
|
67
|
+
kind: "email",
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function attachReceiptSignature(root, receipt, tier, sign) {
|
|
71
|
+
const shouldSign = sign === true || tier === "require" || tier === "warn";
|
|
72
|
+
if (!shouldSign)
|
|
73
|
+
return receipt;
|
|
74
|
+
const canonicalUtf8 = canonicalReceiptUtf8(receipt);
|
|
75
|
+
const signature = signReceiptMessage(root, canonicalUtf8, "canonical_json_utf8");
|
|
76
|
+
if (!signature) {
|
|
77
|
+
if (tier === "require") {
|
|
78
|
+
throw new GantryUserError("RECEIPT_SIGNATURE_REQUIRED", "receipt_signature=require but no local SSH/GPG signing key is configured", "configure user.signingkey and gpg.format, or pass receipt_signature off", 2);
|
|
79
|
+
}
|
|
80
|
+
if (tier === "warn") {
|
|
81
|
+
logWarn(`${CLI_NAME} attest: receipt unsigned — no local SSH/GPG signing key is configured`);
|
|
82
|
+
}
|
|
83
|
+
return receipt;
|
|
84
|
+
}
|
|
85
|
+
const verifyStatus = verifyReceiptAgainstCanonical(root, { ...receipt, signature }, canonicalUtf8);
|
|
86
|
+
if (tier === "warn" && verifyStatus !== "good") {
|
|
87
|
+
logWarn(`${CLI_NAME} attest: receipt signature verify_status=${verifyStatus}`);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
...receipt,
|
|
91
|
+
signature: {
|
|
92
|
+
...signature,
|
|
93
|
+
verify_status: verifyStatus,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
41
96
|
}
|
|
42
97
|
export function buildAttestationReceipt(input) {
|
|
43
98
|
const missionAbs = path.resolve(input.root, input.missionArg);
|
|
44
|
-
const missionRel = missionPathRepoRelative(input.root, missionAbs);
|
|
45
99
|
const msnId = input.mission.msnId;
|
|
46
100
|
if (!msnId) {
|
|
47
101
|
throw new GantryUserError("INVALID_ARGUMENT", "mission is missing msn_id", undefined, 2);
|
|
48
102
|
}
|
|
103
|
+
const org = resolveOrgExportConfig(input.root);
|
|
49
104
|
const digests = computeWorkingDigests(input.root);
|
|
50
105
|
if (digests.manifest_sha256 === null) {
|
|
51
106
|
throw new GantryUserError("MANIFEST_MISSING", "attestation receipt requires .gitagent/foreman/MANIFEST.json", "run gantry init or restore MANIFEST.json", 2);
|
|
52
107
|
}
|
|
108
|
+
const branch = resolveBranchHmac(input.root, org);
|
|
109
|
+
const gitTree = gitRevParse(input.root, "HEAD^{tree}");
|
|
110
|
+
const signer = resolveSignerPrincipal(input.root, org.pepper);
|
|
53
111
|
const base = {
|
|
54
112
|
schema_version: ATTESTATION_RECEIPT_SCHEMA_VERSION,
|
|
113
|
+
org_id: org.org_id,
|
|
114
|
+
pepper_version: org.pepper_version,
|
|
115
|
+
repository_hash: resolveRepositoryHash(input.root, org),
|
|
116
|
+
branch_hmac: branch.branch_hmac,
|
|
117
|
+
branch_class: branch.branch_class,
|
|
55
118
|
msn_id: msnId,
|
|
56
|
-
mission_rel: missionRel,
|
|
57
119
|
mission_sha256: sha256Bytes(fs.readFileSync(missionAbs)),
|
|
58
120
|
manifest_sha256: digests.manifest_sha256,
|
|
59
121
|
target_architecture_sha256: digests.target_architecture_sha256,
|
|
60
122
|
config_sha256: digests.config_sha256,
|
|
61
123
|
git_head: gitRevParse(input.root, "HEAD") ?? "no-head",
|
|
62
|
-
|
|
124
|
+
git_tree_sha: gitTree ?? "no-tree",
|
|
125
|
+
agent: resolveAttestationAgent(input.harnessMode),
|
|
126
|
+
planner_stamp: resolvePlannerStampForReceipt(input.root, msnId, org.pepper),
|
|
127
|
+
signer_principal_hmac: signer?.hmac ?? null,
|
|
128
|
+
signer_principal_kind: signer?.kind ?? null,
|
|
63
129
|
verify_status: input.verifyStatus,
|
|
64
130
|
issued_at: new Date().toISOString(),
|
|
65
131
|
};
|
|
@@ -69,31 +135,7 @@ export function buildAttestationReceipt(input) {
|
|
|
69
135
|
const receipt_sha256 = computeReceiptSha256(base);
|
|
70
136
|
const receipt = { ...base, receipt_sha256 };
|
|
71
137
|
const config = loadGxtConfig(input.root);
|
|
72
|
-
|
|
73
|
-
const shouldSign = input.sign === true || tier === "require" || tier === "warn";
|
|
74
|
-
if (!shouldSign)
|
|
75
|
-
return receipt;
|
|
76
|
-
const signature = signReceiptHash(input.root, receipt_sha256);
|
|
77
|
-
if (!signature) {
|
|
78
|
-
if (tier === "require") {
|
|
79
|
-
throw new GantryUserError("RECEIPT_SIGNATURE_REQUIRED", "receipt_signature=require but no local SSH/GPG signing key is configured", "configure user.signingkey and gpg.format, or pass receipt_signature off", 2);
|
|
80
|
-
}
|
|
81
|
-
if (tier === "warn") {
|
|
82
|
-
logWarn(`${CLI_NAME} attest: receipt unsigned — no local SSH/GPG signing key is configured`);
|
|
83
|
-
}
|
|
84
|
-
return receipt;
|
|
85
|
-
}
|
|
86
|
-
const verifyStatus = verifyReceiptSignature(input.root, receipt_sha256, signature);
|
|
87
|
-
if (tier === "warn" && verifyStatus !== "good") {
|
|
88
|
-
logWarn(`${CLI_NAME} attest: receipt signature verify_status=${verifyStatus}`);
|
|
89
|
-
}
|
|
90
|
-
return {
|
|
91
|
-
...receipt,
|
|
92
|
-
signature: {
|
|
93
|
-
...signature,
|
|
94
|
-
verify_status: verifyStatus,
|
|
95
|
-
},
|
|
96
|
-
};
|
|
138
|
+
return attachReceiptSignature(input.root, receipt, resolveReceiptSignatureTier(config), input.sign);
|
|
97
139
|
}
|
|
98
140
|
export function defaultReceiptPath(root, msnId, receiptSha256) {
|
|
99
141
|
const suffix = receiptSha256.slice(0, 12);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestation-receipt.js","sourceRoot":"","sources":["../../../src/cli/lib/attestation-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"attestation-receipt.js","sourceRoot":"","sources":["../../../src/cli/lib/attestation-receipt.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@ export declare const DRAFT_TOKEN_TTL_SECONDS_MIN = 120;
|
|
|
3
3
|
export declare const DRAFT_TOKEN_TTL_SECONDS_MAX = 1800;
|
|
4
4
|
export declare const DRAFT_TOKEN_KEY_REL = ".gitagent/foreman/DRAFT_TOKEN.key";
|
|
5
5
|
export declare const DRAFT_TOKEN_REPLAY_REL = ".gitagent/history/.draft-token-replay.json";
|
|
6
|
+
import type { InterrogationRow } from "./interrogate/findings.js";
|
|
6
7
|
export interface DraftLegislationPayload {
|
|
7
|
-
v:
|
|
8
|
+
v: 2;
|
|
8
9
|
draft_id: string;
|
|
9
10
|
iat: number;
|
|
10
11
|
exp: number;
|
|
@@ -14,6 +15,9 @@ export interface DraftLegislationPayload {
|
|
|
14
15
|
skill_key: string;
|
|
15
16
|
gate_command: string;
|
|
16
17
|
gate_success_substring?: string;
|
|
18
|
+
interrogation: InterrogationRow[];
|
|
19
|
+
interrogation_sha256: string;
|
|
20
|
+
declared_paths: string[];
|
|
17
21
|
}
|
|
18
22
|
export type DraftTokenErrorCode = "TOKEN_MALFORMED" | "TOKEN_SIGNATURE_INVALID" | "TOKEN_EXPIRED" | "TOKEN_REPO_MISMATCH" | "TOKEN_REPLAYED" | "TOKEN_KEY_MISSING";
|
|
19
23
|
export declare class DraftTokenError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft-token.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/draft-token.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,+BAA+B,MAAM,CAAC;AACnD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AACvE,eAAO,MAAM,sBAAsB,+CAA+C,CAAC;AAEnF,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,CAAC,CAAC;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"draft-token.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/draft-token.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,+BAA+B,MAAM,CAAC;AACnD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AACvE,eAAO,MAAM,sBAAsB,+CAA+C,CAAC;AAEnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,CAAC,CAAC;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,yBAAyB,GACzB,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAEhB,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,UAAO;CAKzE;AAUD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3D;AAoDD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,GAAG,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,kBAAkB,CAAC,GAAG;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiC/E;AAwBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,uBAAuB,CAkE3H"}
|
|
@@ -87,7 +87,7 @@ export function createDraftToken(root, input) {
|
|
|
87
87
|
const ttl = Math.min(DRAFT_TOKEN_TTL_SECONDS_MAX, Math.max(DRAFT_TOKEN_TTL_SECONDS_MIN, ttlRaw));
|
|
88
88
|
const now = Math.floor(Date.now() / 1000);
|
|
89
89
|
const payload = {
|
|
90
|
-
v:
|
|
90
|
+
v: 2,
|
|
91
91
|
draft_id: crypto.randomUUID(),
|
|
92
92
|
iat: now,
|
|
93
93
|
exp: now + ttl,
|
|
@@ -96,6 +96,9 @@ export function createDraftToken(root, input) {
|
|
|
96
96
|
msn_id: input.msn_id.trim(),
|
|
97
97
|
skill_key: input.skill_key.trim(),
|
|
98
98
|
gate_command: input.gate_command.trim(),
|
|
99
|
+
interrogation: input.interrogation,
|
|
100
|
+
interrogation_sha256: input.interrogation_sha256,
|
|
101
|
+
declared_paths: input.declared_paths,
|
|
99
102
|
};
|
|
100
103
|
if (input.gate_success_substring?.trim()) {
|
|
101
104
|
payload.gate_success_substring = input.gate_success_substring.trim();
|
|
@@ -109,6 +112,18 @@ export function createDraftToken(root, input) {
|
|
|
109
112
|
expires_at: new Date(payload.exp * 1000).toISOString(),
|
|
110
113
|
};
|
|
111
114
|
}
|
|
115
|
+
const SHA256_HEX = /^[a-f0-9]{64}$/;
|
|
116
|
+
function assertDraftPayloadShape(payload) {
|
|
117
|
+
if (!SHA256_HEX.test(payload.interrogation_sha256)) {
|
|
118
|
+
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token interrogation_sha256 must be 64 hex chars`, false);
|
|
119
|
+
}
|
|
120
|
+
if (!Array.isArray(payload.interrogation)) {
|
|
121
|
+
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token interrogation must be an array`, false);
|
|
122
|
+
}
|
|
123
|
+
if (!Array.isArray(payload.declared_paths)) {
|
|
124
|
+
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token declared_paths must be an array`, false);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
112
127
|
export function verifyDraftToken(root, draftToken, options) {
|
|
113
128
|
const parts = draftToken.trim().split(".");
|
|
114
129
|
if (parts.length !== 2 || !parts[0] || !parts[1]) {
|
|
@@ -128,9 +143,10 @@ export function verifyDraftToken(root, draftToken, options) {
|
|
|
128
143
|
catch {
|
|
129
144
|
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token payload JSON invalid`, true);
|
|
130
145
|
}
|
|
131
|
-
if (payload.v !==
|
|
132
|
-
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token version unsupported`, false);
|
|
146
|
+
if (payload.v !== 2) {
|
|
147
|
+
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token version unsupported (require v2)`, false);
|
|
133
148
|
}
|
|
149
|
+
assertDraftPayloadShape(payload);
|
|
134
150
|
const keyPath = draftTokenKeyPath(root);
|
|
135
151
|
if (!fs.existsSync(keyPath)) {
|
|
136
152
|
throw new DraftTokenError("TOKEN_KEY_MISSING", `${CLI_NAME} draft token key missing at ${DRAFT_TOKEN_KEY_REL}`, false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft-token.js","sourceRoot":"","sources":["../../../src/cli/lib/draft-token.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AACnD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"draft-token.js","sourceRoot":"","sources":["../../../src/cli/lib/draft-token.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/lib/errors.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare function userFacingErrorToJson(e: unknown): UserFacingErrorJson;
|
|
|
23
23
|
export interface AgentErrorPayload {
|
|
24
24
|
v: 1;
|
|
25
25
|
ts: string;
|
|
26
|
-
status: RuntimeExecResult["status"];
|
|
26
|
+
status: RuntimeExecResult["status"] | "interrogation_required";
|
|
27
27
|
exit_code: number;
|
|
28
28
|
flight_id: string;
|
|
29
29
|
msn_id: string;
|
|
@@ -37,4 +37,11 @@ export interface AgentErrorPayload {
|
|
|
37
37
|
export declare function agentErrorAbsolutePath(repoRoot: string): string;
|
|
38
38
|
export declare function serializeAgentErrorPayload(payload: AgentErrorPayload): string;
|
|
39
39
|
export declare function writeAgentErrorPayload(repoRoot: string, resolved: ResolvedRuntimeEnv, result: RuntimeExecResult): AgentErrorPayload;
|
|
40
|
+
export declare function writeInterrogationRequiredError(repoRoot: string, input: {
|
|
41
|
+
msn_id: string;
|
|
42
|
+
skill_key: string;
|
|
43
|
+
finding_id: string;
|
|
44
|
+
question: string;
|
|
45
|
+
remediation: string[];
|
|
46
|
+
}): AgentErrorPayload;
|
|
40
47
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,sFAAsF;AACtF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ;gBAHR,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,QAAQ,SAAI;IAMvB,oDAAoD;IACpD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAElE;AASD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAkBtD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAWrE;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,CAAC,CAAC;IACL,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,sFAAsF;AACtF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ;gBAHR,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,QAAQ,SAAI;IAMvB,oDAAoD;IACpD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAElE;AASD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAkBtD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAWrE;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,CAAC,CAAC;IACL,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CAAC;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAkBD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAE7E;AAsCD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CAYnB;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,GACA,iBAAiB,CAYnB"}
|
package/dist/cli/lib/errors.js
CHANGED
|
@@ -3,7 +3,7 @@ import { readEnvWithLegacy } from "./config-namespace.js";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { logError, setExitCode, errorMessage } from "./cli-io.js";
|
|
5
5
|
import { hintGitProofFromMessage, logFixHint } from "./fix-hints.js";
|
|
6
|
-
import { gxtCodeFromGantryUserError } from "./gxt-error-codes.js";
|
|
6
|
+
import { gxtCodeFromGantryUserError, GXT_ERROR } from "./gxt-error-codes.js";
|
|
7
7
|
import { REL_AGENT_ERROR_FILE } from "./constants.js";
|
|
8
8
|
/** Expected policy / validation failure — never print a stack at the CLI boundary. */
|
|
9
9
|
export class GantryUserError extends Error {
|
|
@@ -65,6 +65,18 @@ export function userFacingErrorToJson(e) {
|
|
|
65
65
|
const message = errorMessage(e);
|
|
66
66
|
return { error_code: "GXT_VERIFY_FAILED", message, exit_code: 1 };
|
|
67
67
|
}
|
|
68
|
+
function writeAgentErrorFile(repoRoot, fields) {
|
|
69
|
+
const errorFile = agentErrorAbsolutePath(repoRoot);
|
|
70
|
+
fs.mkdirSync(path.dirname(errorFile), { recursive: true });
|
|
71
|
+
const payload = {
|
|
72
|
+
v: 1,
|
|
73
|
+
ts: new Date().toISOString(),
|
|
74
|
+
error_file: errorFile,
|
|
75
|
+
...fields,
|
|
76
|
+
};
|
|
77
|
+
fs.writeFileSync(errorFile, JSON.stringify(payload, null, 2), "utf8");
|
|
78
|
+
return payload;
|
|
79
|
+
}
|
|
68
80
|
export function agentErrorAbsolutePath(repoRoot) {
|
|
69
81
|
return path.join(repoRoot, REL_AGENT_ERROR_FILE);
|
|
70
82
|
}
|
|
@@ -103,23 +115,29 @@ function buildRemediation(result, resolved) {
|
|
|
103
115
|
return steps;
|
|
104
116
|
}
|
|
105
117
|
export function writeAgentErrorPayload(repoRoot, resolved, result) {
|
|
106
|
-
|
|
107
|
-
fs.mkdirSync(path.dirname(errorFile), { recursive: true });
|
|
108
|
-
const payload = {
|
|
109
|
-
v: 1,
|
|
110
|
-
ts: new Date().toISOString(),
|
|
118
|
+
return writeAgentErrorFile(repoRoot, {
|
|
111
119
|
status: result.status,
|
|
112
120
|
exit_code: result.exitCode,
|
|
113
121
|
flight_id: result.flightId,
|
|
114
122
|
msn_id: resolved.msn_id,
|
|
115
123
|
mission_file: resolved.mission_file,
|
|
116
124
|
skill_key: resolved.skill_key,
|
|
117
|
-
error_file: errorFile,
|
|
118
125
|
violations: result.violations,
|
|
119
126
|
summary: buildSummary(result),
|
|
120
127
|
remediation: buildRemediation(result, resolved),
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
export function writeInterrogationRequiredError(repoRoot, input) {
|
|
131
|
+
return writeAgentErrorFile(repoRoot, {
|
|
132
|
+
status: "interrogation_required",
|
|
133
|
+
exit_code: 2,
|
|
134
|
+
flight_id: "",
|
|
135
|
+
msn_id: input.msn_id,
|
|
136
|
+
mission_file: "",
|
|
137
|
+
skill_key: input.skill_key,
|
|
138
|
+
violations: [],
|
|
139
|
+
summary: `${GXT_ERROR.INTERROGATION_REQUIRED}: ${input.finding_id} — ${input.question}`,
|
|
140
|
+
remediation: input.remediation,
|
|
141
|
+
});
|
|
124
142
|
}
|
|
125
143
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,11 @@ export declare const GXT_ERROR: {
|
|
|
24
24
|
readonly INVALID_ARGUMENT: "GXT_INVALID_ARGUMENT";
|
|
25
25
|
readonly MCP_WRITE_DENIED: "GXT_MCP_WRITE_DENIED";
|
|
26
26
|
readonly PLANNER_STAMP_UNSIGNED: "GXT_PLANNER_STAMP_UNSIGNED";
|
|
27
|
+
readonly INTERROGATION_STUB: "GXT_INTERROGATION_STUB";
|
|
28
|
+
readonly INTERROGATION_MISMATCH: "GXT_INTERROGATION_MISMATCH";
|
|
29
|
+
readonly INTERROGATION_PATH_DRIFT: "GXT_INTERROGATION_PATH_DRIFT";
|
|
30
|
+
readonly INTERROGATION_REQUIRED: "GXT_INTERROGATION_REQUIRED";
|
|
31
|
+
readonly INTERROGATION_SHALLOW_HISTORY: "GXT_INTERROGATION_SHALLOW_HISTORY";
|
|
27
32
|
};
|
|
28
33
|
export type GxtErrorCode = (typeof GXT_ERROR)[keyof typeof GXT_ERROR];
|
|
29
34
|
/** 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAgCtE,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"}
|
|
@@ -24,6 +24,11 @@ export const GXT_ERROR = {
|
|
|
24
24
|
INVALID_ARGUMENT: "GXT_INVALID_ARGUMENT",
|
|
25
25
|
MCP_WRITE_DENIED: "GXT_MCP_WRITE_DENIED",
|
|
26
26
|
PLANNER_STAMP_UNSIGNED: "GXT_PLANNER_STAMP_UNSIGNED",
|
|
27
|
+
INTERROGATION_STUB: "GXT_INTERROGATION_STUB",
|
|
28
|
+
INTERROGATION_MISMATCH: "GXT_INTERROGATION_MISMATCH",
|
|
29
|
+
INTERROGATION_PATH_DRIFT: "GXT_INTERROGATION_PATH_DRIFT",
|
|
30
|
+
INTERROGATION_REQUIRED: "GXT_INTERROGATION_REQUIRED",
|
|
31
|
+
INTERROGATION_SHALLOW_HISTORY: "GXT_INTERROGATION_SHALLOW_HISTORY",
|
|
27
32
|
};
|
|
28
33
|
const GIT_PROOF_TO_GXT = {
|
|
29
34
|
MISSION_MISSING_MSN: GXT_ERROR.MISSION_UNSTAMPED,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,uBAAuB;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,qBAAqB;IACtC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,uBAAuB,EAAE,6BAA6B;IACtD,mBAAmB,EAAE,yBAAyB;IAC9C,yBAAyB,EAAE,+BAA+B;IAC1D,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,cAAc,EAAE,oBAAoB;IACpC,mBAAmB,EAAE,yBAAyB;IAC9C,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;
|
|
1
|
+
{"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,uBAAuB;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,qBAAqB;IACtC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,uBAAuB,EAAE,6BAA6B;IACtD,mBAAmB,EAAE,yBAAyB;IAC9C,yBAAyB,EAAE,+BAA+B;IAC1D,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,cAAc,EAAE,oBAAoB;IACpC,mBAAmB,EAAE,yBAAyB;IAC9C,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,wBAAwB;IAC5C,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,sBAAsB,EAAE,4BAA4B;IACpD,6BAA6B,EAAE,mCAAmC;CAC1D,CAAC;AAIX,MAAM,gBAAgB,GAAiC;IACrD,mBAAmB,EAAE,SAAS,CAAC,iBAAiB;IAChD,6BAA6B,EAAE,SAAS,CAAC,iBAAiB;IAC1D,cAAc,EAAE,SAAS,CAAC,iBAAiB;IAC3C,qBAAqB,EAAE,SAAS,CAAC,iBAAiB;IAClD,oCAAoC,EAAE,SAAS,CAAC,iBAAiB;IACjE,4BAA4B,EAAE,SAAS,CAAC,iBAAiB;IACzD,eAAe,EAAE,SAAS,CAAC,iBAAiB;IAC5C,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;CACzD,CAAC;AAEF,gEAAgE;AAChE,MAAM,wBAAwB,GAAiC;IAC7D,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,sBAAsB,EAAE,SAAS,CAAC,aAAa;IAC/C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,iBAAiB,EAAE,SAAS,CAAC,WAAW;IACxC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;IAC5C,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;IACxD,iBAAiB,EAAE,SAAS,CAAC,WAAW;IACxC,wBAAwB,EAAE,SAAS,CAAC,aAAa;IACjD,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,wBAAwB,EAAE,SAAS,CAAC,cAAc;IAClD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;IAClD,kBAAkB,EAAE,SAAS,CAAC,aAAa;IAC3C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;IAC5C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;CAC7C,CAAC;AAEF,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC/E,OAAO,SAAS,CAAC,cAAc,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC,mBAAmB,CAAC;IACzE,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAoB,CAAC;IACzD,IAAI,IAAI,IAAI,gBAAgB;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,SAAS,CAAC,aAAa,CAAC;AACjC,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,wBAAwB,CAAC;AACjG,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { InterrogationFinding, InterrogationRow } from "./findings.js";
|
|
2
|
+
export declare const INTERROGATION_STUB_ANSWERS: readonly ["REPLACE_WITH_VERBATIM_QUOTE_FROM_EXECUTOR_LOG_AFTER_EXECUTION", "PENDING_OPERATOR_RESPONSE", "REPLACE_WITH_OPERATOR_ANSWER"];
|
|
3
|
+
export declare function isStubOperatorAnswer(answer: string): boolean;
|
|
4
|
+
export declare function mergeInterrogationAnswers(findings: InterrogationFinding[], rows: InterrogationRow[]): {
|
|
5
|
+
complete: InterrogationRow[];
|
|
6
|
+
unanswered: InterrogationFinding[];
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=answers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answers.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/interrogate/answers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE5E,eAAO,MAAM,0BAA0B,yIAI7B,CAAC;AAEX,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,oBAAoB,EAAE,EAChC,IAAI,EAAE,gBAAgB,EAAE,GACvB;IAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAAC,UAAU,EAAE,oBAAoB,EAAE,CAAA;CAAE,CA2CtE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { LEGISLATE_TRACE_PLACEHOLDER } from "../constants.js";
|
|
2
|
+
import { GantryUserError } from "../errors.js";
|
|
3
|
+
export const INTERROGATION_STUB_ANSWERS = [
|
|
4
|
+
LEGISLATE_TRACE_PLACEHOLDER,
|
|
5
|
+
"PENDING_OPERATOR_RESPONSE",
|
|
6
|
+
"REPLACE_WITH_OPERATOR_ANSWER",
|
|
7
|
+
];
|
|
8
|
+
export function isStubOperatorAnswer(answer) {
|
|
9
|
+
const trimmed = answer.trim();
|
|
10
|
+
if (trimmed.length === 0)
|
|
11
|
+
return true;
|
|
12
|
+
const upper = trimmed.toUpperCase();
|
|
13
|
+
return INTERROGATION_STUB_ANSWERS.some((s) => upper === s.toUpperCase());
|
|
14
|
+
}
|
|
15
|
+
export function mergeInterrogationAnswers(findings, rows) {
|
|
16
|
+
const findingMap = new Map(findings.map((f) => [f.finding_id, f]));
|
|
17
|
+
const answerMap = new Map(rows.map((r) => [r.finding_id, r]));
|
|
18
|
+
const complete = [];
|
|
19
|
+
const unanswered = [];
|
|
20
|
+
for (const finding of findings) {
|
|
21
|
+
const row = answerMap.get(finding.finding_id);
|
|
22
|
+
if (!row || isStubOperatorAnswer(row.operator_answer)) {
|
|
23
|
+
unanswered.push(finding);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (row.kind !== finding.kind) {
|
|
27
|
+
unanswered.push(finding);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (finding.risk_tier === "Tier-3" && (!row.adr_refs || row.adr_refs.length === 0)) {
|
|
31
|
+
unanswered.push(finding);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
complete.push({
|
|
35
|
+
finding_id: finding.finding_id,
|
|
36
|
+
kind: finding.kind,
|
|
37
|
+
question: finding.question,
|
|
38
|
+
hypothesis: finding.hypothesis,
|
|
39
|
+
operator_answer: row.operator_answer.trim(),
|
|
40
|
+
...(row.adr_refs && row.adr_refs.length > 0 ? { adr_refs: [...row.adr_refs] } : {}),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
for (const row of rows) {
|
|
44
|
+
if (!findingMap.has(row.finding_id)) {
|
|
45
|
+
throw new GantryUserError("INVALID_ARGUMENT", `interrogation: unknown finding_id ${row.finding_id}`, undefined, 2);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return { complete, unanswered };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=answers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answers.js","sourceRoot":"","sources":["../../../../src/cli/lib/interrogate/answers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const INTERROGATION_FINDING_KINDS: readonly ["risk_escalation", "forbidden_zone", "undefined_boundary", "missing_test_criteria", "adr_conflict"];
|
|
2
|
+
export type InterrogationFindingKind = (typeof INTERROGATION_FINDING_KINDS)[number];
|
|
3
|
+
/** Severity order: lower index = higher priority for single-question halt. */
|
|
4
|
+
export declare const FINDING_KIND_SEVERITY: readonly InterrogationFindingKind[];
|
|
5
|
+
export interface InterrogationFinding {
|
|
6
|
+
finding_id: string;
|
|
7
|
+
kind: InterrogationFindingKind;
|
|
8
|
+
subject: string;
|
|
9
|
+
question: string;
|
|
10
|
+
hypothesis: string;
|
|
11
|
+
evidence: string;
|
|
12
|
+
risk_tier: string;
|
|
13
|
+
}
|
|
14
|
+
export interface InterrogationRow {
|
|
15
|
+
finding_id: string;
|
|
16
|
+
kind: InterrogationFindingKind;
|
|
17
|
+
question: string;
|
|
18
|
+
hypothesis: string;
|
|
19
|
+
operator_answer: string;
|
|
20
|
+
adr_refs?: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function stableFindingId(kind: string, subject: string): string;
|
|
23
|
+
export declare function compareFindingSeverity(a: InterrogationFindingKind, b: InterrogationFindingKind): number;
|
|
24
|
+
/** Canonical SHA-256 over sorted interrogation rows (wire shape). */
|
|
25
|
+
export declare function interrogationSha256(rows: InterrogationRow[]): string;
|
|
26
|
+
export type PresentedQuestion = Omit<InterrogationFinding, "subject">;
|
|
27
|
+
//# sourceMappingURL=findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/interrogate/findings.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,2BAA2B,+GAM9B,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpF,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,SAAS,wBAAwB,EAMpE,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC,EAAE,wBAAwB,GAAG,MAAM,CAEvG;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAUpE;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC"}
|