@absol-labs/agent 0.10.0 → 0.12.0-rc.1

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.
Files changed (331) hide show
  1. package/README.md +106 -30
  2. package/dist/capability/invocation-capability.d.ts +20 -8
  3. package/dist/capability/invocation-capability.d.ts.map +1 -1
  4. package/dist/capability/invocation-capability.js.map +1 -1
  5. package/dist/capability/probe-capability.d.ts +225 -0
  6. package/dist/capability/probe-capability.d.ts.map +1 -0
  7. package/dist/capability/probe-capability.js +248 -0
  8. package/dist/capability/probe-capability.js.map +1 -0
  9. package/dist/cli/args.d.ts +11 -0
  10. package/dist/cli/args.d.ts.map +1 -1
  11. package/dist/cli/args.js +23 -0
  12. package/dist/cli/args.js.map +1 -1
  13. package/dist/cli/commands/claim.d.ts.map +1 -1
  14. package/dist/cli/commands/claim.js +21 -5
  15. package/dist/cli/commands/claim.js.map +1 -1
  16. package/dist/cli/commands/close.d.ts.map +1 -1
  17. package/dist/cli/commands/close.js +51 -7
  18. package/dist/cli/commands/close.js.map +1 -1
  19. package/dist/cli/commands/invoke.d.ts +2 -0
  20. package/dist/cli/commands/invoke.d.ts.map +1 -1
  21. package/dist/cli/commands/invoke.js +3 -2
  22. package/dist/cli/commands/invoke.js.map +1 -1
  23. package/dist/cli/commands/mcp.d.ts.map +1 -1
  24. package/dist/cli/commands/mcp.js +15 -2
  25. package/dist/cli/commands/mcp.js.map +1 -1
  26. package/dist/cli/commands/open.d.ts.map +1 -1
  27. package/dist/cli/commands/open.js +121 -15
  28. package/dist/cli/commands/open.js.map +1 -1
  29. package/dist/cli/commands/pay.d.ts +19 -0
  30. package/dist/cli/commands/pay.d.ts.map +1 -0
  31. package/dist/cli/commands/pay.js +355 -0
  32. package/dist/cli/commands/pay.js.map +1 -0
  33. package/dist/cli/commands/reclaim-unverified.d.ts.map +1 -1
  34. package/dist/cli/commands/reclaim-unverified.js +15 -6
  35. package/dist/cli/commands/reclaim-unverified.js.map +1 -1
  36. package/dist/cli/commands/reclaim.d.ts +23 -2
  37. package/dist/cli/commands/reclaim.d.ts.map +1 -1
  38. package/dist/cli/commands/reclaim.js +200 -21
  39. package/dist/cli/commands/reclaim.js.map +1 -1
  40. package/dist/cli/commands/refund.d.ts +13 -0
  41. package/dist/cli/commands/refund.d.ts.map +1 -0
  42. package/dist/cli/commands/refund.js +224 -0
  43. package/dist/cli/commands/refund.js.map +1 -0
  44. package/dist/cli/commands/status.d.ts.map +1 -1
  45. package/dist/cli/commands/status.js +10 -1
  46. package/dist/cli/commands/status.js.map +1 -1
  47. package/dist/cli/commands/streams.js +9 -13
  48. package/dist/cli/commands/streams.js.map +1 -1
  49. package/dist/cli/commands/watch.d.ts.map +1 -1
  50. package/dist/cli/commands/watch.js +2 -1
  51. package/dist/cli/commands/watch.js.map +1 -1
  52. package/dist/cli/config.d.ts +44 -26
  53. package/dist/cli/config.d.ts.map +1 -1
  54. package/dist/cli/config.js +88 -38
  55. package/dist/cli/config.js.map +1 -1
  56. package/dist/cli/deps.d.ts +86 -7
  57. package/dist/cli/deps.d.ts.map +1 -1
  58. package/dist/cli/deps.js +102 -16
  59. package/dist/cli/deps.js.map +1 -1
  60. package/dist/cli/errors.d.ts.map +1 -1
  61. package/dist/cli/errors.js +21 -1
  62. package/dist/cli/errors.js.map +1 -1
  63. package/dist/cli/escape-hatch.d.ts +6 -4
  64. package/dist/cli/escape-hatch.d.ts.map +1 -1
  65. package/dist/cli/escape-hatch.js +6 -2
  66. package/dist/cli/escape-hatch.js.map +1 -1
  67. package/dist/cli/listings.d.ts +18 -0
  68. package/dist/cli/listings.d.ts.map +1 -1
  69. package/dist/cli/listings.js +22 -12
  70. package/dist/cli/listings.js.map +1 -1
  71. package/dist/cli/preflight.d.ts +20 -14
  72. package/dist/cli/preflight.d.ts.map +1 -1
  73. package/dist/cli/preflight.js +34 -20
  74. package/dist/cli/preflight.js.map +1 -1
  75. package/dist/cli/privy.d.ts +83 -0
  76. package/dist/cli/privy.d.ts.map +1 -0
  77. package/dist/cli/privy.js +232 -0
  78. package/dist/cli/privy.js.map +1 -0
  79. package/dist/cli/reclaimability.d.ts +82 -0
  80. package/dist/cli/reclaimability.d.ts.map +1 -0
  81. package/dist/cli/reclaimability.js +80 -0
  82. package/dist/cli/reclaimability.js.map +1 -0
  83. package/dist/cli/run.d.ts +2 -1
  84. package/dist/cli/run.d.ts.map +1 -1
  85. package/dist/cli/run.js +40 -11
  86. package/dist/cli/run.js.map +1 -1
  87. package/dist/cli/scan-range.d.ts +2 -2
  88. package/dist/cli/scan-range.js +2 -2
  89. package/dist/cli/spend-policy.d.ts +60 -0
  90. package/dist/cli/spend-policy.d.ts.map +1 -0
  91. package/dist/cli/spend-policy.js +65 -0
  92. package/dist/cli/spend-policy.js.map +1 -0
  93. package/dist/cli/status.d.ts +3 -1
  94. package/dist/cli/status.d.ts.map +1 -1
  95. package/dist/cli/status.js +15 -3
  96. package/dist/cli/status.js.map +1 -1
  97. package/dist/cli/wallet.d.ts +109 -40
  98. package/dist/cli/wallet.d.ts.map +1 -1
  99. package/dist/cli/wallet.js +109 -44
  100. package/dist/cli/wallet.js.map +1 -1
  101. package/dist/discovery/rate-band.d.ts +74 -0
  102. package/dist/discovery/rate-band.d.ts.map +1 -0
  103. package/dist/discovery/rate-band.js +114 -0
  104. package/dist/discovery/rate-band.js.map +1 -0
  105. package/dist/escrow-generation.d.ts +81 -0
  106. package/dist/escrow-generation.d.ts.map +1 -0
  107. package/dist/escrow-generation.js +76 -0
  108. package/dist/escrow-generation.js.map +1 -0
  109. package/dist/frameworks/agentkit.d.ts +8 -4
  110. package/dist/frameworks/agentkit.d.ts.map +1 -1
  111. package/dist/frameworks/agentkit.js +27 -10
  112. package/dist/frameworks/agentkit.js.map +1 -1
  113. package/dist/frameworks/eliza.d.ts +3 -3
  114. package/dist/frameworks/eliza.d.ts.map +1 -1
  115. package/dist/frameworks/eliza.js +15 -6
  116. package/dist/frameworks/eliza.js.map +1 -1
  117. package/dist/frameworks/langchain.d.ts.map +1 -1
  118. package/dist/frameworks/langchain.js +8 -0
  119. package/dist/frameworks/langchain.js.map +1 -1
  120. package/dist/gateway/caller-auth-gateway.d.ts +91 -4
  121. package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
  122. package/dist/gateway/caller-auth-gateway.js +184 -7
  123. package/dist/gateway/caller-auth-gateway.js.map +1 -1
  124. package/dist/gateway/http-server.d.ts +121 -1
  125. package/dist/gateway/http-server.d.ts.map +1 -1
  126. package/dist/gateway/http-server.js +474 -5
  127. package/dist/gateway/http-server.js.map +1 -1
  128. package/dist/gateway/probe-auth.d.ts +112 -0
  129. package/dist/gateway/probe-auth.d.ts.map +1 -0
  130. package/dist/gateway/probe-auth.js +127 -0
  131. package/dist/gateway/probe-auth.js.map +1 -0
  132. package/dist/gateway/signed-rate-bounds.d.ts +51 -0
  133. package/dist/gateway/signed-rate-bounds.d.ts.map +1 -0
  134. package/dist/gateway/signed-rate-bounds.js +94 -0
  135. package/dist/gateway/signed-rate-bounds.js.map +1 -0
  136. package/dist/gateway/x402-opener-mode.d.ts +215 -0
  137. package/dist/gateway/x402-opener-mode.d.ts.map +1 -0
  138. package/dist/gateway/x402-opener-mode.js +639 -0
  139. package/dist/gateway/x402-opener-mode.js.map +1 -0
  140. package/dist/index.d.ts +11 -5
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +15 -5
  143. package/dist/index.js.map +1 -1
  144. package/dist/mandates/env.d.ts +3 -2
  145. package/dist/mandates/env.d.ts.map +1 -1
  146. package/dist/mandates/env.js +3 -2
  147. package/dist/mandates/env.js.map +1 -1
  148. package/dist/mcp/server.d.ts +100 -0
  149. package/dist/mcp/server.d.ts.map +1 -1
  150. package/dist/mcp/server.js +719 -39
  151. package/dist/mcp/server.js.map +1 -1
  152. package/dist/mcp/service-invoker.d.ts +97 -0
  153. package/dist/mcp/service-invoker.d.ts.map +1 -0
  154. package/dist/mcp/service-invoker.js +167 -0
  155. package/dist/mcp/service-invoker.js.map +1 -0
  156. package/dist/mcp/x402-tools.d.ts +104 -0
  157. package/dist/mcp/x402-tools.d.ts.map +1 -0
  158. package/dist/mcp/x402-tools.js +434 -0
  159. package/dist/mcp/x402-tools.js.map +1 -0
  160. package/dist/network.d.ts +119 -0
  161. package/dist/network.d.ts.map +1 -0
  162. package/dist/network.js +199 -0
  163. package/dist/network.js.map +1 -0
  164. package/dist/sdk/invoke.d.ts +23 -4
  165. package/dist/sdk/invoke.d.ts.map +1 -1
  166. package/dist/sdk/invoke.js +71 -10
  167. package/dist/sdk/invoke.js.map +1 -1
  168. package/dist/wallet/autonomous-wallet-broker.d.ts +3 -0
  169. package/dist/wallet/autonomous-wallet-broker.d.ts.map +1 -1
  170. package/dist/wallet/autonomous-wallet-broker.js +27 -23
  171. package/dist/wallet/autonomous-wallet-broker.js.map +1 -1
  172. package/dist/wallet/autonomous-wallet-protocol.d.ts +8 -2
  173. package/dist/wallet/autonomous-wallet-protocol.d.ts.map +1 -1
  174. package/dist/wallet/autonomous-wallet-protocol.js +9 -2
  175. package/dist/wallet/autonomous-wallet-protocol.js.map +1 -1
  176. package/dist/wallet/autonomous-wallet.d.ts.map +1 -1
  177. package/dist/wallet/autonomous-wallet.js +3 -2
  178. package/dist/wallet/autonomous-wallet.js.map +1 -1
  179. package/dist/wallet/broker-escrows.d.ts +222 -0
  180. package/dist/wallet/broker-escrows.d.ts.map +1 -0
  181. package/dist/wallet/broker-escrows.js +36 -0
  182. package/dist/wallet/broker-escrows.js.map +1 -0
  183. package/dist/wallet/lifecycle.d.ts +21 -5
  184. package/dist/wallet/lifecycle.d.ts.map +1 -1
  185. package/dist/wallet/lifecycle.js +32 -12
  186. package/dist/wallet/lifecycle.js.map +1 -1
  187. package/dist/wallet/privy-broker-server.d.ts.map +1 -1
  188. package/dist/wallet/privy-broker-server.js +31 -26
  189. package/dist/wallet/privy-broker-server.js.map +1 -1
  190. package/dist/wallet/privy-session-broker.d.ts +14 -5
  191. package/dist/wallet/privy-session-broker.d.ts.map +1 -1
  192. package/dist/wallet/privy-session-broker.js +29 -17
  193. package/dist/wallet/privy-session-broker.js.map +1 -1
  194. package/dist/wallet/privy-session-provider.d.ts +3 -1
  195. package/dist/wallet/privy-session-provider.d.ts.map +1 -1
  196. package/dist/wallet/privy-session-provider.js +5 -3
  197. package/dist/wallet/privy-session-provider.js.map +1 -1
  198. package/dist/wallet/provider.d.ts.map +1 -1
  199. package/dist/wallet/provider.js +15 -8
  200. package/dist/wallet/provider.js.map +1 -1
  201. package/dist/x402/facilitator.d.ts +42 -17
  202. package/dist/x402/facilitator.d.ts.map +1 -1
  203. package/dist/x402/facilitator.js +49 -33
  204. package/dist/x402/facilitator.js.map +1 -1
  205. package/dist/x402-buyer/guarded-fetch.d.ts +51 -0
  206. package/dist/x402-buyer/guarded-fetch.d.ts.map +1 -0
  207. package/dist/x402-buyer/guarded-fetch.js +147 -0
  208. package/dist/x402-buyer/guarded-fetch.js.map +1 -0
  209. package/dist/x402-buyer/index.d.ts +10 -0
  210. package/dist/x402-buyer/index.d.ts.map +1 -0
  211. package/dist/x402-buyer/index.js +10 -0
  212. package/dist/x402-buyer/index.js.map +1 -0
  213. package/dist/x402-buyer/pay.d.ts +135 -0
  214. package/dist/x402-buyer/pay.d.ts.map +1 -0
  215. package/dist/x402-buyer/pay.js +336 -0
  216. package/dist/x402-buyer/pay.js.map +1 -0
  217. package/dist/x402-opener/abi.d.ts +684 -0
  218. package/dist/x402-opener/abi.d.ts.map +1 -0
  219. package/dist/x402-opener/abi.js +880 -0
  220. package/dist/x402-opener/abi.js.map +1 -0
  221. package/dist/x402-opener/facilitator-entry.d.ts +3 -0
  222. package/dist/x402-opener/facilitator-entry.d.ts.map +1 -0
  223. package/dist/x402-opener/facilitator-entry.js +37 -0
  224. package/dist/x402-opener/facilitator-entry.js.map +1 -0
  225. package/dist/x402-opener/facilitator-server.d.ts +180 -0
  226. package/dist/x402-opener/facilitator-server.d.ts.map +1 -0
  227. package/dist/x402-opener/facilitator-server.js +696 -0
  228. package/dist/x402-opener/facilitator-server.js.map +1 -0
  229. package/dist/x402-opener/index.d.ts +14 -0
  230. package/dist/x402-opener/index.d.ts.map +1 -0
  231. package/dist/x402-opener/index.js +14 -0
  232. package/dist/x402-opener/index.js.map +1 -0
  233. package/dist/x402-opener/listing-resolver.d.ts +55 -0
  234. package/dist/x402-opener/listing-resolver.d.ts.map +1 -0
  235. package/dist/x402-opener/listing-resolver.js +125 -0
  236. package/dist/x402-opener/listing-resolver.js.map +1 -0
  237. package/dist/x402-opener/refund-relay.d.ts +240 -0
  238. package/dist/x402-opener/refund-relay.d.ts.map +1 -0
  239. package/dist/x402-opener/refund-relay.js +1240 -0
  240. package/dist/x402-opener/refund-relay.js.map +1 -0
  241. package/dist/x402-opener/relayer-queue.d.ts +14 -0
  242. package/dist/x402-opener/relayer-queue.d.ts.map +1 -0
  243. package/dist/x402-opener/relayer-queue.js +18 -0
  244. package/dist/x402-opener/relayer-queue.js.map +1 -0
  245. package/dist/x402-opener/scheme.d.ts +217 -0
  246. package/dist/x402-opener/scheme.d.ts.map +1 -0
  247. package/dist/x402-opener/scheme.js +749 -0
  248. package/dist/x402-opener/scheme.js.map +1 -0
  249. package/dist/x402-opener/terms.d.ts +105 -0
  250. package/dist/x402-opener/terms.d.ts.map +1 -0
  251. package/dist/x402-opener/terms.js +212 -0
  252. package/dist/x402-opener/terms.js.map +1 -0
  253. package/dist/zktls/reclaim.d.ts +2 -2
  254. package/docs/agent-layer.md +13 -8
  255. package/docs/autonomous-privy-wallet.md +188 -0
  256. package/docs/cli.md +342 -53
  257. package/docs/langchain.md +5 -0
  258. package/docs/mcp-hosted.md +4 -3
  259. package/docs/mcp-reference.md +245 -0
  260. package/docs/probe-capability.md +191 -0
  261. package/docs/quickstart.md +54 -5
  262. package/docs/threat-model.md +24 -3
  263. package/docs/x402.md +681 -0
  264. package/package.json +19 -6
  265. package/src/capability/invocation-capability.ts +17 -1
  266. package/src/capability/probe-capability.ts +355 -0
  267. package/src/cli/args.ts +29 -0
  268. package/src/cli/commands/claim.ts +31 -5
  269. package/src/cli/commands/close.ts +56 -7
  270. package/src/cli/commands/invoke.ts +6 -2
  271. package/src/cli/commands/mcp.ts +18 -2
  272. package/src/cli/commands/open.ts +151 -14
  273. package/src/cli/commands/pay.ts +442 -0
  274. package/src/cli/commands/reclaim-unverified.ts +24 -6
  275. package/src/cli/commands/reclaim.ts +274 -19
  276. package/src/cli/commands/refund.ts +277 -0
  277. package/src/cli/commands/status.ts +17 -1
  278. package/src/cli/commands/streams.ts +11 -15
  279. package/src/cli/commands/watch.ts +7 -1
  280. package/src/cli/config.ts +139 -52
  281. package/src/cli/deps.ts +189 -25
  282. package/src/cli/errors.ts +24 -1
  283. package/src/cli/escape-hatch.ts +19 -5
  284. package/src/cli/listings.ts +43 -10
  285. package/src/cli/preflight.ts +36 -21
  286. package/src/cli/privy.ts +398 -0
  287. package/src/cli/reclaimability.ts +154 -0
  288. package/src/cli/run.ts +54 -11
  289. package/src/cli/scan-range.ts +2 -2
  290. package/src/cli/spend-policy.ts +139 -0
  291. package/src/cli/status.ts +14 -1
  292. package/src/cli/wallet.ts +189 -58
  293. package/src/discovery/rate-band.ts +172 -0
  294. package/src/escrow-generation.ts +135 -0
  295. package/src/frameworks/agentkit.ts +45 -11
  296. package/src/frameworks/eliza.ts +27 -5
  297. package/src/frameworks/langchain.ts +14 -0
  298. package/src/gateway/caller-auth-gateway.ts +336 -13
  299. package/src/gateway/http-server.ts +690 -7
  300. package/src/gateway/probe-auth.ts +191 -0
  301. package/src/gateway/signed-rate-bounds.ts +164 -0
  302. package/src/gateway/x402-opener-mode.ts +974 -0
  303. package/src/index.ts +112 -14
  304. package/src/mandates/env.ts +3 -2
  305. package/src/mcp/server.ts +973 -44
  306. package/src/mcp/service-invoker.ts +285 -0
  307. package/src/mcp/x402-tools.ts +621 -0
  308. package/src/network.ts +302 -0
  309. package/src/sdk/invoke.ts +96 -17
  310. package/src/wallet/autonomous-wallet-broker.ts +46 -20
  311. package/src/wallet/autonomous-wallet-protocol.ts +11 -2
  312. package/src/wallet/autonomous-wallet.ts +4 -2
  313. package/src/wallet/broker-escrows.ts +66 -0
  314. package/src/wallet/lifecycle.ts +53 -18
  315. package/src/wallet/privy-broker-server.ts +35 -25
  316. package/src/wallet/privy-session-broker.ts +58 -25
  317. package/src/wallet/privy-session-provider.ts +7 -3
  318. package/src/wallet/provider.ts +20 -15
  319. package/src/x402/facilitator.ts +85 -46
  320. package/src/x402-buyer/guarded-fetch.ts +213 -0
  321. package/src/x402-buyer/index.ts +9 -0
  322. package/src/x402-buyer/pay.ts +517 -0
  323. package/src/x402-opener/abi.ts +881 -0
  324. package/src/x402-opener/facilitator-entry.ts +45 -0
  325. package/src/x402-opener/facilitator-server.ts +1014 -0
  326. package/src/x402-opener/index.ts +13 -0
  327. package/src/x402-opener/listing-resolver.ts +202 -0
  328. package/src/x402-opener/refund-relay.ts +1743 -0
  329. package/src/x402-opener/relayer-queue.ts +18 -0
  330. package/src/x402-opener/scheme.ts +1133 -0
  331. package/src/x402-opener/terms.ts +300 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refund-relay.js","sourceRoot":"","sources":["../../src/x402-opener/refund-relay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Serializes every relayer submission (simulate + broadcast) of one facilitator
