@onchaindiligence/agent-evidence 0.1.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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/conformance/README.md +31 -0
  4. package/conformance/duplicate-outer-key.json +1 -0
  5. package/conformance/manifest.json +74 -0
  6. package/conformance/missing-parent.json +31 -0
  7. package/conformance/noncanonical-payload.json +31 -0
  8. package/conformance/rfc8785-vectors.json +31 -0
  9. package/conformance/valid-full-graph.json +31 -0
  10. package/dist/canonical.d.ts +14 -0
  11. package/dist/canonical.d.ts.map +1 -0
  12. package/dist/canonical.js +249 -0
  13. package/dist/canonical.js.map +1 -0
  14. package/dist/constants.d.ts +9 -0
  15. package/dist/constants.d.ts.map +1 -0
  16. package/dist/constants.js +9 -0
  17. package/dist/constants.js.map +1 -0
  18. package/dist/dsse.d.ts +10 -0
  19. package/dist/dsse.d.ts.map +1 -0
  20. package/dist/dsse.js +85 -0
  21. package/dist/dsse.js.map +1 -0
  22. package/dist/errors.d.ts +16 -0
  23. package/dist/errors.d.ts.map +1 -0
  24. package/dist/errors.js +19 -0
  25. package/dist/errors.js.map +1 -0
  26. package/dist/graph.d.ts +3 -0
  27. package/dist/graph.d.ts.map +1 -0
  28. package/dist/graph.js +227 -0
  29. package/dist/graph.js.map +1 -0
  30. package/dist/index.d.ts +14 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +10 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/records.d.ts +14 -0
  35. package/dist/records.d.ts.map +1 -0
  36. package/dist/records.js +55 -0
  37. package/dist/records.js.map +1 -0
  38. package/dist/schema.d.ts +4 -0
  39. package/dist/schema.d.ts.map +1 -0
  40. package/dist/schema.js +45 -0
  41. package/dist/schema.js.map +1 -0
  42. package/dist/trust.d.ts +64 -0
  43. package/dist/trust.d.ts.map +1 -0
  44. package/dist/trust.js +254 -0
  45. package/dist/trust.js.map +1 -0
  46. package/dist/types.d.ts +83 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/types.js +2 -0
  49. package/dist/types.js.map +1 -0
  50. package/dist/verifier.d.ts +5 -0
  51. package/dist/verifier.d.ts.map +1 -0
  52. package/dist/verifier.js +489 -0
  53. package/dist/verifier.js.map +1 -0
  54. package/examples/withheld-payment.mjs +67 -0
  55. package/package.json +65 -0
  56. package/schemas/attestation-key.schema.json +88 -0
  57. package/schemas/bundle-payload.schema.json +32 -0
  58. package/schemas/catalog.json +20 -0
  59. package/schemas/common.schema.json +35 -0
  60. package/schemas/dsse-envelope.schema.json +34 -0
  61. package/schemas/portable-file.schema.json +62 -0
  62. package/schemas/proof.schema.json +98 -0
  63. package/schemas/record.schema.json +286 -0
