@nexart/cli 0.15.0 → 0.16.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/CHANGELOG.md CHANGED
@@ -1,5 +1,69 @@
1
1
  # @nexart/cli — Changelog
2
2
 
3
+ ## v0.16.0 (2026-06-17) — `verify-record`: fully automatic, audit-grade, self-contained
4
+
5
+ Feature release. `verify-bundle` is **byte-for-byte unchanged** — the redesigned
6
+ output and automatic key/timestamp resolution apply to `verify-record` only.
7
+
8
+ - **Automatic verification.** `nexart verify-record <file>` now verifies integrity,
9
+ the receipt signature, **and** the RFC 3161 timestamp with no extra flags. The
10
+ `--verify-timestamp` gate is gone — timestamp verification always runs when a token
11
+ is present (the ASN.1 stack still loads lazily, only when a token exists).
12
+ - **Self-contained signing key resolution.** By priority: `--public-key` (explicit
13
+ override) → auto-fetched from the node's published key set at
14
+ `https://node.nexart.io/.well-known/nexart-node.json` (the key whose `kid` matches
15
+ the receipt's `attestorKeyId`) → a bundle-embedded key. The fetch is the **only**
16
+ network call, lives entirely in the CLI layer (the auditable `standaloneVerify.ts`
17
+ core stays `node:crypto`-only / no network), and fails gracefully. New **`--offline`**
18
+ flag disables it; the URL is overridable via `NEXART_NODE_WELLKNOWN_URL`.
19
+ - **Embedded DigiCert trust store.** Timestamps verify against a built-in trust store
20
+ (DigiCert Trusted Root G4 + DigiCert Assured ID Root CA) by default; **`--tsa-roots`**
21
+ overrides it with custom PEM roots.
22
+ - **Flexible input.** The bundle is read from `record.bundle` or, failing that, the
23
+ record root is treated as the bundle. The old "missing bundle" error is removed — a
24
+ malformed record now reports a clean **Integrity: FAIL** (exit `1`).
25
+ - **Timestamp precedence:** `verification.timestamp.token` → `timestamp.token` →
26
+ bundle-embedded (`trustedTimestamps[]` / singular `timestamp`).
27
+ - **Redesigned audit-grade report** (and `--json`): **Integrity**, **Signature**,
28
+ **Timestamp** (`VERIFIED` / `INVALID (<reason>)` / `PRESENT BUT NOT VERIFIED` /
29
+ `NOT INCLUDED IN RECORD` + generation time and authority), **Node** (node id, key id,
30
+ key source, operator), **Identity**, and **Execution** (protocol, provider, model,
31
+ input/output hashes, parameters, created-at). The report now ends with a single
32
+ headline line — **`FINAL STATUS: VERIFIED EVIDENCE RECORD`** or **`FINAL STATUS:
33
+ FAILED`**.
34
+ - **New `nexart verify-url <url>`.** One-command verification: fetches a CER record (or
35
+ a bare bundle) as JSON from a URL and verifies it through the **same** automatic
36
+ key/timestamp resolution and audit-grade renderer as `verify-record`. The payload is
37
+ auto-detected as a full record (`verification.receipt`) or a raw bundle — both route
38
+ through the rich verifier. The URL fetch is the record *source* and always runs;
39
+ `--offline` here only disables the separate signing-key auto-fetch. Bad HTTP status,
40
+ network errors, and non-JSON bodies fail cleanly with exit `1`.
41
+ - **New `nexart verify-hash <certificate_hash>`.** Resolves a record straight from its
42
+ certificate hash: constructs the public node lookup URL
43
+ (`https://node.nexart.io/v1/cer/public?certificate_hash=<hash>`) and verifies it via
44
+ `verify-url`, so the output is **identical** to `verify-url`. The hash must carry the
45
+ canonical `sha256:` prefix (a missing prefix fails cleanly with exit `1` before any
46
+ network call). Supports `--short`, `--offline`, `--json` (and the rest of the
47
+ `verify-url` options). Distinct from the existing `verify <snapshot>` command, which
48
+ is left untouched.
49
+ - **New `verify-record -` (stdin).** A `-` path reads the record from standard input,
50
+ enabling pipelines such as `curl -s … | nexart verify-record -`.
51
+ - **New `--short` flag** (`verify-record` and `verify-url`): prints only a single
52
+ verdict line — `✔ VERIFIED` or `✖ FAILED`.
53
+ - **Unchanged invariants:** the timestamp layer never modifies `certificateHash`, is
54
+ never canonicalised, and **never affects the Integrity/Signature result or the exit
55
+ code** (`0` only when integrity passes and the signature is not invalid, `1`
56
+ otherwise). Operational TSA errors (untrusted root, imprint mismatch, unreadable
57
+ `--tsa-roots`) are reported as a timestamp *status*, never a crash. `verify-bundle`
58
+ remains **byte-for-byte unchanged**.
59
+
60
+ ## v0.15.1 (2026-06-17) — docs: correct README version header
61
+
62
+ Docs-only patch. No code or behaviour changes.
63
+
64
+ - **Fixed:** the README title still read `v0.12.0` despite several releases since;
65
+ it now reflects the current package version.
66
+
3
67
  ## v0.15.0 (2026-06-17) — `verify-record` (full CER record + timestamp verification)
4
68
 
5
69
  Additive feature. No breaking changes. `verify-bundle` is byte-for-byte unchanged.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @nexart/cli v0.12.0
1
+ # @nexart/cli v0.16.0
2
2
 
3
3
  Command-line interface for NexArt — run, replay, and verify deterministic generative art, plus AI execution certification commands.
4
4
 
@@ -798,35 +798,140 @@ optional externally anchored timestamp:
798
798
  }
