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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/README.md +42 -50
  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.js +1 -1
  12. package/dist/cli/commands/claim.js.map +1 -1
  13. package/dist/cli/commands/close.d.ts.map +1 -1
  14. package/dist/cli/commands/close.js +35 -3
  15. package/dist/cli/commands/close.js.map +1 -1
  16. package/dist/cli/commands/invoke.d.ts +2 -0
  17. package/dist/cli/commands/invoke.d.ts.map +1 -1
  18. package/dist/cli/commands/invoke.js +2 -2
  19. package/dist/cli/commands/invoke.js.map +1 -1
  20. package/dist/cli/commands/mcp.d.ts.map +1 -1
  21. package/dist/cli/commands/mcp.js +15 -2
  22. package/dist/cli/commands/mcp.js.map +1 -1
  23. package/dist/cli/commands/open.d.ts.map +1 -1
  24. package/dist/cli/commands/open.js +58 -4
  25. package/dist/cli/commands/open.js.map +1 -1
  26. package/dist/cli/commands/pay.d.ts +19 -0
  27. package/dist/cli/commands/pay.d.ts.map +1 -0
  28. package/dist/cli/commands/pay.js +355 -0
  29. package/dist/cli/commands/pay.js.map +1 -0
  30. package/dist/cli/commands/reclaim-unverified.d.ts.map +1 -1
  31. package/dist/cli/commands/reclaim-unverified.js +3 -2
  32. package/dist/cli/commands/reclaim-unverified.js.map +1 -1
  33. package/dist/cli/commands/reclaim.d.ts +23 -2
  34. package/dist/cli/commands/reclaim.d.ts.map +1 -1
  35. package/dist/cli/commands/reclaim.js +184 -16
  36. package/dist/cli/commands/reclaim.js.map +1 -1
  37. package/dist/cli/commands/refund.d.ts +13 -0
  38. package/dist/cli/commands/refund.d.ts.map +1 -0
  39. package/dist/cli/commands/refund.js +224 -0
  40. package/dist/cli/commands/refund.js.map +1 -0
  41. package/dist/cli/commands/status.d.ts.map +1 -1
  42. package/dist/cli/commands/status.js +10 -1
  43. package/dist/cli/commands/status.js.map +1 -1
  44. package/dist/cli/commands/streams.js +8 -12
  45. package/dist/cli/commands/streams.js.map +1 -1
  46. package/dist/cli/commands/watch.d.ts.map +1 -1
  47. package/dist/cli/commands/watch.js +2 -1
  48. package/dist/cli/commands/watch.js.map +1 -1
  49. package/dist/cli/config.d.ts +44 -26
  50. package/dist/cli/config.d.ts.map +1 -1
  51. package/dist/cli/config.js +88 -38
  52. package/dist/cli/config.js.map +1 -1
  53. package/dist/cli/deps.d.ts +33 -0
  54. package/dist/cli/deps.d.ts.map +1 -1
  55. package/dist/cli/deps.js +37 -1
  56. package/dist/cli/deps.js.map +1 -1
  57. package/dist/cli/errors.d.ts.map +1 -1
  58. package/dist/cli/errors.js +21 -1
  59. package/dist/cli/errors.js.map +1 -1
  60. package/dist/cli/escape-hatch.d.ts +6 -4
  61. package/dist/cli/escape-hatch.d.ts.map +1 -1
  62. package/dist/cli/escape-hatch.js +6 -2
  63. package/dist/cli/escape-hatch.js.map +1 -1
  64. package/dist/cli/listings.d.ts +18 -0
  65. package/dist/cli/listings.d.ts.map +1 -1
  66. package/dist/cli/listings.js +22 -12
  67. package/dist/cli/listings.js.map +1 -1
  68. package/dist/cli/preflight.d.ts +20 -14
  69. package/dist/cli/preflight.d.ts.map +1 -1
  70. package/dist/cli/preflight.js +34 -20
  71. package/dist/cli/preflight.js.map +1 -1
  72. package/dist/cli/privy.d.ts.map +1 -1
  73. package/dist/cli/privy.js +4 -2
  74. package/dist/cli/privy.js.map +1 -1
  75. package/dist/cli/reclaimability.d.ts +82 -0
  76. package/dist/cli/reclaimability.d.ts.map +1 -0
  77. package/dist/cli/reclaimability.js +80 -0
  78. package/dist/cli/reclaimability.js.map +1 -0
  79. package/dist/cli/run.d.ts +2 -1
  80. package/dist/cli/run.d.ts.map +1 -1
  81. package/dist/cli/run.js +40 -11
  82. package/dist/cli/run.js.map +1 -1
  83. package/dist/cli/scan-range.d.ts +2 -2
  84. package/dist/cli/scan-range.js +2 -2
  85. package/dist/cli/status.d.ts +3 -1
  86. package/dist/cli/status.d.ts.map +1 -1
  87. package/dist/cli/status.js +15 -3
  88. package/dist/cli/status.js.map +1 -1
  89. package/dist/cli/wallet.d.ts +1 -1
  90. package/dist/cli/wallet.js +2 -2
  91. package/dist/cli/wallet.js.map +1 -1
  92. package/dist/discovery/rate-band.d.ts +74 -0
  93. package/dist/discovery/rate-band.d.ts.map +1 -0
  94. package/dist/discovery/rate-band.js +114 -0
  95. package/dist/discovery/rate-band.js.map +1 -0
  96. package/dist/escrow-generation.d.ts +81 -0
  97. package/dist/escrow-generation.d.ts.map +1 -0
  98. package/dist/escrow-generation.js +76 -0
  99. package/dist/escrow-generation.js.map +1 -0
  100. package/dist/frameworks/agentkit.d.ts +8 -4
  101. package/dist/frameworks/agentkit.d.ts.map +1 -1
  102. package/dist/frameworks/agentkit.js +27 -10
  103. package/dist/frameworks/agentkit.js.map +1 -1
  104. package/dist/frameworks/eliza.d.ts +3 -3
  105. package/dist/frameworks/eliza.d.ts.map +1 -1
  106. package/dist/frameworks/eliza.js +15 -6
  107. package/dist/frameworks/eliza.js.map +1 -1
  108. package/dist/frameworks/langchain.d.ts.map +1 -1
  109. package/dist/frameworks/langchain.js +8 -0
  110. package/dist/frameworks/langchain.js.map +1 -1
  111. package/dist/gateway/caller-auth-gateway.d.ts +83 -31
  112. package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
  113. package/dist/gateway/caller-auth-gateway.js +180 -27
  114. package/dist/gateway/caller-auth-gateway.js.map +1 -1
  115. package/dist/gateway/http-server.d.ts +111 -44
  116. package/dist/gateway/http-server.d.ts.map +1 -1
  117. package/dist/gateway/http-server.js +439 -155
  118. package/dist/gateway/http-server.js.map +1 -1
  119. package/dist/gateway/probe-auth.d.ts +112 -0
  120. package/dist/gateway/probe-auth.d.ts.map +1 -0
  121. package/dist/gateway/probe-auth.js +127 -0
  122. package/dist/gateway/probe-auth.js.map +1 -0
  123. package/dist/gateway/signed-rate-bounds.d.ts +51 -0
  124. package/dist/gateway/signed-rate-bounds.d.ts.map +1 -0
  125. package/dist/gateway/signed-rate-bounds.js +94 -0
  126. package/dist/gateway/signed-rate-bounds.js.map +1 -0
  127. package/dist/gateway/x402-opener-mode.d.ts +215 -0
  128. package/dist/gateway/x402-opener-mode.d.ts.map +1 -0
  129. package/dist/gateway/x402-opener-mode.js +639 -0
  130. package/dist/gateway/x402-opener-mode.js.map +1 -0
  131. package/dist/index.d.ts +6 -2
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +10 -5
  134. package/dist/index.js.map +1 -1
  135. package/dist/mcp/server.d.ts +52 -1
  136. package/dist/mcp/server.d.ts.map +1 -1
  137. package/dist/mcp/server.js +228 -37
  138. package/dist/mcp/server.js.map +1 -1
  139. package/dist/mcp/x402-tools.d.ts +104 -0
  140. package/dist/mcp/x402-tools.d.ts.map +1 -0
  141. package/dist/mcp/x402-tools.js +434 -0
  142. package/dist/mcp/x402-tools.js.map +1 -0
  143. package/dist/network.d.ts +119 -0
  144. package/dist/network.d.ts.map +1 -0
  145. package/dist/network.js +199 -0
  146. package/dist/network.js.map +1 -0
  147. package/dist/sdk/invoke.d.ts +4 -0
  148. package/dist/sdk/invoke.d.ts.map +1 -1
  149. package/dist/sdk/invoke.js +2 -5
  150. package/dist/sdk/invoke.js.map +1 -1
  151. package/dist/wallet/autonomous-wallet-broker.d.ts +3 -0
  152. package/dist/wallet/autonomous-wallet-broker.d.ts.map +1 -1
  153. package/dist/wallet/autonomous-wallet-broker.js +27 -23
  154. package/dist/wallet/autonomous-wallet-broker.js.map +1 -1
  155. package/dist/wallet/autonomous-wallet-protocol.d.ts +8 -2
  156. package/dist/wallet/autonomous-wallet-protocol.d.ts.map +1 -1
  157. package/dist/wallet/autonomous-wallet-protocol.js +9 -2
  158. package/dist/wallet/autonomous-wallet-protocol.js.map +1 -1
  159. package/dist/wallet/autonomous-wallet.d.ts.map +1 -1
  160. package/dist/wallet/autonomous-wallet.js +3 -2
  161. package/dist/wallet/autonomous-wallet.js.map +1 -1
  162. package/dist/wallet/broker-escrows.d.ts +222 -0
  163. package/dist/wallet/broker-escrows.d.ts.map +1 -0
  164. package/dist/wallet/broker-escrows.js +36 -0
  165. package/dist/wallet/broker-escrows.js.map +1 -0
  166. package/dist/wallet/lifecycle.d.ts +21 -5
  167. package/dist/wallet/lifecycle.d.ts.map +1 -1
  168. package/dist/wallet/lifecycle.js +32 -12
  169. package/dist/wallet/lifecycle.js.map +1 -1
  170. package/dist/wallet/privy-broker-server.d.ts.map +1 -1
  171. package/dist/wallet/privy-broker-server.js +31 -26
  172. package/dist/wallet/privy-broker-server.js.map +1 -1
  173. package/dist/wallet/privy-session-broker.d.ts +14 -5
  174. package/dist/wallet/privy-session-broker.d.ts.map +1 -1
  175. package/dist/wallet/privy-session-broker.js +29 -17
  176. package/dist/wallet/privy-session-broker.js.map +1 -1
  177. package/dist/wallet/privy-session-provider.d.ts +3 -1
  178. package/dist/wallet/privy-session-provider.d.ts.map +1 -1
  179. package/dist/wallet/privy-session-provider.js +5 -3
  180. package/dist/wallet/privy-session-provider.js.map +1 -1
  181. package/dist/wallet/provider.d.ts.map +1 -1
  182. package/dist/wallet/provider.js +15 -8
  183. package/dist/wallet/provider.js.map +1 -1
  184. package/dist/x402/facilitator.d.ts +3 -30
  185. package/dist/x402/facilitator.d.ts.map +1 -1
  186. package/dist/x402/facilitator.js +0 -27
  187. package/dist/x402/facilitator.js.map +1 -1
  188. package/dist/x402-buyer/guarded-fetch.d.ts +51 -0
  189. package/dist/x402-buyer/guarded-fetch.d.ts.map +1 -0
  190. package/dist/x402-buyer/guarded-fetch.js +147 -0
  191. package/dist/x402-buyer/guarded-fetch.js.map +1 -0
  192. package/dist/x402-buyer/index.d.ts +10 -0
  193. package/dist/x402-buyer/index.d.ts.map +1 -0
  194. package/dist/x402-buyer/index.js +10 -0
  195. package/dist/x402-buyer/index.js.map +1 -0
  196. package/dist/x402-buyer/pay.d.ts +135 -0
  197. package/dist/x402-buyer/pay.d.ts.map +1 -0
  198. package/dist/x402-buyer/pay.js +336 -0
  199. package/dist/x402-buyer/pay.js.map +1 -0
  200. package/dist/x402-opener/abi.d.ts +684 -0
  201. package/dist/x402-opener/abi.d.ts.map +1 -0
  202. package/dist/x402-opener/abi.js +880 -0
  203. package/dist/x402-opener/abi.js.map +1 -0
  204. package/dist/x402-opener/facilitator-entry.d.ts +3 -0
  205. package/dist/x402-opener/facilitator-entry.d.ts.map +1 -0
  206. package/dist/x402-opener/facilitator-entry.js +37 -0
  207. package/dist/x402-opener/facilitator-entry.js.map +1 -0
  208. package/dist/x402-opener/facilitator-server.d.ts +180 -0
  209. package/dist/x402-opener/facilitator-server.d.ts.map +1 -0
  210. package/dist/x402-opener/facilitator-server.js +696 -0
  211. package/dist/x402-opener/facilitator-server.js.map +1 -0
  212. package/dist/x402-opener/index.d.ts +14 -0
  213. package/dist/x402-opener/index.d.ts.map +1 -0
  214. package/dist/x402-opener/index.js +14 -0
  215. package/dist/x402-opener/index.js.map +1 -0
  216. package/dist/x402-opener/listing-resolver.d.ts +55 -0
  217. package/dist/x402-opener/listing-resolver.d.ts.map +1 -0
  218. package/dist/x402-opener/listing-resolver.js +125 -0
  219. package/dist/x402-opener/listing-resolver.js.map +1 -0
  220. package/dist/x402-opener/refund-relay.d.ts +240 -0
  221. package/dist/x402-opener/refund-relay.d.ts.map +1 -0
  222. package/dist/x402-opener/refund-relay.js +1240 -0
  223. package/dist/x402-opener/refund-relay.js.map +1 -0
  224. package/dist/x402-opener/relayer-queue.d.ts +14 -0
  225. package/dist/x402-opener/relayer-queue.d.ts.map +1 -0
  226. package/dist/x402-opener/relayer-queue.js +18 -0
  227. package/dist/x402-opener/relayer-queue.js.map +1 -0
  228. package/dist/x402-opener/scheme.d.ts +217 -0
  229. package/dist/x402-opener/scheme.d.ts.map +1 -0
  230. package/dist/x402-opener/scheme.js +749 -0
  231. package/dist/x402-opener/scheme.js.map +1 -0
  232. package/dist/x402-opener/terms.d.ts +105 -0
  233. package/dist/x402-opener/terms.d.ts.map +1 -0
  234. package/dist/x402-opener/terms.js +212 -0
  235. package/dist/x402-opener/terms.js.map +1 -0
  236. package/dist/zktls/reclaim.d.ts +2 -2
  237. package/dist/zktls/t2-delivery-proof.d.ts +6 -6
  238. package/docs/agent-layer.md +3 -2
  239. package/docs/autonomous-privy-wallet.md +188 -0
  240. package/docs/cli.md +184 -31
  241. package/docs/langchain.md +5 -0
  242. package/docs/mcp-reference.md +75 -5
  243. package/docs/probe-capability.md +191 -0
  244. package/docs/quickstart.md +36 -1
  245. package/docs/threat-model.md +20 -0
  246. package/docs/x402.md +628 -595
  247. package/package.json +19 -17
  248. package/src/capability/probe-capability.ts +355 -0
  249. package/src/cli/args.ts +29 -0
  250. package/src/cli/commands/claim.ts +1 -1
  251. package/src/cli/commands/close.ts +36 -3
  252. package/src/cli/commands/invoke.ts +5 -2
  253. package/src/cli/commands/mcp.ts +18 -2
  254. package/src/cli/commands/open.ts +75 -4
  255. package/src/cli/commands/pay.ts +442 -0
  256. package/src/cli/commands/reclaim-unverified.ts +8 -2
  257. package/src/cli/commands/reclaim.ts +252 -14
  258. package/src/cli/commands/refund.ts +277 -0
  259. package/src/cli/commands/status.ts +17 -1
  260. package/src/cli/commands/streams.ts +10 -14
  261. package/src/cli/commands/watch.ts +7 -1
  262. package/src/cli/config.ts +139 -52
  263. package/src/cli/deps.ts +74 -1
  264. package/src/cli/errors.ts +24 -1
  265. package/src/cli/escape-hatch.ts +19 -5
  266. package/src/cli/listings.ts +43 -10
  267. package/src/cli/preflight.ts +36 -21
  268. package/src/cli/privy.ts +4 -2
  269. package/src/cli/reclaimability.ts +154 -0
  270. package/src/cli/run.ts +54 -11
  271. package/src/cli/scan-range.ts +2 -2
  272. package/src/cli/status.ts +14 -1
  273. package/src/cli/wallet.ts +2 -2
  274. package/src/discovery/rate-band.ts +172 -0
  275. package/src/escrow-generation.ts +135 -0
  276. package/src/frameworks/agentkit.ts +45 -11
  277. package/src/frameworks/eliza.ts +27 -5
  278. package/src/frameworks/langchain.ts +14 -0
  279. package/src/gateway/caller-auth-gateway.ts +320 -68
  280. package/src/gateway/http-server.ts +629 -220
  281. package/src/gateway/probe-auth.ts +191 -0
  282. package/src/gateway/signed-rate-bounds.ts +164 -0
  283. package/src/gateway/x402-opener-mode.ts +974 -0
  284. package/src/index.ts +82 -19
  285. package/src/mcp/server.ts +319 -42
  286. package/src/mcp/x402-tools.ts +621 -0
  287. package/src/network.ts +302 -0
  288. package/src/sdk/invoke.ts +6 -5
  289. package/src/wallet/autonomous-wallet-broker.ts +46 -20
  290. package/src/wallet/autonomous-wallet-protocol.ts +11 -2
  291. package/src/wallet/autonomous-wallet.ts +4 -2
  292. package/src/wallet/broker-escrows.ts +66 -0
  293. package/src/wallet/lifecycle.ts +53 -18
  294. package/src/wallet/privy-broker-server.ts +35 -25
  295. package/src/wallet/privy-session-broker.ts +58 -25
  296. package/src/wallet/privy-session-provider.ts +7 -3
  297. package/src/wallet/provider.ts +20 -15
  298. package/src/x402/facilitator.ts +3 -43
  299. package/src/x402-buyer/guarded-fetch.ts +213 -0
  300. package/src/x402-buyer/index.ts +9 -0
  301. package/src/x402-buyer/pay.ts +517 -0
  302. package/src/x402-opener/abi.ts +881 -0
  303. package/src/x402-opener/facilitator-entry.ts +45 -0
  304. package/src/x402-opener/facilitator-server.ts +1014 -0
  305. package/src/x402-opener/index.ts +13 -0
  306. package/src/x402-opener/listing-resolver.ts +202 -0
  307. package/src/x402-opener/refund-relay.ts +1743 -0
  308. package/src/x402-opener/relayer-queue.ts +18 -0
  309. package/src/x402-opener/scheme.ts +1133 -0
  310. package/src/x402-opener/terms.ts +300 -0
  311. package/dist/gateway/x402-mode.d.ts +0 -123
  312. package/dist/gateway/x402-mode.d.ts.map +0 -1
  313. package/dist/gateway/x402-mode.js +0 -212
  314. package/dist/gateway/x402-mode.js.map +0 -1
  315. package/dist/x402/delivery-oracle.d.ts +0 -108
  316. package/dist/x402/delivery-oracle.d.ts.map +0 -1
  317. package/dist/x402/delivery-oracle.js +0 -174
  318. package/dist/x402/delivery-oracle.js.map +0 -1
  319. package/dist/x402/facilitator-server-entry.d.ts +0 -3
  320. package/dist/x402/facilitator-server-entry.d.ts.map +0 -1
  321. package/dist/x402/facilitator-server-entry.js +0 -27
  322. package/dist/x402/facilitator-server-entry.js.map +0 -1
  323. package/dist/x402/facilitator-server.d.ts +0 -73
  324. package/dist/x402/facilitator-server.d.ts.map +0 -1
  325. package/dist/x402/facilitator-server.js +0 -305
  326. package/dist/x402/facilitator-server.js.map +0 -1
  327. package/dist/x402/payment-requirements.d.ts +0 -106
  328. package/dist/x402/payment-requirements.d.ts.map +0 -1
  329. package/dist/x402/payment-requirements.js +0 -138
  330. package/dist/x402/payment-requirements.js.map +0 -1
  331. package/dist/x402/relayer.d.ts +0 -41
  332. package/dist/x402/relayer.d.ts.map +0 -1
  333. package/dist/x402/relayer.js +0 -64
  334. package/dist/x402/relayer.js.map +0 -1
  335. package/dist/x402/resource-index.d.ts +0 -75
  336. package/dist/x402/resource-index.d.ts.map +0 -1
  337. package/dist/x402/resource-index.js +0 -126
  338. package/dist/x402/resource-index.js.map +0 -1
  339. package/dist/x402/verified-delivery-facilitator.d.ts +0 -285
  340. package/dist/x402/verified-delivery-facilitator.d.ts.map +0 -1
  341. package/dist/x402/verified-delivery-facilitator.js +0 -423
  342. package/dist/x402/verified-delivery-facilitator.js.map +0 -1
  343. package/src/gateway/x402-mode.ts +0 -350
  344. package/src/x402/delivery-oracle.ts +0 -285
  345. package/src/x402/facilitator-server-entry.ts +0 -35
  346. package/src/x402/facilitator-server.ts +0 -445
  347. package/src/x402/payment-requirements.ts +0 -231
  348. package/src/x402/relayer.ts +0 -122
  349. package/src/x402/resource-index.ts +0 -228
  350. package/src/x402/verified-delivery-facilitator.ts +0 -744
