@jeger-ai/opengantry 3.2.3 → 3.2.5

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.
@@ -4,6 +4,8 @@
4
4
  */
5
5
  export { evaluateScope, evaluateFunctionScope, isPromoteClassFunctionId, type EvaluateScopeInput, type ScopeEvaluationResult, type ScopeEvaluationKind, } from "./lib/kernel-evaluate-scope.js";
6
6
  export { mintVerdictToken, verifyVerdictToken, VERDICT_TOKEN_SCHEMA_VERSION, type VerdictTokenPayload, type MintVerdictTokenInput, type VerifyVerdictTokenInput, } from "./lib/verdict-token.js";
7
+ export { buildVerdictExpectedClaims, verdictClaimsFor, clearVerdictClaimsCache, PASSED_FINDINGS_DIGEST, type VerdictExpectedClaims, } from "./lib/verdict-expected.js";
8
+ export { resolveOrgId } from "./lib/org-export-config.js";
7
9
  export type { VerifyOptions } from "./lib/verify-options.js";
8
10
  export type { VerifyResultPayload } from "./lib/verify-payload.js";
9
11
  export { buildVerifyResultPayload } from "./lib/verify-payload.js";
@@ -17,5 +19,10 @@ export interface VerifyMissionInput {
17
19
  }
18
20
  /** Run full verify phases and return structured JSON payload. */
19
21
  export declare function verifyMission(input: VerifyMissionInput): VerifyResultPayload;
22
+ /** Load manifest + mission for middleware scope checks (no verify run). */
23
+ export declare function loadGovernanceBundle(repoRoot: string, missionRelPath: string): {
24
+ manifest: Manifest;
25
+ mission: ParsedMission;
26
+ };
20
27
  export type { Manifest, ParsedMission };
21
28
  //# sourceMappingURL=kernel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/cli/kernel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAK5E;AAED,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/cli/kernel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAK5E;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;EAK5E;AAED,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
@@ -4,6 +4,8 @@
4
4
  */
5
5
  export { evaluateScope, evaluateFunctionScope, isPromoteClassFunctionId, } from "./lib/kernel-evaluate-scope.js";
6
6
  export { mintVerdictToken, verifyVerdictToken, VERDICT_TOKEN_SCHEMA_VERSION, } from "./lib/verdict-token.js";
7
+ export { buildVerdictExpectedClaims, verdictClaimsFor, clearVerdictClaimsCache, PASSED_FINDINGS_DIGEST, } from "./lib/verdict-expected.js";
8
+ export { resolveOrgId } from "./lib/org-export-config.js";
7
9
  export { buildVerifyResultPayload } from "./lib/verify-payload.js";
8
10
  import { parseMissionFile } from "./lib/missions/parser.js";
9
11
  import { loadManifest } from "./lib/manifest.js";
@@ -15,4 +17,11 @@ export function verifyMission(input) {
15
17
  const options = input.options ?? {};
16
18
  return buildVerifyResultPayload(input.repoRoot, manifest, mission, options);
17
19
  }
20
+ /** Load manifest + mission for middleware scope checks (no verify run). */
21
+ export function loadGovernanceBundle(repoRoot, missionRelPath) {
22
+ return {
23
+ manifest: loadManifest(repoRoot),
24
+ mission: parseMissionFile(repoRoot, missionRelPath),
25
+ };
26
+ }
18
27
  //# sourceMappingURL=kernel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/cli/kernel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,wBAAwB,GAIzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,GAI7B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAQnE,iEAAiE;AACjE,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,OAAO,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/cli/kernel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,wBAAwB,GAIzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,GAI7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GAEvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAQnE,iEAAiE;AACjE,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,OAAO,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,cAAsB;IAC3E,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;QAChC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC;KACpD,CAAC;AACJ,CAAC"}
@@ -4,6 +4,8 @@ export interface OrgExportConfig {
4
4
  pepper: string;
5
5
  pepper_version: number;
6
6
  }
7
+ /** Resolve org_id from env (preferred) or ORG.export.local — no pepper required. */
8
+ export declare function resolveOrgId(root: string): string;
7
9
  /** Resolve org export config from env (preferred) or gitignored local file. */
8
10
  export declare function resolveOrgExportConfig(root: string): OrgExportConfig;
9
11
  //# sourceMappingURL=org-export-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"org-export-config.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/org-export-config.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,EAAG,oCAA6C,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AA2CD,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAkBpE"}
