@gate-forge/core 0.4.0 → 0.6.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.
Files changed (94) hide show
  1. package/dist/baselines/index.js +1 -1
  2. package/dist/baselines/index.js.map +1 -1
  3. package/dist/config/index.d.ts +2 -1
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +7 -0
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/fingerprints.d.ts +35 -4
  8. package/dist/fingerprints.d.ts.map +1 -1
  9. package/dist/fingerprints.js +58 -5
  10. package/dist/fingerprints.js.map +1 -1
  11. package/dist/index.d.ts +32 -10
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +29 -9
  14. package/dist/index.js.map +1 -1
  15. package/dist/mapping/resolve.d.ts +6 -2
  16. package/dist/mapping/resolve.d.ts.map +1 -1
  17. package/dist/mapping/resolve.js +122 -17
  18. package/dist/mapping/resolve.js.map +1 -1
  19. package/dist/policy/behavior.d.ts +44 -0
  20. package/dist/policy/behavior.d.ts.map +1 -0
  21. package/dist/policy/behavior.js +373 -0
  22. package/dist/policy/behavior.js.map +1 -0
  23. package/dist/policy/coverage.d.ts +4 -3
  24. package/dist/policy/coverage.d.ts.map +1 -1
  25. package/dist/policy/coverage.js +12 -6
  26. package/dist/policy/coverage.js.map +1 -1
  27. package/dist/policy/evaluate.d.ts +19 -0
  28. package/dist/policy/evaluate.d.ts.map +1 -1
  29. package/dist/policy/index.d.ts +1 -0
  30. package/dist/policy/index.d.ts.map +1 -1
  31. package/dist/policy/index.js +1 -0
  32. package/dist/policy/index.js.map +1 -1
  33. package/dist/receipt/index.d.ts +56 -4
  34. package/dist/receipt/index.d.ts.map +1 -1
  35. package/dist/receipt/index.js +139 -5
  36. package/dist/receipt/index.js.map +1 -1
  37. package/dist/report/index.js +4 -19
  38. package/dist/report/index.js.map +1 -1
  39. package/dist/schemas/behavior-catalog.d.ts +2868 -0
  40. package/dist/schemas/behavior-catalog.d.ts.map +1 -0
  41. package/dist/schemas/behavior-catalog.js +103 -0
  42. package/dist/schemas/behavior-catalog.js.map +1 -0
  43. package/dist/schemas/behavior-evidence.d.ts +174 -0
  44. package/dist/schemas/behavior-evidence.d.ts.map +1 -0
  45. package/dist/schemas/behavior-evidence.js +157 -0
  46. package/dist/schemas/behavior-evidence.js.map +1 -0
  47. package/dist/schemas/behavior-policy.d.ts +6214 -0
  48. package/dist/schemas/behavior-policy.d.ts.map +1 -0
  49. package/dist/schemas/behavior-policy.js +896 -0
  50. package/dist/schemas/behavior-policy.js.map +1 -0
  51. package/dist/schemas/execution-result.d.ts +4 -4
  52. package/dist/schemas/gate-receipt.d.ts +10 -3
  53. package/dist/schemas/gate-receipt.d.ts.map +1 -1
  54. package/dist/schemas/gate-receipt.js +46 -3
  55. package/dist/schemas/gate-receipt.js.map +1 -1
  56. package/dist/schemas/index.d.ts +3 -0
  57. package/dist/schemas/index.d.ts.map +1 -1
  58. package/dist/schemas/index.js +3 -0
  59. package/dist/schemas/index.js.map +1 -1
  60. package/dist/schemas/obligation.d.ts +1 -0
  61. package/dist/schemas/obligation.d.ts.map +1 -1
  62. package/dist/schemas/obligation.js +9 -0
  63. package/dist/schemas/obligation.js.map +1 -1
  64. package/dist/schemas/test-catalog.d.ts +20 -2
  65. package/dist/schemas/test-catalog.d.ts.map +1 -1
  66. package/dist/schemas/test-catalog.js +13 -0
  67. package/dist/schemas/test-catalog.js.map +1 -1
  68. package/dist/schemas/test-map.d.ts +4 -0
  69. package/dist/schemas/test-map.d.ts.map +1 -1
  70. package/dist/schemas/test-map.js +24 -1
  71. package/dist/schemas/test-map.js.map +1 -1
  72. package/dist/schemas/verdict.d.ts +9 -0
  73. package/dist/schemas/verdict.d.ts.map +1 -1
  74. package/dist/schemas/verdict.js +27 -6
  75. package/dist/schemas/verdict.js.map +1 -1
  76. package/dist/testing/gate-runner.d.ts.map +1 -1
  77. package/dist/testing/gate-runner.js +2 -7
  78. package/dist/testing/gate-runner.js.map +1 -1
  79. package/dist/verdict/behavior.d.ts +87 -0
  80. package/dist/verdict/behavior.d.ts.map +1 -0
  81. package/dist/verdict/behavior.js +1328 -0
  82. package/dist/verdict/behavior.js.map +1 -0
  83. package/dist/verdict/evaluate.d.ts +10 -0
  84. package/dist/verdict/evaluate.d.ts.map +1 -1
  85. package/dist/verdict/evaluate.js +188 -27
  86. package/dist/verdict/evaluate.js.map +1 -1
  87. package/dist/verdict/index.d.ts +6 -0
  88. package/dist/verdict/index.d.ts.map +1 -1
  89. package/dist/verdict/index.js +6 -0
  90. package/dist/verdict/index.js.map +1 -1
  91. package/dist/verdict/pack-verifiers.d.ts.map +1 -1
  92. package/dist/verdict/pack-verifiers.js +124 -33
  93. package/dist/verdict/pack-verifiers.js.map +1 -1
  94. package/package.json +1 -1
