twzrd-x402-gate 0.9.9 → 0.9.11
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/QUICKSTART.md +3 -3
- package/README.md +4 -4
- package/dist/attempt-echo.d.ts +42 -0
- package/dist/attempt-echo.d.ts.map +1 -0
- package/dist/attempt-echo.js +170 -0
- package/dist/attempt-echo.js.map +1 -0
- package/dist/auto-gate.d.ts.map +1 -1
- package/dist/auto-gate.js +7 -3
- package/dist/auto-gate.js.map +1 -1
- package/dist/bounty-preflight-cli.d.ts.map +1 -1
- package/dist/bounty-preflight-cli.js +4 -2
- package/dist/bounty-preflight-cli.js.map +1 -1
- package/dist/cloudflare-x402.d.ts +29 -0
- package/dist/cloudflare-x402.d.ts.map +1 -0
- package/dist/cloudflare-x402.js +31 -0
- package/dist/cloudflare-x402.js.map +1 -0
- package/dist/cold-start.d.ts +11 -2
- package/dist/cold-start.d.ts.map +1 -1
- package/dist/cold-start.js +61 -7
- package/dist/cold-start.js.map +1 -1
- package/dist/decision-token.d.ts +1 -1
- package/dist/delivery-capture.d.ts +4 -3
- package/dist/delivery-capture.d.ts.map +1 -1
- package/dist/delivery-capture.js +4 -3
- package/dist/delivery-capture.js.map +1 -1
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +12 -1
- package/dist/evaluate.js.map +1 -1
- package/dist/foreign-key.d.ts +19 -0
- package/dist/foreign-key.d.ts.map +1 -0
- package/dist/foreign-key.js +61 -0
- package/dist/foreign-key.js.map +1 -0
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/intent-adapters.d.ts.map +1 -1
- package/dist/intent-adapters.js +6 -2
- package/dist/intent-adapters.js.map +1 -1
- package/dist/mcp-hook.d.ts.map +1 -1
- package/dist/mcp-hook.js +5 -1
- package/dist/mcp-hook.js.map +1 -1
- package/dist/merchant-card.d.ts +11 -0
- package/dist/merchant-card.d.ts.map +1 -1
- package/dist/merchant-card.js +9 -0
- package/dist/merchant-card.js.map +1 -1
- package/dist/paying-fetch.d.ts +17 -0
- package/dist/paying-fetch.d.ts.map +1 -0
- package/dist/paying-fetch.js +116 -0
- package/dist/paying-fetch.js.map +1 -0
- package/dist/payment-decision.d.ts.map +1 -1
- package/dist/payment-decision.js +14 -4
- package/dist/payment-decision.js.map +1 -1
- package/dist/payto.d.ts +26 -0
- package/dist/payto.d.ts.map +1 -1
- package/dist/payto.js +49 -3
- package/dist/payto.js.map +1 -1
- package/dist/policy-fetch.d.ts +18 -0
- package/dist/policy-fetch.d.ts.map +1 -0
- package/dist/policy-fetch.js +81 -0
- package/dist/policy-fetch.js.map +1 -0
- package/dist/policy-runtime.d.ts +3 -1
- package/dist/policy-runtime.d.ts.map +1 -1
- package/dist/policy-runtime.js +19 -1
- package/dist/policy-runtime.js.map +1 -1
- package/dist/record-leash-settle.d.ts +20 -0
- package/dist/record-leash-settle.d.ts.map +1 -0
- package/dist/record-leash-settle.js +25 -0
- package/dist/record-leash-settle.js.map +1 -0
- package/dist/resource-bind-tx.d.ts +4 -0
- package/dist/resource-bind-tx.d.ts.map +1 -1
- package/dist/resource-bind-tx.js +29 -7
- package/dist/resource-bind-tx.js.map +1 -1
- package/dist/resource-bind.d.ts.map +1 -1
- package/dist/resource-bind.js +18 -7
- package/dist/resource-bind.js.map +1 -1
- package/dist/safe-fetch.d.ts.map +1 -1
- package/dist/safe-fetch.js +18 -1
- package/dist/safe-fetch.js.map +1 -1
- package/dist/seller-hook.d.ts.map +1 -1
- package/dist/seller-hook.js +6 -3
- package/dist/seller-hook.js.map +1 -1
- package/dist/spend-control.d.ts +1 -0
- package/dist/spend-control.d.ts.map +1 -1
- package/dist/spend-control.js +6 -1
- package/dist/spend-control.js.map +1 -1
- package/dist/ssrf.d.ts +15 -0
- package/dist/ssrf.d.ts.map +1 -0
- package/dist/ssrf.js +72 -0
- package/dist/ssrf.js.map +1 -0
- package/dist/trust-gate-reason.d.ts.map +1 -1
- package/dist/trust-gate-reason.js +1 -0
- package/dist/trust-gate-reason.js.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wash-default.d.ts +131 -0
- package/dist/wash-default.d.ts.map +1 -0
- package/dist/wash-default.js +329 -0
- package/dist/wash-default.js.map +1 -0
- package/dist/with-guard.d.ts.map +1 -1
- package/dist/with-guard.js +3 -1
- package/dist/with-guard.js.map +1 -1
- package/dist/wrap-fetch.d.ts.map +1 -1
- package/dist/wrap-fetch.js +7 -2
- package/dist/wrap-fetch.js.map +1 -1
- package/dist/x402-client-hook.d.ts +1 -1
- package/dist/x402-client-hook.d.ts.map +1 -1
- package/dist/x402-client-hook.js +45 -7
- package/dist/x402-client-hook.js.map +1 -1
- package/package.json +1 -1
package/QUICKSTART.md
CHANGED
|
@@ -6,13 +6,13 @@ is unreachable the gate never *invents* a wash flag. A failed preflight, or a me
|
|
|
6
6
|
outage on a scored path, blocks by default (`TWZRD_FAIL_OPEN=true` to allow). A reachable
|
|
7
7
|
card with no wash signal still proceeds.
|
|
8
8
|
|
|
9
|
-
**Pin:** `twzrd-x402-gate@0.9.
|
|
9
|
+
**Pin:** `twzrd-x402-gate@0.9.11` + stock PayAI client `x402-solana@3.0.0` (official
|
|
10
10
|
`beforePayment` seat). `@x402/core` Path E remains supported; refuse script is fallback.
|
|
11
11
|
|
|
12
12
|
## 1. Stock PayAI client (default seat — copy-paste)
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
npm install twzrd-x402-gate@0.9.
|
|
15
|
+
npm install twzrd-x402-gate@0.9.11 x402-solana@3.0.0
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
> **ESM-only.** The package ships `import` conditions only — a CommonJS
|
|
@@ -37,7 +37,7 @@ Then: `await client.fetch("https://merchant.example/paid");`
|
|
|
37
37
|
## 1b. Official `@x402/core` client (Path E)
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
npm install twzrd-x402-gate@0.9.
|
|
40
|
+
npm install twzrd-x402-gate@0.9.11 @x402/core @x402/fetch @x402/svm
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
```typescript
|
package/README.md
CHANGED
|
@@ -80,7 +80,7 @@ transfer on-chain. Wash/sybil edges are primarily discounted in TWZRD scoring, n
|
|
|
80
80
|
revenue refusal.
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
npm install twzrd-x402-gate@0.9.
|
|
83
|
+
npm install twzrd-x402-gate@0.9.11
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
```typescript
|
|
@@ -125,7 +125,7 @@ Fixture-backed SVM extract tests live in `test/seller-hook.test.ts` +
|
|
|
125
125
|
Install the published gate and run against wash fixtures:
|
|
126
126
|
|
|
127
127
|
```bash
|
|
128
|
-
npm install twzrd-x402-gate@0.9.
|
|
128
|
+
npm install twzrd-x402-gate@0.9.11
|
|
129
129
|
# from package root after install, or from a checkout:
|
|
130
130
|
npm run wash-dogfood
|
|
131
131
|
```
|
|
@@ -297,7 +297,7 @@ Dogfood (one public live proof path):
|
|
|
297
297
|
## Install
|
|
298
298
|
|
|
299
299
|
```bash
|
|
300
|
-
npm install twzrd-x402-gate@0.9.
|
|
300
|
+
npm install twzrd-x402-gate@0.9.11
|
|
301
301
|
```
|
|
302
302
|
|
|
303
303
|
Do not hardcode a version in this doc — every past pin here (**0.5.4**, **0.7.1**, **0.8.5**,
|
|
@@ -793,7 +793,7 @@ const result = await evaluate_x402_resource(url, requirements, {
|
|
|
793
793
|
x402Fetch: myPayingFetch,
|
|
794
794
|
onReceipt: (receipt, tx) => storeCredential(receipt),
|
|
795
795
|
});
|
|
796
|
-
// result.receipt — twzrd_receipt (
|
|
796
|
+
// result.receipt — twzrd_receipt (V7 + ERC-8004 reputation_credential)
|
|
797
797
|
// result.receiptTx — on-chain settlement tx
|
|
798
798
|
// result.receiptFeeCaptured — true when fee landed
|
|
799
799
|
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Funnel join-key pass-through for paying clients.
|
|
3
|
+
*
|
|
4
|
+
* Server 402s (PR #2819) emit `extensions.twzrd_attempt` on PAYMENT-REQUIRED.
|
|
5
|
+
* `@x402/fetch` / `@x402/core` createPaymentPayload drops unknown extensions,
|
|
6
|
+
* so every paid retry lands as a new singleton in `x402_funnel_events`.
|
|
7
|
+
*
|
|
8
|
+
* This module copies the challenge's `twzrd_attempt` onto the retry payload.
|
|
9
|
+
* It never mints a key. No challenge key → no stamp.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ATTEMPT_EXTENSION = "twzrd_attempt";
|
|
12
|
+
export declare const ATTEMPT_EXTENSION_SCHEMA = "twzrd.attempt.v1";
|
|
13
|
+
type Dict = Record<string, unknown>;
|
|
14
|
+
/**
|
|
15
|
+
* Read `extensions.twzrd_attempt` from a decoded PAYMENT-REQUIRED / 402 body.
|
|
16
|
+
* Header-first callers should parse PAYMENT-REQUIRED before passing the object.
|
|
17
|
+
* Returns null when the challenge did not carry a key — never invents one.
|
|
18
|
+
*/
|
|
19
|
+
export declare function twzrdAttemptFromChallenge(challenge: unknown): Dict | null;
|
|
20
|
+
/**
|
|
21
|
+
* Embed the challenge's `twzrd_attempt` on a payment payload. Idempotent:
|
|
22
|
+
* an already-present non-empty `attempt_key` is left alone. Never mints.
|
|
23
|
+
*/
|
|
24
|
+
export declare function stampTwzrdAttemptOnPaymentPayload(challenge: unknown, payload: unknown): unknown;
|
|
25
|
+
/** Decode PAYMENT-SIGNATURE / X-PAYMENT, stamp `twzrd_attempt`, re-encode. */
|
|
26
|
+
export declare function stampPaymentSignatureHeader(header: string, challenge: unknown): string;
|
|
27
|
+
/**
|
|
28
|
+
* Fetch wrapper: remember `twzrd_attempt` from a 402 (PAYMENT-REQUIRED header
|
|
29
|
+
* first, JSON body fallback) and stamp it onto the retry's PAYMENT-SIGNATURE.
|
|
30
|
+
*
|
|
31
|
+
* Sits under `wrapFetchWithPayment` so the official adapter's retry is joined
|
|
32
|
+
* even when createPaymentPayload itself drops extensions.
|
|
33
|
+
*/
|
|
34
|
+
export declare function wrapFetchEchoTwzrdAttempt(inner: typeof fetch): typeof fetch;
|
|
35
|
+
/**
|
|
36
|
+
* Wrap `createPaymentPayload` so `@x402/fetch` retries carry `twzrd_attempt`
|
|
37
|
+
* inside the encoded PAYMENT-SIGNATURE, not only on the HTTP wrapper.
|
|
38
|
+
* No-op when the object has no such method (plain signers).
|
|
39
|
+
*/
|
|
40
|
+
export declare function wrapX402ClientEchoAttempt<T>(client: T): T;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=attempt-echo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt-echo.d.ts","sourceRoot":"","sources":["../src/attempt-echo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAcpC;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAUzE;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAeT;AAUD,8EAA8E;AAC9E,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,GACjB,MAAM,CAMR;AAgBD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,KAAK,GAAG,OAAO,KAAK,CAuC3E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAkBzD"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Funnel join-key pass-through for paying clients.
|
|
3
|
+
*
|
|
4
|
+
* Server 402s (PR #2819) emit `extensions.twzrd_attempt` on PAYMENT-REQUIRED.
|
|
5
|
+
* `@x402/fetch` / `@x402/core` createPaymentPayload drops unknown extensions,
|
|
6
|
+
* so every paid retry lands as a new singleton in `x402_funnel_events`.
|
|
7
|
+
*
|
|
8
|
+
* This module copies the challenge's `twzrd_attempt` onto the retry payload.
|
|
9
|
+
* It never mints a key. No challenge key → no stamp.
|
|
10
|
+
*/
|
|
11
|
+
import { paymentRequiredFromResponse } from "./payto.js";
|
|
12
|
+
export const ATTEMPT_EXTENSION = "twzrd_attempt";
|
|
13
|
+
export const ATTEMPT_EXTENSION_SCHEMA = "twzrd.attempt.v1";
|
|
14
|
+
function asRecord(value) {
|
|
15
|
+
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
16
|
+
? value
|
|
17
|
+
: null;
|
|
18
|
+
}
|
|
19
|
+
function clipKey(value) {
|
|
20
|
+
if (typeof value !== "string")
|
|
21
|
+
return null;
|
|
22
|
+
const key = value.trim();
|
|
23
|
+
return key.length > 0 ? key : null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Read `extensions.twzrd_attempt` from a decoded PAYMENT-REQUIRED / 402 body.
|
|
27
|
+
* Header-first callers should parse PAYMENT-REQUIRED before passing the object.
|
|
28
|
+
* Returns null when the challenge did not carry a key — never invents one.
|
|
29
|
+
*/
|
|
30
|
+
export function twzrdAttemptFromChallenge(challenge) {
|
|
31
|
+
const root = asRecord(challenge);
|
|
32
|
+
if (!root)
|
|
33
|
+
return null;
|
|
34
|
+
const ext = asRecord(root.extensions);
|
|
35
|
+
if (!ext)
|
|
36
|
+
return null;
|
|
37
|
+
const att = asRecord(ext[ATTEMPT_EXTENSION]);
|
|
38
|
+
if (!att)
|
|
39
|
+
return null;
|
|
40
|
+
const key = clipKey(att.attempt_key);
|
|
41
|
+
if (!key)
|
|
42
|
+
return null;
|
|
43
|
+
return { ...att, attempt_key: key };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Embed the challenge's `twzrd_attempt` on a payment payload. Idempotent:
|
|
47
|
+
* an already-present non-empty `attempt_key` is left alone. Never mints.
|
|
48
|
+
*/
|
|
49
|
+
export function stampTwzrdAttemptOnPaymentPayload(challenge, payload) {
|
|
50
|
+
const echo = twzrdAttemptFromChallenge(challenge);
|
|
51
|
+
if (!echo)
|
|
52
|
+
return payload;
|
|
53
|
+
const root = asRecord(payload);
|
|
54
|
+
if (!root)
|
|
55
|
+
return payload;
|
|
56
|
+
const ext = asRecord(root.extensions) ?? {};
|
|
57
|
+
const existing = asRecord(ext[ATTEMPT_EXTENSION]);
|
|
58
|
+
if (existing && clipKey(existing.attempt_key))
|
|
59
|
+
return payload;
|
|
60
|
+
return {
|
|
61
|
+
...root,
|
|
62
|
+
extensions: {
|
|
63
|
+
...ext,
|
|
64
|
+
[ATTEMPT_EXTENSION]: echo,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function decodeB64Json(header) {
|
|
69
|
+
try {
|
|
70
|
+
return JSON.parse(Buffer.from(header, "base64").toString("utf8"));
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** Decode PAYMENT-SIGNATURE / X-PAYMENT, stamp `twzrd_attempt`, re-encode. */
|
|
77
|
+
export function stampPaymentSignatureHeader(header, challenge) {
|
|
78
|
+
const decoded = decodeB64Json(header);
|
|
79
|
+
if (decoded == null)
|
|
80
|
+
return header;
|
|
81
|
+
const stamped = stampTwzrdAttemptOnPaymentPayload(challenge, decoded);
|
|
82
|
+
if (stamped === decoded)
|
|
83
|
+
return header;
|
|
84
|
+
return Buffer.from(JSON.stringify(stamped), "utf8").toString("base64");
|
|
85
|
+
}
|
|
86
|
+
function requestMapKey(input, init) {
|
|
87
|
+
if (typeof input === "string") {
|
|
88
|
+
return `${(init?.method ?? "GET").toString().toUpperCase()} ${input}`;
|
|
89
|
+
}
|
|
90
|
+
if (input instanceof URL) {
|
|
91
|
+
return `${(init?.method ?? "GET").toString().toUpperCase()} ${input.href}`;
|
|
92
|
+
}
|
|
93
|
+
return `${input.method} ${input.url}`;
|
|
94
|
+
}
|
|
95
|
+
function paymentHeaderValue(headers) {
|
|
96
|
+
return headers.get("PAYMENT-SIGNATURE") || headers.get("X-PAYMENT") || null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Fetch wrapper: remember `twzrd_attempt` from a 402 (PAYMENT-REQUIRED header
|
|
100
|
+
* first, JSON body fallback) and stamp it onto the retry's PAYMENT-SIGNATURE.
|
|
101
|
+
*
|
|
102
|
+
* Sits under `wrapFetchWithPayment` so the official adapter's retry is joined
|
|
103
|
+
* even when createPaymentPayload itself drops extensions.
|
|
104
|
+
*/
|
|
105
|
+
export function wrapFetchEchoTwzrdAttempt(inner) {
|
|
106
|
+
const last = new Map();
|
|
107
|
+
return async (input, init) => {
|
|
108
|
+
const mapKey = requestMapKey(input, init);
|
|
109
|
+
const peek = input instanceof Request ? input : new Request(input, init);
|
|
110
|
+
const sig = paymentHeaderValue(peek.headers);
|
|
111
|
+
let callInput = input;
|
|
112
|
+
let callInit = init;
|
|
113
|
+
if (sig) {
|
|
114
|
+
const challenge = last.get(mapKey);
|
|
115
|
+
if (challenge) {
|
|
116
|
+
const stamped = stampPaymentSignatureHeader(sig, challenge);
|
|
117
|
+
if (stamped !== sig) {
|
|
118
|
+
const headers = new Headers(peek.headers);
|
|
119
|
+
if (headers.get("PAYMENT-SIGNATURE"))
|
|
120
|
+
headers.set("PAYMENT-SIGNATURE", stamped);
|
|
121
|
+
if (headers.get("X-PAYMENT"))
|
|
122
|
+
headers.set("X-PAYMENT", stamped);
|
|
123
|
+
callInput = new Request(peek, { headers });
|
|
124
|
+
callInit = undefined;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const resp = await inner(callInput, callInit);
|
|
129
|
+
if (resp.status === 402) {
|
|
130
|
+
try {
|
|
131
|
+
const challenge = await paymentRequiredFromResponse(resp);
|
|
132
|
+
if (challenge) {
|
|
133
|
+
last.set(mapKey, challenge);
|
|
134
|
+
while (last.size > 256) {
|
|
135
|
+
last.delete(last.keys().next().value);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
/* echo is advisory — never fail-close a 402 on a bad header */
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return resp;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Wrap `createPaymentPayload` so `@x402/fetch` retries carry `twzrd_attempt`
|
|
148
|
+
* inside the encoded PAYMENT-SIGNATURE, not only on the HTTP wrapper.
|
|
149
|
+
* No-op when the object has no such method (plain signers).
|
|
150
|
+
*/
|
|
151
|
+
export function wrapX402ClientEchoAttempt(client) {
|
|
152
|
+
if (!client || typeof client !== "object")
|
|
153
|
+
return client;
|
|
154
|
+
const orig = client.createPaymentPayload;
|
|
155
|
+
if (typeof orig !== "function")
|
|
156
|
+
return client;
|
|
157
|
+
const bound = orig.bind(client);
|
|
158
|
+
const wrapped = async (paymentRequired, ...rest) => {
|
|
159
|
+
const payload = await bound(paymentRequired, ...rest);
|
|
160
|
+
return stampTwzrdAttemptOnPaymentPayload(paymentRequired, payload);
|
|
161
|
+
};
|
|
162
|
+
try {
|
|
163
|
+
client.createPaymentPayload = wrapped;
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return client;
|
|
167
|
+
}
|
|
168
|
+
return client;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=attempt-echo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt-echo.js","sourceRoot":"","sources":["../src/attempt-echo.ts"],"names":[],"mappings":"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"}
|
package/dist/auto-gate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-gate.d.ts","sourceRoot":"","sources":["../src/auto-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;
|
|
1
|
+
{"version":3,"file":"auto-gate.d.ts","sourceRoot":"","sources":["../src/auto-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAIL,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,KAAK,OAAO,KAAK,CAAC;AAEnE,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,GACzD,0BAA0B,GAAG;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,KAAK,CAAC;CACzB,CAAC;AAEJ,kFAAkF;AAClF,MAAM,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG,4BAA4B,GACnE,0BAA0B,CAAC;AAE7B,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAC3D,0BAA0B,CAAC;AAS7B,8DAA8D;AAC9D,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAOjF;AAcD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,KAAK,CAAC;AAEhB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,0BAA0B,GACnC,cAAc,CAAC;AAElB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,yBAAyB,GACjC,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,0BAA0B,GACnC,CACD,YAAY,EAAE,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,OAAO,CAAC,EAAE,8BAA8B,KACrC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAE1C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,0BAA0B,GACnC,CAAC,OAAO,EAAE,4BAA4B,KAAK,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAsJnF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAWnE"}
|
package/dist/auto-gate.js
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* and — the direction that matters — a fetch composed WHILE the switch was
|
|
30
30
|
* off stays ungated after it is cleared. Rebuild it either way.
|
|
31
31
|
*/
|
|
32
|
+
import { wrapFetchEchoTwzrdAttempt, wrapX402ClientEchoAttempt } from "./attempt-echo.js";
|
|
32
33
|
import { withTwzrdGuard } from "./with-guard.js";
|
|
33
34
|
import { createTwzrdBeforePaymentHook, createTwzrdPayKitBeforePaymentHook, installTwzrdX402ClientHook, } from "./x402-client-hook.js";
|
|
34
35
|
import { createTwzrdMppOnChallenge, } from "./mpp-hook.js";
|
|
@@ -101,6 +102,8 @@ export function installTwzrdAutoGate(target, options) {
|
|
|
101
102
|
// so an env-off install is inert while the switch is set and gates once it
|
|
102
103
|
// clears. Trade-off: a paymentControl misconfig now throws at install even
|
|
103
104
|
// under the kill switch, i.e. fails fast instead of silently passing through.
|
|
105
|
+
// Echo is not a gate — join-key pass-through stays on when policy is off.
|
|
106
|
+
wrapX402ClientEchoAttempt(target);
|
|
104
107
|
if (x402Opts?.disabled === true) {
|
|
105
108
|
return target;
|
|
106
109
|
}
|
|
@@ -156,13 +159,14 @@ export function installTwzrdAutoGate(target, options) {
|
|
|
156
159
|
if (isPayWrap(target)) {
|
|
157
160
|
const fetchOpts = options;
|
|
158
161
|
const raw = fetchOpts?.rawFetch ?? globalThis.fetch;
|
|
162
|
+
const echoing = wrapFetchEchoTwzrdAttempt(raw);
|
|
159
163
|
if (isTwzrdAutoGateDisabled(fetchOpts)) {
|
|
160
|
-
return target(
|
|
164
|
+
return target(echoing);
|
|
161
165
|
}
|
|
162
166
|
// The payWrap they already supply is a paying fetch. Use it as Path A
|
|
163
167
|
// x402Fetch so the canonical install fires warn+material without a
|
|
164
|
-
// second argument. payWrap(
|
|
165
|
-
const x402Fetch = fetchOpts?.x402Fetch ?? target(
|
|
168
|
+
// second argument. payWrap(echoing) is unguarded — no recursion into the gate.
|
|
169
|
+
const x402Fetch = fetchOpts?.x402Fetch ?? target(echoing);
|
|
166
170
|
return target(withTwzrdGuard(raw, { ...fetchOpts, x402Fetch }));
|
|
167
171
|
}
|
|
168
172
|
throw new TypeError('[twzrd-x402-gate] installTwzrdAutoGate: expected a PayWrap function, an x402 client with onBeforePaymentCreation, or the string "mpp" / "x402-solana" / "pay-kit"');
|
package/dist/auto-gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-gate.js","sourceRoot":"","sources":["../src/auto-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,cAAc,EAA0B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,0BAA0B,GAO3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,GAI1B,MAAM,eAAe,CAAC;AAoCvB;;6CAE6C;AAC7C,MAAM,cAAc,GAAG,IAAI,OAAO,EAAgC,CAAC;AAEnE,8DAA8D;AAC9D,MAAM,UAAU,uBAAuB,CAAC,OAAgC;IACtE,IAAI,OAAO,EAAE,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACzC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC5C,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,CAAU;IAC3B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAU;IAClC,OAAO,CACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAQ,CAAoB,CAAC,uBAAuB,KAAK,UAAU,CACpE,CAAC;AACJ,CAAC;AA6ED,MAAM,UAAU,oBAAoB,CAClC,MAAoE,EACpE,OAA8F;IAU9F,wEAAwE;IACxE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,OAAoC,CAAC;QACrD,sEAAsE;QACtE,IAAI,OAAO,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,KAAK,EACV,UAAwB,EACxB,OAA8B,EACD,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC/D,CAAC;QACD,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,gDAAgD;QAChD,MAAM,KAAK,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,KAAK,EACV,SAAuB,EACvB,OAA8B,EACD,EAAE,CAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAiD,CAAC;QAClE,IAAI,OAAO,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;QAC/B,CAAC;QACD,6EAA6E;QAC7E,MAAM,KAAK,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,KAAK,EACV,YAAgE,EAChE,OAAwC,EACF,EAAE,CACxC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,wEAAwE;IACxE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,OAAiD,CAAC;QACrE,IAAI,UAAU,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;YAClC,OAAO,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;QAC/B,CAAC;QACD,MAAM,KAAK,GAAG,kCAAkC,CAAC,UAAU,CAAC,CAAC;QAC7D,OAAO,KAAK,EACV,OAAqC,EACC,EAAE,CACxC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,wEAAwE;IACxE,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAiD,CAAC;QACnE,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,6EAA6E;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,8EAA8E;QAC9E,IAAI,QAAQ,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,cAAc,CAAC,GAAG,CAAC,MAAgB,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CACV,oIAAoI,CACrI,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAuB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,MAAgB,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAC1B,cAAc,CAAC,GAAG,CAAC,MAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEnD,2EAA2E;QAC3E,sEAAsE;QACtE,uEAAuE;QACvE,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC;QACpD,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACjC,IAAI,KAAK,CAAC,QAAQ,IAAI,uBAAuB,EAAE,EAAE,CAAC;gBAChD,OAAO,SAAS,CAAC,CAAC,oBAAoB;YACxC,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC,CAA8C,CAAC;QACnD,MAAM,CAAC,uBAAuB,GAAG,OAAO,CAAC;QAEzC,IAAI,CAAC;YACH,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO;gBAAE,MAAM,CAAC,uBAAuB,GAAG,YAAY,CAAC;;gBACtD,OAAQ,MAAkC,CAAC,uBAAuB,CAAC;YACxE,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,0CAA0C;YAC1C,EAAE;YACF,2EAA2E;YAC3E,0EAA0E;YAC1E,mEAAmE;YACnE,kEAAkE;YAClE,uEAAuE;YACvE,oEAAoE;YACpE,IAAI,MAAM,CAAC,uBAAuB,KAAK,OAAO,EAAE,CAAC;gBAC/C,MAAM,CAAC,uBAAuB,GAAG,YAAY,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wEAAwE;IACxE,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,OAAkD,CAAC;QACrE,MAAM,GAAG,GAAG,SAAS,EAAE,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC;QACpD,IAAI,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"auto-gate.js","sourceRoot":"","sources":["../src/auto-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounty-preflight-cli.d.ts","sourceRoot":"","sources":["../src/bounty-preflight-cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAA0B,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE1G,OAAO,EAA8C,KAAK,UAAU,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5I,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,mBAAmB,KACtB,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AASzG,eAAO,MAAM,KAAK,2zCAkBwD,CAAC;AA8B3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAgCvD;AAID,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,EAAE,KAAK,EAAE,OAA0B,EAAE,QAA+C,EAAE,GAAoC,EAAE,GAC1H;IAAE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GACzE,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"bounty-preflight-cli.d.ts","sourceRoot":"","sources":["../src/bounty-preflight-cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAA0B,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE1G,OAAO,EAA8C,KAAK,UAAU,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5I,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,mBAAmB,KACtB,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AASzG,eAAO,MAAM,KAAK,2zCAkBwD,CAAC;AA8B3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAgCvD;AAID,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,EAAE,KAAK,EAAE,OAA0B,EAAE,QAA+C,EAAE,GAAoC,EAAE,GAC1H;IAAE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GACzE,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC,CAqCvD"}
|
|
@@ -131,8 +131,10 @@ export async function runBountyPreflight(args, { fetch: doFetch = globalThis.fet
|
|
|
131
131
|
else {
|
|
132
132
|
const challenge = await paymentRequiredFromResponse(paidRes);
|
|
133
133
|
const req = pickRequirements(challenge?.accepts);
|
|
134
|
-
const { payTo, amountMicro } = payToFromRequirements(req);
|
|
135
|
-
if (
|
|
134
|
+
const { payTo, amountMicro, conflict } = payToFromRequirements(req);
|
|
135
|
+
if (conflict)
|
|
136
|
+
gate = UNGATED(`paid_endpoint_${conflict}`);
|
|
137
|
+
else if (!payTo)
|
|
136
138
|
gate = UNGATED("paid_endpoint_no_payto");
|
|
137
139
|
else {
|
|
138
140
|
const result = await evaluate(args.paidEndpoint, req, { gateOnCanSpend: false, refuseWashFlagged: true, failOpen: false, fetch: fetchBound });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounty-preflight-cli.js","sourceRoot":"","sources":["../src/bounty-preflight-cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bounty-preflight-cli.js","sourceRoot":"","sources":["../src/bounty-preflight-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Agents x402 approval adapter.
|
|
3
|
+
*
|
|
4
|
+
* Cloudflare's `withX402Client(...).callTool(onPaymentRequired, ...)` asks the
|
|
5
|
+
* caller to approve a payment before it constructs and submits the payment
|
|
6
|
+
* payload. This adapter turns that callback into the same TWZRD decision used
|
|
7
|
+
* by the generic MCP hook.
|
|
8
|
+
*
|
|
9
|
+
* This is an approval boundary, not a claim that Base has TWZRD behavioral
|
|
10
|
+
* reputation. Base/EVM stays `decision=unknown`: observe permits it and strict
|
|
11
|
+
* refuses it before the Cloudflare client pays.
|
|
12
|
+
*/
|
|
13
|
+
import type { TwzrdGateConfig, X402PaymentRequiredBody } from "./types.js";
|
|
14
|
+
/** Dependency-free structural shape passed to Cloudflare's callback. */
|
|
15
|
+
export type CloudflareX402PaymentRequirements = X402PaymentRequiredBody & {
|
|
16
|
+
resource?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Build a Cloudflare `onPaymentRequired` callback.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* const approvePayment = createTwzrdCloudflareX402Approval({
|
|
24
|
+
* unsupportedNetworkMode: "strict",
|
|
25
|
+
* });
|
|
26
|
+
* await client.callTool(approvePayment, { name: "paid_tool", arguments: {} });
|
|
27
|
+
*/
|
|
28
|
+
export declare function createTwzrdCloudflareX402Approval(options?: TwzrdGateConfig): (paymentRequirements: CloudflareX402PaymentRequirements) => Promise<boolean>;
|
|
29
|
+
//# sourceMappingURL=cloudflare-x402.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-x402.d.ts","sourceRoot":"","sources":["../src/cloudflare-x402.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE3E,wEAAwE;AACxE,MAAM,MAAM,iCAAiC,GAAG,uBAAuB,GAAG;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,CAAC,EAAE,eAAe,GACxB,CAAC,mBAAmB,EAAE,iCAAiC,KAAK,OAAO,CAAC,OAAO,CAAC,CAU9E"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Agents x402 approval adapter.
|
|
3
|
+
*
|
|
4
|
+
* Cloudflare's `withX402Client(...).callTool(onPaymentRequired, ...)` asks the
|
|
5
|
+
* caller to approve a payment before it constructs and submits the payment
|
|
6
|
+
* payload. This adapter turns that callback into the same TWZRD decision used
|
|
7
|
+
* by the generic MCP hook.
|
|
8
|
+
*
|
|
9
|
+
* This is an approval boundary, not a claim that Base has TWZRD behavioral
|
|
10
|
+
* reputation. Base/EVM stays `decision=unknown`: observe permits it and strict
|
|
11
|
+
* refuses it before the Cloudflare client pays.
|
|
12
|
+
*/
|
|
13
|
+
import { resolveConfig } from "./config.js";
|
|
14
|
+
import { twzrdOnPaymentRequested } from "./mcp-hook.js";
|
|
15
|
+
/**
|
|
16
|
+
* Build a Cloudflare `onPaymentRequired` callback.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const approvePayment = createTwzrdCloudflareX402Approval({
|
|
20
|
+
* unsupportedNetworkMode: "strict",
|
|
21
|
+
* });
|
|
22
|
+
* await client.callTool(approvePayment, { name: "paid_tool", arguments: {} });
|
|
23
|
+
*/
|
|
24
|
+
export function createTwzrdCloudflareX402Approval(options) {
|
|
25
|
+
const config = resolveConfig(options);
|
|
26
|
+
return async (paymentRequirements) => twzrdOnPaymentRequested({
|
|
27
|
+
paymentRequired: paymentRequirements,
|
|
28
|
+
context: { resource: paymentRequirements.resource },
|
|
29
|
+
}, config);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=cloudflare-x402.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-x402.js","sourceRoot":"","sources":["../src/cloudflare-x402.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AASxD;;;;;;;;GAQG;AACH,MAAM,UAAU,iCAAiC,CAC/C,OAAyB;IAEzB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,EAAE,CACnC,uBAAuB,CACrB;QACE,eAAe,EAAE,mBAAmB;QACpC,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE;KACpD,EACD,MAAM,CACP,CAAC;AACN,CAAC"}
|
package/dist/cold-start.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* Seat AutoGate on the real payer with the snippet on the transcript.
|
|
8
8
|
*/
|
|
9
9
|
import { type GateAdoptionLineage } from "./adoption-proof.js";
|
|
10
|
+
import { type HostResolver } from "./ssrf.js";
|
|
10
11
|
export declare const COLD_START_TRANSCRIPT_SCHEMA: "twzrd.cold_start_transcript.v1";
|
|
11
12
|
export declare const COLD_START_POLICY_SCHEMA: "twzrd.cold_start_policy.v1";
|
|
12
13
|
/** Owned refuse dogfood — never a diet/hop target. */
|
|
@@ -80,8 +81,12 @@ export type ColdStartTranscript = {
|
|
|
80
81
|
policy_path: string | null;
|
|
81
82
|
exportedAt: string;
|
|
82
83
|
notExternalRunProof: string[];
|
|
83
|
-
/** True when at least one diet host was scored (allowlisted|refused|over_cap). */
|
|
84
|
+
/** True when at least one diet or hop host was scored (allowlisted|refused|over_cap). */
|
|
84
85
|
ok: boolean;
|
|
86
|
+
/** Non-null when writing --policy-out failed; the transcript is still returned. */
|
|
87
|
+
policy_write_error: string | null;
|
|
88
|
+
/** Non-null when writing --out failed; the transcript is still returned. */
|
|
89
|
+
transcript_write_error: string | null;
|
|
85
90
|
};
|
|
86
91
|
export type ColdStartArgs = {
|
|
87
92
|
dietUrls: string[];
|
|
@@ -107,7 +112,11 @@ export declare function buildPolicy(input: {
|
|
|
107
112
|
maxPerDayUsdc: number;
|
|
108
113
|
hosts: ColdStartHostRow[];
|
|
109
114
|
}): ColdStartPolicy;
|
|
110
|
-
export
|
|
115
|
+
export type ColdStartDeps = {
|
|
116
|
+
/** Injectable for tests; defaults to a real DNS lookup. Never used to skip the check. */
|
|
117
|
+
resolveHost?: HostResolver;
|
|
118
|
+
};
|
|
119
|
+
export declare function runColdStart(args: ColdStartArgs, deps?: ColdStartDeps): Promise<{
|
|
111
120
|
transcript: ColdStartTranscript;
|
|
112
121
|
policy: ColdStartPolicy;
|
|
113
122
|
exitCode: 0 | 1;
|
package/dist/cold-start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cold-start.d.ts","sourceRoot":"","sources":["../src/cold-start.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"cold-start.d.ts","sourceRoot":"","sources":["../src/cold-start.ts"],"names":[],"mappings":"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"}
|