twzrd-x402-gate 0.8.3 → 0.8.5

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
@@ -7,6 +7,32 @@
7
7
  refuse. Protects the **payer** from a risky **merchant** (`payTo`). Chain-neutral envelope;
8
8
  **Solana-deep** reputation only (Base/EVM = explicit `unknown`).
9
9
 
10
+ ### Default-on AutoGate (5 lines)
11
+
12
+ ```bash
13
+ npm install twzrd-x402-gate@0.8.5 @x402/core @x402/fetch @x402/svm
14
+ ```
15
+
16
+ ```typescript
17
+ import { x402Client } from "@x402/core/client";
18
+ import { installTwzrdAutoGate } from "twzrd-x402-gate";
19
+
20
+ const client = new x402Client();
21
+ // refuseWashFlagged defaults true; gateOnCanSpend stays false unless you opt in
22
+ installTwzrdAutoGate(client, { refuseWashFlagged: true });
23
+ // then register schemes + wrapFetchWithPayment as usual
24
+ ```
25
+
26
+ **Intercept proof (0 USDC, wash seller never reaches signer):**
27
+
28
+ ```bash
29
+ cd packages/twzrd-x402-gate && npm run autogate-block-proof
30
+ # writes block-proof-<run_id>.json (schema twzrd.autogate_block_proof.v1)
31
+ # public reason: TWZRD_TRUST_GATE_BLOCK: wash_flagged
32
+ ```
33
+
34
+ `gateOnCanSpend` remains **opt-in** (`false` by default; set `true` or `TWZRD_GATE_ON_CAN_SPEND=1` only when you want hard cap enforcement).
35
+
10
36
  **Optional (0.8.1):** a resource-server settle hook so merchants can apply **customer policy**
11
37
  before they settle and serve (abuse, sanctions, bots, “don’t serve this payer”). Not an equal
12
38
  mirror of the buyer problem — settled USDC is final; wash resistance is mainly TWZRD scoring.
@@ -23,7 +49,7 @@ transfer on-chain. Wash/sybil edges are primarily discounted in TWZRD scoring, n
23
49
  revenue refusal.
24
50
 
25
51
  ```bash
26
- npm install twzrd-x402-gate@0.8.2
52
+ npm install twzrd-x402-gate@0.8.5
27
53
  ```
28
54
 
29
55
  ```typescript
@@ -55,6 +81,10 @@ Offline demo: `npx tsx examples/seller-settle-guard.ts`
55
81
  Fixture-backed SVM extract tests live in `test/seller-hook.test.ts` +
56
82
  `test/fixtures/exact-svm-transfer-checked.ts`.
57
83
 
84
+ **PayAI agentic-payments** (the active PayAI SDK, not the dormant x402-solana):
85
+ `npx tsx examples/payai-agentic-onPaymentVerified.ts` — wire `onPaymentVerified`
86
+ → `toPayaiVerifyResult` to screen payers before serving. Fail-open by default.
87
+
58
88
 
59
89
  ## Demonstrable refuse mechanism (free, fail-open, reproducible)
60
90
 
@@ -63,7 +93,7 @@ Fixture-backed SVM extract tests live in `test/seller-hook.test.ts` +
63
93
  Install the published gate and run against wash fixtures:
64
94
 
65
95
  ```bash
66
- npm install twzrd-x402-gate@0.8.2
96
+ npm install twzrd-x402-gate@0.8.5
67
97
  # from package root after install, or from a checkout:
68
98
  npm run wash-dogfood
69
99
  ```
@@ -83,10 +113,44 @@ Gate dogfood: `approved=false` `reason=twzrd_decision_block`, **USDC spent = 0**
83
113
 
84
114
  **Accurate paste line:**
85
115
 
86
- > Preflight returned decision=block on wash seller 7G73PL… / HuSiSpc… (preflight_id 378468 / 378469, wash_flagged=true). Gate approved=false reason=twzrd_decision_block. No USDC spent. No tx broadcast. Repro: `npm i twzrd-x402-gate@0.8.1 && npm run wash-dogfood` or gist above.
116
+ > Preflight returned decision=block on wash seller 7G73PL… / HuSiSpc… (preflight_id 378468 / 378469, wash_flagged=true). Gate approved=false reason=twzrd_decision_block. No USDC spent. No tx broadcast. Repro: `npm i twzrd-x402-gate@0.8.5 && npm run wash-dogfood` or gist above.
87
117
 
88
118
  This is a **reproducible demonstration** that the free gate blocks known wash sellers with stamped `preflight_id`s and zero spend. It is **not** proof that external agents already default to this path at scale.
89
119
 
120
+ ### Foreign-wallet block proof (official @x402 stack, fresh key, zero history)
121
+
122
+ **Verified 2026-07-23:** the same pre-sign block with a **brand-new wallet that has
123
+ zero TWZRD/corpus history** — proving the mechanism is wallet-independent, not a
124
+ whitelisted internal path.
125
+
126
+ - Wallet: `3GMuabSAATKEXTchSpyP1y5raBS7y6Kx8GShdAbiDLce` (generated fresh; corpus
127
+ pre-check: `intel_score: 0`, `paid_calls: 0`, facilitator footprint `found: false`)
128
+ - Stack: official `@x402/core` client + `@x402/fetch` + `@x402/svm` `ExactSvmScheme`,
129
+ TWZRD via `installTwzrdX402ClientHook` at `onBeforePaymentCreation`
130
+ - Result: `verdict: green_block` · `reason: twzrd_can_spend_false` ·
131
+ `sign_after_abort: false` · `decision_count: 1` · `usdc_spent: 0` — payload
132
+ creation aborted on a live mainnet 402 (`payTo GFpLvo…`, $0.001) before any signing
133
+
134
+ Repro with your own fresh key (no SOL/USDC needed — the block path never funds):
135
+
136
+ ```bash
137
+ node --input-type=module -e "
138
+ import { randomBytes } from 'node:crypto';
139
+ import { writeFileSync } from 'node:fs';
140
+ import { createKeyPairSignerFromPrivateKeyBytes } from '@solana/kit';
141
+ import { base58 } from '@scure/base';
142
+ const seed = randomBytes(32);
143
+ const s = await createKeyPairSignerFromPrivateKeyBytes(seed);
144
+ writeFileSync('fresh-wallet.json', JSON.stringify({ privateKey: base58.encode(seed), address: s.address }), { mode: 0o600 });
145
+ console.log(s.address);
146
+ "
147
+ SVM_KEYPAIR_PATH=./fresh-wallet.json npm run official-dogfood -- --block
148
+ ```
149
+
150
+ Honest scope: run by the TWZRD team on TWZRD infra, so it is wallet-independence
151
+ proof, **not** an external adoption datapoint — that requires a non-internal
152
+ operator running this same command with their own attribution flags.
153
+
90
154
 
91
155
  ## Canonical integration (official x402 client)
92
156
 
@@ -134,7 +198,7 @@ import { installTwzrdAutoGate } from "twzrd-x402-gate";
134
198
  import { wrapFetchWithPayment } from "@x402/fetch"; // or @x402/svm helper
135
199
 
136
200
  // Guard RAW fetch, then hand to a client that still surfaces 402 to the guard layer
137
- // — OR prefer installTwzrdX402ClientHook on x402Client (above).
201
+ // — OR installTwzrdAutoGate(x402Client) (canonical) / installTwzrdX402ClientHook alias.
138
202
  const payingFetch = installTwzrdAutoGate((guarded) =>
139
203
  wrapFetchWithPayment(guarded, client),
140
204
  );
@@ -174,10 +238,10 @@ Dogfood (one public live proof path):
174
238
  ## Install
175
239
 
176
240
  ```bash
