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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/README.md +106 -30
  2. package/dist/capability/invocation-capability.d.ts +20 -8
  3. package/dist/capability/invocation-capability.d.ts.map +1 -1
  4. package/dist/capability/invocation-capability.js.map +1 -1
  5. package/dist/capability/probe-capability.d.ts +225 -0
  6. package/dist/capability/probe-capability.d.ts.map +1 -0
  7. package/dist/capability/probe-capability.js +248 -0
  8. package/dist/capability/probe-capability.js.map +1 -0
  9. package/dist/cli/args.d.ts +11 -0
  10. package/dist/cli/args.d.ts.map +1 -1
  11. package/dist/cli/args.js +23 -0
  12. package/dist/cli/args.js.map +1 -1
  13. package/dist/cli/commands/claim.d.ts.map +1 -1
  14. package/dist/cli/commands/claim.js +21 -5
  15. package/dist/cli/commands/claim.js.map +1 -1
  16. package/dist/cli/commands/close.d.ts.map +1 -1
  17. package/dist/cli/commands/close.js +51 -7
  18. package/dist/cli/commands/close.js.map +1 -1
  19. package/dist/cli/commands/invoke.d.ts +2 -0
  20. package/dist/cli/commands/invoke.d.ts.map +1 -1
  21. package/dist/cli/commands/invoke.js +3 -2
  22. package/dist/cli/commands/invoke.js.map +1 -1
  23. package/dist/cli/commands/mcp.d.ts.map +1 -1
  24. package/dist/cli/commands/mcp.js +15 -2
  25. package/dist/cli/commands/mcp.js.map +1 -1
  26. package/dist/cli/commands/open.d.ts.map +1 -1
  27. package/dist/cli/commands/open.js +121 -15
  28. package/dist/cli/commands/open.js.map +1 -1
  29. package/dist/cli/commands/pay.d.ts +19 -0
  30. package/dist/cli/commands/pay.d.ts.map +1 -0
  31. package/dist/cli/commands/pay.js +355 -0
  32. package/dist/cli/commands/pay.js.map +1 -0
  33. package/dist/cli/commands/reclaim-unverified.d.ts.map +1 -1
  34. package/dist/cli/commands/reclaim-unverified.js +15 -6
  35. package/dist/cli/commands/reclaim-unverified.js.map +1 -1
  36. package/dist/cli/commands/reclaim.d.ts +23 -2
  37. package/dist/cli/commands/reclaim.d.ts.map +1 -1
  38. package/dist/cli/commands/reclaim.js +200 -21
  39. package/dist/cli/commands/reclaim.js.map +1 -1
  40. package/dist/cli/commands/refund.d.ts +13 -0
  41. package/dist/cli/commands/refund.d.ts.map +1 -0
  42. package/dist/cli/commands/refund.js +224 -0
  43. package/dist/cli/commands/refund.js.map +1 -0
  44. package/dist/cli/commands/status.d.ts.map +1 -1
  45. package/dist/cli/commands/status.js +10 -1
  46. package/dist/cli/commands/status.js.map +1 -1
  47. package/dist/cli/commands/streams.js +9 -13
  48. package/dist/cli/commands/streams.js.map +1 -1
  49. package/dist/cli/commands/watch.d.ts.map +1 -1
  50. package/dist/cli/commands/watch.js +2 -1
  51. package/dist/cli/commands/watch.js.map +1 -1
  52. package/dist/cli/config.d.ts +44 -26
  53. package/dist/cli/config.d.ts.map +1 -1
  54. package/dist/cli/config.js +88 -38
  55. package/dist/cli/config.js.map +1 -1
  56. package/dist/cli/deps.d.ts +86 -7
  57. package/dist/cli/deps.d.ts.map +1 -1
  58. package/dist/cli/deps.js +102 -16
  59. package/dist/cli/deps.js.map +1 -1
  60. package/dist/cli/errors.d.ts.map +1 -1
  61. package/dist/cli/errors.js +21 -1
  62. package/dist/cli/errors.js.map +1 -1
  63. package/dist/cli/escape-hatch.d.ts +6 -4
  64. package/dist/cli/escape-hatch.d.ts.map +1 -1
  65. package/dist/cli/escape-hatch.js +6 -2
  66. package/dist/cli/escape-hatch.js.map +1 -1
  67. package/dist/cli/listings.d.ts +18 -0
  68. package/dist/cli/listings.d.ts.map +1 -1
  69. package/dist/cli/listings.js +22 -12
  70. package/dist/cli/listings.js.map +1 -1
  71. package/dist/cli/preflight.d.ts +20 -14
  72. package/dist/cli/preflight.d.ts.map +1 -1
  73. package/dist/cli/preflight.js +34 -20
  74. package/dist/cli/preflight.js.map +1 -1
  75. package/dist/cli/privy.d.ts +83 -0
  76. package/dist/cli/privy.d.ts.map +1 -0
  77. package/dist/cli/privy.js +232 -0
  78. package/dist/cli/privy.js.map +1 -0
  79. package/dist/cli/reclaimability.d.ts +82 -0
  80. package/dist/cli/reclaimability.d.ts.map +1 -0
  81. package/dist/cli/reclaimability.js +80 -0
  82. package/dist/cli/reclaimability.js.map +1 -0
  83. package/dist/cli/run.d.ts +2 -1
  84. package/dist/cli/run.d.ts.map +1 -1
  85. package/dist/cli/run.js +40 -11
  86. package/dist/cli/run.js.map +1 -1
  87. package/dist/cli/scan-range.d.ts +2 -2
  88. package/dist/cli/scan-range.js +2 -2
  89. package/dist/cli/spend-policy.d.ts +60 -0
  90. package/dist/cli/spend-policy.d.ts.map +1 -0
  91. package/dist/cli/spend-policy.js +65 -0
  92. package/dist/cli/spend-policy.js.map +1 -0
  93. package/dist/cli/status.d.ts +3 -1
  94. package/dist/cli/status.d.ts.map +1 -1
  95. package/dist/cli/status.js +15 -3
  96. package/dist/cli/status.js.map +1 -1
  97. package/dist/cli/wallet.d.ts +109 -40
  98. package/dist/cli/wallet.d.ts.map +1 -1
  99. package/dist/cli/wallet.js +109 -44
  100. package/dist/cli/wallet.js.map +1 -1
  101. package/dist/discovery/rate-band.d.ts +74 -0
  102. package/dist/discovery/rate-band.d.ts.map +1 -0
  103. package/dist/discovery/rate-band.js +114 -0
  104. package/dist/discovery/rate-band.js.map +1 -0
  105. package/dist/escrow-generation.d.ts +81 -0
  106. package/dist/escrow-generation.d.ts.map +1 -0
  107. package/dist/escrow-generation.js +76 -0
  108. package/dist/escrow-generation.js.map +1 -0
  109. package/dist/frameworks/agentkit.d.ts +8 -4
  110. package/dist/frameworks/agentkit.d.ts.map +1 -1
  111. package/dist/frameworks/agentkit.js +27 -10
  112. package/dist/frameworks/agentkit.js.map +1 -1
  113. package/dist/frameworks/eliza.d.ts +3 -3
  114. package/dist/frameworks/eliza.d.ts.map +1 -1
  115. package/dist/frameworks/eliza.js +15 -6
  116. package/dist/frameworks/eliza.js.map +1 -1
  117. package/dist/frameworks/langchain.d.ts.map +1 -1
  118. package/dist/frameworks/langchain.js +8 -0
  119. package/dist/frameworks/langchain.js.map +1 -1
  120. package/dist/gateway/caller-auth-gateway.d.ts +91 -4
  121. package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
  122. package/dist/gateway/caller-auth-gateway.js +184 -7
  123. package/dist/gateway/caller-auth-gateway.js.map +1 -1
  124. package/dist/gateway/http-server.d.ts +121 -1
  125. package/dist/gateway/http-server.d.ts.map +1 -1
  126. package/dist/gateway/http-server.js +474 -5
  127. package/dist/gateway/http-server.js.map +1 -1
  128. package/dist/gateway/probe-auth.d.ts +112 -0
  129. package/dist/gateway/probe-auth.d.ts.map +1 -0
  130. package/dist/gateway/probe-auth.js +127 -0
  131. package/dist/gateway/probe-auth.js.map +1 -0
  132. package/dist/gateway/signed-rate-bounds.d.ts +51 -0
  133. package/dist/gateway/signed-rate-bounds.d.ts.map +1 -0
  134. package/dist/gateway/signed-rate-bounds.js +94 -0
  135. package/dist/gateway/signed-rate-bounds.js.map +1 -0
  136. package/dist/gateway/x402-opener-mode.d.ts +215 -0
  137. package/dist/gateway/x402-opener-mode.d.ts.map +1 -0
  138. package/dist/gateway/x402-opener-mode.js +639 -0
  139. package/dist/gateway/x402-opener-mode.js.map +1 -0
  140. package/dist/index.d.ts +11 -5
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +15 -5
  143. package/dist/index.js.map +1 -1
  144. package/dist/mandates/env.d.ts +3 -2
  145. package/dist/mandates/env.d.ts.map +1 -1
  146. package/dist/mandates/env.js +3 -2
  147. package/dist/mandates/env.js.map +1 -1
  148. package/dist/mcp/server.d.ts +100 -0
  149. package/dist/mcp/server.d.ts.map +1 -1
  150. package/dist/mcp/server.js +719 -39
  151. package/dist/mcp/server.js.map +1 -1
  152. package/dist/mcp/service-invoker.d.ts +97 -0
  153. package/dist/mcp/service-invoker.d.ts.map +1 -0
  154. package/dist/mcp/service-invoker.js +167 -0
  155. package/dist/mcp/service-invoker.js.map +1 -0
  156. package/dist/mcp/x402-tools.d.ts +104 -0
  157. package/dist/mcp/x402-tools.d.ts.map +1 -0
  158. package/dist/mcp/x402-tools.js +434 -0
  159. package/dist/mcp/x402-tools.js.map +1 -0
  160. package/dist/network.d.ts +119 -0
  161. package/dist/network.d.ts.map +1 -0
  162. package/dist/network.js +199 -0
  163. package/dist/network.js.map +1 -0
  164. package/dist/sdk/invoke.d.ts +23 -4
  165. package/dist/sdk/invoke.d.ts.map +1 -1
  166. package/dist/sdk/invoke.js +71 -10
  167. package/dist/sdk/invoke.js.map +1 -1
  168. package/dist/wallet/autonomous-wallet-broker.d.ts +3 -0
  169. package/dist/wallet/autonomous-wallet-broker.d.ts.map +1 -1
  170. package/dist/wallet/autonomous-wallet-broker.js +27 -23
  171. package/dist/wallet/autonomous-wallet-broker.js.map +1 -1
  172. package/dist/wallet/autonomous-wallet-protocol.d.ts +8 -2
  173. package/dist/wallet/autonomous-wallet-protocol.d.ts.map +1 -1
  174. package/dist/wallet/autonomous-wallet-protocol.js +9 -2
  175. package/dist/wallet/autonomous-wallet-protocol.js.map +1 -1
  176. package/dist/wallet/autonomous-wallet.d.ts.map +1 -1
  177. package/dist/wallet/autonomous-wallet.js +3 -2
  178. package/dist/wallet/autonomous-wallet.js.map +1 -1
  179. package/dist/wallet/broker-escrows.d.ts +222 -0
  180. package/dist/wallet/broker-escrows.d.ts.map +1 -0
  181. package/dist/wallet/broker-escrows.js +36 -0
  182. package/dist/wallet/broker-escrows.js.map +1 -0
  183. package/dist/wallet/lifecycle.d.ts +21 -5
  184. package/dist/wallet/lifecycle.d.ts.map +1 -1
  185. package/dist/wallet/lifecycle.js +32 -12
  186. package/dist/wallet/lifecycle.js.map +1 -1
  187. package/dist/wallet/privy-broker-server.d.ts.map +1 -1
  188. package/dist/wallet/privy-broker-server.js +31 -26
  189. package/dist/wallet/privy-broker-server.js.map +1 -1
  190. package/dist/wallet/privy-session-broker.d.ts +14 -5
  191. package/dist/wallet/privy-session-broker.d.ts.map +1 -1
  192. package/dist/wallet/privy-session-broker.js +29 -17
  193. package/dist/wallet/privy-session-broker.js.map +1 -1
  194. package/dist/wallet/privy-session-provider.d.ts +3 -1
  195. package/dist/wallet/privy-session-provider.d.ts.map +1 -1
  196. package/dist/wallet/privy-session-provider.js +5 -3
  197. package/dist/wallet/privy-session-provider.js.map +1 -1
  198. package/dist/wallet/provider.d.ts.map +1 -1
  199. package/dist/wallet/provider.js +15 -8
  200. package/dist/wallet/provider.js.map +1 -1
  201. package/dist/x402/facilitator.d.ts +42 -17
  202. package/dist/x402/facilitator.d.ts.map +1 -1
  203. package/dist/x402/facilitator.js +49 -33
  204. package/dist/x402/facilitator.js.map +1 -1
  205. package/dist/x402-buyer/guarded-fetch.d.ts +51 -0
  206. package/dist/x402-buyer/guarded-fetch.d.ts.map +1 -0
  207. package/dist/x402-buyer/guarded-fetch.js +147 -0
  208. package/dist/x402-buyer/guarded-fetch.js.map +1 -0
  209. package/dist/x402-buyer/index.d.ts +10 -0
  210. package/dist/x402-buyer/index.d.ts.map +1 -0
  211. package/dist/x402-buyer/index.js +10 -0
  212. package/dist/x402-buyer/index.js.map +1 -0
  213. package/dist/x402-buyer/pay.d.ts +135 -0
  214. package/dist/x402-buyer/pay.d.ts.map +1 -0
  215. package/dist/x402-buyer/pay.js +336 -0
  216. package/dist/x402-buyer/pay.js.map +1 -0
  217. package/dist/x402-opener/abi.d.ts +684 -0
  218. package/dist/x402-opener/abi.d.ts.map +1 -0
  219. package/dist/x402-opener/abi.js +880 -0
  220. package/dist/x402-opener/abi.js.map +1 -0
  221. package/dist/x402-opener/facilitator-entry.d.ts +3 -0
  222. package/dist/x402-opener/facilitator-entry.d.ts.map +1 -0
  223. package/dist/x402-opener/facilitator-entry.js +37 -0
  224. package/dist/x402-opener/facilitator-entry.js.map +1 -0
  225. package/dist/x402-opener/facilitator-server.d.ts +180 -0
  226. package/dist/x402-opener/facilitator-server.d.ts.map +1 -0
  227. package/dist/x402-opener/facilitator-server.js +696 -0
  228. package/dist/x402-opener/facilitator-server.js.map +1 -0
  229. package/dist/x402-opener/index.d.ts +14 -0
  230. package/dist/x402-opener/index.d.ts.map +1 -0
  231. package/dist/x402-opener/index.js +14 -0
  232. package/dist/x402-opener/index.js.map +1 -0
  233. package/dist/x402-opener/listing-resolver.d.ts +55 -0
  234. package/dist/x402-opener/listing-resolver.d.ts.map +1 -0
  235. package/dist/x402-opener/listing-resolver.js +125 -0
  236. package/dist/x402-opener/listing-resolver.js.map +1 -0
  237. package/dist/x402-opener/refund-relay.d.ts +240 -0
  238. package/dist/x402-opener/refund-relay.d.ts.map +1 -0
  239. package/dist/x402-opener/refund-relay.js +1240 -0
  240. package/dist/x402-opener/refund-relay.js.map +1 -0
  241. package/dist/x402-opener/relayer-queue.d.ts +14 -0
  242. package/dist/x402-opener/relayer-queue.d.ts.map +1 -0
  243. package/dist/x402-opener/relayer-queue.js +18 -0
  244. package/dist/x402-opener/relayer-queue.js.map +1 -0
  245. package/dist/x402-opener/scheme.d.ts +217 -0
  246. package/dist/x402-opener/scheme.d.ts.map +1 -0
  247. package/dist/x402-opener/scheme.js +749 -0
  248. package/dist/x402-opener/scheme.js.map +1 -0
  249. package/dist/x402-opener/terms.d.ts +105 -0
  250. package/dist/x402-opener/terms.d.ts.map +1 -0
  251. package/dist/x402-opener/terms.js +212 -0
  252. package/dist/x402-opener/terms.js.map +1 -0
  253. package/dist/zktls/reclaim.d.ts +2 -2
  254. package/docs/agent-layer.md +13 -8
  255. package/docs/autonomous-privy-wallet.md +188 -0
  256. package/docs/cli.md +342 -53
  257. package/docs/langchain.md +5 -0
  258. package/docs/mcp-hosted.md +4 -3
  259. package/docs/mcp-reference.md +245 -0
  260. package/docs/probe-capability.md +191 -0
  261. package/docs/quickstart.md +54 -5
  262. package/docs/threat-model.md +24 -3
  263. package/docs/x402.md +681 -0
  264. package/package.json +19 -6
  265. package/src/capability/invocation-capability.ts +17 -1
  266. package/src/capability/probe-capability.ts +355 -0
  267. package/src/cli/args.ts +29 -0
  268. package/src/cli/commands/claim.ts +31 -5
  269. package/src/cli/commands/close.ts +56 -7
  270. package/src/cli/commands/invoke.ts +6 -2
  271. package/src/cli/commands/mcp.ts +18 -2
  272. package/src/cli/commands/open.ts +151 -14
  273. package/src/cli/commands/pay.ts +442 -0
  274. package/src/cli/commands/reclaim-unverified.ts +24 -6
  275. package/src/cli/commands/reclaim.ts +274 -19
  276. package/src/cli/commands/refund.ts +277 -0
  277. package/src/cli/commands/status.ts +17 -1
  278. package/src/cli/commands/streams.ts +11 -15
  279. package/src/cli/commands/watch.ts +7 -1
  280. package/src/cli/config.ts +139 -52
  281. package/src/cli/deps.ts +189 -25
  282. package/src/cli/errors.ts +24 -1
  283. package/src/cli/escape-hatch.ts +19 -5
  284. package/src/cli/listings.ts +43 -10
  285. package/src/cli/preflight.ts +36 -21
  286. package/src/cli/privy.ts +398 -0
  287. package/src/cli/reclaimability.ts +154 -0
  288. package/src/cli/run.ts +54 -11
  289. package/src/cli/scan-range.ts +2 -2
  290. package/src/cli/spend-policy.ts +139 -0
  291. package/src/cli/status.ts +14 -1
  292. package/src/cli/wallet.ts +189 -58
  293. package/src/discovery/rate-band.ts +172 -0
  294. package/src/escrow-generation.ts +135 -0
  295. package/src/frameworks/agentkit.ts +45 -11
  296. package/src/frameworks/eliza.ts +27 -5
  297. package/src/frameworks/langchain.ts +14 -0
  298. package/src/gateway/caller-auth-gateway.ts +336 -13
  299. package/src/gateway/http-server.ts +690 -7
  300. package/src/gateway/probe-auth.ts +191 -0
  301. package/src/gateway/signed-rate-bounds.ts +164 -0
  302. package/src/gateway/x402-opener-mode.ts +974 -0
  303. package/src/index.ts +112 -14
  304. package/src/mandates/env.ts +3 -2
  305. package/src/mcp/server.ts +973 -44
  306. package/src/mcp/service-invoker.ts +285 -0
  307. package/src/mcp/x402-tools.ts +621 -0
  308. package/src/network.ts +302 -0
  309. package/src/sdk/invoke.ts +96 -17
  310. package/src/wallet/autonomous-wallet-broker.ts +46 -20
  311. package/src/wallet/autonomous-wallet-protocol.ts +11 -2
  312. package/src/wallet/autonomous-wallet.ts +4 -2
  313. package/src/wallet/broker-escrows.ts +66 -0
  314. package/src/wallet/lifecycle.ts +53 -18
  315. package/src/wallet/privy-broker-server.ts +35 -25
  316. package/src/wallet/privy-session-broker.ts +58 -25
  317. package/src/wallet/privy-session-provider.ts +7 -3
  318. package/src/wallet/provider.ts +20 -15
  319. package/src/x402/facilitator.ts +85 -46
  320. package/src/x402-buyer/guarded-fetch.ts +213 -0
  321. package/src/x402-buyer/index.ts +9 -0
  322. package/src/x402-buyer/pay.ts +517 -0
  323. package/src/x402-opener/abi.ts +881 -0
  324. package/src/x402-opener/facilitator-entry.ts +45 -0
  325. package/src/x402-opener/facilitator-server.ts +1014 -0
  326. package/src/x402-opener/index.ts +13 -0
  327. package/src/x402-opener/listing-resolver.ts +202 -0
  328. package/src/x402-opener/refund-relay.ts +1743 -0
  329. package/src/x402-opener/relayer-queue.ts +18 -0
  330. package/src/x402-opener/scheme.ts +1133 -0
  331. package/src/x402-opener/terms.ts +300 -0
