@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.
- package/LICENSE +21 -0
- package/README.md +258 -0
- package/dist/config/chains.d.ts +25 -0
- package/dist/config/chains.d.ts.map +1 -0
- package/dist/config/chains.js +85 -0
- package/dist/config/chains.js.map +1 -0
- package/dist/config/default.d.ts +39 -0
- package/dist/config/default.d.ts.map +1 -0
- package/dist/config/default.js +46 -0
- package/dist/config/default.js.map +1 -0
- package/dist/config/testnets.d.ts +31 -0
- package/dist/config/testnets.d.ts.map +1 -0
- package/dist/config/testnets.js +99 -0
- package/dist/config/testnets.js.map +1 -0
- package/dist/errors/inventory-errors.d.ts +31 -0
- package/dist/errors/inventory-errors.d.ts.map +1 -0
- package/dist/errors/inventory-errors.js +45 -0
- package/dist/errors/inventory-errors.js.map +1 -0
- package/dist/errors/settlement-errors.d.ts +27 -0
- package/dist/errors/settlement-errors.d.ts.map +1 -0
- package/dist/errors/settlement-errors.js +39 -0
- package/dist/errors/settlement-errors.js.map +1 -0
- package/dist/errors/solver-errors.d.ts +45 -0
- package/dist/errors/solver-errors.d.ts.map +1 -0
- package/dist/errors/solver-errors.js +66 -0
- package/dist/errors/solver-errors.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/classifiers/intent-classifier.d.ts +40 -0
- package/dist/parser/classifiers/intent-classifier.d.ts.map +1 -0
- package/dist/parser/classifiers/intent-classifier.js +72 -0
- package/dist/parser/classifiers/intent-classifier.js.map +1 -0
- package/dist/parser/extractors/action.d.ts +32 -0
- package/dist/parser/extractors/action.d.ts.map +1 -0
- package/dist/parser/extractors/action.js +72 -0
- package/dist/parser/extractors/action.js.map +1 -0
- package/dist/parser/extractors/amount.d.ts +39 -0
- package/dist/parser/extractors/amount.d.ts.map +1 -0
- package/dist/parser/extractors/amount.js +113 -0
- package/dist/parser/extractors/amount.js.map +1 -0
- package/dist/parser/extractors/constraints.d.ts +37 -0
- package/dist/parser/extractors/constraints.d.ts.map +1 -0
- package/dist/parser/extractors/constraints.js +119 -0
- package/dist/parser/extractors/constraints.js.map +1 -0
- package/dist/parser/extractors/index.d.ts +5 -0
- package/dist/parser/extractors/index.d.ts.map +1 -0
- package/dist/parser/extractors/index.js +5 -0
- package/dist/parser/extractors/index.js.map +1 -0
- package/dist/parser/extractors/token.d.ts +24 -0
- package/dist/parser/extractors/token.d.ts.map +1 -0
- package/dist/parser/extractors/token.js +124 -0
- package/dist/parser/extractors/token.js.map +1 -0
- package/dist/parser/index.d.ts +125 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +293 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/template/bridge.d.ts +37 -0
- package/dist/parser/template/bridge.d.ts.map +1 -0
- package/dist/parser/template/bridge.js +80 -0
- package/dist/parser/template/bridge.js.map +1 -0
- package/dist/parser/template/claim.d.ts +15 -0
- package/dist/parser/template/claim.d.ts.map +1 -0
- package/dist/parser/template/claim.js +36 -0
- package/dist/parser/template/claim.js.map +1 -0
- package/dist/parser/template/index.d.ts +28 -0
- package/dist/parser/template/index.d.ts.map +1 -0
- package/dist/parser/template/index.js +50 -0
- package/dist/parser/template/index.js.map +1 -0
- package/dist/parser/template/nft.d.ts +3 -0
- package/dist/parser/template/nft.d.ts.map +1 -0
- package/dist/parser/template/nft.js +19 -0
- package/dist/parser/template/nft.js.map +1 -0
- package/dist/parser/template/send.d.ts +24 -0
- package/dist/parser/template/send.d.ts.map +1 -0
- package/dist/parser/template/send.js +61 -0
- package/dist/parser/template/send.js.map +1 -0
- package/dist/parser/template/swap.d.ts +3 -0
- package/dist/parser/template/swap.d.ts.map +1 -0
- package/dist/parser/template/swap.js +21 -0
- package/dist/parser/template/swap.js.map +1 -0
- package/dist/parser/template/unknown.d.ts +3 -0
- package/dist/parser/template/unknown.d.ts.map +1 -0
- package/dist/parser/template/unknown.js +11 -0
- package/dist/parser/template/unknown.js.map +1 -0
- package/dist/parser/template/yield.d.ts +3 -0
- package/dist/parser/template/yield.d.ts.map +1 -0
- package/dist/parser/template/yield.js +25 -0
- package/dist/parser/template/yield.js.map +1 -0
- package/dist/parser/utils/normalize.d.ts +41 -0
- package/dist/parser/utils/normalize.d.ts.map +1 -0
- package/dist/parser/utils/normalize.js +71 -0
- package/dist/parser/utils/normalize.js.map +1 -0
- package/dist/parser/utils/parser-helpers.d.ts +20 -0
- package/dist/parser/utils/parser-helpers.d.ts.map +1 -0
- package/dist/parser/utils/parser-helpers.js +282 -0
- package/dist/parser/utils/parser-helpers.js.map +1 -0
- package/dist/parser/validators/schema.d.ts +14 -0
- package/dist/parser/validators/schema.d.ts.map +1 -0
- package/dist/parser/validators/schema.js +81 -0
- package/dist/parser/validators/schema.js.map +1 -0
- package/dist/sdk-factory.d.ts +55 -0
- package/dist/sdk-factory.d.ts.map +1 -0
- package/dist/sdk-factory.js +49 -0
- package/dist/sdk-factory.js.map +1 -0
- package/dist/services/token-resolver.d.ts +142 -0
- package/dist/services/token-resolver.d.ts.map +1 -0
- package/dist/services/token-resolver.js +254 -0
- package/dist/services/token-resolver.js.map +1 -0
- package/dist/shared/chain-registry/chain-names.d.ts +22 -0
- package/dist/shared/chain-registry/chain-names.d.ts.map +1 -0
- package/dist/shared/chain-registry/chain-names.js +49 -0
- package/dist/shared/chain-registry/chain-names.js.map +1 -0
- package/dist/shared/chain-registry/configs/arbitrum-sepolia.d.ts +9 -0
- package/dist/shared/chain-registry/configs/arbitrum-sepolia.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/arbitrum-sepolia.js +9 -0
- package/dist/shared/chain-registry/configs/arbitrum-sepolia.js.map +1 -0
- package/dist/shared/chain-registry/configs/base-sepolia.d.ts +9 -0
- package/dist/shared/chain-registry/configs/base-sepolia.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/base-sepolia.js +9 -0
- package/dist/shared/chain-registry/configs/base-sepolia.js.map +1 -0
- package/dist/shared/chain-registry/configs/ethereum.d.ts +7 -0
- package/dist/shared/chain-registry/configs/ethereum.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/ethereum.js +7 -0
- package/dist/shared/chain-registry/configs/ethereum.js.map +1 -0
- package/dist/shared/chain-registry/configs/polygon.d.ts +7 -0
- package/dist/shared/chain-registry/configs/polygon.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/polygon.js +7 -0
- package/dist/shared/chain-registry/configs/polygon.js.map +1 -0
- package/dist/shared/chain-registry/configs/sepolia.d.ts +9 -0
- package/dist/shared/chain-registry/configs/sepolia.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/sepolia.js +9 -0
- package/dist/shared/chain-registry/configs/sepolia.js.map +1 -0
- package/dist/shared/chain-registry/configs/unichain-sepolia.d.ts +9 -0
- package/dist/shared/chain-registry/configs/unichain-sepolia.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/unichain-sepolia.js +9 -0
- package/dist/shared/chain-registry/configs/unichain-sepolia.js.map +1 -0
- package/dist/shared/chain-registry/registry.d.ts +50 -0
- package/dist/shared/chain-registry/registry.d.ts.map +1 -0
- package/dist/shared/chain-registry/registry.js +72 -0
- package/dist/shared/chain-registry/registry.js.map +1 -0
- package/dist/shared/rpc/provider-manager.d.ts +111 -0
- package/dist/shared/rpc/provider-manager.d.ts.map +1 -0
- package/dist/shared/rpc/provider-manager.js +116 -0
- package/dist/shared/rpc/provider-manager.js.map +1 -0
- package/dist/shared/rpc/viem-provider.d.ts +78 -0
- package/dist/shared/rpc/viem-provider.d.ts.map +1 -0
- package/dist/shared/rpc/viem-provider.js +187 -0
- package/dist/shared/rpc/viem-provider.js.map +1 -0
- package/dist/shared/token-registry/enrichment.d.ts +48 -0
- package/dist/shared/token-registry/enrichment.d.ts.map +1 -0
- package/dist/shared/token-registry/enrichment.js +69 -0
- package/dist/shared/token-registry/enrichment.js.map +1 -0
- package/dist/shared/token-registry/registry.d.ts +119 -0
- package/dist/shared/token-registry/registry.d.ts.map +1 -0
- package/dist/shared/token-registry/registry.js +200 -0
- package/dist/shared/token-registry/registry.js.map +1 -0
- package/dist/shared/utils/erc20-utils.d.ts +24 -0
- package/dist/shared/utils/erc20-utils.d.ts.map +1 -0
- package/dist/shared/utils/erc20-utils.js +31 -0
- package/dist/shared/utils/erc20-utils.js.map +1 -0
- package/dist/shared/utils/retry.d.ts +57 -0
- package/dist/shared/utils/retry.d.ts.map +1 -0
- package/dist/shared/utils/retry.js +104 -0
- package/dist/shared/utils/retry.js.map +1 -0
- package/dist/shared/wallet-manager/viem-signer.d.ts +68 -0
- package/dist/shared/wallet-manager/viem-signer.d.ts.map +1 -0
- package/dist/shared/wallet-manager/viem-signer.js +116 -0
- package/dist/shared/wallet-manager/viem-signer.js.map +1 -0
- package/dist/shared/wallet-manager/wallet-manager.d.ts +96 -0
- package/dist/shared/wallet-manager/wallet-manager.d.ts.map +1 -0
- package/dist/shared/wallet-manager/wallet-manager.js +104 -0
- package/dist/shared/wallet-manager/wallet-manager.js.map +1 -0
- package/dist/solver/agent/agent-config.d.ts +62 -0
- package/dist/solver/agent/agent-config.d.ts.map +1 -0
- package/dist/solver/agent/agent-config.js +59 -0
- package/dist/solver/agent/agent-config.js.map +1 -0
- package/dist/solver/agent/index.d.ts +6 -0
- package/dist/solver/agent/index.d.ts.map +1 -0
- package/dist/solver/agent/index.js +6 -0
- package/dist/solver/agent/index.js.map +1 -0
- package/dist/solver/agent/liquidity-agent.d.ts +118 -0
- package/dist/solver/agent/liquidity-agent.d.ts.map +1 -0
- package/dist/solver/agent/liquidity-agent.js +285 -0
- package/dist/solver/agent/liquidity-agent.js.map +1 -0
- package/dist/solver/contracts/intent-settlement/index.d.ts +2 -0
- package/dist/solver/contracts/intent-settlement/index.d.ts.map +1 -0
- package/dist/solver/contracts/intent-settlement/index.js +2 -0
- package/dist/solver/contracts/intent-settlement/index.js.map +1 -0
- package/dist/solver/contracts/intent-settlement/intent-settlement.d.ts +22 -0
- package/dist/solver/contracts/intent-settlement/intent-settlement.d.ts.map +1 -0
- package/dist/solver/contracts/intent-settlement/intent-settlement.js +58 -0
- package/dist/solver/contracts/intent-settlement/intent-settlement.js.map +1 -0
- package/dist/solver/contracts/intent-settlement/viem-settlement-contract.d.ts +226 -0
- package/dist/solver/contracts/intent-settlement/viem-settlement-contract.d.ts.map +1 -0
- package/dist/solver/contracts/intent-settlement/viem-settlement-contract.js +204 -0
- package/dist/solver/contracts/intent-settlement/viem-settlement-contract.js.map +1 -0
- package/dist/solver/index.d.ts +87 -0
- package/dist/solver/index.d.ts.map +1 -0
- package/dist/solver/index.js +167 -0
- package/dist/solver/index.js.map +1 -0
- package/dist/solver/inventory/index.d.ts +7 -0
- package/dist/solver/inventory/index.d.ts.map +1 -0
- package/dist/solver/inventory/index.js +7 -0
- package/dist/solver/inventory/index.js.map +1 -0
- package/dist/solver/inventory/inventory-manager.d.ts +135 -0
- package/dist/solver/inventory/inventory-manager.d.ts.map +1 -0
- package/dist/solver/inventory/inventory-manager.js +323 -0
- package/dist/solver/inventory/inventory-manager.js.map +1 -0
- package/dist/solver/inventory/inventory-monitor.d.ts +72 -0
- package/dist/solver/inventory/inventory-monitor.d.ts.map +1 -0
- package/dist/solver/inventory/inventory-monitor.js +123 -0
- package/dist/solver/inventory/inventory-monitor.js.map +1 -0
- package/dist/solver/inventory/rebalancer.d.ts +78 -0
- package/dist/solver/inventory/rebalancer.d.ts.map +1 -0
- package/dist/solver/inventory/rebalancer.js +210 -0
- package/dist/solver/inventory/rebalancer.js.map +1 -0
- package/dist/solver/mempool/index.d.ts +8 -0
- package/dist/solver/mempool/index.d.ts.map +1 -0
- package/dist/solver/mempool/index.js +8 -0
- package/dist/solver/mempool/index.js.map +1 -0
- package/dist/solver/mempool/intent-filter.d.ts +49 -0
- package/dist/solver/mempool/intent-filter.d.ts.map +1 -0
- package/dist/solver/mempool/intent-filter.js +75 -0
- package/dist/solver/mempool/intent-filter.js.map +1 -0
- package/dist/solver/mempool/mempool-client.d.ts +105 -0
- package/dist/solver/mempool/mempool-client.d.ts.map +1 -0
- package/dist/solver/mempool/mempool-client.js +161 -0
- package/dist/solver/mempool/mempool-client.js.map +1 -0
- package/dist/solver/mempool/mempool-monitor.d.ts +71 -0
- package/dist/solver/mempool/mempool-monitor.d.ts.map +1 -0
- package/dist/solver/mempool/mempool-monitor.js +127 -0
- package/dist/solver/mempool/mempool-monitor.js.map +1 -0
- package/dist/solver/mempool/solution-submitter.d.ts +41 -0
- package/dist/solver/mempool/solution-submitter.d.ts.map +1 -0
- package/dist/solver/mempool/solution-submitter.js +71 -0
- package/dist/solver/mempool/solution-submitter.js.map +1 -0
- package/dist/solver/monitoring/alert-manager.d.ts +43 -0
- package/dist/solver/monitoring/alert-manager.d.ts.map +1 -0
- package/dist/solver/monitoring/alert-manager.js +69 -0
- package/dist/solver/monitoring/alert-manager.js.map +1 -0
- package/dist/solver/monitoring/health-checker.d.ts +53 -0
- package/dist/solver/monitoring/health-checker.d.ts.map +1 -0
- package/dist/solver/monitoring/health-checker.js +94 -0
- package/dist/solver/monitoring/health-checker.js.map +1 -0
- package/dist/solver/monitoring/index.d.ts +7 -0
- package/dist/solver/monitoring/index.d.ts.map +1 -0
- package/dist/solver/monitoring/index.js +7 -0
- package/dist/solver/monitoring/index.js.map +1 -0
- package/dist/solver/monitoring/profit-tracker.d.ts +47 -0
- package/dist/solver/monitoring/profit-tracker.d.ts.map +1 -0
- package/dist/solver/monitoring/profit-tracker.js +112 -0
- package/dist/solver/monitoring/profit-tracker.js.map +1 -0
- package/dist/solver/pricing/dynamic-pricing.d.ts +86 -0
- package/dist/solver/pricing/dynamic-pricing.d.ts.map +1 -0
- package/dist/solver/pricing/dynamic-pricing.js +189 -0
- package/dist/solver/pricing/dynamic-pricing.js.map +1 -0
- package/dist/solver/pricing/fee-calculator.d.ts +101 -0
- package/dist/solver/pricing/fee-calculator.d.ts.map +1 -0
- package/dist/solver/pricing/fee-calculator.js +149 -0
- package/dist/solver/pricing/fee-calculator.js.map +1 -0
- package/dist/solver/pricing/index.d.ts +7 -0
- package/dist/solver/pricing/index.d.ts.map +1 -0
- package/dist/solver/pricing/index.js +7 -0
- package/dist/solver/pricing/index.js.map +1 -0
- package/dist/solver/pricing/slippage-capture.d.ts +47 -0
- package/dist/solver/pricing/slippage-capture.d.ts.map +1 -0
- package/dist/solver/pricing/slippage-capture.js +63 -0
- package/dist/solver/pricing/slippage-capture.js.map +1 -0
- package/dist/solver/protocols/aggregators/lifi.d.ts +109 -0
- package/dist/solver/protocols/aggregators/lifi.d.ts.map +1 -0
- package/dist/solver/protocols/aggregators/lifi.js +110 -0
- package/dist/solver/protocols/aggregators/lifi.js.map +1 -0
- package/dist/solver/protocols/aggregators/swing.d.ts +67 -0
- package/dist/solver/protocols/aggregators/swing.d.ts.map +1 -0
- package/dist/solver/protocols/aggregators/swing.js +212 -0
- package/dist/solver/protocols/aggregators/swing.js.map +1 -0
- package/dist/solver/protocols/base-protocol.d.ts +42 -0
- package/dist/solver/protocols/base-protocol.d.ts.map +1 -0
- package/dist/solver/protocols/base-protocol.js +16 -0
- package/dist/solver/protocols/base-protocol.js.map +1 -0
- package/dist/solver/protocols/index.d.ts +10 -0
- package/dist/solver/protocols/index.d.ts.map +1 -0
- package/dist/solver/protocols/index.js +10 -0
- package/dist/solver/protocols/index.js.map +1 -0
- package/dist/solver/protocols/lending/aave.d.ts +51 -0
- package/dist/solver/protocols/lending/aave.d.ts.map +1 -0
- package/dist/solver/protocols/lending/aave.js +172 -0
- package/dist/solver/protocols/lending/aave.js.map +1 -0
- package/dist/solver/protocols/protocol-registry.d.ts +28 -0
- package/dist/solver/protocols/protocol-registry.d.ts.map +1 -0
- package/dist/solver/protocols/protocol-registry.js +40 -0
- package/dist/solver/protocols/protocol-registry.js.map +1 -0
- package/dist/solver/settlement/index.d.ts +7 -0
- package/dist/solver/settlement/index.d.ts.map +1 -0
- package/dist/solver/settlement/index.js +7 -0
- package/dist/solver/settlement/index.js.map +1 -0
- package/dist/solver/settlement/live-settlement-manager.d.ts +62 -0
- package/dist/solver/settlement/live-settlement-manager.d.ts.map +1 -0
- package/dist/solver/settlement/live-settlement-manager.js +68 -0
- package/dist/solver/settlement/live-settlement-manager.js.map +1 -0
- package/dist/solver/settlement/proof-generator.d.ts +48 -0
- package/dist/solver/settlement/proof-generator.d.ts.map +1 -0
- package/dist/solver/settlement/proof-generator.js +100 -0
- package/dist/solver/settlement/proof-generator.js.map +1 -0
- package/dist/solver/settlement/proof-verifier.d.ts +31 -0
- package/dist/solver/settlement/proof-verifier.d.ts.map +1 -0
- package/dist/solver/settlement/proof-verifier.js +46 -0
- package/dist/solver/settlement/proof-verifier.js.map +1 -0
- package/dist/solver/settlement/settlement-manager.d.ts +97 -0
- package/dist/solver/settlement/settlement-manager.d.ts.map +1 -0
- package/dist/solver/settlement/settlement-manager.js +220 -0
- package/dist/solver/settlement/settlement-manager.js.map +1 -0
- package/dist/solver/types/agent.d.ts +92 -0
- package/dist/solver/types/agent.d.ts.map +1 -0
- package/dist/solver/types/agent.js +8 -0
- package/dist/solver/types/agent.js.map +1 -0
- package/dist/solver/types/execution.d.ts +70 -0
- package/dist/solver/types/execution.d.ts.map +1 -0
- package/dist/solver/types/execution.js +7 -0
- package/dist/solver/types/execution.js.map +1 -0
- package/dist/solver/types/index.d.ts +13 -0
- package/dist/solver/types/index.d.ts.map +1 -0
- package/dist/solver/types/index.js +13 -0
- package/dist/solver/types/index.js.map +1 -0
- package/dist/solver/types/intent.d.ts +82 -0
- package/dist/solver/types/intent.d.ts.map +1 -0
- package/dist/solver/types/intent.js +33 -0
- package/dist/solver/types/intent.js.map +1 -0
- package/dist/solver/types/inventory.d.ts +83 -0
- package/dist/solver/types/inventory.d.ts.map +1 -0
- package/dist/solver/types/inventory.js +8 -0
- package/dist/solver/types/inventory.js.map +1 -0
- package/dist/solver/types/pricing.d.ts +59 -0
- package/dist/solver/types/pricing.d.ts.map +1 -0
- package/dist/solver/types/pricing.js +8 -0
- package/dist/solver/types/pricing.js.map +1 -0
- package/dist/solver/types/settlement.d.ts +98 -0
- package/dist/solver/types/settlement.d.ts.map +1 -0
- package/dist/solver/types/settlement.js +9 -0
- package/dist/solver/types/settlement.js.map +1 -0
- package/dist/types/chain.d.ts +66 -0
- package/dist/types/chain.d.ts.map +1 -0
- package/dist/types/chain.js +7 -0
- package/dist/types/chain.js.map +1 -0
- package/dist/types/common.d.ts +44 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +8 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/entities.d.ts +61 -0
- package/dist/types/entities.d.ts.map +1 -0
- package/dist/types/entities.js +2 -0
- package/dist/types/entities.js.map +1 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/intent.d.ts +70 -0
- package/dist/types/intent.d.ts.map +1 -0
- package/dist/types/intent.js +2 -0
- package/dist/types/intent.js.map +1 -0
- package/dist/types/templates.d.ts +18 -0
- package/dist/types/templates.d.ts.map +1 -0
- package/dist/types/templates.js +2 -0
- package/dist/types/templates.js.map +1 -0
- package/dist/types/token.d.ts +132 -0
- package/dist/types/token.d.ts.map +1 -0
- package/dist/types/token.js +8 -0
- package/dist/types/token.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAA+B,EAC/B,QAAa;IAEb,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,CAAC;IAExB,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,aAAa;IAE9B,gCAAgC;IAChC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,2BAA2B;IAC3B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAClE,mBAAmB,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,mBAAmB,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;QACtE,4DAA4D;QAC5D,0CAA0C;QAC1C,KAAK,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,+DAA+D;QAC/D,KAAK,GAAG,GAAG,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,mBAAmB,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IACD,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,oEAAoE;IACpE,IAAI,UAAU,CAAC,iBAAiB;QAAE,KAAK,IAAI,GAAG,CAAC;IAC/C,IAAI,UAAU,CAAC,kBAAkB;QAAE,KAAK,IAAI,IAAI,CAAC;IAEjD,sCAAsC;IACtC,IAAI,UAAU,CAAC,WAAW;QAAE,KAAK,IAAI,IAAI,CAAC;IAE1C,yCAAyC;IACzC,IAAI,UAAU,CAAC,SAAS;QAAE,KAAK,IAAI,IAAI,CAAC,CAAC,0BAA0B;IAEnE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,2CAA2C;AAC3C,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS;IACnD,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ;IACvD,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS;CAC3C,CAAC;AAEF,2CAA2C;AAC3C,MAAM,aAAa,GAA2B;IAC5C,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC7C,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;IAC5C,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IACtC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK;IACtC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;CACvC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAa,EAAE,UAAkB,EAAE,IAAa;IAC5E,MAAM,UAAU,GAAQ,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAE5C,+CAA+C;IAC/C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,kBAAkB;YAClB,4BAA4B;YAC5B,0BAA0B;YAC1B,2BAA2B;YAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,UAAU,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACnD,UAAU,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7D,CAAC;YAED,+CAA+C;YAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE,CAAC;gBACV,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;YACjC,CAAC;YACD,MAAM;QAER,KAAK,gBAAgB;YACnB,kBAAkB;YAClB,4BAA4B;YAC5B,0BAA0B;YAC1B,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,UAAU,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,CAAC;YAED,mCAAmC;YACnC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvG,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC;YAC/B,CAAC;iBAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/G,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC;YAChC,CAAC;YAED,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrG,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC;YAC5C,CAAC;YAED,2BAA2B;YAC3B,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC;YACtC,CAAC;YACD,MAAM;QAER,KAAK,cAAc;YACjB,gBAAgB;YAChB,yBAAyB;YACzB,sEAAsE;YACtE,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7D,CAAC;YAED,oEAAoE;YACpE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC3C,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CACpC,CAAC;YACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACnD,CAAC;YAED,2DAA2D;YAC3D,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1C,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAClC,CAAC;YACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAChD,UAAU,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,CAAC;YAED,MAAM;QAER,KAAK,MAAM;YACT,iBAAiB;YACjB,0BAA0B;YAC1B,4BAA4B;YAC5B,2DAA2D;YAC3D,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,UAAU,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YAED,mCAAmC;YACnC,MAAM,YAAY,GAAG,IAAI,EAAE,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAClE,IAAI,YAAY,EAAE,CAAC;gBACjB,UAAU,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,0BAA0B;gBAC1B,MAAM,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC1E,IAAI,QAAQ,EAAE,CAAC;oBACb,UAAU,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;YACrC,CAAC;YACD,MAAM;QAER,KAAK,QAAQ;YACX,mBAAmB;YACnB,0BAA0B;YAC1B,4BAA4B;YAC5B,gDAAgD;YAEhD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,UAAU,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACrD,CAAC;YAED,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YAED,wCAAwC;YACxC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAExD,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAChF,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7C,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxG,CAAC;iBAAM,CAAC;gBACN,wFAAwF;gBACxF,gDAAgD;YAClD,CAAC;YAED,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9E,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7C,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxG,CAAC;YACD,MAAM;QAER,KAAK,OAAO;YACV,kBAAkB;YAClB,oDAAoD;YACpD,qCAAqC;YACrC,oEAAoE;YACpE,oDAAoD;YACpD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,UAAU,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YAED,kCAAkC;YAClC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACnC,CAAC;iBAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvE,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACnC,CAAC;iBAAM,IACL,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5B,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC7B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC1B,CAAC;gBACD,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACnC,CAAC;YAED,4CAA4C;YAC5C,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;gBACvC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC/B,MAAM;gBACR,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC;YACtC,CAAC;YACD,MAAM;QAER;YACE,mBAAmB;YACnB,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACpD,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,SAAiB;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAExD,sDAAsD;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACjF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -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"}
|