@absol-labs/agent 0.11.0 → 0.12.0-rc.2

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 (366) hide show
  1. package/README.md +43 -51
  2. package/dist/capability/invocation-capability.d.ts +2 -2
  3. package/dist/capability/probe-capability.d.ts +225 -0
  4. package/dist/capability/probe-capability.d.ts.map +1 -0
  5. package/dist/capability/probe-capability.js +248 -0
  6. package/dist/capability/probe-capability.js.map +1 -0
  7. package/dist/cli/args.d.ts +11 -0
  8. package/dist/cli/args.d.ts.map +1 -1
  9. package/dist/cli/args.js +23 -0
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/commands/claim.d.ts +32 -0
  12. package/dist/cli/commands/claim.d.ts.map +1 -1
  13. package/dist/cli/commands/claim.js +116 -28
  14. package/dist/cli/commands/claim.js.map +1 -1
  15. package/dist/cli/commands/close.d.ts.map +1 -1
  16. package/dist/cli/commands/close.js +35 -3
  17. package/dist/cli/commands/close.js.map +1 -1
  18. package/dist/cli/commands/invoke.d.ts +2 -0
  19. package/dist/cli/commands/invoke.d.ts.map +1 -1
  20. package/dist/cli/commands/invoke.js +2 -2
  21. package/dist/cli/commands/invoke.js.map +1 -1
  22. package/dist/cli/commands/mcp.d.ts.map +1 -1
  23. package/dist/cli/commands/mcp.js +15 -2
  24. package/dist/cli/commands/mcp.js.map +1 -1
  25. package/dist/cli/commands/open.d.ts.map +1 -1
  26. package/dist/cli/commands/open.js +58 -4
  27. package/dist/cli/commands/open.js.map +1 -1
  28. package/dist/cli/commands/pay.d.ts +34 -0
  29. package/dist/cli/commands/pay.d.ts.map +1 -0
  30. package/dist/cli/commands/pay.js +479 -0
  31. package/dist/cli/commands/pay.js.map +1 -0
  32. package/dist/cli/commands/reclaim-unverified.d.ts.map +1 -1
  33. package/dist/cli/commands/reclaim-unverified.js +3 -2
  34. package/dist/cli/commands/reclaim-unverified.js.map +1 -1
  35. package/dist/cli/commands/reclaim.d.ts +23 -2
  36. package/dist/cli/commands/reclaim.d.ts.map +1 -1
  37. package/dist/cli/commands/reclaim.js +204 -20
  38. package/dist/cli/commands/reclaim.js.map +1 -1
  39. package/dist/cli/commands/refund.d.ts +31 -0
  40. package/dist/cli/commands/refund.d.ts.map +1 -0
  41. package/dist/cli/commands/refund.js +397 -0
  42. package/dist/cli/commands/refund.js.map +1 -0
  43. package/dist/cli/commands/status.d.ts.map +1 -1
  44. package/dist/cli/commands/status.js +21 -2
  45. package/dist/cli/commands/status.js.map +1 -1
  46. package/dist/cli/commands/streams.js +8 -12
  47. package/dist/cli/commands/streams.js.map +1 -1
  48. package/dist/cli/commands/watch.d.ts.map +1 -1
  49. package/dist/cli/commands/watch.js +4 -1
  50. package/dist/cli/commands/watch.js.map +1 -1
  51. package/dist/cli/config.d.ts +44 -26
  52. package/dist/cli/config.d.ts.map +1 -1
  53. package/dist/cli/config.js +88 -38
  54. package/dist/cli/config.js.map +1 -1
  55. package/dist/cli/context.d.ts +19 -0
  56. package/dist/cli/context.d.ts.map +1 -1
  57. package/dist/cli/deps.d.ts +53 -0
  58. package/dist/cli/deps.d.ts.map +1 -1
  59. package/dist/cli/deps.js +51 -1
  60. package/dist/cli/deps.js.map +1 -1
  61. package/dist/cli/errors.d.ts.map +1 -1
  62. package/dist/cli/errors.js +21 -1
  63. package/dist/cli/errors.js.map +1 -1
  64. package/dist/cli/escape-hatch.d.ts +6 -4
  65. package/dist/cli/escape-hatch.d.ts.map +1 -1
  66. package/dist/cli/escape-hatch.js +6 -2
  67. package/dist/cli/escape-hatch.js.map +1 -1
  68. package/dist/cli/listings.d.ts +18 -0
  69. package/dist/cli/listings.d.ts.map +1 -1
  70. package/dist/cli/listings.js +22 -12
  71. package/dist/cli/listings.js.map +1 -1
  72. package/dist/cli/preflight.d.ts +20 -14
  73. package/dist/cli/preflight.d.ts.map +1 -1
  74. package/dist/cli/preflight.js +34 -20
  75. package/dist/cli/preflight.js.map +1 -1
  76. package/dist/cli/privy.d.ts.map +1 -1
  77. package/dist/cli/privy.js +4 -2
  78. package/dist/cli/privy.js.map +1 -1
  79. package/dist/cli/progress.d.ts +13 -1
  80. package/dist/cli/progress.d.ts.map +1 -1
  81. package/dist/cli/progress.js +7 -1
  82. package/dist/cli/progress.js.map +1 -1
  83. package/dist/cli/reclaimability.d.ts +82 -0
  84. package/dist/cli/reclaimability.d.ts.map +1 -0
  85. package/dist/cli/reclaimability.js +80 -0
  86. package/dist/cli/reclaimability.js.map +1 -0
  87. package/dist/cli/run.d.ts +2 -1
  88. package/dist/cli/run.d.ts.map +1 -1
  89. package/dist/cli/run.js +62 -21
  90. package/dist/cli/run.js.map +1 -1
  91. package/dist/cli/scan-range.d.ts +2 -2
  92. package/dist/cli/scan-range.js +2 -2
  93. package/dist/cli/status.d.ts +106 -1
  94. package/dist/cli/status.d.ts.map +1 -1
  95. package/dist/cli/status.js +325 -44
  96. package/dist/cli/status.js.map +1 -1
  97. package/dist/cli/wallet.d.ts +2 -2
  98. package/dist/cli/wallet.d.ts.map +1 -1
  99. package/dist/cli/wallet.js +29 -5
  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 +83 -31
  121. package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
  122. package/dist/gateway/caller-auth-gateway.js +180 -27
  123. package/dist/gateway/caller-auth-gateway.js.map +1 -1
  124. package/dist/gateway/http-server.d.ts +128 -44
  125. package/dist/gateway/http-server.d.ts.map +1 -1
  126. package/dist/gateway/http-server.js +506 -155
  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 +252 -0
  137. package/dist/gateway/x402-opener-mode.d.ts.map +1 -0
  138. package/dist/gateway/x402-opener-mode.js +772 -0
  139. package/dist/gateway/x402-opener-mode.js.map +1 -0
  140. package/dist/index.d.ts +6 -2
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +10 -5
  143. package/dist/index.js.map +1 -1
  144. package/dist/mcp/server.d.ts +64 -1
  145. package/dist/mcp/server.d.ts.map +1 -1
  146. package/dist/mcp/server.js +247 -37
  147. package/dist/mcp/server.js.map +1 -1
  148. package/dist/mcp/x402-tools.d.ts +109 -0
  149. package/dist/mcp/x402-tools.d.ts.map +1 -0
  150. package/dist/mcp/x402-tools.js +554 -0
  151. package/dist/mcp/x402-tools.js.map +1 -0
  152. package/dist/network.d.ts +119 -0
  153. package/dist/network.d.ts.map +1 -0
  154. package/dist/network.js +199 -0
  155. package/dist/network.js.map +1 -0
  156. package/dist/sdk/client.d.ts +13 -0
  157. package/dist/sdk/client.d.ts.map +1 -1
  158. package/dist/sdk/client.js +15 -0
  159. package/dist/sdk/client.js.map +1 -1
  160. package/dist/sdk/invoke.d.ts +4 -0
  161. package/dist/sdk/invoke.d.ts.map +1 -1
  162. package/dist/sdk/invoke.js +2 -5
  163. package/dist/sdk/invoke.js.map +1 -1
  164. package/dist/wallet/autonomous-wallet-broker.d.ts +3 -0
  165. package/dist/wallet/autonomous-wallet-broker.d.ts.map +1 -1
  166. package/dist/wallet/autonomous-wallet-broker.js +27 -23
  167. package/dist/wallet/autonomous-wallet-broker.js.map +1 -1
  168. package/dist/wallet/autonomous-wallet-protocol.d.ts +8 -2
  169. package/dist/wallet/autonomous-wallet-protocol.d.ts.map +1 -1
  170. package/dist/wallet/autonomous-wallet-protocol.js +9 -2
  171. package/dist/wallet/autonomous-wallet-protocol.js.map +1 -1
  172. package/dist/wallet/autonomous-wallet.d.ts.map +1 -1
  173. package/dist/wallet/autonomous-wallet.js +3 -2
  174. package/dist/wallet/autonomous-wallet.js.map +1 -1
  175. package/dist/wallet/broker-escrows.d.ts +222 -0
  176. package/dist/wallet/broker-escrows.d.ts.map +1 -0
  177. package/dist/wallet/broker-escrows.js +36 -0
  178. package/dist/wallet/broker-escrows.js.map +1 -0
  179. package/dist/wallet/lifecycle.d.ts +21 -5
  180. package/dist/wallet/lifecycle.d.ts.map +1 -1
  181. package/dist/wallet/lifecycle.js +32 -12
  182. package/dist/wallet/lifecycle.js.map +1 -1
  183. package/dist/wallet/privy-broker-server.d.ts.map +1 -1
  184. package/dist/wallet/privy-broker-server.js +31 -26
  185. package/dist/wallet/privy-broker-server.js.map +1 -1
  186. package/dist/wallet/privy-session-broker.d.ts +14 -5
  187. package/dist/wallet/privy-session-broker.d.ts.map +1 -1
  188. package/dist/wallet/privy-session-broker.js +29 -17
  189. package/dist/wallet/privy-session-broker.js.map +1 -1
  190. package/dist/wallet/privy-session-provider.d.ts +3 -1
  191. package/dist/wallet/privy-session-provider.d.ts.map +1 -1
  192. package/dist/wallet/privy-session-provider.js +5 -3
  193. package/dist/wallet/privy-session-provider.js.map +1 -1
  194. package/dist/wallet/provider.d.ts.map +1 -1
  195. package/dist/wallet/provider.js +15 -8
  196. package/dist/wallet/provider.js.map +1 -1
  197. package/dist/x402/facilitator.d.ts +3 -30
  198. package/dist/x402/facilitator.d.ts.map +1 -1
  199. package/dist/x402/facilitator.js +0 -27
  200. package/dist/x402/facilitator.js.map +1 -1
  201. package/dist/x402-buyer/guarded-fetch.d.ts +51 -0
  202. package/dist/x402-buyer/guarded-fetch.d.ts.map +1 -0
  203. package/dist/x402-buyer/guarded-fetch.js +147 -0
  204. package/dist/x402-buyer/guarded-fetch.js.map +1 -0
  205. package/dist/x402-buyer/index.d.ts +10 -0
  206. package/dist/x402-buyer/index.d.ts.map +1 -0
  207. package/dist/x402-buyer/index.js +10 -0
  208. package/dist/x402-buyer/index.js.map +1 -0
  209. package/dist/x402-buyer/pay.d.ts +157 -0
  210. package/dist/x402-buyer/pay.d.ts.map +1 -0
  211. package/dist/x402-buyer/pay.js +366 -0
  212. package/dist/x402-buyer/pay.js.map +1 -0
  213. package/dist/x402-opener/abi.d.ts +684 -0
  214. package/dist/x402-opener/abi.d.ts.map +1 -0
  215. package/dist/x402-opener/abi.js +880 -0
  216. package/dist/x402-opener/abi.js.map +1 -0
  217. package/dist/x402-opener/facilitator-entry.d.ts +3 -0
  218. package/dist/x402-opener/facilitator-entry.d.ts.map +1 -0
  219. package/dist/x402-opener/facilitator-entry.js +40 -0
  220. package/dist/x402-opener/facilitator-entry.js.map +1 -0
  221. package/dist/x402-opener/facilitator-server.d.ts +209 -0
  222. package/dist/x402-opener/facilitator-server.d.ts.map +1 -0
  223. package/dist/x402-opener/facilitator-server.js +762 -0
  224. package/dist/x402-opener/facilitator-server.js.map +1 -0
  225. package/dist/x402-opener/index.d.ts +14 -0
  226. package/dist/x402-opener/index.d.ts.map +1 -0
  227. package/dist/x402-opener/index.js +14 -0
  228. package/dist/x402-opener/index.js.map +1 -0
  229. package/dist/x402-opener/listing-resolver.d.ts +55 -0
  230. package/dist/x402-opener/listing-resolver.d.ts.map +1 -0
  231. package/dist/x402-opener/listing-resolver.js +125 -0
  232. package/dist/x402-opener/listing-resolver.js.map +1 -0
  233. package/dist/x402-opener/refund-relay.d.ts +266 -0
  234. package/dist/x402-opener/refund-relay.d.ts.map +1 -0
  235. package/dist/x402-opener/refund-relay.js +1341 -0
  236. package/dist/x402-opener/refund-relay.js.map +1 -0
  237. package/dist/x402-opener/relayer-queue.d.ts +14 -0
  238. package/dist/x402-opener/relayer-queue.d.ts.map +1 -0
  239. package/dist/x402-opener/relayer-queue.js +18 -0
  240. package/dist/x402-opener/relayer-queue.js.map +1 -0
  241. package/dist/x402-opener/scheme.d.ts +296 -0
  242. package/dist/x402-opener/scheme.d.ts.map +1 -0
  243. package/dist/x402-opener/scheme.js +1035 -0
  244. package/dist/x402-opener/scheme.js.map +1 -0
  245. package/dist/x402-opener/terms.d.ts +165 -0
  246. package/dist/x402-opener/terms.d.ts.map +1 -0
  247. package/dist/x402-opener/terms.js +304 -0
  248. package/dist/x402-opener/terms.js.map +1 -0
  249. package/dist/zktls/reclaim.d.ts +2 -2
  250. package/dist/zktls/t2-delivery-proof.d.ts +6 -6
  251. package/docs/agent-layer.md +3 -2
  252. package/docs/autonomous-privy-wallet.md +188 -0
  253. package/docs/cli.md +265 -34
  254. package/docs/langchain.md +5 -0
  255. package/docs/mcp-reference.md +91 -5
  256. package/docs/probe-capability.md +191 -0
  257. package/docs/quickstart.md +39 -4
  258. package/docs/threat-model.md +20 -0
  259. package/docs/x402.md +766 -593
  260. package/package.json +19 -17
  261. package/src/capability/probe-capability.ts +355 -0
  262. package/src/cli/args.ts +29 -0
  263. package/src/cli/commands/claim.ts +168 -33
  264. package/src/cli/commands/close.ts +36 -3
  265. package/src/cli/commands/invoke.ts +5 -2
  266. package/src/cli/commands/mcp.ts +18 -2
  267. package/src/cli/commands/open.ts +75 -4
  268. package/src/cli/commands/pay.ts +584 -0
  269. package/src/cli/commands/reclaim-unverified.ts +8 -2
  270. package/src/cli/commands/reclaim.ts +277 -19
  271. package/src/cli/commands/refund.ts +475 -0
  272. package/src/cli/commands/status.ts +28 -2
  273. package/src/cli/commands/streams.ts +10 -14
  274. package/src/cli/commands/watch.ts +11 -1
  275. package/src/cli/config.ts +139 -52
  276. package/src/cli/context.ts +16 -0
  277. package/src/cli/deps.ts +111 -1
  278. package/src/cli/errors.ts +24 -1
  279. package/src/cli/escape-hatch.ts +19 -5
  280. package/src/cli/listings.ts +43 -10
  281. package/src/cli/preflight.ts +36 -21
  282. package/src/cli/privy.ts +4 -2
  283. package/src/cli/progress.ts +21 -2
  284. package/src/cli/reclaimability.ts +154 -0
  285. package/src/cli/run.ts +77 -21
  286. package/src/cli/scan-range.ts +2 -2
  287. package/src/cli/status.ts +454 -44
  288. package/src/cli/wallet.ts +45 -8
  289. package/src/discovery/rate-band.ts +172 -0
  290. package/src/escrow-generation.ts +135 -0
  291. package/src/frameworks/agentkit.ts +45 -11
  292. package/src/frameworks/eliza.ts +27 -5
  293. package/src/frameworks/langchain.ts +14 -0
  294. package/src/gateway/caller-auth-gateway.ts +320 -68
  295. package/src/gateway/http-server.ts +717 -220
  296. package/src/gateway/probe-auth.ts +191 -0
  297. package/src/gateway/signed-rate-bounds.ts +164 -0
  298. package/src/gateway/x402-opener-mode.ts +1171 -0
  299. package/src/index.ts +82 -19
  300. package/src/mcp/server.ts +351 -42
  301. package/src/mcp/x402-tools.ts +785 -0
  302. package/src/network.ts +302 -0
  303. package/src/sdk/client.ts +25 -0
  304. package/src/sdk/invoke.ts +6 -5
  305. package/src/wallet/autonomous-wallet-broker.ts +46 -20
  306. package/src/wallet/autonomous-wallet-protocol.ts +11 -2
  307. package/src/wallet/autonomous-wallet.ts +4 -2
  308. package/src/wallet/broker-escrows.ts +66 -0
  309. package/src/wallet/lifecycle.ts +53 -18
  310. package/src/wallet/privy-broker-server.ts +35 -25
  311. package/src/wallet/privy-session-broker.ts +58 -25
  312. package/src/wallet/privy-session-provider.ts +7 -3
  313. package/src/wallet/provider.ts +20 -15
  314. package/src/x402/facilitator.ts +3 -43
  315. package/src/x402-buyer/guarded-fetch.ts +213 -0
  316. package/src/x402-buyer/index.ts +9 -0
  317. package/src/x402-buyer/pay.ts +555 -0
  318. package/src/x402-opener/abi.ts +881 -0
  319. package/src/x402-opener/facilitator-entry.ts +48 -0
  320. package/src/x402-opener/facilitator-server.ts +1114 -0
  321. package/src/x402-opener/index.ts +13 -0
  322. package/src/x402-opener/listing-resolver.ts +202 -0
  323. package/src/x402-opener/refund-relay.ts +1873 -0
  324. package/src/x402-opener/relayer-queue.ts +18 -0
  325. package/src/x402-opener/scheme.ts +1551 -0
  326. package/src/x402-opener/terms.ts +453 -0
  327. package/dist/gateway/x402-mode.d.ts +0 -123
  328. package/dist/gateway/x402-mode.d.ts.map +0 -1
  329. package/dist/gateway/x402-mode.js +0 -212
  330. package/dist/gateway/x402-mode.js.map +0 -1
  331. package/dist/x402/delivery-oracle.d.ts +0 -108
  332. package/dist/x402/delivery-oracle.d.ts.map +0 -1
  333. package/dist/x402/delivery-oracle.js +0 -174
  334. package/dist/x402/delivery-oracle.js.map +0 -1
  335. package/dist/x402/facilitator-server-entry.d.ts +0 -3
  336. package/dist/x402/facilitator-server-entry.d.ts.map +0 -1
  337. package/dist/x402/facilitator-server-entry.js +0 -27
  338. package/dist/x402/facilitator-server-entry.js.map +0 -1
  339. package/dist/x402/facilitator-server.d.ts +0 -73
  340. package/dist/x402/facilitator-server.d.ts.map +0 -1
  341. package/dist/x402/facilitator-server.js +0 -305
  342. package/dist/x402/facilitator-server.js.map +0 -1
  343. package/dist/x402/payment-requirements.d.ts +0 -106
  344. package/dist/x402/payment-requirements.d.ts.map +0 -1
  345. package/dist/x402/payment-requirements.js +0 -138
  346. package/dist/x402/payment-requirements.js.map +0 -1
  347. package/dist/x402/relayer.d.ts +0 -41
  348. package/dist/x402/relayer.d.ts.map +0 -1
  349. package/dist/x402/relayer.js +0 -64
  350. package/dist/x402/relayer.js.map +0 -1
  351. package/dist/x402/resource-index.d.ts +0 -75
  352. package/dist/x402/resource-index.d.ts.map +0 -1
  353. package/dist/x402/resource-index.js +0 -126
  354. package/dist/x402/resource-index.js.map +0 -1
  355. package/dist/x402/verified-delivery-facilitator.d.ts +0 -285
  356. package/dist/x402/verified-delivery-facilitator.d.ts.map +0 -1
  357. package/dist/x402/verified-delivery-facilitator.js +0 -423
  358. package/dist/x402/verified-delivery-facilitator.js.map +0 -1
  359. package/src/gateway/x402-mode.ts +0 -350
  360. package/src/x402/delivery-oracle.ts +0 -285
  361. package/src/x402/facilitator-server-entry.ts +0 -35
  362. package/src/x402/facilitator-server.ts +0 -445
  363. package/src/x402/payment-requirements.ts +0 -231
  364. package/src/x402/relayer.ts +0 -122
  365. package/src/x402/resource-index.ts +0 -228
  366. package/src/x402/verified-delivery-facilitator.ts +0 -744
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facilitator-server.js","sourceRoot":"","sources":["../../src/x402-opener/facilitator-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,YAAY,GAIb,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,IAAI,EACJ,SAAS,EACT,KAAK,GAGN,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,GAExB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iCAAiC,EACjC,qCAAqC,EACrC,gDAAgD,EAChD,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,uBAAuB,GAExB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;;;;;;GAWG;AAEH,mFAAmF;AACnF,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjC,iFAAiF;AACjF,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC;AAEvC,6DAA6D;AAC7D,MAAM,aAAa,GAAG,uCAAuC,CAAC;AAE9D,MAAM,iBAAkB,SAAQ,KAAK;CAAG;AA6CxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,2CAA2C,GAAG,EAAE,CAAC;AAC9D,MAAM,CAAC,MAAM,2CAA2C,GAAG,GAAG,CAAC;AAC/D,qFAAqF;AACrF,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAEpC,MAAM,UAAU,6BAA6B,CAC3C,MAAqC;IAErC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,8BAA8B,qBAAqB,aAAa,CACjE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC;IAC/D,MAAM,WAAW,GACf,MAAM,CAAC,wBAAwB,IAAI,oCAAoC,CAAC;IAC1E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,2EAA2E;IAC3E,MAAM,aAAa,GAAG,IAAI,GAAG,EAA4C,CAAC;IAC1E,MAAM,WAAW,GAAG,CAAC,GAAW,EAAW,EAAE;QAC3C,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;YACzD,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,IAAI,WAAW;YAAE,OAAO,KAAK,CAAC;QAC9C,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,WAAW,GACf,MAAM,CAAC,6BAA6B;QACpC,2CAA2C,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,iBAAiB,GACrB,MAAM,CAAC,8BAA8B;QACrC,2CAA2C,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC1D,gFAAgF;IAChF,MAAM,sBAAsB,GAAG,GAAW,EAAE;QAC1C,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QACpB,IAAI,GAAG,GAAG,kBAAkB,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;YAC7C,kBAAkB,CAAC,KAAK,GAAG,GAAG,CAAC;YAC/B,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,kBAAkB,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,EACD,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAC5D,CAAC;QACJ,CAAC;QACD,kBAAkB,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,GAAG,EAA4C,CAAC;IAC1E,kFAAkF;IAClF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAU,EAAE;QAClD,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;YACzD,IAAI,MAAM,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,IAAI,mBAAmB,EAAE,CAAC;gBACtE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;oBACzC,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM;wBAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,CAAC;gBACD,IAAI,aAAa,CAAC,IAAI,IAAI,mBAAmB;oBAAE,OAAO,EAAE,CAAC;YAC3D,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAU,EAAE;QACjD,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7D,MAAM,GAAG,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE;gBAAE,OAAO,GAAG,CAAC;QAC1E,CAAC;QACD,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAoB,EAAW,EAAE;QACnD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,oEAAoE;QACpE,OAAO,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,KAAK,CACV,gDAAgD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzG,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,MAAM,CAAC,GAAoB,EAAE,GAAmB;QAC7D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QAEnC,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,YAAY,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9D,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAW,CAAC,CAAC;YAC3D,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAC1D,OAAO;YACT,CAAC;YACD,MAAM,YAAY,CAChB,GAAG,EACH,GAAG,EACH,MAAM,CAAC,WAAW,EAClB,MAAM,EACN,QAAQ,EACR,YAAY,CAAC,CAAC,CAAC,CAChB,CAAC;YACF,OAAO;QACT,CAAC;QACD,IACE,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;YAC1D,MAAM,KAAK,MAAM,EACjB,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;YAC5C,IAAI,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,IAGf,CAAC;YACF,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,OAAO,KAAK,IAAI;gBAChB,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ;gBAC1C,OAAO,CAAC,cAAc,KAAK,IAAI;gBAC/B,OAAO,OAAO,CAAC,mBAAmB,KAAK,QAAQ;gBAC/C,OAAO,CAAC,mBAAmB,KAAK,IAAI,EACpC,CAAC;gBACD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;oBACb,KAAK,EAAE,qDAAqD;iBAC7D,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,cAEpB,CAAC;YACL,MAAM,YAAY,GAAG,OAAO,CAAC,mBAEzB,CAAC;YACL,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,IAAI,CACF,GAAG,EACH,GAAG,EACH,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CACvD,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;wBACb,OAAO,EAAE,KAAK;wBACd,WAAW,EAAE,4BAA4B;wBACzC,YAAY,EACV,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBACxD,WAAW,EAAE,EAAE;wBACf,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,EAAE;qBACpC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;oBACb,OAAO,EAAE,KAAK;oBACd,aAAa,EAAE,4BAA4B;oBAC3C,cAAc,EACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBACzD,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,UAAU,YAAY,CACzB,GAAoB,EACpB,GAAmB,EACnB,KAAyB,EACzB,MAAc,EACd,QAAgB,EAChB,MAA0B;QAE1B,MAAM,KAAK,GACT,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,MAAM,KAAK,OAAO;gBAClB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,MAAM,KAAK,SAAS;oBACpB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,MAAM,KAAK,oBAAoB;wBAC/B,CAAC,CAAC,mBAAmB;wBACrB,CAAC,CAAC,SAAS,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,oEAAoE;QACpE,6DAA6D;QAC7D,IAAI,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,IAAI,UAAU,KAAK,CAAC;YAAE,UAAU,GAAG,sBAAsB,EAAE,CAAC;QAC5D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,IAAI,MAA2B,CAAC;QAChC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,8DAA8D;YAC9D,MAAM,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAClE,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CACf,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC9D,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;oBACvC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,OAAO;YACT,CAAC;YACD,MAAM;gBACJ,KAAK,KAAK,OAAO;oBACf,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;oBACnC,CAAC,CAAC,MAAM,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,UAAU;QACV,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,EAAE,EAAE,CACnC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACjC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAiB,CAAC;gBACpD,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACJ,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,IAAI,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa;IAC9D,GAAG;SACA,SAAS,CAAC,MAAM,EAAE;QACjB,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,UAAU;KAC5B,CAAC;SACD,GAAG,CACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CACrD,CACF,CAAC;AACN,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,GAAoB,EACpB,QAAgB,cAAc;IAE9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAe,CAAC;QAC/B,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;QACtB,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AA6CD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAiC;IAQjC,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACvE,0DAA0D;IAC1D,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACxC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAElD,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC;QACzC,YAAY;QACZ,oBAAoB,EAAE,OAAO,CAAC,WAAW,KAAK,SAAS;QACvD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,GAAG,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS;YAC7C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS;YAC7C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC7D,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY;QACZ,YAAY;QACZ,eAAe,EACb,OAAO,CAAC,eAAe;YACvB,IAAI,uBAAuB,CAAC;gBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,kCAAkC;gBACtE,YAAY,EACV,OAAO,CAAC,mBAAmB,IAAI,6BAA6B;aAC/D,CAAC;QACJ,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,WAA0C,CAAC;IAC/C,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QAClC,WAAW,GAAG,IAAI,iBAAiB,CAAC;YAClC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,GAAG,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS;gBAC7C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC7D,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;YAC/D,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS;gBACnC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3C,GAAG,CAAC,KAAK,CAAC,6BAA6B,KAAK,SAAS;gBACnD,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,gCAAgC,EAC9B,KAAK,CAAC,6BAA6B;iBACtC,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,oBAAoB,KAAK,SAAS;gBAC1C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,uBAAuB,EAAE,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;SAClD,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5E,OAAO;QACL,WAAW;QACX,MAAM;QACN,OAAO;QACP,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAuCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAyB,OAAO,CAAC,GAAG;IAEpC,IACE,CAAC,YAAY,CACX,GAAG,CAAC,iCAAiC,EACrC,mCAAmC,CACpC,EACD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,iCAAiC,EAAE,IAAI,EAAE;QAC5D,cAAc,EAAE,CAAC,KAAK,CAAY,CAAC;IACrC,sEAAsE;IACtE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;IACpE,uEAAuE;IACvE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,iBAAiB,GAAG,UAAU,CAClC,GAAG,EACH,+CAA+C,CAChD,CAAC;IACF,IACE,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC3C,iBAAiB,CAAC,MAAM,KAAK,EAAE,EAC/B,CAAC;QACD,wBAAwB;QACxB,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAC;IAC1E,IAAI,SAAS,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,yDAAyD,qBAAqB,aAAa,CAC5F,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,yCAAyC,EAAE,IAAI,EAAE,CAAC;IACzE,IAAI,cAAuB,CAAC;IAC5B,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,IAAI,UAAU,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,4DAA4D,OAAO,qDAAqD,CACzH,CAAC;QACJ,CAAC;QACD,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,cAAc,CAC7B,GAAG,EACH,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,wCAAwC,EAAE,IAAI,EAAE,CAAC;IACvE,IAAI,aAAsB,CAAC;IAC3B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,2DAA2D,OAAO,yCAAyC,CAC5G,CAAC;QACJ,CAAC;QACD,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,aAAa,GAAG,cAAc,CAC5B,GAAG,EACH,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,CACnC,GAAG,CAAC,iDAAiD,EACrD,OAAO,EACP,aAAa,CACd,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,CAAC,gCAAgC,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAI,cAAyB,CAAC;IAC9B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,mDAAmD,OAAO,yCAAyC,CACpG,CAAC;QACJ,CAAC;QACD,cAAc,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,SAAS;aACvB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,6DAA6D,KAAK,EAAE,CACrE,CAAC;YACJ,CAAC;YACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IACD,MAAM,WAAW,GACf,GAAG,CAAC,sCAAsC,EAAE,IAAI,EAAE;QAClD,kCAAkC,CAAC;IACrC,uEAAuE;IACvE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACrB,MAAM,mBAAmB,GAAG,cAAc,CACxC,GAAG,EACH,iDAAiD,EACjD,6BAA6B,CAC9B,CAAC;IACF,MAAM,qBAAqB,GAAG,WAAW,CACvC,GAAG,EACH,mDAAmD,EACnD,EAAE,CACH,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,CAAC,8BAA8B,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO;QACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,IAAI,EAAE,GAAG,CAAC,8BAA8B,EAAE,IAAI,EAAE,IAAI,WAAW;QAC/D,IAAI;QACJ,OAAO;QACP,MAAM;QACN,iBAAiB,EAAE,iBAAwB;QAC3C,SAAS;QACT,mBAAmB,EACjB,CAAC,GAAG,CAAC,gDAAgD,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACpE,EAAE;YACA,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,YAAY,CACV,GAAG,CAAC,gDAAgD,EACpD,kDAAkD,CACnD;QACP,SAAS,EAAE,MAAM,CACf,WAAW,CAAC,GAAG,EAAE,sCAAsC,EAAE,MAAM,CAAC,CACjE;QACD,wBAAwB,EAAE,WAAW,CACnC,GAAG,EACH,wDAAwD,EACxD,oCAAoC,CACrC;QACD,cAAc;QACd,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACzC,aAAa;QACb,cAAc;QACd,WAAW;QACX,mBAAmB;QACnB,gBAAgB,EAAE,qBAAqB,GAAG,IAAI;KAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAuB,EACvB,OAAgB,EAChB,aAAsB;IAOtB,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,SAAS,GACb,UAAU,KAAK,SAAS;QACtB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,IAAI,CACrC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzC,UAAU,CAAC,aAAa,CAAC,CAC9B,CAAC;IACR,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO;YACL,qBAAqB,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;YACpD,GAAG,CAAC,SAAS,CAAC,cAAc,KAAK,IAAI;gBACnC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;SACrE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GACT,UAAU,KAAK,SAAS;QACtB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,IAAI,CACrC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,CAClD,CAAC;IACR,OAAO;QACL,qBAAqB,EAAE,UAAU,CAAC,KAAK,CAAC;QACxC,GAAG,CAAC,KAAK,EAAE,cAAc,IAAI,IAAI;YAC/B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAsB,EACtB,OAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,CAAC,sCAAsC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrE,IACE,GAAG,CAAC,MAAM,GAAG,CAAC;QACd,CAAC,YAAY,CAAC,GAAG,EAAE,wCAAwC,CAAC,EAC5D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,oCAAoC,EAAE,IAAI,EAAE,CAAC;IACnE,IAAI,SAAiB,CAAC;IACtB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,uDAAuD,OAAO,2FAA2F,CAC1J,CAAC;QACJ,CAAC;QACD,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,cAAc,CACxB,SAAS,EACT,sCAAsC,CACvC,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,oCAAoC,EAAE,IAAI,EAAE,CAAC;IACnE,MAAM,aAAa,GACjB,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAC/C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,qCAAqC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzE,OAAO;QACL,SAAS;QACT,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;QACzD,uBAAuB,EAAE,WAAW,CAClC,GAAG,EACH,+DAA+D,EAC/D,2CAA2C,CAC5C;QACD,wBAAwB,EAAE,WAAW,CACnC,GAAG,EACH,+DAA+D,EAC/D,2CAA2C,CAC5C;QACD,gBAAgB,EAAE,cAAc,CAC9B,GAAG,EACH,qDAAqD,EACrD,iCAAiC,CAClC;QACD,6BAA6B,EAAE,WAAW,CACxC,GAAG,EACH,oEAAoE,EACpE,gDAAgD,CACjD;QACD,oBAAoB,EAAE,WAAW,CAC/B,GAAG,EACH,yDAAyD,EACzD,qCAAqC,CACtC;QACD,UAAU,EACR,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnB,YAAY,CAAC,QAAQ,EAAE,uCAAuC,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,IAAY;IACjD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,0BAA0B,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,yBAAyB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,MAAyB,OAAO,CAAC,GAAG;IAQpC,MAAM,MAAM,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,4HAA4H,CAC7H,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,sBAAsB,CAAC;QACzE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,GAAG,CAAC,MAAM,CAAC,qBAAqB,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC5D,GAAG,CAAC,MAAM,CAAC,qBAAqB,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC5D,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,WAAW,EAAE;oBACX,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS;oBACvC,6BAA6B,EAC3B,MAAM,CAAC,WAAW,CAAC,6BAA6B;oBAClD,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,oBAAoB;oBAC7D,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB;oBACrD,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,KAAK,SAAS;wBAChD,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;iBACzD;aACF,CAAC;KACP,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,6BAA6B,CAAC;QAC3C,WAAW;QACX,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;QACzD,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAC/D,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,WAAW;gBACX,6BAA6B,EAC3B,MAAM,CAAC,WAAW,CAAC,uBAAuB;gBAC5C,8BAA8B,EAC5B,MAAM,CAAC,WAAW,CAAC,wBAAwB;gBAC7C,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU;aAC1C,CAAC;KACP,CAAC,CAAC;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,SAAS,EAAE,IAAI;QACf,OAAO;QACP,kBAAkB,EAAE,WAAW,KAAK,SAAS;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,GAAuB,EAAE,IAAY;IACzD,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,KAAK,uBAAuB,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,GAAsB,EAAE,IAAY;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,GAAsB,EAAE,IAAY;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,yBAAyB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAClB,GAAsB,EACtB,IAAY,EACZ,QAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,GAAG,gCAAgC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CACrB,GAAsB,EACtB,IAAY,EACZ,QAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,KAAK,GAAG,oCAAoC,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `@absol-labs/agent/x402-opener` — x402 v2 `exact` payments settled into a
3
+ * `StreamEscrowV2` stream through the ownerless `X402StreamOpenerFactory`
4
+ * (metrik-agent#116). Kept out of the root barrel so consumers that never use
5
+ * x402 do not load `@x402/*`. See docs/x402.md.
6
+ */
7
+ export * from "./abi.js";
8
+ export * from "./terms.js";
9
+ export * from "./listing-resolver.js";
10
+ export * from "./scheme.js";
11
+ export * from "./facilitator-server.js";
12
+ export * from "./refund-relay.js";
13
+ export * from "./relayer-queue.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/x402-opener/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `@absol-labs/agent/x402-opener` — x402 v2 `exact` payments settled into a
3
+ * `StreamEscrowV2` stream through the ownerless `X402StreamOpenerFactory`
4
+ * (metrik-agent#116). Kept out of the root barrel so consumers that never use
5
+ * x402 do not load `@x402/*`. See docs/x402.md.
6
+ */
7
+ export * from "./abi.js";
8
+ export * from "./terms.js";
9
+ export * from "./listing-resolver.js";
10
+ export * from "./scheme.js";
11
+ export * from "./facilitator-server.js";
12
+ export * from "./refund-relay.js";
13
+ export * from "./relayer-queue.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/x402-opener/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { type DiscoveredService } from "../discovery/registry.js";
2
+ import type { OpenerTerms } from "./terms.js";
3
+ /**
4
+ * Resolves opener terms to exactly ONE operator-signed Metrik listing.
5
+ *
6
+ * The trust decision is the existing discovery verification, reused verbatim
7
+ * ({@link discoverServicesDetailed} → `@absol-labs/sdk`): every registry row is
8
+ * schema-validated, its `serviceRef` is re-derived from the signed content, and
9
+ * its operator EIP-712 signature is recovered and matched. Only then is it
10
+ * compared with the terms. An unsigned registry column, or anything a request
11
+ * carries, is never consulted — `serviceRef` and `operator` come out of the
12
+ * verified signed record.
13
+ *
14
+ * Fail closed: an unreachable registry, zero matches, or more than one match is
15
+ * a refusal, never a pass.
16
+ */
17
+ export type ListingResolution = {
18
+ readonly ok: true;
19
+ readonly listing: DiscoveredService;
20
+ } | {
21
+ readonly ok: false;
22
+ readonly reason: "listing-registry-unavailable" | "listing-not-found" | "listing-ambiguous" | "listing-rate-out-of-bounds";
23
+ readonly message: string;
24
+ };
25
+ export interface OperatorSignedListingResolver {
26
+ resolve(terms: Pick<OpenerTerms, "operator" | "serviceRef" | "ratePerSecond">): Promise<ListingResolution>;
27
+ }
28
+ export interface RegistryListingResolverOptions {
29
+ /** Default {@link DEFAULT_METRIK_PUBLIC_REGISTRY_URL}. */
30
+ readonly registryUrl?: string;
31
+ /**
32
+ * How long a SUCCESSFUL registry read is reused, in seconds. Failures are
33
+ * never cached. Default 60. `0` disables caching.
34
+ */
35
+ readonly cacheSeconds?: number;
36
+ readonly timeoutMs?: number;
37
+ readonly fetch?: typeof fetch;
38
+ readonly now?: () => number;
39
+ readonly logger?: {
40
+ warn: (...args: unknown[]) => void;
41
+ };
42
+ }
43
+ export declare const DEFAULT_LISTING_CACHE_SECONDS = 60;
44
+ export declare class RegistryListingResolver implements OperatorSignedListingResolver {
45
+ private readonly options;
46
+ private readonly registryUrl;
47
+ private readonly cacheSeconds;
48
+ private readonly now;
49
+ private cache;
50
+ private inFlight;
51
+ constructor(options?: RegistryListingResolverOptions);
52
+ resolve(terms: Pick<OpenerTerms, "operator" | "serviceRef" | "ratePerSecond">): Promise<ListingResolution>;
53
+ private services;
54
+ }
55
+ //# sourceMappingURL=listing-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listing-resolver.d.ts","sourceRoot":"","sources":["../../src/x402-opener/listing-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,MAAM,EACX,8BAA8B,GAC9B,mBAAmB,GACnB,mBAAmB,GACnB,4BAA4B,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CACL,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC,GACpE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,8BAA8B;IAC7C,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;CAC1D;AAED,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,qBAAa,uBAAwB,YAAW,6BAA6B;IAS/D,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,KAAK,CAEC;IACd,OAAO,CAAC,QAAQ,CAAoD;gBAEvC,OAAO,GAAE,8BAAmC;IAanE,OAAO,CACX,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC,GACpE,OAAO,CAAC,iBAAiB,CAAC;YA+Cf,QAAQ;CAwCvB"}
@@ -0,0 +1,125 @@
1
+ import { DEFAULT_METRIK_PUBLIC_REGISTRY_URL, discoverServicesDetailed, } from "../discovery/registry.js";
2
+ export const DEFAULT_LISTING_CACHE_SECONDS = 60;
3
+ export class RegistryListingResolver {
4
+ options;
5
+ registryUrl;
6
+ cacheSeconds;
7
+ now;
8
+ cache;
9
+ inFlight;
10
+ constructor(options = {}) {
11
+ this.options = options;
12
+ this.registryUrl =
13
+ options.registryUrl ?? DEFAULT_METRIK_PUBLIC_REGISTRY_URL;
14
+ // eslint-disable-next-line no-new -- validates the URL is well-formed.
15
+ new URL(this.registryUrl);
16
+ const cacheSeconds = options.cacheSeconds ?? DEFAULT_LISTING_CACHE_SECONDS;
17
+ if (!Number.isFinite(cacheSeconds) || cacheSeconds < 0) {
18
+ throw new Error("cacheSeconds must be a non-negative number");
19
+ }
20
+ this.cacheSeconds = cacheSeconds;
21
+ this.now = options.now ?? (() => Math.floor(Date.now() / 1000));
22
+ }
23
+ async resolve(terms) {
24
+ let services;
25
+ try {
26
+ services = await this.services();
27
+ }
28
+ catch (error) {
29
+ return {
30
+ ok: false,
31
+ reason: "listing-registry-unavailable",
32
+ message: error instanceof Error ? error.message : String(error),
33
+ };
34
+ }
35
+ const serviceRef = terms.serviceRef.toLowerCase();
36
+ const operator = terms.operator.toLowerCase();
37
+ const matches = services.filter((service) => service.serviceRef.toLowerCase() === serviceRef &&
38
+ service.operator.toLowerCase() === operator);
39
+ if (matches.length === 0) {
40
+ return {
41
+ ok: false,
42
+ reason: "listing-not-found",
43
+ message: `no operator-signed listing for serviceRef ${terms.serviceRef} signed by ${terms.operator}`,
44
+ };
45
+ }
46
+ if (matches.length > 1) {
47
+ return {
48
+ ok: false,
49
+ reason: "listing-ambiguous",
50
+ message: `${matches.length} listings match serviceRef ${terms.serviceRef}`,
51
+ };
52
+ }
53
+ const listing = matches[0];
54
+ const bounds = signedRateBounds(listing);
55
+ if ((bounds.min !== undefined && terms.ratePerSecond < bounds.min) ||
56
+ (bounds.max !== undefined && terms.ratePerSecond > bounds.max)) {
57
+ return {
58
+ ok: false,
59
+ reason: "listing-rate-out-of-bounds",
60
+ message: `ratePerSecond ${terms.ratePerSecond} is outside the listing's signed bounds [${bounds.min ?? "-"}, ${bounds.max ?? "-"}]`,
61
+ };
62
+ }
63
+ return { ok: true, listing };
64
+ }
65
+ async services() {
66
+ const nowSeconds = this.now();
67
+ if (this.cache !== undefined &&
68
+ this.cacheSeconds > 0 &&
69
+ nowSeconds - this.cache.at < this.cacheSeconds) {
70
+ return this.cache.services;
71
+ }
72
+ if (this.inFlight !== undefined) {
73
+ return this.inFlight;
74
+ }
75
+ const read = discoverServicesDetailed({
76
+ registryUrl: this.registryUrl,
77
+ // An explicit empty key pins the credential-free public read: the
78
+ // METRIK_AGENT_REGISTRY_APIKEY env override must not switch transports.
79
+ apiKey: "",
80
+ ...(this.options.fetch === undefined
81
+ ? {}
82
+ : { fetch: this.options.fetch }),
83
+ ...(this.options.timeoutMs === undefined
84
+ ? {}
85
+ : { timeoutMs: this.options.timeoutMs }),
86
+ ...(this.options.logger === undefined
87
+ ? {}
88
+ : { logger: this.options.logger }),
89
+ }).then((result) => {
90
+ if (!result.registryAvailable) {
91
+ throw new Error("registry reported itself unavailable");
92
+ }
93
+ this.cache = { at: this.now(), services: result.services };
94
+ return result.services;
95
+ });
96
+ this.inFlight = read;
97
+ try {
98
+ return await read;
99
+ }
100
+ finally {
101
+ this.inFlight = undefined;
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * Rate bounds from the SIGNED descriptor's `commercial` block, when present.
107
+ * A legacy binding carries none.
108
+ */
109
+ function signedRateBounds(listing) {
110
+ const signed = listing.signed;
111
+ const descriptor = signed.descriptor;
112
+ const commercial = descriptor?.commercial;
113
+ if (commercial === undefined) {
114
+ return {};
115
+ }
116
+ return {
117
+ ...(commercial.minRatePerSecond === undefined
118
+ ? {}
119
+ : { min: BigInt(commercial.minRatePerSecond) }),
120
+ ...(commercial.maxRatePerSecond === undefined
121
+ ? {}
122
+ : { max: BigInt(commercial.maxRatePerSecond) }),
123
+ };
124
+ }
125
+ //# sourceMappingURL=listing-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listing-resolver.js","sourceRoot":"","sources":["../../src/x402-opener/listing-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,wBAAwB,GAEzB,MAAM,0BAA0B,CAAC;AAqDlC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,MAAM,OAAO,uBAAuB;IASL;IARZ,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,GAAG,CAAe;IAC3B,KAAK,CAEC;IACN,QAAQ,CAAoD;IAEpE,YAA6B,UAA0C,EAAE;QAA5C,YAAO,GAAP,OAAO,CAAqC;QACvE,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,WAAW,IAAI,kCAAkC,CAAC;QAC5D,uEAAuE;QACvE,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,6BAA6B,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAqE;QAErE,IAAI,QAAsC,CAAC;QAC3C,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,8BAA8B;gBACtC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU;YAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAC9C,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,mBAAmB;gBAC3B,OAAO,EAAE,6CAA6C,KAAK,CAAC,UAAU,cAAc,KAAK,CAAC,QAAQ,EAAE;aACrG,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,mBAAmB;gBAC3B,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,8BAA8B,KAAK,CAAC,UAAU,EAAE;aAC3E,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAsB,CAAC;QAChD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,IACE,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC;YAC9D,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,EAC9D,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,4BAA4B;gBACpC,OAAO,EAAE,iBAAiB,KAAK,CAAC,aAAa,4CAA4C,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,GAAG,GAAG;aACpI,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IACE,IAAI,CAAC,KAAK,KAAK,SAAS;YACxB,IAAI,CAAC,YAAY,GAAG,CAAC;YACrB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,EAC9C,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QACD,MAAM,IAAI,GAAG,wBAAwB,CAAC;YACpC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kEAAkE;YAClE,wEAAwE;YACxE,MAAM,EAAE,EAAE;YACV,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;gBACnC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACrC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAA0B;IAIlD,MAAM,MAAM,GAAG,OAAO,CAAC,MAA2C,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM,CAAC,UAOb,CAAC;IACd,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,CAAC;IAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,GAAG,CAAC,UAAU,CAAC,gBAAgB,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,UAAU,CAAC,gBAAgB,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,266 @@
1
+ import { type Account, type Address, type Chain, type Hex, type PublicClient, type Transport, type WalletClient } from "viem";
2
+ import { RelayerQueue } from "./relayer-queue.js";
3
+ import { type OpenerKind } from "./terms.js";
4
+ /**
5
+ * The gasless refund relay of the Metrik x402 opener facilitator
6
+ * (metrik-agent#119).
7
+ *
8
+ * A typical x402 payer holds only USDC. Paying through the opener is gasless
9
+ * (the facilitator's relayer submits `deployAndSettle`), but getting unearned
10
+ * money back needs two transactions: `close` (payer-only, because anyone else
11
+ * could cut a payer's service) and `reclaim`. This relay submits them from the
12
+ * same relayer, which pays the gas:
13
+ *
14
+ * - `close`: ONLY with the payer's EIP-712 `Close` signature, relayed as
15
+ * `opener.closeWithSig`. Verified off-chain against `payerOf(streamId)`, the
16
+ * payer's current opener nonce and the opener's own EIP-712 domain (read from
17
+ * the opener, ERC-5267) before anything is simulated.
18
+ * - `reclaim`: permissionless, because the contract fixes both the amount (a
19
+ * Merkle proof against the escrow's LATEST checkpoint root) and the
20
+ * destination (`payerOf(streamId)`). The relay fetches the proof from the
21
+ * oracle itself and checks it against the on-chain root before simulating.
22
+ * - `reclaimUnverified` (the no-proof escape hatch, which forfeits the
23
+ * operator's earned-but-unclaimed revenue): ONLY with the payer's EIP-712
24
+ * `ReclaimUnverified` signature, as `reclaimUnverifiedWithSig`. The unsigned
25
+ * `reclaimUnverified` entrypoint is payer-only on-chain and is never called.
26
+ *
27
+ * There is no automatic refund and no keeper: nothing here runs unless someone
28
+ * calls an endpoint.
29
+ *
30
+ * ## Bounded against gas abuse
31
+ *
32
+ * - Only streams whose escrow buyer is an opener of a configured factory
33
+ * (`factory.isOpener(stream.buyer)`, on-chain: the stream factory, and the
34
+ * upfront factory when configured) are served; everything else is `404`
35
+ * before any signature check, oracle call or simulation. Which factory
36
+ * claims the opener decides its KIND, and so the EIP-712 domain its payer
37
+ * signs under ("Metrik X402StreamOpener" or "Metrik X402UpfrontStreamOpener").
38
+ * - Stream id 0 is an UPFRONT-ONLY payment (`upfrontAmount == price`): no
39
+ * stream exists and nothing was escrowed. Every route answers
40
+ * `nothing-to-refund` for it without a chain read, and no close or reclaim is
41
+ * ever submitted for it.
42
+ * - For an upfront opener, only the stream deposit (`price - upfrontAmount`)
43
+ * is refundable; the status reports that as `maxRefund`, never the price.
44
+ * - Every precondition the contract would check is read first (status, expiry,
45
+ * settlement window, reclaimed flag, non-zero refund). A request that would
46
+ * have no real effect never reaches the relayer.
47
+ * - Nothing is broadcast without a successful simulation from the relayer, and
48
+ * a reclaim's simulation must return exactly the non-zero amount
49
+ * `reclaimableFor` predicted.
50
+ * - At most ONE successful close and ONE successful reclaim (proof or escape
51
+ * hatch — the escrow allows one) per stream from this instance. Concurrent
52
+ * duplicates are refused synchronously; a repeat after success is refused
53
+ * without an RPC write.
54
+ * - Submission attempts are capped per stream and globally per minute; refused
55
+ * requests (bad signature, no effect) do not consume the per-stream budget,
56
+ * so nobody can lock a payer out by spamming forged requests.
57
+ * - Success is reported ONLY from a mined receipt that carries the expected
58
+ * escrow and opener events for exactly this stream, payer and amount.
59
+ * - Submissions go through the relayer's shared, serialized queue.
60
+ */
61
+ /** EIP-712 domain name/version of `X402StreamOpener`. Checked against the opener's ERC-5267 domain. */
62
+ export declare const OPENER_EIP712_NAME = "Metrik X402StreamOpener";
63
+ export declare const OPENER_EIP712_VERSION = "1";
64
+ /** EIP-712 domain name of `X402UpfrontStreamOpener` (same version, same types). */
65
+ export declare const UPFRONT_OPENER_EIP712_NAME = "Metrik X402UpfrontStreamOpener";
66
+ /** The EIP-712 domain name an opener of `kind` signs under. */
67
+ export declare function openerEip712Name(kind: OpenerKind): string;
68
+ /** True for the all-zero bytes32: an upfront-only payment, no stream. */
69
+ export declare function isNoStreamId(streamId: string): boolean;
70
+ /** The two payer-signed opener actions. */
71
+ export type OpenerSignedAction = "Close" | "ReclaimUnverified";
72
+ declare const ACTION_FIELDS: readonly [{
73
+ readonly name: "streamId";
74
+ readonly type: "bytes32";
75
+ }, {
76
+ readonly name: "nonce";
77
+ readonly type: "uint256";
78
+ }, {
79
+ readonly name: "deadline";
80
+ readonly type: "uint256";
81
+ }];
82
+ /** Default per-stream relayed submission attempts per minute. */
83
+ export declare const DEFAULT_REFUND_SUBMISSIONS_PER_STREAM_PER_MINUTE = 3;
84
+ /** Default relayed refund submission attempts per minute, all streams. */
85
+ export declare const DEFAULT_REFUND_SUBMISSIONS_PER_MINUTE = 30;
86
+ /** A signed deadline must leave at least this long for the tx to be mined. */
87
+ export declare const MIN_SIGNATURE_DEADLINE_HEADROOM_SECONDS = 60n;
88
+ /**
89
+ * EIP-712 typed data for a payer-signed opener action (`Close` or
90
+ * `ReclaimUnverified`), domain-bound to one opener. `nonce` is the payer's
91
+ * current `opener.nonces(payer)`.
92
+ */
93
+ export declare function openerActionTypedData(input: {
94
+ readonly action: OpenerSignedAction;
95
+ /** The opener's kind (read on-chain); default `"stream"`. Picks the domain name. */
96
+ readonly kind?: OpenerKind;
97
+ readonly opener: Address;
98
+ readonly chainId: number;
99
+ readonly streamId: Hex;
100
+ readonly nonce: bigint;
101
+ readonly deadline: bigint;
102
+ }): {
103
+ readonly domain: {
104
+ readonly name: string;
105
+ readonly version: "1";
106
+ readonly chainId: number;
107
+ readonly verifyingContract: `0x${string}`;
108
+ };
109
+ readonly types: Record<OpenerSignedAction, typeof ACTION_FIELDS>;
110
+ readonly primaryType: OpenerSignedAction;
111
+ readonly message: {
112
+ readonly streamId: `0x${string}`;
113
+ readonly nonce: bigint;
114
+ readonly deadline: bigint;
115
+ };
116
+ };
117
+ /**
118
+ * The escrow's canonical checkpoint leaf,
119
+ * `keccak256(bytes.concat(keccak256(abi.encode(streamId, cumulative))))` —
120
+ * double-hashed, OpenZeppelin `StandardMerkleTree`-compatible.
121
+ */
122
+ export declare function checkpointLeaf(streamId: Hex, cumulativeAmount: bigint): Hex;
123
+ /** OpenZeppelin `MerkleProof.processProof` (commutative, sorted-pair keccak). */
124
+ export declare function processMerkleProof(leaf: Hex, proof: readonly Hex[]): Hex;
125
+ export interface OpenerRefundRelayConfig {
126
+ /** CAIP-2 network (`eip155:<chainId>`), as the registry gives it. Must match the RPC's chain id. */
127
+ readonly network: string;
128
+ readonly factoryAddress: Address;
129
+ /**
130
+ * The `X402UpfrontStreamOpenerFactory` whose clones are served too (same
131
+ * escrow, checked by {@link OpenerRefundRelay.init}). Unset = stream openers only.
132
+ */
133
+ readonly upfrontFactoryAddress?: Address;
134
+ /** The `StreamEscrowV2` the factory settles into (checked by {@link OpenerRefundRelay.init}). */
135
+ readonly escrowAddress: Address;
136
+ /** Base URL of the Metrik oracle that serves `GET /checkpoint/proof?streamId=`. */
137
+ readonly oracleUrl: string;
138
+ readonly publicClient: PublicClient<Transport, Chain | undefined>;
139
+ /** The relayer. Pays gas only; never receives or holds a refund. */
140
+ readonly walletClient: WalletClient<Transport, Chain | undefined, Account>;
141
+ /** Share with the opener scheme when both use one relayer key. */
142
+ readonly relayerQueue?: RelayerQueue;
143
+ /** How long to wait for a receipt before answering `202 pending`. Default 60 s. */
144
+ readonly receiptTimeoutMs?: number;
145
+ /** Oracle proof request timeout. Default 10 s. */
146
+ readonly oracleTimeoutMs?: number;
147
+ readonly maxSubmissionsPerStreamPerMinute?: number;
148
+ readonly maxSubmissionsPerMinute?: number;
149
+ /** Public origin of this service, used for absolute links in `next`. */
150
+ readonly publicBaseUrl?: string;
151
+ readonly fetch?: typeof fetch;
152
+ /** Injectable clock (ms) for the rate windows, for tests. Chain time drives every contract precondition. */
153
+ readonly nowMs?: () => number;
154
+ /**
155
+ * How long a stream's status and its oracle proof are reused, seconds, so
156
+ * repeated requests for the same stream do not re-hit the RPC or the oracle.
157
+ * Default {@link DEFAULT_REFUND_READ_CACHE_SECONDS}; 0 disables. Dropped for
158
+ * a stream as soon as a relayed transaction for it is mined. Never used to
159
+ * decide a broadcast on its own: the simulation re-checks on-chain state.
160
+ */
161
+ readonly readCacheSeconds?: number;
162
+ /** Where failure details go (server-side only; never sent to clients). */
163
+ readonly logger?: Pick<Console, "error">;
164
+ /**
165
+ * The escrow's generation, which decides when the no-proof escape hatch
166
+ * opens (V2: `expiresAt + grace`; V3: `min(expiresAt, closedAt) + grace`,
167
+ * read from `escapeHatchReadyAt`). Default: the SDK registry's
168
+ * `escrow.generation` for (chain, escrow), else `v2`.
169
+ */
170
+ readonly escrowGeneration?: string;
171
+ }
172
+ /** Default reuse window for a stream's status and oracle proof. */
173
+ export declare const DEFAULT_REFUND_READ_CACHE_SECONDS = 5;
174
+ /** HTTP-shaped outcome of one relay call. `body` is JSON-safe. */
175
+ export interface RefundRelayResponse {
176
+ readonly status: number;
177
+ readonly body: Record<string, unknown>;
178
+ /** Suggested `Retry-After`, seconds. */
179
+ readonly retryAfterSeconds?: number;
180
+ }
181
+ /** What the facilitator HTTP server needs from a refund relay. */
182
+ export interface RefundRelayHandler {
183
+ status(streamId: string): Promise<RefundRelayResponse>;
184
+ close(streamId: string, body: unknown): Promise<RefundRelayResponse>;
185
+ reclaim(streamId: string): Promise<RefundRelayResponse>;
186
+ reclaimUnverified(streamId: string, body: unknown): Promise<RefundRelayResponse>;
187
+ }
188
+ export declare class OpenerRefundRelay implements RefundRelayHandler {
189
+ private readonly config;
190
+ private readonly chainId;
191
+ private readonly factory;
192
+ private readonly upfrontFactory;
193
+ private readonly escrow;
194
+ private readonly oracleUrl;
195
+ private readonly queue;
196
+ private readonly receiptTimeoutMs;
197
+ private readonly oracleTimeoutMs;
198
+ private readonly fetchImpl;
199
+ private readonly perStream;
200
+ private readonly global;
201
+ private readonly publicBaseUrl;
202
+ private readonly ledger;
203
+ private escapeGraceSeconds;
204
+ private readonly generation;
205
+ private readonly nowMs;
206
+ private readonly cacheMs;
207
+ private readonly logger;
208
+ private readonly statusCache;
209
+ private readonly proofCache;
210
+ constructor(config: OpenerRefundRelayConfig);
211
+ /**
212
+ * Proves the wiring before serving: the RPC is on the configured chain and
213
+ * the factory settles into the configured escrow. Caches the escrow's
214
+ * immutable `escapeGraceSeconds`. Throws otherwise (refuse to start).
215
+ */
216
+ init(): Promise<void>;
217
+ status(rawStreamId: string): Promise<RefundRelayResponse>;
218
+ private computeStatus;
219
+ close(rawStreamId: string, body: unknown): Promise<RefundRelayResponse>;
220
+ reclaim(rawStreamId: string): Promise<RefundRelayResponse>;
221
+ reclaimUnverified(rawStreamId: string, body: unknown): Promise<RefundRelayResponse>;
222
+ private fresh;
223
+ private remember;
224
+ private forget;
225
+ /** Logs a failure server-side; clients only ever get a generic code. */
226
+ private log;
227
+ private logged;
228
+ private unavailable;
229
+ /** When the no-proof escape hatch opens for this stream, per generation. */
230
+ private escapeHatchAt;
231
+ private grace;
232
+ private link;
233
+ /**
234
+ * Ledger state that answers a request before any chain read: a delivered
235
+ * success, a blocked (unknown-outcome) tx, a concurrent in-flight request,
236
+ * or a pending tx to reconcile (never re-broadcast).
237
+ */
238
+ private precheck;
239
+ /**
240
+ * Claims the one submission slot for `key` (synchronously), then simulates
241
+ * and broadcasts through the shared relayer queue. `expectedResult`, when
242
+ * set, is the exact non-zero amount the simulation must return.
243
+ */
244
+ private submit;
245
+ private awaitOutcome;
246
+ /** Streams whose escrow buyer is an opener of the configured factory, or a 404. */
247
+ private resolve;
248
+ /** Off-chain check of a payer-signed opener action. `undefined` = valid. */
249
+ private verifyPayerSignature;
250
+ private chainNow;
251
+ private readNonce;
252
+ /** An upfront opener's immutable terms (`price`, `upfrontAmount`). */
253
+ private readUpfrontTerms;
254
+ private readLatestCheckedAt;
255
+ private readReclaimable;
256
+ /**
257
+ * The oracle's proof for `streamId`, accepted ONLY if it is well-formed, is
258
+ * for this stream, verifies under the escrow's double-hashed leaf, and its
259
+ * root is the escrow's on-chain `latestCheckpointRoot` (the only root the
260
+ * buyer's reclaim settles against).
261
+ */
262
+ private fetchProof;
263
+ private loadProof;
264
+ }
265
+ export {};
266
+ //# sourceMappingURL=refund-relay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refund-relay.d.ts","sourceRoot":"","sources":["../../src/x402-opener/refund-relay.ts"],"names":[],"mappings":"AAKA,OAAO,EAYL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,GAAG,EAER,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AASjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,uGAAuG;AACvG,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAC5D,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,mFAAmF;AACnF,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAE3E,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,2CAA2C;AAC3C,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAE/D,QAAA,MAAM,aAAa;;;;;;;;;EAIT,CAAC;AAEX,iEAAiE;AACjE,eAAO,MAAM,gDAAgD,IAAI,CAAC;AAClE,0EAA0E;AAC1E,eAAO,MAAM,qCAAqC,KAAK,CAAC;AACxD,8EAA8E;AAC9E,eAAO,MAAM,uCAAuC,MAAM,CAAC;AAY3D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;;;;;;;oBAQ+C,MAAM,CAChD,kBAAkB,EAClB,OAAO,aAAa,CACrB;;;;;;;EAQJ;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,GAAG,GAAG,CAW3E;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,GAAG,GAAG,CASxE;AAED,MAAM,WAAW,uBAAuB;IACtC,oGAAoG;IACpG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,iGAAiG;IACjG,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,mFAAmF;IACnF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;IAClE,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3E,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,mFAAmF;IACnF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,kDAAkD;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IACnD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,4GAA4G;IAC5G,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,mEAAmE;AACnE,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAGnD,kEAAkE;AAClE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,wCAAwC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxD,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjC;AA6ID,qBAAa,iBAAkB,YAAW,kBAAkB;IA4B9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IA3BnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGxB;IACJ,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGvB;gBAEyB,MAAM,EAAE,uBAAuB;IA0E5D;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCrB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAcjD,aAAa;IA2LrB,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,mBAAmB,CAAC;IAuDzB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0F1D,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,mBAAmB,CAAC;IA2E/B,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,MAAM;IAKd,wEAAwE;IACxE,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,WAAW;IAWnB,4EAA4E;YAC9D,aAAa;IAc3B,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,IAAI;IAMZ;;;;OAIG;YACW,QAAQ;IAgCtB;;;;OAIG;YACW,MAAM;YA2GN,YAAY;IA8E1B,mFAAmF;YACrE,OAAO;IA2ErB,4EAA4E;YAC9D,oBAAoB;YA4FpB,QAAQ;YAOR,SAAS;IAWvB,sEAAsE;YACxD,gBAAgB;YAchB,mBAAmB;YAUnB,eAAe;IAc7B;;;;;OAKG;YACW,UAAU;YAUV,SAAS;CAqGxB"}