@continuumdao/ctm-mpc-defi 0.2.8 → 0.2.10

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 (36) hide show
  1. package/dist/agent/catalog.cjs +1133 -2
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +1268 -9
  4. package/dist/agent/catalog.js +1091 -3
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/agent/skills/hyperliquid/SKILL.md +205 -0
  7. package/dist/agent/skills/morpho/SKILL.md +48 -0
  8. package/dist/core/index.cjs +9 -0
  9. package/dist/core/index.cjs.map +1 -1
  10. package/dist/core/index.d.ts +3 -1
  11. package/dist/core/index.js +8 -1
  12. package/dist/core/index.js.map +1 -1
  13. package/dist/index.cjs +9 -0
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.js +8 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
  19. package/dist/protocols/evm/aave-v4/index.js.map +1 -1
  20. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  21. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  22. package/dist/protocols/evm/hyperliquid/index.cjs +1550 -0
  23. package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -0
  24. package/dist/protocols/evm/hyperliquid/index.d.ts +668 -0
  25. package/dist/protocols/evm/hyperliquid/index.js +1464 -0
  26. package/dist/protocols/evm/hyperliquid/index.js.map +1 -0
  27. package/dist/protocols/evm/maple/index.cjs.map +1 -1
  28. package/dist/protocols/evm/maple/index.js.map +1 -1
  29. package/dist/protocols/evm/morpho/index.cjs +1971 -0
  30. package/dist/protocols/evm/morpho/index.cjs.map +1 -0
  31. package/dist/protocols/evm/morpho/index.d.ts +522 -0
  32. package/dist/protocols/evm/morpho/index.js +1918 -0
  33. package/dist/protocols/evm/morpho/index.js.map +1 -0
  34. package/dist/protocols/evm/sky/index.cjs.map +1 -1
  35. package/dist/protocols/evm/sky/index.js.map +1 -1
  36. package/package.json +11 -1
@@ -924,6 +924,74 @@ var mcpEulerV2CollateralWithdrawInputSchema = mcpMultisignInput({
924
924
  collateralAsset: evmAddressSchema,
925
925
  amountHuman: z.string().min(1)
926
926
  });
927
+ var mcpMorphoVaultDepositInputSchema = mcpMultisignInput({
928
+ vault: evmAddressSchema,
929
+ underlying: evmAddressSchema.describe("Underlying asset; use wrapped native with isNativeIn for ETH."),
930
+ amountHuman: z.string().min(1),
931
+ isNativeIn: z.boolean().optional()
932
+ });
933
+ var mcpMorphoVaultWithdrawInputSchema = mcpMultisignInput({
934
+ vault: evmAddressSchema,
935
+ amountHuman: z.string().min(1)
936
+ });
937
+ var mcpMorphoBlueCollateralDepositInputSchema = mcpMultisignInput({
938
+ marketId: z.string().min(1).describe("Morpho Blue marketId from API."),
939
+ collateralToken: evmAddressSchema,
940
+ amountHuman: z.string().min(1),
941
+ isNativeIn: z.boolean().optional()
942
+ });
943
+ var mcpMorphoBlueBorrowInputSchema = mcpMultisignInput({
944
+ marketId: z.string().min(1),
945
+ loanToken: evmAddressSchema,
946
+ amountHuman: z.string().min(1)
947
+ });
948
+ var mcpMorphoBlueRepayInputSchema = mcpMultisignInput({
949
+ marketId: z.string().min(1),
950
+ loanToken: evmAddressSchema,
951
+ amountHuman: z.string().min(1)
952
+ });
953
+ var mcpMorphoBlueCollateralWithdrawInputSchema = mcpMultisignInput({
954
+ marketId: z.string().min(1),
955
+ amountHuman: z.string().min(1),
956
+ collateralDecimals: z.number().int().min(0).max(36).optional()
957
+ });
958
+ var mcpMorphoMerklClaimInputSchema = mcpMultisignInput({
959
+ claimData: z.string().min(1).describe("Hex calldata for Merkl Distributor.claim from Merkl API."),
960
+ distributor: evmAddressSchema.optional(),
961
+ valueWei: z.string().optional()
962
+ });
963
+ var morphoExposureRowSchema = z.object({
964
+ label: z.string(),
965
+ allocatedUsdLabel: z.string(),
966
+ allocationPercentLabel: z.string()
967
+ });
968
+ var mcpMorphoFetchEarnVaultsInputSchema = z.object({
969
+ chainId: z.number().int().positive(),
970
+ 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."),
971
+ query: z.string().trim().min(1).optional().describe("Case-insensitive filter on vault name, symbol, address, or underlying symbol (e.g. Steakhouse, bbqUSDC)."),
972
+ limit: z.number().int().min(1).max(200).optional().describe("Max rows (default 50).")
973
+ });
974
+ var mcpMorphoFetchEarnVaultsOutputSchema = z.object({
975
+ vaults: z.array(
976
+ z.object({
977
+ vaultAddress: z.string(),
978
+ vaultName: z.string(),
979
+ vaultSymbol: z.string(),
980
+ underlyingAddress: z.string(),
981
+ underlyingSymbol: z.string(),
982
+ apy: z.string(),
983
+ netApy: z.string(),
984
+ netApy7d: z.string(),
985
+ netApy30d: z.string(),
986
+ netApy90d: z.string(),
987
+ performanceFee: z.string(),
988
+ managementFee: z.string().nullable(),
989
+ totalDepositsUsd: z.string(),
990
+ liquidityUsd: z.string(),
991
+ exposure: z.array(morphoExposureRowSchema)
992
+ })
993
+ )
994
+ });
927
995
  function mcpGmxMultisignInput(fields) {
928
996
  return evmMultisignCommonInputSchema.extend(fields);
929
997
  }
@@ -1072,6 +1140,311 @@ var mcpGmxFetchOhlcvOutputSchema = z.object({
1072
1140
  timeframe: gmxOhlcvTimeframeSchema,
1073
1141
  candles: z.array(gmxOhlcvCandleSchema)
1074
1142
  });
