@zanii/core 0.5.1 → 0.5.3
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 +2 -0
- package/dist/a2a.d.ts +7 -0
- package/dist/a2a.d.ts.map +1 -1
- package/dist/a2a.js +8 -1
- package/dist/a2a.js.map +1 -1
- package/dist/bundle.d.ts +4 -0
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +36 -6
- package/dist/bundle.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/receipt.d.ts +17 -0
- package/dist/receipt.d.ts.map +1 -1
- package/dist/receipt.js +27 -3
- package/dist/receipt.js.map +1 -1
- package/dist/swarm.d.ts +45 -0
- package/dist/swarm.d.ts.map +1 -0
- package/dist/swarm.js +81 -0
- package/dist/swarm.js.map +1 -0
- package/package.json +1 -1
- package/src/a2a.ts +148 -139
- package/src/bundle.ts +214 -176
- package/src/index.ts +6 -0
- package/src/receipt.ts +340 -308
- package/src/swarm.ts +102 -0
package/README.md
CHANGED
|
@@ -61,6 +61,8 @@ revocations, and on-chain anchor consistency.
|
|
|
61
61
|
|
|
62
62
|
## Changelog
|
|
63
63
|
|
|
64
|
+
- **0.5.3** — protocol 1.3: `payloadBytes` encodes non-integer numbers as RFC 8785 specifies instead of refusing them; whole numbers beyond ±(2^53−1) stay refused.
|
|
65
|
+
- **0.5.2** — optional `risk` level on receipts (`RISK_LEVELS`, `isRiskLevel`); session-close receipts (`SESSION_CLOSE_TARGET`, `isSessionClose`) reported by `verifyAuditBundle`; swarm receipt verification moved here so an honest swarm co-signer's audit bundle verifies; integers beyond ±(2^53−1) refused in payloads (protocol 1.2).
|
|
64
66
|
- **0.4.0** — optional signature-covered `subject_tag` receipt field (per-subject auditability, `@zanii/subject`).
|
|
65
67
|
- **0.3.0** — `saltedPayloadHash`/`verifyPayload`, `createConfirmation`/`verifyConfirmation`, `createCoSignature`/`verifyCoSignature`, and optional receipt provenance fields (`runtime_hash`/`model_id`/`manifest_hash`).
|
|
66
68
|
- **0.2.0** — version bump in lockstep with the package family (no API changes).
|
package/dist/a2a.d.ts
CHANGED
|
@@ -41,11 +41,16 @@ export declare function verifyA2AReceipt(receipt: A2AReceipt, opts?: {
|
|
|
41
41
|
expectedPrevFor?: Record<string, string | null>;
|
|
42
42
|
}): VerifyResult;
|
|
43
43
|
/** The DIDs participating in any log receipt (solo or a2a). */
|
|
44
|
+
type SignerLike = {
|
|
45
|
+
agent_id?: string;
|
|
46
|
+
prev?: string | null;
|
|
47
|
+
};
|
|
44
48
|
export declare function participantsOf(entry: {
|
|
45
49
|
agent_id?: string;
|
|
46
50
|
type?: string;
|
|
47
51
|
initiator?: A2AParty;
|
|
48
52
|
responder?: A2AParty;
|
|
53
|
+
signers?: SignerLike[];
|
|
49
54
|
}): string[];
|
|
50
55
|
/** The `prev` a given participant declared in a log receipt, or undefined if not a party. */
|
|
51
56
|
export declare function prevFor(entry: {
|
|
@@ -54,5 +59,7 @@ export declare function prevFor(entry: {
|
|
|
54
59
|
type?: string;
|
|
55
60
|
initiator?: A2AParty;
|
|
56
61
|
responder?: A2AParty;
|
|
62
|
+
signers?: SignerLike[];
|
|
57
63
|
}, agentId: string): string | null | undefined;
|
|
64
|
+
export {};
|
|
58
65
|
//# sourceMappingURL=a2a.d.ts.map
|
package/dist/a2a.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../src/a2a.ts"],"names":[],"mappings":"AAOA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG;IAClE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;CAClC,GAAG,OAAO,CAeV;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAEzE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU,CAMxG;AAED,sFAAsF;AACtF,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEnD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAInD;AAaD,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EACnB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CAAO,GACpF,YAAY,CAsBd;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../src/a2a.ts"],"names":[],"mappings":"AAOA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG;IAClE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;CAClC,GAAG,OAAO,CAeV;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAEzE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU,CAMxG;AAED,sFAAsF;AACtF,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEnD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAInD;AAaD,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EACnB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CAAO,GACpF,YAAY,CAsBd;AAED,+DAA+D;AAC/D,KAAK,UAAU,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE9D,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;CAAE,GAAG,MAAM,EAAE,CAMxJ;AAED,6FAA6F;AAC7F,wBAAgB,OAAO,CACrB,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;CAAE,EACrI,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,GAAG,SAAS,CAW3B"}
|
package/dist/a2a.js
CHANGED
|
@@ -82,10 +82,13 @@ export function verifyA2AReceipt(receipt, opts = {}) {
|
|
|
82
82
|
}
|
|
83
83
|
return { ok: true };
|
|
84
84
|
}
|
|
85
|
-
/** The DIDs participating in any log receipt (solo or a2a). */
|
|
86
85
|
export function participantsOf(entry) {
|
|
87
86
|
if (entry.type === 'a2a')
|
|
88
87
|
return [entry.initiator.agent_id, entry.responder.agent_id];
|
|
88
|
+
// Attribute a swarm receipt to its actual co-signers, never to declared participants
|
|
89
|
+
// who did not sign (SPEC §14) — the same rule the log uses when it indexes one.
|
|
90
|
+
if (entry.type === 'swarm')
|
|
91
|
+
return (entry.signers ?? []).map((s) => s.agent_id).filter((a) => !!a);
|
|
89
92
|
return entry.agent_id ? [entry.agent_id] : [];
|
|
90
93
|
}
|
|
91
94
|
/** The `prev` a given participant declared in a log receipt, or undefined if not a party. */
|
|
@@ -97,6 +100,10 @@ export function prevFor(entry, agentId) {
|
|
|
97
100
|
return entry.responder.prev;
|
|
98
101
|
return undefined;
|
|
99
102
|
}
|
|
103
|
+
if (entry.type === 'swarm') {
|
|
104
|
+
const signer = (entry.signers ?? []).find((s) => s.agent_id === agentId);
|
|
105
|
+
return signer ? (signer.prev ?? null) : undefined;
|
|
106
|
+
}
|
|
100
107
|
return entry.agent_id === agentId ? entry.prev : undefined;
|
|
101
108
|
}
|
|
102
109
|
//# sourceMappingURL=a2a.js.map
|
package/dist/a2a.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../src/a2a.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../src/a2a.ts"],"names":[],"mappings":"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"}
|
package/dist/bundle.d.ts
CHANGED
|
@@ -48,6 +48,10 @@ export interface BundleReport {
|
|
|
48
48
|
last_ts: string | null;
|
|
49
49
|
revoked_certs: number;
|
|
50
50
|
anchored_through: number | null;
|
|
51
|
+
/** The newest receipt closes a session (SPEC §15). */
|
|
52
|
+
session_closed: boolean;
|
|
53
|
+
/** When the newest receipt closed its session, else null. */
|
|
54
|
+
closed_at: string | null;
|
|
51
55
|
};
|
|
52
56
|
}
|
|
53
57
|
/** Fully verify an audit bundle offline. Every failure is reported, none throws. */
|
package/dist/bundle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAOA,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAOA,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAA6C,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAUtF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,CAAC,CAAC;IACL,WAAW,EAAE,oBAAoB,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,sDAAsD;QACtD,cAAc,EAAE,OAAO,CAAC;QACxB,6DAA6D;QAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH;AAID,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAmInE"}
|
package/dist/bundle.js
CHANGED
|
@@ -8,8 +8,16 @@ import { canonicalBytes, jcsHash } from './encoding.js';
|
|
|
8
8
|
import { certHash, verifyRevocation } from './delegation.js';
|
|
9
9
|
import { leafHash, verifyConsistency, verifyInclusion } from './merkle.js';
|
|
10
10
|
import { verifySTH } from './sth.js';
|
|
11
|
-
import { verifyReceipt } from './receipt.js';
|
|
11
|
+
import { isSessionClose, verifyReceipt } from './receipt.js';
|
|
12
12
|
import { participantsOf, prevFor, verifyA2AReceipt } from './a2a.js';
|
|
13
|
+
import { verifySwarmReceipt } from './swarm.js';
|
|
14
|
+
/** A receipt's timestamp: top-level on solo and a2a receipts, inside `body` on swarm ones. */
|
|
15
|
+
function receiptTs(r) {
|
|
16
|
+
const o = r;
|
|
17
|
+
if (typeof o?.ts === 'string')
|
|
18
|
+
return o.ts;
|
|
19
|
+
return typeof o?.body?.ts === 'string' ? o.body.ts : null;
|
|
20
|
+
}
|
|
13
21
|
const root = (sth) => hexToBytes(sth.root.replace('sha256:', ''));
|
|
14
22
|
/** Fully verify an audit bundle offline. Every failure is reported, none throws. */
|
|
15
23
|
export function verifyAuditBundle(bundle) {
|
|
@@ -25,9 +33,15 @@ export function verifyAuditBundle(bundle) {
|
|
|
25
33
|
const sorted = [...bundle.receipts].sort((a, b) => a.index - b.index);
|
|
26
34
|
for (const [i, br] of sorted.entries()) {
|
|
27
35
|
// revocation reported separately below
|
|
28
|
-
|
|
36
|
+
// Each receipt is checked by the rules of its own type. A swarm receipt checked as a
|
|
37
|
+
// solo one failed signature and chain checks, so an honest swarm participant's
|
|
38
|
+
// history was reported as broken.
|
|
39
|
+
const kind = br.receipt.type;
|
|
40
|
+
const check = kind === 'a2a'
|
|
29
41
|
? verifyA2AReceipt(br.receipt)
|
|
30
|
-
:
|
|
42
|
+
: kind === 'swarm'
|
|
43
|
+
? verifySwarmReceipt(br.receipt)
|
|
44
|
+
: verifyReceipt(br.receipt);
|
|
31
45
|
const identityOk = participantsOf(br.receipt).includes(bundle.agent_id);
|
|
32
46
|
const hashOk = jcsHash(br.receipt) === br.hash;
|
|
33
47
|
const inclusionOk = verifyInclusion(leafHash(canonicalBytes(br.receipt)), br.index, bundle.sth.size, br.proof.map(hexToBytes), root(bundle.sth));
|
|
@@ -67,16 +81,29 @@ export function verifyAuditBundle(bundle) {
|
|
|
67
81
|
}
|
|
68
82
|
}
|
|
69
83
|
push(`all ${bundle.anchors.length} anchors: anchored STH valid, bundle tree is append-only extension`, anchorsOk, anchoredThrough !== null ? `history immutable through leaf ${anchoredThrough - 1}` : undefined);
|
|
84
|
+
// Session close (SPEC §15) is reported, never failed: an agent mid-session is normal.
|
|
85
|
+
// It is mentioned only for agents that use sessions, so a bundle from an agent that
|
|
86
|
+
// never closes one reads exactly as it always has.
|
|
87
|
+
const newest = sorted[sorted.length - 1]?.receipt;
|
|
88
|
+
const sessionClosed = newest !== undefined && isSessionClose(newest);
|
|
89
|
+
const closedAt = sessionClosed ? receiptTs(newest) : null;
|
|
90
|
+
if (sorted.some((br) => isSessionClose(br.receipt))) {
|
|
91
|
+
push(sessionClosed
|
|
92
|
+
? `the newest receipt closes a session (${closedAt})`
|
|
93
|
+
: 'the newest receipt is not a session close: the agent may still be running, or receipts after its last one were withheld', true);
|
|
94
|
+
}
|
|
70
95
|
const revokedCertHashes = new Set(bundle.revocations.map((r) => r.cert_hash));
|
|
71
96
|
return {
|
|
72
97
|
ok: checks.every((c) => c.ok),
|
|
73
98
|
checks,
|
|
74
99
|
stats: {
|
|
75
100
|
receipts: sorted.length,
|
|
76
|
-
first_ts: sorted[0]
|
|
77
|
-
last_ts: sorted[sorted.length - 1]
|
|
101
|
+
first_ts: sorted.length ? receiptTs(sorted[0].receipt) : null,
|
|
102
|
+
last_ts: sorted.length ? receiptTs(sorted[sorted.length - 1].receipt) : null,
|
|
78
103
|
revoked_certs: revokedCertHashes.size,
|
|
79
104
|
anchored_through: anchoredThrough,
|
|
105
|
+
session_closed: sessionClosed,
|
|
106
|
+
closed_at: closedAt,
|
|
80
107
|
},
|
|
81
108
|
};
|
|
82
109
|
}
|
|
@@ -85,7 +112,10 @@ export function verifyAuditBundle(bundle) {
|
|
|
85
112
|
return {
|
|
86
113
|
ok: false,
|
|
87
114
|
checks,
|
|
88
|
-
stats: {
|
|
115
|
+
stats: {
|
|
116
|
+
receipts: 0, first_ts: null, last_ts: null, revoked_certs: 0, anchored_through: null,
|
|
117
|
+
session_closed: false, closed_at: null,
|
|
118
|
+
},
|
|
89
119
|
};
|
|
90
120
|
}
|
|
91
121
|
}
|
package/dist/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAyB,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAuB,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ export { leafHash, merkleRoot, inclusionProof, verifyInclusion, consistencyProof
|
|
|
5
5
|
export { createSTH, verifySTH, type SignedTreeHead } from './sth.js';
|
|
6
6
|
export { buildA2ABody, signA2ABody, assembleA2AReceipt, a2aHash, bodyOf, verifyA2AReceipt, participantsOf, prevFor, type A2AReceipt, type A2ABody, type A2AParty, } from './a2a.js';
|
|
7
7
|
export { verifyAuditBundle, type AuditBundle, type BundledReceipt, type BundledRevocation, type BundledAnchor, type BundleReport, type BundleCheck, } from './bundle.js';
|
|
8
|
-
export { createReceipt, receiptHash, hashPayload, payloadBytes, saltedPayloadHash, verifyPayload, verifyPayloadLegacy, type PayloadDialect, verifyReceipt, verifyReceiptSignature, verifyReceiptChain, type Receipt, type VerifyResult, } from './receipt.js';
|
|
8
|
+
export { createReceipt, receiptHash, hashPayload, payloadBytes, saltedPayloadHash, verifyPayload, verifyPayloadLegacy, RISK_LEVELS, SESSION_CLOSE_TARGET, isSessionClose, isRiskLevel, type RiskLevel, type PayloadDialect, verifyReceipt, verifyReceiptSignature, verifyReceiptChain, type Receipt, type VerifyResult, } from './receipt.js';
|
|
9
9
|
export { createConfirmation, verifyConfirmation, type ActionConfirmation, } from './confirmation.js';
|
|
10
10
|
export { createCoSignature, verifyCoSignature, type ReceiptCoSignature, } from './cosign.js';
|
|
11
|
+
export { verifySwarmReceipt, type SwarmBody, type SwarmLedgerReceipt, type SwarmSignerEnvelope } from './swarm.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,QAAQ,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,KAAK,cAAc,EACnB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,OAAO,EACZ,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,QAAQ,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,OAAO,EACZ,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,8 @@ export { leafHash, merkleRoot, inclusionProof, verifyInclusion, consistencyProof
|
|
|
5
5
|
export { createSTH, verifySTH } from './sth.js';
|
|
6
6
|
export { buildA2ABody, signA2ABody, assembleA2AReceipt, a2aHash, bodyOf, verifyA2AReceipt, participantsOf, prevFor, } from './a2a.js';
|
|
7
7
|
export { verifyAuditBundle, } from './bundle.js';
|
|
8
|
-
export { createReceipt, receiptHash, hashPayload, payloadBytes, saltedPayloadHash, verifyPayload, verifyPayloadLegacy, verifyReceipt, verifyReceiptSignature, verifyReceiptChain, } from './receipt.js';
|
|
8
|
+
export { createReceipt, receiptHash, hashPayload, payloadBytes, saltedPayloadHash, verifyPayload, verifyPayloadLegacy, RISK_LEVELS, SESSION_CLOSE_TARGET, isSessionClose, isRiskLevel, verifyReceipt, verifyReceiptSignature, verifyReceiptChain, } from './receipt.js';
|
|
9
9
|
export { createConfirmation, verifyConfirmation, } from './confirmation.js';
|
|
10
10
|
export { createCoSignature, verifyCoSignature, } from './cosign.js';
|
|
11
|
+
export { verifySwarmReceipt } from './swarm.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,WAAW,GAIZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAuB,MAAM,UAAU,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,OAAO,GAIR,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,GAOlB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,WAAW,GAIZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAuB,MAAM,UAAU,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,OAAO,GAIR,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,GAOlB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,WAAW,EAGX,aAAa,EACb,sBAAsB,EACtB,kBAAkB,GAGnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAqE,MAAM,YAAY,CAAC"}
|
package/dist/receipt.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import { type DelegationCert } from './delegation.js';
|
|
2
|
+
/**
|
|
3
|
+
* The target of a session-close receipt (SPEC §15). An agent records one when it ends a
|
|
4
|
+
* session deliberately, so a verifier can tell a run that finished from one that was cut
|
|
5
|
+
* off. The per-agent `prev` chain already proves nothing is missing between receipts;
|
|
6
|
+
* this marks where a session was declared over.
|
|
7
|
+
*/
|
|
8
|
+
export declare const SESSION_CLOSE_TARGET = "zanii.session.close";
|
|
9
|
+
/** True for a solo receipt that closes a session. */
|
|
10
|
+
export declare function isSessionClose(receipt: unknown): boolean;
|
|
11
|
+
/** What is at stake in an action (SPEC §3). A label the recorder sets, signed with the receipt: useful for policy and triage, and a control only where something independent of the agent enforces it. */
|
|
12
|
+
export declare const RISK_LEVELS: readonly ["low", "medium", "high", "critical"];
|
|
13
|
+
export type RiskLevel = (typeof RISK_LEVELS)[number];
|
|
14
|
+
export declare function isRiskLevel(v: unknown): v is RiskLevel;
|
|
2
15
|
export interface Receipt {
|
|
3
16
|
v: 1;
|
|
4
17
|
agent_id: string;
|
|
@@ -24,6 +37,8 @@ export interface Receipt {
|
|
|
24
37
|
* are checked with `verifyPayloadLegacy`, never with `verifyPayload`.
|
|
25
38
|
*/
|
|
26
39
|
payload_encoding?: 'jcs';
|
|
40
|
+
/** What is at stake (SPEC §3). Signed; absent means the recorder did not say. */
|
|
41
|
+
risk?: RiskLevel;
|
|
27
42
|
sig: string;
|
|
28
43
|
}
|
|
29
44
|
export interface VerifyResult {
|
|
@@ -90,6 +105,8 @@ export declare function createReceipt(fields: {
|
|
|
90
105
|
subjectTag?: string;
|
|
91
106
|
/** How `payloadHash` committed to the payload. Set `'jcs'` when it came from `payloadBytes`. */
|
|
92
107
|
payloadEncoding?: 'jcs';
|
|
108
|
+
/** What is at stake. Signed into the receipt when set. */
|
|
109
|
+
risk?: RiskLevel;
|
|
93
110
|
}, agentPrivateKey: Uint8Array): Receipt;
|
|
94
111
|
/** Hash of the full receipt (incl. sig) — what the next receipt's `prev` points to. */
|
|
95
112
|
export declare function receiptHash(receipt: Receipt): string;
|
package/dist/receipt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AAKA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEhF,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,CAAC,CAAC;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;0FACsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAGhE;
|
|
1
|
+
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"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"}
|
package/dist/receipt.js
CHANGED
|
@@ -4,6 +4,23 @@ import { bytesToHex, hexToBytes, randomBytes } from '@noble/hashes/utils';
|
|
|
4
4
|
import { canonicalBytes, decodeSig, encodeSig, jcsHash } from './encoding.js';
|
|
5
5
|
import { publicKeyFromDid } from './keys.js';
|
|
6
6
|
import { scopesAllow, verifyChain } from './delegation.js';
|
|
7
|
+
/**
|
|
8
|
+
* The target of a session-close receipt (SPEC §15). An agent records one when it ends a
|
|
9
|
+
* session deliberately, so a verifier can tell a run that finished from one that was cut
|
|
10
|
+
* off. The per-agent `prev` chain already proves nothing is missing between receipts;
|
|
11
|
+
* this marks where a session was declared over.
|
|
12
|
+
*/
|
|
13
|
+
export const SESSION_CLOSE_TARGET = 'zanii.session.close';
|
|
14
|
+
/** True for a solo receipt that closes a session. */
|
|
15
|
+
export function isSessionClose(receipt) {
|
|
16
|
+
const r = receipt;
|
|
17
|
+
return !!r && r.type === undefined && r.target === SESSION_CLOSE_TARGET && r.action === 'session.close';
|
|
18
|
+
}
|
|
19
|
+
/** What is at stake in an action (SPEC §3). A label the recorder sets, signed with the receipt: useful for policy and triage, and a control only where something independent of the agent enforces it. */
|
|
20
|
+
export const RISK_LEVELS = ['low', 'medium', 'high', 'critical'];
|
|
21
|
+
export function isRiskLevel(v) {
|
|
22
|
+
return typeof v === 'string' && RISK_LEVELS.includes(v);
|
|
23
|
+
}
|
|
7
24
|
export function hashPayload(payload) {
|
|
8
25
|
const bytes = typeof payload === 'string' ? new TextEncoder().encode(payload) : payload;
|
|
9
26
|
return `sha256:${bytesToHex(sha256(bytes))}`;
|
|
@@ -20,9 +37,12 @@ function assertPayloadCanonicalizable(v, path = 'payload') {
|
|
|
20
37
|
if (typeof v === 'number') {
|
|
21
38
|
if (!Number.isFinite(v))
|
|
22
39
|
throw new Error(`${path}: ${v} has no JSON representation`);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
40
|
+
// A non-integer encodes as RFC 8785 §3.2.2.3 (ECMAScript's own form, which Python's
|
|
41
|
+
// SDK reproduces byte for byte since protocol 1.3), so it needs no check here.
|
|
42
|
+
if (Number.isInteger(v) && !Number.isSafeInteger(v)) {
|
|
43
|
+
// JavaScript has already rounded it by now; another SDK would keep it exact.
|
|
44
|
+
throw new Error(`${path}: integer ${v} is outside +/-(2^53-1): not every JSON implementation can ` +
|
|
45
|
+
'represent it exactly, so the SDKs would disagree on its bytes. Pass it as a string.');
|
|
26
46
|
}
|
|
27
47
|
return;
|
|
28
48
|
}
|
|
@@ -168,6 +188,9 @@ export function verifyPayloadLegacy(payload, nonce, payloadHash) {
|
|
|
168
188
|
export function createReceipt(fields, agentPrivateKey) {
|
|
169
189
|
if (Number.isNaN(Date.parse(fields.ts)))
|
|
170
190
|
throw new Error(`invalid ts timestamp: ${fields.ts}`);
|
|
191
|
+
if (fields.risk !== undefined && !isRiskLevel(fields.risk)) {
|
|
192
|
+
throw new Error(`invalid risk '${String(fields.risk)}': expected one of low, medium, high, critical`);
|
|
193
|
+
}
|
|
171
194
|
const unsigned = {
|
|
172
195
|
v: 1,
|
|
173
196
|
agent_id: fields.agentId,
|
|
@@ -182,6 +205,7 @@ export function createReceipt(fields, agentPrivateKey) {
|
|
|
182
205
|
...(fields.manifestHash ? { manifest_hash: fields.manifestHash } : {}),
|
|
183
206
|
...(fields.subjectTag ? { subject_tag: fields.subjectTag } : {}),
|
|
184
207
|
...(fields.payloadEncoding ? { payload_encoding: fields.payloadEncoding } : {}),
|
|
208
|
+
...(fields.risk ? { risk: fields.risk } : {}),
|
|
185
209
|
};
|
|
186
210
|
const sig = ed25519.sign(canonicalBytes(unsigned), agentPrivateKey);
|
|
187
211
|
return { ...unsigned, sig: encodeSig(sig) };
|
package/dist/receipt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAuB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"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"}
|
package/dist/swarm.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type DelegationCert } from './delegation.js';
|
|
2
|
+
import type { VerifyResult } from './receipt.js';
|
|
3
|
+
export interface SwarmBody {
|
|
4
|
+
v: 1;
|
|
5
|
+
type: 'swarm';
|
|
6
|
+
/** What the team did, e.g. `deploy.release`. */
|
|
7
|
+
task: string;
|
|
8
|
+
target: string;
|
|
9
|
+
/** Hash of the action payload (contents stay off-receipt). */
|
|
10
|
+
payload_hash?: string;
|
|
11
|
+
ts: string;
|
|
12
|
+
/** The team's `did:key`s — distinct, sorted (canonical). */
|
|
13
|
+
participants: string[];
|
|
14
|
+
/** M-of-N: how many of `participants` must sign for the receipt to be valid. */
|
|
15
|
+
threshold: number;
|
|
16
|
+
}
|
|
17
|
+
export interface SwarmSignerEnvelope {
|
|
18
|
+
agent_id: string;
|
|
19
|
+
/** The signer's delegation chain proving its owner authorized it for the target scope. */
|
|
20
|
+
delegation: DelegationCert[];
|
|
21
|
+
/** The signer's previous log head (`null` = genesis). */
|
|
22
|
+
prev: string | null;
|
|
23
|
+
/** `ed25519:<hex>` over the canonical body — same as `signSwarm`. */
|
|
24
|
+
sig: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SwarmLedgerReceipt {
|
|
27
|
+
v: 1;
|
|
28
|
+
type: 'swarm';
|
|
29
|
+
body: SwarmBody;
|
|
30
|
+
signers: SwarmSignerEnvelope[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Authority-complete verification of an on-ledger swarm receipt (SPEC §14) — the exact
|
|
34
|
+
* mirror of the server's `verify_swarm_receipt`. Every listed signer must be a distinct
|
|
35
|
+
* declared participant with a valid signature, an owner-rooted unrevoked/unexpired
|
|
36
|
+
* delegation, the target in scope, and `prev` matching its chain head. Then valid signers
|
|
37
|
+
* ≥ threshold, and (default) ≥ threshold DISTINCT owners — real segregation of duties, so
|
|
38
|
+
* one owner's N agents cannot fake an M-of-N. Any failure hard-rejects.
|
|
39
|
+
*/
|
|
40
|
+
export declare function verifySwarmReceipt(receipt: SwarmLedgerReceipt | undefined, opts?: {
|
|
41
|
+
revoked?: Set<string>;
|
|
42
|
+
expectedPrevFor?: Record<string, string | null>;
|
|
43
|
+
requireDistinctOwners?: boolean;
|
|
44
|
+
}): VerifyResult;
|
|
45
|
+
//# sourceMappingURL=swarm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../src/swarm.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,OAAO,CAAC;IACd,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GACrH,YAAY,CA+Cd"}
|
package/dist/swarm.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* N-party (swarm) receipts as they sit in the log (SPEC §14): the verification every
|
|
3
|
+
* consumer of the log needs — the bundle verifier included — so it lives in core.
|
|
4
|
+
* `@zanii/swarm` re-exports these, and adds the client-side building helpers.
|
|
5
|
+
*/
|
|
6
|
+
import { ed25519 } from '@noble/curves/ed25519';
|
|
7
|
+
import { scopesAllow, verifyChain } from './delegation.js';
|
|
8
|
+
import { canonicalBytes, decodeSig } from './encoding.js';
|
|
9
|
+
import { publicKeyFromDid } from './keys.js';
|
|
10
|
+
/**
|
|
11
|
+
* Authority-complete verification of an on-ledger swarm receipt (SPEC §14) — the exact
|
|
12
|
+
* mirror of the server's `verify_swarm_receipt`. Every listed signer must be a distinct
|
|
13
|
+
* declared participant with a valid signature, an owner-rooted unrevoked/unexpired
|
|
14
|
+
* delegation, the target in scope, and `prev` matching its chain head. Then valid signers
|
|
15
|
+
* ≥ threshold, and (default) ≥ threshold DISTINCT owners — real segregation of duties, so
|
|
16
|
+
* one owner's N agents cannot fake an M-of-N. Any failure hard-rejects.
|
|
17
|
+
*/
|
|
18
|
+
export function verifySwarmReceipt(receipt, opts = {}) {
|
|
19
|
+
const requireDistinctOwners = opts.requireDistinctOwners ?? true;
|
|
20
|
+
if (!receipt || receipt.v !== 1 || receipt.type !== 'swarm')
|
|
21
|
+
return { ok: false, error: 'not a swarm receipt' };
|
|
22
|
+
const body = receipt.body;
|
|
23
|
+
if (!body || body.v !== 1 || body.type !== 'swarm')
|
|
24
|
+
return { ok: false, error: 'invalid swarm body' };
|
|
25
|
+
const parts = body.participants;
|
|
26
|
+
const threshold = body.threshold;
|
|
27
|
+
const ts = new Date(body.ts);
|
|
28
|
+
if (!Array.isArray(parts) || parts.length < 3)
|
|
29
|
+
return { ok: false, error: 'swarm needs at least 3 participants' };
|
|
30
|
+
if (new Set(parts).size !== parts.length)
|
|
31
|
+
return { ok: false, error: 'participants must be distinct' };
|
|
32
|
+
if (!Number.isInteger(threshold) || threshold < 1 || threshold > parts.length)
|
|
33
|
+
return { ok: false, error: 'invalid threshold' };
|
|
34
|
+
if (Number.isNaN(ts.getTime()))
|
|
35
|
+
return { ok: false, error: 'invalid ts' };
|
|
36
|
+
const participantSet = new Set(parts);
|
|
37
|
+
const target = body.target ?? '';
|
|
38
|
+
const msg = canonicalBytes(body);
|
|
39
|
+
const signers = receipt.signers ?? [];
|
|
40
|
+
const seen = new Set();
|
|
41
|
+
const owners = [];
|
|
42
|
+
for (const s of signers) {
|
|
43
|
+
const aid = s.agent_id;
|
|
44
|
+
if (!participantSet.has(aid))
|
|
45
|
+
return { ok: false, error: `signer ${aid} is not a declared participant` };
|
|
46
|
+
if (seen.has(aid))
|
|
47
|
+
return { ok: false, error: `signer ${aid} appears twice` };
|
|
48
|
+
seen.add(aid);
|
|
49
|
+
const pub = publicKeyFromDid(aid);
|
|
50
|
+
const sig = decodeSig(s.sig);
|
|
51
|
+
if (!pub || !sig)
|
|
52
|
+
return { ok: false, error: `signer ${aid}: malformed key or signature` };
|
|
53
|
+
let sigOk = false;
|
|
54
|
+
try {
|
|
55
|
+
sigOk = ed25519.verify(sig, msg, pub);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
sigOk = false;
|
|
59
|
+
}
|
|
60
|
+
if (!sigOk)
|
|
61
|
+
return { ok: false, error: `signer ${aid}: bad signature` };
|
|
62
|
+
const chain = verifyChain(s.delegation ?? [], { agentId: aid, revoked: opts.revoked, at: ts });
|
|
63
|
+
if (!chain.ok)
|
|
64
|
+
return { ok: false, error: `signer ${aid} delegation: ${chain.error}` };
|
|
65
|
+
if (!scopesAllow(chain.effectiveScopes ?? [], target))
|
|
66
|
+
return { ok: false, error: `signer ${aid}: target ${target} outside effective scopes` };
|
|
67
|
+
const expected = opts.expectedPrevFor?.[aid];
|
|
68
|
+
if (expected !== undefined && s.prev !== expected)
|
|
69
|
+
return { ok: false, error: `signer ${aid}: prev hash does not match chain head (chain broken)` };
|
|
70
|
+
const root = s.delegation?.[0]?.issuer;
|
|
71
|
+
if (root)
|
|
72
|
+
owners.push(root);
|
|
73
|
+
}
|
|
74
|
+
if (seen.size < threshold)
|
|
75
|
+
return { ok: false, error: `threshold not met: ${seen.size} valid of ${threshold} required` };
|
|
76
|
+
if (requireDistinctOwners && new Set(owners).size < threshold) {
|
|
77
|
+
return { ok: false, error: `distinct-owner threshold not met: ${new Set(owners).size} owners of ${threshold} required` };
|
|
78
|
+
}
|
|
79
|
+
return { ok: true };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=swarm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swarm.js","sourceRoot":"","sources":["../src/swarm.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zanii/core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "Zanii protocol: verifiable identity, signed action receipts, Merkle transparency-log proofs. Pure, no I/O.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://ledger.zanii.agency",
|