@motebit/state-export-client 0.3.1 → 0.4.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/README.md CHANGED
@@ -80,6 +80,52 @@ if (v.binding === "revoked") {
80
80
 
81
81
  `verifyReceiptDocument` is the brain behind a public, login-free receipt verifier. It runs entirely offline (no relay) for the integrity check, never throws on bad input (typed `reason`s instead), and keeps **integrity** (the bytes were signed, untampered) strictly separate from **binding** (the key belongs to this `motebitId`). The binding ladder: `integrity-only` (no options) < `pinned` (pass `options.identity` — the key is time-valid in the motebit's own succession chain) < `anchored` (also pass `options.anchor` — the binding is in the relay's transparency log AND that root is independently confirmed on-chain). Never render "from &lt;motebit&gt;" below `pinned`. `revoked` is off the ladder — a poison verdict: pass `options.revocation` and if the signing key has an on-chain revocation memo dated at/before the receipt, `binding` is `revoked` regardless of everything else (read from the neutral chain, never the relay's word).
82
82
 
83
+ ## Quick start — verify the agent-revocation feed (operator moderation history)
84
+
85
+ ```ts
86
+ import { fetchTransparencyAnchor, verifyAgentRevocationFeed } from "@motebit/state-export-client";
87
+
88
+ // Pin the relay key (TOFU), then audit the operator's de-listings offline.
89
+ const anchor = await fetchTransparencyAnchor("https://relay.example.com");
90
+ const feed = await (await fetch("https://relay.example.com/api/v1/agents/revocations")).json();
91
+
92
+ const v = await verifyAgentRevocationFeed(
93
+ feed,
94
+ anchor.ok ? anchor.anchor.relayPublicKeyHex : undefined,
95
+ );
96
+ if (v.ok) show(`Verified ${v.count} signed de-listing/reinstatement record(s)`);
97
+ else show(`Feed verification failed: ${v.reason}`); // signature_invalid | producer_key_mismatch | record_invalid | …
98
+ ```
99
+
100
+ `verifyAgentRevocationFeed` verifies the feed's signed digest **and** every contained record against the pinned relay key; `verifyAgentRevocationRecord` verifies a single record standalone. This is the consumer side of the operator's de-list power made accountable ([`spec/agent-revocation-v1.md`](../../spec/agent-revocation-v1.md)): a relay can remove an agent from Discover, but only by emitting a signed, reasoned record anyone can fetch and verify — de-list, never de-identify. Same fail-closed, typed-`reason` contract as the verifiers above; same pinned key as `verifyTransparencyDeclaration`.
101
+
102
+ ## Quick start — settlement summary (the money side of the trust graph)
103
+
104
+ ```ts
105
+ import {
106
+ fetchTransparencyAnchor,
107
+ verifiedSettlementSummaryFetch,
108
+ } from "@motebit/state-export-client";
109
+
110
+ // Pin the relay key (TOFU), then fetch + verify your own per-peer economic
111
+ // history (what you earned from / paid to each counterparty).
112
+ const anchor = await fetchTransparencyAnchor("https://relay.example.com");
113
+ const { body, verification } = await verifiedSettlementSummaryFetch(
114
+ "https://relay.example.com",
115
+ myMotebitId,
116
+ {
117
+ anchor: anchor.ok ? anchor.anchor : undefined,
118
+ init: { headers: { Authorization: `Bearer ${token}` } },
119
+ },
120
+ );
121
+
122
+ if (verification.valid && body)
123
+ renderPerPeerMoney(body.peers); // never render unverified money
124
+ else show(`unverifiable: ${verification.reason}`); // unexpected_artifact_type | producer_key_mismatch | content_hash_mismatch | …
125
+ ```
126
+
127
+ `verifiedSettlementSummaryFetch` builds the canonical URL (`settlementSummaryUrl` — so a surface cannot fetch the money graph without verifying it), verifies the `settlement-summary` manifest against the pinned relay key, and fails closed: even when the bytes verify, a manifest signed for a different `artifact_type` is rejected with `unexpected_artifact_type`. The body is a materialized projection over the relay's signed settlement ledger — first-person, keyed `[motebit_id, peer]`, never a denormalized balance. Doctrine: [`docs/doctrine/agents-as-first-person-trust-graph.md`](../../docs/doctrine/agents-as-first-person-trust-graph.md) §6.
128
+
83
129
  ## Trust-anchor chain
84
130
 
85
131
  ```
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Portable verifier for agent-revocation records + the public revocations feed.
3
+ *
4
+ * The operator's de-list power is made sovereign-verifiable
5
+ * (`docs/doctrine/agents-as-first-person-trust-graph.md` §8): every revoke /
6
+ * reinstate is a signed `AgentRevocationRecord`, and the relay serves the full
7
+ * append-only history at `GET /api/v1/agents/revocations` as a signed
8
+ * `AgentRevocationFeed`. This module lets a third party verify both offline
9
+ * against the relay's pinned key — the SAME key the transparency declaration
10
+ * commits (`verifyTransparencyDeclaration`), so a verifier that has already
11
+ * bootstrapped a `TransparencyAnchor` can audit the operator's moderation
12
+ * history with no further trust.
13
+ *
14
+ * Fail-closed, typed reasons, no thrown exceptions for verification failures —
15
+ * same contract as `verifyTransparencyDeclaration`. No new crypto: hash +
16
+ * suite-dispatch verify come from `@motebit/crypto` (rule 1).
17
+ *
18
+ * Doctrine: `docs/doctrine/agents-as-first-person-trust-graph.md` §8,
19
+ * `docs/doctrine/self-attesting-system.md`, `spec/agent-revocation-v1.md`.
20
+ */
21
+ import type { AgentRevocationRecord, AgentRevocationFeed } from "@motebit/protocol";
22
+ export type { AgentRevocationRecord, AgentRevocationFeed } from "@motebit/protocol";
23
+ export type AgentRevocationFailureReason = "malformed_record" | "hash_mismatch" | "malformed_public_key" | "malformed_signature" | "signature_invalid" | "unsupported_suite" | "producer_key_mismatch";
24
+ export type AgentRevocationVerifyResult = {
25
+ readonly ok: true;
26
+ } | {
27
+ readonly ok: false;
28
+ readonly reason: AgentRevocationFailureReason;
29
+ readonly detail?: string;
30
+ };
31
+ export type AgentRevocationFeedVerifyResult = {
32
+ readonly ok: true;
33
+ readonly count: number;
34
+ } | {
35
+ readonly ok: false;
36
+ readonly reason: AgentRevocationFailureReason | "record_invalid";
37
+ readonly detail?: string;
38
+ };
39
+ /**
40
+ * Verify a single signed `AgentRevocationRecord`. Recomputes the hash over the
41
+ * signed payload, checks the signature against the embedded `relay_public_key`
42
+ * under the declared suite, and — when `expectedRelayPublicKeyHex` is supplied
43
+ * (the pinned anchor key) — enforces the producer-key pin so a key swap raises
44
+ * `producer_key_mismatch` rather than silently verifying a new producer.
45
+ */
46
+ export declare function verifyAgentRevocationRecord(record: AgentRevocationRecord, expectedRelayPublicKeyHex?: string): Promise<AgentRevocationVerifyResult>;
47
+ /**
48
+ * Verify the signed `AgentRevocationFeed` envelope AND every record inside it.
49
+ * The feed signature covers `{spec, relay_id, relay_public_key, generated_at,
50
+ * records}`; each record is also independently signed. Both layers must verify
51
+ * against the same relay key (optionally pinned to `expectedRelayPublicKeyHex`).
52
+ */
53
+ export declare function verifyAgentRevocationFeed(feed: AgentRevocationFeed, expectedRelayPublicKeyHex?: string): Promise<AgentRevocationFeedVerifyResult>;
54
+ //# sourceMappingURL=agent-revocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-revocation.d.ts","sourceRoot":"","sources":["../src/agent-revocation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,MAAM,MAAM,4BAA4B,GACpC,kBAAkB,GAClB,eAAe,GACf,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,CAAC;AAE5B,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GACrB;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG,MAAM,MAAM,+BAA+B,GACvC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7C;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,4BAA4B,GAAG,gBAAgB,CAAC;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAkBN;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,qBAAqB,EAC7B,yBAAyB,CAAC,EAAE,MAAM,GACjC,OAAO,CAAC,2BAA2B,CAAC,CAoDtC;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,mBAAmB,EACzB,yBAAyB,CAAC,EAAE,MAAM,GACjC,OAAO,CAAC,+BAA+B,CAAC,CAgE1C"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Portable verifier for agent-revocation records + the public revocations feed.
3
+ *
4
+ * The operator's de-list power is made sovereign-verifiable
5
+ * (`docs/doctrine/agents-as-first-person-trust-graph.md` §8): every revoke /
6
+ * reinstate is a signed `AgentRevocationRecord`, and the relay serves the full
7
+ * append-only history at `GET /api/v1/agents/revocations` as a signed
8
+ * `AgentRevocationFeed`. This module lets a third party verify both offline
9
+ * against the relay's pinned key — the SAME key the transparency declaration
10
+ * commits (`verifyTransparencyDeclaration`), so a verifier that has already
11
+ * bootstrapped a `TransparencyAnchor` can audit the operator's moderation
12
+ * history with no further trust.
13
+ *
14
+ * Fail-closed, typed reasons, no thrown exceptions for verification failures —
15
+ * same contract as `verifyTransparencyDeclaration`. No new crypto: hash +
16
+ * suite-dispatch verify come from `@motebit/crypto` (rule 1).
17
+ *
18
+ * Doctrine: `docs/doctrine/agents-as-first-person-trust-graph.md` §8,
19
+ * `docs/doctrine/self-attesting-system.md`, `spec/agent-revocation-v1.md`.
20
+ */
21
+ import { canonicalJson, hexToBytes, sha256, bytesToHex, verifyBySuite } from "@motebit/crypto";
22
+ /** Reconstruct the exact signed payload — `note` participates only when present (JCS). */
23
+ function recordPayload(record) {
24
+ const base = {
25
+ spec: record.spec,
26
+ motebit_id: record.motebit_id,
27
+ revoked: record.revoked,
28
+ reason: record.reason,
29
+ actor: record.actor,
30
+ effective_at: record.effective_at,
31
+ relay_id: record.relay_id,
32
+ relay_public_key: record.relay_public_key,
33
+ };
34
+ if (record.note !== undefined)
35
+ base.note = record.note;
36
+ return base;
37
+ }
38
+ /**
39
+ * Verify a single signed `AgentRevocationRecord`. Recomputes the hash over the
40
+ * signed payload, checks the signature against the embedded `relay_public_key`
41
+ * under the declared suite, and — when `expectedRelayPublicKeyHex` is supplied
42
+ * (the pinned anchor key) — enforces the producer-key pin so a key swap raises
43
+ * `producer_key_mismatch` rather than silently verifying a new producer.
44
+ */
45
+ export async function verifyAgentRevocationRecord(record, expectedRelayPublicKeyHex) {
46
+ if (typeof record !== "object" ||
47
+ record === null ||
48
+ typeof record.spec !== "string" ||
49
+ typeof record.motebit_id !== "string" ||
50
+ typeof record.revoked !== "boolean" ||
51
+ typeof record.reason !== "string" ||
52
+ typeof record.actor !== "string" ||
53
+ (record.note !== undefined && typeof record.note !== "string") ||
54
+ typeof record.effective_at !== "number" ||
55
+ typeof record.relay_id !== "string" ||
56
+ typeof record.relay_public_key !== "string" ||
57
+ typeof record.hash !== "string" ||
58
+ typeof record.suite !== "string" ||
59
+ typeof record.signature !== "string") {
60
+ return { ok: false, reason: "malformed_record" };
61
+ }
62
+ if (expectedRelayPublicKeyHex !== undefined &&
63
+ record.relay_public_key.toLowerCase() !== expectedRelayPublicKeyHex.toLowerCase()) {
64
+ return { ok: false, reason: "producer_key_mismatch" };
65
+ }
66
+ const canonical = new TextEncoder().encode(canonicalJson(recordPayload(record)));
67
+ const computedHash = bytesToHex(await sha256(canonical));
68
+ if (computedHash !== record.hash) {
69
+ return { ok: false, reason: "hash_mismatch" };
70
+ }
71
+ if (!/^[0-9a-fA-F]{64}$/.test(record.relay_public_key)) {
72
+ return { ok: false, reason: "malformed_public_key" };
73
+ }
74
+ if (!/^[0-9a-fA-F]+$/.test(record.signature)) {
75
+ return { ok: false, reason: "malformed_signature" };
76
+ }
77
+ let valid;
78
+ try {
79
+ valid = await verifyBySuite(record.suite, canonical, hexToBytes(record.signature), hexToBytes(record.relay_public_key));
80
+ }
81
+ catch {
82
+ return { ok: false, reason: "unsupported_suite" };
83
+ }
84
+ return valid ? { ok: true } : { ok: false, reason: "signature_invalid" };
85
+ }
86
+ /**
87
+ * Verify the signed `AgentRevocationFeed` envelope AND every record inside it.
88
+ * The feed signature covers `{spec, relay_id, relay_public_key, generated_at,
89
+ * records}`; each record is also independently signed. Both layers must verify
90
+ * against the same relay key (optionally pinned to `expectedRelayPublicKeyHex`).
91
+ */
92
+ export async function verifyAgentRevocationFeed(feed, expectedRelayPublicKeyHex) {
93
+ if (typeof feed !== "object" ||
94
+ feed === null ||
95
+ typeof feed.spec !== "string" ||
96
+ typeof feed.relay_id !== "string" ||
97
+ typeof feed.relay_public_key !== "string" ||
98
+ typeof feed.generated_at !== "number" ||
99
+ !Array.isArray(feed.records) ||
100
+ typeof feed.suite !== "string" ||
101
+ typeof feed.signature !== "string") {
102
+ return { ok: false, reason: "malformed_record" };
103
+ }
104
+ if (expectedRelayPublicKeyHex !== undefined &&
105
+ feed.relay_public_key.toLowerCase() !== expectedRelayPublicKeyHex.toLowerCase()) {
106
+ return { ok: false, reason: "producer_key_mismatch" };
107
+ }
108
+ if (!/^[0-9a-fA-F]{64}$/.test(feed.relay_public_key)) {
109
+ return { ok: false, reason: "malformed_public_key" };
110
+ }
111
+ if (!/^[0-9a-fA-F]+$/.test(feed.signature)) {
112
+ return { ok: false, reason: "malformed_signature" };
113
+ }
114
+ const payload = {
115
+ spec: feed.spec,
116
+ relay_id: feed.relay_id,
117
+ relay_public_key: feed.relay_public_key,
118
+ generated_at: feed.generated_at,
119
+ records: feed.records,
120
+ };
121
+ const canonical = new TextEncoder().encode(canonicalJson(payload));
122
+ let valid;
123
+ try {
124
+ valid = await verifyBySuite(feed.suite, canonical, hexToBytes(feed.signature), hexToBytes(feed.relay_public_key));
125
+ }
126
+ catch {
127
+ return { ok: false, reason: "unsupported_suite" };
128
+ }
129
+ if (!valid) {
130
+ return { ok: false, reason: "signature_invalid" };
131
+ }
132
+ // Every record must also verify against the same (pinned) key. Re-annotate
133
+ // after the `Array.isArray` guard above, which narrows the element type to
134
+ // `any` — the typed reference restores `AgentRevocationRecord`.
135
+ const records = feed.records;
136
+ for (const record of records) {
137
+ const r = await verifyAgentRevocationRecord(record, feed.relay_public_key);
138
+ if (!r.ok) {
139
+ return { ok: false, reason: "record_invalid", detail: `${record.motebit_id}: ${r.reason}` };
140
+ }
141
+ }
142
+ return { ok: true, count: feed.records.length };
143
+ }
144
+ //# sourceMappingURL=agent-revocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-revocation.js","sourceRoot":"","sources":["../src/agent-revocation.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -44,6 +44,8 @@
44
44
  */
45
45
  export { fetchTransparencyAnchor, verifyTransparencyDeclaration } from "./transparency-anchor.js";
46
46
  export type { TransparencyAnchor, SignedTransparencyDeclaration, TransparencyAnchorResult, TransparencyAnchorFailureReason, FetchTransparencyAnchorOptions, } from "./transparency-anchor.js";
47
+ export { verifyAgentRevocationRecord, verifyAgentRevocationFeed } from "./agent-revocation.js";
48
+ export type { AgentRevocationRecord, AgentRevocationFeed, AgentRevocationFailureReason, AgentRevocationVerifyResult, AgentRevocationFeedVerifyResult, } from "./agent-revocation.js";
47
49
  export { verifiedStateExportFetch, verifyManifestAgainstBytes, StateExportFetchError, MANIFEST_HEADER, } from "./verified-fetch.js";
48
50
  export type { StateExportVerification, StateExportVerificationFailureReason, VerifiedFetchOptions, VerifiedStateExportResponse, } from "./verified-fetch.js";
49
51
  export { lookupTransparencyAnchor, verifyDeclarationOnchainAnchor } from "./onchain-anchor.js";
@@ -54,6 +56,8 @@ export { lookupKeyRevocation } from "./key-revocation.js";
54
56
  export type { KeyRevocationLookupOptions, KeyRevocationResult } from "./key-revocation.js";
55
57
  export { verifyInnerSignedReceipts } from "./inner-receipts.js";
56
58
  export type { InnerReceiptVerification, InnerReceiptVerificationFailureReason, InnerReceiptsVerification, } from "./inner-receipts.js";
59
+ export { verifiedSettlementSummaryFetch, settlementSummaryUrl } from "./settlement-summary.js";
60
+ export type { SettlementSummaryExport, SettlementSummaryPeer, SettlementSummaryUnattributed, } from "./settlement-summary.js";
57
61
  export { verifyReceiptDocument } from "./receipt-document.js";
58
62
  export type { ReceiptDocumentVerification, ReceiptDocumentFailureReason, ReceiptBindingStatus, ReceiptAnchorOptions, VerifyReceiptDocumentOptions, } from "./receipt-document.js";
59
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAClG,YAAY,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,wBAAwB,EACxB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,uBAAuB,EACvB,oCAAoC,EACpC,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAC/F,YAAY,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EACV,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EACV,wBAAwB,EACxB,qCAAqC,EACrC,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAClG,YAAY,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,wBAAwB,EACxB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,uBAAuB,EACvB,oCAAoC,EACpC,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAC/F,YAAY,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EACV,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EACV,wBAAwB,EACxB,qCAAqC,EACrC,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -43,10 +43,12 @@
43
43
  * `docs/doctrine/operator-transparency.md`.
44
44
  */
45
45
  export { fetchTransparencyAnchor, verifyTransparencyDeclaration } from "./transparency-anchor.js";
46
+ export { verifyAgentRevocationRecord, verifyAgentRevocationFeed } from "./agent-revocation.js";
46
47
  export { verifiedStateExportFetch, verifyManifestAgainstBytes, StateExportFetchError, MANIFEST_HEADER, } from "./verified-fetch.js";
47
48
  export { lookupTransparencyAnchor, verifyDeclarationOnchainAnchor } from "./onchain-anchor.js";
48
49
  export { lookupIdentityLogAnchor } from "./identity-anchor.js";
49
50
  export { lookupKeyRevocation } from "./key-revocation.js";
50
51
  export { verifyInnerSignedReceipts } from "./inner-receipts.js";
52
+ export { verifiedSettlementSummaryFetch, settlementSummaryUrl } from "./settlement-summary.js";
51
53
  export { verifyReceiptDocument } from "./receipt-document.js";
52
54
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AASlG,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAO/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAO/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAOhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AASlG,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAS/F,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAO/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAO/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAOhE,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAO/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Verified fetch for a motebit's per-peer settlement summary — the money
3
+ * side of the first-person trust graph
4
+ * (`docs/doctrine/agents-as-first-person-trust-graph.md` §6).
5
+ *
6
+ * The relay assembles the summary from its signed `relay_settlements`
7
+ * ledger and emits it as a `settlement-summary` content artifact at
8
+ * `/api/v1/agents/:motebitId/settlements`. This wrapper centralizes that
9
+ * path (so each surface doesn't hardcode it), types the body, and — as
10
+ * defense in depth — fails closed if the verified manifest carries a
11
+ * different `artifact_type` than the endpoint promises.
12
+ *
13
+ * Same browser-safe, no-implicit-network contract as the rest of the
14
+ * package (rule 2): the caller injects `fetch` and passes its bearer
15
+ * token + transparency anchor through `options`.
16
+ */
17
+ import type { SettlementSummaryExport } from "@motebit/protocol";
18
+ import { type VerifiedFetchOptions, type VerifiedStateExportResponse } from "./verified-fetch.js";
19
+ export type { SettlementSummaryExport, SettlementSummaryPeer, SettlementSummaryUnattributed, } from "@motebit/protocol";
20
+ /**
21
+ * Canonical relay path for a motebit's per-peer settlement summary. The
22
+ * single source of this URL shape — surfaces build their request through
23
+ * it rather than re-spelling the path.
24
+ */
25
+ export declare function settlementSummaryUrl(baseUrl: string, motebitId: string): string;
26
+ /**
27
+ * Fetch + verify a motebit's settlement summary. Returns the parsed body
28
+ * (`null` on any verification failure — never render unverified money
29
+ * history) alongside the structured verification result.
30
+ *
31
+ * Fail-closed extension over the generic verifier: even when the bytes
32
+ * verify, a manifest whose `artifact_type` is not `settlement-summary` is
33
+ * rejected with `unexpected_artifact_type` — signed, but signed for the
34
+ * wrong export.
35
+ */
36
+ export declare function verifiedSettlementSummaryFetch(baseUrl: string, motebitId: string, options?: VerifiedFetchOptions): Promise<VerifiedStateExportResponse<SettlementSummaryExport>>;
37
+ //# sourceMappingURL=settlement-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlement-summary.d.ts","sourceRoot":"","sources":["../src/settlement-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EACjC,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,CAAC,CAiB/D"}
@@ -0,0 +1,35 @@
1
+ import { verifiedStateExportFetch, } from "./verified-fetch.js";
2
+ /**
3
+ * Canonical relay path for a motebit's per-peer settlement summary. The
4
+ * single source of this URL shape — surfaces build their request through
5
+ * it rather than re-spelling the path.
6
+ */
7
+ export function settlementSummaryUrl(baseUrl, motebitId) {
8
+ return `${baseUrl.replace(/\/$/, "")}/api/v1/agents/${encodeURIComponent(motebitId)}/settlements`;
9
+ }
10
+ /**
11
+ * Fetch + verify a motebit's settlement summary. Returns the parsed body
12
+ * (`null` on any verification failure — never render unverified money
13
+ * history) alongside the structured verification result.
14
+ *
15
+ * Fail-closed extension over the generic verifier: even when the bytes
16
+ * verify, a manifest whose `artifact_type` is not `settlement-summary` is
17
+ * rejected with `unexpected_artifact_type` — signed, but signed for the
18
+ * wrong export.
19
+ */
20
+ export async function verifiedSettlementSummaryFetch(baseUrl, motebitId, options = {}) {
21
+ const res = await verifiedStateExportFetch(settlementSummaryUrl(baseUrl, motebitId), options);
22
+ if (res.verification.valid && res.verification.artifactType !== "settlement-summary") {
23
+ return {
24
+ body: null,
25
+ bodyBytes: res.bodyBytes,
26
+ verification: {
27
+ valid: false,
28
+ reason: "unexpected_artifact_type",
29
+ detail: `expected settlement-summary, got ${res.verification.artifactType}`,
30
+ },
31
+ };
32
+ }
33
+ return res;
34
+ }
35
+ //# sourceMappingURL=settlement-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlement-summary.js","sourceRoot":"","sources":["../src/settlement-summary.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,wBAAwB,GAGzB,MAAM,qBAAqB,CAAC;AAQ7B;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,SAAiB;IACrE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,kBAAkB,CAAC,SAAS,CAAC,cAAc,CAAC;AACpG,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAe,EACf,SAAiB,EACjB,UAAgC,EAAE;IAElC,MAAM,GAAG,GAAG,MAAM,wBAAwB,CACxC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,EACxC,OAAO,CACR,CAAC;IACF,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC,YAAY,KAAK,oBAAoB,EAAE,CAAC;QACrF,OAAO;YACL,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE;gBACZ,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,0BAA0B;gBAClC,MAAM,EAAE,oCAAoC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE;aAC5E;SACF,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -31,7 +31,7 @@ export type StateExportVerification = {
31
31
  readonly reason: StateExportVerificationFailureReason;
32
32
  readonly detail?: string;
33
33
  };
34
- export type StateExportVerificationFailureReason = "manifest_header_missing" | "malformed_manifest_header" | "content_hash_mismatch" | "signature_invalid" | "malformed_public_key" | "malformed_signature" | "unsupported_suite" | "producer_key_mismatch";
34
+ export type StateExportVerificationFailureReason = "manifest_header_missing" | "malformed_manifest_header" | "content_hash_mismatch" | "signature_invalid" | "malformed_public_key" | "malformed_signature" | "unsupported_suite" | "producer_key_mismatch" | "unexpected_artifact_type";
35
35
  export interface VerifiedStateExportResponse<T> {
36
36
  /**
37
37
  * Parsed JSON body — present only when verification succeeded.
@@ -1 +1 @@
1
- {"version":3,"file":"verified-fetch.d.ts","sourceRoot":"","sources":["../src/verified-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,uEAAuE;AACvE,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAE5D,0EAA0E;AAC1E,MAAM,MAAM,uBAAuB,GAC/B;IACE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GACD;IACE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,oCAAoC,GAC5C,yBAAyB,GACzB,2BAA2B,GAC3B,uBAAuB,GACvB,mBAAmB,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,GACnB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,2BAA2B,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,2IAA2I;IAC3I,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,8GAA8G;IAC9G,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CA6CzC;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,SAAS,EAAE,UAAU,EACrB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,uBAAuB,CAAC,CAoDlC;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;aACZ,GAAG,EAAE,MAAM;gBAHX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;CAK9B"}
1
+ {"version":3,"file":"verified-fetch.d.ts","sourceRoot":"","sources":["../src/verified-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,uEAAuE;AACvE,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAE5D,0EAA0E;AAC1E,MAAM,MAAM,uBAAuB,GAC/B;IACE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GACD;IACE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,oCAAoC,GAC5C,yBAAyB,GACzB,2BAA2B,GAC3B,uBAAuB,GACvB,mBAAmB,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,GACnB,uBAAuB,GAKvB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,2BAA2B,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,2IAA2I;IAC3I,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,8GAA8G;IAC9G,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CA6CzC;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,SAAS,EAAE,UAAU,EACrB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,uBAAuB,CAAC,CAoDlC;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;aACZ,GAAG,EAAE,MAAM;gBAHX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;CAK9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"verified-fetch.js","sourceRoot":"","sources":["../src/verified-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verified-fetch.js","sourceRoot":"","sources":["../src/verified-fetch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@motebit/state-export-client",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Browser-safe client for verified motebit state-export reads. Wraps fetch with X-Motebit-Content-Manifest verification + Trust-On-First-Use bootstrap from /.well-known/motebit-transparency.json. Apache-2.0; consumes @motebit/crypto + @motebit/protocol only.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,13 +35,13 @@
35
35
  "operator-transparency"
36
36
  ],
37
37
  "dependencies": {
38
- "@motebit/crypto": "2.1.0",
39
- "@motebit/protocol": "2.0.1"
38
+ "@motebit/crypto": "3.0.0",
39
+ "@motebit/protocol": "3.0.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^22.0.0",
43
43
  "typescript": "^5.6.0",
44
- "vitest": "^2.1.0"
44
+ "vitest": "^4.1.8"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "tsc -b",