@continuumdao/ctm-mpc-defi 0.2.13 → 0.2.16

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 (40) hide show
  1. package/dist/agent/catalog.cjs +828 -280
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +1645 -300
  4. package/dist/agent/catalog.js +823 -281
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/chains/evm/index.cjs +75 -0
  7. package/dist/chains/evm/index.cjs.map +1 -1
  8. package/dist/chains/evm/index.d.ts +31 -1
  9. package/dist/chains/evm/index.js +73 -2
  10. package/dist/chains/evm/index.js.map +1 -1
  11. package/dist/index.cjs +140 -32
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.js +138 -34
  15. package/dist/index.js.map +1 -1
  16. package/dist/protocols/evm/euler-v2/index.cjs +29 -2
  17. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  18. package/dist/protocols/evm/euler-v2/index.d.ts +23 -1
  19. package/dist/protocols/evm/euler-v2/index.js +29 -3
  20. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  21. package/dist/protocols/evm/gmx/index.cjs +42 -8
  22. package/dist/protocols/evm/gmx/index.cjs.map +1 -1
  23. package/dist/protocols/evm/gmx/index.d.ts +20 -4
  24. package/dist/protocols/evm/gmx/index.js +42 -9
  25. package/dist/protocols/evm/gmx/index.js.map +1 -1
  26. package/dist/protocols/evm/maple/index.cjs +9 -1
  27. package/dist/protocols/evm/maple/index.cjs.map +1 -1
  28. package/dist/protocols/evm/maple/index.d.ts +2 -1
  29. package/dist/protocols/evm/maple/index.js +9 -1
  30. package/dist/protocols/evm/maple/index.js.map +1 -1
  31. package/dist/protocols/evm/morpho/index.cjs +56 -0
  32. package/dist/protocols/evm/morpho/index.cjs.map +1 -1
  33. package/dist/protocols/evm/morpho/index.d.ts +28 -1
  34. package/dist/protocols/evm/morpho/index.js +56 -1
  35. package/dist/protocols/evm/morpho/index.js.map +1 -1
  36. package/dist/protocols/evm/uniswap-v4/index.cjs +98 -26
  37. package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
  38. package/dist/protocols/evm/uniswap-v4/index.js +99 -27
  39. package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
  40. package/package.json +1 -1
@@ -616,13 +616,287 @@ var jsonObjectSchema = z.record(z.unknown());
616
616
  function parseMultisignBuilderOutput(data) {
617
617
  return multisignOutputSchema.parse(data);
618
618
  }
619
+
620
+ // src/agent/schemas/chainPreprocess.ts
621
+ function preprocessObject(raw) {
622
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return null;
623
+ return { ...raw };
624
+ }
625
+ function firstDefined(...values) {
626
+ for (const v of values) {
627
+ if (v === void 0 || v === null) continue;
628
+ if (typeof v === "string" && !v.trim()) continue;
629
+ return v;
630
+ }
631
+ return void 0;
632
+ }
633
+ function aliasField(o, target, ...sources) {
634
+ if (firstDefined(o[target]) != null) return;
635
+ const val = firstDefined(...sources.map((k) => o[k]));
636
+ if (val != null) o[target] = val;
637
+ }
638
+ function derivePurposeIfMissing(o, build) {
639
+ const purposeText = String(o.purposeText ?? o.purpose ?? "").trim();
640
+ if (purposeText) {
641
+ o.purposeText = purposeText;
642
+ return;
643
+ }
644
+ const derived = build(o);
645
+ if (derived) o.purposeText = derived;
646
+ }
647
+ function isLongToDirection(o) {
648
+ if (firstDefined(o.direction) != null) return;
649
+ const raw = o.isLong;
650
+ if (typeof raw === "boolean") {
651
+ o.direction = raw ? "long" : "short";
652
+ return;
653
+ }
654
+ if (typeof raw === "string") {
655
+ const t = raw.trim().toLowerCase();
656
+ if (t === "true" || t === "long") o.direction = "long";
657
+ else if (t === "false" || t === "short") o.direction = "short";
658
+ }
659
+ }
660
+ function preprocessGmxGmBuildInput(raw) {
661
+ const o = preprocessObject(raw);
662
+ if (!o) return raw;
663
+ aliasField(o, "marketSymbol", "symbol", "market", "gmSymbol");
664
+ derivePurposeIfMissing(o, (x) => {
665
+ const sym = String(x.marketSymbol ?? x.symbol ?? "").trim();
666
+ const amt = String(x.collateralAmountHuman ?? x.gmAmountHuman ?? "").trim();
667
+ if (sym && amt) return `GMX GM ${sym} ${amt}`;
668
+ return void 0;
669
+ });
670
+ return o;
671
+ }
672
+ function preprocessGmxDecreaseInput(raw) {
673
+ const o = preprocessObject(raw);
674
+ if (!o) return raw;
675
+ aliasField(o, "symbol", "symbol", "indexName", "marketSymbol");
676
+ aliasField(o, "sizeUsdHuman", "sizeUsdHuman", "sizeUsd", "sizeInUsd");
677
+ aliasField(o, "collateralToken", "collateralToken", "collateralSymbol");
678
+ isLongToDirection(o);
679
+ derivePurposeIfMissing(o, (x) => {
680
+ const sym = String(x.symbol ?? "").trim();
681
+ const dir = String(x.direction ?? "").trim();
682
+ const size = String(x.sizeUsdHuman ?? "").trim();
683
+ if (sym && dir && size) return `GMX decrease ${dir} ${sym} ${size} USD`;
684
+ return void 0;
685
+ });
686
+ return o;
687
+ }
688
+ function preprocessGmxIncreaseInput(raw) {
689
+ const o = preprocessObject(raw);
690
+ if (!o) return raw;
691
+ aliasField(o, "symbol", "symbol", "indexName", "marketSymbol");
692
+ derivePurposeIfMissing(o, (x) => {
693
+ const sym = String(x.symbol ?? "").trim();
694
+ const dir = String(x.direction ?? "").trim();
695
+ const size = String(x.sizeUsdHuman ?? "").trim();
696
+ if (sym && dir && size) return `GMX ${dir} ${sym} ${size} USD`;
697
+ return void 0;
698
+ });
699
+ return o;
700
+ }
701
+ function preprocessHyperliquidCoinInput(raw) {
702
+ const o = preprocessObject(raw);
703
+ if (!o) return raw;
704
+ aliasField(o, "coin", "coin", "name", "resolvedCoin", "symbol");
705
+ return o;
706
+ }
707
+ function preprocessHyperliquidLimitOrderInput(raw) {
708
+ const o = preprocessHyperliquidCoinInput(raw);
709
+ if (!preprocessObject(o)) return raw;
710
+ aliasField(o, "limitPxHuman", "limitPxHuman", "limitPx", "markPx");
711
+ aliasField(o, "szHuman", "szHuman", "sz", "size");
712
+ derivePurposeIfMissing(o, (x) => {
713
+ const coin = String(x.coin ?? "").trim();
714
+ const side = x.isBuy === true || x.isBuy === "true" ? "buy" : "sell";
715
+ const sz = String(x.szHuman ?? "").trim();
716
+ if (coin && sz) return `HL limit ${side} ${coin} ${sz}`;
717
+ return void 0;
718
+ });
719
+ return o;
720
+ }
721
+ function preprocessHyperliquidCloseInput(raw) {
722
+ const o = preprocessHyperliquidCoinInput(raw);
723
+ if (!preprocessObject(o)) return raw;
724
+ aliasField(o, "szHuman", "szHuman", "sz", "size");
725
+ aliasField(o, "limitPxHuman", "limitPxHuman", "limitPx", "markPx");
726
+ derivePurposeIfMissing(o, (x) => {
727
+ const coin = String(x.coin ?? "").trim();
728
+ const sz = String(x.szHuman ?? "").trim();
729
+ if (coin && sz) return `HL close ${coin} ${sz}`;
730
+ return void 0;
731
+ });
732
+ return o;
733
+ }
734
+ function preprocessHyperliquidVaultDepositInput(raw) {
735
+ const o = preprocessObject(raw);
736
+ if (!o) return raw;
737
+ derivePurposeIfMissing(o, (x) => {
738
+ const name = String(x.vaultName ?? "").trim();
739
+ const usd = String(x.usdHuman ?? "").trim();
740
+ if (name && usd) return `HL vault deposit ${usd} into ${name}`;
741
+ if (usd) return `HL vault deposit ${usd}`;
742
+ return void 0;
743
+ });
744
+ return o;
745
+ }
746
+ function preprocessHyperliquidVaultWithdrawInput(raw) {
747
+ const o = preprocessObject(raw);
748
+ if (!o) return raw;
749
+ aliasField(o, "usdHuman", "usdHuman", "equity");
750
+ derivePurposeIfMissing(o, (x) => {
751
+ const usd = String(x.usdHuman ?? "").trim();
752
+ if (usd) return `HL vault withdraw ${usd}`;
753
+ return void 0;
754
+ });
755
+ return o;
756
+ }
757
+ function preprocessHyperliquidUndelegateInput(raw) {
758
+ const o = preprocessObject(raw);
759
+ if (!o) return raw;
760
+ aliasField(o, "hypeHuman", "hypeHuman", "amount");
761
+ return o;
762
+ }
763
+ function preprocessUniswapLpCreateInput(raw) {
764
+ const o = preprocessObject(raw);
765
+ if (!o) return raw;
766
+ aliasField(o, "poolPreset", "poolPreset", "presetId");
767
+ const pool = o.existingPool;
768
+ if (pool && typeof pool === "object" && !Array.isArray(pool)) {
769
+ const p = pool;
770
+ aliasField(p, "token0Address", "token0Address", "token0");
771
+ aliasField(p, "token1Address", "token1Address", "token1");
772
+ aliasField(p, "poolReference", "poolReference", "poolId");
773
+ }
774
+ return o;
775
+ }
776
+ function preprocessUniswapLpNftInput(raw) {
777
+ const o = preprocessObject(raw);
778
+ if (!o) return raw;
779
+ aliasField(o, "nftTokenId", "nftTokenId", "tokenId");
780
+ return o;
781
+ }
782
+ function preprocessUniswapLpCollectInput(raw) {
783
+ const o = preprocessObject(raw);
784
+ if (!o) return raw;
785
+ aliasField(o, "tokenId", "tokenId", "nftTokenId");
786
+ return o;
787
+ }
788
+ function tokenAddressFromQuoteSnapshot(quote, side) {
789
+ const inner = quote.quote;
790
+ if (!inner || typeof inner !== "object" || Array.isArray(inner)) return void 0;
791
+ const row = inner[side];
792
+ const token = row?.token;
793
+ return typeof token === "string" && token.trim() ? token.trim() : void 0;
794
+ }
795
+ function preprocessUniswapBuildSwapInput(raw) {
796
+ const o = preprocessObject(raw);
797
+ if (!o) return raw;
798
+ aliasField(o, "fullQuoteSnapshot", "fullQuoteSnapshot", "fullQuoteFromPermit", "quote");
799
+ const createResp = firstDefined(o.createSwapResponse, o.create_swap_response, o.createSwap);
800
+ if (createResp != null) o.createSwapResponse = createResp;
801
+ if (!firstDefined(o.swap) && createResp && typeof createResp === "object" && !Array.isArray(createResp)) {
802
+ const nested = createResp.swap;
803
+ if (nested != null) o.swap = nested;
804
+ }
805
+ const quote = o.fullQuoteSnapshot && typeof o.fullQuoteSnapshot === "object" && !Array.isArray(o.fullQuoteSnapshot) ? o.fullQuoteSnapshot : null;
806
+ if (quote && !firstDefined(o.tokenIn)) {
807
+ const tokenIn = tokenAddressFromQuoteSnapshot(quote, "input");
808
+ if (tokenIn) o.tokenIn = tokenIn;
809
+ }
810
+ derivePurposeIfMissing(o, () => "Uniswap V4 swap");
811
+ return o;
812
+ }
813
+ function preprocessUniswapBuildLpInput(raw) {
814
+ const o = preprocessUniswapLpNftInput(raw);
815
+ if (!preprocessObject(o)) return raw;
816
+ derivePurposeIfMissing(o, () => "Uniswap V4 liquidity");
817
+ return o;
818
+ }
819
+ function preprocessCurveBuildSwapInput(raw) {
820
+ const o = preprocessObject(raw);
821
+ if (!o) return raw;
822
+ const quote = o.quoteSnapshot && typeof o.quoteSnapshot === "object" && !Array.isArray(o.quoteSnapshot) ? o.quoteSnapshot : o;
823
+ aliasField(o, "tokenIn", "tokenIn", "tokenInRouterId", "tokenInAddress");
824
+ aliasField(o, "tokenOut", "tokenOut", "tokenOutRouterId", "tokenOutAddress");
825
+ aliasField(o, "amountHuman", "amountHuman", "inputAmount");
826
+ if (!firstDefined(o.tokenIn) && firstDefined(quote.tokenInRouterId)) {
827
+ o.tokenIn = quote.tokenInRouterId;
828
+ }
829
+ if (!firstDefined(o.tokenOut) && firstDefined(quote.tokenOutRouterId)) {
830
+ o.tokenOut = quote.tokenOutRouterId;
831
+ }
832
+ if (!firstDefined(o.amountHuman) && firstDefined(quote.inputAmount)) {
833
+ o.amountHuman = quote.inputAmount;
834
+ }
835
+ derivePurposeIfMissing(o, (x) => {
836
+ const amt = String(x.amountHuman ?? "").trim();
837
+ if (amt) return `Curve swap ${amt}`;
838
+ return void 0;
839
+ });
840
+ return o;
841
+ }
842
+ function preprocessMorphoBlueCollateralDepositInput(raw) {
843
+ const o = preprocessObject(raw);
844
+ if (!o) return raw;
845
+ aliasField(o, "collateralToken", "collateralToken", "collateralTokenAddress");
846
+ aliasField(o, "marketId", "marketId", "marketID");
847
+ derivePurposeIfMissing(o, (x) => {
848
+ const amt = String(x.amountHuman ?? "").trim();
849
+ const label = String(x.marketLabel ?? "").trim();
850
+ if (amt && label) return `Morpho Blue collateral ${amt} for ${label}`;
851
+ if (amt) return `Morpho Blue collateral deposit ${amt}`;
852
+ return void 0;
853
+ });
854
+ return o;
855
+ }
856
+ function preprocessMorphoBlueBorrowRepayInput(raw) {
857
+ const o = preprocessObject(raw);
858
+ if (!o) return raw;
859
+ aliasField(o, "loanToken", "loanToken", "loanTokenAddress");
860
+ return o;
861
+ }
862
+ function preprocessEulerV2IsolatedLendInput(raw) {
863
+ const o = preprocessObject(raw);
864
+ if (!o) return raw;
865
+ aliasField(o, "vault", "vault", "evaultAddress");
866
+ aliasField(o, "underlyingAddress", "underlyingAddress", "underlying");
867
+ aliasField(o, "marketName", "marketName", "vaultName");
868
+ derivePurposeIfMissing(o, (x) => {
869
+ const amt = String(x.assetAmountHuman ?? x.amountHuman ?? "").trim();
870
+ const label = String(x.marketName ?? x.vaultName ?? "").trim();
871
+ if (amt && label) return `Euler lend ${amt} into ${label}`;
872
+ if (amt) return `Euler vault deposit ${amt}`;
873
+ return void 0;
874
+ });
875
+ return o;
876
+ }
877
+ function preprocessAaveMultisignInput(action) {
878
+ return (raw) => {
879
+ const o = preprocessObject(raw);
880
+ if (!o) return raw;
881
+ derivePurposeIfMissing(o, (x) => {
882
+ const amt = String(x.amountHuman ?? "").trim();
883
+ const asset = String(x.underlying ?? "").trim();
884
+ if (amt && asset) return `Aave ${action} ${amt} ${asset}`;
885
+ if (amt) return `Aave ${action} ${amt}`;
886
+ return void 0;
887
+ });
888
+ return o;
889
+ };
890
+ }
891
+
892
+ // src/agent/schemas/uniswapV4.ts
619
893
  var uniswapQuoteTradeTypeSchema = z.enum(["EXACT_INPUT", "EXACT_OUTPUT"]);
