@mikeargento/bitgraph-audit 0.6.3 → 0.7.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/dist/types.d.ts CHANGED
@@ -361,6 +361,8 @@ export interface IngestCounts {
361
361
  artifacts: number;
362
362
  /** Anchor witness files. */
363
363
  witnesses: number;
364
+ /** Ceiling files (bitgraph-ceiling/1) and ceiling status notes (bitgraph-ceiling-status/1). */
365
+ ceilings?: number;
364
366
  /** Container entries skipped for unsafe paths. */
365
367
  skippedUnsafePaths: number;
366
368
  }
@@ -419,6 +421,10 @@ export interface IngestResult {
419
421
  artifacts: ArtifactRecord[];
420
422
  /** Anchor witness files in observation order. */
421
423
  witnesses: AnchorWitnessFile[];
424
+ /** Ceiling files (bitgraph-ceiling/1) in observation order. Optional so older embedders' IngestResults still type. */
425
+ ceilings?: CeilingFile[];
426
+ /** Ceiling status notes (bitgraph-ceiling-status/1): a package saying why a ceiling is absent. */
427
+ ceilingStatuses?: CeilingFile[];
422
428
  /** Present when a root manifest.json entry existed. */
423
429
  manifest?: ManifestReport;
424
430
  /**
@@ -1184,6 +1190,8 @@ export interface AuditOptions {
1184
1190
  * explicitly non-AWS deployments.
1185
1191
  */
1186
1192
  trustedRootCaDer?: Uint8Array;
1193
+ /** Ceilings in time: the declared writer, the chain, and an optional Base RPC for the one online check. */
1194
+ ceilings?: import("./ceilings.js").CeilingAuditOptions;
1187
1195
  }
1188
1196
  /**
1189
1197
  * Run metadata for one audit execution. This is the ONLY nondeterministic
@@ -1201,6 +1209,49 @@ export interface AuditRunMetadata {
1201
1209
  container: ContainerKind;
1202
1210
  }
1203
1211
  /** Everything one full audit run produced, in pipeline order. */
