capacity-attest 0.10.0 → 0.11.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 +10 -0
- package/dist/eip3009-authorizer-from-tx.d.ts +34 -0
- package/dist/eip3009-authorizer-from-tx.d.ts.map +1 -0
- package/dist/eip3009-authorizer-from-tx.js +187 -0
- package/dist/eip3009-authorizer-from-tx.js.map +1 -0
- package/dist/fiscal-controls.d.ts +52 -0
- package/dist/fiscal-controls.d.ts.map +1 -0
- package/dist/fiscal-controls.js +88 -0
- package/dist/fiscal-controls.js.map +1 -0
- package/dist/http-server.d.ts +24 -2
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +146 -24
- package/dist/http-server.js.map +1 -1
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -219,6 +219,16 @@ curl -X POST http://localhost:8402/mcp \
|
|
|
219
219
|
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
|
|
220
220
|
```
|
|
221
221
|
|
|
222
|
+
### Fiscal controls, before you ever pay
|
|
223
|
+
|
|
224
|
+
`GET /.well-known/fiscal-controls.json` answers, statically and without payment or auth, which of this server's paid tools hold a server-side signing key, whether that key is isolated from caller funds, whether there is an hourly spend cap and whether it is enforced before or after settlement, and what the revocation path is if the key is ever compromised. This is a different layer from x402's own per-call price (`accepts[]`, only visible after a first attempt) and from the bazaar discovery extension below (what a tool does, not what it risks) — see `src/fiscal-controls.ts`'s header for the full reasoning. `validateFiscalControls()` from that same file lets anyone check this document's shape, including a third party's.
|
|
225
|
+
|
|
226
|
+
The field names match the 7 proposed in [modelcontextprotocol/registry#1300](https://github.com/modelcontextprotocol/registry/discussions/1300) 1:1, so coverage against that exact proposal is checkable, not just against our own paraphrase of it: `paid_action_surface` (what action can create cost), `approval_source` (`human_approval_threshold` here — `null` means none configured), `spend_cap` (`spend_cap_per_hour`/`spend_cap_scope`), `charge_evidence` and `audit_trail` (which non-secret receipt proves a charge, and where it can be independently verified — both point at tools this package already shipped: `get_delivery_history`/`discover_delivery_history`, or the on-chain ERC-8004 Reputation Registry itself, never new infrastructure), `revocation_path`, and `next_safe_threshold` (honestly `null` for both tools today — there is no mechanism here that raises a cap automatically). See `DECISIONS.md` D-021 for the full per-tool table.
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
curl http://localhost:8402/.well-known/fiscal-controls.json
|
|
230
|
+
```
|
|
231
|
+
|
|
222
232
|
## Architecture
|
|
223
233
|
|
|
224
234
|
```text
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
export declare const AUTHORIZATION_USED_TOPIC0 = "0x98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a5";
|
|
3
|
+
export interface ResolveAuthorizerOptions {
|
|
4
|
+
rpcUrl: string | ethers.FetchRequest;
|
|
5
|
+
/** The chain this transaction is claimed to be on. Checked against the rpc's own eth_chainId, never assumed. */
|
|
6
|
+
expectedChainId: bigint | number;
|
|
7
|
+
/** The token contract this check is actually about. Required — see the module header comment on why an optional asset would silently trust any contract's matching event. */
|
|
8
|
+
expectedAsset: string;
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export type ResolveAuthorizerResult = {
|
|
12
|
+
outcome: "FOUND";
|
|
13
|
+
authorizer: string;
|
|
14
|
+
nonce: string;
|
|
15
|
+
asset: string;
|
|
16
|
+
} | {
|
|
17
|
+
outcome: "NOT_FOUND";
|
|
18
|
+
reason: string;
|
|
19
|
+
} | {
|
|
20
|
+
outcome: "AMBIGUOUS";
|
|
21
|
+
reason: string;
|
|
22
|
+
candidateCount: number;
|
|
23
|
+
} | {
|
|
24
|
+
outcome: "NOT_MEASURED";
|
|
25
|
+
reason: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Given only a transaction hash, resolve the real EIP-3009 authorizer by
|
|
29
|
+
* reading the AuthorizationUsed event the token contract itself emitted —
|
|
30
|
+
* never by reading the transaction's own `from` field, which is the relayer
|
|
31
|
+
* for a sponsored/paymaster-routed transaction, not the buyer.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveAuthorizerFromTransaction(txHash: string, opts: ResolveAuthorizerOptions): Promise<ResolveAuthorizerResult>;
|
|
34
|
+
//# sourceMappingURL=eip3009-authorizer-from-tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip3009-authorizer-from-tx.d.ts","sourceRoot":"","sources":["../src/eip3009-authorizer-from-tx.ts"],"names":[],"mappings":"AA6DA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUhC,eAAO,MAAM,yBAAyB,uEAAuE,CAAC;AAE9G,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;IACrC,gHAAgH;IAChH,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,6KAA6K;IAC7K,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAqBhD;;;;;GAKG;AACH,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAkGlC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// eip3009-authorizer-from-tx.ts — resolve the REAL EIP-3009 authorizer of an
|
|
2
|
+
// on-chain settlement from a bare transaction hash alone, independent of any
|
|
3
|
+
// signed payload a caller might otherwise have trusted.
|
|
4
|
+
//
|
|
5
|
+
// WHY THIS EXISTS. x402-foundation/x402#3604 (the Buyer Delivery Claim
|
|
6
|
+
// Extension) section 6 names a narrow, specific gap: when `settlementRef` is
|
|
7
|
+
// an on-chain transaction hash rather than an x402 payment reference (the
|
|
8
|
+
// latter already carries its own signed `payer` field — see
|
|
9
|
+
// receipt-check.ts's compareClaimToReceipt for that already-covered branch),
|
|
10
|
+
// a naive lookup of "who paid" from the transaction's own `from` field is
|
|
11
|
+
// wrong whenever a sponsor, paymaster, or router contract submitted the
|
|
12
|
+
// transaction: `from` is the relayer, not the buyer. This file closes exactly
|
|
13
|
+
// that one case, for exactly the `exact`/EIP-3009 transfer method, by reading
|
|
14
|
+
// the real authorizer off the `AuthorizationUsed(address indexed authorizer,
|
|
15
|
+
// bytes32 indexed nonce)` event the token contract itself emits when the
|
|
16
|
+
// authorization is consumed — the same event
|
|
17
|
+
// agent-receipt-verify/src/eip3009-nonce-check.mjs already reads for a
|
|
18
|
+
// different purpose (confirming a claimed duplicate payment). The event's
|
|
19
|
+
// `authorizer` topic is set by the CONTRACT at the moment it consumes the
|
|
20
|
+
// authorization, regardless of which address paid gas to submit the
|
|
21
|
+
// enclosing transaction, so it survives sponsorship/relaying where a naive
|
|
22
|
+
// `tx.from` read does not.
|
|
23
|
+
//
|
|
24
|
+
// WHAT THIS DELIBERATELY DOES NOT DO.
|
|
25
|
+
// 1. Permit2 and ERC-7710 are out of scope, same reasoning and same boundary
|
|
26
|
+
// agent-receipt-verify already drew for the EIP-3009 duplicate-payment
|
|
27
|
+
// check: Permit2 keeps a bitmap in a SHARED contract (not per-token),
|
|
28
|
+
// ERC-7710 has no persistent nonce state at all (everything runs through
|
|
29
|
+
// simulation). Neither has an equivalently simple, queryable "who
|
|
30
|
+
// authorized this" event. A settlement using either stays NOT_MEASURED,
|
|
31
|
+
// never silently guessed.
|
|
32
|
+
// 2. It does not decide whether the resolved authorizer matches a claim's
|
|
33
|
+
// buyerAddress. That comparison is the caller's job, the same way
|
|
34
|
+
// compareClaimToReceipt() compares a receipt's `payer` field against
|
|
35
|
+
// claim.buyerAddress for the x402-receipt branch — this function only
|
|
36
|
+
// resolves who the chain itself says authorized the transfer.
|
|
37
|
+
// 3. It does not change computeClaimId(), the signing procedure, or any
|
|
38
|
+
// existing schema field. Purely additive, read-only, new file.
|
|
39
|
+
//
|
|
40
|
+
// FAIL-CLOSED ON AMBIGUITY, same discipline as receipt-authorization.ts's
|
|
41
|
+
// openAuthorizationCommitment(): a transaction that batches more than one
|
|
42
|
+
// transferWithAuthorization call emits more than one AuthorizationUsed event,
|
|
43
|
+
// and guessing which one applies to a given claim would turn "we could not
|
|
44
|
+
// tell" into a false answer. `expectedAsset` narrows to the token contract the
|
|
45
|
+
// caller is actually checking.
|
|
46
|
+
//
|
|
47
|
+
// `expectedAsset` IS REQUIRED, not optional (hardened 11 nov 2026, al-Mustamil
|
|
48
|
+
// adversarial review). `AUTHORIZATION_USED_TOPIC0` is just
|
|
49
|
+
// keccak256("AuthorizationUsed(address,bytes32)") — an ordinary event
|
|
50
|
+
// signature, not a cryptographically unique marker of EIP-3009 specifically.
|
|
51
|
+
// Any contract that happens to define an event with that same name and
|
|
52
|
+
// argument types produces the identical topic0. Precisely the transactions
|
|
53
|
+
// this function exists to look at — sponsor/paymaster/router-routed, so
|
|
54
|
+
// usually a batched multicall — are exactly the shape where a second,
|
|
55
|
+
// unrelated contract call could sit in the same transaction. Without a
|
|
56
|
+
// required expectedAsset, a single matching log from ANY contract would have
|
|
57
|
+
// been accepted as FOUND with no check that it came from a real token
|
|
58
|
+
// contract at all. Requiring the caller to name the asset it is actually
|
|
59
|
+
// verifying against closes that silently-trusted path instead of leaving it
|
|
60
|
+
// as an undocumented assumption.
|
|
61
|
+
import { ethers } from "ethers";
|
|
62
|
+
import { ETH_ADDRESS_RE } from "./schema.js";
|
|
63
|
+
const TX_HASH_RE = /^0x[0-9a-fA-F]{64}$/;
|
|
64
|
+
const DEFAULT_TIMEOUT_MS = 15_000;
|
|
65
|
+
// keccak256("AuthorizationUsed(address,bytes32)"), derived live via ethers.id(),
|
|
66
|
+
// not memorized — same discipline as AUTHORIZATION_STATE_SELECTOR in
|
|
67
|
+
// agent-receipt-verify/src/eip3009-nonce-check.mjs:
|
|
68
|
+
// node -e "import('ethers').then(e => console.log(e.id('AuthorizationUsed(address,bytes32)')))"
|
|
69
|
+
export const AUTHORIZATION_USED_TOPIC0 = "0x98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a5";
|
|
70
|
+
function withTimeout(p, ms) {
|
|
71
|
+
return Promise.race([
|
|
72
|
+
p,
|
|
73
|
+
new Promise((_, reject) => {
|
|
74
|
+
setTimeout(() => reject(new Error(`rpc call timed out after ${ms}ms`)), ms);
|
|
75
|
+
}),
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Decode the AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce)
|
|
80
|
+
* event's two indexed topics. `authorizer` is a 32-byte, left-zero-padded word;
|
|
81
|
+
* the address is its last 20 bytes.
|
|
82
|
+
*/
|
|
83
|
+
function decodeAuthorizationUsedTopics(authorizerTopic, nonceTopic) {
|
|
84
|
+
const authorizer = ethers.getAddress("0x" + authorizerTopic.slice(-40));
|
|
85
|
+
return { authorizer, nonce: nonceTopic.toLowerCase() };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Given only a transaction hash, resolve the real EIP-3009 authorizer by
|
|
89
|
+
* reading the AuthorizationUsed event the token contract itself emitted —
|
|
90
|
+
* never by reading the transaction's own `from` field, which is the relayer
|
|
91
|
+
* for a sponsored/paymaster-routed transaction, not the buyer.
|
|
92
|
+
*/
|
|
93
|
+
export async function resolveAuthorizerFromTransaction(txHash, opts) {
|
|
94
|
+
const { rpcUrl, expectedChainId, expectedAsset, timeoutMs = DEFAULT_TIMEOUT_MS } = opts;
|
|
95
|
+
if (!TX_HASH_RE.test(txHash)) {
|
|
96
|
+
return { outcome: "NOT_MEASURED", reason: "txHash must be a 0x-prefixed 32-byte transaction hash" };
|
|
97
|
+
}
|
|
98
|
+
if (!ETH_ADDRESS_RE.test(expectedAsset)) {
|
|
99
|
+
return { outcome: "NOT_MEASURED", reason: "expectedAsset must be a 0x-prefixed 20-byte address" };
|
|
100
|
+
}
|
|
101
|
+
// Validated BEFORE any rpc call, same reasoning as the two checks above
|
|
102
|
+
// (al-Mustamil adversarial review, 11 nov 2026): a bare `BigInt(expectedChainId)`
|
|
103
|
+
// throws uncaught on a non-numeric string, NaN, a float, null or undefined —
|
|
104
|
+
// measured directly (`BigInt('base')`, `BigInt(NaN)`, `BigInt(null)` all
|
|
105
|
+
// throw; `BigInt('')` silently becomes 0n instead, which is caught by the
|
|
106
|
+
// "must be a positive integer" check below, not by this one). The one job
|
|
107
|
+
// this function has is to never crash and never guess, so a malformed
|
|
108
|
+
// caller input is NOT_MEASURED, exactly like a malformed txHash.
|
|
109
|
+
let normalizedChainId;
|
|
110
|
+
try {
|
|
111
|
+
normalizedChainId = BigInt(expectedChainId);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return { outcome: "NOT_MEASURED", reason: `expectedChainId is not a valid integer: ${String(expectedChainId)}` };
|
|
115
|
+
}
|
|
116
|
+
if (normalizedChainId <= 0n) {
|
|
117
|
+
return { outcome: "NOT_MEASURED", reason: `expectedChainId must be a positive integer, got ${String(expectedChainId)}` };
|
|
118
|
+
}
|
|
119
|
+
// Constructing the provider can itself throw synchronously on a malformed
|
|
120
|
+
// rpcUrl (measured directly: `new ethers.JsonRpcProvider(12345)` and
|
|
121
|
+
// `new ethers.JsonRpcProvider({})` both throw "url.clone is not a function",
|
|
122
|
+
// before any network call happens) — wrapped for the same reason as every
|
|
123
|
+
// other input check here: a caller mistake must come back as NOT_MEASURED,
|
|
124
|
+
// never an uncaught exception.
|
|
125
|
+
let provider;
|
|
126
|
+
try {
|
|
127
|
+
provider = new ethers.JsonRpcProvider(rpcUrl);
|
|
128
|
+
}
|
|
129
|
+
catch (e) {
|
|
130
|
+
return { outcome: "NOT_MEASURED", reason: `rpcUrl is not usable: ${e.message}` };
|
|
131
|
+
}
|
|
132
|
+
let actualChainId;
|
|
133
|
+
try {
|
|
134
|
+
const network = await withTimeout(provider.getNetwork(), timeoutMs);
|
|
135
|
+
actualChainId = network.chainId;
|
|
136
|
+
}
|
|
137
|
+
catch (e) {
|
|
138
|
+
return { outcome: "NOT_MEASURED", reason: `rpc unavailable or timed out: ${e.message}` };
|
|
139
|
+
}
|
|
140
|
+
if (actualChainId !== normalizedChainId) {
|
|
141
|
+
return {
|
|
142
|
+
outcome: "NOT_MEASURED",
|
|
143
|
+
reason: `rpc is on chain ${actualChainId}, expected ${normalizedChainId} — refusing to answer about the wrong chain`,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
let receipt;
|
|
147
|
+
try {
|
|
148
|
+
receipt = await withTimeout(provider.getTransactionReceipt(txHash), timeoutMs);
|
|
149
|
+
}
|
|
150
|
+
catch (e) {
|
|
151
|
+
return { outcome: "NOT_MEASURED", reason: `rpc unavailable or timed out: ${e.message}` };
|
|
152
|
+
}
|
|
153
|
+
if (!receipt) {
|
|
154
|
+
return { outcome: "NOT_FOUND", reason: "no transaction receipt found for this hash on this chain (unmined, dropped, or wrong chain)" };
|
|
155
|
+
}
|
|
156
|
+
// A reverted transaction's state changes, event emissions included, are
|
|
157
|
+
// rolled back — it will have zero AuthorizationUsed logs regardless, but a
|
|
158
|
+
// named reason here is clearer than letting it fall through as a bare
|
|
159
|
+
// zero-candidates NOT_FOUND.
|
|
160
|
+
if (receipt.status === 0) {
|
|
161
|
+
return { outcome: "NOT_FOUND", reason: "transaction reverted; no authorization could have been consumed" };
|
|
162
|
+
}
|
|
163
|
+
const candidates = receipt.logs.filter((log) => log.topics[0]?.toLowerCase() === AUTHORIZATION_USED_TOPIC0 && log.address.toLowerCase() === expectedAsset.toLowerCase());
|
|
164
|
+
if (candidates.length === 0) {
|
|
165
|
+
return { outcome: "NOT_FOUND", reason: "no AuthorizationUsed event for expectedAsset in this transaction's logs" };
|
|
166
|
+
}
|
|
167
|
+
if (candidates.length > 1) {
|
|
168
|
+
// Still possible even with expectedAsset fixed: the same token contract can
|
|
169
|
+
// emit more than one AuthorizationUsed event in one transaction (e.g. two
|
|
170
|
+
// separate transferWithAuthorization calls batched together). Fail closed
|
|
171
|
+
// rather than picking one.
|
|
172
|
+
return {
|
|
173
|
+
outcome: "AMBIGUOUS",
|
|
174
|
+
reason: "more than one AuthorizationUsed event for expectedAsset in this transaction, cannot tell which one this claim is about",
|
|
175
|
+
candidateCount: candidates.length,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
const log = candidates[0];
|
|
179
|
+
const authorizerTopic = log.topics[1];
|
|
180
|
+
const nonceTopic = log.topics[2];
|
|
181
|
+
if (!authorizerTopic || !nonceTopic) {
|
|
182
|
+
return { outcome: "NOT_MEASURED", reason: "AuthorizationUsed log is missing an indexed topic — malformed or non-standard emitter" };
|
|
183
|
+
}
|
|
184
|
+
const { authorizer, nonce } = decodeAuthorizationUsedTopics(authorizerTopic, nonceTopic);
|
|
185
|
+
return { outcome: "FOUND", authorizer, nonce, asset: log.address };
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=eip3009-authorizer-from-tx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip3009-authorizer-from-tx.js","sourceRoot":"","sources":["../src/eip3009-authorizer-from-tx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export declare const FiscalControlSchema: z.ZodObject<{
|
|
3
|
+
tool: z.ZodString;
|
|
4
|
+
paid: z.ZodLiteral<true>;
|
|
5
|
+
paid_action_surface: z.ZodString;
|
|
6
|
+
charge_evidence: z.ZodNullable<z.ZodString>;
|
|
7
|
+
audit_trail: z.ZodNullable<z.ZodString>;
|
|
8
|
+
next_safe_threshold: z.ZodNullable<z.ZodString>;
|
|
9
|
+
signer_isolation: z.ZodNullable<z.ZodBoolean>;
|
|
10
|
+
spend_cap_per_hour: z.ZodNullable<z.ZodNumber>;
|
|
11
|
+
spend_cap_scope: z.ZodNullable<z.ZodEnum<{
|
|
12
|
+
global: "global";
|
|
13
|
+
"per-caller": "per-caller";
|
|
14
|
+
}>>;
|
|
15
|
+
reservation_before_settlement: z.ZodNullable<z.ZodBoolean>;
|
|
16
|
+
human_approval_threshold: z.ZodNullable<z.ZodNumber>;
|
|
17
|
+
revocation_path: z.ZodString;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
export type FiscalControl = z.infer<typeof FiscalControlSchema>;
|
|
20
|
+
export declare const FiscalControlsDocumentSchema: z.ZodObject<{
|
|
21
|
+
version: z.ZodLiteral<"1">;
|
|
22
|
+
controls: z.ZodArray<z.ZodObject<{
|
|
23
|
+
tool: z.ZodString;
|
|
24
|
+
paid: z.ZodLiteral<true>;
|
|
25
|
+
paid_action_surface: z.ZodString;
|
|
26
|
+
charge_evidence: z.ZodNullable<z.ZodString>;
|
|
27
|
+
audit_trail: z.ZodNullable<z.ZodString>;
|
|
28
|
+
next_safe_threshold: z.ZodNullable<z.ZodString>;
|
|
29
|
+
signer_isolation: z.ZodNullable<z.ZodBoolean>;
|
|
30
|
+
spend_cap_per_hour: z.ZodNullable<z.ZodNumber>;
|
|
31
|
+
spend_cap_scope: z.ZodNullable<z.ZodEnum<{
|
|
32
|
+
global: "global";
|
|
33
|
+
"per-caller": "per-caller";
|
|
34
|
+
}>>;
|
|
35
|
+
reservation_before_settlement: z.ZodNullable<z.ZodBoolean>;
|
|
36
|
+
human_approval_threshold: z.ZodNullable<z.ZodNumber>;
|
|
37
|
+
revocation_path: z.ZodString;
|
|
38
|
+
}, z.core.$strip>>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export type FiscalControlsDocument = z.infer<typeof FiscalControlsDocumentSchema>;
|
|
41
|
+
/**
|
|
42
|
+
* Validates an arbitrary fiscal-controls document (this server's own, or a
|
|
43
|
+
* third party's) against the schema above. Exported so a stranger — exactly
|
|
44
|
+
* the audience this file exists for — can check any server's claim, not
|
|
45
|
+
* just ours, the same "trust the schema, not the publisher" posture
|
|
46
|
+
* bazaar-discovery.ts's own validateDiscoveryExtension already uses.
|
|
47
|
+
*/
|
|
48
|
+
export declare function validateFiscalControls(candidate: unknown): {
|
|
49
|
+
valid: boolean;
|
|
50
|
+
errors?: string[];
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=fiscal-controls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fiscal-controls.d.ts","sourceRoot":"","sources":["../src/fiscal-controls.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAgB3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAyB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;iBAGvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAIhG"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// fiscal-controls.ts — a small, honest answer to a gap found 12 nov 2026 in
|
|
2
|
+
// modelcontextprotocol/registry discussion #1300 ("Optional fiscal-safety
|
|
3
|
+
// metadata for paid MCP servers"): nobody publishes, as STATIC, pre-connection
|
|
4
|
+
// metadata, which actual safety controls a paid server has around its own
|
|
5
|
+
// money-moving tools — before a caller ever makes a 402-triggering call.
|
|
6
|
+
//
|
|
7
|
+
// WHAT ALREADY EXISTS, AND WHY THIS IS NOT IT:
|
|
8
|
+
// - x402's own PaymentRequired response (accepts[]) describes PRICE
|
|
9
|
+
// (scheme/network/asset/maxAmountRequired/payTo/maxTimeoutSeconds), only
|
|
10
|
+
// visible AFTER a caller has already tried the paid call once.
|
|
11
|
+
// - @x402/extensions/bazaar (see bazaar-discovery.ts) describes WHAT a
|
|
12
|
+
// tool does (name, description, input/output schema) for catalogue
|
|
13
|
+
// search. Checked directly in its own .d.ts (2026-11-12): it carries no
|
|
14
|
+
// spend-cap, signer-isolation, or approval field at all.
|
|
15
|
+
// - Google AP2 (ap2-protocol.org) covers the BUYER's side — a signed
|
|
16
|
+
// mandate the agent brings with it (budget, allowed payees, expiry).
|
|
17
|
+
// Nothing here describes what a SELLER's own server enforces.
|
|
18
|
+
// This module is the SELLER-side piece: what does THIS server's own
|
|
19
|
+
// wallet/signer risk, and what bounds that risk, stated before a caller ever
|
|
20
|
+
// pays. Covers all 7 fields #1300's own opening post proposed — see the
|
|
21
|
+
// field-by-field comment on FiscalControlSchema below for the exact mapping,
|
|
22
|
+
// and which ones currently have a real, non-null value versus an honest null.
|
|
23
|
+
//
|
|
24
|
+
// WHY DERIVED, NOT HAND-WRITTEN: every field below reads an existing
|
|
25
|
+
// constant or gate that already controls real behavior in http-server.ts
|
|
26
|
+
// (recordDeliveryPaid, publishFeedbackPaid, PUBLISH_FEEDBACK_MAX_PER_HOUR).
|
|
27
|
+
// Same reasoning bazaar-discovery.ts documents for its own schema derivation
|
|
28
|
+
// — a hand-typed second copy of a true value drifts the moment the real
|
|
29
|
+
// value changes and nobody remembers to update the copy.
|
|
30
|
+
import { z } from "zod/v4";
|
|
31
|
+
// The field names below are deliberately matched 1:1 to the 7 fields proposed in
|
|
32
|
+
// modelcontextprotocol/registry#1300's own opening post, so a reader can check our
|
|
33
|
+
// coverage directly against that proposal, not just against our own paraphrase of it:
|
|
34
|
+
// paid_action_surface, approval_source (human_approval_threshold here — null means
|
|
35
|
+
// "none", a number means "human, above this amount"; this COLLAPSES the post's five
|
|
36
|
+
// approval-source categories into just those two — policy-engine/allowance/budget-rule
|
|
37
|
+
// are not separately representable yet, a real narrowing, not an equivalence),
|
|
38
|
+
// spend_cap (spend_cap_per_hour/scope), charge_evidence, audit_trail,
|
|
39
|
+
// revocation_path, next_safe_threshold. Added 12 nov 2026 after re-reading the
|
|
40
|
+
// original post rather than relying on a paraphrase; charge_evidence and audit_trail
|
|
41
|
+
// both point at a tool we already shipped (get_delivery_history / the Reputation
|
|
42
|
+
// Registry itself), not new code. next_safe_threshold is honestly null for both
|
|
43
|
+
// tools below — we have no auto-raise-the-cap mechanism, and this field exists so
|
|
44
|
+
// that absence is a stated "not yet", never a silent gap.
|
|
45
|
+
export const FiscalControlSchema = z.object({
|
|
46
|
+
tool: z.string(),
|
|
47
|
+
paid: z.literal(true),
|
|
48
|
+
paid_action_surface: z.string(),
|
|
49
|
+
charge_evidence: z.string().nullable(),
|
|
50
|
+
audit_trail: z.string().nullable(),
|
|
51
|
+
next_safe_threshold: z.string().nullable(),
|
|
52
|
+
// Found by muraqib-al-khasm's adversarial review, 12 nov 2026: a plain
|
|
53
|
+
// boolean cannot distinguish "no server-held signer at all" (record_delivery
|
|
54
|
+
// — nothing to isolate) from "a signer exists but is NOT isolated" (a
|
|
55
|
+
// hypothetical future tool sharing a key or letting a caller influence it)
|
|
56
|
+
// — both would have had to report false, collapsing exactly the question
|
|
57
|
+
// this field exists to answer. null = no signer held; false = a signer is
|
|
58
|
+
// held but not isolated; true = isolated.
|
|
59
|
+
signer_isolation: z.boolean().nullable(),
|
|
60
|
+
spend_cap_per_hour: z.number().positive().nullable(),
|
|
61
|
+
spend_cap_scope: z.enum(["global", "per-caller"]).nullable(),
|
|
62
|
+
// Scenario found 12 nov 2026 (koning): was this cap enforced BEFORE the
|
|
63
|
+
// caller is charged, or only after? A caller losing a race against a
|
|
64
|
+
// cap-checked-only-after-settlement design pays for nothing. true here is
|
|
65
|
+
// a real claim about enforcement order, not aspiration — see
|
|
66
|
+
// reserveFeedbackPublishSlot in http-server.ts.
|
|
67
|
+
reservation_before_settlement: z.boolean().nullable(),
|
|
68
|
+
human_approval_threshold: z.number().positive().nullable(),
|
|
69
|
+
revocation_path: z.string(),
|
|
70
|
+
});
|
|
71
|
+
export const FiscalControlsDocumentSchema = z.object({
|
|
72
|
+
version: z.literal("1"),
|
|
73
|
+
controls: z.array(FiscalControlSchema),
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* Validates an arbitrary fiscal-controls document (this server's own, or a
|
|
77
|
+
* third party's) against the schema above. Exported so a stranger — exactly
|
|
78
|
+
* the audience this file exists for — can check any server's claim, not
|
|
79
|
+
* just ours, the same "trust the schema, not the publisher" posture
|
|
80
|
+
* bazaar-discovery.ts's own validateDiscoveryExtension already uses.
|
|
81
|
+
*/
|
|
82
|
+
export function validateFiscalControls(candidate) {
|
|
83
|
+
const parsed = FiscalControlsDocumentSchema.safeParse(candidate);
|
|
84
|
+
if (parsed.success)
|
|
85
|
+
return { valid: true };
|
|
86
|
+
return { valid: false, errors: parsed.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`) };
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=fiscal-controls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fiscal-controls.js","sourceRoot":"","sources":["../src/fiscal-controls.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0EAA0E;AAC1E,+EAA+E;AAC/E,0EAA0E;AAC1E,yEAAyE;AACzE,EAAE;AACF,+CAA+C;AAC/C,sEAAsE;AACtE,6EAA6E;AAC7E,mEAAmE;AACnE,yEAAyE;AACzE,uEAAuE;AACvE,4EAA4E;AAC5E,6DAA6D;AAC7D,uEAAuE;AACvE,yEAAyE;AACzE,kEAAkE;AAClE,oEAAoE;AACpE,6EAA6E;AAC7E,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,yDAAyD;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,iFAAiF;AACjF,mFAAmF;AACnF,sFAAsF;AACtF,mFAAmF;AACnF,oFAAoF;AACpF,uFAAuF;AACvF,+EAA+E;AAC/E,sEAAsE;AACtE,+EAA+E;AAC/E,qFAAqF;AACrF,iFAAiF;AACjF,gFAAgF;AAChF,kFAAkF;AAClF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,uEAAuE;IACvE,6EAA6E;IAC7E,sEAAsE;IACtE,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,0CAA0C;IAC1C,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5D,wEAAwE;IACxE,qEAAqE;IACrE,0EAA0E;IAC1E,6DAA6D;IAC7D,gDAAgD;IAChD,6BAA6B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrD,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACvC,CAAC,CAAC;AAGH;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAkB;IACvD,MAAM,MAAM,GAAG,4BAA4B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AACvG,CAAC"}
|
package/dist/http-server.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { type IncomingMessage, type ServerResponse } from "node:http";
|
|
3
3
|
import { ethers } from "ethers";
|
|
4
|
+
import { type FiscalControlsDocument } from "./fiscal-controls.js";
|
|
4
5
|
export declare const PUBLISH_FEEDBACK_REPUTATION_REGISTRIES: string[];
|
|
5
6
|
export declare const PUBLISH_FEEDBACK_IDENTITY_REGISTRIES: string[];
|
|
6
7
|
/** null when both registries are allowlisted, otherwise the reason to refuse (before payment, and again after settlement). */
|
|
@@ -9,10 +10,31 @@ export declare function checkPublishFeedbackRegistries(input: {
|
|
|
9
10
|
agentRegistryRef: string;
|
|
10
11
|
}): string | null;
|
|
11
12
|
export declare function buildReputationPublisherSigner(privateKey: string, rpcUrl?: string): ethers.Wallet;
|
|
12
|
-
/** Read-only: would a
|
|
13
|
+
/** Read-only: would a NEW reservation fit right now? Counts confirmed publishes (this rolling hour) plus still-pending reservations, so a flood of concurrent peeks can never all see "room available" the way the old post-settlement check could. Never mutates state. */
|
|
13
14
|
export declare function canPublishFeedbackNow(): boolean;
|
|
14
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Claims a slot BEFORE settlement is attempted — see this file's hourly-cap comment above for
|
|
17
|
+
* why. Returns false (and claims nothing) if the cap, counting confirmed publishes plus other
|
|
18
|
+
* still-pending reservations, was already reached.
|
|
19
|
+
*/
|
|
20
|
+
export declare function reserveFeedbackPublishSlot(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Confirms an already-reserved slot into the permanent rolling-hour record, once settlement has
|
|
23
|
+
* actually succeeded. The cap itself was already enforced at reservation time
|
|
24
|
+
* (reserveFeedbackPublishSlot) — by the time this runs, the caller has already been charged, so
|
|
25
|
+
* this never re-refuses; refusing here would recreate exactly the charged-but-got-nothing race
|
|
26
|
+
* this two-step design exists to remove.
|
|
27
|
+
*/
|
|
15
28
|
export declare function consumeFeedbackPublishSlot(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The seller-side half of the gap found 12 nov 2026 in modelcontextprotocol/registry
|
|
31
|
+
* discussion #1300 — see fiscal-controls.ts's own header for the full reasoning and
|
|
32
|
+
* why this is not the same thing as x402's per-call price, bazaar's what-it-does
|
|
33
|
+
* metadata, or AP2's buyer-side mandate. Every field reads a constant or gate that
|
|
34
|
+
* already controls real behavior above, in the same function scope, never a second,
|
|
35
|
+
* hand-typed copy of a true value.
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildFiscalControls(): FiscalControlsDocument;
|
|
16
38
|
export declare function logEvent(event: string, fields?: Record<string, string | number | boolean>): void;
|
|
17
39
|
/** The tool name of a JSON-RPC tools/call body, or the method name of any other call. Nothing else is read from the body. */
|
|
18
40
|
export declare function requestKind(body: unknown): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":";AAsGA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAGpF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":";AAsGA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAGpF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAsBhC,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAkL3F,eAAO,MAAM,sCAAsC,UAElD,CAAC;AACF,eAAO,MAAM,oCAAoC,UAEhD,CAAC;AAGF,8HAA8H;AAC9H,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IAAE,qBAAqB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAQhI;AAUD,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAE,MAAqC,GAAG,MAAM,CAAC,MAAM,CAE/H;AA6BD,4QAA4Q;AAC5Q,wBAAgB,qBAAqB,IAAI,OAAO,CAI/C;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAMpD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAWpD;AAyED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,sBAAsB,CAqC5D;AASD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAM,GAAG,IAAI,CAEpG;AAED,6HAA6H;AAC7H,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAOhF;AAOD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAG9G;AAgiBD;;;;;GAKG;AACH,wBAAgB,SAAS,KACT,KAAK,eAAe,EAAE,KAAK,cAAc,mBAsFxD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAgBlC"}
|
package/dist/http-server.js
CHANGED
|
@@ -123,6 +123,7 @@ import { discoverDeliveryHistory, localLedgerSource } from "./discovery.js";
|
|
|
123
123
|
import { easSource, rpcAttestationReader, EAS_DEPLOYMENTS } from "./eas.js";
|
|
124
124
|
import { httpClaimSource } from "./http-source.js";
|
|
125
125
|
import { guardedFetch, guardedEthersFetchRequest } from "tokenizen-net-guard";
|
|
126
|
+
import { validateFiscalControls } from "./fiscal-controls.js";
|
|
126
127
|
const PORT = Number(process.env.PORT ?? 8402);
|
|
127
128
|
const MAX_BODY_BYTES = 64 * 1024; // generous for an MCP JSON-RPC call, small enough to bound memory per request
|
|
128
129
|
// record_delivery's mandatory fee. Unset PAY_TO keeps this server exactly as
|
|
@@ -253,12 +254,12 @@ if (RECORD_DELIVERY_PAY_TO) {
|
|
|
253
254
|
// willing to keep paying the fee could still, in principle, outrun a
|
|
254
255
|
// gas-price spike or a wrong fee-margin assumption. The hourly cap
|
|
255
256
|
// bounds total spend regardless of how much anyone is willing to pay.
|
|
256
|
-
// The cap is
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
//
|
|
260
|
-
//
|
|
261
|
-
//
|
|
257
|
+
// The cap is RESERVED (not just peeked) in the pre-payment handler — see the
|
|
258
|
+
// FEEDBACK_RESERVATION_MS comment above for why this moved out of
|
|
259
|
+
// onAfterSettlement on 12 nov 2026: a caller already over the limit is now
|
|
260
|
+
// refused before payment is even attempted, not charged first and refused
|
|
261
|
+
// after. onAfterSettlement only CONFIRMS the already-reserved slot into the
|
|
262
|
+
// permanent record, alongside the real on-chain publish.
|
|
262
263
|
// DEPLOYMENT NOTE, found on self-review (not yet relevant to any test here,
|
|
263
264
|
// only to whoever sets real env vars on a real server): PUBLISH_FEEDBACK_PAY_TO
|
|
264
265
|
// (where the fee lands) and the signer derived from
|
|
@@ -321,22 +322,64 @@ export function buildReputationPublisherSigner(privateKey, rpcUrl = REPUTATION_P
|
|
|
321
322
|
return new ethers.Wallet(privateKey, new ethers.JsonRpcProvider(rpcUrl));
|
|
322
323
|
}
|
|
323
324
|
const FEEDBACK_HOUR_MS = 60 * 60 * 1000;
|
|
325
|
+
// Scenario found 12 nov 2026 (koning: an agent's payment settles right as an hourly cap fills,
|
|
326
|
+
// so it pays and gets nothing). The old design peeked the cap (read-only) BEFORE payment, then
|
|
327
|
+
// only actually claimed a slot AFTER settlement — with real settlement latency (seconds) in
|
|
328
|
+
// between, every concurrent caller's peek could see "room available" and get charged, and only
|
|
329
|
+
// the first few to reach the post-settlement claim would actually win a slot. Fix: claim a slot
|
|
330
|
+
// at the EARLIEST point the caller is committed to being charged (payment verified, settlement
|
|
331
|
+
// about to be attempted — see the pre-payment handler below), not the latest. A caller who loses
|
|
332
|
+
// the race is now refused HERE, before settlement is even attempted, so they are never charged.
|
|
333
|
+
// This reservation self-expires if settlement never follows (the agent backs out, or the
|
|
334
|
+
// facilitator fails) — generous vs. realistic settlement latency, short enough not to waste
|
|
335
|
+
// capacity for long.
|
|
336
|
+
const FEEDBACK_RESERVATION_MS = 10 * 60 * 1000;
|
|
324
337
|
let feedbackPublishTimestamps = [];
|
|
338
|
+
let feedbackReservationTimestamps = [];
|
|
339
|
+
function liveReservationCount(now) {
|
|
340
|
+
const cutoff = now - FEEDBACK_RESERVATION_MS;
|
|
341
|
+
feedbackReservationTimestamps = feedbackReservationTimestamps.filter((t) => t > cutoff);
|
|
342
|
+
return feedbackReservationTimestamps.length;
|
|
343
|
+
}
|
|
325
344
|
// Exported (not just internal) for the same reason createApp() is exported
|
|
326
345
|
// below: a test can exercise this exact cap logic directly, without needing
|
|
327
346
|
// a live chain or a fake JSON-RPC provider deep enough to satisfy
|
|
328
347
|
// publishReputationFeedback()'s own contractFactory/identityResolver calls.
|
|
329
|
-
/** Read-only: would a
|
|
348
|
+
/** Read-only: would a NEW reservation fit right now? Counts confirmed publishes (this rolling hour) plus still-pending reservations, so a flood of concurrent peeks can never all see "room available" the way the old post-settlement check could. Never mutates state. */
|
|
330
349
|
export function canPublishFeedbackNow() {
|
|
331
|
-
const
|
|
332
|
-
|
|
350
|
+
const now = Date.now();
|
|
351
|
+
const confirmed = feedbackPublishTimestamps.filter((t) => t > now - FEEDBACK_HOUR_MS).length;
|
|
352
|
+
return confirmed + liveReservationCount(now) < PUBLISH_FEEDBACK_MAX_PER_HOUR;
|
|
333
353
|
}
|
|
334
|
-
/**
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
354
|
+
/**
|
|
355
|
+
* Claims a slot BEFORE settlement is attempted — see this file's hourly-cap comment above for
|
|
356
|
+
* why. Returns false (and claims nothing) if the cap, counting confirmed publishes plus other
|
|
357
|
+
* still-pending reservations, was already reached.
|
|
358
|
+
*/
|
|
359
|
+
export function reserveFeedbackPublishSlot() {
|
|
360
|
+
const now = Date.now();
|
|
361
|
+
const confirmed = feedbackPublishTimestamps.filter((t) => t > now - FEEDBACK_HOUR_MS).length;
|
|
362
|
+
if (confirmed + liveReservationCount(now) >= PUBLISH_FEEDBACK_MAX_PER_HOUR)
|
|
339
363
|
return false;
|
|
364
|
+
feedbackReservationTimestamps.push(now);
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Confirms an already-reserved slot into the permanent rolling-hour record, once settlement has
|
|
369
|
+
* actually succeeded. The cap itself was already enforced at reservation time
|
|
370
|
+
* (reserveFeedbackPublishSlot) — by the time this runs, the caller has already been charged, so
|
|
371
|
+
* this never re-refuses; refusing here would recreate exactly the charged-but-got-nothing race
|
|
372
|
+
* this two-step design exists to remove.
|
|
373
|
+
*/
|
|
374
|
+
export function consumeFeedbackPublishSlot() {
|
|
375
|
+
// Release the reservation this settlement corresponds to. Without this, a confirmed slot stayed
|
|
376
|
+
// counted TWICE for up to FEEDBACK_RESERVATION_MS — once here, once still sitting in
|
|
377
|
+
// feedbackReservationTimestamps — so every legitimate, fully successful publish wrongly halved
|
|
378
|
+
// the effective cap for the next 10 minutes. Caught by muraqib's own probe test, 12 nov 2026.
|
|
379
|
+
// Reservations are anonymous counters, not tied to a specific caller, so which one is released
|
|
380
|
+
// does not matter; FIFO is the simplest correct choice.
|
|
381
|
+
feedbackReservationTimestamps.shift();
|
|
382
|
+
feedbackPublishTimestamps = feedbackPublishTimestamps.filter((t) => t > Date.now() - FEEDBACK_HOUR_MS);
|
|
340
383
|
feedbackPublishTimestamps.push(Date.now());
|
|
341
384
|
return true;
|
|
342
385
|
}
|
|
@@ -384,18 +427,73 @@ if (REPUTATION_PUBLISHER_PRIVATE_KEY && PUBLISH_FEEDBACK_PAY_TO) {
|
|
|
384
427
|
const refusedRegistry = checkPublishFeedbackRegistries(parsed.data);
|
|
385
428
|
if (refusedRegistry)
|
|
386
429
|
throw new Error(refusedRegistry);
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
430
|
+
// The cap was already enforced before the caller was ever charged — see
|
|
431
|
+
// reserveFeedbackPublishSlot. This just makes that reservation permanent.
|
|
432
|
+
consumeFeedbackPublishSlot();
|
|
433
|
+
// Scenario found 12 nov 2026 (koning: "wat als het proces crasht tussen betalen en
|
|
434
|
+
// leveren"): unlike record_delivery's local, near-instant ledger write, this attempt is
|
|
435
|
+
// a real on-chain broadcast-and-confirm that can take seconds. Before this line there was
|
|
436
|
+
// NO durable trace that the fee had settled and a wallet-spending action was about to be
|
|
437
|
+
// attempted — a crash inside publishReputationFeedback (OOM, a PM2 restart, a deploy)
|
|
438
|
+
// would leave a payer who was genuinely charged with zero record anywhere that they were
|
|
439
|
+
// ever owed anything. attemptId correlates the two log lines below so an operator reading
|
|
440
|
+
// the log after a crash can see an "attempting" with no matching "done", which a clean
|
|
441
|
+
// throw/return never leaves (those always reach the second logEvent).
|
|
442
|
+
const attemptId = randomUUID();
|
|
443
|
+
logEvent("publish_feedback_attempting", { attemptId });
|
|
391
444
|
// The RPC is the server's own, never the caller's; identity lookups go through net-guard; the gas is capped.
|
|
392
445
|
const result = await publishReputationFeedback(signer, { ...parsed.data, rpcUrl: REPUTATION_PUBLISHER_RPC_URL }, undefined, (i) => resolveAgentIdentity(i, guardedContractFactory, guardedChainIdFactory), { gasLimit: PUBLISH_FEEDBACK_GAS_LIMIT });
|
|
446
|
+
logEvent("publish_feedback_done", { attemptId, ok: result.ok });
|
|
393
447
|
if (!result.ok)
|
|
394
448
|
throw new Error(result.reason);
|
|
395
449
|
},
|
|
396
450
|
},
|
|
397
451
|
});
|
|
398
452
|
}
|
|
453
|
+
/**
|
|
454
|
+
* The seller-side half of the gap found 12 nov 2026 in modelcontextprotocol/registry
|
|
455
|
+
* discussion #1300 — see fiscal-controls.ts's own header for the full reasoning and
|
|
456
|
+
* why this is not the same thing as x402's per-call price, bazaar's what-it-does
|
|
457
|
+
* metadata, or AP2's buyer-side mandate. Every field reads a constant or gate that
|
|
458
|
+
* already controls real behavior above, in the same function scope, never a second,
|
|
459
|
+
* hand-typed copy of a true value.
|
|
460
|
+
*/
|
|
461
|
+
export function buildFiscalControls() {
|
|
462
|
+
const controls = [];
|
|
463
|
+
if (recordDeliveryPaid) {
|
|
464
|
+
controls.push({
|
|
465
|
+
tool: "record_delivery",
|
|
466
|
+
paid: true,
|
|
467
|
+
paid_action_surface: "writes one signed delivery claim to this installation's local ledger after an x402 payment settles",
|
|
468
|
+
signer_isolation: null,
|
|
469
|
+
spend_cap_per_hour: null,
|
|
470
|
+
spend_cap_scope: null,
|
|
471
|
+
reservation_before_settlement: null,
|
|
472
|
+
human_approval_threshold: null,
|
|
473
|
+
charge_evidence: "the buyer's own signed claim (claimId, signature) — see get_delivery_history",
|
|
474
|
+
audit_trail: "get_delivery_history and discover_delivery_history (public, re-verifiable by any installation, see discovery.ts)",
|
|
475
|
+
next_safe_threshold: null,
|
|
476
|
+
revocation_path: "n/a — this tool holds no server-side signing key and spends no funds; it only writes a local ledger entry after settlement",
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
if (publishFeedbackPaid) {
|
|
480
|
+
controls.push({
|
|
481
|
+
tool: "publish_reputation_feedback",
|
|
482
|
+
paid: true,
|
|
483
|
+
paid_action_surface: "broadcasts one on-chain ERC-8004 giveFeedback() transaction, paid for with this server's own gas",
|
|
484
|
+
signer_isolation: true,
|
|
485
|
+
spend_cap_per_hour: PUBLISH_FEEDBACK_MAX_PER_HOUR,
|
|
486
|
+
spend_cap_scope: "global",
|
|
487
|
+
reservation_before_settlement: true,
|
|
488
|
+
human_approval_threshold: null,
|
|
489
|
+
charge_evidence: "the on-chain giveFeedback() transaction itself, plus this server's attemptId-correlated attempting/done log entries (see D-021 and the crash-safety fix above)",
|
|
490
|
+
audit_trail: "the ERC-8004 Reputation Registry contract on-chain (public, independent of this server)",
|
|
491
|
+
next_safe_threshold: null,
|
|
492
|
+
revocation_path: "rotate REPUTATION_PUBLISHER_PRIVATE_KEY and redeploy — this signer only ever spends its own gas and never custodies caller funds",
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
return { version: "1", controls };
|
|
496
|
+
}
|
|
399
497
|
// Request log (4 Nov 2026). Until then the server wrote only starts and stops, so nobody could tell afterwards whether a route had been
|
|
400
498
|
// misused. One JSON line per event: the time, the kind of event, the tool name and whether the outbound guard refused something.
|
|
401
499
|
// NEVER the content of a request: no addresses, no parameters, no caller IP, no secrets. The test in request-log.test.ts keeps it that way.
|
|
@@ -813,11 +911,12 @@ function buildServer() {
|
|
|
813
911
|
"regardless of wording.",
|
|
814
912
|
inputSchema: PublishReputationFeedbackInputSchema.shape,
|
|
815
913
|
}, publishFeedbackPaid(async (args) => {
|
|
816
|
-
// Pre-payment check
|
|
817
|
-
//
|
|
818
|
-
//
|
|
819
|
-
//
|
|
820
|
-
//
|
|
914
|
+
// Pre-payment check, same split as record_delivery: fails fast, before the caller is
|
|
915
|
+
// ever charged, on anything that could never succeed anyway. Does NOT publish anything.
|
|
916
|
+
// DOES reserve an hourly-cap slot (not just peek) — this runs after payment is verified
|
|
917
|
+
// but before settlement is attempted, which is the earliest point a refusal here still
|
|
918
|
+
// means the caller is never charged. See reserveFeedbackPublishSlot's own comment, and
|
|
919
|
+
// this file's hourly-cap comment above, for why the cap moved here from onAfterSettlement.
|
|
821
920
|
const parsed = PublishReputationFeedbackInputSchema.safeParse(args);
|
|
822
921
|
if (!parsed.success)
|
|
823
922
|
return errorResult(`invalid_input: ${parsed.error.issues.map((i) => i.message).join("; ")}`);
|
|
@@ -833,7 +932,7 @@ function buildServer() {
|
|
|
833
932
|
const refusedRegistry = checkPublishFeedbackRegistries(parsed.data);
|
|
834
933
|
if (refusedRegistry)
|
|
835
934
|
return errorResult(refusedRegistry);
|
|
836
|
-
if (!
|
|
935
|
+
if (!reserveFeedbackPublishSlot()) {
|
|
837
936
|
return errorResult(`hourly_cap_exceeded: this server publishes at most ${PUBLISH_FEEDBACK_MAX_PER_HOUR} feedback entries ` +
|
|
838
937
|
"per rolling hour, across all callers — try again later");
|
|
839
938
|
}
|
|
@@ -915,6 +1014,29 @@ export function createApp() {
|
|
|
915
1014
|
res.writeHead(204).end();
|
|
916
1015
|
return;
|
|
917
1016
|
}
|
|
1017
|
+
// Deliberately served unconditionally, never rate-limited or paid: the whole point is that
|
|
1018
|
+
// a caller can read this BEFORE deciding whether to risk a call at all. Matched on PATHNAME,
|
|
1019
|
+
// not the raw url — found by muraqib-al-mustamil, 12 nov 2026: a reverse proxy, monitoring
|
|
1020
|
+
// probe, or cache-busting "?v=..." behind the discovery URL must not silently 404 against
|
|
1021
|
+
// the exact point of this file (readable BEFORE risking a call).
|
|
1022
|
+
if (new URL(req.url ?? "/", "http://localhost").pathname === "/.well-known/fiscal-controls.json") {
|
|
1023
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
1024
|
+
res.writeHead(405, { "content-type": "application/json", allow: "GET, HEAD" }).end(JSON.stringify({ error: "method not allowed" }));
|
|
1025
|
+
return;
|
|
1026
|
+
}
|
|
1027
|
+
const doc = buildFiscalControls();
|
|
1028
|
+
// Found by muraqib's own probe, 12 nov 2026: a misconfigured env var (e.g.
|
|
1029
|
+
// PUBLISH_FEEDBACK_MAX_PER_HOUR="abc") could otherwise serve a schema-invalid
|
|
1030
|
+
// document with a confident 200 — exactly the "worse than no promise" failure
|
|
1031
|
+
// bazaar-discovery.ts's own header already warns about for a sibling file.
|
|
1032
|
+
if (!validateFiscalControls(doc).valid) {
|
|
1033
|
+
console.error("capacity-attest-http: buildFiscalControls() produced a schema-invalid document, refusing to serve it:", doc);
|
|
1034
|
+
res.writeHead(500, { "content-type": "application/json" }).end(JSON.stringify({ error: "internal error" }));
|
|
1035
|
+
return;
|
|
1036
|
+
}
|
|
1037
|
+
res.writeHead(200, { "content-type": "application/json" }).end(JSON.stringify(doc));
|
|
1038
|
+
return;
|
|
1039
|
+
}
|
|
918
1040
|
if (req.url !== "/mcp") {
|
|
919
1041
|
res.writeHead(404, { "content-type": "application/json" }).end(JSON.stringify({ error: "not found" }));
|
|
920
1042
|
return;
|
package/dist/http-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "capacity-attest",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
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
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -50,14 +50,15 @@
|
|
|
50
50
|
"discovery-fixture": "tsx examples/discovery-fixture.ts",
|
|
51
51
|
"offer-receipt-link": "node examples/verify-offer-receipt-link.mjs",
|
|
52
52
|
"eas-demo": "tsx examples/eas-live-demo.ts",
|
|
53
|
-
"erc8004-reputation-demo": "tsx examples/erc8004-reputation-live-demo.ts"
|
|
53
|
+
"erc8004-reputation-demo": "tsx examples/erc8004-reputation-live-demo.ts",
|
|
54
|
+
"authorizer-from-tx-demo": "tsx examples/authorizer-from-tx-live-demo.ts"
|
|
54
55
|
},
|
|
55
56
|
"dependencies": {
|
|
56
57
|
"@modelcontextprotocol/sdk": "^1.32.2",
|
|
57
|
-
"@x402/core": "^2.
|
|
58
|
-
"@x402/evm": "^2.
|
|
59
|
-
"@x402/extensions": "^2.
|
|
60
|
-
"@x402/mcp": "^2.
|
|
58
|
+
"@x402/core": "^2.30.0",
|
|
59
|
+
"@x402/evm": "^2.30.0",
|
|
60
|
+
"@x402/extensions": "^2.30.0",
|
|
61
|
+
"@x402/mcp": "^2.30.0",
|
|
61
62
|
"ethers": "^6.13.0",
|
|
62
63
|
"tokenizen-net-guard": "^0.1.0",
|
|
63
64
|
"zod": "^4.5.2"
|