@@ -1,66 +1,116 @@
1
- import { BASE_SEPOLIA_ESCROW_V2, BASE_SEPOLIA_USDC, DEFAULT_ORACLE_BASE_URL, DEFAULT_PUBLIC_REGISTRY_URL, } from "@absol-labs/sdk";
2
1
  import { isAddress, getAddress } from "viem";
3
- import { baseSepolia } from "viem/chains";
2
+ import { allowedNetworks, describeAllowedNetworks, registeredDeployment, METRIK_NETWORK_ENV, resolveAgentNetwork, UnsupportedNetworkError, } from "../network.js";
4
3
  import { CliError, configError, usageError } from "./errors.js";
5
4
  import { stringFlag, integerFlag } from "./args.js";
6
5
  /**
7
- * TESTNET ONLY — the single allowlist this CLI will settle against.
6
+ * TESTNET ONLY — the CLI settles only on registered networks the SDK registry
7
+ * marks `testnet: true`.
8
8
  *
9
9
  * Metrik's escrow moves real USDC the moment it is pointed at a mainnet chain,
10
10
  * and this CLI signs with a raw private key read from the environment. So the
11
- * chain is an allowlist, not a default: any other chain id is refused outright,
12
- * with no override flag. There is deliberately no `--allow-mainnet` — an escape
13
- * hatch that re-enables real funds would defeat the guarantee, and a mainnet
14
- * deployment is not something a flag can conjure (there is none).
11
+ * chain is an allowlist, not a default: a chain the registry does not know, or
12
+ * one it knows as a mainnet, is refused outright, with no override flag. There
13
+ * is deliberately no `--allow-mainnet` — an escape hatch that re-enables real
14
+ * funds would defeat the guarantee.
15
15
  *
16
- * The allowlist is enforced TWICE: once against the configured/declared chain
17
- * id, and again against the chain id the RPC endpoint actually reports before
18
- * any fund-moving command signs anything (see `assertTestnetRpc`). The second
19
- * check is what stops `--chain-id 84532 --rpc-url <a mainnet RPC>`.
16
+ * The allowlist is enforced TWICE: once against the configured/declared network,
17
+ * and again against the chain id the RPC endpoint actually reports before any
18
+ * fund-moving command signs anything (see `assertTestnetRpc`). The second check
19
+ * is what stops a testnet `--chain-id` paired with a mainnet `--rpc-url`.
20
20
  */