@@ -1,13 +1,51 @@
1
+ import { type JsonValue } from '../canonical-json.js';
1
2
  import { type GateReceipt } from '../schemas/gate-receipt.js';
3
+ import { EMPTY_BEHAVIOR_CATALOG_DIGEST } from '../policy/behavior.js';
2
4
  /** Domain tag binding receipt MACs to the gate-receipt envelope format. */
3
- export declare const RECEIPT_DOMAIN = "gateforge.receipt.v1";
5
+ export declare const RECEIPT_DOMAIN = "gateforge.receipt.v2";
4
6
  /** The only receipt envelope version this code produces or honors. */
5
- export declare const RECEIPT_VERSION = 1;
7
+ export declare const RECEIPT_VERSION = 2;
6
8
  /** The unsigned receipt body (everything the MAC covers). */
7
9
  export type GateReceiptBody = Omit<GateReceipt, 'mac'>;
10
+ /** Canonical digest for an empty required-case set (never an omitted field). */
11
+ export declare const EMPTY_REQUIRED_CASE_SET_DIGEST: string;
12
+ /** Canonical digest when the sealed run executed no behavior cases. */
13
+ export declare const EMPTY_CASE_EXECUTION_DIGEST: string;
14
+ /** Execution profile identifying a local, unisolated run (never managed acceptance). */
15
+ export declare const LOCAL_UNISOLATED_BOUNDARY = "local-unisolated";
16
+ /**
17
+ * Hashes the sorted full required case specifications (not just stable
18
+ * case ids) into the receipt-bound required-case-set digest.
19
+ */
20
+ export declare function requiredCaseSetDigestOf(specifications: readonly JsonValue[]): string;
21
+ /**
22
+ * Hashes the sorted executed case ids into the receipt-bound
23
+ * case-execution digest.
24
+ */
25
+ export declare function caseExecutionDigestOf(caseIds: readonly string[]): string;
26
+ /**
27
+ * Binds the approved engine bundle: engine version plus the trusted
28
+ * policy digest of the bundle it ran with.
29
+ */
30
+ export declare function engineBundleDigestOf(engineVersion: string, trustedPolicyDigest: string): string;
31
+ /**
32
+ * Binds the controller-issued record of the active execution profile.
33
+ * Local runs seal `local-unisolated`; that record cannot authorize a
34
+ * managed/complete protected acceptance.
35
+ */
36
+ export declare function executionBoundaryDigestOf(profile: string): string;
37
+ /** Digest of the local-unisolated execution boundary (the only local value). */
38
+ export declare const LOCAL_UNISOLATED_BOUNDARY_DIGEST: string;
39
+ /**
40
+ * Binds the controlled app artifact derived from the candidate tree.
41
+ * Local runs build nothing separate: the artifact IS the source tree
42
+ * (explicit kind, never a self-reported app header).
43
+ */
44
+ export declare function targetArtifactDigestOf(candidateTreeId: string | null): string;
45
+ export { EMPTY_BEHAVIOR_CATALOG_DIGEST };
8
46
  /**
9
47
  * Computes the receipt MAC (ADR 0005 D3): HMAC-SHA256 over the GF-canonical
10
- * JSON of `{domain: 'gateforge.receipt.v1', receiptVersion: 1, ...body}`
48
+ * JSON of `{domain: 'gateforge.receipt.v2', receiptVersion: 2, ...body}`
11
49
  * keyed by the witness verifier key — the same secret the tested suite
12
50
  * never receives for ledger attestations. The fixed domain tag prevents
13
51
  * cross-format signature acceptance in BOTH directions: a v2 ledger MAC
@@ -26,7 +64,7 @@ export type GateReceiptBody = Omit<GateReceipt, 'mac'>;
26
64
  */