620
894
  var mcpUniswapV4QuoteInputSchema = z.object({
621
895
  type: uniswapQuoteTradeTypeSchema.describe("EXACT_INPUT or EXACT_OUTPUT"),
622
896
  amount: z.string().min(1).describe("Amount in token-in base units (wei string for ERC-20)"),
623
897
  tokenIn: z.string().min(1).describe("Input token; 0x0 for native ETH"),
624
898
  tokenOut: z.string().min(1).describe("Output token address"),
625
- chainId: z.union([z.number().int().positive(), z.string().min(1)]).describe("tokenInChainId / same-chain default"),
899
+ chainId: agentEvmChainIdSchema.describe("tokenInChainId / same-chain default"),
626
900
  uniswapApiKey: z.string().min(1).describe("Uniswap Trade API x-api-key"),
627
901
  swapper: evmAddressSchema.optional().describe("MPC executor; omit if keyGen + managementNodeUrl provided"),
628
902
  slippage: z.union([z.number(), z.string()]).optional().describe("Slippage percent; omit for API auto slippage"),
@@ -630,7 +904,7 @@ var mcpUniswapV4QuoteInputSchema = z.object({
630
904
  managementNodeUrl: z.string().min(1).optional().describe("MPC node base URL; required with keyGen when swapper is omitted"),
631
905
  tokenInChainId: z.union([z.number(), z.string()]).optional(),
632
906
  tokenOutChainId: z.union([z.number(), z.string()]).optional(),
633
- permit2Disabled: z.boolean().optional(),
907
+ permit2Disabled: agentOptionalBooleanSchema(),
634
908
  baseUrl: z.string().optional(),
635
909
  universalRouterVersion: z.string().optional()
636
910
  });
@@ -652,18 +926,21 @@ var mcpUniswapV4CreateSwapOutputSchema = z.object({
652
926
  }).passthrough().describe("{ swap: TransactionRequest, requestId?, gasFee? }");
653
927
  var swapTxRequestSchema = jsonObjectSchema.describe("swap field from create_swap response (to, data, value)");
654
928
  var mcpUniswapV4BuildSwapMultisignInputSchema = withMultisignKeySourceRefine(
655
- evmMultisignCommonInputSchema.extend({
656
- tokenIn: evmAddressSchema.describe("Token in; 0x0 for native ETH"),
657
- swap: swapTxRequestSchema,
658
- createSwapResponse: z.object({
929
+ z.preprocess(
930
+ preprocessUniswapBuildSwapInput,
931
+ evmMultisignCommonInputSchema.extend({
932
+ tokenIn: evmAddressSchema.describe("Token in; 0x0 for native ETH"),
659
933
  swap: swapTxRequestSchema,
660
- requestId: z.string().optional(),
661
- gasFee: z.string().optional()
662
- }).passthrough().describe("Full create_swap response"),
663
- fullQuoteSnapshot: jsonObjectSchema.describe("Quote JSON used for the swap"),
664
- swapDeadlineUnix: z.number().describe("Same deadline passed to create_swap"),
665
- slippagePercent: z.number().optional().describe("Extra approve headroom for EXACT_OUTPUT")
666
- })
934
+ createSwapResponse: z.object({
935
+ swap: swapTxRequestSchema,
936
+ requestId: z.string().optional(),
937
+ gasFee: z.string().optional()
938
+ }).passthrough().describe("Full create_swap response"),
939
+ fullQuoteSnapshot: jsonObjectSchema.describe("Quote JSON used for the swap"),
940
+ swapDeadlineUnix: z.number().describe("Same deadline passed to create_swap"),
941
+ slippagePercent: z.number().optional().describe("Extra approve headroom for EXACT_OUTPUT")
942
+ })
943
+ )
667
944
  );
668
945
  var lpExistingPoolSchema = z.object({
669
946
  token0Address: evmAddressSchema,
@@ -693,22 +970,26 @@ var lpTickBoundsSchema = z.object({
693
970
  var lpCommonApiInputSchema = z.object({
694
971
  uniswapApiKey: z.string().min(1),
695
972
  walletAddress: evmAddressSchema.optional(),
696
- chainId: z.union([z.number().int().positive(), z.string().min(1)]),
973
+ chainId: agentEvmChainIdSchema,
697
974
  slippageTolerance: z.number().optional(),
698
- simulateTransaction: z.boolean().optional(),
975
+ simulateTransaction: agentOptionalBooleanSchema(),
699
976
  baseUrl: z.string().optional(),
700
977
  keyGen: z.string().optional(),
701
978
  managementNodeUrl: z.string().optional()
702
979
  });
703
- var mcpUniswapV4LpCreatePositionInputSchema = lpCommonApiInputSchema.extend({
704
- existingPool: lpExistingPoolSchema.optional(),
705
- newPool: lpNewPoolSchema.optional(),
706
- independentToken: lpIndependentTokenSchema,
707
- priceBounds: lpPriceBoundsSchema.optional(),
708
- tickBounds: lpTickBoundsSchema.optional()
709
- });
980
+ var mcpUniswapV4LpCreatePositionInputSchema = z.preprocess(
981
+ preprocessUniswapLpCreateInput,
982
+ lpCommonApiInputSchema.extend({
983
+ poolPreset: z.string().optional().describe("presetId from ctm_uniswap_v4_list_lp_pools \u2014 server resolves existingPool"),
984
+ existingPool: lpExistingPoolSchema.optional(),
985
+ newPool: lpNewPoolSchema.optional(),
986
+ independentToken: lpIndependentTokenSchema,
987
+ priceBounds: lpPriceBoundsSchema.optional(),
988
+ tickBounds: lpTickBoundsSchema.optional()
989
+ })
990
+ );
710
991
  var mcpUniswapV4LpListPoolsInputSchema = z.object({
711
- chainId: z.union([z.number().int().positive(), z.string().min(1)]),
992
+ chainId: agentEvmChainIdSchema,
712
993
  pair: z.string().optional().describe("Optional filter, e.g. eth-usdc or ETH/USDC")
713
994
  });
714
995
  var mcpUniswapV4LpListPoolsOutputSchema = z.object({
@@ -735,26 +1016,35 @@ var mcpUniswapV4LpListPoolsOutputSchema = z.object({
735
1016
  notes: z.string()
736
1017
  });
737
1018
  var mcpUniswapV4LpCreatePositionOutputSchema = jsonObjectSchema;
738
- var mcpUniswapV4LpIncreaseInputSchema = lpCommonApiInputSchema.extend({
739
- token0Address: evmAddressSchema,
740
- token1Address: evmAddressSchema,
741
- nftTokenId: z.union([z.string(), z.number()]),
742
- independentToken: lpIndependentTokenSchema
743
- });
1019
+ var mcpUniswapV4LpIncreaseInputSchema = z.preprocess(
1020
+ preprocessUniswapLpNftInput,
1021
+ lpCommonApiInputSchema.extend({
1022
+ token0Address: evmAddressSchema,
1023
+ token1Address: evmAddressSchema,
1024
+ nftTokenId: z.union([z.string(), z.number()]).describe("tokenId from lp_list_positions"),
1025
+ independentToken: lpIndependentTokenSchema
1026
+ })
1027
+ );
744
1028
  var mcpUniswapV4LpIncreaseOutputSchema = jsonObjectSchema;
745
- var mcpUniswapV4LpDecreaseInputSchema = lpCommonApiInputSchema.extend({
746
- token0Address: evmAddressSchema,
747
- token1Address: evmAddressSchema,
748
- nftTokenId: z.union([z.string(), z.number()]),
749
- liquidityPercentageToDecrease: z.number().int().min(1).max(100)
750
- });
1029
+ var mcpUniswapV4LpDecreaseInputSchema = z.preprocess(
1030
+ preprocessUniswapLpNftInput,
1031
+ lpCommonApiInputSchema.extend({
1032
+ token0Address: evmAddressSchema,
1033
+ token1Address: evmAddressSchema,
1034
+ nftTokenId: z.union([z.string(), z.number()]).describe("tokenId from lp_list_positions"),
1035
+ liquidityPercentageToDecrease: z.number().int().min(1).max(100)
1036
+ })
1037
+ );
751
1038
  var mcpUniswapV4LpDecreaseOutputSchema = jsonObjectSchema;
752
- var mcpUniswapV4LpClaimInputSchema = lpCommonApiInputSchema.extend({
753
- tokenId: z.union([z.string(), z.number()])
754
- });
1039
+ var mcpUniswapV4LpClaimInputSchema = z.preprocess(
1040
+ preprocessUniswapLpCollectInput,
1041
+ lpCommonApiInputSchema.extend({
1042
+ tokenId: z.union([z.string(), z.number()]).describe("tokenId from lp_list_positions")
1043
+ })
1044
+ );
755
1045
  var mcpUniswapV4LpClaimOutputSchema = jsonObjectSchema;
756
1046
  var mcpUniswapV4LpListPositionsInputSchema = z.object({
757
- chainId: z.union([z.number().int().positive(), z.string().min(1)]),
1047
+ chainId: agentEvmChainIdSchema,
758
1048
  keyGenId: z.string().min(1).optional(),
759
1049
  walletAddress: evmAddressSchema.optional(),
760
1050
  positionManagerAddress: evmAddressSchema.optional()
@@ -772,7 +1062,7 @@ var mcpUniswapV4LpListPositionsOutputSchema = z.object({
772
1062
  )
773
1063
  });
774
1064
  var mcpUniswapV4RegisterPositionNftInputSchema = z.object({
775
- chainId: z.union([z.number().int().positive(), z.string().min(1)]),
1065
+ chainId: agentEvmChainIdSchema,
776
1066
  tokenId: z.union([z.string(), z.number()]),
777
1067
  keyGenId: z.string().min(1).optional(),
778
1068
  positionManagerAddress: evmAddressSchema.optional(),
@@ -786,7 +1076,7 @@ var mcpUniswapV4RegisterPositionNftOutputSchema = z.object({
786
1076
  positionManager: evmAddressSchema
787
1077
  });
788
1078
  var mcpUniswapV4RegisterPositionFromMintTxInputSchema = z.object({
789
- chainId: z.union([z.number().int().positive(), z.string().min(1)]),
1079
+ chainId: agentEvmChainIdSchema,
790
1080
  txHash: z.string().min(1),
791
1081
  keyGenId: z.string().min(1).optional(),
792
1082
  walletAddress: evmAddressSchema.optional(),
@@ -805,28 +1095,37 @@ var lpBuildCommonSchema = {
805
1095
  poolReference: z.string().optional()
806
1096
  };
807
1097
  var mcpUniswapV4BuildMintLiquidityMultisignInputSchema = withMultisignKeySourceRefine(
808
- evmMultisignCommonInputSchema.extend(lpBuildCommonSchema)
1098
+ z.preprocess(preprocessUniswapBuildLpInput, evmMultisignCommonInputSchema.extend(lpBuildCommonSchema))
809
1099
  );
810
1100
  var mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema = withMultisignKeySourceRefine(
811
- evmMultisignCommonInputSchema.extend({
812
- ...lpBuildCommonSchema,
813
- nftTokenId: z.union([z.string(), z.number()])
814
- })
1101
+ z.preprocess(
1102
+ preprocessUniswapBuildLpInput,
1103
+ evmMultisignCommonInputSchema.extend({
1104
+ ...lpBuildCommonSchema,
1105
+ nftTokenId: z.union([z.string(), z.number()]).describe("tokenId from lp_list_positions")
1106
+ })
1107
+ )
815
1108
  );
816
1109
  var mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema = withMultisignKeySourceRefine(
817
- evmMultisignCommonInputSchema.extend({
818
- ...lpBuildCommonSchema,
819
- nftTokenId: z.union([z.string(), z.number()])
820
- })
1110
+ z.preprocess(
1111
+ preprocessUniswapBuildLpInput,
1112
+ evmMultisignCommonInputSchema.extend({
1113
+ ...lpBuildCommonSchema,
1114
+ nftTokenId: z.union([z.string(), z.number()])
1115
+ })
1116
+ )
821
1117
  );
822
1118
  var mcpUniswapV4BuildCollectFeesMultisignInputSchema = withMultisignKeySourceRefine(
823
- evmMultisignCommonInputSchema.extend({
824
- ...lpBuildCommonSchema,
825
- nftTokenId: z.union([z.string(), z.number()])
826
- })
1119
+ z.preprocess(
1120
+ preprocessUniswapBuildLpInput,
1121
+ evmMultisignCommonInputSchema.extend({
1122
+ ...lpBuildCommonSchema,
1123
+ nftTokenId: z.union([z.string(), z.number()])
1124
+ })
1125
+ )
827
1126
  );
828
1127
  var mcpCurveDaoQuoteInputSchema = z.object({
829
- chainId: z.number().int().positive().describe("EVM chain id (rpcUrl resolved from get_chain_registry rpcGateway)"),
1128
+ chainId: agentEvmChainIdSchema.describe("EVM chain id (rpcUrl resolved from get_chain_registry rpcGateway)"),
830
1129
  rpcUrl: z.string().min(1).optional().describe("JSON-RPC URL; continuum-mcp-server injects from chain registry \u2014 do not pass a public RPC URL"),
831
1130
  tokenIn: z.string().min(1).describe("Input token address, or 0xeeee\u2026 / 0x0 / eth for native"),
832
1131
  tokenOut: z.string().min(1).describe("Output token address or 0xeeee\u2026 native placeholder"),
@@ -837,13 +1136,112 @@ var mcpCurveDaoQuoteOutputSchema = jsonObjectSchema.describe(
837
1136
  "Curve router quote: { inputAmount, output, route, priceImpactPercent?, tokenInRouterId, tokenOutRouterId }"
838
1137
  );
839
1138
  var mcpCurveDaoBuildSwapMultisignInputSchema = withMultisignKeySourceRefine(
840
- evmMultisignCommonInputSchema.extend({
841
- tokenIn: evmAddressSchema.describe("ERC-20 sold (native in uses WETH path in UI)"),
842
- tokenOut: z.string().min(1).describe("Output token or 0xeeee\u2026 native placeholder"),
843
- amountHuman: z.string().min(1).describe("Human-readable amount of tokenIn"),
844
- slippagePercent: z.number().gt(0).lt(100).describe("Slippage 0\u2013100 exclusive")
845
- })
1139
+ z.preprocess(
1140
+ preprocessCurveBuildSwapInput,
1141
+ evmMultisignCommonInputSchema.extend({
1142
+ tokenIn: evmAddressSchema.describe("ERC-20 sold (native in uses WETH path in UI)"),
1143
+ tokenOut: z.string().min(1).describe("Output token or 0xeeee\u2026 native placeholder"),
1144
+ amountHuman: z.string().min(1).describe("Human-readable amount of tokenIn"),
1145
+ slippagePercent: z.number().gt(0).lt(100).describe("Slippage 0\u2013100 exclusive"),
1146
+ quoteSnapshot: jsonObjectSchema.optional().describe("Optional quote row from ctm_curve_dao_quote \u2014 aliases tokenIn/tokenOut/amountHuman")
1147
+ })
1148
+ )
846
1149
  );
1150
+ var morphoExposureRowSchema = z.object({
1151
+ label: z.string(),
1152
+ allocatedUsdLabel: z.string(),
1153
+ allocationPercentLabel: z.string()
1154
+ });
1155
+ function preprocessMorphoVaultDepositInput(raw) {
1156
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return raw;
1157
+ const o = { ...raw };
1158
+ const vaultAddr = o.vaultAddress ?? o.vault;
1159
+ if (vaultAddr != null) {
1160
+ o.vaultAddress = vaultAddr;
1161
+ o.vault = vaultAddr;
1162
+ }
1163
+ const underlyingAddr = o.underlyingAddress ?? o.underlying;
1164
+ if (underlyingAddr != null) {
1165
+ o.underlyingAddress = underlyingAddr;
1166
+ o.underlying = underlyingAddr;
1167
+ }
1168
+ const purposeText = String(o.purposeText ?? o.purpose ?? "").trim();
1169
+ if (!purposeText) {
1170
+ const amt = String(o.amountHuman ?? "").trim();
1171
+ const label = String(o.vaultName ?? o.vaultSymbol ?? "").trim();
1172
+ if (amt && label) o.purposeText = `Deposit ${amt} into ${label}`;
1173
+ else if (amt) o.purposeText = `Morpho vault deposit ${amt}`;
1174
+ }
1175
+ return o;
1176
+ }
1177
+ function preprocessMorphoVaultWithdrawInput(raw) {
1178
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return raw;
1179
+ const o = { ...raw };
1180
+ const vaultAddr = o.vaultAddress ?? o.vault;
1181
+ if (vaultAddr != null) {
1182
+ o.vaultAddress = vaultAddr;
1183
+ o.vault = vaultAddr;
1184
+ }
1185
+ const purposeText = String(o.purposeText ?? o.purpose ?? "").trim();
1186
+ if (!purposeText) {
1187
+ const amt = String(o.amountHuman ?? "").trim();
1188
+ const label = String(o.vaultName ?? o.vaultSymbol ?? "").trim();
1189
+ if (amt && label) o.purposeText = `Withdraw ${amt} from ${label}`;
1190
+ else if (amt) o.purposeText = `Morpho vault withdraw ${amt}`;
1191
+ }
1192
+ return o;
1193
+ }
1194
+ var mcpMorphoFetchEarnVaultsInputSchema = z.object({
1195
+ chainId: agentEvmChainIdSchema,
1196
+ underlying: z.string().trim().min(1).optional().describe("Deposit asset symbol (e.g. USDC) or ERC-20 address. Omit to search all listed vaults on the chain."),
1197
+ query: z.string().trim().min(1).optional().describe("Case-insensitive filter on vault name, symbol, address, or underlying symbol (e.g. Steakhouse, bbqUSDC)."),
1198
+ limit: z.number().int().min(1).max(200).optional().describe("Max rows (default 50).")
1199
+ });
1200
+ var mcpMorphoFetchEarnVaultsOutputSchema = z.object({
1201
+ vaults: z.array(
1202
+ z.object({
1203
+ vaultAddress: z.string(),
1204
+ vaultName: z.string(),
1205
+ vaultSymbol: z.string(),
1206
+ underlyingAddress: z.string(),
1207
+ underlyingSymbol: z.string(),
1208
+ apy: z.string(),
1209
+ netApy: z.string(),
1210
+ netApy7d: z.string(),
1211
+ netApy30d: z.string(),
1212
+ netApy90d: z.string(),
1213
+ performanceFee: z.string(),
1214
+ managementFee: z.string().nullable(),
1215
+ totalDepositsUsd: z.string(),
1216
+ liquidityUsd: z.string(),
1217
+ exposure: z.array(morphoExposureRowSchema)
1218
+ })
1219
+ )
1220
+ });
1221
+ var mcpMorphoFetchBlueMarketsInputSchema = z.object({
1222
+ chainId: agentEvmChainIdSchema,
1223
+ collateral: z.string().trim().min(1).optional().describe("Collateral asset symbol or address (e.g. WETH, cbETH)."),
1224
+ loan: z.string().trim().min(1).optional().describe("Loan asset symbol or address (e.g. USDC)."),
1225
+ query: z.string().trim().min(1).optional().describe("Filter on market label, symbols, or marketId."),
1226
+ limit: z.number().int().min(1).max(200).optional()
1227
+ });
1228
+ var mcpMorphoFetchBlueMarketsOutputSchema = z.object({
1229
+ markets: z.array(
1230
+ z.object({
1231
+ marketId: z.string().describe("Pass to build_blue_* multisign tools"),
1232
+ marketLabel: z.string(),
1233
+ morphoBlueAddress: z.string(),
1234
+ collateralTokenAddress: z.string().describe("Copy as collateralToken for supply collateral"),
1235
+ collateralTokenSymbol: z.string(),
1236
+ collateralTokenDecimals: z.number().int(),
1237
+ loanTokenAddress: z.string().describe("Copy as loanToken for borrow/repay"),
1238
+ loanTokenSymbol: z.string(),
1239
+ loanTokenDecimals: z.number().int(),
1240
+ borrowApyLabel: z.string(),
1241
+ supplyApyLabel: z.string()
1242
+ })
1243
+ )
1244
+ });
847
1245
  var mcpServerCommonInputSchema = z.object({
848
1246
  keyGenId: z.string().min(1).describe("KeyGen id from fetch_key_gen_result / node preferred KeyGen"),
849
1247
  chainId: z.number().int().positive().describe("EVM chain id; RPC and gas config resolved from chain registry"),
@@ -940,48 +1338,79 @@ var mcpSkySusdsRedeemInputSchema = mcpMultisignInput({
940
1338
  sharesHuman: z.string().min(1)
941
1339
  });
942
1340
  var mcpAaveV4MarketIdSchema = z.string().min(1).optional().describe("UI market segment: main (Plus), core, or bluechip (Prime). Default main.");
943
- var mcpAaveV4HealthPreviewSchema = {
944
- skipHealthPreview: z.boolean().optional().describe("Skip Aave v4 health-factor preview before withdraw/borrow/repay (not recommended)."),
945
- acknowledgeHealthRisk: z.boolean().optional().describe(
1341
+ function mcpAaveV4MultisignInput(fields, action) {
1342
+ return withMultisignKeySourceRefine(
1343
+ z.preprocess(preprocessAaveMultisignInput(action), evmMultisignCommonInputSchema.extend(fields))
1344
+ );
1345
+ }
1346
+ var mcpAaveV4HealthPreviewFields = {
1347
+ skipHealthPreview: agentOptionalBooleanSchema().describe(
1348
+ "Skip Aave v4 health-factor preview before withdraw/borrow/repay (not recommended)."
1349
+ ),
1350
+ acknowledgeHealthRisk: agentOptionalBooleanSchema().describe(
946
1351
  "Required true when preview returns a confirm-level health risk (withdraw/borrow/repay)."
947
1352
  )
948
1353
  };
949
- var mcpAaveV4DepositInputSchema = mcpMultisignInput({
950
- spoke: evmAddressSchema.optional().describe("Omit \u2014 continuum-mcp-server resolves spoke from Aave v4 API."),
951
- underlying: evmAddressSchema.describe(
952
- "Asset to supply. Native ETH: 0x0 or wrapped native with isNativeIn true."
953
- ),
954
- amountHuman: z.string().min(1),
955
- marketId: mcpAaveV4MarketIdSchema,
956
- isNativeIn: z.boolean().optional().describe("Wrap native to wrapped native before supply (e.g. ETH \u2192 WETH)."),
957
- enableAsCollateralAfterSupply: z.boolean().optional().describe("Append setUsingAsCollateral after supply in the same batch.")
958
- });
959
- var mcpAaveV4WithdrawInputSchema = mcpMultisignInput({
960
- spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
961
- underlying: evmAddressSchema.describe("Supplied asset to withdraw."),
962
- amountHuman: z.string().min(1),
963
- marketId: mcpAaveV4MarketIdSchema,
964
- ...mcpAaveV4HealthPreviewSchema
965
- });
966
- var mcpAaveV4BorrowInputSchema = mcpMultisignInput({
967
- spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
968
- underlying: evmAddressSchema.describe("Debt asset to borrow (e.g. USDC), not collateral."),
969
- amountHuman: z.string().min(1),
970
- marketId: mcpAaveV4MarketIdSchema,
971
- collateralUnderlying: evmAddressSchema.optional().describe("Collateral token already supplied; helps pick hub when debt exists on multiple hubs."),
972
- ...mcpAaveV4HealthPreviewSchema
973
- });
974
- var mcpAaveV4RepayInputSchema = mcpMultisignInput({
975
- spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
976
- underlying: evmAddressSchema.describe("Debt token to repay."),
977
- amountHuman: z.string().min(1),
978
- marketId: mcpAaveV4MarketIdSchema,
979
- ...mcpAaveV4HealthPreviewSchema
980
- });
981
- var mcpEulerV2IsolatedLendInputSchema = mcpMultisignInput({
982
- vault: evmAddressSchema,
983
- assetAmountHuman: z.string().min(1)
984
- });
1354
+ var mcpAaveV4DepositInputSchema = mcpAaveV4MultisignInput(
1355
+ {
1356
+ spoke: evmAddressSchema.optional().describe("Omit \u2014 continuum-mcp-server resolves spoke from Aave v4 API."),
1357
+ underlying: evmAddressSchema.describe(
1358
+ "Asset to supply. Native ETH: 0x0 or wrapped native with isNativeIn true."
1359
+ ),
1360
+ amountHuman: z.string().min(1),
1361
+ marketId: mcpAaveV4MarketIdSchema,
1362
+ isNativeIn: agentOptionalBooleanSchema().describe(
1363
+ "Wrap native to wrapped native before supply (e.g. ETH \u2192 WETH)."
1364
+ ),
1365
+ enableAsCollateralAfterSupply: agentOptionalBooleanSchema().describe(
1366
+ "Append setUsingAsCollateral after supply in the same batch."
1367
+ )
1368
+ },
1369
+ "deposit"
1370
+ );
1371
+ var mcpAaveV4WithdrawInputSchema = mcpAaveV4MultisignInput(
1372
+ {
1373
+ spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
1374
+ underlying: evmAddressSchema.describe("Supplied asset to withdraw."),
1375
+ amountHuman: z.string().min(1),
1376
+ marketId: mcpAaveV4MarketIdSchema,
1377
+ ...mcpAaveV4HealthPreviewFields
1378
+ },
1379
+ "withdraw"
1380
+ );
1381
+ var mcpAaveV4BorrowInputSchema = mcpAaveV4MultisignInput(
1382
+ {
1383
+ spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
1384
+ underlying: evmAddressSchema.describe("Debt asset to borrow (e.g. USDC), not collateral."),
1385
+ amountHuman: z.string().min(1),
1386
+ marketId: mcpAaveV4MarketIdSchema,
1387
+ collateralUnderlying: evmAddressSchema.optional().describe("Collateral token already supplied; helps pick hub when debt exists on multiple hubs."),
1388
+ ...mcpAaveV4HealthPreviewFields
1389
+ },
1390
+ "borrow"
1391
+ );
1392
+ var mcpAaveV4RepayInputSchema = mcpAaveV4MultisignInput(
1393
+ {
1394
+ spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
1395
+ underlying: evmAddressSchema.describe("Debt token to repay."),
1396
+ amountHuman: z.string().min(1),
1397
+ marketId: mcpAaveV4MarketIdSchema,
1398
+ ...mcpAaveV4HealthPreviewFields
1399
+ },
1400
+ "repay"
1401
+ );
1402
+ var mcpEulerV2IsolatedLendInputSchema = withMultisignKeySourceRefine(
1403
+ z.preprocess(
1404
+ preprocessEulerV2IsolatedLendInput,
1405
+ evmMultisignCommonInputSchema.extend({
1406
+ vault: evmAddressSchema.describe("evaultAddress from ctm_euler_v2_fetch_lend_vaults"),
1407
+ assetAmountHuman: z.string().min(1),
1408
+ underlyingAddress: evmAddressSchema.optional().describe("underlyingAddress from fetch row \u2014 server resolves if omitted"),
1409
+ marketName: z.string().optional().describe("marketName from fetch row (purposeText)"),
1410
+ isNativeIn: agentOptionalBooleanSchema()
1411
+ })
1412
+ )
1413
+ );
985
1414
  var mcpEulerV2IsolatedBorrowInputSchema = mcpMultisignInput({
986
1415
  vault: evmAddressSchema,
987
1416
  collateralAsset: evmAddressSchema,
@@ -1007,32 +1436,68 @@ var mcpEulerV2CollateralWithdrawInputSchema = mcpMultisignInput({
1007
1436
  collateralAsset: evmAddressSchema,
1008
1437
  amountHuman: z.string().min(1)
1009
1438
  });
1010
- var mcpMorphoVaultDepositInputSchema = mcpMultisignInput({
1011
- vault: evmAddressSchema,
1012
- underlying: evmAddressSchema.describe("Underlying asset; use wrapped native with isNativeIn for ETH."),
1013
- amountHuman: z.string().min(1),
1014
- isNativeIn: agentOptionalBooleanSchema()
1015
- });
1016
- var mcpMorphoVaultWithdrawInputSchema = mcpMultisignInput({
1017
- vault: evmAddressSchema,
1018
- amountHuman: z.string().min(1)
1019
- });
1020
- var mcpMorphoBlueCollateralDepositInputSchema = mcpMultisignInput({
1021
- marketId: z.string().min(1).describe("Morpho Blue marketId from API."),
1022
- collateralToken: evmAddressSchema,
1023
- amountHuman: z.string().min(1),
1024
- isNativeIn: agentOptionalBooleanSchema()
1025
- });
1026
- var mcpMorphoBlueBorrowInputSchema = mcpMultisignInput({
1027
- marketId: z.string().min(1),
1028
- loanToken: evmAddressSchema,
1029
- amountHuman: z.string().min(1)
1030
- });
1031
- var mcpMorphoBlueRepayInputSchema = mcpMultisignInput({
1032
- marketId: z.string().min(1),
1033
- loanToken: evmAddressSchema,
1034
- amountHuman: z.string().min(1)
1035
- });
1439
+ var mcpMorphoVaultDepositInputSchema = withMultisignKeySourceRefine(
1440
+ z.preprocess(
1441
+ preprocessMorphoVaultDepositInput,
1442
+ evmMultisignCommonInputSchema.extend({
1443
+ vaultAddress: evmAddressSchema.describe(
1444
+ "Vault contract address \u2014 copy vaultAddress from ctm_morpho_fetch_earn_vaults row."
1445
+ ),
1446
+ underlyingAddress: evmAddressSchema.describe(
1447
+ "Deposit asset address \u2014 copy underlyingAddress from the same fetch row."
1448
+ ),
1449
+ amountHuman: z.string().min(1).describe('Human-readable deposit amount (e.g. "1000" USDC).'),
1450
+ vaultName: z.string().optional().describe("Optional vaultName from fetch row (fills purposeText when omitted)."),
1451
+ vaultSymbol: z.string().optional().describe("Optional vaultSymbol from fetch row."),
1452
+ isNativeIn: agentOptionalBooleanSchema()
1453
+ })
1454
+ )
1455
+ );
1456
+ var mcpMorphoVaultWithdrawInputSchema = withMultisignKeySourceRefine(
1457
+ z.preprocess(
1458
+ preprocessMorphoVaultWithdrawInput,
1459
+ evmMultisignCommonInputSchema.extend({
1460
+ vaultAddress: evmAddressSchema.describe(
1461
+ "Vault contract address \u2014 copy vaultAddress from ctm_morpho_fetch_earn_vaults or positions."
1462
+ ),
1463
+ amountHuman: z.string().min(1),
1464
+ vaultName: z.string().optional(),
1465
+ vaultSymbol: z.string().optional()
1466
+ })
1467
+ )
1468
+ );
1469
+ var mcpMorphoBlueCollateralDepositInputSchema = withMultisignKeySourceRefine(
1470
+ z.preprocess(
1471
+ preprocessMorphoBlueCollateralDepositInput,
1472
+ evmMultisignCommonInputSchema.extend({
1473
+ marketId: z.string().min(1).describe("marketId from ctm_morpho_fetch_blue_markets"),
1474
+ collateralToken: evmAddressSchema.describe("collateralTokenAddress from fetch row"),
1475
+ amountHuman: z.string().min(1),
1476
+ marketLabel: z.string().optional(),
1477
+ isNativeIn: agentOptionalBooleanSchema()
1478
+ })
1479
+ )
1480
+ );
1481
+ var mcpMorphoBlueBorrowInputSchema = withMultisignKeySourceRefine(
1482
+ z.preprocess(
1483
+ preprocessMorphoBlueBorrowRepayInput,
1484
+ evmMultisignCommonInputSchema.extend({
1485
+ marketId: z.string().min(1),
1486
+ loanToken: evmAddressSchema.describe("loanTokenAddress from ctm_morpho_fetch_blue_markets"),
1487
+ amountHuman: z.string().min(1)
1488
+ })
1489
+ )
1490
+ );
1491
+ var mcpMorphoBlueRepayInputSchema = withMultisignKeySourceRefine(
1492
+ z.preprocess(
1493
+ preprocessMorphoBlueBorrowRepayInput,
1494
+ evmMultisignCommonInputSchema.extend({
1495
+ marketId: z.string().min(1),
1496
+ loanToken: evmAddressSchema.describe("loanTokenAddress from fetch row"),
1497
+ amountHuman: z.string().min(1)
1498
+ })
1499
+ )
1500
+ );
1036
1501
  var mcpMorphoBlueCollateralWithdrawInputSchema = mcpMultisignInput({
1037
1502
  marketId: z.string().min(1),
1038
1503
  amountHuman: z.string().min(1),
@@ -1043,46 +1508,39 @@ var mcpMorphoMerklClaimInputSchema = mcpMultisignInput({
1043
1508
  distributor: evmAddressSchema.optional(),
1044
1509
  valueWei: z.string().optional()
1045
1510
  });
1046
- var morphoExposureRowSchema = z.object({
1047
- label: z.string(),
1048
- allocatedUsdLabel: z.string(),
1049
- allocationPercentLabel: z.string()
1050
- });
1051
- var mcpMorphoFetchEarnVaultsInputSchema = z.object({
1052
- chainId: z.number().int().positive(),
1053
- underlying: z.string().trim().min(1).optional().describe("Deposit asset symbol (e.g. USDC) or ERC-20 address. Omit to search all listed vaults on the chain."),
1054
- query: z.string().trim().min(1).optional().describe("Case-insensitive filter on vault name, symbol, address, or underlying symbol (e.g. Steakhouse, bbqUSDC)."),
1055
- limit: z.number().int().min(1).max(200).optional().describe("Max rows (default 50).")
1511
+ var mcpEulerV2FetchLendVaultsInputSchema = z.object({
1512
+ chainId: agentEvmChainIdSchema,
1513
+ underlyingAddress: evmAddressSchema.describe(
1514
+ "Underlying asset address from get_defi_protocol_supported_tokens."
1515
+ ),
1516
+ limit: z.number().int().min(1).max(100).optional().describe("Max vault rows (default 30).")
1056
1517
  });
1057
- var mcpMorphoFetchEarnVaultsOutputSchema = z.object({
1518
+ var mcpEulerV2FetchLendVaultsOutputSchema = z.object({
1058
1519
  vaults: z.array(
1059
1520
  z.object({
1060
- vaultAddress: z.string(),
1061
- vaultName: z.string(),
1062
- vaultSymbol: z.string(),
1521
+ evaultAddress: z.string().describe("Copy as vault / evaultAddress for isolated lend multisign"),
1522
+ marketName: z.string(),
1063
1523
  underlyingAddress: z.string(),
1064
- underlyingSymbol: z.string(),
1065
- apy: z.string(),
1066
- netApy: z.string(),
1067
- netApy7d: z.string(),
1068
- netApy30d: z.string(),
1069
- netApy90d: z.string(),
1070
- performanceFee: z.string(),
1071
- managementFee: z.string().nullable(),
1072
- totalDepositsUsd: z.string(),
1073
- liquidityUsd: z.string(),
1074
- exposure: z.array(morphoExposureRowSchema)
1524
+ underlyingDecimals: z.number().int(),
1525
+ supplyApyPercentLabel: z.string(),
1526
+ borrowApyPercentLabel: z.string(),
1527
+ availableLiquidityFormatted: z.string(),
1528
+ totalSupplyFormatted: z.string(),
1529
+ evcAddress: z.string().nullable()
1075
1530
  })
1076
1531
  )
1077
1532
  });
1078
- function mcpGmxMultisignInput(fields) {
1079
- return withMultisignKeySourceRefine(evmMultisignCommonInputSchema.extend(fields));
1533
+ function mcpGmxMultisignInput(fields, preprocess) {
1534
+ const inner = evmMultisignCommonInputSchema.extend(fields);
1535
+ const shaped = preprocess ? z.preprocess(preprocess, inner) : inner;
1536
+ return withMultisignKeySourceRefine(shaped);
1080
1537
  }
1081
1538
  var gmxDirectionSchema = z.enum(["long", "short"]);
1082
1539
  var gmxOrderTypeSchema = z.enum(["market", "limit"]);
1083
- var mcpGmxFetchMarketsInputSchema = z.object({
1084
- chainId: z.number().int().positive()
1540
+ var gmxFetchChainInputSchema = z.object({
1541
+ chainId: agentEvmChainIdSchema
1085
1542
  });
1543
+ var mcpGmxFetchMarketsInputSchema = gmxFetchChainInputSchema;
1086
1544
  var mcpGmxFetchMarketsOutputSchema = z.object({
1087
1545
  markets: z.array(
1088
1546
  z.object({
@@ -1093,53 +1551,95 @@ var mcpGmxFetchMarketsOutputSchema = z.object({
1093
1551
  )
1094
1552
  });
1095
1553
  var mcpGmxFetchPositionsInputSchema = z.object({
1096
- chainId: z.number().int().positive(),
1554
+ chainId: agentEvmChainIdSchema,
1097
1555
  executorAddress: evmAddressSchema
1098
1556
  });
1099
1557
  var mcpGmxFetchPositionsOutputSchema = z.object({
1100
- positions: z.array(z.record(z.unknown()))
1558
+ positions: z.array(
1559
+ z.object({
1560
+ key: z.string(),
1561
+ symbol: z.string().nullable().describe("GMX market symbol \u2014 pass to build_decrease as symbol"),
1562
+ indexName: z.string(),
1563
+ isLong: z.boolean(),
1564
+ direction: z.enum(["long", "short"]).describe("Derived from isLong \u2014 pass to build_decrease"),
1565
+ sizeUsd: z.string().nullable().describe("Copy as sizeUsdHuman for partial close"),
1566
+ collateralUsd: z.string().nullable(),
1567
+ collateralSymbol: z.string().nullable().describe("Copy as collateralToken"),
1568
+ entryPriceUsd: z.string().nullable(),
1569
+ markPriceUsd: z.string().nullable(),
1570
+ liquidationPriceUsd: z.string().nullable(),
1571
+ leverageLabel: z.string().nullable(),
1572
+ pnlUsd: z.string().nullable()
1573
+ })
1574
+ )
1101
1575
  });
1102
- var mcpGmxIncreaseInputSchema = mcpGmxMultisignInput({
1103
- symbol: z.string().min(1),
1104
- direction: gmxDirectionSchema,
1105
- orderType: gmxOrderTypeSchema,
1106
- sizeUsdHuman: z.string().min(1),
1107
- collateralToken: z.string().min(1),
1108
- collateralAmountHuman: z.string().min(1),
1109
- triggerPriceUsdHuman: z.string().optional(),
1110
- slippageBps: z.number().int().nonnegative().optional(),
1111
- executionFeeBufferBps: z.number().int().nonnegative().optional()
1576
+ var mcpGmxFetchOrdersInputSchema = z.object({
1577
+ chainId: agentEvmChainIdSchema,
1578
+ executorAddress: evmAddressSchema
1112
1579
  });
1113
- var mcpGmxDecreaseInputSchema = mcpGmxMultisignInput({
1114
- symbol: z.string().min(1),
1115
- direction: gmxDirectionSchema,
1116
- orderType: gmxOrderTypeSchema,
1117
- sizeUsdHuman: z.string().min(1),
1118
- collateralToken: z.string().min(1),
1119
- receiveToken: z.string().optional(),
1120
- triggerPriceUsdHuman: z.string().optional(),
1121
- keepLeverage: z.boolean().optional(),
1122
- slippageBps: z.number().int().nonnegative().optional(),
1123
- executionFeeBufferBps: z.number().int().nonnegative().optional()
1580
+ var mcpGmxFetchOrdersOutputSchema = z.object({
1581
+ orders: z.array(
1582
+ z.object({
1583
+ orderId: z.string().describe("Order key \u2014 pass to build_cancel_multisign as orderId"),
1584
+ isLong: z.boolean().optional(),
1585
+ sizeDeltaUsd: z.string().nullable().optional(),
1586
+ triggerPrice: z.string().nullable().optional()
1587
+ })
1588
+ )
1124
1589
  });
1590
+ var mcpGmxIncreaseInputSchema = mcpGmxMultisignInput(
1591
+ {
1592
+ symbol: z.string().min(1).describe("Market symbol from ctm_gmx_fetch_markets"),
1593
+ direction: gmxDirectionSchema,
1594
+ orderType: gmxOrderTypeSchema,
1595
+ sizeUsdHuman: z.string().min(1),
1596
+ collateralToken: z.string().min(1),
1597
+ collateralAmountHuman: z.string().min(1),
1598
+ triggerPriceUsdHuman: z.string().optional(),
1599
+ slippageBps: z.number().int().nonnegative().optional(),
1600
+ executionFeeBufferBps: z.number().int().nonnegative().optional()
1601
+ },
1602
+ preprocessGmxIncreaseInput
1603
+ );
1604
+ var mcpGmxDecreaseInputSchema = mcpGmxMultisignInput(
1605
+ {
1606
+ symbol: z.string().min(1).describe("symbol from ctm_gmx_fetch_positions or fetch_markets"),
1607
+ direction: gmxDirectionSchema.describe("direction from position row or isLong"),
1608
+ orderType: gmxOrderTypeSchema,
1609
+ sizeUsdHuman: z.string().min(1).describe("sizeUsd from position row"),
1610
+ collateralToken: z.string().min(1).describe("collateralSymbol from position row"),
1611
+ receiveToken: z.string().optional(),
1612
+ triggerPriceUsdHuman: z.string().optional(),
1613
+ keepLeverage: agentOptionalBooleanSchema(),
1614
+ slippageBps: z.number().int().nonnegative().optional(),
1615
+ executionFeeBufferBps: z.number().int().nonnegative().optional()
1616
+ },
1617
+ preprocessGmxDecreaseInput
1618
+ );
1125
1619
  var mcpGmxCancelInputSchema = mcpGmxMultisignInput({
1126
- orderId: z.string().min(1)
1127
- });
1128
- var mcpGmxGmDepositInputSchema = mcpGmxMultisignInput({
1129
- marketSymbol: z.string().min(1),
1130
- collateralToken: z.string().min(1),
1131
- collateralAmountHuman: z.string().min(1),
1132
- executionFeeBufferBps: z.number().int().nonnegative().optional(),
1133
- isNativeIn: z.boolean().optional(),
1134
- nativeWrapped: evmAddressSchema.optional()
1135
- });
1136
- var mcpGmxGmWithdrawInputSchema = mcpGmxMultisignInput({
1137
- marketSymbol: z.string().min(1),
1138
- gmAmountHuman: z.string().min(1),
1139
- gmDecimals: z.number().int().nonnegative().optional(),
1140
- executionFeeBufferBps: z.number().int().nonnegative().optional(),
1141
- isNativeOut: z.boolean().optional()
1620
+ orderId: z.string().min(1).describe("orderId from ctm_gmx_fetch_orders")
1142
1621
  });
1622
+ var mcpGmxGmDepositInputSchema = mcpGmxMultisignInput(
1623
+ {
1624
+ marketSymbol: z.string().min(1).describe("symbol from ctm_gmx_fetch_gm_markets"),
1625
+ collateralToken: z.string().min(1).describe("longTokenSymbol or shortTokenSymbol from GM market row"),
1626
+ collateralAmountHuman: z.string().min(1),
1627
+ executionFeeBufferBps: z.number().int().nonnegative().optional(),
1628
+ isNativeIn: agentOptionalBooleanSchema(),
1629
+ nativeWrapped: evmAddressSchema.optional()
1630
+ },
1631
+ preprocessGmxGmBuildInput
1632
+ );
1633
+ var mcpGmxGmWithdrawInputSchema = mcpGmxMultisignInput(
1634
+ {
1635
+ marketSymbol: z.string().min(1).describe("symbol from ctm_gmx_fetch_gm_markets"),
1636
+ gmAmountHuman: z.string().min(1),
1637
+ gmDecimals: z.number().int().nonnegative().optional(),
1638
+ executionFeeBufferBps: z.number().int().nonnegative().optional(),
1639
+ isNativeOut: agentOptionalBooleanSchema()
1640
+ },
1641
+ preprocessGmxGmBuildInput
1642
+ );
1143
1643
  var mcpGmxStakeGmxInputSchema = mcpGmxMultisignInput({
1144
1644
  amountHuman: z.string().min(1),
1145
1645
  gmxDecimals: z.number().int().nonnegative().optional()
@@ -1148,9 +1648,7 @@ var mcpGmxUnstakeGmxInputSchema = mcpGmxMultisignInput({
1148
1648
  amountHuman: z.string().min(1),
1149
1649
  gmxDecimals: z.number().int().nonnegative().optional()
1150
1650
  });
1151
- var mcpGmxFetchGmMarketsInputSchema = z.object({
1152
- chainId: z.number().int().positive()
1153
- });
1651
+ var mcpGmxFetchGmMarketsInputSchema = gmxFetchChainInputSchema;
1154
1652
  var mcpGmxGmMarketApyRowSchema = z.object({
1155
1653
  symbol: z.string(),
1156
1654
  marketTokenAddress: z.string(),
@@ -1164,9 +1662,7 @@ var mcpGmxGmMarketApyRowSchema = z.object({
1164
1662
  var mcpGmxFetchGmMarketsOutputSchema = z.object({
1165
1663
  markets: z.array(mcpGmxGmMarketApyRowSchema)
1166
1664
  });
1167
- var mcpGmxFetchGmApyInputSchema = z.object({
1168
- chainId: z.number().int().positive()
1169
- });
1665
+ var mcpGmxFetchGmApyInputSchema = gmxFetchChainInputSchema;
1170
1666
  var mcpGmxFetchGmApyOutputSchema = z.object({
1171
1667
  markets: z.array(
1172
1668
  z.object({
@@ -1182,7 +1678,7 @@ var mcpGmxFetchGmApyOutputSchema = z.object({
1182
1678
  )
1183
1679
  });
1184
1680
  var mcpGmxFetchStakingPowerInputSchema = z.object({
1185
- chainId: z.number().int().positive(),
1681
+ chainId: agentEvmChainIdSchema,
1186
1682
  executorAddress: evmAddressSchema
1187
1683
  });
1188
1684
  var mcpGmxFetchStakingPowerOutputSchema = z.object({
@@ -1198,7 +1694,7 @@ var gmxOhlcvCandleSchema = z.object({
1198
1694
  close: z.string()
1199
1695
  });
1200
1696
  var mcpGmxFetchMarketPricesInputSchema = z.object({
1201
- chainId: z.number().int().positive(),
1697
+ chainId: agentEvmChainIdSchema,
1202
1698
  symbol: z.string().min(1),
1203
1699
  collateralSymbol: z.string().min(1)
1204
1700
  });
@@ -1212,7 +1708,7 @@ var mcpGmxFetchMarketPricesOutputSchema = z.object({
1212
1708
  fetchedAtMs: z.number()
1213
1709
  });
1214
1710
  var mcpGmxFetchOhlcvInputSchema = z.object({
1215
- chainId: z.number().int().positive(),
1711
+ chainId: agentEvmChainIdSchema,
1216
1712
  symbol: z.string().min(1),
1217
1713
  timeframe: gmxOhlcvTimeframeSchema.optional(),
1218
1714
  limit: z.number().int().positive().max(500).optional(),
@@ -1223,8 +1719,10 @@ var mcpGmxFetchOhlcvOutputSchema = z.object({
1223
1719
  timeframe: gmxOhlcvTimeframeSchema,
1224
1720
  candles: z.array(gmxOhlcvCandleSchema)
1225
1721
  });
1226
- function mcpHyperliquidMultisignInput(fields) {
1227
- return withMultisignKeySourceRefine(evmMultisignCommonInputSchema.extend(fields));
1722
+ function mcpHyperliquidMultisignInput(fields, preprocess) {
1723
+ const inner = evmMultisignCommonInputSchema.extend(fields);
1724
+ const shaped = preprocess ? z.preprocess(preprocess, inner) : inner;
1725
+ return withMultisignKeySourceRefine(shaped);
1228
1726
  }
1229
1727
  var hyperliquidTifSchema = z.enum(["alo", "gtc", "ioc"]);
1230
1728
  var hyperliquidOhlcvIntervalSchema = z.enum([
@@ -1243,11 +1741,14 @@ var hyperliquidOhlcvIntervalSchema = z.enum([
1243
1741
  "1w",
1244
1742
  "1M"
1245
1743
  ]);
1744
+ var hyperliquidFetchChainInputSchema = z.object({
1745
+ chainId: agentEvmChainIdSchema
1746
+ });
1246
1747
  var hyperliquidPositionRowSchema = z.object({
1247
1748
  key: z.string(),
1248
1749
  coin: z.string(),
1249
1750
  isLong: z.boolean(),
1250
- size: z.string().nullable(),
1751
+ size: z.string().nullable().describe("Copy as szHuman for build_close_multisign"),
1251
1752
  entryPx: z.string().nullable(),
1252
1753
  positionValueUsd: z.string().nullable(),
1253
1754
  unrealizedPnlUsd: z.string().nullable(),
@@ -1268,14 +1769,13 @@ var hyperliquidAccountSummarySchema = z.object({
1268
1769
  totalMarginUsedUsd: z.string().nullable(),
1269
1770
  withdrawableUsd: z.string().nullable()
1270
1771
  });
1271
- var mcpHyperliquidFetchMarketsInputSchema = z.object({
1272
- chainId: z.number().int().positive(),
1772
+ var mcpHyperliquidFetchMarketsInputSchema = hyperliquidFetchChainInputSchema.extend({
1273
1773
  dex: z.string().optional()
1274
1774
  });
1275
1775
  var mcpHyperliquidFetchMarketsOutputSchema = z.object({
1276
1776
  markets: z.array(
1277
1777
  z.object({
1278
- name: z.string(),
1778
+ name: z.string().describe("Perp coin name \u2014 alias for build limit order coin"),
1279
1779
  asset: z.number(),
1280
1780
  szDecimals: z.number(),
1281
1781
  maxLeverage: z.number(),
@@ -1290,8 +1790,7 @@ var mcpHyperliquidFetchMarketsOutputSchema = z.object({
1290
1790
  })
1291
1791
  )
1292
1792
  });
1293
- var mcpHyperliquidSearchMarketsInputSchema = z.object({
1294
- chainId: z.number().int().positive(),
1793
+ var mcpHyperliquidSearchMarketsInputSchema = hyperliquidFetchChainInputSchema.extend({
1295
1794
  query: z.string().min(1),
1296
1795
  dex: z.string().optional(),
1297
1796
  limit: z.number().int().positive().max(50).optional()
@@ -1314,8 +1813,7 @@ var mcpHyperliquidSearchMarketsOutputSchema = z.object({
1314
1813
  })
1315
1814
  )
1316
1815
  });
1317
- var mcpHyperliquidFetchOpenContextInputSchema = z.object({
1318
- chainId: z.number().int().positive(),
1816
+ var mcpHyperliquidFetchOpenContextInputSchema = hyperliquidFetchChainInputSchema.extend({
1319
1817
  executorAddress: evmAddressSchema,
1320
1818
  coin: z.string().min(1),
1321
1819
  dex: z.string().optional()
@@ -1326,16 +1824,14 @@ var mcpHyperliquidFetchOpenContextOutputSchema = z.object({
1326
1824
  activeAsset: hyperliquidActiveAssetSchema
1327
1825
  })
1328
1826
  });
1329
- var mcpHyperliquidFetchPositionsInputSchema = z.object({
1330
- chainId: z.number().int().positive(),
1827
+ var mcpHyperliquidFetchPositionsInputSchema = hyperliquidFetchChainInputSchema.extend({
1331
1828
  executorAddress: evmAddressSchema,
1332
1829
  dex: z.string().optional()
1333
1830
  });
1334
1831
  var mcpHyperliquidFetchPositionsOutputSchema = z.object({
1335
1832
  positions: z.array(hyperliquidPositionRowSchema)
1336
1833
  });
1337
- var mcpHyperliquidFetchOpenOrdersInputSchema = z.object({
1338
- chainId: z.number().int().positive(),
1834
+ var mcpHyperliquidFetchOpenOrdersInputSchema = hyperliquidFetchChainInputSchema.extend({
1339
1835
  executorAddress: evmAddressSchema,
1340
1836
  dex: z.string().optional()
1341
1837
  });
@@ -1346,18 +1842,16 @@ var mcpHyperliquidFetchOpenOrdersOutputSchema = z.object({
1346
1842
  side: z.string(),
1347
1843
  limitPx: z.string(),
1348
1844
  sz: z.string(),
1349
- oid: z.number(),
1845
+ oid: z.number().describe("Pass to build_cancel_multisign as oid"),
1350
1846
  timestamp: z.number(),
1351
1847
  reduceOnly: z.boolean().optional()
1352
1848
  })
1353
1849
  )
1354
1850
  });
1355
- var mcpHyperliquidFetchMarketSnapshotInputSchema = z.object({
1356
- chainId: z.number().int().positive(),
1851
+ var mcpHyperliquidFetchMarketSnapshotInputSchema = hyperliquidFetchChainInputSchema.extend({
1357
1852
  coin: z.string().min(1),
1358
1853
  interval: hyperliquidOhlcvIntervalSchema.optional(),
1359
1854
  dex: z.string().optional(),
1360
- /** Recent OHLCV bars to return (default 48, max 200). Live price is always current. */
1361
1855
  candleLimit: z.number().int().positive().max(200).optional()
1362
1856
  });
1363
1857
  var hyperliquidOhlcvCandleSchema = z.object({
@@ -1388,21 +1882,16 @@ var mcpHyperliquidFetchMarketSnapshotOutputSchema = z.object({
1388
1882
  candles: z.array(hyperliquidOhlcvCandleSchema),
1389
1883
  candleCount: z.number()
1390
1884
  }),
1391
- resolvedCoin: z.string(),
1885
+ resolvedCoin: z.string().describe("Canonical coin \u2014 alias for build coin"),
1392
1886
  dex: z.string().nullable()
1393
1887
  });
1394
- var mcpHyperliquidFetchOhlcvInputSchema = z.object({
1395
- chainId: z.number().int().positive(),
1888
+ var mcpHyperliquidFetchOhlcvInputSchema = hyperliquidFetchChainInputSchema.extend({
1396
1889
  coin: z.string().min(1),
1397
1890
  interval: hyperliquidOhlcvIntervalSchema.optional(),
1398
1891
  dex: z.string().optional(),
1399
- /** Calendar-day lookback ending now (e.g. 7 = last week). Preferred for agent requests. */
1400
1892
  lookbackDays: z.number().positive().max(90).optional(),
1401
- /** Hour lookback ending now. Alternative to lookbackDays. */
1402
1893
  lookbackHours: z.number().positive().max(90 * 24).optional(),
1403
- /** Explicit range start (ms since epoch). Use with endTimeMs. */
1404
1894
  startTimeMs: z.number().int().positive().optional(),
1405
- /** Explicit range end (ms since epoch). Defaults to now. */
1406
1895
  endTimeMs: z.number().int().positive().optional()
1407
1896
  });
1408
1897
  var mcpHyperliquidFetchOhlcvOutputSchema = z.object({
@@ -1421,8 +1910,7 @@ var mcpHyperliquidFetchOhlcvOutputSchema = z.object({
1421
1910
  resolvedCoin: z.string(),
1422
1911
  dex: z.string().nullable()
1423
1912
  });
1424
- var mcpHyperliquidFetchUsdClassBalancesInputSchema = z.object({
1425
- chainId: z.number().int().positive(),
1913
+ var mcpHyperliquidFetchUsdClassBalancesInputSchema = hyperliquidFetchChainInputSchema.extend({
1426
1914
  executorAddress: evmAddressSchema
1427
1915
  });
1428
1916
  var mcpHyperliquidFetchUsdClassBalancesOutputSchema = z.object({
@@ -1431,34 +1919,31 @@ var mcpHyperliquidFetchUsdClassBalancesOutputSchema = z.object({
1431
1919
  perpWithdrawable: z.string()
1432
1920
  })
1433
1921
  });
1434
- var mcpHyperliquidFetchVaultsInputSchema = z.object({
1435
- chainId: z.number().int().positive(),
1922
+ var mcpHyperliquidFetchVaultsInputSchema = hyperliquidFetchChainInputSchema.extend({
1436
1923
  executorAddress: evmAddressSchema.optional()
1437
1924
  });
1438
1925
  var mcpHyperliquidFetchVaultsOutputSchema = z.object({
1439
1926
  vaults: z.array(
1440
1927
  z.object({
1441
1928
  vaultAddress: z.string(),
1442
- name: z.string(),
1929
+ name: z.string().describe("Optional vaultName for purposeText on deposit"),
1443
1930
  apr: z.number().nullable(),
1444
1931
  tvlUsd: z.string().nullable()
1445
1932
  })
1446
1933
  )
1447
1934
  });
1448
- var mcpHyperliquidFetchUserVaultEquitiesInputSchema = z.object({
1449
- chainId: z.number().int().positive(),
1935
+ var mcpHyperliquidFetchUserVaultEquitiesInputSchema = hyperliquidFetchChainInputSchema.extend({
1450
1936
  executorAddress: evmAddressSchema
1451
1937
  });
1452
1938
  var mcpHyperliquidFetchUserVaultEquitiesOutputSchema = z.object({
1453
1939
  rows: z.array(
1454
1940
  z.object({
1455
1941
  vaultAddress: z.string(),
1456
- equity: z.string()
1942
+ equity: z.string().describe("Copy as usdHuman for build_vault_withdraw_multisign")
1457
1943
  })
1458
1944
  )
1459
1945
  });
1460
- var mcpHyperliquidFetchStakingSummaryInputSchema = z.object({
1461
- chainId: z.number().int().positive(),
1946
+ var mcpHyperliquidFetchStakingSummaryInputSchema = hyperliquidFetchChainInputSchema.extend({
1462
1947
  executorAddress: evmAddressSchema
1463
1948
  });
1464
1949
  var mcpHyperliquidFetchStakingSummaryOutputSchema = z.object({
@@ -1467,53 +1952,68 @@ var mcpHyperliquidFetchStakingSummaryOutputSchema = z.object({
1467
1952
  undelegated: z.string()
1468
1953
  })
1469
1954
  });
1470
- var mcpHyperliquidFetchDelegationsInputSchema = z.object({
1471
- chainId: z.number().int().positive(),
1955
+ var mcpHyperliquidFetchDelegationsInputSchema = hyperliquidFetchChainInputSchema.extend({
1472
1956
  executorAddress: evmAddressSchema
1473
1957
  });
1474
1958
  var mcpHyperliquidFetchDelegationsOutputSchema = z.object({
1475
1959
  delegations: z.array(
1476
1960
  z.object({
1477
1961
  validator: z.string(),
1478
- amount: z.string()
1962
+ amount: z.string().describe("Copy as hypeHuman for build_undelegate_multisign")
1479
1963
  })
1480
1964
  )
1481
1965
  });
1482
- var mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidMultisignInput({
1483
- coin: z.string().min(1),
1484
- isBuy: z.boolean(),
1485
- limitPxHuman: z.string().min(1),
1486
- szHuman: z.string().min(1),
1487
- marketKind: z.enum(["perp", "spot"]).optional(),
1488
- tif: hyperliquidTifSchema.optional(),
1489
- dex: z.string().optional()
1490
- });
1491
- var mcpHyperliquidCloseInputSchema = mcpHyperliquidMultisignInput({
1492
- coin: z.string().min(1),
1493
- isLong: z.boolean(),
1494
- limitPxHuman: z.string().min(1),
1495
- szHuman: z.string().min(1),
1496
- dex: z.string().optional(),
1497
- tif: hyperliquidTifSchema.optional()
1498
- });
1499
- var mcpHyperliquidCancelInputSchema = mcpHyperliquidMultisignInput({
1500
- coin: z.string().min(1),
1501
- oid: z.number().int().positive(),
1502
- marketKind: z.enum(["perp", "spot"]).optional(),
1503
- dex: z.string().optional()
1504
- });
1966
+ var mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidMultisignInput(
1967
+ {
1968
+ coin: z.string().min(1).describe("coin from fetch_markets (name) or search_markets"),
1969
+ isBuy: agentBooleanSchema(),
1970
+ limitPxHuman: z.string().min(1).describe("limitPx or markPx from open_context"),
1971
+ szHuman: z.string().min(1),
1972
+ marketKind: z.enum(["perp", "spot"]).optional(),
1973
+ tif: hyperliquidTifSchema.optional(),
1974
+ dex: z.string().optional()
1975
+ },
1976
+ preprocessHyperliquidLimitOrderInput
1977
+ );
1978
+ var mcpHyperliquidCloseInputSchema = mcpHyperliquidMultisignInput(
1979
+ {
1980
+ coin: z.string().min(1),
1981
+ isLong: agentBooleanSchema(),
1982
+ limitPxHuman: z.string().min(1),
1983
+ szHuman: z.string().min(1).describe("size from fetch_positions"),
1984
+ dex: z.string().optional(),
1985
+ tif: hyperliquidTifSchema.optional()
1986
+ },
1987
+ preprocessHyperliquidCloseInput
1988
+ );
1989
+ var mcpHyperliquidCancelInputSchema = mcpHyperliquidMultisignInput(
1990
+ {
1991
+ coin: z.string().min(1),
1992
+ oid: z.number().int().positive().describe("oid from fetch_open_orders"),
1993
+ marketKind: z.enum(["perp", "spot"]).optional(),
1994
+ dex: z.string().optional()
1995
+ },
1996
+ preprocessHyperliquidCoinInput
1997
+ );
1505
1998
  var mcpHyperliquidUsdTransferInputSchema = mcpHyperliquidMultisignInput({
1506
1999
  usdHuman: z.string().min(1),
1507
- toPerp: z.boolean()
1508
- });
1509
- var mcpHyperliquidVaultDepositInputSchema = mcpHyperliquidMultisignInput({
1510
- vaultAddress: evmAddressSchema,
1511
- usdHuman: z.string().min(1)
1512
- });
1513
- var mcpHyperliquidVaultWithdrawInputSchema = mcpHyperliquidMultisignInput({
1514
- vaultAddress: evmAddressSchema,
1515
- usdHuman: z.string().min(1)
2000
+ toPerp: agentBooleanSchema()
1516
2001
  });
2002
+ var mcpHyperliquidVaultDepositInputSchema = mcpHyperliquidMultisignInput(
2003
+ {
2004
+ vaultAddress: evmAddressSchema.describe("vaultAddress from fetch_vaults"),
2005
+ usdHuman: z.string().min(1),
2006
+ vaultName: z.string().optional().describe("name from fetch_vaults row")
2007
+ },
2008
+ preprocessHyperliquidVaultDepositInput
2009
+ );
2010
+ var mcpHyperliquidVaultWithdrawInputSchema = mcpHyperliquidMultisignInput(
2011
+ {
2012
+ vaultAddress: evmAddressSchema,
2013
+ usdHuman: z.string().min(1).describe("equity from fetch_user_vault_equities")
2014
+ },
2015
+ preprocessHyperliquidVaultWithdrawInput
2016
+ );
1517
2017
  var mcpHyperliquidStakeInputSchema = mcpHyperliquidMultisignInput({
1518
2018
  hypeHuman: z.string().min(1)
1519
2019
  });
@@ -1524,10 +2024,13 @@ var mcpHyperliquidDelegateInputSchema = mcpHyperliquidMultisignInput({
1524
2024
  hypeHuman: z.string().min(1),
1525
2025
  validator: evmAddressSchema
1526
2026
  });
1527
- var mcpHyperliquidUndelegateInputSchema = mcpHyperliquidMultisignInput({
1528
- hypeHuman: z.string().min(1),
1529
- validator: evmAddressSchema
1530
- });
2027
+ var mcpHyperliquidUndelegateInputSchema = mcpHyperliquidMultisignInput(
2028
+ {
2029
+ hypeHuman: z.string().min(1).describe("amount from fetch_delegations"),
2030
+ validator: evmAddressSchema
2031
+ },
2032
+ preprocessHyperliquidUndelegateInput
2033
+ );
1531
2034
 
1532
2035
  // src/agent/mcpProtocolTools.ts
1533
2036
  function defineProtocolMcpTool(def) {
@@ -1839,8 +2342,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1839
2342
  prerequisites: [
1840
2343
  "keyGenId",
1841
2344
  "chainId",
1842
- "vaultAddress from ctm_morpho_fetch_earn_vaults",
1843
- "underlying",
2345
+ "vaultAddress + underlyingAddress from ctm_morpho_fetch_earn_vaults",
1844
2346
  "amountHuman"
1845
2347
  ],
1846
2348
  handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultDepositBatch" },
@@ -2366,13 +2868,25 @@ var CORE_MCP_TOOL_DEFINITIONS = [
2366
2868
  actionId: "gmx.fetch-positions",
2367
2869
  protocolId: "gmx",
2368
2870
  chainCategory: "evm",
2369
- description: "Fetch open GMX perp positions for an executor address. Read-only.",
2871
+ description: "Fetch open GMX perp positions (symbol, direction, sizeUsd, collateralSymbol) for build_decrease. Read-only.",
2370
2872
  prerequisites: ["chainId", "executorAddress (MPC ethereumaddress)"],
2371
2873
  followUp: ["ctm_gmx_build_decrease_multisign"],
2372
2874
  handler: { importPath: "protocols/evm/gmx", exportName: "gmxFetchPositionsForExecutor" },
2373
2875
  inputZod: mcpGmxFetchPositionsInputSchema,
2374
2876
  outputZod: mcpGmxFetchPositionsOutputSchema
2375
2877
  }),
2878
+ defineMcpTool({
2879
+ name: "ctm_gmx_fetch_orders",
2880
+ actionId: "gmx.fetch-orders",
2881
+ protocolId: "gmx",
2882
+ chainCategory: "evm",
2883
+ description: "Fetch pending GMX orders (orderId) for build_cancel_multisign. Read-only.",
2884
+ prerequisites: ["chainId", "executorAddress"],
2885
+ followUp: ["ctm_gmx_build_cancel_multisign"],
2886
+ handler: { importPath: "protocols/evm/gmx", exportName: "gmxFetchOrdersSummary" },
2887
+ inputZod: mcpGmxFetchOrdersInputSchema,
2888
+ outputZod: mcpGmxFetchOrdersOutputSchema
2889
+ }),
2376
2890
  defineMcpTool({
2377
2891
  name: "ctm_gmx_fetch_market_prices",
2378
2892
  actionId: "gmx.fetch-market-prices",
@@ -2577,6 +3091,34 @@ var CORE_MCP_TOOL_DEFINITIONS = [
2577
3091
  inputZod: mcpHyperliquidFetchDelegationsInputSchema,
2578
3092
  outputZod: mcpHyperliquidFetchDelegationsOutputSchema
2579
3093
  }),
3094
+ defineMcpTool({
3095
+ name: "ctm_morpho_fetch_blue_markets",
3096
+ actionId: "morpho.fetch-blue-markets",
3097
+ protocolId: "morpho",
3098
+ chainCategory: "evm",
3099
+ description: "Morpho Blue borrow markets. Filter by collateral/loan asset; returns marketId and token addresses for blue multisign tools.",
3100
+ prerequisites: ["chainId"],
3101
+ followUp: [
3102
+ "ctm_morpho_build_blue_collateral_deposit_multisign",
3103
+ "ctm_morpho_build_blue_borrow_multisign",
3104
+ "ctm_morpho_build_blue_repay_multisign"
3105
+ ],
3106
+ handler: { importPath: "protocols/evm/morpho", exportName: "morphoFetchBlueMarketsSummary" },
3107
+ inputZod: mcpMorphoFetchBlueMarketsInputSchema,
3108
+ outputZod: mcpMorphoFetchBlueMarketsOutputSchema
3109
+ }),
3110
+ defineMcpTool({
3111
+ name: "ctm_euler_v2_fetch_lend_vaults",
3112
+ actionId: "euler-v2.fetch-lend-vaults",
3113
+ protocolId: "euler-v2",
3114
+ chainCategory: "evm",
3115
+ description: "Euler v2 isolated lend vaults for an underlying asset. Returns evaultAddress for build_isolated_lend_multisign.",
3116
+ prerequisites: ["chainId", "underlyingAddress from get_defi_protocol_supported_tokens"],
3117
+ followUp: ["ctm_euler_v2_build_isolated_lend_multisign"],
3118
+ handler: { importPath: "protocols/evm/euler-v2", exportName: "eulerV2FetchLendVaultsSummary" },
3119
+ inputZod: mcpEulerV2FetchLendVaultsInputSchema,
3120
+ outputZod: mcpEulerV2FetchLendVaultsOutputSchema
3121
+ }),
2580
3122
  defineMcpTool({
2581
3123
  name: "ctm_morpho_fetch_earn_vaults",
2582
3124
  actionId: "morpho.fetch-earn-vaults",
@@ -3911,6 +4453,6 @@ function getAgentCatalog() {
3911
4453
  };
3912
4454
  }
3913
4455
 
3914
- export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, MULTISIGN_SUBMIT_OUTPUT_DOC, PROTOCOL_SUPPORT_ADVISORS, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, multisignOutputSchema, parseAgentBoolean, parseAgentEvmChainId, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
4456
+ export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, MULTISIGN_SUBMIT_OUTPUT_DOC, PROTOCOL_SUPPORT_ADVISORS, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchOrdersInputSchema, mcpGmxFetchOrdersOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, multisignOutputSchema, parseAgentBoolean, parseAgentEvmChainId, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
3915
4457
  //# sourceMappingURL=catalog.js.map
3916
4458
  //# sourceMappingURL=catalog.js.map