@@ -0,0 +1,114 @@
1
+ import { formatUnits } from "viem";
2
+ import { rateOutsideBounds, SignedRateBoundsError, verifySignedRateBounds, } from "../gateway/signed-rate-bounds.js";
3
+ /**
4
+ * The operator-signed rate band of a verified listing.
5
+ *
6
+ * - `null`: the listing is a legacy service BINDING, which carries no
7
+ * commercial terms, so the operator signed no band and there is nothing to
8
+ * enforce (the gateway enforces none either).
9
+ * - a {@link SignedRateBounds}: the descriptor verified. Either bound may still
10
+ * be `null` when the operator signed only one side, or none.
11
+ *
12
+ * Throws {@link SignedRateBoundsError} when the record IS a descriptor but does
13
+ * not verify, or verifies for a different serviceRef than the listing claims.
14
+ * Callers must treat that as a refusal: a band that cannot be verified is not a
15
+ * band that can be assumed absent.
16
+ */
17
+ export async function listingRateBand(listing) {
18
+ const signed = listing.signed;
19
+ if (typeof signed !== "object" ||
20
+ signed === null ||
21
+ !("descriptor" in signed)) {
22
+ return null;
23
+ }
24
+ const bounds = await verifySignedRateBounds(signed);
25
+ if (bounds.serviceRef !== listing.serviceRef.toLowerCase()) {
26
+ throw new SignedRateBoundsError(`the signed descriptor verifies for serviceRef ${bounds.serviceRef}, not the listed ${listing.serviceRef}`);
27
+ }
28
+ return bounds;
29
+ }
30
+ /** `0.0001` for `100n` — USDC has 6 decimals. */
31
+ function usdc(atomic) {
32
+ return formatUnits(atomic, 6);
33
+ }
34
+ /**
35
+ * The signed band in both units, e.g. `100..10000 atomic/s (0.0001..0.01
36
+ * USDC/s)`. A one-sided band reads `at least 100 atomic/s (…)` /
37
+ * `at most 10000 atomic/s (…)`.
38
+ */
39
+ export function describeRateBand(bounds) {
40
+ const { minRatePerSecond: min, maxRatePerSecond: max } = bounds;
41
+ if (min !== null && max !== null) {
42
+ return `${min}..${max} atomic/s (${usdc(min)}..${usdc(max)} USDC/s)`;
43
+ }
44
+ if (min !== null) {
45
+ return `at least ${min} atomic/s (${usdc(min)} USDC/s)`;
46
+ }
47
+ if (max !== null) {
48
+ return `at most ${max} atomic/s (${usdc(max)} USDC/s)`;
49
+ }
50
+ return "any rate (the operator signed no bounds)";
51
+ }
52
+ /**
53
+ * `undefined` when `rate` is inside the operator-signed band (bounds are
54
+ * inclusive, exactly as the gateway applies them), otherwise an actionable
55
+ * refusal naming the band in atomic units and USDC. `rateLabel` is how the
56
+ * caller supplied the rate (`--rate`, `ratePerSecondUsdc`).
57
+ */
58
+ export function rateBandRefusal(rate, bounds, rateLabel) {
59
+ const outside = rateOutsideBounds(rate, bounds);
60
+ if (outside === undefined)
61
+ return undefined;
62
+ return `the operator signed rates ${describeRateBand(bounds)}; ${rateLabel} ${rate} (${usdc(rate)} USDC/s) would be refused by the service's gateway (${outside}), so the stream could never be served. Nothing was broadcast.`;
63
+ }
64
+ /**
65
+ * Discover the serviceRef's verified listing(s) and check `rate` against every
66
+ * operator-signed band among them, for a surface that has no listing in hand.
67
+ *
68
+ * Fail closed: a registry that cannot be read means a signed band may exist and
69
+ * is unknown, so it is a refusal — never a pass. A serviceRef with no verified
70
+ * listing has no signed band to violate, and is allowed (these surfaces never
71
+ * required a listing to hire).
72
+ */
73
+ export async function checkListedRateBand(discover, serviceRef, rate, rateLabel) {
74
+ let listings;
75
+ try {
76
+ listings = await discover();
77
+ }
78
+ catch (error) {
79
+ return {
80
+ ok: false,
81
+ message: `refusing to hire: the service registry could not be read (${error instanceof Error ? error.message : String(error)}), so the operator-signed rate band for ${serviceRef} cannot be checked and the stream might never be served. Nothing was spent — retry when the registry answers.`,
82
+ };
83
+ }
84
+ const wanted = serviceRef.toLowerCase();
85
+ const matches = listings.filter((listing) => listing.serviceRef.toLowerCase() === wanted);
86
+ if (matches.length === 0)
87
+ return { ok: true, band: "unlisted" };
88
+ let signedAny = false;
89
+ for (const listing of matches) {
90
+ let bounds;
91
+ try {
92
+ bounds = await listingRateBand(listing);
93
+ }
94
+ catch (error) {
95
+ if (error instanceof SignedRateBoundsError) {
96
+ return {
97
+ ok: false,
98
+ message: `refusing to hire: the listing's operator-signed rate band could not be verified (${error.message}). Nothing was spent.`,
99
+ };
100
+ }
101
+ throw error;
102
+ }
103
+ if (bounds === null)
104
+ continue;
105
+ signedAny = true;
106
+ const refusal = rateBandRefusal(rate, bounds, rateLabel);
107
+ if (refusal !== undefined) {
108
+ return { ok: false, message: `refusing to hire: ${refusal}` };
109
+ }
110
+ }
111
+ return { ok: true, band: signedAny ? "in-band" : "no-band-signed" };
112
+ }
113
+ export { SignedRateBoundsError };
114
+ //# sourceMappingURL=rate-band.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-band.js","sourceRoot":"","sources":["../../src/discovery/rate-band.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import type { Address, Hex } from "viem";
2
+ /**
3
+ * Escrow-generation-specific rules, driven by the SDK network registry's
4
+ * `escrow.generation` (metrik-agent#121).
5
+ *
6
+ * Today the registry knows only `v2` (`StreamEscrowV2`). `StreamEscrowV3`
7
+ * changes one rule the agent reasons about: the buyer's no-proof escape hatch.
8
+ *
9
+ * - **V2**: `reclaimUnverified` opens at `expiresAt + escapeGraceSeconds`.
10
+ * Closing early does NOT bring it forward.
11
+ * - **V3**: it opens at `min(expiresAt, closedAt) + escapeGraceSeconds`, and the
12
+ * escrow exposes `escapeHatchReadyAt(bytes32)` to read it directly. Where a
13
+ * chain read is available it is preferred over re-deriving the formula.
14
+ *
15
+ * An unknown generation is refused, never guessed: a wrong readiness answer
16
+ * either sends a buyer a guaranteed revert or tells them to wait when they need
17
+ * not. (V3 also restricts `recordProven` to the stream's operator or an active
18
+ * oracle signer; no agent or relay path calls it on a buyer's behalf.)
19
+ */
20
+ /** Escrow generations whose escape-hatch rule this package implements. */
21
+ export type KnownEscrowGeneration = "v2" | "v3";
22
+ export declare class UnsupportedEscrowGenerationError extends Error {
23
+ readonly generation: string;
24
+ constructor(generation: string);
25
+ }
26
+ /**
27
+ * The generation of `escrow` on `chainId`, from the network registry. An escrow
28
+ * the registry does not record is treated as V2 — the generation every
29
+ * unregistered, explicitly configured Metrik deployment speaks today.
30
+ */
31
+ export declare function escrowGenerationFor(chainId: number, escrow: Address): KnownEscrowGeneration;
32
+ /**
33
+ * The second the no-proof escape hatch opens, by formula. `closedAt` is `0`
34
+ * while the stream is open.
35
+ */
36
+ export declare function escapeHatchReadyAtFormula(generation: string, stream: {
37
+ readonly expiresAt: bigint;
38
+ readonly closedAt: bigint;
39
+ }, graceSeconds: bigint): bigint;
40
+ /**
41
+ * `StreamEscrowV3.escapeHatchReadyAt(bytes32)`. A one-function fragment until
42
+ * the SDK ships the V3 ABI; replace it with the SDK's export then.
43
+ */
44
+ export declare const streamEscrowV3EscapeHatchAbi: readonly [{
45
+ readonly type: "function";
46
+ readonly name: "escapeHatchReadyAt";
47
+ readonly stateMutability: "view";
48
+ readonly inputs: readonly [{
49
+ readonly name: "streamId";
50
+ readonly type: "bytes32";
51
+ }];
52
+ readonly outputs: readonly [{
53
+ readonly name: "";
54
+ readonly type: "uint256";
55
+ }];
56
+ }];
57
+ /** The minimal read surface {@link readEscapeHatchReadyAt} needs. */
58
+ export interface EscapeHatchReader {
59
+ readContract(args: {
60
+ readonly address: Address;
61
+ readonly abi: typeof streamEscrowV3EscapeHatchAbi;
62
+ readonly functionName: "escapeHatchReadyAt";
63
+ readonly args: readonly [Hex];
64
+ }): Promise<bigint>;
65
+ }
66
+ /**
67
+ * The escape-hatch second for one stream: V3 reads the escrow's own view (and
68
+ * falls back to the V3 formula if that read fails); V2 uses its formula.
69
+ */
70
+ export declare function readEscapeHatchReadyAt(input: {
71
+ readonly generation: string;
72
+ readonly reader: EscapeHatchReader;
73
+ readonly escrow: Address;
74
+ readonly streamId: Hex;
75
+ readonly stream: {
76
+ readonly expiresAt: bigint;
77
+ readonly closedAt: bigint;
78
+ };
79
+ readonly graceSeconds: bigint;
80
+ }): Promise<bigint>;
81
+ //# sourceMappingURL=escrow-generation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-generation.d.ts","sourceRoot":"","sources":["../src/escrow-generation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AAEH,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,UAAU,EAAE,MAAM;CAO/B;AAOD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,GACd,qBAAqB,CAMvB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EACjE,YAAY,EAAE,MAAM,GACnB,MAAM,CAYR;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;EAQ/B,CAAC;AAEX,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,IAAI,EAAE;QACjB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,4BAA4B,CAAC;QAClD,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;QAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
@@ -0,0 +1,76 @@
1
+ import { findDeployment } from "@absol-labs/sdk";
2
+ export class UnsupportedEscrowGenerationError extends Error {
3
+ generation;
4
+ constructor(generation) {
5
+ super(`escrow generation "${generation}" is not one this package knows the escape-hatch rule for (known: v2, v3)`);
6
+ this.name = "UnsupportedEscrowGenerationError";
7
+ this.generation = generation;
8
+ }
9
+ }
10
+ function known(generation) {
11
+ if (generation === "v2" || generation === "v3")
12
+ return generation;
13
+ throw new UnsupportedEscrowGenerationError(generation);
14
+ }
15
+ /**
16
+ * The generation of `escrow` on `chainId`, from the network registry. An escrow
17
+ * the registry does not record is treated as V2 — the generation every
18
+ * unregistered, explicitly configured Metrik deployment speaks today.
19
+ */
20
+ export function escrowGenerationFor(chainId, escrow) {
21
+ return known(
22
+ // The generation of THIS deployment (current or legacy), not of the
23
+ // network's current escrow.
24
+ findDeployment(chainId, escrow)?.deployment.escrow.generation ?? "v2");
25
+ }
26
+ /**
27
+ * The second the no-proof escape hatch opens, by formula. `closedAt` is `0`
28
+ * while the stream is open.
29
+ */
30
+ export function escapeHatchReadyAtFormula(generation, stream, graceSeconds) {
31
+ switch (known(generation)) {
32
+ case "v2":
33
+ return stream.expiresAt + graceSeconds;
34
+ case "v3": {
35
+ const stop = stream.closedAt > 0n && stream.closedAt < stream.expiresAt
36
+ ? stream.closedAt
37
+ : stream.expiresAt;
38
+ return stop + graceSeconds;
39
+ }
40
+ }
41
+ }
42
+ /**
43
+ * `StreamEscrowV3.escapeHatchReadyAt(bytes32)`. A one-function fragment until
44
+ * the SDK ships the V3 ABI; replace it with the SDK's export then.
45
+ */
46
+ export const streamEscrowV3EscapeHatchAbi = [
47
+ {
48
+ type: "function",
49
+ name: "escapeHatchReadyAt",
50
+ stateMutability: "view",
51
+ inputs: [{ name: "streamId", type: "bytes32" }],
52
+ outputs: [{ name: "", type: "uint256" }],
53
+ },
54
+ ];
55
+ /**
56
+ * The escape-hatch second for one stream: V3 reads the escrow's own view (and
57
+ * falls back to the V3 formula if that read fails); V2 uses its formula.
58
+ */
59
+ export async function readEscapeHatchReadyAt(input) {
60
+ const generation = known(input.generation);
61
+ if (generation === "v3") {
62
+ try {
63
+ return await input.reader.readContract({
64
+ address: input.escrow,
65
+ abi: streamEscrowV3EscapeHatchAbi,
66
+ functionName: "escapeHatchReadyAt",
67
+ args: [input.streamId],
68
+ });
69
+ }
70
+ catch {
71
+ // Fall through to the V3 formula: the same rule the view implements.
72
+ }
73
+ }
74
+ return escapeHatchReadyAtFormula(generation, input.stream, input.graceSeconds);
75
+ }
76
+ //# sourceMappingURL=escrow-generation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-generation.js","sourceRoot":"","sources":["../src/escrow-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAyBjD,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IAChD,UAAU,CAAS;IAE5B,YAAY,UAAkB;QAC5B,KAAK,CACH,sBAAsB,UAAU,2EAA2E,CAC5G,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED,SAAS,KAAK,CAAC,UAAkB;IAC/B,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,UAAU,CAAC;IAClE,MAAM,IAAI,gCAAgC,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,MAAe;IAEf,OAAO,KAAK;IACV,oEAAoE;IACpE,4BAA4B;IAC5B,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CACtE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkB,EAClB,MAAiE,EACjE,YAAoB;IAEpB,QAAQ,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,KAAK,IAAI;YACP,OAAO,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC;QACzC,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,MAAM,IAAI,GACR,MAAM,CAAC,QAAQ,GAAG,EAAE,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS;gBACxD,CAAC,CAAC,MAAM,CAAC,QAAQ;gBACjB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;YACvB,OAAO,IAAI,GAAG,YAAY,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,oBAAoB;QAC1B,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;CACO,CAAC;AAYX;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAO5C;IACC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;gBACrC,OAAO,EAAE,KAAK,CAAC,MAAM;gBACrB,GAAG,EAAE,4BAA4B;gBACjC,YAAY,EAAE,oBAAoB;gBAClC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;IACH,CAAC;IACD,OAAO,yBAAyB,CAC9B,UAAU,EACV,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,YAAY,CACnB,CAAC;AACJ,CAAC"}
@@ -6,10 +6,14 @@ import { type DiscoverServicesOptions, type ServiceListing } from "../discovery/
6
6
  import { type SignedSpendMandate } from "../mandates/mandate.js";
