@mikeargento/bitgraph-player 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -0
- package/SPEC.md +95 -6
- package/dist/__tests__/check.test.d.ts +2 -0
- package/dist/__tests__/check.test.d.ts.map +1 -0
- package/dist/__tests__/check.test.js +358 -0
- package/dist/__tests__/check.test.js.map +1 -0
- package/dist/__tests__/sig-v2.test.d.ts +2 -0
- package/dist/__tests__/sig-v2.test.d.ts.map +1 -0
- package/dist/__tests__/sig-v2.test.js +266 -0
- package/dist/__tests__/sig-v2.test.js.map +1 -0
- package/dist/check.d.ts +156 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +640 -0
- package/dist/check.js.map +1 -0
- package/dist/cli.js +84 -15
- package/dist/cli.js.map +1 -1
- package/dist/evaluate.d.ts +8 -21
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +93 -2
- package/dist/evaluate.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/play.d.ts +12 -2
- package/dist/play.d.ts.map +1 -1
- package/dist/play.js +39 -4
- package/dist/play.js.map +1 -1
- package/dist/rule.d.ts +0 -13
- package/dist/rule.d.ts.map +1 -1
- package/dist/rule.js +84 -8
- package/dist/rule.js.map +1 -1
- package/dist/sig.d.ts +38 -0
- package/dist/sig.d.ts.map +1 -0
- package/dist/sig.js +154 -0
- package/dist/sig.js.map +1 -0
- package/dist/types.d.ts +21 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/verdict.d.ts +1 -1
- package/dist/verdict.d.ts.map +1 -1
- package/dist/verdict.js +17 -2
- package/dist/verdict.js.map +1 -1
- package/dist-web/verify.html +159 -0
- package/package.json +8 -3
- package/src/__tests__/check.test.ts +417 -0
- package/src/__tests__/fixtures/export-random-043/ethereum-anchors/anchor-after-witness.json +6 -0
- package/src/__tests__/fixtures/export-random-043/ethereum-anchors/anchor-after.json +43 -0
- package/src/__tests__/fixtures/export-random-043/ethereum-anchors/anchor-before-witness.json +6 -0
- package/src/__tests__/fixtures/export-random-043/ethereum-anchors/anchor-before.json +47 -0
- package/src/__tests__/fixtures/export-random-043/proof.json +38 -0
- package/src/__tests__/fixtures/export-random-043/random-043.txt +1 -0
- package/src/__tests__/sig-v2.test.ts +315 -0
- package/src/check.ts +873 -0
- package/src/cli.ts +82 -16
- package/src/evaluate.ts +107 -2
- package/src/index.ts +9 -2
- package/src/play.ts +43 -5
- package/src/rule.ts +93 -9
- package/src/sig.ts +170 -0
- package/src/types.ts +21 -4
- package/src/verdict.ts +18 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* bitgraph-play <rule.json> <bundle> [--out <file>] [--summary]
|
|
5
5
|
* bitgraph-play init <file>... [--out <rule.json>]
|
|
6
|
+
* bitgraph-play check <bundle-or-file>... [--json] [--out <file>]
|
|
6
7
|
*
|
|
7
8
|
* Evaluate: runs a bitgraph-player/1 rule against a proof bundle
|
|
8
9
|
* (directory, .tar, .tar.gz, or .tgz) and writes the verdict JSON to
|
|
@@ -14,9 +15,15 @@
|
|
|
14
15
|
* a placeholder the author must replace — the trust floor has no
|
|
15
16
|
* default, and the scaffolder must not choose it either.
|
|
16
17
|
*
|
|
18
|
+
* Check: reads a bundle (a directory or archive, or a list of files such
|
|
19
|
+
* as a proof.json and the file it records) and reports, in the three
|
|
20
|
+
* values, what the bundle establishes about each recording it holds and
|
|
21
|
+
* what bounds it. Human text on stdout by default; --json for the
|
|
22
|
+
* bitgraph-check/1 report. Offline. See check.ts for the vocabulary.
|
|
23
|
+
*
|
|
17
24
|
* Exit codes: 0 TRUE, 1 FALSE, 2 UNDETERMINED, 3 error (init: 0 or 3).
|
|
18
|
-
* Diagnostics go to stderr; stdout carries the verdict (or skeleton
|
|
19
|
-
* bytes only.
|
|
25
|
+
* Diagnostics go to stderr; stdout carries the verdict (or skeleton, or
|
|
26
|
+
* check report) bytes only.
|
|
20
27
|
*
|
|
21
28
|
* The process exits by setting process.exitCode and returning, never by
|
|
22
29
|
* process.exit(): exiting early would truncate output still draining to
|
|
@@ -24,16 +31,20 @@
|
|
|
24
31
|
*/
|
|
25
32
|
import { createHash } from "node:crypto";
|
|
26
33
|
import { createReadStream, existsSync, writeFileSync } from "node:fs";
|
|
34
|
+
import { readFile, stat } from "node:fs/promises";
|
|
27
35
|
import { basename } from "node:path";
|
|
28
36
|
import { pipeline } from "node:stream/promises";
|
|
37
|
+
import { ingestBundle, ingestEntries } from "@mikeargento/bitgraph-audit";
|
|
38
|
+
import { checkIngest, renderCheckText, serializeCheckReport } from "./check.js";
|
|
29
39
|
import { scaffoldRule } from "./init.js";
|
|
30
40
|
import { play, PlayError } from "./play.js";
|
|
31
41
|
import { RuleError } from "./rule.js";
|
|
32
42
|
function usage() {
|
|
33
43
|
process.stderr.write("usage: bitgraph-play <rule.json> <bundle> [--out <file>] [--summary]\n" +
|
|
34
44
|
" bitgraph-play init <file>... [--out <rule.json>]\n" +
|
|
35
|
-
|
|
36
|
-
"
|
|
45
|
+
" bitgraph-play check <bundle-or-file>... [--json] [--out <file>]\n" +
|
|
46
|
+
' "--" ends option parsing; a rule file literally named "init" or\n' +
|
|
47
|
+
' "check" is evaluated with: bitgraph-play -- init <bundle>\n' +
|
|
37
48
|
" exit codes: 0 TRUE, 1 FALSE, 2 UNDETERMINED, 3 error\n");
|
|
38
49
|
return 3;
|
|
39
50
|
}
|
|
@@ -58,7 +69,7 @@ async function sha256HexOfFile(path) {
|
|
|
58
69
|
return hash.digest("hex");
|
|
59
70
|
}
|
|
60
71
|
function parseArgs(args) {
|
|
61
|
-
const parsed = { positional: [], summary: false };
|
|
72
|
+
const parsed = { positional: [], summary: false, json: false };
|
|
62
73
|
for (let i = 0; i < args.length; i++) {
|
|
63
74
|
const arg = args[i];
|
|
64
75
|
if (arg === "--") {
|
|
@@ -75,6 +86,9 @@ function parseArgs(args) {
|
|
|
75
86
|
else if (arg === "--summary") {
|
|
76
87
|
parsed.summary = true;
|
|
77
88
|
}
|
|
89
|
+
else if (arg === "--json") {
|
|
90
|
+
parsed.json = true;
|
|
91
|
+
}
|
|
78
92
|
else if (arg.startsWith("-")) {
|
|
79
93
|
return undefined;
|
|
80
94
|
}
|
|
@@ -84,9 +98,60 @@ function parseArgs(args) {
|
|
|
84
98
|
}
|
|
85
99
|
return parsed;
|
|
86
100
|
}
|
|
87
|
-
|
|
101
|
+
/**
|
|
102
|
+
* check: one directory or archive path is ingested as a bundle; any other
|
|
103
|
+
* argument list (one or more plain files, or several paths) is ingested
|
|
104
|
+
* in memory as a flat set of entries named by their basenames, so
|
|
105
|
+
* `bitgraph-play check proof.json photo.jpg` works without a folder.
|
|
106
|
+
*/
|
|
107
|
+
async function runCheck(args) {
|
|
88
108
|
if (args.summary)
|
|
89
109
|
return usage();
|
|
110
|
+
const targets = args.positional;
|
|
111
|
+
if (targets.length === 0)
|
|
112
|
+
return usage();
|
|
113
|
+
let ingest;
|
|
114
|
+
try {
|
|
115
|
+
const single = targets.length === 1 ? await stat(targets[0]) : undefined;
|
|
116
|
+
if (single !== undefined && (single.isDirectory() || looksLikeArchive(targets[0]))) {
|
|
117
|
+
ingest = await ingestBundle(targets[0]);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const entries = [];
|
|
121
|
+
for (const target of targets) {
|
|
122
|
+
const info = await stat(target);
|
|
123
|
+
if (info.isDirectory()) {
|
|
124
|
+
// A directory among several arguments: ingest it as its own
|
|
125
|
+
// bundle would be ambiguous, so refuse plainly.
|
|
126
|
+
process.stderr.write(`error: ${target} is a directory; pass one bundle path, or a list of files\n`);
|
|
127
|
+
return 3;
|
|
128
|
+
}
|
|
129
|
+
entries.push({ path: basename(target), open: () => readFile(target).then((b) => new Uint8Array(b)) });
|
|
130
|
+
}
|
|
131
|
+
ingest = await ingestEntries(entries);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
process.stderr.write(`error: cannot read bundle: ${err.message}\n`);
|
|
136
|
+
return 3;
|
|
137
|
+
}
|
|
138
|
+
const report = await checkIngest(ingest);
|
|
139
|
+
const bytes = args.json ? serializeCheckReport(report) : renderCheckText(report);
|
|
140
|
+
if (args.outFile !== undefined) {
|
|
141
|
+
writeFileSync(args.outFile, bytes);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
process.stdout.write(bytes);
|
|
145
|
+
}
|
|
146
|
+
return report.result === "TRUE" ? 0 : report.result === "FALSE" ? 1 : 2;
|
|
147
|
+
}
|
|
148
|
+
function looksLikeArchive(path) {
|
|
149
|
+
const lower = path.toLowerCase();
|
|
150
|
+
return lower.endsWith(".tar") || lower.endsWith(".tar.gz") || lower.endsWith(".tgz");
|
|
151
|
+
}
|
|
152
|
+
async function runInit(args) {
|
|
153
|
+
if (args.summary || args.json)
|
|
154
|
+
return usage();
|
|
90
155
|
const files = args.positional;
|
|
91
156
|
if (files.length === 0)
|
|
92
157
|
return usage();
|
|
@@ -137,7 +202,7 @@ async function runInit(args) {
|
|
|
137
202
|
return 0;
|
|
138
203
|
}
|
|
139
204
|
async function runEvaluate(args) {
|
|
140
|
-
if (args.positional.length !== 2)
|
|
205
|
+
if (args.json || args.positional.length !== 2)
|
|
141
206
|
return usage();
|
|
142
207
|
const [rulePath, bundlePath] = args.positional;
|
|
143
208
|
let result;
|
|
@@ -172,21 +237,25 @@ async function main() {
|
|
|
172
237
|
const argv = process.argv.slice(2);
|
|
173
238
|
// "--" as the first token forces evaluate mode: parseArgs treats
|
|
174
239
|
// everything after it as positional, so a rule file literally named
|
|
175
|
-
// "init" is reachable as `bitgraph-play -- init <bundle>`.
|
|
176
|
-
const
|
|
177
|
-
if (
|
|
240
|
+
// "init" or "check" is reachable as `bitgraph-play -- init <bundle>`.
|
|
241
|
+
const subcommand = argv[0] === "init" || argv[0] === "check" ? argv[0] : undefined;
|
|
242
|
+
if (subcommand !== undefined && existsSync(subcommand)) {
|
|
178
243
|
// Both readings are plausible here; a silent pick would hand a
|
|
179
244
|
// 0.1.1 caller a skeleton with exit 0 where the published contract
|
|
180
245
|
// returned a verdict. Refuse loudly instead.
|
|
181
|
-
process.stderr.write(
|
|
182
|
-
|
|
183
|
-
|
|
246
|
+
process.stderr.write(`error: a file named "${subcommand}" exists here, so this command is ambiguous.\n` +
|
|
247
|
+
` to evaluate it as a rule: bitgraph-play -- ${subcommand} <bundle> (or ./${subcommand})\n` +
|
|
248
|
+
` to run the ${subcommand} subcommand: rename that file or run from another directory\n`);
|
|
184
249
|
return 3;
|
|
185
250
|
}
|
|
186
|
-
const parsed = parseArgs(
|
|
251
|
+
const parsed = parseArgs(subcommand !== undefined ? argv.slice(1) : argv);
|
|
187
252
|
if (parsed === undefined)
|
|
188
253
|
return usage();
|
|
189
|
-
|
|
254
|
+
if (subcommand === "init")
|
|
255
|
+
return runInit(parsed);
|
|
256
|
+
if (subcommand === "check")
|
|
257
|
+
return runCheck(parsed);
|
|
258
|
+
return runEvaluate(parsed);
|
|
190
259
|
}
|
|
191
260
|
main().then((code) => {
|
|
192
261
|
process.exitCode = code;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,qFAAqF;AAErF
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/evaluate.d.ts
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The evaluator: walks the claim tree over resolved recordings and the
|
|
3
|
-
* ordering adapter, under strong Kleene semantics.
|
|
4
|
-
*
|
|
5
|
-
* Deliberate properties:
|
|
6
|
-
*
|
|
7
|
-
* - FULL WALK, no short-circuit. Every sub-claim is evaluated and recorded
|
|
8
|
-
* so the verdict is a complete replayable trace, not just an outcome.
|
|
9
|
-
*
|
|
10
|
-
* - CLOSED WORLD, scoped to the cast. An absent OPTIONAL role is a
|
|
11
|
-
* definite absence within the declared universe: positive claims about
|
|
12
|
-
* it are FALSE, so negatives over it hold. An absent REQUIRED role, an
|
|
13
|
-
* ambiguous role, and a role the cast never declared are UNDETERMINED —
|
|
14
|
-
* the evidence does not decide, and saying FALSE would be a lie.
|
|
15
|
-
*
|
|
16
|
-
* - THE FLOOR GATES EVIDENCE, NOT POLARITY. When an ordering answer rests
|
|
17
|
-
* on a tier below requires.ordering, the answer is UNDETERMINED whether
|
|
18
|
-
* it would have been TRUE or FALSE: the rule author said not to trust
|
|
19
|
-
* that evidence in either direction.
|
|
20
|
-
*/
|
|
21
1
|
import type { AuditResult } from "@mikeargento/bitgraph-audit";
|
|
22
2
|
import type { DerivedStep, EvidenceTier, Resolution, Rule, ThreeValued } from "./types.js";
|
|
23
3
|
export interface Evaluation {
|
|
@@ -26,5 +6,12 @@ export interface Evaluation {
|
|
|
26
6
|
/** Weakest tier among ordering answers that actually decided a step. */
|
|
27
7
|
weakestEvidence?: EvidenceTier;
|
|
28
8
|
}
|
|
29
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Signature evidence for format-2 signedBy claims: candidate file bytes
|
|
11
|
+
* keyed by lowercase hex SHA-256. Collected by the caller (play() streams
|
|
12
|
+
* size-capped matched artifacts from the bundle); evaluate() itself stays
|
|
13
|
+
* a pure function over its arguments.
|
|
14
|
+
*/
|
|
15
|
+
export type SigEvidence = ReadonlyMap<string, Uint8Array>;
|
|
16
|
+
export declare function evaluate(rule: Rule, resolutions: Map<string, Resolution>, audit: AuditResult, sigEvidence?: SigEvidence): Evaluation;
|
|
30
17
|
//# sourceMappingURL=evaluate.d.ts.map
|
package/dist/evaluate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,6BAA6B,CAAC;AAM9E,OAAO,KAAK,EAEV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,wEAAwE;IACxE,eAAe,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AA2Q1D,wBAAgB,QAAQ,CACtB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACpC,KAAK,EAAE,WAAW,EAClB,WAAW,GAAE,WAAuB,GACnC,UAAU,CAkBZ"}
|
package/dist/evaluate.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Copyright (c) 2024-2026 Mike Argento. Licensed under the MIT License. See LICENSE.
|
|
2
2
|
import { kleeneAll, kleeneAny, kleeneNot } from "./logic.js";
|
|
3
3
|
import { compare } from "./order.js";
|
|
4
|
+
import { decodeDigestBytes, normalizeDigest } from "./rule.js";
|
|
5
|
+
import { keyObjectFor, parseSigFile, verifySigFile } from "./sig.js";
|
|
4
6
|
import { basisTier, meetsFloor } from "./types.js";
|
|
5
7
|
function positionOf(proof) {
|
|
6
8
|
const out = { proofHash: proof.proofHash };
|
|
@@ -137,9 +139,90 @@ function evalPrecedes(ctx, claim, x, y) {
|
|
|
137
139
|
because,
|
|
138
140
|
});
|
|
139
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* signedBy(role, keyName): TRUE when a valid bitgraph-sig/1 by the named
|
|
144
|
+
* trusted key over the role's digest is present in the supplied evidence;
|
|
145
|
+
* UNDETERMINED otherwise, NEVER FALSE. Absence of a signature from a
|
|
146
|
+
* bundle proves nothing about the world, and `not(signedBy(...))` is
|
|
147
|
+
* therefore permanently UNDETERMINED by the Kleene table.
|
|
148
|
+
*
|
|
149
|
+
* The claim is about BITS, not occurrences: it evaluates against the
|
|
150
|
+
* declared role digest whether or not the role resolved to a recording.
|
|
151
|
+
* Only an undeclared role is UNDETERMINED for want of a digest.
|
|
152
|
+
*/
|
|
153
|
+
function evalSignedBy(ctx, role, keyName) {
|
|
154
|
+
const claim = `signedBy(${role}, ${keyName})`;
|
|
155
|
+
const entry = ctx.rule.cast[role];
|
|
156
|
+
if (entry === undefined) {
|
|
157
|
+
return record(ctx, {
|
|
158
|
+
claim,
|
|
159
|
+
result: "UNDETERMINED",
|
|
160
|
+
because: { reason: `role "${role}" is not declared in the cast` },
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
// parseRule guarantees the key name resolves; guard for direct API use.
|
|
164
|
+
const key = ctx.rule.trustedKeys?.[keyName];
|
|
165
|
+
if (key === undefined) {
|
|
166
|
+
return record(ctx, {
|
|
167
|
+
claim,
|
|
168
|
+
result: "UNDETERMINED",
|
|
169
|
+
because: { reason: `trusted key "${keyName}" is not declared` },
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
if (!ctx.keyObjects.has(keyName))
|
|
173
|
+
ctx.keyObjects.set(keyName, keyObjectFor(key));
|
|
174
|
+
const keyObject = ctx.keyObjects.get(keyName);
|
|
175
|
+
if (keyObject === undefined) {
|
|
176
|
+
return record(ctx, {
|
|
177
|
+
claim,
|
|
178
|
+
result: "UNDETERMINED",
|
|
179
|
+
because: {
|
|
180
|
+
reason: `trusted key "${keyName}" is not decodable as ${key.alg} key material; no signature can verify against it`,
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
const digestB64 = normalizeDigest(entry.digest);
|
|
185
|
+
const targetHex = decodeDigestBytes(digestB64).toString("hex");
|
|
186
|
+
// Deterministic scan: candidates in ascending content-hash order.
|
|
187
|
+
const candidates = [...ctx.sigEvidence.keys()].sort();
|
|
188
|
+
let parsedCount = 0;
|
|
189
|
+
for (const sha256Hex of candidates) {
|
|
190
|
+
const bytes = ctx.sigEvidence.get(sha256Hex);
|
|
191
|
+
const sig = parseSigFile(bytes);
|
|
192
|
+
if (sig === undefined)
|
|
193
|
+
continue;
|
|
194
|
+
parsedCount += 1;
|
|
195
|
+
if (verifySigFile(sig, key, keyObject, targetHex, decodeDigestBytes)) {
|
|
196
|
+
return record(ctx, {
|
|
197
|
+
claim,
|
|
198
|
+
result: "TRUE",
|
|
199
|
+
because: {
|
|
200
|
+
signatureSha256Hex: sha256Hex,
|
|
201
|
+
alg: key.alg,
|
|
202
|
+
keyName,
|
|
203
|
+
over: `sha256:${targetHex}`,
|
|
204
|
+
note: "signature math verified here; that this key belongs to the named party is declared, never derived",
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return record(ctx, {
|
|
210
|
+
claim,
|
|
211
|
+
result: "UNDETERMINED",
|
|
212
|
+
because: {
|
|
213
|
+
reason: `no valid bitgraph-sig/1 by trusted key "${keyName}" over the role digest is present in the ` +
|
|
214
|
+
`supplied evidence (${ctx.sigEvidence.size} candidate file(s), ${parsedCount} parsed as signatures); ` +
|
|
215
|
+
`absence of a signature from a bundle proves nothing`,
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
}
|
|
140
219
|
function evalClaim(ctx, claim) {
|
|
141
220
|
if ("exists" in claim)
|
|
142
221
|
return evalExists(ctx, claim.exists);
|
|
222
|
+
if ("signedBy" in claim) {
|
|
223
|
+
const [role, keyName] = claim.signedBy;
|
|
224
|
+
return evalSignedBy(ctx, role, keyName);
|
|
225
|
+
}
|
|
143
226
|
if ("before" in claim) {
|
|
144
227
|
const [x, y] = claim.before;
|
|
145
228
|
return evalPrecedes(ctx, `before(${x}, ${y})`, x, y);
|
|
@@ -162,8 +245,16 @@ function evalClaim(ctx, claim) {
|
|
|
162
245
|
return kleeneAny(claim.any.map((c) => evalClaim(ctx, c)));
|
|
163
246
|
return kleeneNot(evalClaim(ctx, claim.not));
|
|
164
247
|
}
|
|
165
|
-
export function evaluate(rule, resolutions, audit) {
|
|
166
|
-
const ctx = {
|
|
248
|
+
export function evaluate(rule, resolutions, audit, sigEvidence = new Map()) {
|
|
249
|
+
const ctx = {
|
|
250
|
+
rule,
|
|
251
|
+
resolutions,
|
|
252
|
+
audit,
|
|
253
|
+
steps: [],
|
|
254
|
+
usedTiers: new Set(),
|
|
255
|
+
sigEvidence,
|
|
256
|
+
keyObjects: new Map(),
|
|
257
|
+
};
|
|
167
258
|
const result = evalClaim(ctx, rule.claim);
|
|
168
259
|
const evaluation = { result, steps: ctx.steps };
|
|
169
260
|
if (ctx.usedTiers.has("assumption-dependent")) {
|
package/dist/evaluate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA,qFAAqF;
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,11 +10,14 @@
|
|
|
10
10
|
* evaluation time. It decides; it does not enforce — no field in the rule
|
|
11
11
|
* format is capable of causing an action.
|
|
12
12
|
*/
|
|
13
|
-
export type { CastEntry, CastPin, Claim, DeclaredEntry, DerivedStep, EvidenceTier, OrderBasis, OrderResult, Resolution, Rule, ThreeValued, Verdict, } from "./types.js";
|
|
13
|
+
export type { CastEntry, CastPin, Claim, DeclaredEntry, DerivedStep, EvidenceTier, OrderBasis, OrderResult, Resolution, Rule, RuleFormat, ThreeValued, Verdict, } from "./types.js";
|
|
14
14
|
export { basisTier, meetsFloor } from "./types.js";
|
|
15
|
-
export { parseRule, normalizeDigest, RuleError } from "./rule.js";
|
|
16
|
-
export { play, playAudit, PlayError } from "./play.js";
|
|
15
|
+
export { parseRule, normalizeDigest, decodeDigestBytes, RuleError } from "./rule.js";
|
|
16
|
+
export { play, playAudit, claimUsesSignatures, SIG_EVIDENCE_MAX_BYTES, PlayError } from "./play.js";
|
|
17
17
|
export type { PlayResult, PlayStage } from "./play.js";
|
|
18
|
+
export { parseSigFile, verifySigFile, keyObjectFor, sigMessage } from "./sig.js";
|
|
19
|
+
export type { SigAlg, SigFile, TrustedKey } from "./sig.js";
|
|
20
|
+
export type { SigEvidence } from "./evaluate.js";
|
|
18
21
|
export { scaffoldRule, roleNameForFile, ORDERING_PLACEHOLDER } from "./init.js";
|
|
19
22
|
export type { ScaffoldEntry } from "./init.js";
|
|
20
23
|
export { resolveCast, resolveRole } from "./cast.js";
|
|
@@ -23,4 +26,6 @@ export { kleeneAll, kleeneAny, kleeneNot } from "./logic.js";
|
|
|
23
26
|
export { evaluate } from "./evaluate.js";
|
|
24
27
|
export type { Evaluation } from "./evaluate.js";
|
|
25
28
|
export { buildVerdict, serializeVerdict, playerVersion, PLAYER_VERSION } from "./verdict.js";
|
|
29
|
+
export { checkIngest, buildCheckReport, renderCheckText, serializeCheckReport, KNOWN_ENCLAVE_MEASUREMENTS } from "./check.js";
|
|
30
|
+
export type { CheckReport, CheckRecording, CheckAnchor, CheckLine, CheckBounds, CheckBound, CheckOptions } from "./check.js";
|
|
26
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,SAAS,EACT,OAAO,EACP,KAAK,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,IAAI,EACJ,WAAW,EACX,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,SAAS,EACT,OAAO,EACP,KAAK,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,IAAI,EACJ,UAAU,EACV,WAAW,EACX,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACpG,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjF,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAC9H,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// Copyright (c) 2024-2026 Mike Argento. Licensed under the MIT License. See LICENSE.
|
|
2
2
|
export { basisTier, meetsFloor } from "./types.js";
|
|
3
|
-
export { parseRule, normalizeDigest, RuleError } from "./rule.js";
|
|
4
|
-
export { play, playAudit, PlayError } from "./play.js";
|
|
3
|
+
export { parseRule, normalizeDigest, decodeDigestBytes, RuleError } from "./rule.js";
|
|
4
|
+
export { play, playAudit, claimUsesSignatures, SIG_EVIDENCE_MAX_BYTES, PlayError } from "./play.js";
|
|
5
|
+
export { parseSigFile, verifySigFile, keyObjectFor, sigMessage } from "./sig.js";
|
|
5
6
|
export { scaffoldRule, roleNameForFile, ORDERING_PLACEHOLDER } from "./init.js";
|
|
6
7
|
export { resolveCast, resolveRole } from "./cast.js";
|
|
7
8
|
export { compare } from "./order.js";
|
|
8
9
|
export { kleeneAll, kleeneAny, kleeneNot } from "./logic.js";
|
|
9
10
|
export { evaluate } from "./evaluate.js";
|
|
10
11
|
export { buildVerdict, serializeVerdict, playerVersion, PLAYER_VERSION } from "./verdict.js";
|
|
12
|
+
export { checkIngest, buildCheckReport, renderCheckText, serializeCheckReport, KNOWN_ENCLAVE_MEASUREMENTS } from "./check.js";
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AA8BrF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEpG,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGjF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/play.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AuditResult } from "@mikeargento/bitgraph-audit";
|
|
2
|
-
import type {
|
|
2
|
+
import type { SigEvidence } from "./evaluate.js";
|
|
3
|
+
import type { Claim, Rule, Verdict } from "./types.js";
|
|
3
4
|
export type PlayStage = "rule-read" | "audit";
|
|
4
5
|
export declare class PlayError extends Error {
|
|
5
6
|
readonly stage: PlayStage;
|
|
@@ -14,8 +15,17 @@ export interface PlayResult {
|
|
|
14
15
|
/** The audit the verdict was evaluated over, for callers that want the evidence. */
|
|
15
16
|
audit: AuditResult;
|
|
16
17
|
}
|
|
18
|
+
/** True when the claim tree contains a signedBy claim anywhere. */
|
|
19
|
+
export declare function claimUsesSignatures(claim: Claim): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Ceiling on candidate signature-file bytes retained for signedBy
|
|
22
|
+
* evaluation. Signature files are a few hundred bytes; the cap only
|
|
23
|
+
* exists so a bundle full of large artifacts never inflates memory.
|
|
24
|
+
* A file above the cap is simply not signature evidence.
|
|
25
|
+
*/
|
|
26
|
+
export declare const SIG_EVIDENCE_MAX_BYTES = 1048576;
|
|
17
27
|
/** The pure tail of the pipeline: no filesystem, no network. */
|
|
18
|
-
export declare function playAudit(rule: Rule, ruleSha256Hex: string, audit: AuditResult): PlayResult;
|
|
28
|
+
export declare function playAudit(rule: Rule, ruleSha256Hex: string, audit: AuditResult, sigEvidence?: SigEvidence): PlayResult;
|
|
19
29
|
/**
|
|
20
30
|
* Evaluate a rule file against a bundle (directory, .tar, .tar.gz, or
|
|
21
31
|
* .tgz). Offline past the filesystem reads; throws RuleError or PlayError.
|
package/dist/play.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play.d.ts","sourceRoot":"","sources":["../src/play.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"play.d.ts","sourceRoot":"","sources":["../src/play.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAE9C,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;gBACd,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAK9D;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,oFAAoF;IACpF,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAMzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,UAAY,CAAC;AAEhD,gEAAgE;AAChE,wBAAgB,SAAS,CACvB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,WAAW,EAClB,WAAW,GAAE,WAAuB,GACnC,UAAU,CAMZ;AAED;;;GAGG;AACH,wBAAsB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAgCpF"}
|
package/dist/play.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { createHash } from "node:crypto";
|
|
16
16
|
import { readFileSync } from "node:fs";
|
|
17
|
-
import { runAudit } from "@mikeargento/bitgraph-audit";
|
|
17
|
+
import { runAudit, streamMatchedArtifacts } from "@mikeargento/bitgraph-audit";
|
|
18
18
|
import { resolveCast } from "./cast.js";
|
|
19
19
|
import { evaluate } from "./evaluate.js";
|
|
20
20
|
import { parseRule } from "./rule.js";
|
|
@@ -27,10 +27,29 @@ export class PlayError extends Error {
|
|
|
27
27
|
this.stage = stage;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
+
/** True when the claim tree contains a signedBy claim anywhere. */
|
|
31
|
+
export function claimUsesSignatures(claim) {
|
|
32
|
+
if ("signedBy" in claim)
|
|
33
|
+
return true;
|
|
34
|
+
if ("all" in claim)
|
|
35
|
+
return claim.all.some(claimUsesSignatures);
|
|
36
|
+
if ("any" in claim)
|
|
37
|
+
return claim.any.some(claimUsesSignatures);
|
|
38
|
+
if ("not" in claim)
|
|
39
|
+
return claimUsesSignatures(claim.not);
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Ceiling on candidate signature-file bytes retained for signedBy
|
|
44
|
+
* evaluation. Signature files are a few hundred bytes; the cap only
|
|
45
|
+
* exists so a bundle full of large artifacts never inflates memory.
|
|
46
|
+
* A file above the cap is simply not signature evidence.
|
|
47
|
+
*/
|
|
48
|
+
export const SIG_EVIDENCE_MAX_BYTES = 1_048_576;
|
|
30
49
|
/** The pure tail of the pipeline: no filesystem, no network. */
|
|
31
|
-
export function playAudit(rule, ruleSha256Hex, audit) {
|
|
50
|
+
export function playAudit(rule, ruleSha256Hex, audit, sigEvidence = new Map()) {
|
|
32
51
|
const resolutions = resolveCast(rule.cast, audit);
|
|
33
|
-
const evaluation = evaluate(rule, resolutions, audit);
|
|
52
|
+
const evaluation = evaluate(rule, resolutions, audit, sigEvidence);
|
|
34
53
|
const verdict = buildVerdict(rule, ruleSha256Hex, resolutions, evaluation, audit);
|
|
35
54
|
const exitCode = evaluation.result === "TRUE" ? 0 : evaluation.result === "FALSE" ? 1 : 2;
|
|
36
55
|
return { verdict, bytes: serializeVerdict(verdict), exitCode, audit };
|
|
@@ -56,6 +75,22 @@ export async function play(rulePath, bundlePath) {
|
|
|
56
75
|
catch (err) {
|
|
57
76
|
throw new PlayError("audit", `bundle audit failed: ${err.message}`, err);
|
|
58
77
|
}
|
|
59
|
-
|
|
78
|
+
// Format 2 with signature claims: candidate evidence is every RECORDED
|
|
79
|
+
// artifact in the bundle (matched to a proof), size-capped. A signature
|
|
80
|
+
// that was never recorded can still be supplied to playAudit directly
|
|
81
|
+
// by an embedder; the reference CLI evaluates recorded evidence, which
|
|
82
|
+
// is what a Titles thread produces by construction.
|
|
83
|
+
let sigEvidence;
|
|
84
|
+
if (rule.rule === "bitgraph-player/2" && claimUsesSignatures(rule.claim)) {
|
|
85
|
+
const collected = new Map();
|
|
86
|
+
for await (const matched of streamMatchedArtifacts(audit.ingest)) {
|
|
87
|
+
if (matched.bytes.length > SIG_EVIDENCE_MAX_BYTES)
|
|
88
|
+
continue;
|
|
89
|
+
if (!collected.has(matched.sha256Hex))
|
|
90
|
+
collected.set(matched.sha256Hex, matched.bytes);
|
|
91
|
+
}
|
|
92
|
+
sigEvidence = collected;
|
|
93
|
+
}
|
|
94
|
+
return playAudit(rule, ruleSha256Hex, audit, sigEvidence);
|
|
60
95
|
}
|
|
61
96
|
//# sourceMappingURL=play.js.map
|