21
- export const TESTNET_CHAIN_IDS = [baseSepolia.id];
21
+ export const CLI_NETWORK_POLICY = { testnetOnly: true };
22
+ /** Chain ids of every registered testnet this CLI will settle against. */
23
+ export function testnetChainIds() {
24
+ return allowedNetworks(CLI_NETWORK_POLICY).map((network) => network.chain.id);
25
+ }
22
26
  /**
23
- * The block `BASE_SEPOLIA_ESCROW_V2` was deployed at — the anchor of every
24
- * escrow log scan, because the contract has no history before it.
25
- *
26
- * Verified against Base Sepolia on 2026-09-17: `eth_getLogs` for this single
27
- * block returns 6 escrow logs (the deployment's own events). History is
28
- * immutable, so that is a stable known answer forever, which is what lets the
29
- * same block serve as the log-retention canary in `metrik streams`.
30
- *
31
- * It is tied to that ONE address. A run pointed at a different `--escrow` has
32
- * no anchor and must be given `--from-block`, rather than silently scanning
33
- * from a block that means nothing for it.
27
+ * @deprecated Snapshot of {@link testnetChainIds} at import time. A network
28
+ * registered later is not in it; call `testnetChainIds()` instead.
29
+ */
30
+ export const TESTNET_CHAIN_IDS = testnetChainIds();
31
+ /**
32
+ * The block the configured escrow was deployed at — the anchor of every escrow
33
+ * log scan — or `undefined` when the escrow is not the network's registered
34
+ * escrow (a run pointed at a different `--escrow` has no anchor and must be
35
+ * given `--from-block`, rather than silently scanning from a block that means
36
+ * nothing for it).
34
37
  */