1212
+ /** A ceiling file or a ceiling status note, as found in the bundle. Never an artifact. */
1213
+ export interface CeilingFile {
1214
+ path: string;
1215
+ fileSha256Hex: string;
1216
+ json: Record<string, unknown>;
1217
+ }
1218
+ /** One ceiling file checked against its proof (verifyCeiling), offline. */
1219
+ export interface CeilingCheck {
1220
+ path: string;
1221
+ proofHash: string | null;
1222
+ /**
1223
+ * verified: every offline check passed. failed: the file is present and
1224
+ * wrong (a tampered or foreign ceiling). pending: the file says no Base
1225
+ * transaction yet. unmatched: no proof in the bundle has its proofHash.
1226
+ */
1227
+ status: "verified" | "failed" | "pending" | "unmatched";
1228
+ reason?: string;
1229
+ /** One line for people, e.g. "Ceiling: Base block N at hh:mm:ss UTC, settled on Ethereum." */
1230
+ label?: string;
1231
+ window?: {
1232
+ floorBlock: number | null;
1233
+ floorTime: number | null;
1234
+ ceilingChainId: number;
1235
+ ceilingBlock: number;
1236
+ ceilingTime: number;
1237
+ widthSeconds: number | null;
1238
+ };
1239
+ /** Online check against a Base RPC: null when not asked or unreachable. */
1240
+ onChain: boolean | null;
1241
+ onChainDetail?: string;
1242
+ }
1243
+ export interface CeilingAnalysis {
1244
+ /** The writer address the ceilings were checked against. */
1245
+ writer: string;
1246
+ chainId: number;
1247
+ checks: CeilingCheck[];
1248
+ /** Status notes carried instead of a ceiling (path and note). */
1249
+ statuses: Array<{
1250
+ path: string;
1251
+ status: string;
1252
+ note: string;
1253
+ }>;
1254
+ }
1204
1255
  export interface AuditResult {
1205
1256
  runMetadata: AuditRunMetadata;
1206
1257
  ingest: IngestResult;
@@ -1212,6 +1263,8 @@ export interface AuditResult {
1212
1263
  witnesses: AnchorWitnessAnalysis;
1213
1264
  temporal: TemporalAnalysis;
1214
1265
  attestations: AttestationAnalysis;
1266
+ /** Ceilings in time on Base. Absent from results made before this stage existed. */
1267
+ ceilings?: CeilingAnalysis;
1215
1268
  }
1216
1269
  /**
1217
1270
  * CLI exit semantics as bit flags.
@@ -1436,6 +1489,8 @@ export interface AuditJsonReport {
1436
1489
  groups: AuthorityGroup[];
1437
1490
  sharedSignersAcrossEpochs: SignerEpochSpan[];
1438
1491
  };
1492
+ /** Ceilings in time on Base (bitgraph-ceiling/1). Absent when the bundle carries none. */
1493
+ ceilings?: import("./types.js").CeilingAnalysis;
1439
1494
  attestations: {
1440
1495
  records: ProofAttestationRecord[];
1441
1496
  counts: AttestationAnalysis["counts"];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mikeargento/bitgraph-audit",
3
- "version": "0.6.3",
3
+ "version": "0.7.0",
4
4
  "description": "Offline audit of BitGraph proof bundles: ingest, tiered verification, causal reconstruction, divergence reporting.",
5
5
  "keywords": [
6
6
  "bitgraph",
@@ -32,7 +32,7 @@
32
32
  ],
33
33
  "scripts": {
34
34
  "build": "tsc",
35
- "prepack": "tsc",
35
+ "prepack": "rm -rf dist && tsc",
36
36
  "typecheck": "tsc --noEmit",
37
37
  "bench": "node scripts/bench-audit.mjs"
38
38
  },
@@ -40,7 +40,7 @@
40
40
  "node": ">=20"
41
41
  },
42
42
  "dependencies": {
43
- "@mikeargento/bitgraph-verify": "^1.13.0",
43
+ "@mikeargento/bitgraph-verify": "^1.14.0",
44
44
  "@noble/hashes": "^1.4.0"
45
45
  },
46
46
  "devDependencies": {
package/src/anomalies.ts CHANGED
@@ -155,9 +155,9 @@ function analyzeGaps(
155
155
  proofHashes: [],
156
156
  message:
157
157
  `${count} counter position${count === 1n ? "" : "s"} within the observed range [${min}, ${max}] ` +
158
- `of this partition ${count === 1n ? "is" : "are"} neither a commit position nor a referenced slot position ` +
158
+ `of this partition ${count === 1n ? "is" : "are"} neither a commit position nor a referenced reserved position ` +
159
159
  `in the supplied bundle. Such ${count === 1n ? "a position" : "positions"} may mean a proof is absent ` +
160
- `from the bundle, or a slot that was allocated but never committed (a routine, benign occurrence); ` +
160
+ `from the bundle, or a position that was reserved but never committed (a routine, benign occurrence); ` +
161
161
  `this offline audit cannot distinguish the two. It does not, by itself, establish that the authority ` +
162
162
  `failed to create or withheld any proof.`,
163
163
  details: detail as unknown as Record<string, unknown>,
@@ -200,8 +200,8 @@ async function analyzeCollisions(
200
200
  kind === "counter"
201
201
  ? `${parties.length} distinct valid proofs claim commit counter ${position} in one partition. ` +
202
202
  `The audit does not choose between them; all parties are preserved for adjudication.`
203
- : `${parties.length} distinct valid proofs reference slot counter ${position} in one partition. ` +
204
- `A slot position is consumed exactly once; all parties are preserved for adjudication.`,
203
+ : `${parties.length} distinct valid proofs reference reserved position ${position} in one partition. ` +
204
+ `A reserved position is consumed exactly once; all parties are preserved for adjudication.`,
205
205
  details: {
206
206
  position,
207
207
  validParties: parties.map((m) => m.proofHash),
@@ -220,8 +220,8 @@ async function analyzeCollisions(
220
220
  `signer, epoch, and chain partition. A commit counter position can be consumed only once, so at ` +
221
221
  `most one of these can belong to the authoritative sequence. The audit tool does not choose ` +
222
222
  `between them; every party and its predecessor relationship is preserved for adjudication.`
223
- : `Two or more independently valid proof objects reference slot counter ${position} in the same ` +
224
- `signer, epoch, and chain partition. A slot position is allocated once and consumed by one ` +
223
+ : `Two or more independently valid proof objects reference reserved position ${position} in the same ` +
224
+ `signer, epoch, and chain partition. A reserved position is allocated once and consumed by one ` +
225
225
  `commit, so at most one of these can belong to the authoritative sequence. The audit tool does ` +
226
226
  `not choose between them.`,
227
227
  });
@@ -296,9 +296,9 @@ async function analyzeCrossKindPositionReuse(
296
296
  partition: partition.key,
297
297
  proofHashes: [...involvedMap.keys()],
298
298
  message:
299
- `Counter position ${position} is committed by one proof and reserved as a slot by a ` +
299
+ `Counter position ${position} is committed by one proof and reserved by a ` +
300
300
  `different proof in the same partition. A single causal position is consumed once, as a ` +
301
- `slot or as a commit, never both across distinct proofs. The audit does not choose between ` +
301
+ `reservation or as a commit, never both across distinct proofs. The audit does not choose between ` +
302
302
  `them; all parties are preserved for adjudication.`,
303
303
  details: {
304
304
  position,
@@ -317,7 +317,7 @@ async function analyzeCrossKindPositionReuse(
317
317
  explanation:
318
318
  `Two or more independently valid proof objects allocate counter position ${position} in the ` +
319
319
  `same signer, epoch, and chain partition through different roles: at least one commits at it ` +
320
- `and at least one reserves it as a slot. Each position in a chain is consumed exactly once, so ` +
320
+ `and at least one reserves it. Each position in a chain is consumed exactly once, so ` +
321
321
  `at most one of these allocations can belong to the authoritative sequence. This pattern only ` +
322
322
  `arises through enclave malfunction, replay, or compromise. The audit tool does not choose ` +
323
323
  `between them; every party is preserved for adjudication.`,
@@ -558,7 +558,7 @@ function analyzeSlotOrder(
558
558
  partition: partition.key,
559
559
  proofHashes: [m.proofHash],
560
560
  message:
561
- "commit.slotCounter is not strictly less than commit.counter. The slot must be allocated " +
561
+ "commit.slotCounter is not strictly less than commit.counter. The position must be reserved " +
562
562
  "before the commit that consumes it, so this proof's declared positions contradict the " +
563
563
  "nonce-first construction order.",
564
564
  details: {
package/src/audit.ts CHANGED
@@ -17,6 +17,7 @@
17
17
  * Zero network access, as everywhere in this package.
18
18
  */
19
19
 
20
+ import { verifyCeilings } from "./ceilings.js";
20
21
  import { ingestBundle } from "./ingest.js";
21
22
  import { verifyObservedProofs } from "./verify-tiers.js";
22
23
  import { reconstructChains } from "./reconstruct.js";
@@ -37,7 +38,7 @@ import type { AuditOptions, AuditResult, ExitFlags, IngestResult } from "./types
37
38
  * this equals package.json's version, so the constant cannot drift silently
38
39
  * across releases.
39
40
  */
40
- export const AUDIT_VERSION = "0.6.3";
41
+ export const AUDIT_VERSION = "0.7.0";
41
42
 
42
43
  /** The audit package's own version. */
43
44
  export function auditToolVersion(): string {
@@ -80,6 +81,7 @@ export async function auditIngest(
80
81
  const witnesses = await verifyAnchorWitnesses(ingest, anchors);
81
82
  // Populates EpochRecord.anchorBounds on the reconstruction result.
82
83
  const temporal = deriveTemporalBounds(ingest, reconstruction, anchors, witnesses);
84
+ const ceilings = await verifyCeilings(ingest, options?.ceilings ?? {});
83
85
  const attestations = await validateAttestations(
84
86
  ingest,
85
87
  authorities,
@@ -104,6 +106,7 @@ export async function auditIngest(
104
106
  witnesses,
105
107
  temporal,
106
108
  attestations,
109
+ ceilings,
107
110
  };
108
111
  }
109
112
 
@@ -152,7 +155,11 @@ export function computeExitFlags(result: AuditResult): ExitFlags {
152
155
  const witnessVerificationFailures = result.witnesses.findings.some((f) =>
153
156
  WITNESS_VERIFICATION_FAILURE_CODES.has(f.code)
154
157
  );
158
+ // A ceiling file that is present and wrong is failed evidence, like a bad
159
+ // witness: bit 2. Pending, unmatched and status notes are reported, never bits.
160
+ const ceilingFailures = (result.ceilings?.checks ?? []).some((c) => c.status === "failed");
155
161
  const chainAnomaliesOrDivergences =
162
+ ceilingFailures ||
156
163
  result.anomalies.anomalies.length > 0 ||
157
164
  result.anomalies.divergences.length > 0 ||
158
165
  result.authorities.anomalies.length > 0 ||
@@ -0,0 +1,85 @@
1
+ // Copyright (c) 2024-2026 Argento Computing Inc. Licensed under the MIT License. See LICENSE.
2
+
3
+ /**
4
+ * Ceilings in time (bitgraph-ceiling/1): each ceiling file in the bundle is
5
+ * matched to its proof by proofHash and checked with verifyCeiling, offline.
6
+ * The one thing offline cannot say is whether the carried Base header is on
7
+ * Base's chain. The audit reports that as unchecked; `bitgraph ceiling
8
+ * verify --rpc` or any Base explorer answers it.
9
+ *
10
+ * The writer address is a trust input, like a measurement allowlist: the
11
+ * default is the address BitGraph publishes, and a reader can pass another.
12
+ */
13
+
14
+ import { verifyCeiling, checkCeilingOnline, type CeilingSidecar } from "@mikeargento/bitgraph-verify";
15
+ import type { CeilingAnalysis, CeilingCheck, IngestResult } from "./types.js";
16
+
17
+ /** BitGraph's published ceiling writer on Base mainnet (bitgraph.ing/ceilings). */
18
+ export const BITGRAPH_CEILING_WRITER = "0xf3972408D853c975F86351C311f4310220bbF2a3";
19
+ export const BASE_MAINNET_CHAIN_ID = 8453;
20
+
21
+ export interface CeilingAuditOptions {
22
+ writer?: string;
23
+ chainId?: number;
24
+ /**
25
+ * The one online question, supplied by an embedder that allows network:
26
+ * the Base chain's block hash at a height. The audit itself never makes a
27
+ * network call (its zero-network guarantee), so the CLI never sets this.
28
+ */
29
+ getBlockHash?: (blockNumber: number) => Promise<string | null>;
30
+ }
31
+
32
+ export async function verifyCeilings(ingest: IngestResult, options: CeilingAuditOptions = {}): Promise<CeilingAnalysis> {
33
+ const writer = options.writer ?? BITGRAPH_CEILING_WRITER;
34
+ const chainId = options.chainId ?? BASE_MAINNET_CHAIN_ID;
35
+ const byHash = new Map(ingest.proofs.map((p) => [p.proofHash, p]));
36
+ const checks: CeilingCheck[] = [];
37
+ for (const f of ingest.ceilings ?? []) {
38
+ const side = f.json as unknown as CeilingSidecar;
39
+ const proofHash = typeof side.proofHash === "string" ? side.proofHash : null;
40
+ const observed = proofHash ? byHash.get(proofHash) : undefined;
41
+ if (!observed) {
42
+ checks.push({ path: f.path, proofHash, status: "unmatched", reason: "no proof in this bundle has this ceiling's proofHash", onChain: null });
43
+ continue;
44
+ }
45
+ const r = await verifyCeiling(observed.proof, side, { writerAddress: writer, chainId });
46
+ if (!r.ok) {
47
+ const pending = r.status === "pending";
48
+ checks.push({ path: f.path, proofHash, status: pending ? "pending" : "failed", ...(r.reason ? { reason: r.reason } : {}), onChain: null });
49
+ continue;
50
+ }
51
+ const w = r.window!;
52
+ const check: CeilingCheck = {
53
+ path: f.path,
54
+ proofHash,
55
+ status: "verified",
56
+ ...(r.label ? { label: r.label } : {}),
57
+ window: {
58
+ floorBlock: w.floor.blockNumber || null,
59
+ floorTime: w.floor.blockTimestamp,
60
+ ceilingChainId: w.ceiling.chainId,
61
+ ceilingBlock: w.ceiling.blockNumber,
62
+ ceilingTime: w.ceiling.blockTimestamp,
63
+ widthSeconds: w.widthSeconds,
64
+ },
65
+ onChain: null,
66
+ onChainDetail: "header not checked against chain",
67
+ };
68
+ if (options.getBlockHash) {
69
+ const online = await checkCeilingOnline(side, options.getBlockHash);
70
+ check.onChain = online.onChain;
71
+ check.onChainDetail = online.detail;
72
+ if (online.onChain === false) {
73
+ check.status = "failed";
74
+ check.reason = `chain: ${online.detail}`;
75
+ }
76
+ }
77
+ checks.push(check);
78
+ }
79
+ const statuses = (ingest.ceilingStatuses ?? []).map((f) => ({
80
+ path: f.path,
81
+ status: String(f.json["status"] ?? "unknown"),
82
+ note: String(f.json["note"] ?? ""),
83
+ }));
84
+ return { writer, chainId, checks, statuses };
85
+ }
package/src/cli.ts CHANGED
@@ -52,7 +52,7 @@ const KNOWN_POLICY_FIELDS: readonly string[] = [
52
52
  class UsageError extends Error {}
53
53
 
54
54
  const USAGE_LINE =
55
- "Usage: bitgraph-audit <path-to-bundle> [--out <dir>] [--format json,md] [--trust-policy <path>]";
55
+ "Usage: bitgraph-audit <path-to-bundle> [--out <dir>] [--format json,md] [--trust-policy <path>] [--ceiling-writer <0x...>] [--ceiling-chain <id>]";
56
56
 
57
57
  function helpText(): string {
58
58
  return [
@@ -78,6 +78,14 @@ function helpText(): string {
78
78
  " verification tiers. Valid fields:",
79
79
  ` ${KNOWN_POLICY_FIELDS.join(", ")}.`,
80
80
  " Any other field is an error.",
81
+ " --ceiling-writer <0x…> The address ceilings in time must come from",
82
+ " (default: BitGraph's published writer,",
83
+ " 0xf3972408D853c975F86351C311f4310220bbF2a3).",
84
+ " --ceiling-chain <id> Base chain id for ceilings (default 8453).",
85
+ " The audit never goes online, so whether each",
86
+ " ceiling's Base block is on Base's chain is",
87
+ " reported as unchecked: confirm it on basescan.org",
88
+ " or with `bitgraph ceiling verify --rpc <url>`.",
81
89
  " --help, -h Print this help and exit 0.",
82
90
  "",
83
91
  "Exit codes (bit flags):",
@@ -98,7 +106,10 @@ function helpText(): string {
98
106
  " or a supplied anchor witness that fails its offline verification",
99
107
  " (block-hash mismatch, digest binding, block number, header or",
100
108
  " RLP malformation, an invalid candidate anchor, or an unmatched",
101
- " witness). Benign findings are reported but never set exit bits:",
109
+ " witness), or a ceiling in time (bitgraph-ceiling/1) that fails",
110
+ " its check against its proof (wrong writer, root, block, header).",
111
+ " A pending ceiling or a ceiling status note never sets a bit.",
112
+ " Benign findings are reported but never set exit bits:",
102
113
  " duplicate copies, manifest advisories, unsafe paths, embedded",
103
114
  " proofHash mismatches, and informational anchor findings (unsigned",
104
115
  " metadata disagreements, metadata-only anchor claims, and",
@@ -120,6 +131,8 @@ interface ParsedArgs {
120
131
  outDir: string;
121
132
  formats: ReadonlySet<"json" | "md">;
122
133
  trustPolicyPath?: string;
134
+ ceilingWriter?: string;
135
+ ceilingChain?: number;
123
136
  }
124
137
 
125
138
  function parseArgs(argv: string[]): ParsedArgs | "help" {
@@ -127,6 +140,8 @@ function parseArgs(argv: string[]): ParsedArgs | "help" {
127
140
  let outDir = ".";
128
141
  let formats: Set<"json" | "md"> = new Set(["json", "md"]);
129
142
  let trustPolicyPath: string | undefined;
143
+ let ceilingWriter: string | undefined;
144
+ let ceilingChain: number | undefined;
130
145
 
131
146
  const takeValue = (flag: string, index: number): string => {
132
147
  const value = argv[index + 1];
@@ -158,6 +173,15 @@ function parseArgs(argv: string[]): ParsedArgs | "help" {
158
173
  } else if (arg === "--trust-policy") {
159
174
  trustPolicyPath = takeValue(arg, i);
160
175
  i++;
176
+ } else if (arg === "--ceiling-writer") {
177
+ ceilingWriter = takeValue(arg, i);
178
+ i++;
179
+ if (!/^0x[0-9a-fA-F]{40}$/.test(ceilingWriter)) throw new UsageError("--ceiling-writer must be a 0x address.");
180
+ } else if (arg === "--ceiling-chain") {
181
+ ceilingChain = Number(takeValue(arg, i));
182
+ i++;
183
+ if (!Number.isInteger(ceilingChain) || ceilingChain <= 0) throw new UsageError("--ceiling-chain must be a chain id.");
184
+
161
185
  } else if (arg.startsWith("-")) {
162
186
  throw new UsageError(`unknown option "${arg}".`);
163
187
  } else if (bundlePath === undefined) {
@@ -173,6 +197,9 @@ function parseArgs(argv: string[]): ParsedArgs | "help" {
173
197
  outDir,
174
198
  formats,
175
199
  ...(trustPolicyPath !== undefined ? { trustPolicyPath } : {}),
200
+ ...(ceilingWriter !== undefined ? { ceilingWriter } : {}),
201
+ ...(ceilingChain !== undefined ? { ceilingChain } : {}),
202
+
176
203
  };
177
204
  }
178
205
 
@@ -209,7 +236,7 @@ function exitMeaning(flags: ExitFlags): string {
209
236
  const parts: string[] = [];
210
237
  if (flags.verificationFailures) parts.push("verification failures");
211
238
  if (flags.chainAnomaliesOrDivergences) {
212
- parts.push("chain anomalies, divergences, or anchor witness verification failures");
239
+ parts.push("chain anomalies, divergences, or anchor witness verification failures (or a failed ceiling in time)");
213
240
  }
214
241
  return parts.join("; ");
215
242
  }
@@ -308,10 +335,15 @@ async function main(): Promise<number> {
308
335
 
309
336
  let result;
310
337
  try {
311
- result = await runAudit(
312
- bundlePath,
313
- trustAnchors !== undefined ? { trustAnchors } : undefined
314
- );
338
+ const ceilings = {
339
+ ...(parsed.ceilingWriter !== undefined ? { writer: parsed.ceilingWriter } : {}),
340
+ ...(parsed.ceilingChain !== undefined ? { chainId: parsed.ceilingChain } : {}),
341
+
342
+ };
343
+ result = await runAudit(bundlePath, {
344
+ ...(trustAnchors !== undefined ? { trustAnchors } : {}),
345
+ ceilings,
346
+ });
315
347
  } catch (err) {
316
348
  process.stderr.write(
317
349
  `bitgraph-audit: cannot audit "${parsed.bundlePath}": ` +
@@ -338,6 +370,13 @@ async function main(): Promise<number> {
338
370
  if (carrierFlags & 1) { flags.verificationFailures = true; }
339
371
  if (carrierFlags & 2) { flags.chainAnomaliesOrDivergences = true; }
340
372
  flags.code = flags.code | carrierFlags;
373
+ for (const c of result.ceilings?.checks ?? []) {
374
+ const width = c.window?.widthSeconds != null ? ` (window ${c.window.widthSeconds}s after the floor block)` : "";
375
+ process.stdout.write(c.status === "verified"
376
+ ? `ceiling VERIFIED ${c.path}: ${c.label ?? ""}${width}; ${c.onChainDetail ?? ""}\n`
377
+ : `ceiling ${c.status.toUpperCase()} ${c.path}: ${c.reason ?? ""}\n`);
378
+ }
379
+ for (const s of result.ceilings?.statuses ?? []) process.stdout.write(`ceiling ${s.status} ${s.path}: ${s.note}\n`);
341
380
  process.stdout.write(
342
381
  `bitgraph-audit ${auditToolVersion()}: wrote ${written.join(", ")}\n` +
343
382
  `exit ${flags.code}: ${exitMeaning(flags)}\n`
package/src/index.ts CHANGED
@@ -101,6 +101,8 @@ export { identifyAnchors } from "./anchors.js";
101
101
  export { verifyAnchorWitnesses, verifyAnchorWitness } from "./witness.js";
102
102
 
103
103
  export { deriveTemporalBounds } from "./temporal.js";
104
+ export { verifyCeilings, BITGRAPH_CEILING_WRITER, BASE_MAINNET_CHAIN_ID } from "./ceilings.js";
105
+ export type { CeilingAuditOptions } from "./ceilings.js";
104
106
 
105
107
  export { validateAttestations, validateNitroAttestationDocument } from "./attestation.js";
106
108
 
package/src/ingest.ts CHANGED
@@ -43,6 +43,7 @@ import { readTarEntries } from "./tar.js";
43
43
  import { combineEntryDigests } from "./contents-hash.js";
44
44
  import type {
45
45
  AnchorWitnessFile,
46
+ CeilingFile,
46
47
  ArtifactRecord,
47
48
  AuditFinding,
48
49
  BundleManifest,
@@ -82,6 +83,8 @@ const NUL = new Uint8Array([0]);
82
83
  const MANIFEST_PATH = "manifest.json";
83
84
  const BUNDLE_VERSION = "bitgraph-bundle/1";
84
85
  const WITNESS_VERSION = "bitgraph-anchor-witness/1";
86
+ const CEILING_VERSION_TAG = "bitgraph-ceiling/1";
87
+ const CEILING_STATUS_VERSION_TAG = "bitgraph-ceiling-status/1";
85
88
 
86
89
  // ---------------------------------------------------------------------------
87
90
  // Public API
@@ -336,6 +339,8 @@ function finalizeIngest(params: FinalizeParams): IngestResult {
336
339
  const proofsByHash = new Map<string, ObservedProof>();
337
340
  const unsupportedVersions: UnsupportedVersionRecord[] = [];
338
341
  const witnesses: AnchorWitnessFile[] = [];
342
+ const ceilings: CeilingFile[] = [];
343
+ const ceilingStatuses: CeilingFile[] = [];
339
344
  const artifactsByHex = new Map<string, ArtifactRecord>();
340
345
  let manifest: ManifestReport | undefined;
341
346
  let proofFiles = 0;
@@ -393,6 +398,17 @@ function finalizeIngest(params: FinalizeParams): IngestResult {
393
398
  continue;
394
399
  }
395
400
 
401
+ // A ceiling in time travels beside its proof: evidence, never an artifact.
402
+ const pv = parsed !== undefined ? (parsed as Record<string, unknown>)["version"] : undefined;
403
+ if (pv === CEILING_VERSION_TAG || pv === CEILING_STATUS_VERSION_TAG) {
404
+ (pv === CEILING_VERSION_TAG ? ceilings : ceilingStatuses).push({
405
+ path: entry.path,
406
+ fileSha256Hex: entry.sha256Hex,
407
+ json: parsed as Record<string, unknown>,
408
+ });
409
+ continue;
410
+ }
411
+
396
412
  indexArtifact(entry, artifactsByHex);
397
413
  }
398
414
 
@@ -420,6 +436,7 @@ function finalizeIngest(params: FinalizeParams): IngestResult {
420
436
  unsupportedVersion: unsupportedVersions.length,
421
437
  artifacts: artifacts.length,
422
438
  witnesses: witnesses.length,
439
+ ceilings: ceilings.length + ceilingStatuses.length,
423
440
  skippedUnsafePaths,
424
441
  };
425
442
 
@@ -432,6 +449,8 @@ function finalizeIngest(params: FinalizeParams): IngestResult {
432
449
  unsupportedVersions,
433
450
  artifacts,
434
451
  witnesses,
452
+ ceilings,
453
+ ceilingStatuses,
435
454
  ...(manifest !== undefined ? { manifest } : {}),
436
455
  computedContentsHashB64,
437
456
  findings,
@@ -109,6 +109,9 @@ export function buildJsonReport(result: AuditResult): AuditJsonReport {
109
109
  groups: result.authorities.groups,
110
110
  sharedSignersAcrossEpochs: result.authorities.sharedSignersAcrossEpochs,
111
111
  },
112
+ ...(result.ceilings && (result.ceilings.checks.length > 0 || result.ceilings.statuses.length > 0)
113
+ ? { ceilings: result.ceilings }
114
+ : {}),
112
115
  attestations: {
113
116
  records: result.attestations.records,
114
117
  counts: result.attestations.counts,