1143
+ function mcpHyperliquidMultisignInput(fields) {
1144
+ return evmMultisignCommonInputSchema.extend(fields);
1145
+ }
1146
+ var hyperliquidTifSchema = z.enum(["alo", "gtc", "ioc"]);
1147
+ var hyperliquidOhlcvIntervalSchema = z.enum([
1148
+ "1m",
1149
+ "3m",
1150
+ "5m",
1151
+ "15m",
1152
+ "30m",
1153
+ "1h",
1154
+ "2h",
1155
+ "4h",
1156
+ "8h",
1157
+ "12h",
1158
+ "1d",
1159
+ "3d",
1160
+ "1w",
1161
+ "1M"
1162
+ ]);
1163
+ var hyperliquidPositionRowSchema = z.object({
1164
+ key: z.string(),
1165
+ coin: z.string(),
1166
+ isLong: z.boolean(),
1167
+ size: z.string().nullable(),
1168
+ entryPx: z.string().nullable(),
1169
+ positionValueUsd: z.string().nullable(),
1170
+ unrealizedPnlUsd: z.string().nullable(),
1171
+ liquidationPx: z.string().nullable(),
1172
+ leverageLabel: z.string().nullable(),
1173
+ maxLeverage: z.number().nullable(),
1174
+ marginUsedUsd: z.string().nullable(),
1175
+ returnOnEquity: z.string().nullable()
1176
+ });
1177
+ var hyperliquidActiveAssetSchema = z.object({
1178
+ markPx: z.string().nullable(),
1179
+ leverageLabel: z.string().nullable(),
1180
+ availableToBuy: z.string().nullable(),
1181
+ availableToSell: z.string().nullable()
1182
+ });
1183
+ var hyperliquidAccountSummarySchema = z.object({
1184
+ accountValueUsd: z.string().nullable(),
1185
+ totalMarginUsedUsd: z.string().nullable(),
1186
+ withdrawableUsd: z.string().nullable()
1187
+ });
1188
+ var mcpHyperliquidFetchMarketsInputSchema = z.object({
1189
+ chainId: z.number().int().positive(),
1190
+ dex: z.string().optional()
1191
+ });
1192
+ var mcpHyperliquidFetchMarketsOutputSchema = z.object({
1193
+ markets: z.array(
1194
+ z.object({
1195
+ name: z.string(),
1196
+ asset: z.number(),
1197
+ szDecimals: z.number(),
1198
+ maxLeverage: z.number(),
1199
+ onlyIsolated: z.boolean().optional(),
1200
+ dex: z.string().optional()
1201
+ })
1202
+ ),
1203
+ dexes: z.array(
1204
+ z.object({
1205
+ name: z.string(),
1206
+ fullName: z.string()
1207
+ })
1208
+ )
1209
+ });
1210
+ var mcpHyperliquidSearchMarketsInputSchema = z.object({
1211
+ chainId: z.number().int().positive(),
1212
+ query: z.string().min(1),
1213
+ dex: z.string().optional(),
1214
+ limit: z.number().int().positive().max(50).optional()
1215
+ });
1216
+ var mcpHyperliquidSearchMarketsOutputSchema = z.object({
1217
+ matches: z.array(
1218
+ z.object({
1219
+ coin: z.string(),
1220
+ symbol: z.string(),
1221
+ dex: z.string().optional(),
1222
+ asset: z.number(),
1223
+ szDecimals: z.number(),
1224
+ maxLeverage: z.number(),
1225
+ onlyIsolated: z.boolean().optional(),
1226
+ displayName: z.string().optional(),
1227
+ category: z.string().optional(),
1228
+ keywords: z.array(z.string()).optional(),
1229
+ matchScore: z.number(),
1230
+ matchReason: z.string()
1231
+ })
1232
+ )
1233
+ });
1234
+ var mcpHyperliquidFetchOpenContextInputSchema = z.object({
1235
+ chainId: z.number().int().positive(),
1236
+ executorAddress: evmAddressSchema,
1237
+ coin: z.string().min(1),
1238
+ dex: z.string().optional()
1239
+ });
1240
+ var mcpHyperliquidFetchOpenContextOutputSchema = z.object({
1241
+ context: z.object({
1242
+ account: hyperliquidAccountSummarySchema,
1243
+ activeAsset: hyperliquidActiveAssetSchema
1244
+ })
1245
+ });
1246
+ var mcpHyperliquidFetchPositionsInputSchema = z.object({
1247
+ chainId: z.number().int().positive(),
1248
+ executorAddress: evmAddressSchema,
1249
+ dex: z.string().optional()
1250
+ });
1251
+ var mcpHyperliquidFetchPositionsOutputSchema = z.object({
1252
+ positions: z.array(hyperliquidPositionRowSchema)
1253
+ });
1254
+ var mcpHyperliquidFetchOpenOrdersInputSchema = z.object({
1255
+ chainId: z.number().int().positive(),
1256
+ executorAddress: evmAddressSchema,
1257
+ dex: z.string().optional()
1258
+ });
1259
+ var mcpHyperliquidFetchOpenOrdersOutputSchema = z.object({
1260
+ orders: z.array(
1261
+ z.object({
1262
+ coin: z.string(),
1263
+ side: z.string(),
1264
+ limitPx: z.string(),
1265
+ sz: z.string(),
1266
+ oid: z.number(),
1267
+ timestamp: z.number(),
1268
+ reduceOnly: z.boolean().optional()
1269
+ })
1270
+ )
1271
+ });
1272
+ var mcpHyperliquidFetchMarketSnapshotInputSchema = z.object({
1273
+ chainId: z.number().int().positive(),
1274
+ coin: z.string().min(1),
1275
+ interval: hyperliquidOhlcvIntervalSchema.optional(),
1276
+ dex: z.string().optional(),
1277
+ /** Recent OHLCV bars to return (default 48, max 200). Live price is always current. */
1278
+ candleLimit: z.number().int().positive().max(200).optional()
1279
+ });
1280
+ var hyperliquidOhlcvCandleSchema = z.object({
1281
+ timestampMs: z.number(),
1282
+ open: z.string(),
1283
+ high: z.string(),
1284
+ low: z.string(),
1285
+ close: z.string(),
1286
+ volume: z.string()
1287
+ });
1288
+ var hyperliquidLivePriceSchema = z.object({
1289
+ markPx: z.string().nullable(),
1290
+ midPx: z.string().nullable(),
1291
+ oraclePx: z.string().nullable(),
1292
+ prevDayPx: z.string().nullable(),
1293
+ midUsd: z.string(),
1294
+ source: z.enum(["midPx", "markPx", "allMids"])
1295
+ });
1296
+ var mcpHyperliquidFetchMarketSnapshotOutputSchema = z.object({
1297
+ snapshot: z.object({
1298
+ coin: z.string(),
1299
+ dex: z.string().nullable(),
1300
+ livePrice: hyperliquidLivePriceSchema,
1301
+ midUsd: z.string(),
1302
+ fetchedAtMs: z.number(),
1303
+ interval: hyperliquidOhlcvIntervalSchema,
1304
+ latestCandle: hyperliquidOhlcvCandleSchema.nullable(),
1305
+ candles: z.array(hyperliquidOhlcvCandleSchema),
1306
+ candleCount: z.number()
1307
+ }),
1308
+ resolvedCoin: z.string(),
1309
+ dex: z.string().nullable()
1310
+ });
1311
+ var mcpHyperliquidFetchOhlcvInputSchema = z.object({
1312
+ chainId: z.number().int().positive(),
1313
+ coin: z.string().min(1),
1314
+ interval: hyperliquidOhlcvIntervalSchema.optional(),
1315
+ dex: z.string().optional(),
1316
+ /** Calendar-day lookback ending now (e.g. 7 = last week). Preferred for agent requests. */
1317
+ lookbackDays: z.number().positive().max(90).optional(),
1318
+ /** Hour lookback ending now. Alternative to lookbackDays. */
1319
+ lookbackHours: z.number().positive().max(90 * 24).optional(),
1320
+ /** Explicit range start (ms since epoch). Use with endTimeMs. */
1321
+ startTimeMs: z.number().int().positive().optional(),
1322
+ /** Explicit range end (ms since epoch). Defaults to now. */
1323
+ endTimeMs: z.number().int().positive().optional()
1324
+ });
1325
+ var mcpHyperliquidFetchOhlcvOutputSchema = z.object({
1326
+ ohlcv: z.object({
1327
+ coin: z.string(),
1328
+ dex: z.string().nullable(),
1329
+ interval: hyperliquidOhlcvIntervalSchema,
1330
+ startTimeMs: z.number(),
1331
+ endTimeMs: z.number(),
1332
+ expectedBars: z.number(),
1333
+ candleCount: z.number(),
1334
+ latestCandle: hyperliquidOhlcvCandleSchema.nullable(),
1335
+ candles: z.array(hyperliquidOhlcvCandleSchema),
1336
+ fetchedAtMs: z.number()
1337
+ }),
1338
+ resolvedCoin: z.string(),
1339
+ dex: z.string().nullable()
1340
+ });
1341
+ var mcpHyperliquidFetchUsdClassBalancesInputSchema = z.object({
1342
+ chainId: z.number().int().positive(),
1343
+ executorAddress: evmAddressSchema
1344
+ });
1345
+ var mcpHyperliquidFetchUsdClassBalancesOutputSchema = z.object({
1346
+ balances: z.object({
1347
+ spotUsdcAvailable: z.string(),
1348
+ perpWithdrawable: z.string()
1349
+ })
1350
+ });
1351
+ var mcpHyperliquidFetchVaultsInputSchema = z.object({
1352
+ chainId: z.number().int().positive(),
1353
+ executorAddress: evmAddressSchema.optional()
1354
+ });
1355
+ var mcpHyperliquidFetchVaultsOutputSchema = z.object({
1356
+ vaults: z.array(
1357
+ z.object({
1358
+ vaultAddress: z.string(),
1359
+ name: z.string(),
1360
+ apr: z.number().nullable(),
1361
+ tvlUsd: z.string().nullable()
1362
+ })
1363
+ )
1364
+ });
1365
+ var mcpHyperliquidFetchUserVaultEquitiesInputSchema = z.object({
1366
+ chainId: z.number().int().positive(),
1367
+ executorAddress: evmAddressSchema
1368
+ });
1369
+ var mcpHyperliquidFetchUserVaultEquitiesOutputSchema = z.object({
1370
+ rows: z.array(
1371
+ z.object({
1372
+ vaultAddress: z.string(),
1373
+ equity: z.string()
1374
+ })
1375
+ )
1376
+ });
1377
+ var mcpHyperliquidFetchStakingSummaryInputSchema = z.object({
1378
+ chainId: z.number().int().positive(),
1379
+ executorAddress: evmAddressSchema
1380
+ });
1381
+ var mcpHyperliquidFetchStakingSummaryOutputSchema = z.object({
1382
+ summary: z.object({
1383
+ delegated: z.string(),
1384
+ undelegated: z.string()
1385
+ })
1386
+ });
1387
+ var mcpHyperliquidFetchDelegationsInputSchema = z.object({
1388
+ chainId: z.number().int().positive(),
1389
+ executorAddress: evmAddressSchema
1390
+ });
1391
+ var mcpHyperliquidFetchDelegationsOutputSchema = z.object({
1392
+ delegations: z.array(
1393
+ z.object({
1394
+ validator: z.string(),
1395
+ amount: z.string()
1396
+ })
1397
+ )
1398
+ });
1399
+ var mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidMultisignInput({
1400
+ coin: z.string().min(1),
1401
+ isBuy: z.boolean(),
1402
+ limitPxHuman: z.string().min(1),
1403
+ szHuman: z.string().min(1),
1404
+ marketKind: z.enum(["perp", "spot"]).optional(),
1405
+ tif: hyperliquidTifSchema.optional(),
1406
+ dex: z.string().optional()
1407
+ });
1408
+ var mcpHyperliquidCloseInputSchema = mcpHyperliquidMultisignInput({
1409
+ coin: z.string().min(1),
1410
+ isLong: z.boolean(),
1411
+ limitPxHuman: z.string().min(1),
1412
+ szHuman: z.string().min(1),
1413
+ dex: z.string().optional(),
1414
+ tif: hyperliquidTifSchema.optional()
1415
+ });
1416
+ var mcpHyperliquidCancelInputSchema = mcpHyperliquidMultisignInput({
1417
+ coin: z.string().min(1),
1418
+ oid: z.number().int().positive(),
1419
+ marketKind: z.enum(["perp", "spot"]).optional(),
1420
+ dex: z.string().optional()
1421
+ });
1422
+ var mcpHyperliquidUsdTransferInputSchema = mcpHyperliquidMultisignInput({
1423
+ usdHuman: z.string().min(1),
1424
+ toPerp: z.boolean()
1425
+ });
1426
+ var mcpHyperliquidVaultDepositInputSchema = mcpHyperliquidMultisignInput({
1427
+ vaultAddress: evmAddressSchema,
1428
+ usdHuman: z.string().min(1)
1429
+ });
1430
+ var mcpHyperliquidVaultWithdrawInputSchema = mcpHyperliquidMultisignInput({
1431
+ vaultAddress: evmAddressSchema,
1432
+ usdHuman: z.string().min(1)
1433
+ });
1434
+ var mcpHyperliquidStakeInputSchema = mcpHyperliquidMultisignInput({
1435
+ hypeHuman: z.string().min(1)
1436
+ });
1437
+ var mcpHyperliquidUnstakeInputSchema = mcpHyperliquidMultisignInput({
1438
+ hypeHuman: z.string().min(1)
1439
+ });
1440
+ var mcpHyperliquidDelegateInputSchema = mcpHyperliquidMultisignInput({
1441
+ hypeHuman: z.string().min(1),
1442
+ validator: evmAddressSchema
1443
+ });
1444
+ var mcpHyperliquidUndelegateInputSchema = mcpHyperliquidMultisignInput({
1445
+ hypeHuman: z.string().min(1),
1446
+ validator: evmAddressSchema
1447
+ });
1075
1448
 
