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 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"}
@@ -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 call right now still be under the cap? Never mutates state — consuming happens separately, only after settlement (see above). */
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
- /** Actually claims a slot. Returns false (and claims nothing) if the cap was already reached by the time this runs. */
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;AAuMhC,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;AAUD,uJAAuJ;AACvJ,wBAAgB,qBAAqB,IAAI,OAAO,CAG/C;AAED,uHAAuH;AACvH,wBAAgB,0BAA0B,IAAI,OAAO,CAMpD;AAuED,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;AA+hBD;;;;;GAKG;AACH,wBAAgB,SAAS,KACT,KAAK,eAAe,EAAE,KAAK,cAAc,mBA8DxD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAgBlC"}
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"}
@@ -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 PEEKED (read-only) in the pre-payment handler, so a caller
257
- // already over the limit is never charged for a call that was always going
258
- // to be refused. It is only CONSUMED in onAfterSettlement, alongside the
259
- // real on-chain publish, for the same reason record_delivery's ledger write
260
- // lives there: nothing irreversible (a claimed slot, a real transaction)
261
- // happens before payment has genuinely cleared.
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 call right now still be under the cap? Never mutates state — consuming happens separately, only after settlement (see above). */
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 cutoff = Date.now() - FEEDBACK_HOUR_MS;
332
- return feedbackPublishTimestamps.filter((t) => t > cutoff).length < PUBLISH_FEEDBACK_MAX_PER_HOUR;
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
- /** Actually claims a slot. Returns false (and claims nothing) if the cap was already reached by the time this runs. */
335
- export function consumeFeedbackPublishSlot() {
336
- const cutoff = Date.now() - FEEDBACK_HOUR_MS;
337
- feedbackPublishTimestamps = feedbackPublishTimestamps.filter((t) => t > cutoff);
338
- if (feedbackPublishTimestamps.length >= PUBLISH_FEEDBACK_MAX_PER_HOUR)
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
- if (!consumeFeedbackPublishSlot()) {
388
- throw new Error(`hourly_cap_exceeded: this server publishes at most ${PUBLISH_FEEDBACK_MAX_PER_HOUR} feedback entries ` +
389
- "per rolling hour, across all callers, to bound its own wallet's spend regardless of fee income — try again later");
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 only, same split as record_delivery: fails
817
- // fast, before the caller is ever charged, on anything that could
818
- // never succeed anyway. Does NOT publish anything and does NOT
819
- // consume an hourly-cap slot — see consumeFeedbackPublishSlot's own
820
- // comment for why that waits for onAfterSettlement.
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 (!canPublishFeedbackNow()) {
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;
@@ -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.10.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.28.0",
58
- "@x402/evm": "^2.28.0",
59
- "@x402/extensions": "^2.28.0",
60
- "@x402/mcp": "^2.28.0",
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"