@terkoizmy/intent-sdk 1.0.0

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 (371) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +258 -0
  3. package/dist/config/chains.d.ts +25 -0
  4. package/dist/config/chains.d.ts.map +1 -0
  5. package/dist/config/chains.js +85 -0
  6. package/dist/config/chains.js.map +1 -0
  7. package/dist/config/default.d.ts +39 -0
  8. package/dist/config/default.d.ts.map +1 -0
  9. package/dist/config/default.js +46 -0
  10. package/dist/config/default.js.map +1 -0
  11. package/dist/config/testnets.d.ts +31 -0
  12. package/dist/config/testnets.d.ts.map +1 -0
  13. package/dist/config/testnets.js +99 -0
  14. package/dist/config/testnets.js.map +1 -0
  15. package/dist/errors/inventory-errors.d.ts +31 -0
  16. package/dist/errors/inventory-errors.d.ts.map +1 -0
  17. package/dist/errors/inventory-errors.js +45 -0
  18. package/dist/errors/inventory-errors.js.map +1 -0
  19. package/dist/errors/settlement-errors.d.ts +27 -0
  20. package/dist/errors/settlement-errors.d.ts.map +1 -0
  21. package/dist/errors/settlement-errors.js +39 -0
  22. package/dist/errors/settlement-errors.js.map +1 -0
  23. package/dist/errors/solver-errors.d.ts +45 -0
  24. package/dist/errors/solver-errors.d.ts.map +1 -0
  25. package/dist/errors/solver-errors.js +66 -0
  26. package/dist/errors/solver-errors.js.map +1 -0
  27. package/dist/index.d.ts +34 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +28 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/parser/classifiers/intent-classifier.d.ts +40 -0
  32. package/dist/parser/classifiers/intent-classifier.d.ts.map +1 -0
  33. package/dist/parser/classifiers/intent-classifier.js +72 -0
  34. package/dist/parser/classifiers/intent-classifier.js.map +1 -0
  35. package/dist/parser/extractors/action.d.ts +32 -0
  36. package/dist/parser/extractors/action.d.ts.map +1 -0
  37. package/dist/parser/extractors/action.js +72 -0
  38. package/dist/parser/extractors/action.js.map +1 -0
  39. package/dist/parser/extractors/amount.d.ts +39 -0
  40. package/dist/parser/extractors/amount.d.ts.map +1 -0
  41. package/dist/parser/extractors/amount.js +113 -0
  42. package/dist/parser/extractors/amount.js.map +1 -0
  43. package/dist/parser/extractors/constraints.d.ts +37 -0
  44. package/dist/parser/extractors/constraints.d.ts.map +1 -0
  45. package/dist/parser/extractors/constraints.js +119 -0
  46. package/dist/parser/extractors/constraints.js.map +1 -0
  47. package/dist/parser/extractors/index.d.ts +5 -0
  48. package/dist/parser/extractors/index.d.ts.map +1 -0
  49. package/dist/parser/extractors/index.js +5 -0
  50. package/dist/parser/extractors/index.js.map +1 -0
  51. package/dist/parser/extractors/token.d.ts +24 -0
  52. package/dist/parser/extractors/token.d.ts.map +1 -0
  53. package/dist/parser/extractors/token.js +124 -0
  54. package/dist/parser/extractors/token.js.map +1 -0
  55. package/dist/parser/index.d.ts +125 -0
  56. package/dist/parser/index.d.ts.map +1 -0
  57. package/dist/parser/index.js +293 -0
  58. package/dist/parser/index.js.map +1 -0
  59. package/dist/parser/template/bridge.d.ts +37 -0
  60. package/dist/parser/template/bridge.d.ts.map +1 -0
  61. package/dist/parser/template/bridge.js +80 -0
  62. package/dist/parser/template/bridge.js.map +1 -0
  63. package/dist/parser/template/claim.d.ts +15 -0
  64. package/dist/parser/template/claim.d.ts.map +1 -0
  65. package/dist/parser/template/claim.js +36 -0
  66. package/dist/parser/template/claim.js.map +1 -0
  67. package/dist/parser/template/index.d.ts +28 -0
  68. package/dist/parser/template/index.d.ts.map +1 -0
  69. package/dist/parser/template/index.js +50 -0
  70. package/dist/parser/template/index.js.map +1 -0
  71. package/dist/parser/template/nft.d.ts +3 -0
  72. package/dist/parser/template/nft.d.ts.map +1 -0
  73. package/dist/parser/template/nft.js +19 -0
  74. package/dist/parser/template/nft.js.map +1 -0
  75. package/dist/parser/template/send.d.ts +24 -0
  76. package/dist/parser/template/send.d.ts.map +1 -0
  77. package/dist/parser/template/send.js +61 -0
  78. package/dist/parser/template/send.js.map +1 -0
  79. package/dist/parser/template/swap.d.ts +3 -0
  80. package/dist/parser/template/swap.d.ts.map +1 -0
  81. package/dist/parser/template/swap.js +21 -0
  82. package/dist/parser/template/swap.js.map +1 -0
  83. package/dist/parser/template/unknown.d.ts +3 -0
  84. package/dist/parser/template/unknown.d.ts.map +1 -0
  85. package/dist/parser/template/unknown.js +11 -0
  86. package/dist/parser/template/unknown.js.map +1 -0
  87. package/dist/parser/template/yield.d.ts +3 -0
  88. package/dist/parser/template/yield.d.ts.map +1 -0
  89. package/dist/parser/template/yield.js +25 -0
  90. package/dist/parser/template/yield.js.map +1 -0
  91. package/dist/parser/utils/normalize.d.ts +41 -0
  92. package/dist/parser/utils/normalize.d.ts.map +1 -0
  93. package/dist/parser/utils/normalize.js +71 -0
  94. package/dist/parser/utils/normalize.js.map +1 -0
  95. package/dist/parser/utils/parser-helpers.d.ts +20 -0
  96. package/dist/parser/utils/parser-helpers.d.ts.map +1 -0
  97. package/dist/parser/utils/parser-helpers.js +282 -0
  98. package/dist/parser/utils/parser-helpers.js.map +1 -0
  99. package/dist/parser/validators/schema.d.ts +14 -0
  100. package/dist/parser/validators/schema.d.ts.map +1 -0
  101. package/dist/parser/validators/schema.js +81 -0
  102. package/dist/parser/validators/schema.js.map +1 -0
  103. package/dist/sdk-factory.d.ts +55 -0
  104. package/dist/sdk-factory.d.ts.map +1 -0
  105. package/dist/sdk-factory.js +49 -0
  106. package/dist/sdk-factory.js.map +1 -0
  107. package/dist/services/token-resolver.d.ts +142 -0
  108. package/dist/services/token-resolver.d.ts.map +1 -0
  109. package/dist/services/token-resolver.js +254 -0
  110. package/dist/services/token-resolver.js.map +1 -0
  111. package/dist/shared/chain-registry/chain-names.d.ts +22 -0
  112. package/dist/shared/chain-registry/chain-names.d.ts.map +1 -0
  113. package/dist/shared/chain-registry/chain-names.js +49 -0
  114. package/dist/shared/chain-registry/chain-names.js.map +1 -0
  115. package/dist/shared/chain-registry/configs/arbitrum-sepolia.d.ts +9 -0
  116. package/dist/shared/chain-registry/configs/arbitrum-sepolia.d.ts.map +1 -0
  117. package/dist/shared/chain-registry/configs/arbitrum-sepolia.js +9 -0
  118. package/dist/shared/chain-registry/configs/arbitrum-sepolia.js.map +1 -0
  119. package/dist/shared/chain-registry/configs/base-sepolia.d.ts +9 -0
  120. package/dist/shared/chain-registry/configs/base-sepolia.d.ts.map +1 -0
  121. package/dist/shared/chain-registry/configs/base-sepolia.js +9 -0
  122. package/dist/shared/chain-registry/configs/base-sepolia.js.map +1 -0
  123. package/dist/shared/chain-registry/configs/ethereum.d.ts +7 -0
  124. package/dist/shared/chain-registry/configs/ethereum.d.ts.map +1 -0
  125. package/dist/shared/chain-registry/configs/ethereum.js +7 -0
  126. package/dist/shared/chain-registry/configs/ethereum.js.map +1 -0
  127. package/dist/shared/chain-registry/configs/polygon.d.ts +7 -0
  128. package/dist/shared/chain-registry/configs/polygon.d.ts.map +1 -0
  129. package/dist/shared/chain-registry/configs/polygon.js +7 -0
  130. package/dist/shared/chain-registry/configs/polygon.js.map +1 -0
  131. package/dist/shared/chain-registry/configs/sepolia.d.ts +9 -0
  132. package/dist/shared/chain-registry/configs/sepolia.d.ts.map +1 -0
  133. package/dist/shared/chain-registry/configs/sepolia.js +9 -0
  134. package/dist/shared/chain-registry/configs/sepolia.js.map +1 -0
  135. package/dist/shared/chain-registry/configs/unichain-sepolia.d.ts +9 -0
  136. package/dist/shared/chain-registry/configs/unichain-sepolia.d.ts.map +1 -0
  137. package/dist/shared/chain-registry/configs/unichain-sepolia.js +9 -0
  138. package/dist/shared/chain-registry/configs/unichain-sepolia.js.map +1 -0
  139. package/dist/shared/chain-registry/registry.d.ts +50 -0
  140. package/dist/shared/chain-registry/registry.d.ts.map +1 -0
  141. package/dist/shared/chain-registry/registry.js +72 -0
  142. package/dist/shared/chain-registry/registry.js.map +1 -0
  143. package/dist/shared/rpc/provider-manager.d.ts +111 -0
  144. package/dist/shared/rpc/provider-manager.d.ts.map +1 -0
  145. package/dist/shared/rpc/provider-manager.js +116 -0
  146. package/dist/shared/rpc/provider-manager.js.map +1 -0
  147. package/dist/shared/rpc/viem-provider.d.ts +78 -0
  148. package/dist/shared/rpc/viem-provider.d.ts.map +1 -0
  149. package/dist/shared/rpc/viem-provider.js +187 -0
  150. package/dist/shared/rpc/viem-provider.js.map +1 -0
  151. package/dist/shared/token-registry/enrichment.d.ts +48 -0
  152. package/dist/shared/token-registry/enrichment.d.ts.map +1 -0
  153. package/dist/shared/token-registry/enrichment.js +69 -0
  154. package/dist/shared/token-registry/enrichment.js.map +1 -0
  155. package/dist/shared/token-registry/registry.d.ts +119 -0
  156. package/dist/shared/token-registry/registry.d.ts.map +1 -0
  157. package/dist/shared/token-registry/registry.js +200 -0
  158. package/dist/shared/token-registry/registry.js.map +1 -0
  159. package/dist/shared/utils/erc20-utils.d.ts +24 -0
  160. package/dist/shared/utils/erc20-utils.d.ts.map +1 -0
  161. package/dist/shared/utils/erc20-utils.js +31 -0
  162. package/dist/shared/utils/erc20-utils.js.map +1 -0
  163. package/dist/shared/utils/retry.d.ts +57 -0
  164. package/dist/shared/utils/retry.d.ts.map +1 -0
  165. package/dist/shared/utils/retry.js +104 -0
  166. package/dist/shared/utils/retry.js.map +1 -0
  167. package/dist/shared/wallet-manager/viem-signer.d.ts +68 -0
  168. package/dist/shared/wallet-manager/viem-signer.d.ts.map +1 -0
  169. package/dist/shared/wallet-manager/viem-signer.js +116 -0
  170. package/dist/shared/wallet-manager/viem-signer.js.map +1 -0
  171. package/dist/shared/wallet-manager/wallet-manager.d.ts +96 -0
  172. package/dist/shared/wallet-manager/wallet-manager.d.ts.map +1 -0
  173. package/dist/shared/wallet-manager/wallet-manager.js +104 -0
  174. package/dist/shared/wallet-manager/wallet-manager.js.map +1 -0
  175. package/dist/solver/agent/agent-config.d.ts +62 -0
  176. package/dist/solver/agent/agent-config.d.ts.map +1 -0
  177. package/dist/solver/agent/agent-config.js +59 -0
  178. package/dist/solver/agent/agent-config.js.map +1 -0
  179. package/dist/solver/agent/index.d.ts +6 -0
  180. package/dist/solver/agent/index.d.ts.map +1 -0
  181. package/dist/solver/agent/index.js +6 -0
  182. package/dist/solver/agent/index.js.map +1 -0
  183. package/dist/solver/agent/liquidity-agent.d.ts +118 -0
  184. package/dist/solver/agent/liquidity-agent.d.ts.map +1 -0
  185. package/dist/solver/agent/liquidity-agent.js +285 -0
  186. package/dist/solver/agent/liquidity-agent.js.map +1 -0
  187. package/dist/solver/contracts/intent-settlement/index.d.ts +2 -0
  188. package/dist/solver/contracts/intent-settlement/index.d.ts.map +1 -0
  189. package/dist/solver/contracts/intent-settlement/index.js +2 -0
  190. package/dist/solver/contracts/intent-settlement/index.js.map +1 -0
  191. package/dist/solver/contracts/intent-settlement/intent-settlement.d.ts +22 -0
  192. package/dist/solver/contracts/intent-settlement/intent-settlement.d.ts.map +1 -0
  193. package/dist/solver/contracts/intent-settlement/intent-settlement.js +58 -0
  194. package/dist/solver/contracts/intent-settlement/intent-settlement.js.map +1 -0
  195. package/dist/solver/contracts/intent-settlement/viem-settlement-contract.d.ts +226 -0
  196. package/dist/solver/contracts/intent-settlement/viem-settlement-contract.d.ts.map +1 -0
  197. package/dist/solver/contracts/intent-settlement/viem-settlement-contract.js +204 -0
  198. package/dist/solver/contracts/intent-settlement/viem-settlement-contract.js.map +1 -0
  199. package/dist/solver/index.d.ts +87 -0
  200. package/dist/solver/index.d.ts.map +1 -0
  201. package/dist/solver/index.js +167 -0
  202. package/dist/solver/index.js.map +1 -0
  203. package/dist/solver/inventory/index.d.ts +7 -0
  204. package/dist/solver/inventory/index.d.ts.map +1 -0
  205. package/dist/solver/inventory/index.js +7 -0
  206. package/dist/solver/inventory/index.js.map +1 -0
  207. package/dist/solver/inventory/inventory-manager.d.ts +135 -0
  208. package/dist/solver/inventory/inventory-manager.d.ts.map +1 -0
  209. package/dist/solver/inventory/inventory-manager.js +323 -0
  210. package/dist/solver/inventory/inventory-manager.js.map +1 -0
  211. package/dist/solver/inventory/inventory-monitor.d.ts +72 -0
  212. package/dist/solver/inventory/inventory-monitor.d.ts.map +1 -0
  213. package/dist/solver/inventory/inventory-monitor.js +123 -0
  214. package/dist/solver/inventory/inventory-monitor.js.map +1 -0
  215. package/dist/solver/inventory/rebalancer.d.ts +78 -0
  216. package/dist/solver/inventory/rebalancer.d.ts.map +1 -0
  217. package/dist/solver/inventory/rebalancer.js +210 -0
  218. package/dist/solver/inventory/rebalancer.js.map +1 -0
  219. package/dist/solver/mempool/index.d.ts +8 -0
  220. package/dist/solver/mempool/index.d.ts.map +1 -0
  221. package/dist/solver/mempool/index.js +8 -0
  222. package/dist/solver/mempool/index.js.map +1 -0
  223. package/dist/solver/mempool/intent-filter.d.ts +49 -0
  224. package/dist/solver/mempool/intent-filter.d.ts.map +1 -0
  225. package/dist/solver/mempool/intent-filter.js +75 -0
  226. package/dist/solver/mempool/intent-filter.js.map +1 -0
  227. package/dist/solver/mempool/mempool-client.d.ts +105 -0
  228. package/dist/solver/mempool/mempool-client.d.ts.map +1 -0
  229. package/dist/solver/mempool/mempool-client.js +161 -0
  230. package/dist/solver/mempool/mempool-client.js.map +1 -0
  231. package/dist/solver/mempool/mempool-monitor.d.ts +71 -0
  232. package/dist/solver/mempool/mempool-monitor.d.ts.map +1 -0
  233. package/dist/solver/mempool/mempool-monitor.js +127 -0
  234. package/dist/solver/mempool/mempool-monitor.js.map +1 -0
  235. package/dist/solver/mempool/solution-submitter.d.ts +41 -0
  236. package/dist/solver/mempool/solution-submitter.d.ts.map +1 -0
  237. package/dist/solver/mempool/solution-submitter.js +71 -0
  238. package/dist/solver/mempool/solution-submitter.js.map +1 -0
  239. package/dist/solver/monitoring/alert-manager.d.ts +43 -0
  240. package/dist/solver/monitoring/alert-manager.d.ts.map +1 -0
  241. package/dist/solver/monitoring/alert-manager.js +69 -0
  242. package/dist/solver/monitoring/alert-manager.js.map +1 -0
  243. package/dist/solver/monitoring/health-checker.d.ts +53 -0
  244. package/dist/solver/monitoring/health-checker.d.ts.map +1 -0
  245. package/dist/solver/monitoring/health-checker.js +94 -0
  246. package/dist/solver/monitoring/health-checker.js.map +1 -0
  247. package/dist/solver/monitoring/index.d.ts +7 -0
  248. package/dist/solver/monitoring/index.d.ts.map +1 -0
  249. package/dist/solver/monitoring/index.js +7 -0
  250. package/dist/solver/monitoring/index.js.map +1 -0
  251. package/dist/solver/monitoring/profit-tracker.d.ts +47 -0
  252. package/dist/solver/monitoring/profit-tracker.d.ts.map +1 -0
  253. package/dist/solver/monitoring/profit-tracker.js +112 -0
  254. package/dist/solver/monitoring/profit-tracker.js.map +1 -0
  255. package/dist/solver/pricing/dynamic-pricing.d.ts +86 -0
  256. package/dist/solver/pricing/dynamic-pricing.d.ts.map +1 -0
  257. package/dist/solver/pricing/dynamic-pricing.js +189 -0
  258. package/dist/solver/pricing/dynamic-pricing.js.map +1 -0
  259. package/dist/solver/pricing/fee-calculator.d.ts +101 -0
  260. package/dist/solver/pricing/fee-calculator.d.ts.map +1 -0
  261. package/dist/solver/pricing/fee-calculator.js +149 -0
  262. package/dist/solver/pricing/fee-calculator.js.map +1 -0
  263. package/dist/solver/pricing/index.d.ts +7 -0
  264. package/dist/solver/pricing/index.d.ts.map +1 -0
  265. package/dist/solver/pricing/index.js +7 -0
  266. package/dist/solver/pricing/index.js.map +1 -0
  267. package/dist/solver/pricing/slippage-capture.d.ts +47 -0
  268. package/dist/solver/pricing/slippage-capture.d.ts.map +1 -0
  269. package/dist/solver/pricing/slippage-capture.js +63 -0
  270. package/dist/solver/pricing/slippage-capture.js.map +1 -0
  271. package/dist/solver/protocols/aggregators/lifi.d.ts +109 -0
  272. package/dist/solver/protocols/aggregators/lifi.d.ts.map +1 -0
  273. package/dist/solver/protocols/aggregators/lifi.js +110 -0
  274. package/dist/solver/protocols/aggregators/lifi.js.map +1 -0
  275. package/dist/solver/protocols/aggregators/swing.d.ts +67 -0
  276. package/dist/solver/protocols/aggregators/swing.d.ts.map +1 -0
  277. package/dist/solver/protocols/aggregators/swing.js +212 -0
  278. package/dist/solver/protocols/aggregators/swing.js.map +1 -0
  279. package/dist/solver/protocols/base-protocol.d.ts +42 -0
  280. package/dist/solver/protocols/base-protocol.d.ts.map +1 -0
  281. package/dist/solver/protocols/base-protocol.js +16 -0
  282. package/dist/solver/protocols/base-protocol.js.map +1 -0
  283. package/dist/solver/protocols/index.d.ts +10 -0
  284. package/dist/solver/protocols/index.d.ts.map +1 -0
  285. package/dist/solver/protocols/index.js +10 -0
  286. package/dist/solver/protocols/index.js.map +1 -0
  287. package/dist/solver/protocols/lending/aave.d.ts +51 -0
  288. package/dist/solver/protocols/lending/aave.d.ts.map +1 -0
  289. package/dist/solver/protocols/lending/aave.js +172 -0
  290. package/dist/solver/protocols/lending/aave.js.map +1 -0
  291. package/dist/solver/protocols/protocol-registry.d.ts +28 -0
  292. package/dist/solver/protocols/protocol-registry.d.ts.map +1 -0
  293. package/dist/solver/protocols/protocol-registry.js +40 -0
  294. package/dist/solver/protocols/protocol-registry.js.map +1 -0
  295. package/dist/solver/settlement/index.d.ts +7 -0
  296. package/dist/solver/settlement/index.d.ts.map +1 -0
  297. package/dist/solver/settlement/index.js +7 -0
  298. package/dist/solver/settlement/index.js.map +1 -0
  299. package/dist/solver/settlement/live-settlement-manager.d.ts +62 -0
  300. package/dist/solver/settlement/live-settlement-manager.d.ts.map +1 -0
  301. package/dist/solver/settlement/live-settlement-manager.js +68 -0
  302. package/dist/solver/settlement/live-settlement-manager.js.map +1 -0
  303. package/dist/solver/settlement/proof-generator.d.ts +48 -0
  304. package/dist/solver/settlement/proof-generator.d.ts.map +1 -0
  305. package/dist/solver/settlement/proof-generator.js +100 -0
  306. package/dist/solver/settlement/proof-generator.js.map +1 -0
  307. package/dist/solver/settlement/proof-verifier.d.ts +31 -0
  308. package/dist/solver/settlement/proof-verifier.d.ts.map +1 -0
  309. package/dist/solver/settlement/proof-verifier.js +46 -0
  310. package/dist/solver/settlement/proof-verifier.js.map +1 -0
  311. package/dist/solver/settlement/settlement-manager.d.ts +97 -0
  312. package/dist/solver/settlement/settlement-manager.d.ts.map +1 -0
  313. package/dist/solver/settlement/settlement-manager.js +220 -0
  314. package/dist/solver/settlement/settlement-manager.js.map +1 -0
  315. package/dist/solver/types/agent.d.ts +92 -0
  316. package/dist/solver/types/agent.d.ts.map +1 -0
  317. package/dist/solver/types/agent.js +8 -0
  318. package/dist/solver/types/agent.js.map +1 -0
  319. package/dist/solver/types/execution.d.ts +70 -0
  320. package/dist/solver/types/execution.d.ts.map +1 -0
  321. package/dist/solver/types/execution.js +7 -0
  322. package/dist/solver/types/execution.js.map +1 -0
  323. package/dist/solver/types/index.d.ts +13 -0
  324. package/dist/solver/types/index.d.ts.map +1 -0
  325. package/dist/solver/types/index.js +13 -0
  326. package/dist/solver/types/index.js.map +1 -0
  327. package/dist/solver/types/intent.d.ts +82 -0
  328. package/dist/solver/types/intent.d.ts.map +1 -0
  329. package/dist/solver/types/intent.js +33 -0
  330. package/dist/solver/types/intent.js.map +1 -0
  331. package/dist/solver/types/inventory.d.ts +83 -0
  332. package/dist/solver/types/inventory.d.ts.map +1 -0
  333. package/dist/solver/types/inventory.js +8 -0
  334. package/dist/solver/types/inventory.js.map +1 -0
  335. package/dist/solver/types/pricing.d.ts +59 -0
  336. package/dist/solver/types/pricing.d.ts.map +1 -0
  337. package/dist/solver/types/pricing.js +8 -0
  338. package/dist/solver/types/pricing.js.map +1 -0
  339. package/dist/solver/types/settlement.d.ts +98 -0
  340. package/dist/solver/types/settlement.d.ts.map +1 -0
  341. package/dist/solver/types/settlement.js +9 -0
  342. package/dist/solver/types/settlement.js.map +1 -0
  343. package/dist/types/chain.d.ts +66 -0
  344. package/dist/types/chain.d.ts.map +1 -0
  345. package/dist/types/chain.js +7 -0
  346. package/dist/types/chain.js.map +1 -0
  347. package/dist/types/common.d.ts +44 -0
  348. package/dist/types/common.d.ts.map +1 -0
  349. package/dist/types/common.js +8 -0
  350. package/dist/types/common.js.map +1 -0
  351. package/dist/types/entities.d.ts +61 -0
  352. package/dist/types/entities.d.ts.map +1 -0
  353. package/dist/types/entities.js +2 -0
  354. package/dist/types/entities.js.map +1 -0
  355. package/dist/types/index.d.ts +44 -0
  356. package/dist/types/index.d.ts.map +1 -0
  357. package/dist/types/index.js +8 -0
  358. package/dist/types/index.js.map +1 -0
  359. package/dist/types/intent.d.ts +70 -0
  360. package/dist/types/intent.d.ts.map +1 -0
  361. package/dist/types/intent.js +2 -0
  362. package/dist/types/intent.js.map +1 -0
  363. package/dist/types/templates.d.ts +18 -0
  364. package/dist/types/templates.d.ts.map +1 -0
  365. package/dist/types/templates.js +2 -0
  366. package/dist/types/templates.js.map +1 -0
  367. package/dist/types/token.d.ts +132 -0
  368. package/dist/types/token.d.ts.map +1 -0
  369. package/dist/types/token.js +8 -0
  370. package/dist/types/token.js.map +1 -0
  371. package/package.json +62 -0
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Mempool Monitor — Phase G
3
+ *
4
+ * The main orchestrator of the mempool integration pipeline.
5
+ * Listens for intents, filters them, solves viable ones via LiquidityAgent,
6
+ * and submits results back to the mempool.
7
+ *
8
+ * Pipeline:
9
+ * new_intent event → IntentFilter.shouldSolve() → LiquidityAgent.solve()
10
+ * → SolutionSubmitter.submit()
11
+ *
12
+ * Stats tracking:
13
+ * - received: total intents from mempool
14
+ * - filtered: intents passing shouldSolve (attempted)
15
+ * - solved: successfully completed solves
16
+ * - failed: solve attempts that returned success=false
17
+ *
18
+ * Used by: LiquidityAgent.start() (Phase K wiring)
19
+ */
20
+ import type { LiquidityAgent } from "../agent/liquidity-agent";
21
+ import type { MempoolClient } from "./mempool-client";
22
+ import type { IntentFilter } from "./intent-filter";
23
+ import type { SolutionSubmitter } from "./solution-submitter";
24
+ export interface MempoolStats {
25
+ /** Total intents received from mempool */
26
+ received: number;
27
+ /** Intents that passed shouldSolve (were attempted) */
28
+ filtered: number;
29
+ /** Intents successfully solved */
30
+ solved: number;
31
+ /** Solve attempts that failed */
32
+ failed: number;
33
+ }
34
+ export declare class MempoolMonitor {
35
+ private readonly client;
36
+ private readonly filter;
37
+ private readonly agent;
38
+ private readonly submitter;
39
+ private running;
40
+ private stats;
41
+ /** Bound handler saved for proper off() unregistration */
42
+ private boundIntentHandler;
43
+ constructor(client: MempoolClient, filter: IntentFilter, agent: LiquidityAgent, submitter: SolutionSubmitter);
44
+ /**
45
+ * Start listening to mempool intent events.
46
+ *
47
+ * Attaches "new_intent" listener on the client.
48
+ * Also listens for "intent_solved" to update dedup cache.
49
+ */
50
+ start(): void;
51
+ /**
52
+ * Stop listening and clean up event handlers.
53
+ */
54
+ stop(): void;
55
+ /**
56
+ * Get current processing stats.
57
+ *
58
+ * @returns Snapshot of received/filtered/solved/failed counters
59
+ */
60
+ getStats(): MempoolStats;
61
+ /** Whether the monitor is currently listening */
62
+ isRunning(): boolean;
63
+ /**
64
+ * Process a single incoming intent through the full pipeline.
65
+ *
66
+ * Errors within the solve pipeline are caught here so that
67
+ * one bad intent doesn't crash the monitor loop.
68
+ */
69
+ private handleIntent;
70
+ }
71
+ //# sourceMappingURL=mempool-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mempool-monitor.d.ts","sourceRoot":"","sources":["../../../src/solver/mempool/mempool-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAM9D,MAAM,WAAW,YAAY;IACzB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,cAAc;IAanB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAf9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAKX;IAEF,0DAA0D;IAC1D,OAAO,CAAC,kBAAkB,CAAiC;gBAGtC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,iBAAiB;IAYjD;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;;;OAIG;IACH,QAAQ,IAAI,YAAY;IAIxB,iDAAiD;IACjD,SAAS,IAAI,OAAO;IAQpB;;;;;OAKG;YACW,YAAY;CA+B7B"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Mempool Monitor — Phase G
3
+ *
4
+ * The main orchestrator of the mempool integration pipeline.
5
+ * Listens for intents, filters them, solves viable ones via LiquidityAgent,
6
+ * and submits results back to the mempool.
7
+ *
8
+ * Pipeline:
9
+ * new_intent event → IntentFilter.shouldSolve() → LiquidityAgent.solve()
10
+ * → SolutionSubmitter.submit()
11
+ *
12
+ * Stats tracking:
13
+ * - received: total intents from mempool
14
+ * - filtered: intents passing shouldSolve (attempted)
15
+ * - solved: successfully completed solves
16
+ * - failed: solve attempts that returned success=false
17
+ *
18
+ * Used by: LiquidityAgent.start() (Phase K wiring)
19
+ */
20
+ // ─────────────────────────────────────────────
21
+ // MempoolMonitor
22
+ // ─────────────────────────────────────────────
23
+ export class MempoolMonitor {
24
+ client;
25
+ filter;
26
+ agent;
27
+ submitter;
28
+ running = false;
29
+ stats = {
30
+ received: 0,
31
+ filtered: 0,
32
+ solved: 0,
33
+ failed: 0,
34
+ };
35
+ /** Bound handler saved for proper off() unregistration */
36
+ boundIntentHandler;
37
+ constructor(client, filter, agent, submitter) {
38
+ this.client = client;
39
+ this.filter = filter;
40
+ this.agent = agent;
41
+ this.submitter = submitter;
42
+ // Bind once so we can unregister the same reference in stop()
43
+ this.boundIntentHandler = (intent) => {
44
+ void this.handleIntent(intent);
45
+ };
46
+ }
47
+ // ─────────────────────────────────────────
48
+ // Public API
49
+ // ─────────────────────────────────────────
50
+ /**
51
+ * Start listening to mempool intent events.
52
+ *
53
+ * Attaches "new_intent" listener on the client.
54
+ * Also listens for "intent_solved" to update dedup cache.
55
+ */
56
+ start() {
57
+ if (this.running)
58
+ return;
59
+ this.running = true;
60
+ this.client.on("new_intent", this.boundIntentHandler);
61
+ // When another solver solves an intent, mark it in our filter cache
62
+ this.client.on("intent_solved", (payload) => {
63
+ this.filter.markSolved(payload.intentId);
64
+ });
65
+ }
66
+ /**
67
+ * Stop listening and clean up event handlers.
68
+ */
69
+ stop() {
70
+ if (!this.running)
71
+ return;
72
+ this.running = false;
73
+ this.client.off("new_intent", this.boundIntentHandler);
74
+ // Note: we leave "intent_solved" registered for the duration it was
75
+ // attached, it's harmless as it only updates a Set and will be GC'd
76
+ // when the client is destroyed.
77
+ }
78
+ /**
79
+ * Get current processing stats.
80
+ *
81
+ * @returns Snapshot of received/filtered/solved/failed counters
82
+ */
83
+ getStats() {
84
+ return { ...this.stats };
85
+ }
86
+ /** Whether the monitor is currently listening */
87
+ isRunning() {
88
+ return this.running;
89
+ }
90
+ // ─────────────────────────────────────────
91
+ // Private
92
+ // ─────────────────────────────────────────
93
+ /**
94
+ * Process a single incoming intent through the full pipeline.
95
+ *
96
+ * Errors within the solve pipeline are caught here so that
97
+ * one bad intent doesn't crash the monitor loop.
98
+ */
99
+ async handleIntent(intent) {
100
+ this.stats.received++;
101
+ // 1. Filter
102
+ if (!this.filter.shouldSolve(intent)) {
103
+ return;
104
+ }
105
+ this.stats.filtered++;
106
+ // 2. Solve
107
+ try {
108
+ const result = await this.agent.solve(intent);
109
+ if (result.success) {
110
+ this.stats.solved++;
111
+ // 3. Submit
112
+ this.submitter.submit(intent.intentId, result);
113
+ }
114
+ else {
115
+ this.stats.failed++;
116
+ // Log failure reason at debug level — not alertable
117
+ console.debug(`[MempoolMonitor] Intent ${intent.intentId} solve failed: ${result.error}`);
118
+ }
119
+ }
120
+ catch (err) {
121
+ this.stats.failed++;
122
+ const message = err instanceof Error ? err.message : String(err);
123
+ console.error(`[MempoolMonitor] Unexpected error solving ${intent.intentId}:`, message);
124
+ }
125
+ }
126
+ }
127
+ //# sourceMappingURL=mempool-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mempool-monitor.js","sourceRoot":"","sources":["../../../src/solver/mempool/mempool-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Solution Submitter — Phase G
3
+ *
4
+ * Formats and submits a solved intent's result back to the mempool server.
5
+ * Handles race conditions where another solver already claimed the intent.
6
+ *
7
+ * Used by: MempoolMonitor
8
+ */
9
+ import type { SolutionResult } from "../types/agent";
10
+ import type { MempoolClient } from "./mempool-client";
11
+ /** Result of a submission attempt */
12
+ export interface SubmitOutcome {
13
+ /** Whether submission was sent successfully */
14
+ submitted: boolean;
15
+ /** Whether submission was skipped because the intent was already solved */
16
+ alreadySolved: boolean;
17
+ /** Error if submission failed for some other reason */
18
+ error?: string;
19
+ }
20
+ export declare class SolutionSubmitter {
21
+ private readonly client;
22
+ constructor(client: MempoolClient);
23
+ /**
24
+ * Submit a solution result to the mempool server.
25
+ *
26
+ * On success: sends the txHash + profit to the server.
27
+ * On "already solved" race condition: logs a warning and skips silently.
28
+ * On failure: logs the error and returns error outcome.
29
+ *
30
+ * @param intentId - The intent being submitted
31
+ * @param result - SolutionResult from LiquidityAgent.solve()
32
+ * @returns SubmitOutcome describing what happened
33
+ */
34
+ submit(intentId: string, result: SolutionResult): SubmitOutcome;
35
+ /**
36
+ * Detect "already solved" error messages from the mempool server.
37
+ * Protocol-agnostic heuristic covering common error wordings.
38
+ */
39
+ private isAlreadySolvedError;
40
+ }
41
+ //# sourceMappingURL=solution-submitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solution-submitter.d.ts","sourceRoot":"","sources":["../../../src/solver/mempool/solution-submitter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC1B,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,aAAa,EAAE,OAAO,CAAC;IACvB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAiB;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAMlD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,aAAa;IA0C/D;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CAS/B"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Solution Submitter — Phase G
3
+ *
4
+ * Formats and submits a solved intent's result back to the mempool server.
5
+ * Handles race conditions where another solver already claimed the intent.
6
+ *
7
+ * Used by: MempoolMonitor
8
+ */
9
+ export class SolutionSubmitter {
10
+ client;
11
+ constructor(client) {
12
+ this.client = client;
13
+ }
14
+ // ─────────────────────────────────────────
15
+ // Public API
16
+ // ─────────────────────────────────────────
17
+ /**
18
+ * Submit a solution result to the mempool server.
19
+ *
20
+ * On success: sends the txHash + profit to the server.
21
+ * On "already solved" race condition: logs a warning and skips silently.
22
+ * On failure: logs the error and returns error outcome.
23
+ *
24
+ * @param intentId - The intent being submitted
25
+ * @param result - SolutionResult from LiquidityAgent.solve()
26
+ * @returns SubmitOutcome describing what happened
27
+ */
28
+ submit(intentId, result) {
29
+ if (!result.success) {
30
+ // Don't submit failed solutions — they don't need to go to mempool
31
+ return { submitted: false, alreadySolved: false };
32
+ }
33
+ if (!this.client.isConnected()) {
34
+ console.warn(`[SolutionSubmitter] Cannot submit ${intentId}: not connected to mempool`);
35
+ return {
36
+ submitted: false,
37
+ alreadySolved: false,
38
+ error: "Not connected to mempool",
39
+ };
40
+ }
41
+ try {
42
+ this.client.submitSolution(intentId, result.txHash, result.metadata?.sourceChainId?.toString(), result.profit);
43
+ return { submitted: true, alreadySolved: false };
44
+ }
45
+ catch (err) {
46
+ const message = err instanceof Error ? err.message : String(err);
47
+ // Detect "already solved" — another solver was faster
48
+ if (this.isAlreadySolvedError(message)) {
49
+ console.warn(`[SolutionSubmitter] Intent ${intentId} already solved by another solver`);
50
+ return { submitted: false, alreadySolved: true };
51
+ }
52
+ console.error(`[SolutionSubmitter] Failed to submit ${intentId}:`, message);
53
+ return { submitted: false, alreadySolved: false, error: message };
54
+ }
55
+ }
56
+ // ─────────────────────────────────────────
57
+ // Private
58
+ // ─────────────────────────────────────────
59
+ /**
60
+ * Detect "already solved" error messages from the mempool server.
61
+ * Protocol-agnostic heuristic covering common error wordings.
62
+ */
63
+ isAlreadySolvedError(message) {
64
+ const lower = message.toLowerCase();
65
+ return (lower.includes("already solved") ||
66
+ lower.includes("already claimed") ||
67
+ lower.includes("intent_not_found") ||
68
+ lower.includes("duplicate"));
69
+ }
70
+ }
71
+ //# sourceMappingURL=solution-submitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solution-submitter.js","sourceRoot":"","sources":["../../../src/solver/mempool/solution-submitter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,MAAM,OAAO,iBAAiB;IACG;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAI,CAAC;IAEvD,4CAA4C;IAC5C,aAAa;IACb,4CAA4C;IAE5C;;;;;;;;;;OAUG;IACH,MAAM,CAAC,QAAgB,EAAE,MAAsB;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,mEAAmE;YACnE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,qCAAqC,QAAQ,4BAA4B,CAAC,CAAC;YACxF,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,0BAA0B;aACpC,CAAC;QACN,CAAC;QAED,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,cAAc,CACtB,QAAQ,EACR,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,EAC1C,MAAM,CAAC,MAAM,CAChB,CAAC;YAEF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACrD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEjE,sDAAsD;YACtD,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,8BAA8B,QAAQ,mCAAmC,CAAC,CAAC;gBACxF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YACrD,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,wCAAwC,QAAQ,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACtE,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,UAAU;IACV,4CAA4C;IAE5C;;;OAGG;IACK,oBAAoB,CAAC,OAAe;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,CACH,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACjC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAClC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC9B,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Alert Manager — Phase H
3
+ *
4
+ * Provides a structured way to report and track system alerts
5
+ * like low inventory or failed claim transactions.
6
+ *
7
+ * Used by: SettlementManager, DynamicPricing, Rebalancer
8
+ */
9
+ import type { ChainId } from "../../types/common";
10
+ export type AlertLevel = "info" | "warning" | "critical";
11
+ export interface Alert {
12
+ id: string;
13
+ level: AlertLevel;
14
+ message: string;
15
+ timestamp: number;
16
+ context?: Record<string, unknown>;
17
+ }
18
+ export declare class AlertManager {
19
+ private alerts;
20
+ private readonly MAX_ALERTS;
21
+ private nextId;
22
+ /**
23
+ * Create a generalized structured alert
24
+ */
25
+ alert(level: AlertLevel, message: string, context?: Record<string, unknown>): void;
26
+ /**
27
+ * Helper to create a standardized low inventory warning
28
+ */
29
+ alertLowInventory(chainId: ChainId, token: string, available: string, threshold: string): void;
30
+ /**
31
+ * Helper to create a critical alert when a settlement claim fails repeatedly
32
+ */
33
+ alertFailedClaim(intentId: string, reason: string, attempt: number): void;
34
+ /**
35
+ * Retrieve stored alerts, optionally filtered by severity
36
+ */
37
+ getAlerts(level?: AlertLevel): Alert[];
38
+ /**
39
+ * Clear all stored alerts
40
+ */
41
+ clearAlerts(): void;
42
+ }
43
+ //# sourceMappingURL=alert-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-manager.d.ts","sourceRoot":"","sources":["../../../src/solver/monitoring/alert-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAEzD,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,MAAM,CAAK;IAEnB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA2BlF;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ9F;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAQzE;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE;IAOtC;;OAEG;IACH,WAAW,IAAI,IAAI;CAGtB"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Alert Manager — Phase H
3
+ *
4
+ * Provides a structured way to report and track system alerts
5
+ * like low inventory or failed claim transactions.
6
+ *
7
+ * Used by: SettlementManager, DynamicPricing, Rebalancer
8
+ */
9
+ export class AlertManager {
10
+ alerts = [];
11
+ MAX_ALERTS = 1000;
12
+ nextId = 1;
13
+ /**
14
+ * Create a generalized structured alert
15
+ */
16
+ alert(level, message, context) {
17
+ const item = {
18
+ id: `alert-${this.nextId++}`,
19
+ level,
20
+ message,
21
+ timestamp: Date.now(),
22
+ context,
23
+ };
24
+ this.alerts.push(item);
25
+ // Keep memory bounded
26
+ if (this.alerts.length > this.MAX_ALERTS) {
27
+ this.alerts.shift();
28
+ }
29
+ // Production-ready: emit to stdout/stderr in standardized format
30
+ // Could be piped to external monitoring tools (Datadog, Sentry, etc.)
31
+ if (level === "critical") {
32
+ console.error(`[ALERT:CRITICAL] ${message}`, context ? context : "");
33
+ }
34
+ else if (level === "warning") {
35
+ console.warn(`[ALERT:WARNING] ${message}`, context ? context : "");
36
+ }
37
+ else {
38
+ console.info(`[ALERT:INFO] ${message}`, context ? context : "");
39
+ }
40
+ }
41
+ /**
42
+ * Helper to create a standardized low inventory warning
43
+ */
44
+ alertLowInventory(chainId, token, available, threshold) {
45
+ this.alert("warning", `Low inventory on chain ${chainId} for ${token}: available ${available} < threshold ${threshold}`, { chainId, token, available, threshold });
46
+ }
47
+ /**
48
+ * Helper to create a critical alert when a settlement claim fails repeatedly
49
+ */
50
+ alertFailedClaim(intentId, reason, attempt) {
51
+ this.alert("critical", `Failed claim for intent ${intentId} on attempt ${attempt}. Reason: ${reason}`, { intentId, reason, attempt });
52
+ }
53
+ /**
54
+ * Retrieve stored alerts, optionally filtered by severity
55
+ */
56
+ getAlerts(level) {
57
+ if (level) {
58
+ return this.alerts.filter((a) => a.level === level);
59
+ }
60
+ return [...this.alerts];
61
+ }
62
+ /**
63
+ * Clear all stored alerts
64
+ */
65
+ clearAlerts() {
66
+ this.alerts = [];
67
+ }
68
+ }
69
+ //# sourceMappingURL=alert-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-manager.js","sourceRoot":"","sources":["../../../src/solver/monitoring/alert-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,MAAM,OAAO,YAAY;IACb,MAAM,GAAY,EAAE,CAAC;IACZ,UAAU,GAAG,IAAI,CAAC;IAC3B,MAAM,GAAG,CAAC,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,KAAiB,EAAE,OAAe,EAAE,OAAiC;QACvE,MAAM,IAAI,GAAU;YAChB,EAAE,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE;YAC5B,KAAK;YACL,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO;SACV,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvB,sBAAsB;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QAED,iEAAiE;QACjE,sEAAsE;QACtE,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,mBAAmB,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAgB,EAAE,KAAa,EAAE,SAAiB,EAAE,SAAiB;QACnF,IAAI,CAAC,KAAK,CACN,SAAS,EACT,0BAA0B,OAAO,QAAQ,KAAK,eAAe,SAAS,gBAAgB,SAAS,EAAE,EACjG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAC3C,CAAC;IACN,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAgB,EAAE,MAAc,EAAE,OAAe;QAC9D,IAAI,CAAC,KAAK,CACN,UAAU,EACV,2BAA2B,QAAQ,eAAe,OAAO,aAAa,MAAM,EAAE,EAC9E,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAChC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAkB;QACxB,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,WAAW;QACP,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;CACJ"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Health Checker — Phase H
3
+ *
4
+ * Aggregates health status of all critical solver subsystems
5
+ * (RPC, Inventory, Mempool).
6
+ *
7
+ * Used by: Monitoring dashboard / AlertManager
8
+ */
9
+ import type { InventoryManager } from "../inventory/inventory-manager";
10
+ import type { MempoolClient } from "../mempool/mempool-client";
11
+ import type { RPCProviderManager } from "../../shared/rpc/provider-manager";
12
+ export interface HealthCheckResult {
13
+ healthy: boolean;
14
+ checks: {
15
+ rpc: {
16
+ healthy: boolean;
17
+ details?: string;
18
+ };
19
+ inventory: {
20
+ healthy: boolean;
21
+ details?: string;
22
+ };
23
+ mempool: {
24
+ healthy: boolean;
25
+ details?: string;
26
+ };
27
+ };
28
+ timestamp: number;
29
+ }
30
+ export declare class HealthChecker {
31
+ private readonly deps;
32
+ /** Cached result from last check() call */
33
+ private lastResult;
34
+ /** TTL for isHealthy() cache in ms (default 10 seconds) */
35
+ private readonly cacheTtlMs;
36
+ constructor(deps: {
37
+ inventoryManager: InventoryManager;
38
+ mempoolClient: MempoolClient;
39
+ rpcProviderManager: RPCProviderManager;
40
+ }, cacheTtlMs?: number);
41
+ /**
42
+ * Perform a full health check across all subsystems
43
+ * @returns Detailed health check result
44
+ */
45
+ check(): Promise<HealthCheckResult>;
46
+ /**
47
+ * Quick boolean check of overall health.
48
+ * Result is cached for `cacheTtlMs` to avoid per-call network calls.
49
+ * Pass `force = true` to skip the cache.
50
+ */
51
+ isHealthy(force?: boolean): Promise<boolean>;
52
+ }
53
+ //# sourceMappingURL=health-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checker.d.ts","sourceRoot":"","sources":["../../../src/solver/monitoring/health-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACJ,GAAG,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5C,SAAS,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAClD,OAAO,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACnD,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa;IAOlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IANzB,2CAA2C;IAC3C,OAAO,CAAC,UAAU,CAAkC;IACpD,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGf,IAAI,EAAE;QACnB,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,aAAa,EAAE,aAAa,CAAC;QAC7B,kBAAkB,EAAE,kBAAkB,CAAC;KAC1C,EACD,UAAU,SAAS;IAKvB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA4DzC;;;;OAIG;IACG,SAAS,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAQnD"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Health Checker — Phase H
3
+ *
4
+ * Aggregates health status of all critical solver subsystems
5
+ * (RPC, Inventory, Mempool).
6
+ *
7
+ * Used by: Monitoring dashboard / AlertManager
8
+ */
9
+ export class HealthChecker {
10
+ deps;
11
+ /** Cached result from last check() call */
12
+ lastResult = null;
13
+ /** TTL for isHealthy() cache in ms (default 10 seconds) */
14
+ cacheTtlMs;
15
+ constructor(deps, cacheTtlMs = 10_000) {
16
+ this.deps = deps;
17
+ this.cacheTtlMs = cacheTtlMs;
18
+ }
19
+ /**
20
+ * Perform a full health check across all subsystems
21
+ * @returns Detailed health check result
22
+ */
23
+ async check() {
24
+ const { inventoryManager, mempoolClient, rpcProviderManager } = this.deps;
25
+ // 1. RPC Check
26
+ let rpcHealthy = true;
27
+ let rpcDetails = "All providers ok";
28
+ try {
29
+ const rpcHealth = await rpcProviderManager.checkHealth();
30
+ let failedCount = 0;
31
+ for (const [, isHealthy] of rpcHealth.entries()) {
32
+ if (!isHealthy)
33
+ failedCount++;
34
+ }
35
+ if (failedCount > 0) {
36
+ rpcHealthy = false;
37
+ rpcDetails = `${failedCount} provider(s) down`;
38
+ }
39
+ }
40
+ catch (e) {
41
+ rpcHealthy = false;
42
+ rpcDetails = e instanceof Error ? e.message : "RPC check failed";
43
+ console.error(`[HealthChecker] RPC check threw:`, rpcDetails);
44
+ }
45
+ // 2. Inventory Check
46
+ let inventoryHealthy = false;
47
+ let inventoryDetails = "No available balances";
48
+ try {
49
+ const snapshot = inventoryManager.getSnapshot();
50
+ if (snapshot.balances && snapshot.balances.length > 0) {
51
+ // Determine healthy if there's > 0 balance globally or tracked chains have some value
52
+ for (const bal of snapshot.balances) {
53
+ if (BigInt(bal.available) > 0n) {
54
+ inventoryHealthy = true;
55
+ inventoryDetails = "Balances available";
56
+ break;
57
+ }
58
+ }
59
+ }
60
+ }
61
+ catch (e) {
62
+ const msg = e instanceof Error ? e.message : "Inventory check failed";
63
+ inventoryDetails = msg;
64
+ console.error(`[HealthChecker] Inventory check threw:`, msg);
65
+ }
66
+ // 3. Mempool Check
67
+ const mempoolHealthy = mempoolClient.isConnected();
68
+ const mempoolDetails = mempoolHealthy ? "Connected" : "Disconnected";
69
+ const healthy = rpcHealthy && inventoryHealthy && mempoolHealthy;
70
+ return {
71
+ healthy,
72
+ checks: {
73
+ rpc: { healthy: rpcHealthy, details: rpcDetails },
74
+ inventory: { healthy: inventoryHealthy, details: inventoryDetails },
75
+ mempool: { healthy: mempoolHealthy, details: mempoolDetails },
76
+ },
77
+ timestamp: Date.now(),
78
+ };
79
+ }
80
+ /**
81
+ * Quick boolean check of overall health.
82
+ * Result is cached for `cacheTtlMs` to avoid per-call network calls.
83
+ * Pass `force = true` to skip the cache.
84
+ */
85
+ async isHealthy(force = false) {
86
+ const now = Date.now();
87
+ if (!force && this.lastResult && (now - this.lastResult.timestamp) < this.cacheTtlMs) {
88
+ return this.lastResult.healthy;
89
+ }
90
+ this.lastResult = await this.check();
91
+ return this.lastResult.healthy;
92
+ }
93
+ }
94
+ //# sourceMappingURL=health-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checker.js","sourceRoot":"","sources":["../../../src/solver/monitoring/health-checker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Monitoring Module — Barrel Export
3
+ */
4
+ export * from "./profit-tracker";
5
+ export * from "./health-checker";
6
+ export * from "./alert-manager";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/solver/monitoring/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Monitoring Module — Barrel Export
3
+ */
4
+ export * from "./profit-tracker";
5
+ export * from "./health-checker";
6
+ export * from "./alert-manager";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/solver/monitoring/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}