1076
1449
  // src/agent/mcpProtocolTools.ts
1077
1450
  function defineProtocolMcpTool(def) {
@@ -1374,6 +1747,87 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1374
1747
  handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch" },
1375
1748
  inputZod: mcpEulerV2CollateralWithdrawInputSchema
1376
1749
  }),
1750
+ defineProtocolMcpTool({
1751
+ name: "ctm_morpho_build_vault_deposit_multisign",
1752
+ actionId: "morpho.vault-deposit",
1753
+ protocolId: "morpho",
1754
+ chainCategory: "evm",
1755
+ description: "Build Morpho vault deposit batch (wrap/approve + deposit). Works with listed V1 and V2 vaults.",
1756
+ prerequisites: [
1757
+ "keyGenId",
1758
+ "chainId",
1759
+ "vaultAddress from ctm_morpho_fetch_earn_vaults",
1760
+ "underlying",
1761
+ "amountHuman"
1762
+ ],
1763
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultDepositBatch" },
1764
+ inputZod: mcpMorphoVaultDepositInputSchema
1765
+ }),
1766
+ defineProtocolMcpTool({
1767
+ name: "ctm_morpho_build_vault_withdraw_multisign",
1768
+ actionId: "morpho.vault-withdraw",
1769
+ protocolId: "morpho",
1770
+ chainCategory: "evm",
1771
+ description: "Build Morpho vault withdraw batch. Works with listed V1 and V2 vaults.",
1772
+ prerequisites: [
1773
+ "keyGenId",
1774
+ "chainId",
1775
+ "vaultAddress from ctm_morpho_fetch_earn_vaults or user positions",
1776
+ "amountHuman"
1777
+ ],
1778
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultWithdraw" },
1779
+ inputZod: mcpMorphoVaultWithdrawInputSchema
1780
+ }),
1781
+ defineProtocolMcpTool({
1782
+ name: "ctm_morpho_build_blue_collateral_deposit_multisign",
1783
+ actionId: "morpho.blue-collateral-deposit",
1784
+ protocolId: "morpho",
1785
+ chainCategory: "evm",
1786
+ description: "Build Morpho Blue supplyCollateral batch.",
1787
+ prerequisites: ["keyGenId", "chainId", "marketId", "collateralToken", "amountHuman"],
1788
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch" },
1789
+ inputZod: mcpMorphoBlueCollateralDepositInputSchema
1790
+ }),
1791
+ defineProtocolMcpTool({
1792
+ name: "ctm_morpho_build_blue_borrow_multisign",
1793
+ actionId: "morpho.blue-borrow",
1794
+ protocolId: "morpho",
1795
+ chainCategory: "evm",
1796
+ description: "Build Morpho Blue borrow batch.",
1797
+ prerequisites: ["keyGenId", "chainId", "marketId", "loanToken", "amountHuman"],
1798
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueBorrowBatch" },
1799
+ inputZod: mcpMorphoBlueBorrowInputSchema
1800
+ }),
1801
+ defineProtocolMcpTool({
1802
+ name: "ctm_morpho_build_blue_repay_multisign",
1803
+ actionId: "morpho.blue-repay",
1804
+ protocolId: "morpho",
1805
+ chainCategory: "evm",
1806
+ description: "Build Morpho Blue repay batch.",
1807
+ prerequisites: ["keyGenId", "chainId", "marketId", "loanToken", "amountHuman"],
1808
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueRepayBatch" },
1809
+ inputZod: mcpMorphoBlueRepayInputSchema
1810
+ }),
1811
+ defineProtocolMcpTool({
1812
+ name: "ctm_morpho_build_blue_collateral_withdraw_multisign",
1813
+ actionId: "morpho.blue-collateral-withdraw",
1814
+ protocolId: "morpho",
1815
+ chainCategory: "evm",
1816
+ description: "Build Morpho Blue withdrawCollateral batch.",
1817
+ prerequisites: ["keyGenId", "chainId", "marketId", "amountHuman"],
1818
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch" },
1819
+ inputZod: mcpMorphoBlueCollateralWithdrawInputSchema
1820
+ }),
1821
+ defineProtocolMcpTool({
1822
+ name: "ctm_morpho_build_merkl_claim_multisign",
1823
+ actionId: "morpho.merkl-claim",
1824
+ protocolId: "morpho",
1825
+ chainCategory: "evm",
1826
+ description: "Build Morpho Merkl Distributor.claim transaction.",
1827
+ prerequisites: ["keyGenId", "chainId", "claim calldata from Merkl API"],
1828
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoMerklDistributorClaim" },
1829
+ inputZod: mcpMorphoMerklClaimInputSchema
1830
+ }),
1377
1831
  defineProtocolMcpTool({
1378
1832
  name: "ctm_gmx_build_increase_multisign",
1379
1833
  actionId: "gmx.increase",
@@ -1443,6 +1897,109 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1443
1897
  prerequisites: ["keyGen", "executorAddress", "staked GMX balance"],
1444
1898
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxUnstakeGmxBatch" },
1445
1899
  inputZod: mcpGmxUnstakeGmxInputSchema
1900
+ }),
1901
+ defineProtocolMcpTool({
1902
+ name: "ctm_hyperliquid_build_limit_order_multisign",
1903
+ actionId: "hyperliquid.limitOrder",
1904
+ protocolId: "hyperliquid",
1905
+ chainCategory: "evm",
1906
+ description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid limit/IoC order via HyperEVM CoreWriter.",
1907
+ prerequisites: ["keyGen", "executorAddress", "chainId 999 or 998", "coin", "limitPxHuman", "szHuman"],
1908
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidLimitOrderBatch" },
1909
+ inputZod: mcpHyperliquidLimitOrderInputSchema
1910
+ }),
1911
+ defineProtocolMcpTool({
1912
+ name: "ctm_hyperliquid_build_close_multisign",
1913
+ actionId: "hyperliquid.close",
1914
+ protocolId: "hyperliquid",
1915
+ chainCategory: "evm",
1916
+ description: "Create and submit mpc-auth multiSignRequest to close/reduce a perp (IoC reduce-only limit via CoreWriter).",
1917
+ prerequisites: ["keyGen", "executorAddress", "open position from fetch_positions", "isLong matches position"],
1918
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidCloseBatch" },
1919
+ inputZod: mcpHyperliquidCloseInputSchema
1920
+ }),
1921
+ defineProtocolMcpTool({
1922
+ name: "ctm_hyperliquid_build_cancel_multisign",
1923
+ actionId: "hyperliquid.cancel",
1924
+ protocolId: "hyperliquid",
1925
+ chainCategory: "evm",
1926
+ description: "Create and submit mpc-auth multiSignRequest to cancel a Hyperliquid open order.",
1927
+ prerequisites: ["keyGen", "executorAddress", "oid from fetch_open_orders"],
1928
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidCancelBatch" },
1929
+ inputZod: mcpHyperliquidCancelInputSchema
1930
+ }),
1931
+ defineProtocolMcpTool({
1932
+ name: "ctm_hyperliquid_build_usd_transfer_multisign",
1933
+ actionId: "hyperliquid.usdTransfer",
1934
+ protocolId: "hyperliquid",
1935
+ chainCategory: "evm",
1936
+ description: "Create and submit mpc-auth multiSignRequest to move USDC between spot and perp margin.",
1937
+ prerequisites: ["keyGen", "executorAddress", "usdHuman", "toPerp boolean"],
1938
+ handler: {
1939
+ importPath: "protocols/evm/hyperliquid",
1940
+ exportName: "buildEvmMultisignBodyHyperliquidUsdClassTransferBatch"
1941
+ },
1942
+ inputZod: mcpHyperliquidUsdTransferInputSchema
1943
+ }),
1944
+ defineProtocolMcpTool({
1945
+ name: "ctm_hyperliquid_build_vault_deposit_multisign",
1946
+ actionId: "hyperliquid.vaultDeposit",
1947
+ protocolId: "hyperliquid",
1948
+ chainCategory: "evm",
1949
+ description: "Create and submit mpc-auth multiSignRequest for Hyperliquid vault deposit.",
1950
+ prerequisites: ["keyGen", "executorAddress", "vaultAddress from fetch_vaults"],
1951
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidVaultDepositBatch" },
1952
+ inputZod: mcpHyperliquidVaultDepositInputSchema
1953
+ }),
1954
+ defineProtocolMcpTool({
1955
+ name: "ctm_hyperliquid_build_vault_withdraw_multisign",
1956
+ actionId: "hyperliquid.vaultWithdraw",
1957
+ protocolId: "hyperliquid",
1958
+ chainCategory: "evm",
1959
+ description: "Create and submit mpc-auth multiSignRequest for Hyperliquid vault withdraw (includes accrued PnL).",
1960
+ prerequisites: ["keyGen", "executorAddress", "vaultAddress", "equity from fetch_user_vault_equities"],
1961
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidVaultWithdrawBatch" },
1962
+ inputZod: mcpHyperliquidVaultWithdrawInputSchema
1963
+ }),
1964
+ defineProtocolMcpTool({
1965
+ name: "ctm_hyperliquid_build_stake_multisign",
1966
+ actionId: "hyperliquid.stake",
1967
+ protocolId: "hyperliquid",
1968
+ chainCategory: "evm",
1969
+ description: "Create and submit mpc-auth multiSignRequest to stake HYPE via CoreWriter.",
1970
+ prerequisites: ["keyGen", "executorAddress", "HYPE balance on Hyperliquid account"],
1971
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidStakeDepositBatch" },
1972
+ inputZod: mcpHyperliquidStakeInputSchema
1973
+ }),
1974
+ defineProtocolMcpTool({
1975
+ name: "ctm_hyperliquid_build_unstake_multisign",
1976
+ actionId: "hyperliquid.unstake",
1977
+ protocolId: "hyperliquid",
1978
+ chainCategory: "evm",
1979
+ description: "Create and submit mpc-auth multiSignRequest to unstake HYPE via CoreWriter.",
1980
+ prerequisites: ["keyGen", "executorAddress", "staked HYPE"],
1981
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidStakeWithdrawBatch" },
1982
+ inputZod: mcpHyperliquidUnstakeInputSchema
1983
+ }),
1984
+ defineProtocolMcpTool({
1985
+ name: "ctm_hyperliquid_build_delegate_multisign",
1986
+ actionId: "hyperliquid.delegate",
1987
+ protocolId: "hyperliquid",
1988
+ chainCategory: "evm",
1989
+ description: "Create and submit mpc-auth multiSignRequest to delegate staked HYPE to a validator.",
1990
+ prerequisites: ["keyGen", "executorAddress", "validator address", "hypeHuman"],
1991
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidDelegateOnlyBatch" },
1992
+ inputZod: mcpHyperliquidDelegateInputSchema
1993
+ }),
1994
+ defineProtocolMcpTool({
1995
+ name: "ctm_hyperliquid_build_undelegate_multisign",
1996
+ actionId: "hyperliquid.undelegate",
1997
+ protocolId: "hyperliquid",
1998
+ chainCategory: "evm",
1999
+ description: "Create and submit mpc-auth multiSignRequest to undelegate HYPE from a validator.",
2000
+ prerequisites: ["keyGen", "executorAddress", "delegation from fetch_delegations"],
2001
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidUndelegateBatch" },
2002
+ inputZod: mcpHyperliquidUndelegateInputSchema
1446
2003
  })