3
+ * process, so concurrent requests never race for the relayer account's nonce.
4
+ *
5
+ * The opener scheme (`deployAndSettle`) and the refund relay (`closeWithSig`,
6
+ * `reclaim`, `reclaimUnverifiedWithSig`) share ONE queue when they share one
7
+ * relayer key: two independent queues would reintroduce the race.
8
+ */
9
+ export declare class RelayerQueue {
10
+ private tail;
11
+ /** Runs `task` after every previously queued task settles (success or failure). */
12
+ run<T>(task: () => Promise<T>): Promise<T>;
13
+ }
14
+ //# sourceMappingURL=relayer-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relayer-queue.d.ts","sourceRoot":"","sources":["../../src/x402-opener/relayer-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAuC;IAEnD,mFAAmF;IACnF,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAK3C"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Serializes every relayer submission (simulate + broadcast) of one facilitator
3
+ * process, so concurrent requests never race for the relayer account's nonce.
4
+ *
5
+ * The opener scheme (`deployAndSettle`) and the refund relay (`closeWithSig`,
6
+ * `reclaim`, `reclaimUnverifiedWithSig`) share ONE queue when they share one
7
+ * relayer key: two independent queues would reintroduce the race.
8
+ */
9
+ export class RelayerQueue {
10
+ tail = Promise.resolve();
11
+ /** Runs `task` after every previously queued task settles (success or failure). */
12
+ run(task) {
13
+ const next = this.tail.then(task, task);
14
+ this.tail = next.catch(() => undefined);
15
+ return next;
16
+ }
17
+ }
18
+ //# sourceMappingURL=relayer-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relayer-queue.js","sourceRoot":"","sources":["../../src/x402-opener/relayer-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACf,IAAI,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEnD,mFAAmF;IACnF,GAAG,CAAI,IAAsB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,217 @@
1
+ import type { FacilitatorContext, Network, PaymentPayload, PaymentRequirements, SchemeNetworkFacilitator, SettleResponse, VerifyResponse } from "@x402/core/types";
2
+ import { type Account, type Address, type Chain, type PublicClient, type Transport, type WalletClient } from "viem";
3
+ import type { OperatorSignedListingResolver } from "./listing-resolver.js";
4
+ import { RelayerQueue } from "./relayer-queue.js";
5
+ /**
6
+ * `MetrikOpenerExactScheme` — an x402 v2 `exact` facilitator scheme that
7
+ * settles every payment INTO a `StreamEscrowV2` stream through the ownerless
8
+ * `X402StreamOpenerFactory` (metrik-agent#116, metrik-contracts#48).
9
+ *
10
+ * ## What it composes, and what it refuses
11
+ *
12
+ * Standard `exact` checks (EIP-712 signature, recipient == `payTo`, value ==
13
+ * amount, validity window, asset is a contract, balance / nonce simulation of
14
+ * the transfer) are delegated to the official `@x402/evm` `ExactEvmScheme`
15
+ * verifier, never reimplemented. On top of it, every payment must satisfy:
16
+ *
17
+ * - `assetTransferMethod` is EIP-3009. Permit2 and every other method are
18
+ * refused: the opener only ever pulls an EIP-3009 authorization.
19
+ * - The signature is NOT ERC-6492-wrapped. A counterfactual smart wallet would
20
+ * need a factory deploy the opener cannot perform; refused with a reason.
21
+ * - `asset` is on the allowlist AND is the factory's own settlement token.
22
+ * - `payTo == factory.predict(terms)`, recomputed on-chain from the configured
23
+ * factory for the terms in `extra.metrikStreamOpener` — never compared by
24
+ * code or codehash (a byte-identical clone outside the factory proves
25
+ * nothing). The factory named in `extra` must be the configured one.
26
+ * - `(operator, serviceRef)` resolve to exactly ONE operator-signed listing via
27
+ * the existing discovery signature verification; the rate is inside the
28
+ * listing's signed commercial bounds when it declares them.
29
+ * - `0 < amount <= ratePerSecond * maxDuration`.
30
+ * - `factory.deployAndSettle` simulates cleanly from the relayer.
31
+ *
32
+ * Any doubt — an RPC error, an unreachable registry, a malformed field — is an
33
+ * invalid verdict. Nothing here ever fails open.
34
+ *
35
+ * ## Settlement
36
+ *
37
+ * `settle` re-runs the full verification, then calls `deployAndSettle` from the
38
+ * relayer, waits for the receipt, and returns success ONLY when the mined
39
+ * receipt carries both the opener's `StreamOpenedFor` and the escrow's
40
+ * `StreamOpened` for exactly this payer, nonce, amount and terms. The stock
41
+ * `ExactEvmScheme.settle` is never called: it would transfer the USDC straight
42
+ * to `payTo`, and USDC that reaches an opener any other way than
43
+ * `settleAndOpen` is unrecoverable. The signer handed to the stock scheme
44
+ * cannot broadcast at all, so that path is closed structurally too.
45
+ *
46
+ * ## At most one success per authorization
47
+ *
48
+ * An EIP-3009 authorization (chain + asset + payer + nonce) receives AT MOST
49
+ * ONE successful `SettleResponse` from this instance, ever. A settle of an
50
+ * authorization that is in flight, or already settled, returns `success:
51
+ * false` with `duplicate_settlement` (carrying the tx hash when there is one),
52
+ * and `verify` refuses it the same way — so one payment can never buy two
53
+ * served responses. After a `settlement_pending` (receipt wait timed out) the
54
+ * next settle of the SAME payload reconciles against the broadcast tx and may
55
+ * receive the one success, if none was delivered before. The ledger is
56
+ * in-memory and per instance: a multi-instance deployment needs a shared store
57
+ * and does not have one today.
58
+ *
59
+ * Relayer submissions (simulate + write) are serialized so concurrent payers
60
+ * never race for the relayer's account nonce.
61
+ */
62
+ /** Reasons this scheme adds to the stock `exact` ones. All fail closed. */
63
+ export declare const OpenerInvalidReason: {
64
+ readonly unsupportedScheme: "metrik_opener_unsupported_scheme";
65
+ readonly unsupportedNetwork: "metrik_opener_unsupported_network";
66
+ readonly unsupportedVersion: "metrik_opener_unsupported_x402_version";
67
+ readonly acceptedMismatch: "metrik_opener_accepted_requirements_mismatch";
68
+ readonly unsupportedAssetTransferMethod: "metrik_opener_asset_transfer_method_not_eip3009";
69
+ readonly erc6492Unsupported: "metrik_opener_erc6492_signature_unsupported";
70
+ readonly missingSignature: "metrik_opener_missing_signature";
71
+ readonly assetNotAllowed: "metrik_opener_asset_not_allowed";
72
+ readonly invalidTerms: "metrik_opener_invalid_terms";
73
+ readonly factoryMismatch: "metrik_opener_factory_mismatch";
74
+ readonly payToMismatch: "metrik_opener_pay_to_not_predicted_opener";
75
+ readonly invalidAmount: "metrik_opener_invalid_amount";
76
+ readonly amountExceedsTerms: "metrik_opener_amount_exceeds_rate_times_duration";
77
+ readonly listingUnavailable: "metrik_opener_listing_registry_unavailable";
78
+ readonly listingNotFound: "metrik_opener_listing_not_found";
79
+ readonly listingAmbiguous: "metrik_opener_listing_ambiguous";
80
+ readonly listingRateOutOfBounds: "metrik_opener_listing_rate_out_of_bounds";
81
+ readonly simulationFailed: "metrik_opener_settle_simulation_failed";
82
+ readonly verifyError: "metrik_opener_verify_error";
83
+ readonly transactionReverted: "metrik_opener_transaction_reverted";
84
+ readonly streamEventMismatch: "metrik_opener_stream_event_mismatch";
85
+ readonly settlementPending: "settlement_pending";
86
+ readonly settleError: "metrik_opener_settle_error";
87
+ readonly amountBelowMinimum: "metrik_opener_amount_below_minimum";
88
+ /**
89
+ * This authorization is already being settled, or already settled, by this
90
+ * facilitator instance. May carry the settlement transaction hash. Never a
91
+ * second success (see "At most one success" on the class).
92
+ */
93
+ readonly duplicateSettlement: "duplicate_settlement";
94
+ readonly settlementCapacity: "metrik_opener_settlement_capacity_exhausted";
95
+ };
96
+ /** Default facilitator minimum payment: 10000 base units = 0.01 USDC. */
97
+ export declare const DEFAULT_OPENER_MIN_AMOUNT = 10000n;
98
+ export interface MetrikOpenerExactSchemeConfig {
99
+ /** CAIP-2 network (`eip155:<chainId>`), as the registry gives it. Must match the RPC's chain id. */
100
+ readonly network: Network;
101
+ /** The deployed `X402StreamOpenerFactory`. */
102
+ readonly factoryAddress: Address;
103
+ /** The `StreamEscrowV2` the factory must point at (checked by {@link init}). */
104
+ readonly escrowAddress: Address;
105
+ /** Settlement tokens this facilitator accepts. Must contain `factory.usdc()`. */
106
+ readonly assetAllowlist: readonly Address[];
107
+ /** Read client for the network. */
108
+ readonly publicClient: PublicClient<Transport, Chain | undefined>;
109
+ /** Relayer wallet. Pays gas for `deployAndSettle`; never holds buyer funds. */
110
+ readonly walletClient: WalletClient<Transport, Chain | undefined, Account>;
111
+ readonly listingResolver: OperatorSignedListingResolver;
112
+ /** How long to wait for a settlement receipt before reporting `settlement_pending`. Default 60s. */
113
+ readonly receiptTimeoutMs?: number;
114
+ /**
115
+ * Smallest accepted payment, token base units. Default
116
+ * {@link DEFAULT_OPENER_MIN_AMOUNT}. Every settlement costs the relayer a
117
+ * full `deployAndSettle`, so dust payments would be a gas drain.
118
+ */
119
+ readonly minAmount?: bigint;
120
+ /** Injectable clock (unix seconds), for tests. */
121
+ readonly now?: () => number;
122
+ /**
123
+ * The relayer's submission queue. Pass the SAME queue to every component
124
+ * that broadcasts from this relayer key (the refund relay does), so their
125
+ * transactions never race for the account nonce. Default: a private queue.
126
+ */
127
+ readonly relayerQueue?: RelayerQueue;
128
+ /**
129
+ * Advertise `refundRelay: true` in the `/supported` marker: this service
130
+ * also runs the gasless refund relay (`/streams/:streamId/...`). Set only
131
+ * when the relay is actually mounted. Default false.
132
+ */
133
+ readonly advertiseRefundRelay?: boolean;
134
+ }
135
+ /** What {@link MetrikOpenerExactScheme.init} proved about the on-chain wiring. */
136
+ export interface OpenerFacilitatorBinding {
137
+ readonly chainId: number;
138
+ readonly factory: Address;
139
+ readonly escrow: Address;
140
+ readonly usdc: Address;
141
+ readonly relayer: Address;
142
+ }
143
+ /**
144
+ * Marker this facilitator advertises in `GET /supported` (`kinds[].extra`), so
145
+ * a resource server can refuse to quote an opener `payTo` through any
146
+ * facilitator that would settle it with a plain `transferWithAuthorization`
147
+ * (which strands the funds). See {@link readOpenerFacilitatorMarker}.
148
+ */
149
+ export interface OpenerFacilitatorMarker {
150
+ readonly settlement: "x402-stream-opener";
151
+ readonly factory: Address;
152
+ readonly escrow: Address;
153
+ readonly usdc: Address;
154
+ readonly chainId: number;
155
+ /** Smallest accepted amount, base units (decimal string). */
156
+ readonly minAmount: string;
157
+ /** How long `settle` waits for a receipt before `settlement_pending`. */
158
+ readonly receiptTimeoutSeconds: number;
159
+ /**
160
+ * True when the same service runs the gasless refund relay
161
+ * (`GET /streams/:streamId`, `POST /streams/:streamId/close|reclaim`).
162
+ * Absent (read as false) otherwise.
163
+ */
164
+ readonly refundRelay?: true;
165
+ }
166
+ export declare class MetrikOpenerExactScheme implements SchemeNetworkFacilitator {
167
+ private readonly config;
168
+ readonly scheme: "exact";
169
+ readonly caipFamily = "eip155:*";
170
+ private readonly stock;
171
+ private readonly chainId;
172
+ private readonly allowlist;
173
+ private readonly receiptTimeoutMs;
174
+ private readonly minAmount;
175
+ private readonly now;
176
+ private readonly ledger;
177
+ /** Serializes relayer submissions (simulate + write) so nonces never collide. */
178
+ private readonly relayerQueue;
179
+ private binding;
180
+ constructor(config: MetrikOpenerExactSchemeConfig);
181
+ /**
182
+ * Proves the on-chain wiring before the facilitator serves anything: the RPC
183
+ * is on the configured chain, the factory has code, points at the configured
184
+ * escrow, and its token is allowlisted. Throws otherwise (the service refuses
185
+ * to start).
186
+ */
187
+ init(): Promise<OpenerFacilitatorBinding>;
188
+ /** `/supported` extra: the marker a resource server checks before quoting an opener. */
189
+ getExtra(_network: string): Record<string, unknown> | undefined;
190
+ getSigners(_network: string): string[];
191
+ verify(payload: PaymentPayload, requirements: PaymentRequirements, context?: FacilitatorContext): Promise<VerifyResponse>;
192
+ settle(payload: PaymentPayload, requirements: PaymentRequirements, context?: FacilitatorContext): Promise<SettleResponse>;
193
+ /** Records the outcome of one settle attempt in the ledger and returns it. */
194
+ private finish;
195
+ /**
196
+ * Simulate + broadcast `deployAndSettle`, one at a time. Concurrent
197
+ * submissions from one relayer would otherwise race for the same account
198
+ * nonce and all but one would fail after the upstream already did the work.
199
+ */
200
+ private submitSerialized;
201
+ /** chain + asset + payer + authorization nonce, or undefined if unparseable. */
202
+ private ledgerKey;
203
+ /**
204
+ * Drops entries whose authorization can no longer be settled by anyone
205
+ * (past `validBefore` plus a grace). Never drops an in-flight entry.
206
+ */
207
+ private pruneLedger;
208
+ private awaitSettlement;
209
+ /** Every Metrik check plus the stock verifier. Cheapest, most local first. */
210
+ private check;
211
+ }
212
+ /**
213
+ * Reads an opener facilitator marker out of a `/supported` kind's `extra`, or
214
+ * `undefined` when the facilitator does not advertise opener settlement.
215
+ */
216
+ export declare function readOpenerFacilitatorMarker(extra: Record<string, unknown> | undefined): OpenerFacilitatorMarker | undefined;
217
+ //# sourceMappingURL=scheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheme.d.ts","sourceRoot":"","sources":["../../src/x402-opener/scheme.ts"],"names":[],"mappings":"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"}