35
- export const BASE_SEPOLIA_ESCROW_V2_DEPLOY_BLOCK = 45892018n;
38
+ export function escrowDeployBlock(config) {
39
+ return registeredDeployment(config.network, config.escrow)?.escrow
40
+ .deployBlock;
41
+ }
36
42
  /**
37
- * Resolves settlement configuration from flags, then env, then the baked-in
38
- * Base Sepolia defaults — so `metrik discover` works with nothing configured at
43
+ * Resolves settlement configuration from flags, then env, then the network's
44
+ * registry defaults — so `metrik discover` works with nothing configured at
39
45
  * all, while every value stays overridable.
46
+ *
47
+ * The network is selected by `--network` / `METRIK_NETWORK` (registry id,
48
+ * chain id or CAIP-2 id) or by `--chain-id` / `METRIK_AGENT_CHAIN_ID`; giving
49
+ * both is allowed only when they agree.
40
50
  */
41
51
  export function resolveConfig(args, env) {
42
- const chainId = integerFlag(args, "chain-id") ??
43
- parseEnvChainId(env.METRIK_AGENT_CHAIN_ID) ??
44
- baseSepolia.id;
45
- assertTestnetChainId(chainId, "the configured chain id");
52
+ const network = resolveCliNetwork(args, env);
53
+ const chainId = network.chain.id;
46
54
  const rpcUrl = stringFlag(args, "rpc-url") ??
47
55
  env.METRIK_AGENT_RPC_URL ??
48
- baseSepolia.rpcUrls.default.http[0];
56
+ network.rpcUrls[0];
49
57
  if (rpcUrl === undefined || !isHttpUrl(rpcUrl)) {
50
58
  throw configError(`RPC URL must be an http(s) URL (got "${rpcUrl ?? "undefined"}")`, "set --rpc-url or METRIK_AGENT_RPC_URL.");
51
59
  }
60
+ const escrow = resolveAddress(stringFlag(args, "escrow") ?? env.METRIK_AGENT_ESCROW, network.escrow.address, "escrow");
61
+ const declared = (stringFlag(args, "escrow-generation") ?? env.METRIK_AGENT_ESCROW_GENERATION)
62
+ ?.trim()
63
+ .toLowerCase();
64
+ if (declared !== undefined && declared !== "v2" && declared !== "v3") {
65
+ throw configError(`--escrow-generation must be "v2" or "v3" (got "${declared}")`);
66
+ }
67
+ const deployment = registeredDeployment(network, escrow);
68
+ if (deployment === undefined && declared === undefined) {
69
+ throw configError(`escrow ${escrow} is not a registered deployment of ${network.name}`, `the SDK pins registered escrows by code hash; for your own deployment pass --escrow-generation v2|v3 (it then only checks the interface, which any contract can fake). Registered: ${[network.escrow, ...network.legacy.map((d) => d.escrow)].map((e) => `${e.address} (${e.generation})`).join(", ")}.`);
70
+ }
71
+ if (deployment !== undefined &&
72
+ declared !== undefined &&
73
+ declared !== deployment.escrow.generation) {
74
+ throw configError(`--escrow-generation ${declared} contradicts the registry: ${escrow} is the ${deployment.escrow.generation} escrow`);
75
+ }
52
76
  return {
53
- chain: baseSepolia,
77
+ network,
78
+ chain: network.chain,
54
79
  chainId,
55
80
  rpcUrl,
56
- escrow: resolveAddress(stringFlag(args, "escrow") ?? env.METRIK_AGENT_ESCROW, BASE_SEPOLIA_ESCROW_V2, "escrow"),
57
- usdc: resolveAddress(stringFlag(args, "usdc") ?? env.METRIK_AGENT_USDC, BASE_SEPOLIA_USDC, "usdc"),
58
- oracleBaseUrl: resolveHttpUrl(stringFlag(args, "oracle-url") ?? env.METRIK_AGENT_ORACLE_URL, DEFAULT_ORACLE_BASE_URL, "oracle-url"),
59
- registryUrl: resolveHttpUrl(stringFlag(args, "registry-url") ?? env.METRIK_AGENT_REGISTRY_URL, DEFAULT_PUBLIC_REGISTRY_URL, "registry-url"),
81
+ escrow,
82
+ ...(deployment === undefined
83
+ ? { unregisteredEscrowGeneration: declared }
84
+ : {}),
85
+ usdc: resolveAddress(stringFlag(args, "usdc") ?? env.METRIK_AGENT_USDC, network.usdc.address, "usdc"),
86
+ oracleBaseUrl: resolveHttpUrl(stringFlag(args, "oracle-url") ?? env.METRIK_AGENT_ORACLE_URL, network.oracleBaseUrl, "oracle-url"),
87
+ registryUrl: resolveHttpUrl(stringFlag(args, "registry-url") ?? env.METRIK_AGENT_REGISTRY_URL, network.publicRegistryUrl ?? `${network.oracleBaseUrl}/listings`, "registry-url"),
60
88
  };
61
89
  }
