@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":"scheme.js","sourceRoot":"","sources":["../../src/x402-opener/scheme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ import { type Address, type Hex } from "viem";
2
+ /**
3
+ * Shared vocabulary of the x402 v2 escrow-opener path (metrik-agent#116).
4
+ *
5
+ * A standard x402 v2 `exact` payment (an EIP-3009 `transferWithAuthorization`)
6
+ * is settled through the ownerless `X402StreamOpenerFactory`
7
+ * (metrik-contracts#48): the x402 `payTo` is the CREATE2 address of the opener
8
+ * for one immutable set of stream {@link OpenerTerms}, so the payer's signature
9
+ * (which binds `to`) commits to those terms, and the opener turns the payment
10
+ * into an ordinary `StreamEscrowV2` stream with `deposit = amount`.
11
+ *
12
+ * This module has no network or package side effects: it is the pure,
13
+ * dependency-free part shared by the facilitator and the gateway.
14
+ */
15
+ /** Scheme name. The standard x402 `exact` scheme, nothing Metrik-specific. */
16
+ export declare const OPENER_SCHEME: "exact";
17
+ /** Public docs for the x402 opener path, linked from the 402. */
18
+ export declare const DEFAULT_OPENER_DOCS_URL = "https://github.com/Absol-Labs/metrik-agent/blob/main/docs/x402.md";
19
+ /**
20
+ * Key under `PaymentRequirements.extra` that carries the opener terms. The
21
+ * facilitator reads the terms ONLY from here, recomputes the opener address
22
+ * on-chain and requires it to equal `payTo`, so a tampered value can never
23
+ * redirect funds: it just fails verification.
24
+ */
25
+ export declare const OPENER_EXTRA_KEY: "metrikStreamOpener";
26
+ /** Immutable per-listing stream terms, mirroring the Solidity `Terms` struct. */
27
+ export interface OpenerTerms {
28
+ readonly operator: Address;
29
+ readonly serviceRef: Hex;
30
+ /** USDC base units per second. */
31
+ readonly ratePerSecond: bigint;
32
+ /** Seconds. */
33
+ readonly maxDuration: bigint;
34
+ }
35
+ /**
36
+ * Which opener contract a factory deploys: `"stream"` (`X402StreamOpener`,
37
+ * 4-field terms, the whole payment funds a stream) or `"upfront"`
38
+ * (`X402UpfrontStreamOpener`, 6-field terms: a fixed `price` whose
39
+ * non-refundable `upfrontAmount` is paid to the seller at settlement and whose
40
+ * remainder funds a stream). Decided by WHICH configured factory a quote names,
41
+ * never by the wire fields alone.
42
+ */
43
+ export type OpenerKind = "stream" | "upfront";
44
+ /** `termsVersion` of each opener kind's `extra.metrikStreamOpener` (as the SDK checks it). */
45
+ export declare const OPENER_TERMS_VERSION: {
46
+ readonly stream: "stream-1";
47
+ readonly upfront: "upfront-1";
48
+ };
49
+ /**
50
+ * The 6-field terms of an `X402UpfrontStreamOpener` (metrik-contracts#54),
51
+ * mirroring the Solidity struct. Every field is committed by the `payTo`.
52
+ */
53
+ export interface UpfrontOpenerTerms extends OpenerTerms {
54
+ /** The exact x402 amount: the opener accepts this value and nothing else. */
55
+ readonly price: bigint;
56
+ /** NON-REFUNDABLE part paid to the seller (net of the protocol fee) at settlement. `<= price`. */
57
+ readonly upfrontAmount: bigint;
58
+ }
59
+ /** The refundable, metered part of an upfront opener's price (the stream deposit). */
60
+ export declare function upfrontRefundable(terms: UpfrontOpenerTerms): bigint;
61
+ /** True when an upfront opener opens no stream at all (`upfrontAmount == price`). */
62
+ export declare function isUpfrontOnly(terms: UpfrontOpenerTerms): boolean;
63
+ /**
64
+ * The upfront terms a gateway may quote: exactly the factory's
65
+ * `validateTerms` (via `@absol-labs/shared`'s `validateUpfrontTerms`, so a
66
+ * `payTo` no transaction can deploy is never quoted), a fixed non-zero price,
67
+ * and a metered part (`price - upfrontAmount`) the stream can actually earn
68
+ * (`<= ratePerSecond * maxDuration`) — the SDK buyer refuses anything else.
69
+ */
70
+ export declare function assertValidUpfrontTerms(terms: UpfrontOpenerTerms): void;
71
+ /** Solidity-tuple view of 6-field upfront terms for viem contract calls. */
72
+ export declare function upfrontTermsTuple(terms: UpfrontOpenerTerms): {
73
+ readonly operator: Address;
74
+ readonly serviceRef: Hex;
75
+ readonly ratePerSecond: bigint;
76
+ readonly maxDuration: bigint;
77
+ readonly price: bigint;
78
+ readonly upfrontAmount: bigint;
79
+ };
80
+ /** JSON-safe projection of {@link OpenerTerms} plus the factory that prices them. */
81
+ export interface OpenerTermsExtra {
82
+ readonly factory: Address;
83
+ readonly operator: Address;
84
+ readonly serviceRef: Hex;
85
+ readonly ratePerSecond: string;
86
+ readonly maxDuration: string;
87
+ /** Upfront openers only: the exact price (base units). */
88
+ readonly price?: string;
89
+ /** Upfront openers only: the non-refundable per-call part (base units). */
90
+ readonly upfrontAmount?: string;
91
+ /** `stream-1` / `upfront-1`; optional, must match the factory's kind when present. */
92
+ readonly termsVersion?: string;
93
+ /**
94
+ * Informational only (metrik-agent#119): where the payer gets unearned money
95
+ * back without ETH, as a template containing `{streamId}`. Never used for
96
+ * settlement; the facilitator validates it is an http(s) link and ignores it.
97
+ */
98
+ readonly refundUrl?: string;
99
+ /** Informational only: docs for this payment path. */
100
+ readonly docsUrl?: string;
101
+ }
102
+ /** True for an absolute http(s) URL of sane length. */
103
+ export declare function isHttpLink(value: unknown): value is string;
104
+ export declare class InvalidOpenerTermsError extends Error {
105
+ constructor(message: string);
106
+ }
107
+ /** Parses a non-negative base-10 integer string. Throws on anything else. */
108
+ export declare function parseUintString(value: unknown, field: string): bigint;
109
+ /**
110
+ * Validates terms the way the factory's `deploy` does (non-zero operator, rate
111
+ * and duration, `maxDuration` within `uint64`) plus the shape checks the
112
+ * contract cannot do for us (32-byte serviceRef).
113
+ */
114
+ export declare function assertValidTerms(terms: OpenerTerms): void;
115
+ /** The largest deposit a stream on these terms can ever earn out: `rate * maxDuration`. */
116
+ export declare function maxEarnable(terms: OpenerTerms): bigint;
117
+ /**
118
+ * The price (= stream deposit) must be positive and must not exceed what the
119
+ * stream can ever accrue. A deposit above `rate * maxDuration` would lock money
120
+ * the seller can never earn, reclaimable only by a second buyer action.
121
+ */
122
+ export declare function assertValidPrice(price: bigint, terms: OpenerTerms): void;
123
+ export declare function termsToExtra(factory: Address, terms: OpenerTerms): OpenerTermsExtra;
124
+ /** The 402 `extra.metrikStreamOpener` terms of an upfront opener quote. */
125
+ export declare function upfrontTermsToExtra(factory: Address, terms: UpfrontOpenerTerms): OpenerTermsExtra;
126
+ /**
127
+ * Reads opener terms from an untrusted `PaymentRequirements.extra`. Every field
128
+ * is re-validated; unknown keys under the opener object are rejected so the
129
+ * wire shape cannot drift silently. `price` / `upfrontAmount` are returned as
130
+ * `upfront` when present (both or neither); whether they are REQUIRED or
131
+ * FORBIDDEN depends on the factory's kind, which only the caller knows.
132
+ */
133
+ export declare function termsFromExtra(extra: unknown): {
134
+ readonly factory: Address;
135
+ readonly terms: OpenerTerms;
136
+ readonly upfront?: {
137
+ readonly price: bigint;
138
+ readonly upfrontAmount: bigint;
139
+ };
140
+ readonly termsVersion?: string;
141
+ };
142
+ /** Chain id encoded in an `eip155:<id>` CAIP-2 identifier. Throws otherwise. */
143
+ export declare function chainIdFromNetwork(network: string): number;
144
+ /** Solidity-tuple view of terms for viem contract calls. */
145
+ export declare function termsTuple(terms: OpenerTerms): {
146
+ readonly operator: Address;
147
+ readonly serviceRef: Hex;
148
+ readonly ratePerSecond: bigint;
149
+ readonly maxDuration: bigint;
150
+ };
151
+ /** A bazaar-shaped `{info: {input, output?}, schema?}` declaration. */
152
+ export interface X402SchemaDeclaration {
153
+ readonly info: {
154
+ readonly input: {
155
+ readonly type: "http";
156
+ } & Record<string, unknown>;
157
+ readonly output?: Record<string, unknown>;
158
+ };
159
+ readonly schema?: Record<string, unknown>;
160
+ }
161
+ /** Largest accepted schema declaration, serialized bytes. */
162
+ export declare const MAX_SCHEMA_DECLARATION_BYTES: number;
163
+ /** Validates a bazaar-shaped schema declaration. Throws on anything else. */
164
+ export declare function assertSchemaDeclaration(value: unknown): asserts value is X402SchemaDeclaration;
165
+ //# sourceMappingURL=terms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terms.d.ts","sourceRoot":"","sources":["../../src/x402-opener/terms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,304 @@
1
+ import { InvalidUpfrontTermsError, validateUpfrontTerms, } from "@absol-labs/shared";
2
+ import { getAddress, isAddress, isHex } from "viem";
3
+ /**
4
+ * Shared vocabulary of the x402 v2 escrow-opener path (metrik-agent#116).
5
+ *
6
+ * A standard x402 v2 `exact` payment (an EIP-3009 `transferWithAuthorization`)
7
+ * is settled through the ownerless `X402StreamOpenerFactory`
8
+ * (metrik-contracts#48): the x402 `payTo` is the CREATE2 address of the opener
9
+ * for one immutable set of stream {@link OpenerTerms}, so the payer's signature
10
+ * (which binds `to`) commits to those terms, and the opener turns the payment
11
+ * into an ordinary `StreamEscrowV2` stream with `deposit = amount`.
12
+ *
13
+ * This module has no network or package side effects: it is the pure,
14
+ * dependency-free part shared by the facilitator and the gateway.
15
+ */
16
+ /** Scheme name. The standard x402 `exact` scheme, nothing Metrik-specific. */
17
+ export const OPENER_SCHEME = "exact";
18
+ /*
19
+ * Network, USDC, escrow, factory and oracle defaults are NOT constants here:
20
+ * they come from the `@absol-labs/sdk` network registry (see `../network.ts`),
21
+ * so a new deployment is a registry change, never an edit to this module.
22
+ */
23
+ /** Public docs for the x402 opener path, linked from the 402. */
24
+ export const DEFAULT_OPENER_DOCS_URL = "https://github.com/Absol-Labs/metrik-agent/blob/main/docs/x402.md";
25
+ /** Longest informational link accepted in `extra.metrikStreamOpener`. */
26
+ const MAX_LINK_LENGTH = 2048;
27
+ /**
28
+ * Key under `PaymentRequirements.extra` that carries the opener terms. The
29
+ * facilitator reads the terms ONLY from here, recomputes the opener address
30
+ * on-chain and requires it to equal `payTo`, so a tampered value can never
31
+ * redirect funds: it just fails verification.
32
+ */
33
+ export const OPENER_EXTRA_KEY = "metrikStreamOpener";
34
+ /** `uint64` ceiling for `maxDuration`. */
35
+ const MAX_UINT64 = (1n << 64n) - 1n;
36
+ /** `termsVersion` of each opener kind's `extra.metrikStreamOpener` (as the SDK checks it). */
37
+ export const OPENER_TERMS_VERSION = {
38
+ stream: "stream-1",
39
+ upfront: "upfront-1",
40
+ };
41
+ /** The refundable, metered part of an upfront opener's price (the stream deposit). */
42
+ export function upfrontRefundable(terms) {
43
+ return terms.price - terms.upfrontAmount;
44
+ }
45
+ /** True when an upfront opener opens no stream at all (`upfrontAmount == price`). */
46
+ export function isUpfrontOnly(terms) {
47
+ return terms.price > 0n && terms.upfrontAmount === terms.price;
48
+ }
49
+ /**
50
+ * The upfront terms a gateway may quote: exactly the factory's
51
+ * `validateTerms` (via `@absol-labs/shared`'s `validateUpfrontTerms`, so a
52
+ * `payTo` no transaction can deploy is never quoted), a fixed non-zero price,
53
+ * and a metered part (`price - upfrontAmount`) the stream can actually earn
54
+ * (`<= ratePerSecond * maxDuration`) — the SDK buyer refuses anything else.
55
+ */
56
+ export function assertValidUpfrontTerms(terms) {
57
+ assertValidTerms(terms);
58
+ try {
59
+ validateUpfrontTerms({
60
+ operator: getAddress(terms.operator),
61
+ serviceRef: terms.serviceRef.toLowerCase(),
62
+ ratePerSecond: terms.ratePerSecond,
63
+ maxDuration: terms.maxDuration,
64
+ price: terms.price,
65
+ upfrontAmount: terms.upfrontAmount,
66
+ });
67
+ }
68
+ catch (error) {
69
+ throw new InvalidOpenerTermsError(error instanceof InvalidUpfrontTermsError || error instanceof Error
70
+ ? error.message
71
+ : String(error));
72
+ }
73
+ if (terms.price <= 0n) {
74
+ throw new InvalidOpenerTermsError("an upfront opener needs a fixed price > 0");
75
+ }
76
+ if (upfrontRefundable(terms) > maxEarnable(terms)) {
77
+ throw new InvalidOpenerTermsError(`the metered part ${upfrontRefundable(terms)} (price - upfrontAmount) exceeds ratePerSecond * maxDuration (${maxEarnable(terms)})`);
78
+ }
79
+ }
80
+ /** Solidity-tuple view of 6-field upfront terms for viem contract calls. */
81
+ export function upfrontTermsTuple(terms) {
82
+ return {
83
+ ...termsTuple(terms),
84
+ price: terms.price,
85
+ upfrontAmount: terms.upfrontAmount,
86
+ };
87
+ }
88
+ /** True for an absolute http(s) URL of sane length. */
89
+ export function isHttpLink(value) {
90
+ if (typeof value !== "string" || value.length > MAX_LINK_LENGTH)
91
+ return false;
92
+ try {
93
+ const url = new URL(value);
94
+ return url.protocol === "https:" || url.protocol === "http:";
95
+ }
96
+ catch {
97
+ return false;
98
+ }
99
+ }
100
+ export class InvalidOpenerTermsError extends Error {
101
+ constructor(message) {
102
+ super(message);
103
+ this.name = "InvalidOpenerTermsError";
104
+ }
105
+ }
106
+ /** Parses a non-negative base-10 integer string. Throws on anything else. */
107
+ export function parseUintString(value, field) {
108
+ if (typeof value !== "string" || !/^(0|[1-9]\d*)$/.test(value)) {
109
+ throw new InvalidOpenerTermsError(`${field} must be a base-10 integer string without sign or leading zeros`);
110
+ }
111
+ return BigInt(value);
112
+ }
113
+ /**
114
+ * Validates terms the way the factory's `deploy` does (non-zero operator, rate
115
+ * and duration, `maxDuration` within `uint64`) plus the shape checks the
116
+ * contract cannot do for us (32-byte serviceRef).
117
+ */
118
+ export function assertValidTerms(terms) {
119
+ if (!isAddress(terms.operator, { strict: false })) {
120
+ throw new InvalidOpenerTermsError("operator must be an EVM address");
121
+ }
122
+ if (/^0x0{40}$/i.test(terms.operator)) {
123
+ throw new InvalidOpenerTermsError("operator must not be the zero address");
124
+ }
125
+ if (!isHex(terms.serviceRef, { strict: true }) ||
126
+ terms.serviceRef.length !== 66) {
127
+ throw new InvalidOpenerTermsError("serviceRef must be a 32-byte hex value");
128
+ }
129
+ if (terms.ratePerSecond <= 0n) {
130
+ throw new InvalidOpenerTermsError("ratePerSecond must be > 0");
131
+ }
132
+ if (terms.maxDuration <= 0n || terms.maxDuration > MAX_UINT64) {
133
+ throw new InvalidOpenerTermsError("maxDuration must be > 0 and fit in uint64");
134
+ }
135
+ }
136
+ /** The largest deposit a stream on these terms can ever earn out: `rate * maxDuration`. */
137
+ export function maxEarnable(terms) {
138
+ return terms.ratePerSecond * terms.maxDuration;
139
+ }
140
+ /**
141
+ * The price (= stream deposit) must be positive and must not exceed what the
142
+ * stream can ever accrue. A deposit above `rate * maxDuration` would lock money
143
+ * the seller can never earn, reclaimable only by a second buyer action.
144
+ */
145
+ export function assertValidPrice(price, terms) {
146
+ if (price <= 0n) {
147
+ throw new InvalidOpenerTermsError("price must be > 0");
148
+ }
149
+ if (price > maxEarnable(terms)) {
150
+ throw new InvalidOpenerTermsError(`price ${price} exceeds ratePerSecond * maxDuration (${maxEarnable(terms)})`);
151
+ }
152
+ }
153
+ export function termsToExtra(factory, terms) {
154
+ return {
155
+ factory: getAddress(factory),
156
+ operator: getAddress(terms.operator),
157
+ serviceRef: terms.serviceRef.toLowerCase(),
158
+ ratePerSecond: terms.ratePerSecond.toString(),
159
+ maxDuration: terms.maxDuration.toString(),
160
+ };
161
+ }
162
+ /** The 402 `extra.metrikStreamOpener` terms of an upfront opener quote. */
163
+ export function upfrontTermsToExtra(factory, terms) {
164
+ return {
165
+ factory: getAddress(factory),
166
+ termsVersion: OPENER_TERMS_VERSION.upfront,
167
+ operator: getAddress(terms.operator),
168
+ serviceRef: terms.serviceRef.toLowerCase(),
169
+ ratePerSecond: terms.ratePerSecond.toString(),
170
+ maxDuration: terms.maxDuration.toString(),
171
+ price: terms.price.toString(),
172
+ upfrontAmount: terms.upfrontAmount.toString(),
173
+ };
174
+ }
175
+ /**
176
+ * Reads opener terms from an untrusted `PaymentRequirements.extra`. Every field
177
+ * is re-validated; unknown keys under the opener object are rejected so the
178
+ * wire shape cannot drift silently. `price` / `upfrontAmount` are returned as
179
+ * `upfront` when present (both or neither); whether they are REQUIRED or
180
+ * FORBIDDEN depends on the factory's kind, which only the caller knows.
181
+ */
182
+ export function termsFromExtra(extra) {
183
+ if (typeof extra !== "object" || extra === null) {
184
+ throw new InvalidOpenerTermsError("requirements.extra is missing");
185
+ }
186
+ const raw = extra[OPENER_EXTRA_KEY];
187
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
188
+ throw new InvalidOpenerTermsError(`requirements.extra.${OPENER_EXTRA_KEY} is missing`);
189
+ }
190
+ const record = raw;
191
+ const allowed = new Set([
192
+ "factory",
193
+ "operator",
194
+ "serviceRef",
195
+ "ratePerSecond",
196
+ "maxDuration",
197
+ "price",
198
+ "upfrontAmount",
199
+ "termsVersion",
200
+ "refundUrl",
201
+ "docsUrl",
202
+ ]);
203
+ for (const key of Object.keys(record)) {
204
+ if (!allowed.has(key)) {
205
+ throw new InvalidOpenerTermsError(`unknown key ${key} in requirements.extra.${OPENER_EXTRA_KEY}`);
206
+ }
207
+ }
208
+ for (const link of ["refundUrl", "docsUrl"]) {
209
+ if (record[link] !== undefined && !isHttpLink(record[link])) {
210
+ throw new InvalidOpenerTermsError(`${link} in requirements.extra.${OPENER_EXTRA_KEY} must be an http(s) URL`);
211
+ }
212
+ }
213
+ const { factory, operator, serviceRef } = record;
214
+ if (typeof factory !== "string" || !isAddress(factory, { strict: false })) {
215
+ throw new InvalidOpenerTermsError("factory must be an EVM address");
216
+ }
217
+ if (typeof operator !== "string" || !isAddress(operator, { strict: false })) {
218
+ throw new InvalidOpenerTermsError("operator must be an EVM address");
219
+ }
220
+ if (typeof serviceRef !== "string") {
221
+ throw new InvalidOpenerTermsError("serviceRef must be a string");
222
+ }
223
+ const terms = {
224
+ operator: getAddress(operator),
225
+ serviceRef: serviceRef,
226
+ ratePerSecond: parseUintString(record.ratePerSecond, "ratePerSecond"),
227
+ maxDuration: parseUintString(record.maxDuration, "maxDuration"),
228
+ };
229
+ assertValidTerms(terms);
230
+ const termsVersion = record.termsVersion;
231
+ if (termsVersion !== undefined &&
232
+ (typeof termsVersion !== "string" || termsVersion.length > 64)) {
233
+ throw new InvalidOpenerTermsError("termsVersion must be a short string");
234
+ }
235
+ if ((record.price === undefined) !== (record.upfrontAmount === undefined)) {
236
+ throw new InvalidOpenerTermsError("price and upfrontAmount must be given together (an upfront opener's terms) or not at all");
237
+ }
238
+ const upfront = record.price === undefined
239
+ ? undefined
240
+ : {
241
+ price: parseUintString(record.price, "price"),
242
+ upfrontAmount: parseUintString(record.upfrontAmount, "upfrontAmount"),
243
+ };
244
+ return {
245
+ factory: getAddress(factory),
246
+ terms,
247
+ ...(upfront === undefined ? {} : { upfront }),
248
+ ...(termsVersion === undefined
249
+ ? {}
250
+ : { termsVersion: termsVersion }),
251
+ };
252
+ }
253
+ /** Chain id encoded in an `eip155:<id>` CAIP-2 identifier. Throws otherwise. */
254
+ export function chainIdFromNetwork(network) {
255
+ const match = /^eip155:([1-9]\d*)$/.exec(network);
256
+ if (match === null) {
257
+ throw new InvalidOpenerTermsError(`network must be an eip155 CAIP-2 identifier, got ${network}`);
258
+ }
259
+ const chainId = Number(match[1]);
260
+ if (!Number.isSafeInteger(chainId)) {
261
+ throw new InvalidOpenerTermsError(`unsupported chain id in ${network}`);
262
+ }
263
+ return chainId;
264
+ }
265
+ /** Solidity-tuple view of terms for viem contract calls. */
266
+ export function termsTuple(terms) {
267
+ return {
268
+ operator: getAddress(terms.operator),
269
+ serviceRef: terms.serviceRef,
270
+ ratePerSecond: terms.ratePerSecond,
271
+ maxDuration: terms.maxDuration,
272
+ };
273
+ }
274
+ /** Largest accepted schema declaration, serialized bytes. */
275
+ export const MAX_SCHEMA_DECLARATION_BYTES = 16 * 1024;
276
+ /** Validates a bazaar-shaped schema declaration. Throws on anything else. */
277
+ export function assertSchemaDeclaration(value) {
278
+ if (JSON.stringify(value ?? null).length > MAX_SCHEMA_DECLARATION_BYTES) {
279
+ throw new Error(`the schema declaration exceeds ${MAX_SCHEMA_DECLARATION_BYTES} bytes`);
280
+ }
281
+ const record = value;
282
+ const info = record?.info;
283
+ const input = info?.input;
284
+ if (typeof record !== "object" ||
285
+ record === null ||
286
+ Array.isArray(record) ||
287
+ typeof info !== "object" ||
288
+ info === null ||
289
+ typeof input !== "object" ||
290
+ input === null ||
291
+ input.type !== "http" ||
292
+ (info.output !== undefined &&
293
+ (typeof info.output !== "object" || info.output === null)) ||
294
+ (record.schema !== undefined &&
295
+ (typeof record.schema !== "object" || record.schema === null))) {
296
+ throw new Error('the schema declaration must be {info: {input: {type: "http", ...}, output?}, schema?}');
297
+ }
298
+ for (const key of Object.keys(record)) {
299
+ if (key !== "info" && key !== "schema") {
300
+ throw new Error(`unknown key ${key} in the schema declaration`);
301
+ }
302
+ }
303
+ }
304
+ //# sourceMappingURL=terms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terms.js","sourceRoot":"","sources":["../../src/x402-opener/terms.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAA0B,MAAM,MAAM,CAAC;AAE5E;;;;;;;;;;;;GAYG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAG,OAAgB,CAAC;AAE9C;;;;GAIG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAClC,mEAAmE,CAAC;AAEtE,yEAAyE;AACzE,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAA6B,CAAC;AAE9D,0CAA0C;AAC1C,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AAsBpC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;CACyB,CAAC;AAahD,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;AAC3C,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,OAAO,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,KAAK,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC;QACH,oBAAoB,CAAC;YACnB,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;YACpC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAS;YACjD,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,uBAAuB,CAC/B,KAAK,YAAY,wBAAwB,IAAI,KAAK,YAAY,KAAK;YACjE,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAClB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,uBAAuB,CAC/B,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,uBAAuB,CAC/B,oBAAoB,iBAAiB,CAAC,KAAK,CAAC,iEAAiE,WAAW,CAAC,KAAK,CAAC,GAAG,CACnI,CAAC;IACJ,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IAQzD,OAAO;QACL,GAAG,UAAU,CAAC,KAAK,CAAC;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC;AACJ,CAAC;AAyBD,uDAAuD;AACvD,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,eAAe;QAAE,OAAO,KAAK,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,KAAa;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,uBAAuB,CAC/B,GAAG,KAAK,iEAAiE,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,uBAAuB,CAAC,uCAAuC,CAAC,CAAC;IAC7E,CAAC;IACD,IACE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1C,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE,EAC9B,CAAC;QACD,MAAM,IAAI,uBAAuB,CAAC,wCAAwC,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,uBAAuB,CAAC,2BAA2B,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,IAAI,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE,CAAC;QAC9D,MAAM,IAAI,uBAAuB,CAC/B,2CAA2C,CAC5C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC5C,OAAO,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAkB;IAChE,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,uBAAuB,CAC/B,SAAS,KAAK,yCAAyC,WAAW,CAAC,KAAK,CAAC,GAAG,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,KAAkB;IAElB,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;QAC5B,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAS;QACjD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC7C,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;KAC1C,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,KAAyB;IAEzB,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;QAC5B,YAAY,EAAE,oBAAoB,CAAC,OAAO;QAC1C,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAS;QACjD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC7C,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;QACzC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC7B,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAS3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,uBAAuB,CAAC,+BAA+B,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,GAAG,GAAI,KAAiC,CAAC,gBAAgB,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,uBAAuB,CAC/B,sBAAsB,gBAAgB,aAAa,CACpD,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,SAAS;QACT,UAAU;QACV,YAAY;QACZ,eAAe;QACf,aAAa;QACb,OAAO;QACP,eAAe;QACf,cAAc;QACd,WAAW;QACX,SAAS;KACV,CAAC,CAAC;IACH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAC/B,eAAe,GAAG,0BAA0B,gBAAgB,EAAE,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,SAAS,CAAU,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,uBAAuB,CAC/B,GAAG,IAAI,0BAA0B,gBAAgB,yBAAyB,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,uBAAuB,CAAC,gCAAgC,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,uBAAuB,CAAC,6BAA6B,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,KAAK,GAAgB;QACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;QAC9B,UAAU,EAAE,UAAiB;QAC7B,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;QACrE,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;KAChE,CAAC;IACF,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACzC,IACE,YAAY,KAAK,SAAS;QAC1B,CAAC,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,EAC9D,CAAC;QACD,MAAM,IAAI,uBAAuB,CAAC,qCAAqC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,uBAAuB,CAC/B,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,MAAM,CAAC,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;YAC7C,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;SACtE,CAAC;IACR,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;QAC5B,KAAK;QACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,GAAG,CAAC,YAAY,KAAK,SAAS;YAC5B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,YAAY,EAAE,YAAsB,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,uBAAuB,CAC/B,oDAAoD,OAAO,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,uBAAuB,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,KAAkB;IAM3C,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAWD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtD,6EAA6E;AAC7E,MAAM,UAAU,uBAAuB,CACrC,KAAc;IAEd,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,4BAA4B,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CACb,kCAAkC,4BAA4B,QAAQ,CACvE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,KAAuC,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,EAAE,IAA2C,CAAC;IACjE,MAAM,KAAK,GAAG,IAAI,EAAE,KAA4C,CAAC;IACjE,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACrB,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,IAAI,KAAK,MAAM;QACrB,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;YACxB,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAC5D,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;YAC1B,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,EAChE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,4BAA4B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -178,8 +178,8 @@ export declare const deliveryContextEnvelopeV2Schema: z.ZodObject<{
178
178
  intervalIndex: z.ZodNumber;
