@mikeargento/bitgraph-audit 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"anomalies.d.ts","sourceRoot":"","sources":["../src/anomalies.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EACV,aAAa,EAMb,YAAY,EAGZ,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAcpB;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,oBAAoB,GACnC,OAAO,CAAC,aAAa,CAAC,CA+BxB"}
1
+ {"version":3,"file":"anomalies.d.ts","sourceRoot":"","sources":["../src/anomalies.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EACV,aAAa,EAOb,YAAY,EAGZ,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAcpB;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,oBAAoB,GACnC,OAAO,CAAC,aAAa,CAAC,CAgCxB"}
package/dist/anomalies.js CHANGED
@@ -20,6 +20,7 @@ const MAX_LISTED_POSITIONS = 10_000;
20
20
  export async function classifyAnomalies(ingest, reconstruction) {
21
21
  const anomalies = [];
22
22
  const divergences = [];
23
+ const boundaryEntryPoints = [];
23
24
  const byHash = new Map(ingest.proofs.map((p) => [p.proofHash, p]));
24
25
  // Predecessor links (prevB64, epochLink.prevProofHashB64) reference the CHAIN
25
26
  // hash, not the identity hash, so predecessor resolution keys on chainHash.
@@ -36,7 +37,7 @@ export async function classifyAnomalies(ingest, reconstruction) {
36
37
  await analyzeCollisions(partition, members, "slot", anomalies, divergences);
37
38
  await analyzeCrossKindPositionReuse(partition, members, anomalies, divergences);
38
39
  await analyzePredecessorReuse(partition, members, byChainHash, anomalies, divergences);
39
- analyzeChainBreaks(partition, members, byChainHash, partitionOf, anomalies);
40
+ analyzeChainBreaks(partition, members, byChainHash, partitionOf, anomalies, boundaryEntryPoints);
40
41
  await analyzeMultipleGenesis(partition, members, anomalies, divergences);
41
42
  analyzeSlotOrder(partition, members, anomalies);
42
43
  }
@@ -44,7 +45,7 @@ export async function classifyAnomalies(ingest, reconstruction) {
44
45
  // it takes the proofHash-keyed map. Predecessor (prevProofHashB64) resolution
45
46
  // happened upstream in reconstruct.ts against chain hashes.
46
47
  await analyzeEpochLinks(reconstruction.epochRelationships.edges, byHash, anomalies, divergences);
47
- return { anomalies, divergences };
48
+ return { anomalies, divergences, boundaryEntryPoints };
48
49
  }
49
50
  // ---------------------------------------------------------------------------
50
51
  // G2 gap logic
@@ -292,9 +293,19 @@ async function analyzePredecessorReuse(partition, members, byChainHash, anomalie
292
293
  // ---------------------------------------------------------------------------
293
294
  // Chain breaks
294
295
  // ---------------------------------------------------------------------------
295
- function analyzeChainBreaks(partition, members, byChainHash, partitionOf, anomalies) {
296
+ function analyzeChainBreaks(partition, members, byChainHash, partitionOf, anomalies, boundaryEntryPoints) {
296
297
  // prevB64 resolves in-partition when it equals a member's CHAIN hash.
297
298
  const memberChainHashes = new Set(members.map((m) => m.chainHash));
299
+ // Lowest observed commit counter: a dangling link AT the lowest position is
300
+ // the excerpt's frontier (an expected boundary); a dangling link ABOVE it is
301
+ // an interior hole (a real chain break, and the missing proof's positions
302
+ // also surface as unexplained-counter-positions).
303
+ let minCounter;
304
+ for (const m of members) {
305
+ const c = parseCounter(m.counter);
306
+ if (c !== undefined && (minCounter === undefined || c < minCounter))
307
+ minCounter = c;
308
+ }
298
309
  for (const m of [...members].sort(byCounterThenHash)) {
299
310
  if (m.prevB64 === undefined)
300
311
  continue;
@@ -335,13 +346,40 @@ function analyzeChainBreaks(partition, members, byChainHash, partitionOf, anomal
335
346
  });
336
347
  continue;
337
348
  }
349
+ // A well-formed, in-partition prevB64 whose predecessor is absent splits
350
+ // into two cases by position:
351
+ //
352
+ // - FRONTIER (m is at the lowest observed counter): the excerpt simply
353
+ // starts here; its predecessor precedes the exported window. This is the
354
+ // EXPECTED boundary of any bounded bundle, not a defect. A validly
355
+ // signed, attested proof only exists by extending the chain (fail-closed
356
+ // construction), so its predecessor did exist; it is just not included.
357
+ // Recorded as an informational boundary entry point — never sets the
358
+ // exit code, never marks the partition non-intact. A full-epoch export
359
+ // has none of these (its earliest proof is the genesis, no prevB64).
360
+ //
361
+ // - INTERIOR (a lower-counter member is present): a proof sits below m yet
362
+ // the link into m is broken — a genuine hole. Stays a chain-break-missing
363
+ // anomaly. The missing proof's own positions also surface as
364
+ // unexplained-counter-positions, so an interior hole always fails.
365
+ const c = parseCounter(m.counter);
366
+ const isFrontier = c === undefined || minCounter === undefined || c <= minCounter;
367
+ if (isFrontier) {
368
+ boundaryEntryPoints.push({
369
+ partition: partition.key,
370
+ proofHash: m.proofHash,
371
+ prevB64: m.prevB64,
372
+ });
373
+ continue;
374
+ }
338
375
  anomalies.push({
339
376
  code: "chain-break-missing",
340
377
  partition: partition.key,
341
378
  proofHashes: [m.proofHash],
342
- message: "commit.prevB64 references a predecessor proof that is absent from the supplied bundle. The " +
343
- "chain cannot be reconstructed across this link from the supplied evidence; this does not, by " +
344
- "itself, establish that the predecessor never existed.",
379
+ message: "commit.prevB64 references a predecessor proof that is absent from the supplied bundle, and a " +
380
+ "lower-positioned proof IS present, so this is an interior break (a hole), not the excerpt's " +
381
+ "starting boundary. The chain cannot be reconstructed across this link from the supplied " +
382
+ "evidence; this does not, by itself, establish that the predecessor never existed.",
345
383
  details: { prevB64: m.prevB64 },
346
384
  });
347
385
  }
@@ -1 +1 @@
1
- {"version":3,"file":"anomalies.js","sourceRoot":"","sources":["../src/anomalies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anomalies.js","sourceRoot":"","sources":["../src/anomalies.ts"],"names":[],"mappings":"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"}
package/dist/audit.d.ts CHANGED
@@ -1,6 +1,33 @@
1
- import type { AuditOptions, AuditResult, ExitFlags } from "./types.js";
2
- /** The audit package's own version, read once from its package.json. */
1
+ import type { AuditOptions, AuditResult, ExitFlags, IngestResult } from "./types.js";
2
+ /**
3
+ * The audit package's own version, as a source constant rather than a
4
+ * runtime package.json read. The read had two failure modes in bundled
5
+ * embedders (esbuild/webpack output, browsers): a foreign package.json one
6
+ * level up supplies the WRONG version into every report, or there is no
7
+ * package.json at all and the read throws mid-audit. A unit test asserts
8
+ * this equals package.json's version, so the constant cannot drift silently
9
+ * across releases.
10
+ */
11
+ export declare const AUDIT_VERSION = "0.2.0";
12
+ /** The audit package's own version. */
3
13
  export declare function auditToolVersion(): string;
14
+ /** Options for auditIngest(): the audit options plus the run stamp. */
15
+ export interface AuditIngestOptions extends AuditOptions {
16
+ /**
17
+ * The runMetadata.startedAt value. runAudit() stamps the wall clock here;
18
+ * an embedder that needs a fully deterministic result supplies its own
19
+ * (any string, for example ""). Defaults to the wall clock when omitted.
20
+ */
21
+ startedAt?: string;
22
+ }
23
+ /**
24
+ * The pure tail of the pipeline over an already-ingested bundle: every
25
+ * stage after ingest, in canonical order, with no filesystem access. This
26
+ * is how a browser or an embedder that used ingestEntries() gets the same
27
+ * AuditResult the CLI gets from a path. runAudit() is exactly
28
+ * ingestBundle() followed by this.
29
+ */
30
+ export declare function auditIngest(ingest: IngestResult, options?: AuditIngestOptions): Promise<AuditResult>;
4
31
  /**
5
32
  * Run the complete audit pipeline over a bundle (directory, .tar, .tar.gz,
6
33
  * or .tgz) and return everything every stage produced.
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvE,wEAAwE;AACxE,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAyC/F;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAgB/D"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAErF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC,uCAAuC;AACvC,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAyCtB;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAG/F;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAgB/D"}
package/dist/audit.js CHANGED
@@ -15,7 +15,6 @@
15
15
  *
16
16
  * Zero network access, as everywhere in this package.
17
17
  */
18
- import { readFileSync } from "node:fs";
19
18
  import { ingestBundle } from "./ingest.js";
20
19
  import { verifyObservedProofs } from "./verify-tiers.js";
21
20
  import { reconstructChains } from "./reconstruct.js";
@@ -25,23 +24,31 @@ import { identifyAnchors } from "./anchors.js";
25
24
  import { verifyAnchorWitnesses } from "./witness.js";
26
25
  import { deriveTemporalBounds } from "./temporal.js";
27
26
  import { validateAttestations } from "./attestation.js";
28
- let cachedToolVersion;
29
- /** The audit package's own version, read once from its package.json. */
27
+ /**
28
+ * The audit package's own version, as a source constant rather than a
29
+ * runtime package.json read. The read had two failure modes in bundled
30
+ * embedders (esbuild/webpack output, browsers): a foreign package.json one
31
+ * level up supplies the WRONG version into every report, or there is no
32
+ * package.json at all and the read throws mid-audit. A unit test asserts
33
+ * this equals package.json's version, so the constant cannot drift silently
34
+ * across releases.
35
+ */
36
+ export const AUDIT_VERSION = "0.2.0";
37
+ /** The audit package's own version. */
30
38
  export function auditToolVersion() {
31
- if (cachedToolVersion === undefined) {
32
- const raw = readFileSync(new URL("../package.json", import.meta.url), "utf8");
33
- cachedToolVersion = JSON.parse(raw).version;
34
- }
35
- return cachedToolVersion;
39
+ return AUDIT_VERSION;
36
40
  }
37
41
  /**
38
- * Run the complete audit pipeline over a bundle (directory, .tar, .tar.gz,
39
- * or .tgz) and return everything every stage produced.
42
+ * The pure tail of the pipeline over an already-ingested bundle: every
43
+ * stage after ingest, in canonical order, with no filesystem access. This
44
+ * is how a browser or an embedder that used ingestEntries() gets the same
45
+ * AuditResult the CLI gets from a path. runAudit() is exactly
46
+ * ingestBundle() followed by this.
40
47
  */
41
- export async function runAudit(bundlePath, options) {
42
- // The ONLY wall-clock read in the pipeline. See AuditRunMetadata.
43
- const startedAt = new Date().toISOString();
44
- const ingest = await ingestBundle(bundlePath);
48
+ export async function auditIngest(ingest, options) {
49
+ // The ONLY wall-clock read in the pipeline, and only when the caller did
50
+ // not supply the stamp. See AuditRunMetadata.
51
+ const startedAt = options?.startedAt ?? new Date().toISOString();
45
52
  const verification = await verifyObservedProofs(ingest, options?.trustAnchors !== undefined ? { trustAnchors: options.trustAnchors } : undefined);
46
53
  const reconstruction = await reconstructChains(ingest);
47
54
  const anomalies = await classifyAnomalies(ingest, reconstruction);
@@ -57,7 +64,7 @@ export async function runAudit(bundlePath, options) {
57
64
  runMetadata: {
58
65
  toolVersion: auditToolVersion(),
59
66
  startedAt,
60
- bundlePath,
67
+ bundlePath: ingest.bundlePath,
61
68
  container: ingest.container,
62
69
  },
63
70
  ingest,
@@ -71,6 +78,14 @@ export async function runAudit(bundlePath, options) {
71
78
  attestations,
72
79
  };
73
80
  }
81
+ /**
82
+ * Run the complete audit pipeline over a bundle (directory, .tar, .tar.gz,
83
+ * or .tgz) and return everything every stage produced.
84
+ */
85
+ export async function runAudit(bundlePath, options) {
86
+ const ingest = await ingestBundle(bundlePath);
87
+ return auditIngest(ingest, options);
88
+ }
74
89
  /**
75
90
  * Anchor witness verification-failure codes: every finding the witness
76
91
  * stage emits is a failure (verifyAnchorWitnesses records findings only for
package/dist/audit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
File without changes
package/dist/index.d.ts CHANGED
@@ -10,8 +10,9 @@
10
10
  * Zero runtime network access, by design. Everything verifiable is
11
11
  * verified locally; everything else is reported as exactly what it is.
12
12
  */
13
- export type { AnomalyCode, AuditFinding, VerificationTier, VerificationStatus, EmbeddedProofHashStatus, ProofVerification, ProofSource, ObservedProof, UnsupportedVersionRecord, ArtifactRecord, AnchorWitnessFile, BundleManifest, ManifestReport, ContainerKind, IngestCounts, IngestLimits, IngestResult, VerifyObservedOptions, VerificationSummary, MatchedArtifactBytes, PartitionKey, ChainComponent, ChainPartition, EpochLinkFields, EpochLineageEdge, EpochAnchorBound, EpochRecord, EpochRelationshipResult, ReconstructionResult, ChainAnomaly, UnexplainedPositionsDetail, DivergenceKind, DivergenceParty, DivergenceRecord, AnomalyReport, AttestedMeasurementEvidence, AuthorityGroup, SignerEpochSpan, AuthorityAnalysis, AnchorMetadataCorroboration, AnchorRecord, AnchorIdentification, AnchorWitnessOutcome, AnchorWitnessAnalysis, BoundEvidence, SegmentBound, TemporalSegmentStatus, TemporalSegment, AnchorOrderedPair, TemporalAnalysis, AttestationCheck, NitroValidationOptions, NitroValidationResult, ProofAttestationRecord, AttestationAnalysis, AuditOptions, AuditRunMetadata, AuditResult, ExitFlags, AnomalyStage, ReportAnomaly, ReportProofRecord, ReportPartition, UnorderedEpochPair, ReportEpochRelationships, ReportInputSummary, ReportSummary, AuditJsonReport, } from "./types.js";
14
- export { ingestBundle, streamMatchedArtifacts, DEFAULT_INGEST_LIMITS } from "./ingest.js";
13
+ export type { AnomalyCode, AuditFinding, VerificationTier, VerificationStatus, EmbeddedProofHashStatus, ProofVerification, ProofSource, ObservedProof, UnsupportedVersionRecord, ArtifactRecord, AnchorWitnessFile, BundleManifest, ManifestReport, ContainerKind, IngestCounts, IngestLimits, IngestResult, VerifyObservedOptions, VerificationSummary, MatchedArtifactBytes, PartitionKey, ChainComponent, ChainPartition, EpochLinkFields, EpochLineageEdge, EpochAnchorBound, EpochRecord, EpochRelationshipResult, ReconstructionResult, ChainAnomaly, UnexplainedPositionsDetail, BoundaryEntryPoint, DivergenceKind, DivergenceParty, DivergenceRecord, AnomalyReport, AttestedMeasurementEvidence, AuthorityGroup, SignerEpochSpan, AuthorityAnalysis, AnchorMetadataCorroboration, AnchorRecord, AnchorIdentification, AnchorWitnessOutcome, AnchorWitnessAnalysis, BoundEvidence, SegmentBound, TemporalSegmentStatus, TemporalSegment, AnchorOrderedPair, TemporalAnalysis, AttestationCheck, NitroValidationOptions, NitroValidationResult, ProofAttestationRecord, AttestationAnalysis, AuditOptions, AuditRunMetadata, AuditResult, ExitFlags, AnomalyStage, ReportAnomaly, ReportProofRecord, ReportPartition, UnorderedEpochPair, ReportEpochRelationships, ReportInputSummary, ReportSummary, AuditJsonReport, } from "./types.js";
14
+ export { ingestBundle, ingestEntries, streamMatchedArtifacts, DEFAULT_INGEST_LIMITS } from "./ingest.js";
15
+ export type { BundleEntrySource } from "./ingest.js";
15
16
  export { verifyObservedProofs } from "./verify-tiers.js";
16
17
  export { reconstructChains } from "./reconstruct.js";
17
18
  export { classifyAnomalies } from "./anomalies.js";
@@ -20,7 +21,8 @@ export { identifyAnchors } from "./anchors.js";
20
21
  export { verifyAnchorWitnesses, verifyAnchorWitness } from "./witness.js";
21
22
  export { deriveTemporalBounds } from "./temporal.js";
22
23
  export { validateAttestations, validateNitroAttestationDocument } from "./attestation.js";
23
- export { runAudit, computeExitFlags, auditToolVersion } from "./audit.js";
24
+ export { runAudit, auditIngest, computeExitFlags, auditToolVersion, AUDIT_VERSION } from "./audit.js";
25
+ export type { AuditIngestOptions } from "./audit.js";
24
26
  export { buildJsonReport } from "./report-json.js";
25
27
  export { buildMarkdownReport } from "./report-md.js";
26
28
  export { AWS_NITRO_ROOT_CA_PEM } from "./aws-nitro-root-ca.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,0BAA0B,EAC1B,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,2BAA2B,EAC3B,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,2BAA2B,EAC3B,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzG,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtG,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2024-2026 Mike Argento. Licensed under the MIT License. See LICENSE.
2
- export { ingestBundle, streamMatchedArtifacts, DEFAULT_INGEST_LIMITS } from "./ingest.js";
2
+ export { ingestBundle, ingestEntries, streamMatchedArtifacts, DEFAULT_INGEST_LIMITS } from "./ingest.js";
3
3
  export { verifyObservedProofs } from "./verify-tiers.js";
4
4
  export { reconstructChains } from "./reconstruct.js";
5
5
  export { classifyAnomalies } from "./anomalies.js";
@@ -8,7 +8,7 @@ export { identifyAnchors } from "./anchors.js";
8
8
  export { verifyAnchorWitnesses, verifyAnchorWitness } from "./witness.js";
9
9
  export { deriveTemporalBounds } from "./temporal.js";
10
10
  export { validateAttestations, validateNitroAttestationDocument } from "./attestation.js";
11
- export { runAudit, computeExitFlags, auditToolVersion } from "./audit.js";
11
+ export { runAudit, auditIngest, computeExitFlags, auditToolVersion, AUDIT_VERSION } from "./audit.js";
12
12
  export { buildJsonReport } from "./report-json.js";
13
13
  export { buildMarkdownReport } from "./report-md.js";
14
14
  export { AWS_NITRO_ROOT_CA_PEM } from "./aws-nitro-root-ca.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAsFrF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAuFrF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGtG,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
package/dist/ingest.d.ts CHANGED
@@ -20,6 +20,31 @@ export declare const DEFAULT_INGEST_LIMITS: IngestLimits;
20
20
  * Error rather than exhausting memory.
21
21
  */
22
22
  export declare function ingestBundle(bundlePath: string, limits?: IngestLimits): Promise<IngestResult>;
23
+ /**
24
+ * One in-memory bundle entry for ingestEntries(): a bundle-root-relative
25
+ * path (forward slashes) and a way to open its bytes. `open` may be called
26
+ * more than once (once to scan and hash, again to re-read matched artifact
27
+ * bytes for full-tier verification), and it may return the bytes whole,
28
+ * a promise of them, or an async chunk stream, so a browser can hand over
29
+ * File objects without buffering every artifact up front.
30
+ */
31
+ export interface BundleEntrySource {
32
+ path: string;
33
+ open: () => Uint8Array | Promise<Uint8Array> | AsyncIterable<Uint8Array>;
34
+ }
35
+ /**
36
+ * Ingest a bundle from in-memory entries: the filesystem-free counterpart
37
+ * of ingestBundle(), for browsers and embedders that already hold the
38
+ * bytes. Same discovery, classification, hashing, and matching, so the
39
+ * result feeds the same verification and reconstruction stages. Entries
40
+ * are ordered by path before scanning so the result is deterministic
41
+ * regardless of the order the caller supplied them; paths are normalized
42
+ * exactly as tar entries are (unsafe paths are skipped and reported).
43
+ * Performs no verification and no network access.
44
+ */
45
+ export declare function ingestEntries(entries: Iterable<BundleEntrySource>, options?: {
46
+ label?: string;
47
+ }): Promise<IngestResult>;
23
48
  /**
24
49
  * Stream the bytes of every artifact that content-matched at least one
25
50
  * proof, one artifact at a time, in deterministic order (first-observation
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../src/ingest.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAQV,YAAY,EACZ,YAAY,EAEZ,oBAAoB,EAIrB,MAAM,YAAY,CAAC;AAUpB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAWF;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,YAAoC,GAC3C,OAAO,CAAC,YAAY,CAAC,CAmMvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAuB,sBAAsB,CAC3C,MAAM,EAAE,YAAY,GACnB,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAsDlD"}
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../src/ingest.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAQV,YAAY,EACZ,YAAY,EAEZ,oBAAoB,EAIrB,MAAM,YAAY,CAAC;AAUpB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAWF;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,YAAoC,GAC3C,OAAO,CAAC,YAAY,CAAC,CAkEvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;CAC1E;AAWD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACpC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,YAAY,CAAC,CA2CvB;AA0LD;;;;;;;;;;;GAWG;AACH,wBAAuB,sBAAsB,CAC3C,MAAM,EAAE,YAAY,GACnB,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CA8ElD"}
package/dist/ingest.js CHANGED
@@ -132,6 +132,99 @@ export async function ingestBundle(bundlePath, limits = DEFAULT_INGEST_LIMITS) {
132
132
  if (container !== "directory" && scanned.length > 0) {
133
133
  strippedRootPrefix = rootTracker.commonRoot();
134
134
  }
135
+ return finalizeIngest({
136
+ bundlePath,
137
+ container,
138
+ scanned,
139
+ strippedRootPrefix,
140
+ findings,
141
+ entriesScanned,
142
+ skippedUnsafePaths,
143
+ });
144
+ }
145
+ /**
146
+ * Per-result registry of entry sources for in-memory ("memory" container)
147
+ * ingests, so streamMatchedArtifacts can re-read artifact bytes without the
148
+ * IngestResult carrying functions. Keyed by identity: a structurally cloned
149
+ * IngestResult loses its sources and yields no artifact bytes, which
150
+ * downgrades every proof to the integrity tier rather than crashing.
151
+ */
152
+ const memorySources = new WeakMap();
153
+ /**
154
+ * Ingest a bundle from in-memory entries: the filesystem-free counterpart
155
+ * of ingestBundle(), for browsers and embedders that already hold the
156
+ * bytes. Same discovery, classification, hashing, and matching, so the
157
+ * result feeds the same verification and reconstruction stages. Entries
158
+ * are ordered by path before scanning so the result is deterministic
159
+ * regardless of the order the caller supplied them; paths are normalized
160
+ * exactly as tar entries are (unsafe paths are skipped and reported).
161
+ * Performs no verification and no network access.
162
+ */
163
+ export async function ingestEntries(entries, options) {
164
+ const findings = [];
165
+ let skippedUnsafePaths = 0;
166
+ let entriesScanned = 0;
167
+ const scanned = [];
168
+ const sources = new Map();
169
+ const ordered = Array.from(entries).sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0);
170
+ for (const entry of ordered) {
171
+ entriesScanned++;
172
+ const normalized = normalizeEntryPath(entry.path);
173
+ if (normalized.unsafe) {
174
+ skippedUnsafePaths++;
175
+ findings.push({
176
+ code: "unsafe-path",
177
+ path: entry.path,
178
+ message: `entry skipped: ${normalized.reason}`,
179
+ });
180
+ continue;
181
+ }
182
+ const hashed = await hashEntryStream(normalized.path, undefined, undefined, openAsChunks(entry.open()));
183
+ scanned.push(makeScannedEntry(normalized.path, hashed));
184
+ sources.set(normalized.path, entry);
185
+ }
186
+ const result = finalizeIngest({
187
+ bundlePath: options?.label ?? "",
188
+ container: "memory",
189
+ scanned,
190
+ strippedRootPrefix: undefined,
191
+ findings,
192
+ entriesScanned,
193
+ skippedUnsafePaths,
194
+ });
195
+ memorySources.set(result, sources);
196
+ return result;
197
+ }
198
+ /** Adapt every accepted `open()` return shape to a chunk stream. */
199
+ async function* openAsChunks(opened) {
200
+ const value = await Promise.resolve(opened);
201
+ if (value instanceof Uint8Array) {
202
+ yield value;
203
+ return;
204
+ }
205
+ // Not a Uint8Array and not a promise of one: an async iterable.
206
+ for await (const chunk of opened)
207
+ yield chunk;
208
+ }
209
+ /** Read an in-memory entry whole for artifact re-reads. */
210
+ async function readSourceWhole(source) {
211
+ const chunks = [];
212
+ let total = 0;
213
+ for await (const chunk of openAsChunks(source.open())) {
214
+ chunks.push(chunk);
215
+ total += chunk.length;
216
+ }
217
+ return concatBytes(chunks, total);
218
+ }
219
+ /**
220
+ * The container-independent tail of ingest: path finalization, the
221
+ * contents hash, classification by schema shape, and content-addressed
222
+ * artifact matching. Both ingestBundle() and ingestEntries() end here, so
223
+ * a directory, an archive, and an in-memory entry set that hold the same
224
+ * bytes at the same paths classify identically.
225
+ */
226
+ function finalizeIngest(params) {
227
+ const { bundlePath, container, scanned, strippedRootPrefix, findings, entriesScanned, skippedUnsafePaths } = params;
135
228
  const finalByPath = new Map();
136
229
  for (const entry of scanned) {
137
230
  let finalPath = entry.rawPath;
@@ -274,6 +367,33 @@ export async function* streamMatchedArtifacts(ingest) {
274
367
  const needed = ingest.artifacts.filter((a) => a.matchedProofHashes.length > 0);
275
368
  if (needed.length === 0)
276
369
  return;
370
+ if (ingest.container === "memory") {
371
+ // In-memory ingest: re-open through the registered sources. A result
372
+ // whose sources are unknown (cloned, or not from ingestEntries) yields
373
+ // nothing, so verification falls back to the integrity tier.
374
+ const sources = memorySources.get(ingest);
375
+ if (sources === undefined)
376
+ return;
377
+ for (const artifact of needed) {
378
+ for (const relPath of artifact.paths) {
379
+ const source = sources.get(relPath);
380
+ if (source === undefined)
381
+ continue;
382
+ let bytes;
383
+ try {
384
+ bytes = await readSourceWhole(source);
385
+ }
386
+ catch {
387
+ continue;
388
+ }
389
+ if (toHex(sha256(bytes)) !== artifact.sha256Hex)
390
+ continue;
391
+ yield { sha256Hex: artifact.sha256Hex, path: relPath, bytes };
392
+ break;
393
+ }
394
+ }
395
+ return;
396
+ }
277
397
  if (ingest.container === "directory") {
278
398
  for (const artifact of needed) {
279
399
  for (const relPath of artifact.paths) {