1447
2004
  ];
1448
2005
 
@@ -1788,6 +2345,165 @@ var CORE_MCP_TOOL_DEFINITIONS = [
1788
2345
  handler: { importPath: "protocols/evm/gmx", exportName: "gmxFetchStakingPower" },
1789
2346
  inputZod: mcpGmxFetchStakingPowerInputSchema,
1790
2347
  outputZod: mcpGmxFetchStakingPowerOutputSchema
2348
+ }),
2349
+ defineMcpTool({
2350
+ name: "ctm_hyperliquid_fetch_markets",
2351
+ actionId: "hyperliquid.fetch-markets",
2352
+ protocolId: "hyperliquid",
2353
+ chainCategory: "evm",
2354
+ description: "List Hyperliquid perp markets (native + all HIP-3 dexes when dex omitted). Each market has coin name, maxLeverage, szDecimals, and optional dex (e.g. xyz for xyz:AAPL). chainId 999 mainnet or 998 testnet.",
2355
+ prerequisites: ["chainId 999 or 998"],
2356
+ followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
2357
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchMarketsSummary" },
2358
+ inputZod: mcpHyperliquidFetchMarketsInputSchema,
2359
+ outputZod: mcpHyperliquidFetchMarketsOutputSchema
2360
+ }),
2361
+ defineMcpTool({
2362
+ name: "ctm_hyperliquid_search_markets",
2363
+ actionId: "hyperliquid.search-markets",
2364
+ protocolId: "hyperliquid",
2365
+ chainCategory: "evm",
2366
+ description: "Search Hyperliquid perp markets across all dexes by ticker (AAPL, BTC), display name, or keyword (Apple, tesla). Case-insensitive. Returns canonical coin names (e.g. xyz:AAPL).",
2367
+ prerequisites: ["chainId 999 or 998", "query"],
2368
+ followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
2369
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidSearchMarketsSummary" },
2370
+ inputZod: mcpHyperliquidSearchMarketsInputSchema,
2371
+ outputZod: mcpHyperliquidSearchMarketsOutputSchema
2372
+ }),
2373
+ defineMcpTool({
2374
+ name: "ctm_hyperliquid_fetch_open_context",
2375
+ actionId: "hyperliquid.fetch-open-context",
2376
+ protocolId: "hyperliquid",
2377
+ chainCategory: "evm",
2378
+ description: "Per-market trading context: account value, withdrawable, margin used, leverage setting, mark price, available buy/sell size. Resolves ticker/name (AAPL, Apple) across dexes.",
2379
+ prerequisites: ["chainId", "executorAddress", "coin from fetch_markets"],
2380
+ followUp: ["ctm_hyperliquid_build_limit_order_multisign"],
2381
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOpenContextSummary" },
2382
+ inputZod: mcpHyperliquidFetchOpenContextInputSchema,
2383
+ outputZod: mcpHyperliquidFetchOpenContextOutputSchema
2384
+ }),
2385
+ defineMcpTool({
2386
+ name: "ctm_hyperliquid_fetch_positions",
2387
+ actionId: "hyperliquid.fetch-positions",
2388
+ protocolId: "hyperliquid",
2389
+ chainCategory: "evm",
2390
+ description: "Open Hyperliquid perp positions for executor (size, entry, uPnL, liq price, leverage, margin).",
2391
+ prerequisites: ["chainId", "executorAddress"],
2392
+ followUp: ["ctm_hyperliquid_build_close_multisign"],
2393
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchPositionsForExecutor" },
2394
+ inputZod: mcpHyperliquidFetchPositionsInputSchema,
2395
+ outputZod: mcpHyperliquidFetchPositionsOutputSchema
2396
+ }),
2397
+ defineMcpTool({
2398
+ name: "ctm_hyperliquid_fetch_open_orders",
2399
+ actionId: "hyperliquid.fetch-open-orders",
2400
+ protocolId: "hyperliquid",
2401
+ chainCategory: "evm",
2402
+ description: "Pending Hyperliquid open orders for executor (oid, coin, side, price, size).",
2403
+ prerequisites: ["chainId", "executorAddress"],
2404
+ followUp: ["ctm_hyperliquid_build_cancel_multisign"],
2405
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOpenOrdersSummary" },
2406
+ inputZod: mcpHyperliquidFetchOpenOrdersInputSchema,
2407
+ outputZod: mcpHyperliquidFetchOpenOrdersOutputSchema
2408
+ }),
2409
+ defineMcpTool({
2410
+ name: "ctm_hyperliquid_fetch_market_snapshot",
2411
+ actionId: "hyperliquid.fetch-market-snapshot",
2412
+ protocolId: "hyperliquid",
2413
+ chainCategory: "evm",
2414
+ description: "Live mark/mid price plus recent OHLCV candles for a Hyperliquid perp. Uses metaAndAssetCtxs for live prices (not stale candle close). Default interval 15m, 48 bars. Throws if live price unavailable.",
2415
+ prerequisites: ["chainId", "coin"],
2416
+ followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
2417
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchMarketSnapshotSummary" },
2418
+ inputZod: mcpHyperliquidFetchMarketSnapshotInputSchema,
2419
+ outputZod: mcpHyperliquidFetchMarketSnapshotOutputSchema
2420
+ }),
2421
+ defineMcpTool({
2422
+ name: "ctm_hyperliquid_fetch_ohlcv",
2423
+ actionId: "hyperliquid.fetch-ohlcv",
2424
+ protocolId: "hyperliquid",
2425
+ chainCategory: "evm",
2426
+ description: "OHLCV candle history for a Hyperliquid perp over an explicit lookback or time range. Requests only the needed window from Hyperliquid (e.g. lookbackDays: 7, interval: 15m \u2192 ~672 bars). Max 2000 bars \u2014 use coarser interval for longer history. Resolves ticker/name across dexes.",
2427
+ prerequisites: ["chainId 999 or 998", "coin", "lookbackDays or lookbackHours or startTimeMs"],
2428
+ followUp: ["ctm_hyperliquid_fetch_market_snapshot", "ctm_hyperliquid_build_limit_order_multisign"],
2429
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOhlcvSummary" },
2430
+ inputZod: mcpHyperliquidFetchOhlcvInputSchema,
2431
+ outputZod: mcpHyperliquidFetchOhlcvOutputSchema
2432
+ }),
2433
+ defineMcpTool({
2434
+ name: "ctm_hyperliquid_fetch_usd_class_balances",
2435
+ actionId: "hyperliquid.fetch-usd-balances",
2436
+ protocolId: "hyperliquid",
2437
+ chainCategory: "evm",
2438
+ description: "Spot USDC available and perp withdrawable USD for spot\u2194perp transfers.",
2439
+ prerequisites: ["chainId", "executorAddress"],
2440
+ followUp: ["ctm_hyperliquid_build_usd_transfer_multisign"],
2441
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchUsdClassBalancesSummary" },
2442
+ inputZod: mcpHyperliquidFetchUsdClassBalancesInputSchema,
2443
+ outputZod: mcpHyperliquidFetchUsdClassBalancesOutputSchema
2444
+ }),
2445
+ defineMcpTool({
2446
+ name: "ctm_hyperliquid_fetch_vaults",
2447
+ actionId: "hyperliquid.fetch-vaults",
2448
+ protocolId: "hyperliquid",
2449
+ chainCategory: "evm",
2450
+ description: "Vault catalog by TVL with APR (mainnet only; may take ~10\u201315s). Pass executorAddress to merge user-held vaults.",
2451
+ prerequisites: ["chainId 999 for catalog"],
2452
+ followUp: ["ctm_hyperliquid_build_vault_deposit_multisign"],
2453
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchVaultCatalogSummary" },
2454
+ inputZod: mcpHyperliquidFetchVaultsInputSchema,
2455
+ outputZod: mcpHyperliquidFetchVaultsOutputSchema
2456
+ }),
2457
+ defineMcpTool({
2458
+ name: "ctm_hyperliquid_fetch_user_vault_equities",
2459
+ actionId: "hyperliquid.fetch-user-vault-equities",
2460
+ protocolId: "hyperliquid",
2461
+ chainCategory: "evm",
2462
+ description: "USD equity the user holds in Hyperliquid vaults.",
2463
+ prerequisites: ["chainId", "executorAddress"],
2464
+ followUp: ["ctm_hyperliquid_build_vault_withdraw_multisign"],
2465
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchUserVaultEquitiesSummary" },
2466
+ inputZod: mcpHyperliquidFetchUserVaultEquitiesInputSchema,
2467
+ outputZod: mcpHyperliquidFetchUserVaultEquitiesOutputSchema
2468
+ }),
2469
+ defineMcpTool({
2470
+ name: "ctm_hyperliquid_fetch_staking_summary",
2471
+ actionId: "hyperliquid.fetch-staking-summary",
2472
+ protocolId: "hyperliquid",
2473
+ chainCategory: "evm",
2474
+ description: "HYPE staking summary: delegated and undelegated amounts.",
2475
+ prerequisites: ["chainId", "executorAddress"],
2476
+ followUp: ["ctm_hyperliquid_build_stake_multisign", "ctm_hyperliquid_build_delegate_multisign"],
2477
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchStakingSummaryForExecutor" },
2478
+ inputZod: mcpHyperliquidFetchStakingSummaryInputSchema,
2479
+ outputZod: mcpHyperliquidFetchStakingSummaryOutputSchema
2480
+ }),
2481
+ defineMcpTool({
2482
+ name: "ctm_hyperliquid_fetch_delegations",
2483
+ actionId: "hyperliquid.fetch-delegations",
2484
+ protocolId: "hyperliquid",
2485
+ chainCategory: "evm",
2486
+ description: "HYPE delegations by validator for executor.",
2487
+ prerequisites: ["chainId", "executorAddress"],
2488
+ followUp: ["ctm_hyperliquid_build_undelegate_multisign"],
2489
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchDelegationsForExecutor" },
2490
+ inputZod: mcpHyperliquidFetchDelegationsInputSchema,
2491
+ outputZod: mcpHyperliquidFetchDelegationsOutputSchema
2492
+ }),
2493
+ defineMcpTool({
2494
+ name: "ctm_morpho_fetch_earn_vaults",
2495
+ actionId: "morpho.fetch-earn-vaults",
2496
+ protocolId: "morpho",
2497
+ chainCategory: "evm",
2498
+ description: "Morpho-listed earn vaults (V1 + V2 unified). Filter by deposit asset symbol/address and/or case-insensitive vault name search. Returns vaultAddress for deposit/withdraw multisign tools.",
2499
+ prerequisites: ["chainId"],
2500
+ followUp: [
2501
+ "ctm_morpho_build_vault_deposit_multisign",
2502
+ "ctm_morpho_build_vault_withdraw_multisign"
2503
+ ],
2504
+ handler: { importPath: "protocols/evm/morpho", exportName: "morphoFetchEarnVaultsSummary" },
2505
+ inputZod: mcpMorphoFetchEarnVaultsInputSchema,
2506
+ outputZod: mcpMorphoFetchEarnVaultsOutputSchema
1791
2507
  })