179
179
  issuedAt: z.ZodNumber;
180
180
  }, "strict", z.ZodTypeAny, {
181
- issuedAt: number;
182
181
  streamId: string;
182
+ issuedAt: number;
183
183
  operator: string;
184
184
  serviceRef: string;
185
185
  kind: "metrik-l2-http-response/v2";
@@ -187,8 +187,8 @@ export declare const deliveryContextEnvelopeV2Schema: z.ZodObject<{
187
187
  intervalIndex: number;
188
188
  mandateId?: string | undefined;
189
189
  }, {
190
- issuedAt: number;
191
190
  streamId: string;
191
+ issuedAt: number;
192
192
  operator: string;
193
193
  serviceRef: string;
194
194
  kind: "metrik-l2-http-response/v2";
@@ -161,17 +161,17 @@ export declare const deliveryProofRequestBodySchema: z.ZodObject<{
161
161
  identifier: z.ZodString;
162
162
  }, "strict", z.ZodTypeAny, {
163
163
  owner: string;
164
+ parameters: string;
164
165
  context: string;
165
166
  provider: string;
166
- parameters: string;
167
167
  timestampS: number;
168
168
  epoch: number;
169
169
  identifier: string;
170
170
  }, {
171
171
  owner: string;
172
+ parameters: string;
172
173
  context: string;
173
174
  provider: string;
174
- parameters: string;
175
175
  timestampS: number;
176
176
  epoch: number;
177
177
  identifier: string;
@@ -181,9 +181,9 @@ export declare const deliveryProofRequestBodySchema: z.ZodObject<{
181
181
  identifier: string;
182
182
  claimData: {
183
183
  owner: string;
184
+ parameters: string;
184
185
  context: string;
185
186
  provider: string;
186
- parameters: string;
187
187
  timestampS: number;
188
188
  epoch: number;
189
189
  identifier: string;
@@ -193,9 +193,9 @@ export declare const deliveryProofRequestBodySchema: z.ZodObject<{
193
193
  identifier: string;
194
194
  claimData: {
195
195
  owner: string;
196
+ parameters: string;
196
197
  context: string;
197
198
  provider: string;
198
- parameters: string;
199
199
  timestampS: number;
200
200
  epoch: number;
201
201
  identifier: string;
@@ -208,9 +208,9 @@ export declare const deliveryProofRequestBodySchema: z.ZodObject<{
208
208
  identifier: string;
209
209
  claimData: {
210
210
  owner: string;
211
+ parameters: string;
211
212
  context: string;
212
213
  provider: string;
213
- parameters: string;
214
214
  timestampS: number;
215
215
  epoch: number;
216
216
  identifier: string;
@@ -236,9 +236,9 @@ export declare const deliveryProofRequestBodySchema: z.ZodObject<{
236
236
  identifier: string;
237
237
  claimData: {
238
238
  owner: string;
239
+ parameters: string;
239
240
  context: string;
240
241
  provider: string;
241
- parameters: string;
242
242
  timestampS: number;
243
243
  epoch: number;
244
244
  identifier: string;