799
799
  ```
800
800
 
801
- **How it differs from `verify-bundle`.** `verify-bundle` takes a bundle whose
802
- receipt and signature are already embedded inside it. `verify-record` accepts the
803
- record envelope above, lifts `verification.receipt` / `verification.receiptSignature`
804
- onto the bundle, and then runs the **exact same** integrity + signature checks as
805
- `verify-bundle` (it reuses the identical internal verifier — no duplicated crypto).
806
- The record-level `timestamp.token` takes precedence over any token embedded in the
807
- bundle; if the record omits it, an embedded `trustedTimestamps[]` / `timestamp` is
808
- used instead. Everything else — flags, output, exit-code semantics — is identical
809
- to `verify-bundle`.
801
+ **Fully automatic since v0.16.0.** Give it a record file and nothing else the
802
+ command verifies integrity, the receipt signature, **and** the RFC 3161 timestamp
803
+ automatically, and prints an audit-grade report. It is self-contained: a third party
804
+ needs only the record and this CLI.
810
805
 
811
806
  ```bash
812
- # Integrity + signature of a full record (offline)
813
- nexart verify-record record.json --public-key node-keys.json
807
+ # Full automatic verification: integrity + signature + timestamp
808
+ nexart verify-record record.json
814
809
 
815
- # Machine-readable output
816
- nexart verify-record record.json --public-key node-keys.json --json
810
+ # Machine-readable report
811
+ nexart verify-record record.json --json
812
+
813
+ # Read the record from stdin (use "-" as the path)
814
+ curl -s https://node.example/records/abc.json | nexart verify-record -
815
+
816
+ # One-line verdict only (✔ VERIFIED / ✖ FAILED)
817
+ nexart verify-record record.json --short
818
+
819
+ # Fully offline, with an explicit signing key
820
+ nexart verify-record record.json --offline --public-key node-keys.json
821
+ ```
822
+
823
+ **Flexible input.** The bundle is taken from `record.bundle` when present, or the
824
+ record root is treated as the bundle itself (a certified bundle with its receipt and
825
+ signature embedded works directly). There is no "missing bundle" error — a
826
+ structurally invalid record simply reports a clean **Integrity: FAIL**.
827
+
828
+ **Signing key resolution (by priority).**
829
+
830
+ 1. **`--public-key <file>`** — an explicit override (PEM, JWK, NodeKeysDocument, or
831
+ raw base64url).
832
+ 2. **Auto-fetch** — otherwise the node's published key set is fetched from
833
+ `https://node.nexart.io/.well-known/nexart-node.json` and the key whose `kid`
834
+ matches the receipt's `attestorKeyId` is used. This is the **only** network call
835
+ in the verify path; it lives entirely in the CLI layer (the auditable core never
836
+ touches the network) and fails gracefully — a network error just falls through to
837
+ the next source. Override the URL with `NEXART_NODE_WELLKNOWN_URL`, or disable the
838
+ fetch entirely with **`--offline`**.
839
+ 3. **Embedded key** — a key embedded in the bundle, if any.
840
+
841
+ **Automatic timestamp verification.** An RFC 3161 token at
842
+ `verification.timestamp.token`, `timestamp.token`, or embedded in the bundle is
843
+ verified automatically and offline against an **embedded DigiCert trust store**
844
+ (DigiCert Trusted Root G4 + DigiCert Assured ID Root CA). Override the trusted roots
845
+ with **`--tsa-roots <file>`** (PEM). The ASN.1 stack (`pkijs` / `asn1js`) loads
846
+ **only** when a token is actually present. The timestamp layer is **strictly
847
+ additive**: it never modifies `certificateHash`, is never canonicalised, and **never
848
+ affects the Integrity / Signature result or the exit code** (which is `0` only when
849
+ integrity passes and the signature is not invalid, `1` otherwise) — an
850
+ untrusted-root, imprint-mismatch, or unreadable-`--tsa-roots` outcome is reported as
851
+ a timestamp *status*, never a crash.
852
+
853
+ **Input from a file or stdin.** Pass a file path, or **`-`** to read the record from
854
+ standard input — handy for pipelines such as `curl -s … | nexart verify-record -`.
855
+
856
+ **Report.** The default output is an audit-grade summary — **Integrity**,
857
+ **Signature**, **Timestamp** (`VERIFIED` / `INVALID (<reason>)` / `PRESENT BUT NOT
858
+ VERIFIED` / `NOT INCLUDED IN RECORD`, plus generation time and authority), **Node**
859
+ (node id, key id, key source, operator), **Identity** (asserted identity, or none),
860
+ and **Execution** (protocol, provider, model, input/output hashes, parameters,
861
+ created-at). It ends with a single headline line — **`FINAL STATUS: VERIFIED EVIDENCE
862
+ RECORD`** or **`FINAL STATUS: FAILED`**. `--json` emits the same information as a
863
+ structured object; `--short` prints only `✔ VERIFIED` or `✖ FAILED`.
864
+
865
+ | Option | Description |
866
+ | --- | --- |
867
+ | `--public-key <file>` | Override the signing key. Default: auto-fetched from the node `.well-known` key set. |
868
+ | `--offline` | Do not contact the network; use `--public-key` or a bundle-embedded key only. |
869
+ | `--kid <id>` | Key id to select from the key set (default: the receipt's `attestorKeyId`). |
870
+ | `--tsa-roots <file>` | Override the default DigiCert TSA trust roots with custom root certificate(s) (PEM). |
871
+ | `--json` | Emit a machine-readable report. |
872
+ | `--short` | Print only a single verdict line (`✔ VERIFIED` / `✖ FAILED`). |
873
+ | `--verbose` | Show intermediate verification steps. |
874
+
875
+ > **`verify-bundle` is unchanged.** The redesigned output and automatic key/timestamp
876
+ > resolution apply to `verify-record` only;
877
+ > [`verify-bundle`](#independent-verification-nexart-verify-bundle) keeps its existing
878
+ > behaviour, flags, and byte-for-byte output.
879
+
880
+ ---
881
+
882
+ ## Verifying from a URL (`nexart verify-url`)
883
+
884
+ `nexart verify-url <url>` is the one-command verification experience: it **fetches** a
885
+ CER record (or a bare bundle) as JSON from a URL and verifies it with the exact same
886
+ automatic key/timestamp resolution and audit-grade renderer as `verify-record`.
887
+
888
+ ```bash
889
+ # Fetch and fully verify a published record
890
+ nexart verify-url https://node.example/records/abc.json
817
891
 
818
- # Additionally verify the record's RFC 3161 timestamp against trusted TSA roots
819
- nexart verify-record record.json --public-key node-keys.json \
820
- --verify-timestamp --tsa-roots tsa-roots.pem
892
+ # One-line PASS/FAIL verdict
893
+ nexart verify-url https://node.example/records/abc.json --short
894
+
895
+ # Machine-readable report
896
+ nexart verify-url https://node.example/records/abc.json --json
897
+ ```
898
+
899
+ The response is auto-detected as a **full record** (has `verification.receipt`) or a
900
+ **raw bundle**; both route through the same rich verifier (a bare bundle is accepted
901
+ directly). The URL fetch is the record *source* and always happens; **`--offline`**
902
+ here only disables the separate signing-key auto-fetch (so pair it with `--public-key`
903
+ or rely on a bundle-embedded key). A non-2xx response, a network error, or a
904
+ non-JSON body fails cleanly with exit `1`. All other options match `verify-record`
905
+ (`--public-key`, `--kid`, `--tsa-roots`, `--json`, `--short`, `--verbose`).
906
+
907
+ ---
908
+
909
+ ## Verifying by certificate hash (`nexart verify-hash`)
910
+
911
+ `nexart verify-hash <certificate_hash>` resolves a CER record straight from its
912
+ certificate hash. It constructs the public node lookup URL
913
+ (`https://node.nexart.io/v1/cer/public?certificate_hash=<hash>`) and then verifies it
914
+ through `verify-url`, so the **output is identical** to `verify-url`.
915
+
916
+ ```bash
917
+ # Resolve and fully verify a record by certificate hash
918
+ nexart verify-hash sha256:abc123…
919
+
920
+ # One-line PASS/FAIL verdict
921
+ nexart verify-hash sha256:abc123… --short
922
+
923
+ # Machine-readable report
924
+ nexart verify-hash sha256:abc123… --json
821
925
  ```
822
926
 
823
- The **Integrity**, **Signature**, **Timestamp** semantics, the human-readable and
824
- `--json` shapes, and the option table are all exactly as documented for
825
- [`verify-bundle`](#independent-verification-nexart-verify-bundle) above. The
826
- timestamp layer is, identically, **strictly additive**: `pkijs` is loaded **only**
827
- under `--verify-timestamp`, and the timestamp result **never** affects the
828
- Integrity/Signature outcome or the process exit code (which is `0` only when
829
- integrity passes and the signature is not invalid, `1` otherwise).
927
+ The hash **must** include the canonical `sha256:` prefix; a missing prefix fails
928
+ cleanly with exit `1` (before any network call). Network failures behave exactly like
929
+ `verify-url`. Options match `verify-url` (`--public-key`, `--kid`, `--tsa-roots`,
930
+ `--json`, `--short`, `--offline`, `--verbose`); as with `verify-url`, `--offline` only
931
+ disables the signing-key auto-fetch the record itself is always fetched.
932
+
933
+ > Note: this is distinct from `nexart verify <snapshot>`, which verifies that a
934
+ > snapshot reproduces its expected output.
830
935
 
831
936
  ---
832
937
 
package/dist/index.d.ts CHANGED
@@ -220,27 +220,62 @@ export declare function verifyBundleStandaloneCommand(file: string, opts: {
220
220
  /**
221
221
  * nexart verify-record — Verify a full NexArt CER RECORD offline and independently.
222
222
  *
223
- * A "record" is the full verification envelope: { bundle, verification: { receipt,
224
- * receiptSignature }, timestamp? }. This command is STRICTLY ADDITIVE alongside
225
- * `verify-bundle` and reuses the exact same engine:
223
+ * A "record" is the full verification envelope. v0.16.0 makes this command fully
224
+ * automatic, audit-grade, and self-contained a third party needs only the record
225
+ * file and this CLI:
226
+ * - FLEXIBLE PARSING: the bundle is taken from `record.bundle` when present, or the
227
+ * record root is treated as the bundle itself. There is no "missing bundle" error;
228
+ * a structurally invalid record simply reports a clean Integrity FAIL.
226
229
  * - INTEGRITY + SIGNATURE: the record's `verification.receipt` /
227
- * `verification.receiptSignature` are merged into a SHALLOW copy of `bundle`
228
- * (which never affects the recomputed certificateHash receipt/signature are
229
- * not part of the certificate payload) and handed to verifyBundleStandalone().
230
- * Behaviour, including --public-key / --kid, is identical to verify-bundle.
231
- * - TIMESTAMP (optional, additive): the record-level `timestamp.token` (or a
232
- * bundle-embedded timestamp) is verified via the same resolveTimestampResult()
233
- * path used by verify-bundle. It NEVER affects integrity, signature, or the
234
- * exit code, and the ASN.1 stack loads only behind --verify-timestamp.
230
+ * `verification.receiptSignature` are merged into a SHALLOW copy of the bundle
231
+ * (which never affects the recomputed certificateHash) and handed to
232
+ * verifyBundleStandalone(). The signing public key is, by priority:
233
+ * 1. `--public-key <file>` (explicit override), else
234
+ * 2. auto-fetched from the node's published key set at
235
+ * https://node.nexart.io/.well-known/nexart-node.json, selecting the key
236
+ * whose kid matches the receipt's attestorKeyId (skipped under --offline),
237
+ * else
238
+ * 3. key material embedded in the bundle, if any.
239
+ * - TIMESTAMP (automatic): an RFC 3161 token at `verification.timestamp.token`,
240
+ * `timestamp.token`, or embedded in the bundle is verified automatically and
241
+ * offline against the embedded DigiCert trust store (override with --tsa-roots).
242
+ * The ASN.1 stack loads only when a token is actually present. The timestamp
243
+ * NEVER affects Integrity, Signature, or the exit code.
244
+ *
245
+ * Exit code: 0 when integrity passes and signature is not a failure, 1 otherwise.
235
246
  */
236
- export declare function verifyRecordStandaloneCommand(file: string, opts: {
247
+ export interface RecordVerifyOpts {
237
248
  publicKey?: string;
238
249
  kid?: string;
239
250
  json?: boolean;
240
251
  verbose?: boolean;
241
- verifyTimestamp?: boolean;
242
252
  tsaRoots?: string;
243
- }): Promise<StandaloneVerifyResult>;
253
+ offline?: boolean;
254
+ wellKnownUrl?: string;
255
+ short?: boolean;
256
+ }
257
+ export declare function verifyRecordStandaloneCommand(file: string, opts: RecordVerifyOpts): Promise<StandaloneVerifyResult>;
258
+ /**
259
+ * Verify an already-parsed CER record (or bare bundle) object and render the
260
+ * audit-grade report. This is the shared core behind `verify-record` (file / stdin)
261
+ * and `verify-url` (network), so key resolution, timestamp verification, and the rich
262
+ * renderer behave identically across all input sources.
263
+ */
264
+ export declare function verifyRecordFromObject(record: unknown, opts: RecordVerifyOpts): Promise<StandaloneVerifyResult>;
265
+ /**
266
+ * nexart verify-url — Fetch a CER record (or bare bundle) from a URL and verify it
267
+ * automatically, using the SAME rich renderer and key/timestamp resolution as
268
+ * `verify-record`. The single network fetch here is the record SOURCE; `--offline`
269
+ * still disables the (separate) signing-key auto-fetch, exactly as for verify-record.
270
+ */
271
+ export declare function verifyUrlCommand(url: string, opts: RecordVerifyOpts): Promise<StandaloneVerifyResult>;
272
+ /**
273
+ * nexart verify-hash — Resolve a certificate hash to its public CER record URL and verify it.
274
+ * This is a thin convenience wrapper over `verify-url`: it constructs
275
+ * `${PUBLIC_CER_ENDPOINT}?certificate_hash=<hash>` and delegates, so the output is
276
+ * identical to `verify-url`. The hash must carry the canonical `sha256:` prefix.
277
+ */
278
+ export declare function verifyHashCommand(certificateHash: string, opts: RecordVerifyOpts): Promise<StandaloneVerifyResult>;
244
279
  /**
245
280
  * Render the human-readable timestamp STATUS line WITHOUT importing the ASN.1 stack.
246
281
  * This deliberately mirrors formatTsaLine() in tsaVerify.ts but lives here so the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}