@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,6 +1,9 @@
1
- import { MetrikClient } from "@absol-labs/sdk";
2
1
  import { isAddress, isHex } from "viem";
3
2
  import { CAPABILITY_HEADER_NAME, decodeCapabilityHeader, hashInvocationPath, InvalidCapabilityHeaderError, recoverInvocationCapabilitySigner, } from "../capability/invocation-capability.js";
3
+ import { decodeProbeCapabilityHeader, hashProbePath, InvalidProbeCapabilityHeaderError, PROBE_CAPABILITY_HEADER_NAME, recoverProbeCapabilitySigner, } from "../capability/probe-capability.js";
4
+ import { CachedOracleSignerSet, createSdkOracleSignerSetReader, FixedWindowProbeRateLimiter, } from "./probe-auth.js";
5
+ import { defaultNetwork, readOnlyMetrikClient } from "../network.js";
6
+ import { isVerifiedSignedRateBounds, rateOutsideBounds, } from "./signed-rate-bounds.js";
4
7
  /**
5
8
  * Default freshness bound for on-chain stream state, in seconds. Base blocks
6
9
  * are ~2s, so a healthy endpoint is a few seconds stale at most; this is a
@@ -20,7 +23,9 @@ const DENIAL_PRECEDENCE = [
20
23
  "stream-expired",
21
24
  "buyer-mismatch",
22
25
  "service-ref-mismatch",
26
+ "stream-rate-out-of-bounds",
23
27
  "stream-not-funded",
28
+ "stream-rate-unknown",
24
29
  "stream-state-stale",
25
30
  "stream-not-found",
26
31
  ];
@@ -37,7 +42,19 @@ const DENIAL_PRECEDENCE = [
37
42
  const TERMINAL_DENIALS = new Set([
38
43
  "stream-not-active",
39
44
  "stream-not-funded",
45
+ // `ratePerSecond` is fixed at open and the signed band is this process's
46
+ // configuration, so an out-of-band stream stays out of band.
47
+ "stream-rate-out-of-bounds",
40
48
  ]);
49
+ /**
50
+ * A probe carrying an `X-PAYMENT` header is refused as `ambiguous-probe-mode`.
51
+ * This gateway implements no per-call payment mode (the x402 v1 integration was
52
+ * removed in metrik-agent#115), but the refusal is kept deliberately: a probe
53
+ * is free, unbilled verification traffic and must never be mixed with anything
54
+ * that looks like a payment, and keeping it leaves the deployed gateway's
55
+ * behaviour byte-for-byte unchanged.
56
+ */
57
+ const PAYMENT_HEADER_REFUSED_ON_PROBES = "x-payment";
41
58
  /**
42
59
  * In-memory {@link StreamRevocationSet}. Bounded (oldest entries are evicted
43
60
  * past {@link maxEntries}) so a hostile caller cannot grow it without limit;
@@ -75,10 +92,7 @@ export class UnknownStreamGatewayError extends Error {
75
92
  }
76
93
  /** Default `StreamReader`: real, read-only `MetrikClient.getStreamV2` (no wallet, no writes). */