1
+ {"version":3,"file":"org-export-config.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/org-export-config.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,EAAG,oCAA6C,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AA2CD,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYjD;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAkBpE"}
@@ -31,13 +31,22 @@ function loadOrgExportLocal(root) {
31
31
  return {};
32
32
  }
33
33
  }
34
+ /** Resolve org_id from env (preferred) or ORG.export.local — no pepper required. */
35
+ export function resolveOrgId(root) {
36
+ const local = loadOrgExportLocal(root);
37
+ const org_id = process.env.GANTRY_ORG_ID?.trim() || local.org_id;
38
+ if (!org_id) {
39
+ throw new GantryUserError("ORG_ID_MISSING", "org_id required (GANTRY_ORG_ID or ORG.export.local org_id)", `create ${REL_ORG_EXPORT_LOCAL} or set GANTRY_ORG_ID`, 2);
40
+ }
41
+ return org_id;
42
+ }
34
43
  /** Resolve org export config from env (preferred) or gitignored local file. */
35
44
  export function resolveOrgExportConfig(root) {
36
45
  const local = loadOrgExportLocal(root);
37
- const org_id = process.env.GANTRY_ORG_ID?.trim() || local.org_id;
46
+ const org_id = resolveOrgId(root);
38
47
  const pepper = process.env.GANTRY_ORG_PEPPER?.trim() || local.pepper;
39
48
  const pepper_version = parsePepperVersion(process.env.GANTRY_ORG_PEPPER_VERSION ?? String(local.pepper_version ?? 1));
40
- if (!org_id || !pepper) {
49
+ if (!pepper) {
41
50
  throw new GantryUserError("ORG_EXPORT_CONFIG_MISSING", "attestation receipt v0.2.0 requires org export config (GANTRY_ORG_ID + GANTRY_ORG_PEPPER or ORG.export.local)", `create ${REL_ORG_EXPORT_LOCAL} or set env vars (see ADR-0036)`, 2);
42
51
  }
43
52
  return { org_id, pepper, pepper_version };
@@ -1 +1 @@
1
- {"version":3,"file":"org-export-config.js","sourceRoot":"","sources":["../../../src/cli/lib/org-export-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,oCAA6C,CAAC;AAelF,SAAS,kBAAkB,CAAC,GAAuB;IACjD,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,eAAe,CACvB,oBAAoB,EACpB,2CAA2C,EAC3C,SAAS,EACT,CAAC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAuB,CAAC;QAC9E,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;YACrB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE;gBACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAClE,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS;YAC1C,MAAM;YACN,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC;IACrE,MAAM,cAAc,GAAG,kBAAkB,CACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,CAC3E,CAAC;IAEF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,2BAA2B,EAC3B,+GAA+G,EAC/G,UAAU,oBAAoB,iCAAiC,EAC/D,CAAC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"org-export-config.js","sourceRoot":"","sources":["../../../src/cli/lib/org-export-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /** Canonical digest for a passed verify with zero advisory findings. */
2
+ export declare const PASSED_FINDINGS_DIGEST: string;
3
+ export interface VerdictExpectedClaims {
4
+ msn_id: string;
5
+ mission_sha256: string;
6
+ findings_digest: string;
7
+ gate_command: string;
8
+ org_id: string;
9
+ }
10
+ /** Build server-side verdict claims (uncached primitive). */
11
+ export declare function buildVerdictExpectedClaims(repoRoot: string, missionRelPath: string): VerdictExpectedClaims;
12
+ /** Memoized promote-path entry: recomputes when mission or org export file changes. */
13
+ export declare function verdictClaimsFor(repoRoot: string, missionRelPath: string): VerdictExpectedClaims;
14
+ /** Test-only: clear memoization between cases. */
15
+ export declare function clearVerdictClaimsCache(): void;
16
+ //# sourceMappingURL=verdict-expected.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict-expected.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verdict-expected.ts"],"names":[],"mappings":"AAQA,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,QAGnB,CAAC;AAEjB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AA+BD,6DAA6D;AAC7D,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,qBAAqB,CAqBvB;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,qBAAqB,CAgBvB;AAED,kDAAkD;AAClD,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
@@ -0,0 +1,66 @@
1
+ import crypto from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { GantryUserError } from "./errors.js";
5
+ import { parseMissionFile, assertMissionGatePresent } from "./missions/parser.js";
6
+ import { REL_ORG_EXPORT_LOCAL, resolveOrgId } from "./org-export-config.js";
7
+ /** Canonical digest for a passed verify with zero advisory findings. */
8
+ export const PASSED_FINDINGS_DIGEST = crypto
9
+ .createHash("sha256")
10
+ .update("[]", "utf8")
11
+ .digest("hex");
12
+ function sha256File(absPath) {
13
+ return crypto.createHash("sha256").update(fs.readFileSync(absPath)).digest("hex");
14
+ }
15
+ function missionAbsPath(repoRoot, missionRelPath) {
16
+ return path.isAbsolute(missionRelPath) ? missionRelPath : path.join(repoRoot, missionRelPath);
17
+ }
18
+ function orgExportMtimeMs(repoRoot) {
19
+ const abs = path.join(repoRoot, REL_ORG_EXPORT_LOCAL);
20
+ try {
21
+ return fs.statSync(abs).mtimeMs;
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ const claimsCache = new Map();
28
+ function cacheKey(repoRoot, missionRelPath, missionMtimeMs, missionSize, orgMtimeMs) {
29
+ return `${repoRoot}\0${missionRelPath}\0${missionMtimeMs}\0${missionSize}\0${orgMtimeMs ?? ""}`;
30
+ }
31
+ /** Build server-side verdict claims (uncached primitive). */
32
+ export function buildVerdictExpectedClaims(repoRoot, missionRelPath) {
33
+ const missionAbs = missionAbsPath(repoRoot, missionRelPath);
34
+ const mission = parseMissionFile(repoRoot, missionRelPath);
35
+ assertMissionGatePresent(mission);
36
+ const msnId = mission.msnId?.trim();
37
+ if (!msnId) {
38
+ throw new GantryUserError("MISSION_MSN_MISSING", "buildVerdictExpectedClaims: mission msn_id required", missionRelPath, 2);
39
+ }
40
+ const org_id = resolveOrgId(repoRoot);
41
+ return {
42
+ msn_id: msnId,
43
+ mission_sha256: sha256File(missionAbs),
44
+ findings_digest: PASSED_FINDINGS_DIGEST,
45
+ gate_command: mission.gate.command.trim(),
46
+ org_id,
47
+ };
48
+ }
49
+ /** Memoized promote-path entry: recomputes when mission or org export file changes. */
50
+ export function verdictClaimsFor(repoRoot, missionRelPath) {
51
+ const missionAbs = missionAbsPath(repoRoot, missionRelPath);
52
+ const missionStat = fs.statSync(missionAbs);
53
+ const orgMtime = orgExportMtimeMs(repoRoot);
54
+ const key = cacheKey(repoRoot, missionRelPath, missionStat.mtimeMs, missionStat.size, orgMtime);
55
+ const hit = claimsCache.get(key);
56
+ if (hit)
57
+ return hit;
58
+ const claims = buildVerdictExpectedClaims(repoRoot, missionRelPath);
59
+ claimsCache.set(key, claims);
60
+ return claims;
61
+ }
62
+ /** Test-only: clear memoization between cases. */
63
+ export function clearVerdictClaimsCache() {
64
+ claimsCache.clear();
65
+ }
66
+ //# sourceMappingURL=verdict-expected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict-expected.js","sourceRoot":"","sources":["../../../src/cli/lib/verdict-expected.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /** Generated by scripts/gen-version.mjs — do not edit */
2
- export declare const CLI_VERSION = "3.2.3";
2
+ export declare const CLI_VERSION = "3.2.5";
3
3
  export declare const NPM_PACKAGE_NAME = "@jeger-ai/opengantry";
4
4
  //# sourceMappingURL=version.gen.d.ts.map
@@ -1,4 +1,4 @@
1
1
  /** Generated by scripts/gen-version.mjs — do not edit */
2
- export const CLI_VERSION = "3.2.3";
2
+ export const CLI_VERSION = "3.2.5";
3
3
  export const NPM_PACKAGE_NAME = "@jeger-ai/opengantry";
4
4
  //# sourceMappingURL=version.gen.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jeger-ai/opengantry",
3
- "version": "3.2.3",
3
+ "version": "3.2.5",
4
4
  "description": "Open Source Gantry — vendor-neutral GXT substrate and Gantry CLI for local git-native agent governance",
5
5
  "type": "module",
6
6
  "bin": {