@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,61 @@
1
+ /**
2
+ * Send Intent Template
3
+ *
4
+ * Handles sending/transferring tokens to a recipient address.
5
+ *
6
+ * USE CASES:
7
+ * - "Send 0.5 ETH to 0x1234..."
8
+ * - "Transfer 100 USDC to vitalik.eth"
9
+ * - "Pay 50 DAI to 0xabcd..."
10
+ *
11
+ * REQUIRED FIELDS:
12
+ * - inputToken: The token to send (e.g., "ETH", "USDC")
13
+ * - inputAmount: How much to send (e.g., "0.5", "100")
14
+ * - recipient: Destination address or ENS name (e.g., "0x1234...", "vitalik.eth")
15
+ *
16
+ * OPTIONAL FIELDS:
17
+ * - maxGasCost: Maximum gas the user is willing to pay (e.g., "0.01")
18
+ *
19
+ * DEFAULT CONSTRAINTS:
20
+ * - deadline: 0 (will be set dynamically by parser using config.defaultDeadlineOffset)
21
+ */
22
+ export const sendTemplate = {
23
+ type: "send",
24
+ requiredFields: ["inputToken", "inputAmount", "recipient"],
25
+ optionalFields: ["maxGasCost"],
26
+ defaults: {
27
+ maxGasCost: undefined,
28
+ },
29
+ defaultConstraints: {
30
+ deadline: 0,
31
+ },
32
+ /**
33
+ * Validate send parameters
34
+ *
35
+ * INPUT: IntentParameters object
36
+ * OUTPUT: boolean — true if valid
37
+ *
38
+ * VALIDATION RULES:
39
+ * - inputToken must be present
40
+ * - inputAmount must be present and > 0
41
+ * - recipient must be present and be a valid address (0x...) or ENS name (*.eth)
42
+ */
43
+ validate: (params) => {
44
+ // 1. Check inputToken is present
45
+ if (!params.inputToken)
46
+ return false;
47
+ // 2. Check inputAmount is present and not "0"
48
+ if (!params.inputAmount || params.inputAmount === "0")
49
+ return false;
50
+ // 3. Check recipient is present
51
+ if (!params.recipient)
52
+ return false;
53
+ // 4. Validate recipient format (basic check)
54
+ const isAddress = /^0x[a-fA-F0-9]{40}$/.test(params.recipient);
55
+ const isENS = /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.eth$/.test(params.recipient);
56
+ if (!isAddress && !isENS)
57
+ return false;
58
+ return true;
59
+ },
60
+ };
61
+ //# sourceMappingURL=send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/parser/template/send.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAmB;IACxC,IAAI,EAAE,MAAM;IAEZ,cAAc,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;IAE1D,cAAc,EAAE,CAAC,YAAY,CAAC;IAE9B,QAAQ,EAAE;QACN,UAAU,EAAE,SAAS;KACxB;IAED,kBAAkB,EAAE;QAChB,QAAQ,EAAE,CAAC;KACd;IAED;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,iCAAiC;QACjC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAErC,8CAA8C;QAC9C,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QAEpE,gCAAgC;QAChC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAEpC,6CAA6C;QAC7C,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,+CAA+C,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAErF,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEvC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IntentTemplate } from "../../types";
2
+ export declare const swapTemplate: IntentTemplate;
3
+ //# sourceMappingURL=swap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../../src/parser/template/swap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,cAsB1B,CAAC"}
@@ -0,0 +1,21 @@
1
+ export const swapTemplate = {
2
+ type: "swap",
3
+ requiredFields: ["inputToken", "outputToken", "inputAmount"],
4
+ optionalFields: ["minOutputAmount", "recipient", "maxSlippage"],
5
+ defaults: {
6
+ maxSlippage: 100, // 1% default
7
+ recipient: undefined, // Will be set to user address
8
+ },
9
+ defaultConstraints: {
10
+ deadline: 0, // Will be set dynamically
11
+ maxSlippage: 100,
12
+ },
13
+ validate: (params) => {
14
+ if (!params.inputToken || !params.outputToken)
15
+ return false;
16
+ if (!params.inputAmount || params.inputAmount === "0")
17
+ return false;
18
+ return true;
19
+ },
20
+ };
21
+ //# sourceMappingURL=swap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../../src/parser/template/swap.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,IAAI,EAAE,MAAM;IAEZ,cAAc,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;IAE5D,cAAc,EAAE,CAAC,iBAAiB,EAAE,WAAW,EAAE,aAAa,CAAC;IAE/D,QAAQ,EAAE;QACR,WAAW,EAAE,GAAG,EAAE,aAAa;QAC/B,SAAS,EAAE,SAAS,EAAE,8BAA8B;KACrD;IAED,kBAAkB,EAAE;QAClB,QAAQ,EAAE,CAAC,EAAE,0BAA0B;QACvC,WAAW,EAAE,GAAG;KACjB;IAED,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;QACnB,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IntentTemplate } from "../../types";
2
+ export declare const unknownTemplate: IntentTemplate;
3
+ //# sourceMappingURL=unknown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknown.d.ts","sourceRoot":"","sources":["../../../src/parser/template/unknown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,cAc7B,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const unknownTemplate = {
2
+ type: "unknown",
3
+ requiredFields: [],
4
+ optionalFields: [],
5
+ defaults: {},
6
+ defaultConstraints: {
7
+ deadline: 0,
8
+ },
9
+ validate: () => true,
10
+ };
11
+ //# sourceMappingURL=unknown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknown.js","sourceRoot":"","sources":["../../../src/parser/template/unknown.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC3C,IAAI,EAAE,SAAS;IAEf,cAAc,EAAE,EAAE;IAElB,cAAc,EAAE,EAAE;IAElB,QAAQ,EAAE,EAAE;IAEZ,kBAAkB,EAAE;QAChB,QAAQ,EAAE,CAAC;KACd;IAED,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;CACvB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IntentTemplate } from "../../types";
2
+ export declare const yieldTemplate: IntentTemplate;
3
+ //# sourceMappingURL=yield.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../../src/parser/template/yield.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,aAAa,EAAE,cA2B3B,CAAC"}
@@ -0,0 +1,25 @@
1
+ export const yieldTemplate = {
2
+ type: "yield_strategy",
3
+ requiredFields: ["inputToken", "inputAmount"],
4
+ optionalFields: [
5
+ "riskLevel",
6
+ "diversificationRequired",
7
+ "preferredProtocols",
8
+ "targetAPY",
9
+ ],
10
+ defaults: {
11
+ riskLevel: "medium",
12
+ diversificationRequired: false,
13
+ preferredProtocols: [],
14
+ },
15
+ defaultConstraints: {
16
+ deadline: 0,
17
+ minProtocols: 1,
18
+ },
19
+ validate: (params) => {
20
+ if (!params.inputToken || !params.inputAmount)
21
+ return false;
22
+ return true;
23
+ },
24
+ };
25
+ //# sourceMappingURL=yield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yield.js","sourceRoot":"","sources":["../../../src/parser/template/yield.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,gBAAgB;IAEtB,cAAc,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;IAE7C,cAAc,EAAE;QACd,WAAW;QACX,yBAAyB;QACzB,oBAAoB;QACpB,WAAW;KACZ;IAED,QAAQ,EAAE;QACR,SAAS,EAAE,QAAQ;QACnB,uBAAuB,EAAE,KAAK;QAC9B,kBAAkB,EAAE,EAAE;KACvB;IAED,kBAAkB,EAAE;QAClB,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;KAChB;IAED,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;QACnB,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Normalize text for parsing
3
+ *
4
+ * INPUT: Raw text string
5
+ * OUTPUT: Normalized text string
6
+ *
7
+ * TRANSFORMATIONS:
8
+ * 1. Trim whitespace
9
+ * 2. Convert to lowercase (for pattern matching)
10
+ * 3. Remove extra spaces
11
+ * 4. Normalize quotes
12
+ * 5. Handle common abbreviations
13
+ *
14
+ * TODO: Implement normalization logic
15
+ */
16
+ export declare function normalizeText(text: string): string;
17
+ /**
18
+ * Normalize token symbol
19
+ *
20
+ * INPUT: Token string (case-insensitive)
21
+ * OUTPUT: Uppercase token symbol
22
+ *
23
+ * EXAMPLES:
24
+ * "usdc" -> "USDC"
25
+ * "Eth" -> "ETH"
26
+ */
27
+ export declare function normalizeTokenSymbol(token: string): string;
28
+ /**
29
+ * Parse amount with decimals
30
+ *
31
+ * INPUT: Amount and token symbol
32
+ * OUTPUT: Amount in smallest unit (wei, smallest token unit)
33
+ *
34
+ * EXAMPLES:
35
+ * (1000, "USDC") -> "1000000000" (USDC has 6 decimals)
36
+ * (1, "ETH") -> "1000000000000000000" (ETH has 18 decimals)
37
+ *
38
+ * TODO: Implement decimal conversion
39
+ */
40
+ export declare function parseAmountWithDecimals(amount: number, token: string): string;
41
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/parser/utils/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7E"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Normalize text for parsing
3
+ *
4
+ * INPUT: Raw text string
5
+ * OUTPUT: Normalized text string
6
+ *
7
+ * TRANSFORMATIONS:
8
+ * 1. Trim whitespace
9
+ * 2. Convert to lowercase (for pattern matching)
10
+ * 3. Remove extra spaces
11
+ * 4. Normalize quotes
12
+ * 5. Handle common abbreviations
13
+ *
14
+ * TODO: Implement normalization logic
15
+ */
16
+ export function normalizeText(text) {
17
+ // TODO: Implement normalization
18
+ return text
19
+ .trim()
20
+ .replace(/\s+/g, " ") // Multiple spaces -> single space
21
+ .replace(/[\u201C\u201D]/g, '"') // Normalize curly double quotes
22
+ .replace(/[\u2018\u2019]/g, "'"); // Normalize curly single quotes
23
+ }
24
+ /**
25
+ * Normalize token symbol
26
+ *
27
+ * INPUT: Token string (case-insensitive)
28
+ * OUTPUT: Uppercase token symbol
29
+ *
30
+ * EXAMPLES:
31
+ * "usdc" -> "USDC"
32
+ * "Eth" -> "ETH"
33
+ */
34
+ export function normalizeTokenSymbol(token) {
35
+ return token.toUpperCase().trim();
36
+ }
37
+ /**
38
+ * Parse amount with decimals
39
+ *
40
+ * INPUT: Amount and token symbol
41
+ * OUTPUT: Amount in smallest unit (wei, smallest token unit)
42
+ *
43
+ * EXAMPLES:
44
+ * (1000, "USDC") -> "1000000000" (USDC has 6 decimals)
45
+ * (1, "ETH") -> "1000000000000000000" (ETH has 18 decimals)
46
+ *
47
+ * TODO: Implement decimal conversion
48
+ */
49
+ export function parseAmountWithDecimals(amount, token) {
50
+ const decimals = getTokenDecimals(token);
51
+ const multiplier = Math.pow(10, decimals);
52
+ const result = Math.floor(amount * multiplier);
53
+ return result.toString();
54
+ }
55
+ /**
56
+ * Get token decimals
57
+ *
58
+ * TODO: Implement decimal lookup
59
+ */
60
+ function getTokenDecimals(token) {
61
+ const decimalsMap = {
62
+ USDC: 6,
63
+ USDT: 6,
64
+ DAI: 18,
65
+ ETH: 18,
66
+ WETH: 18,
67
+ WBTC: 8,
68
+ };
69
+ return decimalsMap[token] || 18; // Default to 18
70
+ }
71
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/parser/utils/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,gCAAgC;IAEhC,OAAO,IAAI;SACR,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,kCAAkC;SACvD,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,gCAAgC;SAChE,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,gCAAgC;AACtE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,KAAa;IACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,WAAW,GAA2B;QAC1C,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,CAAC;KACR,CAAC;IAEF,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,gBAAgB;AACnD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Calculate confidence score based on extracted entities
3
+ *
4
+ * INPUT: Extracted entities and intent type
5
+ * OUTPUT: Confidence score (0-1)
6
+ *
7
+ * FACTORS:
8
+ * - Number of required fields found
9
+ * - Clarity of entities (no ambiguity)
10
+ * - Pattern match strength
11
+ */
12
+ export declare function calculateConfidence(parameters: Record<string, any>, template: any): number;
13
+ /**
14
+ * Merge entities into parameters
15
+ *
16
+ * INPUT: Extracted entities, intent type
17
+ * OUTPUT: IntentParameters
18
+ */
19
+ export declare function mergeEntities(entities: any, intentType: string, text?: string): any;
20
+ //# sourceMappingURL=parser-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-helpers.d.ts","sourceRoot":"","sources":["../../../src/parser/utils/parser-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,QAAQ,EAAE,GAAG,GACZ,MAAM,CAmDR;AAkBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG,CAiNnF"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Calculate confidence score based on extracted entities
3
+ *
4
+ * INPUT: Extracted entities and intent type
5
+ * OUTPUT: Confidence score (0-1)
6
+ *
7
+ * FACTORS:
8
+ * - Number of required fields found
9
+ * - Clarity of entities (no ambiguity)
10
+ * - Pattern match strength
11
+ */
12
+ export function calculateConfidence(parameters, template) {
13
+ if (!template)
14
+ return 0;
15
+ let score = 0.5; // Base score
16
+ // 1. Penalty for unknown intent
17
+ if (template.type === "unknown") {
18
+ return 0.1;
19
+ }
20
+ // 2. Check required fields
21
+ let requiredFieldsFound = 0;
22
+ for (const field of template.requiredFields) {
23
+ if (parameters[field] !== undefined && parameters[field] !== null) {
24
+ requiredFieldsFound++;
25
+ }
26
+ }
27
+ // Adjust score based on required fields coverage
28
+ if (template.requiredFields.length > 0) {
29
+ const coverage = requiredFieldsFound / template.requiredFields.length;
30
+ // If all required fields are found, score starts high (0.8)
31
+ // If half are missing, score drops to 0.5
32
+ score = 0.4 + (coverage * 0.4);
33
+ }
34
+ else {
35
+ // If no required fields, rely on entity presence but cap match
36
+ score = 0.5;
37
+ }
38
+ // 3. Bonus for optional fields matches
39
+ let optionalFieldsFound = 0;
40
+ for (const field of template.optionalFields) {
41
+ if (parameters[field] !== undefined) {
42
+ optionalFieldsFound++;
43
+ }
44
+ }
45
+ if (optionalFieldsFound > 0) {
46
+ score += Math.min(0.1, optionalFieldsFound * 0.05);
47
+ }
48
+ // 4. Bonus for resolved token addresses (High confidence indicator)
49
+ if (parameters.inputTokenAddress)
50
+ score += 0.1;
51
+ if (parameters.outputTokenAddress)
52
+ score += 0.05;
53
+ // 5. Bonus for explicit chain mention
54
+ if (parameters.sourceChain)
55
+ score += 0.05;
56
+ // 6. Bonus for specific strategy details
57
+ if (parameters.riskLevel)
58
+ score += 0.05; // Yield strategy specific
59
+ return Math.min(score, 1.0);
60
+ }
61
+ // Known DeFi protocols for claim detection
62
+ const KNOWN_PROTOCOLS = [
63
+ "aave", "compound", "lido", "eigenlayer", "uniswap",
64
+ "sushiswap", "curve", "convex", "rocket pool", "pendle",
65
+ "aerodrome", "velodrome", "gmx", "radiant",
66
+ ];
67
+ // Known chain aliases for bridge detection
68
+ const CHAIN_ALIASES = {
69
+ 'mainnet': 'Ethereum', 'ethereum': 'Ethereum',
70
+ 'polygon': 'Polygon', 'arbitrum': 'Arbitrum',
71
+ 'optimism': 'Optimism', 'base': 'Base',
72
+ 'avalanche': 'Avalanche', 'bsc': 'BSC',
73
+ 'bnb chain': 'BSC', 'solana': 'Solana',
74
+ };
75
+ /**
76
+ * Merge entities into parameters
77
+ *
78
+ * INPUT: Extracted entities, intent type
79
+ * OUTPUT: IntentParameters
80
+ */
81
+ export function mergeEntities(entities, intentType, text) {
82
+ const parameters = {};
83
+ const lowerText = text?.toLowerCase() || "";
84
+ // Map entities based on intent type strategies
85
+ switch (intentType) {
86
+ case 'swap':
87
+ // Swap strategy:
88
+ // 1st amount -> inputAmount
89
+ // 1st token -> inputToken
90
+ // 2nd token -> outputToken
91
+ if (entities.amounts.length > 0) {
92
+ parameters.inputAmount = entities.amounts[0].value.toString();
93
+ }
94
+ if (entities.tokens.length > 0) {
95
+ parameters.inputToken = entities.tokens[0].symbol;
96
+ parameters.inputTokenAddress = entities.tokens[0].address;
97
+ }
98
+ if (entities.tokens.length > 1) {
99
+ parameters.outputToken = entities.tokens[1].symbol;
100
+ parameters.outputTokenAddress = entities.tokens[1].address;
101
+ }
102
+ // Check for chain override (e.g. "on Polygon")
103
+ const chain = extractChain(lowerText);
104
+ if (chain) {
105
+ parameters.sourceChain = chain;
106
+ }
107
+ break;
108
+ case 'yield_strategy':
109
+ // Yield strategy:
110
+ // 1st amount -> inputAmount
111
+ // 1st token -> inputToken
112
+ if (entities.amounts.length > 0) {
113
+ parameters.inputAmount = entities.amounts[0].value.toString();
114
+ }
115
+ if (entities.tokens.length > 0) {
116
+ parameters.inputToken = entities.tokens[0].symbol;
117
+ parameters.inputTokenAddress = entities.tokens[0].address;
118
+ }
119
+ // Simple keyword analysis for risk
120
+ if (lowerText.includes("safe") || lowerText.includes("low risk") || lowerText.includes("conservative")) {
121
+ parameters.riskLevel = "low";
122
+ }
123
+ else if (lowerText.includes("degen") || lowerText.includes("high yield") || lowerText.includes("aggressive")) {
124
+ parameters.riskLevel = "high";
125
+ }
126
+ if (lowerText.includes("diversify") || lowerText.includes("split") || lowerText.includes("multiple")) {
127
+ parameters.diversificationRequired = true;
128
+ }
129
+ // Check for chain override
130
+ const yieldChain = extractChain(lowerText);
131
+ if (yieldChain) {
132
+ parameters.sourceChain = yieldChain;
133
+ }
134
+ break;
135
+ case 'nft_purchase':
136
+ // NFT strategy:
137
+ // 1st amount -> maxPrice
138
+ // Collection detection — uses TokenExtractor's NFT collection results
139
+ if (entities.amounts.length > 0) {
140
+ parameters.maxPrice = entities.amounts[0].value.toString();
141
+ }
142
+ // Use TokenExtractor's collection detection (type === "collection")
143
+ const nftCollections = entities.tokens.filter((t) => t.type === "collection");
144
+ if (nftCollections.length > 0) {
145
+ parameters.collection = nftCollections[0].symbol;
146
+ }
147
+ // Extract payment token (fungible tokens in the same text)
148
+ const paymentTokens = entities.tokens.filter((t) => t.type === "fungible");
149
+ if (paymentTokens.length > 0) {
150
+ parameters.inputToken = paymentTokens[0].symbol;
151
+ parameters.inputTokenAddress = paymentTokens[0].address;
152
+ }
153
+ break;
154
+ case 'send':
155
+ // Send strategy:
156
+ // 1st token -> inputToken
157
+ // 1st amount -> inputAmount
158
+ // recipient -> detected via regex (0x address or .eth ENS)
159
+ if (entities.tokens.length > 0) {
160
+ parameters.inputToken = entities.tokens[0].symbol;
161
+ parameters.inputTokenAddress = entities.tokens[0].address;
162
+ }
163
+ if (entities.amounts.length > 0) {
164
+ parameters.inputAmount = entities.amounts[0].value.toString();
165
+ }
166
+ // Detect recipient address (0x...)
167
+ const addressMatch = text?.match(/(?:to\s+)(0x[a-fA-F0-9]{40})/i);
168
+ if (addressMatch) {
169
+ parameters.recipient = addressMatch[1];
170
+ }
171
+ else {
172
+ // Detect ENS name (*.eth)
173
+ const ensMatch = text?.match(/(?:to\s+)([a-zA-Z0-9][a-zA-Z0-9-]*\.eth)/i);
174
+ if (ensMatch) {
175
+ parameters.recipient = ensMatch[1];
176
+ }
177
+ }
178
+ // Check for chain override
179
+ const sendChain = extractChain(lowerText);
180
+ if (sendChain) {
181
+ parameters.sourceChain = sendChain;
182
+ }
183
+ break;
184
+ case 'bridge':
185
+ // Bridge strategy:
186
+ // 1st token -> inputToken
187
+ // 1st amount -> inputAmount
188
+ // Detect source/target chain from text keywords
189
+ if (entities.tokens.length > 0) {
190
+ parameters.inputToken = entities.tokens[0].symbol;
191
+ parameters.inputTokenAddress = entities.tokens[0].address;
192
+ }
193
+ if (entities.tokens.length > 1) {
194
+ parameters.outputToken = entities.tokens[1].symbol;
195
+ }
196
+ if (entities.amounts.length > 0) {
197
+ parameters.inputAmount = entities.amounts[0].value.toString();
198
+ }
199
+ // Use specific FROM/TO logic for bridge
200
+ const chainNames = Object.keys(CHAIN_ALIASES).join('|');
201
+ const sourceMatch = lowerText.match(new RegExp(`from\\s+(${chainNames})`, 'i'));
202
+ if (sourceMatch) {
203
+ const matched = sourceMatch[1].toLowerCase();
204
+ parameters.sourceChain = CHAIN_ALIASES[matched] || matched.charAt(0).toUpperCase() + matched.slice(1);
205
+ }
206
+ else {
207
+ // Fallback: try generic extraction if "from" not explicitly present but "on chain" is?
208
+ // Bridge usually requires explicit source/dest.
209
+ }
210
+ const targetMatch = lowerText.match(new RegExp(`to\\s+(${chainNames})`, 'i'));
211
+ if (targetMatch) {
212
+ const matched = targetMatch[1].toLowerCase();
213
+ parameters.targetChain = CHAIN_ALIASES[matched] || matched.charAt(0).toUpperCase() + matched.slice(1);
214
+ }
215
+ break;
216
+ case 'claim':
217
+ // Claim strategy:
218
+ // 1st token -> inputToken (the token being claimed)
219
+ // 1st amount (if any) -> inputAmount
220
+ // Detect claimType from keywords: airdrop, rewards/staking, vesting
221
+ // Detect protocol name from known protocols in text
222
+ if (entities.tokens.length > 0) {
223
+ parameters.inputToken = entities.tokens[0].symbol;
224
+ parameters.inputTokenAddress = entities.tokens[0].address;
225
+ }
226
+ if (entities.amounts.length > 0) {
227
+ parameters.inputAmount = entities.amounts[0].value.toString();
228
+ }
229
+ // Detect claim type from keywords
230
+ if (lowerText.includes("airdrop")) {
231
+ parameters.claimType = "airdrop";
232
+ }
233
+ else if (lowerText.includes("vest") || lowerText.includes("vesting")) {
234
+ parameters.claimType = "vesting";
235
+ }
236
+ else if (lowerText.includes("reward") ||
237
+ lowerText.includes("staking") ||
238
+ lowerText.includes("earn")) {
239
+ parameters.claimType = "rewards";
240
+ }
241
+ // Detect protocol from known DeFi protocols
242
+ for (const protocol of KNOWN_PROTOCOLS) {
243
+ if (lowerText.includes(protocol)) {
244
+ parameters.protocol = protocol;
245
+ break;
246
+ }
247
+ }
248
+ // Check for chain override
249
+ const claimChain = extractChain(lowerText);
250
+ if (claimChain) {
251
+ parameters.sourceChain = claimChain;
252
+ }
253
+ break;
254
+ default:
255
+ // Generic fallback
256
+ if (entities.amounts.length > 0) {
257
+ parameters.inputAmount = entities.amounts[0].value.toString();
258
+ }
259
+ if (entities.tokens.length > 0) {
260
+ parameters.inputToken = entities.tokens[0].symbol;
261
+ }
262
+ }
263
+ return parameters;
264
+ }
265
+ /**
266
+ * Extract chain name from text
267
+ * Looks for "on [chain]" or just "[chain]" if unambiguous
268
+ *
269
+ * INPUT: Lowercase text
270
+ * OUTPUT: Normalized chain name or null
271
+ */
272
+ function extractChain(lowerText) {
273
+ const chainNames = Object.keys(CHAIN_ALIASES).join('|');
274
+ // Look for "on [chain]" pattern first (strong signal)
275
+ const onMatch = lowerText.match(new RegExp(`(?:on|in)\\s+(${chainNames})`, 'i'));
276
+ if (onMatch) {
277
+ const matched = onMatch[1].toLowerCase();
278
+ return CHAIN_ALIASES[matched] || matched.charAt(0).toUpperCase() + matched.slice(1);
279
+ }
280
+ return null;
281
+ }
282
+ //# sourceMappingURL=parser-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-helpers.js","sourceRoot":"","sources":["../../../src/parser/utils/parser-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { StructuredIntent } from "../../types";
2
+ /**
3
+ * Validate structured intent
4
+ *
5
+ * INPUT: StructuredIntent
6
+ * OUTPUT: { success: boolean, error?: string }
7
+ *
8
+ * TODO: Implement validation logic
9
+ */
10
+ export declare function validateIntent(intent: StructuredIntent): {
11
+ success: boolean;
12
+ error?: string;
13
+ };
14
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/parser/validators/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAyDpD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAiBA"}