capacity-attest 0.2.0 → 0.3.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
@@ -1,85 +1,141 @@
1
- # capacity-attest
2
-
3
- MCP-server voor leverings-attestaties bij x402-capaciteitshandel tussen AI-agents.
4
-
5
- > Status: MVP, gepubliceerd op npm (`npm install capacity-attest`) en in het officiële MCP-register (`io.github.holistis/capacity-attest`).
6
-
7
- ## Waarom dit bestaat
8
-
9
- Wanneer een AI-agent via het [x402-protocol](https://www.x402.org/) betaalt voor capaciteit (GPU-uren, opslag, API/inference-credits, bandbreedte) bij een andere agent of dienst, is er na de betaling geen bewijs dat het beloofde ook echt geleverd is. De kopende agent weet het zelf (hij zag de output, of zag hem niet), maar die kennis gaat verloren zodra de sessie eindigt. De volgende agent die met dezelfde verkoper zaken wil doen, begint weer blind.
10
-
11
- `capacity-attest` lost dat specifieke gat op: na afwikkeling laat de **betalende** agent een cryptografisch ondertekende, feitelijke claim achter (`delivered: yes/no/partial` + een hash van het bewijsmateriaal). Andere agents kunnen die geschiedenis opvragen **voordat** ze zelf met die verkoper in zee gaan.
12
-
13
- Geen oordeel. Geen reputatiescore. Geen "vonnis", puur een ondertekende bon-plus-claim, net zoals een afleverbon bij een fysieke levering.
14
-
15
- ## Wat dit NIET is
16
-
17
- Dit is bewust en hardcoded **niet**:
18
-
19
- - **Geen reputatiescore of rating.** `get_delivery_history` retourneert de ruwe, chronologische lijst van claims, geen gemiddelde, geen percentage, geen "trust score". Het samenvatten tot één getal is impliciet een oordeel, en dat is expliciet afgewezen tijdens de besluitvorming voor dit project.
20
- - **Geen financieel product.** Geen rente, geen tijd-disconto op betalingen, geen yield op het ledger-saldo (er ís geen saldo, dit is geen escrow), geen lening, geen onderpand, geen invoice-financing/factoring. `assetType` is een gesloten enum van capaciteitssoorten (`gpu-hours`, `storage`, `api-credits`, `bandwidth`) en bevat bewust niets dat op een financieel instrument lijkt.
21
- - **Geen eigen token of munt.** Betalingen lopen via x402/USDC zoals gebruikelijk; dit project registreert alleen de *bon* van een afwikkeling die al ergens anders heeft plaatsgevonden.
22
- - **Geen krediet-verlening.** Een claim wordt pas gemaakt **na** een voltooide betaling. Dit project financiert niets, het documenteert een reeds afgeronde ijara (verhuur/dienst)-transactie.
23
-
24
- Dit is een bewuste, formeel getoetste ontwerpkeuze, niet een toevallige scope-beperking. Zie de guardrails-sectie in het project-brief als je overweegt hier iets aan toe te voegen: bij twijfel of een veld/functie hiertegenaan schuurt, laat het weg.
25
-
26
- ## Hoe het werkt
27
-
28
- ### 1. `record_delivery`
29
-
30
- De betalende agent (de koper) roept dit aan **na** een x402-afwikkeling, zodra bekend is of het beloofde is aangekomen. De claim bevat:
31
-
32
- | Veld | Betekenis |
33
- | --- | --- |
34
- | `sellerAddress` | 0x-adres van de partij die betaald werd |
35
- | `buyerAddress` | 0x-adres van de betalende agent, moet overeenkomen met het adres dat uit `signature` wordt teruggerekend |
36
- | `assetType` | `gpu-hours` \| `storage` \| `api-credits` \| `bandwidth` |
37
- | `promisedSpec` | Wat er beloofd was: vrije tekst of een gestructureerd object |
38
- | `delivered` | `yes` \| `no` \| `partial` |
39
- | `evidenceHash` | sha256-hex van bewijsmateriaal (logs, response-payload, ...), het bewijs zelf wordt niet opgeslagen |
40
- | `settlementRef` | x402-payment-ref of on-chain tx-hash van de onderliggende betaling |
41
- | `timestamp` | ISO-8601 tijdstip |
42
- | `claimId` | content-addressed sha256-hash van alle velden hierboven, zie `computeClaimId()` in `src/schema.ts` |
43
- | `signature` | EIP-191 personal-sign handtekening van de koper over `claimId` |
44
-
45
- De server valideert eerst het schema, dan of `claimId` echt de hash van de inhoud is, en dan of `signature` echt terugrekent naar `buyerAddress`. Alleen dan wordt de claim toegevoegd aan de append-only ledger (`data/claims.jsonl`). Een ongeldige handtekening of een claim die al eerder is opgeslagen (zelfde `claimId`) wordt geweigerd.
46
-
47
- ### 2. `get_delivery_history`
48
-
49
- Gegeven een `sellerAddress`, retourneert dit alle bekende claims tegen die verkoper, chronologisch (oudst eerst). Puur feitelijk, geen samengevat getal. Een kopende agent roept dit aan **vóórdat** hij betaalt, om de ruwe leveringsgeschiedenis van een potentiële verkoper te zien en zelf te beoordelen.
50
-
51
- ## Ondertekening
52
-
53
- De claim wordt ondertekend door de **koper** (de partij die betaalde en dus weet wat er wel/niet aankwam), niet door de verkoper. Dit is bewust eenvoudige EIP-191 `personal_sign` over `claimId` (via `ethers.Signer#signMessage`), geen EIP-712 typed data. Dat houdt het crypto-oppervlak van deze MVP klein en makkelijk te controleren. Een latere upgrade naar EIP-712 (zoals in `mcp-paywall/src/x402.mjs`) is additief mogelijk zonder bestaande claims ongeldig te maken.
54
-
55
- ## Lokaal draaien
56
-
57
- ```bash
58
- npm install
59
- npm run build # tsc -> dist/
60
- npm run typecheck # tsc --noEmit
61
- npm test # vitest run
62
- npm run demo # end-to-end lokale demo met TEST-sleutels, geen live infra
63
- npm start # start de MCP-server over stdio (bijv. voor Claude Desktop/Code als lokale MCP-server)
64
- ```
65
-
66
- De ledger-locatie is instelbaar via `CAPACITY_ATTEST_DATA_DIR` (default: `./data` in dit package). Tests en de demo gebruiken altijd een eigen, wegwerpbare tijdelijke map, nooit de echte `data/` map.
67
-
68
- ## Architectuur
69
-
70
- ```
71
- src/
72
- schema.ts DeliveryClaim zod-schema + content-addressing (computeClaimId, canonicalize)
73
- signing.ts sign/verify van een claim (ethers, EIP-191 personal-sign)
74
- ledger.ts append-only JSONL-opslag (data/claims.jsonl), nooit muteerbaar
75
- tools.ts de daadwerkelijke logica achter beide MCP-tools, transport-onafhankelijk
76
- config.ts waar de ledger-map leeft, lazy zodat tests 'm kunnen overriden
77
- index.ts MCP-server wiring (registreert record_delivery + get_delivery_history)
78
- examples/demo.ts end-to-end lokaal voorbeeld met TEST-sleutels
79
- ```
80
-
81
- `tools.ts` bevat de eigenlijke business-logica; `index.ts` vertaalt dat alleen naar MCP tool-calls. Zo kunnen tests en de demo dezelfde logica direct aanroepen zonder een stdio-transport op te tuigen.
82
-
83
- ## Relatie tot x402
84
-
85
- Dit project verifieert of settelt zelf géén x402-betalingen, dat gebeurt al bij de betaalstap zelf (zie bijvoorbeeld `mcp-paywall/src/x402.mjs` in dit ecosysteem voor een volledige EIP-3009-verify/settle-implementatie). `settlementRef` verwijst simpelweg naar die reeds-voltooide afwikkeling. Dat betekent ook dat de MVP-koppeling met een echte x402-facilitator eenvoudig kan blijven: `settlementRef` is vrije tekst, met als aanname dat de koper 'm eerlijk invult. Een latere versie kan dat veld optioneel verifiëren tegen een echte facilitator (TODO, niet in deze MVP).
1
+ # capacity-attest
2
+
3
+ MCP-server voor leverings-attestaties bij x402-capaciteitshandel tussen AI-agents.
4
+
5
+ > Status: MVP, gepubliceerd op npm (`npm install capacity-attest`) en in het officiële MCP-register (`io.github.holistis/capacity-attest`).
6
+
7
+ ## Waarom dit bestaat
8
+
9
+ Wanneer een AI-agent via het [x402-protocol](https://www.x402.org/) betaalt voor capaciteit (GPU-uren, opslag, API/inference-credits, bandbreedte) bij een andere agent of dienst, is er na de betaling geen bewijs dat het beloofde ook echt geleverd is. De kopende agent weet het zelf (hij zag de output, of zag hem niet), maar die kennis gaat verloren zodra de sessie eindigt. De volgende agent die met dezelfde verkoper zaken wil doen, begint weer blind.
10
+
11
+ `capacity-attest` lost dat specifieke gat op: na afwikkeling laat de **betalende** agent een cryptografisch ondertekende, feitelijke claim achter (`delivered: yes/no/partial` + een hash van het bewijsmateriaal). Andere agents kunnen die geschiedenis opvragen **voordat** ze zelf met die verkoper in zee gaan.
12
+
13
+ Geen oordeel. Geen reputatiescore. Geen "vonnis", puur een ondertekende bon-plus-claim, net zoals een afleverbon bij een fysieke levering.
14
+
15
+ ## Wat dit NIET is
16
+
17
+ Dit is bewust en hardcoded **niet**:
18
+
19
+ - **Geen reputatiescore of rating.** `get_delivery_history` retourneert de ruwe, chronologische lijst van claims, geen gemiddelde, geen percentage, geen "trust score". Het samenvatten tot één getal is impliciet een oordeel, en dat is expliciet afgewezen tijdens de besluitvorming voor dit project.
20
+ - **Geen financieel product.** Geen rente, geen tijd-disconto op betalingen, geen yield op het ledger-saldo (er ís geen saldo, dit is geen escrow), geen lening, geen onderpand, geen invoice-financing/factoring. `assetType` is een gesloten enum van capaciteitssoorten (`gpu-hours`, `storage`, `api-credits`, `bandwidth`) en bevat bewust niets dat op een financieel instrument lijkt.
21
+ - **Geen eigen token of munt.** Betalingen lopen via x402/USDC zoals gebruikelijk; dit project registreert alleen de *bon* van een afwikkeling die al ergens anders heeft plaatsgevonden.
22
+ - **Geen krediet-verlening.** Een claim wordt pas gemaakt **na** een voltooide betaling. Dit project financiert niets, het documenteert een reeds afgeronde ijara (verhuur/dienst)-transactie.
23
+ - **Geen eigen identity-, autoriteits- of geschillenlaag.** `externalRefs` (zie hieronder) is puur een citaat naar een systeem van een ander (ERC-8004, AP2, Legal Context Protocol, ...). Dit project resolvet, verifieert of beoordeelt die verwijzing zelf nooit. Zie [DECISIONS.md](./DECISIONS.md) D-007 t/m D-013 voor waarom dit bewust geen eigen protocol is geworden.
24
+
25
+ Dit is een bewuste, formeel getoetste ontwerpkeuze, niet een toevallige scope-beperking. Zie de guardrails-sectie in het project-brief als je overweegt hier iets aan toe te voegen: bij twijfel of een veld/functie hiertegenaan schuurt, laat het weg.
26
+
27
+ Bewust uitgestelde features (verankering, tussentijdse status, formele conformance-vectoren), inclusief de precieze voorwaarde waaronder we ze alsnog zouden bouwen: zie [DECISIONS.md](./DECISIONS.md).
28
+
29
+ ## Hoe het werkt
30
+
31
+ ### 1. `record_delivery`
32
+
33
+ De betalende agent (de koper) roept dit aan **na** een x402-afwikkeling, zodra bekend is of het beloofde is aangekomen. De claim bevat:
34
+
35
+ | Veld | Betekenis |
36
+ | --- | --- |
37
+ | `sellerAddress` | 0x-adres van de partij die betaald werd |
38
+ | `buyerAddress` | 0x-adres van de betalende agent, moet overeenkomen met het adres dat uit `signature` wordt teruggerekend |
39
+ | `assetType` | `gpu-hours` \| `storage` \| `api-credits` \| `bandwidth` |
40
+ | `promisedSpec` | Wat er beloofd was: vrije tekst of een gestructureerd object |
41
+ | `delivered` | `yes` \| `no` \| `partial` |
42
+ | `evidenceHash` | sha256-hex van bewijsmateriaal (logs, response-payload, ...), het bewijs zelf wordt niet opgeslagen |
43
+ | `settlementRef` | x402-payment-ref of on-chain tx-hash van de onderliggende betaling |
44
+ | `timestamp` | ISO-8601 tijdstip |
45
+ | `claimId` | content-addressed sha256-hash van alle velden hierboven, zie `computeClaimId()` in `src/schema.ts` |
46
+ | `signature` | EIP-191 personal-sign handtekening van de koper over `claimId` |
47
+ | `externalRefs` | *(optioneel, sinds 0.3.0)* ongeverifieerde verwijzingen naar andere agent-economie-infrastructuur: `sellerAgentRef`/`buyerAgentRef` (bv. een ERC-8004-agent-id of DID), `mandateRef`+`mandateIssuerDid` (een extern uitgegeven AP2/AAE-mandaat), `intentRef` (een extern AP2 IntentMandate), `disputeContext` (`protocol`+`termsHash`+optioneel `resolutionRef`, bv. een Legal Context Protocol-verwijzing). Zie [DECISIONS.md](./DECISIONS.md) D-007 t/m D-013 |
48
+
49
+ De server valideert eerst het schema, dan of `claimId` echt de hash van de inhoud is, en dan of `signature` echt terugrekent naar `buyerAddress`. Alleen dan wordt de claim toegevoegd aan de append-only ledger (`data/claims.jsonl`). Een ongeldige handtekening of een claim die al eerder is opgeslagen (zelfde `claimId`) wordt geweigerd.
50
+
51
+ ### 2. `get_delivery_history`
52
+
53
+ Gegeven een `sellerAddress`, retourneert dit alle bekende claims tegen die verkoper op déze installatie, chronologisch (oudst eerst). Puur feitelijk, geen samengevat getal. Een kopende agent roept dit aan **vóórdat** hij betaalt, om de ruwe leveringsgeschiedenis van een potentiële verkoper te zien en zelf te beoordelen.
54
+
55
+ Het antwoord bevat naast `sellerAddress`, `count` en `claims` ook `scope` (altijd `"local-ledger"`) en `note`: een vaste, feitelijke tekst die uitlegt dat dit resultaat alleen de lokale ledger van déze installatie weerspiegelt. Een lege of korte geschiedenis betekent niet dat de verkoper een schone staat van dienst heeft, het kan ook betekenen dat er hier simpelweg nog geen claims zijn vastgelegd. Zie [DECISIONS.md](./DECISIONS.md) (D-005) voor de bredere architectuurvraag hierachter: hoe vindt een koper claims die op een ándere installatie zijn vastgelegd.
56
+
57
+ ### 3. `resolve_agent_identity` *(sinds 0.3.0)*
58
+
59
+ Read-only opzoeking tegen een ERC-8004 Identity Registry: wie bezit `agentId` (`ownerOf`) en waar staat zijn registratiebestand (`tokenURI`). Alleen de standaard ERC-721-interface wordt aangeroepen, niets ERC-8004-specifieks. Vereist van de aanroeper zowel `agentRegistryRef` (`"eip155:<chainId>:<registryAddress>"`) als een `rpcUrl` voor die chain: dit project bundelt bewust geen eigen RPC-provider en geen canoniek registry-adres, want ERC-8004 heeft onafhankelijke deployments per chain en de EIP-tekst zelf noemt geen vast adres. Haalt bewust NOOIT op wat `tokenURI` aanwijst (dat blijft een pointer die de aanroeper zelf desgewenst opvraagt); dat zou een SSRF-vormig risico zijn op aanroeper-gecontroleerde on-chain data.
60
+
61
+ Getest tegen een injecteerbare `ContractFactory` (`src/erc8004.test.ts`, geen netwerkafhankelijkheid) én live tegen de echte, gedeployde registry op Base mainnet (`examples/verify-erc8004-live.mjs`, `npm run build && node examples/verify-erc8004-live.mjs`). Zie [DECISIONS.md](./DECISIONS.md) D-007 voor de volledige achtergrond.
62
+
63
+ ## Ondertekening
64
+
65
+ De claim wordt ondertekend door de **koper** (de partij die betaalde en dus weet wat er wel/niet aankwam), niet door de verkoper. Dit is bewust eenvoudige EIP-191 `personal_sign` over `claimId` (via `ethers.Signer#signMessage`), geen EIP-712 typed data. Dat houdt het crypto-oppervlak van deze MVP klein en makkelijk te controleren. Een latere upgrade naar EIP-712 (zoals in `mcp-paywall/src/x402.mjs`) is additief mogelijk zonder bestaande claims ongeldig te maken.
66
+
67
+ ## Een claim onafhankelijk verifiëren
68
+
69
+ Elke claim in de ledger is met alleen het npm-package en de rauwe claim-bytes na te rekenen, zonder toegang tot dit project of een netwerkoproep naar ons. Geen account, geen hosted call.
70
+
71
+ ```bash
72
+ npm install capacity-attest@0.2.0
73
+ ```
74
+
75
+ ```js
76
+ // verify.mjs, als ES module draaien (top-level await)
77
+ import { verifyClaim } from "capacity-attest/dist/signing.js";
78
+
79
+ const claim = JSON.parse(await (await fetch("<url naar een claim.jsonl-regel>")).text());
80
+ console.log(verifyClaim(claim));
81
+ // { ok: true } als claimId echt de hash van de inhoud is EN signature echt naar buyerAddress terugrekent
82
+ ```
83
+
84
+ Let op: importeer `capacity-attest/dist/signing.js` rechtstreeks, niet het package-root. De root (`dist/index.js`) start bij het importeren meteen de MCP-server over stdio, wat een los verificatie-script laat hangen.
85
+
86
+ `verifyClaim()` controleert precies twee dingen: dat `claimId` de content-addressed hash van de claim-velden is, en dat `signature` (EIP-191) terugrekent naar `buyerAddress`. Het controleert niet of de onderliggende afwikkeling (`settlementRef`) echt on-chain klopt, dat is een losse, aparte check tegen de betreffende chain, en het controleert niet of `delivered` waar is of of `evidenceHash` een echt bewijsstuk dekt, dat blijft de eigen verklaring van de kopende agent.
87
+
88
+ Een werkend, extern gereproduceerd voorbeeld van deze exacte stappen staat in [github.com/YE-YI7/asm-spec, PR #18](https://github.com/YE-YI7/asm-spec/pull/18): een onafhankelijk project dat dit tegen een echte, live geregistreerde claim heeft gedraaid.
89
+
90
+ ## Je eigen ingediende claims delen, los van een host (D-006)
91
+
92
+ `get_delivery_history` vertrouwt op de eerlijkheid van wie de MCP-server bedient: zie de `note` in dat tool-antwoord en [DECISIONS.md](./DECISIONS.md) (D-006). Elke getoonde claim is wel degelijk echt (ondertekening wordt sinds 2026-09-06 ook bij het lezen opnieuw gecontroleerd, niet alleen bij het schrijven), maar niets bewijst dat de host de VOLLEDIGE set laat zien die hij daadwerkelijk heeft.
93
+
94
+ Als jij zelf de koper bent die een claim indiende, hoef je op die host niet te wachten: jij hebt die claim zelf al ondertekend, dus jij kan 'm rechtstreeks aan een wantrouwende tegenpartij laten zien, buiten elke host om.
95
+
96
+ ```js
97
+ // export-my-claims.mjs
98
+ import { claimsForSeller } from "capacity-attest/dist/ledger.js";
99
+
100
+ const myAddress = "0x..."; // jouw buyerAddress
101
+ const seller = "0x..."; // de verkoper waar het over gaat
102
+
103
+ const mine = (await claimsForSeller(seller)).filter(
104
+ (c) => c.buyerAddress.toLowerCase() === myAddress.toLowerCase(),
105
+ );
106
+ console.log(JSON.stringify(mine, null, 2));
107
+ ```
108
+
109
+ Elke claim in die lijst is zelfstandig verifieerbaar met `verifyClaim()` (zie hierboven), zonder dat de ontvanger jouw installatie of enige host hoeft te vertrouwen. Dit lost geen vindbaarheid op (D-005: hoe vindt iemand anders jouw claim zonder dat jij 'm deelt) en geen volledigheid over ALLE kopers samen (D-006: dit bewijst alleen wat JIJ indiende, niet wat een host verder mogelijk verzwijgt van andere kopers), maar het geeft een concrete, kosteloze manier om één specifiek geschil te bewijzen zonder een host te hoeven vertrouwen.
110
+
111
+ ## Lokaal draaien
112
+
113
+ ```bash
114
+ npm install
115
+ npm run build # tsc -> dist/
116
+ npm run typecheck # tsc --noEmit
117
+ npm test # vitest run
118
+ npm run demo # end-to-end lokale demo met TEST-sleutels, geen live infra
119
+ npm start # start de MCP-server over stdio (bijv. voor Claude Desktop/Code als lokale MCP-server)
120
+ ```
121
+
122
+ De ledger-locatie is instelbaar via `CAPACITY_ATTEST_DATA_DIR` (default: `./data` in dit package). Tests en de demo gebruiken altijd een eigen, wegwerpbare tijdelijke map, nooit de echte `data/` map.
123
+
124
+ ## Architectuur
125
+
126
+ ```text
127
+ src/
128
+ schema.ts DeliveryClaim zod-schema + content-addressing (computeClaimId, canonicalize)
129
+ signing.ts sign/verify van een claim (ethers, EIP-191 personal-sign)
130
+ ledger.ts append-only JSONL-opslag (data/claims.jsonl), nooit muteerbaar
131
+ tools.ts de daadwerkelijke logica achter beide MCP-tools, transport-onafhankelijk
132
+ config.ts waar de ledger-map leeft, lazy zodat tests 'm kunnen overriden
133
+ index.ts MCP-server wiring (registreert record_delivery + get_delivery_history)
134
+ examples/demo.ts end-to-end lokaal voorbeeld met TEST-sleutels
135
+ ```
136
+
137
+ `tools.ts` bevat de eigenlijke business-logica; `index.ts` vertaalt dat alleen naar MCP tool-calls. Zo kunnen tests en de demo dezelfde logica direct aanroepen zonder een stdio-transport op te tuigen.
138
+
139
+ ## Relatie tot x402
140
+
141
+ Dit project verifieert of settelt zelf géén x402-betalingen, dat gebeurt al bij de betaalstap zelf (zie bijvoorbeeld `mcp-paywall/src/x402.mjs` in dit ecosysteem voor een volledige EIP-3009-verify/settle-implementatie). `settlementRef` verwijst simpelweg naar die reeds-voltooide afwikkeling. Dat betekent ook dat de MVP-koppeling met een echte x402-facilitator eenvoudig kan blijven: `settlementRef` is vrije tekst, met als aanname dat de koper 'm eerlijk invult. Een latere versie kan dat veld optioneel verifiëren tegen een echte facilitator (TODO, niet in deze MVP).
@@ -0,0 +1,39 @@
1
+ import * as z from "zod/v4";
2
+ export declare const ResolveAgentIdentityInputSchema: z.ZodObject<{
3
+ agentRegistryRef: z.ZodString;
4
+ agentId: z.ZodString;
5
+ rpcUrl: z.ZodString;
6
+ }, z.core.$strip>;
7
+ export type ResolveAgentIdentityInput = z.infer<typeof ResolveAgentIdentityInputSchema>;
8
+ export type ResolveAgentIdentityResult = {
9
+ ok: true;
10
+ chainId: string;
11
+ registryAddress: string;
12
+ agentId: string;
13
+ owner: string;
14
+ tokenUri: string;
15
+ } | {
16
+ ok: false;
17
+ reason: string;
18
+ };
19
+ /** The minimal read surface this module needs — real ethers.Contract satisfies this shape structurally. */
20
+ export interface Erc721ReadContract {
21
+ ownerOf(agentId: bigint): Promise<string>;
22
+ tokenURI(agentId: bigint): Promise<string>;
23
+ }
24
+ /**
25
+ * Dependency-injection seam so tests can supply a fake contract instead of
26
+ * making a real network call, without needing to fake ethers' own ABI
27
+ * encoding/decoding. Defaults to a real ethers Contract over a real
28
+ * JsonRpcProvider.
29
+ */
30
+ export type ContractFactory = (registryAddress: string, rpcUrl: string) => Erc721ReadContract;
31
+ /**
32
+ * Read-only lookup against an ERC-8004 Identity Registry: who owns
33
+ * `agentId` (`ownerOf`) and where its registration file lives (`tokenURI`).
34
+ * Never resolves, verifies, or trusts the content the returned `tokenUri`
35
+ * points to — see file header. This is the logic behind the
36
+ * `resolve_agent_identity` MCP tool.
37
+ */
38
+ export declare function resolveAgentIdentity(input: ResolveAgentIdentityInput, contractFactory?: ContractFactory): Promise<ResolveAgentIdentityResult>;
39
+ //# sourceMappingURL=erc8004.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc8004.d.ts","sourceRoot":"","sources":["../src/erc8004.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AA2B5B,eAAO,MAAM,+BAA+B;;;;iBAM1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,MAAM,MAAM,0BAA0B,GAClC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAwBlC,2GAA2G;AAC3G,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,kBAAkB,CAAC;AAO9F;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,EAChC,eAAe,GAAE,eAAwC,GACxD,OAAO,CAAC,0BAA0B,CAAC,CA8BrC"}
@@ -0,0 +1,122 @@
1
+ // erc8004.ts — read-only resolution against an ERC-8004 Identity Registry.
2
+ //
3
+ // ERC-8004 ("Trustless Agents") defines its Identity Registry as a standard
4
+ // ERC-721 contract: an agent's on-chain identity IS an NFT, `agentId` IS the
5
+ // tokenId. There is no bespoke `getAgent()` function in the spec — lookup is
6
+ // exactly `ownerOf(agentId)` (who controls this identity) and
7
+ // `tokenURI(agentId)` (a pointer to the agent's registration file: an IPFS/
8
+ // HTTPS/data URI, per eips.ethereum.org/EIPS/eip-8004, confirmed 2026-09-06
9
+ // against the spec text directly). This module calls only those two
10
+ // standard, universal ERC-721 read functions — nothing ERC-8004-specific.
11
+ //
12
+ // Deliberately NOT done here: fetching or parsing what `tokenURI` points to.
13
+ // That string is caller-controlled data embedded in on-chain state by
14
+ // whoever registered the agent, and auto-fetching it (an ipfs:// gateway
15
+ // call, or a fetch to an arbitrary https:// URL surfaced from someone
16
+ // else's on-chain write) is a real SSRF-shaped risk this project does not
17
+ // need to take on for a read-only identity check. Callers get the raw
18
+ // tokenUri string back and decide for themselves whether and how to fetch
19
+ // it — same "cite, never resolve further" posture as externalRefs
20
+ // (DECISIONS.md D-007).
21
+ //
22
+ // Deliberately NOT hardcoded here: any specific registry contract address
23
+ // or chain RPC endpoint. ERC-8004 is deployed independently on multiple
24
+ // chains (mainnet, Base, and others per the EIP's own multi-chain design),
25
+ // and the EIP text itself lists no canonical deployment address anywhere.
26
+ // Guessing one would risk querying the wrong contract and returning
27
+ // misleading data. Both the registry reference and the RPC endpoint are
28
+ // therefore required, caller-supplied inputs — this module is a thin,
29
+ // chain-agnostic resolver, never an authority on which deployment is "the"
30
+ // one, and never a source of its own RPC credentials for a published
31
+ // open-source package to leak or rate-limit on other people's behalf.
32
+ import { ethers } from "ethers";
33
+ import * as z from "zod/v4";
34
+ // The EIP's own compound reference format: "{namespace}:{chainId}:
35
+ // {identityRegistry}", namespace fixed to "eip155" for EVM chains
36
+ // (CAIP-2/CAIP-10-style). Captures chainId and the registry contract
37
+ // address separately; the address half accepts either case, normalized to
38
+ // lower case in the result, same convention as sellerAddress/buyerAddress
39
+ // in schema.ts.
40
+ const AGENT_REGISTRY_REF_RE = /^eip155:(\d+):(0x[0-9a-fA-F]{40})$/;
41
+ // ERC-721's two standard read functions. This is the ENTIRE interface this
42
+ // module depends on — see the file header for why nothing ERC-8004-specific
43
+ // is needed.
44
+ const ERC721_READ_ABI = ["function ownerOf(uint256 tokenId) view returns (address)", "function tokenURI(uint256 tokenId) view returns (string)"];
45
+ // uint256's maximum value (2^256 - 1) has exactly 78 decimal digits. A
46
+ // longer digit string can never be a valid ERC-721 tokenId; bounding the
47
+ // length before BigInt() parses it avoids handing an unboundedly large
48
+ // digit string to the runtime's bignum parser.
49
+ const MAX_AGENT_ID_DIGITS = 78;
50
+ const CALL_TIMEOUT_MS = 8_000;
51
+ // Mirrors the plain-TS validation below in isValidAgentId/isHttpUrl at the
52
+ // MCP tool-input boundary (index.ts's inputSchema), so a caller gets a
53
+ // schema-shaped rejection before resolveAgentIdentity() is even called.
54
+ // The runtime function still re-checks everything itself, since it is
55
+ // also callable directly (tests, examples), not only through the MCP tool.
56
+ export const ResolveAgentIdentityInputSchema = z.object({
57
+ agentRegistryRef: z
58
+ .string()
59
+ .describe('Compound ERC-8004 registry reference: "eip155:<chainId>:<registryAddress>", e.g. "eip155:1:0x1234567890123456789012345678901234567890"'),
60
+ agentId: z.string().describe("The ERC-721 tokenId / ERC-8004 agentId, as a decimal string"),
61
+ rpcUrl: z.string().describe("JSON-RPC endpoint (http:// or https://) for the chain named in agentRegistryRef — never assumed or defaulted"),
62
+ });
63
+ function isValidAgentId(v) {
64
+ return v.length <= MAX_AGENT_ID_DIGITS && /^(0|[1-9][0-9]*)$/.test(v);
65
+ }
66
+ function isHttpUrl(v) {
67
+ try {
68
+ const protocol = new URL(v).protocol;
69
+ return protocol === "http:" || protocol === "https:";
70
+ }
71
+ catch {
72
+ return false;
73
+ }
74
+ }
75
+ function withTimeout(p, ms) {
76
+ return Promise.race([
77
+ p,
78
+ new Promise((_, reject) => {
79
+ setTimeout(() => reject(new Error(`timed out after ${ms}ms`)), ms);
80
+ }),
81
+ ]);
82
+ }
83
+ const defaultContractFactory = (registryAddress, rpcUrl) => {
84
+ const provider = new ethers.JsonRpcProvider(rpcUrl);
85
+ return new ethers.Contract(registryAddress, ERC721_READ_ABI, provider);
86
+ };
87
+ /**
88
+ * Read-only lookup against an ERC-8004 Identity Registry: who owns
89
+ * `agentId` (`ownerOf`) and where its registration file lives (`tokenURI`).
90
+ * Never resolves, verifies, or trusts the content the returned `tokenUri`
91
+ * points to — see file header. This is the logic behind the
92
+ * `resolve_agent_identity` MCP tool.
93
+ */
94
+ export async function resolveAgentIdentity(input, contractFactory = defaultContractFactory) {
95
+ const match = AGENT_REGISTRY_REF_RE.exec(input.agentRegistryRef);
96
+ if (!match) {
97
+ return {
98
+ ok: false,
99
+ reason: 'agentRegistryRef must match "eip155:<chainId>:<registryAddress>", e.g. "eip155:1:0x1234567890123456789012345678901234567890"',
100
+ };
101
+ }
102
+ const chainId = match[1];
103
+ const registryAddress = match[2];
104
+ if (!isValidAgentId(input.agentId)) {
105
+ return { ok: false, reason: "agentId must be a non-negative decimal integer string (no leading zeros, no sign, at most 78 digits)" };
106
+ }
107
+ if (!isHttpUrl(input.rpcUrl)) {
108
+ return { ok: false, reason: "rpcUrl must be an http:// or https:// URL" };
109
+ }
110
+ let owner;
111
+ let tokenUri;
112
+ try {
113
+ const contract = contractFactory(registryAddress, input.rpcUrl);
114
+ const agentIdBig = BigInt(input.agentId);
115
+ [owner, tokenUri] = await withTimeout(Promise.all([contract.ownerOf(agentIdBig), contract.tokenURI(agentIdBig)]), CALL_TIMEOUT_MS);
116
+ }
117
+ catch (e) {
118
+ return { ok: false, reason: `on-chain lookup failed: ${e.message}` };
119
+ }
120
+ return { ok: true, chainId, registryAddress: registryAddress.toLowerCase(), agentId: input.agentId, owner, tokenUri };
121
+ }
122
+ //# sourceMappingURL=erc8004.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc8004.js","sourceRoot":"","sources":["../src/erc8004.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAA2C,MAAM,aAAa,CAAC;AAwDrG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAA2C,MAAM,aAAa,CAAC;AAkGrG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
7
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
8
8
  import { ASSET_TYPES, DELIVERED_VALUES, ClaimContentSchema, DeliveryClaimSchema } from "./schema.js";
9
9
  import { recordDelivery, getDeliveryHistory } from "./tools.js";
10
+ import { resolveAgentIdentity, ResolveAgentIdentityInputSchema } from "./erc8004.js";
10
11
  const server = new McpServer({
11
12
  name: "capacity-attest",
12
13
  version: "0.1.0",
@@ -34,15 +35,52 @@ server.registerTool("record_delivery", {
34
35
  });
35
36
  server.registerTool("get_delivery_history", {
36
37
  title: "Get a seller's delivery history",
37
- description: "Return every known, signature-verified delivery claim recorded against a given sellerAddress, oldest first. " +
38
- "Purely factual — no aggregate score, rating, or reputation judgment is computed. A buying agent can call this " +
39
- "BEFORE paying a seller to see that seller's raw delivery history for gpu-hours, storage, api-credits, and " +
40
- "bandwidth claims.",
38
+ description: "Return every signature-verified delivery claim recorded against a given sellerAddress in THIS installation's " +
39
+ "local ledger, oldest first. Purely factual — no aggregate score, rating, or reputation judgment is computed. " +
40
+ "IMPORTANT, two separate caveats, both repeated in the response's own `note` field: (1) this is scoped to the " +
41
+ "local ledger only — a different installation may hold other claims against the same seller that this call " +
42
+ "cannot see, so an empty or short result does NOT mean the seller has a clean record elsewhere, only that no " +
43
+ "claims have been recorded here; (2) even within this installation, a shown claim's signature is genuinely " +
44
+ "verified, but nothing proves this is the COMPLETE set of claims the operator actually holds — completeness " +
45
+ "depends on the operator's honesty, not cryptography. " +
46
+ "A buying agent can call this BEFORE paying a seller to see that seller's raw delivery history for gpu-hours, " +
47
+ "storage, api-credits, and bandwidth claims.",
41
48
  inputSchema: {
42
49
  sellerAddress: ClaimContentSchema.shape.sellerAddress,
43
50
  },
44
51
  }, async ({ sellerAddress }) => {
45
- return textResult(await getDeliveryHistory(sellerAddress));
52
+ // NINTH FIX (2026-09-06, found by the same adversarial audit as the
53
+ // ledger.ts SEVENTH/EIGHTH fixes): every other handler/entry point in
54
+ // this codebase (record_delivery below, recordDelivery() in tools.ts)
55
+ // is deliberately wrapped so untrusted-input-triggered errors degrade to
56
+ // the tool's normal {ok:false}/errorResult contract instead of an
57
+ // uncaught exception — this handler was the one place that discipline
58
+ // was not applied. A real fs error surfaced from getFreshCache()/
59
+ // resyncFromDisk() (e.g. a transient EACCES/EBUSY, deliberately made
60
+ // non-swallowed by an earlier fix in ledger.ts) would otherwise escape
61
+ // this handler unhandled instead of returning a normal error result.
62
+ try {
63
+ return textResult(await getDeliveryHistory(sellerAddress));
64
+ }
65
+ catch (e) {
66
+ return errorResult(e.message);
67
+ }
68
+ });
69
+ server.registerTool("resolve_agent_identity", {
70
+ title: "Resolve an ERC-8004 agent identity (read-only, on-chain)",
71
+ description: "Look up an agent's on-chain identity registration in an ERC-8004 Identity Registry: who owns the agentId " +
72
+ "(ownerOf) and where its registration file lives (tokenURI). Read-only — never writes anything, never touches " +
73
+ "the delivery ledger. Requires the caller to supply BOTH the registry reference (chain + contract address) AND " +
74
+ "an RPC endpoint for that chain: this tool does not assume, default, or bundle its own RPC provider or a " +
75
+ "canonical registry address, since ERC-8004 has independent deployments on multiple chains. This tool does NOT " +
76
+ "fetch or parse what tokenURI points to — it returns that pointer as-is for the caller to resolve themselves. " +
77
+ "capacity-attest never verifies or endorses what an ERC-8004 registration claims; see DECISIONS.md D-007.",
78
+ inputSchema: ResolveAgentIdentityInputSchema.shape,
79
+ }, async (args) => {
80
+ const result = await resolveAgentIdentity(args);
81
+ if (!result.ok)
82
+ return errorResult(result.reason);
83
+ return textResult(result);
46
84
  });
47
85
  // Re-exported so callers embedding this package can reference the same enums
48
86
  // / schema the tools validate against without duplicating them.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,yEAAyE;AACzE,2EAA2E;AAC3E,oDAAoD;AACpD,uDAAuD;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;IACE,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,oHAAoH;QACpH,qGAAqG;QACrG,4GAA4G;QAC5G,2GAA2G;QAC3G,4BAA4B;IAC9B,WAAW,EAAE,mBAAmB,CAAC,KAAK;CACvC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3D,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;IACE,KAAK,EAAE,iCAAiC;IACxC,WAAW,EACT,8GAA8G;QAC9G,gHAAgH;QAChH,4GAA4G;QAC5G,mBAAmB;IACrB,WAAW,EAAE;QACX,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,aAAa;KACtD;CACF,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;IAC1B,OAAO,UAAU,CAAC,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7D,CAAC,CACF,CAAC;AAEF,6EAA6E;AAC7E,gEAAgE;AAChE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;AAEzC,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAoftE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA0D9E;AAED,4DAA4D;AAC5D,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAQrF;AAED,mFAAmF;AACnF,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAG1D"}
1
+ {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AA0hBtE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA0D9E;AAED,4DAA4D;AAC5D,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAQrF;AAED,mFAAmF;AACnF,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAG1D"}
package/dist/ledger.js CHANGED
@@ -10,6 +10,7 @@ import { readFileSync, appendFileSync, openSync, closeSync, unlinkSync, statSync
10
10
  import { join } from "node:path";
11
11
  import { dataDir, ensureDataDir } from "./config.js";
12
12
  import { DeliveryClaimSchema } from "./schema.js";
13
+ import { verifyClaim } from "./signing.js";
13
14
  function claimsFile() {
14
15
  return join(dataDir(), "claims.jsonl");
15
16
  }
@@ -100,7 +101,18 @@ async function acquireLock(path) {
100
101
  continue;
101
102
  }
102
103
  if (Date.now() > deadline) {
103
- throw new Error(`ledger_lock_timeout: could not acquire lock at ${path}`);
104
+ // EIGHTH FIX (2026-09-06, found by the same adversarial audit as the
105
+ // SEVENTH FIX above): this used to interpolate the full resolved
106
+ // `path` (== CAPACITY_ATTEST_DATA_DIR + "/claims.jsonl.lock") into the
107
+ // thrown message. That propagates unchanged through appendClaim() ->
108
+ // recordDelivery()'s `{ok:false, reason: e.message}` -> the MCP
109
+ // tool's error text (index.ts's errorResult) — a caller who simply
110
+ // triggers ordinary lock contention (trivial: a few concurrent
111
+ // record_delivery calls) gets the server's absolute filesystem path
112
+ // handed back, which on a real deployment can reveal the install
113
+ // location and, on Windows, the operating user's name. No caller
114
+ // needs that path to understand or retry the failure.
115
+ throw new Error("ledger_lock_timeout: could not acquire the ledger lock in time");
104
116
  }
105
117
  // Non-blocking backoff: await a real timer instead of spinning, so the
106
118
  // event loop stays free to process other work (timers, other
@@ -387,8 +399,34 @@ async function resyncFromDisk(file) {
387
399
  const line = lines[i];
388
400
  try {
389
401
  const claim = DeliveryClaimSchema.parse(JSON.parse(line));
390
- decorated.push({ claim, ts: timestampMs(claim) });
391
- claimIdSet.add(claim.claimId.toLowerCase());
402
+ // SEVENTH FIX (2026-09-06, found by an adversarial audit): until this
403
+ // fix, a line only had to match DeliveryClaimSchema's SHAPE (claimId a
404
+ // 0x+64-hex string, signature a 0x+130-hex string — see schema.ts's
405
+ // claimIdField/signatureField, both plain regexes) to be accepted into
406
+ // the cache and served back out through get_delivery_history. Neither
407
+ // claimId (does it really hash the claim's own content?) nor signature
408
+ // (does it really recover to buyerAddress?) was ever recomputed on
409
+ // this READ path — only appendClaim()'s caller (recordDelivery() in
410
+ // tools.ts) verifies before writing. That is airtight for claims that
411
+ // only ever arrive via record_delivery, but this ledger's own header
412
+ // comment documents a deployment shape this package is explicitly
413
+ // built for — multiple OS processes sharing one
414
+ // CAPACITY_ATTEST_DATA_DIR — where nothing stops a second writer (or a
415
+ // corrupted/hand-edited file) from appending a well-shaped but entirely
416
+ // fabricated line directly to claims.jsonl, bypassing recordDelivery()
417
+ // and its verifyClaim() gate completely. Before this fix such a line
418
+ // would resync into the cache and get returned as if genuine,
419
+ // contradicting both get_delivery_history's own tool description
420
+ // ("every SIGNATURE-VERIFIED delivery claim") and DECISIONS.md D-006's
421
+ // reasoning, which assumed authenticity of every shown claim was never
422
+ // in question — it was, on this exact path. Fix: reuse the same
423
+ // verifyClaim() the write path already trusts, and treat a claim that
424
+ // fails it exactly like a corrupt/truncated line below — silently
425
+ // excluded, ledger stays readable, no new error surface.
426
+ if (verifyClaim(claim).ok) {
427
+ decorated.push({ claim, ts: timestampMs(claim) });
428
+ claimIdSet.add(claim.claimId.toLowerCase());
429
+ }
392
430
  }
393
431
  catch {
394
432
  // A corrupt/partial line (e.g. a truncated write) must not take down
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -54,6 +54,25 @@ export declare const MeasuredSchema: z.ZodObject<{
54
54
  }, z.core.$strict>;
55
55
  }, z.core.$strict>;
56
56
  export type Measured = z.infer<typeof MeasuredSchema>;
57
+ declare const DisputeContextSchema: z.ZodObject<{
58
+ protocol: z.ZodString;
59
+ termsHash: z.ZodString;
60
+ resolutionRef: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$strict>;
62
+ export type DisputeContext = z.infer<typeof DisputeContextSchema>;
63
+ export declare const ExternalRefsSchema: z.ZodObject<{
64
+ sellerAgentRef: z.ZodOptional<z.ZodString>;
65
+ buyerAgentRef: z.ZodOptional<z.ZodString>;
66
+ mandateRef: z.ZodOptional<z.ZodString>;
67
+ mandateIssuerDid: z.ZodOptional<z.ZodString>;
68
+ intentRef: z.ZodOptional<z.ZodString>;
69
+ disputeContext: z.ZodOptional<z.ZodObject<{
70
+ protocol: z.ZodString;
71
+ termsHash: z.ZodString;
72
+ resolutionRef: z.ZodOptional<z.ZodString>;
73
+ }, z.core.$strict>>;
74
+ }, z.core.$strict>;
75
+ export type ExternalRefs = z.infer<typeof ExternalRefsSchema>;
57
76
  export declare const ClaimContentObject: z.ZodObject<{
58
77
  sellerAddress: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
59
78
  buyerAddress: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
@@ -102,6 +121,18 @@ export declare const ClaimContentObject: z.ZodObject<{
102
121
  readingsHash: z.ZodOptional<z.ZodString>;
103
122
  }, z.core.$strict>;
104
123
  }, z.core.$strict>>;
124
+ externalRefs: z.ZodOptional<z.ZodObject<{
125
+ sellerAgentRef: z.ZodOptional<z.ZodString>;
126
+ buyerAgentRef: z.ZodOptional<z.ZodString>;
127
+ mandateRef: z.ZodOptional<z.ZodString>;
128
+ mandateIssuerDid: z.ZodOptional<z.ZodString>;
129
+ intentRef: z.ZodOptional<z.ZodString>;
130
+ disputeContext: z.ZodOptional<z.ZodObject<{
131
+ protocol: z.ZodString;
132
+ termsHash: z.ZodString;
133
+ resolutionRef: z.ZodOptional<z.ZodString>;
134
+ }, z.core.$strict>>;
135
+ }, z.core.$strict>>;
105
136
  }, z.core.$strip>;
106
137
  export declare const DeliveryClaimObject: z.ZodObject<{
107
138
  sellerAddress: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
@@ -151,6 +182,18 @@ export declare const DeliveryClaimObject: z.ZodObject<{
151
182
  readingsHash: z.ZodOptional<z.ZodString>;
152
183
  }, z.core.$strict>;
153
184
  }, z.core.$strict>>;
185
+ externalRefs: z.ZodOptional<z.ZodObject<{
186
+ sellerAgentRef: z.ZodOptional<z.ZodString>;
187
+ buyerAgentRef: z.ZodOptional<z.ZodString>;
188
+ mandateRef: z.ZodOptional<z.ZodString>;
189
+ mandateIssuerDid: z.ZodOptional<z.ZodString>;
190
+ intentRef: z.ZodOptional<z.ZodString>;
191
+ disputeContext: z.ZodOptional<z.ZodObject<{
192
+ protocol: z.ZodString;
193
+ termsHash: z.ZodString;
194
+ resolutionRef: z.ZodOptional<z.ZodString>;
195
+ }, z.core.$strict>>;
196
+ }, z.core.$strict>>;
154
197
  claimId: z.ZodString;
155
198
  signature: z.ZodString;
156
199
  }, z.core.$strip>;
@@ -202,6 +245,18 @@ export declare const ClaimContentSchema: z.ZodObject<{
202
245
  readingsHash: z.ZodOptional<z.ZodString>;
203
246
  }, z.core.$strict>;
204
247
  }, z.core.$strict>>;
248
+ externalRefs: z.ZodOptional<z.ZodObject<{
249
+ sellerAgentRef: z.ZodOptional<z.ZodString>;
250
+ buyerAgentRef: z.ZodOptional<z.ZodString>;
251
+ mandateRef: z.ZodOptional<z.ZodString>;
252
+ mandateIssuerDid: z.ZodOptional<z.ZodString>;
253
+ intentRef: z.ZodOptional<z.ZodString>;
254
+ disputeContext: z.ZodOptional<z.ZodObject<{
255
+ protocol: z.ZodString;
256
+ termsHash: z.ZodString;
257
+ resolutionRef: z.ZodOptional<z.ZodString>;
258
+ }, z.core.$strict>>;
259
+ }, z.core.$strict>>;
205
260
  }, z.core.$strip>;
206
261
  export type ClaimContent = z.infer<typeof ClaimContentSchema>;
207
262
  /** The full, stored, signed claim — ClaimContent plus its content-address and signature. */
@@ -253,6 +308,18 @@ export declare const DeliveryClaimSchema: z.ZodObject<{
253
308
  readingsHash: z.ZodOptional<z.ZodString>;
254
309
  }, z.core.$strict>;
255
310
  }, z.core.$strict>>;
311
+ externalRefs: z.ZodOptional<z.ZodObject<{
312
+ sellerAgentRef: z.ZodOptional<z.ZodString>;
313
+ buyerAgentRef: z.ZodOptional<z.ZodString>;
314
+ mandateRef: z.ZodOptional<z.ZodString>;
315
+ mandateIssuerDid: z.ZodOptional<z.ZodString>;
316
+ intentRef: z.ZodOptional<z.ZodString>;
317
+ disputeContext: z.ZodOptional<z.ZodObject<{
318
+ protocol: z.ZodString;
319
+ termsHash: z.ZodString;
320
+ resolutionRef: z.ZodOptional<z.ZodString>;
321
+ }, z.core.$strict>>;
322
+ }, z.core.$strict>>;
256
323
  claimId: z.ZodString;
257
324
  signature: z.ZodString;
258
325
  }, z.core.$strip>;
@@ -332,6 +399,18 @@ export declare const StrictClaimContentSchema: z.ZodObject<{
332
399
  readingsHash: z.ZodOptional<z.ZodString>;
333
400
  }, z.core.$strict>;
334
401
  }, z.core.$strict>>;
402
+ externalRefs: z.ZodOptional<z.ZodObject<{
403
+ sellerAgentRef: z.ZodOptional<z.ZodString>;
404
+ buyerAgentRef: z.ZodOptional<z.ZodString>;
405
+ mandateRef: z.ZodOptional<z.ZodString>;
406
+ mandateIssuerDid: z.ZodOptional<z.ZodString>;
407
+ intentRef: z.ZodOptional<z.ZodString>;
408
+ disputeContext: z.ZodOptional<z.ZodObject<{
409
+ protocol: z.ZodString;
410
+ termsHash: z.ZodString;
411
+ resolutionRef: z.ZodOptional<z.ZodString>;
412
+ }, z.core.$strict>>;
413
+ }, z.core.$strict>>;
335
414
  }, z.core.$strip>;
336
415
  /** DeliveryClaimSchema plus the ingest hardening of S-1..S-6. This is what record_delivery validates against. */
337
416
  export declare const StrictDeliveryClaimSchema: z.ZodObject<{
@@ -382,7 +461,20 @@ export declare const StrictDeliveryClaimSchema: z.ZodObject<{
382
461
  readingsHash: z.ZodOptional<z.ZodString>;
383
462
  }, z.core.$strict>;
384
463
  }, z.core.$strict>>;
464
+ externalRefs: z.ZodOptional<z.ZodObject<{
465
+ sellerAgentRef: z.ZodOptional<z.ZodString>;
466
+ buyerAgentRef: z.ZodOptional<z.ZodString>;
467
+ mandateRef: z.ZodOptional<z.ZodString>;
468
+ mandateIssuerDid: z.ZodOptional<z.ZodString>;
469
+ intentRef: z.ZodOptional<z.ZodString>;
470
+ disputeContext: z.ZodOptional<z.ZodObject<{
471
+ protocol: z.ZodString;
472
+ termsHash: z.ZodString;
473
+ resolutionRef: z.ZodOptional<z.ZodString>;
474
+ }, z.core.$strict>>;
475
+ }, z.core.$strict>>;
385
476
  claimId: z.ZodString;
386
477
  signature: z.ZodString;
387
478
  }, z.core.$strip>;
479
+ export {};
388
480
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,eAAO,MAAM,WAAW,+DAAgE,CAAC;AACzF,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,eAAO,MAAM,gBAAgB,mCAAoC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAkF1D,eAAO,MAAM,cAAc,2EAA4E,CAAC;AACxG,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,eAAO,MAAM,qBAAqB,mCAAoC,CAAC;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AASnE,eAAO,MAAM,2BAA2B,4DAA6D,CAAC;AACtG,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAK1E,CAAC;AA4HF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkCzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAkEtD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyD7B,CAAC;AAWH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG9B,CAAC;AASH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA2D,CAAC;AAC3F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA4D,CAAC;AAC7F,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AA+BD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAG5D;AAoLD,qHAAqH;AACrH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA6F,CAAC;AAEnI,iHAAiH;AACjH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8F,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,eAAO,MAAM,WAAW,+DAAgE,CAAC;AACzF,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,eAAO,MAAM,gBAAgB,mCAAoC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAsG1D,eAAO,MAAM,cAAc,2EAA4E,CAAC;AACxG,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,eAAO,MAAM,qBAAqB,mCAAoC,CAAC;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AASnE,eAAO,MAAM,2BAA2B,4DAA6D,CAAC;AACtG,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAK1E,CAAC;AA4HF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkCzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAuItD,QAAA,MAAM,oBAAoB;;;;kBAgBxB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;;;;;kBAuB3B,CAAC;AACL,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8D7B,CAAC;AAWH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG9B,CAAC;AASH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA2D,CAAC;AAC3F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA4D,CAAC;AAC7F,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AA+BD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAG5D;AAoLD,qHAAqH;AACrH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA6F,CAAC;AAEnI,iHAAiH;AACjH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8F,CAAC"}
package/dist/schema.js CHANGED
@@ -52,10 +52,31 @@ const MAX_DEPTH = 32;
52
52
  // instead of language-level recursion, closes that gap for good.
53
53
  function exceedsMaxDepth(value, maxDepth) {
54
54
  const stack = [{ v: value, d: 0 }];
55
+ // TENTH FIX (2026-09-06, found by the same adversarial audit as the
56
+ // ledger.ts SEVENTH/EIGHTH/NINTH fixes): promisedSpecIngestProblem() below
57
+ // was hardened with exactly this `visited` guard after a real, measured
58
+ // hang (an acyclic DAG of 41 shared-reference objects at depth 40 explored
59
+ // ~2^40 nodes and ran past 55 seconds — see that function's own comment).
60
+ // This sibling walker had the identical unguarded shape and was never
61
+ // updated to match, even though it runs on the exact same promisedSpec
62
+ // input, just earlier (this is the schema-level `.refine()`, which zod
63
+ // runs before checkIngestHardening's superRefine). Not reachable over the
64
+ // MCP wire protocol (JSON.parse of a JSON-RPC message can never produce
65
+ // aliased object references — only a direct library caller building
66
+ // ClaimContent by hand with real JS reference sharing can trigger it), but
67
+ // left inconsistent otherwise: two functions walking the same data, one
68
+ // hardened and one not, is exactly the kind of drift that turns into a
69
+ // real bug the next time either one is copied as a template for a third.
70
+ const visited = new Set();
55
71
  while (stack.length > 0) {
56
72
  const { v, d } = stack.pop();
57
73
  if (d > maxDepth)
58
74
  return true;
75
+ if (v !== null && typeof v === "object") {
76
+ if (visited.has(v))
77
+ continue;
78
+ visited.add(v);
79
+ }
59
80
  if (Array.isArray(v)) {
60
81
  for (const item of v)
61
82
  stack.push({ v: item, d: d + 1 });
@@ -308,6 +329,97 @@ function checkMeasuredConsistency(content, ctx) {
308
329
  });
309
330
  }
310
331
  }
332
+ // ---------------------------------------------------------------------------
333
+ // `externalRefs` — optional, unverified pointers into other agent-economy
334
+ // infrastructure, added in 0.3.0.
335
+ //
336
+ // Background: a 2026-09-06 workflow checked the six layers that sit next to
337
+ // this package's own Evidence layer (Identity, Authority, Intent, Execution,
338
+ // Settlement, Discovery, Liability) against what the wider agent-economy
339
+ // ecosystem (ERC-8004, Google AP2, the x402 Foundation, the Legal Context
340
+ // Protocol, and others) already ships in production. Every one of them is
341
+ // already being built by parties with far more reach than this project —
342
+ // see knowledge/al-mizaan/... in wazir-al-ghanima for the sourced writeup.
343
+ // Building any of those layers ourselves would duplicate infrastructure that
344
+ // already exists and is better resourced. What DOES fit this package's own
345
+ // "verify yourself, we assert facts, never authority" philosophy: a place to
346
+ // CITE one of those external systems from inside a claim, without this
347
+ // package ever validating, resolving, or trusting what is cited. Same
348
+ // posture as `evidenceHash` (a hash of evidence that is never itself
349
+ // checked) and `settlementRef` (a payment reference that is never itself
350
+ // resolved on-chain).
351
+ //
352
+ // Same preimage discipline as `measured`: `externalRefs` is exactly one
353
+ // `.optional()` key on ClaimContentObject, never `.default()`. An older
354
+ // parser that does not know this key strips it and computes a different
355
+ // (mismatching) claimId rather than silently trusting an unverified
356
+ // reference — the same safe failure direction `measured`'s own comment
357
+ // describes. Claims that omit the key hash bit-for-bit identically to
358
+ // before this field existed; enforced by the frozen regression anchor in
359
+ // external-refs.test.ts.
360
+ //
361
+ // Every leaf string below is deliberately format-light: these reference
362
+ // external systems (DIDs, CAIP-10-style chain identifiers, AP2 mandate ids,
363
+ // LCP terms hashes) whose own syntax this package has no business policing
364
+ // beyond basic length and hygiene. `mandateIssuerDid` is the one exception —
365
+ // a real, narrow DID-syntax check — because W3C DID Core defines that
366
+ // syntax precisely and a malformed DID here is unambiguously a caller bug,
367
+ // not a valid-but-unusual value this package should let through.
368
+ // ---------------------------------------------------------------------------
369
+ const MAX_EXTERNAL_REF_LENGTH = 512;
370
+ const MAX_PROTOCOL_LABEL_LENGTH = 64;
371
+ // Minimal W3C DID Core syntax: `did:<method-name>:<method-specific-id>`.
372
+ // method-name is ASCII lowercase letters/digits; method-specific-id is left
373
+ // broad (colons separate additional segments across DID methods) but still
374
+ // restricted to a safe, portable character set — the same reasoning as
375
+ // hasForbiddenTextChars elsewhere in this file, applied via character class
376
+ // instead of a separate refine, since the regex already forbids the
377
+ // offending bytes outright.
378
+ const DID_RE = /^did:[a-z0-9]+:[A-Za-z0-9._:%-]+$/;
379
+ function externalRefIssue(v) {
380
+ if (hasForbiddenTextChars(v)) {
381
+ return "must not contain C0 control characters, U+007F, or lone surrogates";
382
+ }
383
+ return null;
384
+ }
385
+ const ExternalRefSchema = z
386
+ .string()
387
+ .min(1, "must not be empty — omit the field entirely instead")
388
+ .max(MAX_EXTERNAL_REF_LENGTH)
389
+ .refine((v) => externalRefIssue(v) === null, {
390
+ message: "must not contain C0 control characters, U+007F, or lone surrogates",
391
+ });
392
+ const MandateIssuerDidSchema = z
393
+ .string()
394
+ .max(MAX_EXTERNAL_REF_LENGTH)
395
+ .regex(DID_RE, "mandateIssuerDid must be a syntactically valid DID: did:<method>:<method-specific-id>");
396
+ const DisputeContextSchema = z.strictObject({
397
+ protocol: z
398
+ .string()
399
+ .min(1, "protocol is required and must not be empty")
400
+ .max(MAX_PROTOCOL_LABEL_LENGTH)
401
+ .refine((v) => externalRefIssue(v) === null, {
402
+ message: "must not contain C0 control characters, U+007F, or lone surrogates",
403
+ })
404
+ .describe('Short label for the external dispute/liability protocol this claim can be evidence for, e.g. "LCP"'),
405
+ termsHash: z
406
+ .string()
407
+ .regex(LOWER_SHA256_HEX_RE, "termsHash must be a lower-case sha256 hex digest (64 chars, no 0x prefix)")
408
+ .describe("sha256 of the governing terms both parties accepted at settlement time — the terms themselves are not stored here"),
409
+ resolutionRef: ExternalRefSchema.optional().describe("Optional pointer to a resolution/case record in the external protocol named by `protocol`, once one exists"),
410
+ });
411
+ export const ExternalRefsSchema = z
412
+ .strictObject({
413
+ sellerAgentRef: ExternalRefSchema.optional().describe("Unverified pointer to an external agent-identity record for the seller (e.g. an ERC-8004 agent id or a DID). Tokenizen does not resolve or verify this"),
414
+ buyerAgentRef: ExternalRefSchema.optional().describe("Unverified pointer to an external agent-identity record for the buyer. Tokenizen does not resolve or verify this"),
415
+ mandateRef: ExternalRefSchema.optional().describe("Unverified pointer to an externally issued authority/mandate object (e.g. an AP2 Payment/Cart Mandate) that the buyer claims covers this delivery. Tokenizen does not check scope, budget, or validity against it"),
416
+ mandateIssuerDid: MandateIssuerDidSchema.optional().describe("DID of the principal who is claimed to have issued the mandate referenced by `mandateRef`. Not verified against the mandate itself"),
417
+ intentRef: ExternalRefSchema.optional().describe("Unverified pointer to an externally issued, pre-signed intent object (e.g. an AP2 IntentMandate) describing what the buyer's principal originally asked for"),
418
+ disputeContext: DisputeContextSchema.optional().describe("Present only if buyer and seller had already agreed to external dispute terms at settlement time. Makes a delivered:no claim usable as evidence in that external protocol instead of Tokenizen adjudicating anything itself"),
419
+ })
420
+ .refine((v) => Object.keys(v).length > 0, {
421
+ message: "externalRefs must not be an empty object — omit the field entirely if there is nothing to reference",
422
+ });
311
423
  export const ClaimContentObject = z.object({
312
424
  // .transform(toLowerCase): a fuzz-and-benchmark audit found that
313
425
  // computeClaimId() hashed addresses exactly as submitted while every other
@@ -364,6 +476,9 @@ export const ClaimContentObject = z.object({
364
476
  // hashes bit-for-bit identically (proven in schema.test.ts against the real
365
477
  // production claim in data-selftest/claims.jsonl).
366
478
  measured: MeasuredSchema.optional().describe("Optional quantitative record of how much was promised and how much was measured. Presence is the version marker; absence is the only encoding of 'not measured'"),
479
+ // Added in 0.3.0, same optional/never-defaulted discipline as `measured`
480
+ // above — see the ExternalRefsSchema comment block for the full rationale.
481
+ externalRefs: ExternalRefsSchema.optional().describe("Optional, unverified pointers into other agent-economy infrastructure (identity, authority, intent, dispute). Tokenizen never resolves or trusts these — they are citations, not verified facts"),
367
482
  });
368
483
  const claimIdField = z
369
484
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -18,16 +18,41 @@ export type RecordDeliveryResult = {
18
18
  * exact read-check-write sequence the lock exists to make atomic.
19
19
  */
20
20
  export declare function recordDelivery(input: unknown): Promise<RecordDeliveryResult>;
21
+ /**
22
+ * `scope` and `note` are a factual disclosure, not a judgment: they say
23
+ * where this data came from, never how trustworthy the seller is. Adding a
24
+ * quality/confidence field here would be exactly the score this package
25
+ * refuses to compute (see "Wat dit NIET is" in README.md) — these two exist
26
+ * to close two different, real gaps, both discovered from the same root
27
+ * cause: without them, an empty `claims` array is indistinguishable from
28
+ * "this seller has a clean record" when it may just mean "no claims have
29
+ * been recorded on THIS ledger" (gap 1, DECISIONS.md D-005), and a caller
30
+ * has no way to tell "the host showed everything it has" from "the host
31
+ * showed a curated subset" (gap 2, DECISIONS.md D-006) — every claim that IS
32
+ * shown has its own independently checkable signature (doubly true after the
33
+ * 2026-09-06 fix in ledger.ts that made the read path itself re-verify that,
34
+ * not just check shape), but nothing proves the SET shown is the full set
35
+ * the host actually holds. A caller (human or agent) reading only
36
+ * `count: 0`, or reading any count without this note, has no way to tell
37
+ * either of those apart from a genuinely clean, complete record.
38
+ */
21
39
  export interface DeliveryHistoryResult {
22
40
  sellerAddress: string;
23
41
  count: number;
24
42
  claims: DeliveryClaim[];
43
+ scope: "local-ledger";
44
+ note: string;
25
45
  }
26
46
  /**
27
- * Every known, signature-verified claim recorded against sellerAddress,
28
- * oldest first. Purely factual — no aggregate score, rating, or reputation
29
- * judgment is computed here; see README.md "Wat dit NIET is". This is the
30
- * logic behind the `get_delivery_history` MCP tool.
47
+ * Every known, signature-verified claim recorded against sellerAddress in
48
+ * THIS installation's ledger, oldest first. Purely factual — no aggregate
49
+ * score, rating, or reputation judgment is computed here; see README.md
50
+ * "Wat dit NIET is". This is the logic behind the `get_delivery_history` MCP
51
+ * tool.
52
+ *
53
+ * "Known" is scoped to this ledger, not globally known — see
54
+ * DeliveryHistoryResult's own comment and packages/capacity-attest/DECISIONS.md
55
+ * (D-005) for why that distinction is load-bearing, not pedantic.
31
56
  *
32
57
  * Async to match claimsForSeller()'s now-async signature (see ledger.ts).
33
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5E,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8ClF;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAG9F"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5E,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8ClF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAG9F"}
package/dist/tools.js CHANGED
@@ -64,16 +64,28 @@ export async function recordDelivery(input) {
64
64
  }
65
65
  return { ok: true, claimId: claim.claimId };
66
66
  }
67
+ const LOCAL_LEDGER_NOTE = "This reflects only claims recorded on this installation's local ledger (see CAPACITY_ATTEST_DATA_DIR in README.md). " +
68
+ "A different installation may hold other claims against the same sellerAddress that this call cannot see. " +
69
+ "An empty or short history does not mean the seller has a clean record elsewhere: it may just mean no claims " +
70
+ "have been recorded here yet. Separately: every claim shown here has an independently checkable signature, but " +
71
+ "this tool cannot prove the operator of this installation has shown you every claim it actually holds — " +
72
+ "completeness rests on that operator's honesty, not on cryptography. For stronger assurance about one specific " +
73
+ "claim, ask the buyer who filed it to share their own signed copy of it directly.";
67
74
  /**
68
- * Every known, signature-verified claim recorded against sellerAddress,
69
- * oldest first. Purely factual — no aggregate score, rating, or reputation
70
- * judgment is computed here; see README.md "Wat dit NIET is". This is the
71
- * logic behind the `get_delivery_history` MCP tool.
75
+ * Every known, signature-verified claim recorded against sellerAddress in
76
+ * THIS installation's ledger, oldest first. Purely factual — no aggregate
77
+ * score, rating, or reputation judgment is computed here; see README.md
78
+ * "Wat dit NIET is". This is the logic behind the `get_delivery_history` MCP
79
+ * tool.
80
+ *
81
+ * "Known" is scoped to this ledger, not globally known — see
82
+ * DeliveryHistoryResult's own comment and packages/capacity-attest/DECISIONS.md
83
+ * (D-005) for why that distinction is load-bearing, not pedantic.
72
84
  *
73
85
  * Async to match claimsForSeller()'s now-async signature (see ledger.ts).
74
86
  */
75
87
  export async function getDeliveryHistory(sellerAddress) {
76
88
  const claims = await claimsForSeller(sellerAddress);
77
- return { sellerAddress, count: claims.length, claims };
89
+ return { sellerAddress, count: claims.length, claims, scope: "local-ledger", note: LOCAL_LEDGER_NOTE };
78
90
  }
79
91
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,4BAA4B;AAE5B,OAAO,EAAE,yBAAyB,EAAsB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI3D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAc;IACjD,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,yEAAyE;IACzE,sEAAsE;IACtE,oEAAoE;IACpE,sDAAsD;IACtD,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,MAA8D,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAmB,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACzG,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,IAAI,OAAuC,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,uEAAuE;QACvE,mEAAmE;QACnE,qEAAqE;QACrE,oDAAoD;QACpD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAmB,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IACvE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AAC9C,CAAC;AAQD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,aAAqB;IAC5D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;IACpD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,4BAA4B;AAE5B,OAAO,EAAE,yBAAyB,EAAsB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI3D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAc;IACjD,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,yEAAyE;IACzE,sEAAsE;IACtE,oEAAoE;IACpE,sDAAsD;IACtD,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,MAA8D,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAmB,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACzG,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,IAAI,OAAuC,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,uEAAuE;QACvE,mEAAmE;QACnE,qEAAqE;QACrE,oDAAoD;QACpD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAmB,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IACvE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AAC9C,CAAC;AA4BD,MAAM,iBAAiB,GACrB,sHAAsH;IACtH,2GAA2G;IAC3G,8GAA8G;IAC9G,gHAAgH;IAChH,yGAAyG;IACzG,gHAAgH;IAChH,kFAAkF,CAAC;AAErF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,aAAqB;IAC5D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;IACpD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;AACzG,CAAC"}
package/package.json CHANGED
@@ -1,55 +1,55 @@
1
- {
2
- "name": "capacity-attest",
3
- "version": "0.2.0",
4
- "description": "MCP server for capacity-delivery attestations: after an x402 payment for compute capacity (GPU-hours, storage, API credits, bandwidth), the paying agent leaves a signed, factual claim of what was actually delivered, so other agents can check a seller's delivery history before paying. No reputation score, no judgment, no financial instrument.",
5
- "keywords": [
6
- "mcp",
7
- "model-context-protocol",
8
- "x402",
9
- "agent-to-agent",
10
- "agent-commerce",
11
- "capacity-trade",
12
- "attestation",
13
- "provenance",
14
- "ai-agent"
15
- ],
16
- "author": "holistis",
17
- "license": "MIT",
18
- "homepage": "https://tokenizen.nl",
19
- "repository": {
20
- "type": "git",
21
- "url": "git+https://github.com/holistis/tokenizen.git",
22
- "directory": "packages/capacity-attest"
23
- },
24
- "mcpName": "io.github.holistis/capacity-attest",
25
- "type": "module",
26
- "main": "./dist/index.js",
27
- "bin": {
28
- "capacity-attest": "dist/index.js"
29
- },
30
- "files": [
31
- "dist",
32
- "README.md"
33
- ],
34
- "engines": {
35
- "node": ">=20"
36
- },
37
- "scripts": {
38
- "build": "tsc -p tsconfig.json && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"",
39
- "typecheck": "tsc -p tsconfig.json --noEmit",
40
- "test": "vitest run",
41
- "start": "node dist/index.js",
42
- "demo": "tsx examples/demo.ts"
43
- },
44
- "dependencies": {
45
- "@modelcontextprotocol/sdk": "^1.30.0",
46
- "ethers": "^6.13.0",
47
- "zod": "^4.5.2"
48
- },
49
- "devDependencies": {
50
- "@types/node": "^22.10.5",
51
- "tsx": "^4.19.2",
52
- "typescript": "^5.7.3",
53
- "vitest": "^4.1.11"
54
- }
55
- }
1
+ {
2
+ "name": "capacity-attest",
3
+ "version": "0.3.0",
4
+ "description": "MCP server for capacity-delivery attestations: after an x402 payment for compute capacity (GPU-hours, storage, API credits, bandwidth), the paying agent leaves a signed, factual claim of what was actually delivered, so other agents can check a seller's delivery history before paying. No reputation score, no judgment, no financial instrument.",
5
+ "keywords": [
6
+ "mcp",
7
+ "model-context-protocol",
8
+ "x402",
9
+ "agent-to-agent",
10
+ "agent-commerce",
11
+ "capacity-trade",
12
+ "attestation",
13
+ "provenance",
14
+ "ai-agent"
15
+ ],
16
+ "author": "holistis",
17
+ "license": "MIT",
18
+ "homepage": "https://tokenizen.nl",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/holistis/tokenizen.git",
22
+ "directory": "packages/capacity-attest"
23
+ },
24
+ "mcpName": "io.github.holistis/capacity-attest",
25
+ "type": "module",
26
+ "main": "./dist/index.js",
27
+ "bin": {
28
+ "capacity-attest": "dist/index.js"
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "README.md"
33
+ ],
34
+ "engines": {
35
+ "node": ">=20"
36
+ },
37
+ "scripts": {
38
+ "build": "tsc -p tsconfig.json && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"",
39
+ "typecheck": "tsc -p tsconfig.json --noEmit",
40
+ "test": "vitest run",
41
+ "start": "node dist/index.js",
42
+ "demo": "tsx examples/demo.ts"
43
+ },
44
+ "dependencies": {
45
+ "@modelcontextprotocol/sdk": "^1.30.0",
46
+ "ethers": "^6.13.0",
47
+ "zod": "^4.5.2"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^22.10.5",
51
+ "tsx": "^4.19.2",
52
+ "typescript": "^5.7.3",
53
+ "vitest": "^4.1.11"
54
+ }
55
+ }