27
65
  export declare function gateReceiptMac(verifierKey: string, body: GateReceiptBody): string;
28
66
  /** Typed reasons a receipt candidate failed verification (fail closed). */
29
- export type ReceiptRejection = 'missing' | 'malformed' | 'mac-fail' | 'input-digest-mismatch' | 'policy-digest-mismatch' | 'selection-digest-mismatch' | 'catalog-digest-mismatch' | 'execution-digest-mismatch' | 'attestation-digest-mismatch' | 'not-clean';
67
+ export type ReceiptRejection = 'missing' | 'malformed' | 'mac-fail' | 'input-digest-mismatch' | 'policy-digest-mismatch' | 'selection-digest-mismatch' | 'catalog-digest-mismatch' | 'execution-digest-mismatch' | 'attestation-digest-mismatch' | 'tree-mismatch' | 'behavior-digest-mismatch' | 'case-set-mismatch' | 'case-execution-mismatch' | 'engine-bundle-mismatch' | 'boundary-mismatch' | 'artifact-mismatch' | 'not-clean';
30
68
  /** The verification outcome: a validated receipt or a typed rejection. */
31
69
  export type ReceiptVerification = {
32
70
  ok: true;
@@ -61,6 +99,13 @@ export declare function verifyGateReceipt(verifierKey: string, candidate: unknow
61
99
  catalogDigest?: string;
62
100
  executionResultDigest?: string;
63
101
  evidenceAttestationDigest?: string | null;
102
+ candidateTreeId?: string | null;
103
+ behaviorCatalogDigest?: string;
104
+ requiredCaseSetDigest?: string;
105
+ caseExecutionDigest?: string;
106
+ engineBundleDigest?: string;
107
+ executionBoundaryDigest?: string;
108
+ targetArtifactDigest?: string;
64
109
  }): ReceiptVerification;
65
110
  /** The expected-digest shape of {@link verifyGateReceipt} (named for docs). */
