aqta-verify-receipt 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,18 +1,6 @@
1
- ```
2
- ▄▄▄▄▄▄▄▄
3
- ▄███████▀████▄▄
4
- ▄████████████████
5
- ██████████████▀▀
6
- █████████████▀
7
- ▄█████████████
8
- ▄██████████████
9
- ▄█████████████████
10
- ▄███████████████████
11
- ████████████████████ ▄
12
- ██████████████▀ ████ ▄▀
13
- ▀▀█████████▀ ███▀ ▄▄▀▀
14
- ▀▀▀██▄▄▄▄▄▄██▀ ▀▀
15
- ```
1
+ <p align="center">
2
+ <img src="https://aqta.ai/brand/seal-mark-512.png" alt="Seal" width="96" height="96" />
3
+ </p>
16
4
 
17
5
  # aqta-verify-receipt
18
6
 
@@ -30,20 +18,42 @@ Same algorithm on npm and PyPI. Reference implementation, not a platform SDK.
30
18
  ## 30-second check
31
19
 
32
20
  ```bash
33
- # download a receipt JSON, then:
34
- npx aqta-verify-receipt@1.0.5 receipt.json \
21
+ npx aqta-verify-receipt@1.0.8 receipt.json \
35
22
  --key gUoUhIvptKAoLTnry3VrDtOQEWggGQveLrHFVrfNqmE
36
23
  ```
37
24
 
38
- Or pipe a public share link body:
25
+ Default output is one compact line (words carry meaning; colour is optional):
26
+
27
+ ```
28
+ ✓ valid ALLOWED 2d41…871e94c pinned issuer key
29
+ ```
30
+
31
+ Invalid:
32
+
33
+ ```
34
+ ✕ invalid signature mismatch 2d41…871e94c
35
+ ```
36
+
37
+ Optional flourish (never the proof):
39
38
 
40
39
  ```bash
41
- curl -sS https://api.aqta.ai/r/YOUR_RECEIPT_ID | npx aqta-verify-receipt@1.0.5 - \
42
- --key gUoUhIvptKAoLTnry3VrDtOQEWggGQveLrHFVrfNqmE
40
+ npx aqta-verify-receipt@1.0.8 receipt.json --key <pinned> --pretty
41
+ # …
42
+ ◈ seal intact · verified offline
43
+ ```
44
+
45
+ Automation:
46
+
47
+ ```bash
48
+ npx aqta-verify-receipt@1.0.8 receipt.json --key <pinned> --json
49
+ npx aqta-verify-receipt@1.0.8 receipt.json --key <pinned> -q; echo $?
43
50
  ```
44
51
 
45
- `ok` + exit `0` means the Ed25519 signature verifies against the pinned key.
46
- `fail` + exit `1` means it does not. Exit `2` is usage or IO.
52
+ | Exit | Meaning |
53
+ |------|---------|
54
+ | `0` | valid |
55
+ | `1` | invalid |
56
+ | `2` | usage / IO |
47
57
 