77
94
  export function createSdkStreamReader(options) {
78
- const metrik = MetrikClient.baseSepolia({
79
- escrow: options.escrowAddress,
80
- rpcUrl: options.rpcUrl,
81
- });
95
+ const metrik = readOnlyMetrikClient(options);
82
96
  return {
83
97
  async getStream(streamId) {
84
98
  try {
@@ -97,6 +111,7 @@ export function createSdkStreamReader(options) {
97
111
  claimedCumulative: stream.claimedCumulative,
98
112
  expiresAt: stream.expiresAt,
99
113
  status: stream.status,
114
+ ratePerSecond: stream.ratePerSecond,
100
115
  observedAt: {
101
116
  blockNumber: block.number,
102
117
  blockTimestamp: Number(block.timestamp),
@@ -149,6 +164,11 @@ export class CallerAuthGateway {
149
164
  domain;
150
165
  serviceRefs;
151
166
  now;
167
+ probeHeaderName;
168
+ probeDomain;
169
+ probeSigners;
170
+ probeRateLimiter;
171
+ rateBounds;
152
172
  constructor(config) {
153
173
  if (!isAddress(config.escrowAddress)) {
154
174
  throw new Error("escrowAddress must be an EVM address");
@@ -162,17 +182,35 @@ export class CallerAuthGateway {
162
182
  if (config.streamReader === undefined && config.rpcUrl === undefined) {
163
183
  throw new Error("rpcUrl is required unless an explicit streamReader is supplied");
164
184
  }
185
+ const chainId = config.chainId ?? defaultNetwork().chain.id;
165
186
  this.serviceRefs = new Set(serviceRefs.map((value) => value.toLowerCase()));
187
+ const rateBounds = new Map();
188
+ for (const bounds of config.signedRateBounds ?? []) {
189
+ if (!isVerifiedSignedRateBounds(bounds)) {
190
+ throw new Error("signedRateBounds entries must come from verifySignedRateBounds() / loadSignedRateBoundsFile(); an unverified object is not operator-signed");
191
+ }
192
+ const key = bounds.serviceRef.toLowerCase();
193
+ if (!this.serviceRefs.has(key)) {
194
+ throw new Error(`signed rate bounds for ${bounds.serviceRef} are not a service ref this gateway serves`);
195
+ }
196
+ if (rateBounds.has(key)) {
197
+ throw new Error(`more than one set of signed rate bounds for ${bounds.serviceRef}`);
198
+ }
199
+ rateBounds.set(key, bounds);
200
+ }
201
+ this.rateBounds = rateBounds;
166
202
  this.headerName = (config.headerName ?? CAPABILITY_HEADER_NAME).toLowerCase();
167
203
  const primaryReader = config.streamReader ??
168
204
  createSdkStreamReader({
169
205
  escrowAddress: config.escrowAddress,
170
206
  rpcUrl: config.rpcUrl,
207
+ chainId,
171
208
  });
172
209
  const corroborating = config.corroboratingStreamReaders ??
173
210
  (config.corroboratingRpcUrls ?? []).map((rpcUrl) => createSdkStreamReader({
174
211
  escrowAddress: config.escrowAddress,
175
212
  rpcUrl,
213
+ chainId,
176
214
  }));
177
215
  if (corroborating.length > MAX_CORROBORATING_STREAM_READERS) {
178
216
  throw new Error(`at most ${MAX_CORROBORATING_STREAM_READERS} corroborating stream readers are supported (bounded hot path)`);
@@ -187,14 +225,69 @@ export class CallerAuthGateway {
187
225
  config.revocationSet ?? new InMemoryStreamRevocationSet();
188
226
  this.nonceCache = config.nonceCache ?? new InMemoryNonceReplayCache();
189
227
  this.domain = {
190
- chainId: config.chainId ?? 84532,
228
+ chainId,
191
229
  verifyingContract: config.escrowAddress,
192
230
  };
193
231
  this.now = config.now ?? (() => Math.floor(Date.now() / 1000));
232
+ // Probe mode shares the chain binding with the invocation domain (same
233
+ // escrow, same chain) but a DIFFERENT EIP-712 domain name, so neither
234
+ // signature is ever valid as the other.
235
+ this.probeDomain = {
236
+ chainId,
237
+ verifyingContract: config.escrowAddress,
238
+ };
239
+ this.probeHeaderName = (config.probe?.headerName ?? PROBE_CAPABILITY_HEADER_NAME).toLowerCase();
240
+ if (this.probeHeaderName === this.headerName) {
241
+ throw new Error("the probe capability header must differ from the invocation capability header");
242
+ }
243
+ if (config.probe === undefined) {
244
+ this.probeSigners = undefined;
245
+ this.probeRateLimiter = undefined;
246
+ }
247
+ else {
248
+ const reader = config.probe.signerSetReader ??
249
+ (config.rpcUrl === undefined
250
+ ? undefined
251
+ : createSdkOracleSignerSetReader({
252
+ escrowAddress: config.escrowAddress,
253
+ rpcUrl: config.rpcUrl,
254
+ chainId,
255
+ }));
256
+ if (reader === undefined) {
257
+ throw new Error("probe mode requires rpcUrl unless an explicit signerSetReader is supplied");
258
+ }
259
+ this.probeSigners = new CachedOracleSignerSet(reader, config.probe.signerCacheSeconds, this.now);
260
+ this.probeRateLimiter =
261
+ config.probe.rateLimiter ??
262
+ new FixedWindowProbeRateLimiter(config.probe.maxProbesPerMinute, this.now);
263
+ }
264
+ }
265
+ /** Lower-cased header name that carries the buyer's invocation capability. */
266
+ get capabilityHeaderName() {
267
+ return this.headerName;
268
+ }
269
+ /** Lower-cased header name that carries an oracle probe capability. */
270
+ get probeCapabilityHeaderName() {
271
+ return this.probeHeaderName;
194
272
  }
195
273
  async authorize(request) {
196
274
  const headerValue = lookupHeader(request.headers, this.headerName);
197
- if (headerValue === undefined || headerValue.length === 0) {
275
+ const hasCapabilityHeader = headerValue !== undefined && headerValue.length > 0;
276
+ // ── Oracle probe path ────────────────────────────────────────────────
277
+ // Evaluated FIRST and returning unconditionally, so an authorized probe can
278
+ // never fall through into the stream branch. That ordering is the
279
+ // structural guarantee that a probe consumes no budget: no `stream` is ever
280
+ // produced on this path.
281
+ const probeHeaderValue = lookupHeader(request.headers, this.probeHeaderName);
282
+ if (probeHeaderValue !== undefined && probeHeaderValue.length > 0) {
283
+ const paymentHeader = lookupHeader(request.headers, PAYMENT_HEADER_REFUSED_ON_PROBES);
284
+ if (hasCapabilityHeader ||
285
+ (paymentHeader !== undefined && paymentHeader.trim().length > 0)) {
286
+ return deny("ambiguous-probe-mode", 400);
287
+ }
288
+ return this.authorizeProbe(probeHeaderValue, request);
289
+ }
290
+ if (!hasCapabilityHeader) {
198
291
  return deny("missing-capability-header", 403);
199
292
  }
200
293
  let capability;
@@ -274,6 +367,79 @@ export class CallerAuthGateway {
274
367
  // Report the freshest corroborated view to the caller.
275
368
  return { authorized: true, stream: freshestView(views), capability };
276
369
  }
370
+ /**
371
+ * Authorize one oracle probe. Cheapest, most local gates first; the on-chain
372
+ * signer-set read is last so an unsigned or replayed flood cannot amplify
373
+ * into RPC load. Every failure mode is distinct and fail-closed.
374
+ */
375
+ async authorizeProbe(headerValue, request) {
376
+ const signerSet = this.probeSigners;
377
+ const rateLimiter = this.probeRateLimiter;
378
+ if (signerSet === undefined || rateLimiter === undefined) {
379
+ // Probe mode is off. Say so precisely: the oracle distinguishes
380
+ // "unverifiable here" from "the paid route failed".
381
+ return deny("probe-not-enabled", 403);
382
+ }
383
+ let capability;
384
+ try {
385
+ capability = decodeProbeCapabilityHeader(headerValue);
386
+ }
387
+ catch (error) {
388
+ if (error instanceof InvalidProbeCapabilityHeaderError) {
389
+ return deny("malformed-probe-capability", 403);
390
+ }
391
+ throw error;
392
+ }
393
+ const nowSeconds = this.now();
394
+ if (nowSeconds >= capability.expiry) {
395
+ return deny("probe-capability-expired", 403);
396
+ }
397
+ let signer;
398
+ try {
399
+ signer = await recoverProbeCapabilitySigner(capability, this.probeDomain, capability.signature);
400
+ }
401
+ catch {
402
+ return deny("probe-invalid-signature", 403);
403
+ }
404
+ if (signer.toLowerCase() !== capability.oracle.toLowerCase()) {
405
+ return deny("probe-invalid-signature", 403);
406
+ }
407
+ if (capability.method.toUpperCase() !== request.method.toUpperCase()) {
408
+ return deny("probe-method-mismatch", 403);
409
+ }
410
+ if (hashProbePath(request.path).toLowerCase() !==
411
+ capability.pathHash.toLowerCase()) {
412
+ return deny("probe-path-mismatch", 403);
413
+ }
414
+ if (!this.serviceRefs.has(capability.serviceRef.toLowerCase())) {
415
+ return deny("probe-service-ref-mismatch", 403);
416
+ }
417
+ // Replay BEFORE the budget check: a captured capability replayed at volume
418
+ // must be rejected as a replay, not silently eat the honest probe budget.
419
+ // The SAME nonce cache as the buyer path, so a nonce can never be spent
420
+ // once as a probe and once as an invocation.
421
+ if (!this.nonceCache.consume(capability.nonce, capability.expiry)) {
422
+ return deny("probe-nonce-replayed", 403);
423
+ }
424
+ if (!rateLimiter.tryConsume()) {
425
+ return deny("probe-rate-limited", 429);
426
+ }
427
+ const signers = await signerSet.resolve();
428
+ if (signers === undefined) {
429
+ return deny("probe-signer-set-unavailable", 403);
430
+ }
431
+ if (!signers.has(signer.toLowerCase())) {
432
+ return deny("probe-signer-not-authorized", 403);
433
+ }
434
+ return {
435
+ authorized: true,
436
+ probe: {
437
+ oracle: signer,
438
+ serviceRef: capability.serviceRef,
439
+ expiry: capability.expiry,
440
+ },
441
+ };
442
+ }
277
443
  /** Returns the denial reason this single view produces, or `undefined` if it authorizes. */
278
444
  evaluateView(stream, capability, nowSeconds) {
279
445
  // Freshness first: a measurably stale view is not evidence of anything, so
@@ -289,6 +455,17 @@ export class CallerAuthGateway {
289
455
  if (stream.serviceRef.toLowerCase() !== capability.serviceRef.toLowerCase()) {
290
456
  return "service-ref-mismatch";
291
457
  }
458
+ // Operator-signed price band (metrik-contracts#41). Checked against the
459
+ // STREAM's serviceRef, which equals the capability's by the check above.
460
+ const bounds = this.rateBounds.get(stream.serviceRef.toLowerCase());
461
+ if (bounds !== undefined) {
462
+ if (stream.ratePerSecond === undefined) {
463
+ return "stream-rate-unknown";
464
+ }
465
+ if (rateOutsideBounds(stream.ratePerSecond, bounds) !== undefined) {
466
+ return "stream-rate-out-of-bounds";
467
+ }
468
+ }
292
469
  if (stream.status !== "active") {
293
470
  return "stream-not-active";
294
471
  }
@@ -1 +1 @@
1
- {"version":3,"file":"caller-auth-gateway.js","sourceRoot":"","sources":["../../src/gateway/caller-auth-gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caller-auth-gateway.js","sourceRoot":"","sources":["../../src/gateway/caller-auth-gateway.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,23 @@
1
1
  import { type Server } from "node:http";
2
2
  import { type Address, type Hex } from "viem";
3
3
  import { CallerAuthGateway } from "./caller-auth-gateway.js";
4
+ import { type OpenerTerms, type X402SchemaDeclaration } from "../x402-opener/terms.js";
5
+ import type { GatewayX402OpenerMode } from "./x402-opener-mode.js";
4
6
  export interface CallerAuthGatewayServerConfig {
5
7
  readonly gateway: CallerAuthGateway;
6
8
  /** Base URL of the real service this gateway fronts (e.g. `https://svc.example.com`). */
7
9
  readonly upstreamUrl: string;
8
10
  /** Extra request-timeout for the upstream fetch, in ms. Default 30000. */
9
11
  readonly upstreamTimeoutMs?: number;
12
+ /**
13
+ * Optional x402 v2 mode (metrik-agent#116): an uncapabilitied request gets a
14
+ * standard x402 `402` whose `payTo` is the listing's escrow opener, and a
15
+ * `PAYMENT-SIGNATURE` is verified, served, and settled into a
16
+ * `StreamEscrowV2` stream. OFF when unset — the server is then byte for byte
17
+ * the capability-only gateway (`test/gateway-http-baseline.test.ts`).
18
+ * Build it with `buildGatewayX402OpenerMode`.
19
+ */
20
+ readonly x402Opener?: GatewayX402OpenerMode;
10
21
  }
11
22
  export interface CallerAuthGatewayServer {
12
23
  readonly httpServer: Server;
@@ -31,6 +42,48 @@ export interface CallerAuthGatewayEnvConfig {
31
42
  readonly corroboratingRpcUrls: readonly string[];
32
43
  /** Freshness bound for on-chain stream state, in seconds. */
33
44
  readonly maxStateStalenessSeconds: number;
45
+ /** Set only when oracle probe verification is enabled. */
46
+ readonly probe?: CallerAuthGatewayProbeEnvConfig;
47
+ /** Set only when the x402 v2 opener mode is enabled. */
48
+ readonly x402Opener?: CallerAuthGatewayX402OpenerEnvConfig;
49
+ /**
50
+ * Path of the operator-signed descriptor(s) whose rate band the capability
51
+ * path enforces (`METRIK_GATEWAY_SIGNED_DESCRIPTOR_FILE`). Loaded and
52
+ * verified at startup by {@link startCallerAuthGatewayServerFromEnv}.
53
+ */
54
+ readonly signedDescriptorFile?: string;
55
+ }
56
+ /** Env view of the gateway's x402 v2 opener mode (see {@link parseGatewayX402OpenerEnvConfig}). */
57
+ export interface CallerAuthGatewayX402OpenerEnvConfig {
58
+ readonly facilitatorUrl: string;
59
+ readonly facilitatorToken: string;
60
+ readonly network: `${string}:${string}`;
61
+ readonly factoryAddress: Address;
62
+ readonly asset: Address;
63
+ readonly assetName: string;
64
+ readonly assetVersion: string;
65
+ readonly terms: OpenerTerms;
66
+ readonly price: bigint;
67
+ readonly maxTimeoutSeconds: number;
68
+ /** Per-request facilitator HTTP timeout, ms. */
69
+ readonly facilitatorTimeoutMs: number;
70
+ readonly resourceBaseUrl?: string;
71
+ readonly registryUrl?: string;
72
+ /** Public base URL of the facilitator's refund relay (default: facilitatorUrl). */
73
+ readonly refundBaseUrl?: string;
74
+ readonly docsUrl?: string;
75
+ /** Token decimals for the 402 description (default 6). */
76
+ readonly assetDecimals?: number;
77
+ /** One-sentence service description, prefixed to the fixed disclosure. */
78
+ readonly description?: string;
79
+ /** Optional input/output schema, declared as `extensions.bazaar`. */
80
+ readonly schemaDeclaration?: X402SchemaDeclaration;
81
+ }
82
+ export interface CallerAuthGatewayProbeEnvConfig {
83
+ /** Free-probe budget per minute. */
84
+ readonly maxProbesPerMinute: number;
85
+ /** Freshness bound for the cached on-chain oracle signer set, in seconds. */
86
+ readonly signerCacheSeconds: number;
34
87
  }
35
88
  /**
36
89
  * Parses the gateway's env contract:
@@ -48,14 +101,81 @@ export interface CallerAuthGatewayEnvConfig {
48
101
  * - `METRIK_GATEWAY_MAX_STATE_STALENESS_SECONDS` (optional) - reject stream
49
102
  * state observed more than N seconds behind the wall clock. Default
50
103
  * {@link DEFAULT_MAX_STATE_STALENESS_SECONDS}.
51
- * - `METRIK_GATEWAY_CHAIN_ID` (optional) - default `84532` (Base Sepolia).
104
+ * - `METRIK_GATEWAY_CHAIN_ID` (optional) - default the registry's default
105
+ * network. Must be a network the SDK registry knows.
52
106
  * - `METRIK_GATEWAY_HEADER_NAME` (optional) - default `x-metrik-capability`.
107
+ * - `METRIK_GATEWAY_SIGNED_DESCRIPTOR_FILE` (optional, recommended) - JSON file
108
+ * holding this service's operator-signed descriptor (or an array, one per
109
+ * served serviceRef). Verified at startup; the capability path then refuses
110
+ * any stream whose on-chain `ratePerSecond` is outside the signed
111
+ * `minRatePerSecond`/`maxRatePerSecond` (`stream-rate-out-of-bounds`).
53
112
  * - `PORT` / `METRIK_GATEWAY_PORT` (optional) - default `8787`.
54
113
  * - `METRIK_GATEWAY_HOST` (optional) - default `0.0.0.0`.
55
114
  *
56
115
  * Fail-closed: throws if any required var is missing or malformed.
57
116
  */
58
117
  export declare function parseCallerAuthGatewayEnvConfig(env?: NodeJS.ProcessEnv): CallerAuthGatewayEnvConfig;
118
+ /**
119
+ * The x402 v2 opener mode is OFF unless `METRIK_GATEWAY_X402V2_OPENER` is
120
+ * truthy. When on, an uncapabilitied request is answered with a standard x402
121
+ * v2 `402` whose `payTo` is the opener for this listing's terms, and payments
122
+ * settle into a `StreamEscrowV2` stream through the Metrik opener facilitator.
123
+ * The listing is the gateway's primary `METRIK_GATEWAY_SERVICE_REF`.
124
+ *
125
+ * These names deliberately differ from the removed v1 mode's variables, so a
126
+ * leftover v1 environment can never switch a payment mode on by accident.
127
+ *
128
+ * - `METRIK_GATEWAY_X402V2_OPENER` — `1`/`true`/`yes`/`on` to enable.
129
+ * - `METRIK_GATEWAY_X402V2_FACILITATOR_URL` (required) — the Metrik opener facilitator.
130
+ * - `METRIK_GATEWAY_X402V2_FACILITATOR_TOKEN` (required) — its `/settle` bearer token.
131
+ * - `METRIK_GATEWAY_X402V2_FACTORY_ADDRESS` — the `X402StreamOpenerFactory`; default the
132
+ * network's registered factory (required where the registry has none).
133
+ * - `METRIK_GATEWAY_X402V2_OPERATOR` (required) — must be the signed listing's operator.
134
+ * - `METRIK_GATEWAY_X402V2_RATE_PER_SECOND` (required) — USDC base units per second.
135
+ * - `METRIK_GATEWAY_X402V2_MAX_DURATION_SECONDS` (required).
136
+ * - `METRIK_GATEWAY_X402V2_PRICE` (required) — base units per paid request (= deposit),
137
+ * `0 < price <= rate * maxDuration`.
138
+ * - `METRIK_GATEWAY_X402V2_NETWORK` — default `eip155:<METRIK_GATEWAY_CHAIN_ID>`.
139
+ * - `METRIK_GATEWAY_X402V2_ASSET` — default the network's registered USDC.
140
+ * - `METRIK_GATEWAY_X402V2_ASSET_NAME` / `_ASSET_VERSION` — EIP-712 domain, default the
141
+ * registered USDC's own EIP-712 name/version.
142
+ * - `METRIK_GATEWAY_X402V2_MAX_TIMEOUT_SECONDS` — authorization validity, default 300.
143
+ * - `METRIK_GATEWAY_X402V2_FACILITATOR_TIMEOUT_SECONDS` — per-request facilitator
144
+ * timeout, default 120; must exceed the facilitator's receipt wait by 30 s.
145
+ * - `METRIK_GATEWAY_X402V2_RESOURCE_BASE_URL` — public origin for the 402 `resource.url`.
146
+ * - `METRIK_GATEWAY_X402V2_REGISTRY_URL` — registry used to prove the listing.
147
+ * - `METRIK_GATEWAY_X402V2_REFUND_BASE_URL` — public base URL of the facilitator's
148
+ * gasless refund relay, advertised in the 402; default the facilitator URL. Its
149
+ * `/supported` must show the opener marker with `refundRelay: true`.
150
+ * - `METRIK_GATEWAY_X402V2_DOCS_URL` — docs link in the 402; default docs/x402.md on GitHub.
151
+ * - `METRIK_GATEWAY_X402V2_ASSET_DECIMALS` — decimals for the 402 description; default 6.
152
+ * - `METRIK_GATEWAY_X402V2_DESCRIPTION` — one sentence on what the service does,
153
+ * prefixed to the fixed disclosure of what the payment buys (at most 300 chars).
154
+ * - `METRIK_GATEWAY_X402V2_SCHEMA` — optional JSON `{info: {input, output}, schema}`
155
+ * declared in the 402 as `extensions.bazaar` (declared only, never registered).
156
+ */
157
+ export declare function parseGatewayX402OpenerEnvConfig(env: NodeJS.ProcessEnv, context: {
158
+ readonly chainId: number;
159
+ readonly serviceRef: Hex;
160
+ }): CallerAuthGatewayX402OpenerEnvConfig | undefined;
161
+ /**
162
+ * Oracle probe verification is OFF unless `METRIK_GATEWAY_PROBE_CAPABILITY` is
163
+ * truthy. Turning it on lets the neutral verifier exercise this gateway's PAID
164
+ * route with an oracle-signed, single-use, short-lived `ProbeCapability`
165
+ * instead of only its health route.
166
+ *
167
+ * There is NO credential to configure — authority is an EIP-712 signature by an
168
+ * address in the escrow's public `getOracleSigners()` set, read from the same
169
+ * `METRIK_GATEWAY_RPC_URL` the stream check already uses.
170
+ *
171
+ * - `METRIK_GATEWAY_PROBE_CAPABILITY` — `1`/`true`/`yes`/`on` to enable.
172
+ * - `METRIK_GATEWAY_PROBE_MAX_PER_MINUTE` (optional) — free-probe budget.
173
+ * Default {@link DEFAULT_MAX_PROBES_PER_MINUTE}.
174
+ * - `METRIK_GATEWAY_PROBE_SIGNER_CACHE_SECONDS` (optional) — how long the
175
+ * on-chain signer set is cached. Default
176
+ * {@link DEFAULT_ORACLE_SIGNER_CACHE_SECONDS}.
177
+ */
178
+ export declare function parseGatewayProbeEnvConfig(env?: NodeJS.ProcessEnv): CallerAuthGatewayProbeEnvConfig | undefined;
59
179
  /** Builds and starts the reference gateway server entirely from the environment. */
60
180
  export declare function startCallerAuthGatewayServerFromEnv(env?: NodeJS.ProcessEnv): Promise<CallerAuthGatewayServer & {
61
181
  readonly boundPort: number;
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EAEZ,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAoB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhE,OAAO,EACL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAC;AA8BlC,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,yFAAyF;IACzF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,6BAA6B,GACpC,uBAAuB,CAsCzB;AAmID,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,GAAG,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,6DAA6D;IAC7D,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,0BAA0B,CA4F5B;AAUD,oFAAoF;AACpF,wBAAsB,mCAAmC,CACvD,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,uBAAuB,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BnE"}
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"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"}