66
111
  export interface ReceiptVerificationExpectations {
@@ -70,5 +115,12 @@ export interface ReceiptVerificationExpectations {
70
115
  catalogDigest?: string;
71
116
  executionResultDigest?: string;
72
117
  evidenceAttestationDigest?: string | null;
118
+ candidateTreeId?: string | null;
119
+ behaviorCatalogDigest?: string;
120
+ requiredCaseSetDigest?: string;
121
+ caseExecutionDigest?: string;
122
+ engineBundleDigest?: string;
123
+ executionBoundaryDigest?: string;
124
+ targetArtifactDigest?: string;
73
125
  }
74
126
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/receipt/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEjF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD,sEAAsE;AACtE,eAAO,MAAM,eAAe,IAAI,CAAC;AAKjC,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,CAYjF;AAED,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,WAAW,GACX,UAAU,GACV,uBAAuB,GACvB,wBAAwB,GACxB,2BAA2B,GAC3B,yBAAyB,GACzB,2BAA2B,GAC3B,6BAA6B,GAC7B,WAAW,CAAC;AAEhB,0EAA0E;AAC1E,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,GACL,mBAAmB,CAuFrB;AAED,+EAA+E;AAC/E,MAAM,WAAW,+BAA+B;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/receipt/index.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * reusing the exact provenance primitives (`createHmac`, `canonicalJson`,
6
6
  * constant-time compare). No second, weaker evidence system exists here:
7
7
  * a receipt without a verifying MAC is rejected, and the MAC domain
8
- * (`gateforge.receipt.v1`) is distinct from the ledger attestation domain,
8
+ * (`gateforge.receipt.v2`) is distinct from the ledger attestation domain,
9
9
  * so neither envelope can ever verify as the other.
10
10
  *
11
11
  * Issuance rule (plan Phase 4 item 5): a receipt is minted ONLY after
@@ -14,17 +14,92 @@
14
14
  * rejection, never a partial pass.
15
15
  */
16
16
  import { createHmac, timingSafeEqual } from 'node:crypto';
17
- import { canonicalJson } from '../canonical-json.js';
17
+ import { canonicalJson, sha256Canonical } from '../canonical-json.js';
18
18
  import { GateReceiptSchema } from '../schemas/gate-receipt.js';
19
+ import { EMPTY_BEHAVIOR_CATALOG_DIGEST } from '../policy/behavior.js';
19
20
  /** Domain tag binding receipt MACs to the gate-receipt envelope format. */
20
- export const RECEIPT_DOMAIN = 'gateforge.receipt.v1';
21
+ export const RECEIPT_DOMAIN = 'gateforge.receipt.v2';
21
22
  /** The only receipt envelope version this code produces or honors. */
22
- export const RECEIPT_VERSION = 1;
23
+ export const RECEIPT_VERSION = 2;
23
24
  /** Shape a 64-char lowercase hex MAC must have. */
24
25
  const MAC_PATTERN = /^[0-9a-f]{64}$/;
26
+ /** Canonical digest for an empty required-case set (never an omitted field). */
27
+ export const EMPTY_REQUIRED_CASE_SET_DIGEST = sha256Canonical({
28
+ domain: 'gateforge.required-cases.v1',
29
+ specifications: [],
30
+ });
31
+ /** Canonical digest when the sealed run executed no behavior cases. */
32
+ export const EMPTY_CASE_EXECUTION_DIGEST = sha256Canonical({
33
+ domain: 'gateforge.case-execution.v1',
34
+ executions: [],
35
+ });
36
+ /** Execution profile identifying a local, unisolated run (never managed acceptance). */
37
+ export const LOCAL_UNISOLATED_BOUNDARY = 'local-unisolated';
38
+ /**
39
+ * Hashes the sorted full required case specifications (not just stable
40
+ * case ids) into the receipt-bound required-case-set digest.
41
+ */
42
+ export function requiredCaseSetDigestOf(specifications) {
43
+ if (specifications.length === 0)
44
+ return EMPTY_REQUIRED_CASE_SET_DIGEST;
45
+ return sha256Canonical({
46
+ domain: 'gateforge.required-cases.v1',
47
+ specifications: [...specifications].sort((a, b) => {
48
+ const left = JSON.stringify(a);
49
+ const right = JSON.stringify(b);
50
+ return left < right ? -1 : left > right ? 1 : 0;
51
+ }),
52
+ });
53
+ }
54
+ /**
55
+ * Hashes the sorted executed case ids into the receipt-bound
56
+ * case-execution digest.
57
+ */
58
+ export function caseExecutionDigestOf(caseIds) {
59
+ if (caseIds.length === 0)
60
+ return EMPTY_CASE_EXECUTION_DIGEST;
61
+ return sha256Canonical({
62
+ domain: 'gateforge.case-execution.v1',
63
+ executions: [...new Set(caseIds)].sort(),
64
+ });
65
+ }
66
+ /**
67
+ * Binds the approved engine bundle: engine version plus the trusted
68
+ * policy digest of the bundle it ran with.
69
+ */
70
+ export function engineBundleDigestOf(engineVersion, trustedPolicyDigest) {
71
+ return sha256Canonical({
72
+ domain: 'gateforge.engine-bundle.v1',
73
+ engineVersion,
74
+ trustedPolicyDigest,
75
+ });
76
+ }
77
+ /**
78
+ * Binds the controller-issued record of the active execution profile.
79
+ * Local runs seal `local-unisolated`; that record cannot authorize a
80
+ * managed/complete protected acceptance.
81
+ */
82
+ export function executionBoundaryDigestOf(profile) {
83
+ return sha256Canonical({ domain: 'gateforge.execution-boundary.v1', profile });
84
+ }
85
+ /** Digest of the local-unisolated execution boundary (the only local value). */
86
+ export const LOCAL_UNISOLATED_BOUNDARY_DIGEST = executionBoundaryDigestOf(LOCAL_UNISOLATED_BOUNDARY);
87
+ /**
88
+ * Binds the controlled app artifact derived from the candidate tree.
89
+ * Local runs build nothing separate: the artifact IS the source tree
90
+ * (explicit kind, never a self-reported app header).
91
+ */
92
+ export function targetArtifactDigestOf(candidateTreeId) {
93
+ return sha256Canonical({
94
+ domain: 'gateforge.target-artifact.v1',
95
+ kind: 'source-tree',
96
+ tree: candidateTreeId,
97
+ });
98
+ }
99
+ export { EMPTY_BEHAVIOR_CATALOG_DIGEST };
25
100
  /**
26
101
  * Computes the receipt MAC (ADR 0005 D3): HMAC-SHA256 over the GF-canonical
27
- * JSON of `{domain: 'gateforge.receipt.v1', receiptVersion: 1, ...body}`
102
+ * JSON of `{domain: 'gateforge.receipt.v2', receiptVersion: 2, ...body}`
28
103
  * keyed by the witness verifier key — the same secret the tested suite
29
104
  * never receives for ledger attestations. The fixed domain tag prevents
30
105
  * cross-format signature acceptance in BOTH directions: a v2 ledger MAC
@@ -74,6 +149,16 @@ export function verifyGateReceipt(verifierKey, candidate, expected = {}) {
74
149
  if (candidate === undefined || candidate === null) {
75
150
  return { ok: false, rejection: 'missing', detail: 'gate receipt is missing' };
76
151
  }
152
+ if (typeof candidate === 'object' &&
153
+ candidate !== null &&
154
+ candidate['receiptVersion'] === 1) {
155
+ return {
156
+ ok: false,
157
+ rejection: 'malformed',
158
+ detail: 'gate receipt is receiptVersion 1, which is no longer accepted — rerun the gate to seal a ' +
159
+ 'fresh receiptVersion 2 receipt (old receipts are never re-signed or auto-upgraded)',
160
+ };
161
+ }
77
162
  const parsed = GateReceiptSchema.safeParse(candidate);
78
163
  if (!parsed.success) {
79
164
  const issue = parsed.error.issues[0];
@@ -127,6 +212,55 @@ export function verifyGateReceipt(verifierKey, candidate, expected = {}) {
127
212
  rejection: 'attestation-digest-mismatch',
128
213
  label: 'evidence attestation digest',
129
214
  },
215
+ {
216
+ field: 'candidateTreeId',
217
+ receiptValue: receipt.candidateTreeId,
218
+ expectedValue: expected.candidateTreeId,
219
+ rejection: 'tree-mismatch',
220
+ label: 'candidate tree id',
221
+ },
222
+ {
223
+ field: 'behaviorCatalogDigest',
224
+ receiptValue: receipt.behaviorCatalogDigest,
225
+ expectedValue: expected.behaviorCatalogDigest,
226
+ rejection: 'behavior-digest-mismatch',
227
+ label: 'behavior catalog digest',
228
+ },
229
+ {
230
+ field: 'requiredCaseSetDigest',
231
+ receiptValue: receipt.requiredCaseSetDigest,
232
+ expectedValue: expected.requiredCaseSetDigest,
233
+ rejection: 'case-set-mismatch',
234
+ label: 'required case set digest',
235
+ },
236
+ {
237
+ field: 'caseExecutionDigest',
238
+ receiptValue: receipt.caseExecutionDigest,
239
+ expectedValue: expected.caseExecutionDigest,
240
+ rejection: 'case-execution-mismatch',
241
+ label: 'case execution digest',
242
+ },
243
+ {
244
+ field: 'engineBundleDigest',
245
+ receiptValue: receipt.engineBundleDigest,
246
+ expectedValue: expected.engineBundleDigest,
247
+ rejection: 'engine-bundle-mismatch',
248
+ label: 'engine bundle digest',
249
+ },
250
+ {
251
+ field: 'executionBoundaryDigest',
252
+ receiptValue: receipt.executionBoundaryDigest,
253
+ expectedValue: expected.executionBoundaryDigest,
254
+ rejection: 'boundary-mismatch',
255
+ label: 'execution boundary digest',
256
+ },
257
+ {
258
+ field: 'targetArtifactDigest',
259
+ receiptValue: receipt.targetArtifactDigest,
260
+ expectedValue: expected.targetArtifactDigest,
261
+ rejection: 'artifact-mismatch',
262
+ label: 'target artifact digest',
263
+ },
130
264
  ];
131
265
  for (const check of digestChecks) {
132
266
  if (check.expectedValue === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/receipt/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,4BAA4B,CAAC;AAEjF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAErD,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,mDAAmD;AACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAKrC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,IAAqB;IACvE,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;SACrC,MAAM,CACL,aAAa,CAAC;QACZ,MAAM,EAAE,cAAc;QACtB,GAAG,IAAI;KACR,CAAC,CACH;SACA,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAoBD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAAmB,EACnB,SAAkB,EAClB,WAOI,EAAE;IAEN,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IAChF,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACrF,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,WAAW;YACtB,MAAM,EACJ,yFAAyF;gBACzF,GAAG,IAAI,IAAI,KAAK,EAAE,OAAO,IAAI,sBAAsB,EAAE;SACxD,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAmB,CAAC;IAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACjC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,iEAAiE;SAC1E,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;IACvF,CAAC;IACD,IAAI,WAAmB,CAAC;IACxB,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QACpE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAC;IAClG,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;QAC1F,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,qFAAqF;SAC9F,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAMb;QACH,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,cAAc,EAAE;QAC3J,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,OAAO,CAAC,mBAAmB,EAAE,aAAa,EAAE,QAAQ,CAAC,mBAAmB,EAAE,SAAS,EAAE,wBAAwB,EAAE,KAAK,EAAE,uBAAuB,EAAE;QAC7L,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE,aAAa,EAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,EAAE,2BAA2B,EAAE,KAAK,EAAE,kBAAkB,EAAE;QAC/K,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,yBAAyB,EAAE,KAAK,EAAE,gBAAgB,EAAE;QACrK,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,OAAO,CAAC,qBAAqB,EAAE,aAAa,EAAE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,EAAE,2BAA2B,EAAE,KAAK,EAAE,yBAAyB,EAAE;QACxM;YACE,KAAK,EAAE,2BAA2B;YAClC,YAAY,EAAE,OAAO,CAAC,yBAAyB;YAC/C,aAAa,EAAE,QAAQ,CAAC,yBAAyB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB;YAChH,SAAS,EAAE,6BAA6B;YACxC,KAAK,EAAE,6BAA6B;SACrC;KACF,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;YAAE,SAAS;QAChD,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EACJ,gBAAgB,KAAK,CAAC,KAAK,kCAAkC;oBAC7D,KAAK,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM;oBACzE,8CAA8C;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,WAAW;YACtB,MAAM,EACJ,kDAAkD,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc;gBACvG,+DAA+D;SAClE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/receipt/index.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@
19
19
  * byte-for-byte identically.
20
20
  */
21
21
  import { canonicalJson } from '../canonical-json.js';
22
- import { fingerprint } from '../fingerprints.js';
22
+ import { fingerprintObligation } from '../fingerprints.js';
23
23
  import { compareStrings } from '../graph/util.js';
24
24
  import { BLOCKING_VERDICTS } from '../verdict/index.js';
25
25
  /** The official SARIF 2.1.0 (errata 01) JSON schema location. */
@@ -134,12 +134,7 @@ function jsonReport(entries, options, blocking) {
134
134
  cause: entry.cause ?? null,
135
135
  nextAction: entry.nextAction ?? null,
136
136
  recordIds: entry.recordIds,
137
- fingerprint: fingerprint({
138
- resourceId: entry.obligation.resourceId,
139
- contract: entry.obligation.contract,
140
- policyId: entry.obligation.policyId,
141
- lifecycle: entry.obligation.lifecycle,
142
- }),
137
+ fingerprint: fingerprintObligation(entry.obligation),
143
138
  trustTier: entry.trustTier,
144
139
  };
145
140
  if (entry.detector !== undefined && entry.detector !== null) {
@@ -196,12 +191,7 @@ function sarifReport(entries, options) {
196
191
  : {}),
197
192
  },
198
193
  partialFingerprints: {
199
- gateforgeFingerprint: fingerprint({
200
- resourceId: entry.obligation.resourceId,
201
- contract: entry.obligation.contract,
202
- policyId: entry.obligation.policyId,
203
- lifecycle: entry.obligation.lifecycle,
204
- }),
194
+ gateforgeFingerprint: fingerprintObligation(entry.obligation),
205
195
  },
206
196
  };
207
197
  if (entry.verdict === 'waived') {
@@ -300,12 +290,7 @@ function textReport(entries, options, blocking) {
300
290
  }
301
291
  lines.push(` policy: ${entry.obligation.policyId}`);
302
292
  lines.push(` obligation: ${entry.obligation.id}`);
303
- lines.push(` fingerprint: ${fingerprint({
304
- resourceId: entry.obligation.resourceId,
305
- contract: entry.obligation.contract,
306
- policyId: entry.obligation.policyId,
307
- lifecycle: entry.obligation.lifecycle,
308
- })}`);
293
+ lines.push(` fingerprint: ${fingerprintObligation(entry.obligation)}`);
309
294
  lines.push(` evidence gap: ${entry.reason ?? '<none>'}`);
310
295
  if (entry.cause !== undefined && entry.cause !== null) {
311
296
  lines.push(` cause: ${entry.cause}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"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"}