@sanning/proof 0.19.0 → 0.19.1
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/case.d.ts +20 -4
- package/dist/case.js +45 -10
- package/dist/cli.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/case.ts +52 -12
- package/src/cli.ts +1 -1
- package/src/index.ts +1 -0
- package/vectors/sandbox-evidence.json +52 -27
package/dist/case.d.ts
CHANGED
|
@@ -243,6 +243,7 @@
|
|
|
243
243
|
*/
|
|
244
244
|
import { type DeclarationRole } from "./declaration.js";
|
|
245
245
|
import { type PackGradeCauseKind, type PackVerdict } from "./grading.js";
|
|
246
|
+
import type { EnvironmentMarker } from "./environment.js";
|
|
246
247
|
import type { SideContentMap } from "./side-content.js";
|
|
247
248
|
/**
|
|
248
249
|
* The verdicts a case can reach. Every one is already in use in
|
|
@@ -991,15 +992,30 @@ export declare const CASE_RELIANCE: Readonly<Record<CaseVerdict, string>>;
|
|
|
991
992
|
*/
|
|
992
993
|
export declare const CASE_RELIANCE_HANDOFF_CLAUSE = "Every hand-off with both sides in this drop is intact.";
|
|
993
994
|
/**
|
|
994
|
-
*
|
|
995
|
-
*
|
|
995
|
+
* The sentence a case reading's reliance line gains where its packs hold an
|
|
996
|
+
* envelope signed `environment: "dev"` (5.5.6, A48), keyed by the environment
|
|
997
|
+
* marker (`environmentMarker`): `dev` where every envelope is signed dev,
|
|
998
|
+
* `mixed` where only some are. Inserted after the line's first sentence, for
|
|
999
|
+
* every verdict word. A drop with no `dev` envelope has no marker and gains
|
|
1000
|
+
* nothing.
|
|
1001
|
+
*/
|
|
1002
|
+
export declare const CASE_RELIANCE_SANDBOX: Readonly<Record<EnvironmentMarker, string>>;
|
|
1003
|
+
/**
|
|
1004
|
+
* What a reader may rely on for one case reading (5.5.6 v1.38, A35 and A48),
|
|
1005
|
+
* byte for byte the text `case_reliance`'s Python sibling returns.
|
|
996
1006
|
*
|
|
997
|
-
* For every word but `verified`
|
|
1007
|
+
* For every word but `verified` the base is `CASE_RELIANCE` unchanged. For
|
|
998
1008
|
* `verified`, the hand-off clause is inserted after the first sentence
|
|
999
1009
|
* where `handoffRecords` is not zero, and left out where it is zero: the
|
|
1000
1010
|
* base sentence never claims a hand-off the drop does not hold.
|
|
1011
|
+
*
|
|
1012
|
+
* Where `environmentMarker` is `dev` or `mixed`, the `CASE_RELIANCE_SANDBOX`
|
|
1013
|
+
* sentence for it is inserted after the first sentence, for every word, so
|
|
1014
|
+
* it directly follows the claim it qualifies (and precedes the hand-off
|
|
1015
|
+
* clause). Where it is null or absent, the text is exactly what it was
|
|
1016
|
+
* before A48.
|
|
1001
1017
|
*/
|
|
1002
|
-
export declare function caseReliance(verdict: CaseVerdict, handoffRecords: number): string;
|
|
1018
|
+
export declare function caseReliance(verdict: CaseVerdict, handoffRecords: number, environmentMarker?: EnvironmentMarker | null): string;
|
|
1003
1019
|
/** The three witness states, and how each is printed (5.5.6, D7). No other. */
|
|
1004
1020
|
export declare const WITNESS_STATES: {
|
|
1005
1021
|
readonly confirmed: "Confirmed on the public record";
|
package/dist/case.js
CHANGED
|
@@ -1854,23 +1854,58 @@ export const CASE_RELIANCE = {
|
|
|
1854
1854
|
*/
|
|
1855
1855
|
export const CASE_RELIANCE_HANDOFF_CLAUSE = "Every hand-off with both sides in this drop is intact.";
|
|
1856
1856
|
/**
|
|
1857
|
-
*
|
|
1858
|
-
*
|
|
1857
|
+
* The sentence a case reading's reliance line gains where its packs hold an
|
|
1858
|
+
* envelope signed `environment: "dev"` (5.5.6, A48), keyed by the environment
|
|
1859
|
+
* marker (`environmentMarker`): `dev` where every envelope is signed dev,
|
|
1860
|
+
* `mixed` where only some are. Inserted after the line's first sentence, for
|
|
1861
|
+
* every verdict word. A drop with no `dev` envelope has no marker and gains
|
|
1862
|
+
* nothing.
|
|
1863
|
+
*/
|
|
1864
|
+
export const CASE_RELIANCE_SANDBOX = {
|
|
1865
|
+
dev: "The records in this drop are sandbox records, signed environment " +
|
|
1866
|
+
"dev: they are not production evidence.",
|
|
1867
|
+
mixed: "Some records in this drop are sandbox records, signed environment " +
|
|
1868
|
+
"dev: those are not production evidence.",
|
|
1869
|
+
};
|
|
1870
|
+
/**
|
|
1871
|
+
* What a reader may rely on for one case reading (5.5.6 v1.38, A35 and A48),
|
|
1872
|
+
* byte for byte the text `case_reliance`'s Python sibling returns.
|
|
1859
1873
|
*
|
|
1860
|
-
* For every word but `verified`
|
|
1874
|
+
* For every word but `verified` the base is `CASE_RELIANCE` unchanged. For
|
|
1861
1875
|
* `verified`, the hand-off clause is inserted after the first sentence
|
|
1862
1876
|
* where `handoffRecords` is not zero, and left out where it is zero: the
|
|
1863
1877
|
* base sentence never claims a hand-off the drop does not hold.
|
|
1878
|
+
*
|
|
1879
|
+
* Where `environmentMarker` is `dev` or `mixed`, the `CASE_RELIANCE_SANDBOX`
|
|
1880
|
+
* sentence for it is inserted after the first sentence, for every word, so
|
|
1881
|
+
* it directly follows the claim it qualifies (and precedes the hand-off
|
|
1882
|
+
* clause). Where it is null or absent, the text is exactly what it was
|
|
1883
|
+
* before A48.
|
|
1864
1884
|
*/
|
|
1865
|
-
export function caseReliance(verdict, handoffRecords) {
|
|
1885
|
+
export function caseReliance(verdict, handoffRecords, environmentMarker = null) {
|
|
1886
|
+
let first;
|
|
1887
|
+
let rest;
|
|
1866
1888
|
if (verdict === "verified" && handoffRecords > 0) {
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
"
|
|
1870
|
-
|
|
1871
|
-
|
|
1889
|
+
first = "Every pack in this drop is genuine, unaltered, and matches its own signed declaration.";
|
|
1890
|
+
rest =
|
|
1891
|
+
"Every hand-off with both sides in this drop is intact. Every record " +
|
|
1892
|
+
"in it was signed by its holder's key. This was read offline, on this " +
|
|
1893
|
+
"device. It does not say this drop holds everything that was recorded.";
|
|
1894
|
+
}
|
|
1895
|
+
else {
|
|
1896
|
+
const base = CASE_RELIANCE[verdict];
|
|
1897
|
+
const cut = base.indexOf(". ");
|
|
1898
|
+
first = base.slice(0, cut + 1);
|
|
1899
|
+
rest = base.slice(cut + 2);
|
|
1872
1900
|
}
|
|
1873
|
-
|
|
1901
|
+
// Only `dev` and `mixed` add the sentence. Any other value, which the type
|
|
1902
|
+
// forbids but an untyped caller can pass, reads as no marker.
|
|
1903
|
+
const sandbox = environmentMarker === "dev" || environmentMarker === "mixed"
|
|
1904
|
+
? CASE_RELIANCE_SANDBOX[environmentMarker]
|
|
1905
|
+
: null;
|
|
1906
|
+
if (sandbox === null)
|
|
1907
|
+
return `${first} ${rest}`;
|
|
1908
|
+
return `${first} ${sandbox} ${rest}`;
|
|
1874
1909
|
}
|
|
1875
1910
|
/** The three witness states, and how each is printed (5.5.6, D7). No other. */
|
|
1876
1911
|
export const WITNESS_STATES = {
|
package/dist/cli.js
CHANGED
|
@@ -2696,7 +2696,7 @@ async function caseCommand(argv, io) {
|
|
|
2696
2696
|
const data = {
|
|
2697
2697
|
verdict: reading.verdict,
|
|
2698
2698
|
title: reading.verdict === "verified" && marker !== null ? SANDBOX_TITLE : titleOf(reading.verdict),
|
|
2699
|
-
reliance: caseReliance(reading.verdict, reading.handoffRecords),
|
|
2699
|
+
reliance: caseReliance(reading.verdict, reading.handoffRecords, marker),
|
|
2700
2700
|
exit_code: code,
|
|
2701
2701
|
summary: renderCaseSummary(reading),
|
|
2702
2702
|
witness: {
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { PACK_GRADE_CAUSE_KINDS, PACK_VERDICTS, accountDisclosure, completenessN
|
|
|
10
10
|
export type { CompletenessNote, DisclosureAccount, GradeInput, PackGrade, PackGradeCause, PackGradeCauseKind, PackVerdict, } from "./grading.js";
|
|
11
11
|
export { DECLARATION_CONTENT_KINDS, DECLARATION_DEVIATION_KINDS, DECLARATION_NOTE_KINDS, DECLARATION_ROLES, DECLARATION_VERDICTS, DECLARATION_VERSION, DECLARATION_VERSION_V2, DECLARATION_VERSION_V3, DECLARATION_VERSIONS, checkDeclaration, declarationClaims, packRecords, renderContentFinding, renderDeclarationSummary, renderDeviation, renderNote, } from "./declaration.js";
|
|
12
12
|
export type { DeclarationCheck, DeclarationClaims, DeclarationContentFinding, DeclarationContentKind, DeclarationDeviation, DeclarationDeviationKind, DeclarationNote, DeclarationNoteKind, DeclarationRole, DeclarationVerdict, PackRecord, } from "./declaration.js";
|
|
13
|
-
export { CASE_BODY_TYPES, CASE_EXCEPTION_KINDS, CASE_QUARANTINED_PROFILES, CASE_RECORD_PROFILES, CASE_RECORD_STATUSES, CASE_NOTE_KINDS, CASE_RELIANCE, CASE_RELIANCE_HANDOFF_CLAUSE, CASE_VERDICTS, CONTENT_WITHHELD_BY_DECLARATION, CO_SIGNATURES_PRESENT, VERDICT_DISPLAY_TITLES, WITNESS_NOT_LOOKED_UP, WITNESS_STATES, WITNESS_TIME_CACHED, WITNESS_TIME_RECORDED, caseReliance, readCase, renderCaseNote, renderCaseSummary, renderException, renderWitnessLine, } from "./case.js";
|
|
13
|
+
export { CASE_BODY_TYPES, CASE_EXCEPTION_KINDS, CASE_QUARANTINED_PROFILES, CASE_RECORD_PROFILES, CASE_RECORD_STATUSES, CASE_NOTE_KINDS, CASE_RELIANCE, CASE_RELIANCE_HANDOFF_CLAUSE, CASE_RELIANCE_SANDBOX, CASE_VERDICTS, CONTENT_WITHHELD_BY_DECLARATION, CO_SIGNATURES_PRESENT, VERDICT_DISPLAY_TITLES, WITNESS_NOT_LOOKED_UP, WITNESS_STATES, WITNESS_TIME_CACHED, WITNESS_TIME_RECORDED, caseReliance, readCase, renderCaseNote, renderCaseSummary, renderException, renderWitnessLine, } from "./case.js";
|
|
14
14
|
export { MAX_BLOCK_TIME, MAX_WITNESS_CACHE_DEPTH, WITNESS_CACHE_NAME, WITNESS_CACHE_VERSION, checkWitnessCache, formatBlockTime, readWitnessCache, renderWitnessTime, witnessTimeQuery, } from "./witness-cache.js";
|
|
15
15
|
export type { CachedWitnessTime, WitnessTimeAnswer, WitnessTimeCheck } from "./witness-cache.js";
|
|
16
16
|
export { lookupPublicRecord, onChainHalf, witnessLine } from "./witness-lookup.js";
|
package/dist/index.js
CHANGED
|
@@ -94,7 +94,7 @@ export { DECLARATION_CONTENT_KINDS, DECLARATION_DEVIATION_KINDS, DECLARATION_NOT
|
|
|
94
94
|
//
|
|
95
95
|
// Pure: data in, data out, no I/O. Additive: a new module, no existing export
|
|
96
96
|
// changes, and no new verdict word anywhere.
|
|
97
|
-
export { CASE_BODY_TYPES, CASE_EXCEPTION_KINDS, CASE_QUARANTINED_PROFILES, CASE_RECORD_PROFILES, CASE_RECORD_STATUSES, CASE_NOTE_KINDS, CASE_RELIANCE, CASE_RELIANCE_HANDOFF_CLAUSE, CASE_VERDICTS, CONTENT_WITHHELD_BY_DECLARATION, CO_SIGNATURES_PRESENT, VERDICT_DISPLAY_TITLES, WITNESS_NOT_LOOKED_UP, WITNESS_STATES, WITNESS_TIME_CACHED, WITNESS_TIME_RECORDED, caseReliance, readCase, renderCaseNote, renderCaseSummary, renderException, renderWitnessLine, } from "./case.js";
|
|
97
|
+
export { CASE_BODY_TYPES, CASE_EXCEPTION_KINDS, CASE_QUARANTINED_PROFILES, CASE_RECORD_PROFILES, CASE_RECORD_STATUSES, CASE_NOTE_KINDS, CASE_RELIANCE, CASE_RELIANCE_HANDOFF_CLAUSE, CASE_RELIANCE_SANDBOX, CASE_VERDICTS, CONTENT_WITHHELD_BY_DECLARATION, CO_SIGNATURES_PRESENT, VERDICT_DISPLAY_TITLES, WITNESS_NOT_LOOKED_UP, WITNESS_STATES, WITNESS_TIME_CACHED, WITNESS_TIME_RECORDED, caseReliance, readCase, renderCaseNote, renderCaseSummary, renderException, renderWitnessLine, } from "./case.js";
|
|
98
98
|
// The witnessed-time cache (evidence-bundle 5.6.6, v1.25, A30): read it, look it
|
|
99
99
|
// up, print it. Never an input to a verdict.
|
|
100
100
|
export { MAX_BLOCK_TIME, MAX_WITNESS_CACHE_DEPTH, WITNESS_CACHE_NAME, WITNESS_CACHE_VERSION, checkWitnessCache, formatBlockTime, readWitnessCache, renderWitnessTime, witnessTimeQuery, } from "./witness-cache.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanning/proof",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"description": "TypeScript kernel of the Sanning verification stack: RFC 8785 (JCS) canonicalization, SHA-256, and Ed25519 verification for Verifiable Event Envelopes. Full-family verifier (inline + external commitment); accepts sanning.agent/v1 and sanning.events/v2. Conformance-gated byte-for-byte against the test-vectors corpus.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
package/src/case.ts
CHANGED
|
@@ -272,6 +272,7 @@ import {
|
|
|
272
272
|
completenessNotes,
|
|
273
273
|
gradePack,
|
|
274
274
|
} from "./grading.js";
|
|
275
|
+
import type { EnvironmentMarker } from "./environment.js";
|
|
275
276
|
import type { SideContentMap } from "./side-content.js";
|
|
276
277
|
import { renderWitnessTime } from "./witness-cache.js";
|
|
277
278
|
|
|
@@ -2306,25 +2307,64 @@ export const CASE_RELIANCE_HANDOFF_CLAUSE =
|
|
|
2306
2307
|
"Every hand-off with both sides in this drop is intact.";
|
|
2307
2308
|
|
|
2308
2309
|
/**
|
|
2309
|
-
*
|
|
2310
|
-
*
|
|
2310
|
+
* The sentence a case reading's reliance line gains where its packs hold an
|
|
2311
|
+
* envelope signed `environment: "dev"` (5.5.6, A48), keyed by the environment
|
|
2312
|
+
* marker (`environmentMarker`): `dev` where every envelope is signed dev,
|
|
2313
|
+
* `mixed` where only some are. Inserted after the line's first sentence, for
|
|
2314
|
+
* every verdict word. A drop with no `dev` envelope has no marker and gains
|
|
2315
|
+
* nothing.
|
|
2316
|
+
*/
|
|
2317
|
+
export const CASE_RELIANCE_SANDBOX: Readonly<Record<EnvironmentMarker, string>> = {
|
|
2318
|
+
dev:
|
|
2319
|
+
"The records in this drop are sandbox records, signed environment " +
|
|
2320
|
+
"dev: they are not production evidence.",
|
|
2321
|
+
mixed:
|
|
2322
|
+
"Some records in this drop are sandbox records, signed environment " +
|
|
2323
|
+
"dev: those are not production evidence.",
|
|
2324
|
+
};
|
|
2325
|
+
|
|
2326
|
+
/**
|
|
2327
|
+
* What a reader may rely on for one case reading (5.5.6 v1.38, A35 and A48),
|
|
2328
|
+
* byte for byte the text `case_reliance`'s Python sibling returns.
|
|
2311
2329
|
*
|
|
2312
|
-
* For every word but `verified`
|
|
2330
|
+
* For every word but `verified` the base is `CASE_RELIANCE` unchanged. For
|
|
2313
2331
|
* `verified`, the hand-off clause is inserted after the first sentence
|
|
2314
2332
|
* where `handoffRecords` is not zero, and left out where it is zero: the
|
|
2315
2333
|
* base sentence never claims a hand-off the drop does not hold.
|
|
2334
|
+
*
|
|
2335
|
+
* Where `environmentMarker` is `dev` or `mixed`, the `CASE_RELIANCE_SANDBOX`
|
|
2336
|
+
* sentence for it is inserted after the first sentence, for every word, so
|
|
2337
|
+
* it directly follows the claim it qualifies (and precedes the hand-off
|
|
2338
|
+
* clause). Where it is null or absent, the text is exactly what it was
|
|
2339
|
+
* before A48.
|
|
2316
2340
|
*/
|
|
2317
|
-
export function caseReliance(
|
|
2341
|
+
export function caseReliance(
|
|
2342
|
+
verdict: CaseVerdict,
|
|
2343
|
+
handoffRecords: number,
|
|
2344
|
+
environmentMarker: EnvironmentMarker | null = null,
|
|
2345
|
+
): string {
|
|
2346
|
+
let first: string;
|
|
2347
|
+
let rest: string;
|
|
2318
2348
|
if (verdict === "verified" && handoffRecords > 0) {
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
"
|
|
2322
|
-
"
|
|
2323
|
-
"
|
|
2324
|
-
|
|
2325
|
-
|
|
2349
|
+
first = "Every pack in this drop is genuine, unaltered, and matches its own signed declaration.";
|
|
2350
|
+
rest =
|
|
2351
|
+
"Every hand-off with both sides in this drop is intact. Every record " +
|
|
2352
|
+
"in it was signed by its holder's key. This was read offline, on this " +
|
|
2353
|
+
"device. It does not say this drop holds everything that was recorded.";
|
|
2354
|
+
} else {
|
|
2355
|
+
const base = CASE_RELIANCE[verdict];
|
|
2356
|
+
const cut = base.indexOf(". ");
|
|
2357
|
+
first = base.slice(0, cut + 1);
|
|
2358
|
+
rest = base.slice(cut + 2);
|
|
2326
2359
|
}
|
|
2327
|
-
|
|
2360
|
+
// Only `dev` and `mixed` add the sentence. Any other value, which the type
|
|
2361
|
+
// forbids but an untyped caller can pass, reads as no marker.
|
|
2362
|
+
const sandbox =
|
|
2363
|
+
environmentMarker === "dev" || environmentMarker === "mixed"
|
|
2364
|
+
? CASE_RELIANCE_SANDBOX[environmentMarker]
|
|
2365
|
+
: null;
|
|
2366
|
+
if (sandbox === null) return `${first} ${rest}`;
|
|
2367
|
+
return `${first} ${sandbox} ${rest}`;
|
|
2328
2368
|
}
|
|
2329
2369
|
|
|
2330
2370
|
/** The three witness states, and how each is printed (5.5.6, D7). No other. */
|
package/src/cli.ts
CHANGED
|
@@ -3083,7 +3083,7 @@ async function caseCommand(argv: readonly string[], io: Cli): Promise<number> {
|
|
|
3083
3083
|
const data = {
|
|
3084
3084
|
verdict: reading.verdict,
|
|
3085
3085
|
title: reading.verdict === "verified" && marker !== null ? SANDBOX_TITLE : titleOf(reading.verdict),
|
|
3086
|
-
reliance: caseReliance(reading.verdict, reading.handoffRecords),
|
|
3086
|
+
reliance: caseReliance(reading.verdict, reading.handoffRecords, marker),
|
|
3087
3087
|
exit_code: code,
|
|
3088
3088
|
summary: renderCaseSummary(reading),
|
|
3089
3089
|
witness: {
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"rule": "sandbox-evidence",
|
|
3
|
-
"ruleVersion":
|
|
4
|
-
"statement": "A pack or case holding any envelope signed environment dev is sandbox evidence, not production evidence (envelope-spec section 2). Both commands report environment_marker in --json, dev where every envelope is signed dev and mixed where only some are, and absent otherwise. Such a pack never prints VERIFIED: where it exits 5 verify prints the headline SANDBOX and case the title Sandbox, and wherever the marker is present it prints the line 'Sandbox evidence (environment dev): not production evidence'. It exits 5 where it would otherwise exit 0, and also where every envelope is signed dev and the only unsettled witnesses are simulated; everywhere else it keeps its code, so a failure still exits 1 and a production or mixed pack with a simulated witness still exits 3 (evidence-export.md section 5). No flag turns 5 into 0. A simulated witness (anchor_ref.kind simulated, a sandbox plane's) is never fetched and never counted as checked on a chain, and no line claims an on-chain look-up for a pack whose only witnesses are simulated.",
|
|
3
|
+
"ruleVersion": 2,
|
|
4
|
+
"statement": "A pack or case holding any envelope signed environment dev is sandbox evidence, not production evidence (envelope-spec section 2). Both commands report environment_marker in --json, dev where every envelope is signed dev and mixed where only some are, and absent otherwise. Such a pack never prints VERIFIED: where it exits 5 verify prints the headline SANDBOX and case the title Sandbox, and wherever the marker is present it prints the line 'Sandbox evidence (environment dev): not production evidence'. It exits 5 where it would otherwise exit 0, and also where every envelope is signed dev and the only unsettled witnesses are simulated; everywhere else it keeps its code, so a failure still exits 1 and a production or mixed pack with a simulated witness still exits 3 (evidence-export.md section 5). No flag turns 5 into 0. A simulated witness (anchor_ref.kind simulated, a sandbox plane's) is never fetched and never counted as checked on a chain, and no line claims an on-chain look-up for a pack whose only witnesses are simulated. Wherever the marker is present, the reliance line case prints and writes gains one sentence directly after its first, for every verdict: 'The records in this drop are sandbox records, signed environment dev: they are not production evidence.' where it is dev, and 'Some records in this drop are sandbox records, signed environment dev: those are not production evidence.' where it is mixed (evidence-bundle.md section 5.5.6, A48). Each case's expect.case.reliance is that line in full.",
|
|
5
5
|
"home": "@sanning/proof: ts/vectors/sandbox-evidence.json, written by tools/gen-vectors/gen_sandbox_evidence_table.py. Held by ts/test/sandbox-evidence.test.ts and tests/test_sandbox_evidence.py, each against these bytes, and by cross-kernel/run_sandbox.sh, which runs both commands as child processes over every case.",
|
|
6
6
|
"howToUse": "For each case, write `pack` as bundle.json in a folder, and each entry of `logsHex` as logs/<event_id>.json holding the decoded bytes. Run verify on bundle.json (with --logs <folder>/logs where `logsHex` is not empty) and case on the folder, each with --gateways <url,...> where `gateways` is not empty, through a fetch seam that answers each URL in `serves` with its decoded bytes, answers any other URL 404, and records every URL asked. Assert `expect`.",
|
|
7
7
|
"sandboxLine": "Sandbox evidence (environment dev): not production evidence",
|
|
@@ -112,7 +112,8 @@
|
|
|
112
112
|
"verdict": "verified",
|
|
113
113
|
"exit": 5,
|
|
114
114
|
"environmentMarker": "dev",
|
|
115
|
-
"title": "Sandbox"
|
|
115
|
+
"title": "Sandbox",
|
|
116
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
116
117
|
}
|
|
117
118
|
}
|
|
118
119
|
},
|
|
@@ -226,7 +227,8 @@
|
|
|
226
227
|
"verdict": "verified",
|
|
227
228
|
"exit": 5,
|
|
228
229
|
"environmentMarker": "dev",
|
|
229
|
-
"title": "Sandbox"
|
|
230
|
+
"title": "Sandbox",
|
|
231
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
230
232
|
}
|
|
231
233
|
}
|
|
232
234
|
},
|
|
@@ -332,7 +334,8 @@
|
|
|
332
334
|
"verdict": "verified",
|
|
333
335
|
"exit": 5,
|
|
334
336
|
"environmentMarker": "mixed",
|
|
335
|
-
"title": "Sandbox"
|
|
337
|
+
"title": "Sandbox",
|
|
338
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Some records in this drop are sandbox records, signed environment dev: those are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
336
339
|
}
|
|
337
340
|
}
|
|
338
341
|
},
|
|
@@ -437,7 +440,8 @@
|
|
|
437
440
|
"verdict": "verified",
|
|
438
441
|
"exit": 5,
|
|
439
442
|
"environmentMarker": "mixed",
|
|
440
|
-
"title": "Sandbox"
|
|
443
|
+
"title": "Sandbox",
|
|
444
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Some records in this drop are sandbox records, signed environment dev: those are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
441
445
|
}
|
|
442
446
|
}
|
|
443
447
|
},
|
|
@@ -543,7 +547,8 @@
|
|
|
543
547
|
"verdict": "verified",
|
|
544
548
|
"exit": 0,
|
|
545
549
|
"environmentMarker": null,
|
|
546
|
-
"title": "Verified"
|
|
550
|
+
"title": "Verified",
|
|
551
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
547
552
|
}
|
|
548
553
|
}
|
|
549
554
|
},
|
|
@@ -657,7 +662,8 @@
|
|
|
657
662
|
"verdict": "verified",
|
|
658
663
|
"exit": 0,
|
|
659
664
|
"environmentMarker": null,
|
|
660
|
-
"title": "Verified"
|
|
665
|
+
"title": "Verified",
|
|
666
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
661
667
|
}
|
|
662
668
|
}
|
|
663
669
|
},
|
|
@@ -734,7 +740,8 @@
|
|
|
734
740
|
"verdict": "verified",
|
|
735
741
|
"exit": 0,
|
|
736
742
|
"environmentMarker": null,
|
|
737
|
-
"title": "Verified"
|
|
743
|
+
"title": "Verified",
|
|
744
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
738
745
|
}
|
|
739
746
|
}
|
|
740
747
|
},
|
|
@@ -840,7 +847,8 @@
|
|
|
840
847
|
"verdict": "incomplete",
|
|
841
848
|
"exit": 3,
|
|
842
849
|
"environmentMarker": "dev",
|
|
843
|
-
"title": "Incomplete"
|
|
850
|
+
"title": "Incomplete",
|
|
851
|
+
"reliance": "Nothing here was proven wrong, and part of it could not be checked: the other side of a hand-off is not in this drop, bytes were not handed over, or a claim could not be read. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Each exception says what is missing and, where a key is known, whose pack would supply it."
|
|
844
852
|
}
|
|
845
853
|
}
|
|
846
854
|
},
|
|
@@ -924,7 +932,8 @@
|
|
|
924
932
|
"verdict": "verified",
|
|
925
933
|
"exit": 1,
|
|
926
934
|
"environmentMarker": "dev",
|
|
927
|
-
"title": "Sandbox"
|
|
935
|
+
"title": "Sandbox",
|
|
936
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
928
937
|
}
|
|
929
938
|
}
|
|
930
939
|
},
|
|
@@ -1002,7 +1011,8 @@
|
|
|
1002
1011
|
"verdict": "verified",
|
|
1003
1012
|
"exit": 5,
|
|
1004
1013
|
"environmentMarker": "dev",
|
|
1005
|
-
"title": "Sandbox"
|
|
1014
|
+
"title": "Sandbox",
|
|
1015
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1006
1016
|
}
|
|
1007
1017
|
}
|
|
1008
1018
|
},
|
|
@@ -1084,7 +1094,8 @@
|
|
|
1084
1094
|
"verdict": "verified",
|
|
1085
1095
|
"exit": 5,
|
|
1086
1096
|
"environmentMarker": "dev",
|
|
1087
|
-
"title": "Sandbox"
|
|
1097
|
+
"title": "Sandbox",
|
|
1098
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1088
1099
|
}
|
|
1089
1100
|
}
|
|
1090
1101
|
},
|
|
@@ -1166,7 +1177,8 @@
|
|
|
1166
1177
|
"verdict": "verified",
|
|
1167
1178
|
"exit": 3,
|
|
1168
1179
|
"environmentMarker": null,
|
|
1169
|
-
"title": "Verified"
|
|
1180
|
+
"title": "Verified",
|
|
1181
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1170
1182
|
}
|
|
1171
1183
|
}
|
|
1172
1184
|
},
|
|
@@ -1279,7 +1291,8 @@
|
|
|
1279
1291
|
"verdict": "verified",
|
|
1280
1292
|
"exit": 5,
|
|
1281
1293
|
"environmentMarker": "dev",
|
|
1282
|
-
"title": "Sandbox"
|
|
1294
|
+
"title": "Sandbox",
|
|
1295
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1283
1296
|
}
|
|
1284
1297
|
}
|
|
1285
1298
|
},
|
|
@@ -1392,7 +1405,8 @@
|
|
|
1392
1405
|
"verdict": "verified",
|
|
1393
1406
|
"exit": 3,
|
|
1394
1407
|
"environmentMarker": "mixed",
|
|
1395
|
-
"title": "Sandbox"
|
|
1408
|
+
"title": "Sandbox",
|
|
1409
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Some records in this drop are sandbox records, signed environment dev: those are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1396
1410
|
}
|
|
1397
1411
|
}
|
|
1398
1412
|
},
|
|
@@ -1474,7 +1488,8 @@
|
|
|
1474
1488
|
"verdict": "verified",
|
|
1475
1489
|
"exit": 3,
|
|
1476
1490
|
"environmentMarker": "dev",
|
|
1477
|
-
"title": "Sandbox"
|
|
1491
|
+
"title": "Sandbox",
|
|
1492
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1478
1493
|
}
|
|
1479
1494
|
}
|
|
1480
1495
|
},
|
|
@@ -1586,7 +1601,8 @@
|
|
|
1586
1601
|
"verdict": "verified",
|
|
1587
1602
|
"exit": 3,
|
|
1588
1603
|
"environmentMarker": "dev",
|
|
1589
|
-
"title": "Sandbox"
|
|
1604
|
+
"title": "Sandbox",
|
|
1605
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1590
1606
|
}
|
|
1591
1607
|
}
|
|
1592
1608
|
},
|
|
@@ -1692,7 +1708,8 @@
|
|
|
1692
1708
|
"verdict": "partial",
|
|
1693
1709
|
"exit": 3,
|
|
1694
1710
|
"environmentMarker": "dev",
|
|
1695
|
-
"title": "Partial"
|
|
1711
|
+
"title": "Partial",
|
|
1712
|
+
"reliance": "Nothing here was proven wrong, and a check could not be completed: a pack names no witness, or a pack in a hand-off reading does not say what it holds. The records in this drop are sandbox records, signed environment dev: they are not production evidence. The exceptions say which."
|
|
1696
1713
|
}
|
|
1697
1714
|
}
|
|
1698
1715
|
},
|
|
@@ -1780,7 +1797,8 @@
|
|
|
1780
1797
|
"verdict": "verified",
|
|
1781
1798
|
"exit": 5,
|
|
1782
1799
|
"environmentMarker": "dev",
|
|
1783
|
-
"title": "Sandbox"
|
|
1800
|
+
"title": "Sandbox",
|
|
1801
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1784
1802
|
}
|
|
1785
1803
|
}
|
|
1786
1804
|
},
|
|
@@ -1872,7 +1890,8 @@
|
|
|
1872
1890
|
"verdict": "verified",
|
|
1873
1891
|
"exit": 5,
|
|
1874
1892
|
"environmentMarker": "dev",
|
|
1875
|
-
"title": "Sandbox"
|
|
1893
|
+
"title": "Sandbox",
|
|
1894
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
1876
1895
|
}
|
|
1877
1896
|
}
|
|
1878
1897
|
},
|
|
@@ -2005,7 +2024,8 @@
|
|
|
2005
2024
|
"verdict": "verified",
|
|
2006
2025
|
"exit": 5,
|
|
2007
2026
|
"environmentMarker": "dev",
|
|
2008
|
-
"title": "Sandbox"
|
|
2027
|
+
"title": "Sandbox",
|
|
2028
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
2009
2029
|
}
|
|
2010
2030
|
}
|
|
2011
2031
|
},
|
|
@@ -2097,7 +2117,8 @@
|
|
|
2097
2117
|
"verdict": "verified",
|
|
2098
2118
|
"exit": 3,
|
|
2099
2119
|
"environmentMarker": null,
|
|
2100
|
-
"title": "Verified"
|
|
2120
|
+
"title": "Verified",
|
|
2121
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
2101
2122
|
}
|
|
2102
2123
|
}
|
|
2103
2124
|
},
|
|
@@ -2183,7 +2204,8 @@
|
|
|
2183
2204
|
"verdict": "verified",
|
|
2184
2205
|
"exit": 3,
|
|
2185
2206
|
"environmentMarker": null,
|
|
2186
|
-
"title": "Verified"
|
|
2207
|
+
"title": "Verified",
|
|
2208
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
2187
2209
|
}
|
|
2188
2210
|
}
|
|
2189
2211
|
},
|
|
@@ -2309,7 +2331,8 @@
|
|
|
2309
2331
|
"verdict": "verified",
|
|
2310
2332
|
"exit": 3,
|
|
2311
2333
|
"environmentMarker": "dev",
|
|
2312
|
-
"title": "Sandbox"
|
|
2334
|
+
"title": "Sandbox",
|
|
2335
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
2313
2336
|
}
|
|
2314
2337
|
}
|
|
2315
2338
|
},
|
|
@@ -2397,7 +2420,8 @@
|
|
|
2397
2420
|
"verdict": "verified",
|
|
2398
2421
|
"exit": 5,
|
|
2399
2422
|
"environmentMarker": "dev",
|
|
2400
|
-
"title": "Sandbox"
|
|
2423
|
+
"title": "Sandbox",
|
|
2424
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
2401
2425
|
}
|
|
2402
2426
|
}
|
|
2403
2427
|
},
|
|
@@ -2489,7 +2513,8 @@
|
|
|
2489
2513
|
"verdict": "verified",
|
|
2490
2514
|
"exit": 5,
|
|
2491
2515
|
"environmentMarker": "dev",
|
|
2492
|
-
"title": "Sandbox"
|
|
2516
|
+
"title": "Sandbox",
|
|
2517
|
+
"reliance": "Every pack in this drop is genuine, unaltered, and matches its own signed declaration. The records in this drop are sandbox records, signed environment dev: they are not production evidence. Every record in it was signed by its holder's key. This was read offline, on this device. It does not say this drop holds everything that was recorded."
|
|
2493
2518
|
}
|
|
2494
2519
|
}
|
|
2495
2520
|
}
|