177
- npm install twzrd-x402-gate@0.8.2
241
+ npm install twzrd-x402-gate@0.8.5
178
242
  ```
179
243
 
180
- Current npm truth: `0.8.2` (buyer gate + optional seller settle guard + payer-extract hardening).
244
+ Current npm truth: `0.8.5` (buyer gate + optional seller settle guard + payer-extract hardening).
181
245
  Check `npm view twzrd-x402-gate version` if in doubt (do not pin stale **0.5.4** / **0.7.1**).
182
246
 
183
247
  Optional settle guard (resource-server **payer** policy): see **Seller settle guard
@@ -243,7 +307,7 @@ assertIntentApproved(intentBeingSigned, token, {
243
307
 
244
308
  ### On the client hook (opt-in)
245
309
 
246
- `installTwzrdX402ClientHook` wires the runtime into the official
310
+ `installTwzrdAutoGate(client)` (or alias `installTwzrdX402ClientHook`) wires the runtime into the official
247
311
  `onBeforePaymentCreation` seat. Pass `paymentControl` to build the canonical
248
312
  intent, run the policy runtime (with the hook's own preflight fed in as remote
249
313
  intelligence), and surface a signed, intent-bound `PaymentDecision`:
@@ -343,7 +407,7 @@ the intent hash, so the decision no longer matches.
343
407
  npx twzrd-safe-fetch https://example/paid --gate-on-can-spend --payment-network solana --json
344
408
 
345
409
  # Dry-run: preflight only, zero USDC
346
- npx twzrd-safe-fetch 'https://intel.twzrd.xyz/v1/intel/quick/<pubkey>' --dry-run --json
410
+ npx twzrd-safe-fetch 'https://intel.twzrd.xyz/v1/intel/quick/BJGdsDXJFy63eCAnX3UmGfShp8BuqbtkTfcamyRGr7VQ' --dry-run --json
347
411
  ```
348
412
 
349
413
  ```text
@@ -580,6 +644,33 @@ const result = await evaluate_x402_resource(url, requirements, {
580
644
  // result.receiptFeeCaptured — true when fee landed
581
645
  ```
582
646
 
647
+ ## Fee-payer preference (multi-facilitator `accepts[]`)
648
+
649
+ When a seller lists more than one facilitator in its 402 `accepts[]` (e.g. Dexter
650
+ *and* TWZRD), you can tell the gate which fee payer to settle through. It selects
651
+ the matching entry the seller **already offers** — it never adds, rewrites, or
652
+ forces an entry onto the seller's 402, and falls back to the normal
653
+ Solana-mainnet preference when nothing matches.
654
+
655
+ Opt-in, off by default. Set once via env:
656
+
657
+ ```bash
658
+ # prefer TWZRD's facilitator when a seller multi-lists (alias resolves to its feePayer)
659
+ export TWZRD_PREFER_FEE_PAYER=twzrd
660
+ # or any explicit base58 fee payer you want to route to
661
+ export TWZRD_PREFER_FEE_PAYER=4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE
662
+ ```
663
+
664
+ or programmatically:
665
+
666
+ ```typescript
667
+ import { pickRequirements, TWZRD_FEE_PAYER } from "twzrd-x402-gate";
668
+
669
+ const chosen = pickRequirements(body.accepts, { preferFeePayer: TWZRD_FEE_PAYER });
670
+ ```
671
+
672
+ With no preference set, selection is unchanged (first Solana-mainnet entry).
673
+
583
674
  ## Lower-level APIs