90
+ function resolveCliNetwork(args, env) {
91
+ const chainId = integerFlag(args, "chain-id") ?? parseEnvChainId(env.METRIK_AGENT_CHAIN_ID);
92
+ const selector = stringFlag(args, "network") ?? env[METRIK_NETWORK_ENV];
93
+ if (chainId !== undefined)
94
+ assertTestnetChainId(chainId, "the configured chain id");
95
+ let network;
96
+ try {
97
+ network = resolveAgentNetwork(selector !== undefined && selector.trim().length > 0 ? selector : chainId, CLI_NETWORK_POLICY);
98
+ }
99
+ catch (error) {
100
+ if (error instanceof UnsupportedNetworkError) {
101
+ throw configError(`refusing to run against network "${error.selector}": it is not a supported testnet`, `${error.message}. There is no override flag.`);
102
+ }
103
+ throw error;
104
+ }
105
+ if (chainId !== undefined && chainId !== network.chain.id) {
106
+ throw configError(`--chain-id ${chainId} does not match --network ${network.id} (chain ${network.chain.id})`, "give one of them, or make them agree.");
107
+ }
108
+ return network;
109
+ }
62
110
  /** Flags every command accepts for settlement configuration. */
63
111
  export const CONFIG_FLAGS = [
112
+ "network",
113
+ "escrow-generation",
64
114
  "chain-id",
65
115
  "rpc-url",
66
116
  "escrow",
@@ -71,9 +121,9 @@ export const CONFIG_FLAGS = [
71
121
  /** Flags every command accepts for output shape. */
72
122
  export const GLOBAL_FLAGS = ["json", "help"];
73
123
  export function assertTestnetChainId(chainId, source) {
74
- if (TESTNET_CHAIN_IDS.includes(chainId))
124
+ if (testnetChainIds().includes(chainId))
75
125
  return;
76
- throw configError(`refusing to run against chain ${chainId}: ${source} is not a supported testnet`, `this CLI signs with a raw private key and settles real value, so it is testnet-only. Supported: ${TESTNET_CHAIN_IDS.join(", ")} (Base Sepolia). There is no override flag.`);
126
+ throw configError(`refusing to run against chain ${chainId}: ${source} is not a supported testnet`, `this CLI signs with a raw private key and settles real value, so it is testnet-only. Supported (registered testnets): ${describeAllowedNetworks(CLI_NETWORK_POLICY)}. There is no override flag.`);
77
127
  }
78
128
  /**
79
129
  * Second half of the testnet guard: the chain the RPC ACTUALLY serves. Called
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  import { type CheckpointProof, type HireComputeInput, type HireComputeResult, type HireTxPreview, type StreamV2, type StreamProofTransactionResult } from "@absol-labs/sdk";
2
- import { type LocalAccount } from "viem";
2
+ import { type Transport } from "viem";
3
3
  import { type DiscoverResult, type DiscoverServicesOptions, type ServiceListing } from "../discovery/registry.js";
4
4
  import { type InvokeOptions, type InvokeResult, type InvokeServiceInput, type InvokeStreamReader } from "../sdk/invoke.js";
5
5
  import { type MandateAuthorizedStreamActionInput, type OpenVerifiedStreamInput, type ReclaimAuthorizedStreamInput, type ReclaimVerifiedStreamResult } from "../sdk/client.js";
6
+ import type { SignedSpendMandate } from "../mandates/mandate.js";
7
+ import type { PayX402WithMandateInput, PayX402WithMandateResult } from "../x402-buyer/pay.js";
8
+ import type { RefundClient } from "@absol-labs/sdk/x402";
6
9
  import type { CliConfig } from "./config.js";
10
+ import type { CliSignerAccount } from "./wallet.js";
7
11
  /**
8
12
  * Everything the CLI touches that is not pure computation, behind one
9
13
  * injectable surface. Commands are written against these interfaces so the test
@@ -110,20 +114,73 @@ export interface OpenedStream {
110
114
  readonly expiresAt: number;
111
115
  readonly blockNumber: bigint;
112
116
  }
117
+ /**
118
+ * A fund-moving call, with the mandate made EXPLICITLY optional.
119
+ *
120
+ * `null` is not "no authorization" — it is "this wallet's ceiling is enforced
121
+ * by a broker policy the client cannot reach or raise, so a locally self-signed
122
+ * mandate would be the agent attesting to its own limits on top of a stronger
123
+ * limit". The CLI substitutes the real ceiling instead; see
124
+ * `./spend-policy.ts`, which also explains why re-adding the mandate here would
125
+ * be a regression rather than a tidy-up.
126
+ *
127
+ * A key-holding wallet (private key, CDP) always passes a real mandate, and its
128
+ * path through `VerifiedStreamAgentClient` is unchanged.
129
+ */
130
+ type MandateOptional<T extends {
131
+ readonly signedMandate: SignedSpendMandate;
132
+ }> = Omit<T, "signedMandate"> & {
133
+ readonly signedMandate: SignedSpendMandate | null;
134
+ };
135
+ export type CliOpenStreamInput = MandateOptional<OpenVerifiedStreamInput>;
136
+ export type CliStreamActionInput = MandateOptional<MandateAuthorizedStreamActionInput>;
137
+ export type CliReclaimStreamInput = MandateOptional<ReclaimAuthorizedStreamInput>;
113
138
  export interface CliWriteClient {
114
139
  /** Build + best-effort simulate the hire WITHOUT broadcasting (`--dry-run`). */
115
140
  buildHireTx(input: HireComputeInput): Promise<HireTxPreview>;
116
- openVerifiedStream(input: OpenVerifiedStreamInput): Promise<HireComputeResult>;
117
- closeStream(input: MandateAuthorizedStreamActionInput): Promise<StreamProofTransactionResult>;
118
- reclaimStream(input: ReclaimAuthorizedStreamInput): Promise<ReclaimVerifiedStreamResult>;
141
+ openVerifiedStream(input: CliOpenStreamInput): Promise<HireComputeResult>;
142
+ closeStream(input: CliStreamActionInput): Promise<StreamProofTransactionResult>;
143
+ reclaimStream(input: CliReclaimStreamInput): Promise<ReclaimVerifiedStreamResult>;
119
144
  /**
120
145
  * The no-proof escape hatch. Separate from {@link reclaimStream} because it is
121
146
  * a different transaction with a different outcome, not a mode of the same one
122
147
  * — see `VerifiedStreamAgentClient.reclaimUnverifiedStream`.
123
148
  */
124
- reclaimUnverifiedStream(input: MandateAuthorizedStreamActionInput): Promise<StreamProofTransactionResult>;
149
+ reclaimUnverifiedStream(input: CliStreamActionInput): Promise<StreamProofTransactionResult>;
125
150
  /** Operator-only: redeem the verified-earned balance for a stream. */
126
- claimStream(input: MandateAuthorizedStreamActionInput): Promise<StreamProofTransactionResult>;
151
+ claimStream(input: CliStreamActionInput): Promise<StreamProofTransactionResult>;
152
+ }
153
+ /**
154
+ * Per-wallet write-path overrides.
155
+ *
156
+ * `transport` exists for exactly one reason: a Privy wallet has no local
157
+ * `signTransaction`. Its EIP-1193 provider performs `eth_sendTransaction`
158
+ * itself, so the provider must BE the wallet client's transport rather than the
159
+ * plain `http(--rpc-url)` every local signer uses. Left unset — which is every
160
+ * private-key and CDP run — the transport is unchanged, byte for byte.
161
+ */
162
+ export interface CreateWriteClientOptions {
163
+ readonly transport?: Transport;
164
+ }
165
+ /**
166
+ * The buyer side of x402 (`metrik pay` / `metrik refund`). Behind the injectable
167
+ * surface like every other side effect, and loaded lazily by default so a CLI
168
+ * run that never pays over x402 never imports `@x402/*`.
169
+ */
170
+ export interface CliX402 {
171
+ /** Mandate-gated `payWithX402` (see `../x402-buyer/pay.ts`). */
172
+ readonly pay: (input: PayX402WithMandateInput) => Promise<PayX402WithMandateResult>;
173
+ /**
174
+ * The SDK's `refundClient`, bound to ONE stream and verifying every relay
175
+ * "success" against the chain this CLI is configured for.
176
+ */
177
+ readonly refundClient: (config: CliConfig, target: {
178
+ readonly refundUrl: string;
179
+ readonly streamId: `0x${string}`;
180
+ readonly opener?: `0x${string}`;
181
+ readonly maxAttempts?: number;
182
+ readonly maxDelayMs?: number;
183
+ }) => Promise<RefundClient>;
127
184
  }
128
185
  export interface CliDependencies {
129
186
  readonly createReadClient: (config: CliConfig) => CliReadClient;
@@ -133,13 +190,35 @@ export interface CliDependencies {
133
190
  * calldata and simply reports that the allowance read and simulation were
134
191
  * skipped; every fund-moving method throws rather than inventing a signer.
135
192
  */
136
- readonly createWriteClient: (config: CliConfig, account: LocalAccount | null) => CliWriteClient;
193
+ readonly createWriteClient: (config: CliConfig, account: CliSignerAccount | null, options?: CreateWriteClientOptions) => CliWriteClient;
137
194
  readonly discover: (options: DiscoverServicesOptions) => Promise<DiscoverResult>;
138
195
  readonly invoke: (streamId: `0x${string}`, request: InvokeServiceInput, options: InvokeOptions) => Promise<InvokeResult>;
139
196
  readonly createInvokeStreamReader: (config: CliConfig) => InvokeStreamReader;
140
197
  readonly nowSeconds: () => number;
141
198
  readonly sleep: (ms: number) => Promise<void>;
199
+ /** Optional so an embedder's existing dependency object keeps compiling. */
200
+ readonly x402?: CliX402;
142
201
  }
202
+ /**
203
+ * The RPC transport, with an explicit per-call budget.
204
+ *
205
+ * viem's defaults leave a single `eth_call` able to hang for a long time behind
206
+ * three backing-off retries, which is how a `status` run reached two minutes
207
+ * with nothing on screen. Bounding it here bounds every read and every
208
+ * simulation the SDK performs, in one place.
209
+ */
210
+ export declare function rpcTransport(config: CliConfig): import("viem").HttpTransport<undefined, false>;
143
211
  export declare const defaultCliDependencies: CliDependencies;
212
+ /**
213
+ * The write-client options a resolved wallet implies.
214
+ *
215
+ * Kept next to {@link CreateWriteClientOptions} so every fund-moving command
216
+ * spells the transport decision the same way, and so a wallet that needs a
217
+ * provider transport cannot be broadcast through a plain RPC by a command that
218
+ * simply forgot to pass it.
219
+ */
220
+ export declare function writeClientOptions(wallet: {
221
+ readonly transport?: Transport;
222
+ } | null): CreateWriteClientOptions;
144
223
  export type { DiscoverResult, ServiceListing };
145
224
  //# sourceMappingURL=deps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"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"}
package/dist/cli/deps.js CHANGED
@@ -22,17 +22,29 @@ const STREAM_OPENED_EVENT = getAbiItem({
22
22
  * with nothing on screen. Bounding it here bounds every read and every
23
23
  * simulation the SDK performs, in one place.
24
24
  */
25
- function rpcTransport(config) {
25
+ export function rpcTransport(config) {
26
26
  return http(config.rpcUrl, {
27
27
  timeout: RPC_TIMEOUT_MS,
28
28
  retryCount: RPC_RETRY_COUNT,
29
29
  });
30
30
  }
31
+ /**
32
+ * An `--escrow` the registry does not record was declared with
33
+ * `--escrow-generation`: the only case the SDK may skip its code-hash pin.
34
+ */
35
+ function unregisteredEscrowOptions(config) {
36
+ return config.unregisteredEscrowGeneration === undefined
37
+ ? {}
38
+ : {
39
+ allowUnregisteredEscrow: true,
40
+ escrowGeneration: config.unregisteredEscrowGeneration,
41
+ };
42
+ }
31
43
  /** Shared `MetrikClient` construction: one escrow, declared as V2 on both keys. */
32
- function createMetrikClient(config, account) {
44
+ function createMetrikClient(config, account, transport) {
33
45
  return new MetrikClient({
34
46
  chain: config.chain,
35
- transport: rpcTransport(config),
47
+ transport: transport ?? rpcTransport(config),
36
48
  escrow: config.escrow,
37
49
  // Declared on BOTH keys: without `escrowV2` the SDK routes reads and
38
50
  // settlement through the legacy V1 ABI, which reverts against
@@ -42,6 +54,7 @@ function createMetrikClient(config, account) {
42
54
  usdc: config.usdc,
43
55
  oracleBaseUrl: config.oracleBaseUrl,
44
56
  settlementTarget: { chainId: config.chainId, escrow: config.escrow },
57
+ ...unregisteredEscrowOptions(config),
45
58
  ...(account === undefined ? {} : { account }),
46
59
  });
47
60
  }
@@ -159,40 +172,80 @@ export const defaultCliDependencies = {
159
172
  },
160
173
  };
161
174
  },
162
- createWriteClient(config, account) {
175
+ createWriteClient(config, account, options) {
176
+ // A Privy wallet's provider IS the transport (see CreateWriteClientOptions);
177
+ // every other wallet keeps the plain bounded HTTP transport.
178
+ const transport = options?.transport ?? rpcTransport(config);
163
179
  const clientConfig = {
164
180
  chain: config.chain,
165
- transport: rpcTransport(config),
181
+ transport,
166
182
  escrow: config.escrow,
167
183
  escrowV2: config.escrow,
168
184
  usdc: config.usdc,
169
185
  oracleBaseUrl: config.oracleBaseUrl,
170
186
  settlementTarget: { chainId: config.chainId, escrow: config.escrow },
187
+ ...unregisteredEscrowOptions(config),
171
188
  ...(account === null ? {} : { account }),
172
189
  };
173
190
  // The mandate-gated agent client owns every fund-moving call; the raw SDK
174
191
  // client is used only for the build-only `--dry-run` preview, which
175
192
  // broadcasts nothing.
176
193
  const agentClient = new VerifiedStreamAgentClient(clientConfig);
177
- const metrik = createMetrikClient(config, ...(account === null ? [] : [account]));
194
+ const metrik = createMetrikClient(config, account === null ? undefined : account, transport);
178
195
  return {
179
196
  async buildHireTx(input) {
180
197
  return await metrik.buildHireTx(input);
181
198
  },
182
- async openVerifiedStream(input) {
183
- return await agentClient.openVerifiedStream(input);
199
+ async openVerifiedStream({ signedMandate, ...input }) {
200
+ // No mandate means a policy-enforced wallet: the ceiling was already
201
+ // checked against the broker's own `/v1/config` before we got here, and
202
+ // the broker checks it AGAIN server-side on the transaction it signs.
203
+ // Going straight at the SDK client is the same path the SDK-driven
204
+ // (non-CLI) flow has always used.
205
+ if (signedMandate === null) {
206
+ return await metrik.hireVerifiedService({
207
+ operator: input.operator,
208
+ serviceRef: input.serviceRef,
209
+ budgetUsdc: input.budgetUsdc,
210
+ ratePerSecond: input.ratePerSecondUsdc,
211
+ maxDurationSeconds: input.maxDurationSeconds,
212
+ });
213
+ }
214
+ return await agentClient.openVerifiedStream({
215
+ ...input,
216
+ signedMandate,
217
+ });
184
218
  },
185
- async closeStream(input) {
186
- return await agentClient.closeStream(input);
219
+ async closeStream({ signedMandate, ...input }) {
220
+ if (signedMandate === null)
221
+ return await metrik.close(input.streamId);
222
+ return await agentClient.closeStream({ ...input, signedMandate });
187
223
  },
188
- async reclaimStream(input) {
189
- return await agentClient.reclaimStream(input);
224
+ async reclaimStream({ signedMandate, ...input }) {
225
+ if (signedMandate === null) {
226
+ const closeResult = input.closeFirst
227
+ ? await metrik.close(input.streamId)
228
+ : null;
229
+ return {
230
+ closeResult,
231
+ reclaimResult: await metrik.reclaim(input.streamId),
232
+ };
233
+ }
234
+ return await agentClient.reclaimStream({ ...input, signedMandate });
190
235
  },
191
- async reclaimUnverifiedStream(input) {
192
- return await agentClient.reclaimUnverifiedStream(input);
236
+ async reclaimUnverifiedStream({ signedMandate, ...input }) {
237
+ if (signedMandate === null) {
238
+ return await metrik.reclaimUnverified(input.streamId);
239
+ }
240
+ return await agentClient.reclaimUnverifiedStream({
241
+ ...input,
242
+ signedMandate,
243
+ });
193
244
  },
194
- async claimStream(input) {
195
- return await agentClient.claimStream(input);
245
+ async claimStream({ signedMandate, ...input }) {
246
+ if (signedMandate === null)
247
+ return await metrik.claim(input.streamId);
248
+ return await agentClient.claimStream({ ...input, signedMandate });
196
249
  },
197
250
  };
198
251
  },
@@ -220,8 +273,41 @@ export const defaultCliDependencies = {
220
273
  nowSeconds() {
221
274
  return Math.floor(Date.now() / 1000);
222
275
  },
276
+ x402: {
277
+ async pay(input) {
278
+ const { payX402WithMandate } = await import("../x402-buyer/pay.js");
279
+ return await payX402WithMandate(input);
280
+ },
281
+ async refundClient(config, target) {
282
+ const { refundClient } = await import("@absol-labs/sdk/x402");
283
+ return refundClient(target.refundUrl, {
284
+ streamId: target.streamId,
285
+ ...(target.opener === undefined ? {} : { opener: target.opener }),
286
+ // Every relay "success" is checked against the receipt on THIS chain.
287
+ verifyWith: createMetrikClient(config),
288
+ expectedChainId: config.chainId,
289
+ ...(target.maxAttempts === undefined
290
+ ? {}
291
+ : { maxAttempts: target.maxAttempts }),
292
+ ...(target.maxDelayMs === undefined
293
+ ? {}
294
+ : { maxDelayMs: target.maxDelayMs }),
295
+ });
296
+ },
297
+ },
223
298
  async sleep(ms) {
224
299
  await new Promise((resolve) => setTimeout(resolve, ms));
225
300
  },
226
301
  };
302
+ /**
303
+ * The write-client options a resolved wallet implies.
304
+ *
305
+ * Kept next to {@link CreateWriteClientOptions} so every fund-moving command
306
+ * spells the transport decision the same way, and so a wallet that needs a
307
+ * provider transport cannot be broadcast through a plain RPC by a command that
308
+ * simply forgot to pass it.
309
+ */
310
+ export function writeClientOptions(wallet) {
311
+ return wallet?.transport === undefined ? {} : { transport: wallet.transport };
312
+ }
227
313
  //# sourceMappingURL=deps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,YAAY,GAOb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAkB,MAAM,MAAM,CAAC;AAElE,OAAO,EACL,wBAAwB,GAIzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,MAAM,IAAI,SAAS,GAKpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,GAK1B,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAwOhF;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,UAAU,CAAC;IACrC,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,cAAc;CACrB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QACzB,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,eAAe;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,MAAiB;IAIlD,OAAO,MAAM,CAAC,4BAA4B,KAAK,SAAS;QACtD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE,uBAAuB,EAAE,IAAI;YAC7B,gBAAgB,EAAE,MAAM,CAAC,4BAA4B;SACtD,CAAC;AACR,CAAC;AAED,mFAAmF;AACnF,SAAS,kBAAkB,CACzB,MAAiB,EACjB,OAA0B,EAC1B,SAAqB;IAErB,OAAO,IAAI,YAAY,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,SAAS,IAAI,YAAY,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,qEAAqE;QACrE,8DAA8D;QAC9D,yEAAyE;QACzE,mDAAmD;QACnD,QAAQ,EAAE,MAAM,CAAC,MAAM;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QACpE,GAAG,yBAAyB,CAAC,MAAM,CAAC;QACpC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAoB;IACrD,gBAAgB,CAAC,MAAM;QACrB,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO;YACL,KAAK,CAAC,UAAU;gBACd,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YAChD,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,QAAQ;gBACxB,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YACD,KAAK,CAAC,eAAe,CAAC,QAAQ;gBAC5B,oEAAoE;gBACpE,4CAA4C;gBAC5C,OAAO,MAAM,eAAe,CAC1B,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,EAClD,iBAAiB,MAAM,CAAC,aAAa,EAAE,CACxC,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB;gBAC7C,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACjE,CAAC;YACD,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB;gBAC/C,OAAO,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACnE,CAAC;YACD,KAAK,CAAC,aAAa,CAAC,OAAO;gBACzB,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,OAAO;gBACvB,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;oBAC5C,OAAO,EAAE,MAAM,CAAC,IAAI;oBACpB,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,OAAO,CAAC;iBAChB,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,WAAW;gBACf,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YACpD,CAAC;YACD,KAAK,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;gBAC1D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC7C,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,KAAK,EAAE,mBAAmB;oBAC1B,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;oBACzB,SAAS;oBACT,OAAO;iBACR,CAAC,CAAC;gBACH,gEAAgE;gBAChE,uEAAuE;gBACvE,wEAAwE;gBACxE,sEAAsE;gBACtE,eAAe;gBACf,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1B,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;oBAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS;oBAC5B,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;oBAC/B,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS;oBACjC,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS;oBAC9B,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;oBACpC,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;oBAC9B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE;4BACE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;4BAC3B,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;4BACrB,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;4BAC3B,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;4BAC/B,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;4BACzB,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa;4BACrC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;4BACrC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;yBACnC;qBACF,CACN,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,gBAAgB,CAAC,KAAK;gBAC1B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC7C,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC;YACD,KAAK,CAAC,cAAc;gBAClB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;oBACjD,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,GAAG,EAAE,iBAAiB;oBACtB,YAAY,EAAE,gBAAgB;iBAC/B,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,KAAK,CAAC,kBAAkB;gBACtB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;oBACrD,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,GAAG,EAAE,iBAAiB;oBACtB,YAAY,EAAE,oBAAoB;iBACnC,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,yBAAyB;gBAC7B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;oBACvD,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,GAAG,EAAE,iBAAiB;oBACtB,YAAY,EAAE,2BAA2B;iBAC1C,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,CAAC,oBAAoB;gBACxB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACnD,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;YACD,KAAK,CAAC,aAAa;gBACjB,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;oBAC5C,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,GAAG,EAAE,iBAAiB;oBACtB,YAAY,EAAE,kBAAkB;iBACjC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IACD,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO;QACxC,6EAA6E;QAC7E,6DAA6D;QAC7D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,MAAM;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YACpE,GAAG,yBAAyB,CAAC,MAAM,CAAC;YACpC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SACzC,CAAC;QACF,0EAA0E;QAC1E,oEAAoE;QACpE,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,kBAAkB,CAC/B,MAAM,EACN,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EACtC,SAAS,CACV,CAAC;QACF,OAAO;YACL,KAAK,CAAC,WAAW,CAAC,KAAK;gBACrB,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE;gBAClD,qEAAqE;gBACrE,wEAAwE;gBACxE,sEAAsE;gBACtE,mEAAmE;gBACnE,kCAAkC;gBAClC,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC3B,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC;wBACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,aAAa,EAAE,KAAK,CAAC,iBAAiB;wBACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;qBAC7C,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,MAAM,WAAW,CAAC,kBAAkB,CAAC;oBAC1C,GAAG,KAAK;oBACR,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE;gBAC3C,IAAI,aAAa,KAAK,IAAI;oBAAE,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtE,OAAO,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,KAAK,CAAC,aAAa,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE;gBAC7C,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU;wBAClC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;wBACpC,CAAC,CAAC,IAAI,CAAC;oBACT,OAAO;wBACL,WAAW;wBACX,aAAa,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;qBACpD,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,KAAK,CAAC,uBAAuB,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE;gBACvD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC3B,OAAO,MAAM,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO,MAAM,WAAW,CAAC,uBAAuB,CAAC;oBAC/C,GAAG,KAAK;oBACR,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE;gBAC3C,IAAI,aAAa,KAAK,IAAI;oBAAE,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtE,OAAO,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACpE,CAAC;SACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,OAAO;QACpB,OAAO,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO;QACrC,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,wBAAwB,CAAC,MAAM;QAC7B,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO;YACL,KAAK,CAAC,WAAW,CAAC,QAAQ;gBACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAClD,OAAO;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,EAAE;QACJ,KAAK,CAAC,GAAG,CAAC,KAAK;YACb,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACpE,OAAO,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM;YAC/B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC9D,OAAO,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE;gBACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;gBACjE,sEAAsE;gBACtE,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC;gBACtC,eAAe,EAAE,MAAM,CAAC,OAAO;gBAC/B,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS;oBAClC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxC,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;oBACjC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;KACF;IACD,KAAK,CAAC,KAAK,CAAC,EAAE;QACZ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAiD;IAEjD,OAAO,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;AAChF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,WAAW;AACrB,yDAAyD;AACvD,CAAC;AACH,uEAAuE;GACrE,CAAC;AACH,wEAAwE;GACtE,CAAC,CAAC;AAEN,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGhC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KACrB;CAOT;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAKnE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAKpE;AAmCD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcpD;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,MAAM,EAAE,CAenB;AAaD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAelD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,WAAW;AACrB,yDAAyD;AACvD,CAAC;AACH,uEAAuE;GACrE,CAAC;AACH,wEAAwE;GACtE,CAAC,CAAC;AAEN,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGhC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KACrB;CAOT;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAKnE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAKpE;AAyDD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcpD;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,MAAM,EAAE,CAgBnB;AAaD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAelD"}
@@ -48,6 +48,26 @@ function namesTheRevert(line) {
48
48
  /\breverted:/.test(line) ||
49
49
  /\bpanicked with code\b/.test(line));
50
50
  }
51
+ /**
52
+ * Links that state the OUTCOME rather than open a sentence the next link
53
+ * completes — so the trailing "…and it reverted" carries nothing.
54
+ *
55
+ * `metrik status <a stream id that does not exist>` used to print
56
+ *
57
+ * stream 0x…: does not exist on the escrow: The contract function
58
+ * "getStream" reverted.
59
+ *
60
+ * The first link is the whole answer; the tail is viem restating that a revert
61
+ * is how the escrow says so. Contrast "reclaim simulation failed", which is a
62
+ * PREFIX — dropping the boilerplate after it would leave a failure with no
63
+ * stated reason at all, which is why the one-boilerplate rule exists.
64
+ */
65
+ const STATES_THE_OUTCOME = [
66
+ /\bdoes not exist on the escrow\b/,
67
+ ];
68
+ function statesTheOutcome(line) {
69
+ return STATES_THE_OUTCOME.some((pattern) => pattern.test(line));
70
+ }
51
71
  function isBoilerplate(line) {
52
72
  return VIEM_BOILERPLATE.some((pattern) => pattern.test(line));
53
73
  }
@@ -76,7 +96,7 @@ export function describeError(error) {
76
96
  }
77
97
  /** Exported for the test that pins the shape of the chain, not the wording. */
78
98
  export function stripRedundantBoilerplate(chain) {
79
- const decoded = chain.some((line) => namesTheRevert(line) && !isBoilerplate(line));
99
+ const decoded = chain.some((line) => (namesTheRevert(line) || statesTheOutcome(line)) && !isBoilerplate(line));
80
100
  let keptBoilerplate = false;
81
101
  const kept = chain.filter((line, index) => {
82
102
  if (!isBoilerplate(line))
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"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"}