package/dist/trust.js ADDED
@@ -0,0 +1,254 @@
1
+ import { createHash, createPublicKey, KeyObject, } from 'node:crypto';
2
+ import { formatTimestamp, parseTimestamp } from './canonical.js';
3
+ import { SchemaValidationError, TrustPolicyError } from './errors.js';
4
+ import { validateDocument } from './schema.js';
5
+ const KEY_ID = /^ed25519-[A-Za-z0-9_-]{16}$/;
6
+ function asBuffer(value) {
7
+ return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
8
+ }
9
+ export function loadPublicKey(value) {
10
+ try {
11
+ const key = value instanceof KeyObject
12
+ ? value
13
+ : value instanceof Uint8Array && !Buffer.isBuffer(value)
14
+ ? createPublicKey(asBuffer(value))
15
+ : createPublicKey(value);
16
+ if (key.type !== 'public' || key.asymmetricKeyType !== 'ed25519') {
17
+ throw new TrustPolicyError('public key must be Ed25519');
18
+ }
19
+ return key;
20
+ }
21
+ catch (error) {
22
+ if (error instanceof TrustPolicyError)
23
+ throw error;
24
+ throw new TrustPolicyError('public key is not a valid Ed25519 SubjectPublicKeyInfo key', { cause: error });
25
+ }
26
+ }
27
+ export function deriveKeyId(publicKey) {
28
+ const key = loadPublicKey(publicKey);
29
+ const der = key.export({ format: 'der', type: 'spki' });
30
+ return `ed25519-${createHash('sha256').update(der).digest('base64url').slice(0, 16)}`;
31
+ }
32
+ function optionalTimestamp(record, name) {
33
+ const value = record[name];
34
+ if (value === null || value === undefined)
35
+ return null;
36
+ if (typeof value !== 'string')
37
+ throw new TrustPolicyError(`${String(name)} must be an exact timestamp or null`);
38
+ try {
39
+ return parseTimestamp(value);
40
+ }
41
+ catch (error) {
42
+ throw new TrustPolicyError(`invalid key ${String(name)}: ${error instanceof Error ? error.message : String(error)}`, {
43
+ cause: error,
44
+ });
45
+ }
46
+ }
47
+ export class AttestationKey {
48
+ keyId;
49
+ publicKey;
50
+ publicKeyPem;
51
+ status;
52
+ replacementKeyId;
53
+ statusReason;
54
+ #validFromMs;
55
+ #validUntilMs;
56
+ #statusChangedAtMs;
57
+ #compromisedAtMs;
58
+ constructor(record, publicKey) {
59
+ this.keyId = record.key_id;
60
+ this.publicKey = publicKey;
61
+ this.publicKeyPem = record.public_key_pem;
62
+ this.status = record.status;
63
+ this.#validFromMs = optionalTimestamp(record, 'valid_from')?.getTime() ?? null;
64
+ this.#validUntilMs = optionalTimestamp(record, 'valid_until')?.getTime() ?? null;
65
+ this.#statusChangedAtMs = optionalTimestamp(record, 'status_changed_at')?.getTime() ?? null;
66
+ this.replacementKeyId = record.replacement_key_id;
67
+ this.#compromisedAtMs = optionalTimestamp(record, 'compromised_at')?.getTime() ?? null;
68
+ if (record.status_reason !== undefined)
69
+ this.statusReason = record.status_reason;
70
+ }
71
+ get validFrom() { return this.#validFromMs === null ? null : new Date(this.#validFromMs); }
72
+ get validUntil() { return this.#validUntilMs === null ? null : new Date(this.#validUntilMs); }
73
+ get statusChangedAt() {
74
+ return this.#statusChangedAtMs === null ? null : new Date(this.#statusChangedAtMs);
75
+ }
76
+ get compromisedAt() {
77
+ return this.#compromisedAtMs === null ? null : new Date(this.#compromisedAtMs);
78
+ }
79
+ static fromRecord(input) {
80
+ const record = structuredClone(input);
81
+ try {
82
+ validateDocument('attestation-key.schema.json', record);
83
+ }
84
+ catch (error) {
85
+ if (error instanceof SchemaValidationError)
86
+ throw new TrustPolicyError(error.message, { cause: error });
87
+ throw error;
88
+ }
89
+ if (!KEY_ID.test(record.key_id))
90
+ throw new TrustPolicyError('invalid Ed25519 key_id');
91
+ const publicKey = loadPublicKey(record.public_key_pem);
92
+ const derived = deriveKeyId(publicKey);
93
+ if (derived !== record.key_id) {
94
+ throw new TrustPolicyError(`key_id does not match SPKI public key: expected ${derived}`);
95
+ }
96
+ const key = new AttestationKey(record, publicKey);
97
+ if (key.validFrom && key.validUntil && key.validUntil.getTime() < key.validFrom.getTime()) {
98
+ throw new TrustPolicyError('valid_until precedes valid_from');
99
+ }
100
+ if (key.validFrom && key.statusChangedAt && key.statusChangedAt.getTime() < key.validFrom.getTime()) {
101
+ throw new TrustPolicyError('status_changed_at precedes valid_from');
102
+ }
103
+ if (key.validFrom && key.compromisedAt && key.compromisedAt.getTime() < key.validFrom.getTime()) {
104
+ throw new TrustPolicyError('compromised_at precedes valid_from');
105
+ }
106
+ if ((key.status === 'revoked' || key.status === 'compromised') && !key.statusChangedAt) {
107
+ throw new TrustPolicyError(`${key.status} key requires status_changed_at`);
108
+ }
109
+ if (key.replacementKeyId === key.keyId)
110
+ throw new TrustPolicyError('a key cannot name itself as its replacement');
111
+ return key;
112
+ }
113
+ toRecord() {
114
+ const record = {
115
+ key_id: this.keyId,
116
+ algorithm: 'ed25519',
117
+ public_key_pem: this.publicKeyPem,
118
+ status: this.status,
119
+ valid_from: this.validFrom?.toISOString() ?? null,
120
+ valid_until: this.validUntil?.toISOString() ?? null,
121
+ status_changed_at: this.statusChangedAt?.toISOString() ?? null,
122
+ replacement_key_id: this.replacementKeyId,
123
+ compromised_at: this.compromisedAt?.toISOString() ?? null,
124
+ };
125
+ if (this.statusReason !== undefined)
126
+ record.status_reason = this.statusReason;
127
+ return record;
128
+ }
129
+ }
130
+ function timestamp(value) {
131
+ if (value instanceof Date)
132
+ return formatTimestamp(value);
133
+ return value ?? null;
134
+ }
135
+ export function createKeyRecord(publicKeyInput, options) {
136
+ const publicKey = loadPublicKey(publicKeyInput);
137
+ const status = options.status ?? 'active';
138
+ const validFrom = timestamp(options.validFrom);
139
+ const changed = options.statusChangedAt === undefined && status === 'active'
140
+ ? validFrom
141
+ : timestamp(options.statusChangedAt);
142
+ const record = {
143
+ key_id: deriveKeyId(publicKey),
144
+ algorithm: 'ed25519',
145
+ public_key_pem: publicKey.export({ format: 'pem', type: 'spki' }).toString(),
146
+ status,
147
+ valid_from: validFrom,
148
+ valid_until: timestamp(options.validUntil),
149
+ status_changed_at: changed,
150
+ replacement_key_id: options.replacementKeyId ?? null,
151
+ compromised_at: timestamp(options.compromisedAt),
152
+ };
153
+ if (options.statusReason !== undefined)
154
+ record.status_reason = options.statusReason;
155
+ return AttestationKey.fromRecord(record).toRecord();
156
+ }
157
+ export class TrustPolicy {
158
+ minimumValidSignatures;
159
+ maxFutureSkewMs;
160
+ maxBundleAgeMs;
161
+ enforceEvidenceExpiration;
162
+ allowDigestOnlyEvidence;
163
+ requireVerifiedAnchor;
164
+ maxFileSize;
165
+ maxDepth;
166
+ maxStringLength;
167
+ maxArrayLength;
168
+ #keys;
169
+ #nowMs;
170
+ #requiredSignatureKeyIds;
171
+ constructor(keys, options) {
172
+ this.#nowMs = options.now?.getTime() ?? Date.now();
173
+ if (Number.isNaN(this.#nowMs))
174
+ throw new TrustPolicyError('policy now must be a valid Date');
175
+ this.#requiredSignatureKeyIds = new Set(options.requiredSignatureKeyIds ?? []);
176
+ this.minimumValidSignatures = options.minimumValidSignatures ?? 1;
177
+ this.maxFutureSkewMs = options.maxFutureSkewMs ?? 5 * 60 * 1000;
178
+ this.maxBundleAgeMs = options.maxBundleAgeMs ?? null;
179
+ this.enforceEvidenceExpiration = options.enforceEvidenceExpiration ?? true;
180
+ this.allowDigestOnlyEvidence = options.allowDigestOnlyEvidence ?? false;
181
+ this.requireVerifiedAnchor = options.requireVerifiedAnchor ?? false;
182
+ this.maxFileSize = options.maxFileSize ?? 10 * 1024 * 1024;
183
+ this.maxDepth = options.maxDepth ?? 64;
184
+ this.maxStringLength = options.maxStringLength ?? 1024 * 1024;
185
+ this.maxArrayLength = options.maxArrayLength ?? 10_000;
186
+ if (!Number.isInteger(this.minimumValidSignatures) || this.minimumValidSignatures < 1) {
187
+ throw new TrustPolicyError('minimumValidSignatures must be at least one');
188
+ }
189
+ if (this.maxFutureSkewMs < 0)
190
+ throw new TrustPolicyError('maxFutureSkewMs cannot be negative');
191
+ if (this.maxBundleAgeMs !== null && this.maxBundleAgeMs < 0) {
192
+ throw new TrustPolicyError('maxBundleAgeMs cannot be negative');
193
+ }
194
+ if ([this.maxFileSize, this.maxDepth, this.maxStringLength, this.maxArrayLength].some((value) => value < 1)) {
195
+ throw new TrustPolicyError('parser limits must be positive');
196
+ }
197
+ const missing = [...this.#requiredSignatureKeyIds].filter((keyId) => !keys.has(keyId));
198
+ if (missing.length) {
199
+ throw new TrustPolicyError(`required signature keys are absent from caller trust: ${missing.sort().join(', ')}`);
200
+ }
201
+ this.#keys = new Map(keys);
202
+ }
203
+ static fromKeyRecords(records, options = {}) {
204
+ const keys = new Map();
205
+ for (const record of records) {
206
+ const key = AttestationKey.fromRecord(record);
207
+ if (keys.has(key.keyId))
208
+ throw new TrustPolicyError(`duplicate caller-trusted key: ${key.keyId}`);
209
+ keys.set(key.keyId, key);
210
+ }
211
+ for (const key of keys.values()) {
212
+ if (key.replacementKeyId && !keys.has(key.replacementKeyId)) {
213
+ throw new TrustPolicyError(`key ${key.keyId} references an absent replacement key: ${key.replacementKeyId}`);
214
+ }
215
+ }
216
+ return new TrustPolicy(keys, options);
217
+ }
218
+ key(keyId) {
219
+ return this.#keys.get(keyId);
220
+ }
221
+ get now() { return new Date(this.#nowMs); }
222
+ get requiredSignatureKeyIds() {
223
+ return new Set(this.#requiredSignatureKeyIds);
224
+ }
225
+ }
226
+ export function evaluateKeyLifecycle(key, signedAt, policy) {
227
+ if (key.status === 'revoked')
228
+ return ['INVALID', 'key-revoked', 'the caller-trusted key is revoked'];
229
+ if (key.status === 'compromised')
230
+ return ['INVALID', 'key-compromised', 'the caller-trusted key is compromised'];
231
+ if (!key.validFrom) {
232
+ return ['UNVERIFIABLE', 'key-valid-from-missing', 'the caller-trusted key has no defensible activation boundary'];
233
+ }
234
+ if (!signedAt) {
235
+ if (key.status === 'retired') {
236
+ return ['UNVERIFIABLE', 'signature-time-missing', 'a retired key cannot validate a proof that carries no signed issuance time'];
237
+ }
238
+ if (policy.now.getTime() < key.validFrom.getTime()) {
239
+ return ['INVALID', 'key-not-yet-valid', 'the key is not active at policy time'];
240
+ }
241
+ return ['VALID', 'key-active', 'the caller-trusted key is currently active'];
242
+ }
243
+ if (signedAt.getTime() > policy.now.getTime() + policy.maxFutureSkewMs) {
244
+ return ['INVALID', 'signature-time-future', 'signed time exceeds allowed clock skew'];
245
+ }
246
+ if (signedAt.getTime() < key.validFrom.getTime()) {
247
+ return ['INVALID', 'key-not-yet-valid', 'signed time precedes key activation'];
248
+ }
249
+ if (key.validUntil && signedAt.getTime() > key.validUntil.getTime()) {
250
+ return ['INVALID', 'key-expired', 'signed time follows the key validity interval'];
251
+ }
252
+ return ['VALID', 'key-window-valid', 'signed time is inside the key validity interval'];
253
+ }
254
+ //# sourceMappingURL=trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.js","sourceRoot":"","sources":["../src/trust.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import type { KeyObject } from 'node:crypto';
2
+ import type { BUNDLE_VERSION, RECORD_VERSION } from './constants.js';
3
+ export type JsonPrimitive = null | boolean | number | string;
4
+ export type JsonValue = JsonPrimitive | JsonValue[] | {
5
+ [key: string]: JsonValue;
6
+ };
7
+ export type JsonObject = {
8
+ [key: string]: JsonValue;
9
+ };
10
+ export type RecordKind = 'principal' | 'agent' | 'mandate' | 'run' | 'evidence' | 'policy' | 'decision' | 'execution';
11
+ export interface AgentEvidenceRecord {
12
+ id: string;
13
+ record_version: typeof RECORD_VERSION;
14
+ kind: RecordKind;
15
+ parents: string[];
16
+ statement: JsonObject;
17
+ proofs: JsonObject[];
18
+ }
19
+ export interface BundlePayload {
20
+ bundle_version: typeof BUNDLE_VERSION;
21
+ bundle_id: string;
22
+ created_at: string;
23
+ run_id: string;
24
+ root_ids: string[];
25
+ records: AgentEvidenceRecord[];
26
+ extensions: JsonObject;
27
+ }
28
+ export interface DsseSignature {
29
+ keyid: string;
30
+ sig: string;
31
+ }
32
+ export interface DsseEnvelope {
33
+ payloadType: string;
34
+ payload: string;
35
+ signatures: DsseSignature[];
36
+ }
37
+ export interface AttestationKeyRecord extends JsonObject {
38
+ key_id: string;
39
+ algorithm: 'ed25519';
40
+ public_key_pem: string;
41
+ status: 'active' | 'retired' | 'revoked' | 'compromised';
42
+ valid_from: string | null;
43
+ valid_until: string | null;
44
+ status_changed_at: string | null;
45
+ replacement_key_id: string | null;
46
+ compromised_at: string | null;
47
+ status_reason?: string;
48
+ }
49
+ export interface VerificationMaterial {
50
+ keys: AttestationKeyRecord[];
51
+ registry_snapshots: JsonObject[];
52
+ anchors: JsonObject[];
53
+ }
54
+ export interface PortableBundle {
55
+ media_type: string;
56
+ bundle_version: typeof BUNDLE_VERSION;
57
+ envelope: DsseEnvelope;
58
+ verification_material: VerificationMaterial;
59
+ }
60
+ export type KeyInput = string | Buffer | Uint8Array | KeyObject;
61
+ export interface Ed25519Signer {
62
+ readonly keyId: string;
63
+ readonly publicKey: KeyInput;
64
+ sign(message: Uint8Array): Uint8Array | Promise<Uint8Array>;
65
+ }
66
+ export type VerificationState = 'VALID' | 'INVALID' | 'UNVERIFIABLE';
67
+ export interface ComponentResult {
68
+ component: string;
69
+ state: VerificationState;
70
+ code: string;
71
+ message: string;
72
+ required: boolean;
73
+ key_id?: string;
74
+ record_id?: string;
75
+ }
76
+ export interface VerificationReport {
77
+ state: VerificationState;
78
+ valid: boolean;
79
+ bundle_id: string | null;
80
+ components: ComponentResult[];
81
+ payload?: BundlePayload;
82
+ }
83
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { TrustPolicy } from './trust.js';
2
+ import type { ComponentResult, PortableBundle, VerificationReport, VerificationState } from './types.js';
3
+ export declare function overallState(components: readonly ComponentResult[]): VerificationState;
4
+ export declare function verifyBundle(document: string | Uint8Array | PortableBundle | Record<string, unknown>, policy: TrustPolicy): VerificationReport;
5
+ //# sourceMappingURL=verifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA6C,WAAW,EAAE,MAAM,YAAY,CAAA;AACnF,OAAO,KAAK,EAGV,eAAe,EAIf,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAA;AA4BnB,wBAAgB,YAAY,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,iBAAiB,CAKtF;AAoXD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxE,MAAM,EAAE,WAAW,GAClB,kBAAkB,CA6JpB"}