7
7
  import { type AgentSdkClientFactory, type MandateAuthorizedStreamActionInput, type OpenVerifiedStreamInput, type ReclaimAuthorizedStreamInput, type ReclaimVerifiedStreamResult, type StreamProofTransactionResult, type StreamStatusView } from "../sdk/client.js";
8
8
  /**
9
- * Base Sepolia is the only settlement network Metrik supports today (Model A,
10
- * single-chain USDC on Base). Every action fails closed on any other network.
9
+ * The default settlement chain id: the registry's default network. A provider
10
+ * may be configured for any REGISTERED TESTNET network instead; every action
11
+ * fails closed on a network the registry does not know, on a mainnet, and on a
12
+ * wallet whose network differs from the configured one.
11
13
  */
12
- export declare const METRIK_BASE_SEPOLIA_CHAIN_ID = 84532;
14
+ export declare const METRIK_AGENTKIT_DEFAULT_CHAIN_ID: number;
15
+ /** @deprecated Use {@link METRIK_AGENTKIT_DEFAULT_CHAIN_ID}; this is the registry's default network, read from the SDK registry. */
16
+ export declare const METRIK_BASE_SEPOLIA_CHAIN_ID: number;
13
17
  export declare const discoverServicesSchema: z.ZodObject<{
14
18
  category: z.ZodOptional<z.ZodString>;
15
19
  limit: z.ZodOptional<z.ZodNumber>;
@@ -92,7 +96,7 @@ export interface MetrikActionProviderConfig {
92
96
  * agent's construction — the LLM never supplies or edits it.
93
97
  */
94
98
  readonly signedMandate: SignedSpendMandate;
95
- /** Settlement chain id. Defaults to Base Sepolia (84532); any other value fails closed. */
99
+ /** Settlement chain id. Defaults to the registry's default network; a chain the registry does not know as a testnet fails closed. */
96
100
  readonly chainId?: number;
97
101
  /** Injected Metrik client (test path). Mutually exclusive with `sdkConfig`. */
98
102
  readonly agentClient?: MetrikAgentKitClient;
@@ -1 +1 @@
1
- {"version":3,"file":"agentkit.d.ts","sourceRoot":"","sources":["../../src/frameworks/agentkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentkit.d.ts","sourceRoot":"","sources":["../../src/frameworks/agentkit.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,19 @@ import { ActionProvider, CreateAction, WalletProvider, } from "@coinbase/agentki
12
12
  import { isAddress, isHex } from "viem";
13
13
  import { z } from "zod";
14
14
  import { RegistryUnavailableError, discoverServices as defaultDiscoverServices, } from "../discovery/registry.js";
15
+ import { checkListedRateBand } from "../discovery/rate-band.js";
15
16
  import { checkMandate } from "../mandates/mandate.js";
17
+ import { defaultNetwork, describeAllowedNetworks, requireNetworkForChainId, } from "../network.js";
16
18
  import { isCheckpointStream, MandateDeniedError, VerifiedStreamAgentClient, } from "../sdk/client.js";
17
19
  /**
18
- * Base Sepolia is the only settlement network Metrik supports today (Model A,
19
- * single-chain USDC on Base). Every action fails closed on any other network.
20
+ * The default settlement chain id: the registry's default network. A provider
21
+ * may be configured for any REGISTERED TESTNET network instead; every action
22
+ * fails closed on a network the registry does not know, on a mainnet, and on a
23
+ * wallet whose network differs from the configured one.
20
24
  */
21
- export const METRIK_BASE_SEPOLIA_CHAIN_ID = 84532;
25
+ export const METRIK_AGENTKIT_DEFAULT_CHAIN_ID = defaultNetwork().chain.id;
26
+ /** @deprecated Use {@link METRIK_AGENTKIT_DEFAULT_CHAIN_ID}; this is the registry's default network, read from the SDK registry. */
27
+ export const METRIK_BASE_SEPOLIA_CHAIN_ID = METRIK_AGENTKIT_DEFAULT_CHAIN_ID;
22
28
  const addressSchema = z
23
29
  .string()
24
30
  .refine((value) => isAddress(value), "must be an EVM address");
@@ -117,13 +123,17 @@ export class MetrikActionProvider extends ActionProvider {
117
123
  #resolver;
118
124
  #now;
119
125
  #chainId;
126
+ #network;
120
127
  #discover;
121
128
  constructor(config) {
122
129
  super("metrik", []);
123
- this.#chainId = config.chainId ?? METRIK_BASE_SEPOLIA_CHAIN_ID;
124
- if (this.#chainId !== METRIK_BASE_SEPOLIA_CHAIN_ID) {
125
- // Fail closed: Model A settles only on Base Sepolia today.
126
- throw new MetrikActionProviderConfigError(`unsupported chainId ${this.#chainId}: Metrik settles only on Base Sepolia (${METRIK_BASE_SEPOLIA_CHAIN_ID})`);
130
+ this.#chainId = config.chainId ?? METRIK_AGENTKIT_DEFAULT_CHAIN_ID;
131
+ try {
132
+ this.#network = requireNetworkForChainId(this.#chainId, { testnetOnly: true }, "chainId");
133
+ }
134
+ catch (error) {
135
+ // Fail closed: only a registered testnet network settles.
136
+ throw new MetrikActionProviderConfigError(`unsupported chainId ${this.#chainId}: Metrik settles only on registered testnet networks (${describeAllowedNetworks({ testnetOnly: true })}) — ${error instanceof Error ? error.message : String(error)}`);
127
137
  }
128
138
  this.#client = resolveClient(config);
129
139
  this.#signedMandate = config.signedMandate;
@@ -196,6 +206,13 @@ export class MetrikActionProvider extends ActionProvider {
196
206
  if (!decision.allowed) {
197
207
  throw new MandateDeniedError(decision.reason ?? "mandate-expired");
198
208
  }
209
+ // The rate must sit inside the band the operator SIGNED, or the seller's
210
+ // gateway refuses every request on the stream while the deposit stays
211
+ // escrowed. Fails closed when the registry cannot be read.
212
+ const band = await checkListedRateBand(() => this.#discover(), serviceRef, ratePerSecondUsdc, "ratePerSecondUsdc");
213
+ if (!band.ok) {
214
+ throw new Error(band.message);
215
+ }
199
216
  const result = await this.#client.openVerifiedStream({
200
217
  operator,
201
218
  serviceRef,
@@ -208,7 +225,7 @@ export class MetrikActionProvider extends ActionProvider {
208
225
  revokedMandateIds,
209
226
  });
210
227
  const urlLine = args.publicUrl ? ` Endpoint: ${args.publicUrl}.` : "";
211
- return (`Hired verified service via Metrik. Stream ${result.streamId} opened on Base Sepolia (escrow ${result.handle.escrow}). ` +
228
+ return (`Hired verified service via Metrik. Stream ${result.streamId} opened on ${this.#network.name} (escrow ${result.handle.escrow}). ` +
212
229
  `Escrowed ${formatUsdc(budgetUsdc)} USDC at ${formatUsdc(ratePerSecondUsdc)} USDC/sec to operator ${operator} for service ${serviceRef}, ` +
213
230
  `max ${maxDurationSeconds}s. Payment accrues only for oracle-verified delivery; unspent USDC is reclaimable.${urlLine} ` +
214
231
  `tx=${result.txHash}${result.approveTxHash ? ` approve=${result.approveTxHash}` : ""}`);
@@ -244,14 +261,14 @@ export class MetrikActionProvider extends ActionProvider {
244
261
  return `Closed stream ${args.streamId}. tx=${result.txHash}`;
245
262
  }
246
263
  supportsNetwork(network) {
247
- // Fail closed: EVM Base Sepolia only.
264
+ // Fail closed: the configured EVM network only.
248
265
  return (network.protocolFamily === "evm" &&
249
266
  network.chainId === String(this.#chainId));
250
267
  }
251
268
  #assertWalletNetwork(walletProvider) {
252
269
  const network = walletProvider.getNetwork();
253
270
  if (!this.supportsNetwork(network)) {
254
- throw new MetrikActionProviderConfigError(`unsupported network ${network.protocolFamily}:${network.chainId ?? "unknown"}: Metrik requires Base Sepolia (evm:${this.#chainId})`);
271
+ throw new MetrikActionProviderConfigError(`unsupported network ${network.protocolFamily}:${network.chainId ?? "unknown"}: Metrik requires ${this.#network.name} (evm:${this.#chainId})`);
255
272
  }
256
273
  }
257
274
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agentkit.js","sourceRoot":"","sources":["../../src/frameworks/agentkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentkit.js","sourceRoot":"","sources":["../../src/frameworks/agentkit.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import { z } from "zod/v3";
3
3
  import { type DiscoverServicesOptions, type ServiceListing } from "../discovery/registry.js";
4
4
  import { type MandateAuthorizedStreamActionInput, type ReclaimAuthorizedStreamInput, type ReclaimVerifiedStreamResult, type StreamProofTransactionResult, type StreamStatusView, type VerifiedStreamAgentOpener } from "../sdk/client.js";
5
5
  /**
6
- * Base Sepolia is the only settlement network Metrik supports today (Model A,
7
- * single-chain USDC on Base).
6
+ * The settlement chain id the Eliza plugin's examples and defaults use: the
7
+ * registry's default network, read from the `@absol-labs/sdk` network registry.
8
8
  */
9
- export declare const METRIK_ELIZA_SETTLEMENT_CHAIN_ID = 84532;
9
+ export declare const METRIK_ELIZA_SETTLEMENT_CHAIN_ID: number;
10
10
  declare const discoverActionSchema: z.ZodObject<{
11
11
  category: z.ZodOptional<z.ZodString>;
12
12
  limit: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"eliza.d.ts","sourceRoot":"","sources":["../../src/frameworks/eliza.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eliza.d.ts","sourceRoot":"","sources":["../../src/frameworks/eliza.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  import { isAddress, isHex } from "viem";
2
2
  import { z } from "zod/v3";
3
3
  import { discoverServices as defaultDiscoverServices, } from "../discovery/registry.js";
4
+ import { checkListedRateBand } from "../discovery/rate-band.js";
4
5
  import { checkMandate } from "../mandates/mandate.js";
5
6
  import { isCheckpointStream, } from "../sdk/client.js";
7
+ import { defaultNetwork } from "../network.js";
6
8
  /**
7
- * Base Sepolia is the only settlement network Metrik supports today (Model A,
8
- * single-chain USDC on Base).
9
+ * The settlement chain id the Eliza plugin's examples and defaults use: the
10
+ * registry's default network, read from the `@absol-labs/sdk` network registry.
9
11
  */
10
- export const METRIK_ELIZA_SETTLEMENT_CHAIN_ID = 84532;
12
+ export const METRIK_ELIZA_SETTLEMENT_CHAIN_ID = defaultNetwork().chain.id;
11
13
  const addressSchema = z
12
14
  .string()
13
15
  .refine((value) => isAddress(value), "must be an EVM address");
@@ -92,7 +94,7 @@ export function createMetrikElizaPlugin(options) {
92
94
  description: "Mandate-gated Metrik actions for hiring, monitoring, reclaiming, and closing verified service streams on Base. x402 proves the payment, Metrik proves the delivery.",
93
95
  actions: [
94
96
  createDiscoverAction(options.discoverServices ?? defaultDiscoverServices),
95
- createHireAction(options.agentClient, resolver, now),
97
+ createHireAction(options.agentClient, resolver, now, options.discoverServices ?? defaultDiscoverServices),
96
98
  createStatusAction(options.agentClient),
97
99
  createReclaimAction(options.agentClient, resolver, now),
98
100
  createCloseAction(options.agentClient, resolver, now),
@@ -154,7 +156,7 @@ function createDiscoverAction(discover) {
154
156
  },
155
157
  };
156
158
  }
157
- function createHireAction(agentClient, resolver, now) {
159
+ function createHireAction(agentClient, resolver, now, discover) {
158
160
  return {
159
161
  name: "HIRE_VERIFIED_SERVICE",
160
162
  similes: [
@@ -187,6 +189,13 @@ function createHireAction(agentClient, resolver, now) {
187
189
  if (!decision.allowed) {
188
190
  return await failureResult(`mandate denied: ${decision.reason ?? "unknown"}`, callback);
189
191
  }
192
+ // The rate must sit inside the band the operator SIGNED, or the
193
+ // seller's gateway refuses every request on the stream while the
194
+ // deposit stays escrowed. Fails closed when the registry cannot be read.
195
+ const band = await checkListedRateBand(() => discover(), input.serviceRef, BigInt(input.ratePerSecondUsdc), "ratePerSecondUsdc");
196
+ if (!band.ok) {
197
+ return await failureResult(band.message, callback);
198
+ }
190
199
  const result = await agentClient.openVerifiedStream({
191
200
  operator: input.operator,
192
201
  serviceRef: input.serviceRef,
@@ -322,7 +331,7 @@ function createExamples(action) {
322
331
  const exampleMandate = {
323
332
  mandateId: `0x${"55".repeat(32)}`,
324
333
  owner: "0x1111111111111111111111111111111111111111",
325
- chainId: 84532,
334
+ chainId: METRIK_ELIZA_SETTLEMENT_CHAIN_ID,
326
335
  issuedAt: 1_900_000_000,
327
336
  mandate: {
328
337
  maxPerStreamUsdc: "100000000",