48
58
  Production public key (also at
49
59
  [`/v1/attestation/public-key`](https://api.aqta.ai/v1/attestation/public-key),
@@ -90,8 +100,8 @@ verify collapses trust back to "trust the issuer's server right now".
90
100
  ## CLI
91
101
 
92
102
  ```
93
- aqta-verify-receipt <file|-> --key <base64url> [--no-strict] [-q]
94
- aqta-verify-receipt <file|-> --integrity-only [--no-strict] [-q]
103
+ aqta-verify-receipt <file|-> --key <base64url> [options]
104
+ aqta-verify-receipt <file|-> --integrity-only [options]
95
105
  ```
96
106
 
97
107
  | Flag | Meaning |
@@ -99,8 +109,12 @@ aqta-verify-receipt <file|-> --integrity-only [--no-strict] [-q]
99
109
  | `--key` | Pin issuer identity (required for counsel-grade). |
100
110
  | `--integrity-only` | Signature vs embedded key only; returns untrusted. Anyone can self-sign. |
101
111
  | `--no-strict` | Allow unknown top-level fields |
112
+ | `--json` | One JSON object on stdout |
113
+ | `--pretty` | Optional human flourish after the compact line (not the proof) |
102
114
  | `-q` | Silent; exit code only |
103
115
 
116
+ `NO_COLOR=1` disables colour. Meaning never depends on colour alone.
117
+
104
118
  ## API
105
119
 
106
120
  ### `verifyReceipt(receipt, options?) → { valid, reason?, keySource? }`
@@ -123,7 +137,8 @@ Conformance suite (6 valid + 8 invalid):
123
137
  ## What this is not
124
138
 
125
139
  Not a governance dashboard. Not a cost router. Not a chain explorer.
126
- A small verifier for one signed model-call receipt.
140
+ A small verifier for one signed model-call receipt. The novel part is the
141
+ receipt format and offline verification model, not ASCII theatre.
127
142
 
128
143
  ## Security
129
144
 
package/dist/cli.js CHANGED
@@ -7,78 +7,78 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  * Offline check of an ATTESTATION-v1 receipt. No account. No network by
8
8
  * default. Exit 0 if the signature verifies, 1 if not, 2 on usage/IO errors.
9
9
  *
10
+ * Default output is one compact, scriptable line on stdout. Colour is
11
+ * presentation only (NO_COLOR / non-TTY disables it). --pretty adds a short
12
+ * human flourish; it is never the verification contract.
13
+ *
10
14
  * npx aqta-verify-receipt receipt.json --key <base64url-ed25519-key>
11
15
  * curl -sS https://api.aqta.ai/r/REC_ID | npx aqta-verify-receipt - --key <key>
12
- * npx aqta-verify-receipt receipt.json --integrity-only
16
+ * npx aqta-verify-receipt receipt.json --key <key> --json
17
+ * npx aqta-verify-receipt receipt.json --key <key> --pretty
13
18
  */
14
19
  const fs_1 = require("fs");
15
20
  const index_1 = require("./index");
16
21
  const PUB_KEY_HINT = 'https://api.aqta.ai/v1/attestation/public-key';
17
- /**
18
- * Human-facing stamp on stderr, TTY only, so piped runs still see exactly the
19
- * machine line on stdout. A small mark, aligned rows, and a single coloured
20
- * verdict token: green when the signature holds, red when it does not. No
21
- * block art, no flood of colour. This is a tool an auditor runs.
22
- */
23
- function stamp(receipt, valid, reason, trust) {
24
- if (!process.stderr.isTTY)
25
- return;
26
- const utf8 = /UTF-?8/i.test(process.env.LC_ALL || process.env.LC_CTYPE || process.env.LANG || '');
27
- const MARK = utf8 ? '•ᴥ•' : 'o.o';
28
- const DOT = utf8 ? '·' : '-';
29
- const ELL = utf8 ? '…' : '...';
30
- const OK = utf8 ? '✓' : '+';
31
- const NO = utf8 ? '✗' : 'x';
32
- const ESC = String.fromCharCode(27);
33
- const colour = process.env.NO_COLOR === undefined;
34
- const paint = (code, s) => colour ? ESC + '[' + code + 'm' + s + ESC + '[0m' : s;
35
- const dim = (s) => paint('2', s);
36
- const r = receipt;
37
- const str = (v) => (typeof v === 'string' ? v : '?');
38
- const mid = (v, head = 8, tail = 6) => {
39
- const s = str(v);
40
- return s.length > head + tail + 1 ? s.slice(0, head) + ELL + s.slice(-tail) : s;
41
- };
42
- const policies = Array.isArray(r.policy_applied) && r.policy_applied.length
43
- ? r.policy_applied.map(str).join(' ' + DOT + ' ')
44
- : '';
45
- const rows = [
46
- ['outcome', str(r.outcome)],
47
- ['model', str(r.model)],
48
- ];
49
- if (policies)
50
- rows.push(['rules', policies]);
51
- rows.push(['key', trust]);
52
- rows.push(['request', mid(r.request_hash)]);
53
- rows.push(['id', mid(r.attestation_id, 8, 4)]);
54
- const out = ['', ' ' + dim(MARK + ' Seal ' + DOT + ' ATTESTATION-v1'), ''];
55
- for (const [k, v] of rows)
56
- out.push(' ' + dim(k.padEnd(8)) + v);
57
- out.push('');
58
- out.push(valid
59
- ? ' ' + paint('32', OK + ' sealed') + ' ' + dim('signature valid, checked offline')
60
- : ' ' + paint('31', NO + ' broken') + ' ' + dim(reason ?? 'signature does not match the key'));
61
- out.push('');
62
- process.stderr.write(out.join('\n') + '\n');
22
+ function useUtf8() {
23
+ return /UTF-?8/i.test(process.env.LC_ALL || process.env.LC_CTYPE || process.env.LANG || '');
24
+ }
25
+ function useColour() {
26
+ return (process.stdout.isTTY === true &&
27
+ process.env.NO_COLOR === undefined &&
28
+ process.env.TERM !== 'dumb');
29
+ }
30
+ function paint(code, s) {
31
+ if (!useColour())
32
+ return s;
33
+ return `\x1b[${code}m${s}\x1b[0m`;
34
+ }
35
+ function mid(s, head = 4, tail = 6) {
36
+ const ell = useUtf8() ? '…' : '...';
37
+ return s.length > head + tail + 1 ? `${s.slice(0, head)}${ell}${s.slice(-tail)}` : s;
63
38
  }
64
39
  function usage() {
65
- console.error(`aqta-verify-receipt - offline check for ATTESTATION-v1 (Seal)
40
+ process.stderr.write(`aqta-verify-receipt - offline check for ATTESTATION-v1 (Seal)
66
41
 
67
42
  Usage:
68
- aqta-verify-receipt <receipt.json | -> --key <base64url> [--no-strict] [-q]
69
- aqta-verify-receipt <receipt.json | -> --integrity-only [--no-strict] [-q]
43
+ aqta-verify-receipt <receipt.json | -> --key <base64url> [options]
44
+ aqta-verify-receipt <receipt.json | -> --integrity-only [options]
70
45
 
71
46
  Options:
72
47
  --key <key> pin the issuer public key (required for counsel-grade)
73
48
  --integrity-only check signature vs embedded key only (anyone can self-sign)
74
49
  --no-strict allow unknown top-level fields
50
+ --json machine JSON on stdout (one object)
51
+ --pretty optional human flourish after the compact line
75
52
  -q, --quiet exit code only
76
53
 
54
+ Contract:
55
+ exit 0 valid · exit 1 invalid · exit 2 usage/IO
56
+ default stdout is one compact line (words carry meaning; colour is optional)
57
+ --pretty never changes the exit code or the verify result
58
+
77
59
  Pin the production key once from ${PUB_KEY_HINT}
78
60
  (field public_key). Do not re-fetch on every verify.
79
61
  `);
80
62
  process.exit(2);
81
63
  }
64
+ function compactLine(valid, outcome, id, trustOrReason) {
65
+ const utf8 = useUtf8();
66
+ const ok = utf8 ? '✓' : '+';
67
+ const no = utf8 ? '✕' : 'x';
68
+ if (valid) {
69
+ return `${paint('32', `${ok} valid`)} ${outcome} ${mid(id)} ${trustOrReason}`;
70
+ }
71
+ return `${paint('31', `${no} invalid`)} ${trustOrReason} ${mid(id)}`;
72
+ }
73
+ function prettyExtra(valid) {
74
+ const utf8 = useUtf8();
75
+ const mark = utf8 ? '◈' : '*';
76
+ const dot = utf8 ? '·' : '-';
77
+ if (valid) {
78
+ return `${mark} seal intact ${dot} verified offline`;
79
+ }
80
+ return `${mark} seal broken ${dot} do not trust this receipt`;
81
+ }
82
82
  function main() {
83
83
  const args = process.argv.slice(2);
84
84
  if (args.length === 0 || args.includes('--help') || args.includes('-h'))
@@ -88,6 +88,8 @@ function main() {
88
88
  let integrityOnly = false;
89
89
  let strict = true;
90
90
  let quiet = false;
91
+ let asJson = false;
92
+ let pretty = false;
91
93
  for (let i = 0; i < args.length; i++) {
92
94
  const a = args[i];
93
95
  if (a === '--key') {
@@ -104,6 +106,12 @@ function main() {
104
106
  else if (a === '--quiet' || a === '-q') {
105
107
  quiet = true;
106
108
  }
109
+ else if (a === '--json') {
110
+ asJson = true;
111
+ }
112
+ else if (a === '--pretty') {
113
+ pretty = true;
114
+ }
107
115
  else if (!file) {
108
116
  file = a;
109
117
  }
@@ -114,11 +122,15 @@ function main() {
114
122
  if (!file)
115
123
  usage();
116
124
  if (!trustedKey && !integrityOnly) {
117
- console.error('aqta-verify-receipt: pass --key <pinned> (or --integrity-only for embedded-key checks)');
125
+ process.stderr.write('aqta-verify-receipt: pass --key <pinned> (or --integrity-only for embedded-key checks)\n');
118
126
  process.exit(2);
119
127
  }
120
128
  if (trustedKey && integrityOnly) {
121
- console.error('aqta-verify-receipt: use --key or --integrity-only, not both');
129
+ process.stderr.write('aqta-verify-receipt: use --key or --integrity-only, not both\n');
130
+ process.exit(2);
131
+ }
132
+ if (quiet && (asJson || pretty)) {
133
+ process.stderr.write('aqta-verify-receipt: -q cannot be combined with --json or --pretty\n');
122
134
  process.exit(2);
123
135
  }
124
136
  let raw;
@@ -126,7 +138,7 @@ function main() {
126
138
  raw = file === '-' ? (0, fs_1.readFileSync)(0, 'utf8') : (0, fs_1.readFileSync)(file, 'utf8');
127
139
  }
128
140
  catch {
129
- console.error(`aqta-verify-receipt: cannot read ${file === '-' ? 'stdin' : file}`);
141
+ process.stderr.write(`aqta-verify-receipt: cannot read ${file === '-' ? 'stdin' : file}\n`);
130
142
  process.exit(2);
131
143
  }
132
144
  let receipt;
@@ -134,7 +146,7 @@ function main() {
134
146
  receipt = JSON.parse(raw);
135
147
  }
136
148
  catch {
137
- console.error('aqta-verify-receipt: input is not valid JSON');
149
+ process.stderr.write('aqta-verify-receipt: input is not valid JSON\n');
138
150
  process.exit(2);
139
151
  }
140
152
  const result = (0, index_1.verifyReceipt)(receipt, {
@@ -142,21 +154,26 @@ function main() {
142
154
  allowUntrustedEmbeddedKey: integrityOnly,
143
155
  strictFields: strict,
144
156
  });
157
+ const id = typeof receipt.attestation_id === 'string' ? receipt.attestation_id : '?';
158
+ const outcome = typeof receipt.outcome === 'string' ? receipt.outcome : '?';
159
+ const trust = result.keySource === 'pinned'
160
+ ? 'pinned issuer key'
161
+ : 'untrusted embedded key (integrity only)';
145
162
  if (!quiet) {
146
- const trust = result.keySource === 'pinned'
147
- ? 'pinned key'
148
- : 'untrusted embedded key (integrity only)';
149
- stamp(receipt, result.valid, result.reason, trust);
150
- // One machine-readable line, emitted only when stdout is not a terminal,
151
- // so an interactive run shows just the stamp and `... | tool` still parses.
152
- if (!process.stdout.isTTY) {
153
- const id = typeof receipt.attestation_id === 'string' ? receipt.attestation_id : '?';
154
- const outcome = typeof receipt.outcome === 'string' ? receipt.outcome : '?';
155
- if (result.valid) {
156
- console.log(`ok ${outcome} ${id} ${trust}`);
157
- }
158
- else {
159
- console.log(`fail ${result.reason ?? 'verification failed'} ${id}`);
163
+ if (asJson) {
164
+ process.stdout.write(JSON.stringify({
165
+ valid: result.valid,
166
+ outcome,
167
+ attestation_id: id,
168
+ key_source: result.keySource ?? null,
169
+ reason: result.valid ? null : result.reason ?? 'verification failed',
170
+ }) + '\n');
171
+ }
172
+ else {
173
+ const detail = result.valid ? trust : result.reason ?? 'verification failed';
174
+ process.stdout.write(compactLine(result.valid, outcome, id, detail) + '\n');
175
+ if (pretty) {
176
+ process.stdout.write(prettyExtra(result.valid) + '\n');
160
177
  }
161
178
  }
162
179
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aqta-verify-receipt",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "Offline CLI and library for Seal ATTESTATION-v1 receipts. Ed25519 check of a signed model call; no account, no Aqta server required.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",