1792
2508
  ];
1793
2509
  var MCP_TOOL_DEFINITIONS = [
@@ -2014,7 +2730,30 @@ registerProtocolModule(ethenaProtocolModule);
2014
2730
  function isMapleSyrupSupportedChain(chainId) {
2015
2731
  return chainId === 1 || chainId === 11155111;
2016
2732
  }
2733
+
2734
+ // src/core/defiProxy.ts
2735
+ var aaveGraphqlProxyUrl;
2736
+ var morphoGraphqlProxyUrl;
2737
+ function getAaveGraphqlProxyUrl() {
2738
+ return aaveGraphqlProxyUrl;
2739
+ }
2740
+ function getMorphoGraphqlProxyUrl() {
2741
+ return morphoGraphqlProxyUrl;
2742
+ }
2017
2743
  async function postJsonViaOptionalProxy(args) {
2744
+ const proxy = args.proxyUrl?.trim();
2745
+ if (proxy) {
2746
+ const r2 = await fetch(proxy, {
2747
+ method: "POST",
2748
+ headers: { "content-type": "application/json" },
2749
+ body: JSON.stringify(args.proxyEnvelope ?? args.body)
2750
+ });
2751
+ if (!r2.ok) {
2752
+ const t = await r2.text().catch(() => "");
2753
+ throw new Error(t ? `Proxy HTTP ${r2.status}: ${t.slice(0, 200)}` : `Proxy HTTP ${r2.status}`);
2754
+ }
2755
+ return await r2.json();
2756
+ }
2018
2757
  const r = await fetch(args.directUrl, {
2019
2758
  method: "POST",
2020
2759
  headers: { "content-type": "application/json" },
@@ -2077,7 +2816,10 @@ async function aaveV4Gql(query, variables) {
2077
2816
  const body = { query, variables: variables ?? {} };
2078
2817
  const j = await postJsonViaOptionalProxy({
2079
2818
  directUrl: AAVE_V4_GRAPHQL_URL,
2080
- body});
2819
+ body,
2820
+ proxyUrl: getAaveGraphqlProxyUrl(),
2821
+ proxyEnvelope: body
2822
+ });
2081
2823
  if (j.errors?.length) {
2082
2824
  const msg = j.errors.map((e) => e.message ?? "Unknown").join("; ");
2083
2825
  throw new Error(msg);
@@ -2410,6 +3152,315 @@ var gmxProtocolModule = {
2410
3152
  ]
2411
3153
  };
2412
3154
  registerProtocolModule(gmxProtocolModule);
3155
+
3156
+ // src/protocols/evm/hyperliquid/support.ts
3157
+ var HYPERLIQUID_SUPPORTED_CHAIN_IDS = [999, 998];
3158
+ function isHyperliquidChainSupported(chainId) {
3159
+ return HYPERLIQUID_SUPPORTED_CHAIN_IDS.includes(chainId);
3160
+ }
3161
+
3162
+ // src/protocols/evm/hyperliquid/index.ts
3163
+ var HYPERLIQUID_PROTOCOL_ID = "hyperliquid";
3164
+ var hyperliquidProtocolModule = {
3165
+ id: HYPERLIQUID_PROTOCOL_ID,
3166
+ chainCategory: "evm",
3167
+ isChainSupported(ctx) {
3168
+ if (ctx.chainCategory !== "evm") return false;
3169
+ const chainId = typeof ctx.chainId === "number" ? ctx.chainId : Number(ctx.chainId);
3170
+ return Number.isFinite(chainId) && isHyperliquidChainSupported(chainId);
3171
+ },
3172
+ isTokenSupported(token) {
3173
+ if (token.category !== "evm") return false;
3174
+ return token.kind === "erc20" || token.kind === "native";
3175
+ },
3176
+ actions: [
3177
+ {
3178
+ id: "hyperliquid.limitOrder",
3179
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3180
+ chainCategory: "evm",
3181
+ description: "Place a Hyperliquid limit/IoC order via HyperEVM CoreWriter",
3182
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3183
+ params: {
3184
+ coin: { type: "string", required: true, description: "Market coin e.g. BTC" },
3185
+ isBuy: { type: "boolean", required: true, description: "true for buy/long, false for sell/short" },
3186
+ limitPxHuman: { type: "string", required: true, description: "Limit price" },
3187
+ szHuman: { type: "string", required: true, description: "Order size in coin units" },
3188
+ marketKind: { type: "string", required: false, description: "perp (default) or spot" },
3189
+ tif: { type: "string", required: false, description: "gtc, ioc, or alo" },
3190
+ dex: { type: "string", required: false, description: "HIP-3 dex name when applicable" }
3191
+ }
3192
+ },
3193
+ {
3194
+ id: "hyperliquid.close",
3195
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3196
+ chainCategory: "evm",
3197
+ description: "Close or reduce a perp via IoC reduce-only limit order (CoreWriter)",
3198
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3199
+ params: {
3200
+ coin: { type: "string", required: true, description: "Market coin" },
3201
+ isLong: { type: "boolean", required: true, description: "true if closing a long position" },
3202
+ limitPxHuman: { type: "string", required: true, description: "Limit price" },
3203
+ szHuman: { type: "string", required: true, description: "Size to close in coin units" }
3204
+ }
3205
+ },
3206
+ {
3207
+ id: "hyperliquid.cancel",
3208
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3209
+ chainCategory: "evm",
3210
+ description: "Cancel a Hyperliquid open order via CoreWriter",
3211
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3212
+ params: {
3213
+ coin: { type: "string", required: true, description: "Market coin" },
3214
+ oid: { type: "number", required: true, description: "Order id from openOrders" }
3215
+ }
3216
+ },
3217
+ {
3218
+ id: "hyperliquid.usdTransfer",
3219
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3220
+ chainCategory: "evm",
3221
+ description: "Move USDC between Hyperliquid spot and perp margin accounts",
3222
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3223
+ params: {
3224
+ usdHuman: { type: "string", required: true, description: "USD amount" },
3225
+ toPerp: { type: "boolean", required: true, description: "true spot\u2192perp, false perp\u2192spot" }
3226
+ }
3227
+ },
3228
+ {
3229
+ id: "hyperliquid.vaultDeposit",
3230
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3231
+ chainCategory: "evm",
3232
+ description: "Deposit USD into a Hyperliquid vault",
3233
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3234
+ params: {
3235
+ vaultAddress: { type: "string", required: true, description: "Vault address" },
3236
+ usdHuman: { type: "string", required: true, description: "USD amount" }
3237
+ }
3238
+ },
3239
+ {
3240
+ id: "hyperliquid.vaultWithdraw",
3241
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3242
+ chainCategory: "evm",
3243
+ description: "Withdraw USD from a Hyperliquid vault (includes accrued PnL)",
3244
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3245
+ params: {
3246
+ vaultAddress: { type: "string", required: true, description: "Vault address" },
3247
+ usdHuman: { type: "string", required: true, description: "USD amount" }
3248
+ }
3249
+ },
3250
+ {
3251
+ id: "hyperliquid.stake",
3252
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3253
+ chainCategory: "evm",
3254
+ description: "Stake HYPE via CoreWriter",
3255
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3256
+ params: {
3257
+ hypeHuman: { type: "string", required: true, description: "HYPE amount" }
3258
+ }
3259
+ },
3260
+ {
3261
+ id: "hyperliquid.unstake",
3262
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3263
+ chainCategory: "evm",
3264
+ description: "Unstake HYPE via CoreWriter",
3265
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3266
+ params: {
3267
+ hypeHuman: { type: "string", required: true, description: "HYPE amount" }
3268
+ }
3269
+ },
3270
+ {
3271
+ id: "hyperliquid.delegate",
3272
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3273
+ chainCategory: "evm",
3274
+ description: "Delegate staked HYPE to a validator",
3275
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3276
+ params: {
3277
+ hypeHuman: { type: "string", required: true, description: "HYPE amount" },
3278
+ validator: { type: "string", required: true, description: "Validator address" }
3279
+ }
3280
+ },
3281
+ {
3282
+ id: "hyperliquid.undelegate",
3283
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3284
+ chainCategory: "evm",
3285
+ description: "Undelegate HYPE from a validator",
3286
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3287
+ params: {
3288
+ hypeHuman: { type: "string", required: true, description: "HYPE amount" },
3289
+ validator: { type: "string", required: true, description: "Validator address" }
3290
+ }
3291
+ }
3292
+ ]
3293
+ };
3294
+ registerProtocolModule(hyperliquidProtocolModule);
3295
+ var MORPHO_GRAPHQL_URL = "https://api.morpho.org/graphql";
3296
+ async function morphoGql(query, variables) {
3297
+ const body = { query, variables: variables ?? {} };
3298
+ const j = await postJsonViaOptionalProxy({
3299
+ directUrl: MORPHO_GRAPHQL_URL,
3300
+ body,
3301
+ proxyUrl: getMorphoGraphqlProxyUrl(),
3302
+ proxyEnvelope: body
3303
+ });
3304
+ if (j.errors?.length) {
3305
+ const msg = j.errors.map((e) => e.message ?? "Unknown").join("; ");
3306
+ throw new Error(msg);
3307
+ }
3308
+ if (j.data == null) throw new Error("Morpho API: empty response");
3309
+ return j.data;
3310
+ }
3311
+ async function fetchMorphoChains() {
3312
+ const d = await morphoGql(`
3313
+ query { chains { id network } }
3314
+ `);
3315
+ return d.chains ?? [];
3316
+ }
3317
+ async function loadMorphoSupportedChainIds() {
3318
+ const rows = await fetchMorphoChains();
3319
+ const s = /* @__PURE__ */ new Set();
3320
+ for (const c of rows) {
3321
+ if (typeof c.id === "number" && Number.isFinite(c.id)) s.add(c.id);
3322
+ }
3323
+ return s;
3324
+ }
3325
+ var VAULT_PAGE_SIZE = 100;
3326
+ async function fetchMorphoVaultsForChain(chainId, first = 100) {
3327
+ const d = await morphoGql(
3328
+ `
3329
+ query MorphoVaults($chainId: Int!, $first: Int!) {
3330
+ vaults(first: $first, where: { chainId_in: [$chainId], listed: true }, orderBy: TotalAssetsUsd, orderDirection: Desc) {
3331
+ items {
3332
+ address symbol name listed
3333
+ asset { address symbol decimals price { usd } }
3334
+ chain { id }
3335
+ state { apy netApy fee totalAssetsUsd allRewards { supplyApr asset { address symbol } } }
3336
+ }
3337
+ }
3338
+ }
3339
+ `,
3340
+ { chainId, first }
3341
+ );
3342
+ return d.vaults?.items ?? [];
3343
+ }
3344
+ async function fetchMorphoVaultV2sForChain(chainId, first = 100, skip = 0) {
3345
+ const d = await morphoGql(
3346
+ `
3347
+ query MorphoVaultV2s($chainId: Int!, $first: Int!, $skip: Int!) {
3348
+ vaultV2s(
3349
+ first: $first
3350
+ skip: $skip
3351
+ where: { chainId_in: [$chainId], listed: true }
3352
+ orderBy: TotalAssetsUsd
3353
+ orderDirection: Desc
3354
+ ) {
3355
+ items {
3356
+ address symbol name listed
3357
+ asset { address symbol decimals price { usd } }
3358
+ chain { id }
3359
+ apy netApy performanceFee managementFee totalAssetsUsd
3360
+ rewards { supplyApr asset { address symbol } }
3361
+ }
3362
+ }
3363
+ }
3364
+ `,
3365
+ { chainId, first, skip }
3366
+ );
3367
+ return d.vaultV2s?.items ?? [];
3368
+ }
3369
+ async function fetchAllMorphoVaultV2AssetAddresses(chainId) {
3370
+ const out = /* @__PURE__ */ new Set();
3371
+ let skip = 0;
3372
+ for (let page = 0; page < 20; page++) {
3373
+ const batch = await fetchMorphoVaultV2sForChain(chainId, VAULT_PAGE_SIZE, skip);
3374
+ if (!batch.length) break;
3375
+ for (const v of batch) {
3376
+ const a = (v.asset?.address ?? "").trim();
3377
+ if (isAddress(a)) out.add(getAddress(a).toLowerCase());
3378
+ }
3379
+ if (batch.length < VAULT_PAGE_SIZE) break;
3380
+ skip += VAULT_PAGE_SIZE;
3381
+ }
3382
+ return out;
3383
+ }
3384
+ var chainAssetCache = /* @__PURE__ */ new Map();
3385
+ async function ensureMorphoChainAssetCache(chainId) {
3386
+ const hit = chainAssetCache.get(chainId);
3387
+ if (hit) return hit;
3388
+ const modes = /* @__PURE__ */ new Map();
3389
+ const [v1Vaults, v2Assets] = await Promise.all([
3390
+ fetchMorphoVaultsForChain(chainId, 300),
3391
+ fetchAllMorphoVaultV2AssetAddresses(chainId)
3392
+ ]);
3393
+ for (const v of v1Vaults) {
3394
+ const a = (v.asset?.address ?? "").trim();
3395
+ if (!isAddress(a)) continue;
3396
+ const k = getAddress(a).toLowerCase();
3397
+ const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
3398
+ prev.earn = true;
3399
+ modes.set(k, prev);
3400
+ }
3401
+ for (const k of v2Assets) {
3402
+ const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
3403
+ prev.earn = true;
3404
+ modes.set(k, prev);
3405
+ }
3406
+ const marketsD = await morphoGql(
3407
+ `
3408
+ query MorphoMarketsAssets($chainId: Int!) {
3409
+ markets(first: 500, where: { chainId_in: [$chainId] }) {
3410
+ items {
3411
+ loanAsset { address }
3412
+ collateralAsset { address }
3413
+ }
3414
+ }
3415
+ }
3416
+ `,
3417
+ { chainId }
3418
+ );
3419
+ for (const m of marketsD.markets?.items ?? []) {
3420
+ const loanAddr = (m.loanAsset?.address ?? "").trim();
3421
+ const colAddr = (m.collateralAsset?.address ?? "").trim();
3422
+ if (isAddress(loanAddr)) {
3423
+ const k = getAddress(loanAddr).toLowerCase();
3424
+ const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
3425
+ prev.borrow = true;
3426
+ modes.set(k, prev);
3427
+ }
3428
+ if (isAddress(colAddr)) {
3429
+ const k = getAddress(colAddr).toLowerCase();
3430
+ const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
3431
+ prev.collateral = true;
3432
+ modes.set(k, prev);
3433
+ }
3434
+ }
3435
+ const cache = { modesByUnderlying: modes, nativeWrapped: null };
3436
+ chainAssetCache.set(chainId, cache);
3437
+ return cache;
3438
+ }
3439
+
3440
+ // src/protocols/evm/morpho/index.ts
3441
+ var MORPHO_PROTOCOL_ID = "morpho";
3442
+ var morphoProtocolModule = {
3443
+ id: MORPHO_PROTOCOL_ID,
3444
+ chainCategory: "evm",
3445
+ isChainSupported(ctx) {
3446
+ return ctx.chainCategory === "evm";
3447
+ },
3448
+ isTokenSupported(token) {
3449
+ return token.category === "evm" && (token.kind === "native" || token.kind === "erc20");
3450
+ },
3451
+ actions: [
3452
+ { id: "morpho.fetch-earn-vaults", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Search Morpho-listed earn vaults by asset or name", commonParams: [], params: {} },
3453
+ { id: "morpho.vault-deposit", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Deposit into Morpho-listed earn vault (V1 or V2)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3454
+ { id: "morpho.vault-withdraw", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw from Morpho earn vault (V1 or V2)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3455
+ { id: "morpho.blue-collateral-deposit", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Supply collateral to Morpho Blue market", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3456
+ { id: "morpho.blue-borrow", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Borrow from Morpho Blue market", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3457
+ { id: "morpho.blue-repay", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Repay Morpho Blue borrow", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3458
+ { id: "morpho.blue-collateral-withdraw", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw Morpho Blue collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3459
+ { id: "morpho.merkl-claim", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Claim Morpho Merkl rewards", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3460
+ { id: "morpho.midnight-borrow", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Morpho Midnight fixed-rate borrow (coming soon)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
3461
+ ]
3462
+ };
3463
+ registerProtocolModule(morphoProtocolModule);
2413
3464
  var skillsDir = join(dirname(fileURLToPath(import.meta.url)), "skills");
2414
3465
  var SKILL_PROTOCOL_IDS = [
2415
3466
  "aave-v4",
@@ -2420,7 +3471,9 @@ var SKILL_PROTOCOL_IDS = [
2420
3471
  "euler-v2",
2421
3472
  "maple-syrup",
2422
3473
  "sky",
2423
- "gmx"
3474
+ "gmx",
3475
+ "hyperliquid",
3476
+ "morpho"
2424
3477
  ];
2425
3478
  function getToolsForProtocol(protocolId) {
2426
3479
  return MCP_TOOL_DEFINITIONS.filter((t) => t.protocolId === protocolId);
@@ -2634,6 +3687,37 @@ var PROTOCOL_SUPPORT_ADVISORS = {
2634
3687
  return { tokens: [] };
2635
3688
  }
2636
3689
  }),
3690
+ morpho: advisor("morpho", "api_underlyings", {
3691
+ async supportedChainIds() {
3692
+ const set = await loadMorphoSupportedChainIds();
3693
+ return [...set].sort((a, b) => a - b);
3694
+ },
3695
+ async supportedTokens(chainId) {
3696
+ const cache = await ensureMorphoChainAssetCache(chainId);
3697
+ const tokens = [...cache.modesByUnderlying.entries()].map(([address, modes]) => ({
3698
+ address,
3699
+ roles: [
3700
+ ...modes.earn ? ["vault_underlying"] : [],
3701
+ ...modes.borrow ? ["loan"] : [],
3702
+ ...modes.collateral ? ["collateral"] : []
3703
+ ]
3704
+ }));
3705
+ return {
3706
+ tokens,
3707
+ notes: "Morpho vault assets and Blue market loan/collateral tokens from api.morpho.org."
3708
+ };
3709
+ },
3710
+ async isTokenSupported(chainId, address) {
3711
+ const cache = await ensureMorphoChainAssetCache(chainId);
3712
+ let normalized;
3713
+ try {
3714
+ normalized = getAddress(address).toLowerCase();
3715
+ } catch {
3716
+ return false;
3717
+ }
3718
+ return cache.modesByUnderlying.has(normalized);
3719
+ }
3720
+ }),
2637
3721
  "euler-v2": advisor("euler-v2", "subgraph_vaults", {
2638
3722
  async supportedChainIds() {
2639
3723
  return [...EULER_V2_SUBGRAPH_CHAIN_IDS];
@@ -2714,6 +3798,8 @@ registerProtocolModule(skyProtocolModule);
2714
3798
  registerProtocolModule(aaveV4ProtocolModule);
2715
3799
  registerProtocolModule(eulerV2ProtocolModule);
2716
3800
  registerProtocolModule(gmxProtocolModule);
3801
+ registerProtocolModule(hyperliquidProtocolModule);
3802
+ registerProtocolModule(morphoProtocolModule);
2717
3803
  function getAgentCatalog() {
2718
3804
  return {
2719
3805
  protocols: getProtocolModules(),
@@ -2731,11 +3817,13 @@ function getAgentCatalog() {
2731
3817
  aaveV4: aaveV4ProtocolModule,
2732
3818
  eulerV2: eulerV2ProtocolModule,
2733
3819
  gmx: gmxProtocolModule,
3820
+ hyperliquid: hyperliquidProtocolModule,
3821
+ morpho: morphoProtocolModule,
2734
3822
  /** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
2735
3823
  mcp: getAgentCatalogForMcp()
2736
3824
  };
2737
3825
  }
2738
3826
 
2739
- 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, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, 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, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
3827
+ 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, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
2740
3828
  //# sourceMappingURL=catalog.js.map
2741
3829
  //# sourceMappingURL=catalog.js.map