584
675
 
585
676
  ### Direct approval call
@@ -668,7 +759,7 @@ A 402 whose payment requirements yield **no identifiable seller wallet** (missin
668
759
  Deterministic install→transcript path for operators (no wallet, no USDC):
669
760
 
670
761
  ```bash
671
- npm run adoption-proof -- --integration <YOUR_ID> --run-id <UUID>
762
+ npm run adoption-proof -- --integration demo-autogate-proof --run-id 00000000-0000-4000-8000-000000000001
672
763
  ```
673
764
 
674
765
  Emits `twzrd.gate_adoption_transcript.v1` JSON: block path aborts with `signerInvocations: 0`, allow path emits decision, attribution headers stamped on mocked preflight. Full acceptance criteria (what counts as `EXTERNAL_RUN` vs dogfood): monorepo `docs/strategy/gate-adoption-operator-proof.md`.
@@ -0,0 +1,47 @@
1
+ /**
2
+ * AutoGate block-proof transcript schema + builder.
3
+ * Used by examples/autogate-block-proof.ts and unit tests.
4
+ */
5
+ export declare const AUTOGATE_BLOCK_PROOF_SCHEMA = "twzrd.autogate_block_proof.v1";
6
+ export type AutogateBlockProof = {
7
+ schema_version: typeof AUTOGATE_BLOCK_PROOF_SCHEMA;
8
+ run_id: string;
9
+ timestamp: string;
10
+ package_version: string;
11
+ target_seller: string;
12
+ preflight_result: {
13
+ decision: string | null;
14
+ wash_flagged: boolean | null;
15
+ trust_score: number | null;
16
+ internal_reason: string | null;
17
+ };
18
+ interception: {
19
+ hook: "onBeforePaymentCreation";
20
+ aborted: boolean;
21
+ reason: string;
22
+ internal_reason: string | null;
23
+ };
24
+ invariants: {
25
+ signer_invocations: number;
26
+ actual_spend_usdc: number;
27
+ onchain_settlements: number;
28
+ };
29
+ verified: boolean;
30
+ };
31
+ export type BuildAutogateBlockProofInput = {
32
+ run_id: string;
33
+ target_seller: string;
34
+ aborted: boolean;
35
+ /** Internal policy reason (e.g. twzrd_wash_flagged) or full hook abort string */
36
+ internal_reason: string | null;
37
+ decision?: string | null;
38
+ wash_flagged?: boolean | null;
39
+ trust_score?: number | null;
40
+ signer_invocations: number;
41
+ actual_spend_usdc?: number;
42
+ onchain_settlements?: number;
43
+ package_version?: string;
44
+ now?: () => Date;
45
+ };
46
+ export declare function buildAutogateBlockProof(input: BuildAutogateBlockProofInput): AutogateBlockProof;
47
+ //# sourceMappingURL=block-proof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-proof.d.ts","sourceRoot":"","sources":["../src/block-proof.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,eAAO,MAAM,2BAA2B,kCAAkC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,EAAE,OAAO,2BAA2B,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;QAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,YAAY,EAAE;QACZ,IAAI,EAAE,yBAAyB,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,UAAU,EAAE;QACV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,kBAAkB,CAuCpB"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * AutoGate block-proof transcript schema + builder.
3
+ * Used by examples/autogate-block-proof.ts and unit tests.
4
+ */
5
+ import { CLIENT_VERSION } from "./version.js";
6
+ import { toTrustGateBlockReason } from "./trust-gate-reason.js";
7
+ export const AUTOGATE_BLOCK_PROOF_SCHEMA = "twzrd.autogate_block_proof.v1";
8
+ export function buildAutogateBlockProof(input) {
9
+ const internal = input.internal_reason;
10
+ const publicReason = internal
11
+ ? toTrustGateBlockReason(internal)
12
+ : "TWZRD_TRUST_GATE_BLOCK: unknown";
13
+ const signer = input.signer_invocations;
14
+ const spend = input.actual_spend_usdc ?? 0;
15
+ const onchain = input.onchain_settlements ?? 0;
16
+ const verified = input.aborted === true &&
17
+ signer === 0 &&
18
+ spend === 0 &&
19
+ onchain === 0;
20
+ return {
21
+ schema_version: AUTOGATE_BLOCK_PROOF_SCHEMA,
22
+ run_id: input.run_id,
23
+ timestamp: (input.now?.() ?? new Date()).toISOString(),
24
+ package_version: input.package_version ?? CLIENT_VERSION,
25
+ target_seller: input.target_seller,
26
+ preflight_result: {
27
+ decision: input.decision ?? null,
28
+ wash_flagged: input.wash_flagged ?? null,
29
+ trust_score: input.trust_score ?? null,
30
+ internal_reason: internal,
31
+ },
32
+ interception: {
33
+ hook: "onBeforePaymentCreation",
34
+ aborted: input.aborted,
35
+ reason: publicReason,
36
+ internal_reason: internal,
37
+ },
38
+ invariants: {
39
+ signer_invocations: signer,
40
+ actual_spend_usdc: spend,
41
+ onchain_settlements: onchain,
42
+ },
43
+ verified,
44
+ };
45
+ }
46
+ //# sourceMappingURL=block-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-proof.js","sourceRoot":"","sources":["../src/block-proof.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,CAAC,MAAM,2BAA2B,GAAG,+BAA+B,CAAC;AA4C3E,MAAM,UAAU,uBAAuB,CACrC,KAAmC;IAEnC,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;IACvC,MAAM,YAAY,GAAG,QAAQ;QAC3B,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QAClC,CAAC,CAAC,iCAAiC,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;IAC/C,MAAM,QAAQ,GACZ,KAAK,CAAC,OAAO,KAAK,IAAI;QACtB,MAAM,KAAK,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,OAAO,KAAK,CAAC,CAAC;IAEhB,OAAO;QACL,cAAc,EAAE,2BAA2B;QAC3C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QACtD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,cAAc;QACxD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,gBAAgB,EAAE;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;YACxC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;YACtC,eAAe,EAAE,QAAQ;SAC1B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,YAAY;YACpB,eAAe,EAAE,QAAQ;SAC1B;QACD,UAAU,EAAE;YACV,kBAAkB,EAAE,MAAM;YAC1B,iBAAiB,EAAE,KAAK;YACxB,mBAAmB,EAAE,OAAO;SAC7B;QACD,QAAQ;KACT,CAAC;AACJ,CAAC"}
package/dist/config.js CHANGED
@@ -52,9 +52,9 @@ export function resolveConfig(overrides) {
52
52
  if (typeof fetchFn !== "function") {
53
53
  throw new Error("[twzrd-x402-gate] fetch is not available; pass config.fetch");
54
54
  }
55
- // Opt-in preflight attribution. Sent ONLY when both fields resolve (no partial
56
- // stamping). Overrides win; env fallback (TWZRD_ATTRIBUTION_INTEGRATION +
57
- // TWZRD_ATTRIBUTION_RUN_ID) exists for the zero-spend harness.
55
+ // Run attribution (integration + runId). When set, also narrows X-Twzrd-Caller.
56
+ // Seat identity (X-Twzrd-Caller / X-TWZRD-Client) is always stamped in
57
+ // twzrdPreflight even without this pair — see policy.ts fork-1 seat metric.
58
58
  let attribution;
59
59
  const attrIntegration = overrides?.attribution?.integration ?? process.env.TWZRD_ATTRIBUTION_INTEGRATION;
60
60
  const attrRunId = overrides?.attribution?.runId ?? process.env.TWZRD_ATTRIBUTION_RUN_ID;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { CLIENT_VERSION } from "./version.js";
2
2
  export { createTwzrdGate, defaultGate, type TwzrdGate } from "./gate.js";
3
3
  export { resolveConfig, type ResolvedTwzrdGateConfig } from "./config.js";
4
4
  export { evaluateReadinessCard, buildPreflightInput, twzrdPreflight, twzrdApprovePayment, type PolicyEvaluateInput, } from "./policy.js";
5
- export { payToFromRequirements, priceUsdcFromAmountMicro, pickRequirements } from "./payto.js";
5
+ export { payToFromRequirements, priceUsdcFromAmountMicro, pickRequirements, TWZRD_FEE_PAYER } from "./payto.js";
6
6
  export { classifyNetwork, decideUnsupportedNetwork, amountBucket, type NetworkClass, type NetworkKind, type UnsupportedNetworkMode, type UnsupportedNetworkDecision, } from "./network.js";
7
7
  export type { TwzrdGateDecision } from "./types.js";
8
8
  export { fetchMerchantCard, applyWashFlaggedPolicy, type TwzrdMerchantCard, type WashPolicyInput, type WashPolicyResult, } from "./merchant-card.js";
@@ -11,6 +11,8 @@ export { wrapFetchWithTwzrdGate } from "./wrap-fetch.js";
11
11
  export { evaluate_x402_resource, type EvaluateX402Options, type EvaluateX402Result, } from "./evaluate.js";
12
12
  export { withTwzrdGuard, type TwzrdGuardOptions } from "./with-guard.js";
13
13
  export { installTwzrdAutoGate, uninstallTwzrdAutoGate, isTwzrdAutoGateDisabled, type PayWrap, type InstallAutoGateOptions, type InstallAutoGateFetchOptions, type InstallAutoGateX402Options, type InstallAutoGateMppOptions, type TwzrdAutoGateCommonOptions, } from "./auto-gate.js";
14
+ export { TWZRD_TRUST_GATE_BLOCK_WASH, TWZRD_TRUST_GATE_BLOCK_CAN_SPEND, TWZRD_TRUST_GATE_BLOCK_DECISION, toTrustGateBlockReason, } from "./trust-gate-reason.js";
15
+ export { AUTOGATE_BLOCK_PROOF_SCHEMA, buildAutogateBlockProof, type AutogateBlockProof, type BuildAutogateBlockProofInput, } from "./block-proof.js";
14
16
  export { safeFetch, runAgentcashFetch, main as safeFetchMain, type SafeFetchOptions, type SafeFetchResult, } from "./safe-fetch.js";
15
17
  export { installTwzrdX402ClientHook, twzrdBeforePaymentCreation, type X402ClientLike, type X402SelectedRequirements, type BeforePaymentCreationContext, type BeforePaymentCreationResult, type InstallX402ClientHookOptions, type X402PaymentControlOptions, } from "./x402-client-hook.js";
16
18
  export { runGateAdoptionProof, main as adoptionProofMain, ADOPTION_TRANSCRIPT_SCHEMA, ADOPTION_PROOF_SELLER, ADOPTION_PROOF_NETWORK, ADOPTION_PROOF_RESOURCE, type GateAdoptionTranscript, type GateAdoptionStep, type GateAdoptionAssertions, type GateAdoptionLineage, type RunGateAdoptionProofOptions, } from "./adoption-proof.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ export { CLIENT_VERSION } from "./version.js";
6
6
  export { createTwzrdGate, defaultGate } from "./gate.js";
7
7
  export { resolveConfig } from "./config.js";
8
8
  export { evaluateReadinessCard, buildPreflightInput, twzrdPreflight, twzrdApprovePayment, } from "./policy.js";
9
- export { payToFromRequirements, priceUsdcFromAmountMicro, pickRequirements } from "./payto.js";
9
+ export { payToFromRequirements, priceUsdcFromAmountMicro, pickRequirements, TWZRD_FEE_PAYER } from "./payto.js";
10
10
  export { classifyNetwork, decideUnsupportedNetwork, amountBucket, } from "./network.js";
11
11
  export { fetchMerchantCard, applyWashFlaggedPolicy, } from "./merchant-card.js";
12
12
  export { twzrdOnPaymentRequested } from "./mcp-hook.js";
@@ -14,6 +14,8 @@ export { wrapFetchWithTwzrdGate } from "./wrap-fetch.js";
14
14
  export { evaluate_x402_resource, } from "./evaluate.js";
15
15
  export { withTwzrdGuard } from "./with-guard.js";
16
16
  export { installTwzrdAutoGate, uninstallTwzrdAutoGate, isTwzrdAutoGateDisabled, } from "./auto-gate.js";
17
+ export { TWZRD_TRUST_GATE_BLOCK_WASH, TWZRD_TRUST_GATE_BLOCK_CAN_SPEND, TWZRD_TRUST_GATE_BLOCK_DECISION, toTrustGateBlockReason, } from "./trust-gate-reason.js";
18
+ export { AUTOGATE_BLOCK_PROOF_SCHEMA, buildAutogateBlockProof, } from "./block-proof.js";
17
19
  export { safeFetch, runAgentcashFetch, main as safeFetchMain, } from "./safe-fetch.js";
18
20
  export { installTwzrdX402ClientHook, twzrdBeforePaymentCreation, } from "./x402-client-hook.js";
19
21
  export { runGateAdoptionProof, main as adoptionProofMain, ADOPTION_TRANSCRIPT_SCHEMA, ADOPTION_PROOF_SELLER, ADOPTION_PROOF_NETWORK, ADOPTION_PROOF_RESOURCE, } from "./adoption-proof.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,qFAAqF;AACrF,uFAAuF;AACvF,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,aAAa,EAAgC,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,YAAY,GAKb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GAIvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAA0B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GAOxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,IAAI,IAAI,aAAa,GAGtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAO3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,IAAI,IAAI,iBAAiB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,GAMxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,GAGzB,MAAM,gBAAgB,CAAC;AAexB,uEAAuE;AACvE,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,GAQxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,cAAc,GAOf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAIzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GAMnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC;AAC3B,wEAAwE;AACxE,yFAAyF;AACzF,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,gBAAgB,EAChB,mBAAmB,GAQpB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,qFAAqF;AACrF,uFAAuF;AACvF,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,aAAa,EAAgC,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,YAAY,GAKb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GAIvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAA0B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GAOxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAGxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,IAAI,IAAI,aAAa,GAGtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAO3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,IAAI,IAAI,iBAAiB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,GAMxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,GAGzB,MAAM,gBAAgB,CAAC;AAexB,uEAAuE;AACvE,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,GAQxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,cAAc,GAOf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAIzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GAMnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC;AAC3B,wEAAwE;AACxE,yFAAyF;AACzF,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,gBAAgB,EAChB,mBAAmB,GAQpB,MAAM,kBAAkB,CAAC"}
package/dist/payto.d.ts CHANGED
@@ -4,7 +4,15 @@ import type { X402PaymentRequirements } from "./types.js";
4
4
  * Prefers the Solana-network entry when multiple networks are listed
5
5
  * (e.g. CDP 402 bodies list EVM first, Solana second).
6
6
  */
7
- export declare function pickRequirements(accepts?: Array<Record<string, unknown>>): X402PaymentRequirements;
7
+ /**
8
+ * TWZRD's own facilitator fee payer (== its GET /supported feePayer). Exported so
9
+ * a caller can pass `preferFeePayer: TWZRD_FEE_PAYER`, or set the env alias
10
+ * `TWZRD_PREFER_FEE_PAYER=twzrd`.
11
+ */
12
+ export declare const TWZRD_FEE_PAYER = "4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE";
13
+ export declare function pickRequirements(accepts?: Array<Record<string, unknown>>, opts?: {
14
+ preferFeePayer?: string;
15
+ }): X402PaymentRequirements;
8
16
  export declare function payToFromRequirements(req: X402PaymentRequirements): {
9
17
  payTo: string | undefined;
10
18
  amountMicro: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"payto.d.ts","sourceRoot":"","sources":["../src/payto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,uBAAuB,CAYzB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,GAAG;IACnE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAIA;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,MAAM,GAAG,SAAS,CAKpB"}
1
+ {"version":3,"file":"payto.d.ts","sourceRoot":"","sources":["../src/payto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,eAAe,iDACoB,CAAC;AAuBjD,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,uBAAuB,CAyBzB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,GAAG;IACnE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAIA;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,MAAM,GAAG,SAAS,CAKpB"}
package/dist/payto.js CHANGED
@@ -3,7 +3,32 @@
3
3
  * Prefers the Solana-network entry when multiple networks are listed
4
4
  * (e.g. CDP 402 bodies list EVM first, Solana second).
5
5
  */
6
- export function pickRequirements(accepts) {
6
+ /**
7
+ * TWZRD's own facilitator fee payer (== its GET /supported feePayer). Exported so
8
+ * a caller can pass `preferFeePayer: TWZRD_FEE_PAYER`, or set the env alias
9
+ * `TWZRD_PREFER_FEE_PAYER=twzrd`.
10
+ */
11
+ export const TWZRD_FEE_PAYER = "4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE";
12
+ function feePayerOf(e) {
13
+ const extra = e.extra;
14
+ const fp = extra?.feePayer ?? e.feePayer;
15
+ return typeof fp === "string" ? fp : undefined;
16
+ }
17
+ /**
18
+ * Resolve the preferred fee payer: explicit option first, then the
19
+ * `TWZRD_PREFER_FEE_PAYER` env var (the literal alias `twzrd` maps to
20
+ * `TWZRD_FEE_PAYER`), else none.
21
+ */
22
+ function resolvePreferFeePayer(explicit) {
23
+ const raw = explicit ??
24
+ (typeof process !== "undefined"
25
+ ? process.env?.TWZRD_PREFER_FEE_PAYER
26
+ : undefined);
27
+ if (!raw)
28
+ return undefined;
29
+ return raw.toLowerCase() === "twzrd" ? TWZRD_FEE_PAYER : raw;
30
+ }
31
+ export function pickRequirements(accepts, opts) {
7
32
  const list = accepts ?? [];
8
33
  const isSolana = (e) => String(e.network ?? "").toLowerCase().includes("solana");
9
34
  // Prefer mainnet: bare "solana", "mainnet" substring, or CAIP-2 with mainnet genesis prefix.
@@ -11,6 +36,18 @@ export function pickRequirements(accepts) {
11
36
  const n = String(e.network ?? "").toLowerCase();
12
37
  return n === "solana" || n.includes("mainnet") || n.includes("5eykt4");
13
38
  };
39
+ // Fee-payer preference (W2): when a seller multi-lists facilitators in accepts[]
40
+ // (e.g. Dexter + TWZRD), route settlement to the preferred fee payer by SELECTING
41
+ // the matching entry the seller already offers. This never adds, rewrites, or
42
+ // forces an accepts entry onto the seller's 402 — if no offered entry matches, it
43
+ // falls through to the normal network preference below. Only applies within
44
+ // Solana mainnet, where the preferred fee payer is valid.
45
+ const prefer = resolvePreferFeePayer(opts?.preferFeePayer);
46
+ if (prefer) {
47
+ const preferred = list.find((e) => isSolana(e) && isMainnet(e) && feePayerOf(e) === prefer);
48
+ if (preferred)
49
+ return preferred;
50
+ }
14
51
  const solanaMainnet = list.find((e) => isSolana(e) && isMainnet(e));
15
52
  const solanaAny = list.find(isSolana);
16
53
  return (solanaMainnet ?? solanaAny ?? list[0] ?? {});
package/dist/payto.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"payto.js","sourceRoot":"","sources":["../src/payto.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAwC;IAExC,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,CAAC,CAA0B,EAAE,EAAE,CAC9C,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,6FAA6F;IAC7F,MAAM,SAAS,GAAG,CAAC,CAA0B,EAAE,EAAE;QAC/C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,CAAC,aAAa,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAA4B;IAKhE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC;IACtC,MAAM,WAAW,GAAG,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,WAA+B;IAE/B,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,CAAC,GAAG,SAAS,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"payto.js","sourceRoot":"","sources":["../src/payto.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAY1E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAEnB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,kBAAkB,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAgCrF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAYrF;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,CAAC,EAAE,uBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAoJ9B"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAY1E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAEnB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,kBAAkB,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAgCrF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAYrF;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,CAAC,EAAE,uBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAoC7B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAoJ9B"}
package/dist/policy.js CHANGED
@@ -51,13 +51,21 @@ export function buildPreflightInput(context) {
51
51
  }
52
52
  export async function twzrdPreflight(input, config) {
53
53
  const cfg = config ?? resolveConfig();
54
- // Attribution headers are stamped ONLY on this preflight request (never on the
55
- // paid /v1/intel/trust call or the resource fetch). Correlation evidence only.
56
- const headers = { "content-type": "application/json" };
54
+ // Seat identity is ALWAYS stamped on preflight (fork-1 metric: gate installs
55
+ // that hit intel). Paid /trust and resource fetch never get these headers.
56
+ // Opt-in attribution (integration+runId) adds correlatable run IDs on top.
57
+ const clientTag = `twzrd-x402-gate/${CLIENT_VERSION}`;
58
+ const headers = {
59
+ "content-type": "application/json",
60
+ "X-TWZRD-Client": clientTag,
61
+ // Maps to preflight_requests.caller_id (intel server). Default seat label.
62
+ "X-Twzrd-Caller": clientTag,
63
+ };
57
64
  if (cfg.attribution) {
58
65
  headers["X-TWZRD-Integration"] = cfg.attribution.integration;
59
66
  headers["X-TWZRD-Run-Id"] = cfg.attribution.runId;
60
- headers["X-TWZRD-Client"] = `twzrd-x402-gate/${CLIENT_VERSION}`;
67
+ // Prefer explicit integration as caller when provided (e.g. partner name).
68
+ headers["X-Twzrd-Caller"] = `${cfg.attribution.integration}@${CLIENT_VERSION}`;
61
69
  }
62
70
  const resp = await cfg.fetch(`${cfg.intelBase}/v1/intel/preflight`, {
63
71
  method: "POST",
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Stable public reason codes for AutoGate intercept transcripts and logs.
3
+ *
4
+ * Internal policy still uses `twzrd_wash_flagged` etc. (tests + wire history).
5
+ * Map to these strings when emitting operator-facing proof artifacts so docs
6
+ * and cold-agent guides stay consistent.
7
+ */
8
+ /** Canonical wash-refuse code for block-proof transcripts. */
9
+ export declare const TWZRD_TRUST_GATE_BLOCK_WASH = "TWZRD_TRUST_GATE_BLOCK: wash_flagged";
10
+ export declare const TWZRD_TRUST_GATE_BLOCK_CAN_SPEND = "TWZRD_TRUST_GATE_BLOCK: can_spend_false";
11
+ export declare const TWZRD_TRUST_GATE_BLOCK_DECISION = "TWZRD_TRUST_GATE_BLOCK: decision_block";
12
+ /**
13
+ * Map an internal `approval.reason` (or hook abort reason fragment) to a stable
14
+ * public block code. Unknown reasons are namespaced, not dropped.
15
+ */
16
+ export declare function toTrustGateBlockReason(internalReason: string): string;
17
+ //# sourceMappingURL=trust-gate-reason.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-gate-reason.d.ts","sourceRoot":"","sources":["../src/trust-gate-reason.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,2BAA2B,yCAAyC,CAAC;AAElF,eAAO,MAAM,gCAAgC,4CACF,CAAC;AAE5C,eAAO,MAAM,+BAA+B,2CACF,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAsBrE"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Stable public reason codes for AutoGate intercept transcripts and logs.
3
+ *
4
+ * Internal policy still uses `twzrd_wash_flagged` etc. (tests + wire history).
5
+ * Map to these strings when emitting operator-facing proof artifacts so docs
6
+ * and cold-agent guides stay consistent.
7
+ */
8
+ /** Canonical wash-refuse code for block-proof transcripts. */
9
+ export const TWZRD_TRUST_GATE_BLOCK_WASH = "TWZRD_TRUST_GATE_BLOCK: wash_flagged";
10
+ export const TWZRD_TRUST_GATE_BLOCK_CAN_SPEND = "TWZRD_TRUST_GATE_BLOCK: can_spend_false";
11
+ export const TWZRD_TRUST_GATE_BLOCK_DECISION = "TWZRD_TRUST_GATE_BLOCK: decision_block";
12
+ /**
13
+ * Map an internal `approval.reason` (or hook abort reason fragment) to a stable
14
+ * public block code. Unknown reasons are namespaced, not dropped.
15
+ */
16
+ export function toTrustGateBlockReason(internalReason) {
17
+ const r = (internalReason || "").trim();
18
+ // Strip optional `[twzrd] ` prefix from x402 hook abort strings.
19
+ const core = r.replace(/^\[twzrd\]\s*/i, "").split(/\s+payTo=/)[0] ?? r;
20
+ if (core === "twzrd_wash_flagged" ||
21
+ core.startsWith("twzrd_wash_flagged_above_cap") ||
22
+ core.startsWith("twzrd_wash_flagged_")) {
23
+ return TWZRD_TRUST_GATE_BLOCK_WASH;
24
+ }
25
+ if (core === "twzrd_can_spend_false") {
26
+ return TWZRD_TRUST_GATE_BLOCK_CAN_SPEND;
27
+ }
28
+ if (core === "twzrd_decision_block" || core.startsWith("twzrd_decision_block")) {
29
+ return TWZRD_TRUST_GATE_BLOCK_DECISION;
30
+ }
31
+ if (core.startsWith("TWZRD_TRUST_GATE_BLOCK:")) {
32
+ return core;
33
+ }
34
+ return `TWZRD_TRUST_GATE_BLOCK: ${core || "unknown"}`;
35
+ }
36
+ //# sourceMappingURL=trust-gate-reason.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-gate-reason.js","sourceRoot":"","sources":["../src/trust-gate-reason.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,2BAA2B,GAAG,sCAAsC,CAAC;AAElF,MAAM,CAAC,MAAM,gCAAgC,GAC3C,yCAAyC,CAAC;AAE5C,MAAM,CAAC,MAAM,+BAA+B,GAC1C,wCAAwC,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,cAAsB;IAC3D,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,iEAAiE;IACjE,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAExE,IACE,IAAI,KAAK,oBAAoB;QAC7B,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EACtC,CAAC;QACD,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACrC,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC/E,OAAO,+BAA+B,CAAC;IACzC,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,2BAA2B,IAAI,IAAI,SAAS,EAAE,CAAC;AACxD,CAAC"}
package/dist/types.d.ts CHANGED
@@ -80,16 +80,14 @@ export type TwzrdGateConfig = {
80
80
  */
81
81
  onWarnUpsell?: (ctx: TwzrdUpsellContext) => void | Promise<void>;
82
82
  /**
83
- * Opt-in run attribution. When set, the gate stamps the TWZRD *preflight*
84
- * request (and no other request) with correlation headers so an integrator's
85
- * run can be matched to a server-observed preflight:
86
- * X-TWZRD-Integration: <integration>
87
- * X-TWZRD-Run-Id: <runId>
88
- * X-TWZRD-Client: twzrd-x402-gate/<version>
89
- * This is correlation evidence, not proof of adoption — the runId is
90
- * caller-supplied and spoofable. A run only counts when the same runId appears
91
- * in the integrator's own transcript AND is observed server-side from
92
- * non-internal lineage. No PII, secrets, or payload is added.
83
+ * Optional run attribution (integration + runId). Preflight ALWAYS stamps
84
+ * seat identity (fork-1 metric):
85
+ * X-TWZRD-Client: twzrd-x402-gate/<version>
86
+ * X-Twzrd-Caller: twzrd-x402-gate/<version>
87
+ * When this pair is set, also:
88
+ * X-TWZRD-Integration / X-TWZRD-Run-Id
89
+ * X-Twzrd-Caller: <integration>@<version>
90
+ * runId is caller-supplied and spoofable — pair with server-side observation.
93
91
  */
94
92
  attribution?: {
95
93
  /** Stable integration label, e.g. "payai-x402-solana-pr38". */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "twzrd-x402-gate",
3
- "version": "0.8.3",
4
- "description": "Core: buyer-side x402 trust gate. Free TWZRD preflight (ReadinessCard) before signing USDC to any merchant, with optional $0.001 paid trust escalate on warn — blocking spend on bad intel, no human in the loop. Optional: createTwzrdSettleGuard for resource servers to apply merchant policy on the payer before settle+serve. installTwzrdAutoGate is the canonical default-on entry across fetch payWrap, x402 client (onBeforePaymentCreation), and MPP onChallenge. Fail-closed by default — set TWZRD_FAIL_OPEN=true for outage allow; kill switch TWZRD_GATE_ENABLED=false or TWZRD_AUTO_GATE=0.",
3
+ "version": "0.8.5",
4
+ "description": "Core: buyer-side x402 trust gate. Free TWZRD preflight (ReadinessCard) before signing USDC to any merchant, with optional $0.001 paid trust escalate on warn — blocking spend on bad intel, no human in the loop. Optional: createTwzrdSettleGuard for resource servers to apply merchant policy on the payer before settle+serve. installTwzrdAutoGate is the canonical default-on entry across fetch payWrap, x402 client (onBeforePaymentCreation), and MPP onChallenge. Fail-closed by default — set TWZRD_FAIL_OPEN=true for outage allow; kill switch TWZRD_GATE_ENABLED=false or TWZRD_AUTO_GATE=0. Always stamps X-Twzrd-Caller for seat metrics.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -28,13 +28,14 @@
28
28
  "build": "tsc",
29
29
  "prepublishOnly": "tsc",
30
30
  "typecheck": "tsc --noEmit -p tsconfig.check.json",
31
- "test": "tsx test/version-identity.test.ts && tsx test/policy.test.ts && tsx test/wrap-fetch.test.ts && tsx test/mcp-hook.test.ts && tsx test/attribution.test.ts && tsx test/auto-receipt.test.ts && tsx test/quick.test.ts && tsx test/sponsored.test.ts && tsx test/escalation.test.ts && tsx test/wash-refuse.test.ts && tsx test/auto-gate.test.ts && tsx test/network.test.ts && tsx test/safe-fetch.test.ts && tsx test/challenge-swap.test.ts && tsx test/x402-client-hook.test.ts && tsx test/hook-single-eval.test.ts && tsx test/run-attribution.test.ts && tsx test/payment-control.test.ts && tsx test/intent-binding.test.ts && tsx test/mpp-hook.test.ts && tsx test/mpp-safety.test.ts && tsx test/payment-control-followup.test.ts && tsx test/payment-control-hardening.test.ts && tsx test/x402-official-compat.test.ts && tsx test/seller-hook.test.ts && tsx test/adoption-proof.test.ts",
31
+ "test": "tsx test/version-identity.test.ts && tsx test/policy.test.ts && tsx test/wrap-fetch.test.ts && tsx test/mcp-hook.test.ts && tsx test/attribution.test.ts && tsx test/auto-receipt.test.ts && tsx test/quick.test.ts && tsx test/sponsored.test.ts && tsx test/escalation.test.ts && tsx test/wash-refuse.test.ts && tsx test/auto-gate.test.ts && tsx test/autogate-intercept.test.ts && tsx test/network.test.ts && tsx test/safe-fetch.test.ts && tsx test/payto-prefer.test.ts && tsx test/challenge-swap.test.ts && tsx test/x402-client-hook.test.ts && tsx test/hook-single-eval.test.ts && tsx test/run-attribution.test.ts && tsx test/payment-control.test.ts && tsx test/intent-binding.test.ts && tsx test/mpp-hook.test.ts && tsx test/mpp-safety.test.ts && tsx test/payment-control-followup.test.ts && tsx test/payment-control-hardening.test.ts && tsx test/x402-official-compat.test.ts && tsx test/seller-hook.test.ts && tsx test/adoption-proof.test.ts",
32
32
  "pack-smoke": "node scripts/pack-smoke.mjs",
33
33
  "safe-fetch": "tsx src/safe-fetch.ts",
34
34
  "guard-demo": "tsx examples/agentic-market-gate.ts",
35
35
  "autoreceipt-demo": "tsx examples/auto-receipt.ts --dry-run",
36
36
  "sponsored-demo": "tsx examples/sponsored-payer.ts --dry-run",
37
37
  "wash-dogfood": "tsx examples/wash-refuse-dogfood.ts",
38
+ "autogate-block-proof": "tsx examples/autogate-block-proof.ts",
38
39
  "official-dogfood": "tsx examples/official-x402-dogfood.ts",
39
40
  "adoption-proof": "tsx src/adoption-proof.ts",
40
41
  "demo:buyer-no-spend": "tsx src/adoption-proof.ts -- --integration ops-demo-buyer-no-spend"
@@ -93,10 +94,10 @@
93
94
  "@scure/base": "^1.2.0",
94
95
  "@solana/kit": "^5.1.0",
95
96
  "@types/node": "^20.11.0",
96
- "@x402/core": "^2.17.0",
97
- "@x402/fetch": "^2.17.0",
98
- "@x402/svm": "^2.17.0",
99
- "tsx": "^4.7.0",
97
+ "@x402/core": "^2.19.0",
98
+ "@x402/fetch": "^2.19.0",
99
+ "@x402/svm": "^2.19.0",
100
+ "tsx": "^4.23.1",
100
101
  "typescript": "^5.4.0"
101
102
  }
102
103
  }